@proyecto-viviana/solidaria 0.4.2 → 0.6.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-APACHE-2.0 +201 -0
- package/NOTICE +91 -0
- package/dist/_chunk/DragManager.js +71 -25
- package/dist/_chunk/DragManager.js.map +1 -1
- package/dist/_chunk/DragManager.jsx +71 -25
- package/dist/_chunk/DragManager.jsx.map +1 -1
- package/dist/_chunk/FocusScope.js +281 -66
- package/dist/_chunk/FocusScope.js.map +1 -1
- package/dist/_chunk/FocusScope.jsx +274 -55
- package/dist/_chunk/FocusScope.jsx.map +1 -1
- package/dist/_chunk/actiongroup.js +43 -19
- package/dist/_chunk/actiongroup.js.map +1 -1
- package/dist/_chunk/actiongroup.jsx +43 -19
- package/dist/_chunk/actiongroup.jsx.map +1 -1
- package/dist/_chunk/announce.js +19 -6
- package/dist/_chunk/announce.js.map +1 -1
- package/dist/_chunk/announce.jsx +19 -6
- package/dist/_chunk/announce.jsx.map +1 -1
- package/dist/_chunk/ariaHideOutside.js +212 -10
- package/dist/_chunk/ariaHideOutside.js.map +1 -1
- package/dist/_chunk/ariaHideOutside.jsx +212 -10
- package/dist/_chunk/ariaHideOutside.jsx.map +1 -1
- package/dist/_chunk/autocomplete.js +26 -7
- package/dist/_chunk/autocomplete.js.map +1 -1
- package/dist/_chunk/autocomplete.jsx +26 -7
- package/dist/_chunk/autocomplete.jsx.map +1 -1
- package/dist/_chunk/breadcrumbs.js +17 -2
- package/dist/_chunk/breadcrumbs.js.map +1 -1
- package/dist/_chunk/breadcrumbs.jsx +17 -2
- package/dist/_chunk/breadcrumbs.jsx.map +1 -1
- package/dist/_chunk/button.js +53 -20
- package/dist/_chunk/button.js.map +1 -1
- package/dist/_chunk/button.jsx +53 -20
- package/dist/_chunk/button.jsx.map +1 -1
- package/dist/_chunk/calendar.js +341 -56
- package/dist/_chunk/calendar.js.map +1 -1
- package/dist/_chunk/calendar.jsx +341 -56
- package/dist/_chunk/calendar.jsx.map +1 -1
- package/dist/_chunk/checkbox.js +69 -26
- package/dist/_chunk/checkbox.js.map +1 -1
- package/dist/_chunk/checkbox.jsx +69 -26
- package/dist/_chunk/checkbox.jsx.map +1 -1
- package/dist/_chunk/color.js +307 -48
- package/dist/_chunk/color.js.map +1 -1
- package/dist/_chunk/color.jsx +307 -48
- package/dist/_chunk/color.jsx.map +1 -1
- package/dist/_chunk/combobox.js +193 -103
- package/dist/_chunk/combobox.js.map +1 -1
- package/dist/_chunk/combobox.jsx +193 -103
- package/dist/_chunk/combobox.jsx.map +1 -1
- package/dist/_chunk/constants.js +12 -0
- package/dist/_chunk/constants.js.map +1 -1
- package/dist/_chunk/constants.jsx +12 -0
- package/dist/_chunk/constants.jsx.map +1 -1
- package/dist/_chunk/createCollator.js +12 -0
- package/dist/_chunk/createCollator.js.map +1 -1
- package/dist/_chunk/createCollator.jsx +12 -0
- package/dist/_chunk/createCollator.jsx.map +1 -1
- package/dist/_chunk/createCollectionRowInteraction.js +50 -13
- package/dist/_chunk/createCollectionRowInteraction.js.map +1 -1
- package/dist/_chunk/createCollectionRowInteraction.jsx +50 -13
- package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -1
- package/dist/_chunk/createField.js +35 -25
- package/dist/_chunk/createField.js.map +1 -1
- package/dist/_chunk/createField.jsx +35 -25
- package/dist/_chunk/createField.jsx.map +1 -1
- package/dist/_chunk/createFocus.js +18 -5
- package/dist/_chunk/createFocus.js.map +1 -1
- package/dist/_chunk/createFocus.jsx +18 -5
- package/dist/_chunk/createFocus.jsx.map +1 -1
- package/dist/_chunk/createFocusRing.js +16 -7
- package/dist/_chunk/createFocusRing.js.map +1 -1
- package/dist/_chunk/createFocusRing.jsx +16 -7
- package/dist/_chunk/createFocusRing.jsx.map +1 -1
- package/dist/_chunk/createFocusWithin.js +16 -4
- package/dist/_chunk/createFocusWithin.js.map +1 -1
- package/dist/_chunk/createFocusWithin.jsx +16 -4
- package/dist/_chunk/createFocusWithin.jsx.map +1 -1
- package/dist/_chunk/createFocusable.js +39 -53
- package/dist/_chunk/createFocusable.js.map +1 -1
- package/dist/_chunk/createFocusable.jsx +39 -53
- package/dist/_chunk/createFocusable.jsx.map +1 -1
- package/dist/_chunk/createFormReset.js +24 -12
- package/dist/_chunk/createFormReset.js.map +1 -1
- package/dist/_chunk/createFormReset.jsx +24 -12
- package/dist/_chunk/createFormReset.jsx.map +1 -1
- package/dist/_chunk/createFormValidation.js +41 -17
- package/dist/_chunk/createFormValidation.js.map +1 -1
- package/dist/_chunk/createFormValidation.jsx +41 -17
- package/dist/_chunk/createFormValidation.jsx.map +1 -1
- package/dist/_chunk/createHover.js +56 -42
- package/dist/_chunk/createHover.js.map +1 -1
- package/dist/_chunk/createHover.jsx +56 -42
- package/dist/_chunk/createHover.jsx.map +1 -1
- package/dist/_chunk/createKeyboard.js +205 -0
- package/dist/_chunk/createKeyboard.js.map +1 -0
- package/dist/_chunk/createKeyboard.jsx +205 -0
- package/dist/_chunk/createKeyboard.jsx.map +1 -0
- package/dist/_chunk/createLabel.js +17 -4
- package/dist/_chunk/createLabel.js.map +1 -1
- package/dist/_chunk/createLabel.jsx +17 -4
- package/dist/_chunk/createLabel.jsx.map +1 -1
- package/dist/_chunk/createLabels.js +14 -2
- package/dist/_chunk/createLabels.js.map +1 -1
- package/dist/_chunk/createLabels.jsx +14 -2
- package/dist/_chunk/createLabels.jsx.map +1 -1
- package/dist/_chunk/createLandmark.js +19 -3
- package/dist/_chunk/createLandmark.js.map +1 -1
- package/dist/_chunk/createLandmark.jsx +19 -3
- package/dist/_chunk/createLandmark.jsx.map +1 -1
- package/dist/_chunk/createLongPress.js +105 -0
- package/dist/_chunk/createLongPress.js.map +1 -0
- package/dist/_chunk/createLongPress.jsx +105 -0
- package/dist/_chunk/createLongPress.jsx.map +1 -0
- package/dist/_chunk/createOverlay.js +220 -111
- package/dist/_chunk/createOverlay.js.map +1 -1
- package/dist/_chunk/createOverlay.jsx +220 -111
- package/dist/_chunk/createOverlay.jsx.map +1 -1
- package/dist/_chunk/createOverlayTrigger.js +58 -0
- package/dist/_chunk/createOverlayTrigger.js.map +1 -0
- package/dist/_chunk/createOverlayTrigger.jsx +58 -0
- package/dist/_chunk/createOverlayTrigger.jsx.map +1 -0
- package/dist/_chunk/createPress.js +38 -28
- package/dist/_chunk/createPress.js.map +1 -1
- package/dist/_chunk/createPress.jsx +38 -28
- package/dist/_chunk/createPress.jsx.map +1 -1
- package/dist/_chunk/createProgressBar.js +17 -4
- package/dist/_chunk/createProgressBar.js.map +1 -1
- package/dist/_chunk/createProgressBar.jsx +17 -4
- package/dist/_chunk/createProgressBar.jsx.map +1 -1
- package/dist/_chunk/createSelectableItem.js +58 -20
- package/dist/_chunk/createSelectableItem.js.map +1 -1
- package/dist/_chunk/createSelectableItem.jsx +58 -20
- package/dist/_chunk/createSelectableItem.jsx.map +1 -1
- package/dist/_chunk/createSelectableList.js +776 -0
- package/dist/_chunk/createSelectableList.js.map +1 -0
- package/dist/_chunk/createSelectableList.jsx +776 -0
- package/dist/_chunk/createSelectableList.jsx.map +1 -0
- package/dist/_chunk/createStringFormatter.js +350 -5
- package/dist/_chunk/createStringFormatter.js.map +1 -1
- package/dist/_chunk/createStringFormatter.jsx +350 -5
- package/dist/_chunk/createStringFormatter.jsx.map +1 -1
- package/dist/_chunk/createToggle.js +68 -19
- package/dist/_chunk/createToggle.js.map +1 -1
- package/dist/_chunk/createToggle.jsx +68 -19
- package/dist/_chunk/createToggle.jsx.map +1 -1
- package/dist/_chunk/createTypeSelect.js +15 -3
- package/dist/_chunk/createTypeSelect.js.map +1 -1
- package/dist/_chunk/createTypeSelect.jsx +15 -3
- package/dist/_chunk/createTypeSelect.jsx.map +1 -1
- package/dist/_chunk/{visually-hidden.js → createVisuallyHidden.js} +16 -4
- package/dist/_chunk/createVisuallyHidden.js.map +1 -0
- package/dist/_chunk/{visually-hidden.jsx → createVisuallyHidden.jsx} +16 -4
- package/dist/_chunk/createVisuallyHidden.jsx.map +1 -0
- package/dist/_chunk/datepicker.js +687 -602
- package/dist/_chunk/datepicker.js.map +1 -1
- package/dist/_chunk/datepicker.jsx +687 -602
- package/dist/_chunk/datepicker.jsx.map +1 -1
- package/dist/_chunk/dialog.js +49 -19
- package/dist/_chunk/dialog.js.map +1 -1
- package/dist/_chunk/dialog.jsx +49 -19
- package/dist/_chunk/dialog.jsx.map +1 -1
- package/dist/_chunk/disclosure.js +48 -28
- package/dist/_chunk/disclosure.js.map +1 -1
- package/dist/_chunk/disclosure.jsx +48 -28
- package/dist/_chunk/disclosure.jsx.map +1 -1
- package/dist/_chunk/dnd.js +1340 -1172
- package/dist/_chunk/dnd.js.map +1 -1
- package/dist/_chunk/dnd.jsx +1340 -1172
- package/dist/_chunk/dnd.jsx.map +1 -1
- package/dist/_chunk/dom.js +1200 -0
- package/dist/_chunk/dom.js.map +1 -0
- package/dist/_chunk/dom.jsx +1200 -0
- package/dist/_chunk/dom.jsx.map +1 -0
- package/dist/_chunk/env.js +1 -57
- package/dist/_chunk/env.js.map +1 -1
- package/dist/_chunk/env.jsx +1 -57
- package/dist/_chunk/env.jsx.map +1 -1
- package/dist/_chunk/filterDOMProps.js +32 -7
- package/dist/_chunk/filterDOMProps.js.map +1 -1
- package/dist/_chunk/filterDOMProps.jsx +32 -7
- package/dist/_chunk/filterDOMProps.jsx.map +1 -1
- package/dist/_chunk/focus.js +570 -338
- package/dist/_chunk/focus.js.map +1 -1
- package/dist/_chunk/focus.jsx +570 -338
- package/dist/_chunk/focus.jsx.map +1 -1
- package/dist/_chunk/grid.js +62 -8
- package/dist/_chunk/grid.js.map +1 -1
- package/dist/_chunk/grid.jsx +62 -8
- package/dist/_chunk/grid.jsx.map +1 -1
- package/dist/_chunk/gridlist.js +192 -53
- package/dist/_chunk/gridlist.js.map +1 -1
- package/dist/_chunk/gridlist.jsx +192 -53
- package/dist/_chunk/gridlist.jsx.map +1 -1
- package/dist/_chunk/i18n.js +68 -1
- package/dist/_chunk/i18n.js.map +1 -1
- package/dist/_chunk/i18n.jsx +68 -1
- package/dist/_chunk/i18n.jsx.map +1 -1
- package/dist/_chunk/interactions.js +38 -102
- package/dist/_chunk/interactions.js.map +1 -1
- package/dist/_chunk/interactions.jsx +38 -100
- package/dist/_chunk/interactions.jsx.map +1 -1
- package/dist/_chunk/intl.js +280 -0
- package/dist/_chunk/intl.js.map +1 -0
- package/dist/_chunk/intl.jsx +280 -0
- package/dist/_chunk/intl.jsx.map +1 -0
- package/dist/_chunk/link.js +15 -4
- package/dist/_chunk/link.js.map +1 -1
- package/dist/_chunk/link.jsx +15 -4
- package/dist/_chunk/link.jsx.map +1 -1
- package/dist/_chunk/listbox.js +99 -175
- package/dist/_chunk/listbox.js.map +1 -1
- package/dist/_chunk/listbox.jsx +99 -175
- package/dist/_chunk/listbox.jsx.map +1 -1
- package/dist/_chunk/locale.js +58 -12
- package/dist/_chunk/locale.js.map +1 -1
- package/dist/_chunk/locale.jsx +57 -11
- package/dist/_chunk/locale.jsx.map +1 -1
- package/dist/_chunk/menu.js +298 -57
- package/dist/_chunk/menu.js.map +1 -1
- package/dist/_chunk/menu.jsx +298 -57
- package/dist/_chunk/menu.jsx.map +1 -1
- package/dist/_chunk/mergeProps.js +216 -0
- package/dist/_chunk/mergeProps.js.map +1 -0
- package/dist/_chunk/mergeProps.jsx +216 -0
- package/dist/_chunk/mergeProps.jsx.map +1 -0
- package/dist/_chunk/meter.js +16 -4
- package/dist/_chunk/meter.js.map +1 -1
- package/dist/_chunk/meter.jsx +16 -4
- package/dist/_chunk/meter.jsx.map +1 -1
- package/dist/_chunk/numberfield.js +167 -22
- package/dist/_chunk/numberfield.js.map +1 -1
- package/dist/_chunk/numberfield.jsx +167 -22
- package/dist/_chunk/numberfield.jsx.map +1 -1
- package/dist/_chunk/overlays.js +87 -74
- package/dist/_chunk/overlays.js.map +1 -1
- package/dist/_chunk/overlays.jsx +71 -57
- package/dist/_chunk/overlays.jsx.map +1 -1
- package/dist/_chunk/owner.js +23 -0
- package/dist/_chunk/owner.js.map +1 -0
- package/dist/_chunk/owner.jsx +23 -0
- package/dist/_chunk/owner.jsx.map +1 -0
- package/dist/_chunk/popover.js +180 -42
- package/dist/_chunk/popover.js.map +1 -1
- package/dist/_chunk/popover.jsx +180 -42
- package/dist/_chunk/popover.jsx.map +1 -1
- package/dist/_chunk/radio.js +92 -32
- package/dist/_chunk/radio.js.map +1 -1
- package/dist/_chunk/radio.jsx +92 -32
- package/dist/_chunk/radio.jsx.map +1 -1
- package/dist/_chunk/reactivity.js.map +1 -1
- package/dist/_chunk/reactivity.jsx.map +1 -1
- package/dist/_chunk/refs.js +41 -0
- package/dist/_chunk/refs.js.map +1 -0
- package/dist/_chunk/refs.jsx +41 -0
- package/dist/_chunk/refs.jsx.map +1 -0
- package/dist/_chunk/searchfield.js +69 -3
- package/dist/_chunk/searchfield.js.map +1 -1
- package/dist/_chunk/searchfield.jsx +69 -3
- package/dist/_chunk/searchfield.jsx.map +1 -1
- package/dist/_chunk/select.js +226 -80
- package/dist/_chunk/select.js.map +1 -1
- package/dist/_chunk/select.jsx +162 -70
- package/dist/_chunk/select.jsx.map +1 -1
- package/dist/_chunk/selection.js +20 -638
- package/dist/_chunk/selection.js.map +1 -1
- package/dist/_chunk/selection.jsx +20 -638
- package/dist/_chunk/selection.jsx.map +1 -1
- package/dist/_chunk/separator.js +12 -0
- package/dist/_chunk/separator.js.map +1 -1
- package/dist/_chunk/separator.jsx +12 -0
- package/dist/_chunk/separator.jsx.map +1 -1
- package/dist/_chunk/slider.js +25 -16
- package/dist/_chunk/slider.js.map +1 -1
- package/dist/_chunk/slider.jsx +25 -16
- package/dist/_chunk/slider.jsx.map +1 -1
- package/dist/_chunk/spinbutton.js +52 -42
- package/dist/_chunk/spinbutton.js.map +1 -1
- package/dist/_chunk/spinbutton.jsx +52 -42
- package/dist/_chunk/spinbutton.jsx.map +1 -1
- package/dist/_chunk/steplist.js +14 -1
- package/dist/_chunk/steplist.js.map +1 -1
- package/dist/_chunk/steplist.jsx +14 -1
- package/dist/_chunk/steplist.jsx.map +1 -1
- package/dist/_chunk/switch.js +21 -3
- package/dist/_chunk/switch.js.map +1 -1
- package/dist/_chunk/switch.jsx +21 -3
- package/dist/_chunk/switch.jsx.map +1 -1
- package/dist/_chunk/table.js +666 -88
- package/dist/_chunk/table.js.map +1 -1
- package/dist/_chunk/table.jsx +666 -88
- package/dist/_chunk/table.jsx.map +1 -1
- package/dist/_chunk/tabs.js +115 -17
- package/dist/_chunk/tabs.js.map +1 -1
- package/dist/_chunk/tabs.jsx +115 -17
- package/dist/_chunk/tabs.jsx.map +1 -1
- package/dist/_chunk/tag.js +240 -39
- package/dist/_chunk/tag.js.map +1 -1
- package/dist/_chunk/tag.jsx +240 -39
- package/dist/_chunk/tag.jsx.map +1 -1
- package/dist/_chunk/textfield.js +83 -12
- package/dist/_chunk/textfield.js.map +1 -1
- package/dist/_chunk/textfield.jsx +83 -12
- package/dist/_chunk/textfield.jsx.map +1 -1
- package/dist/_chunk/toast.js +61 -28
- package/dist/_chunk/toast.js.map +1 -1
- package/dist/_chunk/toast.jsx +61 -28
- package/dist/_chunk/toast.jsx.map +1 -1
- package/dist/_chunk/tokenfield.js +567 -0
- package/dist/_chunk/tokenfield.js.map +1 -0
- package/dist/_chunk/tokenfield.jsx +567 -0
- package/dist/_chunk/tokenfield.jsx.map +1 -0
- package/dist/_chunk/toolbar.js +25 -8
- package/dist/_chunk/toolbar.js.map +1 -1
- package/dist/_chunk/toolbar.jsx +25 -8
- package/dist/_chunk/toolbar.jsx.map +1 -1
- package/dist/_chunk/tooltip.js +379 -6
- package/dist/_chunk/tooltip.js.map +1 -1
- package/dist/_chunk/tooltip.jsx +379 -6
- package/dist/_chunk/tooltip.jsx.map +1 -1
- package/dist/_chunk/tree.js +280 -69
- package/dist/_chunk/tree.js.map +1 -1
- package/dist/_chunk/tree.jsx +280 -69
- package/dist/_chunk/tree.jsx.map +1 -1
- package/dist/_chunk/utils.js +192 -150
- package/dist/_chunk/utils.js.map +1 -1
- package/dist/_chunk/utils.jsx +192 -150
- package/dist/_chunk/utils.jsx.map +1 -1
- package/dist/_chunk/virtualFocus.js +54 -0
- package/dist/_chunk/virtualFocus.js.map +1 -0
- package/dist/_chunk/virtualFocus.jsx +54 -0
- package/dist/_chunk/virtualFocus.jsx.map +1 -0
- package/dist/_chunk/virtualizer.js +202 -0
- package/dist/_chunk/virtualizer.js.map +1 -0
- package/dist/_chunk/virtualizer.jsx +202 -0
- package/dist/_chunk/virtualizer.jsx.map +1 -0
- package/dist/actiongroup/createActionGroup.d.ts +2 -1
- package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
- package/dist/autocomplete/createAutocomplete.d.ts +1 -9
- package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
- package/dist/autocomplete/intl/index.d.ts +13 -0
- package/dist/autocomplete/intl/index.d.ts.map +1 -0
- package/dist/breadcrumbs/createBreadcrumbs.d.ts +3 -1
- package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
- package/dist/breadcrumbs/intl/index.d.ts +13 -0
- package/dist/breadcrumbs/intl/index.d.ts.map +1 -0
- package/dist/button/createButton.d.ts.map +1 -1
- package/dist/button/createToggleButton.d.ts.map +1 -1
- package/dist/button/createToggleButtonGroup.d.ts +1 -1
- package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
- package/dist/button/types.d.ts +14 -0
- package/dist/button/types.d.ts.map +1 -1
- package/dist/calendar/createCalendar.d.ts +1 -7
- package/dist/calendar/createCalendar.d.ts.map +1 -1
- package/dist/calendar/createCalendarCell.d.ts +0 -6
- package/dist/calendar/createCalendarCell.d.ts.map +1 -1
- package/dist/calendar/createCalendarGrid.d.ts +1 -7
- package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
- package/dist/calendar/createCalendarMonthPicker.d.ts +0 -8
- package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -1
- package/dist/calendar/createCalendarYearPicker.d.ts +0 -8
- package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -1
- package/dist/calendar/createRangeCalendar.d.ts +13 -7
- package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
- package/dist/calendar/createRangeCalendarCell.d.ts +2 -6
- package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
- package/dist/calendar/intl/index.d.ts.map +1 -1
- package/dist/calendar/utils.d.ts.map +1 -1
- package/dist/checkbox/createCheckbox.d.ts +2 -1
- package/dist/checkbox/createCheckbox.d.ts.map +1 -1
- package/dist/checkbox/createCheckboxGroup.d.ts +1 -9
- package/dist/checkbox/createCheckboxGroup.d.ts.map +1 -1
- package/dist/checkbox/createCheckboxGroupItem.d.ts +0 -8
- package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
- package/dist/collections/index.d.ts +1 -1
- package/dist/collections/index.d.ts.map +1 -1
- package/dist/collections/index.js +18 -2
- package/dist/collections/index.js.map +1 -1
- package/dist/collections/index.jsx +18 -2
- package/dist/collections/index.jsx.map +1 -1
- package/dist/color/createColorArea.d.ts +2 -7
- package/dist/color/createColorArea.d.ts.map +1 -1
- package/dist/color/createColorField.d.ts +2 -7
- package/dist/color/createColorField.d.ts.map +1 -1
- package/dist/color/createColorSlider.d.ts +1 -6
- package/dist/color/createColorSlider.d.ts.map +1 -1
- package/dist/color/createColorSwatch.d.ts +1 -6
- package/dist/color/createColorSwatch.d.ts.map +1 -1
- package/dist/color/createColorWheel.d.ts +1 -6
- package/dist/color/createColorWheel.d.ts.map +1 -1
- package/dist/color/intl/index.d.ts.map +1 -1
- package/dist/color/types.d.ts +47 -1
- package/dist/color/types.d.ts.map +1 -1
- package/dist/combobox/createComboBox.d.ts +17 -8
- package/dist/combobox/createComboBox.d.ts.map +1 -1
- package/dist/combobox/intl/generated-locales.d.ts +3 -0
- package/dist/combobox/intl/generated-locales.d.ts.map +1 -1
- package/dist/combobox/intl/index.d.ts +3 -2
- package/dist/combobox/intl/index.d.ts.map +1 -1
- package/dist/datepicker/createDateField.d.ts +0 -10
- package/dist/datepicker/createDateField.d.ts.map +1 -1
- package/dist/datepicker/createDatePicker.d.ts +0 -16
- package/dist/datepicker/createDatePicker.d.ts.map +1 -1
- package/dist/datepicker/createDatePickerGroup.d.ts +1 -1
- package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -1
- package/dist/datepicker/createDateRangePicker.d.ts +0 -21
- package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
- package/dist/datepicker/createDateSegment.d.ts +0 -9
- package/dist/datepicker/createDateSegment.d.ts.map +1 -1
- package/dist/datepicker/createDisplayNames.d.ts +1 -9
- package/dist/datepicker/createDisplayNames.d.ts.map +1 -1
- package/dist/datepicker/createTimeField.d.ts.map +1 -1
- package/dist/datepicker/intl.d.ts.map +1 -1
- package/dist/dialog/createDialog.d.ts +2 -4
- package/dist/dialog/createDialog.d.ts.map +1 -1
- package/dist/dialog/types.d.ts +14 -0
- package/dist/dialog/types.d.ts.map +1 -1
- package/dist/disclosure/createDisclosure.d.ts +1 -8
- package/dist/disclosure/createDisclosure.d.ts.map +1 -1
- package/dist/disclosure/createDisclosureGroup.d.ts +3 -4
- package/dist/disclosure/createDisclosureGroup.d.ts.map +1 -1
- package/dist/dnd/DragManager.d.ts +1 -16
- package/dist/dnd/DragManager.d.ts.map +1 -1
- package/dist/dnd/DropTargetKeyboardNavigation.d.ts +2 -2
- package/dist/dnd/createDrag.d.ts +1 -7
- package/dist/dnd/createDrag.d.ts.map +1 -1
- package/dist/dnd/createDraggableCollection.d.ts +1 -7
- package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
- package/dist/dnd/createDraggableItem.d.ts +2 -7
- package/dist/dnd/createDraggableItem.d.ts.map +1 -1
- package/dist/dnd/createDrop.d.ts +1 -7
- package/dist/dnd/createDrop.d.ts.map +1 -1
- package/dist/dnd/createDropIndicator.d.ts +27 -0
- package/dist/dnd/createDropIndicator.d.ts.map +1 -0
- package/dist/dnd/createDroppableCollection.d.ts +6 -8
- package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
- package/dist/dnd/createDroppableItem.d.ts +12 -10
- package/dist/dnd/createDroppableItem.d.ts.map +1 -1
- package/dist/dnd/index.d.ts +3 -1
- package/dist/dnd/index.d.ts.map +1 -1
- package/dist/dnd/index.js +2 -2
- package/dist/dnd/index.jsx +2 -2
- package/dist/dnd/intl/index.d.ts +6 -4
- package/dist/dnd/intl/index.d.ts.map +1 -1
- package/dist/dnd/types.d.ts +20 -1
- package/dist/dnd/types.d.ts.map +1 -1
- package/dist/dnd/utils.d.ts +4 -0
- package/dist/dnd/utils.d.ts.map +1 -1
- package/dist/focus/FocusScope.d.ts +9 -5
- package/dist/focus/FocusScope.d.ts.map +1 -1
- package/dist/focus/createAutoFocus.d.ts +3 -0
- package/dist/focus/createAutoFocus.d.ts.map +1 -1
- package/dist/focus/createFocusRestore.d.ts +3 -0
- package/dist/focus/createFocusRestore.d.ts.map +1 -1
- package/dist/focus/createHasTabbableChild.d.ts +13 -0
- package/dist/focus/createHasTabbableChild.d.ts.map +1 -0
- package/dist/focus/createVirtualFocus.d.ts +4 -1
- package/dist/focus/createVirtualFocus.d.ts.map +1 -1
- package/dist/focus/index.js +3 -2
- package/dist/focus/index.jsx +3 -2
- package/dist/focus/virtualFocus.d.ts +1 -1
- package/dist/form/createFormReset.d.ts +1 -7
- package/dist/form/createFormReset.d.ts.map +1 -1
- package/dist/form/createFormValidation.d.ts +1 -9
- package/dist/form/createFormValidation.d.ts.map +1 -1
- package/dist/grid/GridKeyboardDelegate.d.ts.map +1 -1
- package/dist/grid/createGrid.d.ts +1 -5
- package/dist/grid/createGrid.d.ts.map +1 -1
- package/dist/grid/createGridCell.d.ts +1 -5
- package/dist/grid/createGridCell.d.ts.map +1 -1
- package/dist/grid/createGridRow.d.ts +1 -5
- package/dist/grid/createGridRow.d.ts.map +1 -1
- package/dist/grid/index.d.ts +2 -2
- package/dist/grid/intl/index.d.ts +18 -0
- package/dist/grid/intl/index.d.ts.map +1 -0
- package/dist/grid/types.d.ts +25 -2
- package/dist/grid/types.d.ts.map +1 -1
- package/dist/gridlist/createGridList.d.ts +3 -5
- package/dist/gridlist/createGridList.d.ts.map +1 -1
- package/dist/gridlist/createGridListItem.d.ts +1 -5
- package/dist/gridlist/createGridListItem.d.ts.map +1 -1
- package/dist/gridlist/createGridListSection.d.ts +0 -4
- package/dist/gridlist/createGridListSection.d.ts.map +1 -1
- package/dist/gridlist/createGridListSelectionCheckbox.d.ts +1 -5
- package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +1 -1
- package/dist/gridlist/intl/index.d.ts +14 -0
- package/dist/gridlist/intl/index.d.ts.map +1 -0
- package/dist/gridlist/types.d.ts +56 -2
- package/dist/gridlist/types.d.ts.map +1 -1
- package/dist/i18n/compileIcu.d.ts +24 -0
- package/dist/i18n/compileIcu.d.ts.map +1 -0
- package/dist/i18n/createCollator.d.ts +0 -7
- package/dist/i18n/createCollator.d.ts.map +1 -1
- package/dist/i18n/createDateFormatter.d.ts +0 -7
- package/dist/i18n/createDateFormatter.d.ts.map +1 -1
- package/dist/i18n/createFilter.d.ts +0 -7
- package/dist/i18n/createFilter.d.ts.map +1 -1
- package/dist/i18n/createListFormatter.d.ts +9 -0
- package/dist/i18n/createListFormatter.d.ts.map +1 -0
- package/dist/i18n/createNumberFormatter.d.ts +0 -7
- package/dist/i18n/createNumberFormatter.d.ts.map +1 -1
- package/dist/i18n/createStringFormatter.d.ts +14 -4
- package/dist/i18n/createStringFormatter.d.ts.map +1 -1
- package/dist/i18n/index.d.ts +1 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +2 -2
- package/dist/i18n/index.jsx +2 -2
- package/dist/i18n/locale.d.ts +2 -8
- package/dist/i18n/locale.d.ts.map +1 -1
- package/dist/i18n/utils.d.ts +0 -7
- package/dist/i18n/utils.d.ts.map +1 -1
- package/dist/index.d.ts +10 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -21
- package/dist/index.jsx +27 -21
- package/dist/interactions/FocusableProvider.d.ts +3 -2
- package/dist/interactions/FocusableProvider.d.ts.map +1 -1
- package/dist/interactions/PressEvent.d.ts +2 -1
- package/dist/interactions/PressEvent.d.ts.map +1 -1
- package/dist/interactions/createContextMenu.d.ts +24 -0
- package/dist/interactions/createContextMenu.d.ts.map +1 -0
- package/dist/interactions/createFocus.d.ts +3 -2
- package/dist/interactions/createFocus.d.ts.map +1 -1
- package/dist/interactions/createFocusRing.d.ts +2 -1
- package/dist/interactions/createFocusRing.d.ts.map +1 -1
- package/dist/interactions/createFocusWithin.d.ts +1 -6
- package/dist/interactions/createFocusWithin.d.ts.map +1 -1
- package/dist/interactions/createFocusable.d.ts +2 -6
- package/dist/interactions/createFocusable.d.ts.map +1 -1
- package/dist/interactions/createHover.d.ts +3 -10
- package/dist/interactions/createHover.d.ts.map +1 -1
- package/dist/interactions/createInteractionModality.d.ts +12 -10
- package/dist/interactions/createInteractionModality.d.ts.map +1 -1
- package/dist/interactions/createKeyboard.d.ts +12 -3
- package/dist/interactions/createKeyboard.d.ts.map +1 -1
- package/dist/interactions/createKeyboardShortcutHandler.d.ts +24 -0
- package/dist/interactions/createKeyboardShortcutHandler.d.ts.map +1 -0
- package/dist/interactions/createLongPress.d.ts +4 -7
- package/dist/interactions/createLongPress.d.ts.map +1 -1
- package/dist/interactions/createMove.d.ts +1 -6
- package/dist/interactions/createMove.d.ts.map +1 -1
- package/dist/interactions/createPress.d.ts +2 -7
- package/dist/interactions/createPress.d.ts.map +1 -1
- package/dist/interactions/index.d.ts +1 -1
- package/dist/interactions/index.d.ts.map +1 -1
- package/dist/interactions/index.js +5 -3
- package/dist/interactions/index.jsx +5 -3
- package/dist/label/createField.d.ts +7 -1
- package/dist/label/createField.d.ts.map +1 -1
- package/dist/label/createLabel.d.ts +1 -1
- package/dist/label/createLabel.d.ts.map +1 -1
- package/dist/label/createLabels.d.ts +0 -7
- package/dist/label/createLabels.d.ts.map +1 -1
- package/dist/landmark/createLandmark.d.ts +4 -1
- package/dist/landmark/createLandmark.d.ts.map +1 -1
- package/dist/link/createLink.d.ts +1 -1
- package/dist/link/createLink.d.ts.map +1 -1
- package/dist/listbox/createListBox.d.ts +8 -7
- package/dist/listbox/createListBox.d.ts.map +1 -1
- package/dist/listbox/createOption.d.ts +7 -1
- package/dist/listbox/createOption.d.ts.map +1 -1
- package/dist/live-announcer/announce.d.ts +2 -13
- package/dist/live-announcer/announce.d.ts.map +1 -1
- package/dist/menu/createMenu.d.ts +3 -7
- package/dist/menu/createMenu.d.ts.map +1 -1
- package/dist/menu/createMenuItem.d.ts +2 -1
- package/dist/menu/createMenuItem.d.ts.map +1 -1
- package/dist/menu/createMenuTrigger.d.ts +24 -20
- package/dist/menu/createMenuTrigger.d.ts.map +1 -1
- package/dist/menu/index.d.ts +1 -1
- package/dist/menu/index.d.ts.map +1 -1
- package/dist/menu/intl/index.d.ts +4 -0
- package/dist/menu/intl/index.d.ts.map +1 -0
- package/dist/meter/createMeter.d.ts +2 -1
- package/dist/meter/createMeter.d.ts.map +1 -1
- package/dist/numberfield/createNumberField.d.ts +29 -6
- package/dist/numberfield/createNumberField.d.ts.map +1 -1
- package/dist/overlays/ariaHideOutside.d.ts +0 -4
- package/dist/overlays/ariaHideOutside.d.ts.map +1 -1
- package/dist/overlays/createInteractOutside.d.ts +2 -5
- package/dist/overlays/createInteractOutside.d.ts.map +1 -1
- package/dist/overlays/createModal.d.ts +3 -6
- package/dist/overlays/createModal.d.ts.map +1 -1
- package/dist/overlays/createOverlay.d.ts +1 -5
- package/dist/overlays/createOverlay.d.ts.map +1 -1
- package/dist/overlays/createOverlayTrigger.d.ts +2 -6
- package/dist/overlays/createOverlayTrigger.d.ts.map +1 -1
- package/dist/overlays/createPreventScroll.d.ts +0 -4
- package/dist/overlays/createPreventScroll.d.ts.map +1 -1
- package/dist/overlays/index.d.ts +1 -0
- package/dist/overlays/index.d.ts.map +1 -1
- package/dist/overlays/index.js +3 -2
- package/dist/overlays/index.jsx +3 -2
- package/dist/overlays/intl/index.d.ts +13 -0
- package/dist/overlays/intl/index.d.ts.map +1 -0
- package/dist/popover/calculatePosition.d.ts +1 -1
- package/dist/popover/calculatePosition.d.ts.map +1 -1
- package/dist/popover/createOverlayPosition.d.ts +1 -7
- package/dist/popover/createOverlayPosition.d.ts.map +1 -1
- package/dist/popover/createPopover.d.ts +6 -7
- package/dist/popover/createPopover.d.ts.map +1 -1
- package/dist/progress/createProgressBar.d.ts +2 -10
- package/dist/progress/createProgressBar.d.ts.map +1 -1
- package/dist/radio/createRadio.d.ts +8 -1
- package/dist/radio/createRadio.d.ts.map +1 -1
- package/dist/radio/createRadioGroup.d.ts +1 -9
- package/dist/radio/createRadioGroup.d.ts.map +1 -1
- package/dist/searchfield/createSearchField.d.ts +1 -1
- package/dist/searchfield/createSearchField.d.ts.map +1 -1
- package/dist/searchfield/intl/index.d.ts +13 -0
- package/dist/searchfield/intl/index.d.ts.map +1 -0
- package/dist/select/createHiddenSelect.d.ts +3 -10
- package/dist/select/createHiddenSelect.d.ts.map +1 -1
- package/dist/select/createSelect.d.ts +10 -6
- package/dist/select/createSelect.d.ts.map +1 -1
- package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -1
- package/dist/selection/ListKeyboardDelegate.d.ts +2 -1
- package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -1
- package/dist/selection/constants.d.ts.map +1 -1
- package/dist/selection/createCollectionRowInteraction.d.ts +12 -1
- package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -1
- package/dist/selection/createScrollIntoViewOnFocus.d.ts +0 -11
- package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -1
- package/dist/selection/createSelectableCollection.d.ts +1 -23
- package/dist/selection/createSelectableCollection.d.ts.map +1 -1
- package/dist/selection/createSelectableItem.d.ts +2 -29
- package/dist/selection/createSelectableItem.d.ts.map +1 -1
- package/dist/selection/createSelectableList.d.ts +4 -17
- package/dist/selection/createSelectableList.d.ts.map +1 -1
- package/dist/selection/createTypeSelect.d.ts +2 -8
- package/dist/selection/createTypeSelect.d.ts.map +1 -1
- package/dist/selection/index.js +3 -2
- package/dist/selection/index.jsx +3 -2
- package/dist/selection/selectItem.d.ts.map +1 -1
- package/dist/selection/utils.d.ts +1 -1
- package/dist/selection/utils.d.ts.map +1 -1
- package/dist/separator/createSeparator.d.ts +3 -1
- package/dist/separator/createSeparator.d.ts.map +1 -1
- package/dist/slider/createSlider.d.ts +1 -6
- package/dist/slider/createSlider.d.ts.map +1 -1
- package/dist/spinbutton/createSpinButton.d.ts +0 -9
- package/dist/spinbutton/createSpinButton.d.ts.map +1 -1
- package/dist/spinbutton/index.d.ts +2 -2
- package/dist/spinbutton/index.d.ts.map +1 -1
- package/dist/spinbutton/intl.d.ts.map +1 -1
- package/dist/ssr/index.d.ts +3 -9
- package/dist/ssr/index.d.ts.map +1 -1
- package/dist/ssr/index.js +47 -26
- package/dist/ssr/index.js.map +1 -1
- package/dist/ssr/index.jsx +47 -26
- package/dist/ssr/index.jsx.map +1 -1
- package/dist/steplist/createStepList.d.ts +1 -1
- package/dist/steplist/createStepList.d.ts.map +1 -1
- package/dist/switch/createSwitch.d.ts +2 -1
- package/dist/switch/createSwitch.d.ts.map +1 -1
- package/dist/table/createTable.d.ts +1 -5
- package/dist/table/createTable.d.ts.map +1 -1
- package/dist/table/createTableCell.d.ts +1 -5
- package/dist/table/createTableCell.d.ts.map +1 -1
- package/dist/table/createTableColumnHeader.d.ts +1 -5
- package/dist/table/createTableColumnHeader.d.ts.map +1 -1
- package/dist/table/createTableColumnResize.d.ts +2 -8
- package/dist/table/createTableColumnResize.d.ts.map +1 -1
- package/dist/table/createTableHeaderRow.d.ts +1 -5
- package/dist/table/createTableHeaderRow.d.ts.map +1 -1
- package/dist/table/createTableRow.d.ts +1 -5
- package/dist/table/createTableRow.d.ts.map +1 -1
- package/dist/table/createTableRowGroup.d.ts +1 -5
- package/dist/table/createTableRowGroup.d.ts.map +1 -1
- package/dist/table/createTableSelectAllCheckbox.d.ts +1 -5
- package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
- package/dist/table/createTableSelectionCheckbox.d.ts +1 -5
- package/dist/table/createTableSelectionCheckbox.d.ts.map +1 -1
- package/dist/table/index.d.ts +2 -2
- package/dist/table/intl/index.d.ts +23 -0
- package/dist/table/intl/index.d.ts.map +1 -0
- package/dist/table/types.d.ts +44 -2
- package/dist/table/types.d.ts.map +1 -1
- package/dist/table/utils.d.ts.map +1 -1
- package/dist/tabs/createTabs.d.ts +5 -9
- package/dist/tabs/createTabs.d.ts.map +1 -1
- package/dist/tag/createTag.d.ts +4 -8
- package/dist/tag/createTag.d.ts.map +1 -1
- package/dist/tag/createTagGroup.d.ts +0 -9
- package/dist/tag/createTagGroup.d.ts.map +1 -1
- package/dist/tag/intl/index.d.ts +14 -0
- package/dist/tag/intl/index.d.ts.map +1 -0
- package/dist/textfield/createTextField.d.ts +6 -8
- package/dist/textfield/createTextField.d.ts.map +1 -1
- package/dist/toast/createToast.d.ts +1 -8
- package/dist/toast/createToast.d.ts.map +1 -1
- package/dist/toast/createToastRegion.d.ts +7 -18
- package/dist/toast/createToastRegion.d.ts.map +1 -1
- package/dist/toast/intl/index.d.ts +14 -0
- package/dist/toast/intl/index.d.ts.map +1 -0
- package/dist/toggle/createToggle.d.ts +8 -1
- package/dist/toggle/createToggle.d.ts.map +1 -1
- package/dist/tokenfield/createToken.d.ts +15 -0
- package/dist/tokenfield/createToken.d.ts.map +1 -0
- package/dist/tokenfield/createTokenField.d.ts +52 -0
- package/dist/tokenfield/createTokenField.d.ts.map +1 -0
- package/dist/tokenfield/index.d.ts +3 -0
- package/dist/tokenfield/index.d.ts.map +1 -0
- package/dist/tokenfield/index.js +2 -0
- package/dist/tokenfield/index.jsx +2 -0
- package/dist/toolbar/createToolbar.d.ts +1 -1
- package/dist/toolbar/createToolbar.d.ts.map +1 -1
- package/dist/tooltip/createPreviewTrigger.d.ts +23 -0
- package/dist/tooltip/createPreviewTrigger.d.ts.map +1 -0
- package/dist/tooltip/createSafeArea.d.ts +20 -0
- package/dist/tooltip/createSafeArea.d.ts.map +1 -0
- package/dist/tooltip/createTooltip.d.ts +1 -1
- package/dist/tooltip/createTooltip.d.ts.map +1 -1
- package/dist/tooltip/createTooltipTrigger.d.ts +1 -9
- package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
- package/dist/tooltip/index.d.ts +2 -0
- package/dist/tooltip/index.d.ts.map +1 -1
- package/dist/tooltip/index.js +2 -2
- package/dist/tooltip/index.jsx +2 -2
- package/dist/tooltip/intl/index.d.ts +4 -0
- package/dist/tooltip/intl/index.d.ts.map +1 -0
- package/dist/tree/createTree.d.ts +1 -5
- package/dist/tree/createTree.d.ts.map +1 -1
- package/dist/tree/createTreeItem.d.ts +1 -5
- package/dist/tree/createTreeItem.d.ts.map +1 -1
- package/dist/tree/createTreeSelectionCheckbox.d.ts +1 -5
- package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
- package/dist/tree/intl/index.d.ts +14 -0
- package/dist/tree/intl/index.d.ts.map +1 -0
- package/dist/tree/types.d.ts +35 -2
- package/dist/tree/types.d.ts.map +1 -1
- package/dist/utils/ShadowTreeWalker.d.ts +30 -0
- package/dist/utils/ShadowTreeWalker.d.ts.map +1 -0
- package/dist/utils/animation.d.ts +1 -29
- package/dist/utils/animation.d.ts.map +1 -1
- package/dist/utils/capture.d.ts +14 -0
- package/dist/utils/capture.d.ts.map +1 -0
- package/dist/utils/createDescription.d.ts +1 -25
- package/dist/utils/createDescription.d.ts.map +1 -1
- package/dist/utils/dom.d.ts +45 -11
- package/dist/utils/dom.d.ts.map +1 -1
- package/dist/utils/domAttrs.d.ts +16 -0
- package/dist/utils/domAttrs.d.ts.map +1 -0
- package/dist/utils/env.d.ts +2 -0
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/events.d.ts +0 -4
- package/dist/utils/events.d.ts.map +1 -1
- package/dist/utils/filterDOMProps.d.ts +0 -6
- package/dist/utils/filterDOMProps.d.ts.map +1 -1
- package/dist/utils/focus.d.ts +19 -6
- package/dist/utils/focus.d.ts.map +1 -1
- package/dist/utils/geometry.d.ts +1 -1
- package/dist/utils/geometry.d.ts.map +1 -1
- package/dist/utils/getMetaValue.d.ts +13 -0
- package/dist/utils/getMetaValue.d.ts.map +1 -0
- package/dist/utils/getNonce.d.ts +9 -0
- package/dist/utils/getNonce.d.ts.map +1 -0
- package/dist/utils/globalListeners.d.ts +0 -6
- package/dist/utils/globalListeners.d.ts.map +1 -1
- package/dist/utils/index.d.ts +6 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +7 -4
- package/dist/utils/index.jsx +7 -4
- package/dist/utils/keyboard.d.ts +0 -4
- package/dist/utils/keyboard.d.ts.map +1 -1
- package/dist/utils/mergeProps.d.ts +5 -2
- package/dist/utils/mergeProps.d.ts.map +1 -1
- package/dist/utils/owner.d.ts +14 -0
- package/dist/utils/owner.d.ts.map +1 -0
- package/dist/utils/platform.d.ts +0 -4
- package/dist/utils/platform.d.ts.map +1 -1
- package/dist/utils/reactivity.d.ts +2 -0
- package/dist/utils/reactivity.d.ts.map +1 -1
- package/dist/utils/refs.d.ts +20 -0
- package/dist/utils/refs.d.ts.map +1 -0
- package/dist/utils/runAfterTransition.d.ts +2 -0
- package/dist/utils/runAfterTransition.d.ts.map +1 -0
- package/dist/utils/scrollIntoView.d.ts +0 -4
- package/dist/utils/scrollIntoView.d.ts.map +1 -1
- package/dist/utils/splitProps.d.ts +17 -0
- package/dist/utils/splitProps.d.ts.map +1 -0
- package/dist/utils/textSelection.d.ts +0 -8
- package/dist/utils/textSelection.d.ts.map +1 -1
- package/dist/virtualizer/ScrollView.d.ts +38 -0
- package/dist/virtualizer/ScrollView.d.ts.map +1 -0
- package/dist/virtualizer/index.d.ts +3 -0
- package/dist/virtualizer/index.d.ts.map +1 -0
- package/dist/virtualizer/index.js +2 -0
- package/dist/virtualizer/index.jsx +2 -0
- package/dist/virtualizer/utils.d.ts +10 -0
- package/dist/virtualizer/utils.d.ts.map +1 -0
- package/dist/visually-hidden/createVisuallyHidden.d.ts +2 -9
- package/dist/visually-hidden/createVisuallyHidden.d.ts.map +1 -1
- package/dist/visually-hidden/index.js +1 -1
- package/dist/visually-hidden/index.jsx +1 -1
- package/package.json +30 -11
- package/src/actiongroup/createActionGroup.ts +49 -27
- package/src/autocomplete/createAutocomplete.ts +32 -5
- package/src/autocomplete/intl/ar-AE.json +3 -0
- package/src/autocomplete/intl/bg-BG.json +3 -0
- package/src/autocomplete/intl/cs-CZ.json +3 -0
- package/src/autocomplete/intl/da-DK.json +3 -0
- package/src/autocomplete/intl/de-DE.json +3 -0
- package/src/autocomplete/intl/el-GR.json +3 -0
- package/src/autocomplete/intl/en-US.json +3 -0
- package/src/autocomplete/intl/es-ES.json +3 -0
- package/src/autocomplete/intl/et-EE.json +3 -0
- package/src/autocomplete/intl/fi-FI.json +3 -0
- package/src/autocomplete/intl/fr-FR.json +3 -0
- package/src/autocomplete/intl/he-IL.json +3 -0
- package/src/autocomplete/intl/hr-HR.json +3 -0
- package/src/autocomplete/intl/hu-HU.json +3 -0
- package/src/autocomplete/intl/index.ts +122 -0
- package/src/autocomplete/intl/it-IT.json +3 -0
- package/src/autocomplete/intl/ja-JP.json +3 -0
- package/src/autocomplete/intl/ko-KR.json +3 -0
- package/src/autocomplete/intl/lt-LT.json +3 -0
- package/src/autocomplete/intl/lv-LV.json +3 -0
- package/src/autocomplete/intl/nb-NO.json +3 -0
- package/src/autocomplete/intl/nl-NL.json +3 -0
- package/src/autocomplete/intl/pl-PL.json +3 -0
- package/src/autocomplete/intl/pt-BR.json +3 -0
- package/src/autocomplete/intl/pt-PT.json +3 -0
- package/src/autocomplete/intl/ro-RO.json +3 -0
- package/src/autocomplete/intl/ru-RU.json +3 -0
- package/src/autocomplete/intl/sk-SK.json +3 -0
- package/src/autocomplete/intl/sl-SI.json +3 -0
- package/src/autocomplete/intl/sr-SP.json +3 -0
- package/src/autocomplete/intl/sv-SE.json +3 -0
- package/src/autocomplete/intl/tr-TR.json +3 -0
- package/src/autocomplete/intl/uk-UA.json +3 -0
- package/src/autocomplete/intl/zh-CN.json +3 -0
- package/src/autocomplete/intl/zh-TW.json +3 -0
- package/src/breadcrumbs/createBreadcrumbs.ts +18 -1
- package/src/breadcrumbs/intl/ar-AE.json +3 -0
- package/src/breadcrumbs/intl/bg-BG.json +3 -0
- package/src/breadcrumbs/intl/cs-CZ.json +3 -0
- package/src/breadcrumbs/intl/da-DK.json +3 -0
- package/src/breadcrumbs/intl/de-DE.json +3 -0
- package/src/breadcrumbs/intl/el-GR.json +3 -0
- package/src/breadcrumbs/intl/en-US.json +3 -0
- package/src/breadcrumbs/intl/es-ES.json +3 -0
- package/src/breadcrumbs/intl/et-EE.json +3 -0
- package/src/breadcrumbs/intl/fi-FI.json +3 -0
- package/src/breadcrumbs/intl/fr-FR.json +3 -0
- package/src/breadcrumbs/intl/he-IL.json +3 -0
- package/src/breadcrumbs/intl/hr-HR.json +3 -0
- package/src/breadcrumbs/intl/hu-HU.json +3 -0
- package/src/breadcrumbs/intl/index.ts +122 -0
- package/src/breadcrumbs/intl/it-IT.json +3 -0
- package/src/breadcrumbs/intl/ja-JP.json +3 -0
- package/src/breadcrumbs/intl/ko-KR.json +3 -0
- package/src/breadcrumbs/intl/lt-LT.json +3 -0
- package/src/breadcrumbs/intl/lv-LV.json +3 -0
- package/src/breadcrumbs/intl/nb-NO.json +3 -0
- package/src/breadcrumbs/intl/nl-NL.json +3 -0
- package/src/breadcrumbs/intl/pl-PL.json +3 -0
- package/src/breadcrumbs/intl/pt-BR.json +3 -0
- package/src/breadcrumbs/intl/pt-PT.json +3 -0
- package/src/breadcrumbs/intl/ro-RO.json +3 -0
- package/src/breadcrumbs/intl/ru-RU.json +3 -0
- package/src/breadcrumbs/intl/sk-SK.json +3 -0
- package/src/breadcrumbs/intl/sl-SI.json +3 -0
- package/src/breadcrumbs/intl/sr-SP.json +3 -0
- package/src/breadcrumbs/intl/sv-SE.json +3 -0
- package/src/breadcrumbs/intl/tr-TR.json +3 -0
- package/src/breadcrumbs/intl/uk-UA.json +3 -0
- package/src/breadcrumbs/intl/zh-CN.json +3 -0
- package/src/breadcrumbs/intl/zh-TW.json +3 -0
- package/src/button/createButton.ts +15 -1
- package/src/button/createToggleButton.ts +18 -5
- package/src/button/createToggleButtonGroup.ts +23 -8
- package/src/button/types.ts +16 -0
- package/src/calendar/createCalendar.ts +22 -3
- package/src/calendar/createCalendarCell.ts +104 -15
- package/src/calendar/createCalendarGrid.ts +37 -13
- package/src/calendar/createCalendarMonthPicker.ts +14 -0
- package/src/calendar/createCalendarYearPicker.ts +14 -0
- package/src/calendar/createRangeCalendar.ts +124 -1
- package/src/calendar/createRangeCalendarCell.ts +179 -40
- package/src/calendar/intl/index.ts +37 -0
- package/src/calendar/utils.ts +14 -0
- package/src/checkbox/createCheckbox.ts +32 -17
- package/src/checkbox/createCheckboxGroup.ts +31 -13
- package/src/checkbox/createCheckboxGroupItem.ts +15 -1
- package/src/collections/index.ts +21 -3
- package/src/color/createColorArea.ts +226 -29
- package/src/color/createColorField.ts +98 -22
- package/src/color/createColorSlider.ts +24 -3
- package/src/color/createColorSwatch.ts +18 -1
- package/src/color/createColorWheel.ts +27 -5
- package/src/color/intl/index.ts +35 -0
- package/src/color/types.ts +47 -1
- package/src/combobox/createComboBox.ts +303 -152
- package/src/combobox/intl/generated-locales.ts +38 -1
- package/src/combobox/intl/index.ts +38 -2
- package/src/datepicker/createDateField.ts +38 -22
- package/src/datepicker/createDatePicker.ts +14 -0
- package/src/datepicker/createDatePickerGroup.ts +24 -12
- package/src/datepicker/createDateRangePicker.ts +14 -0
- package/src/datepicker/createDateSegment.ts +110 -46
- package/src/datepicker/createDisplayNames.ts +16 -1
- package/src/datepicker/createTimeField.ts +15 -5
- package/src/datepicker/intl.ts +623 -544
- package/src/dialog/createDialog.ts +57 -30
- package/src/dialog/types.ts +14 -0
- package/src/disclosure/createDisclosure.ts +28 -6
- package/src/disclosure/createDisclosureGroup.ts +3 -4
- package/src/dnd/DragManager.ts +60 -9
- package/src/dnd/DropTargetKeyboardNavigation.ts +8 -6
- package/src/dnd/createDrag.ts +18 -1
- package/src/dnd/createDraggableCollection.ts +96 -32
- package/src/dnd/createDraggableItem.ts +73 -31
- package/src/dnd/createDrop.ts +18 -1
- package/src/dnd/createDropIndicator.ts +92 -0
- package/src/dnd/createDroppableCollection.ts +113 -48
- package/src/dnd/createDroppableItem.ts +161 -13
- package/src/dnd/index.ts +3 -0
- package/src/dnd/intl/index.ts +77 -66
- package/src/dnd/types.ts +20 -1
- package/src/dnd/utils.ts +19 -0
- package/src/focus/FocusScope.tsx +542 -157
- package/src/focus/createAutoFocus.ts +94 -68
- package/src/focus/createFocusRestore.ts +16 -12
- package/src/focus/createHasTabbableChild.ts +78 -0
- package/src/focus/createVirtualFocus.ts +21 -5
- package/src/focus/virtualFocus.ts +1 -1
- package/src/form/createFormReset.ts +40 -17
- package/src/form/createFormValidation.ts +128 -86
- package/src/grid/GridKeyboardDelegate.ts +14 -0
- package/src/grid/createGrid.ts +17 -2
- package/src/grid/createGridCell.ts +17 -2
- package/src/grid/createGridRow.ts +17 -2
- package/src/grid/index.ts +2 -2
- package/src/grid/intl/ar-AE.json +8 -0
- package/src/grid/intl/bg-BG.json +8 -0
- package/src/grid/intl/cs-CZ.json +8 -0
- package/src/grid/intl/da-DK.json +8 -0
- package/src/grid/intl/de-DE.json +8 -0
- package/src/grid/intl/el-GR.json +8 -0
- package/src/grid/intl/en-US.json +8 -0
- package/src/grid/intl/es-ES.json +8 -0
- package/src/grid/intl/et-EE.json +8 -0
- package/src/grid/intl/fi-FI.json +8 -0
- package/src/grid/intl/fr-FR.json +8 -0
- package/src/grid/intl/he-IL.json +8 -0
- package/src/grid/intl/hr-HR.json +8 -0
- package/src/grid/intl/hu-HU.json +8 -0
- package/src/grid/intl/index.ts +127 -0
- package/src/grid/intl/it-IT.json +8 -0
- package/src/grid/intl/ja-JP.json +8 -0
- package/src/grid/intl/ko-KR.json +8 -0
- package/src/grid/intl/lt-LT.json +8 -0
- package/src/grid/intl/lv-LV.json +8 -0
- package/src/grid/intl/nb-NO.json +8 -0
- package/src/grid/intl/nl-NL.json +8 -0
- package/src/grid/intl/pl-PL.json +8 -0
- package/src/grid/intl/pt-BR.json +8 -0
- package/src/grid/intl/pt-PT.json +8 -0
- package/src/grid/intl/ro-RO.json +8 -0
- package/src/grid/intl/ru-RU.json +8 -0
- package/src/grid/intl/sk-SK.json +8 -0
- package/src/grid/intl/sl-SI.json +8 -0
- package/src/grid/intl/sr-SP.json +8 -0
- package/src/grid/intl/sv-SE.json +8 -0
- package/src/grid/intl/tr-TR.json +8 -0
- package/src/grid/intl/uk-UA.json +8 -0
- package/src/grid/intl/zh-CN.json +8 -0
- package/src/grid/intl/zh-TW.json +8 -0
- package/src/grid/types.ts +25 -2
- package/src/gridlist/createGridList.ts +172 -42
- package/src/gridlist/createGridListItem.ts +51 -13
- package/src/gridlist/createGridListSection.ts +14 -0
- package/src/gridlist/createGridListSelectionCheckbox.ts +31 -4
- package/src/gridlist/intl/ar-AE.json +4 -0
- package/src/gridlist/intl/bg-BG.json +4 -0
- package/src/gridlist/intl/cs-CZ.json +4 -0
- package/src/gridlist/intl/da-DK.json +4 -0
- package/src/gridlist/intl/de-DE.json +4 -0
- package/src/gridlist/intl/el-GR.json +4 -0
- package/src/gridlist/intl/en-US.json +4 -0
- package/src/gridlist/intl/es-ES.json +4 -0
- package/src/gridlist/intl/et-EE.json +4 -0
- package/src/gridlist/intl/fi-FI.json +4 -0
- package/src/gridlist/intl/fr-FR.json +4 -0
- package/src/gridlist/intl/he-IL.json +4 -0
- package/src/gridlist/intl/hr-HR.json +4 -0
- package/src/gridlist/intl/hu-HU.json +4 -0
- package/src/gridlist/intl/index.ts +123 -0
- package/src/gridlist/intl/it-IT.json +4 -0
- package/src/gridlist/intl/ja-JP.json +4 -0
- package/src/gridlist/intl/ko-KR.json +4 -0
- package/src/gridlist/intl/lt-LT.json +4 -0
- package/src/gridlist/intl/lv-LV.json +4 -0
- package/src/gridlist/intl/nb-NO.json +4 -0
- package/src/gridlist/intl/nl-NL.json +4 -0
- package/src/gridlist/intl/pl-PL.json +4 -0
- package/src/gridlist/intl/pt-BR.json +4 -0
- package/src/gridlist/intl/pt-PT.json +4 -0
- package/src/gridlist/intl/ro-RO.json +4 -0
- package/src/gridlist/intl/ru-RU.json +4 -0
- package/src/gridlist/intl/sk-SK.json +4 -0
- package/src/gridlist/intl/sl-SI.json +4 -0
- package/src/gridlist/intl/sr-SP.json +4 -0
- package/src/gridlist/intl/sv-SE.json +4 -0
- package/src/gridlist/intl/tr-TR.json +4 -0
- package/src/gridlist/intl/uk-UA.json +4 -0
- package/src/gridlist/intl/zh-CN.json +4 -0
- package/src/gridlist/intl/zh-TW.json +4 -0
- package/src/gridlist/types.ts +54 -2
- package/src/i18n/compileIcu.ts +440 -0
- package/src/i18n/createCollator.ts +14 -0
- package/src/i18n/createDateFormatter.ts +14 -0
- package/src/i18n/createFilter.ts +14 -0
- package/src/i18n/createListFormatter.ts +38 -0
- package/src/i18n/createNumberFormatter.ts +14 -0
- package/src/i18n/createStringFormatter.ts +64 -8
- package/src/i18n/index.ts +3 -0
- package/src/i18n/locale.tsx +60 -19
- package/src/i18n/utils.ts +14 -0
- package/src/index.ts +49 -1
- package/src/interactions/FocusableProvider.tsx +28 -11
- package/src/interactions/PressEvent.ts +16 -1
- package/src/interactions/createContextMenu.ts +108 -0
- package/src/interactions/createFocus.ts +26 -6
- package/src/interactions/createFocusRing.ts +28 -13
- package/src/interactions/createFocusWithin.ts +23 -3
- package/src/interactions/createFocusable.ts +45 -28
- package/src/interactions/createHover.ts +102 -81
- package/src/interactions/createInteractionModality.ts +135 -45
- package/src/interactions/createKeyboard.ts +85 -9
- package/src/interactions/createKeyboardShortcutHandler.ts +157 -0
- package/src/interactions/createLongPress.ts +31 -9
- package/src/interactions/createMove.ts +24 -3
- package/src/interactions/createPress.ts +85 -41
- package/src/interactions/index.ts +1 -0
- package/src/label/createField.ts +58 -63
- package/src/label/createLabel.ts +21 -4
- package/src/label/createLabels.ts +25 -1
- package/src/landmark/createLandmark.ts +27 -4
- package/src/link/createLink.ts +20 -12
- package/src/listbox/createListBox.ts +86 -310
- package/src/listbox/createOption.ts +50 -14
- package/src/live-announcer/announce.ts +21 -6
- package/src/menu/createMenu.ts +92 -5
- package/src/menu/createMenuItem.ts +40 -23
- package/src/menu/createMenuTrigger.ts +179 -51
- package/src/menu/index.ts +2 -0
- package/src/menu/intl/index.ts +130 -0
- package/src/meter/createMeter.ts +20 -5
- package/src/numberfield/createNumberField.ts +254 -14
- package/src/overlays/ariaHideOutside.ts +76 -11
- package/src/overlays/createInteractOutside.ts +74 -47
- package/src/overlays/createModal.tsx +42 -27
- package/src/overlays/createOverlay.ts +107 -66
- package/src/overlays/createOverlayTrigger.ts +21 -6
- package/src/overlays/createPreventScroll.ts +92 -62
- package/src/overlays/index.ts +2 -0
- package/src/overlays/intl/ar-AE.json +3 -0
- package/src/overlays/intl/bg-BG.json +3 -0
- package/src/overlays/intl/cs-CZ.json +3 -0
- package/src/overlays/intl/da-DK.json +3 -0
- package/src/overlays/intl/de-DE.json +3 -0
- package/src/overlays/intl/el-GR.json +3 -0
- package/src/overlays/intl/en-US.json +3 -0
- package/src/overlays/intl/es-ES.json +3 -0
- package/src/overlays/intl/et-EE.json +3 -0
- package/src/overlays/intl/fi-FI.json +3 -0
- package/src/overlays/intl/fr-FR.json +3 -0
- package/src/overlays/intl/he-IL.json +3 -0
- package/src/overlays/intl/hr-HR.json +3 -0
- package/src/overlays/intl/hu-HU.json +3 -0
- package/src/overlays/intl/index.ts +122 -0
- package/src/overlays/intl/it-IT.json +3 -0
- package/src/overlays/intl/ja-JP.json +3 -0
- package/src/overlays/intl/ko-KR.json +3 -0
- package/src/overlays/intl/lt-LT.json +3 -0
- package/src/overlays/intl/lv-LV.json +3 -0
- package/src/overlays/intl/nb-NO.json +3 -0
- package/src/overlays/intl/nl-NL.json +3 -0
- package/src/overlays/intl/pl-PL.json +3 -0
- package/src/overlays/intl/pt-BR.json +3 -0
- package/src/overlays/intl/pt-PT.json +3 -0
- package/src/overlays/intl/ro-RO.json +3 -0
- package/src/overlays/intl/ru-RU.json +3 -0
- package/src/overlays/intl/sk-SK.json +3 -0
- package/src/overlays/intl/sl-SI.json +3 -0
- package/src/overlays/intl/sr-SP.json +3 -0
- package/src/overlays/intl/sv-SE.json +3 -0
- package/src/overlays/intl/tr-TR.json +3 -0
- package/src/overlays/intl/uk-UA.json +3 -0
- package/src/overlays/intl/zh-CN.json +3 -0
- package/src/overlays/intl/zh-TW.json +3 -0
- package/src/popover/calculatePosition.ts +21 -3
- package/src/popover/createOverlayPosition.ts +149 -41
- package/src/popover/createPopover.ts +88 -23
- package/src/progress/createProgressBar.ts +19 -4
- package/src/radio/createRadio.ts +80 -25
- package/src/radio/createRadioGroup.ts +47 -13
- package/src/searchfield/createSearchField.ts +31 -2
- package/src/searchfield/intl/ar-AE.json +3 -0
- package/src/searchfield/intl/bg-BG.json +3 -0
- package/src/searchfield/intl/cs-CZ.json +3 -0
- package/src/searchfield/intl/da-DK.json +3 -0
- package/src/searchfield/intl/de-DE.json +3 -0
- package/src/searchfield/intl/el-GR.json +3 -0
- package/src/searchfield/intl/en-US.json +3 -0
- package/src/searchfield/intl/es-ES.json +3 -0
- package/src/searchfield/intl/et-EE.json +3 -0
- package/src/searchfield/intl/fi-FI.json +3 -0
- package/src/searchfield/intl/fr-FR.json +3 -0
- package/src/searchfield/intl/he-IL.json +3 -0
- package/src/searchfield/intl/hr-HR.json +3 -0
- package/src/searchfield/intl/hu-HU.json +3 -0
- package/src/searchfield/intl/index.ts +122 -0
- package/src/searchfield/intl/it-IT.json +3 -0
- package/src/searchfield/intl/ja-JP.json +3 -0
- package/src/searchfield/intl/ko-KR.json +3 -0
- package/src/searchfield/intl/lt-LT.json +3 -0
- package/src/searchfield/intl/lv-LV.json +3 -0
- package/src/searchfield/intl/nb-NO.json +3 -0
- package/src/searchfield/intl/nl-NL.json +3 -0
- package/src/searchfield/intl/pl-PL.json +3 -0
- package/src/searchfield/intl/pt-BR.json +3 -0
- package/src/searchfield/intl/pt-PT.json +3 -0
- package/src/searchfield/intl/ro-RO.json +3 -0
- package/src/searchfield/intl/ru-RU.json +3 -0
- package/src/searchfield/intl/sk-SK.json +3 -0
- package/src/searchfield/intl/sl-SI.json +3 -0
- package/src/searchfield/intl/sr-SP.json +3 -0
- package/src/searchfield/intl/sv-SE.json +3 -0
- package/src/searchfield/intl/tr-TR.json +3 -0
- package/src/searchfield/intl/uk-UA.json +3 -0
- package/src/searchfield/intl/zh-CN.json +3 -0
- package/src/searchfield/intl/zh-TW.json +3 -0
- package/src/select/createHiddenSelect.tsx +166 -69
- package/src/select/createSelect.ts +80 -34
- package/src/selection/DOMLayoutDelegate.ts +14 -0
- package/src/selection/ListKeyboardDelegate.ts +16 -1
- package/src/selection/constants.ts +14 -0
- package/src/selection/createCollectionRowInteraction.ts +75 -6
- package/src/selection/createScrollIntoViewOnFocus.ts +23 -8
- package/src/selection/createSelectableCollection.ts +352 -226
- package/src/selection/createSelectableItem.ts +51 -12
- package/src/selection/createSelectableList.ts +21 -1
- package/src/selection/createTypeSelect.ts +21 -5
- package/src/selection/selectItem.ts +14 -0
- package/src/selection/utils.ts +15 -1
- package/src/separator/createSeparator.ts +17 -1
- package/src/slider/createSlider.ts +24 -18
- package/src/spinbutton/createSpinButton.ts +16 -2
- package/src/spinbutton/index.ts +2 -10
- package/src/spinbutton/intl.ts +70 -34
- package/src/ssr/index.tsx +79 -48
- package/src/steplist/createStepList.ts +17 -2
- package/src/switch/createSwitch.ts +25 -4
- package/src/table/createTable.ts +104 -52
- package/src/table/createTableCell.ts +17 -2
- package/src/table/createTableColumnHeader.ts +21 -3
- package/src/table/createTableColumnResize.ts +19 -3
- package/src/table/createTableHeaderRow.ts +17 -2
- package/src/table/createTableRow.ts +29 -22
- package/src/table/createTableRowGroup.ts +18 -3
- package/src/table/createTableSelectAllCheckbox.ts +30 -14
- package/src/table/createTableSelectionCheckbox.ts +21 -3
- package/src/table/index.ts +2 -2
- package/src/table/intl/ar-AE.json +13 -0
- package/src/table/intl/bg-BG.json +13 -0
- package/src/table/intl/cs-CZ.json +13 -0
- package/src/table/intl/da-DK.json +13 -0
- package/src/table/intl/de-DE.json +13 -0
- package/src/table/intl/el-GR.json +13 -0
- package/src/table/intl/en-US.json +13 -0
- package/src/table/intl/es-ES.json +13 -0
- package/src/table/intl/et-EE.json +13 -0
- package/src/table/intl/fi-FI.json +13 -0
- package/src/table/intl/fr-FR.json +13 -0
- package/src/table/intl/he-IL.json +13 -0
- package/src/table/intl/hr-HR.json +13 -0
- package/src/table/intl/hu-HU.json +13 -0
- package/src/table/intl/index.ts +132 -0
- package/src/table/intl/it-IT.json +13 -0
- package/src/table/intl/ja-JP.json +13 -0
- package/src/table/intl/ko-KR.json +13 -0
- package/src/table/intl/lt-LT.json +13 -0
- package/src/table/intl/lv-LV.json +13 -0
- package/src/table/intl/nb-NO.json +13 -0
- package/src/table/intl/nl-NL.json +13 -0
- package/src/table/intl/pl-PL.json +13 -0
- package/src/table/intl/pt-BR.json +13 -0
- package/src/table/intl/pt-PT.json +13 -0
- package/src/table/intl/ro-RO.json +13 -0
- package/src/table/intl/ru-RU.json +13 -0
- package/src/table/intl/sk-SK.json +13 -0
- package/src/table/intl/sl-SI.json +13 -0
- package/src/table/intl/sr-SP.json +13 -0
- package/src/table/intl/sv-SE.json +13 -0
- package/src/table/intl/tr-TR.json +13 -0
- package/src/table/intl/uk-UA.json +13 -0
- package/src/table/intl/zh-CN.json +13 -0
- package/src/table/intl/zh-TW.json +13 -0
- package/src/table/types.ts +44 -2
- package/src/table/utils.ts +15 -6
- package/src/tabs/createTabs.ts +104 -37
- package/src/tag/createTag.ts +118 -37
- package/src/tag/createTagGroup.ts +20 -12
- package/src/tag/intl/ar-AE.json +4 -0
- package/src/tag/intl/bg-BG.json +4 -0
- package/src/tag/intl/cs-CZ.json +4 -0
- package/src/tag/intl/da-DK.json +4 -0
- package/src/tag/intl/de-DE.json +4 -0
- package/src/tag/intl/el-GR.json +4 -0
- package/src/tag/intl/en-US.json +4 -0
- package/src/tag/intl/es-ES.json +4 -0
- package/src/tag/intl/et-EE.json +4 -0
- package/src/tag/intl/fi-FI.json +4 -0
- package/src/tag/intl/fr-FR.json +4 -0
- package/src/tag/intl/he-IL.json +4 -0
- package/src/tag/intl/hr-HR.json +4 -0
- package/src/tag/intl/hu-HU.json +4 -0
- package/src/tag/intl/index.ts +123 -0
- package/src/tag/intl/it-IT.json +4 -0
- package/src/tag/intl/ja-JP.json +4 -0
- package/src/tag/intl/ko-KR.json +4 -0
- package/src/tag/intl/lt-LT.json +4 -0
- package/src/tag/intl/lv-LV.json +4 -0
- package/src/tag/intl/nb-NO.json +4 -0
- package/src/tag/intl/nl-NL.json +4 -0
- package/src/tag/intl/pl-PL.json +4 -0
- package/src/tag/intl/pt-BR.json +4 -0
- package/src/tag/intl/pt-PT.json +4 -0
- package/src/tag/intl/ro-RO.json +4 -0
- package/src/tag/intl/ru-RU.json +4 -0
- package/src/tag/intl/sk-SK.json +4 -0
- package/src/tag/intl/sl-SI.json +4 -0
- package/src/tag/intl/sr-SP.json +4 -0
- package/src/tag/intl/sv-SE.json +4 -0
- package/src/tag/intl/tr-TR.json +4 -0
- package/src/tag/intl/uk-UA.json +4 -0
- package/src/tag/intl/zh-CN.json +4 -0
- package/src/tag/intl/zh-TW.json +4 -0
- package/src/textfield/createTextField.ts +104 -14
- package/src/toast/createToast.ts +39 -6
- package/src/toast/createToastRegion.ts +28 -15
- package/src/toast/intl/ar-AE.json +4 -0
- package/src/toast/intl/bg-BG.json +4 -0
- package/src/toast/intl/cs-CZ.json +4 -0
- package/src/toast/intl/da-DK.json +4 -0
- package/src/toast/intl/de-DE.json +4 -0
- package/src/toast/intl/el-GR.json +4 -0
- package/src/toast/intl/en-US.json +4 -0
- package/src/toast/intl/es-ES.json +4 -0
- package/src/toast/intl/et-EE.json +4 -0
- package/src/toast/intl/fi-FI.json +4 -0
- package/src/toast/intl/fr-FR.json +4 -0
- package/src/toast/intl/he-IL.json +4 -0
- package/src/toast/intl/hr-HR.json +4 -0
- package/src/toast/intl/hu-HU.json +4 -0
- package/src/toast/intl/index.ts +123 -0
- package/src/toast/intl/it-IT.json +4 -0
- package/src/toast/intl/ja-JP.json +4 -0
- package/src/toast/intl/ko-KR.json +4 -0
- package/src/toast/intl/lt-LT.json +4 -0
- package/src/toast/intl/lv-LV.json +4 -0
- package/src/toast/intl/nb-NO.json +4 -0
- package/src/toast/intl/nl-NL.json +4 -0
- package/src/toast/intl/pl-PL.json +4 -0
- package/src/toast/intl/pt-BR.json +4 -0
- package/src/toast/intl/pt-PT.json +4 -0
- package/src/toast/intl/ro-RO.json +4 -0
- package/src/toast/intl/ru-RU.json +4 -0
- package/src/toast/intl/sk-SK.json +4 -0
- package/src/toast/intl/sl-SI.json +4 -0
- package/src/toast/intl/sr-SP.json +4 -0
- package/src/toast/intl/sv-SE.json +4 -0
- package/src/toast/intl/tr-TR.json +4 -0
- package/src/toast/intl/uk-UA.json +4 -0
- package/src/toast/intl/zh-CN.json +4 -0
- package/src/toast/intl/zh-TW.json +4 -0
- package/src/toggle/createToggle.ts +96 -15
- package/src/tokenfield/createToken.ts +82 -0
- package/src/tokenfield/createTokenField.ts +859 -0
- package/src/tokenfield/index.ts +10 -0
- package/src/toolbar/createToolbar.ts +26 -5
- package/src/tooltip/createPreviewTrigger.ts +301 -0
- package/src/tooltip/createSafeArea.ts +165 -0
- package/src/tooltip/createTooltip.ts +15 -1
- package/src/tooltip/createTooltipTrigger.ts +24 -3
- package/src/tooltip/index.ts +7 -0
- package/src/tooltip/intl/index.ts +76 -0
- package/src/tree/createTree.ts +66 -50
- package/src/tree/createTreeItem.ts +85 -21
- package/src/tree/createTreeSelectionCheckbox.ts +29 -28
- package/src/tree/intl/ar-AE.json +4 -0
- package/src/tree/intl/bg-BG.json +4 -0
- package/src/tree/intl/cs-CZ.json +4 -0
- package/src/tree/intl/da-DK.json +4 -0
- package/src/tree/intl/de-DE.json +4 -0
- package/src/tree/intl/el-GR.json +4 -0
- package/src/tree/intl/en-US.json +4 -0
- package/src/tree/intl/es-ES.json +4 -0
- package/src/tree/intl/et-EE.json +4 -0
- package/src/tree/intl/fi-FI.json +4 -0
- package/src/tree/intl/fr-FR.json +4 -0
- package/src/tree/intl/he-IL.json +4 -0
- package/src/tree/intl/hr-HR.json +4 -0
- package/src/tree/intl/hu-HU.json +4 -0
- package/src/tree/intl/index.ts +123 -0
- package/src/tree/intl/it-IT.json +4 -0
- package/src/tree/intl/ja-JP.json +4 -0
- package/src/tree/intl/ko-KR.json +4 -0
- package/src/tree/intl/lt-LT.json +4 -0
- package/src/tree/intl/lv-LV.json +4 -0
- package/src/tree/intl/nb-NO.json +4 -0
- package/src/tree/intl/nl-NL.json +4 -0
- package/src/tree/intl/pl-PL.json +4 -0
- package/src/tree/intl/pt-BR.json +4 -0
- package/src/tree/intl/pt-PT.json +4 -0
- package/src/tree/intl/ro-RO.json +4 -0
- package/src/tree/intl/ru-RU.json +4 -0
- package/src/tree/intl/sk-SK.json +4 -0
- package/src/tree/intl/sl-SI.json +4 -0
- package/src/tree/intl/sr-SP.json +4 -0
- package/src/tree/intl/sv-SE.json +4 -0
- package/src/tree/intl/tr-TR.json +4 -0
- package/src/tree/intl/uk-UA.json +4 -0
- package/src/tree/intl/zh-CN.json +4 -0
- package/src/tree/intl/zh-TW.json +4 -0
- package/src/tree/types.ts +35 -2
- package/src/utils/ShadowTreeWalker.ts +249 -0
- package/src/utils/animation.ts +106 -85
- package/src/utils/capture.ts +51 -0
- package/src/utils/createDescription.ts +31 -8
- package/src/utils/dom.ts +314 -33
- package/src/utils/domAttrs.ts +84 -0
- package/src/utils/env.ts +2 -0
- package/src/utils/events.ts +39 -3
- package/src/utils/filterDOMProps.ts +34 -2
- package/src/utils/focus.ts +186 -32
- package/src/utils/geometry.ts +15 -1
- package/src/utils/getMetaValue.ts +57 -0
- package/src/utils/getNonce.ts +40 -0
- package/src/utils/globalListeners.ts +16 -3
- package/src/utils/index.ts +14 -0
- package/src/utils/keyboard.ts +15 -1
- package/src/utils/mergeProps.ts +149 -16
- package/src/utils/owner.ts +26 -0
- package/src/utils/platform.ts +15 -1
- package/src/utils/reactivity.ts +2 -0
- package/src/utils/refs.ts +53 -0
- package/src/utils/runAfterTransition.ts +117 -0
- package/src/utils/scrollIntoView.ts +14 -0
- package/src/utils/splitProps.ts +70 -0
- package/src/utils/textSelection.ts +15 -1
- package/src/virtualizer/ScrollView.ts +210 -0
- package/src/virtualizer/index.ts +2 -0
- package/src/virtualizer/utils.ts +100 -0
- package/src/visually-hidden/createVisuallyHidden.ts +20 -4
- package/dist/_chunk/createInteractionModality.js +0 -268
- package/dist/_chunk/createInteractionModality.js.map +0 -1
- package/dist/_chunk/createInteractionModality.jsx +0 -268
- package/dist/_chunk/createInteractionModality.jsx.map +0 -1
- package/dist/_chunk/focus2.js +0 -631
- package/dist/_chunk/focus2.js.map +0 -1
- package/dist/_chunk/focus2.jsx +0 -631
- package/dist/_chunk/focus2.jsx.map +0 -1
- package/dist/_chunk/visually-hidden.js.map +0 -1
- package/dist/_chunk/visually-hidden.jsx.map +0 -1
- package/dist/checkbox/createCheckboxGroupState.d.ts +0 -71
- package/dist/checkbox/createCheckboxGroupState.d.ts.map +0 -1
- package/dist/radio/createRadioGroupState.d.ts +0 -77
- package/dist/radio/createRadioGroupState.d.ts.map +0 -1
- package/dist/toggle/createToggleState.d.ts +0 -34
- package/dist/toggle/createToggleState.d.ts.map +0 -1
- package/src/checkbox/createCheckboxGroupState.ts +0 -174
- package/src/radio/createRadioGroupState.ts +0 -177
- package/src/toggle/createToggleState.ts +0 -86
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FocusScope.js","names":["createContext","useContext","createEffect","onCleanup","JSX","Accessor","ParentComponent","createSignal","onMount","isServer","getOwnerDocument","isFocusable","isTabbable","getFocusableTreeWalker","getActiveElement","focusSafely","FocusScopeProps","children","Element","contain","restoreFocus","autoFocus","FocusManagerOptions","from","tabbable","wrap","accept","node","FocusManager","focusNext","opts","HTMLElement","focusPrevious","focusFirst","focusLast","FocusScopeContextValue","focusManager","scopeRef","lastFocusable","walker","TreeWalker","next","last","Node","lastChild","createFocusManager","ref","defaultOptions","root","contains","currentNode","nextNode","previousNode","lastNode","FocusScopeContext","useFocusManager","getFocusableElements","scope","elements","filter","scopeElement","push","descendants","querySelectorAll","i","length","el","isElementInScope","element","some","ScopeRef","FocusScopeTreeNode","parent","Set","FocusScopeTree","fastMap","Map","constructor","set","getTreeNode","get","addTreeNode","parentNode","add","removeTreeNode","delete","child","traverse","Generator","focusScopeTree","isElementInChildScope","closest","FocusScope","props","_$memo","startRef","HTMLSpanElement","endRef","scopeElements","setScopeElements","parentScopeRef","nodeToRestore","getRestorableElement","doc","Document","body","documentElement","current","currentIndex","indexOf","nextIndex","nextElement","prevIndex","prevElement","lastElement","nodes","nextSibling","nodeType","ELEMENT_NODE","scopeDoc","document","scopeActive","topActive","activeElement","HTMLIFrameElement","contentDocument","focusedNode","onKeyDown","e","KeyboardEvent","key","altKey","ctrlKey","metaKey","firstElement","shiftKey","preventDefault","onFocusIn","FocusEvent","target","restoreRaf","onFocusOut","win","defaultView","window","cancelAnimationFrame","requestAnimationFrame","addEventListener","removeEventListener","focus","_$createComponent","Provider","value","_el$","_$getNextElement","_tmpl$","_ref$","_$use","_el$2","_tmpl$2","_ref$2"],"sources":["../../src/focus/FocusScope.tsx"],"sourcesContent":["/**\n * FocusScope component for managing focus containment, restoration, and auto-focus.\n * Based on @react-aria/focus FocusScope.\n */\n\nimport {\n createContext,\n useContext,\n createEffect,\n onCleanup,\n type JSX,\n type Accessor,\n type ParentComponent,\n createSignal,\n onMount,\n} from \"solid-js\";\nimport { isServer } from \"solid-js/web\";\nimport {\n getOwnerDocument,\n isFocusable,\n isTabbable,\n getFocusableTreeWalker,\n getActiveElement,\n} from \"../utils\";\nimport { focusSafely } from \"../utils/focus\";\n\nexport interface FocusScopeProps {\n /** The contents of the focus scope. */\n children: JSX.Element;\n /**\n * Whether to contain focus inside the scope, so users cannot\n * move focus outside, for example in a modal dialog.\n */\n contain?: boolean;\n /**\n * Whether to restore focus back to the element that was focused\n * when the focus scope mounted, after the focus scope unmounts.\n */\n restoreFocus?: boolean;\n /** Whether to auto focus the first focusable element in the focus scope on mount. */\n autoFocus?: boolean;\n}\n\nexport interface FocusManagerOptions {\n /** The element to start searching from. The currently focused element by default. */\n from?: Element;\n /** Whether to only include tabbable elements, or all focusable elements. */\n tabbable?: boolean;\n /** Whether focus should wrap around when it reaches the end of the scope. */\n wrap?: boolean;\n /** A callback that determines whether the given element is focused. */\n accept?: (node: Element) => boolean;\n}\n\nexport interface FocusManager {\n /** Moves focus to the next focusable or tabbable element in the focus scope. */\n focusNext(opts?: FocusManagerOptions): HTMLElement | null;\n /** Moves focus to the previous focusable or tabbable element in the focus scope. */\n focusPrevious(opts?: FocusManagerOptions): HTMLElement | null;\n /** Moves focus to the first focusable or tabbable element in the focus scope. */\n focusFirst(opts?: FocusManagerOptions): HTMLElement | null;\n /** Moves focus to the last focusable or tabbable element in the focus scope. */\n focusLast(opts?: FocusManagerOptions): HTMLElement | null;\n}\n\ninterface FocusScopeContextValue {\n focusManager: FocusManager;\n scopeRef: Accessor<Element[]>;\n}\n\n/**\n * Walks a TreeWalker to its final (deepest-last) node, mirroring the `last`\n * helper in @react-aria/focus.\n */\nfunction lastFocusable(walker: TreeWalker): HTMLElement | null {\n let next: HTMLElement | undefined;\n let last: Node | null;\n do {\n last = walker.lastChild();\n if (last) {\n next = last as HTMLElement;\n }\n } while (last);\n return next ?? null;\n}\n\n/**\n * Creates a FocusManager rooted at the given ref element, independent of any\n * FocusScope. Mirrors @react-aria/focus's `createFocusManager`: it walks the\n * focusable tree with `getFocusableTreeWalker` so segment/spinbutton navigation\n * inside a date field group behaves exactly like upstream.\n */\nexport function createFocusManager(\n ref: () => HTMLElement | null | undefined,\n defaultOptions: FocusManagerOptions = {},\n): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n const root = ref();\n if (!root) return null;\n const {\n from,\n tabbable = defaultOptions.tabbable,\n wrap = defaultOptions.wrap,\n accept = defaultOptions.accept,\n } = opts;\n const node = from || getActiveElement(getOwnerDocument(root));\n const walker = getFocusableTreeWalker(root, { tabbable, accept });\n if (node && root.contains(node)) {\n walker.currentNode = node;\n }\n let nextNode = walker.nextNode() as HTMLElement | null;\n if (!nextNode && wrap) {\n walker.currentNode = root;\n nextNode = walker.nextNode() as HTMLElement | null;\n }\n if (nextNode) {\n focusSafely(nextNode);\n }\n return nextNode;\n },\n\n focusPrevious(opts: FocusManagerOptions = {}) {\n const root = ref();\n if (!root) return null;\n const {\n from,\n tabbable = defaultOptions.tabbable,\n wrap = defaultOptions.wrap,\n accept = defaultOptions.accept,\n } = opts;\n const node = from || getActiveElement(getOwnerDocument(root));\n const walker = getFocusableTreeWalker(root, { tabbable, accept });\n if (node && root.contains(node)) {\n walker.currentNode = node;\n } else {\n const next = lastFocusable(walker);\n if (next) {\n focusSafely(next);\n }\n return next;\n }\n let previousNode = walker.previousNode() as HTMLElement | null;\n if (!previousNode && wrap) {\n walker.currentNode = root;\n const lastNode = lastFocusable(walker);\n if (!lastNode) {\n return null;\n }\n previousNode = lastNode;\n }\n if (previousNode) {\n focusSafely(previousNode);\n }\n return previousNode;\n },\n\n focusFirst(opts: FocusManagerOptions = {}) {\n const root = ref();\n if (!root) return null;\n const { tabbable = defaultOptions.tabbable, accept = defaultOptions.accept } = opts;\n const walker = getFocusableTreeWalker(root, { tabbable, accept });\n const nextNode = walker.nextNode() as HTMLElement | null;\n if (nextNode) {\n focusSafely(nextNode);\n }\n return nextNode;\n },\n\n focusLast(opts: FocusManagerOptions = {}) {\n const root = ref();\n if (!root) return null;\n const { tabbable = defaultOptions.tabbable, accept = defaultOptions.accept } = opts;\n const walker = getFocusableTreeWalker(root, { tabbable, accept });\n const next = lastFocusable(walker);\n if (next) {\n focusSafely(next);\n }\n return next;\n },\n };\n}\n\nconst FocusScopeContext = createContext<FocusScopeContextValue | null>(null);\n\n/**\n * Returns a FocusManager interface for the parent FocusScope.\n * A FocusManager can be used to programmatically move focus within\n * a FocusScope, e.g. in response to user events like keyboard navigation.\n */\nexport function useFocusManager(): FocusManager | undefined {\n return useContext(FocusScopeContext)?.focusManager;\n}\n\n/**\n * Gets all focusable elements within a scope.\n */\nfunction getFocusableElements(scope: Element[], tabbable = false): HTMLElement[] {\n const elements: HTMLElement[] = [];\n const filter = tabbable ? isTabbable : isFocusable;\n\n for (const scopeElement of scope) {\n // Check the element itself\n if (filter(scopeElement)) {\n elements.push(scopeElement as HTMLElement);\n }\n\n // Check all descendants\n const descendants = scopeElement.querySelectorAll(\"*\");\n for (let i = 0; i < descendants.length; i++) {\n const el = descendants[i];\n if (filter(el)) {\n elements.push(el as HTMLElement);\n }\n }\n }\n\n return elements;\n}\n\n/**\n * Checks if an element is within a scope.\n */\nfunction isElementInScope(element: Element | null, scope: Element[]): boolean {\n if (!element) return false;\n return scope.some((node) => node.contains(element));\n}\n\n/**\n * A scope is identified by its (stable) scope-elements accessor; `null` is the\n * tree root. Mirrors @react-aria/focus's `ScopeRef`.\n */\ntype ScopeRef = Accessor<Element[]> | null;\n\ninterface FocusScopeTreeNode {\n scopeRef: ScopeRef;\n parent: FocusScopeTreeNode | null;\n children: Set<FocusScopeTreeNode>;\n}\n\n/**\n * A registry of the live FocusScopes and their parent/child relationships,\n * mirroring @react-aria/focus's `focusScopeTree`. The DOM tree alone can't\n * express scope nesting because a child scope (e.g. a menu opened from inside a\n * modal popover) is rendered in a portal, outside its parent scope's subtree.\n * The tree records that nesting so containment can recognize a portaled\n * descendant scope as \"inside\".\n */\nclass FocusScopeTree {\n root: FocusScopeTreeNode;\n private fastMap = new Map<ScopeRef, FocusScopeTreeNode>();\n\n constructor() {\n this.root = { scopeRef: null, parent: null, children: new Set() };\n this.fastMap.set(null, this.root);\n }\n\n getTreeNode(scopeRef: ScopeRef): FocusScopeTreeNode | undefined {\n return this.fastMap.get(scopeRef);\n }\n\n addTreeNode(scopeRef: ScopeRef, parent: ScopeRef): void {\n const parentNode = this.fastMap.get(parent) ?? this.root;\n const node: FocusScopeTreeNode = { scopeRef, parent: parentNode, children: new Set() };\n parentNode.children.add(node);\n this.fastMap.set(scopeRef, node);\n }\n\n removeTreeNode(scopeRef: ScopeRef): void {\n // never remove the root\n if (scopeRef === null) return;\n const node = this.fastMap.get(scopeRef);\n if (!node) return;\n const parentNode = node.parent;\n if (parentNode) {\n parentNode.children.delete(node);\n // Re-parent any children so a mid-tree unmount doesn't orphan descendants.\n for (const child of node.children) {\n child.parent = parentNode;\n parentNode.children.add(child);\n }\n }\n this.fastMap.delete(scopeRef);\n }\n\n // Pre-order depth-first; skips the null-scoped root, like upstream.\n *traverse(node: FocusScopeTreeNode = this.root): Generator<FocusScopeTreeNode> {\n if (node.scopeRef != null) {\n yield node;\n }\n for (const child of node.children) {\n yield* this.traverse(child);\n }\n }\n}\n\nconst focusScopeTree = new FocusScopeTree();\n\n/**\n * Whether the element is inside `scope` or any of its descendant scopes.\n *\n * `isElementInScope`'s `node.contains` already covers descendant scopes that\n * are DOM children, but not those rendered in a portal. Walking the scope\n * subtree closes that gap so focus moving into a portaled child scope still\n * counts as \"inside\". Mirrors @react-aria/focus's `isElementInChildScope`.\n */\nfunction isElementInChildScope(element: Element, scope: ScopeRef = null): boolean {\n // Always allow focus to move into a top-layer element (e.g. toasts).\n if (element instanceof Element && element.closest(\"[data-react-aria-top-layer]\")) {\n return true;\n }\n\n for (const node of focusScopeTree.traverse(focusScopeTree.getTreeNode(scope))) {\n if (node.scopeRef && isElementInScope(element, node.scopeRef())) {\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * A FocusScope manages focus for its descendants. It supports containing focus inside\n * the scope, restoring focus to the previously focused element on unmount, and auto\n * focusing children on mount. It also acts as a container for a programmatic focus\n * management interface that can be used to move focus forward and back in response\n * to user events.\n */\nexport const FocusScope: ParentComponent<FocusScopeProps> = (props) => {\n if (isServer) {\n return <>{props.children}</>;\n }\n\n let startRef: HTMLSpanElement | undefined;\n let endRef: HTMLSpanElement | undefined;\n const [scopeElements, setScopeElements] = createSignal<Element[]>([]);\n\n // The nearest enclosing FocusScope (through context, which Solid propagates\n // across portals) is this scope's parent in the focus-scope tree. Read it\n // before we shadow the context with our own provider below.\n const parentScopeRef = useContext(FocusScopeContext)?.scopeRef ?? null;\n\n // Store the element that was focused when the scope mounted\n let nodeToRestore: Element | null = null;\n\n const getRestorableElement = (element: Element | null, doc: Document): Element | null => {\n if (!element || element === doc.body || element === doc.documentElement) {\n return null;\n }\n return element;\n };\n\n // Create focus manager\n const focusManager: FocusManager = {\n focusNext(opts = {}) {\n const scope = scopeElements();\n if (scope.length === 0) return null;\n\n const { from, tabbable = true, wrap = false, accept } = opts;\n const elements = getFocusableElements(scope, tabbable).filter((el) => !accept || accept(el));\n const doc = getOwnerDocument(scope[0]);\n const current = from || getActiveElement(doc);\n\n if (!current || elements.length === 0) return null;\n\n const currentIndex = elements.indexOf(current as HTMLElement);\n let nextIndex = currentIndex + 1;\n\n if (nextIndex >= elements.length) {\n if (wrap) {\n nextIndex = 0;\n } else {\n return null;\n }\n }\n\n const nextElement = elements[nextIndex];\n if (nextElement) {\n focusSafely(nextElement);\n return nextElement;\n }\n\n return null;\n },\n\n focusPrevious(opts = {}) {\n const scope = scopeElements();\n if (scope.length === 0) return null;\n\n const { from, tabbable = true, wrap = false, accept } = opts;\n const elements = getFocusableElements(scope, tabbable).filter((el) => !accept || accept(el));\n const doc = getOwnerDocument(scope[0]);\n const current = from || getActiveElement(doc);\n\n if (!current || elements.length === 0) return null;\n\n const currentIndex = elements.indexOf(current as HTMLElement);\n let prevIndex = currentIndex - 1;\n\n if (prevIndex < 0) {\n if (wrap) {\n prevIndex = elements.length - 1;\n } else {\n return null;\n }\n }\n\n const prevElement = elements[prevIndex];\n if (prevElement) {\n focusSafely(prevElement);\n return prevElement;\n }\n\n return null;\n },\n\n focusFirst(opts = {}) {\n const scope = scopeElements();\n if (scope.length === 0) return null;\n\n const { tabbable = true, accept } = opts;\n const elements = getFocusableElements(scope, tabbable).filter((el) => !accept || accept(el));\n\n if (elements.length > 0) {\n focusSafely(elements[0]);\n return elements[0];\n }\n\n return null;\n },\n\n focusLast(opts = {}) {\n const scope = scopeElements();\n if (scope.length === 0) return null;\n\n const { tabbable = true, accept } = opts;\n const elements = getFocusableElements(scope, tabbable).filter((el) => !accept || accept(el));\n\n if (elements.length > 0) {\n const lastElement = elements[elements.length - 1];\n focusSafely(lastElement);\n return lastElement;\n }\n\n return null;\n },\n };\n\n // Collect scope elements after render\n onMount(() => {\n if (!startRef || !endRef) return;\n\n const nodes: Element[] = [];\n let node = startRef.nextSibling;\n while (node && node !== endRef) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n nodes.push(node as Element);\n }\n node = node.nextSibling;\n }\n setScopeElements(nodes);\n });\n\n // Register this scope in the focus-scope tree so containment can recognize a\n // portaled descendant scope as \"inside\" it. The scope-elements accessor is a\n // stable identity, so it works as the tree key even before it's populated.\n onMount(() => {\n focusScopeTree.addTreeNode(scopeElements, parentScopeRef);\n });\n onCleanup(() => {\n focusScopeTree.removeTreeNode(scopeElements);\n });\n\n // Save the currently focused element for restoration (must happen before autoFocus/contain effects run).\n onMount(() => {\n if (!props.restoreFocus) return;\n\n // Focus can be in the main document, or inside this iframe's document.\n const scopeDoc = startRef ? getOwnerDocument(startRef) : document;\n const scopeActive = getActiveElement(scopeDoc);\n const topActive = getActiveElement(document);\n\n // If the scope is in an iframe and that iframe is currently focused, prefer the iframe document's active element.\n if (\n scopeDoc !== document &&\n document.activeElement instanceof HTMLIFrameElement &&\n document.activeElement.contentDocument === scopeDoc &&\n scopeActive &&\n scopeActive !== scopeDoc.body\n ) {\n nodeToRestore = getRestorableElement(scopeActive, scopeDoc);\n return;\n }\n\n nodeToRestore = getRestorableElement(topActive, document);\n });\n\n // Auto-focus first element\n createEffect(() => {\n if (!props.autoFocus) return;\n\n const scope = scopeElements();\n if (scope.length === 0) return;\n\n const doc = getOwnerDocument(scope[0]);\n const activeElement = getActiveElement(doc);\n\n // Only auto-focus if focus is not already inside the scope\n if (!isElementInScope(activeElement, scope)) {\n focusManager.focusFirst();\n }\n });\n\n // Focus containment\n createEffect(() => {\n if (!props.contain) return;\n\n const scope = scopeElements();\n if (scope.length === 0) return;\n\n const doc = getOwnerDocument(scope[0]);\n let focusedNode: Element | null = null;\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== \"Tab\" || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n\n const scope = scopeElements();\n const activeElement = getActiveElement(doc);\n if (!isElementInScope(activeElement, scope)) {\n return;\n }\n\n const elements = getFocusableElements(scope, true);\n if (elements.length === 0) return;\n\n const firstElement = elements[0];\n const lastElement = elements[elements.length - 1];\n\n if (e.shiftKey && activeElement === firstElement) {\n e.preventDefault();\n focusSafely(lastElement);\n } else if (!e.shiftKey && activeElement === lastElement) {\n e.preventDefault();\n focusSafely(firstElement);\n }\n };\n\n const onFocusIn = (e: FocusEvent) => {\n const scope = scopeElements();\n const target = e.target as Element;\n\n if (isElementInScope(target, scope)) {\n focusedNode = target;\n } else if (isElementInChildScope(target, scopeElements)) {\n // Focus moved into a descendant scope — e.g. a menu opened from inside\n // this modal popover, rendered in a portal outside this scope's DOM\n // subtree. Track it but don't pull focus back, which would tear the\n // nested overlay down.\n focusedNode = target;\n } else if (focusedNode) {\n // Focus escaped the scope, bring it back\n focusSafely(focusedNode as HTMLElement);\n } else {\n // No previous focus, focus first element\n focusManager.focusFirst();\n }\n };\n\n let restoreRaf: number | null = null;\n\n const onFocusOut = (e: FocusEvent) => {\n const target = e.target as Element;\n if (!isElementInScope(target, scopeElements())) return;\n\n // Focus left an element inside the scope. Wait a frame (like upstream's\n // onBlur) so a synchronous refocus elsewhere can settle; if focus ended\n // up outside every scope (e.g. blur() to body), pull it back.\n const win = doc.defaultView ?? window;\n if (restoreRaf != null) win.cancelAnimationFrame(restoreRaf);\n restoreRaf = win.requestAnimationFrame(() => {\n restoreRaf = null;\n const scope = scopeElements();\n const activeElement = getActiveElement(doc);\n if (\n activeElement &&\n (isElementInScope(activeElement, scope) ||\n isElementInChildScope(activeElement, scopeElements))\n ) {\n return;\n }\n\n if (doc.body.contains(target)) {\n focusedNode = target;\n focusSafely(target as HTMLElement);\n } else {\n focusManager.focusFirst();\n }\n });\n };\n\n doc.addEventListener(\"keydown\", onKeyDown, true);\n doc.addEventListener(\"focusin\", onFocusIn, true);\n doc.addEventListener(\"focusout\", onFocusOut, true);\n\n onCleanup(() => {\n doc.removeEventListener(\"keydown\", onKeyDown, true);\n doc.removeEventListener(\"focusin\", onFocusIn, true);\n doc.removeEventListener(\"focusout\", onFocusOut, true);\n if (restoreRaf != null) {\n (doc.defaultView ?? window).cancelAnimationFrame(restoreRaf);\n }\n });\n });\n\n // Restore focus on unmount\n onCleanup(() => {\n if (props.restoreFocus && nodeToRestore && (nodeToRestore as HTMLElement).focus) {\n const doc = getOwnerDocument(nodeToRestore as Element);\n const win = doc.defaultView ?? window;\n\n // Use requestAnimationFrame to ensure the element is still in the DOM\n win.requestAnimationFrame(() => {\n if (nodeToRestore && doc.body.contains(nodeToRestore as Node)) {\n (nodeToRestore as HTMLElement).focus();\n }\n });\n }\n });\n\n return (\n <FocusScopeContext.Provider value={{ focusManager, scopeRef: scopeElements }}>\n <span data-focus-scope-start hidden ref={startRef} />\n {props.children}\n <span data-focus-scope-end hidden ref={endRef} />\n </FocusScopeContext.Provider>\n );\n};\n\nexport default FocusScope;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FocusScope.js","names":["<FocusScopeContext value={{ focusManager, scopeRef: scopeElements }}>\n <span data-focus-scope-start hidden ref={(el) => setStartEl(el ?? null)} />\n {props.children}\n <span data-focus-scope-end hidden ref={(el) => setEndEl(el ?? null)} />\n </FocusScopeContext>","value={{ focusManager, scopeRef: scopeElements }}","ref={(el) => setStartEl(el ?? null)}","props.children","ref={(el) => setEndEl(el ?? null)}"],"sources":["../../src/focus/FocusScope.tsx"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/focus/FocusScope.tsx\n\n/**\n * FocusScope component for managing focus containment, restoration, and auto-focus.\n * Ported from packages/react-aria/src/focus/FocusScope.tsx.\n */\n\nimport {\n getOwnerDocument,\n isFocusable,\n isTabbable,\n getFocusableTreeWalker,\n getActiveElement,\n useContextOptional,\n onOwnedCleanup,\n} from \"../utils\";\nimport { createContext, createEffect, createSignal, onSettled } from \"solid-js\";\nimport type { Accessor, ParentComponent } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { isServer } from \"@solidjs/web\";\nimport { focusSafely, focusWithoutScrolling, runAfterPaint } from \"../utils/focus\";\n\nconst RESTORE_FOCUS_EVENT = \"react-aria-focus-scope-restore\";\n\nexport interface FocusScopeProps {\n /** The contents of the focus scope. */\n children: JSX.Element;\n /**\n * Whether to contain focus inside the scope, so users cannot\n * move focus outside, for example in a modal dialog.\n */\n contain?: boolean;\n /**\n * Whether to restore focus back to the element that was focused\n * when the focus scope mounted, after the focus scope unmounts.\n */\n restoreFocus?: boolean;\n /** Whether to auto focus the first focusable element in the focus scope on mount. */\n autoFocus?: boolean;\n}\n\nexport interface FocusManagerOptions {\n /** The element to start searching from. The currently focused element by default. */\n from?: Element;\n /** Whether to only include tabbable elements, or all focusable elements. */\n tabbable?: boolean;\n /** Whether focus should wrap around when it reaches the end of the scope. */\n wrap?: boolean;\n /** A callback that determines whether the given element is focused. */\n accept?: (node: Element) => boolean;\n}\n\nexport interface FocusManager {\n /** Moves focus to the next focusable or tabbable element in the focus scope. */\n focusNext(opts?: FocusManagerOptions): HTMLElement | null;\n /** Moves focus to the previous focusable or tabbable element in the focus scope. */\n focusPrevious(opts?: FocusManagerOptions): HTMLElement | null;\n /** Moves focus to the first focusable or tabbable element in the focus scope. */\n focusFirst(opts?: FocusManagerOptions): HTMLElement | null;\n /** Moves focus to the last focusable or tabbable element in the focus scope. */\n focusLast(opts?: FocusManagerOptions): HTMLElement | null;\n}\n\ninterface FocusScopeContextValue {\n focusManager: FocusManager;\n scopeRef: Accessor<Element[]>;\n}\n\n/**\n * Walks a TreeWalker to its final (deepest-last) node, mirroring the `last`\n * helper in @react-aria/focus.\n */\nfunction lastFocusable(walker: TreeWalker): HTMLElement | null {\n let next: HTMLElement | undefined;\n let last: Node | null;\n do {\n last = walker.lastChild();\n if (last) {\n next = last as HTMLElement;\n }\n } while (last);\n return next ?? null;\n}\n\n/**\n * Creates a FocusManager rooted at the given ref element, independent of any\n * FocusScope. Mirrors @react-aria/focus's `createFocusManager`: it walks the\n * focusable tree with `getFocusableTreeWalker` so segment/spinbutton navigation\n * inside a date field group behaves exactly like upstream.\n */\nexport function createFocusManager(\n ref: () => HTMLElement | null | undefined,\n defaultOptions: FocusManagerOptions = {},\n): FocusManager {\n return {\n focusNext(opts: FocusManagerOptions = {}) {\n const root = ref();\n if (!root) return null;\n const {\n from,\n tabbable = defaultOptions.tabbable,\n wrap = defaultOptions.wrap,\n accept = defaultOptions.accept,\n } = opts;\n const node = from || getActiveElement(getOwnerDocument(root));\n const walker = getFocusableTreeWalker(root, { tabbable, accept });\n if (node && root.contains(node)) {\n walker.currentNode = node;\n }\n let nextNode = walker.nextNode() as HTMLElement | null;\n if (!nextNode && wrap) {\n walker.currentNode = root;\n nextNode = walker.nextNode() as HTMLElement | null;\n }\n if (nextNode) {\n focusSafely(nextNode);\n }\n return nextNode;\n },\n\n focusPrevious(opts: FocusManagerOptions = {}) {\n const root = ref();\n if (!root) return null;\n const {\n from,\n tabbable = defaultOptions.tabbable,\n wrap = defaultOptions.wrap,\n accept = defaultOptions.accept,\n } = opts;\n const node = from || getActiveElement(getOwnerDocument(root));\n const walker = getFocusableTreeWalker(root, { tabbable, accept });\n if (node && root.contains(node)) {\n walker.currentNode = node;\n } else {\n const next = lastFocusable(walker);\n if (next) {\n focusSafely(next);\n }\n return next;\n }\n let previousNode = walker.previousNode() as HTMLElement | null;\n if (!previousNode && wrap) {\n walker.currentNode = root;\n const lastNode = lastFocusable(walker);\n if (!lastNode) {\n return null;\n }\n previousNode = lastNode;\n }\n if (previousNode) {\n focusSafely(previousNode);\n }\n return previousNode;\n },\n\n focusFirst(opts: FocusManagerOptions = {}) {\n const root = ref();\n if (!root) return null;\n const { tabbable = defaultOptions.tabbable, accept = defaultOptions.accept } = opts;\n const walker = getFocusableTreeWalker(root, { tabbable, accept });\n const nextNode = walker.nextNode() as HTMLElement | null;\n if (nextNode) {\n focusSafely(nextNode);\n }\n return nextNode;\n },\n\n focusLast(opts: FocusManagerOptions = {}) {\n const root = ref();\n if (!root) return null;\n const { tabbable = defaultOptions.tabbable, accept = defaultOptions.accept } = opts;\n const walker = getFocusableTreeWalker(root, { tabbable, accept });\n const next = lastFocusable(walker);\n if (next) {\n focusSafely(next);\n }\n return next;\n },\n };\n}\n\nconst FocusScopeContext = createContext<FocusScopeContextValue | null>(null);\n\n/**\n * Returns a FocusManager interface for the parent FocusScope.\n * A FocusManager can be used to programmatically move focus within\n * a FocusScope, e.g. in response to user events like keyboard navigation.\n */\nexport function useFocusManager(): FocusManager | undefined {\n return useContextOptional(FocusScopeContext)?.focusManager;\n}\n\n/**\n * Gets all focusable elements within a scope.\n */\nfunction getFocusableElements(scope: Element[], tabbable = false): HTMLElement[] {\n const elements: HTMLElement[] = [];\n const filter = tabbable ? isTabbable : isFocusable;\n\n for (const scopeElement of scope) {\n // Check the element itself\n if (filter(scopeElement)) {\n elements.push(scopeElement as HTMLElement);\n }\n\n // Check all descendants\n const descendants = scopeElement.querySelectorAll(\"*\");\n for (let i = 0; i < descendants.length; i++) {\n const el = descendants[i];\n if (filter(el)) {\n elements.push(el as HTMLElement);\n }\n }\n }\n\n return elements;\n}\n\n/**\n * Checks if an element is within a scope.\n */\nfunction isElementInScope(element: Element | null, scope: Element[]): boolean {\n if (!element) return false;\n return scope.some((node) => node.contains(element));\n}\n\n/**\n * Auto-focus target for a scope. Mirrors @react-aria/focus `getFirstInScope`:\n * prefer a tabbable node, then fall back to the first focusable node (e.g. a\n * `tabIndex={-1}` overlay root) when nothing is tabbable yet.\n */\nfunction firstInScope(scope: Element[]): HTMLElement | null {\n return getFocusableElements(scope, true)[0] ?? getFocusableElements(scope, false)[0] ?? null;\n}\n\nfunction focusFirstInScope(scope: Element[]): void {\n const target = firstInScope(scope);\n if (target) {\n focusSafely(target);\n }\n}\n\nfunction restoreFocusToElement(node: HTMLElement): void {\n // Dispatch a custom event that parent elements can intercept to customize focus restoration.\n // Restoration must be synchronous: `focusSafely` defers under virtual modality\n // (`runAfterTransition`) and the leaving scope is gone by then.\n if (\n node.dispatchEvent(new CustomEvent(RESTORE_FOCUS_EVENT, { bubbles: true, cancelable: true }))\n ) {\n focusWithoutScrolling(node);\n }\n}\n\n/**\n * Collects the element siblings between FocusScope sentinels. React's\n * FocusScope re-runs this in `useLayoutEffect` on every render; Solid only\n * re-runs the component body once, so callers must re-collect when the DOM\n * between the sentinels changes (portaled overlay children, delayed collections).\n */\nfunction collectScopeElements(\n start: HTMLElement | null | undefined,\n end: HTMLElement | null | undefined,\n): Element[] {\n if (!start || !end) {\n return [];\n }\n\n const nodes: Element[] = [];\n let node: ChildNode | null = start.nextSibling;\n while (node && node !== end) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n nodes.push(node as Element);\n }\n node = node.nextSibling;\n }\n return nodes;\n}\n\nfunction sameElements(a: Element[], b: Element[]): boolean {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * A scope is identified by its (stable) scope-elements accessor; `null` is the\n * tree root. Mirrors @react-aria/focus's `ScopeRef`.\n */\ntype ScopeRef = Accessor<Element[]> | null;\n\ninterface FocusScopeTreeNode {\n scopeRef: ScopeRef;\n parent: FocusScopeTreeNode | null;\n children: Set<FocusScopeTreeNode>;\n nodeToRestore?: Element;\n}\n\n/**\n * A registry of the live FocusScopes and their parent/child relationships,\n * mirroring @react-aria/focus's `focusScopeTree`. The DOM tree alone can't\n * express scope nesting because a child scope (e.g. a menu opened from inside a\n * modal popover) is rendered in a portal, outside its parent scope's subtree.\n * The tree records that nesting so containment can recognize a portaled\n * descendant scope as \"inside\".\n */\nclass FocusScopeTree {\n root: FocusScopeTreeNode;\n private fastMap = new Map<ScopeRef, FocusScopeTreeNode>();\n\n constructor() {\n this.root = { scopeRef: null, parent: null, children: new Set() };\n this.fastMap.set(null, this.root);\n }\n\n getTreeNode(scopeRef: ScopeRef): FocusScopeTreeNode | undefined {\n return this.fastMap.get(scopeRef);\n }\n\n addTreeNode(scopeRef: ScopeRef, parent: ScopeRef, nodeToRestore?: Element): void {\n const parentNode = this.fastMap.get(parent) ?? this.root;\n const node: FocusScopeTreeNode = { scopeRef, parent: parentNode, children: new Set() };\n if (nodeToRestore) {\n node.nodeToRestore = nodeToRestore;\n }\n parentNode.children.add(node);\n this.fastMap.set(scopeRef, node);\n }\n\n removeTreeNode(scopeRef: ScopeRef): void {\n // never remove the root\n if (scopeRef === null) return;\n const node = this.fastMap.get(scopeRef);\n if (!node) return;\n const parentNode = node.parent;\n if (parentNode) {\n parentNode.children.delete(node);\n // Re-parent any children so a mid-tree unmount doesn't orphan descendants.\n for (const child of node.children) {\n child.parent = parentNode;\n parentNode.children.add(child);\n }\n }\n this.fastMap.delete(scopeRef);\n }\n\n clone(): FocusScopeTree {\n const newTree = new FocusScopeTree();\n for (const node of this.traverse()) {\n newTree.addTreeNode(node.scopeRef, node.parent?.scopeRef ?? null, node.nodeToRestore);\n }\n return newTree;\n }\n\n // Pre-order depth-first; skips the null-scoped root, like upstream.\n *traverse(node: FocusScopeTreeNode = this.root): Generator<FocusScopeTreeNode> {\n if (node.scopeRef != null) {\n yield node;\n }\n for (const child of node.children) {\n yield* this.traverse(child);\n }\n }\n}\n\nconst focusScopeTree = new FocusScopeTree();\n\n/**\n * The scope that currently holds focus. Mirrors @react-aria/focus's\n * module-level `activeScope`: focus moving into a child scope makes the child\n * active, moving out to an ancestor does not.\n */\nlet activeScope: ScopeRef = null;\n\n/** Whether `ancestor` is above `scope` in the focus-scope tree. */\nfunction isAncestorScope(ancestor: ScopeRef, scope: ScopeRef): boolean {\n let parent = focusScopeTree.getTreeNode(scope)?.parent;\n while (parent) {\n if (parent.scopeRef === ancestor) {\n return true;\n }\n parent = parent.parent;\n }\n return false;\n}\n\n/**\n * Whether the element is inside `scope` or any of its descendant scopes.\n *\n * `isElementInScope`'s `node.contains` already covers descendant scopes that\n * are DOM children, but not those rendered in a portal. Walking the scope\n * subtree closes that gap so focus moving into a portaled child scope still\n * counts as \"inside\". Mirrors @react-aria/focus's `isElementInChildScope`.\n */\nfunction isElementInChildScope(element: Element, scope: ScopeRef = null): boolean {\n // Always allow focus to move into a top-layer element (e.g. toasts). The\n // attribute is the one `createToastRegion` sets; upstream's name is\n // `data-react-aria-top-layer`.\n if (element instanceof Element && element.closest(\"[data-solidaria-top-layer]\")) {\n return true;\n }\n\n for (const node of focusScopeTree.traverse(focusScopeTree.getTreeNode(scope))) {\n if (node.scopeRef && isElementInScope(element, node.scopeRef())) {\n return true;\n }\n }\n\n return false;\n}\n\n/** Whether the element is inside any registered focus scope. */\nfunction isElementInAnyScope(element: Element): boolean {\n return isElementInChildScope(element);\n}\n\n/**\n * Whether the element is inside the active scope or any of its descendant\n * scopes. `createOverlay` uses it to leave an overlay open when focus moves\n * into a child scope (a menu inside a dialog). Mirrors @react-aria/focus's\n * `isElementInChildOfActiveScope`.\n */\nexport function isElementInChildOfActiveScope(element: Element): boolean {\n return isElementInChildScope(element, activeScope);\n}\n\n/**\n * A FocusScope manages focus for its descendants. It supports containing focus inside\n * the scope, restoring focus to the previously focused element on unmount, and auto\n * focusing children on mount. It also acts as a container for a programmatic focus\n * management interface that can be used to move focus forward and back in response\n * to user events.\n */\nexport const FocusScope: ParentComponent<FocusScopeProps> = (props) => {\n // Keep the provider, sentinels and lifecycle owners symmetric during SSR.\n // Server effects reserve their slots without running browser callbacks.\n const [startEl, setStartEl] = createSignal<HTMLSpanElement | null>(null, { ownedWrite: true });\n const [endEl, setEndEl] = createSignal<HTMLSpanElement | null>(null, { ownedWrite: true });\n const [scopeElements, setScopeElements] = createSignal<Element[]>([], { ownedWrite: true });\n\n const syncScopeElements = () => {\n const next = collectScopeElements(startEl(), endEl());\n if (!sameElements(next, scopeElements())) {\n setScopeElements(next);\n }\n };\n\n // The nearest enclosing FocusScope (through context, which Solid propagates\n // across portals) is this scope's parent in the focus-scope tree. Read it\n // before we shadow the context with our own provider below.\n const parentScopeRef = useContextOptional(FocusScopeContext)?.scopeRef ?? null;\n\n // Store the element that was focused when the scope mounted. Capture at\n // setup — before autoFocus/contain effects — so we don't save a child of\n // this scope after focus has already moved inside.\n let nodeToRestore: Element | null = null;\n\n const getRestorableElement = (element: Element | null, doc: Document): Element | null => {\n if (!element || element === doc.body || element === doc.documentElement) {\n return null;\n }\n return element;\n };\n\n if (props.restoreFocus && !isServer) {\n nodeToRestore = getRestorableElement(getActiveElement(document), document);\n }\n\n // Create focus manager\n const focusManager: FocusManager = {\n focusNext(opts = {}) {\n const scope = scopeElements();\n if (scope.length === 0) return null;\n\n const { from, tabbable = true, wrap = false, accept } = opts;\n const elements = getFocusableElements(scope, tabbable).filter((el) => !accept || accept(el));\n const doc = getOwnerDocument(scope[0]);\n const current = from || getActiveElement(doc);\n\n if (!current || elements.length === 0) return null;\n\n const currentIndex = elements.indexOf(current as HTMLElement);\n let nextIndex = currentIndex + 1;\n\n if (nextIndex >= elements.length) {\n if (wrap) {\n nextIndex = 0;\n } else {\n return null;\n }\n }\n\n const nextElement = elements[nextIndex];\n if (nextElement) {\n focusSafely(nextElement);\n return nextElement;\n }\n\n return null;\n },\n\n focusPrevious(opts = {}) {\n const scope = scopeElements();\n if (scope.length === 0) return null;\n\n const { from, tabbable = true, wrap = false, accept } = opts;\n const elements = getFocusableElements(scope, tabbable).filter((el) => !accept || accept(el));\n const doc = getOwnerDocument(scope[0]);\n const current = from || getActiveElement(doc);\n\n if (!current || elements.length === 0) return null;\n\n const currentIndex = elements.indexOf(current as HTMLElement);\n let prevIndex = currentIndex - 1;\n\n if (prevIndex < 0) {\n if (wrap) {\n prevIndex = elements.length - 1;\n } else {\n return null;\n }\n }\n\n const prevElement = elements[prevIndex];\n if (prevElement) {\n focusSafely(prevElement);\n return prevElement;\n }\n\n return null;\n },\n\n focusFirst(opts = {}) {\n const scope = scopeElements();\n if (scope.length === 0) return null;\n\n const { tabbable = true, accept } = opts;\n const elements = getFocusableElements(scope, tabbable).filter((el) => !accept || accept(el));\n\n if (elements.length > 0) {\n focusSafely(elements[0]);\n return elements[0];\n }\n\n return null;\n },\n\n focusLast(opts = {}) {\n const scope = scopeElements();\n if (scope.length === 0) return null;\n\n const { tabbable = true, accept } = opts;\n const elements = getFocusableElements(scope, tabbable).filter((el) => !accept || accept(el));\n\n if (elements.length > 0) {\n const lastElement = elements[elements.length - 1];\n focusSafely(lastElement);\n return lastElement;\n }\n\n return null;\n },\n };\n\n // Re-collect when sentinels mount and when siblings between them change.\n // A one-shot onMount miss (empty first paint, delayed collection) would leave\n // auto-focus and contain permanently disabled even after the overlay exists.\n createEffect(\n () => {\n const start = startEl();\n const end = endEl();\n return { start, end };\n },\n ({ start, end }) => {\n if (!start || !end) {\n return;\n }\n\n syncScopeElements();\n const parent = start.parentNode;\n if (!parent) {\n return;\n }\n\n const observer = new MutationObserver(() => {\n syncScopeElements();\n });\n observer.observe(parent, { childList: true });\n return () => observer.disconnect();\n },\n );\n\n // Register this scope in the focus-scope tree so containment can recognize a\n // portaled descendant scope as \"inside\" it. The scope-elements accessor is a\n // stable identity, so it works as the tree key even before it's populated.\n onSettled(() => {\n // If a new scope mounts outside the active scope (a dialog launched from a\n // menu), take the active scope as the parent instead of the context one.\n // Upstream `FocusScope.tsx:100-113`; only a parent that is already in the\n // tree is re-pointed, so an ancestor still mounting is left alone.\n let parentScope = parentScopeRef;\n if (\n focusScopeTree.getTreeNode(parentScope) &&\n activeScope &&\n !isAncestorScope(activeScope, parentScope) &&\n focusScopeTree.getTreeNode(activeScope)\n ) {\n parentScope = activeScope;\n }\n\n focusScopeTree.addTreeNode(scopeElements, parentScope, nodeToRestore ?? undefined);\n });\n\n // Once the tree is complete, the bottom-most scope that contains the focused\n // element becomes the active one. Upstream `FocusScope.tsx:154-173`: this is\n // what makes a scope active when focus is already inside it at mount, with\n // neither `autoFocus` to claim it nor a later `focusin` to follow. Upstream\n // can run it on mount because its nodes are collected in a layout effect;\n // ours are collected in an effect plus a MutationObserver, so the pass waits\n // for the first non-empty collection and then runs once, as upstream does.\n let didActivateOnMount = false;\n createEffect(scopeElements, (scope) => {\n if (didActivateOnMount || scope.length === 0) {\n return;\n }\n didActivateOnMount = true;\n\n const activeElement = getActiveElement(getOwnerDocument(scope[0]));\n if (!activeElement || !isElementInScope(activeElement, scope)) {\n return;\n }\n\n let bottomMost: FocusScopeTreeNode | null = null;\n for (const node of focusScopeTree.traverse()) {\n if (node.scopeRef && isElementInScope(activeElement, node.scopeRef())) {\n bottomMost = node;\n }\n }\n\n if (bottomMost && bottomMost === focusScopeTree.getTreeNode(scopeElements)) {\n activeScope = bottomMost.scopeRef;\n }\n });\n onOwnedCleanup(() => {\n // Hand the active scope back to the parent before the node goes, like\n // upstream's unmount cleanup (`FocusScope.tsx:182-190`). `removeTreeNode`\n // re-parents this node's children, so a dead `activeScope` could never be\n // an ancestor again: every later scope that activates through `contain` or\n // `restoreFocus` alone would be locked out, and `isElementInChildScope`\n // would walk from the root and call every scope on the page active.\n const parentScope = focusScopeTree.getTreeNode(scopeElements)?.parent?.scopeRef ?? null;\n if (\n (scopeElements === activeScope || isAncestorScope(scopeElements, activeScope)) &&\n (!parentScope || focusScopeTree.getTreeNode(parentScope))\n ) {\n activeScope = parentScope;\n }\n focusScopeTree.removeTreeNode(scopeElements);\n });\n\n // Persist the restore target onto the scope tree. Do not overwrite a\n // setup-time capture with whatever is focused after autoFocus.\n onSettled(() => {\n if (!props.restoreFocus) return;\n\n const persistRestoreTarget = (element: Element | null) => {\n if (element) {\n nodeToRestore = element;\n }\n const treeNode = focusScopeTree.getTreeNode(scopeElements);\n if (treeNode && nodeToRestore) {\n treeNode.nodeToRestore = nodeToRestore;\n }\n };\n\n if (nodeToRestore && nodeToRestore.isConnected) {\n persistRestoreTarget(nodeToRestore);\n return;\n }\n\n // Focus can be in the main document, or inside this iframe's document.\n const scopeDoc = startEl() ? getOwnerDocument(startEl() as Element) : document;\n const scopeActive = getActiveElement(scopeDoc);\n const topActive = getActiveElement(document);\n const scope = scopeElements();\n\n // If the scope is in an iframe and that iframe is currently focused, prefer the iframe document's active element.\n if (\n scopeDoc !== document &&\n document.activeElement instanceof HTMLIFrameElement &&\n document.activeElement.contentDocument === scopeDoc &&\n scopeActive &&\n scopeActive !== scopeDoc.body &&\n !isElementInScope(scopeActive, scope)\n ) {\n persistRestoreTarget(getRestorableElement(scopeActive, scopeDoc));\n return;\n }\n\n const candidate = getRestorableElement(topActive, document);\n if (candidate && !isElementInScope(candidate, scope)) {\n persistRestoreTarget(candidate);\n }\n });\n\n // Match @react-aria/focus `useAutoFocus`: one-shot after paint so overlay\n // auto-focus lands after `preventFocus`'s rAF capture window (and after the\n // overlay has been laid out enough to be focusable). Do not start until a\n // real target exists — otherwise a first empty/unfocusable paint would skip\n // forever after children appear.\n let autoFocusStarted = false;\n let cancelAutoFocus: (() => void) | undefined;\n createEffect(\n () => {\n const autoFocus = !!props.autoFocus;\n const scope = scopeElements();\n return {\n autoFocus,\n ready: scope.length > 0 && !!firstInScope(scope),\n scope,\n };\n },\n ({ autoFocus, ready, scope }) => {\n if (!autoFocus || autoFocusStarted || !ready) return;\n\n autoFocusStarted = true;\n const doc = getOwnerDocument(scope[0]);\n cancelAutoFocus = runAfterPaint(() => {\n cancelAutoFocus = undefined;\n const currentScope = scopeElements();\n if (currentScope.length === 0) return;\n // Upstream `useAutoFocus` makes the auto-focused scope active first.\n activeScope = scopeElements;\n const activeElement = getActiveElement(doc);\n if (!isElementInScope(activeElement, currentScope)) {\n focusFirstInScope(currentScope);\n }\n }, doc);\n },\n );\n onOwnedCleanup(() => {\n cancelAutoFocus?.();\n });\n\n // Track the active scope when containment does not already do it. Upstream\n // splits this between `useRestoreFocus` (restore without contain: a scope\n // only becomes active, never inactive) and `useActiveScopeTracker` (neither:\n // focus leaving every scope clears the active scope).\n createEffect(\n () => {\n const contain = !!props.contain;\n const restore = !!props.restoreFocus;\n const scope = scopeElements();\n return { contain, restore, scope };\n },\n ({ contain, restore, scope }) => {\n if (contain || scope.length === 0) return;\n\n const doc = getOwnerDocument(scope[0]);\n const onFocus = (e: FocusEvent) => {\n const target = e.target as Element;\n if (restore) {\n if (\n (!activeScope || isAncestorScope(activeScope, scopeElements)) &&\n isElementInScope(getActiveElement(doc), scopeElements())\n ) {\n activeScope = scopeElements;\n }\n return;\n }\n\n if (isElementInScope(target, scopeElements())) {\n activeScope = scopeElements;\n } else if (!isElementInAnyScope(target)) {\n activeScope = null;\n }\n };\n\n // `focusin` is not in TypeScript's `ElementEventMap`, so the listener is\n // registered through the `EventListener` overload, as it is on documents.\n const onFocusListener = onFocus as EventListener;\n doc.addEventListener(\"focusin\", onFocus, false);\n for (const element of scope) {\n element.addEventListener(\"focusin\", onFocusListener, false);\n }\n return () => {\n doc.removeEventListener(\"focusin\", onFocus, false);\n for (const element of scope) {\n element.removeEventListener(\"focusin\", onFocusListener, false);\n }\n };\n },\n );\n\n // Focus containment. Split createEffect so reading JSX `contain` (a compiler\n // memo getter) does not create a primitive inside createTrackedEffect.\n createEffect(\n () => {\n const contain = !!props.contain;\n const scope = scopeElements();\n return { contain, scope };\n },\n ({ contain, scope }) => {\n if (!contain) return;\n\n if (scope.length === 0) return;\n\n const doc = getOwnerDocument(scope[0]);\n let focusedNode: Element | null = null;\n\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key !== \"Tab\" || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n\n const scope = scopeElements();\n const activeElement = getActiveElement(doc);\n if (!isElementInScope(activeElement, scope)) {\n return;\n }\n\n const elements = getFocusableElements(scope, true);\n if (elements.length === 0) return;\n\n const firstElement = elements[0];\n const lastElement = elements[elements.length - 1];\n\n if (e.shiftKey && activeElement === firstElement) {\n e.preventDefault();\n focusSafely(lastElement);\n } else if (!e.shiftKey && activeElement === lastElement) {\n e.preventDefault();\n focusSafely(firstElement);\n }\n };\n\n const onFocusIn = (e: FocusEvent) => {\n const scope = scopeElements();\n const target = e.target as Element;\n\n if (isElementInScope(target, scope)) {\n // Focusing into a child of the active scope makes the child active;\n // moving out to an ancestor does not (upstream `useFocusContainment`).\n if (!activeScope || isAncestorScope(activeScope, scopeElements)) {\n activeScope = scopeElements;\n }\n focusedNode = target;\n } else if (isElementInChildScope(target, scopeElements)) {\n // Focus moved into a descendant scope — e.g. a menu opened from inside\n // this modal popover, rendered in a portal outside this scope's DOM\n // subtree. Track it but don't pull focus back, which would tear the\n // nested overlay down.\n focusedNode = target;\n } else if (target === doc.body || target === doc.documentElement) {\n // `element.blur()` sends focus to body and may fire focusin there.\n // RAC restores that path from focusout + rAF (`onBlur`), not from\n // this focusin. Pulling back synchronously would beat a following\n // pointermove (certified hover after the focus-visible reset) and\n // keep a stale keyboard ring.\n return;\n } else if (focusedNode) {\n // Focus escaped the scope, bring it back\n focusSafely(focusedNode as HTMLElement);\n } else {\n // No previous focus, focus first element\n focusManager.focusFirst();\n }\n };\n\n let restoreRaf: number | null = null;\n\n const onFocusOut = (e: FocusEvent) => {\n const target = e.target as Element;\n if (!isElementInScope(target, scopeElements())) return;\n\n // Focus left an element inside the scope. Wait a frame (like upstream's\n // onBlur) so a synchronous refocus elsewhere can settle; if focus ended\n // up outside every scope (e.g. blur() to body), pull it back.\n const win = doc.defaultView ?? window;\n if (restoreRaf != null) win.cancelAnimationFrame(restoreRaf);\n restoreRaf = win.requestAnimationFrame(() => {\n restoreRaf = null;\n const scope = scopeElements();\n const activeElement = getActiveElement(doc);\n if (\n activeElement &&\n (isElementInScope(activeElement, scope) ||\n isElementInChildScope(activeElement, scopeElements))\n ) {\n return;\n }\n\n if (doc.body.contains(target)) {\n focusedNode = target;\n focusSafely(target as HTMLElement);\n } else {\n focusManager.focusFirst();\n }\n });\n };\n\n doc.addEventListener(\"keydown\", onKeyDown, true);\n doc.addEventListener(\"focusin\", onFocusIn, true);\n doc.addEventListener(\"focusout\", onFocusOut, true);\n\n return () => {\n doc.removeEventListener(\"keydown\", onKeyDown, true);\n doc.removeEventListener(\"focusin\", onFocusIn, true);\n doc.removeEventListener(\"focusout\", onFocusOut, true);\n if (restoreRaf != null) {\n (doc.defaultView ?? window).cancelAnimationFrame(restoreRaf);\n }\n };\n },\n );\n\n // Restore focus on unmount. Walk ancestor scopes when nodeToRestore is gone\n // or a parent scope has nothing focusable, matching @react-aria/focus.\n onOwnedCleanup(() => {\n if (!props.restoreFocus) {\n return;\n }\n\n const treeNode = focusScopeTree.getTreeNode(scopeElements);\n const saved = (treeNode?.nodeToRestore ?? nodeToRestore) as HTMLElement | null;\n if (!saved) {\n return;\n }\n\n const scope = scopeElements();\n const scopeDoc = getOwnerDocument(scope[0] ?? startEl() ?? saved);\n const clonedTree = focusScopeTree.clone();\n const win = scopeDoc.defaultView ?? window;\n\n const restoreToParentScope = (): boolean => {\n if (parentScopeRef) {\n const first = firstInScope(parentScopeRef());\n if (first) {\n restoreFocusToElement(first);\n return true;\n }\n }\n let node: FocusScopeTreeNode | null | undefined =\n clonedTree.getTreeNode(scopeElements)?.parent ?? null;\n while (node) {\n if (node.scopeRef && focusScopeTree.getTreeNode(node.scopeRef)) {\n const first = firstInScope(node.scopeRef());\n if (first) {\n restoreFocusToElement(first);\n return true;\n }\n }\n node = node.parent;\n }\n return false;\n };\n\n const tryRestore = () => {\n // RAC FocusScope restores when the document's focus is the body after\n // unmount. Instant overlay unmount (no exit animation) can leave\n // activeElement on a detached dialog node instead of body; treat that\n // the same so DialogTrigger popovers restore the trigger (#274).\n // Do not restore while the leaving scope still holds focus — that must\n // wait a frame so \"restore after one frame\" tests stay deferred.\n const active = scopeDoc.activeElement as HTMLElement | null;\n if (\n active &&\n active !== scopeDoc.body &&\n active !== scopeDoc.documentElement &&\n active.isConnected\n ) {\n return;\n }\n\n if (saved && saved.isConnected) {\n restoreFocusToElement(saved);\n return;\n }\n\n let node: FocusScopeTreeNode | null | undefined = clonedTree.getTreeNode(scopeElements);\n while (node) {\n if (\n node.nodeToRestore &&\n node.nodeToRestore.isConnected &&\n node.scopeRef !== scopeElements\n ) {\n restoreFocusToElement(node.nodeToRestore as HTMLElement);\n return;\n }\n node = node.parent;\n }\n\n restoreToParentScope();\n };\n\n tryRestore();\n win.requestAnimationFrame(tryRestore);\n });\n\n return (\n <FocusScopeContext value={{ focusManager, scopeRef: scopeElements }}>\n <span data-focus-scope-start hidden ref={(el) => setStartEl(el ?? null)} />\n {props.children}\n <span data-focus-scope-end hidden ref={(el) => setEndEl(el ?? null)} />\n </FocusScopeContext>\n );\n};\n\nexport default FocusScope;\n"],"mappings":"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"}
|