@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
package/dist/_chunk/toast.js
CHANGED
|
@@ -1,9 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/toast/useToast.ts
|
|
13
|
+
/*
|
|
14
|
+
* Copyright 2025 Adobe. All rights reserved.
|
|
15
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
16
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
17
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
*
|
|
19
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
20
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
21
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
22
|
+
* governing permissions and limitations under the License.
|
|
23
|
+
*/
|
|
24
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/toast/useToastRegion.ts
|
|
25
|
+
import { t as onOwnedCleanup } from "./owner.js";
|
|
26
|
+
import { N as getInteractionModality, T as focusWithoutScrolling } from "./dom.js";
|
|
3
27
|
import { t as createHover } from "./createHover.js";
|
|
4
28
|
import { createId } from "../ssr/index.js";
|
|
5
29
|
import { t as createLandmark } from "./createLandmark.js";
|
|
6
|
-
import {
|
|
30
|
+
import { createMemo, createRenderEffect, createSignal, createTrackedEffect } from "solid-js";
|
|
31
|
+
import { isServer } from "@solidjs/web";
|
|
7
32
|
//#region src/toast/createToast.ts
|
|
8
33
|
/**
|
|
9
34
|
* createToast hook for Solidaria
|
|
@@ -49,6 +74,10 @@ function createToast(props) {
|
|
|
49
74
|
const close = () => {
|
|
50
75
|
props.state.close(props.toast.key);
|
|
51
76
|
};
|
|
77
|
+
const [isVisible, setIsVisible] = createSignal(false, { ownedWrite: true });
|
|
78
|
+
createRenderEffect(() => isServer, (server) => {
|
|
79
|
+
if (!server) setIsVisible(true);
|
|
80
|
+
});
|
|
52
81
|
const toastProps = createMemo(() => ({
|
|
53
82
|
role: "alertdialog",
|
|
54
83
|
"aria-modal": "false",
|
|
@@ -58,11 +87,13 @@ function createToast(props) {
|
|
|
58
87
|
"data-animation": props.toast.animation,
|
|
59
88
|
"data-key": props.toast.key
|
|
60
89
|
}));
|
|
61
|
-
const contentProps =
|
|
90
|
+
const contentProps = {
|
|
62
91
|
role: "alert",
|
|
63
92
|
"aria-atomic": "true",
|
|
64
|
-
"aria-
|
|
65
|
-
|
|
93
|
+
get "aria-hidden"() {
|
|
94
|
+
return isVisible() ? void 0 : "true";
|
|
95
|
+
}
|
|
96
|
+
};
|
|
66
97
|
const titleProps = createMemo(() => ({ id: titleId }));
|
|
67
98
|
const descriptionProps = createMemo(() => ({ id: descriptionId }));
|
|
68
99
|
const closeButtonProps = createMemo(() => ({
|
|
@@ -74,7 +105,7 @@ function createToast(props) {
|
|
|
74
105
|
return toastProps();
|
|
75
106
|
},
|
|
76
107
|
get contentProps() {
|
|
77
|
-
return contentProps
|
|
108
|
+
return contentProps;
|
|
78
109
|
},
|
|
79
110
|
get titleProps() {
|
|
80
111
|
return titleProps();
|
|
@@ -106,7 +137,7 @@ function createToast(props) {
|
|
|
106
137
|
* @example
|
|
107
138
|
* ```tsx
|
|
108
139
|
* import { createToastRegion } from 'solidaria';
|
|
109
|
-
* import { For, Show } from
|
|
140
|
+
* import { For, Show } from "solid-js";
|
|
110
141
|
*
|
|
111
142
|
* function ToastRegion(props) {
|
|
112
143
|
* let ref;
|
|
@@ -186,7 +217,7 @@ function createToastRegion(props) {
|
|
|
186
217
|
updateTimers();
|
|
187
218
|
}
|
|
188
219
|
};
|
|
189
|
-
|
|
220
|
+
createTrackedEffect(() => {
|
|
190
221
|
const currentVisibleToasts = visibleToasts();
|
|
191
222
|
const element = regionRef();
|
|
192
223
|
if (focusedToastIndex === -1 || currentVisibleToasts.length === 0 || !element) {
|
|
@@ -204,32 +235,34 @@ function createToastRegion(props) {
|
|
|
204
235
|
isRemoved: !currentVisibleToasts.some((currentToast) => currentToast.key === toast.key)
|
|
205
236
|
}));
|
|
206
237
|
const removedFocusedToastIndex = allToasts.findIndex((toast) => toast.index === focusedToastIndex && toast.isRemoved);
|
|
207
|
-
if (removedFocusedToastIndex > -1)
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
238
|
+
if (removedFocusedToastIndex > -1) {
|
|
239
|
+
if (getInteractionModality() === "pointer" && lastFocused?.isConnected) focusWithoutScrolling(lastFocused);
|
|
240
|
+
else {
|
|
241
|
+
let index = 0;
|
|
242
|
+
let nextToast;
|
|
243
|
+
let previousToast;
|
|
244
|
+
while (index <= removedFocusedToastIndex) {
|
|
245
|
+
if (!allToasts[index]?.isRemoved) previousToast = Math.max(0, index - 1);
|
|
246
|
+
index++;
|
|
247
|
+
}
|
|
248
|
+
while (index < allToasts.length) {
|
|
249
|
+
if (!allToasts[index]?.isRemoved) {
|
|
250
|
+
nextToast = index - 1;
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
index++;
|
|
220
254
|
}
|
|
221
|
-
|
|
255
|
+
if (previousToast === void 0 && nextToast === void 0) previousToast = 0;
|
|
256
|
+
if (previousToast !== void 0 && previousToast >= 0 && previousToast < toastElements.length) focusWithoutScrolling(toastElements[previousToast]);
|
|
257
|
+
else if (nextToast !== void 0 && nextToast >= 0 && nextToast < toastElements.length) focusWithoutScrolling(toastElements[nextToast]);
|
|
222
258
|
}
|
|
223
|
-
if (previousToast === void 0 && nextToast === void 0) previousToast = 0;
|
|
224
|
-
if (previousToast !== void 0 && previousToast >= 0 && previousToast < toastElements.length) focusWithoutScrolling(toastElements[previousToast]);
|
|
225
|
-
else if (nextToast !== void 0 && nextToast >= 0 && nextToast < toastElements.length) focusWithoutScrolling(toastElements[nextToast]);
|
|
226
259
|
}
|
|
227
260
|
previousVisibleToasts = currentVisibleToasts;
|
|
228
261
|
});
|
|
229
|
-
|
|
262
|
+
createTrackedEffect(() => {
|
|
230
263
|
if (visibleToasts().length === 0) restoreLastFocused();
|
|
231
264
|
});
|
|
232
|
-
|
|
265
|
+
onOwnedCleanup(() => {
|
|
233
266
|
restoreLastFocused();
|
|
234
267
|
});
|
|
235
268
|
const regionProps = createMemo(() => ({
|
package/dist/_chunk/toast.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.js","names":[],"sources":["../../src/toast/createToast.ts","../../src/toast/createToastRegion.ts"],"sourcesContent":["/**\n * createToast hook for Solidaria\n *\n * Provides the accessibility implementation for a Toast component.\n *\n * Port of @react-aria/toast useToast.\n */\n\nimport { type JSX, createMemo } from \"solid-js\";\nimport { type QueuedToast, type ToastState } from \"@proyecto-viviana/solid-stately\";\nimport { createId } from \"../ssr\";\n\nexport interface AriaToastProps<T> {\n /** The toast to display. */\n toast: QueuedToast<T>;\n /** The toast state from createToastState. */\n state: ToastState<T>;\n /** Whether the rendered toast includes a title element. */\n hasTitle?: boolean;\n /** Whether the rendered toast includes a description element. */\n hasDescription?: boolean;\n}\n\nexport interface ToastAria {\n /** Props for the toast container element. */\n toastProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the toast content element (contains the message). */\n contentProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the toast title element. */\n titleProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the toast description element. */\n descriptionProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the close button. */\n closeButtonProps: JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n}\n\n/**\n * Provides the accessibility implementation for a Toast component.\n *\n * The toast uses role=\"alertdialog\" to announce content to screen readers.\n * The content area uses role=\"alert\" for the actual message.\n *\n * @example\n * ```tsx\n * import { createToast } from 'solidaria';\n *\n * function Toast(props) {\n * const {\n * toastProps,\n * contentProps,\n * titleProps,\n * closeButtonProps\n * } = createToast({ toast: props.toast, state: props.state });\n *\n * return (\n * <div {...toastProps}>\n * <div {...contentProps}>\n * <div {...titleProps}>{props.toast.content.title}</div>\n * </div>\n * <button {...closeButtonProps}>×</button>\n * </div>\n * );\n * }\n * ```\n */\nexport function createToast<T>(props: AriaToastProps<T>): ToastAria {\n const titleId = createId();\n const descriptionId = createId();\n const hasTitle = props.hasTitle ?? true;\n const hasDescription = props.hasDescription ?? true;\n\n const close = () => {\n props.state.close(props.toast.key);\n };\n\n // Toast container - role=\"alertdialog\" for screen readers\n const toastProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n role: \"alertdialog\",\n \"aria-modal\": \"false\",\n \"aria-labelledby\": hasTitle ? titleId : undefined,\n \"aria-describedby\": hasDescription ? descriptionId : undefined,\n tabIndex: 0,\n \"data-animation\": props.toast.animation,\n \"data-key\": props.toast.key,\n }));\n\n // Content area with role=\"alert\" for immediate announcement\n const contentProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n role: \"alert\",\n \"aria-atomic\": \"true\",\n \"aria-live\": \"assertive\",\n }));\n\n // Title props\n const titleProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n id: titleId,\n }));\n\n // Description props\n const descriptionProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n id: descriptionId,\n }));\n\n // Close button\n const closeButtonProps = createMemo<JSX.ButtonHTMLAttributes<HTMLButtonElement>>(() => ({\n \"aria-label\": \"Close\",\n onClick: close,\n }));\n\n return {\n get toastProps() {\n return toastProps();\n },\n get contentProps() {\n return contentProps();\n },\n get titleProps() {\n return titleProps();\n },\n get descriptionProps() {\n return descriptionProps();\n },\n get closeButtonProps() {\n return closeButtonProps();\n },\n };\n}\n","/**\n * createToastRegion hook for Solidaria\n *\n * Provides the accessibility implementation for a ToastRegion component.\n * The region is a landmark that contains all visible toasts.\n *\n * Port of @react-aria/toast useToastRegion.\n */\n\nimport { type Accessor, type JSX, createEffect, createMemo, onCleanup } from \"solid-js\";\nimport { type ToastState } from \"@proyecto-viviana/solid-stately\";\nimport { createHover } from \"../interactions/createHover\";\nimport { getInteractionModality } from \"../interactions/createInteractionModality\";\nimport { createLandmark } from \"../landmark/createLandmark\";\nimport { focusWithoutScrolling } from \"../utils/focus\";\n\nexport interface AriaToastRegionProps<T> {\n /** The toast state from createToastState. */\n state: ToastState<T>;\n /** The toast region element. Required for landmark navigation and focus recovery. */\n ref?: Accessor<HTMLElement | undefined>;\n /** An accessible label for the region. */\n \"aria-label\"?: string;\n}\n\nexport interface ToastRegionAria {\n /** Props for the toast region container element. */\n regionProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Provides the accessibility implementation for a ToastRegion component.\n *\n * The region is a landmark (role=\"region\") that contains all visible toasts.\n * It pauses toast timers on hover or focus to give users time to read/interact.\n *\n * @example\n * ```tsx\n * import { createToastRegion } from 'solidaria';\n * import { For, Show } from 'solid-js';\n *\n * function ToastRegion(props) {\n * let ref;\n * const { regionProps } = createToastRegion({ state: props.state });\n *\n * return (\n * <Show when={props.state.visibleToasts().length > 0}>\n * <div {...regionProps} ref={ref}>\n * <For each={props.state.visibleToasts()}>\n * {(toast) => <Toast toast={toast} state={props.state} />}\n * </For>\n * </div>\n * </Show>\n * );\n * }\n * ```\n */\nexport function createToastRegion<T>(props: AriaToastRegionProps<T>): ToastRegionAria {\n const visibleToasts = () =>\n typeof props.state.visibleToasts === \"function\" ? props.state.visibleToasts() : [];\n const regionRef = () => props.ref?.();\n const activeRegionRef = () => (visibleToasts().length > 0 ? regionRef() : undefined);\n\n const { landmarkProps } = createLandmark(\n () => ({\n role: \"region\",\n \"aria-label\": props[\"aria-label\"] ?? \"Notifications\",\n }),\n activeRegionRef,\n );\n\n let isHovered = false;\n let isFocused = false;\n let toastElements: HTMLElement[] = [];\n let previousVisibleToasts = visibleToasts();\n let focusedToastIndex = -1;\n let lastFocused: HTMLElement | null = null;\n\n const updateTimers = () => {\n if (isHovered || isFocused) {\n props.state.pauseAll();\n } else {\n props.state.resumeAll();\n }\n };\n\n const { hoverProps } = createHover({\n onHoverStart: () => {\n isHovered = true;\n updateTimers();\n },\n onHoverEnd: () => {\n isHovered = false;\n updateTimers();\n },\n });\n\n const getToastElements = () => {\n const element = regionRef();\n return element ? [...element.querySelectorAll<HTMLElement>('[role=\"alertdialog\"]')] : [];\n };\n\n const restoreLastFocused = () => {\n if (!lastFocused?.isConnected) {\n lastFocused = null;\n return;\n }\n\n if (getInteractionModality() === \"pointer\") {\n focusWithoutScrolling(lastFocused);\n } else {\n lastFocused.focus();\n }\n\n lastFocused = null;\n };\n\n const handleFocusIn = (e: FocusEvent) => {\n const currentTarget = e.currentTarget as HTMLElement;\n const relatedTarget = e.relatedTarget as HTMLElement | null;\n\n if (!isFocused) {\n isFocused = true;\n if (relatedTarget && !currentTarget.contains(relatedTarget)) {\n lastFocused = relatedTarget;\n }\n updateTimers();\n }\n\n toastElements = getToastElements();\n const target =\n e.target instanceof Element ? e.target.closest<HTMLElement>('[role=\"alertdialog\"]') : null;\n focusedToastIndex = target ? toastElements.findIndex((toast) => toast === target) : -1;\n };\n\n const handleFocusOut = (e: FocusEvent) => {\n const target = e.relatedTarget as HTMLElement | null;\n const currentTarget = e.currentTarget as HTMLElement;\n if (!target || !currentTarget.contains(target)) {\n isFocused = false;\n focusedToastIndex = -1;\n updateTimers();\n }\n };\n\n createEffect(() => {\n const currentVisibleToasts = visibleToasts();\n const element = regionRef();\n\n if (focusedToastIndex === -1 || currentVisibleToasts.length === 0 || !element) {\n toastElements = [];\n previousVisibleToasts = currentVisibleToasts;\n return;\n }\n\n toastElements = getToastElements();\n\n const unchanged =\n previousVisibleToasts.length === currentVisibleToasts.length &&\n currentVisibleToasts.every((toast, index) => toast.key === previousVisibleToasts[index]?.key);\n\n if (unchanged) {\n previousVisibleToasts = currentVisibleToasts;\n return;\n }\n\n const allToasts = previousVisibleToasts.map((toast, index) => ({\n index,\n isRemoved: !currentVisibleToasts.some((currentToast) => currentToast.key === toast.key),\n }));\n const removedFocusedToastIndex = allToasts.findIndex(\n (toast) => toast.index === focusedToastIndex && toast.isRemoved,\n );\n\n if (removedFocusedToastIndex > -1) {\n if (getInteractionModality() === \"pointer\" && lastFocused?.isConnected) {\n focusWithoutScrolling(lastFocused);\n } else {\n let index = 0;\n let nextToast: number | undefined;\n let previousToast: number | undefined;\n\n while (index <= removedFocusedToastIndex) {\n if (!allToasts[index]?.isRemoved) {\n previousToast = Math.max(0, index - 1);\n }\n index++;\n }\n\n while (index < allToasts.length) {\n if (!allToasts[index]?.isRemoved) {\n nextToast = index - 1;\n break;\n }\n index++;\n }\n\n if (previousToast === undefined && nextToast === undefined) {\n previousToast = 0;\n }\n\n if (\n previousToast !== undefined &&\n previousToast >= 0 &&\n previousToast < toastElements.length\n ) {\n focusWithoutScrolling(toastElements[previousToast]);\n } else if (nextToast !== undefined && nextToast >= 0 && nextToast < toastElements.length) {\n focusWithoutScrolling(toastElements[nextToast]);\n }\n }\n }\n\n previousVisibleToasts = currentVisibleToasts;\n });\n\n createEffect(() => {\n if (visibleToasts().length === 0) {\n restoreLastFocused();\n }\n });\n\n onCleanup(() => {\n restoreLastFocused();\n });\n\n // Region props\n const regionProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n ...landmarkProps,\n ...hoverProps,\n tabIndex: -1,\n \"data-solidaria-top-layer\": \"true\",\n onFocusIn: handleFocusIn,\n onFocusOut: handleFocusOut,\n }));\n\n return {\n get regionProps() {\n return regionProps();\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toast.js","names":[],"sources":["../../src/toast/createToast.ts","../../src/toast/createToastRegion.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/toast/useToast.ts\n\n/**\n * createToast hook for Solidaria\n *\n * Provides the accessibility implementation for a Toast component.\n *\n * Port of @react-aria/toast useToast.\n */\n\nimport { createMemo, createRenderEffect, createSignal } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { isServer } from \"@solidjs/web\";\nimport { type QueuedToast, type ToastState } from \"@proyecto-viviana/solid-stately\";\nimport { createId } from \"../ssr\";\n\nexport interface AriaToastProps<T> {\n /** The toast to display. */\n toast: QueuedToast<T>;\n /** The toast state from createToastState. */\n state: ToastState<T>;\n /** Whether the rendered toast includes a title element. */\n hasTitle?: boolean;\n /** Whether the rendered toast includes a description element. */\n hasDescription?: boolean;\n}\n\nexport interface ToastAria {\n /** Props for the toast container element. */\n toastProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the toast content element (contains the message). */\n contentProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the toast title element. */\n titleProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the toast description element. */\n descriptionProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the close button. */\n closeButtonProps: JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n}\n\n/**\n * Provides the accessibility implementation for a Toast component.\n *\n * The toast uses role=\"alertdialog\" to announce content to screen readers.\n * The content area uses role=\"alert\" for the actual message.\n *\n * @example\n * ```tsx\n * import { createToast } from 'solidaria';\n *\n * function Toast(props) {\n * const {\n * toastProps,\n * contentProps,\n * titleProps,\n * closeButtonProps\n * } = createToast({ toast: props.toast, state: props.state });\n *\n * return (\n * <div {...toastProps}>\n * <div {...contentProps}>\n * <div {...titleProps}>{props.toast.content.title}</div>\n * </div>\n * <button {...closeButtonProps}>×</button>\n * </div>\n * );\n * }\n * ```\n */\nexport function createToast<T>(props: AriaToastProps<T>): ToastAria {\n const titleId = createId();\n const descriptionId = createId();\n const hasTitle = props.hasTitle ?? true;\n const hasDescription = props.hasDescription ?? true;\n\n const close = () => {\n props.state.close(props.toast.key);\n };\n\n // RAC useToast hides the alert until after layout so the live region\n // announces on appear, not during SSR. `useLayoutEffect` → createRenderEffect.\n const [isVisible, setIsVisible] = createSignal(false, { ownedWrite: true });\n createRenderEffect(\n () => isServer,\n (server) => {\n if (!server) {\n setIsVisible(true);\n }\n },\n );\n\n // Toast container - role=\"alertdialog\" for screen readers\n const toastProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n role: \"alertdialog\",\n \"aria-modal\": \"false\",\n \"aria-labelledby\": hasTitle ? titleId : undefined,\n \"aria-describedby\": hasDescription ? descriptionId : undefined,\n tabIndex: 0,\n \"data-animation\": props.toast.animation,\n \"data-key\": props.toast.key,\n }));\n\n // Content area. Match RAC useToast: role=\"alert\" + aria-atomic; aria-hidden\n // until mounted. Getters keep the object stable so slotted context still\n // sees the post-layout visible state. role=alert is implicitly assertive —\n // do not add aria-live (RAC does not).\n const contentProps: JSX.HTMLAttributes<HTMLElement> = {\n role: \"alert\",\n \"aria-atomic\": \"true\",\n get \"aria-hidden\"() {\n return isVisible() ? undefined : \"true\";\n },\n };\n\n // Title props\n const titleProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n id: titleId,\n }));\n\n // Description props\n const descriptionProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n id: descriptionId,\n }));\n\n // Close button\n const closeButtonProps = createMemo<JSX.ButtonHTMLAttributes<HTMLButtonElement>>(() => ({\n \"aria-label\": \"Close\",\n onClick: close,\n }));\n\n return {\n get toastProps() {\n return toastProps();\n },\n get contentProps() {\n return contentProps;\n },\n get titleProps() {\n return titleProps();\n },\n get descriptionProps() {\n return descriptionProps();\n },\n get closeButtonProps() {\n return closeButtonProps();\n },\n };\n}\n","/*\n * Copyright 2025 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/toast/useToastRegion.ts\n\n/**\n * createToastRegion hook for Solidaria\n *\n * Provides the accessibility implementation for a ToastRegion component.\n * The region is a landmark that contains all visible toasts.\n *\n * Port of @react-aria/toast useToastRegion.\n */\n\nimport { onOwnedCleanup } from \"../utils/owner\";\nimport { createMemo, createTrackedEffect } from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { type ToastState } from \"@proyecto-viviana/solid-stately\";\nimport { createHover } from \"../interactions/createHover\";\nimport { getInteractionModality } from \"../interactions/createInteractionModality\";\nimport { createLandmark } from \"../landmark/createLandmark\";\nimport { focusWithoutScrolling } from \"../utils/focus\";\nexport interface AriaToastRegionProps<T> {\n /** The toast state from createToastState. */ state: ToastState<T>;\n /** The toast region element. Required for landmark navigation and focus recovery. */ ref?: Accessor<\n HTMLElement | undefined\n >;\n /** An accessible label for the region. */ \"aria-label\"?: string;\n}\nexport interface ToastRegionAria {\n /** Props for the toast region container element. */ regionProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Provides the accessibility implementation for a ToastRegion component.\n *\n * The region is a landmark (role=\"region\") that contains all visible toasts.\n * It pauses toast timers on hover or focus to give users time to read/interact.\n *\n * @example\n * ```tsx\n * import { createToastRegion } from 'solidaria';\n * import { For, Show } from \"solid-js\";\n *\n * function ToastRegion(props) {\n * let ref;\n * const { regionProps } = createToastRegion({ state: props.state });\n *\n * return (\n * <Show when={props.state.visibleToasts().length > 0}>\n * <div {...regionProps} ref={ref}>\n * <For each={props.state.visibleToasts()}>\n * {(toast) => <Toast toast={toast} state={props.state} />}\n * </For>\n * </div>\n * </Show>\n * );\n * }\n * ```\n */\nexport function createToastRegion<T>(props: AriaToastRegionProps<T>): ToastRegionAria {\n const visibleToasts = () =>\n typeof props.state.visibleToasts === \"function\" ? props.state.visibleToasts() : [];\n const regionRef = () => props.ref?.();\n const activeRegionRef = () => (visibleToasts().length > 0 ? regionRef() : undefined);\n\n const { landmarkProps } = createLandmark(\n () => ({\n role: \"region\",\n \"aria-label\": props[\"aria-label\"] ?? \"Notifications\",\n }),\n activeRegionRef,\n );\n\n let isHovered = false;\n let isFocused = false;\n let toastElements: HTMLElement[] = [];\n let previousVisibleToasts = visibleToasts();\n let focusedToastIndex = -1;\n let lastFocused: HTMLElement | null = null;\n\n const updateTimers = () => {\n if (isHovered || isFocused) {\n props.state.pauseAll();\n } else {\n props.state.resumeAll();\n }\n };\n\n const { hoverProps } = createHover({\n onHoverStart: () => {\n isHovered = true;\n updateTimers();\n },\n onHoverEnd: () => {\n isHovered = false;\n updateTimers();\n },\n });\n\n const getToastElements = () => {\n const element = regionRef();\n return element ? [...element.querySelectorAll<HTMLElement>('[role=\"alertdialog\"]')] : [];\n };\n\n const restoreLastFocused = () => {\n if (!lastFocused?.isConnected) {\n lastFocused = null;\n return;\n }\n\n if (getInteractionModality() === \"pointer\") {\n focusWithoutScrolling(lastFocused);\n } else {\n lastFocused.focus();\n }\n\n lastFocused = null;\n };\n\n const handleFocusIn = (e: FocusEvent) => {\n const currentTarget = e.currentTarget as HTMLElement;\n const relatedTarget = e.relatedTarget as HTMLElement | null;\n\n if (!isFocused) {\n isFocused = true;\n if (relatedTarget && !currentTarget.contains(relatedTarget)) {\n lastFocused = relatedTarget;\n }\n updateTimers();\n }\n\n toastElements = getToastElements();\n const target =\n e.target instanceof Element ? e.target.closest<HTMLElement>('[role=\"alertdialog\"]') : null;\n focusedToastIndex = target ? toastElements.findIndex((toast) => toast === target) : -1;\n };\n\n const handleFocusOut = (e: FocusEvent) => {\n const target = e.relatedTarget as HTMLElement | null;\n const currentTarget = e.currentTarget as HTMLElement;\n if (!target || !currentTarget.contains(target)) {\n isFocused = false;\n focusedToastIndex = -1;\n updateTimers();\n }\n };\n\n createTrackedEffect(() => {\n const currentVisibleToasts = visibleToasts();\n const element = regionRef();\n\n if (focusedToastIndex === -1 || currentVisibleToasts.length === 0 || !element) {\n toastElements = [];\n previousVisibleToasts = currentVisibleToasts;\n return;\n }\n\n toastElements = getToastElements();\n\n const unchanged =\n previousVisibleToasts.length === currentVisibleToasts.length &&\n currentVisibleToasts.every((toast, index) => toast.key === previousVisibleToasts[index]?.key);\n\n if (unchanged) {\n previousVisibleToasts = currentVisibleToasts;\n return;\n }\n\n const allToasts = previousVisibleToasts.map((toast, index) => ({\n index,\n isRemoved: !currentVisibleToasts.some((currentToast) => currentToast.key === toast.key),\n }));\n const removedFocusedToastIndex = allToasts.findIndex(\n (toast) => toast.index === focusedToastIndex && toast.isRemoved,\n );\n\n if (removedFocusedToastIndex > -1) {\n if (getInteractionModality() === \"pointer\" && lastFocused?.isConnected) {\n focusWithoutScrolling(lastFocused);\n } else {\n let index = 0;\n let nextToast: number | undefined;\n let previousToast: number | undefined;\n\n while (index <= removedFocusedToastIndex) {\n if (!allToasts[index]?.isRemoved) {\n previousToast = Math.max(0, index - 1);\n }\n index++;\n }\n\n while (index < allToasts.length) {\n if (!allToasts[index]?.isRemoved) {\n nextToast = index - 1;\n break;\n }\n index++;\n }\n\n if (previousToast === undefined && nextToast === undefined) {\n previousToast = 0;\n }\n\n if (\n previousToast !== undefined &&\n previousToast >= 0 &&\n previousToast < toastElements.length\n ) {\n focusWithoutScrolling(toastElements[previousToast]);\n } else if (nextToast !== undefined && nextToast >= 0 && nextToast < toastElements.length) {\n focusWithoutScrolling(toastElements[nextToast]);\n }\n }\n }\n\n previousVisibleToasts = currentVisibleToasts;\n });\n\n createTrackedEffect(() => {\n if (visibleToasts().length === 0) {\n restoreLastFocused();\n }\n });\n\n onOwnedCleanup(() => {\n restoreLastFocused();\n });\n\n // Region props\n const regionProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n ...landmarkProps,\n ...hoverProps,\n tabIndex: -1,\n \"data-solidaria-top-layer\": \"true\",\n onFocusIn: handleFocusIn,\n onFocusOut: handleFocusOut,\n }));\n\n return {\n get regionProps() {\n return regionProps();\n },\n };\n}\n"],"mappings":"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"}
|
package/dist/_chunk/toast.jsx
CHANGED
|
@@ -1,9 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/toast/useToast.ts
|
|
13
|
+
/*
|
|
14
|
+
* Copyright 2025 Adobe. All rights reserved.
|
|
15
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
16
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
17
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
*
|
|
19
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
20
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
21
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
22
|
+
* governing permissions and limitations under the License.
|
|
23
|
+
*/
|
|
24
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/toast/useToastRegion.ts
|
|
25
|
+
import { t as onOwnedCleanup } from "./owner.jsx";
|
|
26
|
+
import { N as getInteractionModality, T as focusWithoutScrolling } from "./dom.jsx";
|
|
3
27
|
import { t as createHover } from "./createHover.jsx";
|
|
4
28
|
import { createId } from "../ssr/index.jsx";
|
|
5
29
|
import { t as createLandmark } from "./createLandmark.jsx";
|
|
6
|
-
import {
|
|
30
|
+
import { createMemo, createRenderEffect, createSignal, createTrackedEffect } from "solid-js";
|
|
31
|
+
import { isServer } from "@solidjs/web";
|
|
7
32
|
//#region src/toast/createToast.ts
|
|
8
33
|
/**
|
|
9
34
|
* createToast hook for Solidaria
|
|
@@ -49,6 +74,10 @@ function createToast(props) {
|
|
|
49
74
|
const close = () => {
|
|
50
75
|
props.state.close(props.toast.key);
|
|
51
76
|
};
|
|
77
|
+
const [isVisible, setIsVisible] = createSignal(false, { ownedWrite: true });
|
|
78
|
+
createRenderEffect(() => isServer, (server) => {
|
|
79
|
+
if (!server) setIsVisible(true);
|
|
80
|
+
});
|
|
52
81
|
const toastProps = createMemo(() => ({
|
|
53
82
|
role: "alertdialog",
|
|
54
83
|
"aria-modal": "false",
|
|
@@ -58,11 +87,13 @@ function createToast(props) {
|
|
|
58
87
|
"data-animation": props.toast.animation,
|
|
59
88
|
"data-key": props.toast.key
|
|
60
89
|
}));
|
|
61
|
-
const contentProps =
|
|
90
|
+
const contentProps = {
|
|
62
91
|
role: "alert",
|
|
63
92
|
"aria-atomic": "true",
|
|
64
|
-
"aria-
|
|
65
|
-
|
|
93
|
+
get "aria-hidden"() {
|
|
94
|
+
return isVisible() ? void 0 : "true";
|
|
95
|
+
}
|
|
96
|
+
};
|
|
66
97
|
const titleProps = createMemo(() => ({ id: titleId }));
|
|
67
98
|
const descriptionProps = createMemo(() => ({ id: descriptionId }));
|
|
68
99
|
const closeButtonProps = createMemo(() => ({
|
|
@@ -74,7 +105,7 @@ function createToast(props) {
|
|
|
74
105
|
return toastProps();
|
|
75
106
|
},
|
|
76
107
|
get contentProps() {
|
|
77
|
-
return contentProps
|
|
108
|
+
return contentProps;
|
|
78
109
|
},
|
|
79
110
|
get titleProps() {
|
|
80
111
|
return titleProps();
|
|
@@ -106,7 +137,7 @@ function createToast(props) {
|
|
|
106
137
|
* @example
|
|
107
138
|
* ```tsx
|
|
108
139
|
* import { createToastRegion } from 'solidaria';
|
|
109
|
-
* import { For, Show } from
|
|
140
|
+
* import { For, Show } from "solid-js";
|
|
110
141
|
*
|
|
111
142
|
* function ToastRegion(props) {
|
|
112
143
|
* let ref;
|
|
@@ -186,7 +217,7 @@ function createToastRegion(props) {
|
|
|
186
217
|
updateTimers();
|
|
187
218
|
}
|
|
188
219
|
};
|
|
189
|
-
|
|
220
|
+
createTrackedEffect(() => {
|
|
190
221
|
const currentVisibleToasts = visibleToasts();
|
|
191
222
|
const element = regionRef();
|
|
192
223
|
if (focusedToastIndex === -1 || currentVisibleToasts.length === 0 || !element) {
|
|
@@ -204,32 +235,34 @@ function createToastRegion(props) {
|
|
|
204
235
|
isRemoved: !currentVisibleToasts.some((currentToast) => currentToast.key === toast.key)
|
|
205
236
|
}));
|
|
206
237
|
const removedFocusedToastIndex = allToasts.findIndex((toast) => toast.index === focusedToastIndex && toast.isRemoved);
|
|
207
|
-
if (removedFocusedToastIndex > -1)
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
238
|
+
if (removedFocusedToastIndex > -1) {
|
|
239
|
+
if (getInteractionModality() === "pointer" && lastFocused?.isConnected) focusWithoutScrolling(lastFocused);
|
|
240
|
+
else {
|
|
241
|
+
let index = 0;
|
|
242
|
+
let nextToast;
|
|
243
|
+
let previousToast;
|
|
244
|
+
while (index <= removedFocusedToastIndex) {
|
|
245
|
+
if (!allToasts[index]?.isRemoved) previousToast = Math.max(0, index - 1);
|
|
246
|
+
index++;
|
|
247
|
+
}
|
|
248
|
+
while (index < allToasts.length) {
|
|
249
|
+
if (!allToasts[index]?.isRemoved) {
|
|
250
|
+
nextToast = index - 1;
|
|
251
|
+
break;
|
|
252
|
+
}
|
|
253
|
+
index++;
|
|
220
254
|
}
|
|
221
|
-
|
|
255
|
+
if (previousToast === void 0 && nextToast === void 0) previousToast = 0;
|
|
256
|
+
if (previousToast !== void 0 && previousToast >= 0 && previousToast < toastElements.length) focusWithoutScrolling(toastElements[previousToast]);
|
|
257
|
+
else if (nextToast !== void 0 && nextToast >= 0 && nextToast < toastElements.length) focusWithoutScrolling(toastElements[nextToast]);
|
|
222
258
|
}
|
|
223
|
-
if (previousToast === void 0 && nextToast === void 0) previousToast = 0;
|
|
224
|
-
if (previousToast !== void 0 && previousToast >= 0 && previousToast < toastElements.length) focusWithoutScrolling(toastElements[previousToast]);
|
|
225
|
-
else if (nextToast !== void 0 && nextToast >= 0 && nextToast < toastElements.length) focusWithoutScrolling(toastElements[nextToast]);
|
|
226
259
|
}
|
|
227
260
|
previousVisibleToasts = currentVisibleToasts;
|
|
228
261
|
});
|
|
229
|
-
|
|
262
|
+
createTrackedEffect(() => {
|
|
230
263
|
if (visibleToasts().length === 0) restoreLastFocused();
|
|
231
264
|
});
|
|
232
|
-
|
|
265
|
+
onOwnedCleanup(() => {
|
|
233
266
|
restoreLastFocused();
|
|
234
267
|
});
|
|
235
268
|
const regionProps = createMemo(() => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast.jsx","names":[],"sources":["../../src/toast/createToast.ts","../../src/toast/createToastRegion.ts"],"sourcesContent":["/**\n * createToast hook for Solidaria\n *\n * Provides the accessibility implementation for a Toast component.\n *\n * Port of @react-aria/toast useToast.\n */\n\nimport { type JSX, createMemo } from \"solid-js\";\nimport { type QueuedToast, type ToastState } from \"@proyecto-viviana/solid-stately\";\nimport { createId } from \"../ssr\";\n\nexport interface AriaToastProps<T> {\n /** The toast to display. */\n toast: QueuedToast<T>;\n /** The toast state from createToastState. */\n state: ToastState<T>;\n /** Whether the rendered toast includes a title element. */\n hasTitle?: boolean;\n /** Whether the rendered toast includes a description element. */\n hasDescription?: boolean;\n}\n\nexport interface ToastAria {\n /** Props for the toast container element. */\n toastProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the toast content element (contains the message). */\n contentProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the toast title element. */\n titleProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the toast description element. */\n descriptionProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the close button. */\n closeButtonProps: JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n}\n\n/**\n * Provides the accessibility implementation for a Toast component.\n *\n * The toast uses role=\"alertdialog\" to announce content to screen readers.\n * The content area uses role=\"alert\" for the actual message.\n *\n * @example\n * ```tsx\n * import { createToast } from 'solidaria';\n *\n * function Toast(props) {\n * const {\n * toastProps,\n * contentProps,\n * titleProps,\n * closeButtonProps\n * } = createToast({ toast: props.toast, state: props.state });\n *\n * return (\n * <div {...toastProps}>\n * <div {...contentProps}>\n * <div {...titleProps}>{props.toast.content.title}</div>\n * </div>\n * <button {...closeButtonProps}>×</button>\n * </div>\n * );\n * }\n * ```\n */\nexport function createToast<T>(props: AriaToastProps<T>): ToastAria {\n const titleId = createId();\n const descriptionId = createId();\n const hasTitle = props.hasTitle ?? true;\n const hasDescription = props.hasDescription ?? true;\n\n const close = () => {\n props.state.close(props.toast.key);\n };\n\n // Toast container - role=\"alertdialog\" for screen readers\n const toastProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n role: \"alertdialog\",\n \"aria-modal\": \"false\",\n \"aria-labelledby\": hasTitle ? titleId : undefined,\n \"aria-describedby\": hasDescription ? descriptionId : undefined,\n tabIndex: 0,\n \"data-animation\": props.toast.animation,\n \"data-key\": props.toast.key,\n }));\n\n // Content area with role=\"alert\" for immediate announcement\n const contentProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n role: \"alert\",\n \"aria-atomic\": \"true\",\n \"aria-live\": \"assertive\",\n }));\n\n // Title props\n const titleProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n id: titleId,\n }));\n\n // Description props\n const descriptionProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n id: descriptionId,\n }));\n\n // Close button\n const closeButtonProps = createMemo<JSX.ButtonHTMLAttributes<HTMLButtonElement>>(() => ({\n \"aria-label\": \"Close\",\n onClick: close,\n }));\n\n return {\n get toastProps() {\n return toastProps();\n },\n get contentProps() {\n return contentProps();\n },\n get titleProps() {\n return titleProps();\n },\n get descriptionProps() {\n return descriptionProps();\n },\n get closeButtonProps() {\n return closeButtonProps();\n },\n };\n}\n","/**\n * createToastRegion hook for Solidaria\n *\n * Provides the accessibility implementation for a ToastRegion component.\n * The region is a landmark that contains all visible toasts.\n *\n * Port of @react-aria/toast useToastRegion.\n */\n\nimport { type Accessor, type JSX, createEffect, createMemo, onCleanup } from \"solid-js\";\nimport { type ToastState } from \"@proyecto-viviana/solid-stately\";\nimport { createHover } from \"../interactions/createHover\";\nimport { getInteractionModality } from \"../interactions/createInteractionModality\";\nimport { createLandmark } from \"../landmark/createLandmark\";\nimport { focusWithoutScrolling } from \"../utils/focus\";\n\nexport interface AriaToastRegionProps<T> {\n /** The toast state from createToastState. */\n state: ToastState<T>;\n /** The toast region element. Required for landmark navigation and focus recovery. */\n ref?: Accessor<HTMLElement | undefined>;\n /** An accessible label for the region. */\n \"aria-label\"?: string;\n}\n\nexport interface ToastRegionAria {\n /** Props for the toast region container element. */\n regionProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Provides the accessibility implementation for a ToastRegion component.\n *\n * The region is a landmark (role=\"region\") that contains all visible toasts.\n * It pauses toast timers on hover or focus to give users time to read/interact.\n *\n * @example\n * ```tsx\n * import { createToastRegion } from 'solidaria';\n * import { For, Show } from 'solid-js';\n *\n * function ToastRegion(props) {\n * let ref;\n * const { regionProps } = createToastRegion({ state: props.state });\n *\n * return (\n * <Show when={props.state.visibleToasts().length > 0}>\n * <div {...regionProps} ref={ref}>\n * <For each={props.state.visibleToasts()}>\n * {(toast) => <Toast toast={toast} state={props.state} />}\n * </For>\n * </div>\n * </Show>\n * );\n * }\n * ```\n */\nexport function createToastRegion<T>(props: AriaToastRegionProps<T>): ToastRegionAria {\n const visibleToasts = () =>\n typeof props.state.visibleToasts === \"function\" ? props.state.visibleToasts() : [];\n const regionRef = () => props.ref?.();\n const activeRegionRef = () => (visibleToasts().length > 0 ? regionRef() : undefined);\n\n const { landmarkProps } = createLandmark(\n () => ({\n role: \"region\",\n \"aria-label\": props[\"aria-label\"] ?? \"Notifications\",\n }),\n activeRegionRef,\n );\n\n let isHovered = false;\n let isFocused = false;\n let toastElements: HTMLElement[] = [];\n let previousVisibleToasts = visibleToasts();\n let focusedToastIndex = -1;\n let lastFocused: HTMLElement | null = null;\n\n const updateTimers = () => {\n if (isHovered || isFocused) {\n props.state.pauseAll();\n } else {\n props.state.resumeAll();\n }\n };\n\n const { hoverProps } = createHover({\n onHoverStart: () => {\n isHovered = true;\n updateTimers();\n },\n onHoverEnd: () => {\n isHovered = false;\n updateTimers();\n },\n });\n\n const getToastElements = () => {\n const element = regionRef();\n return element ? [...element.querySelectorAll<HTMLElement>('[role=\"alertdialog\"]')] : [];\n };\n\n const restoreLastFocused = () => {\n if (!lastFocused?.isConnected) {\n lastFocused = null;\n return;\n }\n\n if (getInteractionModality() === \"pointer\") {\n focusWithoutScrolling(lastFocused);\n } else {\n lastFocused.focus();\n }\n\n lastFocused = null;\n };\n\n const handleFocusIn = (e: FocusEvent) => {\n const currentTarget = e.currentTarget as HTMLElement;\n const relatedTarget = e.relatedTarget as HTMLElement | null;\n\n if (!isFocused) {\n isFocused = true;\n if (relatedTarget && !currentTarget.contains(relatedTarget)) {\n lastFocused = relatedTarget;\n }\n updateTimers();\n }\n\n toastElements = getToastElements();\n const target =\n e.target instanceof Element ? e.target.closest<HTMLElement>('[role=\"alertdialog\"]') : null;\n focusedToastIndex = target ? toastElements.findIndex((toast) => toast === target) : -1;\n };\n\n const handleFocusOut = (e: FocusEvent) => {\n const target = e.relatedTarget as HTMLElement | null;\n const currentTarget = e.currentTarget as HTMLElement;\n if (!target || !currentTarget.contains(target)) {\n isFocused = false;\n focusedToastIndex = -1;\n updateTimers();\n }\n };\n\n createEffect(() => {\n const currentVisibleToasts = visibleToasts();\n const element = regionRef();\n\n if (focusedToastIndex === -1 || currentVisibleToasts.length === 0 || !element) {\n toastElements = [];\n previousVisibleToasts = currentVisibleToasts;\n return;\n }\n\n toastElements = getToastElements();\n\n const unchanged =\n previousVisibleToasts.length === currentVisibleToasts.length &&\n currentVisibleToasts.every((toast, index) => toast.key === previousVisibleToasts[index]?.key);\n\n if (unchanged) {\n previousVisibleToasts = currentVisibleToasts;\n return;\n }\n\n const allToasts = previousVisibleToasts.map((toast, index) => ({\n index,\n isRemoved: !currentVisibleToasts.some((currentToast) => currentToast.key === toast.key),\n }));\n const removedFocusedToastIndex = allToasts.findIndex(\n (toast) => toast.index === focusedToastIndex && toast.isRemoved,\n );\n\n if (removedFocusedToastIndex > -1) {\n if (getInteractionModality() === \"pointer\" && lastFocused?.isConnected) {\n focusWithoutScrolling(lastFocused);\n } else {\n let index = 0;\n let nextToast: number | undefined;\n let previousToast: number | undefined;\n\n while (index <= removedFocusedToastIndex) {\n if (!allToasts[index]?.isRemoved) {\n previousToast = Math.max(0, index - 1);\n }\n index++;\n }\n\n while (index < allToasts.length) {\n if (!allToasts[index]?.isRemoved) {\n nextToast = index - 1;\n break;\n }\n index++;\n }\n\n if (previousToast === undefined && nextToast === undefined) {\n previousToast = 0;\n }\n\n if (\n previousToast !== undefined &&\n previousToast >= 0 &&\n previousToast < toastElements.length\n ) {\n focusWithoutScrolling(toastElements[previousToast]);\n } else if (nextToast !== undefined && nextToast >= 0 && nextToast < toastElements.length) {\n focusWithoutScrolling(toastElements[nextToast]);\n }\n }\n }\n\n previousVisibleToasts = currentVisibleToasts;\n });\n\n createEffect(() => {\n if (visibleToasts().length === 0) {\n restoreLastFocused();\n }\n });\n\n onCleanup(() => {\n restoreLastFocused();\n });\n\n // Region props\n const regionProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n ...landmarkProps,\n ...hoverProps,\n tabIndex: -1,\n \"data-solidaria-top-layer\": \"true\",\n onFocusIn: handleFocusIn,\n onFocusOut: handleFocusOut,\n }));\n\n return {\n get regionProps() {\n return regionProps();\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toast.jsx","names":[],"sources":["../../src/toast/createToast.ts","../../src/toast/createToastRegion.ts"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/toast/useToast.ts\n\n/**\n * createToast hook for Solidaria\n *\n * Provides the accessibility implementation for a Toast component.\n *\n * Port of @react-aria/toast useToast.\n */\n\nimport { createMemo, createRenderEffect, createSignal } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { isServer } from \"@solidjs/web\";\nimport { type QueuedToast, type ToastState } from \"@proyecto-viviana/solid-stately\";\nimport { createId } from \"../ssr\";\n\nexport interface AriaToastProps<T> {\n /** The toast to display. */\n toast: QueuedToast<T>;\n /** The toast state from createToastState. */\n state: ToastState<T>;\n /** Whether the rendered toast includes a title element. */\n hasTitle?: boolean;\n /** Whether the rendered toast includes a description element. */\n hasDescription?: boolean;\n}\n\nexport interface ToastAria {\n /** Props for the toast container element. */\n toastProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the toast content element (contains the message). */\n contentProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the toast title element. */\n titleProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the toast description element. */\n descriptionProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the close button. */\n closeButtonProps: JSX.ButtonHTMLAttributes<HTMLButtonElement>;\n}\n\n/**\n * Provides the accessibility implementation for a Toast component.\n *\n * The toast uses role=\"alertdialog\" to announce content to screen readers.\n * The content area uses role=\"alert\" for the actual message.\n *\n * @example\n * ```tsx\n * import { createToast } from 'solidaria';\n *\n * function Toast(props) {\n * const {\n * toastProps,\n * contentProps,\n * titleProps,\n * closeButtonProps\n * } = createToast({ toast: props.toast, state: props.state });\n *\n * return (\n * <div {...toastProps}>\n * <div {...contentProps}>\n * <div {...titleProps}>{props.toast.content.title}</div>\n * </div>\n * <button {...closeButtonProps}>×</button>\n * </div>\n * );\n * }\n * ```\n */\nexport function createToast<T>(props: AriaToastProps<T>): ToastAria {\n const titleId = createId();\n const descriptionId = createId();\n const hasTitle = props.hasTitle ?? true;\n const hasDescription = props.hasDescription ?? true;\n\n const close = () => {\n props.state.close(props.toast.key);\n };\n\n // RAC useToast hides the alert until after layout so the live region\n // announces on appear, not during SSR. `useLayoutEffect` → createRenderEffect.\n const [isVisible, setIsVisible] = createSignal(false, { ownedWrite: true });\n createRenderEffect(\n () => isServer,\n (server) => {\n if (!server) {\n setIsVisible(true);\n }\n },\n );\n\n // Toast container - role=\"alertdialog\" for screen readers\n const toastProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n role: \"alertdialog\",\n \"aria-modal\": \"false\",\n \"aria-labelledby\": hasTitle ? titleId : undefined,\n \"aria-describedby\": hasDescription ? descriptionId : undefined,\n tabIndex: 0,\n \"data-animation\": props.toast.animation,\n \"data-key\": props.toast.key,\n }));\n\n // Content area. Match RAC useToast: role=\"alert\" + aria-atomic; aria-hidden\n // until mounted. Getters keep the object stable so slotted context still\n // sees the post-layout visible state. role=alert is implicitly assertive —\n // do not add aria-live (RAC does not).\n const contentProps: JSX.HTMLAttributes<HTMLElement> = {\n role: \"alert\",\n \"aria-atomic\": \"true\",\n get \"aria-hidden\"() {\n return isVisible() ? undefined : \"true\";\n },\n };\n\n // Title props\n const titleProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n id: titleId,\n }));\n\n // Description props\n const descriptionProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n id: descriptionId,\n }));\n\n // Close button\n const closeButtonProps = createMemo<JSX.ButtonHTMLAttributes<HTMLButtonElement>>(() => ({\n \"aria-label\": \"Close\",\n onClick: close,\n }));\n\n return {\n get toastProps() {\n return toastProps();\n },\n get contentProps() {\n return contentProps;\n },\n get titleProps() {\n return titleProps();\n },\n get descriptionProps() {\n return descriptionProps();\n },\n get closeButtonProps() {\n return closeButtonProps();\n },\n };\n}\n","/*\n * Copyright 2025 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/toast/useToastRegion.ts\n\n/**\n * createToastRegion hook for Solidaria\n *\n * Provides the accessibility implementation for a ToastRegion component.\n * The region is a landmark that contains all visible toasts.\n *\n * Port of @react-aria/toast useToastRegion.\n */\n\nimport { onOwnedCleanup } from \"../utils/owner\";\nimport { createMemo, createTrackedEffect } from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { type ToastState } from \"@proyecto-viviana/solid-stately\";\nimport { createHover } from \"../interactions/createHover\";\nimport { getInteractionModality } from \"../interactions/createInteractionModality\";\nimport { createLandmark } from \"../landmark/createLandmark\";\nimport { focusWithoutScrolling } from \"../utils/focus\";\nexport interface AriaToastRegionProps<T> {\n /** The toast state from createToastState. */ state: ToastState<T>;\n /** The toast region element. Required for landmark navigation and focus recovery. */ ref?: Accessor<\n HTMLElement | undefined\n >;\n /** An accessible label for the region. */ \"aria-label\"?: string;\n}\nexport interface ToastRegionAria {\n /** Props for the toast region container element. */ regionProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Provides the accessibility implementation for a ToastRegion component.\n *\n * The region is a landmark (role=\"region\") that contains all visible toasts.\n * It pauses toast timers on hover or focus to give users time to read/interact.\n *\n * @example\n * ```tsx\n * import { createToastRegion } from 'solidaria';\n * import { For, Show } from \"solid-js\";\n *\n * function ToastRegion(props) {\n * let ref;\n * const { regionProps } = createToastRegion({ state: props.state });\n *\n * return (\n * <Show when={props.state.visibleToasts().length > 0}>\n * <div {...regionProps} ref={ref}>\n * <For each={props.state.visibleToasts()}>\n * {(toast) => <Toast toast={toast} state={props.state} />}\n * </For>\n * </div>\n * </Show>\n * );\n * }\n * ```\n */\nexport function createToastRegion<T>(props: AriaToastRegionProps<T>): ToastRegionAria {\n const visibleToasts = () =>\n typeof props.state.visibleToasts === \"function\" ? props.state.visibleToasts() : [];\n const regionRef = () => props.ref?.();\n const activeRegionRef = () => (visibleToasts().length > 0 ? regionRef() : undefined);\n\n const { landmarkProps } = createLandmark(\n () => ({\n role: \"region\",\n \"aria-label\": props[\"aria-label\"] ?? \"Notifications\",\n }),\n activeRegionRef,\n );\n\n let isHovered = false;\n let isFocused = false;\n let toastElements: HTMLElement[] = [];\n let previousVisibleToasts = visibleToasts();\n let focusedToastIndex = -1;\n let lastFocused: HTMLElement | null = null;\n\n const updateTimers = () => {\n if (isHovered || isFocused) {\n props.state.pauseAll();\n } else {\n props.state.resumeAll();\n }\n };\n\n const { hoverProps } = createHover({\n onHoverStart: () => {\n isHovered = true;\n updateTimers();\n },\n onHoverEnd: () => {\n isHovered = false;\n updateTimers();\n },\n });\n\n const getToastElements = () => {\n const element = regionRef();\n return element ? [...element.querySelectorAll<HTMLElement>('[role=\"alertdialog\"]')] : [];\n };\n\n const restoreLastFocused = () => {\n if (!lastFocused?.isConnected) {\n lastFocused = null;\n return;\n }\n\n if (getInteractionModality() === \"pointer\") {\n focusWithoutScrolling(lastFocused);\n } else {\n lastFocused.focus();\n }\n\n lastFocused = null;\n };\n\n const handleFocusIn = (e: FocusEvent) => {\n const currentTarget = e.currentTarget as HTMLElement;\n const relatedTarget = e.relatedTarget as HTMLElement | null;\n\n if (!isFocused) {\n isFocused = true;\n if (relatedTarget && !currentTarget.contains(relatedTarget)) {\n lastFocused = relatedTarget;\n }\n updateTimers();\n }\n\n toastElements = getToastElements();\n const target =\n e.target instanceof Element ? e.target.closest<HTMLElement>('[role=\"alertdialog\"]') : null;\n focusedToastIndex = target ? toastElements.findIndex((toast) => toast === target) : -1;\n };\n\n const handleFocusOut = (e: FocusEvent) => {\n const target = e.relatedTarget as HTMLElement | null;\n const currentTarget = e.currentTarget as HTMLElement;\n if (!target || !currentTarget.contains(target)) {\n isFocused = false;\n focusedToastIndex = -1;\n updateTimers();\n }\n };\n\n createTrackedEffect(() => {\n const currentVisibleToasts = visibleToasts();\n const element = regionRef();\n\n if (focusedToastIndex === -1 || currentVisibleToasts.length === 0 || !element) {\n toastElements = [];\n previousVisibleToasts = currentVisibleToasts;\n return;\n }\n\n toastElements = getToastElements();\n\n const unchanged =\n previousVisibleToasts.length === currentVisibleToasts.length &&\n currentVisibleToasts.every((toast, index) => toast.key === previousVisibleToasts[index]?.key);\n\n if (unchanged) {\n previousVisibleToasts = currentVisibleToasts;\n return;\n }\n\n const allToasts = previousVisibleToasts.map((toast, index) => ({\n index,\n isRemoved: !currentVisibleToasts.some((currentToast) => currentToast.key === toast.key),\n }));\n const removedFocusedToastIndex = allToasts.findIndex(\n (toast) => toast.index === focusedToastIndex && toast.isRemoved,\n );\n\n if (removedFocusedToastIndex > -1) {\n if (getInteractionModality() === \"pointer\" && lastFocused?.isConnected) {\n focusWithoutScrolling(lastFocused);\n } else {\n let index = 0;\n let nextToast: number | undefined;\n let previousToast: number | undefined;\n\n while (index <= removedFocusedToastIndex) {\n if (!allToasts[index]?.isRemoved) {\n previousToast = Math.max(0, index - 1);\n }\n index++;\n }\n\n while (index < allToasts.length) {\n if (!allToasts[index]?.isRemoved) {\n nextToast = index - 1;\n break;\n }\n index++;\n }\n\n if (previousToast === undefined && nextToast === undefined) {\n previousToast = 0;\n }\n\n if (\n previousToast !== undefined &&\n previousToast >= 0 &&\n previousToast < toastElements.length\n ) {\n focusWithoutScrolling(toastElements[previousToast]);\n } else if (nextToast !== undefined && nextToast >= 0 && nextToast < toastElements.length) {\n focusWithoutScrolling(toastElements[nextToast]);\n }\n }\n }\n\n previousVisibleToasts = currentVisibleToasts;\n });\n\n createTrackedEffect(() => {\n if (visibleToasts().length === 0) {\n restoreLastFocused();\n }\n });\n\n onOwnedCleanup(() => {\n restoreLastFocused();\n });\n\n // Region props\n const regionProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({\n ...landmarkProps,\n ...hoverProps,\n tabIndex: -1,\n \"data-solidaria-top-layer\": \"true\",\n onFocusIn: handleFocusIn,\n onFocusOut: handleFocusOut,\n }));\n\n return {\n get regionProps() {\n return regionProps();\n },\n };\n}\n"],"mappings":"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"}
|