@proyecto-viviana/solidaria 0.4.2 → 0.6.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-APACHE-2.0 +201 -0
- package/NOTICE +91 -0
- package/dist/_chunk/DragManager.js +71 -25
- package/dist/_chunk/DragManager.js.map +1 -1
- package/dist/_chunk/DragManager.jsx +71 -25
- package/dist/_chunk/DragManager.jsx.map +1 -1
- package/dist/_chunk/FocusScope.js +281 -66
- package/dist/_chunk/FocusScope.js.map +1 -1
- package/dist/_chunk/FocusScope.jsx +274 -55
- package/dist/_chunk/FocusScope.jsx.map +1 -1
- package/dist/_chunk/actiongroup.js +43 -19
- package/dist/_chunk/actiongroup.js.map +1 -1
- package/dist/_chunk/actiongroup.jsx +43 -19
- package/dist/_chunk/actiongroup.jsx.map +1 -1
- package/dist/_chunk/announce.js +19 -6
- package/dist/_chunk/announce.js.map +1 -1
- package/dist/_chunk/announce.jsx +19 -6
- package/dist/_chunk/announce.jsx.map +1 -1
- package/dist/_chunk/ariaHideOutside.js +212 -10
- package/dist/_chunk/ariaHideOutside.js.map +1 -1
- package/dist/_chunk/ariaHideOutside.jsx +212 -10
- package/dist/_chunk/ariaHideOutside.jsx.map +1 -1
- package/dist/_chunk/autocomplete.js +26 -7
- package/dist/_chunk/autocomplete.js.map +1 -1
- package/dist/_chunk/autocomplete.jsx +26 -7
- package/dist/_chunk/autocomplete.jsx.map +1 -1
- package/dist/_chunk/breadcrumbs.js +17 -2
- package/dist/_chunk/breadcrumbs.js.map +1 -1
- package/dist/_chunk/breadcrumbs.jsx +17 -2
- package/dist/_chunk/breadcrumbs.jsx.map +1 -1
- package/dist/_chunk/button.js +53 -20
- package/dist/_chunk/button.js.map +1 -1
- package/dist/_chunk/button.jsx +53 -20
- package/dist/_chunk/button.jsx.map +1 -1
- package/dist/_chunk/calendar.js +341 -56
- package/dist/_chunk/calendar.js.map +1 -1
- package/dist/_chunk/calendar.jsx +341 -56
- package/dist/_chunk/calendar.jsx.map +1 -1
- package/dist/_chunk/checkbox.js +69 -26
- package/dist/_chunk/checkbox.js.map +1 -1
- package/dist/_chunk/checkbox.jsx +69 -26
- package/dist/_chunk/checkbox.jsx.map +1 -1
- package/dist/_chunk/color.js +307 -48
- package/dist/_chunk/color.js.map +1 -1
- package/dist/_chunk/color.jsx +307 -48
- package/dist/_chunk/color.jsx.map +1 -1
- package/dist/_chunk/combobox.js +193 -103
- package/dist/_chunk/combobox.js.map +1 -1
- package/dist/_chunk/combobox.jsx +193 -103
- package/dist/_chunk/combobox.jsx.map +1 -1
- package/dist/_chunk/constants.js +12 -0
- package/dist/_chunk/constants.js.map +1 -1
- package/dist/_chunk/constants.jsx +12 -0
- package/dist/_chunk/constants.jsx.map +1 -1
- package/dist/_chunk/createCollator.js +12 -0
- package/dist/_chunk/createCollator.js.map +1 -1
- package/dist/_chunk/createCollator.jsx +12 -0
- package/dist/_chunk/createCollator.jsx.map +1 -1
- package/dist/_chunk/createCollectionRowInteraction.js +50 -13
- package/dist/_chunk/createCollectionRowInteraction.js.map +1 -1
- package/dist/_chunk/createCollectionRowInteraction.jsx +50 -13
- package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -1
- package/dist/_chunk/createField.js +35 -25
- package/dist/_chunk/createField.js.map +1 -1
- package/dist/_chunk/createField.jsx +35 -25
- package/dist/_chunk/createField.jsx.map +1 -1
- package/dist/_chunk/createFocus.js +18 -5
- package/dist/_chunk/createFocus.js.map +1 -1
- package/dist/_chunk/createFocus.jsx +18 -5
- package/dist/_chunk/createFocus.jsx.map +1 -1
- package/dist/_chunk/createFocusRing.js +16 -7
- package/dist/_chunk/createFocusRing.js.map +1 -1
- package/dist/_chunk/createFocusRing.jsx +16 -7
- package/dist/_chunk/createFocusRing.jsx.map +1 -1
- package/dist/_chunk/createFocusWithin.js +16 -4
- package/dist/_chunk/createFocusWithin.js.map +1 -1
- package/dist/_chunk/createFocusWithin.jsx +16 -4
- package/dist/_chunk/createFocusWithin.jsx.map +1 -1
- package/dist/_chunk/createFocusable.js +39 -53
- package/dist/_chunk/createFocusable.js.map +1 -1
- package/dist/_chunk/createFocusable.jsx +39 -53
- package/dist/_chunk/createFocusable.jsx.map +1 -1
- package/dist/_chunk/createFormReset.js +24 -12
- package/dist/_chunk/createFormReset.js.map +1 -1
- package/dist/_chunk/createFormReset.jsx +24 -12
- package/dist/_chunk/createFormReset.jsx.map +1 -1
- package/dist/_chunk/createFormValidation.js +41 -17
- package/dist/_chunk/createFormValidation.js.map +1 -1
- package/dist/_chunk/createFormValidation.jsx +41 -17
- package/dist/_chunk/createFormValidation.jsx.map +1 -1
- package/dist/_chunk/createHover.js +56 -42
- package/dist/_chunk/createHover.js.map +1 -1
- package/dist/_chunk/createHover.jsx +56 -42
- package/dist/_chunk/createHover.jsx.map +1 -1
- package/dist/_chunk/createKeyboard.js +205 -0
- package/dist/_chunk/createKeyboard.js.map +1 -0
- package/dist/_chunk/createKeyboard.jsx +205 -0
- package/dist/_chunk/createKeyboard.jsx.map +1 -0
- package/dist/_chunk/createLabel.js +17 -4
- package/dist/_chunk/createLabel.js.map +1 -1
- package/dist/_chunk/createLabel.jsx +17 -4
- package/dist/_chunk/createLabel.jsx.map +1 -1
- package/dist/_chunk/createLabels.js +14 -2
- package/dist/_chunk/createLabels.js.map +1 -1
- package/dist/_chunk/createLabels.jsx +14 -2
- package/dist/_chunk/createLabels.jsx.map +1 -1
- package/dist/_chunk/createLandmark.js +19 -3
- package/dist/_chunk/createLandmark.js.map +1 -1
- package/dist/_chunk/createLandmark.jsx +19 -3
- package/dist/_chunk/createLandmark.jsx.map +1 -1
- package/dist/_chunk/createLongPress.js +105 -0
- package/dist/_chunk/createLongPress.js.map +1 -0
- package/dist/_chunk/createLongPress.jsx +105 -0
- package/dist/_chunk/createLongPress.jsx.map +1 -0
- package/dist/_chunk/createOverlay.js +220 -111
- package/dist/_chunk/createOverlay.js.map +1 -1
- package/dist/_chunk/createOverlay.jsx +220 -111
- package/dist/_chunk/createOverlay.jsx.map +1 -1
- package/dist/_chunk/createOverlayTrigger.js +58 -0
- package/dist/_chunk/createOverlayTrigger.js.map +1 -0
- package/dist/_chunk/createOverlayTrigger.jsx +58 -0
- package/dist/_chunk/createOverlayTrigger.jsx.map +1 -0
- package/dist/_chunk/createPress.js +38 -28
- package/dist/_chunk/createPress.js.map +1 -1
- package/dist/_chunk/createPress.jsx +38 -28
- package/dist/_chunk/createPress.jsx.map +1 -1
- package/dist/_chunk/createProgressBar.js +17 -4
- package/dist/_chunk/createProgressBar.js.map +1 -1
- package/dist/_chunk/createProgressBar.jsx +17 -4
- package/dist/_chunk/createProgressBar.jsx.map +1 -1
- package/dist/_chunk/createSelectableItem.js +58 -20
- package/dist/_chunk/createSelectableItem.js.map +1 -1
- package/dist/_chunk/createSelectableItem.jsx +58 -20
- package/dist/_chunk/createSelectableItem.jsx.map +1 -1
- package/dist/_chunk/createSelectableList.js +776 -0
- package/dist/_chunk/createSelectableList.js.map +1 -0
- package/dist/_chunk/createSelectableList.jsx +776 -0
- package/dist/_chunk/createSelectableList.jsx.map +1 -0
- package/dist/_chunk/createStringFormatter.js +350 -5
- package/dist/_chunk/createStringFormatter.js.map +1 -1
- package/dist/_chunk/createStringFormatter.jsx +350 -5
- package/dist/_chunk/createStringFormatter.jsx.map +1 -1
- package/dist/_chunk/createToggle.js +68 -19
- package/dist/_chunk/createToggle.js.map +1 -1
- package/dist/_chunk/createToggle.jsx +68 -19
- package/dist/_chunk/createToggle.jsx.map +1 -1
- package/dist/_chunk/createTypeSelect.js +15 -3
- package/dist/_chunk/createTypeSelect.js.map +1 -1
- package/dist/_chunk/createTypeSelect.jsx +15 -3
- package/dist/_chunk/createTypeSelect.jsx.map +1 -1
- package/dist/_chunk/{visually-hidden.js → createVisuallyHidden.js} +16 -4
- package/dist/_chunk/createVisuallyHidden.js.map +1 -0
- package/dist/_chunk/{visually-hidden.jsx → createVisuallyHidden.jsx} +16 -4
- package/dist/_chunk/createVisuallyHidden.jsx.map +1 -0
- package/dist/_chunk/datepicker.js +687 -602
- package/dist/_chunk/datepicker.js.map +1 -1
- package/dist/_chunk/datepicker.jsx +687 -602
- package/dist/_chunk/datepicker.jsx.map +1 -1
- package/dist/_chunk/dialog.js +49 -19
- package/dist/_chunk/dialog.js.map +1 -1
- package/dist/_chunk/dialog.jsx +49 -19
- package/dist/_chunk/dialog.jsx.map +1 -1
- package/dist/_chunk/disclosure.js +48 -28
- package/dist/_chunk/disclosure.js.map +1 -1
- package/dist/_chunk/disclosure.jsx +48 -28
- package/dist/_chunk/disclosure.jsx.map +1 -1
- package/dist/_chunk/dnd.js +1340 -1172
- package/dist/_chunk/dnd.js.map +1 -1
- package/dist/_chunk/dnd.jsx +1340 -1172
- package/dist/_chunk/dnd.jsx.map +1 -1
- package/dist/_chunk/dom.js +1200 -0
- package/dist/_chunk/dom.js.map +1 -0
- package/dist/_chunk/dom.jsx +1200 -0
- package/dist/_chunk/dom.jsx.map +1 -0
- package/dist/_chunk/env.js +1 -57
- package/dist/_chunk/env.js.map +1 -1
- package/dist/_chunk/env.jsx +1 -57
- package/dist/_chunk/env.jsx.map +1 -1
- package/dist/_chunk/filterDOMProps.js +32 -7
- package/dist/_chunk/filterDOMProps.js.map +1 -1
- package/dist/_chunk/filterDOMProps.jsx +32 -7
- package/dist/_chunk/filterDOMProps.jsx.map +1 -1
- package/dist/_chunk/focus.js +570 -338
- package/dist/_chunk/focus.js.map +1 -1
- package/dist/_chunk/focus.jsx +570 -338
- package/dist/_chunk/focus.jsx.map +1 -1
- package/dist/_chunk/grid.js +62 -8
- package/dist/_chunk/grid.js.map +1 -1
- package/dist/_chunk/grid.jsx +62 -8
- package/dist/_chunk/grid.jsx.map +1 -1
- package/dist/_chunk/gridlist.js +192 -53
- package/dist/_chunk/gridlist.js.map +1 -1
- package/dist/_chunk/gridlist.jsx +192 -53
- package/dist/_chunk/gridlist.jsx.map +1 -1
- package/dist/_chunk/i18n.js +68 -1
- package/dist/_chunk/i18n.js.map +1 -1
- package/dist/_chunk/i18n.jsx +68 -1
- package/dist/_chunk/i18n.jsx.map +1 -1
- package/dist/_chunk/interactions.js +38 -102
- package/dist/_chunk/interactions.js.map +1 -1
- package/dist/_chunk/interactions.jsx +38 -100
- package/dist/_chunk/interactions.jsx.map +1 -1
- package/dist/_chunk/intl.js +280 -0
- package/dist/_chunk/intl.js.map +1 -0
- package/dist/_chunk/intl.jsx +280 -0
- package/dist/_chunk/intl.jsx.map +1 -0
- package/dist/_chunk/link.js +15 -4
- package/dist/_chunk/link.js.map +1 -1
- package/dist/_chunk/link.jsx +15 -4
- package/dist/_chunk/link.jsx.map +1 -1
- package/dist/_chunk/listbox.js +99 -175
- package/dist/_chunk/listbox.js.map +1 -1
- package/dist/_chunk/listbox.jsx +99 -175
- package/dist/_chunk/listbox.jsx.map +1 -1
- package/dist/_chunk/locale.js +58 -12
- package/dist/_chunk/locale.js.map +1 -1
- package/dist/_chunk/locale.jsx +57 -11
- package/dist/_chunk/locale.jsx.map +1 -1
- package/dist/_chunk/menu.js +298 -57
- package/dist/_chunk/menu.js.map +1 -1
- package/dist/_chunk/menu.jsx +298 -57
- package/dist/_chunk/menu.jsx.map +1 -1
- package/dist/_chunk/mergeProps.js +216 -0
- package/dist/_chunk/mergeProps.js.map +1 -0
- package/dist/_chunk/mergeProps.jsx +216 -0
- package/dist/_chunk/mergeProps.jsx.map +1 -0
- package/dist/_chunk/meter.js +16 -4
- package/dist/_chunk/meter.js.map +1 -1
- package/dist/_chunk/meter.jsx +16 -4
- package/dist/_chunk/meter.jsx.map +1 -1
- package/dist/_chunk/numberfield.js +167 -22
- package/dist/_chunk/numberfield.js.map +1 -1
- package/dist/_chunk/numberfield.jsx +167 -22
- package/dist/_chunk/numberfield.jsx.map +1 -1
- package/dist/_chunk/overlays.js +87 -74
- package/dist/_chunk/overlays.js.map +1 -1
- package/dist/_chunk/overlays.jsx +71 -57
- package/dist/_chunk/overlays.jsx.map +1 -1
- package/dist/_chunk/owner.js +23 -0
- package/dist/_chunk/owner.js.map +1 -0
- package/dist/_chunk/owner.jsx +23 -0
- package/dist/_chunk/owner.jsx.map +1 -0
- package/dist/_chunk/popover.js +180 -42
- package/dist/_chunk/popover.js.map +1 -1
- package/dist/_chunk/popover.jsx +180 -42
- package/dist/_chunk/popover.jsx.map +1 -1
- package/dist/_chunk/radio.js +92 -32
- package/dist/_chunk/radio.js.map +1 -1
- package/dist/_chunk/radio.jsx +92 -32
- package/dist/_chunk/radio.jsx.map +1 -1
- package/dist/_chunk/reactivity.js.map +1 -1
- package/dist/_chunk/reactivity.jsx.map +1 -1
- package/dist/_chunk/refs.js +41 -0
- package/dist/_chunk/refs.js.map +1 -0
- package/dist/_chunk/refs.jsx +41 -0
- package/dist/_chunk/refs.jsx.map +1 -0
- package/dist/_chunk/searchfield.js +69 -3
- package/dist/_chunk/searchfield.js.map +1 -1
- package/dist/_chunk/searchfield.jsx +69 -3
- package/dist/_chunk/searchfield.jsx.map +1 -1
- package/dist/_chunk/select.js +226 -80
- package/dist/_chunk/select.js.map +1 -1
- package/dist/_chunk/select.jsx +162 -70
- package/dist/_chunk/select.jsx.map +1 -1
- package/dist/_chunk/selection.js +20 -638
- package/dist/_chunk/selection.js.map +1 -1
- package/dist/_chunk/selection.jsx +20 -638
- package/dist/_chunk/selection.jsx.map +1 -1
- package/dist/_chunk/separator.js +12 -0
- package/dist/_chunk/separator.js.map +1 -1
- package/dist/_chunk/separator.jsx +12 -0
- package/dist/_chunk/separator.jsx.map +1 -1
- package/dist/_chunk/slider.js +25 -16
- package/dist/_chunk/slider.js.map +1 -1
- package/dist/_chunk/slider.jsx +25 -16
- package/dist/_chunk/slider.jsx.map +1 -1
- package/dist/_chunk/spinbutton.js +52 -42
- package/dist/_chunk/spinbutton.js.map +1 -1
- package/dist/_chunk/spinbutton.jsx +52 -42
- package/dist/_chunk/spinbutton.jsx.map +1 -1
- package/dist/_chunk/steplist.js +14 -1
- package/dist/_chunk/steplist.js.map +1 -1
- package/dist/_chunk/steplist.jsx +14 -1
- package/dist/_chunk/steplist.jsx.map +1 -1
- package/dist/_chunk/switch.js +21 -3
- package/dist/_chunk/switch.js.map +1 -1
- package/dist/_chunk/switch.jsx +21 -3
- package/dist/_chunk/switch.jsx.map +1 -1
- package/dist/_chunk/table.js +666 -88
- package/dist/_chunk/table.js.map +1 -1
- package/dist/_chunk/table.jsx +666 -88
- package/dist/_chunk/table.jsx.map +1 -1
- package/dist/_chunk/tabs.js +115 -17
- package/dist/_chunk/tabs.js.map +1 -1
- package/dist/_chunk/tabs.jsx +115 -17
- package/dist/_chunk/tabs.jsx.map +1 -1
- package/dist/_chunk/tag.js +240 -39
- package/dist/_chunk/tag.js.map +1 -1
- package/dist/_chunk/tag.jsx +240 -39
- package/dist/_chunk/tag.jsx.map +1 -1
- package/dist/_chunk/textfield.js +83 -12
- package/dist/_chunk/textfield.js.map +1 -1
- package/dist/_chunk/textfield.jsx +83 -12
- package/dist/_chunk/textfield.jsx.map +1 -1
- package/dist/_chunk/toast.js +61 -28
- package/dist/_chunk/toast.js.map +1 -1
- package/dist/_chunk/toast.jsx +61 -28
- package/dist/_chunk/toast.jsx.map +1 -1
- package/dist/_chunk/tokenfield.js +567 -0
- package/dist/_chunk/tokenfield.js.map +1 -0
- package/dist/_chunk/tokenfield.jsx +567 -0
- package/dist/_chunk/tokenfield.jsx.map +1 -0
- package/dist/_chunk/toolbar.js +25 -8
- package/dist/_chunk/toolbar.js.map +1 -1
- package/dist/_chunk/toolbar.jsx +25 -8
- package/dist/_chunk/toolbar.jsx.map +1 -1
- package/dist/_chunk/tooltip.js +379 -6
- package/dist/_chunk/tooltip.js.map +1 -1
- package/dist/_chunk/tooltip.jsx +379 -6
- package/dist/_chunk/tooltip.jsx.map +1 -1
- package/dist/_chunk/tree.js +280 -69
- package/dist/_chunk/tree.js.map +1 -1
- package/dist/_chunk/tree.jsx +280 -69
- package/dist/_chunk/tree.jsx.map +1 -1
- package/dist/_chunk/utils.js +192 -150
- package/dist/_chunk/utils.js.map +1 -1
- package/dist/_chunk/utils.jsx +192 -150
- package/dist/_chunk/utils.jsx.map +1 -1
- package/dist/_chunk/virtualFocus.js +54 -0
- package/dist/_chunk/virtualFocus.js.map +1 -0
- package/dist/_chunk/virtualFocus.jsx +54 -0
- package/dist/_chunk/virtualFocus.jsx.map +1 -0
- package/dist/_chunk/virtualizer.js +202 -0
- package/dist/_chunk/virtualizer.js.map +1 -0
- package/dist/_chunk/virtualizer.jsx +202 -0
- package/dist/_chunk/virtualizer.jsx.map +1 -0
- package/dist/actiongroup/createActionGroup.d.ts +2 -1
- package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
- package/dist/autocomplete/createAutocomplete.d.ts +1 -9
- package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
- package/dist/autocomplete/intl/index.d.ts +13 -0
- package/dist/autocomplete/intl/index.d.ts.map +1 -0
- package/dist/breadcrumbs/createBreadcrumbs.d.ts +3 -1
- package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
- package/dist/breadcrumbs/intl/index.d.ts +13 -0
- package/dist/breadcrumbs/intl/index.d.ts.map +1 -0
- package/dist/button/createButton.d.ts.map +1 -1
- package/dist/button/createToggleButton.d.ts.map +1 -1
- package/dist/button/createToggleButtonGroup.d.ts +1 -1
- package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
- package/dist/button/types.d.ts +14 -0
- package/dist/button/types.d.ts.map +1 -1
- package/dist/calendar/createCalendar.d.ts +1 -7
- package/dist/calendar/createCalendar.d.ts.map +1 -1
- package/dist/calendar/createCalendarCell.d.ts +0 -6
- package/dist/calendar/createCalendarCell.d.ts.map +1 -1
- package/dist/calendar/createCalendarGrid.d.ts +1 -7
- package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
- package/dist/calendar/createCalendarMonthPicker.d.ts +0 -8
- package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -1
- package/dist/calendar/createCalendarYearPicker.d.ts +0 -8
- package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -1
- package/dist/calendar/createRangeCalendar.d.ts +13 -7
- package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
- package/dist/calendar/createRangeCalendarCell.d.ts +2 -6
- package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
- package/dist/calendar/intl/index.d.ts.map +1 -1
- package/dist/calendar/utils.d.ts.map +1 -1
- package/dist/checkbox/createCheckbox.d.ts +2 -1
- package/dist/checkbox/createCheckbox.d.ts.map +1 -1
- package/dist/checkbox/createCheckboxGroup.d.ts +1 -9
- package/dist/checkbox/createCheckboxGroup.d.ts.map +1 -1
- package/dist/checkbox/createCheckboxGroupItem.d.ts +0 -8
- package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
- package/dist/collections/index.d.ts +1 -1
- package/dist/collections/index.d.ts.map +1 -1
- package/dist/collections/index.js +18 -2
- package/dist/collections/index.js.map +1 -1
- package/dist/collections/index.jsx +18 -2
- package/dist/collections/index.jsx.map +1 -1
- package/dist/color/createColorArea.d.ts +2 -7
- package/dist/color/createColorArea.d.ts.map +1 -1
- package/dist/color/createColorField.d.ts +2 -7
- package/dist/color/createColorField.d.ts.map +1 -1
- package/dist/color/createColorSlider.d.ts +1 -6
- package/dist/color/createColorSlider.d.ts.map +1 -1
- package/dist/color/createColorSwatch.d.ts +1 -6
- package/dist/color/createColorSwatch.d.ts.map +1 -1
- package/dist/color/createColorWheel.d.ts +1 -6
- package/dist/color/createColorWheel.d.ts.map +1 -1
- package/dist/color/intl/index.d.ts.map +1 -1
- package/dist/color/types.d.ts +47 -1
- package/dist/color/types.d.ts.map +1 -1
- package/dist/combobox/createComboBox.d.ts +17 -8
- package/dist/combobox/createComboBox.d.ts.map +1 -1
- package/dist/combobox/intl/generated-locales.d.ts +3 -0
- package/dist/combobox/intl/generated-locales.d.ts.map +1 -1
- package/dist/combobox/intl/index.d.ts +3 -2
- package/dist/combobox/intl/index.d.ts.map +1 -1
- package/dist/datepicker/createDateField.d.ts +0 -10
- package/dist/datepicker/createDateField.d.ts.map +1 -1
- package/dist/datepicker/createDatePicker.d.ts +0 -16
- package/dist/datepicker/createDatePicker.d.ts.map +1 -1
- package/dist/datepicker/createDatePickerGroup.d.ts +1 -1
- package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -1
- package/dist/datepicker/createDateRangePicker.d.ts +0 -21
- package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
- package/dist/datepicker/createDateSegment.d.ts +0 -9
- package/dist/datepicker/createDateSegment.d.ts.map +1 -1
- package/dist/datepicker/createDisplayNames.d.ts +1 -9
- package/dist/datepicker/createDisplayNames.d.ts.map +1 -1
- package/dist/datepicker/createTimeField.d.ts.map +1 -1
- package/dist/datepicker/intl.d.ts.map +1 -1
- package/dist/dialog/createDialog.d.ts +2 -4
- package/dist/dialog/createDialog.d.ts.map +1 -1
- package/dist/dialog/types.d.ts +14 -0
- package/dist/dialog/types.d.ts.map +1 -1
- package/dist/disclosure/createDisclosure.d.ts +1 -8
- package/dist/disclosure/createDisclosure.d.ts.map +1 -1
- package/dist/disclosure/createDisclosureGroup.d.ts +3 -4
- package/dist/disclosure/createDisclosureGroup.d.ts.map +1 -1
- package/dist/dnd/DragManager.d.ts +1 -16
- package/dist/dnd/DragManager.d.ts.map +1 -1
- package/dist/dnd/DropTargetKeyboardNavigation.d.ts +2 -2
- package/dist/dnd/createDrag.d.ts +1 -7
- package/dist/dnd/createDrag.d.ts.map +1 -1
- package/dist/dnd/createDraggableCollection.d.ts +1 -7
- package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
- package/dist/dnd/createDraggableItem.d.ts +2 -7
- package/dist/dnd/createDraggableItem.d.ts.map +1 -1
- package/dist/dnd/createDrop.d.ts +1 -7
- package/dist/dnd/createDrop.d.ts.map +1 -1
- package/dist/dnd/createDropIndicator.d.ts +27 -0
- package/dist/dnd/createDropIndicator.d.ts.map +1 -0
- package/dist/dnd/createDroppableCollection.d.ts +6 -8
- package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
- package/dist/dnd/createDroppableItem.d.ts +12 -10
- package/dist/dnd/createDroppableItem.d.ts.map +1 -1
- package/dist/dnd/index.d.ts +3 -1
- package/dist/dnd/index.d.ts.map +1 -1
- package/dist/dnd/index.js +2 -2
- package/dist/dnd/index.jsx +2 -2
- package/dist/dnd/intl/index.d.ts +6 -4
- package/dist/dnd/intl/index.d.ts.map +1 -1
- package/dist/dnd/types.d.ts +20 -1
- package/dist/dnd/types.d.ts.map +1 -1
- package/dist/dnd/utils.d.ts +4 -0
- package/dist/dnd/utils.d.ts.map +1 -1
- package/dist/focus/FocusScope.d.ts +9 -5
- package/dist/focus/FocusScope.d.ts.map +1 -1
- package/dist/focus/createAutoFocus.d.ts +3 -0
- package/dist/focus/createAutoFocus.d.ts.map +1 -1
- package/dist/focus/createFocusRestore.d.ts +3 -0
- package/dist/focus/createFocusRestore.d.ts.map +1 -1
- package/dist/focus/createHasTabbableChild.d.ts +13 -0
- package/dist/focus/createHasTabbableChild.d.ts.map +1 -0
- package/dist/focus/createVirtualFocus.d.ts +4 -1
- package/dist/focus/createVirtualFocus.d.ts.map +1 -1
- package/dist/focus/index.js +3 -2
- package/dist/focus/index.jsx +3 -2
- package/dist/focus/virtualFocus.d.ts +1 -1
- package/dist/form/createFormReset.d.ts +1 -7
- package/dist/form/createFormReset.d.ts.map +1 -1
- package/dist/form/createFormValidation.d.ts +1 -9
- package/dist/form/createFormValidation.d.ts.map +1 -1
- package/dist/grid/GridKeyboardDelegate.d.ts.map +1 -1
- package/dist/grid/createGrid.d.ts +1 -5
- package/dist/grid/createGrid.d.ts.map +1 -1
- package/dist/grid/createGridCell.d.ts +1 -5
- package/dist/grid/createGridCell.d.ts.map +1 -1
- package/dist/grid/createGridRow.d.ts +1 -5
- package/dist/grid/createGridRow.d.ts.map +1 -1
- package/dist/grid/index.d.ts +2 -2
- package/dist/grid/intl/index.d.ts +18 -0
- package/dist/grid/intl/index.d.ts.map +1 -0
- package/dist/grid/types.d.ts +25 -2
- package/dist/grid/types.d.ts.map +1 -1
- package/dist/gridlist/createGridList.d.ts +3 -5
- package/dist/gridlist/createGridList.d.ts.map +1 -1
- package/dist/gridlist/createGridListItem.d.ts +1 -5
- package/dist/gridlist/createGridListItem.d.ts.map +1 -1
- package/dist/gridlist/createGridListSection.d.ts +0 -4
- package/dist/gridlist/createGridListSection.d.ts.map +1 -1
- package/dist/gridlist/createGridListSelectionCheckbox.d.ts +1 -5
- package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +1 -1
- package/dist/gridlist/intl/index.d.ts +14 -0
- package/dist/gridlist/intl/index.d.ts.map +1 -0
- package/dist/gridlist/types.d.ts +56 -2
- package/dist/gridlist/types.d.ts.map +1 -1
- package/dist/i18n/compileIcu.d.ts +24 -0
- package/dist/i18n/compileIcu.d.ts.map +1 -0
- package/dist/i18n/createCollator.d.ts +0 -7
- package/dist/i18n/createCollator.d.ts.map +1 -1
- package/dist/i18n/createDateFormatter.d.ts +0 -7
- package/dist/i18n/createDateFormatter.d.ts.map +1 -1
- package/dist/i18n/createFilter.d.ts +0 -7
- package/dist/i18n/createFilter.d.ts.map +1 -1
- package/dist/i18n/createListFormatter.d.ts +9 -0
- package/dist/i18n/createListFormatter.d.ts.map +1 -0
- package/dist/i18n/createNumberFormatter.d.ts +0 -7
- package/dist/i18n/createNumberFormatter.d.ts.map +1 -1
- package/dist/i18n/createStringFormatter.d.ts +14 -4
- package/dist/i18n/createStringFormatter.d.ts.map +1 -1
- package/dist/i18n/index.d.ts +1 -0
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +2 -2
- package/dist/i18n/index.jsx +2 -2
- package/dist/i18n/locale.d.ts +2 -8
- package/dist/i18n/locale.d.ts.map +1 -1
- package/dist/i18n/utils.d.ts +0 -7
- package/dist/i18n/utils.d.ts.map +1 -1
- package/dist/index.d.ts +10 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +27 -21
- package/dist/index.jsx +27 -21
- package/dist/interactions/FocusableProvider.d.ts +3 -2
- package/dist/interactions/FocusableProvider.d.ts.map +1 -1
- package/dist/interactions/PressEvent.d.ts +2 -1
- package/dist/interactions/PressEvent.d.ts.map +1 -1
- package/dist/interactions/createContextMenu.d.ts +24 -0
- package/dist/interactions/createContextMenu.d.ts.map +1 -0
- package/dist/interactions/createFocus.d.ts +3 -2
- package/dist/interactions/createFocus.d.ts.map +1 -1
- package/dist/interactions/createFocusRing.d.ts +2 -1
- package/dist/interactions/createFocusRing.d.ts.map +1 -1
- package/dist/interactions/createFocusWithin.d.ts +1 -6
- package/dist/interactions/createFocusWithin.d.ts.map +1 -1
- package/dist/interactions/createFocusable.d.ts +2 -6
- package/dist/interactions/createFocusable.d.ts.map +1 -1
- package/dist/interactions/createHover.d.ts +3 -10
- package/dist/interactions/createHover.d.ts.map +1 -1
- package/dist/interactions/createInteractionModality.d.ts +12 -10
- package/dist/interactions/createInteractionModality.d.ts.map +1 -1
- package/dist/interactions/createKeyboard.d.ts +12 -3
- package/dist/interactions/createKeyboard.d.ts.map +1 -1
- package/dist/interactions/createKeyboardShortcutHandler.d.ts +24 -0
- package/dist/interactions/createKeyboardShortcutHandler.d.ts.map +1 -0
- package/dist/interactions/createLongPress.d.ts +4 -7
- package/dist/interactions/createLongPress.d.ts.map +1 -1
- package/dist/interactions/createMove.d.ts +1 -6
- package/dist/interactions/createMove.d.ts.map +1 -1
- package/dist/interactions/createPress.d.ts +2 -7
- package/dist/interactions/createPress.d.ts.map +1 -1
- package/dist/interactions/index.d.ts +1 -1
- package/dist/interactions/index.d.ts.map +1 -1
- package/dist/interactions/index.js +5 -3
- package/dist/interactions/index.jsx +5 -3
- package/dist/label/createField.d.ts +7 -1
- package/dist/label/createField.d.ts.map +1 -1
- package/dist/label/createLabel.d.ts +1 -1
- package/dist/label/createLabel.d.ts.map +1 -1
- package/dist/label/createLabels.d.ts +0 -7
- package/dist/label/createLabels.d.ts.map +1 -1
- package/dist/landmark/createLandmark.d.ts +4 -1
- package/dist/landmark/createLandmark.d.ts.map +1 -1
- package/dist/link/createLink.d.ts +1 -1
- package/dist/link/createLink.d.ts.map +1 -1
- package/dist/listbox/createListBox.d.ts +8 -7
- package/dist/listbox/createListBox.d.ts.map +1 -1
- package/dist/listbox/createOption.d.ts +7 -1
- package/dist/listbox/createOption.d.ts.map +1 -1
- package/dist/live-announcer/announce.d.ts +2 -13
- package/dist/live-announcer/announce.d.ts.map +1 -1
- package/dist/menu/createMenu.d.ts +3 -7
- package/dist/menu/createMenu.d.ts.map +1 -1
- package/dist/menu/createMenuItem.d.ts +2 -1
- package/dist/menu/createMenuItem.d.ts.map +1 -1
- package/dist/menu/createMenuTrigger.d.ts +24 -20
- package/dist/menu/createMenuTrigger.d.ts.map +1 -1
- package/dist/menu/index.d.ts +1 -1
- package/dist/menu/index.d.ts.map +1 -1
- package/dist/menu/intl/index.d.ts +4 -0
- package/dist/menu/intl/index.d.ts.map +1 -0
- package/dist/meter/createMeter.d.ts +2 -1
- package/dist/meter/createMeter.d.ts.map +1 -1
- package/dist/numberfield/createNumberField.d.ts +29 -6
- package/dist/numberfield/createNumberField.d.ts.map +1 -1
- package/dist/overlays/ariaHideOutside.d.ts +0 -4
- package/dist/overlays/ariaHideOutside.d.ts.map +1 -1
- package/dist/overlays/createInteractOutside.d.ts +2 -5
- package/dist/overlays/createInteractOutside.d.ts.map +1 -1
- package/dist/overlays/createModal.d.ts +3 -6
- package/dist/overlays/createModal.d.ts.map +1 -1
- package/dist/overlays/createOverlay.d.ts +1 -5
- package/dist/overlays/createOverlay.d.ts.map +1 -1
- package/dist/overlays/createOverlayTrigger.d.ts +2 -6
- package/dist/overlays/createOverlayTrigger.d.ts.map +1 -1
- package/dist/overlays/createPreventScroll.d.ts +0 -4
- package/dist/overlays/createPreventScroll.d.ts.map +1 -1
- package/dist/overlays/index.d.ts +1 -0
- package/dist/overlays/index.d.ts.map +1 -1
- package/dist/overlays/index.js +3 -2
- package/dist/overlays/index.jsx +3 -2
- package/dist/overlays/intl/index.d.ts +13 -0
- package/dist/overlays/intl/index.d.ts.map +1 -0
- package/dist/popover/calculatePosition.d.ts +1 -1
- package/dist/popover/calculatePosition.d.ts.map +1 -1
- package/dist/popover/createOverlayPosition.d.ts +1 -7
- package/dist/popover/createOverlayPosition.d.ts.map +1 -1
- package/dist/popover/createPopover.d.ts +6 -7
- package/dist/popover/createPopover.d.ts.map +1 -1
- package/dist/progress/createProgressBar.d.ts +2 -10
- package/dist/progress/createProgressBar.d.ts.map +1 -1
- package/dist/radio/createRadio.d.ts +8 -1
- package/dist/radio/createRadio.d.ts.map +1 -1
- package/dist/radio/createRadioGroup.d.ts +1 -9
- package/dist/radio/createRadioGroup.d.ts.map +1 -1
- package/dist/searchfield/createSearchField.d.ts +1 -1
- package/dist/searchfield/createSearchField.d.ts.map +1 -1
- package/dist/searchfield/intl/index.d.ts +13 -0
- package/dist/searchfield/intl/index.d.ts.map +1 -0
- package/dist/select/createHiddenSelect.d.ts +3 -10
- package/dist/select/createHiddenSelect.d.ts.map +1 -1
- package/dist/select/createSelect.d.ts +10 -6
- package/dist/select/createSelect.d.ts.map +1 -1
- package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -1
- package/dist/selection/ListKeyboardDelegate.d.ts +2 -1
- package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -1
- package/dist/selection/constants.d.ts.map +1 -1
- package/dist/selection/createCollectionRowInteraction.d.ts +12 -1
- package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -1
- package/dist/selection/createScrollIntoViewOnFocus.d.ts +0 -11
- package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -1
- package/dist/selection/createSelectableCollection.d.ts +1 -23
- package/dist/selection/createSelectableCollection.d.ts.map +1 -1
- package/dist/selection/createSelectableItem.d.ts +2 -29
- package/dist/selection/createSelectableItem.d.ts.map +1 -1
- package/dist/selection/createSelectableList.d.ts +4 -17
- package/dist/selection/createSelectableList.d.ts.map +1 -1
- package/dist/selection/createTypeSelect.d.ts +2 -8
- package/dist/selection/createTypeSelect.d.ts.map +1 -1
- package/dist/selection/index.js +3 -2
- package/dist/selection/index.jsx +3 -2
- package/dist/selection/selectItem.d.ts.map +1 -1
- package/dist/selection/utils.d.ts +1 -1
- package/dist/selection/utils.d.ts.map +1 -1
- package/dist/separator/createSeparator.d.ts +3 -1
- package/dist/separator/createSeparator.d.ts.map +1 -1
- package/dist/slider/createSlider.d.ts +1 -6
- package/dist/slider/createSlider.d.ts.map +1 -1
- package/dist/spinbutton/createSpinButton.d.ts +0 -9
- package/dist/spinbutton/createSpinButton.d.ts.map +1 -1
- package/dist/spinbutton/index.d.ts +2 -2
- package/dist/spinbutton/index.d.ts.map +1 -1
- package/dist/spinbutton/intl.d.ts.map +1 -1
- package/dist/ssr/index.d.ts +3 -9
- package/dist/ssr/index.d.ts.map +1 -1
- package/dist/ssr/index.js +47 -26
- package/dist/ssr/index.js.map +1 -1
- package/dist/ssr/index.jsx +47 -26
- package/dist/ssr/index.jsx.map +1 -1
- package/dist/steplist/createStepList.d.ts +1 -1
- package/dist/steplist/createStepList.d.ts.map +1 -1
- package/dist/switch/createSwitch.d.ts +2 -1
- package/dist/switch/createSwitch.d.ts.map +1 -1
- package/dist/table/createTable.d.ts +1 -5
- package/dist/table/createTable.d.ts.map +1 -1
- package/dist/table/createTableCell.d.ts +1 -5
- package/dist/table/createTableCell.d.ts.map +1 -1
- package/dist/table/createTableColumnHeader.d.ts +1 -5
- package/dist/table/createTableColumnHeader.d.ts.map +1 -1
- package/dist/table/createTableColumnResize.d.ts +2 -8
- package/dist/table/createTableColumnResize.d.ts.map +1 -1
- package/dist/table/createTableHeaderRow.d.ts +1 -5
- package/dist/table/createTableHeaderRow.d.ts.map +1 -1
- package/dist/table/createTableRow.d.ts +1 -5
- package/dist/table/createTableRow.d.ts.map +1 -1
- package/dist/table/createTableRowGroup.d.ts +1 -5
- package/dist/table/createTableRowGroup.d.ts.map +1 -1
- package/dist/table/createTableSelectAllCheckbox.d.ts +1 -5
- package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
- package/dist/table/createTableSelectionCheckbox.d.ts +1 -5
- package/dist/table/createTableSelectionCheckbox.d.ts.map +1 -1
- package/dist/table/index.d.ts +2 -2
- package/dist/table/intl/index.d.ts +23 -0
- package/dist/table/intl/index.d.ts.map +1 -0
- package/dist/table/types.d.ts +44 -2
- package/dist/table/types.d.ts.map +1 -1
- package/dist/table/utils.d.ts.map +1 -1
- package/dist/tabs/createTabs.d.ts +5 -9
- package/dist/tabs/createTabs.d.ts.map +1 -1
- package/dist/tag/createTag.d.ts +4 -8
- package/dist/tag/createTag.d.ts.map +1 -1
- package/dist/tag/createTagGroup.d.ts +0 -9
- package/dist/tag/createTagGroup.d.ts.map +1 -1
- package/dist/tag/intl/index.d.ts +14 -0
- package/dist/tag/intl/index.d.ts.map +1 -0
- package/dist/textfield/createTextField.d.ts +6 -8
- package/dist/textfield/createTextField.d.ts.map +1 -1
- package/dist/toast/createToast.d.ts +1 -8
- package/dist/toast/createToast.d.ts.map +1 -1
- package/dist/toast/createToastRegion.d.ts +7 -18
- package/dist/toast/createToastRegion.d.ts.map +1 -1
- package/dist/toast/intl/index.d.ts +14 -0
- package/dist/toast/intl/index.d.ts.map +1 -0
- package/dist/toggle/createToggle.d.ts +8 -1
- package/dist/toggle/createToggle.d.ts.map +1 -1
- package/dist/tokenfield/createToken.d.ts +15 -0
- package/dist/tokenfield/createToken.d.ts.map +1 -0
- package/dist/tokenfield/createTokenField.d.ts +52 -0
- package/dist/tokenfield/createTokenField.d.ts.map +1 -0
- package/dist/tokenfield/index.d.ts +3 -0
- package/dist/tokenfield/index.d.ts.map +1 -0
- package/dist/tokenfield/index.js +2 -0
- package/dist/tokenfield/index.jsx +2 -0
- package/dist/toolbar/createToolbar.d.ts +1 -1
- package/dist/toolbar/createToolbar.d.ts.map +1 -1
- package/dist/tooltip/createPreviewTrigger.d.ts +23 -0
- package/dist/tooltip/createPreviewTrigger.d.ts.map +1 -0
- package/dist/tooltip/createSafeArea.d.ts +20 -0
- package/dist/tooltip/createSafeArea.d.ts.map +1 -0
- package/dist/tooltip/createTooltip.d.ts +1 -1
- package/dist/tooltip/createTooltip.d.ts.map +1 -1
- package/dist/tooltip/createTooltipTrigger.d.ts +1 -9
- package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
- package/dist/tooltip/index.d.ts +2 -0
- package/dist/tooltip/index.d.ts.map +1 -1
- package/dist/tooltip/index.js +2 -2
- package/dist/tooltip/index.jsx +2 -2
- package/dist/tooltip/intl/index.d.ts +4 -0
- package/dist/tooltip/intl/index.d.ts.map +1 -0
- package/dist/tree/createTree.d.ts +1 -5
- package/dist/tree/createTree.d.ts.map +1 -1
- package/dist/tree/createTreeItem.d.ts +1 -5
- package/dist/tree/createTreeItem.d.ts.map +1 -1
- package/dist/tree/createTreeSelectionCheckbox.d.ts +1 -5
- package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
- package/dist/tree/intl/index.d.ts +14 -0
- package/dist/tree/intl/index.d.ts.map +1 -0
- package/dist/tree/types.d.ts +35 -2
- package/dist/tree/types.d.ts.map +1 -1
- package/dist/utils/ShadowTreeWalker.d.ts +30 -0
- package/dist/utils/ShadowTreeWalker.d.ts.map +1 -0
- package/dist/utils/animation.d.ts +1 -29
- package/dist/utils/animation.d.ts.map +1 -1
- package/dist/utils/capture.d.ts +14 -0
- package/dist/utils/capture.d.ts.map +1 -0
- package/dist/utils/createDescription.d.ts +1 -25
- package/dist/utils/createDescription.d.ts.map +1 -1
- package/dist/utils/dom.d.ts +45 -11
- package/dist/utils/dom.d.ts.map +1 -1
- package/dist/utils/domAttrs.d.ts +16 -0
- package/dist/utils/domAttrs.d.ts.map +1 -0
- package/dist/utils/env.d.ts +2 -0
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/events.d.ts +0 -4
- package/dist/utils/events.d.ts.map +1 -1
- package/dist/utils/filterDOMProps.d.ts +0 -6
- package/dist/utils/filterDOMProps.d.ts.map +1 -1
- package/dist/utils/focus.d.ts +19 -6
- package/dist/utils/focus.d.ts.map +1 -1
- package/dist/utils/geometry.d.ts +1 -1
- package/dist/utils/geometry.d.ts.map +1 -1
- package/dist/utils/getMetaValue.d.ts +13 -0
- package/dist/utils/getMetaValue.d.ts.map +1 -0
- package/dist/utils/getNonce.d.ts +9 -0
- package/dist/utils/getNonce.d.ts.map +1 -0
- package/dist/utils/globalListeners.d.ts +0 -6
- package/dist/utils/globalListeners.d.ts.map +1 -1
- package/dist/utils/index.d.ts +6 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +7 -4
- package/dist/utils/index.jsx +7 -4
- package/dist/utils/keyboard.d.ts +0 -4
- package/dist/utils/keyboard.d.ts.map +1 -1
- package/dist/utils/mergeProps.d.ts +5 -2
- package/dist/utils/mergeProps.d.ts.map +1 -1
- package/dist/utils/owner.d.ts +14 -0
- package/dist/utils/owner.d.ts.map +1 -0
- package/dist/utils/platform.d.ts +0 -4
- package/dist/utils/platform.d.ts.map +1 -1
- package/dist/utils/reactivity.d.ts +2 -0
- package/dist/utils/reactivity.d.ts.map +1 -1
- package/dist/utils/refs.d.ts +20 -0
- package/dist/utils/refs.d.ts.map +1 -0
- package/dist/utils/runAfterTransition.d.ts +2 -0
- package/dist/utils/runAfterTransition.d.ts.map +1 -0
- package/dist/utils/scrollIntoView.d.ts +0 -4
- package/dist/utils/scrollIntoView.d.ts.map +1 -1
- package/dist/utils/splitProps.d.ts +17 -0
- package/dist/utils/splitProps.d.ts.map +1 -0
- package/dist/utils/textSelection.d.ts +0 -8
- package/dist/utils/textSelection.d.ts.map +1 -1
- package/dist/virtualizer/ScrollView.d.ts +38 -0
- package/dist/virtualizer/ScrollView.d.ts.map +1 -0
- package/dist/virtualizer/index.d.ts +3 -0
- package/dist/virtualizer/index.d.ts.map +1 -0
- package/dist/virtualizer/index.js +2 -0
- package/dist/virtualizer/index.jsx +2 -0
- package/dist/virtualizer/utils.d.ts +10 -0
- package/dist/virtualizer/utils.d.ts.map +1 -0
- package/dist/visually-hidden/createVisuallyHidden.d.ts +2 -9
- package/dist/visually-hidden/createVisuallyHidden.d.ts.map +1 -1
- package/dist/visually-hidden/index.js +1 -1
- package/dist/visually-hidden/index.jsx +1 -1
- package/package.json +30 -11
- package/src/actiongroup/createActionGroup.ts +49 -27
- package/src/autocomplete/createAutocomplete.ts +32 -5
- package/src/autocomplete/intl/ar-AE.json +3 -0
- package/src/autocomplete/intl/bg-BG.json +3 -0
- package/src/autocomplete/intl/cs-CZ.json +3 -0
- package/src/autocomplete/intl/da-DK.json +3 -0
- package/src/autocomplete/intl/de-DE.json +3 -0
- package/src/autocomplete/intl/el-GR.json +3 -0
- package/src/autocomplete/intl/en-US.json +3 -0
- package/src/autocomplete/intl/es-ES.json +3 -0
- package/src/autocomplete/intl/et-EE.json +3 -0
- package/src/autocomplete/intl/fi-FI.json +3 -0
- package/src/autocomplete/intl/fr-FR.json +3 -0
- package/src/autocomplete/intl/he-IL.json +3 -0
- package/src/autocomplete/intl/hr-HR.json +3 -0
- package/src/autocomplete/intl/hu-HU.json +3 -0
- package/src/autocomplete/intl/index.ts +122 -0
- package/src/autocomplete/intl/it-IT.json +3 -0
- package/src/autocomplete/intl/ja-JP.json +3 -0
- package/src/autocomplete/intl/ko-KR.json +3 -0
- package/src/autocomplete/intl/lt-LT.json +3 -0
- package/src/autocomplete/intl/lv-LV.json +3 -0
- package/src/autocomplete/intl/nb-NO.json +3 -0
- package/src/autocomplete/intl/nl-NL.json +3 -0
- package/src/autocomplete/intl/pl-PL.json +3 -0
- package/src/autocomplete/intl/pt-BR.json +3 -0
- package/src/autocomplete/intl/pt-PT.json +3 -0
- package/src/autocomplete/intl/ro-RO.json +3 -0
- package/src/autocomplete/intl/ru-RU.json +3 -0
- package/src/autocomplete/intl/sk-SK.json +3 -0
- package/src/autocomplete/intl/sl-SI.json +3 -0
- package/src/autocomplete/intl/sr-SP.json +3 -0
- package/src/autocomplete/intl/sv-SE.json +3 -0
- package/src/autocomplete/intl/tr-TR.json +3 -0
- package/src/autocomplete/intl/uk-UA.json +3 -0
- package/src/autocomplete/intl/zh-CN.json +3 -0
- package/src/autocomplete/intl/zh-TW.json +3 -0
- package/src/breadcrumbs/createBreadcrumbs.ts +18 -1
- package/src/breadcrumbs/intl/ar-AE.json +3 -0
- package/src/breadcrumbs/intl/bg-BG.json +3 -0
- package/src/breadcrumbs/intl/cs-CZ.json +3 -0
- package/src/breadcrumbs/intl/da-DK.json +3 -0
- package/src/breadcrumbs/intl/de-DE.json +3 -0
- package/src/breadcrumbs/intl/el-GR.json +3 -0
- package/src/breadcrumbs/intl/en-US.json +3 -0
- package/src/breadcrumbs/intl/es-ES.json +3 -0
- package/src/breadcrumbs/intl/et-EE.json +3 -0
- package/src/breadcrumbs/intl/fi-FI.json +3 -0
- package/src/breadcrumbs/intl/fr-FR.json +3 -0
- package/src/breadcrumbs/intl/he-IL.json +3 -0
- package/src/breadcrumbs/intl/hr-HR.json +3 -0
- package/src/breadcrumbs/intl/hu-HU.json +3 -0
- package/src/breadcrumbs/intl/index.ts +122 -0
- package/src/breadcrumbs/intl/it-IT.json +3 -0
- package/src/breadcrumbs/intl/ja-JP.json +3 -0
- package/src/breadcrumbs/intl/ko-KR.json +3 -0
- package/src/breadcrumbs/intl/lt-LT.json +3 -0
- package/src/breadcrumbs/intl/lv-LV.json +3 -0
- package/src/breadcrumbs/intl/nb-NO.json +3 -0
- package/src/breadcrumbs/intl/nl-NL.json +3 -0
- package/src/breadcrumbs/intl/pl-PL.json +3 -0
- package/src/breadcrumbs/intl/pt-BR.json +3 -0
- package/src/breadcrumbs/intl/pt-PT.json +3 -0
- package/src/breadcrumbs/intl/ro-RO.json +3 -0
- package/src/breadcrumbs/intl/ru-RU.json +3 -0
- package/src/breadcrumbs/intl/sk-SK.json +3 -0
- package/src/breadcrumbs/intl/sl-SI.json +3 -0
- package/src/breadcrumbs/intl/sr-SP.json +3 -0
- package/src/breadcrumbs/intl/sv-SE.json +3 -0
- package/src/breadcrumbs/intl/tr-TR.json +3 -0
- package/src/breadcrumbs/intl/uk-UA.json +3 -0
- package/src/breadcrumbs/intl/zh-CN.json +3 -0
- package/src/breadcrumbs/intl/zh-TW.json +3 -0
- package/src/button/createButton.ts +15 -1
- package/src/button/createToggleButton.ts +18 -5
- package/src/button/createToggleButtonGroup.ts +23 -8
- package/src/button/types.ts +16 -0
- package/src/calendar/createCalendar.ts +22 -3
- package/src/calendar/createCalendarCell.ts +104 -15
- package/src/calendar/createCalendarGrid.ts +37 -13
- package/src/calendar/createCalendarMonthPicker.ts +14 -0
- package/src/calendar/createCalendarYearPicker.ts +14 -0
- package/src/calendar/createRangeCalendar.ts +124 -1
- package/src/calendar/createRangeCalendarCell.ts +179 -40
- package/src/calendar/intl/index.ts +37 -0
- package/src/calendar/utils.ts +14 -0
- package/src/checkbox/createCheckbox.ts +32 -17
- package/src/checkbox/createCheckboxGroup.ts +31 -13
- package/src/checkbox/createCheckboxGroupItem.ts +15 -1
- package/src/collections/index.ts +21 -3
- package/src/color/createColorArea.ts +226 -29
- package/src/color/createColorField.ts +98 -22
- package/src/color/createColorSlider.ts +24 -3
- package/src/color/createColorSwatch.ts +18 -1
- package/src/color/createColorWheel.ts +27 -5
- package/src/color/intl/index.ts +35 -0
- package/src/color/types.ts +47 -1
- package/src/combobox/createComboBox.ts +303 -152
- package/src/combobox/intl/generated-locales.ts +38 -1
- package/src/combobox/intl/index.ts +38 -2
- package/src/datepicker/createDateField.ts +38 -22
- package/src/datepicker/createDatePicker.ts +14 -0
- package/src/datepicker/createDatePickerGroup.ts +24 -12
- package/src/datepicker/createDateRangePicker.ts +14 -0
- package/src/datepicker/createDateSegment.ts +110 -46
- package/src/datepicker/createDisplayNames.ts +16 -1
- package/src/datepicker/createTimeField.ts +15 -5
- package/src/datepicker/intl.ts +623 -544
- package/src/dialog/createDialog.ts +57 -30
- package/src/dialog/types.ts +14 -0
- package/src/disclosure/createDisclosure.ts +28 -6
- package/src/disclosure/createDisclosureGroup.ts +3 -4
- package/src/dnd/DragManager.ts +60 -9
- package/src/dnd/DropTargetKeyboardNavigation.ts +8 -6
- package/src/dnd/createDrag.ts +18 -1
- package/src/dnd/createDraggableCollection.ts +96 -32
- package/src/dnd/createDraggableItem.ts +73 -31
- package/src/dnd/createDrop.ts +18 -1
- package/src/dnd/createDropIndicator.ts +92 -0
- package/src/dnd/createDroppableCollection.ts +113 -48
- package/src/dnd/createDroppableItem.ts +161 -13
- package/src/dnd/index.ts +3 -0
- package/src/dnd/intl/index.ts +77 -66
- package/src/dnd/types.ts +20 -1
- package/src/dnd/utils.ts +19 -0
- package/src/focus/FocusScope.tsx +542 -157
- package/src/focus/createAutoFocus.ts +94 -68
- package/src/focus/createFocusRestore.ts +16 -12
- package/src/focus/createHasTabbableChild.ts +78 -0
- package/src/focus/createVirtualFocus.ts +21 -5
- package/src/focus/virtualFocus.ts +1 -1
- package/src/form/createFormReset.ts +40 -17
- package/src/form/createFormValidation.ts +128 -86
- package/src/grid/GridKeyboardDelegate.ts +14 -0
- package/src/grid/createGrid.ts +17 -2
- package/src/grid/createGridCell.ts +17 -2
- package/src/grid/createGridRow.ts +17 -2
- package/src/grid/index.ts +2 -2
- package/src/grid/intl/ar-AE.json +8 -0
- package/src/grid/intl/bg-BG.json +8 -0
- package/src/grid/intl/cs-CZ.json +8 -0
- package/src/grid/intl/da-DK.json +8 -0
- package/src/grid/intl/de-DE.json +8 -0
- package/src/grid/intl/el-GR.json +8 -0
- package/src/grid/intl/en-US.json +8 -0
- package/src/grid/intl/es-ES.json +8 -0
- package/src/grid/intl/et-EE.json +8 -0
- package/src/grid/intl/fi-FI.json +8 -0
- package/src/grid/intl/fr-FR.json +8 -0
- package/src/grid/intl/he-IL.json +8 -0
- package/src/grid/intl/hr-HR.json +8 -0
- package/src/grid/intl/hu-HU.json +8 -0
- package/src/grid/intl/index.ts +127 -0
- package/src/grid/intl/it-IT.json +8 -0
- package/src/grid/intl/ja-JP.json +8 -0
- package/src/grid/intl/ko-KR.json +8 -0
- package/src/grid/intl/lt-LT.json +8 -0
- package/src/grid/intl/lv-LV.json +8 -0
- package/src/grid/intl/nb-NO.json +8 -0
- package/src/grid/intl/nl-NL.json +8 -0
- package/src/grid/intl/pl-PL.json +8 -0
- package/src/grid/intl/pt-BR.json +8 -0
- package/src/grid/intl/pt-PT.json +8 -0
- package/src/grid/intl/ro-RO.json +8 -0
- package/src/grid/intl/ru-RU.json +8 -0
- package/src/grid/intl/sk-SK.json +8 -0
- package/src/grid/intl/sl-SI.json +8 -0
- package/src/grid/intl/sr-SP.json +8 -0
- package/src/grid/intl/sv-SE.json +8 -0
- package/src/grid/intl/tr-TR.json +8 -0
- package/src/grid/intl/uk-UA.json +8 -0
- package/src/grid/intl/zh-CN.json +8 -0
- package/src/grid/intl/zh-TW.json +8 -0
- package/src/grid/types.ts +25 -2
- package/src/gridlist/createGridList.ts +172 -42
- package/src/gridlist/createGridListItem.ts +51 -13
- package/src/gridlist/createGridListSection.ts +14 -0
- package/src/gridlist/createGridListSelectionCheckbox.ts +31 -4
- package/src/gridlist/intl/ar-AE.json +4 -0
- package/src/gridlist/intl/bg-BG.json +4 -0
- package/src/gridlist/intl/cs-CZ.json +4 -0
- package/src/gridlist/intl/da-DK.json +4 -0
- package/src/gridlist/intl/de-DE.json +4 -0
- package/src/gridlist/intl/el-GR.json +4 -0
- package/src/gridlist/intl/en-US.json +4 -0
- package/src/gridlist/intl/es-ES.json +4 -0
- package/src/gridlist/intl/et-EE.json +4 -0
- package/src/gridlist/intl/fi-FI.json +4 -0
- package/src/gridlist/intl/fr-FR.json +4 -0
- package/src/gridlist/intl/he-IL.json +4 -0
- package/src/gridlist/intl/hr-HR.json +4 -0
- package/src/gridlist/intl/hu-HU.json +4 -0
- package/src/gridlist/intl/index.ts +123 -0
- package/src/gridlist/intl/it-IT.json +4 -0
- package/src/gridlist/intl/ja-JP.json +4 -0
- package/src/gridlist/intl/ko-KR.json +4 -0
- package/src/gridlist/intl/lt-LT.json +4 -0
- package/src/gridlist/intl/lv-LV.json +4 -0
- package/src/gridlist/intl/nb-NO.json +4 -0
- package/src/gridlist/intl/nl-NL.json +4 -0
- package/src/gridlist/intl/pl-PL.json +4 -0
- package/src/gridlist/intl/pt-BR.json +4 -0
- package/src/gridlist/intl/pt-PT.json +4 -0
- package/src/gridlist/intl/ro-RO.json +4 -0
- package/src/gridlist/intl/ru-RU.json +4 -0
- package/src/gridlist/intl/sk-SK.json +4 -0
- package/src/gridlist/intl/sl-SI.json +4 -0
- package/src/gridlist/intl/sr-SP.json +4 -0
- package/src/gridlist/intl/sv-SE.json +4 -0
- package/src/gridlist/intl/tr-TR.json +4 -0
- package/src/gridlist/intl/uk-UA.json +4 -0
- package/src/gridlist/intl/zh-CN.json +4 -0
- package/src/gridlist/intl/zh-TW.json +4 -0
- package/src/gridlist/types.ts +54 -2
- package/src/i18n/compileIcu.ts +440 -0
- package/src/i18n/createCollator.ts +14 -0
- package/src/i18n/createDateFormatter.ts +14 -0
- package/src/i18n/createFilter.ts +14 -0
- package/src/i18n/createListFormatter.ts +38 -0
- package/src/i18n/createNumberFormatter.ts +14 -0
- package/src/i18n/createStringFormatter.ts +64 -8
- package/src/i18n/index.ts +3 -0
- package/src/i18n/locale.tsx +60 -19
- package/src/i18n/utils.ts +14 -0
- package/src/index.ts +49 -1
- package/src/interactions/FocusableProvider.tsx +28 -11
- package/src/interactions/PressEvent.ts +16 -1
- package/src/interactions/createContextMenu.ts +108 -0
- package/src/interactions/createFocus.ts +26 -6
- package/src/interactions/createFocusRing.ts +28 -13
- package/src/interactions/createFocusWithin.ts +23 -3
- package/src/interactions/createFocusable.ts +45 -28
- package/src/interactions/createHover.ts +102 -81
- package/src/interactions/createInteractionModality.ts +135 -45
- package/src/interactions/createKeyboard.ts +85 -9
- package/src/interactions/createKeyboardShortcutHandler.ts +157 -0
- package/src/interactions/createLongPress.ts +31 -9
- package/src/interactions/createMove.ts +24 -3
- package/src/interactions/createPress.ts +85 -41
- package/src/interactions/index.ts +1 -0
- package/src/label/createField.ts +58 -63
- package/src/label/createLabel.ts +21 -4
- package/src/label/createLabels.ts +25 -1
- package/src/landmark/createLandmark.ts +27 -4
- package/src/link/createLink.ts +20 -12
- package/src/listbox/createListBox.ts +86 -310
- package/src/listbox/createOption.ts +50 -14
- package/src/live-announcer/announce.ts +21 -6
- package/src/menu/createMenu.ts +92 -5
- package/src/menu/createMenuItem.ts +40 -23
- package/src/menu/createMenuTrigger.ts +179 -51
- package/src/menu/index.ts +2 -0
- package/src/menu/intl/index.ts +130 -0
- package/src/meter/createMeter.ts +20 -5
- package/src/numberfield/createNumberField.ts +254 -14
- package/src/overlays/ariaHideOutside.ts +76 -11
- package/src/overlays/createInteractOutside.ts +74 -47
- package/src/overlays/createModal.tsx +42 -27
- package/src/overlays/createOverlay.ts +107 -66
- package/src/overlays/createOverlayTrigger.ts +21 -6
- package/src/overlays/createPreventScroll.ts +92 -62
- package/src/overlays/index.ts +2 -0
- package/src/overlays/intl/ar-AE.json +3 -0
- package/src/overlays/intl/bg-BG.json +3 -0
- package/src/overlays/intl/cs-CZ.json +3 -0
- package/src/overlays/intl/da-DK.json +3 -0
- package/src/overlays/intl/de-DE.json +3 -0
- package/src/overlays/intl/el-GR.json +3 -0
- package/src/overlays/intl/en-US.json +3 -0
- package/src/overlays/intl/es-ES.json +3 -0
- package/src/overlays/intl/et-EE.json +3 -0
- package/src/overlays/intl/fi-FI.json +3 -0
- package/src/overlays/intl/fr-FR.json +3 -0
- package/src/overlays/intl/he-IL.json +3 -0
- package/src/overlays/intl/hr-HR.json +3 -0
- package/src/overlays/intl/hu-HU.json +3 -0
- package/src/overlays/intl/index.ts +122 -0
- package/src/overlays/intl/it-IT.json +3 -0
- package/src/overlays/intl/ja-JP.json +3 -0
- package/src/overlays/intl/ko-KR.json +3 -0
- package/src/overlays/intl/lt-LT.json +3 -0
- package/src/overlays/intl/lv-LV.json +3 -0
- package/src/overlays/intl/nb-NO.json +3 -0
- package/src/overlays/intl/nl-NL.json +3 -0
- package/src/overlays/intl/pl-PL.json +3 -0
- package/src/overlays/intl/pt-BR.json +3 -0
- package/src/overlays/intl/pt-PT.json +3 -0
- package/src/overlays/intl/ro-RO.json +3 -0
- package/src/overlays/intl/ru-RU.json +3 -0
- package/src/overlays/intl/sk-SK.json +3 -0
- package/src/overlays/intl/sl-SI.json +3 -0
- package/src/overlays/intl/sr-SP.json +3 -0
- package/src/overlays/intl/sv-SE.json +3 -0
- package/src/overlays/intl/tr-TR.json +3 -0
- package/src/overlays/intl/uk-UA.json +3 -0
- package/src/overlays/intl/zh-CN.json +3 -0
- package/src/overlays/intl/zh-TW.json +3 -0
- package/src/popover/calculatePosition.ts +21 -3
- package/src/popover/createOverlayPosition.ts +149 -41
- package/src/popover/createPopover.ts +88 -23
- package/src/progress/createProgressBar.ts +19 -4
- package/src/radio/createRadio.ts +80 -25
- package/src/radio/createRadioGroup.ts +47 -13
- package/src/searchfield/createSearchField.ts +31 -2
- package/src/searchfield/intl/ar-AE.json +3 -0
- package/src/searchfield/intl/bg-BG.json +3 -0
- package/src/searchfield/intl/cs-CZ.json +3 -0
- package/src/searchfield/intl/da-DK.json +3 -0
- package/src/searchfield/intl/de-DE.json +3 -0
- package/src/searchfield/intl/el-GR.json +3 -0
- package/src/searchfield/intl/en-US.json +3 -0
- package/src/searchfield/intl/es-ES.json +3 -0
- package/src/searchfield/intl/et-EE.json +3 -0
- package/src/searchfield/intl/fi-FI.json +3 -0
- package/src/searchfield/intl/fr-FR.json +3 -0
- package/src/searchfield/intl/he-IL.json +3 -0
- package/src/searchfield/intl/hr-HR.json +3 -0
- package/src/searchfield/intl/hu-HU.json +3 -0
- package/src/searchfield/intl/index.ts +122 -0
- package/src/searchfield/intl/it-IT.json +3 -0
- package/src/searchfield/intl/ja-JP.json +3 -0
- package/src/searchfield/intl/ko-KR.json +3 -0
- package/src/searchfield/intl/lt-LT.json +3 -0
- package/src/searchfield/intl/lv-LV.json +3 -0
- package/src/searchfield/intl/nb-NO.json +3 -0
- package/src/searchfield/intl/nl-NL.json +3 -0
- package/src/searchfield/intl/pl-PL.json +3 -0
- package/src/searchfield/intl/pt-BR.json +3 -0
- package/src/searchfield/intl/pt-PT.json +3 -0
- package/src/searchfield/intl/ro-RO.json +3 -0
- package/src/searchfield/intl/ru-RU.json +3 -0
- package/src/searchfield/intl/sk-SK.json +3 -0
- package/src/searchfield/intl/sl-SI.json +3 -0
- package/src/searchfield/intl/sr-SP.json +3 -0
- package/src/searchfield/intl/sv-SE.json +3 -0
- package/src/searchfield/intl/tr-TR.json +3 -0
- package/src/searchfield/intl/uk-UA.json +3 -0
- package/src/searchfield/intl/zh-CN.json +3 -0
- package/src/searchfield/intl/zh-TW.json +3 -0
- package/src/select/createHiddenSelect.tsx +166 -69
- package/src/select/createSelect.ts +80 -34
- package/src/selection/DOMLayoutDelegate.ts +14 -0
- package/src/selection/ListKeyboardDelegate.ts +16 -1
- package/src/selection/constants.ts +14 -0
- package/src/selection/createCollectionRowInteraction.ts +75 -6
- package/src/selection/createScrollIntoViewOnFocus.ts +23 -8
- package/src/selection/createSelectableCollection.ts +352 -226
- package/src/selection/createSelectableItem.ts +51 -12
- package/src/selection/createSelectableList.ts +21 -1
- package/src/selection/createTypeSelect.ts +21 -5
- package/src/selection/selectItem.ts +14 -0
- package/src/selection/utils.ts +15 -1
- package/src/separator/createSeparator.ts +17 -1
- package/src/slider/createSlider.ts +24 -18
- package/src/spinbutton/createSpinButton.ts +16 -2
- package/src/spinbutton/index.ts +2 -10
- package/src/spinbutton/intl.ts +70 -34
- package/src/ssr/index.tsx +79 -48
- package/src/steplist/createStepList.ts +17 -2
- package/src/switch/createSwitch.ts +25 -4
- package/src/table/createTable.ts +104 -52
- package/src/table/createTableCell.ts +17 -2
- package/src/table/createTableColumnHeader.ts +21 -3
- package/src/table/createTableColumnResize.ts +19 -3
- package/src/table/createTableHeaderRow.ts +17 -2
- package/src/table/createTableRow.ts +29 -22
- package/src/table/createTableRowGroup.ts +18 -3
- package/src/table/createTableSelectAllCheckbox.ts +30 -14
- package/src/table/createTableSelectionCheckbox.ts +21 -3
- package/src/table/index.ts +2 -2
- package/src/table/intl/ar-AE.json +13 -0
- package/src/table/intl/bg-BG.json +13 -0
- package/src/table/intl/cs-CZ.json +13 -0
- package/src/table/intl/da-DK.json +13 -0
- package/src/table/intl/de-DE.json +13 -0
- package/src/table/intl/el-GR.json +13 -0
- package/src/table/intl/en-US.json +13 -0
- package/src/table/intl/es-ES.json +13 -0
- package/src/table/intl/et-EE.json +13 -0
- package/src/table/intl/fi-FI.json +13 -0
- package/src/table/intl/fr-FR.json +13 -0
- package/src/table/intl/he-IL.json +13 -0
- package/src/table/intl/hr-HR.json +13 -0
- package/src/table/intl/hu-HU.json +13 -0
- package/src/table/intl/index.ts +132 -0
- package/src/table/intl/it-IT.json +13 -0
- package/src/table/intl/ja-JP.json +13 -0
- package/src/table/intl/ko-KR.json +13 -0
- package/src/table/intl/lt-LT.json +13 -0
- package/src/table/intl/lv-LV.json +13 -0
- package/src/table/intl/nb-NO.json +13 -0
- package/src/table/intl/nl-NL.json +13 -0
- package/src/table/intl/pl-PL.json +13 -0
- package/src/table/intl/pt-BR.json +13 -0
- package/src/table/intl/pt-PT.json +13 -0
- package/src/table/intl/ro-RO.json +13 -0
- package/src/table/intl/ru-RU.json +13 -0
- package/src/table/intl/sk-SK.json +13 -0
- package/src/table/intl/sl-SI.json +13 -0
- package/src/table/intl/sr-SP.json +13 -0
- package/src/table/intl/sv-SE.json +13 -0
- package/src/table/intl/tr-TR.json +13 -0
- package/src/table/intl/uk-UA.json +13 -0
- package/src/table/intl/zh-CN.json +13 -0
- package/src/table/intl/zh-TW.json +13 -0
- package/src/table/types.ts +44 -2
- package/src/table/utils.ts +15 -6
- package/src/tabs/createTabs.ts +104 -37
- package/src/tag/createTag.ts +118 -37
- package/src/tag/createTagGroup.ts +20 -12
- package/src/tag/intl/ar-AE.json +4 -0
- package/src/tag/intl/bg-BG.json +4 -0
- package/src/tag/intl/cs-CZ.json +4 -0
- package/src/tag/intl/da-DK.json +4 -0
- package/src/tag/intl/de-DE.json +4 -0
- package/src/tag/intl/el-GR.json +4 -0
- package/src/tag/intl/en-US.json +4 -0
- package/src/tag/intl/es-ES.json +4 -0
- package/src/tag/intl/et-EE.json +4 -0
- package/src/tag/intl/fi-FI.json +4 -0
- package/src/tag/intl/fr-FR.json +4 -0
- package/src/tag/intl/he-IL.json +4 -0
- package/src/tag/intl/hr-HR.json +4 -0
- package/src/tag/intl/hu-HU.json +4 -0
- package/src/tag/intl/index.ts +123 -0
- package/src/tag/intl/it-IT.json +4 -0
- package/src/tag/intl/ja-JP.json +4 -0
- package/src/tag/intl/ko-KR.json +4 -0
- package/src/tag/intl/lt-LT.json +4 -0
- package/src/tag/intl/lv-LV.json +4 -0
- package/src/tag/intl/nb-NO.json +4 -0
- package/src/tag/intl/nl-NL.json +4 -0
- package/src/tag/intl/pl-PL.json +4 -0
- package/src/tag/intl/pt-BR.json +4 -0
- package/src/tag/intl/pt-PT.json +4 -0
- package/src/tag/intl/ro-RO.json +4 -0
- package/src/tag/intl/ru-RU.json +4 -0
- package/src/tag/intl/sk-SK.json +4 -0
- package/src/tag/intl/sl-SI.json +4 -0
- package/src/tag/intl/sr-SP.json +4 -0
- package/src/tag/intl/sv-SE.json +4 -0
- package/src/tag/intl/tr-TR.json +4 -0
- package/src/tag/intl/uk-UA.json +4 -0
- package/src/tag/intl/zh-CN.json +4 -0
- package/src/tag/intl/zh-TW.json +4 -0
- package/src/textfield/createTextField.ts +104 -14
- package/src/toast/createToast.ts +39 -6
- package/src/toast/createToastRegion.ts +28 -15
- package/src/toast/intl/ar-AE.json +4 -0
- package/src/toast/intl/bg-BG.json +4 -0
- package/src/toast/intl/cs-CZ.json +4 -0
- package/src/toast/intl/da-DK.json +4 -0
- package/src/toast/intl/de-DE.json +4 -0
- package/src/toast/intl/el-GR.json +4 -0
- package/src/toast/intl/en-US.json +4 -0
- package/src/toast/intl/es-ES.json +4 -0
- package/src/toast/intl/et-EE.json +4 -0
- package/src/toast/intl/fi-FI.json +4 -0
- package/src/toast/intl/fr-FR.json +4 -0
- package/src/toast/intl/he-IL.json +4 -0
- package/src/toast/intl/hr-HR.json +4 -0
- package/src/toast/intl/hu-HU.json +4 -0
- package/src/toast/intl/index.ts +123 -0
- package/src/toast/intl/it-IT.json +4 -0
- package/src/toast/intl/ja-JP.json +4 -0
- package/src/toast/intl/ko-KR.json +4 -0
- package/src/toast/intl/lt-LT.json +4 -0
- package/src/toast/intl/lv-LV.json +4 -0
- package/src/toast/intl/nb-NO.json +4 -0
- package/src/toast/intl/nl-NL.json +4 -0
- package/src/toast/intl/pl-PL.json +4 -0
- package/src/toast/intl/pt-BR.json +4 -0
- package/src/toast/intl/pt-PT.json +4 -0
- package/src/toast/intl/ro-RO.json +4 -0
- package/src/toast/intl/ru-RU.json +4 -0
- package/src/toast/intl/sk-SK.json +4 -0
- package/src/toast/intl/sl-SI.json +4 -0
- package/src/toast/intl/sr-SP.json +4 -0
- package/src/toast/intl/sv-SE.json +4 -0
- package/src/toast/intl/tr-TR.json +4 -0
- package/src/toast/intl/uk-UA.json +4 -0
- package/src/toast/intl/zh-CN.json +4 -0
- package/src/toast/intl/zh-TW.json +4 -0
- package/src/toggle/createToggle.ts +96 -15
- package/src/tokenfield/createToken.ts +82 -0
- package/src/tokenfield/createTokenField.ts +859 -0
- package/src/tokenfield/index.ts +10 -0
- package/src/toolbar/createToolbar.ts +26 -5
- package/src/tooltip/createPreviewTrigger.ts +301 -0
- package/src/tooltip/createSafeArea.ts +165 -0
- package/src/tooltip/createTooltip.ts +15 -1
- package/src/tooltip/createTooltipTrigger.ts +24 -3
- package/src/tooltip/index.ts +7 -0
- package/src/tooltip/intl/index.ts +76 -0
- package/src/tree/createTree.ts +66 -50
- package/src/tree/createTreeItem.ts +85 -21
- package/src/tree/createTreeSelectionCheckbox.ts +29 -28
- package/src/tree/intl/ar-AE.json +4 -0
- package/src/tree/intl/bg-BG.json +4 -0
- package/src/tree/intl/cs-CZ.json +4 -0
- package/src/tree/intl/da-DK.json +4 -0
- package/src/tree/intl/de-DE.json +4 -0
- package/src/tree/intl/el-GR.json +4 -0
- package/src/tree/intl/en-US.json +4 -0
- package/src/tree/intl/es-ES.json +4 -0
- package/src/tree/intl/et-EE.json +4 -0
- package/src/tree/intl/fi-FI.json +4 -0
- package/src/tree/intl/fr-FR.json +4 -0
- package/src/tree/intl/he-IL.json +4 -0
- package/src/tree/intl/hr-HR.json +4 -0
- package/src/tree/intl/hu-HU.json +4 -0
- package/src/tree/intl/index.ts +123 -0
- package/src/tree/intl/it-IT.json +4 -0
- package/src/tree/intl/ja-JP.json +4 -0
- package/src/tree/intl/ko-KR.json +4 -0
- package/src/tree/intl/lt-LT.json +4 -0
- package/src/tree/intl/lv-LV.json +4 -0
- package/src/tree/intl/nb-NO.json +4 -0
- package/src/tree/intl/nl-NL.json +4 -0
- package/src/tree/intl/pl-PL.json +4 -0
- package/src/tree/intl/pt-BR.json +4 -0
- package/src/tree/intl/pt-PT.json +4 -0
- package/src/tree/intl/ro-RO.json +4 -0
- package/src/tree/intl/ru-RU.json +4 -0
- package/src/tree/intl/sk-SK.json +4 -0
- package/src/tree/intl/sl-SI.json +4 -0
- package/src/tree/intl/sr-SP.json +4 -0
- package/src/tree/intl/sv-SE.json +4 -0
- package/src/tree/intl/tr-TR.json +4 -0
- package/src/tree/intl/uk-UA.json +4 -0
- package/src/tree/intl/zh-CN.json +4 -0
- package/src/tree/intl/zh-TW.json +4 -0
- package/src/tree/types.ts +35 -2
- package/src/utils/ShadowTreeWalker.ts +249 -0
- package/src/utils/animation.ts +106 -85
- package/src/utils/capture.ts +51 -0
- package/src/utils/createDescription.ts +31 -8
- package/src/utils/dom.ts +314 -33
- package/src/utils/domAttrs.ts +84 -0
- package/src/utils/env.ts +2 -0
- package/src/utils/events.ts +39 -3
- package/src/utils/filterDOMProps.ts +34 -2
- package/src/utils/focus.ts +186 -32
- package/src/utils/geometry.ts +15 -1
- package/src/utils/getMetaValue.ts +57 -0
- package/src/utils/getNonce.ts +40 -0
- package/src/utils/globalListeners.ts +16 -3
- package/src/utils/index.ts +14 -0
- package/src/utils/keyboard.ts +15 -1
- package/src/utils/mergeProps.ts +149 -16
- package/src/utils/owner.ts +26 -0
- package/src/utils/platform.ts +15 -1
- package/src/utils/reactivity.ts +2 -0
- package/src/utils/refs.ts +53 -0
- package/src/utils/runAfterTransition.ts +117 -0
- package/src/utils/scrollIntoView.ts +14 -0
- package/src/utils/splitProps.ts +70 -0
- package/src/utils/textSelection.ts +15 -1
- package/src/virtualizer/ScrollView.ts +210 -0
- package/src/virtualizer/index.ts +2 -0
- package/src/virtualizer/utils.ts +100 -0
- package/src/visually-hidden/createVisuallyHidden.ts +20 -4
- package/dist/_chunk/createInteractionModality.js +0 -268
- package/dist/_chunk/createInteractionModality.js.map +0 -1
- package/dist/_chunk/createInteractionModality.jsx +0 -268
- package/dist/_chunk/createInteractionModality.jsx.map +0 -1
- package/dist/_chunk/focus2.js +0 -631
- package/dist/_chunk/focus2.js.map +0 -1
- package/dist/_chunk/focus2.jsx +0 -631
- package/dist/_chunk/focus2.jsx.map +0 -1
- package/dist/_chunk/visually-hidden.js.map +0 -1
- package/dist/_chunk/visually-hidden.jsx.map +0 -1
- package/dist/checkbox/createCheckboxGroupState.d.ts +0 -71
- package/dist/checkbox/createCheckboxGroupState.d.ts.map +0 -1
- package/dist/radio/createRadioGroupState.d.ts +0 -77
- package/dist/radio/createRadioGroupState.d.ts.map +0 -1
- package/dist/toggle/createToggleState.d.ts +0 -34
- package/dist/toggle/createToggleState.d.ts.map +0 -1
- package/src/checkbox/createCheckboxGroupState.ts +0 -174
- package/src/radio/createRadioGroupState.ts +0 -177
- package/src/toggle/createToggleState.ts +0 -86
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"breadcrumbs.jsx","names":[],"sources":["../../src/breadcrumbs/createBreadcrumbs.ts"],"sourcesContent":["/**\n * Breadcrumbs hooks for Solidaria\n *\n * Provides accessibility implementation for breadcrumb navigation.\n *
|
|
1
|
+
{"version":3,"file":"breadcrumbs.jsx","names":[],"sources":["../../src/breadcrumbs/createBreadcrumbs.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/breadcrumbs/useBreadcrumbItem.ts\n// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/breadcrumbs/useBreadcrumbs.ts\n\n/**\n * Breadcrumbs hooks for Solidaria\n *\n * Provides accessibility implementation for breadcrumb navigation.\n * Ported from:\n * - packages/react-aria/src/breadcrumbs/useBreadcrumbs.ts\n * - packages/react-aria/src/breadcrumbs/useBreadcrumbItem.ts\n */\n\nimport { createLink, type AriaLinkProps, type LinkAria } from \"../link\";\nimport { filterDOMProps } from \"../utils/filterDOMProps\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { type MaybeAccessor, access } from \"../utils/reactivity\";\n\nexport interface AriaBreadcrumbsProps {\n /** Provides a label for the breadcrumbs navigation. */\n \"aria-label\"?: string;\n /** Identifies the element (or elements) that labels the breadcrumbs. */\n \"aria-labelledby\"?: string;\n /** Identifies the element (or elements) that describes the breadcrumbs. */\n \"aria-describedby\"?: string;\n /** Identifies the element (or elements) that provide a detailed description. */\n \"aria-details\"?: string;\n /** Whether the breadcrumbs are disabled. */\n isDisabled?: boolean;\n}\n\nexport interface BreadcrumbsAria {\n /** Props for the breadcrumbs nav element. */\n navProps: Record<string, unknown>;\n}\n\nexport interface AriaBreadcrumbItemProps extends Omit<AriaLinkProps, \"aria-current\"> {\n /** The DOM id for the breadcrumb item. */\n id?: string;\n /** Whether this is the current/last item in the breadcrumb trail. */\n isCurrent?: boolean;\n /** The type of current location for aria-current. @default 'page' */\n \"aria-current\"?: \"page\" | \"step\" | \"location\" | \"date\" | \"time\" | boolean;\n /** The HTML element type. @default 'a' */\n elementType?: string;\n}\n\nexport interface BreadcrumbItemAria extends LinkAria {\n /** Props for the breadcrumb item element. */\n itemProps: Record<string, unknown>;\n}\n\n/**\n * Provides accessibility implementation for the breadcrumbs navigation container.\n */\nexport function createBreadcrumbs(\n props: MaybeAccessor<AriaBreadcrumbsProps> = {},\n): BreadcrumbsAria {\n const getProps = () => access(props);\n\n const getNavProps = (): Record<string, unknown> => {\n const p = getProps();\n\n // Only apply a default label when no other label source exists.\n const ariaLabel = p[\"aria-label\"] ?? (p[\"aria-labelledby\"] ? undefined : \"Breadcrumbs\");\n\n return mergeProps(filterDOMProps(p as Record<string, unknown>, { labelable: true }), {\n \"aria-label\": ariaLabel,\n \"aria-details\": p[\"aria-details\"],\n });\n };\n\n return {\n get navProps() {\n return getNavProps();\n },\n };\n}\n\n/**\n * Provides accessibility implementation for an individual breadcrumb item.\n */\nexport function createBreadcrumbItem(\n props: MaybeAccessor<AriaBreadcrumbItemProps> = {},\n): BreadcrumbItemAria {\n const getProps = () => access(props);\n\n const isCurrent = () => getProps().isCurrent ?? false;\n const isDisabled = () => getProps().isDisabled ?? false;\n const elementType = () => getProps().elementType ?? \"a\";\n\n // Use createLink for base link behavior\n // Current items are treated as disabled (can't navigate to current page).\n // Keep the whole return value (do NOT destructure linkProps): `linkProps` is a\n // reactive getter, and destructuring it here would snapshot getLinkProps() once\n // at mount — freezing role/tabIndex to whatever elementType was during the\n // transient first render (e.g. before isCurrent settles). Reading\n // linkAria.linkProps fresh inside getItemProps keeps it live, mirroring React\n // re-running useLink every render.\n const linkAria = createLink({\n get isDisabled() {\n return isDisabled() || isCurrent();\n },\n get elementType() {\n return elementType();\n },\n get href() {\n return isCurrent() ? undefined : getProps().href;\n },\n get target() {\n return getProps().target;\n },\n get rel() {\n return getProps().rel;\n },\n get onPress() {\n return getProps().onPress;\n },\n get onPressStart() {\n return getProps().onPressStart;\n },\n get onPressEnd() {\n return getProps().onPressEnd;\n },\n get onClick() {\n return getProps().onClick;\n },\n get onFocus() {\n return getProps().onFocus;\n },\n get onBlur() {\n return getProps().onBlur;\n },\n get onFocusChange() {\n return getProps().onFocusChange;\n },\n get onKeyDown() {\n return getProps().onKeyDown;\n },\n get onKeyUp() {\n return getProps().onKeyUp;\n },\n get autoFocus() {\n return getProps().autoFocus;\n },\n get \"aria-label\"() {\n return getProps()[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return getProps()[\"aria-labelledby\"];\n },\n get \"aria-describedby\"() {\n return getProps()[\"aria-describedby\"];\n },\n get \"aria-details\"() {\n return getProps()[\"aria-details\"];\n },\n });\n\n const getItemProps = (): Record<string, unknown> => {\n const p = getProps();\n const current = isCurrent();\n // Read fresh each call so elementType-driven role/tabIndex stay reactive.\n const linkProps = linkAria.linkProps;\n\n // Start with link props, forwarding id if provided\n let baseProps: Record<string, unknown> = p.id ? mergeProps(linkProps, { id: p.id }) : linkProps;\n\n // Add aria-current for current page\n if (current) {\n const ariaCurrent = p[\"aria-current\"] ?? \"page\";\n baseProps = mergeProps(baseProps, {\n \"aria-current\": ariaCurrent,\n });\n }\n\n // Add aria-disabled for disabled items\n if (isDisabled()) {\n baseProps = mergeProps(baseProps, {\n \"aria-disabled\": true,\n });\n }\n\n return baseProps;\n };\n\n return {\n get itemProps() {\n return getItemProps();\n },\n get linkProps() {\n return linkAria.linkProps;\n },\n isPressed: linkAria.isPressed,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkEA,SAAgB,kBACd,QAA6C,CAAC,GAC7B;CACjB,MAAM,iBAAiB,OAAO,KAAK;CAEnC,MAAM,oBAA6C;EACjD,MAAM,IAAI,SAAS;EAGnB,MAAM,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,KAAA,IAAY;EAEzE,OAAO,WAAW,eAAe,GAA8B,EAAE,WAAW,KAAK,CAAC,GAAG;GACnF,cAAc;GACd,gBAAgB,EAAE;EACpB,CAAC;CACH;CAEA,OAAO,EACL,IAAI,WAAW;EACb,OAAO,YAAY;CACrB,EACF;AACF;;;;AAKA,SAAgB,qBACd,QAAgD,CAAC,GAC7B;CACpB,MAAM,iBAAiB,OAAO,KAAK;CAEnC,MAAM,kBAAkB,SAAS,CAAC,CAAC,aAAa;CAChD,MAAM,mBAAmB,SAAS,CAAC,CAAC,cAAc;CAClD,MAAM,oBAAoB,SAAS,CAAC,CAAC,eAAe;CAUpD,MAAM,WAAW,WAAW;EAC1B,IAAI,aAAa;GACf,OAAO,WAAW,KAAK,UAAU;EACnC;EACA,IAAI,cAAc;GAChB,OAAO,YAAY;EACrB;EACA,IAAI,OAAO;GACT,OAAO,UAAU,IAAI,KAAA,IAAY,SAAS,CAAC,CAAC;EAC9C;EACA,IAAI,SAAS;GACX,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,MAAM;GACR,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,UAAU;GACZ,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,eAAe;GACjB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,aAAa;GACf,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,UAAU;GACZ,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,UAAU;GACZ,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,SAAS;GACX,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,gBAAgB;GAClB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,YAAY;GACd,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,UAAU;GACZ,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,YAAY;GACd,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,eAAe;GACjB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,oBAAoB;GACtB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,qBAAqB;GACvB,OAAO,SAAS,CAAC,CAAC;EACpB;EACA,IAAI,iBAAiB;GACnB,OAAO,SAAS,CAAC,CAAC;EACpB;CACF,CAAC;CAED,MAAM,qBAA8C;EAClD,MAAM,IAAI,SAAS;EACnB,MAAM,UAAU,UAAU;EAE1B,MAAM,YAAY,SAAS;EAG3B,IAAI,YAAqC,EAAE,KAAK,WAAW,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI;EAGtF,IAAI,SAAS;GACX,MAAM,cAAc,EAAE,mBAAmB;GACzC,YAAY,WAAW,WAAW,EAChC,gBAAgB,YAClB,CAAC;EACH;EAGA,IAAI,WAAW,GACb,YAAY,WAAW,WAAW,EAChC,iBAAiB,KACnB,CAAC;EAGH,OAAO;CACT;CAEA,OAAO;EACL,IAAI,YAAY;GACd,OAAO,aAAa;EACtB;EACA,IAAI,YAAY;GACd,OAAO,SAAS;EAClB;EACA,WAAW,SAAS;CACtB;AACF"}
|
package/dist/_chunk/button.js
CHANGED
|
@@ -1,9 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useButton.ts
|
|
13
|
+
/*
|
|
14
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
15
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
16
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
17
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
*
|
|
19
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
20
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
21
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
22
|
+
* governing permissions and limitations under the License.
|
|
23
|
+
*/
|
|
24
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useToggleButton.ts
|
|
25
|
+
/*
|
|
26
|
+
* Copyright 2024 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/button/useToggleButtonGroup.ts
|
|
37
|
+
import { t as mergeProps } from "./mergeProps.js";
|
|
38
|
+
import { x as splitProps } from "./utils.js";
|
|
3
39
|
import { t as filterDOMProps } from "./filterDOMProps.js";
|
|
40
|
+
import { t as createPress } from "./createPress.js";
|
|
4
41
|
import { n as createFocusable } from "./createFocusable.js";
|
|
5
42
|
import { t as createToolbar } from "./toolbar.js";
|
|
6
|
-
import { createSignal
|
|
43
|
+
import { createSignal } from "solid-js";
|
|
7
44
|
//#region src/button/createButton.ts
|
|
8
45
|
function isDisabledValue$1(isDisabled) {
|
|
9
46
|
if (typeof isDisabled === "function") return isDisabled();
|
|
@@ -112,14 +149,14 @@ function createButton(props = {}) {
|
|
|
112
149
|
return elementType === "input" ? isDisabled() : void 0;
|
|
113
150
|
},
|
|
114
151
|
get "aria-disabled"() {
|
|
115
|
-
return isDisabled() && elementType !== "input" ? true : void 0;
|
|
152
|
+
return isDisabled() && elementType !== "input" ? "true" : void 0;
|
|
116
153
|
},
|
|
117
154
|
get rel() {
|
|
118
155
|
return isLink ? props.rel : void 0;
|
|
119
156
|
}
|
|
120
157
|
};
|
|
121
158
|
return {
|
|
122
|
-
buttonProps: mergeProps
|
|
159
|
+
buttonProps: mergeProps(additionalProps, focusableProps, pressProps, filterDOMProps(props, { labelable: true }), {
|
|
123
160
|
get "aria-haspopup"() {
|
|
124
161
|
return props["aria-haspopup"];
|
|
125
162
|
},
|
|
@@ -189,14 +226,11 @@ function createToggleButton(props = {}) {
|
|
|
189
226
|
toggleSelection();
|
|
190
227
|
props.onPress?.(e);
|
|
191
228
|
};
|
|
192
|
-
const { buttonProps: baseButtonProps, isPressed } = createButton(mergeProps
|
|
229
|
+
const { buttonProps: baseButtonProps, isPressed } = createButton(mergeProps(props, { onPress }));
|
|
193
230
|
return {
|
|
194
|
-
buttonProps: {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
return isSelected();
|
|
198
|
-
}
|
|
199
|
-
},
|
|
231
|
+
buttonProps: mergeProps(baseButtonProps, { get "aria-pressed"() {
|
|
232
|
+
return isSelected() ? "true" : "false";
|
|
233
|
+
} }),
|
|
200
234
|
isPressed,
|
|
201
235
|
isSelected
|
|
202
236
|
};
|
|
@@ -222,12 +256,12 @@ function createToggleButtonGroup(props, state) {
|
|
|
222
256
|
return props["aria-labelledby"];
|
|
223
257
|
}
|
|
224
258
|
});
|
|
225
|
-
return { groupProps: mergeProps
|
|
259
|
+
return { groupProps: mergeProps(toolbarProps, {
|
|
226
260
|
get role() {
|
|
227
261
|
return state.selectionMode === "single" ? "radiogroup" : toolbarProps.role;
|
|
228
262
|
},
|
|
229
263
|
get "aria-disabled"() {
|
|
230
|
-
return props.isDisabled
|
|
264
|
+
return props.isDisabled ? "true" : void 0;
|
|
231
265
|
}
|
|
232
266
|
}) };
|
|
233
267
|
}
|
|
@@ -236,7 +270,7 @@ function createToggleButtonGroup(props, state) {
|
|
|
236
270
|
*/
|
|
237
271
|
function createToggleButtonGroupItem(props, state) {
|
|
238
272
|
const [, toggleProps] = splitProps(props, ["id"]);
|
|
239
|
-
const toggleButton = createToggleButton(mergeProps
|
|
273
|
+
const toggleButton = createToggleButton(mergeProps(toggleProps, {
|
|
240
274
|
get isSelected() {
|
|
241
275
|
return state.selectedKeys.has(props.id);
|
|
242
276
|
},
|
|
@@ -249,21 +283,20 @@ function createToggleButtonGroupItem(props, state) {
|
|
|
249
283
|
}
|
|
250
284
|
}));
|
|
251
285
|
const baseButtonProps = toggleButton.buttonProps;
|
|
252
|
-
const buttonProps = {
|
|
253
|
-
...baseButtonProps,
|
|
286
|
+
const buttonProps = mergeProps(baseButtonProps, {
|
|
254
287
|
get role() {
|
|
255
288
|
if (state.selectionMode === "single") return "radio";
|
|
256
289
|
return baseButtonProps.role;
|
|
257
290
|
},
|
|
258
291
|
get "aria-checked"() {
|
|
259
292
|
if (state.selectionMode !== "single") return;
|
|
260
|
-
return state.selectedKeys.has(props.id);
|
|
293
|
+
return state.selectedKeys.has(props.id) ? "true" : "false";
|
|
261
294
|
},
|
|
262
295
|
get "aria-pressed"() {
|
|
263
|
-
if (state.selectionMode === "single") return;
|
|
296
|
+
if (state.selectionMode === "single") return null;
|
|
264
297
|
return baseButtonProps["aria-pressed"];
|
|
265
298
|
}
|
|
266
|
-
};
|
|
299
|
+
});
|
|
267
300
|
return {
|
|
268
301
|
...toggleButton,
|
|
269
302
|
buttonProps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","names":["isDisabledValue","mergeProps","mergeProps","mergeProps"],"sources":["../../src/button/createButton.ts","../../src/button/createToggleButton.ts","../../src/button/createToggleButtonGroup.ts"],"sourcesContent":["import { Accessor } from \"solid-js\";\nimport { createPress } from \"../interactions\";\nimport { createFocusable } from \"../interactions\";\nimport { mergeProps, filterDOMProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\n\nfunction isDisabledValue(isDisabled: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return isDisabled ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a button component.\n * Handles press interactions across mouse, touch, keyboard and screen readers.\n *\n * Based on react-aria's useButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createButton } from 'solidaria';\n *\n * function Button(props) {\n * let ref;\n * const { buttonProps, isPressed } = createButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * ref={ref}\n * class={isPressed() ? 'pressed' : ''}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createButton(props: AriaButtonProps = {}): ButtonAria {\n const elementType = props.elementType ?? \"button\";\n const isDisabled = () => isDisabledValue(props.isDisabled);\n\n const { pressProps, isPressed } = createPress({\n isDisabled,\n onPress: (event) => props.onPress?.(event),\n onPressStart: (event) => props.onPressStart?.(event),\n onPressEnd: (event) => props.onPressEnd?.(event),\n onPressUp: (event) => props.onPressUp?.(event),\n onPressChange: (pressed) => props.onPressChange?.(pressed),\n onClick: (event) => props.onClick?.(event),\n get preventFocusOnPress() {\n return props.preventFocusOnPress;\n },\n });\n\n const { focusableProps } = createFocusable({\n isDisabled,\n autoFocus: props.autoFocus,\n excludeFromTabOrder: props.excludeFromTabOrder,\n });\n\n const isNativeButton = elementType === \"button\";\n const isLink = elementType === \"a\";\n\n // Handle allowFocusWhenDisabled - set tabIndex to -1 when disabled but focusable\n // This allows tooltips to be shown on disabled buttons\n if (props.allowFocusWhenDisabled) {\n Object.defineProperty(focusableProps, \"tabIndex\", {\n enumerable: true,\n configurable: true,\n get() {\n return isDisabled() ? -1 : props.excludeFromTabOrder ? -1 : 0;\n },\n });\n }\n\n let additionalProps: Record<string, unknown> = {};\n\n if (isNativeButton) {\n additionalProps = {\n get type() {\n return props.type ?? \"button\";\n },\n get disabled() {\n return isDisabled();\n },\n get form() {\n return props.form;\n },\n get formAction() {\n return props.formAction;\n },\n get formEncType() {\n return props.formEncType;\n },\n get formMethod() {\n return props.formMethod;\n },\n get formNoValidate() {\n return props.formNoValidate;\n },\n get formTarget() {\n return props.formTarget;\n },\n get name() {\n return props.name;\n },\n get value() {\n return props.value;\n },\n };\n } else {\n // Non-native buttons need role; focusableProps supplies tabIndex.\n additionalProps = {\n role: \"button\",\n get href() {\n return isLink && !isDisabled() ? props.href : undefined;\n },\n get target() {\n return isLink ? props.target : undefined;\n },\n get type() {\n return elementType === \"input\" ? (props.type ?? \"button\") : undefined;\n },\n get disabled() {\n return elementType === \"input\" ? isDisabled() : undefined;\n },\n get \"aria-disabled\"() {\n return isDisabled() && elementType !== \"input\" ? true : undefined;\n },\n get rel() {\n return isLink ? props.rel : undefined;\n },\n };\n }\n\n const ariaProps: Record<string, unknown> = {\n get \"aria-haspopup\"() {\n return props[\"aria-haspopup\"];\n },\n get \"aria-expanded\"() {\n return props[\"aria-expanded\"];\n },\n get \"aria-controls\"() {\n return props[\"aria-controls\"];\n },\n get \"aria-pressed\"() {\n return props[\"aria-pressed\"];\n },\n get \"aria-current\"() {\n return props[\"aria-current\"];\n },\n get \"aria-disabled\"() {\n return props[\"aria-disabled\"];\n },\n };\n\n const buttonProps = mergeProps(\n additionalProps,\n focusableProps as Record<string, unknown>,\n pressProps as Record<string, unknown>,\n filterDOMProps(props as Record<string, unknown>, { labelable: true }),\n ariaProps,\n );\n\n return {\n buttonProps,\n isPressed,\n };\n}\n","import { Accessor, createSignal } from \"solid-js\";\nimport { createButton } from \"./createButton\";\nimport { mergeProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\nimport type { PressEvent } from \"../interactions\";\n\nexport interface AriaToggleButtonProps extends Omit<AriaButtonProps, \"aria-pressed\"> {\n /** Whether the button is selected (controlled). */\n isSelected?: Accessor<boolean> | boolean;\n /** Handler called when the button's selection state changes. */\n onChange?: (isSelected: boolean) => void;\n /** The default selected state (uncontrolled). */\n defaultSelected?: boolean;\n}\n\nexport interface ToggleButtonAria extends ButtonAria {\n /** Whether the button is currently selected. */\n isSelected: Accessor<boolean>;\n}\n\nfunction getSelectedValue(isSelected: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isSelected === \"function\") {\n return isSelected();\n }\n return isSelected ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a toggle button component.\n * Toggle buttons allow users to toggle a selection on or off.\n *\n * Based on react-aria's useToggleButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createToggleButton } from 'solidaria';\n *\n * function ToggleButton(props) {\n * const { buttonProps, isPressed, isSelected } = createToggleButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * class={isSelected() ? 'selected' : ''}\n * style={{ opacity: isPressed() ? 0.8 : 1 }}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createToggleButton(props: AriaToggleButtonProps = {}): ToggleButtonAria {\n // Handle controlled vs uncontrolled state\n const isControlled = props.isSelected !== undefined;\n const [uncontrolledSelected, setUncontrolledSelected] = createSignal(\n props.defaultSelected ?? false,\n );\n\n const isSelected = (): boolean => {\n if (isControlled) {\n return getSelectedValue(props.isSelected);\n }\n return uncontrolledSelected();\n };\n\n const toggleSelection = () => {\n const newValue = !isSelected();\n if (!isControlled) {\n setUncontrolledSelected(newValue);\n }\n props.onChange?.(newValue);\n };\n\n // Create the press handler that toggles selection\n const onPress = (e: PressEvent) => {\n toggleSelection();\n props.onPress?.(e);\n };\n\n // Get button props with our custom press handler\n const { buttonProps: baseButtonProps, isPressed } = createButton(\n mergeProps(props, {\n onPress,\n }) as AriaButtonProps,\n );\n\n // Create buttonProps with a getter for aria-pressed so it stays reactive\n const buttonProps = {\n ...baseButtonProps,\n get \"aria-pressed\"() {\n return isSelected();\n },\n };\n\n return {\n buttonProps,\n isPressed,\n isSelected,\n };\n}\n","import type { JSX } from \"solid-js\";\nimport { splitProps } from \"solid-js\";\nimport type { Key, ToggleGroupProps, ToggleGroupState } from \"@proyecto-viviana/solid-stately\";\nimport { createToolbar, type Orientation } from \"../toolbar\";\nimport { mergeProps } from \"../utils\";\nimport {\n createToggleButton,\n type AriaToggleButtonProps,\n type ToggleButtonAria,\n} from \"./createToggleButton\";\n\nexport interface AriaToggleButtonGroupProps extends ToggleGroupProps {\n /**\n * The orientation of the toggle button group.\n * @default 'horizontal'\n */\n orientation?: Orientation;\n /** Accessible label. */\n \"aria-label\"?: string;\n /** Labelled-by id. */\n \"aria-labelledby\"?: string;\n}\n\nexport interface ToggleButtonGroupAria {\n /** Props for the group container. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\nexport interface AriaToggleButtonGroupItemProps extends Omit<AriaToggleButtonProps, \"children\"> {\n /** Key used in the group selection state. */\n id: Key;\n}\n\nfunction isDisabledValue(isDisabled: AriaToggleButtonProps[\"isDisabled\"]): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return !!isDisabled;\n}\n\n/**\n * Provides ARIA behavior for a toggle button group container.\n */\nexport function createToggleButtonGroup(\n props: AriaToggleButtonGroupProps,\n state: ToggleGroupState,\n): ToggleButtonGroupAria {\n const { toolbarProps } = createToolbar({\n get orientation() {\n return props.orientation;\n },\n get \"aria-label\"() {\n return props[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return props[\"aria-labelledby\"];\n },\n });\n\n const groupProps = mergeProps(toolbarProps as Record<string, unknown>, {\n get role() {\n return state.selectionMode === \"single\" ? \"radiogroup\" : toolbarProps.role;\n },\n get \"aria-disabled\"() {\n return props.isDisabled || undefined;\n },\n }) as JSX.HTMLAttributes<HTMLElement>;\n\n return { groupProps };\n}\n\n/**\n * Provides ARIA behavior for an item within a toggle button group.\n */\nexport function createToggleButtonGroupItem(\n props: AriaToggleButtonGroupItemProps,\n state: ToggleGroupState,\n): ToggleButtonAria {\n // splitProps keeps `toggleProps` a reactive proxy; an object-rest destructure\n // (`{ id, ...toggleProps }`) eagerly reads and freezes every key. `id` is\n // dropped here and re-read live via props.id below. guard:idiomatic-solid.\n const [, toggleProps] = splitProps(props, [\"id\"]);\n\n const toggleButton = createToggleButton(\n mergeProps(toggleProps, {\n get isSelected() {\n return state.selectedKeys.has(props.id);\n },\n onChange(isSelected: boolean) {\n state.setSelected(props.id, isSelected);\n props.onChange?.(isSelected);\n },\n get isDisabled() {\n return isDisabledValue(props.isDisabled) || state.isDisabled;\n },\n }) as AriaToggleButtonProps,\n );\n\n const baseButtonProps = toggleButton.buttonProps as Record<string, unknown>;\n const buttonProps: Record<string, unknown> = {\n ...baseButtonProps,\n get role() {\n if (state.selectionMode === \"single\") {\n return \"radio\";\n }\n return baseButtonProps.role as string | undefined;\n },\n get \"aria-checked\"() {\n if (state.selectionMode !== \"single\") {\n return undefined;\n }\n return state.selectedKeys.has(props.id);\n },\n get \"aria-pressed\"() {\n if (state.selectionMode === \"single\") {\n return undefined;\n }\n return baseButtonProps[\"aria-pressed\"];\n },\n };\n\n return {\n ...toggleButton,\n buttonProps,\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"button.js","names":["isDisabledValue"],"sources":["../../src/button/createButton.ts","../../src/button/createToggleButton.ts","../../src/button/createToggleButtonGroup.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/button/useButton.ts\n\nimport { Accessor } from \"solid-js\";\nimport { createPress } from \"../interactions\";\nimport { createFocusable } from \"../interactions\";\nimport { mergeProps, filterDOMProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\n\nfunction isDisabledValue(isDisabled: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return isDisabled ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a button component.\n * Handles press interactions across mouse, touch, keyboard and screen readers.\n *\n * Based on react-aria's useButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createButton } from 'solidaria';\n *\n * function Button(props) {\n * let ref;\n * const { buttonProps, isPressed } = createButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * ref={ref}\n * class={isPressed() ? 'pressed' : ''}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createButton(props: AriaButtonProps = {}): ButtonAria {\n const elementType = props.elementType ?? \"button\";\n const isDisabled = () => isDisabledValue(props.isDisabled);\n\n const { pressProps, isPressed } = createPress({\n isDisabled,\n onPress: (event) => props.onPress?.(event),\n onPressStart: (event) => props.onPressStart?.(event),\n onPressEnd: (event) => props.onPressEnd?.(event),\n onPressUp: (event) => props.onPressUp?.(event),\n onPressChange: (pressed) => props.onPressChange?.(pressed),\n onClick: (event) => props.onClick?.(event),\n get preventFocusOnPress() {\n return props.preventFocusOnPress;\n },\n });\n\n const { focusableProps } = createFocusable({\n isDisabled,\n autoFocus: props.autoFocus,\n excludeFromTabOrder: props.excludeFromTabOrder,\n });\n\n const isNativeButton = elementType === \"button\";\n const isLink = elementType === \"a\";\n\n // Handle allowFocusWhenDisabled - set tabIndex to -1 when disabled but focusable\n // This allows tooltips to be shown on disabled buttons\n if (props.allowFocusWhenDisabled) {\n Object.defineProperty(focusableProps, \"tabIndex\", {\n enumerable: true,\n configurable: true,\n get() {\n return isDisabled() ? -1 : props.excludeFromTabOrder ? -1 : 0;\n },\n });\n }\n\n let additionalProps: Record<string, unknown> = {};\n\n if (isNativeButton) {\n additionalProps = {\n get type() {\n return props.type ?? \"button\";\n },\n get disabled() {\n return isDisabled();\n },\n get form() {\n return props.form;\n },\n get formAction() {\n return props.formAction;\n },\n get formEncType() {\n return props.formEncType;\n },\n get formMethod() {\n return props.formMethod;\n },\n get formNoValidate() {\n return props.formNoValidate;\n },\n get formTarget() {\n return props.formTarget;\n },\n get name() {\n return props.name;\n },\n get value() {\n return props.value;\n },\n };\n } else {\n // Non-native buttons need role; focusableProps supplies tabIndex.\n additionalProps = {\n role: \"button\",\n get href() {\n return isLink && !isDisabled() ? props.href : undefined;\n },\n get target() {\n return isLink ? props.target : undefined;\n },\n get type() {\n return elementType === \"input\" ? (props.type ?? \"button\") : undefined;\n },\n get disabled() {\n return elementType === \"input\" ? isDisabled() : undefined;\n },\n get \"aria-disabled\"() {\n return isDisabled() && elementType !== \"input\" ? \"true\" : undefined;\n },\n get rel() {\n return isLink ? props.rel : undefined;\n },\n };\n }\n\n const ariaProps: Record<string, unknown> = {\n get \"aria-haspopup\"() {\n return props[\"aria-haspopup\"];\n },\n get \"aria-expanded\"() {\n return props[\"aria-expanded\"];\n },\n get \"aria-controls\"() {\n return props[\"aria-controls\"];\n },\n get \"aria-pressed\"() {\n return props[\"aria-pressed\"];\n },\n get \"aria-current\"() {\n return props[\"aria-current\"];\n },\n get \"aria-disabled\"() {\n return props[\"aria-disabled\"];\n },\n };\n\n const buttonProps = mergeProps(\n additionalProps,\n focusableProps as Record<string, unknown>,\n pressProps as Record<string, unknown>,\n filterDOMProps(props as Record<string, unknown>, { labelable: true }),\n ariaProps,\n );\n\n return {\n buttonProps,\n isPressed,\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/button/useToggleButton.ts\n\nimport { Accessor, createSignal } from \"solid-js\";\nimport { createButton } from \"./createButton\";\nimport { mergeProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\nimport type { PressEvent } from \"../interactions\";\n\nexport interface AriaToggleButtonProps extends Omit<AriaButtonProps, \"aria-pressed\"> {\n /** Whether the button is selected (controlled). */\n isSelected?: Accessor<boolean> | boolean;\n /** Handler called when the button's selection state changes. */\n onChange?: (isSelected: boolean) => void;\n /** The default selected state (uncontrolled). */\n defaultSelected?: boolean;\n}\n\nexport interface ToggleButtonAria extends ButtonAria {\n /** Whether the button is currently selected. */\n isSelected: Accessor<boolean>;\n}\n\nfunction getSelectedValue(isSelected: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isSelected === \"function\") {\n return isSelected();\n }\n return isSelected ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a toggle button component.\n * Toggle buttons allow users to toggle a selection on or off.\n *\n * Based on react-aria's useToggleButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createToggleButton } from 'solidaria';\n *\n * function ToggleButton(props) {\n * const { buttonProps, isPressed, isSelected } = createToggleButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * class={isSelected() ? 'selected' : ''}\n * style={{ opacity: isPressed() ? 0.8 : 1 }}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createToggleButton(props: AriaToggleButtonProps = {}): ToggleButtonAria {\n // Handle controlled vs uncontrolled state\n const isControlled = props.isSelected !== undefined;\n const [uncontrolledSelected, setUncontrolledSelected] = createSignal(\n props.defaultSelected ?? false,\n );\n\n const isSelected = (): boolean => {\n if (isControlled) {\n return getSelectedValue(props.isSelected);\n }\n return uncontrolledSelected();\n };\n\n const toggleSelection = () => {\n const newValue = !isSelected();\n if (!isControlled) {\n setUncontrolledSelected(newValue);\n }\n props.onChange?.(newValue);\n };\n\n // Create the press handler that toggles selection\n const onPress = (e: PressEvent) => {\n toggleSelection();\n props.onPress?.(e);\n };\n\n // Get button props with our custom press handler\n const { buttonProps: baseButtonProps, isPressed } = createButton(\n mergeProps(props, {\n onPress,\n }) as AriaButtonProps,\n );\n\n // Solid 2 omits boolean `false` attributes; ARIA needs the literal \"false\".\n const buttonProps = mergeProps(baseButtonProps, {\n get \"aria-pressed\"() {\n return isSelected() ? \"true\" : \"false\";\n },\n });\n\n return {\n buttonProps,\n isPressed,\n isSelected,\n };\n}\n","/*\n * Copyright 2024 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/button/useToggleButtonGroup.ts\n\n// Ported from packages/react-aria/src/button/useToggleButtonGroup.ts.\n\nimport type { JSX } from \"@solidjs/web\";\nimport type { Key, ToggleGroupProps, ToggleGroupState } from \"@proyecto-viviana/solid-stately\";\nimport { createToolbar, type Orientation } from \"../toolbar\";\nimport { mergeProps } from \"../utils\";\nimport { splitProps } from \"../utils/splitProps\";\nimport {\n createToggleButton,\n type AriaToggleButtonProps,\n type ToggleButtonAria,\n} from \"./createToggleButton\";\n\nexport interface AriaToggleButtonGroupProps extends ToggleGroupProps {\n /**\n * The orientation of the toggle button group.\n * @default 'horizontal'\n */\n orientation?: Orientation;\n /** Accessible label. */\n \"aria-label\"?: string;\n /** Labelled-by id. */\n \"aria-labelledby\"?: string;\n}\n\nexport interface ToggleButtonGroupAria {\n /** Props for the group container. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\nexport interface AriaToggleButtonGroupItemProps extends Omit<AriaToggleButtonProps, \"children\"> {\n /** Key used in the group selection state. */\n id: Key;\n}\n\nfunction isDisabledValue(isDisabled: AriaToggleButtonProps[\"isDisabled\"]): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return !!isDisabled;\n}\n\n/**\n * Provides ARIA behavior for a toggle button group container.\n */\nexport function createToggleButtonGroup(\n props: AriaToggleButtonGroupProps,\n state: ToggleGroupState,\n): ToggleButtonGroupAria {\n const { toolbarProps } = createToolbar({\n get orientation() {\n return props.orientation;\n },\n get \"aria-label\"() {\n return props[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return props[\"aria-labelledby\"];\n },\n });\n\n const groupProps = mergeProps(toolbarProps as Record<string, unknown>, {\n get role() {\n return state.selectionMode === \"single\" ? \"radiogroup\" : toolbarProps.role;\n },\n get \"aria-disabled\"() {\n return props.isDisabled ? \"true\" : undefined;\n },\n }) as JSX.HTMLAttributes<HTMLElement>;\n\n return { groupProps };\n}\n\n/**\n * Provides ARIA behavior for an item within a toggle button group.\n */\nexport function createToggleButtonGroupItem(\n props: AriaToggleButtonGroupItemProps,\n state: ToggleGroupState,\n): ToggleButtonAria {\n // splitProps keeps `toggleProps` a reactive proxy; an object-rest destructure\n // (`{ id, ...toggleProps }`) eagerly reads and freezes every key. `id` is\n // dropped here and re-read live via props.id below. guard:idiomatic-solid.\n const [, toggleProps] = splitProps(props, [\"id\"]);\n\n const toggleButton = createToggleButton(\n mergeProps(toggleProps, {\n get isSelected() {\n return state.selectedKeys.has(props.id);\n },\n onChange(isSelected: boolean) {\n state.setSelected(props.id, isSelected);\n props.onChange?.(isSelected);\n },\n get isDisabled() {\n return isDisabledValue(props.isDisabled) || state.isDisabled;\n },\n }) as AriaToggleButtonProps,\n );\n\n const baseButtonProps = toggleButton.buttonProps as Record<string, unknown>;\n const buttonProps = mergeProps(baseButtonProps, {\n get role() {\n if (state.selectionMode === \"single\") {\n return \"radio\";\n }\n return baseButtonProps.role as string | undefined;\n },\n get \"aria-checked\"() {\n if (state.selectionMode !== \"single\") {\n return undefined;\n }\n return state.selectedKeys.has(props.id) ? \"true\" : \"false\";\n },\n get \"aria-pressed\"() {\n if (state.selectionMode === \"single\") {\n return null;\n }\n return baseButtonProps[\"aria-pressed\"];\n },\n });\n\n return {\n ...toggleButton,\n buttonProps,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,SAASA,kBAAgB,YAA8D;CACrF,IAAI,OAAO,eAAe,YACxB,OAAO,WAAW;CAEpB,OAAO,cAAc;AACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,SAAgB,aAAa,QAAyB,CAAC,GAAe;CACpE,MAAM,cAAc,MAAM,eAAe;CACzC,MAAM,mBAAmBA,kBAAgB,MAAM,UAAU;CAEzD,MAAM,EAAE,YAAY,cAAc,YAAY;EAC5C;EACA,UAAU,UAAU,MAAM,UAAU,KAAK;EACzC,eAAe,UAAU,MAAM,eAAe,KAAK;EACnD,aAAa,UAAU,MAAM,aAAa,KAAK;EAC/C,YAAY,UAAU,MAAM,YAAY,KAAK;EAC7C,gBAAgB,YAAY,MAAM,gBAAgB,OAAO;EACzD,UAAU,UAAU,MAAM,UAAU,KAAK;EACzC,IAAI,sBAAsB;GACxB,OAAO,MAAM;EACf;CACF,CAAC;CAED,MAAM,EAAE,mBAAmB,gBAAgB;EACzC;EACA,WAAW,MAAM;EACjB,qBAAqB,MAAM;CAC7B,CAAC;CAED,MAAM,iBAAiB,gBAAgB;CACvC,MAAM,SAAS,gBAAgB;CAI/B,IAAI,MAAM,wBACR,OAAO,eAAe,gBAAgB,YAAY;EAChD,YAAY;EACZ,cAAc;EACd,MAAM;GACJ,OAAO,WAAW,IAAI,KAAK,MAAM,sBAAsB,KAAK;EAC9D;CACF,CAAC;CAGH,IAAI,kBAA2C,CAAC;CAEhD,IAAI,gBACF,kBAAkB;EAChB,IAAI,OAAO;GACT,OAAO,MAAM,QAAQ;EACvB;EACA,IAAI,WAAW;GACb,OAAO,WAAW;EACpB;EACA,IAAI,OAAO;GACT,OAAO,MAAM;EACf;EACA,IAAI,aAAa;GACf,OAAO,MAAM;EACf;EACA,IAAI,cAAc;GAChB,OAAO,MAAM;EACf;EACA,IAAI,aAAa;GACf,OAAO,MAAM;EACf;EACA,IAAI,iBAAiB;GACnB,OAAO,MAAM;EACf;EACA,IAAI,aAAa;GACf,OAAO,MAAM;EACf;EACA,IAAI,OAAO;GACT,OAAO,MAAM;EACf;EACA,IAAI,QAAQ;GACV,OAAO,MAAM;EACf;CACF;MAGA,kBAAkB;EAChB,MAAM;EACN,IAAI,OAAO;GACT,OAAO,UAAU,CAAC,WAAW,IAAI,MAAM,OAAO,KAAA;EAChD;EACA,IAAI,SAAS;GACX,OAAO,SAAS,MAAM,SAAS,KAAA;EACjC;EACA,IAAI,OAAO;GACT,OAAO,gBAAgB,UAAW,MAAM,QAAQ,WAAY,KAAA;EAC9D;EACA,IAAI,WAAW;GACb,OAAO,gBAAgB,UAAU,WAAW,IAAI,KAAA;EAClD;EACA,IAAI,kBAAkB;GACpB,OAAO,WAAW,KAAK,gBAAgB,UAAU,SAAS,KAAA;EAC5D;EACA,IAAI,MAAM;GACR,OAAO,SAAS,MAAM,MAAM,KAAA;EAC9B;CACF;CAgCF,OAAO;EACL,aATkB,WAClB,iBACA,gBACA,YACA,eAAe,OAAkC,EAAE,WAAW,KAAK,CAAC,GACpE;GAzBA,IAAI,kBAAkB;IACpB,OAAO,MAAM;GACf;GACA,IAAI,kBAAkB;IACpB,OAAO,MAAM;GACf;GACA,IAAI,kBAAkB;IACpB,OAAO,MAAM;GACf;GACA,IAAI,iBAAiB;IACnB,OAAO,MAAM;GACf;GACA,IAAI,iBAAiB;IACnB,OAAO,MAAM;GACf;GACA,IAAI,kBAAkB;IACpB,OAAO,MAAM;GACf;EAQQ,CAIE;EACV;CACF;AACF;;;ACtJA,SAAS,iBAAiB,YAA8D;CACtF,IAAI,OAAO,eAAe,YACxB,OAAO,WAAW;CAEpB,OAAO,cAAc;AACvB;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,SAAgB,mBAAmB,QAA+B,CAAC,GAAqB;CAEtF,MAAM,eAAe,MAAM,eAAe,KAAA;CAC1C,MAAM,CAAC,sBAAsB,2BAA2B,aACtD,MAAM,mBAAmB,KAC3B;CAEA,MAAM,mBAA4B;EAChC,IAAI,cACF,OAAO,iBAAiB,MAAM,UAAU;EAE1C,OAAO,qBAAqB;CAC9B;CAEA,MAAM,wBAAwB;EAC5B,MAAM,WAAW,CAAC,WAAW;EAC7B,IAAI,CAAC,cACH,wBAAwB,QAAQ;EAElC,MAAM,WAAW,QAAQ;CAC3B;CAGA,MAAM,WAAW,MAAkB;EACjC,gBAAgB;EAChB,MAAM,UAAU,CAAC;CACnB;CAGA,MAAM,EAAE,aAAa,iBAAiB,cAAc,aAClD,WAAW,OAAO,EAChB,QACF,CAAC,CACH;CASA,OAAO;EACL,aAPkB,WAAW,iBAAiB,EAC9C,IAAI,iBAAiB;GACnB,OAAO,WAAW,IAAI,SAAS;EACjC,EACF,CAGY;EACV;EACA;CACF;AACF;;;AChEA,SAAS,gBAAgB,YAA0D;CACjF,IAAI,OAAO,eAAe,YACxB,OAAO,WAAW;CAEpB,OAAO,CAAC,CAAC;AACX;;;;AAKA,SAAgB,wBACd,OACA,OACuB;CACvB,MAAM,EAAE,iBAAiB,cAAc;EACrC,IAAI,cAAc;GAChB,OAAO,MAAM;EACf;EACA,IAAI,eAAe;GACjB,OAAO,MAAM;EACf;EACA,IAAI,oBAAoB;GACtB,OAAO,MAAM;EACf;CACF,CAAC;CAWD,OAAO,EAAE,YATU,WAAW,cAAyC;EACrE,IAAI,OAAO;GACT,OAAO,MAAM,kBAAkB,WAAW,eAAe,aAAa;EACxE;EACA,IAAI,kBAAkB;GACpB,OAAO,MAAM,aAAa,SAAS,KAAA;EACrC;CACF,CAEkB,EAAE;AACtB;;;;AAKA,SAAgB,4BACd,OACA,OACkB;CAIlB,MAAM,GAAG,eAAe,WAAW,OAAO,CAAC,IAAI,CAAC;CAEhD,MAAM,eAAe,mBACnB,WAAW,aAAa;EACtB,IAAI,aAAa;GACf,OAAO,MAAM,aAAa,IAAI,MAAM,EAAE;EACxC;EACA,SAAS,YAAqB;GAC5B,MAAM,YAAY,MAAM,IAAI,UAAU;GACtC,MAAM,WAAW,UAAU;EAC7B;EACA,IAAI,aAAa;GACf,OAAO,gBAAgB,MAAM,UAAU,KAAK,MAAM;EACpD;CACF,CAAC,CACH;CAEA,MAAM,kBAAkB,aAAa;CACrC,MAAM,cAAc,WAAW,iBAAiB;EAC9C,IAAI,OAAO;GACT,IAAI,MAAM,kBAAkB,UAC1B,OAAO;GAET,OAAO,gBAAgB;EACzB;EACA,IAAI,iBAAiB;GACnB,IAAI,MAAM,kBAAkB,UAC1B;GAEF,OAAO,MAAM,aAAa,IAAI,MAAM,EAAE,IAAI,SAAS;EACrD;EACA,IAAI,iBAAiB;GACnB,IAAI,MAAM,kBAAkB,UAC1B,OAAO;GAET,OAAO,gBAAgB;EACzB;CACF,CAAC;CAED,OAAO;EACL,GAAG;EACH;CACF;AACF"}
|
package/dist/_chunk/button.jsx
CHANGED
|
@@ -1,9 +1,46 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
3
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
5
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
8
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
9
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
10
|
+
* governing permissions and limitations under the License.
|
|
11
|
+
*/
|
|
12
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useButton.ts
|
|
13
|
+
/*
|
|
14
|
+
* Copyright 2020 Adobe. All rights reserved.
|
|
15
|
+
* This file is licensed to you under the Apache License, Version 2.0 (the "License");
|
|
16
|
+
* you may not use this file except in compliance with the License. You may obtain a copy
|
|
17
|
+
* of the License at http://www.apache.org/licenses/LICENSE-2.0
|
|
18
|
+
*
|
|
19
|
+
* Unless required by applicable law or agreed to in writing, software distributed under
|
|
20
|
+
* the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
|
|
21
|
+
* OF ANY KIND, either express or implied. See the License for the specific language
|
|
22
|
+
* governing permissions and limitations under the License.
|
|
23
|
+
*/
|
|
24
|
+
// Ported to SolidJS for Proyecto Viviana; based on packages/react-aria/src/button/useToggleButton.ts
|
|
25
|
+
/*
|
|
26
|
+
* Copyright 2024 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/button/useToggleButtonGroup.ts
|
|
37
|
+
import { t as mergeProps } from "./mergeProps.jsx";
|
|
38
|
+
import { x as splitProps } from "./utils.jsx";
|
|
3
39
|
import { t as filterDOMProps } from "./filterDOMProps.jsx";
|
|
40
|
+
import { t as createPress } from "./createPress.jsx";
|
|
4
41
|
import { n as createFocusable } from "./createFocusable.jsx";
|
|
5
42
|
import { t as createToolbar } from "./toolbar.jsx";
|
|
6
|
-
import { createSignal
|
|
43
|
+
import { createSignal } from "solid-js";
|
|
7
44
|
//#region src/button/createButton.ts
|
|
8
45
|
function isDisabledValue$1(isDisabled) {
|
|
9
46
|
if (typeof isDisabled === "function") return isDisabled();
|
|
@@ -112,14 +149,14 @@ function createButton(props = {}) {
|
|
|
112
149
|
return elementType === "input" ? isDisabled() : void 0;
|
|
113
150
|
},
|
|
114
151
|
get "aria-disabled"() {
|
|
115
|
-
return isDisabled() && elementType !== "input" ? true : void 0;
|
|
152
|
+
return isDisabled() && elementType !== "input" ? "true" : void 0;
|
|
116
153
|
},
|
|
117
154
|
get rel() {
|
|
118
155
|
return isLink ? props.rel : void 0;
|
|
119
156
|
}
|
|
120
157
|
};
|
|
121
158
|
return {
|
|
122
|
-
buttonProps: mergeProps
|
|
159
|
+
buttonProps: mergeProps(additionalProps, focusableProps, pressProps, filterDOMProps(props, { labelable: true }), {
|
|
123
160
|
get "aria-haspopup"() {
|
|
124
161
|
return props["aria-haspopup"];
|
|
125
162
|
},
|
|
@@ -189,14 +226,11 @@ function createToggleButton(props = {}) {
|
|
|
189
226
|
toggleSelection();
|
|
190
227
|
props.onPress?.(e);
|
|
191
228
|
};
|
|
192
|
-
const { buttonProps: baseButtonProps, isPressed } = createButton(mergeProps
|
|
229
|
+
const { buttonProps: baseButtonProps, isPressed } = createButton(mergeProps(props, { onPress }));
|
|
193
230
|
return {
|
|
194
|
-
buttonProps: {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
return isSelected();
|
|
198
|
-
}
|
|
199
|
-
},
|
|
231
|
+
buttonProps: mergeProps(baseButtonProps, { get "aria-pressed"() {
|
|
232
|
+
return isSelected() ? "true" : "false";
|
|
233
|
+
} }),
|
|
200
234
|
isPressed,
|
|
201
235
|
isSelected
|
|
202
236
|
};
|
|
@@ -222,12 +256,12 @@ function createToggleButtonGroup(props, state) {
|
|
|
222
256
|
return props["aria-labelledby"];
|
|
223
257
|
}
|
|
224
258
|
});
|
|
225
|
-
return { groupProps: mergeProps
|
|
259
|
+
return { groupProps: mergeProps(toolbarProps, {
|
|
226
260
|
get role() {
|
|
227
261
|
return state.selectionMode === "single" ? "radiogroup" : toolbarProps.role;
|
|
228
262
|
},
|
|
229
263
|
get "aria-disabled"() {
|
|
230
|
-
return props.isDisabled
|
|
264
|
+
return props.isDisabled ? "true" : void 0;
|
|
231
265
|
}
|
|
232
266
|
}) };
|
|
233
267
|
}
|
|
@@ -236,7 +270,7 @@ function createToggleButtonGroup(props, state) {
|
|
|
236
270
|
*/
|
|
237
271
|
function createToggleButtonGroupItem(props, state) {
|
|
238
272
|
const [, toggleProps] = splitProps(props, ["id"]);
|
|
239
|
-
const toggleButton = createToggleButton(mergeProps
|
|
273
|
+
const toggleButton = createToggleButton(mergeProps(toggleProps, {
|
|
240
274
|
get isSelected() {
|
|
241
275
|
return state.selectedKeys.has(props.id);
|
|
242
276
|
},
|
|
@@ -249,21 +283,20 @@ function createToggleButtonGroupItem(props, state) {
|
|
|
249
283
|
}
|
|
250
284
|
}));
|
|
251
285
|
const baseButtonProps = toggleButton.buttonProps;
|
|
252
|
-
const buttonProps = {
|
|
253
|
-
...baseButtonProps,
|
|
286
|
+
const buttonProps = mergeProps(baseButtonProps, {
|
|
254
287
|
get role() {
|
|
255
288
|
if (state.selectionMode === "single") return "radio";
|
|
256
289
|
return baseButtonProps.role;
|
|
257
290
|
},
|
|
258
291
|
get "aria-checked"() {
|
|
259
292
|
if (state.selectionMode !== "single") return;
|
|
260
|
-
return state.selectedKeys.has(props.id);
|
|
293
|
+
return state.selectedKeys.has(props.id) ? "true" : "false";
|
|
261
294
|
},
|
|
262
295
|
get "aria-pressed"() {
|
|
263
|
-
if (state.selectionMode === "single") return;
|
|
296
|
+
if (state.selectionMode === "single") return null;
|
|
264
297
|
return baseButtonProps["aria-pressed"];
|
|
265
298
|
}
|
|
266
|
-
};
|
|
299
|
+
});
|
|
267
300
|
return {
|
|
268
301
|
...toggleButton,
|
|
269
302
|
buttonProps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.jsx","names":["isDisabledValue","mergeProps","mergeProps","mergeProps"],"sources":["../../src/button/createButton.ts","../../src/button/createToggleButton.ts","../../src/button/createToggleButtonGroup.ts"],"sourcesContent":["import { Accessor } from \"solid-js\";\nimport { createPress } from \"../interactions\";\nimport { createFocusable } from \"../interactions\";\nimport { mergeProps, filterDOMProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\n\nfunction isDisabledValue(isDisabled: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return isDisabled ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a button component.\n * Handles press interactions across mouse, touch, keyboard and screen readers.\n *\n * Based on react-aria's useButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createButton } from 'solidaria';\n *\n * function Button(props) {\n * let ref;\n * const { buttonProps, isPressed } = createButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * ref={ref}\n * class={isPressed() ? 'pressed' : ''}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createButton(props: AriaButtonProps = {}): ButtonAria {\n const elementType = props.elementType ?? \"button\";\n const isDisabled = () => isDisabledValue(props.isDisabled);\n\n const { pressProps, isPressed } = createPress({\n isDisabled,\n onPress: (event) => props.onPress?.(event),\n onPressStart: (event) => props.onPressStart?.(event),\n onPressEnd: (event) => props.onPressEnd?.(event),\n onPressUp: (event) => props.onPressUp?.(event),\n onPressChange: (pressed) => props.onPressChange?.(pressed),\n onClick: (event) => props.onClick?.(event),\n get preventFocusOnPress() {\n return props.preventFocusOnPress;\n },\n });\n\n const { focusableProps } = createFocusable({\n isDisabled,\n autoFocus: props.autoFocus,\n excludeFromTabOrder: props.excludeFromTabOrder,\n });\n\n const isNativeButton = elementType === \"button\";\n const isLink = elementType === \"a\";\n\n // Handle allowFocusWhenDisabled - set tabIndex to -1 when disabled but focusable\n // This allows tooltips to be shown on disabled buttons\n if (props.allowFocusWhenDisabled) {\n Object.defineProperty(focusableProps, \"tabIndex\", {\n enumerable: true,\n configurable: true,\n get() {\n return isDisabled() ? -1 : props.excludeFromTabOrder ? -1 : 0;\n },\n });\n }\n\n let additionalProps: Record<string, unknown> = {};\n\n if (isNativeButton) {\n additionalProps = {\n get type() {\n return props.type ?? \"button\";\n },\n get disabled() {\n return isDisabled();\n },\n get form() {\n return props.form;\n },\n get formAction() {\n return props.formAction;\n },\n get formEncType() {\n return props.formEncType;\n },\n get formMethod() {\n return props.formMethod;\n },\n get formNoValidate() {\n return props.formNoValidate;\n },\n get formTarget() {\n return props.formTarget;\n },\n get name() {\n return props.name;\n },\n get value() {\n return props.value;\n },\n };\n } else {\n // Non-native buttons need role; focusableProps supplies tabIndex.\n additionalProps = {\n role: \"button\",\n get href() {\n return isLink && !isDisabled() ? props.href : undefined;\n },\n get target() {\n return isLink ? props.target : undefined;\n },\n get type() {\n return elementType === \"input\" ? (props.type ?? \"button\") : undefined;\n },\n get disabled() {\n return elementType === \"input\" ? isDisabled() : undefined;\n },\n get \"aria-disabled\"() {\n return isDisabled() && elementType !== \"input\" ? true : undefined;\n },\n get rel() {\n return isLink ? props.rel : undefined;\n },\n };\n }\n\n const ariaProps: Record<string, unknown> = {\n get \"aria-haspopup\"() {\n return props[\"aria-haspopup\"];\n },\n get \"aria-expanded\"() {\n return props[\"aria-expanded\"];\n },\n get \"aria-controls\"() {\n return props[\"aria-controls\"];\n },\n get \"aria-pressed\"() {\n return props[\"aria-pressed\"];\n },\n get \"aria-current\"() {\n return props[\"aria-current\"];\n },\n get \"aria-disabled\"() {\n return props[\"aria-disabled\"];\n },\n };\n\n const buttonProps = mergeProps(\n additionalProps,\n focusableProps as Record<string, unknown>,\n pressProps as Record<string, unknown>,\n filterDOMProps(props as Record<string, unknown>, { labelable: true }),\n ariaProps,\n );\n\n return {\n buttonProps,\n isPressed,\n };\n}\n","import { Accessor, createSignal } from \"solid-js\";\nimport { createButton } from \"./createButton\";\nimport { mergeProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\nimport type { PressEvent } from \"../interactions\";\n\nexport interface AriaToggleButtonProps extends Omit<AriaButtonProps, \"aria-pressed\"> {\n /** Whether the button is selected (controlled). */\n isSelected?: Accessor<boolean> | boolean;\n /** Handler called when the button's selection state changes. */\n onChange?: (isSelected: boolean) => void;\n /** The default selected state (uncontrolled). */\n defaultSelected?: boolean;\n}\n\nexport interface ToggleButtonAria extends ButtonAria {\n /** Whether the button is currently selected. */\n isSelected: Accessor<boolean>;\n}\n\nfunction getSelectedValue(isSelected: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isSelected === \"function\") {\n return isSelected();\n }\n return isSelected ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a toggle button component.\n * Toggle buttons allow users to toggle a selection on or off.\n *\n * Based on react-aria's useToggleButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createToggleButton } from 'solidaria';\n *\n * function ToggleButton(props) {\n * const { buttonProps, isPressed, isSelected } = createToggleButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * class={isSelected() ? 'selected' : ''}\n * style={{ opacity: isPressed() ? 0.8 : 1 }}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createToggleButton(props: AriaToggleButtonProps = {}): ToggleButtonAria {\n // Handle controlled vs uncontrolled state\n const isControlled = props.isSelected !== undefined;\n const [uncontrolledSelected, setUncontrolledSelected] = createSignal(\n props.defaultSelected ?? false,\n );\n\n const isSelected = (): boolean => {\n if (isControlled) {\n return getSelectedValue(props.isSelected);\n }\n return uncontrolledSelected();\n };\n\n const toggleSelection = () => {\n const newValue = !isSelected();\n if (!isControlled) {\n setUncontrolledSelected(newValue);\n }\n props.onChange?.(newValue);\n };\n\n // Create the press handler that toggles selection\n const onPress = (e: PressEvent) => {\n toggleSelection();\n props.onPress?.(e);\n };\n\n // Get button props with our custom press handler\n const { buttonProps: baseButtonProps, isPressed } = createButton(\n mergeProps(props, {\n onPress,\n }) as AriaButtonProps,\n );\n\n // Create buttonProps with a getter for aria-pressed so it stays reactive\n const buttonProps = {\n ...baseButtonProps,\n get \"aria-pressed\"() {\n return isSelected();\n },\n };\n\n return {\n buttonProps,\n isPressed,\n isSelected,\n };\n}\n","import type { JSX } from \"solid-js\";\nimport { splitProps } from \"solid-js\";\nimport type { Key, ToggleGroupProps, ToggleGroupState } from \"@proyecto-viviana/solid-stately\";\nimport { createToolbar, type Orientation } from \"../toolbar\";\nimport { mergeProps } from \"../utils\";\nimport {\n createToggleButton,\n type AriaToggleButtonProps,\n type ToggleButtonAria,\n} from \"./createToggleButton\";\n\nexport interface AriaToggleButtonGroupProps extends ToggleGroupProps {\n /**\n * The orientation of the toggle button group.\n * @default 'horizontal'\n */\n orientation?: Orientation;\n /** Accessible label. */\n \"aria-label\"?: string;\n /** Labelled-by id. */\n \"aria-labelledby\"?: string;\n}\n\nexport interface ToggleButtonGroupAria {\n /** Props for the group container. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\nexport interface AriaToggleButtonGroupItemProps extends Omit<AriaToggleButtonProps, \"children\"> {\n /** Key used in the group selection state. */\n id: Key;\n}\n\nfunction isDisabledValue(isDisabled: AriaToggleButtonProps[\"isDisabled\"]): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return !!isDisabled;\n}\n\n/**\n * Provides ARIA behavior for a toggle button group container.\n */\nexport function createToggleButtonGroup(\n props: AriaToggleButtonGroupProps,\n state: ToggleGroupState,\n): ToggleButtonGroupAria {\n const { toolbarProps } = createToolbar({\n get orientation() {\n return props.orientation;\n },\n get \"aria-label\"() {\n return props[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return props[\"aria-labelledby\"];\n },\n });\n\n const groupProps = mergeProps(toolbarProps as Record<string, unknown>, {\n get role() {\n return state.selectionMode === \"single\" ? \"radiogroup\" : toolbarProps.role;\n },\n get \"aria-disabled\"() {\n return props.isDisabled || undefined;\n },\n }) as JSX.HTMLAttributes<HTMLElement>;\n\n return { groupProps };\n}\n\n/**\n * Provides ARIA behavior for an item within a toggle button group.\n */\nexport function createToggleButtonGroupItem(\n props: AriaToggleButtonGroupItemProps,\n state: ToggleGroupState,\n): ToggleButtonAria {\n // splitProps keeps `toggleProps` a reactive proxy; an object-rest destructure\n // (`{ id, ...toggleProps }`) eagerly reads and freezes every key. `id` is\n // dropped here and re-read live via props.id below. guard:idiomatic-solid.\n const [, toggleProps] = splitProps(props, [\"id\"]);\n\n const toggleButton = createToggleButton(\n mergeProps(toggleProps, {\n get isSelected() {\n return state.selectedKeys.has(props.id);\n },\n onChange(isSelected: boolean) {\n state.setSelected(props.id, isSelected);\n props.onChange?.(isSelected);\n },\n get isDisabled() {\n return isDisabledValue(props.isDisabled) || state.isDisabled;\n },\n }) as AriaToggleButtonProps,\n );\n\n const baseButtonProps = toggleButton.buttonProps as Record<string, unknown>;\n const buttonProps: Record<string, unknown> = {\n ...baseButtonProps,\n get role() {\n if (state.selectionMode === \"single\") {\n return \"radio\";\n }\n return baseButtonProps.role as string | undefined;\n },\n get \"aria-checked\"() {\n if (state.selectionMode !== \"single\") {\n return undefined;\n }\n return state.selectedKeys.has(props.id);\n },\n get \"aria-pressed\"() {\n if (state.selectionMode === \"single\") {\n return undefined;\n }\n return baseButtonProps[\"aria-pressed\"];\n },\n };\n\n return {\n ...toggleButton,\n buttonProps,\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"button.jsx","names":["isDisabledValue"],"sources":["../../src/button/createButton.ts","../../src/button/createToggleButton.ts","../../src/button/createToggleButtonGroup.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/button/useButton.ts\n\nimport { Accessor } from \"solid-js\";\nimport { createPress } from \"../interactions\";\nimport { createFocusable } from \"../interactions\";\nimport { mergeProps, filterDOMProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\n\nfunction isDisabledValue(isDisabled: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return isDisabled ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a button component.\n * Handles press interactions across mouse, touch, keyboard and screen readers.\n *\n * Based on react-aria's useButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createButton } from 'solidaria';\n *\n * function Button(props) {\n * let ref;\n * const { buttonProps, isPressed } = createButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * ref={ref}\n * class={isPressed() ? 'pressed' : ''}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createButton(props: AriaButtonProps = {}): ButtonAria {\n const elementType = props.elementType ?? \"button\";\n const isDisabled = () => isDisabledValue(props.isDisabled);\n\n const { pressProps, isPressed } = createPress({\n isDisabled,\n onPress: (event) => props.onPress?.(event),\n onPressStart: (event) => props.onPressStart?.(event),\n onPressEnd: (event) => props.onPressEnd?.(event),\n onPressUp: (event) => props.onPressUp?.(event),\n onPressChange: (pressed) => props.onPressChange?.(pressed),\n onClick: (event) => props.onClick?.(event),\n get preventFocusOnPress() {\n return props.preventFocusOnPress;\n },\n });\n\n const { focusableProps } = createFocusable({\n isDisabled,\n autoFocus: props.autoFocus,\n excludeFromTabOrder: props.excludeFromTabOrder,\n });\n\n const isNativeButton = elementType === \"button\";\n const isLink = elementType === \"a\";\n\n // Handle allowFocusWhenDisabled - set tabIndex to -1 when disabled but focusable\n // This allows tooltips to be shown on disabled buttons\n if (props.allowFocusWhenDisabled) {\n Object.defineProperty(focusableProps, \"tabIndex\", {\n enumerable: true,\n configurable: true,\n get() {\n return isDisabled() ? -1 : props.excludeFromTabOrder ? -1 : 0;\n },\n });\n }\n\n let additionalProps: Record<string, unknown> = {};\n\n if (isNativeButton) {\n additionalProps = {\n get type() {\n return props.type ?? \"button\";\n },\n get disabled() {\n return isDisabled();\n },\n get form() {\n return props.form;\n },\n get formAction() {\n return props.formAction;\n },\n get formEncType() {\n return props.formEncType;\n },\n get formMethod() {\n return props.formMethod;\n },\n get formNoValidate() {\n return props.formNoValidate;\n },\n get formTarget() {\n return props.formTarget;\n },\n get name() {\n return props.name;\n },\n get value() {\n return props.value;\n },\n };\n } else {\n // Non-native buttons need role; focusableProps supplies tabIndex.\n additionalProps = {\n role: \"button\",\n get href() {\n return isLink && !isDisabled() ? props.href : undefined;\n },\n get target() {\n return isLink ? props.target : undefined;\n },\n get type() {\n return elementType === \"input\" ? (props.type ?? \"button\") : undefined;\n },\n get disabled() {\n return elementType === \"input\" ? isDisabled() : undefined;\n },\n get \"aria-disabled\"() {\n return isDisabled() && elementType !== \"input\" ? \"true\" : undefined;\n },\n get rel() {\n return isLink ? props.rel : undefined;\n },\n };\n }\n\n const ariaProps: Record<string, unknown> = {\n get \"aria-haspopup\"() {\n return props[\"aria-haspopup\"];\n },\n get \"aria-expanded\"() {\n return props[\"aria-expanded\"];\n },\n get \"aria-controls\"() {\n return props[\"aria-controls\"];\n },\n get \"aria-pressed\"() {\n return props[\"aria-pressed\"];\n },\n get \"aria-current\"() {\n return props[\"aria-current\"];\n },\n get \"aria-disabled\"() {\n return props[\"aria-disabled\"];\n },\n };\n\n const buttonProps = mergeProps(\n additionalProps,\n focusableProps as Record<string, unknown>,\n pressProps as Record<string, unknown>,\n filterDOMProps(props as Record<string, unknown>, { labelable: true }),\n ariaProps,\n );\n\n return {\n buttonProps,\n isPressed,\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/button/useToggleButton.ts\n\nimport { Accessor, createSignal } from \"solid-js\";\nimport { createButton } from \"./createButton\";\nimport { mergeProps } from \"../utils\";\nimport type { AriaButtonProps, ButtonAria } from \"./types\";\nimport type { PressEvent } from \"../interactions\";\n\nexport interface AriaToggleButtonProps extends Omit<AriaButtonProps, \"aria-pressed\"> {\n /** Whether the button is selected (controlled). */\n isSelected?: Accessor<boolean> | boolean;\n /** Handler called when the button's selection state changes. */\n onChange?: (isSelected: boolean) => void;\n /** The default selected state (uncontrolled). */\n defaultSelected?: boolean;\n}\n\nexport interface ToggleButtonAria extends ButtonAria {\n /** Whether the button is currently selected. */\n isSelected: Accessor<boolean>;\n}\n\nfunction getSelectedValue(isSelected: Accessor<boolean> | boolean | undefined): boolean {\n if (typeof isSelected === \"function\") {\n return isSelected();\n }\n return isSelected ?? false;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a toggle button component.\n * Toggle buttons allow users to toggle a selection on or off.\n *\n * Based on react-aria's useToggleButton but adapted for SolidJS.\n *\n * @example\n * ```tsx\n * import { createToggleButton } from 'solidaria';\n *\n * function ToggleButton(props) {\n * const { buttonProps, isPressed, isSelected } = createToggleButton(props);\n *\n * return (\n * <button\n * {...buttonProps}\n * class={isSelected() ? 'selected' : ''}\n * style={{ opacity: isPressed() ? 0.8 : 1 }}\n * >\n * {props.children}\n * </button>\n * );\n * }\n * ```\n */\nexport function createToggleButton(props: AriaToggleButtonProps = {}): ToggleButtonAria {\n // Handle controlled vs uncontrolled state\n const isControlled = props.isSelected !== undefined;\n const [uncontrolledSelected, setUncontrolledSelected] = createSignal(\n props.defaultSelected ?? false,\n );\n\n const isSelected = (): boolean => {\n if (isControlled) {\n return getSelectedValue(props.isSelected);\n }\n return uncontrolledSelected();\n };\n\n const toggleSelection = () => {\n const newValue = !isSelected();\n if (!isControlled) {\n setUncontrolledSelected(newValue);\n }\n props.onChange?.(newValue);\n };\n\n // Create the press handler that toggles selection\n const onPress = (e: PressEvent) => {\n toggleSelection();\n props.onPress?.(e);\n };\n\n // Get button props with our custom press handler\n const { buttonProps: baseButtonProps, isPressed } = createButton(\n mergeProps(props, {\n onPress,\n }) as AriaButtonProps,\n );\n\n // Solid 2 omits boolean `false` attributes; ARIA needs the literal \"false\".\n const buttonProps = mergeProps(baseButtonProps, {\n get \"aria-pressed\"() {\n return isSelected() ? \"true\" : \"false\";\n },\n });\n\n return {\n buttonProps,\n isPressed,\n isSelected,\n };\n}\n","/*\n * Copyright 2024 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/button/useToggleButtonGroup.ts\n\n// Ported from packages/react-aria/src/button/useToggleButtonGroup.ts.\n\nimport type { JSX } from \"@solidjs/web\";\nimport type { Key, ToggleGroupProps, ToggleGroupState } from \"@proyecto-viviana/solid-stately\";\nimport { createToolbar, type Orientation } from \"../toolbar\";\nimport { mergeProps } from \"../utils\";\nimport { splitProps } from \"../utils/splitProps\";\nimport {\n createToggleButton,\n type AriaToggleButtonProps,\n type ToggleButtonAria,\n} from \"./createToggleButton\";\n\nexport interface AriaToggleButtonGroupProps extends ToggleGroupProps {\n /**\n * The orientation of the toggle button group.\n * @default 'horizontal'\n */\n orientation?: Orientation;\n /** Accessible label. */\n \"aria-label\"?: string;\n /** Labelled-by id. */\n \"aria-labelledby\"?: string;\n}\n\nexport interface ToggleButtonGroupAria {\n /** Props for the group container. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\nexport interface AriaToggleButtonGroupItemProps extends Omit<AriaToggleButtonProps, \"children\"> {\n /** Key used in the group selection state. */\n id: Key;\n}\n\nfunction isDisabledValue(isDisabled: AriaToggleButtonProps[\"isDisabled\"]): boolean {\n if (typeof isDisabled === \"function\") {\n return isDisabled();\n }\n return !!isDisabled;\n}\n\n/**\n * Provides ARIA behavior for a toggle button group container.\n */\nexport function createToggleButtonGroup(\n props: AriaToggleButtonGroupProps,\n state: ToggleGroupState,\n): ToggleButtonGroupAria {\n const { toolbarProps } = createToolbar({\n get orientation() {\n return props.orientation;\n },\n get \"aria-label\"() {\n return props[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return props[\"aria-labelledby\"];\n },\n });\n\n const groupProps = mergeProps(toolbarProps as Record<string, unknown>, {\n get role() {\n return state.selectionMode === \"single\" ? \"radiogroup\" : toolbarProps.role;\n },\n get \"aria-disabled\"() {\n return props.isDisabled ? \"true\" : undefined;\n },\n }) as JSX.HTMLAttributes<HTMLElement>;\n\n return { groupProps };\n}\n\n/**\n * Provides ARIA behavior for an item within a toggle button group.\n */\nexport function createToggleButtonGroupItem(\n props: AriaToggleButtonGroupItemProps,\n state: ToggleGroupState,\n): ToggleButtonAria {\n // splitProps keeps `toggleProps` a reactive proxy; an object-rest destructure\n // (`{ id, ...toggleProps }`) eagerly reads and freezes every key. `id` is\n // dropped here and re-read live via props.id below. guard:idiomatic-solid.\n const [, toggleProps] = splitProps(props, [\"id\"]);\n\n const toggleButton = createToggleButton(\n mergeProps(toggleProps, {\n get isSelected() {\n return state.selectedKeys.has(props.id);\n },\n onChange(isSelected: boolean) {\n state.setSelected(props.id, isSelected);\n props.onChange?.(isSelected);\n },\n get isDisabled() {\n return isDisabledValue(props.isDisabled) || state.isDisabled;\n },\n }) as AriaToggleButtonProps,\n );\n\n const baseButtonProps = toggleButton.buttonProps as Record<string, unknown>;\n const buttonProps = mergeProps(baseButtonProps, {\n get role() {\n if (state.selectionMode === \"single\") {\n return \"radio\";\n }\n return baseButtonProps.role as string | undefined;\n },\n get \"aria-checked\"() {\n if (state.selectionMode !== \"single\") {\n return undefined;\n }\n return state.selectedKeys.has(props.id) ? \"true\" : \"false\";\n },\n get \"aria-pressed\"() {\n if (state.selectionMode === \"single\") {\n return null;\n }\n return baseButtonProps[\"aria-pressed\"];\n },\n });\n\n return {\n ...toggleButton,\n buttonProps,\n };\n}\n"],"mappings":"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"}
|