@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/grid.jsx.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.jsx","names":[],"sources":["../../src/grid/GridKeyboardDelegate.ts","../../src/grid/createGrid.ts","../../src/grid/createGridRow.ts","../../src/grid/createGridCell.ts"],"sourcesContent":["/**\n * GridKeyboardDelegate - Handles keyboard navigation in a grid.\n * Based on @react-aria/grid/GridKeyboardDelegate.\n */\n\nimport type { GridCollection, GridNode, Key } from \"@proyecto-viviana/solid-stately\";\nimport type { KeyboardDelegate } from \"./types\";\nimport type { Accessor } from \"solid-js\";\n\nexport interface GridKeyboardDelegateOptions<T> {\n /** The grid collection. */\n collection: GridCollection<T>;\n /** Set of disabled keys. */\n disabledKeys: Set<Key>;\n /** Ref to the grid element. */\n ref: Accessor<HTMLElement | null>;\n /** Focus mode: row or cell. */\n focusMode: \"row\" | \"cell\";\n /** Text direction (ltr or rtl). */\n direction: \"ltr\" | \"rtl\";\n}\n\n/**\n * A keyboard delegate that handles navigation in a grid.\n */\nexport class GridKeyboardDelegate<T> implements KeyboardDelegate {\n private collection: GridCollection<T>;\n private disabledKeys: Set<Key>;\n private ref: Accessor<HTMLElement | null>;\n private focusMode: \"row\" | \"cell\";\n private direction: \"ltr\" | \"rtl\";\n\n constructor(options: GridKeyboardDelegateOptions<T>) {\n this.collection = options.collection;\n this.disabledKeys = options.disabledKeys;\n this.ref = options.ref;\n this.focusMode = options.focusMode;\n this.direction = options.direction;\n }\n\n /**\n * Check if a key is disabled.\n */\n private isDisabled(key: Key): boolean {\n return this.disabledKeys.has(key);\n }\n\n /**\n * Get the parent row key for a cell.\n */\n private getRowKey(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n if (item.type === \"item\") {\n return key;\n }\n\n if (item.type === \"cell\" && item.parentKey != null) {\n return item.parentKey;\n }\n\n return null;\n }\n\n /**\n * Get all body rows (excluding header rows).\n */\n private getBodyRows(): GridNode<T>[] {\n return this.collection.rows.filter((row) => row.type === \"item\");\n }\n\n /**\n * Get the first non-disabled key.\n */\n getFirstKey(fromKey?: Key, global?: boolean): Key | null {\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || global) {\n // Find first non-disabled row\n for (const row of rows) {\n if (!this.isDisabled(row.key)) {\n return row.key;\n }\n }\n return null;\n }\n\n // Cell focus mode - get first cell of current row or first row\n if (fromKey != null) {\n const rowKey = this.getRowKey(fromKey);\n if (rowKey != null) {\n const children = [...this.collection.getChildren(rowKey)];\n if (children.length > 0) {\n return children[0].key;\n }\n }\n }\n\n // Fall back to first cell of first row\n if (rows.length > 0) {\n const children = [...this.collection.getChildren(rows[0].key)];\n if (children.length > 0) {\n return children[0].key;\n }\n }\n\n return null;\n }\n\n /**\n * Get the last non-disabled key.\n */\n getLastKey(fromKey?: Key, global?: boolean): Key | null {\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || global) {\n // Find last non-disabled row\n for (let i = rows.length - 1; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n return rows[i].key;\n }\n }\n return null;\n }\n\n // Cell focus mode - get last cell of current row or last row\n if (fromKey != null) {\n const rowKey = this.getRowKey(fromKey);\n if (rowKey != null) {\n const children = [...this.collection.getChildren(rowKey)];\n if (children.length > 0) {\n return children[children.length - 1].key;\n }\n }\n }\n\n // Fall back to last cell of last row\n if (rows.length > 0) {\n const children = [...this.collection.getChildren(rows[rows.length - 1].key)];\n if (children.length > 0) {\n return children[children.length - 1].key;\n }\n }\n\n return null;\n }\n\n /**\n * Get the key above the current key.\n */\n getKeyAbove(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || item.type === \"item\") {\n // Find the row and get the previous one\n const rowKey = item.type === \"item\" ? key : item.parentKey;\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex > 0) {\n // Find previous non-disabled row\n for (let i = rowIndex - 1; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n return rows[i].key;\n }\n }\n }\n return null;\n }\n\n // Cell focus mode - get cell in same column of previous row\n if (item.type === \"cell\" && item.parentKey != null) {\n const rowIndex = rows.findIndex((r) => r.key === item.parentKey);\n const colIndex = item.column ?? item.index;\n\n if (rowIndex > 0) {\n for (let i = rowIndex - 1; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key below the current key.\n */\n getKeyBelow(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || item.type === \"item\") {\n // Find the row and get the next one\n const rowKey = item.type === \"item\" ? key : item.parentKey;\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex >= 0 && rowIndex < rows.length - 1) {\n // Find next non-disabled row\n for (let i = rowIndex + 1; i < rows.length; i++) {\n if (!this.isDisabled(rows[i].key)) {\n return rows[i].key;\n }\n }\n }\n return null;\n }\n\n // Cell focus mode - get cell in same column of next row\n if (item.type === \"cell\" && item.parentKey != null) {\n const rowIndex = rows.findIndex((r) => r.key === item.parentKey);\n const colIndex = item.column ?? item.index;\n\n if (rowIndex >= 0 && rowIndex < rows.length - 1) {\n for (let i = rowIndex + 1; i < rows.length; i++) {\n if (!this.isDisabled(rows[i].key)) {\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key to the left of the current key.\n */\n getKeyLeftOf(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n // In row focus mode, left/right might not be meaningful\n if (this.focusMode === \"row\") {\n return null;\n }\n\n if (item.type === \"cell\" && item.parentKey != null) {\n const children = [...this.collection.getChildren(item.parentKey)];\n const colIndex = children.findIndex((c) => c.key === key);\n\n if (this.direction === \"rtl\") {\n // RTL: left moves to higher index\n if (colIndex < children.length - 1) {\n return children[colIndex + 1].key;\n }\n } else {\n // LTR: left moves to lower index\n if (colIndex > 0) {\n return children[colIndex - 1].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key to the right of the current key.\n */\n getKeyRightOf(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n // In row focus mode, left/right might not be meaningful\n if (this.focusMode === \"row\") {\n return null;\n }\n\n if (item.type === \"cell\" && item.parentKey != null) {\n const children = [...this.collection.getChildren(item.parentKey)];\n const colIndex = children.findIndex((c) => c.key === key);\n\n if (this.direction === \"rtl\") {\n // RTL: right moves to lower index\n if (colIndex > 0) {\n return children[colIndex - 1].key;\n }\n } else {\n // LTR: right moves to higher index\n if (colIndex < children.length - 1) {\n return children[colIndex + 1].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key for page up.\n */\n getKeyPageAbove(key: Key): Key | null {\n const el = this.ref();\n if (!el) return null;\n\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n const rowKey = this.getRowKey(key);\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex < 0) return null;\n\n // Calculate how many rows fit in a page (rough estimate)\n const rowHeight = el.scrollHeight / rows.length;\n const pageSize = Math.max(1, Math.floor(el.clientHeight / rowHeight));\n\n const targetIndex = Math.max(0, rowIndex - pageSize);\n\n // Find first non-disabled row at or before target\n for (let i = targetIndex; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n if (this.focusMode === \"row\" || item.type === \"item\") {\n return rows[i].key;\n }\n\n // Cell focus mode - return cell at same column\n const colIndex = item.type === \"cell\" ? (item.column ?? item.index) : 0;\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key for page down.\n */\n getKeyPageBelow(key: Key): Key | null {\n const el = this.ref();\n if (!el) return null;\n\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n const rowKey = this.getRowKey(key);\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex < 0) return null;\n\n // Calculate how many rows fit in a page (rough estimate)\n const rowHeight = el.scrollHeight / rows.length;\n const pageSize = Math.max(1, Math.floor(el.clientHeight / rowHeight));\n\n const targetIndex = Math.min(rows.length - 1, rowIndex + pageSize);\n\n // Find first non-disabled row at or after target\n for (let i = targetIndex; i < rows.length; i++) {\n if (!this.isDisabled(rows[i].key)) {\n if (this.focusMode === \"row\" || item.type === \"item\") {\n return rows[i].key;\n }\n\n // Cell focus mode - return cell at same column\n const colIndex = item.type === \"cell\" ? (item.column ?? item.index) : 0;\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key that matches the search string.\n */\n getKeyForSearch(search: string, fromKey?: Key): Key | null {\n const searchLower = search.toLowerCase();\n const rows = this.getBodyRows();\n\n let startIndex = 0;\n if (fromKey != null) {\n const rowKey = this.getRowKey(fromKey);\n const idx = rows.findIndex((r) => r.key === rowKey);\n if (idx >= 0) {\n startIndex = idx + 1;\n }\n }\n\n // Search from startIndex to end\n for (let i = startIndex; i < rows.length; i++) {\n const row = rows[i];\n if (!this.isDisabled(row.key)) {\n const textValue = row.textValue?.toLowerCase() ?? \"\";\n if (textValue.startsWith(searchLower)) {\n return row.key;\n }\n }\n }\n\n // Wrap around and search from beginning\n for (let i = 0; i < startIndex; i++) {\n const row = rows[i];\n if (!this.isDisabled(row.key)) {\n const textValue = row.textValue?.toLowerCase() ?? \"\";\n if (textValue.startsWith(searchLower)) {\n return row.key;\n }\n }\n }\n\n return null;\n }\n}\n","/**\n * createGrid - Provides accessibility for a grid component.\n * Based on @react-aria/grid/useGrid.\n */\n\nimport { createMemo, createSignal, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport { createId } from \"@proyecto-viviana/solid-stately\";\nimport type { GridState, GridCollection, Key } from \"@proyecto-viviana/solid-stately\";\nimport type { GridProps, GridAria, KeyboardDelegate } from \"./types\";\nimport { GridKeyboardDelegate } from \"./GridKeyboardDelegate\";\nimport { useLocale } from \"../i18n\";\n\n// Global map to store grid metadata for child components\nconst gridMap = new WeakMap<\n object,\n {\n keyboardDelegate: KeyboardDelegate;\n actions: { onRowAction?: (key: Key) => void; onCellAction?: (key: Key) => void };\n shouldSelectOnPressUp?: boolean;\n }\n>();\n\n/**\n * Get the grid metadata for child components.\n */\nexport function getGridData<T>(state: GridState<T, GridCollection<T>>) {\n return gridMap.get(state);\n}\n\n/**\n * Creates accessibility props for a grid component.\n * A grid displays data in rows and columns and enables navigation via arrow keys.\n */\nexport function createGrid<T extends object>(\n props: Accessor<GridProps>,\n state: Accessor<GridState<T, GridCollection<T>>>,\n ref: Accessor<HTMLElement | null>,\n): GridAria {\n const id = createId(props().id);\n const locale = useLocale();\n\n // Track focused state\n const [_isFocused, setIsFocused] = createSignal(false);\n\n // Create keyboard delegate\n const keyboardDelegate = createMemo(() => {\n const p = props();\n const s = state();\n\n if (p.keyboardDelegate) {\n return p.keyboardDelegate;\n }\n\n return new GridKeyboardDelegate({\n collection: s.collection,\n disabledKeys: s.disabledKeys,\n ref,\n focusMode: p.focusMode ?? \"row\",\n direction: locale().direction,\n });\n });\n\n // Store metadata for child components\n const storeGridData = () => {\n const s = state();\n const p = props();\n gridMap.set(s, {\n keyboardDelegate: keyboardDelegate(),\n actions: {\n onRowAction: p.onRowAction,\n onCellAction: p.onCellAction,\n },\n shouldSelectOnPressUp: p.shouldSelectOnPressUp,\n });\n };\n\n // Update grid data whenever state changes\n createMemo(() => {\n storeGridData();\n });\n\n // Keyboard navigation handler\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n const delegate = keyboardDelegate();\n\n if (s.isKeyboardNavigationDisabled) {\n return;\n }\n\n const focusedKey = s.focusedKey;\n if (focusedKey == null) {\n // If nothing is focused, focus the first item\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\" || e.key === \"Home\" || e.key === \"End\") {\n const firstKey = delegate.getFirstKey?.();\n if (firstKey != null) {\n e.preventDefault();\n s.setFocusedKey(firstKey);\n }\n }\n return;\n }\n\n let nextKey: Key | null = null;\n\n switch (e.key) {\n case \"ArrowDown\":\n nextKey = delegate.getKeyBelow?.(focusedKey) ?? null;\n break;\n case \"ArrowUp\":\n nextKey = delegate.getKeyAbove?.(focusedKey) ?? null;\n break;\n case \"ArrowLeft\":\n nextKey = delegate.getKeyLeftOf?.(focusedKey) ?? null;\n break;\n case \"ArrowRight\":\n nextKey = delegate.getKeyRightOf?.(focusedKey) ?? null;\n break;\n case \"Home\":\n if (e.ctrlKey) {\n nextKey = delegate.getFirstKey?.() ?? null;\n } else {\n // Go to first cell in row - for now just use first key\n nextKey = delegate.getFirstKey?.(focusedKey) ?? null;\n }\n break;\n case \"End\":\n if (e.ctrlKey) {\n nextKey = delegate.getLastKey?.() ?? null;\n } else {\n // Go to last cell in row - for now just use last key\n nextKey = delegate.getLastKey?.(focusedKey) ?? null;\n }\n break;\n case \"PageDown\":\n nextKey = delegate.getKeyPageBelow?.(focusedKey) ?? null;\n break;\n case \"PageUp\":\n nextKey = delegate.getKeyPageAbove?.(focusedKey) ?? null;\n break;\n case \"Escape\":\n if (p.escapeKeyBehavior !== \"none\") {\n s.clearSelection();\n }\n return;\n case \"a\":\n if (e.ctrlKey || e.metaKey) {\n e.preventDefault();\n if (s.selectionMode === \"multiple\") {\n s.selectAll();\n }\n }\n return;\n case \" \":\n case \"Enter\":\n e.preventDefault();\n // Toggle selection or trigger action\n if (s.selectionMode !== \"none\") {\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(focusedKey);\n } else {\n s.toggleSelection(focusedKey);\n }\n }\n return;\n default:\n // Type to select\n if (!p.disallowTypeAhead && e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {\n const key = delegate.getKeyForSearch?.(e.key, focusedKey);\n if (key != null) {\n e.preventDefault();\n s.setFocusedKey(key);\n }\n }\n return;\n }\n\n if (nextKey != null) {\n e.preventDefault();\n s.setFocusedKey(nextKey);\n\n // Handle shift+arrow for range selection\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(nextKey);\n }\n }\n };\n\n // Focus handling\n const onFocus = (e: FocusEvent) => {\n const s = state();\n const el = ref();\n\n if (!el?.contains(e.target as Element)) {\n return;\n }\n\n if (!s.isFocused) {\n s.setFocused(true);\n setIsFocused(true);\n\n // If no key is focused, focus the first one\n if (s.focusedKey == null) {\n const firstKey = keyboardDelegate().getFirstKey?.();\n if (firstKey != null) {\n s.setFocusedKey(firstKey);\n }\n }\n }\n };\n\n const onBlur = (e: FocusEvent) => {\n const s = state();\n const el = ref();\n\n // Only blur if focus is leaving the grid entirely\n if (el && !el.contains(e.relatedTarget as Element)) {\n s.setFocused(false);\n setIsFocused(false);\n }\n };\n\n // Warn if no label is provided\n createMemo(() => {\n const p = props();\n if (!p[\"aria-label\"] && !p[\"aria-labelledby\"]) {\n console.warn(\"Grid: An aria-label or aria-labelledby prop is required for accessibility.\");\n }\n });\n\n const gridProps = createMemo(() => {\n const p = props();\n const s = state();\n\n const baseProps: Record<string, unknown> = {\n role: \"grid\",\n id,\n \"aria-label\": p[\"aria-label\"],\n \"aria-labelledby\": p[\"aria-labelledby\"],\n \"aria-describedby\": p[\"aria-describedby\"],\n \"aria-multiselectable\": s.selectionMode === \"multiple\" ? \"true\" : undefined,\n tabIndex: s.collection.size === 0 ? 0 : -1,\n onKeyDown,\n onFocus,\n onBlur,\n };\n\n if (p.isVirtualized) {\n baseProps[\"aria-rowcount\"] = s.collection.rowCount;\n baseProps[\"aria-colcount\"] = s.collection.columnCount;\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get gridProps() {\n return gridProps();\n },\n };\n}\n","/**\n * createGridRow - Provides accessibility for a grid row.\n * Based on @react-aria/grid/useGridRow.\n */\n\nimport { createMemo, createSignal, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport type { GridState, GridCollection } from \"@proyecto-viviana/solid-stately\";\nimport type { GridRowProps, GridRowAria } from \"./types\";\nimport { getGridData } from \"./createGrid\";\n\n/**\n * Creates accessibility props for a grid row.\n */\nexport function createGridRow<T extends object>(\n props: Accessor<GridRowProps>,\n state: Accessor<GridState<T, GridCollection<T>>>,\n _ref: Accessor<HTMLElement | null>,\n): GridRowAria {\n const [isPressed, setIsPressed] = createSignal(false);\n\n const isSelected = createMemo(() => {\n const s = state();\n const p = props();\n return s.isSelected(p.key);\n });\n\n const isDisabled = createMemo(() => {\n const s = state();\n const p = props();\n return s.isDisabled(p.key);\n });\n\n const isFocused = createMemo(() => {\n const s = state();\n const p = props();\n return s.focusedKey === p.key;\n });\n\n // Handle click/press for selection\n const onClick = (e: MouseEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n // Get grid metadata for actions\n const gridData = getGridData(s);\n const onRowAction = gridData?.actions.onRowAction;\n\n // Handle selection\n if (s.selectionMode !== \"none\") {\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(p.key);\n } else if (e.ctrlKey || e.metaKey) {\n s.toggleSelection(p.key);\n } else {\n // Replace selection\n s.replaceSelection(p.key);\n }\n }\n\n // Call action handler\n if (onRowAction) {\n onRowAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n\n // Get grid metadata for actions\n const gridData = getGridData(s);\n const onRowAction = gridData?.actions.onRowAction;\n\n // Handle selection\n if (s.selectionMode !== \"none\") {\n s.toggleSelection(p.key);\n }\n\n // Call action handler\n if (onRowAction) {\n onRowAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n }\n };\n\n const onFocus = () => {\n const s = state();\n const p = props();\n s.setFocusedKey(p.key);\n };\n\n const onPointerDown = () => {\n setIsPressed(true);\n };\n\n const onPointerUp = () => {\n setIsPressed(false);\n };\n\n const rowProps = createMemo(() => {\n const s = state();\n const p = props();\n\n const baseProps: Record<string, unknown> = {\n role: \"row\",\n \"aria-selected\": s.selectionMode !== \"none\" ? isSelected() : undefined,\n \"aria-disabled\": isDisabled() || undefined,\n tabIndex: isFocused() ? 0 : -1,\n onClick,\n onKeyDown,\n onFocus,\n onPointerDown,\n onPointerUp,\n };\n\n if (p.isVirtualized && p.index != null) {\n baseProps[\"aria-rowindex\"] = p.index + 1; // aria-rowindex is 1-based\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get rowProps() {\n return rowProps();\n },\n get isSelected() {\n return isSelected();\n },\n get isDisabled() {\n return isDisabled();\n },\n get isPressed() {\n return isPressed();\n },\n };\n}\n","/**\n * createGridCell - Provides accessibility for a grid cell.\n * Based on @react-aria/grid/useGridCell.\n */\n\nimport { createMemo, createSignal, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport type { GridState, GridCollection } from \"@proyecto-viviana/solid-stately\";\nimport type { GridCellProps, GridCellAria } from \"./types\";\nimport { getGridData } from \"./createGrid\";\n\n/**\n * Creates accessibility props for a grid cell.\n */\nexport function createGridCell<T extends object>(\n props: Accessor<GridCellProps>,\n state: Accessor<GridState<T, GridCollection<T>>>,\n _ref: Accessor<HTMLElement | null>,\n): GridCellAria {\n const [isPressed, setIsPressed] = createSignal(false);\n\n const isSelected = createMemo(() => {\n const s = state();\n const p = props();\n // Check if parent row is selected\n const node = s.collection.getItem(p.key);\n if (node?.parentKey != null) {\n return s.isSelected(node.parentKey);\n }\n return false;\n });\n\n const isDisabled = createMemo(() => {\n const s = state();\n const p = props();\n // Check if parent row is disabled\n const node = s.collection.getItem(p.key);\n if (node?.parentKey != null) {\n return s.isDisabled(node.parentKey);\n }\n return false;\n });\n\n const isFocused = createMemo(() => {\n const s = state();\n const p = props();\n return s.focusedKey === p.key;\n });\n\n // Handle click/press for cell actions\n const onClick = (e: MouseEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n // Get grid metadata for actions\n const gridData = getGridData(s);\n const onCellAction = gridData?.actions.onCellAction;\n\n // Get parent row key for selection\n const node = s.collection.getItem(p.key);\n const rowKey = node?.parentKey;\n\n // Handle selection on parent row\n if (rowKey != null && s.selectionMode !== \"none\") {\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(rowKey);\n } else if (e.ctrlKey || e.metaKey) {\n s.toggleSelection(rowKey);\n } else {\n // Replace selection\n s.replaceSelection(rowKey);\n }\n }\n\n // Call cell action handler\n if (onCellAction) {\n onCellAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n // Enter or Space triggers cell action\n if (e.key === \"Enter\" || e.key === \" \") {\n // Only handle if there's an action to trigger\n const gridData = getGridData(s);\n const onCellAction = gridData?.actions.onCellAction;\n\n if (onCellAction || p.onAction) {\n e.preventDefault();\n\n if (onCellAction) {\n onCellAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n }\n }\n };\n\n const onFocus = () => {\n const s = state();\n const p = props();\n s.setFocusedKey(p.key);\n };\n\n const onPointerDown = () => {\n setIsPressed(true);\n };\n\n const onPointerUp = () => {\n setIsPressed(false);\n };\n\n const cellProps = createMemo(() => {\n const s = state();\n const p = props();\n const node = s.collection.getItem(p.key);\n\n // Determine the role based on node type\n let role: string = \"gridcell\";\n if (node?.type === \"rowheader\") {\n role = \"rowheader\";\n } else if (node?.type === \"column\") {\n role = \"columnheader\";\n }\n\n const baseProps: Record<string, unknown> = {\n role,\n \"aria-disabled\": isDisabled() || undefined,\n \"aria-selected\": s.selectionMode !== \"none\" ? isSelected() : undefined,\n tabIndex: isFocused() ? 0 : -1,\n onClick,\n onKeyDown,\n onFocus,\n onPointerDown,\n onPointerUp,\n };\n\n // Add column index for virtualized grids\n if (p.isVirtualized && node?.column != null) {\n baseProps[\"aria-colindex\"] = node.column + 1; // aria-colindex is 1-based\n }\n\n // Add colspan if present\n if (node?.colspan != null && node.colspan > 1) {\n baseProps[\"aria-colspan\"] = node.colspan;\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get cellProps() {\n return cellProps();\n },\n get isSelected() {\n return isSelected();\n },\n get isDisabled() {\n return isDisabled();\n },\n get isPressed() {\n return isPressed();\n },\n get isFocused() {\n return isFocused();\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"grid.jsx","names":[],"sources":["../../src/grid/GridKeyboardDelegate.ts","../../src/grid/createGrid.ts","../../src/grid/createGridRow.ts","../../src/grid/createGridCell.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/grid/GridKeyboardDelegate.ts\n\n/**\n * GridKeyboardDelegate - Handles keyboard navigation in a grid.\n * Based on @react-aria/grid/GridKeyboardDelegate.\n */\n\nimport type { GridCollection, GridNode, Key } from \"@proyecto-viviana/solid-stately\";\nimport type { KeyboardDelegate } from \"./types\";\nimport type { Accessor } from \"solid-js\";\n\nexport interface GridKeyboardDelegateOptions<T> {\n /** The grid collection. */\n collection: GridCollection<T>;\n /** Set of disabled keys. */\n disabledKeys: Set<Key>;\n /** Ref to the grid element. */\n ref: Accessor<HTMLElement | null>;\n /** Focus mode: row or cell. */\n focusMode: \"row\" | \"cell\";\n /** Text direction (ltr or rtl). */\n direction: \"ltr\" | \"rtl\";\n}\n\n/**\n * A keyboard delegate that handles navigation in a grid.\n */\nexport class GridKeyboardDelegate<T> implements KeyboardDelegate {\n private collection: GridCollection<T>;\n private disabledKeys: Set<Key>;\n private ref: Accessor<HTMLElement | null>;\n private focusMode: \"row\" | \"cell\";\n private direction: \"ltr\" | \"rtl\";\n\n constructor(options: GridKeyboardDelegateOptions<T>) {\n this.collection = options.collection;\n this.disabledKeys = options.disabledKeys;\n this.ref = options.ref;\n this.focusMode = options.focusMode;\n this.direction = options.direction;\n }\n\n /**\n * Check if a key is disabled.\n */\n private isDisabled(key: Key): boolean {\n return this.disabledKeys.has(key);\n }\n\n /**\n * Get the parent row key for a cell.\n */\n private getRowKey(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n if (item.type === \"item\") {\n return key;\n }\n\n if (item.type === \"cell\" && item.parentKey != null) {\n return item.parentKey;\n }\n\n return null;\n }\n\n /**\n * Get all body rows (excluding header rows).\n */\n private getBodyRows(): GridNode<T>[] {\n return this.collection.rows.filter((row) => row.type === \"item\");\n }\n\n /**\n * Get the first non-disabled key.\n */\n getFirstKey(fromKey?: Key, global?: boolean): Key | null {\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || global) {\n // Find first non-disabled row\n for (const row of rows) {\n if (!this.isDisabled(row.key)) {\n return row.key;\n }\n }\n return null;\n }\n\n // Cell focus mode - get first cell of current row or first row\n if (fromKey != null) {\n const rowKey = this.getRowKey(fromKey);\n if (rowKey != null) {\n const children = [...this.collection.getChildren(rowKey)];\n if (children.length > 0) {\n return children[0].key;\n }\n }\n }\n\n // Fall back to first cell of first row\n if (rows.length > 0) {\n const children = [...this.collection.getChildren(rows[0].key)];\n if (children.length > 0) {\n return children[0].key;\n }\n }\n\n return null;\n }\n\n /**\n * Get the last non-disabled key.\n */\n getLastKey(fromKey?: Key, global?: boolean): Key | null {\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || global) {\n // Find last non-disabled row\n for (let i = rows.length - 1; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n return rows[i].key;\n }\n }\n return null;\n }\n\n // Cell focus mode - get last cell of current row or last row\n if (fromKey != null) {\n const rowKey = this.getRowKey(fromKey);\n if (rowKey != null) {\n const children = [...this.collection.getChildren(rowKey)];\n if (children.length > 0) {\n return children[children.length - 1].key;\n }\n }\n }\n\n // Fall back to last cell of last row\n if (rows.length > 0) {\n const children = [...this.collection.getChildren(rows[rows.length - 1].key)];\n if (children.length > 0) {\n return children[children.length - 1].key;\n }\n }\n\n return null;\n }\n\n /**\n * Get the key above the current key.\n */\n getKeyAbove(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || item.type === \"item\") {\n // Find the row and get the previous one\n const rowKey = item.type === \"item\" ? key : item.parentKey;\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex > 0) {\n // Find previous non-disabled row\n for (let i = rowIndex - 1; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n return rows[i].key;\n }\n }\n }\n return null;\n }\n\n // Cell focus mode - get cell in same column of previous row\n if (item.type === \"cell\" && item.parentKey != null) {\n const rowIndex = rows.findIndex((r) => r.key === item.parentKey);\n const colIndex = item.column ?? item.index;\n\n if (rowIndex > 0) {\n for (let i = rowIndex - 1; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key below the current key.\n */\n getKeyBelow(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n\n if (this.focusMode === \"row\" || item.type === \"item\") {\n // Find the row and get the next one\n const rowKey = item.type === \"item\" ? key : item.parentKey;\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex >= 0 && rowIndex < rows.length - 1) {\n // Find next non-disabled row\n for (let i = rowIndex + 1; i < rows.length; i++) {\n if (!this.isDisabled(rows[i].key)) {\n return rows[i].key;\n }\n }\n }\n return null;\n }\n\n // Cell focus mode - get cell in same column of next row\n if (item.type === \"cell\" && item.parentKey != null) {\n const rowIndex = rows.findIndex((r) => r.key === item.parentKey);\n const colIndex = item.column ?? item.index;\n\n if (rowIndex >= 0 && rowIndex < rows.length - 1) {\n for (let i = rowIndex + 1; i < rows.length; i++) {\n if (!this.isDisabled(rows[i].key)) {\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key to the left of the current key.\n */\n getKeyLeftOf(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n // In row focus mode, left/right might not be meaningful\n if (this.focusMode === \"row\") {\n return null;\n }\n\n if (item.type === \"cell\" && item.parentKey != null) {\n const children = [...this.collection.getChildren(item.parentKey)];\n const colIndex = children.findIndex((c) => c.key === key);\n\n if (this.direction === \"rtl\") {\n // RTL: left moves to higher index\n if (colIndex < children.length - 1) {\n return children[colIndex + 1].key;\n }\n } else {\n // LTR: left moves to lower index\n if (colIndex > 0) {\n return children[colIndex - 1].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key to the right of the current key.\n */\n getKeyRightOf(key: Key): Key | null {\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n // In row focus mode, left/right might not be meaningful\n if (this.focusMode === \"row\") {\n return null;\n }\n\n if (item.type === \"cell\" && item.parentKey != null) {\n const children = [...this.collection.getChildren(item.parentKey)];\n const colIndex = children.findIndex((c) => c.key === key);\n\n if (this.direction === \"rtl\") {\n // RTL: right moves to lower index\n if (colIndex > 0) {\n return children[colIndex - 1].key;\n }\n } else {\n // LTR: right moves to higher index\n if (colIndex < children.length - 1) {\n return children[colIndex + 1].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key for page up.\n */\n getKeyPageAbove(key: Key): Key | null {\n const el = this.ref();\n if (!el) return null;\n\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n const rowKey = this.getRowKey(key);\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex < 0) return null;\n\n // Calculate how many rows fit in a page (rough estimate)\n const rowHeight = el.scrollHeight / rows.length;\n const pageSize = Math.max(1, Math.floor(el.clientHeight / rowHeight));\n\n const targetIndex = Math.max(0, rowIndex - pageSize);\n\n // Find first non-disabled row at or before target\n for (let i = targetIndex; i >= 0; i--) {\n if (!this.isDisabled(rows[i].key)) {\n if (this.focusMode === \"row\" || item.type === \"item\") {\n return rows[i].key;\n }\n\n // Cell focus mode - return cell at same column\n const colIndex = item.type === \"cell\" ? (item.column ?? item.index) : 0;\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key for page down.\n */\n getKeyPageBelow(key: Key): Key | null {\n const el = this.ref();\n if (!el) return null;\n\n const item = this.collection.getItem(key);\n if (!item) return null;\n\n const rows = this.getBodyRows();\n const rowKey = this.getRowKey(key);\n const rowIndex = rows.findIndex((r) => r.key === rowKey);\n\n if (rowIndex < 0) return null;\n\n // Calculate how many rows fit in a page (rough estimate)\n const rowHeight = el.scrollHeight / rows.length;\n const pageSize = Math.max(1, Math.floor(el.clientHeight / rowHeight));\n\n const targetIndex = Math.min(rows.length - 1, rowIndex + pageSize);\n\n // Find first non-disabled row at or after target\n for (let i = targetIndex; i < rows.length; i++) {\n if (!this.isDisabled(rows[i].key)) {\n if (this.focusMode === \"row\" || item.type === \"item\") {\n return rows[i].key;\n }\n\n // Cell focus mode - return cell at same column\n const colIndex = item.type === \"cell\" ? (item.column ?? item.index) : 0;\n const children = [...this.collection.getChildren(rows[i].key)];\n const targetCol = Math.min(colIndex, children.length - 1);\n if (targetCol >= 0) {\n return children[targetCol].key;\n }\n }\n }\n\n return null;\n }\n\n /**\n * Get the key that matches the search string.\n */\n getKeyForSearch(search: string, fromKey?: Key): Key | null {\n const searchLower = search.toLowerCase();\n const rows = this.getBodyRows();\n\n let startIndex = 0;\n if (fromKey != null) {\n const rowKey = this.getRowKey(fromKey);\n const idx = rows.findIndex((r) => r.key === rowKey);\n if (idx >= 0) {\n startIndex = idx + 1;\n }\n }\n\n // Search from startIndex to end\n for (let i = startIndex; i < rows.length; i++) {\n const row = rows[i];\n if (!this.isDisabled(row.key)) {\n const textValue = row.textValue?.toLowerCase() ?? \"\";\n if (textValue.startsWith(searchLower)) {\n return row.key;\n }\n }\n }\n\n // Wrap around and search from beginning\n for (let i = 0; i < startIndex; i++) {\n const row = rows[i];\n if (!this.isDisabled(row.key)) {\n const textValue = row.textValue?.toLowerCase() ?? \"\";\n if (textValue.startsWith(searchLower)) {\n return row.key;\n }\n }\n }\n\n return null;\n }\n}\n","/*\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/grid/useGrid.ts\n\n/**\n * createGrid - Provides accessibility for a grid component.\n * Based on @react-aria/grid/useGrid.\n */\n\nimport { createMemo, createSignal } from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport { createId } from \"@proyecto-viviana/solid-stately\";\nimport type { GridState, GridCollection, Key } from \"@proyecto-viviana/solid-stately\";\nimport type { GridProps, GridAria, KeyboardDelegate } from \"./types\";\nimport { GridKeyboardDelegate } from \"./GridKeyboardDelegate\";\nimport { useLocale } from \"../i18n\";\n\n// Global map to store grid metadata for child components\nconst gridMap = new WeakMap<\n object,\n {\n keyboardDelegate: KeyboardDelegate;\n actions: { onRowAction?: (key: Key) => void; onCellAction?: (key: Key) => void };\n shouldSelectOnPressUp?: boolean;\n }\n>();\n\n/**\n * Get the grid metadata for child components.\n */\nexport function getGridData<T>(state: GridState<T, GridCollection<T>>) {\n return gridMap.get(state);\n}\n\n/**\n * Creates accessibility props for a grid component.\n * A grid displays data in rows and columns and enables navigation via arrow keys.\n */\nexport function createGrid<T extends object>(\n props: Accessor<GridProps>,\n state: Accessor<GridState<T, GridCollection<T>>>,\n ref: Accessor<HTMLElement | null>,\n): GridAria {\n const id = createId(props().id);\n const locale = useLocale();\n\n // Track focused state\n const [_isFocused, setIsFocused] = createSignal(false);\n\n // Create keyboard delegate\n const keyboardDelegate = createMemo(() => {\n const p = props();\n const s = state();\n\n if (p.keyboardDelegate) {\n return p.keyboardDelegate;\n }\n\n return new GridKeyboardDelegate({\n collection: s.collection,\n disabledKeys: s.disabledKeys,\n ref,\n focusMode: p.focusMode ?? \"row\",\n direction: locale().direction,\n });\n });\n\n // Store metadata for child components\n const storeGridData = () => {\n const s = state();\n const p = props();\n gridMap.set(s, {\n keyboardDelegate: keyboardDelegate(),\n actions: {\n onRowAction: p.onRowAction,\n onCellAction: p.onCellAction,\n },\n shouldSelectOnPressUp: p.shouldSelectOnPressUp,\n });\n };\n\n // Update grid data whenever state changes\n createMemo(() => {\n storeGridData();\n });\n\n // Keyboard navigation handler\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n const delegate = keyboardDelegate();\n\n if (s.isKeyboardNavigationDisabled) {\n return;\n }\n\n const focusedKey = s.focusedKey;\n if (focusedKey == null) {\n // If nothing is focused, focus the first item\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\" || e.key === \"Home\" || e.key === \"End\") {\n const firstKey = delegate.getFirstKey?.();\n if (firstKey != null) {\n e.preventDefault();\n s.setFocusedKey(firstKey);\n }\n }\n return;\n }\n\n let nextKey: Key | null = null;\n\n switch (e.key) {\n case \"ArrowDown\":\n nextKey = delegate.getKeyBelow?.(focusedKey) ?? null;\n break;\n case \"ArrowUp\":\n nextKey = delegate.getKeyAbove?.(focusedKey) ?? null;\n break;\n case \"ArrowLeft\":\n nextKey = delegate.getKeyLeftOf?.(focusedKey) ?? null;\n break;\n case \"ArrowRight\":\n nextKey = delegate.getKeyRightOf?.(focusedKey) ?? null;\n break;\n case \"Home\":\n if (e.ctrlKey) {\n nextKey = delegate.getFirstKey?.() ?? null;\n } else {\n // Go to first cell in row - for now just use first key\n nextKey = delegate.getFirstKey?.(focusedKey) ?? null;\n }\n break;\n case \"End\":\n if (e.ctrlKey) {\n nextKey = delegate.getLastKey?.() ?? null;\n } else {\n // Go to last cell in row - for now just use last key\n nextKey = delegate.getLastKey?.(focusedKey) ?? null;\n }\n break;\n case \"PageDown\":\n nextKey = delegate.getKeyPageBelow?.(focusedKey) ?? null;\n break;\n case \"PageUp\":\n nextKey = delegate.getKeyPageAbove?.(focusedKey) ?? null;\n break;\n case \"Escape\":\n if (p.escapeKeyBehavior !== \"none\") {\n s.clearSelection();\n }\n return;\n case \"a\":\n if (e.ctrlKey || e.metaKey) {\n e.preventDefault();\n if (s.selectionMode === \"multiple\") {\n s.selectAll();\n }\n }\n return;\n case \" \":\n case \"Enter\":\n e.preventDefault();\n // Toggle selection or trigger action\n if (s.selectionMode !== \"none\") {\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(focusedKey);\n } else {\n s.toggleSelection(focusedKey);\n }\n }\n return;\n default:\n // Type to select\n if (!p.disallowTypeAhead && e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {\n const key = delegate.getKeyForSearch?.(e.key, focusedKey);\n if (key != null) {\n e.preventDefault();\n s.setFocusedKey(key);\n }\n }\n return;\n }\n\n if (nextKey != null) {\n e.preventDefault();\n s.setFocusedKey(nextKey);\n\n // Handle shift+arrow for range selection\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(nextKey);\n }\n }\n };\n\n // Focus handling\n const onFocus = (e: FocusEvent) => {\n const s = state();\n const el = ref();\n\n if (!el?.contains(e.target as Element)) {\n return;\n }\n\n if (!s.isFocused) {\n s.setFocused(true);\n setIsFocused(true);\n\n // If no key is focused, focus the first one\n if (s.focusedKey == null) {\n const firstKey = keyboardDelegate().getFirstKey?.();\n if (firstKey != null) {\n s.setFocusedKey(firstKey);\n }\n }\n }\n };\n\n const onBlur = (e: FocusEvent) => {\n const s = state();\n const el = ref();\n\n // Only blur if focus is leaving the grid entirely\n if (el && !el.contains(e.relatedTarget as Element)) {\n s.setFocused(false);\n setIsFocused(false);\n }\n };\n\n // Warn if no label is provided\n createMemo(() => {\n const p = props();\n if (!p[\"aria-label\"] && !p[\"aria-labelledby\"]) {\n console.warn(\"Grid: An aria-label or aria-labelledby prop is required for accessibility.\");\n }\n });\n\n const gridProps = createMemo(() => {\n const p = props();\n const s = state();\n\n const baseProps: Record<string, unknown> = {\n role: \"grid\",\n id,\n \"aria-label\": p[\"aria-label\"],\n \"aria-labelledby\": p[\"aria-labelledby\"],\n \"aria-describedby\": p[\"aria-describedby\"],\n \"aria-multiselectable\": s.selectionMode === \"multiple\" ? \"true\" : undefined,\n tabIndex: s.collection.size === 0 ? 0 : -1,\n onKeyDown,\n onFocus,\n onBlur,\n };\n\n if (p.isVirtualized) {\n baseProps[\"aria-rowcount\"] = s.collection.rowCount;\n baseProps[\"aria-colcount\"] = s.collection.columnCount;\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get gridProps() {\n return gridProps();\n },\n };\n}\n","/*\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/grid/useGridRow.ts\n\n/**\n * createGridRow - Provides accessibility for a grid row.\n * Based on @react-aria/grid/useGridRow.\n */\n\nimport { createMemo, createSignal } from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport type { GridState, GridCollection } from \"@proyecto-viviana/solid-stately\";\nimport type { GridRowProps, GridRowAria } from \"./types\";\nimport { getGridData } from \"./createGrid\";\n\n/**\n * Creates accessibility props for a grid row.\n */\nexport function createGridRow<T extends object>(\n props: Accessor<GridRowProps>,\n state: Accessor<GridState<T, GridCollection<T>>>,\n _ref: Accessor<HTMLElement | null>,\n): GridRowAria {\n const [isPressed, setIsPressed] = createSignal(false);\n\n const isSelected = createMemo(() => {\n const s = state();\n const p = props();\n return s.isSelected(p.key);\n });\n\n const isDisabled = createMemo(() => {\n const s = state();\n const p = props();\n return s.isDisabled(p.key);\n });\n\n const isFocused = createMemo(() => {\n const s = state();\n const p = props();\n return s.focusedKey === p.key;\n });\n\n // Handle click/press for selection\n const onClick = (e: MouseEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n // Get grid metadata for actions\n const gridData = getGridData(s);\n const onRowAction = gridData?.actions.onRowAction;\n\n // Handle selection\n if (s.selectionMode !== \"none\") {\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(p.key);\n } else if (e.ctrlKey || e.metaKey) {\n s.toggleSelection(p.key);\n } else {\n // Replace selection\n s.replaceSelection(p.key);\n }\n }\n\n // Call action handler\n if (onRowAction) {\n onRowAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n\n // Get grid metadata for actions\n const gridData = getGridData(s);\n const onRowAction = gridData?.actions.onRowAction;\n\n // Handle selection\n if (s.selectionMode !== \"none\") {\n s.toggleSelection(p.key);\n }\n\n // Call action handler\n if (onRowAction) {\n onRowAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n }\n };\n\n const onFocus = () => {\n const s = state();\n const p = props();\n s.setFocusedKey(p.key);\n };\n\n const onPointerDown = () => {\n setIsPressed(true);\n };\n\n const onPointerUp = () => {\n setIsPressed(false);\n };\n\n const rowProps = createMemo(() => {\n const s = state();\n const p = props();\n\n const baseProps: Record<string, unknown> = {\n role: \"row\",\n \"aria-selected\": s.selectionMode !== \"none\" ? isSelected() : undefined,\n \"aria-disabled\": isDisabled() || undefined,\n tabIndex: isFocused() ? 0 : -1,\n onClick,\n onKeyDown,\n onFocus,\n onPointerDown,\n onPointerUp,\n };\n\n if (p.isVirtualized && p.index != null) {\n baseProps[\"aria-rowindex\"] = p.index + 1; // aria-rowindex is 1-based\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get rowProps() {\n return rowProps();\n },\n get isSelected() {\n return isSelected();\n },\n get isDisabled() {\n return isDisabled();\n },\n get isPressed() {\n return isPressed();\n },\n };\n}\n","/*\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/grid/useGridCell.ts\n\n/**\n * createGridCell - Provides accessibility for a grid cell.\n * Based on @react-aria/grid/useGridCell.\n */\n\nimport { createMemo, createSignal } from \"solid-js\";\nimport type { Accessor } from \"solid-js\";\nimport type { JSX } from \"@solidjs/web\";\nimport type { GridState, GridCollection } from \"@proyecto-viviana/solid-stately\";\nimport type { GridCellProps, GridCellAria } from \"./types\";\nimport { getGridData } from \"./createGrid\";\n\n/**\n * Creates accessibility props for a grid cell.\n */\nexport function createGridCell<T extends object>(\n props: Accessor<GridCellProps>,\n state: Accessor<GridState<T, GridCollection<T>>>,\n _ref: Accessor<HTMLElement | null>,\n): GridCellAria {\n const [isPressed, setIsPressed] = createSignal(false);\n\n const isSelected = createMemo(() => {\n const s = state();\n const p = props();\n // Check if parent row is selected\n const node = s.collection.getItem(p.key);\n if (node?.parentKey != null) {\n return s.isSelected(node.parentKey);\n }\n return false;\n });\n\n const isDisabled = createMemo(() => {\n const s = state();\n const p = props();\n // Check if parent row is disabled\n const node = s.collection.getItem(p.key);\n if (node?.parentKey != null) {\n return s.isDisabled(node.parentKey);\n }\n return false;\n });\n\n const isFocused = createMemo(() => {\n const s = state();\n const p = props();\n return s.focusedKey === p.key;\n });\n\n // Handle click/press for cell actions\n const onClick = (e: MouseEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n // Get grid metadata for actions\n const gridData = getGridData(s);\n const onCellAction = gridData?.actions.onCellAction;\n\n // Get parent row key for selection\n const node = s.collection.getItem(p.key);\n const rowKey = node?.parentKey;\n\n // Handle selection on parent row\n if (rowKey != null && s.selectionMode !== \"none\") {\n if (e.shiftKey && s.selectionMode === \"multiple\") {\n s.extendSelection(rowKey);\n } else if (e.ctrlKey || e.metaKey) {\n s.toggleSelection(rowKey);\n } else {\n // Replace selection\n s.replaceSelection(rowKey);\n }\n }\n\n // Call cell action handler\n if (onCellAction) {\n onCellAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n };\n\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n\n if (isDisabled()) return;\n\n // Enter or Space triggers cell action\n if (e.key === \"Enter\" || e.key === \" \") {\n // Only handle if there's an action to trigger\n const gridData = getGridData(s);\n const onCellAction = gridData?.actions.onCellAction;\n\n if (onCellAction || p.onAction) {\n e.preventDefault();\n\n if (onCellAction) {\n onCellAction(p.key);\n }\n\n if (p.onAction) {\n p.onAction();\n }\n }\n }\n };\n\n const onFocus = () => {\n const s = state();\n const p = props();\n s.setFocusedKey(p.key);\n };\n\n const onPointerDown = () => {\n setIsPressed(true);\n };\n\n const onPointerUp = () => {\n setIsPressed(false);\n };\n\n const cellProps = createMemo(() => {\n const s = state();\n const p = props();\n const node = s.collection.getItem(p.key);\n\n // Determine the role based on node type\n let role: string = \"gridcell\";\n if (node?.type === \"rowheader\") {\n role = \"rowheader\";\n } else if (node?.type === \"column\") {\n role = \"columnheader\";\n }\n\n const baseProps: Record<string, unknown> = {\n role,\n \"aria-disabled\": isDisabled() || undefined,\n \"aria-selected\": s.selectionMode !== \"none\" ? isSelected() : undefined,\n tabIndex: isFocused() ? 0 : -1,\n onClick,\n onKeyDown,\n onFocus,\n onPointerDown,\n onPointerUp,\n };\n\n // Add column index for virtualized grids\n if (p.isVirtualized && node?.column != null) {\n baseProps[\"aria-colindex\"] = node.column + 1; // aria-colindex is 1-based\n }\n\n // Add colspan if present\n if (node?.colspan != null && node.colspan > 1) {\n baseProps[\"aria-colspan\"] = node.colspan;\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get cellProps() {\n return cellProps();\n },\n get isSelected() {\n return isSelected();\n },\n get isDisabled() {\n return isDisabled();\n },\n get isPressed() {\n return isPressed();\n },\n get isFocused() {\n return isFocused();\n },\n };\n}\n"],"mappings":"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"}
|
package/dist/_chunk/gridlist.js
CHANGED
|
@@ -1,11 +1,62 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 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/gridlist/useGridList.ts
|
|
13
|
+
/*
|
|
14
|
+
* Copyright 2022 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/gridlist/useGridListItem.ts
|
|
25
|
+
/*
|
|
26
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
27
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
28
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
29
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
30
|
+
*
|
|
31
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
32
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
33
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
34
|
+
* governing permissions and limitations under the License.
|
|
35
|
+
*/
|
|
36
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/gridlist/useGridListSection.ts
|
|
37
|
+
/*
|
|
38
|
+
* Copyright 2022 Adobe. All rights reserved.
|
|
39
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
40
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
41
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
42
|
+
*
|
|
43
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
44
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
45
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
46
|
+
* governing permissions and limitations under the License.
|
|
47
|
+
*/
|
|
48
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/gridlist/useGridListSelectionCheckbox.ts
|
|
49
|
+
import { t as mergeProps } from "./mergeProps.js";
|
|
50
|
+
import { _ as scrollIntoViewport, y as bindCapture } from "./utils.js";
|
|
51
|
+
import { N as getInteractionModality } from "./dom.js";
|
|
52
|
+
import { n as createStringFormatter } from "./createStringFormatter.js";
|
|
4
53
|
import { createId as createId$1, createSlotId } from "../ssr/index.js";
|
|
5
54
|
import { t as createLabels } from "./createLabels.js";
|
|
6
|
-
import { n as createSelectableItem } from "./createSelectableItem.js";
|
|
55
|
+
import { a as isNonContiguousSelectionModifier, n as createSelectableItem } from "./createSelectableItem.js";
|
|
56
|
+
import { t as createTypeSelect } from "./createTypeSelect.js";
|
|
57
|
+
import { t as gridIntlStrings } from "./intl.js";
|
|
7
58
|
import { t as mergeCollectionRowInteractionProps } from "./createCollectionRowInteraction.js";
|
|
8
|
-
import {
|
|
59
|
+
import { createMemo, createTrackedEffect } from "solid-js";
|
|
9
60
|
import { createId } from "@proyecto-viviana/solid-stately";
|
|
10
61
|
//#region src/gridlist/createGridList.ts
|
|
11
62
|
/**
|
|
@@ -43,6 +94,44 @@ function findNextNavigableKey(state, startKey, step) {
|
|
|
43
94
|
while (key != null && isNavigationDisabled(state, key)) key = step(key);
|
|
44
95
|
return key;
|
|
45
96
|
}
|
|
97
|
+
function navigableKeys(state) {
|
|
98
|
+
const keys = [];
|
|
99
|
+
let key = state.collection.getFirstKey();
|
|
100
|
+
while (key != null) {
|
|
101
|
+
if (!isNavigationDisabled(state, key)) keys.push(key);
|
|
102
|
+
key = state.collection.getKeyAfter(key);
|
|
103
|
+
}
|
|
104
|
+
return keys;
|
|
105
|
+
}
|
|
106
|
+
function gridNeighborKey(keys, from, columns, deltaCol, deltaRow) {
|
|
107
|
+
const index = keys.indexOf(from);
|
|
108
|
+
if (index < 0 || columns < 1) return null;
|
|
109
|
+
const row = Math.floor(index / columns);
|
|
110
|
+
const nextCol = index % columns + deltaCol;
|
|
111
|
+
const nextRow = row + deltaRow;
|
|
112
|
+
if (nextCol < 0 || nextCol >= columns || nextRow < 0) return null;
|
|
113
|
+
return keys[nextRow * columns + nextCol] ?? null;
|
|
114
|
+
}
|
|
115
|
+
function firstSelectedKey(state) {
|
|
116
|
+
let key = state.collection.getFirstKey();
|
|
117
|
+
while (key != null) {
|
|
118
|
+
if (state.isSelected(key)) return key;
|
|
119
|
+
key = state.collection.getKeyAfter(key);
|
|
120
|
+
}
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
function lastSelectedKey(state) {
|
|
124
|
+
let key = state.collection.getLastKey();
|
|
125
|
+
while (key != null) {
|
|
126
|
+
if (state.isSelected(key)) return key;
|
|
127
|
+
key = state.collection.getKeyBefore(key);
|
|
128
|
+
}
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
function queryCollectionItem(root, key) {
|
|
132
|
+
const escaped = typeof CSS !== "undefined" && CSS.escape ? CSS.escape(String(key)) : String(key);
|
|
133
|
+
return root.querySelector(`[data-key="${escaped}"]`);
|
|
134
|
+
}
|
|
46
135
|
/**
|
|
47
136
|
* Creates accessibility props for a grid list.
|
|
48
137
|
*/
|
|
@@ -51,7 +140,7 @@ function createGridList(props, state, ref) {
|
|
|
51
140
|
const gridListData = {
|
|
52
141
|
gridListId,
|
|
53
142
|
get selectionBehavior() {
|
|
54
|
-
return props().selectionBehavior ?? "
|
|
143
|
+
return props().selectionBehavior ?? "toggle";
|
|
55
144
|
},
|
|
56
145
|
get shouldSelectOnPressUp() {
|
|
57
146
|
return props().shouldSelectOnPressUp ?? false;
|
|
@@ -62,53 +151,80 @@ function createGridList(props, state, ref) {
|
|
|
62
151
|
get direction() {
|
|
63
152
|
return props().direction ?? "ltr";
|
|
64
153
|
},
|
|
154
|
+
get layout() {
|
|
155
|
+
return props().layout ?? "stack";
|
|
156
|
+
},
|
|
65
157
|
actions: { get onAction() {
|
|
66
158
|
return props().onAction;
|
|
67
159
|
} }
|
|
68
160
|
};
|
|
69
161
|
gridListDataMap.set(state(), gridListData);
|
|
162
|
+
const { typeSelectProps } = createTypeSelect({
|
|
163
|
+
collection: () => state().collection,
|
|
164
|
+
focusedKey: () => state().focusedKey,
|
|
165
|
+
onFocusedKeyChange: (key) => state().setFocusedKey(key),
|
|
166
|
+
isKeyDisabled: (key) => isNavigationDisabled(state(), key)
|
|
167
|
+
});
|
|
70
168
|
const onKeyDown = (e) => {
|
|
71
169
|
const s = state();
|
|
72
170
|
const p = props();
|
|
73
171
|
const collection = s.collection;
|
|
74
172
|
const focusedKey = s.focusedKey;
|
|
75
173
|
if (p.isDisabled) return;
|
|
174
|
+
const selectOnFocus = (p.selectionBehavior ?? s.selectionBehavior) === "replace" && s.selectionMode !== "none";
|
|
175
|
+
const moveFocus = (nextKey) => {
|
|
176
|
+
if (nextKey == null) return;
|
|
177
|
+
s.setFocusedKey(nextKey);
|
|
178
|
+
if (selectOnFocus && !e.shiftKey && !isNonContiguousSelectionModifier(e)) s.replaceSelection(nextKey);
|
|
179
|
+
};
|
|
180
|
+
const isGrid = p.layout === "grid";
|
|
181
|
+
const columns = Math.max(1, p.columnCount ?? 1);
|
|
76
182
|
switch (e.key) {
|
|
77
|
-
case "ArrowDown":
|
|
183
|
+
case "ArrowDown":
|
|
78
184
|
e.preventDefault();
|
|
79
|
-
|
|
80
|
-
|
|
185
|
+
if (isGrid) {
|
|
186
|
+
const keys = navigableKeys(s);
|
|
187
|
+
const from = focusedKey ?? keys[0];
|
|
188
|
+
if (from != null) moveFocus(gridNeighborKey(keys, from, columns, 0, 1));
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
moveFocus(focusedKey != null ? findNextNavigableKey(s, collection.getKeyAfter(focusedKey), (k) => collection.getKeyAfter(k)) : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k)));
|
|
81
192
|
break;
|
|
82
|
-
|
|
83
|
-
case "ArrowUp": {
|
|
193
|
+
case "ArrowUp":
|
|
84
194
|
e.preventDefault();
|
|
85
|
-
|
|
86
|
-
|
|
195
|
+
if (isGrid) {
|
|
196
|
+
const keys = navigableKeys(s);
|
|
197
|
+
const from = focusedKey ?? keys[keys.length - 1];
|
|
198
|
+
if (from != null) moveFocus(gridNeighborKey(keys, from, columns, 0, -1));
|
|
199
|
+
break;
|
|
200
|
+
}
|
|
201
|
+
moveFocus(focusedKey != null ? findNextNavigableKey(s, collection.getKeyBefore(focusedKey), (k) => collection.getKeyBefore(k)) : findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k)));
|
|
87
202
|
break;
|
|
88
|
-
}
|
|
89
203
|
case "ArrowRight":
|
|
90
204
|
case "ArrowLeft": {
|
|
91
205
|
const behavior = p.keyboardNavigationBehavior ?? "arrow";
|
|
206
|
+
const isRtl = p.direction === "rtl";
|
|
207
|
+
if (isGrid) {
|
|
208
|
+
e.preventDefault();
|
|
209
|
+
const keys = navigableKeys(s);
|
|
210
|
+
const from = focusedKey ?? keys[0];
|
|
211
|
+
if (from != null) moveFocus(gridNeighborKey(keys, from, columns, (e.key === "ArrowRight" ? !isRtl : isRtl) ? 1 : -1, 0));
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
92
214
|
if (p.orientation !== "horizontal" || behavior !== "tab") break;
|
|
93
215
|
e.preventDefault();
|
|
94
|
-
const isRtl = p.direction === "rtl";
|
|
95
216
|
const step = (e.key === "ArrowRight" ? !isRtl : isRtl) ? (k) => collection.getKeyAfter(k) : (k) => collection.getKeyBefore(k);
|
|
96
|
-
|
|
97
|
-
if (nextKey != null) s.setFocusedKey(nextKey);
|
|
217
|
+
moveFocus(focusedKey != null ? findNextNavigableKey(s, step(focusedKey), step) : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k)));
|
|
98
218
|
break;
|
|
99
219
|
}
|
|
100
|
-
case "Home":
|
|
220
|
+
case "Home":
|
|
101
221
|
e.preventDefault();
|
|
102
|
-
|
|
103
|
-
if (firstKey != null) s.setFocusedKey(firstKey);
|
|
222
|
+
moveFocus(findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k)));
|
|
104
223
|
break;
|
|
105
|
-
|
|
106
|
-
case "End": {
|
|
224
|
+
case "End":
|
|
107
225
|
e.preventDefault();
|
|
108
|
-
|
|
109
|
-
if (lastKey != null) s.setFocusedKey(lastKey);
|
|
226
|
+
moveFocus(findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k)));
|
|
110
227
|
break;
|
|
111
|
-
}
|
|
112
228
|
case "a":
|
|
113
229
|
case "A":
|
|
114
230
|
if ((e.ctrlKey || e.metaKey) && s.selectionMode === "multiple") {
|
|
@@ -116,12 +232,10 @@ function createGridList(props, state, ref) {
|
|
|
116
232
|
s.selectAll();
|
|
117
233
|
}
|
|
118
234
|
break;
|
|
119
|
-
case "Escape":
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
124
|
-
break;
|
|
235
|
+
case "Escape": if (s.selectionMode !== "none") {
|
|
236
|
+
e.preventDefault();
|
|
237
|
+
s.clearSelection();
|
|
238
|
+
}
|
|
125
239
|
}
|
|
126
240
|
};
|
|
127
241
|
const onFocus = (e) => {
|
|
@@ -133,20 +247,22 @@ function createGridList(props, state, ref) {
|
|
|
133
247
|
if (s.focusedKey != null || p.isDisabled) return;
|
|
134
248
|
const collection = s.collection;
|
|
135
249
|
const relatedTarget = e.relatedTarget;
|
|
136
|
-
const enterKey = relatedTarget && container && container.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING ? findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k)) : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));
|
|
250
|
+
const enterKey = relatedTarget && container && container.compareDocumentPosition(relatedTarget) & Node.DOCUMENT_POSITION_FOLLOWING ? lastSelectedKey(s) ?? findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k)) : firstSelectedKey(s) ?? findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));
|
|
137
251
|
if (enterKey != null) s.setFocusedKey(enterKey);
|
|
138
252
|
};
|
|
139
253
|
const onBlur = () => {
|
|
140
254
|
state().setFocused(false);
|
|
141
255
|
};
|
|
142
|
-
|
|
143
|
-
const
|
|
256
|
+
createTrackedEffect(() => {
|
|
257
|
+
const s = state();
|
|
258
|
+
const key = s.focusedKey;
|
|
144
259
|
const el = ref();
|
|
145
260
|
if (!el || key == null) return;
|
|
146
261
|
const active = document.activeElement;
|
|
147
262
|
if (!active || active !== el && !el.contains(active)) return;
|
|
148
|
-
const target = el
|
|
263
|
+
const target = queryCollectionItem(el, key);
|
|
149
264
|
if (target && target !== active) {
|
|
265
|
+
if (isNavigationDisabled(s, key)) return;
|
|
150
266
|
target.focus();
|
|
151
267
|
if (getInteractionModality() !== "pointer") scrollIntoViewport(target, { containingElement: el });
|
|
152
268
|
}
|
|
@@ -154,7 +270,7 @@ function createGridList(props, state, ref) {
|
|
|
154
270
|
const gridProps = createMemo(() => {
|
|
155
271
|
const p = props();
|
|
156
272
|
const s = state();
|
|
157
|
-
const baseProps = {
|
|
273
|
+
const baseProps = mergeProps(typeSelectProps, {
|
|
158
274
|
role: "grid",
|
|
159
275
|
id: gridListId,
|
|
160
276
|
"aria-label": p["aria-label"],
|
|
@@ -162,11 +278,11 @@ function createGridList(props, state, ref) {
|
|
|
162
278
|
"aria-describedby": p["aria-describedby"],
|
|
163
279
|
"aria-multiselectable": s.selectionMode === "multiple" ? true : void 0,
|
|
164
280
|
"aria-disabled": p.isDisabled || void 0,
|
|
165
|
-
tabIndex: p.isDisabled ? void 0 : s.focusedKey != null ? -1 : 0,
|
|
281
|
+
tabIndex: p.isDisabled ? void 0 : s.focusedKey != null && !isNavigationDisabled(s, s.focusedKey) ? -1 : 0,
|
|
166
282
|
onKeyDown,
|
|
167
283
|
onFocus,
|
|
168
284
|
onBlur
|
|
169
|
-
};
|
|
285
|
+
});
|
|
170
286
|
if (p.isVirtualized) baseProps["aria-rowcount"] = s.collection.rowCount;
|
|
171
287
|
return baseProps;
|
|
172
288
|
});
|
|
@@ -184,6 +300,7 @@ function createGridList(props, state, ref) {
|
|
|
184
300
|
* Creates accessibility props for a grid list item.
|
|
185
301
|
*/
|
|
186
302
|
function createGridListItem(props, state, ref) {
|
|
303
|
+
const descriptionId = createId();
|
|
187
304
|
const isSelected = createMemo(() => {
|
|
188
305
|
const s = state();
|
|
189
306
|
const p = props();
|
|
@@ -217,20 +334,21 @@ function createGridListItem(props, state, ref) {
|
|
|
217
334
|
selectedKeys: () => state().selectedKeys,
|
|
218
335
|
disabledKeys: () => state().disabledKeys,
|
|
219
336
|
disabledBehavior: () => state().disabledBehavior,
|
|
220
|
-
isEmpty: () =>
|
|
221
|
-
|
|
222
|
-
return keys !== "all" && keys.size === 0;
|
|
223
|
-
},
|
|
224
|
-
isSelectAll: () => state().selectedKeys === "all",
|
|
337
|
+
isEmpty: () => state().isEmpty,
|
|
338
|
+
isSelectAll: () => state().isSelectAll,
|
|
225
339
|
isSelected: (key) => state().isSelected(key),
|
|
226
340
|
isDisabled: (key) => {
|
|
227
341
|
const s = state();
|
|
342
|
+
const p = props();
|
|
228
343
|
const item = s.collection.getItem(key);
|
|
229
|
-
|
|
344
|
+
const disabled = s.isDisabled(key) || !!item?.isDisabled || !!p.isDisabled;
|
|
345
|
+
return s.disabledBehavior === "all" && disabled && item?.props?.disabledBehavior !== "selection";
|
|
230
346
|
},
|
|
231
347
|
canSelectItem: (key) => {
|
|
232
348
|
const s = state();
|
|
233
|
-
|
|
349
|
+
const p = props();
|
|
350
|
+
const item = s.collection.getItem(key);
|
|
351
|
+
return s.selectionMode !== "none" && !s.isDisabled(key) && !item?.isDisabled && !p.isDisabled;
|
|
234
352
|
},
|
|
235
353
|
setSelectionBehavior: (behavior) => state().setSelectionBehavior(behavior),
|
|
236
354
|
toggleSelection: (key) => state().toggleSelection(key),
|
|
@@ -245,21 +363,34 @@ function createGridListItem(props, state, ref) {
|
|
|
245
363
|
const s = state();
|
|
246
364
|
const p = props();
|
|
247
365
|
const node = p.node;
|
|
366
|
+
const gridListData = getGridListData(s);
|
|
367
|
+
const rowId = `${gridListData?.gridListId ?? "gridlist"}-row-${String(node.key)}`;
|
|
368
|
+
const label = p.textValue || node["aria-label"] || node.textValue || void 0;
|
|
248
369
|
const baseProps = {
|
|
249
370
|
role: "row",
|
|
250
|
-
"aria-selected": s.selectionMode !== "none" ? isSelected() : void 0,
|
|
251
|
-
"aria-disabled": selectableItem.isDisabled() || void 0
|
|
371
|
+
"aria-selected": s.selectionMode !== "none" && !s.isDisabled(node.key) ? isSelected() : void 0,
|
|
372
|
+
"aria-disabled": selectableItem.isDisabled() || void 0,
|
|
373
|
+
"aria-label": label,
|
|
374
|
+
"aria-labelledby": label ? `${rowId} ${descriptionId}` : void 0
|
|
252
375
|
};
|
|
253
376
|
if (p.isVirtualized && node.rowIndex != null) baseProps["aria-rowindex"] = node.rowIndex + 1;
|
|
254
|
-
const
|
|
255
|
-
return mergeCollectionRowInteractionProps(
|
|
377
|
+
const mergedProps = mergeProps(selectableItem.itemProps, baseProps);
|
|
378
|
+
return mergeCollectionRowInteractionProps(mergedProps, {
|
|
256
379
|
ref,
|
|
257
380
|
keyboardNavigationBehavior: () => gridListData?.keyboardNavigationBehavior ?? "arrow",
|
|
258
|
-
direction: () => gridListData?.direction ?? "ltr"
|
|
381
|
+
direction: () => gridListData?.direction ?? "ltr",
|
|
382
|
+
layout: () => gridListData?.layout ?? "stack"
|
|
259
383
|
});
|
|
260
384
|
});
|
|
385
|
+
bindCapture(ref, { keydown: (event) => {
|
|
386
|
+
const handler = rowProps().onKeyDownCapture;
|
|
387
|
+
handler?.(event);
|
|
388
|
+
} });
|
|
261
389
|
const gridCellProps = createMemo(() => {
|
|
262
|
-
return {
|
|
390
|
+
return {
|
|
391
|
+
role: "gridcell",
|
|
392
|
+
"aria-colindex": 1
|
|
393
|
+
};
|
|
263
394
|
});
|
|
264
395
|
return {
|
|
265
396
|
get rowProps() {
|
|
@@ -268,6 +399,9 @@ function createGridListItem(props, state, ref) {
|
|
|
268
399
|
get gridCellProps() {
|
|
269
400
|
return gridCellProps();
|
|
270
401
|
},
|
|
402
|
+
get descriptionProps() {
|
|
403
|
+
return { id: descriptionId };
|
|
404
|
+
},
|
|
271
405
|
get isSelected() {
|
|
272
406
|
return isSelected();
|
|
273
407
|
},
|
|
@@ -283,12 +417,13 @@ function createGridListItem(props, state, ref) {
|
|
|
283
417
|
//#region src/gridlist/createGridListSelectionCheckbox.ts
|
|
284
418
|
/**
|
|
285
419
|
* createGridListSelectionCheckbox - Provides accessibility for a grid list item selection checkbox.
|
|
286
|
-
*
|
|
420
|
+
* Ported from packages/react-aria/src/gridlist/useGridListSelectionCheckbox.ts.
|
|
287
421
|
*/
|
|
288
422
|
/**
|
|
289
423
|
* Creates accessibility props for a grid list item selection checkbox.
|
|
290
424
|
*/
|
|
291
425
|
function createGridListSelectionCheckbox(props, state) {
|
|
426
|
+
const stringFormatter = createStringFormatter(gridIntlStrings, "@react-aria/grid");
|
|
292
427
|
const checkboxId = createId();
|
|
293
428
|
const isSelected = createMemo(() => {
|
|
294
429
|
const s = state();
|
|
@@ -306,13 +441,17 @@ function createGridListSelectionCheckbox(props, state) {
|
|
|
306
441
|
if (!isDisabled()) s.toggleSelection(p.key);
|
|
307
442
|
};
|
|
308
443
|
const checkboxProps = createMemo(() => {
|
|
444
|
+
const s = state();
|
|
445
|
+
const p = props();
|
|
446
|
+
const rowId = `${getGridListData(s)?.gridListId ?? "gridlist"}-row-${String(p.key)}`;
|
|
309
447
|
return {
|
|
310
448
|
id: checkboxId,
|
|
311
449
|
type: "checkbox",
|
|
312
450
|
checked: isSelected(),
|
|
313
451
|
disabled: isDisabled(),
|
|
314
452
|
onChange,
|
|
315
|
-
"aria-label": "
|
|
453
|
+
"aria-label": stringFormatter().format("select"),
|
|
454
|
+
"aria-labelledby": `${checkboxId} ${rowId}`
|
|
316
455
|
};
|
|
317
456
|
});
|
|
318
457
|
return { get checkboxProps() {
|