@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
|
@@ -0,0 +1,1200 @@
|
|
|
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/interactions/useFocusVisible.ts
|
|
13
|
+
/*
|
|
14
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
15
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
16
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
17
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
*
|
|
19
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
20
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
21
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
22
|
+
* governing permissions and limitations under the License.
|
|
23
|
+
*/
|
|
24
|
+
/*
|
|
25
|
+
* Copyright 2024 Adobe. All rights reserved.
|
|
26
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
27
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
28
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
29
|
+
*
|
|
30
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
31
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
32
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
33
|
+
* governing permissions and limitations under the License.
|
|
34
|
+
*/
|
|
35
|
+
/*
|
|
36
|
+
* Copyright 2021 Adobe. All rights reserved.
|
|
37
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
38
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
39
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
40
|
+
*
|
|
41
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
42
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
43
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
44
|
+
* governing permissions and limitations under the License.
|
|
45
|
+
*/
|
|
46
|
+
/*
|
|
47
|
+
* Copyright 2025 Adobe. All rights reserved.
|
|
48
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
49
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
50
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
51
|
+
*
|
|
52
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
53
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
54
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
55
|
+
* governing permissions and limitations under the License.
|
|
56
|
+
*/
|
|
57
|
+
/*
|
|
58
|
+
* Copyright 2023 Adobe. All rights reserved.
|
|
59
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
60
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
61
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
62
|
+
*
|
|
63
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
64
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
65
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
66
|
+
* governing permissions and limitations under the License.
|
|
67
|
+
*/
|
|
68
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/focus/FocusScope.tsx
|
|
69
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/interactions/usePress.ts
|
|
70
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/domHelpers.ts
|
|
71
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/getScrollParent.ts
|
|
72
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/getScrollParents.ts
|
|
73
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/isElementVisible.ts
|
|
74
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/isFocusable.ts
|
|
75
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/isScrollable.ts
|
|
76
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/keyboard.tsx
|
|
77
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/openLink.tsx
|
|
78
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/shadowdom/DOMFunctions.ts
|
|
79
|
+
/*
|
|
80
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
81
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
82
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
83
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
84
|
+
*
|
|
85
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
86
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
87
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
88
|
+
* governing permissions and limitations under the License.
|
|
89
|
+
*/
|
|
90
|
+
/*
|
|
91
|
+
* Copyright 2022 Adobe. All rights reserved.
|
|
92
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
93
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
94
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
95
|
+
*
|
|
96
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
97
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
98
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
99
|
+
* governing permissions and limitations under the License.
|
|
100
|
+
*/
|
|
101
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/interactions/utils.ts
|
|
102
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/chain.ts
|
|
103
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/isVirtualEvent.ts
|
|
104
|
+
/*
|
|
105
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
106
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the 'License');
|
|
107
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
108
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
109
|
+
*
|
|
110
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
111
|
+
* the License is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
112
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
113
|
+
* governing permissions and limitations under the License.
|
|
114
|
+
*/
|
|
115
|
+
/*
|
|
116
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
117
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
118
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
119
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
120
|
+
*
|
|
121
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
122
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
123
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
124
|
+
* governing permissions and limitations under the License.
|
|
125
|
+
*/
|
|
126
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/interactions/focusSafely.ts
|
|
127
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/interactions/utils.ts
|
|
128
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/focusWithoutScrolling.ts
|
|
129
|
+
/*
|
|
130
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
131
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
132
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
133
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
134
|
+
*
|
|
135
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
136
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
137
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
138
|
+
* governing permissions and limitations under the License.
|
|
139
|
+
*/
|
|
140
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/platform.ts
|
|
141
|
+
/*
|
|
142
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
143
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
144
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
145
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
146
|
+
*
|
|
147
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
148
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
149
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
150
|
+
* governing permissions and limitations under the License.
|
|
151
|
+
*/
|
|
152
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/utils/runAfterTransition.ts
|
|
153
|
+
import { r as isTestEnv } from "./env.js";
|
|
154
|
+
import { createSignal, createTrackedEffect } from "solid-js";
|
|
155
|
+
import { shadowDOM } from "@proyecto-viviana/solid-stately/private/flags/flags";
|
|
156
|
+
import { isServer } from "@solidjs/web";
|
|
157
|
+
//#region src/utils/platform.ts
|
|
158
|
+
function getNavigator() {
|
|
159
|
+
if (typeof window === "undefined" || window.navigator == null) return null;
|
|
160
|
+
return window.navigator;
|
|
161
|
+
}
|
|
162
|
+
function testPlatform(re) {
|
|
163
|
+
const nav = getNavigator();
|
|
164
|
+
if (!nav) return false;
|
|
165
|
+
return re.test(nav.platform || nav.userAgentData?.platform || "");
|
|
166
|
+
}
|
|
167
|
+
function testUserAgent(re) {
|
|
168
|
+
const nav = getNavigator();
|
|
169
|
+
return nav ? re.test(nav.userAgent) : false;
|
|
170
|
+
}
|
|
171
|
+
function isMac() {
|
|
172
|
+
return testPlatform(/^Mac/i);
|
|
173
|
+
}
|
|
174
|
+
function isIPhone() {
|
|
175
|
+
return testPlatform(/^iPhone/i);
|
|
176
|
+
}
|
|
177
|
+
function isIPad() {
|
|
178
|
+
return testPlatform(/^iPad/i) || isMac() && navigator.maxTouchPoints > 1;
|
|
179
|
+
}
|
|
180
|
+
function isIOS() {
|
|
181
|
+
return isIPhone() || isIPad();
|
|
182
|
+
}
|
|
183
|
+
function isAppleDevice() {
|
|
184
|
+
return isMac() || isIOS();
|
|
185
|
+
}
|
|
186
|
+
function isWebKit() {
|
|
187
|
+
return testUserAgent(/AppleWebKit/i) && !isChrome();
|
|
188
|
+
}
|
|
189
|
+
function isChrome() {
|
|
190
|
+
return testUserAgent(/Chrome/i);
|
|
191
|
+
}
|
|
192
|
+
function isAndroid() {
|
|
193
|
+
return testUserAgent(/Android/i);
|
|
194
|
+
}
|
|
195
|
+
function isFirefox() {
|
|
196
|
+
return testUserAgent(/Firefox/i);
|
|
197
|
+
}
|
|
198
|
+
//#endregion
|
|
199
|
+
//#region src/utils/events.ts
|
|
200
|
+
/**
|
|
201
|
+
* Event utilities for detecting virtual clicks and event handling.
|
|
202
|
+
* Based on these pinned React Aria sources:
|
|
203
|
+
* - packages/react-aria/src/utils/isVirtualEvent.ts
|
|
204
|
+
* - packages/react-aria/src/utils/chain.ts
|
|
205
|
+
* - packages/react-aria/src/interactions/utils.ts
|
|
206
|
+
*
|
|
207
|
+
* createMouseEvent is a local event adapter.
|
|
208
|
+
*/
|
|
209
|
+
/**
|
|
210
|
+
* Checks if a click event was generated from a virtual source like a screen reader.
|
|
211
|
+
* Virtual clicks typically have detail of 0 and may have zero coordinates.
|
|
212
|
+
*/
|
|
213
|
+
function isVirtualClick(event) {
|
|
214
|
+
if (event.pointerType === "" && event.isTrusted) return true;
|
|
215
|
+
if (isAndroid() && event.pointerType) return event.type === "click" && event.buttons === 1;
|
|
216
|
+
return event.detail === 0 && !event.pointerType;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Checks if a pointer event was generated by a virtual source.
|
|
220
|
+
* iOS VoiceOver fires pointer events with incorrect coordinates.
|
|
221
|
+
* These events have zero width/height.
|
|
222
|
+
*/
|
|
223
|
+
function isVirtualPointerEvent(event) {
|
|
224
|
+
return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "mouse";
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Creates a synthetic mouse event for programmatic clicking.
|
|
228
|
+
*/
|
|
229
|
+
function createMouseEvent(type, nativeEvent) {
|
|
230
|
+
const init = {
|
|
231
|
+
bubbles: true,
|
|
232
|
+
cancelable: true,
|
|
233
|
+
view: window
|
|
234
|
+
};
|
|
235
|
+
if (nativeEvent) {
|
|
236
|
+
const e = nativeEvent;
|
|
237
|
+
init.screenX = e.screenX;
|
|
238
|
+
init.screenY = e.screenY;
|
|
239
|
+
init.clientX = e.clientX;
|
|
240
|
+
init.clientY = e.clientY;
|
|
241
|
+
init.ctrlKey = e.ctrlKey;
|
|
242
|
+
init.shiftKey = e.shiftKey;
|
|
243
|
+
init.altKey = e.altKey;
|
|
244
|
+
init.metaKey = e.metaKey;
|
|
245
|
+
init.button = e.button;
|
|
246
|
+
init.buttons = e.buttons;
|
|
247
|
+
init.relatedTarget = e.relatedTarget;
|
|
248
|
+
}
|
|
249
|
+
return new MouseEvent(type, init);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Creates a chain of event handlers that calls each in sequence.
|
|
253
|
+
*/
|
|
254
|
+
function chain(...callbacks) {
|
|
255
|
+
return ((...args) => {
|
|
256
|
+
for (const callback of callbacks) if (typeof callback === "function") callback(...args);
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Sets the target property on an event object.
|
|
261
|
+
* Used for synthetic events where target needs to be modified.
|
|
262
|
+
*/
|
|
263
|
+
function setEventTarget(event, target) {
|
|
264
|
+
Object.defineProperty(event, "target", {
|
|
265
|
+
value: target,
|
|
266
|
+
writable: false,
|
|
267
|
+
configurable: true
|
|
268
|
+
});
|
|
269
|
+
Object.defineProperty(event, "currentTarget", {
|
|
270
|
+
value: target,
|
|
271
|
+
writable: false,
|
|
272
|
+
configurable: true
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
//#endregion
|
|
276
|
+
//#region src/interactions/createInteractionModality.ts
|
|
277
|
+
/**
|
|
278
|
+
* createInteractionModality + focus-visible tracking for solidaria
|
|
279
|
+
*
|
|
280
|
+
* Port of @react-aria/interactions useFocusVisible/useInteractionModality.
|
|
281
|
+
* Tracks the current interaction modality (keyboard, pointer, or virtual) and
|
|
282
|
+
* provides focus-visible state and listeners.
|
|
283
|
+
*/
|
|
284
|
+
let currentModalityValue = null;
|
|
285
|
+
const [modalityEpoch, bumpModalityEpoch] = createSignal(0, { ownedWrite: true });
|
|
286
|
+
let currentPointerType = "keyboard";
|
|
287
|
+
function writeModality(next) {
|
|
288
|
+
currentModalityValue = next;
|
|
289
|
+
}
|
|
290
|
+
function publishModality(next) {
|
|
291
|
+
currentModalityValue = next;
|
|
292
|
+
bumpModalityEpoch((n) => n + 1);
|
|
293
|
+
}
|
|
294
|
+
const changeHandlers = /* @__PURE__ */ new Set();
|
|
295
|
+
let hasSetupGlobalListeners = /* @__PURE__ */ new Map();
|
|
296
|
+
let hasEventBeforeFocus = false;
|
|
297
|
+
let hasBlurredWindowRecently = false;
|
|
298
|
+
/** @private Set by `preventFocus` so programmatic refocus is not treated as a modality change. */
|
|
299
|
+
let ignoreFocusEvent = false;
|
|
300
|
+
/** @private */
|
|
301
|
+
function setIgnoreFocusEvent(value) {
|
|
302
|
+
ignoreFocusEvent = value;
|
|
303
|
+
}
|
|
304
|
+
const FOCUS_VISIBLE_INPUT_KEYS = {
|
|
305
|
+
Tab: true,
|
|
306
|
+
Escape: true
|
|
307
|
+
};
|
|
308
|
+
function triggerChangeHandlers(modality, e) {
|
|
309
|
+
for (const handler of changeHandlers) handler(modality, e);
|
|
310
|
+
}
|
|
311
|
+
function isValidKey(e) {
|
|
312
|
+
return !(e.metaKey || !isMac() && e.altKey || e.ctrlKey || e.key === "Control" || e.key === "Shift" || e.key === "Meta");
|
|
313
|
+
}
|
|
314
|
+
function handleKeyboardEvent(e) {
|
|
315
|
+
hasEventBeforeFocus = true;
|
|
316
|
+
if (!openLink.isOpening && isValidKey(e)) {
|
|
317
|
+
publishModality("keyboard");
|
|
318
|
+
currentPointerType = "keyboard";
|
|
319
|
+
triggerChangeHandlers("keyboard", e);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
function handlePointerEvent(e) {
|
|
323
|
+
currentPointerType = "pointerType" in e ? e.pointerType : "mouse";
|
|
324
|
+
if (e.type === "mousedown" || e.type === "pointerdown") {
|
|
325
|
+
publishModality("pointer");
|
|
326
|
+
hasEventBeforeFocus = true;
|
|
327
|
+
triggerChangeHandlers("pointer", e);
|
|
328
|
+
} else writeModality("pointer");
|
|
329
|
+
}
|
|
330
|
+
function handleClickEvent(e) {
|
|
331
|
+
if (!openLink.isOpening && isVirtualClick(e)) {
|
|
332
|
+
hasEventBeforeFocus = true;
|
|
333
|
+
publishModality("virtual");
|
|
334
|
+
currentPointerType = "virtual";
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
function handleFocusEvent(e) {
|
|
338
|
+
if (ignoreFocusEvent) return;
|
|
339
|
+
const target = getEventTarget(e);
|
|
340
|
+
const ownerWindow = getOwnerWindow(target);
|
|
341
|
+
const ownerDocument = getOwnerDocument(target);
|
|
342
|
+
if (target === ownerWindow) {
|
|
343
|
+
hasBlurredWindowRecently = true;
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
if (target === ownerDocument || !e.isTrusted) return;
|
|
347
|
+
if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {
|
|
348
|
+
publishModality("virtual");
|
|
349
|
+
currentPointerType = "virtual";
|
|
350
|
+
triggerChangeHandlers("virtual", e);
|
|
351
|
+
}
|
|
352
|
+
hasEventBeforeFocus = false;
|
|
353
|
+
hasBlurredWindowRecently = false;
|
|
354
|
+
}
|
|
355
|
+
function handleWindowBlur() {
|
|
356
|
+
if (ignoreFocusEvent) return;
|
|
357
|
+
hasEventBeforeFocus = false;
|
|
358
|
+
hasBlurredWindowRecently = true;
|
|
359
|
+
}
|
|
360
|
+
function setupGlobalFocusEvents(element) {
|
|
361
|
+
if (typeof window === "undefined" || typeof document === "undefined") return;
|
|
362
|
+
const windowObject = getOwnerWindow(element);
|
|
363
|
+
if (hasSetupGlobalListeners.get(windowObject)) return;
|
|
364
|
+
const documentObject = getOwnerDocument(element);
|
|
365
|
+
const originalFocus = windowObject.HTMLElement.prototype.focus;
|
|
366
|
+
Reflect.defineProperty(windowObject.HTMLElement.prototype, "focus", {
|
|
367
|
+
configurable: true,
|
|
368
|
+
writable: true,
|
|
369
|
+
value: function() {
|
|
370
|
+
hasEventBeforeFocus = true;
|
|
371
|
+
originalFocus.apply(this, arguments);
|
|
372
|
+
}
|
|
373
|
+
});
|
|
374
|
+
documentObject.addEventListener("keydown", handleKeyboardEvent, true);
|
|
375
|
+
documentObject.addEventListener("keyup", handleKeyboardEvent, true);
|
|
376
|
+
documentObject.addEventListener("click", handleClickEvent, true);
|
|
377
|
+
windowObject.addEventListener("focus", handleFocusEvent, true);
|
|
378
|
+
windowObject.addEventListener("blur", handleWindowBlur, false);
|
|
379
|
+
if (typeof windowObject.PointerEvent !== "undefined") {
|
|
380
|
+
documentObject.addEventListener("pointerdown", handlePointerEvent, true);
|
|
381
|
+
documentObject.addEventListener("pointermove", handlePointerEvent, true);
|
|
382
|
+
documentObject.addEventListener("pointerup", handlePointerEvent, true);
|
|
383
|
+
} else {
|
|
384
|
+
documentObject.addEventListener("mousedown", handlePointerEvent, true);
|
|
385
|
+
documentObject.addEventListener("mousemove", handlePointerEvent, true);
|
|
386
|
+
documentObject.addEventListener("mouseup", handlePointerEvent, true);
|
|
387
|
+
}
|
|
388
|
+
windowObject.addEventListener("beforeunload", () => {
|
|
389
|
+
tearDownWindowFocusTracking(element);
|
|
390
|
+
}, { once: true });
|
|
391
|
+
hasSetupGlobalListeners.set(windowObject, { focus: originalFocus });
|
|
392
|
+
}
|
|
393
|
+
function tearDownWindowFocusTracking(element, loadListener) {
|
|
394
|
+
if (typeof window === "undefined" || typeof document === "undefined") return;
|
|
395
|
+
const windowObject = getOwnerWindow(element);
|
|
396
|
+
const documentObject = getOwnerDocument(element);
|
|
397
|
+
if (loadListener) documentObject.removeEventListener("DOMContentLoaded", loadListener);
|
|
398
|
+
if (!hasSetupGlobalListeners.has(windowObject)) return;
|
|
399
|
+
const entry = hasSetupGlobalListeners.get(windowObject);
|
|
400
|
+
Reflect.defineProperty(windowObject.HTMLElement.prototype, "focus", {
|
|
401
|
+
configurable: true,
|
|
402
|
+
writable: true,
|
|
403
|
+
value: entry.focus
|
|
404
|
+
});
|
|
405
|
+
documentObject.removeEventListener("keydown", handleKeyboardEvent, true);
|
|
406
|
+
documentObject.removeEventListener("keyup", handleKeyboardEvent, true);
|
|
407
|
+
documentObject.removeEventListener("click", handleClickEvent, true);
|
|
408
|
+
windowObject.removeEventListener("focus", handleFocusEvent, true);
|
|
409
|
+
windowObject.removeEventListener("blur", handleWindowBlur, false);
|
|
410
|
+
if (typeof windowObject.PointerEvent !== "undefined") {
|
|
411
|
+
documentObject.removeEventListener("pointerdown", handlePointerEvent, true);
|
|
412
|
+
documentObject.removeEventListener("pointermove", handlePointerEvent, true);
|
|
413
|
+
documentObject.removeEventListener("pointerup", handlePointerEvent, true);
|
|
414
|
+
} else {
|
|
415
|
+
documentObject.removeEventListener("mousedown", handlePointerEvent, true);
|
|
416
|
+
documentObject.removeEventListener("mousemove", handlePointerEvent, true);
|
|
417
|
+
documentObject.removeEventListener("mouseup", handlePointerEvent, true);
|
|
418
|
+
}
|
|
419
|
+
hasSetupGlobalListeners.delete(windowObject);
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Adds a window (i.e. iframe) to the list of windows that are being tracked for focus visible.
|
|
423
|
+
*/
|
|
424
|
+
function addWindowFocusTracking(element) {
|
|
425
|
+
const documentObject = getOwnerDocument(element);
|
|
426
|
+
let loadListener;
|
|
427
|
+
if (documentObject.readyState !== "loading") setupGlobalFocusEvents(element);
|
|
428
|
+
else {
|
|
429
|
+
loadListener = () => {
|
|
430
|
+
setupGlobalFocusEvents(element);
|
|
431
|
+
};
|
|
432
|
+
documentObject.addEventListener("DOMContentLoaded", loadListener);
|
|
433
|
+
}
|
|
434
|
+
return () => tearDownWindowFocusTracking(element, loadListener);
|
|
435
|
+
}
|
|
436
|
+
function setupGlobalFocusListeners() {
|
|
437
|
+
addWindowFocusTracking();
|
|
438
|
+
}
|
|
439
|
+
if (typeof document !== "undefined") addWindowFocusTracking();
|
|
440
|
+
function focusVisibleSnapshot() {
|
|
441
|
+
return currentModalityValue !== "pointer";
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* If true, keyboard focus is visible. The only tracked read of modality:
|
|
445
|
+
* useOption's render predicate re-reads this on every render.
|
|
446
|
+
*/
|
|
447
|
+
function isFocusVisible() {
|
|
448
|
+
modalityEpoch();
|
|
449
|
+
return focusVisibleSnapshot();
|
|
450
|
+
}
|
|
451
|
+
/**
|
|
452
|
+
* Gets the current interaction modality.
|
|
453
|
+
* The module let, not the signal. An effect that calls this does not re-run
|
|
454
|
+
* when modality changes; upstream's query is a plain variable.
|
|
455
|
+
*/
|
|
456
|
+
function getInteractionModality() {
|
|
457
|
+
return currentModalityValue;
|
|
458
|
+
}
|
|
459
|
+
/**
|
|
460
|
+
* Sets the current interaction modality.
|
|
461
|
+
*/
|
|
462
|
+
function setInteractionModality(modality) {
|
|
463
|
+
publishModality(modality);
|
|
464
|
+
currentPointerType = modality === "pointer" ? "mouse" : modality;
|
|
465
|
+
triggerChangeHandlers(modality, null);
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Gets the current pointer type. Separate from modality; this let is never
|
|
469
|
+
* the modality signal.
|
|
470
|
+
*/
|
|
471
|
+
function getPointerType() {
|
|
472
|
+
return currentPointerType;
|
|
473
|
+
}
|
|
474
|
+
function isKeyboardFocusEvent(isTextInput, modality, e) {
|
|
475
|
+
if (!e) return true;
|
|
476
|
+
const target = "target" in e ? e.target : null;
|
|
477
|
+
const ownerDocument = target ? getOwnerDocument(target) : document;
|
|
478
|
+
const ownerWindow = target ? getOwnerWindow(target) : window;
|
|
479
|
+
const IHTMLInputElement = ownerWindow.HTMLInputElement;
|
|
480
|
+
const IHTMLTextAreaElement = ownerWindow.HTMLTextAreaElement;
|
|
481
|
+
const IHTMLElement = ownerWindow.HTMLElement;
|
|
482
|
+
const IKeyboardEvent = ownerWindow.KeyboardEvent;
|
|
483
|
+
const nonTextInputTypes = /* @__PURE__ */ new Set([
|
|
484
|
+
"checkbox",
|
|
485
|
+
"radio",
|
|
486
|
+
"range",
|
|
487
|
+
"color",
|
|
488
|
+
"file",
|
|
489
|
+
"image",
|
|
490
|
+
"button",
|
|
491
|
+
"submit",
|
|
492
|
+
"reset"
|
|
493
|
+
]);
|
|
494
|
+
isTextInput = isTextInput || ownerDocument.activeElement instanceof IHTMLInputElement && !nonTextInputTypes.has(ownerDocument.activeElement.type) || ownerDocument.activeElement instanceof IHTMLTextAreaElement || ownerDocument.activeElement instanceof IHTMLElement && ownerDocument.activeElement.isContentEditable;
|
|
495
|
+
return !(isTextInput && modality === "keyboard" && e instanceof IKeyboardEvent && !FOCUS_VISIBLE_INPUT_KEYS[e.key]);
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* Listens for trigger change and reports if focus is visible.
|
|
499
|
+
*/
|
|
500
|
+
function createFocusVisibleListener(handler, opts) {
|
|
501
|
+
setupGlobalFocusEvents();
|
|
502
|
+
if (opts?.enabled === false) return () => {};
|
|
503
|
+
const listener = (modality, e) => {
|
|
504
|
+
if (!isKeyboardFocusEvent(!!opts?.isTextInput, modality, e)) return;
|
|
505
|
+
handler(focusVisibleSnapshot());
|
|
506
|
+
};
|
|
507
|
+
changeHandlers.add(listener);
|
|
508
|
+
return () => {
|
|
509
|
+
changeHandlers.delete(listener);
|
|
510
|
+
};
|
|
511
|
+
}
|
|
512
|
+
/**
|
|
513
|
+
* Manages focus visible state for the page.
|
|
514
|
+
*/
|
|
515
|
+
function createFocusVisible(props = {}) {
|
|
516
|
+
const [isVisible, setIsVisible] = createSignal(isServer ? false : props.autoFocus || focusVisibleSnapshot());
|
|
517
|
+
createTrackedEffect(() => {
|
|
518
|
+
const _s2Cleanups = [];
|
|
519
|
+
const cleanup = createFocusVisibleListener(setIsVisible, { isTextInput: props.isTextInput });
|
|
520
|
+
_s2Cleanups.push(cleanup);
|
|
521
|
+
return () => {
|
|
522
|
+
for (const c of _s2Cleanups) c();
|
|
523
|
+
};
|
|
524
|
+
});
|
|
525
|
+
return { isFocusVisible: isVisible };
|
|
526
|
+
}
|
|
527
|
+
/**
|
|
528
|
+
* Tracks the current interaction modality.
|
|
529
|
+
*/
|
|
530
|
+
function createInteractionModality() {
|
|
531
|
+
const [modality, setModality] = createSignal(isServer ? null : currentModalityValue);
|
|
532
|
+
createTrackedEffect(() => {
|
|
533
|
+
if (isServer) return;
|
|
534
|
+
const _s2Cleanups = [];
|
|
535
|
+
setupGlobalFocusEvents();
|
|
536
|
+
const handler = (newModality) => {
|
|
537
|
+
setModality(newModality);
|
|
538
|
+
};
|
|
539
|
+
changeHandlers.add(handler);
|
|
540
|
+
_s2Cleanups.push(() => {
|
|
541
|
+
changeHandlers.delete(handler);
|
|
542
|
+
});
|
|
543
|
+
return () => {
|
|
544
|
+
for (const c of _s2Cleanups) c();
|
|
545
|
+
};
|
|
546
|
+
});
|
|
547
|
+
return { modality };
|
|
548
|
+
}
|
|
549
|
+
/**
|
|
550
|
+
* Adds a listener for modality changes.
|
|
551
|
+
*/
|
|
552
|
+
function addModalityListener(handler) {
|
|
553
|
+
const wrapped = (modality) => {
|
|
554
|
+
handler(modality);
|
|
555
|
+
};
|
|
556
|
+
changeHandlers.add(wrapped);
|
|
557
|
+
return () => {
|
|
558
|
+
changeHandlers.delete(wrapped);
|
|
559
|
+
};
|
|
560
|
+
}
|
|
561
|
+
/**
|
|
562
|
+
* Hook to track whether the user is currently interacting with the keyboard.
|
|
563
|
+
*/
|
|
564
|
+
function useIsKeyboardFocused() {
|
|
565
|
+
const { modality } = createInteractionModality();
|
|
566
|
+
return () => modality() === "keyboard";
|
|
567
|
+
}
|
|
568
|
+
//#endregion
|
|
569
|
+
//#region src/utils/runAfterTransition.ts
|
|
570
|
+
/**
|
|
571
|
+
* Run a callback after in-flight CSS transitions end.
|
|
572
|
+
* Ported from packages/react-aria/src/utils/runAfterTransition.ts.
|
|
573
|
+
*
|
|
574
|
+
* Track properties per element rather than a count: Chrome can fire both
|
|
575
|
+
* transitionend and transitioncancel for the same property.
|
|
576
|
+
*/
|
|
577
|
+
const transitionsByElement = /* @__PURE__ */ new Map();
|
|
578
|
+
const transitionCallbacks = /* @__PURE__ */ new Set();
|
|
579
|
+
function setupGlobalEvents() {
|
|
580
|
+
if (typeof window === "undefined" || typeof document === "undefined" || !document.body) return;
|
|
581
|
+
function isTransitionEvent(event) {
|
|
582
|
+
return "propertyName" in event;
|
|
583
|
+
}
|
|
584
|
+
const onTransitionStart = (e) => {
|
|
585
|
+
const eventTarget = getEventTarget(e);
|
|
586
|
+
if (!isTransitionEvent(e) || !eventTarget) return;
|
|
587
|
+
let transitions = transitionsByElement.get(eventTarget);
|
|
588
|
+
if (!transitions) {
|
|
589
|
+
transitions = /* @__PURE__ */ new Set();
|
|
590
|
+
transitionsByElement.set(eventTarget, transitions);
|
|
591
|
+
eventTarget.addEventListener("transitioncancel", onTransitionEnd, { once: true });
|
|
592
|
+
}
|
|
593
|
+
transitions.add(e.propertyName);
|
|
594
|
+
};
|
|
595
|
+
const onTransitionEnd = (e) => {
|
|
596
|
+
const eventTarget = getEventTarget(e);
|
|
597
|
+
if (!isTransitionEvent(e) || !eventTarget) return;
|
|
598
|
+
const properties = transitionsByElement.get(eventTarget);
|
|
599
|
+
if (!properties) return;
|
|
600
|
+
properties.delete(e.propertyName);
|
|
601
|
+
if (properties.size === 0) {
|
|
602
|
+
eventTarget.removeEventListener("transitioncancel", onTransitionEnd);
|
|
603
|
+
transitionsByElement.delete(eventTarget);
|
|
604
|
+
}
|
|
605
|
+
if (transitionsByElement.size === 0) {
|
|
606
|
+
for (const cb of transitionCallbacks) cb();
|
|
607
|
+
transitionCallbacks.clear();
|
|
608
|
+
}
|
|
609
|
+
};
|
|
610
|
+
document.body.addEventListener("transitionrun", onTransitionStart);
|
|
611
|
+
document.body.addEventListener("transitionend", onTransitionEnd);
|
|
612
|
+
}
|
|
613
|
+
if (typeof document !== "undefined") {
|
|
614
|
+
if (document.readyState !== "loading") setupGlobalEvents();
|
|
615
|
+
else document.addEventListener("DOMContentLoaded", setupGlobalEvents);
|
|
616
|
+
}
|
|
617
|
+
function cleanupDetachedElements() {
|
|
618
|
+
for (const [eventTarget] of transitionsByElement) if ("isConnected" in eventTarget && !eventTarget.isConnected) transitionsByElement.delete(eventTarget);
|
|
619
|
+
}
|
|
620
|
+
function runAfterTransition(fn) {
|
|
621
|
+
const win = typeof window !== "undefined" ? window : void 0;
|
|
622
|
+
if (!win || typeof win.requestAnimationFrame !== "function") {
|
|
623
|
+
fn();
|
|
624
|
+
return;
|
|
625
|
+
}
|
|
626
|
+
win.requestAnimationFrame(() => {
|
|
627
|
+
cleanupDetachedElements();
|
|
628
|
+
if (transitionsByElement.size === 0) fn();
|
|
629
|
+
else transitionCallbacks.add(fn);
|
|
630
|
+
});
|
|
631
|
+
}
|
|
632
|
+
//#endregion
|
|
633
|
+
//#region src/utils/focus.ts
|
|
634
|
+
/**
|
|
635
|
+
* Focus management utilities.
|
|
636
|
+
* Based on these pinned React Aria sources:
|
|
637
|
+
* - packages/react-aria/src/utils/focusWithoutScrolling.ts
|
|
638
|
+
* - packages/react-aria/src/interactions/utils.ts
|
|
639
|
+
* - packages/react-aria/src/interactions/focusSafely.ts
|
|
640
|
+
*
|
|
641
|
+
* runAfterPaint and the focusVisible option are local Solid adapters.
|
|
642
|
+
*/
|
|
643
|
+
/**
|
|
644
|
+
* Focuses an element without scrolling the page.
|
|
645
|
+
* Uses preventScroll option with fallback for older browsers.
|
|
646
|
+
*/
|
|
647
|
+
function focusWithoutScrolling(element, options) {
|
|
648
|
+
if (!element) return;
|
|
649
|
+
const focusOptions = {
|
|
650
|
+
preventScroll: true,
|
|
651
|
+
...options
|
|
652
|
+
};
|
|
653
|
+
try {
|
|
654
|
+
element.focus(focusOptions);
|
|
655
|
+
} catch {
|
|
656
|
+
const scrollPositions = getScrollableAncestors(element).map((el) => ({
|
|
657
|
+
element: el,
|
|
658
|
+
scrollTop: el.scrollTop,
|
|
659
|
+
scrollLeft: el.scrollLeft
|
|
660
|
+
}));
|
|
661
|
+
element.focus(options);
|
|
662
|
+
for (const { element: el, scrollTop, scrollLeft } of scrollPositions) {
|
|
663
|
+
el.scrollTop = scrollTop;
|
|
664
|
+
el.scrollLeft = scrollLeft;
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
/**
|
|
669
|
+
* Gets all scrollable ancestors of an element.
|
|
670
|
+
*/
|
|
671
|
+
function getScrollableAncestors(element) {
|
|
672
|
+
const ancestors = [];
|
|
673
|
+
let parent = element.parentElement;
|
|
674
|
+
while (parent) {
|
|
675
|
+
const style = getComputedStyle(parent);
|
|
676
|
+
const overflowY = style.overflowY;
|
|
677
|
+
const overflowX = style.overflowX;
|
|
678
|
+
if (overflowY === "auto" || overflowY === "scroll" || overflowX === "auto" || overflowX === "scroll") ancestors.push(parent);
|
|
679
|
+
parent = parent.parentElement;
|
|
680
|
+
}
|
|
681
|
+
const doc = getOwnerDocument(element);
|
|
682
|
+
ancestors.push(doc.documentElement);
|
|
683
|
+
return ancestors;
|
|
684
|
+
}
|
|
685
|
+
/**
|
|
686
|
+
* Run `fn` after paint. Mirrors React `useEffect` relative to `preventFocus`,
|
|
687
|
+
* which holds focus with capture listeners until the next animation frame.
|
|
688
|
+
* Overlay auto-focus that runs in the same flush as the opening click is yanked
|
|
689
|
+
* back onto the trigger; this delay is the Solid equivalent of upstream's
|
|
690
|
+
* `useEffect` auto-focus.
|
|
691
|
+
*/
|
|
692
|
+
function runAfterPaint(fn, doc) {
|
|
693
|
+
const ownerDoc = doc ?? (typeof document !== "undefined" ? document : void 0);
|
|
694
|
+
const win = ownerDoc ? ownerDoc.defaultView ?? void 0 : typeof window !== "undefined" ? window : void 0;
|
|
695
|
+
if (!win) {
|
|
696
|
+
fn();
|
|
697
|
+
return () => {};
|
|
698
|
+
}
|
|
699
|
+
let timeoutId;
|
|
700
|
+
let cancelled = false;
|
|
701
|
+
const run = () => {
|
|
702
|
+
if (cancelled) return;
|
|
703
|
+
fn();
|
|
704
|
+
};
|
|
705
|
+
const scheduleTimeout = () => {
|
|
706
|
+
if (cancelled) return;
|
|
707
|
+
timeoutId = win.setTimeout(run, 0);
|
|
708
|
+
};
|
|
709
|
+
let frameId;
|
|
710
|
+
if (typeof win.requestAnimationFrame === "function") frameId = win.requestAnimationFrame(scheduleTimeout);
|
|
711
|
+
else scheduleTimeout();
|
|
712
|
+
return () => {
|
|
713
|
+
cancelled = true;
|
|
714
|
+
if (frameId != null) win.cancelAnimationFrame(frameId);
|
|
715
|
+
if (timeoutId !== void 0) win.clearTimeout(timeoutId);
|
|
716
|
+
};
|
|
717
|
+
}
|
|
718
|
+
/**
|
|
719
|
+
* Prevents focus from moving to a new element temporarily.
|
|
720
|
+
* Used when clicking on a button that shouldn't steal focus.
|
|
721
|
+
*/
|
|
722
|
+
function preventFocus(target) {
|
|
723
|
+
while (target && !isFocusable(target, { skipVisibilityCheck: true })) target = target.parentElement;
|
|
724
|
+
const ownerWindow = getOwnerWindow(target);
|
|
725
|
+
const activeElement = getActiveElement(ownerWindow.document);
|
|
726
|
+
if (!activeElement || activeElement === target) return;
|
|
727
|
+
const targetRoot = target?.getRootNode();
|
|
728
|
+
const root = targetRoot != null && isShadowRoot(targetRoot) ? targetRoot : ownerWindow;
|
|
729
|
+
const isFocusMovingToTarget = (focusTarget) => focusTarget === target || focusTarget != null && nodeContains(target, focusTarget);
|
|
730
|
+
const isBlurFromActiveElement = (eventTarget) => eventTarget === activeElement || activeElement != null && eventTarget != null && nodeContains(activeElement, eventTarget);
|
|
731
|
+
setIgnoreFocusEvent(true);
|
|
732
|
+
let isRefocusing = false;
|
|
733
|
+
const onBlur = (e) => {
|
|
734
|
+
if (isBlurFromActiveElement(getEventTarget(e)) || isRefocusing) e.stopImmediatePropagation();
|
|
735
|
+
};
|
|
736
|
+
const onFocusOut = (e) => {
|
|
737
|
+
if (isBlurFromActiveElement(getEventTarget(e)) || isRefocusing) {
|
|
738
|
+
e.stopImmediatePropagation();
|
|
739
|
+
if (!target && !isRefocusing) {
|
|
740
|
+
isRefocusing = true;
|
|
741
|
+
focusWithoutScrolling(activeElement);
|
|
742
|
+
cleanup();
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
};
|
|
746
|
+
const onFocus = (e) => {
|
|
747
|
+
if (isFocusMovingToTarget(getEventTarget(e)) || isRefocusing) e.stopImmediatePropagation();
|
|
748
|
+
};
|
|
749
|
+
const onFocusIn = (e) => {
|
|
750
|
+
if (isFocusMovingToTarget(getEventTarget(e)) || isRefocusing) {
|
|
751
|
+
e.stopImmediatePropagation();
|
|
752
|
+
if (!isRefocusing) {
|
|
753
|
+
isRefocusing = true;
|
|
754
|
+
focusWithoutScrolling(activeElement);
|
|
755
|
+
cleanup();
|
|
756
|
+
}
|
|
757
|
+
}
|
|
758
|
+
};
|
|
759
|
+
root.addEventListener("blur", onBlur, true);
|
|
760
|
+
root.addEventListener("focusout", onFocusOut, true);
|
|
761
|
+
root.addEventListener("focusin", onFocusIn, true);
|
|
762
|
+
root.addEventListener("focus", onFocus, true);
|
|
763
|
+
const raf = ownerWindow.requestAnimationFrame(cleanup);
|
|
764
|
+
function cleanup() {
|
|
765
|
+
ownerWindow.cancelAnimationFrame(raf);
|
|
766
|
+
root.removeEventListener("blur", onBlur, true);
|
|
767
|
+
root.removeEventListener("focusout", onFocusOut, true);
|
|
768
|
+
root.removeEventListener("focusin", onFocusIn, true);
|
|
769
|
+
root.removeEventListener("focus", onFocus, true);
|
|
770
|
+
setIgnoreFocusEvent(false);
|
|
771
|
+
isRefocusing = false;
|
|
772
|
+
}
|
|
773
|
+
return cleanup;
|
|
774
|
+
}
|
|
775
|
+
/**
|
|
776
|
+
* Focus an element while avoiding page scroll and VoiceOver/iOS transition
|
|
777
|
+
* side effects. Port of @react-aria/interactions focusSafely: virtual-modality
|
|
778
|
+
* focus waits until in-flight CSS transitions end so contain-restore after a
|
|
779
|
+
* programmatic focus (Playwright `.focus()`, screen readers) does not beat a
|
|
780
|
+
* following pointermove.
|
|
781
|
+
*/
|
|
782
|
+
function focusSafely(element, options) {
|
|
783
|
+
if (!element?.isConnected) return;
|
|
784
|
+
const ownerDocument = getOwnerDocument(element);
|
|
785
|
+
if (getInteractionModality() === "virtual") {
|
|
786
|
+
const lastFocusedElement = getActiveElement(ownerDocument);
|
|
787
|
+
runAfterTransition(() => {
|
|
788
|
+
const activeElement = getActiveElement(ownerDocument);
|
|
789
|
+
if ((activeElement === lastFocusedElement || activeElement === ownerDocument.body) && element.isConnected) focusWithoutScrolling(element, options);
|
|
790
|
+
});
|
|
791
|
+
} else focusWithoutScrolling(element, options);
|
|
792
|
+
}
|
|
793
|
+
//#endregion
|
|
794
|
+
//#region src/utils/dom.ts
|
|
795
|
+
/**
|
|
796
|
+
* DOM utilities for cross-browser compatibility.
|
|
797
|
+
* Based on these pinned React Aria sources:
|
|
798
|
+
* - packages/react-aria/src/utils/domHelpers.ts
|
|
799
|
+
* - packages/react-aria/src/utils/shadowdom/DOMFunctions.ts
|
|
800
|
+
* - packages/react-aria/src/utils/isElementVisible.ts
|
|
801
|
+
* - packages/react-aria/src/utils/isFocusable.ts
|
|
802
|
+
* - packages/react-aria/src/interactions/usePress.ts
|
|
803
|
+
* - packages/react-aria/src/utils/openLink.tsx
|
|
804
|
+
* - packages/react-aria/src/utils/isScrollable.ts
|
|
805
|
+
* - packages/react-aria/src/utils/getScrollParent.ts
|
|
806
|
+
* - packages/react-aria/src/utils/getScrollParents.ts
|
|
807
|
+
* - packages/react-aria/src/utils/keyboard.tsx
|
|
808
|
+
* - packages/react-aria/src/focus/FocusScope.tsx
|
|
809
|
+
*/
|
|
810
|
+
/**
|
|
811
|
+
* Gets the owner document of an element, or the global document.
|
|
812
|
+
* Accepts Window / Document / Node so window-target focus events resolve correctly.
|
|
813
|
+
*/
|
|
814
|
+
function getOwnerDocument(target) {
|
|
815
|
+
if (isWindow(target)) return target.document;
|
|
816
|
+
if (isDocument(target)) return target;
|
|
817
|
+
return target?.ownerDocument ?? document;
|
|
818
|
+
}
|
|
819
|
+
/**
|
|
820
|
+
* Gets the owner window of an element, or the global window.
|
|
821
|
+
*/
|
|
822
|
+
function getOwnerWindow(target) {
|
|
823
|
+
return getOwnerDocument(target)?.defaultView ?? window;
|
|
824
|
+
}
|
|
825
|
+
function isNode(value) {
|
|
826
|
+
return value !== null && typeof value === "object" && "nodeType" in value && typeof value.nodeType === "number";
|
|
827
|
+
}
|
|
828
|
+
function isWindow(value) {
|
|
829
|
+
return typeof value === "object" && value != null && "window" in value && value.window === value;
|
|
830
|
+
}
|
|
831
|
+
function isDocument(value) {
|
|
832
|
+
return isNode(value) && value.nodeType === 9;
|
|
833
|
+
}
|
|
834
|
+
/**
|
|
835
|
+
* Type guard that checks if a value is a ShadowRoot.
|
|
836
|
+
*/
|
|
837
|
+
function isShadowRoot(value) {
|
|
838
|
+
return isNode(value) && value.nodeType === 11 && "host" in value;
|
|
839
|
+
}
|
|
840
|
+
/**
|
|
841
|
+
* Attaches an event listener on target(s) and returns a cleanup function.
|
|
842
|
+
* Mirrors @react-aria/utils `addEvent`.
|
|
843
|
+
*/
|
|
844
|
+
function addEvent(target, event, listener, options) {
|
|
845
|
+
if (listener == null || target == null) return () => {};
|
|
846
|
+
const eventTargets = Array.isArray(target) ? target : [target];
|
|
847
|
+
for (const eventTarget of eventTargets) eventTarget.addEventListener(event, listener, options);
|
|
848
|
+
return () => {
|
|
849
|
+
for (const eventTarget of eventTargets) eventTarget.removeEventListener(event, listener, options);
|
|
850
|
+
};
|
|
851
|
+
}
|
|
852
|
+
/**
|
|
853
|
+
* Returns the set of event targets a listener must be attached to in order to
|
|
854
|
+
* globally observe an event.
|
|
855
|
+
*
|
|
856
|
+
* @param from - The target element to start from.
|
|
857
|
+
* @param to - The element to stop at when bubbling. @default getOwnerWindow(from)
|
|
858
|
+
* `to` is generally going to be either `document` or `window`, but
|
|
859
|
+
* it can be any intermediate node.
|
|
860
|
+
* @returns [global, ...shadowRoots]
|
|
861
|
+
*/
|
|
862
|
+
function getPropagationTargets(from, to) {
|
|
863
|
+
if (to === null) return [];
|
|
864
|
+
to = to ?? getOwnerWindow(from);
|
|
865
|
+
const targets = [to];
|
|
866
|
+
if (!shadowDOM() || !from || from === to) return targets;
|
|
867
|
+
if (!("getRootNode" in from) || typeof from.getRootNode !== "function") return targets;
|
|
868
|
+
const toRoot = "getRootNode" in to ? to.getRootNode() : null;
|
|
869
|
+
let current = from.getRootNode() ?? null;
|
|
870
|
+
while (isShadowRoot(current) && current !== toRoot) {
|
|
871
|
+
targets.push(current);
|
|
872
|
+
current = current.host.getRootNode();
|
|
873
|
+
}
|
|
874
|
+
return targets;
|
|
875
|
+
}
|
|
876
|
+
/**
|
|
877
|
+
* Sets a CSS property on an element and returns a cleanup function.
|
|
878
|
+
* Property names are kebab-case (`scrollbar-gutter`, `padding-right`), matching
|
|
879
|
+
* @react-aria/utils `setStyle` which uses `style.setProperty`.
|
|
880
|
+
*/
|
|
881
|
+
function setStyle(target, property, value, priority) {
|
|
882
|
+
if (target == null) return () => {};
|
|
883
|
+
const restore = [];
|
|
884
|
+
const styleTargets = Array.isArray(target) ? target : [target];
|
|
885
|
+
for (const styleTarget of styleTargets) {
|
|
886
|
+
const initialValue = styleTarget.style.getPropertyValue(property);
|
|
887
|
+
const initialPriority = styleTarget.style.getPropertyPriority(property);
|
|
888
|
+
styleTarget.style.setProperty(property, value, priority);
|
|
889
|
+
restore.unshift(() => {
|
|
890
|
+
if (initialValue) styleTarget.style.setProperty(property, initialValue, initialPriority);
|
|
891
|
+
else styleTarget.style.removeProperty(property);
|
|
892
|
+
});
|
|
893
|
+
}
|
|
894
|
+
return () => {
|
|
895
|
+
for (const cleanup of restore) cleanup();
|
|
896
|
+
};
|
|
897
|
+
}
|
|
898
|
+
/**
|
|
899
|
+
* Cross-browser implementation of Node.contains that works with ShadowDOM.
|
|
900
|
+
* In Safari, Node.contains doesn't properly detect elements inside shadow roots.
|
|
901
|
+
*/
|
|
902
|
+
function nodeContains(parent, child) {
|
|
903
|
+
if (!parent || !child) return false;
|
|
904
|
+
let node = child;
|
|
905
|
+
while (node) {
|
|
906
|
+
if (node === parent) return true;
|
|
907
|
+
if (typeof node.assignedElements !== "function" && node.assignedSlot?.parentNode) node = node.assignedSlot.parentNode;
|
|
908
|
+
else if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE && node.host) node = node.host;
|
|
909
|
+
else node = node.parentNode;
|
|
910
|
+
}
|
|
911
|
+
return false;
|
|
912
|
+
}
|
|
913
|
+
/**
|
|
914
|
+
* Gets the event target, handling composed path for shadow DOM.
|
|
915
|
+
*/
|
|
916
|
+
function getEventTarget(event) {
|
|
917
|
+
if (typeof event.composedPath === "function") {
|
|
918
|
+
const path = event.composedPath();
|
|
919
|
+
if (path.length > 0) return path[0];
|
|
920
|
+
}
|
|
921
|
+
return event.target;
|
|
922
|
+
}
|
|
923
|
+
const supportsCheckVisibility = typeof Element !== "undefined" && "checkVisibility" in Element.prototype;
|
|
924
|
+
function isHTMLOrSVGElement(element) {
|
|
925
|
+
const windowObject = getOwnerWindow(element);
|
|
926
|
+
return element instanceof windowObject.HTMLElement || element instanceof windowObject.SVGElement || typeof HTMLElement !== "undefined" && element instanceof HTMLElement || typeof SVGElement !== "undefined" && element instanceof SVGElement;
|
|
927
|
+
}
|
|
928
|
+
function isStyleVisible(element) {
|
|
929
|
+
if (!isHTMLOrSVGElement(element)) return false;
|
|
930
|
+
const { display, visibility } = element.style;
|
|
931
|
+
let isVisible = display !== "none" && visibility !== "hidden" && visibility !== "collapse";
|
|
932
|
+
if (isVisible) {
|
|
933
|
+
const { getComputedStyle } = getOwnerWindow(element);
|
|
934
|
+
const { display: computedDisplay, visibility: computedVisibility } = getComputedStyle(element);
|
|
935
|
+
isVisible = computedDisplay !== "none" && computedVisibility !== "hidden" && computedVisibility !== "collapse";
|
|
936
|
+
}
|
|
937
|
+
return isVisible;
|
|
938
|
+
}
|
|
939
|
+
function isAttributeVisible(element, childElement) {
|
|
940
|
+
return !element.hasAttribute("hidden") && !element.hasAttribute("data-react-aria-prevent-focus") && (element.nodeName === "DETAILS" && childElement && childElement.nodeName !== "SUMMARY" ? element.hasAttribute("open") : true);
|
|
941
|
+
}
|
|
942
|
+
/**
|
|
943
|
+
* Whether an element is visible, and so eligible for focus. Adapted from
|
|
944
|
+
* @react-aria/utils, which adapts testing-library/jest-dom and
|
|
945
|
+
* vue-test-utils-next (MIT): uses `checkVisibility` when supported, otherwise
|
|
946
|
+
* walks computed style and visibility-affecting attributes up the ancestor chain.
|
|
947
|
+
*/
|
|
948
|
+
function isElementVisible(element, childElement) {
|
|
949
|
+
if (supportsCheckVisibility) return element.checkVisibility({ visibilityProperty: true }) && !element.closest("[data-react-aria-prevent-focus]");
|
|
950
|
+
return element.nodeName !== "#comment" && isStyleVisible(element) && isAttributeVisible(element, childElement) && (!element.parentElement || isElementVisible(element.parentElement, element));
|
|
951
|
+
}
|
|
952
|
+
const focusableElements = [
|
|
953
|
+
"input:not([disabled]):not([type=hidden])",
|
|
954
|
+
"select:not([disabled])",
|
|
955
|
+
"textarea:not([disabled])",
|
|
956
|
+
"button:not([disabled])",
|
|
957
|
+
"a[href]",
|
|
958
|
+
"area[href]",
|
|
959
|
+
"summary",
|
|
960
|
+
"iframe",
|
|
961
|
+
"object",
|
|
962
|
+
"embed",
|
|
963
|
+
"audio[controls]",
|
|
964
|
+
"video[controls]",
|
|
965
|
+
"[contenteditable]:not([contenteditable^=\"false\"])",
|
|
966
|
+
"permission"
|
|
967
|
+
];
|
|
968
|
+
const FOCUSABLE_ELEMENT_SELECTOR = focusableElements.join(":not([hidden]),") + ",[tabindex]:not([disabled]):not([hidden])";
|
|
969
|
+
focusableElements.push("[tabindex]:not([tabindex=\"-1\"]):not([disabled])");
|
|
970
|
+
const TABBABLE_ELEMENT_SELECTOR = focusableElements.join(":not([hidden]):not([tabindex=\"-1\"]),");
|
|
971
|
+
/**
|
|
972
|
+
* Checks if an element is a valid focusable element: it matches the focusable
|
|
973
|
+
* selector, is not inside an `inert` subtree, and is visible. A negative tabindex
|
|
974
|
+
* is programmatically focusable (matched here) but not tabbable. `skipVisibilityCheck`
|
|
975
|
+
* lets callers (e.g. the press-path `preventFocus` ancestor walk) skip the
|
|
976
|
+
* `isElementVisible` step, which also avoids touching layout on detached documents.
|
|
977
|
+
*/
|
|
978
|
+
function isFocusable(element, options) {
|
|
979
|
+
return element.matches(FOCUSABLE_ELEMENT_SELECTOR) && !isInert(element) && (options?.skipVisibilityCheck || isElementVisible(element));
|
|
980
|
+
}
|
|
981
|
+
/**
|
|
982
|
+
* Checks if an element is tabbable (reachable via the Tab key): focusable,
|
|
983
|
+
* visible, not inert, and not `tabindex="-1"`.
|
|
984
|
+
*/
|
|
985
|
+
function isTabbable(element) {
|
|
986
|
+
return element.matches(TABBABLE_ELEMENT_SELECTOR) && isElementVisible(element) && !isInert(element);
|
|
987
|
+
}
|
|
988
|
+
function isInert(element) {
|
|
989
|
+
let node = element;
|
|
990
|
+
while (node != null) {
|
|
991
|
+
if ((node instanceof getOwnerWindow(node).HTMLElement || typeof HTMLElement !== "undefined" && node instanceof HTMLElement) && node.inert) return true;
|
|
992
|
+
node = node.parentElement;
|
|
993
|
+
}
|
|
994
|
+
return false;
|
|
995
|
+
}
|
|
996
|
+
/**
|
|
997
|
+
* Checks if a keyboard event should trigger the default action (like clicking).
|
|
998
|
+
*/
|
|
999
|
+
function isValidKeyboardEvent(event, currentTarget) {
|
|
1000
|
+
const { key, code } = event;
|
|
1001
|
+
const element = currentTarget;
|
|
1002
|
+
const tagName = element.tagName.toLowerCase();
|
|
1003
|
+
const role = element.getAttribute("role");
|
|
1004
|
+
if (!(key === "Enter" || key === " " || key === "Spacebar" || code === "Space")) return false;
|
|
1005
|
+
if (tagName === "textarea") return false;
|
|
1006
|
+
if (element.isContentEditable) return false;
|
|
1007
|
+
if ((role === "link" || !role && isHTMLAnchorLink(element)) && key !== "Enter") return false;
|
|
1008
|
+
if (tagName === "input") return isValidInputKey(element, key);
|
|
1009
|
+
return true;
|
|
1010
|
+
}
|
|
1011
|
+
/**
|
|
1012
|
+
* Checks if a key is valid for a specific input type.
|
|
1013
|
+
*/
|
|
1014
|
+
function isValidInputKey(target, key) {
|
|
1015
|
+
const type = target.type.toLowerCase();
|
|
1016
|
+
if (type === "checkbox" || type === "radio") return key === " " || key === "Spacebar";
|
|
1017
|
+
if ([
|
|
1018
|
+
"text",
|
|
1019
|
+
"search",
|
|
1020
|
+
"url",
|
|
1021
|
+
"tel",
|
|
1022
|
+
"email",
|
|
1023
|
+
"password",
|
|
1024
|
+
"date",
|
|
1025
|
+
"month",
|
|
1026
|
+
"week",
|
|
1027
|
+
"time",
|
|
1028
|
+
"datetime-local",
|
|
1029
|
+
"number"
|
|
1030
|
+
].includes(type)) return false;
|
|
1031
|
+
return true;
|
|
1032
|
+
}
|
|
1033
|
+
/**
|
|
1034
|
+
* Checks if an element is an HTML anchor link (has href attribute).
|
|
1035
|
+
*/
|
|
1036
|
+
function isHTMLAnchorLink(target) {
|
|
1037
|
+
return target.tagName === "A" && target.hasAttribute("href");
|
|
1038
|
+
}
|
|
1039
|
+
/**
|
|
1040
|
+
* Whether to prevent default on keyboard events for this element.
|
|
1041
|
+
*/
|
|
1042
|
+
function shouldPreventDefaultKeyboard(target, key) {
|
|
1043
|
+
if (target instanceof HTMLInputElement) return !isValidInputKey(target, key);
|
|
1044
|
+
return shouldPreventDefaultUp(target);
|
|
1045
|
+
}
|
|
1046
|
+
/**
|
|
1047
|
+
* Whether to prevent default on pointer up for this element.
|
|
1048
|
+
*/
|
|
1049
|
+
function shouldPreventDefaultUp(target) {
|
|
1050
|
+
const tagName = target.tagName.toLowerCase();
|
|
1051
|
+
if (tagName === "input" || tagName === "textarea" || tagName === "select") return false;
|
|
1052
|
+
if (tagName === "a" || target.getAttribute("role") === "link") return false;
|
|
1053
|
+
if (tagName === "button") {
|
|
1054
|
+
const type = target.type;
|
|
1055
|
+
if (type === "submit" || type === "reset") return false;
|
|
1056
|
+
}
|
|
1057
|
+
return true;
|
|
1058
|
+
}
|
|
1059
|
+
/**
|
|
1060
|
+
* Opens a link by dispatching the click the browser would have produced, so the
|
|
1061
|
+
* link's own `target`, `rel`, `download` and any router listening for clicks all
|
|
1062
|
+
* still apply. Used for keyboard activation of links, and for elements that act
|
|
1063
|
+
* as links without being one.
|
|
1064
|
+
*
|
|
1065
|
+
* 1:1 with `openLink` in @react-aria/utils: it never navigates itself.
|
|
1066
|
+
*/
|
|
1067
|
+
function openLink(target, modifiers, setOpening = true) {
|
|
1068
|
+
let { metaKey, ctrlKey } = modifiers;
|
|
1069
|
+
const { altKey, shiftKey } = modifiers;
|
|
1070
|
+
if (!isWebKit() && isFirefox() && window.event?.type?.startsWith("key") && target.target === "_blank") {
|
|
1071
|
+
if (isMac()) metaKey = true;
|
|
1072
|
+
else ctrlKey = true;
|
|
1073
|
+
}
|
|
1074
|
+
const event = isWebKit() && isMac() && !isIPad() && !isTestEnv() ? new KeyboardEvent("keydown", {
|
|
1075
|
+
keyIdentifier: "Enter",
|
|
1076
|
+
metaKey,
|
|
1077
|
+
ctrlKey,
|
|
1078
|
+
altKey,
|
|
1079
|
+
shiftKey
|
|
1080
|
+
}) : new MouseEvent("click", {
|
|
1081
|
+
metaKey,
|
|
1082
|
+
ctrlKey,
|
|
1083
|
+
altKey,
|
|
1084
|
+
shiftKey,
|
|
1085
|
+
detail: 1,
|
|
1086
|
+
bubbles: true,
|
|
1087
|
+
cancelable: true
|
|
1088
|
+
});
|
|
1089
|
+
openLink.isOpening = setOpening;
|
|
1090
|
+
focusWithoutScrolling(target);
|
|
1091
|
+
target.dispatchEvent(event);
|
|
1092
|
+
openLink.isOpening = false;
|
|
1093
|
+
}
|
|
1094
|
+
openLink.isOpening = false;
|
|
1095
|
+
/**
|
|
1096
|
+
* Checks if an element is scrollable based on its overflow style.
|
|
1097
|
+
* @param node - The element to check
|
|
1098
|
+
* @param checkForOverflow - If true, also check if the element actually overflows
|
|
1099
|
+
*/
|
|
1100
|
+
function isScrollable(node, checkForOverflow) {
|
|
1101
|
+
if (!node) return false;
|
|
1102
|
+
const style = window.getComputedStyle(node);
|
|
1103
|
+
const scrollable = /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);
|
|
1104
|
+
if (scrollable && checkForOverflow) return node.scrollHeight !== node.clientHeight || node.scrollWidth !== node.clientWidth;
|
|
1105
|
+
return scrollable;
|
|
1106
|
+
}
|
|
1107
|
+
/**
|
|
1108
|
+
* Gets the nearest scrollable parent element.
|
|
1109
|
+
* @param node - The starting element
|
|
1110
|
+
* @param checkForOverflow - If true, only return parents that actually overflow
|
|
1111
|
+
*/
|
|
1112
|
+
function getScrollParent(node, checkForOverflow) {
|
|
1113
|
+
let scrollableNode = node;
|
|
1114
|
+
if (isScrollable(scrollableNode, checkForOverflow)) scrollableNode = scrollableNode.parentElement;
|
|
1115
|
+
while (scrollableNode && !isScrollable(scrollableNode, checkForOverflow)) scrollableNode = scrollableNode.parentElement;
|
|
1116
|
+
return scrollableNode || document.scrollingElement || document.documentElement;
|
|
1117
|
+
}
|
|
1118
|
+
/**
|
|
1119
|
+
* Gets every scrollable ancestor of an element, from the nearest up to (and
|
|
1120
|
+
* including) the document scrolling element.
|
|
1121
|
+
* @param node - The starting element
|
|
1122
|
+
* @param checkForOverflow - If true, only include parents that actually overflow
|
|
1123
|
+
*/
|
|
1124
|
+
function getScrollParents(node, checkForOverflow) {
|
|
1125
|
+
const parentElements = [];
|
|
1126
|
+
const root = document.scrollingElement || document.documentElement;
|
|
1127
|
+
let current = node;
|
|
1128
|
+
while (current) {
|
|
1129
|
+
if (isScrollable(current, checkForOverflow)) parentElements.push(current);
|
|
1130
|
+
if (current === root) break;
|
|
1131
|
+
current = current.parentElement;
|
|
1132
|
+
}
|
|
1133
|
+
return parentElements;
|
|
1134
|
+
}
|
|
1135
|
+
/**
|
|
1136
|
+
* Checks if an element will open a virtual keyboard when focused.
|
|
1137
|
+
* Used for iOS Safari scroll handling.
|
|
1138
|
+
*/
|
|
1139
|
+
function willOpenKeyboard(target) {
|
|
1140
|
+
if (!target) return false;
|
|
1141
|
+
const tagName = target.tagName.toLowerCase();
|
|
1142
|
+
if (tagName === "input") {
|
|
1143
|
+
const type = target.type.toLowerCase();
|
|
1144
|
+
return [
|
|
1145
|
+
"text",
|
|
1146
|
+
"search",
|
|
1147
|
+
"url",
|
|
1148
|
+
"tel",
|
|
1149
|
+
"email",
|
|
1150
|
+
"password",
|
|
1151
|
+
"date",
|
|
1152
|
+
"month",
|
|
1153
|
+
"week",
|
|
1154
|
+
"time",
|
|
1155
|
+
"datetime-local",
|
|
1156
|
+
"number"
|
|
1157
|
+
].includes(type);
|
|
1158
|
+
}
|
|
1159
|
+
if (tagName === "textarea") return true;
|
|
1160
|
+
if (target.hasAttribute("contenteditable") && target.getAttribute("contenteditable") !== "false") return true;
|
|
1161
|
+
return false;
|
|
1162
|
+
}
|
|
1163
|
+
/**
|
|
1164
|
+
* Returns the deepest active element, descending through open shadow roots.
|
|
1165
|
+
* Mirrors @react-aria/utils' `getActiveElement`.
|
|
1166
|
+
*/
|
|
1167
|
+
function getActiveElement(doc = document) {
|
|
1168
|
+
let activeElement = doc.activeElement;
|
|
1169
|
+
while (activeElement?.shadowRoot?.activeElement) activeElement = activeElement.shadowRoot.activeElement;
|
|
1170
|
+
return activeElement;
|
|
1171
|
+
}
|
|
1172
|
+
/**
|
|
1173
|
+
* Whether the (deepest) active element is `element` or is contained within it.
|
|
1174
|
+
* Mirrors @react-aria/utils' `isFocusWithin`.
|
|
1175
|
+
*/
|
|
1176
|
+
function isFocusWithin(element) {
|
|
1177
|
+
const activeElement = getActiveElement(getOwnerDocument(element));
|
|
1178
|
+
return !!activeElement && nodeContains(element, activeElement);
|
|
1179
|
+
}
|
|
1180
|
+
/**
|
|
1181
|
+
* Creates a `TreeWalker` that visits the focusable (or, when `tabbable`, the
|
|
1182
|
+
* tabbable) descendants of `root`, skipping invisible and inert elements.
|
|
1183
|
+
* Mirrors @react-aria/focus's `getFocusableTreeWalker`, minus the focus-scope
|
|
1184
|
+
* containment filter (we don't model nested scopes here). Used to treat a
|
|
1185
|
+
* selectable collection as a single tab stop.
|
|
1186
|
+
*/
|
|
1187
|
+
function getFocusableTreeWalker(root, opts) {
|
|
1188
|
+
const accept = (node) => (opts?.tabbable ? isTabbable(node) : isFocusable(node)) && (!opts?.accept || opts.accept(node));
|
|
1189
|
+
const walker = getOwnerDocument(root).createTreeWalker(root, NodeFilter.SHOW_ELEMENT, { acceptNode(node) {
|
|
1190
|
+
if (opts?.from?.contains(node)) return NodeFilter.FILTER_REJECT;
|
|
1191
|
+
if (accept(node)) return NodeFilter.FILTER_ACCEPT;
|
|
1192
|
+
return NodeFilter.FILTER_SKIP;
|
|
1193
|
+
} });
|
|
1194
|
+
if (opts?.from) walker.currentNode = opts.from;
|
|
1195
|
+
return walker;
|
|
1196
|
+
}
|
|
1197
|
+
//#endregion
|
|
1198
|
+
export { createFocusVisible as A, createMouseEvent as B, willOpenKeyboard as C, runAfterPaint as D, preventFocus as E, isFocusVisible as F, isAppleDevice as G, isVirtualPointerEvent as H, setInteractionModality as I, isIOS as J, isChrome as K, setupGlobalFocusListeners as L, createInteractionModality as M, getInteractionModality as N, addModalityListener as O, getPointerType as P, isWebKit as Q, useIsKeyboardFocused as R, shouldPreventDefaultUp as S, focusWithoutScrolling as T, setEventTarget as U, isVirtualClick as V, isAndroid as W, isIPhone as X, isIPad as Y, isMac as Z, isValidKeyboardEvent as _, getOwnerDocument as a, setStyle as b, getScrollParent as c, isFocusWithin as d, isFocusable as f, isValidInputKey as g, isTabbable as h, getFocusableTreeWalker as i, createFocusVisibleListener as j, addWindowFocusTracking as k, getScrollParents as l, isScrollable as m, getActiveElement as n, getOwnerWindow as o, isHTMLAnchorLink as p, isFirefox as q, getEventTarget as r, getPropagationTargets as s, addEvent as t, isElementVisible as u, nodeContains as v, focusSafely as w, shouldPreventDefaultKeyboard as x, openLink as y, chain as z };
|
|
1199
|
+
|
|
1200
|
+
//# sourceMappingURL=dom.js.map
|