@proyecto-viviana/solidaria 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunk/DragManager.js +627 -0
- package/dist/_chunk/DragManager.js.map +1 -0
- package/dist/_chunk/DragManager.jsx +627 -0
- package/dist/_chunk/DragManager.jsx.map +1 -0
- package/dist/_chunk/FocusScope.js +400 -0
- package/dist/_chunk/FocusScope.js.map +1 -0
- package/dist/_chunk/FocusScope.jsx +375 -0
- package/dist/_chunk/FocusScope.jsx.map +1 -0
- package/dist/_chunk/actiongroup.js +141 -0
- package/dist/_chunk/actiongroup.js.map +1 -0
- package/dist/_chunk/actiongroup.jsx +141 -0
- package/dist/_chunk/actiongroup.jsx.map +1 -0
- package/dist/_chunk/announce.js +207 -0
- package/dist/_chunk/announce.js.map +1 -0
- package/dist/_chunk/announce.jsx +207 -0
- package/dist/_chunk/announce.jsx.map +1 -0
- package/dist/_chunk/ariaHideOutside.js +122 -0
- package/dist/_chunk/ariaHideOutside.js.map +1 -0
- package/dist/_chunk/ariaHideOutside.jsx +122 -0
- package/dist/_chunk/ariaHideOutside.jsx.map +1 -0
- package/dist/_chunk/autocomplete.js +244 -0
- package/dist/_chunk/autocomplete.js.map +1 -0
- package/dist/_chunk/autocomplete.jsx +244 -0
- package/dist/_chunk/autocomplete.jsx.map +1 -0
- package/dist/_chunk/breadcrumbs.js +121 -0
- package/dist/_chunk/breadcrumbs.js.map +1 -0
- package/dist/_chunk/breadcrumbs.jsx +121 -0
- package/dist/_chunk/breadcrumbs.jsx.map +1 -0
- package/dist/_chunk/button.js +275 -0
- package/dist/_chunk/button.js.map +1 -0
- package/dist/_chunk/button.jsx +275 -0
- package/dist/_chunk/button.jsx.map +1 -0
- package/dist/_chunk/calendar.js +1037 -0
- package/dist/_chunk/calendar.js.map +1 -0
- package/dist/_chunk/calendar.jsx +1037 -0
- package/dist/_chunk/calendar.jsx.map +1 -0
- package/dist/_chunk/checkbox.js +235 -0
- package/dist/_chunk/checkbox.js.map +1 -0
- package/dist/_chunk/checkbox.jsx +235 -0
- package/dist/_chunk/checkbox.jsx.map +1 -0
- package/dist/_chunk/color.js +1458 -0
- package/dist/_chunk/color.js.map +1 -0
- package/dist/_chunk/color.jsx +1458 -0
- package/dist/_chunk/color.jsx.map +1 -0
- package/dist/_chunk/combobox.js +1062 -0
- package/dist/_chunk/combobox.js.map +1 -0
- package/dist/_chunk/combobox.jsx +1062 -0
- package/dist/_chunk/combobox.jsx.map +1 -0
- package/dist/_chunk/constants.js +19 -0
- package/dist/_chunk/constants.js.map +1 -0
- package/dist/_chunk/constants.jsx +19 -0
- package/dist/_chunk/constants.jsx.map +1 -0
- package/dist/_chunk/createCollator.js +61 -0
- package/dist/_chunk/createCollator.js.map +1 -0
- package/dist/_chunk/createCollator.jsx +61 -0
- package/dist/_chunk/createCollator.jsx.map +1 -0
- package/dist/_chunk/createCollectionRowInteraction.js +133 -0
- package/dist/_chunk/createCollectionRowInteraction.js.map +1 -0
- package/dist/_chunk/createCollectionRowInteraction.jsx +133 -0
- package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -0
- package/dist/_chunk/createField.js +55 -0
- package/dist/_chunk/createField.js.map +1 -0
- package/dist/_chunk/createField.jsx +55 -0
- package/dist/_chunk/createField.jsx.map +1 -0
- package/dist/_chunk/createFocus.js +105 -0
- package/dist/_chunk/createFocus.js.map +1 -0
- package/dist/_chunk/createFocus.jsx +105 -0
- package/dist/_chunk/createFocus.jsx.map +1 -0
- package/dist/_chunk/createFocusRing.js +54 -0
- package/dist/_chunk/createFocusRing.js.map +1 -0
- package/dist/_chunk/createFocusRing.jsx +54 -0
- package/dist/_chunk/createFocusRing.jsx.map +1 -0
- package/dist/_chunk/createFocusWithin.js +120 -0
- package/dist/_chunk/createFocusWithin.js.map +1 -0
- package/dist/_chunk/createFocusWithin.jsx +120 -0
- package/dist/_chunk/createFocusWithin.jsx.map +1 -0
- package/dist/_chunk/createFocusable.js +131 -0
- package/dist/_chunk/createFocusable.js.map +1 -0
- package/dist/_chunk/createFocusable.jsx +131 -0
- package/dist/_chunk/createFocusable.jsx.map +1 -0
- package/dist/_chunk/createFormReset.js +39 -0
- package/dist/_chunk/createFormReset.js.map +1 -0
- package/dist/_chunk/createFormReset.jsx +39 -0
- package/dist/_chunk/createFormReset.jsx.map +1 -0
- package/dist/_chunk/createFormValidation.js +135 -0
- package/dist/_chunk/createFormValidation.js.map +1 -0
- package/dist/_chunk/createFormValidation.jsx +135 -0
- package/dist/_chunk/createFormValidation.jsx.map +1 -0
- package/dist/_chunk/createHover.js +131 -0
- package/dist/_chunk/createHover.js.map +1 -0
- package/dist/_chunk/createHover.jsx +131 -0
- package/dist/_chunk/createHover.jsx.map +1 -0
- package/dist/_chunk/createInteractionModality.js +268 -0
- package/dist/_chunk/createInteractionModality.js.map +1 -0
- package/dist/_chunk/createInteractionModality.jsx +268 -0
- package/dist/_chunk/createInteractionModality.jsx.map +1 -0
- package/dist/_chunk/createLabel.js +47 -0
- package/dist/_chunk/createLabel.js.map +1 -0
- package/dist/_chunk/createLabel.jsx +47 -0
- package/dist/_chunk/createLabel.jsx.map +1 -0
- package/dist/_chunk/createLabels.js +32 -0
- package/dist/_chunk/createLabels.js.map +1 -0
- package/dist/_chunk/createLabels.jsx +32 -0
- package/dist/_chunk/createLabels.jsx.map +1 -0
- package/dist/_chunk/createLandmark.js +198 -0
- package/dist/_chunk/createLandmark.js.map +1 -0
- package/dist/_chunk/createLandmark.jsx +198 -0
- package/dist/_chunk/createLandmark.jsx.map +1 -0
- package/dist/_chunk/createOverlay.js +327 -0
- package/dist/_chunk/createOverlay.js.map +1 -0
- package/dist/_chunk/createOverlay.jsx +327 -0
- package/dist/_chunk/createOverlay.jsx.map +1 -0
- package/dist/_chunk/createPress.js +526 -0
- package/dist/_chunk/createPress.js.map +1 -0
- package/dist/_chunk/createPress.jsx +526 -0
- package/dist/_chunk/createPress.jsx.map +1 -0
- package/dist/_chunk/createProgressBar.js +82 -0
- package/dist/_chunk/createProgressBar.js.map +1 -0
- package/dist/_chunk/createProgressBar.jsx +82 -0
- package/dist/_chunk/createProgressBar.jsx.map +1 -0
- package/dist/_chunk/createSelectableItem.js +302 -0
- package/dist/_chunk/createSelectableItem.js.map +1 -0
- package/dist/_chunk/createSelectableItem.jsx +302 -0
- package/dist/_chunk/createSelectableItem.jsx.map +1 -0
- package/dist/_chunk/createStringFormatter.js +61 -0
- package/dist/_chunk/createStringFormatter.js.map +1 -0
- package/dist/_chunk/createStringFormatter.jsx +61 -0
- package/dist/_chunk/createStringFormatter.jsx.map +1 -0
- package/dist/_chunk/createToggle.js +159 -0
- package/dist/_chunk/createToggle.js.map +1 -0
- package/dist/_chunk/createToggle.jsx +159 -0
- package/dist/_chunk/createToggle.jsx.map +1 -0
- package/dist/_chunk/createTypeSelect.js +125 -0
- package/dist/_chunk/createTypeSelect.js.map +1 -0
- package/dist/_chunk/createTypeSelect.jsx +125 -0
- package/dist/_chunk/createTypeSelect.jsx.map +1 -0
- package/dist/_chunk/datepicker.js +1706 -0
- package/dist/_chunk/datepicker.js.map +1 -0
- package/dist/_chunk/datepicker.jsx +1706 -0
- package/dist/_chunk/datepicker.jsx.map +1 -0
- package/dist/_chunk/dialog.js +62 -0
- package/dist/_chunk/dialog.js.map +1 -0
- package/dist/_chunk/dialog.jsx +62 -0
- package/dist/_chunk/dialog.jsx.map +1 -0
- package/dist/_chunk/disclosure.js +185 -0
- package/dist/_chunk/disclosure.js.map +1 -0
- package/dist/_chunk/disclosure.jsx +185 -0
- package/dist/_chunk/disclosure.jsx.map +1 -0
- package/dist/_chunk/dnd.js +2395 -0
- package/dist/_chunk/dnd.js.map +1 -0
- package/dist/_chunk/dnd.jsx +2395 -0
- package/dist/_chunk/dnd.jsx.map +1 -0
- package/dist/_chunk/env.js +87 -0
- package/dist/_chunk/env.js.map +1 -0
- package/dist/_chunk/env.jsx +87 -0
- package/dist/_chunk/env.jsx.map +1 -0
- package/dist/_chunk/filterDOMProps.js +82 -0
- package/dist/_chunk/filterDOMProps.js.map +1 -0
- package/dist/_chunk/filterDOMProps.jsx +82 -0
- package/dist/_chunk/filterDOMProps.jsx.map +1 -0
- package/dist/_chunk/focus.js +399 -0
- package/dist/_chunk/focus.js.map +1 -0
- package/dist/_chunk/focus.jsx +399 -0
- package/dist/_chunk/focus.jsx.map +1 -0
- package/dist/_chunk/focus2.js +631 -0
- package/dist/_chunk/focus2.js.map +1 -0
- package/dist/_chunk/focus2.jsx +631 -0
- package/dist/_chunk/focus2.jsx.map +1 -0
- package/dist/_chunk/grid.js +623 -0
- package/dist/_chunk/grid.js.map +1 -0
- package/dist/_chunk/grid.jsx +623 -0
- package/dist/_chunk/grid.jsx.map +1 -0
- package/dist/_chunk/gridlist.js +369 -0
- package/dist/_chunk/gridlist.js.map +1 -0
- package/dist/_chunk/gridlist.jsx +369 -0
- package/dist/_chunk/gridlist.jsx.map +1 -0
- package/dist/_chunk/i18n.js +199 -0
- package/dist/_chunk/i18n.js.map +1 -0
- package/dist/_chunk/i18n.jsx +199 -0
- package/dist/_chunk/i18n.jsx.map +1 -0
- package/dist/_chunk/interactions.js +331 -0
- package/dist/_chunk/interactions.js.map +1 -0
- package/dist/_chunk/interactions.jsx +325 -0
- package/dist/_chunk/interactions.jsx.map +1 -0
- package/dist/_chunk/link.js +97 -0
- package/dist/_chunk/link.js.map +1 -0
- package/dist/_chunk/link.jsx +97 -0
- package/dist/_chunk/link.jsx.map +1 -0
- package/dist/_chunk/listbox.js +356 -0
- package/dist/_chunk/listbox.js.map +1 -0
- package/dist/_chunk/listbox.jsx +356 -0
- package/dist/_chunk/listbox.jsx.map +1 -0
- package/dist/_chunk/locale.js +173 -0
- package/dist/_chunk/locale.js.map +1 -0
- package/dist/_chunk/locale.jsx +167 -0
- package/dist/_chunk/locale.jsx.map +1 -0
- package/dist/_chunk/menu.js +519 -0
- package/dist/_chunk/menu.js.map +1 -0
- package/dist/_chunk/menu.jsx +519 -0
- package/dist/_chunk/menu.jsx.map +1 -0
- package/dist/_chunk/meter.js +33 -0
- package/dist/_chunk/meter.js.map +1 -0
- package/dist/_chunk/meter.jsx +33 -0
- package/dist/_chunk/meter.jsx.map +1 -0
- package/dist/_chunk/numberfield.js +259 -0
- package/dist/_chunk/numberfield.js.map +1 -0
- package/dist/_chunk/numberfield.jsx +259 -0
- package/dist/_chunk/numberfield.jsx.map +1 -0
- package/dist/_chunk/overlays.js +186 -0
- package/dist/_chunk/overlays.js.map +1 -0
- package/dist/_chunk/overlays.jsx +162 -0
- package/dist/_chunk/overlays.jsx.map +1 -0
- package/dist/_chunk/popover.js +574 -0
- package/dist/_chunk/popover.js.map +1 -0
- package/dist/_chunk/popover.jsx +574 -0
- package/dist/_chunk/popover.jsx.map +1 -0
- package/dist/_chunk/radio.js +320 -0
- package/dist/_chunk/radio.js.map +1 -0
- package/dist/_chunk/radio.jsx +320 -0
- package/dist/_chunk/radio.jsx.map +1 -0
- package/dist/_chunk/reactivity.js +21 -0
- package/dist/_chunk/reactivity.js.map +1 -0
- package/dist/_chunk/reactivity.jsx +21 -0
- package/dist/_chunk/reactivity.jsx.map +1 -0
- package/dist/_chunk/searchfield.js +210 -0
- package/dist/_chunk/searchfield.js.map +1 -0
- package/dist/_chunk/searchfield.jsx +210 -0
- package/dist/_chunk/searchfield.jsx.map +1 -0
- package/dist/_chunk/select.js +406 -0
- package/dist/_chunk/select.js.map +1 -0
- package/dist/_chunk/select.jsx +397 -0
- package/dist/_chunk/select.jsx.map +1 -0
- package/dist/_chunk/selection.js +666 -0
- package/dist/_chunk/selection.js.map +1 -0
- package/dist/_chunk/selection.jsx +666 -0
- package/dist/_chunk/selection.jsx.map +1 -0
- package/dist/_chunk/separator.js +29 -0
- package/dist/_chunk/separator.js.map +1 -0
- package/dist/_chunk/separator.jsx +29 -0
- package/dist/_chunk/separator.jsx.map +1 -0
- package/dist/_chunk/slider.js +256 -0
- package/dist/_chunk/slider.js.map +1 -0
- package/dist/_chunk/slider.jsx +256 -0
- package/dist/_chunk/slider.jsx.map +1 -0
- package/dist/_chunk/spinbutton.js +153 -0
- package/dist/_chunk/spinbutton.js.map +1 -0
- package/dist/_chunk/spinbutton.jsx +153 -0
- package/dist/_chunk/spinbutton.jsx.map +1 -0
- package/dist/_chunk/steplist.js +66 -0
- package/dist/_chunk/steplist.js.map +1 -0
- package/dist/_chunk/steplist.jsx +66 -0
- package/dist/_chunk/steplist.jsx.map +1 -0
- package/dist/_chunk/switch.js +34 -0
- package/dist/_chunk/switch.js.map +1 -0
- package/dist/_chunk/switch.jsx +34 -0
- package/dist/_chunk/switch.jsx.map +1 -0
- package/dist/_chunk/table.js +1088 -0
- package/dist/_chunk/table.js.map +1 -0
- package/dist/_chunk/table.jsx +1088 -0
- package/dist/_chunk/table.jsx.map +1 -0
- package/dist/_chunk/tabs.js +263 -0
- package/dist/_chunk/tabs.js.map +1 -0
- package/dist/_chunk/tabs.jsx +263 -0
- package/dist/_chunk/tabs.jsx.map +1 -0
- package/dist/_chunk/tag.js +322 -0
- package/dist/_chunk/tag.js.map +1 -0
- package/dist/_chunk/tag.jsx +322 -0
- package/dist/_chunk/tag.jsx.map +1 -0
- package/dist/_chunk/textfield.js +110 -0
- package/dist/_chunk/textfield.js.map +1 -0
- package/dist/_chunk/textfield.jsx +110 -0
- package/dist/_chunk/textfield.jsx.map +1 -0
- package/dist/_chunk/toast.js +250 -0
- package/dist/_chunk/toast.js.map +1 -0
- package/dist/_chunk/toast.jsx +250 -0
- package/dist/_chunk/toast.jsx.map +1 -0
- package/dist/_chunk/toolbar.js +226 -0
- package/dist/_chunk/toolbar.js.map +1 -0
- package/dist/_chunk/toolbar.jsx +226 -0
- package/dist/_chunk/toolbar.jsx.map +1 -0
- package/dist/_chunk/tooltip.js +185 -0
- package/dist/_chunk/tooltip.js.map +1 -0
- package/dist/_chunk/tooltip.jsx +185 -0
- package/dist/_chunk/tooltip.jsx.map +1 -0
- package/dist/_chunk/tree.js +452 -0
- package/dist/_chunk/tree.js.map +1 -0
- package/dist/_chunk/tree.jsx +452 -0
- package/dist/_chunk/tree.jsx.map +1 -0
- package/dist/_chunk/utils.js +705 -0
- package/dist/_chunk/utils.js.map +1 -0
- package/dist/_chunk/utils.jsx +705 -0
- package/dist/_chunk/utils.jsx.map +1 -0
- package/dist/_chunk/visually-hidden.js +93 -0
- package/dist/_chunk/visually-hidden.js.map +1 -0
- package/dist/_chunk/visually-hidden.jsx +93 -0
- package/dist/_chunk/visually-hidden.jsx.map +1 -0
- package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
- package/dist/actiongroup/index.js +2 -0
- package/dist/actiongroup/index.jsx +2 -0
- package/dist/autocomplete/createAutocomplete.d.ts +12 -7
- package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
- package/dist/autocomplete/index.js +2 -0
- package/dist/autocomplete/index.jsx +2 -0
- package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
- package/dist/breadcrumbs/index.js +2 -0
- package/dist/breadcrumbs/index.jsx +2 -0
- package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
- package/dist/button/index.js +2 -0
- package/dist/button/index.jsx +2 -0
- package/dist/calendar/createCalendar.d.ts.map +1 -1
- package/dist/calendar/createCalendarCell.d.ts.map +1 -1
- package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
- package/dist/calendar/createCalendarMonthPicker.d.ts +41 -0
- package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -0
- package/dist/calendar/createCalendarYearPicker.d.ts +49 -0
- package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -0
- package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
- package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
- package/dist/calendar/index.d.ts +2 -0
- package/dist/calendar/index.d.ts.map +1 -1
- package/dist/calendar/index.js +2 -0
- package/dist/calendar/index.jsx +2 -0
- package/dist/calendar/intl/index.d.ts +1 -1
- package/dist/calendar/intl/index.d.ts.map +1 -1
- package/dist/calendar/utils.d.ts +4 -0
- package/dist/calendar/utils.d.ts.map +1 -1
- package/dist/checkbox/createCheckbox.d.ts +4 -0
- package/dist/checkbox/createCheckbox.d.ts.map +1 -1
- package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
- package/dist/checkbox/index.js +2 -0
- package/dist/checkbox/index.jsx +2 -0
- package/dist/collections/index.js +160 -0
- package/dist/collections/index.js.map +1 -0
- package/dist/collections/index.jsx +160 -0
- package/dist/collections/index.jsx.map +1 -0
- package/dist/color/createColorArea.d.ts.map +1 -1
- package/dist/color/createColorField.d.ts.map +1 -1
- package/dist/color/createColorSlider.d.ts.map +1 -1
- package/dist/color/createColorSwatch.d.ts.map +1 -1
- package/dist/color/createColorWheel.d.ts.map +1 -1
- package/dist/color/index.js +2 -0
- package/dist/color/index.jsx +2 -0
- package/dist/color/intl/index.d.ts +30 -0
- package/dist/color/intl/index.d.ts.map +1 -0
- package/dist/combobox/createComboBox.d.ts.map +1 -1
- package/dist/combobox/index.js +2 -0
- package/dist/combobox/index.jsx +2 -0
- package/dist/combobox/intl/generated-locales.d.ts +16 -0
- package/dist/combobox/intl/generated-locales.d.ts.map +1 -0
- package/dist/combobox/intl/index.d.ts +2 -2
- package/dist/combobox/intl/index.d.ts.map +1 -1
- package/dist/datepicker/createDateField.d.ts +45 -23
- package/dist/datepicker/createDateField.d.ts.map +1 -1
- package/dist/datepicker/createDatePicker.d.ts +34 -6
- package/dist/datepicker/createDatePicker.d.ts.map +1 -1
- package/dist/datepicker/createDatePickerGroup.d.ts +13 -13
- package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -1
- package/dist/datepicker/createDateRangePicker.d.ts +55 -7
- package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
- package/dist/datepicker/createDateSegment.d.ts +6 -15
- package/dist/datepicker/createDateSegment.d.ts.map +1 -1
- package/dist/datepicker/createDisplayNames.d.ts +17 -0
- package/dist/datepicker/createDisplayNames.d.ts.map +1 -0
- package/dist/datepicker/createTimeField.d.ts +12 -49
- package/dist/datepicker/createTimeField.d.ts.map +1 -1
- package/dist/datepicker/index.d.ts +3 -3
- package/dist/datepicker/index.d.ts.map +1 -1
- package/dist/datepicker/index.js +2 -0
- package/dist/datepicker/index.jsx +2 -0
- package/dist/datepicker/intl.d.ts +12 -0
- package/dist/datepicker/intl.d.ts.map +1 -0
- package/dist/dialog/index.js +2 -0
- package/dist/dialog/index.jsx +2 -0
- package/dist/disclosure/index.js +2 -0
- package/dist/disclosure/index.jsx +2 -0
- package/dist/dnd/DragManager.d.ts +86 -0
- package/dist/dnd/DragManager.d.ts.map +1 -0
- package/dist/dnd/DropTargetKeyboardNavigation.d.ts +42 -0
- package/dist/dnd/DropTargetKeyboardNavigation.d.ts.map +1 -0
- package/dist/dnd/createDrag.d.ts.map +1 -1
- package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
- package/dist/dnd/createDraggableItem.d.ts +12 -7
- package/dist/dnd/createDraggableItem.d.ts.map +1 -1
- package/dist/dnd/createDroppableCollection.d.ts +7 -15
- package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
- package/dist/dnd/index.d.ts +5 -1
- package/dist/dnd/index.d.ts.map +1 -1
- package/dist/dnd/index.js +3 -0
- package/dist/dnd/index.jsx +3 -0
- package/dist/dnd/intl/index.d.ts +39 -0
- package/dist/dnd/intl/index.d.ts.map +1 -0
- package/dist/dnd/utils.d.ts +7 -2
- package/dist/dnd/utils.d.ts.map +1 -1
- package/dist/focus/FocusScope.d.ts +7 -0
- package/dist/focus/FocusScope.d.ts.map +1 -1
- package/dist/focus/index.d.ts +2 -1
- package/dist/focus/index.d.ts.map +1 -1
- package/dist/focus/index.js +3 -0
- package/dist/focus/index.jsx +3 -0
- package/dist/focus/virtualFocus.d.ts +26 -0
- package/dist/focus/virtualFocus.d.ts.map +1 -0
- package/dist/form/createFormValidation.d.ts.map +1 -1
- package/dist/form/index.js +3 -0
- package/dist/form/index.jsx +3 -0
- package/dist/grid/index.js +2 -0
- package/dist/grid/index.jsx +2 -0
- package/dist/gridlist/createGridList.d.ts +7 -1
- package/dist/gridlist/createGridList.d.ts.map +1 -1
- package/dist/gridlist/createGridListItem.d.ts +1 -1
- package/dist/gridlist/createGridListItem.d.ts.map +1 -1
- package/dist/gridlist/createGridListSection.d.ts +15 -0
- package/dist/gridlist/createGridListSection.d.ts.map +1 -0
- package/dist/gridlist/index.d.ts +2 -1
- package/dist/gridlist/index.d.ts.map +1 -1
- package/dist/gridlist/index.js +2 -0
- package/dist/gridlist/index.jsx +2 -0
- package/dist/gridlist/types.d.ts +50 -0
- package/dist/gridlist/types.d.ts.map +1 -1
- package/dist/i18n/index.js +5 -0
- package/dist/i18n/index.jsx +5 -0
- package/dist/index.d.ts +10 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +77 -18311
- package/dist/index.jsx +77 -18242
- package/dist/interactions/FocusableProvider.d.ts.map +1 -1
- package/dist/interactions/PressEvent.d.ts +11 -0
- package/dist/interactions/PressEvent.d.ts.map +1 -1
- package/dist/interactions/createFocus.d.ts.map +1 -1
- package/dist/interactions/createFocusWithin.d.ts.map +1 -1
- package/dist/interactions/createInteractionModality.d.ts +0 -1
- package/dist/interactions/createInteractionModality.d.ts.map +1 -1
- package/dist/interactions/createKeyboard.d.ts.map +1 -1
- package/dist/interactions/createPress.d.ts.map +1 -1
- package/dist/interactions/index.js +9 -0
- package/dist/interactions/index.jsx +9 -0
- package/dist/label/createLabels.d.ts.map +1 -1
- package/dist/label/index.js +4 -0
- package/dist/label/index.jsx +4 -0
- package/dist/landmark/index.js +2 -0
- package/dist/landmark/index.jsx +2 -0
- package/dist/link/index.js +2 -0
- package/dist/link/index.jsx +2 -0
- package/dist/listbox/createListBox.d.ts +37 -0
- 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/listbox/index.js +2 -0
- package/dist/listbox/index.jsx +2 -0
- package/dist/live-announcer/index.js +2 -0
- package/dist/live-announcer/index.jsx +2 -0
- package/dist/menu/createMenu.d.ts +7 -4
- package/dist/menu/createMenu.d.ts.map +1 -1
- package/dist/menu/createMenuItem.d.ts +9 -1
- package/dist/menu/createMenuItem.d.ts.map +1 -1
- package/dist/menu/index.js +2 -0
- package/dist/menu/index.jsx +2 -0
- package/dist/meter/index.js +2 -0
- package/dist/meter/index.jsx +2 -0
- package/dist/numberfield/createNumberField.d.ts.map +1 -1
- package/dist/numberfield/index.js +2 -0
- package/dist/numberfield/index.jsx +2 -0
- package/dist/overlays/index.js +4 -0
- package/dist/overlays/index.jsx +4 -0
- package/dist/popover/calculatePosition.d.ts +2 -0
- package/dist/popover/calculatePosition.d.ts.map +1 -1
- package/dist/popover/createOverlayPosition.d.ts +8 -0
- package/dist/popover/createOverlayPosition.d.ts.map +1 -1
- package/dist/popover/index.js +2 -0
- package/dist/popover/index.jsx +2 -0
- package/dist/progress/index.js +2 -0
- package/dist/progress/index.jsx +2 -0
- package/dist/radio/createRadio.d.ts +2 -0
- package/dist/radio/createRadio.d.ts.map +1 -1
- package/dist/radio/index.js +2 -0
- package/dist/radio/index.jsx +2 -0
- package/dist/searchfield/index.js +2 -0
- package/dist/searchfield/index.jsx +2 -0
- package/dist/select/createSelect.d.ts +2 -0
- package/dist/select/createSelect.d.ts.map +1 -1
- package/dist/select/index.js +2 -0
- package/dist/select/index.jsx +2 -0
- package/dist/selection/DOMLayoutDelegate.d.ts +58 -0
- package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -0
- package/dist/selection/ListKeyboardDelegate.d.ts +95 -0
- package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -0
- package/dist/selection/constants.d.ts +15 -0
- package/dist/selection/constants.d.ts.map +1 -0
- package/dist/selection/createCollectionRowInteraction.d.ts +13 -0
- package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -0
- package/dist/selection/createScrollIntoViewOnFocus.d.ts +31 -0
- package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -0
- package/dist/selection/createSelectableCollection.d.ts +69 -0
- package/dist/selection/createSelectableCollection.d.ts.map +1 -0
- package/dist/selection/createSelectableItem.d.ts +154 -0
- package/dist/selection/createSelectableItem.d.ts.map +1 -0
- package/dist/selection/createSelectableList.d.ts +43 -0
- package/dist/selection/createSelectableList.d.ts.map +1 -0
- package/dist/selection/createTypeSelect.d.ts.map +1 -1
- package/dist/selection/index.d.ts +9 -0
- package/dist/selection/index.d.ts.map +1 -1
- package/dist/selection/index.js +5 -0
- package/dist/selection/index.jsx +5 -0
- package/dist/selection/selectItem.d.ts +29 -0
- package/dist/selection/selectItem.d.ts.map +1 -0
- package/dist/selection/utils.d.ts +40 -0
- package/dist/selection/utils.d.ts.map +1 -0
- package/dist/separator/index.js +2 -0
- package/dist/separator/index.jsx +2 -0
- package/dist/slider/createSlider.d.ts.map +1 -1
- package/dist/slider/index.js +2 -0
- package/dist/slider/index.jsx +2 -0
- package/dist/spinbutton/createSpinButton.d.ts +41 -0
- package/dist/spinbutton/createSpinButton.d.ts.map +1 -0
- package/dist/spinbutton/index.d.ts +3 -0
- package/dist/spinbutton/index.d.ts.map +1 -0
- package/dist/spinbutton/index.js +2 -0
- package/dist/spinbutton/index.jsx +2 -0
- package/dist/spinbutton/intl.d.ts +5 -0
- package/dist/spinbutton/intl.d.ts.map +1 -0
- package/dist/ssr/index.d.ts +17 -0
- package/dist/ssr/index.d.ts.map +1 -1
- package/dist/ssr/index.js +299 -0
- package/dist/ssr/index.js.map +1 -0
- package/dist/ssr/index.jsx +292 -0
- package/dist/ssr/index.jsx.map +1 -0
- package/dist/steplist/index.js +2 -0
- package/dist/steplist/index.jsx +2 -0
- package/dist/switch/createSwitch.d.ts +4 -0
- package/dist/switch/createSwitch.d.ts.map +1 -1
- package/dist/switch/index.js +2 -0
- package/dist/switch/index.jsx +2 -0
- package/dist/table/createTable.d.ts.map +1 -1
- package/dist/table/createTableColumnHeader.d.ts.map +1 -1
- package/dist/table/createTableRow.d.ts +1 -1
- package/dist/table/createTableRow.d.ts.map +1 -1
- package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
- package/dist/table/createTableSelectionCheckbox.d.ts.map +1 -1
- package/dist/table/index.js +2 -0
- package/dist/table/index.jsx +2 -0
- package/dist/table/types.d.ts +35 -1
- package/dist/table/types.d.ts.map +1 -1
- package/dist/table/utils.d.ts +15 -0
- package/dist/table/utils.d.ts.map +1 -0
- package/dist/tabs/createTabs.d.ts +5 -3
- package/dist/tabs/createTabs.d.ts.map +1 -1
- package/dist/tabs/index.js +2 -0
- package/dist/tabs/index.jsx +2 -0
- package/dist/tag/createTag.d.ts +2 -0
- package/dist/tag/createTag.d.ts.map +1 -1
- package/dist/tag/createTagGroup.d.ts +7 -0
- package/dist/tag/createTagGroup.d.ts.map +1 -1
- package/dist/tag/index.js +2 -0
- package/dist/tag/index.jsx +2 -0
- package/dist/textfield/index.js +2 -0
- package/dist/textfield/index.jsx +2 -0
- package/dist/toast/createToast.d.ts.map +1 -1
- package/dist/toast/index.js +2 -0
- package/dist/toast/index.jsx +2 -0
- package/dist/toggle/createToggle.d.ts +4 -0
- package/dist/toggle/createToggle.d.ts.map +1 -1
- package/dist/toggle/index.js +3 -0
- package/dist/toggle/index.jsx +3 -0
- package/dist/toolbar/createToolbar.d.ts +1 -1
- package/dist/toolbar/createToolbar.d.ts.map +1 -1
- package/dist/toolbar/index.js +2 -0
- package/dist/toolbar/index.jsx +2 -0
- package/dist/tooltip/index.js +2 -0
- package/dist/tooltip/index.jsx +2 -0
- package/dist/tree/createTree.d.ts +5 -1
- package/dist/tree/createTree.d.ts.map +1 -1
- package/dist/tree/createTreeItem.d.ts +1 -1
- package/dist/tree/createTreeItem.d.ts.map +1 -1
- package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
- package/dist/tree/index.js +2 -0
- package/dist/tree/index.jsx +2 -0
- package/dist/tree/types.d.ts +10 -0
- package/dist/tree/types.d.ts.map +1 -1
- package/dist/utils/animation.d.ts +60 -0
- package/dist/utils/animation.d.ts.map +1 -0
- package/dist/utils/dom.d.ts +49 -2
- package/dist/utils/dom.d.ts.map +1 -1
- package/dist/utils/index.d.ts +4 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.jsx +6 -0
- package/dist/utils/keyboard.d.ts +17 -0
- package/dist/utils/keyboard.d.ts.map +1 -0
- package/dist/utils/mergeProps.d.ts.map +1 -1
- package/dist/utils/scrollIntoView.d.ts +30 -0
- package/dist/utils/scrollIntoView.d.ts.map +1 -0
- package/dist/visually-hidden/index.js +2 -0
- package/dist/visually-hidden/index.jsx +2 -0
- package/package.json +304 -3
- package/src/actiongroup/createActionGroup.ts +26 -109
- package/src/autocomplete/createAutocomplete.ts +202 -35
- package/src/breadcrumbs/createBreadcrumbs.ts +12 -4
- package/src/button/createToggleButtonGroup.ts +19 -14
- package/src/calendar/createCalendar.ts +5 -4
- package/src/calendar/createCalendarCell.ts +36 -5
- package/src/calendar/createCalendarGrid.ts +47 -12
- package/src/calendar/createCalendarMonthPicker.ts +105 -0
- package/src/calendar/createCalendarYearPicker.ts +144 -0
- package/src/calendar/createRangeCalendar.ts +27 -15
- package/src/calendar/createRangeCalendarCell.ts +17 -3
- package/src/calendar/index.ts +17 -0
- package/src/calendar/intl/index.ts +8 -0
- package/src/calendar/utils.ts +4 -0
- package/src/checkbox/createCheckbox.ts +10 -0
- package/src/checkbox/createCheckboxGroupItem.ts +12 -16
- package/src/color/createColorArea.ts +17 -10
- package/src/color/createColorField.ts +8 -1
- package/src/color/createColorSlider.ts +1 -2
- package/src/color/createColorSwatch.ts +4 -2
- package/src/color/createColorWheel.ts +0 -6
- package/src/color/intl/index.ts +316 -0
- package/src/combobox/createComboBox.ts +35 -4
- package/src/combobox/intl/generated-locales.ts +635 -0
- package/src/combobox/intl/index.ts +8 -2
- package/src/datepicker/createDateField.ts +228 -213
- package/src/datepicker/createDatePicker.ts +157 -146
- package/src/datepicker/createDatePickerGroup.ts +88 -82
- package/src/datepicker/createDateRangePicker.ts +230 -179
- package/src/datepicker/createDateSegment.ts +386 -384
- package/src/datepicker/createDisplayNames.ts +45 -0
- package/src/datepicker/createTimeField.ts +36 -129
- package/src/datepicker/index.ts +13 -14
- package/src/datepicker/intl.ts +633 -0
- package/src/dnd/DragManager.ts +693 -0
- package/src/dnd/DropTargetKeyboardNavigation.ts +337 -0
- package/src/dnd/createDrag.ts +31 -5
- package/src/dnd/createDraggableCollection.ts +33 -15
- package/src/dnd/createDraggableItem.ts +92 -5
- package/src/dnd/createDroppableCollection.ts +488 -371
- package/src/dnd/index.ts +11 -0
- package/src/dnd/intl/ar-AE.json +29 -0
- package/src/dnd/intl/bg-BG.json +29 -0
- package/src/dnd/intl/cs-CZ.json +29 -0
- package/src/dnd/intl/da-DK.json +29 -0
- package/src/dnd/intl/de-DE.json +29 -0
- package/src/dnd/intl/el-GR.json +29 -0
- package/src/dnd/intl/en-US.json +29 -0
- package/src/dnd/intl/es-ES.json +29 -0
- package/src/dnd/intl/et-EE.json +29 -0
- package/src/dnd/intl/fi-FI.json +29 -0
- package/src/dnd/intl/fr-FR.json +29 -0
- package/src/dnd/intl/he-IL.json +29 -0
- package/src/dnd/intl/hr-HR.json +29 -0
- package/src/dnd/intl/hu-HU.json +29 -0
- package/src/dnd/intl/index.ts +139 -0
- package/src/dnd/intl/it-IT.json +29 -0
- package/src/dnd/intl/ja-JP.json +29 -0
- package/src/dnd/intl/ko-KR.json +29 -0
- package/src/dnd/intl/lt-LT.json +29 -0
- package/src/dnd/intl/lv-LV.json +29 -0
- package/src/dnd/intl/nb-NO.json +29 -0
- package/src/dnd/intl/nl-NL.json +29 -0
- package/src/dnd/intl/pl-PL.json +29 -0
- package/src/dnd/intl/pt-BR.json +29 -0
- package/src/dnd/intl/pt-PT.json +29 -0
- package/src/dnd/intl/ro-RO.json +29 -0
- package/src/dnd/intl/ru-RU.json +29 -0
- package/src/dnd/intl/sk-SK.json +29 -0
- package/src/dnd/intl/sl-SI.json +29 -0
- package/src/dnd/intl/sr-SP.json +29 -0
- package/src/dnd/intl/sv-SE.json +29 -0
- package/src/dnd/intl/tr-TR.json +29 -0
- package/src/dnd/intl/uk-UA.json +29 -0
- package/src/dnd/intl/zh-CN.json +29 -0
- package/src/dnd/intl/zh-TW.json +29 -0
- package/src/dnd/utils.ts +63 -3
- package/src/focus/FocusScope.tsx +266 -24
- package/src/focus/index.ts +8 -0
- package/src/focus/virtualFocus.ts +55 -0
- package/src/form/createFormValidation.ts +8 -1
- package/src/gridlist/createGridList.ts +187 -48
- package/src/gridlist/createGridListItem.ts +87 -155
- package/src/gridlist/createGridListSection.ts +54 -0
- package/src/gridlist/index.ts +3 -0
- package/src/gridlist/types.ts +47 -0
- package/src/index.ts +51 -3
- package/src/interactions/FocusableProvider.tsx +11 -6
- package/src/interactions/PressEvent.ts +14 -0
- package/src/interactions/createFocus.ts +26 -21
- package/src/interactions/createFocusWithin.ts +23 -24
- package/src/interactions/createInteractionModality.ts +26 -15
- package/src/interactions/createKeyboard.ts +10 -0
- package/src/interactions/createPress.ts +29 -6
- package/src/label/createLabels.ts +7 -4
- package/src/listbox/createListBox.ts +203 -10
- package/src/listbox/createOption.ts +84 -74
- package/src/menu/createMenu.ts +93 -16
- package/src/menu/createMenuItem.ts +253 -41
- package/src/numberfield/createNumberField.ts +82 -14
- package/src/popover/calculatePosition.ts +19 -7
- package/src/popover/createOverlayPosition.ts +9 -0
- package/src/radio/createRadio.ts +19 -2
- package/src/select/createSelect.ts +41 -4
- package/src/selection/DOMLayoutDelegate.ts +102 -0
- package/src/selection/ListKeyboardDelegate.ts +398 -0
- package/src/selection/constants.ts +16 -0
- package/src/selection/createCollectionRowInteraction.ts +209 -0
- package/src/selection/createScrollIntoViewOnFocus.ts +65 -0
- package/src/selection/createSelectableCollection.ts +645 -0
- package/src/selection/createSelectableItem.ts +512 -0
- package/src/selection/createSelectableList.ts +93 -0
- package/src/selection/createTypeSelect.ts +112 -51
- package/src/selection/index.ts +31 -0
- package/src/selection/selectItem.ts +80 -0
- package/src/selection/utils.ts +82 -0
- package/src/slider/createSlider.ts +48 -1
- package/src/spinbutton/createSpinButton.ts +163 -0
- package/src/spinbutton/index.ts +10 -0
- package/src/spinbutton/intl.ts +115 -0
- package/src/ssr/index.tsx +31 -0
- package/src/switch/createSwitch.ts +10 -0
- package/src/table/createTable.ts +82 -27
- package/src/table/createTableColumnHeader.ts +10 -0
- package/src/table/createTableRow.ts +208 -203
- package/src/table/createTableSelectAllCheckbox.ts +3 -4
- package/src/table/createTableSelectionCheckbox.ts +24 -1
- package/src/table/types.ts +37 -1
- package/src/table/utils.ts +41 -0
- package/src/tabs/createTabs.ts +95 -24
- package/src/tag/createTag.ts +30 -36
- package/src/tag/createTagGroup.ts +92 -0
- package/src/toast/createToast.ts +1 -0
- package/src/toggle/createToggle.ts +20 -0
- package/src/toolbar/createToolbar.ts +43 -94
- package/src/tree/createTree.ts +165 -52
- package/src/tree/createTreeItem.ts +105 -120
- package/src/tree/createTreeSelectionCheckbox.ts +14 -1
- package/src/tree/types.ts +10 -0
- package/src/utils/animation.ts +243 -0
- package/src/utils/dom.ts +216 -25
- package/src/utils/index.ts +10 -0
- package/src/utils/keyboard.ts +25 -0
- package/src/utils/mergeProps.ts +8 -1
- package/src/utils/scrollIntoView.ts +181 -0
- package/dist/datepicker/createTimeSegment.d.ts +0 -29
- package/dist/datepicker/createTimeSegment.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.jsx.map +0 -1
- package/src/datepicker/createTimeSegment.ts +0 -352
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { createSignal, onMount, onCleanup, type Accessor } from "solid-js";
|
|
9
9
|
import { type MaybeAccessor, access } from "../utils";
|
|
10
10
|
import { useLocale } from "../i18n";
|
|
11
|
-
import { getOwnerDocument, isFocusable } from "../utils";
|
|
11
|
+
import { getOwnerDocument, isFocusable, isTabbable } from "../utils";
|
|
12
12
|
import { focusSafely } from "../utils/focus";
|
|
13
13
|
|
|
14
14
|
export type Orientation = "horizontal" | "vertical";
|
|
@@ -26,7 +26,7 @@ export interface ToolbarAria {
|
|
|
26
26
|
/** Props for the toolbar container element. */
|
|
27
27
|
toolbarProps: {
|
|
28
28
|
role: "toolbar" | "group";
|
|
29
|
-
"aria-orientation"
|
|
29
|
+
"aria-orientation"?: Orientation;
|
|
30
30
|
"aria-label"?: string;
|
|
31
31
|
"aria-labelledby"?: string;
|
|
32
32
|
tabIndex?: number;
|
|
@@ -50,17 +50,6 @@ interface FocusManager {
|
|
|
50
50
|
focusLast(opts?: FocusManagerOptions): HTMLElement | null;
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
function isTabbable(element: Element): boolean {
|
|
54
|
-
if (!isFocusable(element)) {
|
|
55
|
-
return false;
|
|
56
|
-
}
|
|
57
|
-
const tabIndex = element.getAttribute("tabindex");
|
|
58
|
-
if (tabIndex != null) {
|
|
59
|
-
return parseInt(tabIndex, 10) >= 0;
|
|
60
|
-
}
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
|
|
64
53
|
function getFocusableElements(root: Element, tabbable = false): HTMLElement[] {
|
|
65
54
|
const elements: HTMLElement[] = [];
|
|
66
55
|
const filter = tabbable ? isTabbable : isFocusable;
|
|
@@ -90,47 +79,6 @@ function getActiveElement(doc: Document): Element | null {
|
|
|
90
79
|
return activeElement;
|
|
91
80
|
}
|
|
92
81
|
|
|
93
|
-
const TEXT_INPUT_TYPES = new Set([
|
|
94
|
-
"",
|
|
95
|
-
"text",
|
|
96
|
-
"search",
|
|
97
|
-
"url",
|
|
98
|
-
"tel",
|
|
99
|
-
"password",
|
|
100
|
-
"email",
|
|
101
|
-
"number",
|
|
102
|
-
"date",
|
|
103
|
-
"datetime-local",
|
|
104
|
-
"month",
|
|
105
|
-
"time",
|
|
106
|
-
"week",
|
|
107
|
-
]);
|
|
108
|
-
|
|
109
|
-
function isTextInputLikeElement(target: EventTarget | null): boolean {
|
|
110
|
-
if (!(target instanceof HTMLElement)) {
|
|
111
|
-
return false;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
if (target.isContentEditable || !!target.closest('[contenteditable="true"]')) {
|
|
115
|
-
return true;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
if (target.getAttribute("role") === "textbox") {
|
|
119
|
-
return true;
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
if (target instanceof HTMLTextAreaElement || target instanceof HTMLSelectElement) {
|
|
123
|
-
return true;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
if (target instanceof HTMLInputElement) {
|
|
127
|
-
const type = target.type.toLowerCase();
|
|
128
|
-
return TEXT_INPUT_TYPES.has(type);
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
return false;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
82
|
function createFocusManager(ref: Accessor<HTMLElement | undefined>): FocusManager {
|
|
135
83
|
return {
|
|
136
84
|
focusNext(opts: FocusManagerOptions = {}) {
|
|
@@ -292,23 +240,7 @@ export function createToolbar(props: AriaToolbarProps = {}): ToolbarAria {
|
|
|
292
240
|
return;
|
|
293
241
|
}
|
|
294
242
|
|
|
295
|
-
|
|
296
|
-
if (e.altKey || e.ctrlKey || e.metaKey || e.shiftKey) {
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
// Text entry controls should keep arrow/home/end for caret/value navigation.
|
|
301
|
-
if (isTextInputLikeElement(target)) {
|
|
302
|
-
switch (e.key) {
|
|
303
|
-
case "ArrowRight":
|
|
304
|
-
case "ArrowLeft":
|
|
305
|
-
case "ArrowDown":
|
|
306
|
-
case "ArrowUp":
|
|
307
|
-
case "Home":
|
|
308
|
-
case "End":
|
|
309
|
-
return;
|
|
310
|
-
}
|
|
311
|
-
}
|
|
243
|
+
const doc = getOwnerDocument(root);
|
|
312
244
|
|
|
313
245
|
const dir = locale().direction;
|
|
314
246
|
const isRTL = dir === "rtl";
|
|
@@ -349,18 +281,18 @@ export function createToolbar(props: AriaToolbarProps = {}): ToolbarAria {
|
|
|
349
281
|
handled = true;
|
|
350
282
|
}
|
|
351
283
|
break;
|
|
352
|
-
case "Home":
|
|
353
|
-
focusManager.focusFirst({ tabbable: true });
|
|
354
|
-
handled = true;
|
|
355
|
-
break;
|
|
356
|
-
case "End":
|
|
357
|
-
focusManager.focusLast({ tabbable: true });
|
|
358
|
-
handled = true;
|
|
359
|
-
break;
|
|
360
284
|
case "Tab":
|
|
361
|
-
//
|
|
362
|
-
|
|
363
|
-
|
|
285
|
+
// Move focus to the first/last child so the browser's own Tab handling
|
|
286
|
+
// then carries focus OUT of the whole toolbar. Faithful to upstream
|
|
287
|
+
// useToolbar: there is no roving tabindex — every item stays tabbable,
|
|
288
|
+
// so a bare Tab would otherwise step to the next item instead of leaving.
|
|
289
|
+
lastFocusedElement = getActiveElement(doc);
|
|
290
|
+
if (e.shiftKey) {
|
|
291
|
+
focusManager.focusFirst({ tabbable: true });
|
|
292
|
+
} else {
|
|
293
|
+
focusManager.focusLast({ tabbable: true });
|
|
294
|
+
}
|
|
295
|
+
return;
|
|
364
296
|
}
|
|
365
297
|
|
|
366
298
|
if (handled) {
|
|
@@ -369,24 +301,36 @@ export function createToolbar(props: AriaToolbarProps = {}): ToolbarAria {
|
|
|
369
301
|
}
|
|
370
302
|
};
|
|
371
303
|
|
|
372
|
-
//
|
|
373
|
-
const
|
|
304
|
+
// Record the last focused child when focus moves out of the toolbar.
|
|
305
|
+
const onBlur = (e: FocusEvent) => {
|
|
306
|
+
const root = toolbarRef;
|
|
307
|
+
if (!root) return;
|
|
374
308
|
if (isInToolbar()) return;
|
|
375
309
|
|
|
376
|
-
|
|
310
|
+
const relatedTarget = e.relatedTarget as Node | null;
|
|
311
|
+
if (!(relatedTarget && root.contains(relatedTarget)) && !lastFocusedElement) {
|
|
312
|
+
lastFocusedElement = e.target as Element;
|
|
313
|
+
}
|
|
314
|
+
};
|
|
315
|
+
|
|
316
|
+
// Restore focus to the last focused child when focus returns into the toolbar.
|
|
317
|
+
// If that element was removed, focus() is a no-op and the browser lands on the
|
|
318
|
+
// first/last child per direction — matching upstream useToolbar.
|
|
319
|
+
const onFocus = (e: FocusEvent) => {
|
|
377
320
|
const root = toolbarRef;
|
|
378
321
|
if (!root) return;
|
|
322
|
+
if (isInToolbar()) return;
|
|
379
323
|
|
|
380
|
-
const relatedTarget = e.relatedTarget as
|
|
381
|
-
|
|
382
|
-
// If focus came from outside and we have a last focused element
|
|
324
|
+
const relatedTarget = e.relatedTarget as Node | null;
|
|
325
|
+
const target = e.target;
|
|
383
326
|
if (
|
|
384
327
|
lastFocusedElement &&
|
|
385
|
-
root.contains(
|
|
386
|
-
|
|
328
|
+
!(relatedTarget && root.contains(relatedTarget)) &&
|
|
329
|
+
target instanceof Node &&
|
|
330
|
+
root.contains(target)
|
|
387
331
|
) {
|
|
388
|
-
// Restore focus to the last focused element
|
|
389
332
|
focusSafely(lastFocusedElement as HTMLElement);
|
|
333
|
+
lastFocusedElement = null;
|
|
390
334
|
}
|
|
391
335
|
};
|
|
392
336
|
|
|
@@ -394,13 +338,15 @@ export function createToolbar(props: AriaToolbarProps = {}): ToolbarAria {
|
|
|
394
338
|
const setRef = (el: HTMLElement) => {
|
|
395
339
|
toolbarRef = el;
|
|
396
340
|
|
|
397
|
-
// Use capture phase
|
|
341
|
+
// Use capture phase so container handlers run before the focused child's.
|
|
398
342
|
el.addEventListener("keydown", onKeyDown, true);
|
|
399
343
|
el.addEventListener("focus", onFocus, true);
|
|
344
|
+
el.addEventListener("blur", onBlur, true);
|
|
400
345
|
|
|
401
346
|
onCleanup(() => {
|
|
402
347
|
el.removeEventListener("keydown", onKeyDown, true);
|
|
403
348
|
el.removeEventListener("focus", onFocus, true);
|
|
349
|
+
el.removeEventListener("blur", onBlur, true);
|
|
404
350
|
});
|
|
405
351
|
};
|
|
406
352
|
|
|
@@ -410,14 +356,17 @@ export function createToolbar(props: AriaToolbarProps = {}): ToolbarAria {
|
|
|
410
356
|
return isInToolbar() ? "group" : "toolbar";
|
|
411
357
|
},
|
|
412
358
|
get "aria-orientation"() {
|
|
359
|
+
// Upstream useToolbar emits aria-orientation unconditionally, on the
|
|
360
|
+
// nested role="group" too — not only on the root role="toolbar".
|
|
413
361
|
return orientation();
|
|
414
362
|
},
|
|
415
363
|
get "aria-label"() {
|
|
416
364
|
return ariaLabel();
|
|
417
365
|
},
|
|
418
366
|
get "aria-labelledby"() {
|
|
419
|
-
//
|
|
420
|
-
|
|
367
|
+
// Mirror useToolbar: `aria-label == null ? aria-labelledby : undefined`.
|
|
368
|
+
// An explicit empty-string aria-label still suppresses labelledby.
|
|
369
|
+
return ariaLabel() == null ? ariaLabelledby() : undefined;
|
|
421
370
|
},
|
|
422
371
|
ref: setRef,
|
|
423
372
|
},
|
package/src/tree/createTree.ts
CHANGED
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
* Based on @react-aria/tree/useTree.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { createMemo, type Accessor } from "solid-js";
|
|
6
|
+
import { createEffect, createMemo, type Accessor } from "solid-js";
|
|
7
7
|
import type { JSX } from "solid-js";
|
|
8
8
|
import { createId } from "@proyecto-viviana/solid-stately";
|
|
9
9
|
import type { TreeState, TreeCollection, Key } from "@proyecto-viviana/solid-stately";
|
|
10
10
|
import type { AriaTreeProps, TreeAria } from "./types";
|
|
11
|
+
import { scrollIntoViewport } from "../utils";
|
|
12
|
+
import { getInteractionModality } from "../interactions/createInteractionModality";
|
|
11
13
|
|
|
12
14
|
/**
|
|
13
15
|
* Metadata stored for a tree instance.
|
|
@@ -15,6 +17,10 @@ import type { AriaTreeProps, TreeAria } from "./types";
|
|
|
15
17
|
interface TreeData {
|
|
16
18
|
/** The generated ID for the tree. */
|
|
17
19
|
treeId: string;
|
|
20
|
+
/** How keyboard navigation behaves within row children. */
|
|
21
|
+
keyboardNavigationBehavior: "arrow" | "tab";
|
|
22
|
+
/** Text direction for row-child arrow navigation and tree expansion keys. */
|
|
23
|
+
direction: "ltr" | "rtl";
|
|
18
24
|
/** Actions registered for the tree. */
|
|
19
25
|
actions: {
|
|
20
26
|
onAction?: (key: Key) => void;
|
|
@@ -35,13 +41,45 @@ export function getTreeData<T extends object, C extends TreeCollection<T>>(
|
|
|
35
41
|
return treeDataMap.get(state);
|
|
36
42
|
}
|
|
37
43
|
|
|
44
|
+
/**
|
|
45
|
+
* Whether a key should be skipped during keyboard navigation. Disabled keys only
|
|
46
|
+
* block navigation under `disabledBehavior: "all"` (the default); under
|
|
47
|
+
* `"selection"` they remain focusable (selection is still blocked elsewhere).
|
|
48
|
+
* Mirrors `ListKeyboardDelegate.isDisabled` in React Aria.
|
|
49
|
+
*/
|
|
50
|
+
function isNavigationDisabled<T extends object, C extends TreeCollection<T>>(
|
|
51
|
+
state: TreeState<T, C>,
|
|
52
|
+
key: Key,
|
|
53
|
+
): boolean {
|
|
54
|
+
return state.isDisabled(key) && state.disabledBehavior === "all";
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Walks from `startKey` via `step` until reaching a key that is navigable (not
|
|
59
|
+
* disabled for navigation), mirroring React Aria's
|
|
60
|
+
* `ListKeyboardDelegate.findNextNonDisabled`. `getFirstKey`/`getLastKey` and the
|
|
61
|
+
* next/previous lookups all funnel through this so arrow keys, Home and End land
|
|
62
|
+
* on enabled rows only.
|
|
63
|
+
*/
|
|
64
|
+
function findNextNavigableKey<T extends object, C extends TreeCollection<T>>(
|
|
65
|
+
state: TreeState<T, C>,
|
|
66
|
+
startKey: Key | null,
|
|
67
|
+
step: (key: Key) => Key | null,
|
|
68
|
+
): Key | null {
|
|
69
|
+
let key = startKey;
|
|
70
|
+
while (key != null && isNavigationDisabled(state, key)) {
|
|
71
|
+
key = step(key);
|
|
72
|
+
}
|
|
73
|
+
return key;
|
|
74
|
+
}
|
|
75
|
+
|
|
38
76
|
/**
|
|
39
77
|
* Creates accessibility props for a tree.
|
|
40
78
|
*/
|
|
41
79
|
export function createTree<T extends object, C extends TreeCollection<T> = TreeCollection<T>>(
|
|
42
80
|
props: Accessor<AriaTreeProps>,
|
|
43
81
|
state: Accessor<TreeState<T, C>>,
|
|
44
|
-
|
|
82
|
+
ref: Accessor<HTMLDivElement | null>,
|
|
45
83
|
): TreeAria {
|
|
46
84
|
// Generate a unique ID for the tree
|
|
47
85
|
const treeId = props().id ?? createId();
|
|
@@ -49,6 +87,12 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
49
87
|
// Store tree data for child components
|
|
50
88
|
const treeData: TreeData = {
|
|
51
89
|
treeId,
|
|
90
|
+
get keyboardNavigationBehavior() {
|
|
91
|
+
return props().keyboardNavigationBehavior ?? "arrow";
|
|
92
|
+
},
|
|
93
|
+
get direction() {
|
|
94
|
+
return props().direction ?? "ltr";
|
|
95
|
+
},
|
|
52
96
|
actions: {
|
|
53
97
|
get onAction() {
|
|
54
98
|
return props().onAction;
|
|
@@ -75,31 +119,27 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
75
119
|
switch (e.key) {
|
|
76
120
|
case "ArrowDown": {
|
|
77
121
|
e.preventDefault();
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
s.setFocusedKey(firstKey);
|
|
87
|
-
}
|
|
122
|
+
const nextKey =
|
|
123
|
+
focusedKey != null
|
|
124
|
+
? findNextNavigableKey(s, collection.getKeyAfter(focusedKey), (k) =>
|
|
125
|
+
collection.getKeyAfter(k),
|
|
126
|
+
)
|
|
127
|
+
: findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));
|
|
128
|
+
if (nextKey != null) {
|
|
129
|
+
s.setFocusedKey(nextKey);
|
|
88
130
|
}
|
|
89
131
|
break;
|
|
90
132
|
}
|
|
91
133
|
case "ArrowUp": {
|
|
92
134
|
e.preventDefault();
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
s.setFocusedKey(lastKey);
|
|
102
|
-
}
|
|
135
|
+
const prevKey =
|
|
136
|
+
focusedKey != null
|
|
137
|
+
? findNextNavigableKey(s, collection.getKeyBefore(focusedKey), (k) =>
|
|
138
|
+
collection.getKeyBefore(k),
|
|
139
|
+
)
|
|
140
|
+
: findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k));
|
|
141
|
+
if (prevKey != null) {
|
|
142
|
+
s.setFocusedKey(prevKey);
|
|
103
143
|
}
|
|
104
144
|
break;
|
|
105
145
|
}
|
|
@@ -133,7 +173,9 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
133
173
|
}
|
|
134
174
|
case "Home": {
|
|
135
175
|
e.preventDefault();
|
|
136
|
-
const firstKey = collection.getFirstKey()
|
|
176
|
+
const firstKey = findNextNavigableKey(s, collection.getFirstKey(), (k) =>
|
|
177
|
+
collection.getKeyAfter(k),
|
|
178
|
+
);
|
|
137
179
|
if (firstKey != null) {
|
|
138
180
|
s.setFocusedKey(firstKey);
|
|
139
181
|
}
|
|
@@ -141,7 +183,9 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
141
183
|
}
|
|
142
184
|
case "End": {
|
|
143
185
|
e.preventDefault();
|
|
144
|
-
const lastKey = collection.getLastKey()
|
|
186
|
+
const lastKey = findNextNavigableKey(s, collection.getLastKey(), (k) =>
|
|
187
|
+
collection.getKeyBefore(k),
|
|
188
|
+
);
|
|
145
189
|
if (lastKey != null) {
|
|
146
190
|
s.setFocusedKey(lastKey);
|
|
147
191
|
}
|
|
@@ -155,22 +199,11 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
155
199
|
}
|
|
156
200
|
break;
|
|
157
201
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
s.toggleSelection(focusedKey);
|
|
164
|
-
}
|
|
165
|
-
break;
|
|
166
|
-
}
|
|
167
|
-
case "Enter": {
|
|
168
|
-
if (focusedKey != null && !s.isDisabled(focusedKey)) {
|
|
169
|
-
e.preventDefault();
|
|
170
|
-
p.onAction?.(focusedKey);
|
|
171
|
-
}
|
|
172
|
-
break;
|
|
173
|
-
}
|
|
202
|
+
// Space (selection) and Enter (action) are intentionally absent here.
|
|
203
|
+
// Upstream's useSelectableCollection leaves activation to useSelectableItem.
|
|
204
|
+
// The focus effect below moves DOM focus onto the focused row, so the row's
|
|
205
|
+
// own createSelectableItem handlers receive those keys without duplicating
|
|
206
|
+
// work in the bubbling tree handler.
|
|
174
207
|
case "Escape": {
|
|
175
208
|
if (s.selectionMode !== "none") {
|
|
176
209
|
e.preventDefault();
|
|
@@ -207,24 +240,101 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
207
240
|
}
|
|
208
241
|
};
|
|
209
242
|
|
|
210
|
-
|
|
243
|
+
// The first / last SELECTED key in flattened (visible) order — mirrors React
|
|
244
|
+
// Aria's `SelectionManager.firstSelectedKey`/`lastSelectedKey`, which entry
|
|
245
|
+
// focus prefers over the first/last row.
|
|
246
|
+
const firstSelectedKey = (s: TreeState<T, C>): Key | null => {
|
|
247
|
+
let key = s.collection.getFirstKey();
|
|
248
|
+
while (key != null) {
|
|
249
|
+
if (s.isSelected(key)) return key;
|
|
250
|
+
key = s.collection.getKeyAfter(key);
|
|
251
|
+
}
|
|
252
|
+
return null;
|
|
253
|
+
};
|
|
254
|
+
const lastSelectedKey = (s: TreeState<T, C>): Key | null => {
|
|
255
|
+
let key = s.collection.getLastKey();
|
|
256
|
+
while (key != null) {
|
|
257
|
+
if (s.isSelected(key)) return key;
|
|
258
|
+
key = s.collection.getKeyBefore(key);
|
|
259
|
+
}
|
|
260
|
+
return null;
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
// Entry focus is handled on `focusin` (BUBBLING) rather than `focus`
|
|
264
|
+
// (non-bubbling): React Aria's `useSelectableCollection.onFocus` bubbles, so a
|
|
265
|
+
// Shift+Tab that the browser parks on a tabbable descendant (e.g. a selection
|
|
266
|
+
// checkbox, which is `tabIndex=0` like upstream) still reaches the collection
|
|
267
|
+
// and is redirected to the focused/selected row. A Solid non-bubbling `focus`
|
|
268
|
+
// handler on the treegrid only fires for forward Tab (the container is the first
|
|
269
|
+
// tab stop) and would strand backward entry on the last checkbox — the same
|
|
270
|
+
// trampoline gotcha the TagGroup port hit. See `createListBox.onListBoxFocus`.
|
|
271
|
+
const onFocusIn = (e: FocusEvent) => {
|
|
211
272
|
const s = state();
|
|
212
273
|
s.setFocused(true);
|
|
213
274
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
275
|
+
const currentTarget = e.currentTarget as Element | null;
|
|
276
|
+
const relatedTarget = e.relatedTarget as Element | null;
|
|
277
|
+
// Internal roving moves (focus already inside the tree) are driven by
|
|
278
|
+
// `onKeyDown`; only seed focus when it enters from OUTSIDE the treegrid.
|
|
279
|
+
if (!currentTarget || (relatedTarget && currentTarget.contains(relatedTarget))) {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
let key = s.focusedKey;
|
|
284
|
+
if (key == null) {
|
|
285
|
+
// Shift+Tab backward into the tree (focus arrived from a FOLLOWING element)
|
|
286
|
+
// enters at the last selected row, else the last navigable row; forward Tab
|
|
287
|
+
// enters at the first selected row, else the first navigable row.
|
|
288
|
+
const backward =
|
|
289
|
+
!!relatedTarget &&
|
|
290
|
+
!!(
|
|
291
|
+
currentTarget.compareDocumentPosition(relatedTarget) &
|
|
292
|
+
Node.DOCUMENT_POSITION_FOLLOWING
|
|
293
|
+
);
|
|
294
|
+
key = backward
|
|
295
|
+
? (lastSelectedKey(s) ??
|
|
296
|
+
findNextNavigableKey(s, s.collection.getLastKey(), (k) => s.collection.getKeyBefore(k)))
|
|
297
|
+
: (firstSelectedKey(s) ??
|
|
298
|
+
findNextNavigableKey(s, s.collection.getFirstKey(), (k) => s.collection.getKeyAfter(k)));
|
|
299
|
+
}
|
|
300
|
+
if (key != null) {
|
|
301
|
+
s.setFocusedKey(key);
|
|
220
302
|
}
|
|
221
303
|
};
|
|
222
304
|
|
|
223
|
-
const
|
|
305
|
+
const onFocusOut = (e: FocusEvent) => {
|
|
224
306
|
const s = state();
|
|
225
|
-
|
|
307
|
+
const currentTarget = e.currentTarget as Element | null;
|
|
308
|
+
const relatedTarget = e.relatedTarget as Element | null;
|
|
309
|
+
// Only clear the focused flag once focus has left the treegrid entirely.
|
|
310
|
+
if (!currentTarget || !relatedTarget || !currentTarget.contains(relatedTarget)) {
|
|
311
|
+
s.setFocused(false);
|
|
312
|
+
}
|
|
226
313
|
};
|
|
227
314
|
|
|
315
|
+
createEffect(() => {
|
|
316
|
+
const s = state();
|
|
317
|
+
const key = s.focusedKey;
|
|
318
|
+
const el = ref();
|
|
319
|
+
if (!el || key == null) {
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
const active = document.activeElement;
|
|
324
|
+
if (!active || (active !== el && !el.contains(active))) {
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
const target = el.querySelector<HTMLElement>(`[data-key="${key}"]`);
|
|
329
|
+
if (target && target !== active) {
|
|
330
|
+
target.focus();
|
|
331
|
+
|
|
332
|
+
if (getInteractionModality() !== "pointer") {
|
|
333
|
+
scrollIntoViewport(target, { containingElement: el });
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
});
|
|
337
|
+
|
|
228
338
|
const treeProps = createMemo(() => {
|
|
229
339
|
const p = props();
|
|
230
340
|
const s = state();
|
|
@@ -237,10 +347,13 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
237
347
|
"aria-describedby": p["aria-describedby"],
|
|
238
348
|
"aria-multiselectable": s.selectionMode === "multiple" ? true : undefined,
|
|
239
349
|
"aria-disabled": p.isDisabled || undefined,
|
|
240
|
-
|
|
350
|
+
// Roving container tab stop: `0` while no row is focused (Tab enters the
|
|
351
|
+
// tree), `-1` once a row takes focus (the row holds the tab stop). Mirrors
|
|
352
|
+
// `useSelectableCollection` `tabIndex = focusedKey == null ? 0 : -1`.
|
|
353
|
+
tabIndex: p.isDisabled ? undefined : s.focusedKey == null ? 0 : -1,
|
|
241
354
|
onKeyDown,
|
|
242
|
-
|
|
243
|
-
|
|
355
|
+
onFocusIn,
|
|
356
|
+
onFocusOut,
|
|
244
357
|
};
|
|
245
358
|
|
|
246
359
|
// Add row count for virtualized trees
|