@proyecto-viviana/solidaria 0.4.2 → 0.6.0-rc.0
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/LICENSE-APACHE-2.0 +201 -0
- package/NOTICE +91 -0
- package/dist/_chunk/DragManager.js +71 -25
- package/dist/_chunk/DragManager.js.map +1 -1
- package/dist/_chunk/DragManager.jsx +71 -25
- package/dist/_chunk/DragManager.jsx.map +1 -1
- package/dist/_chunk/FocusScope.js +281 -66
- package/dist/_chunk/FocusScope.js.map +1 -1
- package/dist/_chunk/FocusScope.jsx +274 -55
- package/dist/_chunk/FocusScope.jsx.map +1 -1
- package/dist/_chunk/actiongroup.js +43 -19
- package/dist/_chunk/actiongroup.js.map +1 -1
- package/dist/_chunk/actiongroup.jsx +43 -19
- package/dist/_chunk/actiongroup.jsx.map +1 -1
- package/dist/_chunk/announce.js +19 -6
- package/dist/_chunk/announce.js.map +1 -1
- package/dist/_chunk/announce.jsx +19 -6
- package/dist/_chunk/announce.jsx.map +1 -1
- package/dist/_chunk/ariaHideOutside.js +212 -10
- package/dist/_chunk/ariaHideOutside.js.map +1 -1
- package/dist/_chunk/ariaHideOutside.jsx +212 -10
- package/dist/_chunk/ariaHideOutside.jsx.map +1 -1
- package/dist/_chunk/autocomplete.js +26 -7
- package/dist/_chunk/autocomplete.js.map +1 -1
- package/dist/_chunk/autocomplete.jsx +26 -7
- package/dist/_chunk/autocomplete.jsx.map +1 -1
- package/dist/_chunk/breadcrumbs.js +17 -2
- package/dist/_chunk/breadcrumbs.js.map +1 -1
- package/dist/_chunk/breadcrumbs.jsx +17 -2
- package/dist/_chunk/breadcrumbs.jsx.map +1 -1
- package/dist/_chunk/button.js +53 -20
- package/dist/_chunk/button.js.map +1 -1
- package/dist/_chunk/button.jsx +53 -20
- package/dist/_chunk/button.jsx.map +1 -1
- package/dist/_chunk/calendar.js +341 -56
- package/dist/_chunk/calendar.js.map +1 -1
- package/dist/_chunk/calendar.jsx +341 -56
- package/dist/_chunk/calendar.jsx.map +1 -1
- package/dist/_chunk/checkbox.js +69 -26
- package/dist/_chunk/checkbox.js.map +1 -1
- package/dist/_chunk/checkbox.jsx +69 -26
- package/dist/_chunk/checkbox.jsx.map +1 -1
- package/dist/_chunk/color.js +307 -48
- package/dist/_chunk/color.js.map +1 -1
- package/dist/_chunk/color.jsx +307 -48
- package/dist/_chunk/color.jsx.map +1 -1
- package/dist/_chunk/combobox.js +193 -103
- package/dist/_chunk/combobox.js.map +1 -1
- package/dist/_chunk/combobox.jsx +193 -103
- package/dist/_chunk/combobox.jsx.map +1 -1
- package/dist/_chunk/constants.js +12 -0
- package/dist/_chunk/constants.js.map +1 -1
- package/dist/_chunk/constants.jsx +12 -0
- package/dist/_chunk/constants.jsx.map +1 -1
- package/dist/_chunk/createCollator.js +12 -0
- package/dist/_chunk/createCollator.js.map +1 -1
- package/dist/_chunk/createCollator.jsx +12 -0
- package/dist/_chunk/createCollator.jsx.map +1 -1
- package/dist/_chunk/createCollectionRowInteraction.js +50 -13
- package/dist/_chunk/createCollectionRowInteraction.js.map +1 -1
- package/dist/_chunk/createCollectionRowInteraction.jsx +50 -13
- package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -1
- package/dist/_chunk/createField.js +35 -25
- package/dist/_chunk/createField.js.map +1 -1
- package/dist/_chunk/createField.jsx +35 -25
- package/dist/_chunk/createField.jsx.map +1 -1
- package/dist/_chunk/createFocus.js +18 -5
- package/dist/_chunk/createFocus.js.map +1 -1
- package/dist/_chunk/createFocus.jsx +18 -5
- package/dist/_chunk/createFocus.jsx.map +1 -1
- package/dist/_chunk/createFocusRing.js +16 -7
- package/dist/_chunk/createFocusRing.js.map +1 -1
- package/dist/_chunk/createFocusRing.jsx +16 -7
- package/dist/_chunk/createFocusRing.jsx.map +1 -1
- package/dist/_chunk/createFocusWithin.js +16 -4
- package/dist/_chunk/createFocusWithin.js.map +1 -1
- package/dist/_chunk/createFocusWithin.jsx +16 -4
- package/dist/_chunk/createFocusWithin.jsx.map +1 -1
- package/dist/_chunk/createFocusable.js +39 -53
- package/dist/_chunk/createFocusable.js.map +1 -1
- package/dist/_chunk/createFocusable.jsx +39 -53
- package/dist/_chunk/createFocusable.jsx.map +1 -1
- package/dist/_chunk/createFormReset.js +24 -12
- package/dist/_chunk/createFormReset.js.map +1 -1
- package/dist/_chunk/createFormReset.jsx +24 -12
- package/dist/_chunk/createFormReset.jsx.map +1 -1
- package/dist/_chunk/createFormValidation.js +41 -17
- package/dist/_chunk/createFormValidation.js.map +1 -1
- package/dist/_chunk/createFormValidation.jsx +41 -17
- package/dist/_chunk/createFormValidation.jsx.map +1 -1
- package/dist/_chunk/createHover.js +56 -42
- package/dist/_chunk/createHover.js.map +1 -1
- package/dist/_chunk/createHover.jsx +56 -42
- package/dist/_chunk/createHover.jsx.map +1 -1
- package/dist/_chunk/createKeyboard.js +205 -0
- package/dist/_chunk/createKeyboard.js.map +1 -0
- package/dist/_chunk/createKeyboard.jsx +205 -0
- package/dist/_chunk/createKeyboard.jsx.map +1 -0
- package/dist/_chunk/createLabel.js +17 -4
- package/dist/_chunk/createLabel.js.map +1 -1
- package/dist/_chunk/createLabel.jsx +17 -4
- package/dist/_chunk/createLabel.jsx.map +1 -1
- package/dist/_chunk/createLabels.js +14 -2
- package/dist/_chunk/createLabels.js.map +1 -1
- package/dist/_chunk/createLabels.jsx +14 -2
- package/dist/_chunk/createLabels.jsx.map +1 -1
- package/dist/_chunk/createLandmark.js +19 -3
- package/dist/_chunk/createLandmark.js.map +1 -1
- package/dist/_chunk/createLandmark.jsx +19 -3
- package/dist/_chunk/createLandmark.jsx.map +1 -1
- package/dist/_chunk/createLongPress.js +105 -0
- package/dist/_chunk/createLongPress.js.map +1 -0
- package/dist/_chunk/createLongPress.jsx +105 -0
- package/dist/_chunk/createLongPress.jsx.map +1 -0
- package/dist/_chunk/createOverlay.js +220 -111
- package/dist/_chunk/createOverlay.js.map +1 -1
- package/dist/_chunk/createOverlay.jsx +220 -111
- package/dist/_chunk/createOverlay.jsx.map +1 -1
- package/dist/_chunk/createOverlayTrigger.js +58 -0
- package/dist/_chunk/createOverlayTrigger.js.map +1 -0
- package/dist/_chunk/createOverlayTrigger.jsx +58 -0
- package/dist/_chunk/createOverlayTrigger.jsx.map +1 -0
- package/dist/_chunk/createPress.js +38 -28
- package/dist/_chunk/createPress.js.map +1 -1
- package/dist/_chunk/createPress.jsx +38 -28
- package/dist/_chunk/createPress.jsx.map +1 -1
- package/dist/_chunk/createProgressBar.js +17 -4
- package/dist/_chunk/createProgressBar.js.map +1 -1
- package/dist/_chunk/createProgressBar.jsx +17 -4
- package/dist/_chunk/createProgressBar.jsx.map +1 -1
- package/dist/_chunk/createSelectableItem.js +58 -20
- package/dist/_chunk/createSelectableItem.js.map +1 -1
- package/dist/_chunk/createSelectableItem.jsx +58 -20
- package/dist/_chunk/createSelectableItem.jsx.map +1 -1
- package/dist/_chunk/createSelectableList.js +776 -0
- package/dist/_chunk/createSelectableList.js.map +1 -0
- package/dist/_chunk/createSelectableList.jsx +776 -0
- package/dist/_chunk/createSelectableList.jsx.map +1 -0
- package/dist/_chunk/createStringFormatter.js +350 -5
- package/dist/_chunk/createStringFormatter.js.map +1 -1
- package/dist/_chunk/createStringFormatter.jsx +350 -5
- package/dist/_chunk/createStringFormatter.jsx.map +1 -1
- package/dist/_chunk/createToggle.js +68 -19
- package/dist/_chunk/createToggle.js.map +1 -1
- package/dist/_chunk/createToggle.jsx +68 -19
- package/dist/_chunk/createToggle.jsx.map +1 -1
- package/dist/_chunk/createTypeSelect.js +15 -3
- package/dist/_chunk/createTypeSelect.js.map +1 -1
- package/dist/_chunk/createTypeSelect.jsx +15 -3
- package/dist/_chunk/createTypeSelect.jsx.map +1 -1
- package/dist/_chunk/{visually-hidden.js → createVisuallyHidden.js} +16 -4
- package/dist/_chunk/createVisuallyHidden.js.map +1 -0
- package/dist/_chunk/{visually-hidden.jsx → createVisuallyHidden.jsx} +16 -4
- package/dist/_chunk/createVisuallyHidden.jsx.map +1 -0
- package/dist/_chunk/datepicker.js +687 -602
- package/dist/_chunk/datepicker.js.map +1 -1
- package/dist/_chunk/datepicker.jsx +687 -602
- package/dist/_chunk/datepicker.jsx.map +1 -1
- package/dist/_chunk/dialog.js +49 -19
- package/dist/_chunk/dialog.js.map +1 -1
- package/dist/_chunk/dialog.jsx +49 -19
- package/dist/_chunk/dialog.jsx.map +1 -1
- package/dist/_chunk/disclosure.js +48 -28
- package/dist/_chunk/disclosure.js.map +1 -1
- package/dist/_chunk/disclosure.jsx +48 -28
- package/dist/_chunk/disclosure.jsx.map +1 -1
- package/dist/_chunk/dnd.js +1340 -1172
- package/dist/_chunk/dnd.js.map +1 -1
- package/dist/_chunk/dnd.jsx +1340 -1172
- package/dist/_chunk/dnd.jsx.map +1 -1
- package/dist/_chunk/dom.js +1200 -0
- package/dist/_chunk/dom.js.map +1 -0
- package/dist/_chunk/dom.jsx +1200 -0
- package/dist/_chunk/dom.jsx.map +1 -0
- package/dist/_chunk/env.js +1 -57
- package/dist/_chunk/env.js.map +1 -1
- package/dist/_chunk/env.jsx +1 -57
- package/dist/_chunk/env.jsx.map +1 -1
- package/dist/_chunk/filterDOMProps.js +32 -7
- package/dist/_chunk/filterDOMProps.js.map +1 -1
- package/dist/_chunk/filterDOMProps.jsx +32 -7
- package/dist/_chunk/filterDOMProps.jsx.map +1 -1
- package/dist/_chunk/focus.js +570 -338
- package/dist/_chunk/focus.js.map +1 -1
- package/dist/_chunk/focus.jsx +570 -338
- package/dist/_chunk/focus.jsx.map +1 -1
- package/dist/_chunk/grid.js +62 -8
- package/dist/_chunk/grid.js.map +1 -1
- package/dist/_chunk/grid.jsx +62 -8
- package/dist/_chunk/grid.jsx.map +1 -1
- package/dist/_chunk/gridlist.js +192 -53
- package/dist/_chunk/gridlist.js.map +1 -1
- package/dist/_chunk/gridlist.jsx +192 -53
- package/dist/_chunk/gridlist.jsx.map +1 -1
- package/dist/_chunk/i18n.js +68 -1
- package/dist/_chunk/i18n.js.map +1 -1
- package/dist/_chunk/i18n.jsx +68 -1
- package/dist/_chunk/i18n.jsx.map +1 -1
- package/dist/_chunk/interactions.js +38 -102
- package/dist/_chunk/interactions.js.map +1 -1
- package/dist/_chunk/interactions.jsx +38 -100
- package/dist/_chunk/interactions.jsx.map +1 -1
- package/dist/_chunk/intl.js +280 -0
- package/dist/_chunk/intl.js.map +1 -0
- package/dist/_chunk/intl.jsx +280 -0
- package/dist/_chunk/intl.jsx.map +1 -0
- package/dist/_chunk/link.js +15 -4
- package/dist/_chunk/link.js.map +1 -1
- package/dist/_chunk/link.jsx +15 -4
- package/dist/_chunk/link.jsx.map +1 -1
- package/dist/_chunk/listbox.js +99 -175
- package/dist/_chunk/listbox.js.map +1 -1
- package/dist/_chunk/listbox.jsx +99 -175
- package/dist/_chunk/listbox.jsx.map +1 -1
- package/dist/_chunk/locale.js +58 -12
- package/dist/_chunk/locale.js.map +1 -1
- package/dist/_chunk/locale.jsx +57 -11
- package/dist/_chunk/locale.jsx.map +1 -1
- package/dist/_chunk/menu.js +298 -57
- package/dist/_chunk/menu.js.map +1 -1
- package/dist/_chunk/menu.jsx +298 -57
- package/dist/_chunk/menu.jsx.map +1 -1
- package/dist/_chunk/mergeProps.js +216 -0
- package/dist/_chunk/mergeProps.js.map +1 -0
- package/dist/_chunk/mergeProps.jsx +216 -0
- package/dist/_chunk/mergeProps.jsx.map +1 -0
- package/dist/_chunk/meter.js +16 -4
- package/dist/_chunk/meter.js.map +1 -1
- package/dist/_chunk/meter.jsx +16 -4
- package/dist/_chunk/meter.jsx.map +1 -1
- package/dist/_chunk/numberfield.js +167 -22
- package/dist/_chunk/numberfield.js.map +1 -1
- package/dist/_chunk/numberfield.jsx +167 -22
- package/dist/_chunk/numberfield.jsx.map +1 -1
- package/dist/_chunk/overlays.js +87 -74
- package/dist/_chunk/overlays.js.map +1 -1
- package/dist/_chunk/overlays.jsx +71 -57
- package/dist/_chunk/overlays.jsx.map +1 -1
- package/dist/_chunk/owner.js +23 -0
- package/dist/_chunk/owner.js.map +1 -0
- package/dist/_chunk/owner.jsx +23 -0
- package/dist/_chunk/owner.jsx.map +1 -0
- package/dist/_chunk/popover.js +180 -42
- package/dist/_chunk/popover.js.map +1 -1
- package/dist/_chunk/popover.jsx +180 -42
- package/dist/_chunk/popover.jsx.map +1 -1
- package/dist/_chunk/radio.js +92 -32
- package/dist/_chunk/radio.js.map +1 -1
- package/dist/_chunk/radio.jsx +92 -32
- package/dist/_chunk/radio.jsx.map +1 -1
- package/dist/_chunk/reactivity.js.map +1 -1
- package/dist/_chunk/reactivity.jsx.map +1 -1
- package/dist/_chunk/refs.js +41 -0
- package/dist/_chunk/refs.js.map +1 -0
- package/dist/_chunk/refs.jsx +41 -0
- package/dist/_chunk/refs.jsx.map +1 -0
- package/dist/_chunk/searchfield.js +69 -3
- package/dist/_chunk/searchfield.js.map +1 -1
- package/dist/_chunk/searchfield.jsx +69 -3
- package/dist/_chunk/searchfield.jsx.map +1 -1
- package/dist/_chunk/select.js +226 -80
- package/dist/_chunk/select.js.map +1 -1
- package/dist/_chunk/select.jsx +162 -70
- package/dist/_chunk/select.jsx.map +1 -1
- package/dist/_chunk/selection.js +20 -638
- package/dist/_chunk/selection.js.map +1 -1
- package/dist/_chunk/selection.jsx +20 -638
- package/dist/_chunk/selection.jsx.map +1 -1
- package/dist/_chunk/separator.js +12 -0
- package/dist/_chunk/separator.js.map +1 -1
- package/dist/_chunk/separator.jsx +12 -0
- package/dist/_chunk/separator.jsx.map +1 -1
- package/dist/_chunk/slider.js +25 -16
- package/dist/_chunk/slider.js.map +1 -1
- package/dist/_chunk/slider.jsx +25 -16
- package/dist/_chunk/slider.jsx.map +1 -1
- package/dist/_chunk/spinbutton.js +52 -42
- package/dist/_chunk/spinbutton.js.map +1 -1
- package/dist/_chunk/spinbutton.jsx +52 -42
- package/dist/_chunk/spinbutton.jsx.map +1 -1
- package/dist/_chunk/steplist.js +14 -1
- package/dist/_chunk/steplist.js.map +1 -1
- package/dist/_chunk/steplist.jsx +14 -1
- package/dist/_chunk/steplist.jsx.map +1 -1
- package/dist/_chunk/switch.js +21 -3
- package/dist/_chunk/switch.js.map +1 -1
- package/dist/_chunk/switch.jsx +21 -3
- package/dist/_chunk/switch.jsx.map +1 -1
- package/dist/_chunk/table.js +666 -88
- package/dist/_chunk/table.js.map +1 -1
- package/dist/_chunk/table.jsx +666 -88
- package/dist/_chunk/table.jsx.map +1 -1
- package/dist/_chunk/tabs.js +115 -17
- package/dist/_chunk/tabs.js.map +1 -1
- package/dist/_chunk/tabs.jsx +115 -17
- package/dist/_chunk/tabs.jsx.map +1 -1
- package/dist/_chunk/tag.js +240 -39
- package/dist/_chunk/tag.js.map +1 -1
- package/dist/_chunk/tag.jsx +240 -39
- package/dist/_chunk/tag.jsx.map +1 -1
- package/dist/_chunk/textfield.js +83 -12
- package/dist/_chunk/textfield.js.map +1 -1
- package/dist/_chunk/textfield.jsx +83 -12
- package/dist/_chunk/textfield.jsx.map +1 -1
- package/dist/_chunk/toast.js +61 -28
- package/dist/_chunk/toast.js.map +1 -1
- package/dist/_chunk/toast.jsx +61 -28
- package/dist/_chunk/toast.jsx.map +1 -1
- package/dist/_chunk/tokenfield.js +567 -0
- package/dist/_chunk/tokenfield.js.map +1 -0
- package/dist/_chunk/tokenfield.jsx +567 -0
- package/dist/_chunk/tokenfield.jsx.map +1 -0
- package/dist/_chunk/toolbar.js +25 -8
- package/dist/_chunk/toolbar.js.map +1 -1
- package/dist/_chunk/toolbar.jsx +25 -8
- package/dist/_chunk/toolbar.jsx.map +1 -1
- package/dist/_chunk/tooltip.js +379 -6
- package/dist/_chunk/tooltip.js.map +1 -1
- package/dist/_chunk/tooltip.jsx +379 -6
- package/dist/_chunk/tooltip.jsx.map +1 -1
- package/dist/_chunk/tree.js +280 -69
- package/dist/_chunk/tree.js.map +1 -1
- package/dist/_chunk/tree.jsx +280 -69
- package/dist/_chunk/tree.jsx.map +1 -1
- package/dist/_chunk/utils.js +192 -150
- package/dist/_chunk/utils.js.map +1 -1
- package/dist/_chunk/utils.jsx +192 -150
- package/dist/_chunk/utils.jsx.map +1 -1
- package/dist/_chunk/virtualFocus.js +54 -0
- package/dist/_chunk/virtualFocus.js.map +1 -0
- package/dist/_chunk/virtualFocus.jsx +54 -0
- package/dist/_chunk/virtualFocus.jsx.map +1 -0
- package/dist/_chunk/virtualizer.js +202 -0
- package/dist/_chunk/virtualizer.js.map +1 -0
- package/dist/_chunk/virtualizer.jsx +202 -0
- package/dist/_chunk/virtualizer.jsx.map +1 -0
- package/dist/actiongroup/createActionGroup.d.ts +2 -1
- package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
- package/dist/autocomplete/createAutocomplete.d.ts +1 -9
- package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
- package/dist/autocomplete/intl/index.d.ts +13 -0
- package/dist/autocomplete/intl/index.d.ts.map +1 -0
- package/dist/breadcrumbs/createBreadcrumbs.d.ts +3 -1
- package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
- package/dist/breadcrumbs/intl/index.d.ts +13 -0
- package/dist/breadcrumbs/intl/index.d.ts.map +1 -0
- package/dist/button/createButton.d.ts.map +1 -1
- package/dist/button/createToggleButton.d.ts.map +1 -1
- package/dist/button/createToggleButtonGroup.d.ts +1 -1
- package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
- package/dist/button/types.d.ts +14 -0
- package/dist/button/types.d.ts.map +1 -1
- package/dist/calendar/createCalendar.d.ts +1 -7
- package/dist/calendar/createCalendar.d.ts.map +1 -1
- package/dist/calendar/createCalendarCell.d.ts +0 -6
- package/dist/calendar/createCalendarCell.d.ts.map +1 -1
- package/dist/calendar/createCalendarGrid.d.ts +1 -7
- package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
- package/dist/calendar/createCalendarMonthPicker.d.ts +0 -8
- package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -1
- package/dist/calendar/createCalendarYearPicker.d.ts +0 -8
- package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -1
- package/dist/calendar/createRangeCalendar.d.ts +13 -7
- package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
- package/dist/calendar/createRangeCalendarCell.d.ts +2 -6
- package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
- package/dist/calendar/intl/index.d.ts.map +1 -1
- package/dist/calendar/utils.d.ts.map +1 -1
- package/dist/checkbox/createCheckbox.d.ts +2 -1
- package/dist/checkbox/createCheckbox.d.ts.map +1 -1
- package/dist/checkbox/createCheckboxGroup.d.ts +1 -9
- package/dist/checkbox/createCheckboxGroup.d.ts.map +1 -1
- package/dist/checkbox/createCheckboxGroupItem.d.ts +0 -8
- package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
- package/dist/collections/index.d.ts +1 -1
- package/dist/collections/index.d.ts.map +1 -1
- package/dist/collections/index.js +18 -2
- package/dist/collections/index.js.map +1 -1
- package/dist/collections/index.jsx +18 -2
- package/dist/collections/index.jsx.map +1 -1
- package/dist/color/createColorArea.d.ts +2 -7
- package/dist/color/createColorArea.d.ts.map +1 -1
- package/dist/color/createColorField.d.ts +2 -7
- package/dist/color/createColorField.d.ts.map +1 -1
- package/dist/color/createColorSlider.d.ts +1 -6
- package/dist/color/createColorSlider.d.ts.map +1 -1
- package/dist/color/createColorSwatch.d.ts +1 -6
- package/dist/color/createColorSwatch.d.ts.map +1 -1
- package/dist/color/createColorWheel.d.ts +1 -6
- package/dist/color/createColorWheel.d.ts.map +1 -1
- package/dist/color/intl/index.d.ts.map +1 -1
- package/dist/color/types.d.ts +47 -1
- package/dist/color/types.d.ts.map +1 -1
- package/dist/combobox/createComboBox.d.ts +17 -8
- package/dist/combobox/createComboBox.d.ts.map +1 -1
- package/dist/combobox/intl/generated-locales.d.ts +3 -0
- package/dist/combobox/intl/generated-locales.d.ts.map +1 -1
- package/dist/combobox/intl/index.d.ts +3 -2
- package/dist/combobox/intl/index.d.ts.map +1 -1
- package/dist/datepicker/createDateField.d.ts +0 -10
- package/dist/datepicker/createDateField.d.ts.map +1 -1
- package/dist/datepicker/createDatePicker.d.ts +0 -16
- package/dist/datepicker/createDatePicker.d.ts.map +1 -1
- package/dist/datepicker/createDatePickerGroup.d.ts +1 -1
- package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -1
- package/dist/datepicker/createDateRangePicker.d.ts +0 -21
- package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
- package/dist/datepicker/createDateSegment.d.ts +0 -9
- package/dist/datepicker/createDateSegment.d.ts.map +1 -1
- package/dist/datepicker/createDisplayNames.d.ts +1 -9
- package/dist/datepicker/createDisplayNames.d.ts.map +1 -1
- package/dist/datepicker/createTimeField.d.ts.map +1 -1
- package/dist/datepicker/intl.d.ts.map +1 -1
- package/dist/dialog/createDialog.d.ts +2 -4
- package/dist/dialog/createDialog.d.ts.map +1 -1
- package/dist/dialog/types.d.ts +14 -0
- package/dist/dialog/types.d.ts.map +1 -1
- package/dist/disclosure/createDisclosure.d.ts +1 -8
- package/dist/disclosure/createDisclosure.d.ts.map +1 -1
- package/dist/disclosure/createDisclosureGroup.d.ts +3 -4
- package/dist/disclosure/createDisclosureGroup.d.ts.map +1 -1
- package/dist/dnd/DragManager.d.ts +1 -16
- package/dist/dnd/DragManager.d.ts.map +1 -1
- package/dist/dnd/DropTargetKeyboardNavigation.d.ts +2 -2
- package/dist/dnd/createDrag.d.ts +1 -7
- package/dist/dnd/createDrag.d.ts.map +1 -1
- package/dist/dnd/createDraggableCollection.d.ts +1 -7
- package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
- package/dist/dnd/createDraggableItem.d.ts +2 -7
- package/dist/dnd/createDraggableItem.d.ts.map +1 -1
- package/dist/dnd/createDrop.d.ts +1 -7
- package/dist/dnd/createDrop.d.ts.map +1 -1
- package/dist/dnd/createDropIndicator.d.ts +27 -0
- package/dist/dnd/createDropIndicator.d.ts.map +1 -0
- package/dist/dnd/createDroppableCollection.d.ts +6 -8
- package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
- package/dist/dnd/createDroppableItem.d.ts +12 -10
- package/dist/dnd/createDroppableItem.d.ts.map +1 -1
- package/dist/dnd/index.d.ts +3 -1
- package/dist/dnd/index.d.ts.map +1 -1
- package/dist/dnd/index.js +2 -2
- package/dist/dnd/index.jsx +2 -2
- package/dist/dnd/intl/index.d.ts +6 -4
- package/dist/dnd/intl/index.d.ts.map +1 -1
- package/dist/dnd/types.d.ts +20 -1
- package/dist/dnd/types.d.ts.map +1 -1
- package/dist/dnd/utils.d.ts +4 -0
- package/dist/dnd/utils.d.ts.map +1 -1
- package/dist/focus/FocusScope.d.ts +9 -5
- package/dist/focus/FocusScope.d.ts.map +1 -1
- package/dist/focus/createAutoFocus.d.ts +3 -0
- package/dist/focus/createAutoFocus.d.ts.map +1 -1
- package/dist/focus/createFocusRestore.d.ts +3 -0
- package/dist/focus/createFocusRestore.d.ts.map +1 -1
- package/dist/focus/createHasTabbableChild.d.ts +13 -0
- package/dist/focus/createHasTabbableChild.d.ts.map +1 -0
- package/dist/focus/createVirtualFocus.d.ts +4 -1
- package/dist/focus/createVirtualFocus.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 +1 -1
- package/dist/form/createFormReset.d.ts +1 -7
- package/dist/form/createFormReset.d.ts.map +1 -1
- package/dist/form/createFormValidation.d.ts +1 -9
- package/dist/form/createFormValidation.d.ts.map +1 -1
- package/dist/grid/GridKeyboardDelegate.d.ts.map +1 -1
- package/dist/grid/createGrid.d.ts +1 -5
- package/dist/grid/createGrid.d.ts.map +1 -1
- package/dist/grid/createGridCell.d.ts +1 -5
- package/dist/grid/createGridCell.d.ts.map +1 -1
- package/dist/grid/createGridRow.d.ts +1 -5
- package/dist/grid/createGridRow.d.ts.map +1 -1
- package/dist/grid/index.d.ts +2 -2
- package/dist/grid/intl/index.d.ts +18 -0
- package/dist/grid/intl/index.d.ts.map +1 -0
- package/dist/grid/types.d.ts +25 -2
- package/dist/grid/types.d.ts.map +1 -1
- package/dist/gridlist/createGridList.d.ts +3 -5
- package/dist/gridlist/createGridList.d.ts.map +1 -1
- package/dist/gridlist/createGridListItem.d.ts +1 -5
- package/dist/gridlist/createGridListItem.d.ts.map +1 -1
- package/dist/gridlist/createGridListSection.d.ts +0 -4
- package/dist/gridlist/createGridListSection.d.ts.map +1 -1
- package/dist/gridlist/createGridListSelectionCheckbox.d.ts +1 -5
- package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +1 -1
- package/dist/gridlist/intl/index.d.ts +14 -0
- package/dist/gridlist/intl/index.d.ts.map +1 -0
- package/dist/gridlist/types.d.ts +56 -2
- package/dist/gridlist/types.d.ts.map +1 -1
- package/dist/i18n/compileIcu.d.ts +24 -0
- package/dist/i18n/compileIcu.d.ts.map +1 -0
- package/dist/i18n/createCollator.d.ts +0 -7
- package/dist/i18n/createCollator.d.ts.map +1 -1
- package/dist/i18n/createDateFormatter.d.ts +0 -7
- package/dist/i18n/createDateFormatter.d.ts.map +1 -1
- package/dist/i18n/createFilter.d.ts +0 -7
- package/dist/i18n/createFilter.d.ts.map +1 -1
- package/dist/i18n/createListFormatter.d.ts +9 -0
- package/dist/i18n/createListFormatter.d.ts.map +1 -0
- package/dist/i18n/createNumberFormatter.d.ts +0 -7
- package/dist/i18n/createNumberFormatter.d.ts.map +1 -1
- package/dist/i18n/createStringFormatter.d.ts +14 -4
- package/dist/i18n/createStringFormatter.d.ts.map +1 -1
- package/dist/i18n/index.d.ts +1 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +2 -2
- package/dist/i18n/index.jsx +2 -2
- package/dist/i18n/locale.d.ts +2 -8
- package/dist/i18n/locale.d.ts.map +1 -1
- package/dist/i18n/utils.d.ts +0 -7
- package/dist/i18n/utils.d.ts.map +1 -1
- package/dist/index.d.ts +10 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -21
- package/dist/index.jsx +27 -21
- package/dist/interactions/FocusableProvider.d.ts +3 -2
- package/dist/interactions/FocusableProvider.d.ts.map +1 -1
- package/dist/interactions/PressEvent.d.ts +2 -1
- package/dist/interactions/PressEvent.d.ts.map +1 -1
- package/dist/interactions/createContextMenu.d.ts +24 -0
- package/dist/interactions/createContextMenu.d.ts.map +1 -0
- package/dist/interactions/createFocus.d.ts +3 -2
- package/dist/interactions/createFocus.d.ts.map +1 -1
- package/dist/interactions/createFocusRing.d.ts +2 -1
- package/dist/interactions/createFocusRing.d.ts.map +1 -1
- package/dist/interactions/createFocusWithin.d.ts +1 -6
- package/dist/interactions/createFocusWithin.d.ts.map +1 -1
- package/dist/interactions/createFocusable.d.ts +2 -6
- package/dist/interactions/createFocusable.d.ts.map +1 -1
- package/dist/interactions/createHover.d.ts +3 -10
- package/dist/interactions/createHover.d.ts.map +1 -1
- package/dist/interactions/createInteractionModality.d.ts +12 -10
- package/dist/interactions/createInteractionModality.d.ts.map +1 -1
- package/dist/interactions/createKeyboard.d.ts +12 -3
- package/dist/interactions/createKeyboard.d.ts.map +1 -1
- package/dist/interactions/createKeyboardShortcutHandler.d.ts +24 -0
- package/dist/interactions/createKeyboardShortcutHandler.d.ts.map +1 -0
- package/dist/interactions/createLongPress.d.ts +4 -7
- package/dist/interactions/createLongPress.d.ts.map +1 -1
- package/dist/interactions/createMove.d.ts +1 -6
- package/dist/interactions/createMove.d.ts.map +1 -1
- package/dist/interactions/createPress.d.ts +2 -7
- package/dist/interactions/createPress.d.ts.map +1 -1
- package/dist/interactions/index.d.ts +1 -1
- package/dist/interactions/index.d.ts.map +1 -1
- package/dist/interactions/index.js +5 -3
- package/dist/interactions/index.jsx +5 -3
- package/dist/label/createField.d.ts +7 -1
- package/dist/label/createField.d.ts.map +1 -1
- package/dist/label/createLabel.d.ts +1 -1
- package/dist/label/createLabel.d.ts.map +1 -1
- package/dist/label/createLabels.d.ts +0 -7
- package/dist/label/createLabels.d.ts.map +1 -1
- package/dist/landmark/createLandmark.d.ts +4 -1
- package/dist/landmark/createLandmark.d.ts.map +1 -1
- package/dist/link/createLink.d.ts +1 -1
- package/dist/link/createLink.d.ts.map +1 -1
- package/dist/listbox/createListBox.d.ts +8 -7
- package/dist/listbox/createListBox.d.ts.map +1 -1
- package/dist/listbox/createOption.d.ts +7 -1
- package/dist/listbox/createOption.d.ts.map +1 -1
- package/dist/live-announcer/announce.d.ts +2 -13
- package/dist/live-announcer/announce.d.ts.map +1 -1
- package/dist/menu/createMenu.d.ts +3 -7
- package/dist/menu/createMenu.d.ts.map +1 -1
- package/dist/menu/createMenuItem.d.ts +2 -1
- package/dist/menu/createMenuItem.d.ts.map +1 -1
- package/dist/menu/createMenuTrigger.d.ts +24 -20
- package/dist/menu/createMenuTrigger.d.ts.map +1 -1
- package/dist/menu/index.d.ts +1 -1
- package/dist/menu/index.d.ts.map +1 -1
- package/dist/menu/intl/index.d.ts +4 -0
- package/dist/menu/intl/index.d.ts.map +1 -0
- package/dist/meter/createMeter.d.ts +2 -1
- package/dist/meter/createMeter.d.ts.map +1 -1
- package/dist/numberfield/createNumberField.d.ts +29 -6
- package/dist/numberfield/createNumberField.d.ts.map +1 -1
- package/dist/overlays/ariaHideOutside.d.ts +0 -4
- package/dist/overlays/ariaHideOutside.d.ts.map +1 -1
- package/dist/overlays/createInteractOutside.d.ts +2 -5
- package/dist/overlays/createInteractOutside.d.ts.map +1 -1
- package/dist/overlays/createModal.d.ts +3 -6
- package/dist/overlays/createModal.d.ts.map +1 -1
- package/dist/overlays/createOverlay.d.ts +1 -5
- package/dist/overlays/createOverlay.d.ts.map +1 -1
- package/dist/overlays/createOverlayTrigger.d.ts +2 -6
- package/dist/overlays/createOverlayTrigger.d.ts.map +1 -1
- package/dist/overlays/createPreventScroll.d.ts +0 -4
- package/dist/overlays/createPreventScroll.d.ts.map +1 -1
- package/dist/overlays/index.d.ts +1 -0
- package/dist/overlays/index.d.ts.map +1 -1
- package/dist/overlays/index.js +3 -2
- package/dist/overlays/index.jsx +3 -2
- package/dist/overlays/intl/index.d.ts +13 -0
- package/dist/overlays/intl/index.d.ts.map +1 -0
- package/dist/popover/calculatePosition.d.ts +1 -1
- package/dist/popover/calculatePosition.d.ts.map +1 -1
- package/dist/popover/createOverlayPosition.d.ts +1 -7
- package/dist/popover/createOverlayPosition.d.ts.map +1 -1
- package/dist/popover/createPopover.d.ts +6 -7
- package/dist/popover/createPopover.d.ts.map +1 -1
- package/dist/progress/createProgressBar.d.ts +2 -10
- package/dist/progress/createProgressBar.d.ts.map +1 -1
- package/dist/radio/createRadio.d.ts +8 -1
- package/dist/radio/createRadio.d.ts.map +1 -1
- package/dist/radio/createRadioGroup.d.ts +1 -9
- package/dist/radio/createRadioGroup.d.ts.map +1 -1
- package/dist/searchfield/createSearchField.d.ts +1 -1
- package/dist/searchfield/createSearchField.d.ts.map +1 -1
- package/dist/searchfield/intl/index.d.ts +13 -0
- package/dist/searchfield/intl/index.d.ts.map +1 -0
- package/dist/select/createHiddenSelect.d.ts +3 -10
- package/dist/select/createHiddenSelect.d.ts.map +1 -1
- package/dist/select/createSelect.d.ts +10 -6
- package/dist/select/createSelect.d.ts.map +1 -1
- package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -1
- package/dist/selection/ListKeyboardDelegate.d.ts +2 -1
- package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -1
- package/dist/selection/constants.d.ts.map +1 -1
- package/dist/selection/createCollectionRowInteraction.d.ts +12 -1
- package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -1
- package/dist/selection/createScrollIntoViewOnFocus.d.ts +0 -11
- package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -1
- package/dist/selection/createSelectableCollection.d.ts +1 -23
- package/dist/selection/createSelectableCollection.d.ts.map +1 -1
- package/dist/selection/createSelectableItem.d.ts +2 -29
- package/dist/selection/createSelectableItem.d.ts.map +1 -1
- package/dist/selection/createSelectableList.d.ts +4 -17
- package/dist/selection/createSelectableList.d.ts.map +1 -1
- package/dist/selection/createTypeSelect.d.ts +2 -8
- package/dist/selection/createTypeSelect.d.ts.map +1 -1
- package/dist/selection/index.js +3 -2
- package/dist/selection/index.jsx +3 -2
- package/dist/selection/selectItem.d.ts.map +1 -1
- package/dist/selection/utils.d.ts +1 -1
- package/dist/selection/utils.d.ts.map +1 -1
- package/dist/separator/createSeparator.d.ts +3 -1
- package/dist/separator/createSeparator.d.ts.map +1 -1
- package/dist/slider/createSlider.d.ts +1 -6
- package/dist/slider/createSlider.d.ts.map +1 -1
- package/dist/spinbutton/createSpinButton.d.ts +0 -9
- package/dist/spinbutton/createSpinButton.d.ts.map +1 -1
- package/dist/spinbutton/index.d.ts +2 -2
- package/dist/spinbutton/index.d.ts.map +1 -1
- package/dist/spinbutton/intl.d.ts.map +1 -1
- package/dist/ssr/index.d.ts +3 -9
- package/dist/ssr/index.d.ts.map +1 -1
- package/dist/ssr/index.js +47 -26
- package/dist/ssr/index.js.map +1 -1
- package/dist/ssr/index.jsx +47 -26
- package/dist/ssr/index.jsx.map +1 -1
- package/dist/steplist/createStepList.d.ts +1 -1
- package/dist/steplist/createStepList.d.ts.map +1 -1
- package/dist/switch/createSwitch.d.ts +2 -1
- package/dist/switch/createSwitch.d.ts.map +1 -1
- package/dist/table/createTable.d.ts +1 -5
- package/dist/table/createTable.d.ts.map +1 -1
- package/dist/table/createTableCell.d.ts +1 -5
- package/dist/table/createTableCell.d.ts.map +1 -1
- package/dist/table/createTableColumnHeader.d.ts +1 -5
- package/dist/table/createTableColumnHeader.d.ts.map +1 -1
- package/dist/table/createTableColumnResize.d.ts +2 -8
- package/dist/table/createTableColumnResize.d.ts.map +1 -1
- package/dist/table/createTableHeaderRow.d.ts +1 -5
- package/dist/table/createTableHeaderRow.d.ts.map +1 -1
- package/dist/table/createTableRow.d.ts +1 -5
- package/dist/table/createTableRow.d.ts.map +1 -1
- package/dist/table/createTableRowGroup.d.ts +1 -5
- package/dist/table/createTableRowGroup.d.ts.map +1 -1
- package/dist/table/createTableSelectAllCheckbox.d.ts +1 -5
- package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
- package/dist/table/createTableSelectionCheckbox.d.ts +1 -5
- package/dist/table/createTableSelectionCheckbox.d.ts.map +1 -1
- package/dist/table/index.d.ts +2 -2
- package/dist/table/intl/index.d.ts +23 -0
- package/dist/table/intl/index.d.ts.map +1 -0
- package/dist/table/types.d.ts +44 -2
- package/dist/table/types.d.ts.map +1 -1
- package/dist/table/utils.d.ts.map +1 -1
- package/dist/tabs/createTabs.d.ts +5 -9
- package/dist/tabs/createTabs.d.ts.map +1 -1
- package/dist/tag/createTag.d.ts +4 -8
- package/dist/tag/createTag.d.ts.map +1 -1
- package/dist/tag/createTagGroup.d.ts +0 -9
- package/dist/tag/createTagGroup.d.ts.map +1 -1
- package/dist/tag/intl/index.d.ts +14 -0
- package/dist/tag/intl/index.d.ts.map +1 -0
- package/dist/textfield/createTextField.d.ts +6 -8
- package/dist/textfield/createTextField.d.ts.map +1 -1
- package/dist/toast/createToast.d.ts +1 -8
- package/dist/toast/createToast.d.ts.map +1 -1
- package/dist/toast/createToastRegion.d.ts +7 -18
- package/dist/toast/createToastRegion.d.ts.map +1 -1
- package/dist/toast/intl/index.d.ts +14 -0
- package/dist/toast/intl/index.d.ts.map +1 -0
- package/dist/toggle/createToggle.d.ts +8 -1
- package/dist/toggle/createToggle.d.ts.map +1 -1
- package/dist/tokenfield/createToken.d.ts +15 -0
- package/dist/tokenfield/createToken.d.ts.map +1 -0
- package/dist/tokenfield/createTokenField.d.ts +52 -0
- package/dist/tokenfield/createTokenField.d.ts.map +1 -0
- package/dist/tokenfield/index.d.ts +3 -0
- package/dist/tokenfield/index.d.ts.map +1 -0
- package/dist/tokenfield/index.js +2 -0
- package/dist/tokenfield/index.jsx +2 -0
- package/dist/toolbar/createToolbar.d.ts +1 -1
- package/dist/toolbar/createToolbar.d.ts.map +1 -1
- package/dist/tooltip/createPreviewTrigger.d.ts +23 -0
- package/dist/tooltip/createPreviewTrigger.d.ts.map +1 -0
- package/dist/tooltip/createSafeArea.d.ts +20 -0
- package/dist/tooltip/createSafeArea.d.ts.map +1 -0
- package/dist/tooltip/createTooltip.d.ts +1 -1
- package/dist/tooltip/createTooltip.d.ts.map +1 -1
- package/dist/tooltip/createTooltipTrigger.d.ts +1 -9
- package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
- package/dist/tooltip/index.d.ts +2 -0
- package/dist/tooltip/index.d.ts.map +1 -1
- package/dist/tooltip/index.js +2 -2
- package/dist/tooltip/index.jsx +2 -2
- package/dist/tooltip/intl/index.d.ts +4 -0
- package/dist/tooltip/intl/index.d.ts.map +1 -0
- package/dist/tree/createTree.d.ts +1 -5
- package/dist/tree/createTree.d.ts.map +1 -1
- package/dist/tree/createTreeItem.d.ts +1 -5
- package/dist/tree/createTreeItem.d.ts.map +1 -1
- package/dist/tree/createTreeSelectionCheckbox.d.ts +1 -5
- package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
- package/dist/tree/intl/index.d.ts +14 -0
- package/dist/tree/intl/index.d.ts.map +1 -0
- package/dist/tree/types.d.ts +35 -2
- package/dist/tree/types.d.ts.map +1 -1
- package/dist/utils/ShadowTreeWalker.d.ts +30 -0
- package/dist/utils/ShadowTreeWalker.d.ts.map +1 -0
- package/dist/utils/animation.d.ts +1 -29
- package/dist/utils/animation.d.ts.map +1 -1
- package/dist/utils/capture.d.ts +14 -0
- package/dist/utils/capture.d.ts.map +1 -0
- package/dist/utils/createDescription.d.ts +1 -25
- package/dist/utils/createDescription.d.ts.map +1 -1
- package/dist/utils/dom.d.ts +45 -11
- package/dist/utils/dom.d.ts.map +1 -1
- package/dist/utils/domAttrs.d.ts +16 -0
- package/dist/utils/domAttrs.d.ts.map +1 -0
- package/dist/utils/env.d.ts +2 -0
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/events.d.ts +0 -4
- package/dist/utils/events.d.ts.map +1 -1
- package/dist/utils/filterDOMProps.d.ts +0 -6
- package/dist/utils/filterDOMProps.d.ts.map +1 -1
- package/dist/utils/focus.d.ts +19 -6
- package/dist/utils/focus.d.ts.map +1 -1
- package/dist/utils/geometry.d.ts +1 -1
- package/dist/utils/geometry.d.ts.map +1 -1
- package/dist/utils/getMetaValue.d.ts +13 -0
- package/dist/utils/getMetaValue.d.ts.map +1 -0
- package/dist/utils/getNonce.d.ts +9 -0
- package/dist/utils/getNonce.d.ts.map +1 -0
- package/dist/utils/globalListeners.d.ts +0 -6
- package/dist/utils/globalListeners.d.ts.map +1 -1
- package/dist/utils/index.d.ts +6 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +7 -4
- package/dist/utils/index.jsx +7 -4
- package/dist/utils/keyboard.d.ts +0 -4
- package/dist/utils/keyboard.d.ts.map +1 -1
- package/dist/utils/mergeProps.d.ts +5 -2
- package/dist/utils/mergeProps.d.ts.map +1 -1
- package/dist/utils/owner.d.ts +14 -0
- package/dist/utils/owner.d.ts.map +1 -0
- package/dist/utils/platform.d.ts +0 -4
- package/dist/utils/platform.d.ts.map +1 -1
- package/dist/utils/reactivity.d.ts +2 -0
- package/dist/utils/reactivity.d.ts.map +1 -1
- package/dist/utils/refs.d.ts +20 -0
- package/dist/utils/refs.d.ts.map +1 -0
- package/dist/utils/runAfterTransition.d.ts +2 -0
- package/dist/utils/runAfterTransition.d.ts.map +1 -0
- package/dist/utils/scrollIntoView.d.ts +0 -4
- package/dist/utils/scrollIntoView.d.ts.map +1 -1
- package/dist/utils/splitProps.d.ts +17 -0
- package/dist/utils/splitProps.d.ts.map +1 -0
- package/dist/utils/textSelection.d.ts +0 -8
- package/dist/utils/textSelection.d.ts.map +1 -1
- package/dist/virtualizer/ScrollView.d.ts +38 -0
- package/dist/virtualizer/ScrollView.d.ts.map +1 -0
- package/dist/virtualizer/index.d.ts +3 -0
- package/dist/virtualizer/index.d.ts.map +1 -0
- package/dist/virtualizer/index.js +2 -0
- package/dist/virtualizer/index.jsx +2 -0
- package/dist/virtualizer/utils.d.ts +10 -0
- package/dist/virtualizer/utils.d.ts.map +1 -0
- package/dist/visually-hidden/createVisuallyHidden.d.ts +2 -9
- package/dist/visually-hidden/createVisuallyHidden.d.ts.map +1 -1
- package/dist/visually-hidden/index.js +1 -1
- package/dist/visually-hidden/index.jsx +1 -1
- package/package.json +30 -11
- package/src/actiongroup/createActionGroup.ts +49 -27
- package/src/autocomplete/createAutocomplete.ts +32 -5
- package/src/autocomplete/intl/ar-AE.json +3 -0
- package/src/autocomplete/intl/bg-BG.json +3 -0
- package/src/autocomplete/intl/cs-CZ.json +3 -0
- package/src/autocomplete/intl/da-DK.json +3 -0
- package/src/autocomplete/intl/de-DE.json +3 -0
- package/src/autocomplete/intl/el-GR.json +3 -0
- package/src/autocomplete/intl/en-US.json +3 -0
- package/src/autocomplete/intl/es-ES.json +3 -0
- package/src/autocomplete/intl/et-EE.json +3 -0
- package/src/autocomplete/intl/fi-FI.json +3 -0
- package/src/autocomplete/intl/fr-FR.json +3 -0
- package/src/autocomplete/intl/he-IL.json +3 -0
- package/src/autocomplete/intl/hr-HR.json +3 -0
- package/src/autocomplete/intl/hu-HU.json +3 -0
- package/src/autocomplete/intl/index.ts +122 -0
- package/src/autocomplete/intl/it-IT.json +3 -0
- package/src/autocomplete/intl/ja-JP.json +3 -0
- package/src/autocomplete/intl/ko-KR.json +3 -0
- package/src/autocomplete/intl/lt-LT.json +3 -0
- package/src/autocomplete/intl/lv-LV.json +3 -0
- package/src/autocomplete/intl/nb-NO.json +3 -0
- package/src/autocomplete/intl/nl-NL.json +3 -0
- package/src/autocomplete/intl/pl-PL.json +3 -0
- package/src/autocomplete/intl/pt-BR.json +3 -0
- package/src/autocomplete/intl/pt-PT.json +3 -0
- package/src/autocomplete/intl/ro-RO.json +3 -0
- package/src/autocomplete/intl/ru-RU.json +3 -0
- package/src/autocomplete/intl/sk-SK.json +3 -0
- package/src/autocomplete/intl/sl-SI.json +3 -0
- package/src/autocomplete/intl/sr-SP.json +3 -0
- package/src/autocomplete/intl/sv-SE.json +3 -0
- package/src/autocomplete/intl/tr-TR.json +3 -0
- package/src/autocomplete/intl/uk-UA.json +3 -0
- package/src/autocomplete/intl/zh-CN.json +3 -0
- package/src/autocomplete/intl/zh-TW.json +3 -0
- package/src/breadcrumbs/createBreadcrumbs.ts +18 -1
- package/src/breadcrumbs/intl/ar-AE.json +3 -0
- package/src/breadcrumbs/intl/bg-BG.json +3 -0
- package/src/breadcrumbs/intl/cs-CZ.json +3 -0
- package/src/breadcrumbs/intl/da-DK.json +3 -0
- package/src/breadcrumbs/intl/de-DE.json +3 -0
- package/src/breadcrumbs/intl/el-GR.json +3 -0
- package/src/breadcrumbs/intl/en-US.json +3 -0
- package/src/breadcrumbs/intl/es-ES.json +3 -0
- package/src/breadcrumbs/intl/et-EE.json +3 -0
- package/src/breadcrumbs/intl/fi-FI.json +3 -0
- package/src/breadcrumbs/intl/fr-FR.json +3 -0
- package/src/breadcrumbs/intl/he-IL.json +3 -0
- package/src/breadcrumbs/intl/hr-HR.json +3 -0
- package/src/breadcrumbs/intl/hu-HU.json +3 -0
- package/src/breadcrumbs/intl/index.ts +122 -0
- package/src/breadcrumbs/intl/it-IT.json +3 -0
- package/src/breadcrumbs/intl/ja-JP.json +3 -0
- package/src/breadcrumbs/intl/ko-KR.json +3 -0
- package/src/breadcrumbs/intl/lt-LT.json +3 -0
- package/src/breadcrumbs/intl/lv-LV.json +3 -0
- package/src/breadcrumbs/intl/nb-NO.json +3 -0
- package/src/breadcrumbs/intl/nl-NL.json +3 -0
- package/src/breadcrumbs/intl/pl-PL.json +3 -0
- package/src/breadcrumbs/intl/pt-BR.json +3 -0
- package/src/breadcrumbs/intl/pt-PT.json +3 -0
- package/src/breadcrumbs/intl/ro-RO.json +3 -0
- package/src/breadcrumbs/intl/ru-RU.json +3 -0
- package/src/breadcrumbs/intl/sk-SK.json +3 -0
- package/src/breadcrumbs/intl/sl-SI.json +3 -0
- package/src/breadcrumbs/intl/sr-SP.json +3 -0
- package/src/breadcrumbs/intl/sv-SE.json +3 -0
- package/src/breadcrumbs/intl/tr-TR.json +3 -0
- package/src/breadcrumbs/intl/uk-UA.json +3 -0
- package/src/breadcrumbs/intl/zh-CN.json +3 -0
- package/src/breadcrumbs/intl/zh-TW.json +3 -0
- package/src/button/createButton.ts +15 -1
- package/src/button/createToggleButton.ts +18 -5
- package/src/button/createToggleButtonGroup.ts +23 -8
- package/src/button/types.ts +16 -0
- package/src/calendar/createCalendar.ts +22 -3
- package/src/calendar/createCalendarCell.ts +104 -15
- package/src/calendar/createCalendarGrid.ts +37 -13
- package/src/calendar/createCalendarMonthPicker.ts +14 -0
- package/src/calendar/createCalendarYearPicker.ts +14 -0
- package/src/calendar/createRangeCalendar.ts +124 -1
- package/src/calendar/createRangeCalendarCell.ts +179 -40
- package/src/calendar/intl/index.ts +37 -0
- package/src/calendar/utils.ts +14 -0
- package/src/checkbox/createCheckbox.ts +32 -17
- package/src/checkbox/createCheckboxGroup.ts +31 -13
- package/src/checkbox/createCheckboxGroupItem.ts +15 -1
- package/src/collections/index.ts +21 -3
- package/src/color/createColorArea.ts +226 -29
- package/src/color/createColorField.ts +98 -22
- package/src/color/createColorSlider.ts +24 -3
- package/src/color/createColorSwatch.ts +18 -1
- package/src/color/createColorWheel.ts +27 -5
- package/src/color/intl/index.ts +35 -0
- package/src/color/types.ts +47 -1
- package/src/combobox/createComboBox.ts +303 -152
- package/src/combobox/intl/generated-locales.ts +38 -1
- package/src/combobox/intl/index.ts +38 -2
- package/src/datepicker/createDateField.ts +38 -22
- package/src/datepicker/createDatePicker.ts +14 -0
- package/src/datepicker/createDatePickerGroup.ts +24 -12
- package/src/datepicker/createDateRangePicker.ts +14 -0
- package/src/datepicker/createDateSegment.ts +110 -46
- package/src/datepicker/createDisplayNames.ts +16 -1
- package/src/datepicker/createTimeField.ts +15 -5
- package/src/datepicker/intl.ts +623 -544
- package/src/dialog/createDialog.ts +57 -30
- package/src/dialog/types.ts +14 -0
- package/src/disclosure/createDisclosure.ts +28 -6
- package/src/disclosure/createDisclosureGroup.ts +3 -4
- package/src/dnd/DragManager.ts +60 -9
- package/src/dnd/DropTargetKeyboardNavigation.ts +8 -6
- package/src/dnd/createDrag.ts +18 -1
- package/src/dnd/createDraggableCollection.ts +96 -32
- package/src/dnd/createDraggableItem.ts +73 -31
- package/src/dnd/createDrop.ts +18 -1
- package/src/dnd/createDropIndicator.ts +92 -0
- package/src/dnd/createDroppableCollection.ts +113 -48
- package/src/dnd/createDroppableItem.ts +161 -13
- package/src/dnd/index.ts +3 -0
- package/src/dnd/intl/index.ts +77 -66
- package/src/dnd/types.ts +20 -1
- package/src/dnd/utils.ts +19 -0
- package/src/focus/FocusScope.tsx +542 -157
- package/src/focus/createAutoFocus.ts +94 -68
- package/src/focus/createFocusRestore.ts +16 -12
- package/src/focus/createHasTabbableChild.ts +78 -0
- package/src/focus/createVirtualFocus.ts +21 -5
- package/src/focus/virtualFocus.ts +1 -1
- package/src/form/createFormReset.ts +40 -17
- package/src/form/createFormValidation.ts +128 -86
- package/src/grid/GridKeyboardDelegate.ts +14 -0
- package/src/grid/createGrid.ts +17 -2
- package/src/grid/createGridCell.ts +17 -2
- package/src/grid/createGridRow.ts +17 -2
- package/src/grid/index.ts +2 -2
- package/src/grid/intl/ar-AE.json +8 -0
- package/src/grid/intl/bg-BG.json +8 -0
- package/src/grid/intl/cs-CZ.json +8 -0
- package/src/grid/intl/da-DK.json +8 -0
- package/src/grid/intl/de-DE.json +8 -0
- package/src/grid/intl/el-GR.json +8 -0
- package/src/grid/intl/en-US.json +8 -0
- package/src/grid/intl/es-ES.json +8 -0
- package/src/grid/intl/et-EE.json +8 -0
- package/src/grid/intl/fi-FI.json +8 -0
- package/src/grid/intl/fr-FR.json +8 -0
- package/src/grid/intl/he-IL.json +8 -0
- package/src/grid/intl/hr-HR.json +8 -0
- package/src/grid/intl/hu-HU.json +8 -0
- package/src/grid/intl/index.ts +127 -0
- package/src/grid/intl/it-IT.json +8 -0
- package/src/grid/intl/ja-JP.json +8 -0
- package/src/grid/intl/ko-KR.json +8 -0
- package/src/grid/intl/lt-LT.json +8 -0
- package/src/grid/intl/lv-LV.json +8 -0
- package/src/grid/intl/nb-NO.json +8 -0
- package/src/grid/intl/nl-NL.json +8 -0
- package/src/grid/intl/pl-PL.json +8 -0
- package/src/grid/intl/pt-BR.json +8 -0
- package/src/grid/intl/pt-PT.json +8 -0
- package/src/grid/intl/ro-RO.json +8 -0
- package/src/grid/intl/ru-RU.json +8 -0
- package/src/grid/intl/sk-SK.json +8 -0
- package/src/grid/intl/sl-SI.json +8 -0
- package/src/grid/intl/sr-SP.json +8 -0
- package/src/grid/intl/sv-SE.json +8 -0
- package/src/grid/intl/tr-TR.json +8 -0
- package/src/grid/intl/uk-UA.json +8 -0
- package/src/grid/intl/zh-CN.json +8 -0
- package/src/grid/intl/zh-TW.json +8 -0
- package/src/grid/types.ts +25 -2
- package/src/gridlist/createGridList.ts +172 -42
- package/src/gridlist/createGridListItem.ts +51 -13
- package/src/gridlist/createGridListSection.ts +14 -0
- package/src/gridlist/createGridListSelectionCheckbox.ts +31 -4
- package/src/gridlist/intl/ar-AE.json +4 -0
- package/src/gridlist/intl/bg-BG.json +4 -0
- package/src/gridlist/intl/cs-CZ.json +4 -0
- package/src/gridlist/intl/da-DK.json +4 -0
- package/src/gridlist/intl/de-DE.json +4 -0
- package/src/gridlist/intl/el-GR.json +4 -0
- package/src/gridlist/intl/en-US.json +4 -0
- package/src/gridlist/intl/es-ES.json +4 -0
- package/src/gridlist/intl/et-EE.json +4 -0
- package/src/gridlist/intl/fi-FI.json +4 -0
- package/src/gridlist/intl/fr-FR.json +4 -0
- package/src/gridlist/intl/he-IL.json +4 -0
- package/src/gridlist/intl/hr-HR.json +4 -0
- package/src/gridlist/intl/hu-HU.json +4 -0
- package/src/gridlist/intl/index.ts +123 -0
- package/src/gridlist/intl/it-IT.json +4 -0
- package/src/gridlist/intl/ja-JP.json +4 -0
- package/src/gridlist/intl/ko-KR.json +4 -0
- package/src/gridlist/intl/lt-LT.json +4 -0
- package/src/gridlist/intl/lv-LV.json +4 -0
- package/src/gridlist/intl/nb-NO.json +4 -0
- package/src/gridlist/intl/nl-NL.json +4 -0
- package/src/gridlist/intl/pl-PL.json +4 -0
- package/src/gridlist/intl/pt-BR.json +4 -0
- package/src/gridlist/intl/pt-PT.json +4 -0
- package/src/gridlist/intl/ro-RO.json +4 -0
- package/src/gridlist/intl/ru-RU.json +4 -0
- package/src/gridlist/intl/sk-SK.json +4 -0
- package/src/gridlist/intl/sl-SI.json +4 -0
- package/src/gridlist/intl/sr-SP.json +4 -0
- package/src/gridlist/intl/sv-SE.json +4 -0
- package/src/gridlist/intl/tr-TR.json +4 -0
- package/src/gridlist/intl/uk-UA.json +4 -0
- package/src/gridlist/intl/zh-CN.json +4 -0
- package/src/gridlist/intl/zh-TW.json +4 -0
- package/src/gridlist/types.ts +54 -2
- package/src/i18n/compileIcu.ts +440 -0
- package/src/i18n/createCollator.ts +14 -0
- package/src/i18n/createDateFormatter.ts +14 -0
- package/src/i18n/createFilter.ts +14 -0
- package/src/i18n/createListFormatter.ts +38 -0
- package/src/i18n/createNumberFormatter.ts +14 -0
- package/src/i18n/createStringFormatter.ts +64 -8
- package/src/i18n/index.ts +3 -0
- package/src/i18n/locale.tsx +60 -19
- package/src/i18n/utils.ts +14 -0
- package/src/index.ts +49 -1
- package/src/interactions/FocusableProvider.tsx +28 -11
- package/src/interactions/PressEvent.ts +16 -1
- package/src/interactions/createContextMenu.ts +108 -0
- package/src/interactions/createFocus.ts +26 -6
- package/src/interactions/createFocusRing.ts +28 -13
- package/src/interactions/createFocusWithin.ts +23 -3
- package/src/interactions/createFocusable.ts +45 -28
- package/src/interactions/createHover.ts +102 -81
- package/src/interactions/createInteractionModality.ts +135 -45
- package/src/interactions/createKeyboard.ts +85 -9
- package/src/interactions/createKeyboardShortcutHandler.ts +157 -0
- package/src/interactions/createLongPress.ts +31 -9
- package/src/interactions/createMove.ts +24 -3
- package/src/interactions/createPress.ts +85 -41
- package/src/interactions/index.ts +1 -0
- package/src/label/createField.ts +58 -63
- package/src/label/createLabel.ts +21 -4
- package/src/label/createLabels.ts +25 -1
- package/src/landmark/createLandmark.ts +27 -4
- package/src/link/createLink.ts +20 -12
- package/src/listbox/createListBox.ts +86 -310
- package/src/listbox/createOption.ts +50 -14
- package/src/live-announcer/announce.ts +21 -6
- package/src/menu/createMenu.ts +92 -5
- package/src/menu/createMenuItem.ts +40 -23
- package/src/menu/createMenuTrigger.ts +179 -51
- package/src/menu/index.ts +2 -0
- package/src/menu/intl/index.ts +130 -0
- package/src/meter/createMeter.ts +20 -5
- package/src/numberfield/createNumberField.ts +254 -14
- package/src/overlays/ariaHideOutside.ts +76 -11
- package/src/overlays/createInteractOutside.ts +74 -47
- package/src/overlays/createModal.tsx +42 -27
- package/src/overlays/createOverlay.ts +107 -66
- package/src/overlays/createOverlayTrigger.ts +21 -6
- package/src/overlays/createPreventScroll.ts +92 -62
- package/src/overlays/index.ts +2 -0
- package/src/overlays/intl/ar-AE.json +3 -0
- package/src/overlays/intl/bg-BG.json +3 -0
- package/src/overlays/intl/cs-CZ.json +3 -0
- package/src/overlays/intl/da-DK.json +3 -0
- package/src/overlays/intl/de-DE.json +3 -0
- package/src/overlays/intl/el-GR.json +3 -0
- package/src/overlays/intl/en-US.json +3 -0
- package/src/overlays/intl/es-ES.json +3 -0
- package/src/overlays/intl/et-EE.json +3 -0
- package/src/overlays/intl/fi-FI.json +3 -0
- package/src/overlays/intl/fr-FR.json +3 -0
- package/src/overlays/intl/he-IL.json +3 -0
- package/src/overlays/intl/hr-HR.json +3 -0
- package/src/overlays/intl/hu-HU.json +3 -0
- package/src/overlays/intl/index.ts +122 -0
- package/src/overlays/intl/it-IT.json +3 -0
- package/src/overlays/intl/ja-JP.json +3 -0
- package/src/overlays/intl/ko-KR.json +3 -0
- package/src/overlays/intl/lt-LT.json +3 -0
- package/src/overlays/intl/lv-LV.json +3 -0
- package/src/overlays/intl/nb-NO.json +3 -0
- package/src/overlays/intl/nl-NL.json +3 -0
- package/src/overlays/intl/pl-PL.json +3 -0
- package/src/overlays/intl/pt-BR.json +3 -0
- package/src/overlays/intl/pt-PT.json +3 -0
- package/src/overlays/intl/ro-RO.json +3 -0
- package/src/overlays/intl/ru-RU.json +3 -0
- package/src/overlays/intl/sk-SK.json +3 -0
- package/src/overlays/intl/sl-SI.json +3 -0
- package/src/overlays/intl/sr-SP.json +3 -0
- package/src/overlays/intl/sv-SE.json +3 -0
- package/src/overlays/intl/tr-TR.json +3 -0
- package/src/overlays/intl/uk-UA.json +3 -0
- package/src/overlays/intl/zh-CN.json +3 -0
- package/src/overlays/intl/zh-TW.json +3 -0
- package/src/popover/calculatePosition.ts +21 -3
- package/src/popover/createOverlayPosition.ts +149 -41
- package/src/popover/createPopover.ts +88 -23
- package/src/progress/createProgressBar.ts +19 -4
- package/src/radio/createRadio.ts +80 -25
- package/src/radio/createRadioGroup.ts +47 -13
- package/src/searchfield/createSearchField.ts +31 -2
- package/src/searchfield/intl/ar-AE.json +3 -0
- package/src/searchfield/intl/bg-BG.json +3 -0
- package/src/searchfield/intl/cs-CZ.json +3 -0
- package/src/searchfield/intl/da-DK.json +3 -0
- package/src/searchfield/intl/de-DE.json +3 -0
- package/src/searchfield/intl/el-GR.json +3 -0
- package/src/searchfield/intl/en-US.json +3 -0
- package/src/searchfield/intl/es-ES.json +3 -0
- package/src/searchfield/intl/et-EE.json +3 -0
- package/src/searchfield/intl/fi-FI.json +3 -0
- package/src/searchfield/intl/fr-FR.json +3 -0
- package/src/searchfield/intl/he-IL.json +3 -0
- package/src/searchfield/intl/hr-HR.json +3 -0
- package/src/searchfield/intl/hu-HU.json +3 -0
- package/src/searchfield/intl/index.ts +122 -0
- package/src/searchfield/intl/it-IT.json +3 -0
- package/src/searchfield/intl/ja-JP.json +3 -0
- package/src/searchfield/intl/ko-KR.json +3 -0
- package/src/searchfield/intl/lt-LT.json +3 -0
- package/src/searchfield/intl/lv-LV.json +3 -0
- package/src/searchfield/intl/nb-NO.json +3 -0
- package/src/searchfield/intl/nl-NL.json +3 -0
- package/src/searchfield/intl/pl-PL.json +3 -0
- package/src/searchfield/intl/pt-BR.json +3 -0
- package/src/searchfield/intl/pt-PT.json +3 -0
- package/src/searchfield/intl/ro-RO.json +3 -0
- package/src/searchfield/intl/ru-RU.json +3 -0
- package/src/searchfield/intl/sk-SK.json +3 -0
- package/src/searchfield/intl/sl-SI.json +3 -0
- package/src/searchfield/intl/sr-SP.json +3 -0
- package/src/searchfield/intl/sv-SE.json +3 -0
- package/src/searchfield/intl/tr-TR.json +3 -0
- package/src/searchfield/intl/uk-UA.json +3 -0
- package/src/searchfield/intl/zh-CN.json +3 -0
- package/src/searchfield/intl/zh-TW.json +3 -0
- package/src/select/createHiddenSelect.tsx +166 -69
- package/src/select/createSelect.ts +80 -34
- package/src/selection/DOMLayoutDelegate.ts +14 -0
- package/src/selection/ListKeyboardDelegate.ts +16 -1
- package/src/selection/constants.ts +14 -0
- package/src/selection/createCollectionRowInteraction.ts +75 -6
- package/src/selection/createScrollIntoViewOnFocus.ts +23 -8
- package/src/selection/createSelectableCollection.ts +352 -226
- package/src/selection/createSelectableItem.ts +51 -12
- package/src/selection/createSelectableList.ts +21 -1
- package/src/selection/createTypeSelect.ts +21 -5
- package/src/selection/selectItem.ts +14 -0
- package/src/selection/utils.ts +15 -1
- package/src/separator/createSeparator.ts +17 -1
- package/src/slider/createSlider.ts +24 -18
- package/src/spinbutton/createSpinButton.ts +16 -2
- package/src/spinbutton/index.ts +2 -10
- package/src/spinbutton/intl.ts +70 -34
- package/src/ssr/index.tsx +79 -48
- package/src/steplist/createStepList.ts +17 -2
- package/src/switch/createSwitch.ts +25 -4
- package/src/table/createTable.ts +104 -52
- package/src/table/createTableCell.ts +17 -2
- package/src/table/createTableColumnHeader.ts +21 -3
- package/src/table/createTableColumnResize.ts +19 -3
- package/src/table/createTableHeaderRow.ts +17 -2
- package/src/table/createTableRow.ts +29 -22
- package/src/table/createTableRowGroup.ts +18 -3
- package/src/table/createTableSelectAllCheckbox.ts +30 -14
- package/src/table/createTableSelectionCheckbox.ts +21 -3
- package/src/table/index.ts +2 -2
- package/src/table/intl/ar-AE.json +13 -0
- package/src/table/intl/bg-BG.json +13 -0
- package/src/table/intl/cs-CZ.json +13 -0
- package/src/table/intl/da-DK.json +13 -0
- package/src/table/intl/de-DE.json +13 -0
- package/src/table/intl/el-GR.json +13 -0
- package/src/table/intl/en-US.json +13 -0
- package/src/table/intl/es-ES.json +13 -0
- package/src/table/intl/et-EE.json +13 -0
- package/src/table/intl/fi-FI.json +13 -0
- package/src/table/intl/fr-FR.json +13 -0
- package/src/table/intl/he-IL.json +13 -0
- package/src/table/intl/hr-HR.json +13 -0
- package/src/table/intl/hu-HU.json +13 -0
- package/src/table/intl/index.ts +132 -0
- package/src/table/intl/it-IT.json +13 -0
- package/src/table/intl/ja-JP.json +13 -0
- package/src/table/intl/ko-KR.json +13 -0
- package/src/table/intl/lt-LT.json +13 -0
- package/src/table/intl/lv-LV.json +13 -0
- package/src/table/intl/nb-NO.json +13 -0
- package/src/table/intl/nl-NL.json +13 -0
- package/src/table/intl/pl-PL.json +13 -0
- package/src/table/intl/pt-BR.json +13 -0
- package/src/table/intl/pt-PT.json +13 -0
- package/src/table/intl/ro-RO.json +13 -0
- package/src/table/intl/ru-RU.json +13 -0
- package/src/table/intl/sk-SK.json +13 -0
- package/src/table/intl/sl-SI.json +13 -0
- package/src/table/intl/sr-SP.json +13 -0
- package/src/table/intl/sv-SE.json +13 -0
- package/src/table/intl/tr-TR.json +13 -0
- package/src/table/intl/uk-UA.json +13 -0
- package/src/table/intl/zh-CN.json +13 -0
- package/src/table/intl/zh-TW.json +13 -0
- package/src/table/types.ts +44 -2
- package/src/table/utils.ts +15 -6
- package/src/tabs/createTabs.ts +104 -37
- package/src/tag/createTag.ts +118 -37
- package/src/tag/createTagGroup.ts +20 -12
- package/src/tag/intl/ar-AE.json +4 -0
- package/src/tag/intl/bg-BG.json +4 -0
- package/src/tag/intl/cs-CZ.json +4 -0
- package/src/tag/intl/da-DK.json +4 -0
- package/src/tag/intl/de-DE.json +4 -0
- package/src/tag/intl/el-GR.json +4 -0
- package/src/tag/intl/en-US.json +4 -0
- package/src/tag/intl/es-ES.json +4 -0
- package/src/tag/intl/et-EE.json +4 -0
- package/src/tag/intl/fi-FI.json +4 -0
- package/src/tag/intl/fr-FR.json +4 -0
- package/src/tag/intl/he-IL.json +4 -0
- package/src/tag/intl/hr-HR.json +4 -0
- package/src/tag/intl/hu-HU.json +4 -0
- package/src/tag/intl/index.ts +123 -0
- package/src/tag/intl/it-IT.json +4 -0
- package/src/tag/intl/ja-JP.json +4 -0
- package/src/tag/intl/ko-KR.json +4 -0
- package/src/tag/intl/lt-LT.json +4 -0
- package/src/tag/intl/lv-LV.json +4 -0
- package/src/tag/intl/nb-NO.json +4 -0
- package/src/tag/intl/nl-NL.json +4 -0
- package/src/tag/intl/pl-PL.json +4 -0
- package/src/tag/intl/pt-BR.json +4 -0
- package/src/tag/intl/pt-PT.json +4 -0
- package/src/tag/intl/ro-RO.json +4 -0
- package/src/tag/intl/ru-RU.json +4 -0
- package/src/tag/intl/sk-SK.json +4 -0
- package/src/tag/intl/sl-SI.json +4 -0
- package/src/tag/intl/sr-SP.json +4 -0
- package/src/tag/intl/sv-SE.json +4 -0
- package/src/tag/intl/tr-TR.json +4 -0
- package/src/tag/intl/uk-UA.json +4 -0
- package/src/tag/intl/zh-CN.json +4 -0
- package/src/tag/intl/zh-TW.json +4 -0
- package/src/textfield/createTextField.ts +104 -14
- package/src/toast/createToast.ts +39 -6
- package/src/toast/createToastRegion.ts +28 -15
- package/src/toast/intl/ar-AE.json +4 -0
- package/src/toast/intl/bg-BG.json +4 -0
- package/src/toast/intl/cs-CZ.json +4 -0
- package/src/toast/intl/da-DK.json +4 -0
- package/src/toast/intl/de-DE.json +4 -0
- package/src/toast/intl/el-GR.json +4 -0
- package/src/toast/intl/en-US.json +4 -0
- package/src/toast/intl/es-ES.json +4 -0
- package/src/toast/intl/et-EE.json +4 -0
- package/src/toast/intl/fi-FI.json +4 -0
- package/src/toast/intl/fr-FR.json +4 -0
- package/src/toast/intl/he-IL.json +4 -0
- package/src/toast/intl/hr-HR.json +4 -0
- package/src/toast/intl/hu-HU.json +4 -0
- package/src/toast/intl/index.ts +123 -0
- package/src/toast/intl/it-IT.json +4 -0
- package/src/toast/intl/ja-JP.json +4 -0
- package/src/toast/intl/ko-KR.json +4 -0
- package/src/toast/intl/lt-LT.json +4 -0
- package/src/toast/intl/lv-LV.json +4 -0
- package/src/toast/intl/nb-NO.json +4 -0
- package/src/toast/intl/nl-NL.json +4 -0
- package/src/toast/intl/pl-PL.json +4 -0
- package/src/toast/intl/pt-BR.json +4 -0
- package/src/toast/intl/pt-PT.json +4 -0
- package/src/toast/intl/ro-RO.json +4 -0
- package/src/toast/intl/ru-RU.json +4 -0
- package/src/toast/intl/sk-SK.json +4 -0
- package/src/toast/intl/sl-SI.json +4 -0
- package/src/toast/intl/sr-SP.json +4 -0
- package/src/toast/intl/sv-SE.json +4 -0
- package/src/toast/intl/tr-TR.json +4 -0
- package/src/toast/intl/uk-UA.json +4 -0
- package/src/toast/intl/zh-CN.json +4 -0
- package/src/toast/intl/zh-TW.json +4 -0
- package/src/toggle/createToggle.ts +96 -15
- package/src/tokenfield/createToken.ts +82 -0
- package/src/tokenfield/createTokenField.ts +859 -0
- package/src/tokenfield/index.ts +10 -0
- package/src/toolbar/createToolbar.ts +26 -5
- package/src/tooltip/createPreviewTrigger.ts +301 -0
- package/src/tooltip/createSafeArea.ts +165 -0
- package/src/tooltip/createTooltip.ts +15 -1
- package/src/tooltip/createTooltipTrigger.ts +24 -3
- package/src/tooltip/index.ts +7 -0
- package/src/tooltip/intl/index.ts +76 -0
- package/src/tree/createTree.ts +66 -50
- package/src/tree/createTreeItem.ts +85 -21
- package/src/tree/createTreeSelectionCheckbox.ts +29 -28
- package/src/tree/intl/ar-AE.json +4 -0
- package/src/tree/intl/bg-BG.json +4 -0
- package/src/tree/intl/cs-CZ.json +4 -0
- package/src/tree/intl/da-DK.json +4 -0
- package/src/tree/intl/de-DE.json +4 -0
- package/src/tree/intl/el-GR.json +4 -0
- package/src/tree/intl/en-US.json +4 -0
- package/src/tree/intl/es-ES.json +4 -0
- package/src/tree/intl/et-EE.json +4 -0
- package/src/tree/intl/fi-FI.json +4 -0
- package/src/tree/intl/fr-FR.json +4 -0
- package/src/tree/intl/he-IL.json +4 -0
- package/src/tree/intl/hr-HR.json +4 -0
- package/src/tree/intl/hu-HU.json +4 -0
- package/src/tree/intl/index.ts +123 -0
- package/src/tree/intl/it-IT.json +4 -0
- package/src/tree/intl/ja-JP.json +4 -0
- package/src/tree/intl/ko-KR.json +4 -0
- package/src/tree/intl/lt-LT.json +4 -0
- package/src/tree/intl/lv-LV.json +4 -0
- package/src/tree/intl/nb-NO.json +4 -0
- package/src/tree/intl/nl-NL.json +4 -0
- package/src/tree/intl/pl-PL.json +4 -0
- package/src/tree/intl/pt-BR.json +4 -0
- package/src/tree/intl/pt-PT.json +4 -0
- package/src/tree/intl/ro-RO.json +4 -0
- package/src/tree/intl/ru-RU.json +4 -0
- package/src/tree/intl/sk-SK.json +4 -0
- package/src/tree/intl/sl-SI.json +4 -0
- package/src/tree/intl/sr-SP.json +4 -0
- package/src/tree/intl/sv-SE.json +4 -0
- package/src/tree/intl/tr-TR.json +4 -0
- package/src/tree/intl/uk-UA.json +4 -0
- package/src/tree/intl/zh-CN.json +4 -0
- package/src/tree/intl/zh-TW.json +4 -0
- package/src/tree/types.ts +35 -2
- package/src/utils/ShadowTreeWalker.ts +249 -0
- package/src/utils/animation.ts +106 -85
- package/src/utils/capture.ts +51 -0
- package/src/utils/createDescription.ts +31 -8
- package/src/utils/dom.ts +314 -33
- package/src/utils/domAttrs.ts +84 -0
- package/src/utils/env.ts +2 -0
- package/src/utils/events.ts +39 -3
- package/src/utils/filterDOMProps.ts +34 -2
- package/src/utils/focus.ts +186 -32
- package/src/utils/geometry.ts +15 -1
- package/src/utils/getMetaValue.ts +57 -0
- package/src/utils/getNonce.ts +40 -0
- package/src/utils/globalListeners.ts +16 -3
- package/src/utils/index.ts +14 -0
- package/src/utils/keyboard.ts +15 -1
- package/src/utils/mergeProps.ts +149 -16
- package/src/utils/owner.ts +26 -0
- package/src/utils/platform.ts +15 -1
- package/src/utils/reactivity.ts +2 -0
- package/src/utils/refs.ts +53 -0
- package/src/utils/runAfterTransition.ts +117 -0
- package/src/utils/scrollIntoView.ts +14 -0
- package/src/utils/splitProps.ts +70 -0
- package/src/utils/textSelection.ts +15 -1
- package/src/virtualizer/ScrollView.ts +210 -0
- package/src/virtualizer/index.ts +2 -0
- package/src/virtualizer/utils.ts +100 -0
- package/src/visually-hidden/createVisuallyHidden.ts +20 -4
- package/dist/_chunk/createInteractionModality.js +0 -268
- package/dist/_chunk/createInteractionModality.js.map +0 -1
- package/dist/_chunk/createInteractionModality.jsx +0 -268
- package/dist/_chunk/createInteractionModality.jsx.map +0 -1
- package/dist/_chunk/focus2.js +0 -631
- package/dist/_chunk/focus2.js.map +0 -1
- package/dist/_chunk/focus2.jsx +0 -631
- package/dist/_chunk/focus2.jsx.map +0 -1
- package/dist/_chunk/visually-hidden.js.map +0 -1
- package/dist/_chunk/visually-hidden.jsx.map +0 -1
- package/dist/checkbox/createCheckboxGroupState.d.ts +0 -71
- package/dist/checkbox/createCheckboxGroupState.d.ts.map +0 -1
- package/dist/radio/createRadioGroupState.d.ts +0 -77
- package/dist/radio/createRadioGroupState.d.ts.map +0 -1
- package/dist/toggle/createToggleState.d.ts +0 -34
- package/dist/toggle/createToggleState.d.ts.map +0 -1
- package/src/checkbox/createCheckboxGroupState.ts +0 -174
- package/src/radio/createRadioGroupState.ts +0 -177
- package/src/toggle/createToggleState.ts +0 -86
|
@@ -1,9 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/numberfield/useNumberField.ts
|
|
13
|
+
import { n as followRef } from "./refs.js";
|
|
14
|
+
import { t as mergeProps } from "./mergeProps.js";
|
|
15
|
+
import { t as onOwnedCleanup } from "./owner.js";
|
|
2
16
|
import { t as filterDOMProps } from "./filterDOMProps.js";
|
|
3
17
|
import { t as access } from "./reactivity.js";
|
|
18
|
+
import { t as createFocusWithin } from "./createFocusWithin.js";
|
|
4
19
|
import { createId } from "../ssr/index.js";
|
|
20
|
+
import { t as createFormValidation } from "./createFormValidation.js";
|
|
21
|
+
import { t as createFormReset } from "./createFormReset.js";
|
|
5
22
|
import { t as createLabel } from "./createLabel.js";
|
|
6
|
-
import {
|
|
23
|
+
import { n as clearAnnouncer, t as announce } from "./announce.js";
|
|
24
|
+
import { createEffect, createMemo, createSignal } from "solid-js";
|
|
7
25
|
//#region src/numberfield/createNumberField.ts
|
|
8
26
|
/**
|
|
9
27
|
* Provides the behavior and accessibility implementation for a number field.
|
|
@@ -15,6 +33,16 @@ import { createMemo } from "solid-js";
|
|
|
15
33
|
function createNumberField(props, state, inputRef) {
|
|
16
34
|
const getProps = () => access(props);
|
|
17
35
|
const id = createId(getProps().id);
|
|
36
|
+
const displayValidation = () => state.displayValidation();
|
|
37
|
+
const resolvedInput = followRef(() => inputRef?.() ?? null);
|
|
38
|
+
createFormReset(() => resolvedInput() ?? void 0, state.defaultNumberValue, (value) => state.setNumberValue(value));
|
|
39
|
+
createFormValidation({
|
|
40
|
+
get validationBehavior() {
|
|
41
|
+
return getProps().validationBehavior ?? "native";
|
|
42
|
+
},
|
|
43
|
+
focus: () => resolvedInput()?.focus()
|
|
44
|
+
}, state, () => resolvedInput() ?? void 0);
|
|
45
|
+
createNativeValidation(state, getProps, () => resolvedInput() ?? null);
|
|
18
46
|
const inputId = `${id}-input`;
|
|
19
47
|
const incrementId = `${id}-increment`;
|
|
20
48
|
const decrementId = `${id}-decrement`;
|
|
@@ -45,17 +73,26 @@ function createNumberField(props, state, inputRef) {
|
|
|
45
73
|
const value = e.currentTarget.value;
|
|
46
74
|
if (state.validate(value)) state.setInputValue(value);
|
|
47
75
|
};
|
|
76
|
+
let isFocused = false;
|
|
48
77
|
const onInputBlur = (e) => {
|
|
78
|
+
isFocused = false;
|
|
49
79
|
state.commit();
|
|
50
80
|
const p = getProps();
|
|
51
81
|
p.onBlur?.(e);
|
|
52
82
|
p.onFocusChange?.(false);
|
|
53
83
|
};
|
|
54
84
|
const onInputFocus = (e) => {
|
|
85
|
+
isFocused = true;
|
|
55
86
|
const p = getProps();
|
|
56
87
|
p.onFocus?.(e);
|
|
57
88
|
p.onFocusChange?.(true);
|
|
58
89
|
};
|
|
90
|
+
createEffect(() => state.inputValue(), (value) => {
|
|
91
|
+
if (isFocused) {
|
|
92
|
+
clearAnnouncer("assertive");
|
|
93
|
+
announce(value, "assertive");
|
|
94
|
+
}
|
|
95
|
+
});
|
|
59
96
|
const onKeyDown = (e) => {
|
|
60
97
|
const p = getProps();
|
|
61
98
|
if (p.isDisabled || p.isReadOnly) {
|
|
@@ -73,11 +110,11 @@ function createNumberField(props, state, inputRef) {
|
|
|
73
110
|
break;
|
|
74
111
|
case "PageUp":
|
|
75
112
|
e.preventDefault();
|
|
76
|
-
state.
|
|
113
|
+
state.increment();
|
|
77
114
|
break;
|
|
78
115
|
case "PageDown":
|
|
79
116
|
e.preventDefault();
|
|
80
|
-
state.
|
|
117
|
+
state.decrement();
|
|
81
118
|
break;
|
|
82
119
|
case "Home":
|
|
83
120
|
e.preventDefault();
|
|
@@ -87,15 +124,25 @@ function createNumberField(props, state, inputRef) {
|
|
|
87
124
|
e.preventDefault();
|
|
88
125
|
state.incrementToMax();
|
|
89
126
|
break;
|
|
90
|
-
case "Enter":
|
|
91
|
-
state.commit();
|
|
92
|
-
break;
|
|
127
|
+
case "Enter": state.commit();
|
|
93
128
|
}
|
|
94
129
|
p.onKeyDown?.(e);
|
|
95
130
|
};
|
|
96
131
|
const onKeyUp = (e) => {
|
|
97
132
|
getProps().onKeyUp?.(e);
|
|
98
133
|
};
|
|
134
|
+
const [focusWithin, setFocusWithin] = createSignal(false);
|
|
135
|
+
const { focusWithinProps } = createFocusWithin({ onFocusWithinChange: setFocusWithin });
|
|
136
|
+
const onWheel = (e) => {
|
|
137
|
+
const p = getProps();
|
|
138
|
+
const input = inputRef?.();
|
|
139
|
+
if (p.isWheelDisabled || p.isDisabled || p.isReadOnly || input != null && input.ownerDocument.activeElement !== input && !focusWithin()) return;
|
|
140
|
+
if (Math.abs(e.deltaY) <= Math.abs(e.deltaX)) return;
|
|
141
|
+
if (e.deltaY > 0) state.increment();
|
|
142
|
+
else if (e.deltaY < 0) state.decrement();
|
|
143
|
+
else return;
|
|
144
|
+
e.preventDefault();
|
|
145
|
+
};
|
|
99
146
|
const onButtonPressStart = (e) => {
|
|
100
147
|
const input = inputRef?.();
|
|
101
148
|
if (input && input.ownerDocument.activeElement === input) return;
|
|
@@ -104,16 +151,49 @@ function createNumberField(props, state, inputRef) {
|
|
|
104
151
|
};
|
|
105
152
|
let incrementTouchPressUp = false;
|
|
106
153
|
let decrementTouchPressUp = false;
|
|
154
|
+
let spinTimeout;
|
|
155
|
+
let isSpinning = false;
|
|
156
|
+
const clearSpin = () => {
|
|
157
|
+
if (spinTimeout != null) {
|
|
158
|
+
clearTimeout(spinTimeout);
|
|
159
|
+
spinTimeout = void 0;
|
|
160
|
+
}
|
|
161
|
+
isSpinning = false;
|
|
162
|
+
};
|
|
163
|
+
onOwnedCleanup(clearSpin);
|
|
164
|
+
const startSpin = (direction, initialDelay) => {
|
|
165
|
+
clearSpin();
|
|
166
|
+
const step = () => {
|
|
167
|
+
isSpinning = true;
|
|
168
|
+
if (direction === "up") {
|
|
169
|
+
if (!state.canIncrement()) return;
|
|
170
|
+
state.increment();
|
|
171
|
+
} else {
|
|
172
|
+
if (!state.canDecrement()) return;
|
|
173
|
+
state.decrement();
|
|
174
|
+
}
|
|
175
|
+
spinTimeout = setTimeout(step, 60);
|
|
176
|
+
};
|
|
177
|
+
spinTimeout = setTimeout(step, initialDelay);
|
|
178
|
+
};
|
|
107
179
|
const onIncrementPressStart = (e) => {
|
|
108
|
-
if (e.pointerType !== "touch")
|
|
109
|
-
|
|
180
|
+
if (e.pointerType !== "touch") {
|
|
181
|
+
state.increment();
|
|
182
|
+
startSpin("up", 400);
|
|
183
|
+
} else {
|
|
184
|
+
incrementTouchPressUp = false;
|
|
185
|
+
startSpin("up", 600);
|
|
186
|
+
}
|
|
110
187
|
onButtonPressStart(e);
|
|
111
188
|
};
|
|
112
189
|
const onIncrementPressUp = (e) => {
|
|
190
|
+
clearSpin();
|
|
113
191
|
if (e.pointerType === "touch") incrementTouchPressUp = true;
|
|
114
192
|
};
|
|
115
193
|
const onIncrementPressEnd = (e) => {
|
|
116
|
-
|
|
194
|
+
const spinning = isSpinning;
|
|
195
|
+
clearSpin();
|
|
196
|
+
if (e.pointerType === "touch" && incrementTouchPressUp && !spinning) state.increment();
|
|
117
197
|
incrementTouchPressUp = false;
|
|
118
198
|
};
|
|
119
199
|
const onIncrementClick = (e) => {
|
|
@@ -125,15 +205,23 @@ function createNumberField(props, state, inputRef) {
|
|
|
125
205
|
inputRef?.()?.focus();
|
|
126
206
|
};
|
|
127
207
|
const onDecrementPressStart = (e) => {
|
|
128
|
-
if (e.pointerType !== "touch")
|
|
129
|
-
|
|
208
|
+
if (e.pointerType !== "touch") {
|
|
209
|
+
state.decrement();
|
|
210
|
+
startSpin("down", 400);
|
|
211
|
+
} else {
|
|
212
|
+
decrementTouchPressUp = false;
|
|
213
|
+
startSpin("down", 600);
|
|
214
|
+
}
|
|
130
215
|
onButtonPressStart(e);
|
|
131
216
|
};
|
|
132
217
|
const onDecrementPressUp = (e) => {
|
|
218
|
+
clearSpin();
|
|
133
219
|
if (e.pointerType === "touch") decrementTouchPressUp = true;
|
|
134
220
|
};
|
|
135
221
|
const onDecrementPressEnd = (e) => {
|
|
136
|
-
|
|
222
|
+
const spinning = isSpinning;
|
|
223
|
+
clearSpin();
|
|
224
|
+
if (e.pointerType === "touch" && decrementTouchPressUp && !spinning) state.decrement();
|
|
137
225
|
decrementTouchPressUp = false;
|
|
138
226
|
};
|
|
139
227
|
const onDecrementClick = (e) => {
|
|
@@ -149,7 +237,7 @@ function createNumberField(props, state, inputRef) {
|
|
|
149
237
|
const parts = [];
|
|
150
238
|
if (p["aria-describedby"]) parts.push(p["aria-describedby"]);
|
|
151
239
|
if (p.description) parts.push(descriptionId);
|
|
152
|
-
if (
|
|
240
|
+
if (displayValidation().isInvalid && p.errorMessage) parts.push(errorMessageId);
|
|
153
241
|
return parts.length > 0 ? parts.join(" ") : void 0;
|
|
154
242
|
};
|
|
155
243
|
return {
|
|
@@ -157,17 +245,17 @@ function createNumberField(props, state, inputRef) {
|
|
|
157
245
|
return labelProps;
|
|
158
246
|
},
|
|
159
247
|
get groupProps() {
|
|
160
|
-
return {
|
|
248
|
+
return mergeProps(focusWithinProps, {
|
|
161
249
|
role: "group",
|
|
162
|
-
"aria-disabled": getProps().isDisabled
|
|
163
|
-
"aria-invalid":
|
|
164
|
-
};
|
|
250
|
+
"aria-disabled": getProps().isDisabled ? "true" : void 0,
|
|
251
|
+
"aria-invalid": displayValidation().isInvalid ? "true" : void 0
|
|
252
|
+
});
|
|
165
253
|
},
|
|
166
254
|
get inputProps() {
|
|
167
255
|
const p = getProps();
|
|
168
256
|
const isDisabled = p.isDisabled ?? state.isDisabled();
|
|
169
257
|
const isReadOnly = p.isReadOnly ?? state.isReadOnly();
|
|
170
|
-
return mergeProps
|
|
258
|
+
return mergeProps(domProps(), fieldProps, {
|
|
171
259
|
id: inputId,
|
|
172
260
|
type: "text",
|
|
173
261
|
inputMode: "decimal",
|
|
@@ -176,12 +264,12 @@ function createNumberField(props, state, inputRef) {
|
|
|
176
264
|
spellcheck: false,
|
|
177
265
|
tabIndex: isDisabled ? void 0 : 0,
|
|
178
266
|
"aria-roledescription": "Number field",
|
|
179
|
-
"aria-invalid":
|
|
180
|
-
"aria-required": p.isRequired || void 0,
|
|
267
|
+
"aria-invalid": displayValidation().isInvalid || void 0,
|
|
268
|
+
"aria-required": (p.validationBehavior ?? "native") === "aria" && p.isRequired || void 0,
|
|
181
269
|
"aria-describedby": getAriaDescribedBy(),
|
|
182
270
|
disabled: isDisabled || void 0,
|
|
183
271
|
readOnly: isReadOnly || void 0,
|
|
184
|
-
required: p.isRequired || void 0,
|
|
272
|
+
required: (p.validationBehavior ?? "native") === "native" && p.isRequired || void 0,
|
|
185
273
|
value: state.inputValue(),
|
|
186
274
|
onInput: onInputChange,
|
|
187
275
|
onChange: onInputChange,
|
|
@@ -189,6 +277,7 @@ function createNumberField(props, state, inputRef) {
|
|
|
189
277
|
onBlur: onInputBlur,
|
|
190
278
|
onKeyDown,
|
|
191
279
|
onKeyUp,
|
|
280
|
+
onWheel,
|
|
192
281
|
onPaste: p.onPaste,
|
|
193
282
|
onCopy: p.onCopy,
|
|
194
283
|
onCut: p.onCut,
|
|
@@ -250,9 +339,65 @@ function createNumberField(props, state, inputRef) {
|
|
|
250
339
|
},
|
|
251
340
|
get errorMessageProps() {
|
|
252
341
|
return { id: errorMessageId };
|
|
342
|
+
},
|
|
343
|
+
get isInvalid() {
|
|
344
|
+
return displayValidation().isInvalid;
|
|
345
|
+
},
|
|
346
|
+
get validationErrors() {
|
|
347
|
+
return displayValidation().validationErrors;
|
|
348
|
+
},
|
|
349
|
+
get validationDetails() {
|
|
350
|
+
return displayValidation().validationDetails;
|
|
253
351
|
}
|
|
254
352
|
};
|
|
255
353
|
}
|
|
354
|
+
let numberInput = null;
|
|
355
|
+
function createNativeValidation(state, getProps, inputRef) {
|
|
356
|
+
createEffect(() => ({
|
|
357
|
+
commitBehavior: getProps().commitBehavior ?? "snap",
|
|
358
|
+
input: inputRef?.() ?? null,
|
|
359
|
+
realtimeInvalid: state.realtimeValidation().isInvalid,
|
|
360
|
+
min: state.minValue(),
|
|
361
|
+
max: state.maxValue(),
|
|
362
|
+
step: state.step(),
|
|
363
|
+
value: state.numberValue(),
|
|
364
|
+
inputValue: state.inputValue(),
|
|
365
|
+
validationBehavior: getProps().validationBehavior ?? "native"
|
|
366
|
+
}), ({ commitBehavior, input, realtimeInvalid, min, max, step, value, validationBehavior }) => {
|
|
367
|
+
if (commitBehavior !== "validate" || !input || input.disabled) return;
|
|
368
|
+
if (!numberInput && typeof document !== "undefined") {
|
|
369
|
+
numberInput = document.createElement("input");
|
|
370
|
+
numberInput.type = "number";
|
|
371
|
+
}
|
|
372
|
+
if (!numberInput) return;
|
|
373
|
+
numberInput.min = min != null && !isNaN(min) ? String(min) : "";
|
|
374
|
+
numberInput.max = max != null && !isNaN(max) ? String(max) : "";
|
|
375
|
+
numberInput.step = step != null && !isNaN(step) ? String(step) : "";
|
|
376
|
+
numberInput.value = value != null && !isNaN(value) ? String(value) : "";
|
|
377
|
+
const rangeOverflow = max != null && !isNaN(max) && value != null && !isNaN(value) && value > max;
|
|
378
|
+
const rangeUnderflow = min != null && !isNaN(min) && value != null && !isNaN(value) && value < min;
|
|
379
|
+
if (!(!numberInput.validity.valid || rangeOverflow || rangeUnderflow)) return;
|
|
380
|
+
const validationMessage = numberInput.validationMessage || (rangeOverflow ? "Value exceeds the maximum." : "") || (rangeUnderflow ? "Value is below the minimum." : "");
|
|
381
|
+
if (validationBehavior === "native") input.setCustomValidity(validationMessage);
|
|
382
|
+
if (!realtimeInvalid) state.updateValidation({
|
|
383
|
+
isInvalid: true,
|
|
384
|
+
validationErrors: validationMessage ? [validationMessage] : [],
|
|
385
|
+
validationDetails: {
|
|
386
|
+
badInput: input.validity.badInput,
|
|
387
|
+
customError: true,
|
|
388
|
+
patternMismatch: input.validity.patternMismatch,
|
|
389
|
+
rangeOverflow: rangeOverflow || numberInput.validity.rangeOverflow,
|
|
390
|
+
rangeUnderflow: rangeUnderflow || numberInput.validity.rangeUnderflow,
|
|
391
|
+
stepMismatch: numberInput.validity.stepMismatch,
|
|
392
|
+
tooLong: input.validity.tooLong,
|
|
393
|
+
tooShort: input.validity.tooShort,
|
|
394
|
+
typeMismatch: input.validity.typeMismatch,
|
|
395
|
+
valueMissing: input.validity.valueMissing,
|
|
396
|
+
valid: false
|
|
397
|
+
}
|
|
398
|
+
});
|
|
399
|
+
});
|
|
400
|
+
}
|
|
256
401
|
//#endregion
|
|
257
402
|
export { createNumberField as t };
|
|
258
403
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"numberfield.js","names":["mergeProps"],"sources":["../../src/numberfield/createNumberField.ts"],"sourcesContent":["/**\n * Provides the behavior and accessibility implementation for a number field.\n * Based on @react-aria/numberfield useNumberField.\n */\n\nimport { type JSX, createMemo } from \"solid-js\";\nimport { createLabel } from \"../label/createLabel\";\nimport { filterDOMProps } from \"../utils/filterDOMProps\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { createId } from \"../ssr\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport type { NumberFieldState } from \"@proyecto-viviana/solid-stately\";\nimport type { AriaButtonProps } from \"../button/types\";\nimport type { PressEvent } from \"../interactions\";\n\nexport interface AriaNumberFieldProps {\n /** A label for the number field. */\n label?: JSX.Element;\n /** An accessible label for the number field. */\n \"aria-label\"?: string;\n /** The element ID that labels the number field. */\n \"aria-labelledby\"?: string;\n /** The element ID that describes the number field. */\n \"aria-describedby\"?: string;\n /** Whether the number field is disabled. */\n isDisabled?: boolean;\n /** Whether the number field is read-only. */\n isReadOnly?: boolean;\n /** Whether the number field is required. */\n isRequired?: boolean;\n /** Whether the number field is invalid. */\n isInvalid?: boolean;\n /** A description for the number field. */\n description?: JSX.Element;\n /** An error message for the number field. */\n errorMessage?: JSX.Element;\n /** The ID of the number field. */\n id?: string;\n /** Whether to auto-focus the input. */\n autoFocus?: boolean;\n /** The name for the form input. */\n name?: string;\n /** The form element this input belongs to. */\n form?: string;\n /** Handler for focus events. */\n onFocus?: JSX.EventHandler<HTMLInputElement, FocusEvent>;\n /** Handler for blur events. */\n onBlur?: JSX.EventHandler<HTMLInputElement, FocusEvent>;\n /** Handler called when focus state changes. */\n onFocusChange?: (isFocused: boolean) => void;\n /** Handler for key down events. */\n onKeyDown?: JSX.EventHandler<HTMLInputElement, KeyboardEvent>;\n /** Handler for key up events. */\n onKeyUp?: JSX.EventHandler<HTMLInputElement, KeyboardEvent>;\n /** Handler for paste events. */\n onPaste?: JSX.EventHandler<HTMLInputElement, ClipboardEvent>;\n /** Handler for copy events. */\n onCopy?: JSX.EventHandler<HTMLInputElement, ClipboardEvent>;\n /** Handler for cut events. */\n onCut?: JSX.EventHandler<HTMLInputElement, ClipboardEvent>;\n}\n\nexport interface NumberFieldAria {\n /** Props for the label element. */\n labelProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the input element group. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the input element. */\n inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;\n /** Props for the increment button. */\n incrementButtonProps: AriaButtonProps;\n /** Props for the decrement button. */\n decrementButtonProps: AriaButtonProps;\n /** Props for the description element. */\n descriptionProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the error message element. */\n errorMessageProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a number field.\n */\nexport function createNumberField(\n props: MaybeAccessor<AriaNumberFieldProps>,\n state: NumberFieldState,\n inputRef?: () => HTMLInputElement | null,\n): NumberFieldAria {\n const getProps = () => access(props);\n const id = createId(getProps().id);\n\n // Generate IDs for associated elements\n const inputId = `${id}-input`;\n const incrementId = `${id}-increment`;\n const decrementId = `${id}-decrement`;\n const descriptionId = `${id}-description`;\n const errorMessageId = `${id}-error`;\n\n // Label handling\n const { labelProps, fieldProps } = createLabel({\n get id() {\n return inputId;\n },\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 // Upstream react-aria `useNumberField` → `useField` → `useLabel` with the DEFAULT\n // `labelElementType: 'label'`: the S2 NumberField label is a native `<label htmlFor>`\n // (verified against the shipped React DOM: `<label id for=inputId>`). This hardcoded\n // `\"span\"` was a self-inflicted divergence — it dropped the `for` association and made\n // `NumberFieldLabel` render a `<span>`. Reverted to `\"label\"` so `createLabel` emits\n // `for: inputId` (the input still also carries `aria-labelledby`, exactly as upstream).\n labelElementType: \"label\",\n });\n\n // Increment/decrement button labels — a 1:1 port of upstream `useNumberField`'s\n // four-case logic. Upstream RAC's `NumberField` component feeds `useNumberField` a\n // BOOLEAN slot for `label` (from `useSlot`), never the label string, so a visible\n // label is NEVER concatenated into the button `aria-label`. Instead: with a visible\n // label the button reads `aria-label: \"Increase\"` PLUS `aria-labelledby: \"<selfId>\n // <labelId>\"`; only an explicit `aria-label` (and no visible label) changes the text\n // (`\"Increase <aria-label>\"`). The prior `Increase ${getLabelText()}` was a\n // self-inflicted divergence that produced \"Increase Quantity\" where S2 ships\n // \"Increase\". `fieldLabel` mirrors upstream: `props['aria-label'] || ''` — the visible\n // label string is intentionally excluded (it arrives as a boolean slot in RAC).\n const fieldLabel = (): string => getProps()[\"aria-label\"] ?? \"\";\n const buttonLabelledBy = (): string | undefined => {\n if (fieldLabel()) return undefined;\n return getProps().label != null\n ? (labelProps.id as string | undefined)\n : getProps()[\"aria-labelledby\"];\n };\n\n // Filter DOM props\n const domProps = createMemo(() =>\n filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true }),\n );\n\n // Handle input change\n const onInputChange: JSX.EventHandler<HTMLInputElement, Event> = (e) => {\n const value = e.currentTarget.value;\n if (state.validate(value)) {\n state.setInputValue(value);\n }\n };\n\n // Handle input blur - commit value\n const onInputBlur: JSX.EventHandler<HTMLInputElement, FocusEvent> = (e) => {\n state.commit();\n const p = getProps();\n p.onBlur?.(e);\n p.onFocusChange?.(false);\n };\n\n const onInputFocus: JSX.EventHandler<HTMLInputElement, FocusEvent> = (e) => {\n const p = getProps();\n p.onFocus?.(e);\n p.onFocusChange?.(true);\n };\n\n // Handle keyboard events\n const onKeyDown: JSX.EventHandler<HTMLInputElement, KeyboardEvent> = (e) => {\n const p = getProps();\n if (p.isDisabled || p.isReadOnly) {\n p.onKeyDown?.(e);\n return;\n }\n\n switch (e.key) {\n case \"ArrowUp\":\n e.preventDefault();\n state.increment();\n break;\n case \"ArrowDown\":\n e.preventDefault();\n state.decrement();\n break;\n case \"PageUp\":\n e.preventDefault();\n state.incrementToMax();\n break;\n case \"PageDown\":\n e.preventDefault();\n state.decrementToMin();\n break;\n case \"Home\":\n e.preventDefault();\n state.decrementToMin();\n break;\n case \"End\":\n e.preventDefault();\n state.incrementToMax();\n break;\n case \"Enter\":\n state.commit();\n break;\n }\n\n p.onKeyDown?.(e);\n };\n\n const onKeyUp: JSX.EventHandler<HTMLInputElement, KeyboardEvent> = (e) => {\n getProps().onKeyUp?.(e);\n };\n\n const onButtonPressStart = (e: PressEvent) => {\n const input = inputRef?.();\n\n // Keep existing input focus in place. This avoids hiding software keyboards\n // and prevents a blur/refocus flicker when mouse pressing the steppers.\n if (input && input.ownerDocument.activeElement === input) {\n return;\n }\n\n if (e.pointerType === \"mouse\") {\n input?.focus();\n } else if (e.target instanceof HTMLElement) {\n e.target.focus();\n }\n };\n\n let incrementTouchPressUp = false;\n let decrementTouchPressUp = false;\n\n const onIncrementPressStart = (e: PressEvent) => {\n if (e.pointerType !== \"touch\") {\n state.increment();\n } else {\n incrementTouchPressUp = false;\n }\n\n onButtonPressStart(e);\n };\n\n const onIncrementPressUp = (e: PressEvent) => {\n if (e.pointerType === \"touch\") {\n incrementTouchPressUp = true;\n }\n };\n\n const onIncrementPressEnd = (e: PressEvent) => {\n if (e.pointerType === \"touch\" && incrementTouchPressUp) {\n state.increment();\n }\n\n incrementTouchPressUp = false;\n };\n const onIncrementClick = (e: MouseEvent) => {\n if (!state.canIncrement()) {\n e.preventDefault();\n return;\n }\n\n state.increment();\n inputRef?.()?.focus();\n };\n\n const onDecrementPressStart = (e: PressEvent) => {\n if (e.pointerType !== \"touch\") {\n state.decrement();\n } else {\n decrementTouchPressUp = false;\n }\n\n onButtonPressStart(e);\n };\n\n const onDecrementPressUp = (e: PressEvent) => {\n if (e.pointerType === \"touch\") {\n decrementTouchPressUp = true;\n }\n };\n\n const onDecrementPressEnd = (e: PressEvent) => {\n if (e.pointerType === \"touch\" && decrementTouchPressUp) {\n state.decrement();\n }\n\n decrementTouchPressUp = false;\n };\n const onDecrementClick = (e: MouseEvent) => {\n if (!state.canDecrement()) {\n e.preventDefault();\n return;\n }\n\n state.decrement();\n inputRef?.()?.focus();\n };\n\n // Build aria-describedby\n const getAriaDescribedBy = () => {\n const p = getProps();\n const parts: string[] = [];\n if (p[\"aria-describedby\"]) parts.push(p[\"aria-describedby\"]);\n if (p.description) parts.push(descriptionId);\n if (p.isInvalid && p.errorMessage) parts.push(errorMessageId);\n return parts.length > 0 ? parts.join(\" \") : undefined;\n };\n\n return {\n get labelProps() {\n return labelProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get groupProps() {\n return {\n role: \"group\",\n \"aria-disabled\": getProps().isDisabled || undefined,\n \"aria-invalid\": getProps().isInvalid || undefined,\n } as JSX.HTMLAttributes<HTMLElement>;\n },\n get inputProps() {\n const p = getProps();\n const isDisabled = p.isDisabled ?? state.isDisabled();\n const isReadOnly = p.isReadOnly ?? state.isReadOnly();\n\n return mergeProps(\n domProps(),\n fieldProps as Record<string, unknown>,\n {\n id: inputId,\n type: \"text\",\n inputMode: \"decimal\" as const,\n autoComplete: \"off\",\n autoCorrect: \"off\",\n spellcheck: false,\n // Upstream routes the input through useFormattedTextField → useTextField →\n // useFocusable, which \"always set[s] a tabIndex so that Safari allows\n // focusing native buttons and inputs\": `excludeFromTabOrder ? -1 : 0`, then\n // `undefined` when disabled. The input is never excluded, so the rendered\n // DOM carries `tabindex=\"0\"` (absent only when disabled). We hand-roll\n // inputProps (see the spinbutton-override note below) so we must replay that\n // one focusable prop here to stay byte-identical to React's tab order.\n tabIndex: isDisabled ? undefined : 0,\n // Upstream useNumberField wraps useSpinButton but deliberately\n // overrides its output: role=spinbutton can't be focused with\n // VoiceOver, so the input is a plain textbox (inside the role=group\n // wrapper above) and every aria-value* is dropped in favour of\n // aria-roledescription. The formatted value is still announced via the\n // input's own value. Mirror that contract instead of leaking the raw\n // spinbutton semantics.\n //\n // The string MUST match upstream's `stringFormatter.format('numberField')`,\n // whose en-US value is `Number field` (capitalised) — not a lowercase\n // hand-roll. Full locale routing via `createStringFormatter` (as\n // `createDateField` does) is tracked as `intl-roledescription-hardcodes`\n // (also covers the ColorArea/ColorSwatch English hardcodes); this keeps the\n // en-US roledescription byte-identical to React Spectrum in the meantime.\n \"aria-roledescription\": \"Number field\",\n \"aria-invalid\": p.isInvalid || undefined,\n \"aria-required\": p.isRequired || undefined,\n \"aria-describedby\": getAriaDescribedBy(),\n disabled: isDisabled || undefined,\n readOnly: isReadOnly || undefined,\n required: p.isRequired || undefined,\n value: state.inputValue(),\n onInput: onInputChange,\n onChange: onInputChange,\n onFocus: onInputFocus,\n onBlur: onInputBlur,\n onKeyDown,\n onKeyUp,\n onPaste: p.onPaste,\n onCopy: p.onCopy,\n onCut: p.onCut,\n name: p.name,\n form: p.form,\n autoFocus: p.autoFocus,\n } as Record<string, unknown>,\n ) as JSX.InputHTMLAttributes<HTMLInputElement>;\n },\n get incrementButtonProps() {\n const labelledBy = buttonLabelledBy();\n return {\n id: incrementId,\n type: \"button\",\n \"aria-label\": `Increase ${fieldLabel()}`.trim(),\n \"aria-labelledby\": labelledBy ? `${incrementId} ${labelledBy}` : undefined,\n \"aria-controls\": inputId,\n excludeFromTabOrder: true,\n preventFocusOnPress: true,\n allowFocusWhenDisabled: true,\n get disabled() {\n return !state.canIncrement();\n },\n tabIndex: -1,\n get isDisabled() {\n return !state.canIncrement();\n },\n onClick: onIncrementClick,\n onPressStart: onIncrementPressStart,\n onPressUp: onIncrementPressUp,\n onPressEnd: onIncrementPressEnd,\n } as AriaButtonProps;\n },\n get decrementButtonProps() {\n const labelledBy = buttonLabelledBy();\n return {\n id: decrementId,\n type: \"button\",\n \"aria-label\": `Decrease ${fieldLabel()}`.trim(),\n \"aria-labelledby\": labelledBy ? `${decrementId} ${labelledBy}` : undefined,\n \"aria-controls\": inputId,\n excludeFromTabOrder: true,\n preventFocusOnPress: true,\n allowFocusWhenDisabled: true,\n get disabled() {\n return !state.canDecrement();\n },\n tabIndex: -1,\n get isDisabled() {\n return !state.canDecrement();\n },\n onClick: onDecrementClick,\n onPressStart: onDecrementPressStart,\n onPressUp: onDecrementPressUp,\n onPressEnd: onDecrementPressEnd,\n } as AriaButtonProps;\n },\n get descriptionProps() {\n return {\n id: descriptionId,\n } as JSX.HTMLAttributes<HTMLElement>;\n },\n get errorMessageProps() {\n return {\n id: errorMessageId,\n } as JSX.HTMLAttributes<HTMLElement>;\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"numberfield.js","names":[],"sources":["../../src/numberfield/createNumberField.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/numberfield/useNumberField.ts\n\n/**\n * Provides the behavior and accessibility implementation for a number field.\n * Based on @react-aria/numberfield useNumberField.\n */\n\nimport { onOwnedCleanup } from \"../utils/owner\";\nimport { followRef } from \"../utils/refs\";\nimport { createEffect, createMemo, createSignal } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport type { NumberFieldState, ValidityState } from \"@proyecto-viviana/solid-stately\";\nimport { createLabel } from \"../label/createLabel\";\nimport { filterDOMProps } from \"../utils/filterDOMProps\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { createId } from \"../ssr\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport type { AriaButtonProps } from \"../button/types\";\nimport type { PressEvent } from \"../interactions\";\nimport { createFocusWithin } from \"../interactions/createFocusWithin\";\nimport { announce, clearAnnouncer } from \"../live-announcer\";\nimport { createFormValidation } from \"../form/createFormValidation\";\nimport { createFormReset } from \"../form/createFormReset\";\n\nexport interface AriaNumberFieldProps {\n /** A label for the number field. */\n label?: JSX.Element;\n /** An accessible label for the number field. */\n \"aria-label\"?: string;\n /** The element ID that labels the number field. */\n \"aria-labelledby\"?: string;\n /** The element ID that describes the number field. */\n \"aria-describedby\"?: string;\n /** Whether the number field is disabled. */\n isDisabled?: boolean;\n /** Whether the number field is read-only. */\n isReadOnly?: boolean;\n /** Whether the number field is required. */\n isRequired?: boolean;\n /** Whether the number field is invalid. */\n isInvalid?: boolean;\n /** A description for the number field. */\n description?: JSX.Element;\n /** An error message for the number field. */\n errorMessage?: JSX.Element;\n /** The ID of the number field. */\n id?: string;\n /** Whether to auto-focus the input. */\n autoFocus?: boolean;\n /** The name for the form input. */\n name?: string;\n /** The form element this input belongs to. */\n form?: string;\n /** Handler for focus events. */\n onFocus?: JSX.EventHandler<HTMLInputElement, FocusEvent>;\n /** Handler for blur events. */\n onBlur?: JSX.EventHandler<HTMLInputElement, FocusEvent>;\n /** Handler called when focus state changes. */\n onFocusChange?: (isFocused: boolean) => void;\n /** Handler for key down events. */\n onKeyDown?: JSX.EventHandler<HTMLInputElement, KeyboardEvent>;\n /** Handler for key up events. */\n onKeyUp?: JSX.EventHandler<HTMLInputElement, KeyboardEvent>;\n /** Handler for paste events. */\n onPaste?: JSX.EventHandler<HTMLInputElement, ClipboardEvent>;\n /** Handler for copy events. */\n onCopy?: JSX.EventHandler<HTMLInputElement, ClipboardEvent>;\n /** Handler for cut events. */\n onCut?: JSX.EventHandler<HTMLInputElement, ClipboardEvent>;\n /**\n * Whether to disable incrementing/decrementing from the mouse wheel.\n * RAC `useNumberField` `isWheelDisabled`.\n */\n isWheelDisabled?: boolean;\n /**\n * `\"native\"` sets the `required` attribute and omits `aria-required`.\n * `\"aria\"` does the reverse. RAC `useNumberField` default is native.\n * @default \"native\"\n */\n validationBehavior?: \"aria\" | \"native\";\n /**\n * Controls blur commit: `'snap'` clamps to min/max/step, `'validate'` leaves\n * the value and reports native range/step validity.\n * @default \"snap\"\n */\n commitBehavior?: \"snap\" | \"validate\";\n /** Custom validation function. */\n validate?: (value: number) => boolean | string | string[] | null | undefined;\n /** @deprecated Use isInvalid instead. */\n validationState?: \"valid\" | \"invalid\";\n}\n\nexport interface NumberFieldAria {\n /** Props for the label element. */\n labelProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the input element group. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the input element. */\n inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;\n /** Props for the increment button. */\n incrementButtonProps: AriaButtonProps;\n /** Props for the decrement button. */\n decrementButtonProps: AriaButtonProps;\n /** Props for the description element. */\n descriptionProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the error message element. */\n errorMessageProps: JSX.HTMLAttributes<HTMLElement>;\n /** Whether the number field is invalid. */\n isInvalid: boolean;\n /** The current error messages for the input if it is invalid. */\n validationErrors: string[];\n /** The native validity state for the input. */\n validationDetails: ValidityState;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a number field.\n */\nexport function createNumberField(\n props: MaybeAccessor<AriaNumberFieldProps>,\n state: NumberFieldState,\n inputRef?: () => HTMLInputElement | null,\n): NumberFieldAria {\n const getProps = () => access(props);\n const id = createId(getProps().id);\n const displayValidation = () => state.displayValidation();\n\n const resolvedInput = followRef(() => inputRef?.() ?? null);\n createFormReset(\n () => resolvedInput() ?? undefined,\n state.defaultNumberValue,\n (value) => state.setNumberValue(value),\n );\n createFormValidation(\n {\n get validationBehavior() {\n return getProps().validationBehavior ?? \"native\";\n },\n focus: () => resolvedInput()?.focus(),\n },\n state,\n () => resolvedInput() ?? undefined,\n );\n createNativeValidation(state, getProps, () => resolvedInput() ?? null);\n\n // Generate IDs for associated elements\n const inputId = `${id}-input`;\n const incrementId = `${id}-increment`;\n const decrementId = `${id}-decrement`;\n const descriptionId = `${id}-description`;\n const errorMessageId = `${id}-error`;\n\n // Label handling\n const { labelProps, fieldProps } = createLabel({\n get id() {\n return inputId;\n },\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 // Upstream react-aria `useNumberField` → `useField` → `useLabel` with the DEFAULT\n // `labelElementType: 'label'`: the S2 NumberField label is a native `<label htmlFor>`\n // (verified against the shipped React DOM: `<label id for=inputId>`). This hardcoded\n // `\"span\"` was a self-inflicted divergence — it dropped the `for` association and made\n // `NumberFieldLabel` render a `<span>`. Reverted to `\"label\"` so `createLabel` emits\n // `for: inputId` (the input still also carries `aria-labelledby`, exactly as upstream).\n labelElementType: \"label\",\n });\n\n // Increment/decrement button labels — a 1:1 port of upstream `useNumberField`'s\n // four-case logic. Upstream RAC's `NumberField` component feeds `useNumberField` a\n // BOOLEAN slot for `label` (from `useSlot`), never the label string, so a visible\n // label is NEVER concatenated into the button `aria-label`. Instead: with a visible\n // label the button reads `aria-label: \"Increase\"` PLUS `aria-labelledby: \"<selfId>\n // <labelId>\"`; only an explicit `aria-label` (and no visible label) changes the text\n // (`\"Increase <aria-label>\"`). The prior `Increase ${getLabelText()}` was a\n // self-inflicted divergence that produced \"Increase Quantity\" where S2 ships\n // \"Increase\". `fieldLabel` mirrors upstream: `props['aria-label'] || ''` — the visible\n // label string is intentionally excluded (it arrives as a boolean slot in RAC).\n const fieldLabel = (): string => getProps()[\"aria-label\"] ?? \"\";\n const buttonLabelledBy = (): string | undefined => {\n if (fieldLabel()) return undefined;\n return getProps().label != null\n ? (labelProps.id as string | undefined)\n : getProps()[\"aria-labelledby\"];\n };\n\n // Filter DOM props\n const domProps = createMemo(() =>\n filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true }),\n );\n\n // Handle input change\n const onInputChange: JSX.EventHandler<HTMLInputElement, Event> = (e) => {\n const value = e.currentTarget.value;\n if (state.validate(value)) {\n state.setInputValue(value);\n }\n };\n\n // Handle input blur - commit value\n // Non-reactive focus flag — matches useSpinButton. Focus itself must not\n // announce; only a later change to inputValue while focused does.\n let isFocused = false;\n\n const onInputBlur: JSX.EventHandler<HTMLInputElement, FocusEvent> = (e) => {\n isFocused = false;\n state.commit();\n const p = getProps();\n p.onBlur?.(e);\n p.onFocusChange?.(false);\n };\n\n const onInputFocus: JSX.EventHandler<HTMLInputElement, FocusEvent> = (e) => {\n isFocused = true;\n const p = getProps();\n p.onFocus?.(e);\n p.onFocusChange?.(true);\n };\n\n createEffect(\n () => state.inputValue(),\n (value) => {\n if (isFocused) {\n clearAnnouncer(\"assertive\");\n announce(value, \"assertive\");\n }\n },\n );\n\n // Handle keyboard events\n const onKeyDown: JSX.EventHandler<HTMLInputElement, KeyboardEvent> = (e) => {\n const p = getProps();\n if (p.isDisabled || p.isReadOnly) {\n p.onKeyDown?.(e);\n return;\n }\n\n switch (e.key) {\n case \"ArrowUp\":\n e.preventDefault();\n state.increment();\n break;\n case \"ArrowDown\":\n e.preventDefault();\n state.decrement();\n break;\n case \"PageUp\":\n e.preventDefault();\n state.increment();\n break;\n case \"PageDown\":\n e.preventDefault();\n state.decrement();\n break;\n case \"Home\":\n e.preventDefault();\n state.decrementToMin();\n break;\n case \"End\":\n e.preventDefault();\n state.incrementToMax();\n break;\n case \"Enter\":\n state.commit();\n break;\n }\n\n p.onKeyDown?.(e);\n };\n\n const onKeyUp: JSX.EventHandler<HTMLInputElement, KeyboardEvent> = (e) => {\n getProps().onKeyUp?.(e);\n };\n\n const [focusWithin, setFocusWithin] = createSignal(false);\n const { focusWithinProps } = createFocusWithin({\n onFocusWithinChange: setFocusWithin,\n });\n\n const onWheel = (e: WheelEvent) => {\n const p = getProps();\n const input = inputRef?.();\n\n if (\n p.isWheelDisabled ||\n p.isDisabled ||\n p.isReadOnly ||\n (input != null && input.ownerDocument.activeElement !== input && !focusWithin())\n ) {\n return;\n }\n if (Math.abs(e.deltaY) <= Math.abs(e.deltaX)) {\n return;\n }\n if (e.deltaY > 0) {\n state.increment();\n } else if (e.deltaY < 0) {\n state.decrement();\n } else {\n return;\n }\n e.preventDefault();\n };\n\n const onButtonPressStart = (e: PressEvent) => {\n const input = inputRef?.();\n\n // Keep existing input focus in place. This avoids hiding software keyboards\n // and prevents a blur/refocus flicker when mouse pressing the steppers.\n if (input && input.ownerDocument.activeElement === input) {\n return;\n }\n\n if (e.pointerType === \"mouse\") {\n input?.focus();\n } else if (e.target instanceof HTMLElement) {\n e.target.focus();\n }\n };\n\n let incrementTouchPressUp = false;\n let decrementTouchPressUp = false;\n let spinTimeout: ReturnType<typeof setTimeout> | undefined;\n let isSpinning = false;\n\n const clearSpin = () => {\n if (spinTimeout != null) {\n clearTimeout(spinTimeout);\n spinTimeout = undefined;\n }\n isSpinning = false;\n };\n onOwnedCleanup(clearSpin);\n\n const startSpin = (direction: \"up\" | \"down\", initialDelay: number) => {\n clearSpin();\n const step = () => {\n isSpinning = true;\n if (direction === \"up\") {\n if (!state.canIncrement()) return;\n state.increment();\n } else {\n if (!state.canDecrement()) return;\n state.decrement();\n }\n spinTimeout = setTimeout(step, 60);\n };\n spinTimeout = setTimeout(step, initialDelay);\n };\n\n const onIncrementPressStart = (e: PressEvent) => {\n if (e.pointerType !== \"touch\") {\n state.increment();\n startSpin(\"up\", 400);\n } else {\n incrementTouchPressUp = false;\n startSpin(\"up\", 600);\n }\n\n onButtonPressStart(e);\n };\n\n const onIncrementPressUp = (e: PressEvent) => {\n clearSpin();\n if (e.pointerType === \"touch\") {\n incrementTouchPressUp = true;\n }\n };\n\n const onIncrementPressEnd = (e: PressEvent) => {\n const spinning = isSpinning;\n clearSpin();\n if (e.pointerType === \"touch\" && incrementTouchPressUp && !spinning) {\n state.increment();\n }\n\n incrementTouchPressUp = false;\n };\n const onIncrementClick = (e: MouseEvent) => {\n if (!state.canIncrement()) {\n e.preventDefault();\n return;\n }\n\n state.increment();\n inputRef?.()?.focus();\n };\n\n const onDecrementPressStart = (e: PressEvent) => {\n if (e.pointerType !== \"touch\") {\n state.decrement();\n startSpin(\"down\", 400);\n } else {\n decrementTouchPressUp = false;\n startSpin(\"down\", 600);\n }\n\n onButtonPressStart(e);\n };\n\n const onDecrementPressUp = (e: PressEvent) => {\n clearSpin();\n if (e.pointerType === \"touch\") {\n decrementTouchPressUp = true;\n }\n };\n\n const onDecrementPressEnd = (e: PressEvent) => {\n const spinning = isSpinning;\n clearSpin();\n if (e.pointerType === \"touch\" && decrementTouchPressUp && !spinning) {\n state.decrement();\n }\n\n decrementTouchPressUp = false;\n };\n const onDecrementClick = (e: MouseEvent) => {\n if (!state.canDecrement()) {\n e.preventDefault();\n return;\n }\n\n state.decrement();\n inputRef?.()?.focus();\n };\n\n // Build aria-describedby\n const getAriaDescribedBy = () => {\n const p = getProps();\n const parts: string[] = [];\n if (p[\"aria-describedby\"]) parts.push(p[\"aria-describedby\"]);\n if (p.description) parts.push(descriptionId);\n if (displayValidation().isInvalid && p.errorMessage) parts.push(errorMessageId);\n return parts.length > 0 ? parts.join(\" \") : undefined;\n };\n\n return {\n get labelProps() {\n return labelProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get groupProps() {\n return mergeProps(focusWithinProps, {\n role: \"group\",\n \"aria-disabled\": getProps().isDisabled ? \"true\" : undefined,\n \"aria-invalid\": displayValidation().isInvalid ? \"true\" : undefined,\n }) as JSX.HTMLAttributes<HTMLElement>;\n },\n get inputProps() {\n const p = getProps();\n const isDisabled = p.isDisabled ?? state.isDisabled();\n const isReadOnly = p.isReadOnly ?? state.isReadOnly();\n\n return mergeProps(\n domProps(),\n fieldProps as Record<string, unknown>,\n {\n id: inputId,\n type: \"text\",\n inputMode: \"decimal\" as const,\n autoComplete: \"off\",\n autoCorrect: \"off\",\n spellcheck: false,\n // Upstream routes the input through useFormattedTextField → useTextField →\n // useFocusable, which \"always set[s] a tabIndex so that Safari allows\n // focusing native buttons and inputs\": `excludeFromTabOrder ? -1 : 0`, then\n // `undefined` when disabled. The input is never excluded, so the rendered\n // DOM carries `tabindex=\"0\"` (absent only when disabled). We hand-roll\n // inputProps (see the spinbutton-override note below) so we must replay that\n // one focusable prop here to stay byte-identical to React's tab order.\n tabIndex: isDisabled ? undefined : 0,\n // Upstream useNumberField wraps useSpinButton but deliberately\n // overrides its output: role=spinbutton can't be focused with\n // VoiceOver, so the input is a plain textbox (inside the role=group\n // wrapper above) and every aria-value* is dropped in favour of\n // aria-roledescription. The formatted value is still announced via the\n // input's own value. Mirror that contract instead of leaking the raw\n // spinbutton semantics.\n //\n // The string MUST match upstream's `stringFormatter.format('numberField')`,\n // whose en-US value is `Number field` (capitalised) — not a lowercase\n // hand-roll. Full locale routing via `createStringFormatter` (as\n // `createDateField` does) is tracked as `intl-roledescription-hardcodes`\n // (also covers the ColorArea/ColorSwatch English hardcodes); this keeps the\n // en-US roledescription byte-identical to React Spectrum in the meantime.\n \"aria-roledescription\": \"Number field\",\n \"aria-invalid\": displayValidation().isInvalid || undefined,\n \"aria-required\":\n ((p.validationBehavior ?? \"native\") === \"aria\" && p.isRequired) || undefined,\n \"aria-describedby\": getAriaDescribedBy(),\n disabled: isDisabled || undefined,\n readOnly: isReadOnly || undefined,\n required: ((p.validationBehavior ?? \"native\") === \"native\" && p.isRequired) || undefined,\n value: state.inputValue(),\n onInput: onInputChange,\n onChange: onInputChange,\n onFocus: onInputFocus,\n onBlur: onInputBlur,\n onKeyDown,\n onKeyUp,\n onWheel,\n onPaste: p.onPaste,\n onCopy: p.onCopy,\n onCut: p.onCut,\n name: p.name,\n form: p.form,\n autoFocus: p.autoFocus,\n } as Record<string, unknown>,\n ) as JSX.InputHTMLAttributes<HTMLInputElement>;\n },\n get incrementButtonProps() {\n const labelledBy = buttonLabelledBy();\n return {\n id: incrementId,\n type: \"button\",\n \"aria-label\": `Increase ${fieldLabel()}`.trim(),\n \"aria-labelledby\": labelledBy ? `${incrementId} ${labelledBy}` : undefined,\n \"aria-controls\": inputId,\n excludeFromTabOrder: true,\n preventFocusOnPress: true,\n allowFocusWhenDisabled: true,\n get disabled() {\n return !state.canIncrement();\n },\n tabIndex: -1,\n get isDisabled() {\n return !state.canIncrement();\n },\n onClick: onIncrementClick,\n onPressStart: onIncrementPressStart,\n onPressUp: onIncrementPressUp,\n onPressEnd: onIncrementPressEnd,\n } as AriaButtonProps;\n },\n get decrementButtonProps() {\n const labelledBy = buttonLabelledBy();\n return {\n id: decrementId,\n type: \"button\",\n \"aria-label\": `Decrease ${fieldLabel()}`.trim(),\n \"aria-labelledby\": labelledBy ? `${decrementId} ${labelledBy}` : undefined,\n \"aria-controls\": inputId,\n excludeFromTabOrder: true,\n preventFocusOnPress: true,\n allowFocusWhenDisabled: true,\n get disabled() {\n return !state.canDecrement();\n },\n tabIndex: -1,\n get isDisabled() {\n return !state.canDecrement();\n },\n onClick: onDecrementClick,\n onPressStart: onDecrementPressStart,\n onPressUp: onDecrementPressUp,\n onPressEnd: onDecrementPressEnd,\n } as AriaButtonProps;\n },\n get descriptionProps() {\n return {\n id: descriptionId,\n } as JSX.HTMLAttributes<HTMLElement>;\n },\n get errorMessageProps() {\n return {\n id: errorMessageId,\n } as JSX.HTMLAttributes<HTMLElement>;\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\nlet numberInput: HTMLInputElement | null = null;\n\nfunction createNativeValidation(\n state: NumberFieldState,\n getProps: () => AriaNumberFieldProps,\n inputRef?: () => HTMLInputElement | null,\n): void {\n createEffect(\n () => ({\n commitBehavior: getProps().commitBehavior ?? \"snap\",\n input: inputRef?.() ?? null,\n realtimeInvalid: state.realtimeValidation().isInvalid,\n min: state.minValue(),\n max: state.maxValue(),\n step: state.step(),\n value: state.numberValue(),\n // Re-apply after the text input's value is written; assigning `value`\n // clears customValidity in the DOM.\n inputValue: state.inputValue(),\n validationBehavior: getProps().validationBehavior ?? \"native\",\n }),\n ({ commitBehavior, input, realtimeInvalid, min, max, step, value, validationBehavior }) => {\n if (commitBehavior !== \"validate\" || !input || input.disabled) {\n return;\n }\n\n if (!numberInput && typeof document !== \"undefined\") {\n numberInput = document.createElement(\"input\");\n numberInput.type = \"number\";\n }\n\n if (!numberInput) {\n return;\n }\n\n numberInput.min = min != null && !isNaN(min) ? String(min) : \"\";\n numberInput.max = max != null && !isNaN(max) ? String(max) : \"\";\n numberInput.step = step != null && !isNaN(step) ? String(step) : \"\";\n numberInput.value = value != null && !isNaN(value) ? String(value) : \"\";\n\n const rangeOverflow =\n max != null && !isNaN(max) && value != null && !isNaN(value) && value > max;\n const rangeUnderflow =\n min != null && !isNaN(min) && value != null && !isNaN(value) && value < min;\n const nativeInvalid = !numberInput.validity.valid || rangeOverflow || rangeUnderflow;\n if (!nativeInvalid) {\n return;\n }\n\n const validationMessage =\n numberInput.validationMessage ||\n (rangeOverflow ? \"Value exceeds the maximum.\" : \"\") ||\n (rangeUnderflow ? \"Value is below the minimum.\" : \"\");\n if (validationBehavior === \"native\") {\n input.setCustomValidity(validationMessage);\n }\n if (!realtimeInvalid) {\n state.updateValidation({\n isInvalid: true,\n validationErrors: validationMessage ? [validationMessage] : [],\n validationDetails: {\n badInput: input.validity.badInput,\n customError: true,\n patternMismatch: input.validity.patternMismatch,\n rangeOverflow: rangeOverflow || numberInput.validity.rangeOverflow,\n rangeUnderflow: rangeUnderflow || numberInput.validity.rangeUnderflow,\n stepMismatch: numberInput.validity.stepMismatch,\n tooLong: input.validity.tooLong,\n tooShort: input.validity.tooShort,\n typeMismatch: input.validity.typeMismatch,\n valueMissing: input.validity.valueMissing,\n valid: false,\n },\n });\n }\n },\n );\n}\n"],"mappings":"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"}
|