@proyecto-viviana/solidaria 0.2.8 → 0.4.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/README.md +31 -236
- package/dist/_chunk/actiongroup.js +207 -0
- package/dist/_chunk/actiongroup.js.map +1 -0
- package/dist/_chunk/actiongroup.jsx +207 -0
- package/dist/_chunk/actiongroup.jsx.map +1 -0
- package/dist/_chunk/ariaHideOutside.js +122 -0
- package/dist/_chunk/ariaHideOutside.js.map +1 -0
- package/dist/_chunk/ariaHideOutside.jsx +122 -0
- package/dist/_chunk/ariaHideOutside.jsx.map +1 -0
- package/dist/_chunk/autocomplete.js +196 -0
- package/dist/_chunk/autocomplete.js.map +1 -0
- package/dist/_chunk/autocomplete.jsx +196 -0
- package/dist/_chunk/autocomplete.jsx.map +1 -0
- package/dist/_chunk/breadcrumbs.js +119 -0
- package/dist/_chunk/breadcrumbs.js.map +1 -0
- package/dist/_chunk/breadcrumbs.jsx +119 -0
- package/dist/_chunk/breadcrumbs.jsx.map +1 -0
- package/dist/_chunk/button.js +276 -0
- package/dist/_chunk/button.js.map +1 -0
- package/dist/_chunk/button.jsx +276 -0
- package/dist/_chunk/button.jsx.map +1 -0
- package/dist/_chunk/calendar.js +1036 -0
- package/dist/_chunk/calendar.js.map +1 -0
- package/dist/_chunk/calendar.jsx +1036 -0
- package/dist/_chunk/calendar.jsx.map +1 -0
- package/dist/_chunk/checkbox.js +234 -0
- package/dist/_chunk/checkbox.js.map +1 -0
- package/dist/_chunk/checkbox.jsx +234 -0
- package/dist/_chunk/checkbox.jsx.map +1 -0
- package/dist/_chunk/color.js +1174 -0
- package/dist/_chunk/color.js.map +1 -0
- package/dist/_chunk/color.jsx +1174 -0
- package/dist/_chunk/color.jsx.map +1 -0
- package/dist/_chunk/combobox.js +436 -0
- package/dist/_chunk/combobox.js.map +1 -0
- package/dist/_chunk/combobox.jsx +436 -0
- package/dist/_chunk/combobox.jsx.map +1 -0
- package/dist/_chunk/createCollator.js +229 -0
- package/dist/_chunk/createCollator.js.map +1 -0
- package/dist/_chunk/createCollator.jsx +223 -0
- package/dist/_chunk/createCollator.jsx.map +1 -0
- package/dist/_chunk/createCollectionRowInteraction.js +133 -0
- package/dist/_chunk/createCollectionRowInteraction.js.map +1 -0
- package/dist/_chunk/createCollectionRowInteraction.jsx +133 -0
- package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -0
- package/dist/_chunk/createField.js +54 -0
- package/dist/_chunk/createField.js.map +1 -0
- package/dist/_chunk/createField.jsx +54 -0
- package/dist/_chunk/createField.jsx.map +1 -0
- package/dist/_chunk/createFocus.js +101 -0
- package/dist/_chunk/createFocus.js.map +1 -0
- package/dist/_chunk/createFocus.jsx +101 -0
- package/dist/_chunk/createFocus.jsx.map +1 -0
- package/dist/_chunk/createFocusRing.js +54 -0
- package/dist/_chunk/createFocusRing.js.map +1 -0
- package/dist/_chunk/createFocusRing.jsx +54 -0
- package/dist/_chunk/createFocusRing.jsx.map +1 -0
- package/dist/_chunk/createFocusWithin.js +121 -0
- package/dist/_chunk/createFocusWithin.js.map +1 -0
- package/dist/_chunk/createFocusWithin.jsx +121 -0
- package/dist/_chunk/createFocusWithin.jsx.map +1 -0
- package/dist/_chunk/createFocusable.js +131 -0
- package/dist/_chunk/createFocusable.js.map +1 -0
- package/dist/_chunk/createFocusable.jsx +131 -0
- package/dist/_chunk/createFocusable.jsx.map +1 -0
- package/dist/_chunk/createFormValidation.js +135 -0
- package/dist/_chunk/createFormValidation.js.map +1 -0
- package/dist/_chunk/createFormValidation.jsx +135 -0
- package/dist/_chunk/createFormValidation.jsx.map +1 -0
- package/dist/_chunk/createHover.js +130 -0
- package/dist/_chunk/createHover.js.map +1 -0
- package/dist/_chunk/createHover.jsx +130 -0
- package/dist/_chunk/createHover.jsx.map +1 -0
- package/dist/_chunk/createInteractionModality.js +269 -0
- package/dist/_chunk/createInteractionModality.js.map +1 -0
- package/dist/_chunk/createInteractionModality.jsx +269 -0
- package/dist/_chunk/createInteractionModality.jsx.map +1 -0
- package/dist/_chunk/createLabel.js +46 -0
- package/dist/_chunk/createLabel.js.map +1 -0
- package/dist/_chunk/createLabel.jsx +46 -0
- package/dist/_chunk/createLabel.jsx.map +1 -0
- package/dist/_chunk/createLabels.js +31 -0
- package/dist/_chunk/createLabels.js.map +1 -0
- package/dist/_chunk/createLabels.jsx +31 -0
- package/dist/_chunk/createLabels.jsx.map +1 -0
- package/dist/_chunk/createLandmark.js +198 -0
- package/dist/_chunk/createLandmark.js.map +1 -0
- package/dist/_chunk/createLandmark.jsx +198 -0
- package/dist/_chunk/createLandmark.jsx.map +1 -0
- package/dist/_chunk/createLongPress.js +91 -0
- package/dist/_chunk/createLongPress.js.map +1 -0
- package/dist/_chunk/createLongPress.jsx +91 -0
- package/dist/_chunk/createLongPress.jsx.map +1 -0
- package/dist/_chunk/createOverlay.js +327 -0
- package/dist/_chunk/createOverlay.js.map +1 -0
- package/dist/_chunk/createOverlay.jsx +327 -0
- package/dist/_chunk/createOverlay.jsx.map +1 -0
- package/dist/_chunk/createPress.js +526 -0
- package/dist/_chunk/createPress.js.map +1 -0
- package/dist/_chunk/createPress.jsx +526 -0
- package/dist/_chunk/createPress.jsx.map +1 -0
- package/dist/_chunk/createProgressBar.js +81 -0
- package/dist/_chunk/createProgressBar.js.map +1 -0
- package/dist/_chunk/createProgressBar.jsx +81 -0
- package/dist/_chunk/createProgressBar.jsx.map +1 -0
- package/dist/_chunk/createSelectableItem.js +298 -0
- package/dist/_chunk/createSelectableItem.js.map +1 -0
- package/dist/_chunk/createSelectableItem.jsx +298 -0
- package/dist/_chunk/createSelectableItem.jsx.map +1 -0
- package/dist/_chunk/createToggle.js +158 -0
- package/dist/_chunk/createToggle.js.map +1 -0
- package/dist/_chunk/createToggle.jsx +158 -0
- package/dist/_chunk/createToggle.jsx.map +1 -0
- package/dist/_chunk/createTypeSelect.js +125 -0
- package/dist/_chunk/createTypeSelect.js.map +1 -0
- package/dist/_chunk/createTypeSelect.jsx +125 -0
- package/dist/_chunk/createTypeSelect.jsx.map +1 -0
- package/dist/_chunk/datepicker.js +1393 -0
- package/dist/_chunk/datepicker.js.map +1 -0
- package/dist/_chunk/datepicker.jsx +1393 -0
- package/dist/_chunk/datepicker.jsx.map +1 -0
- package/dist/_chunk/dialog.js +62 -0
- package/dist/_chunk/dialog.js.map +1 -0
- package/dist/_chunk/dialog.jsx +62 -0
- package/dist/_chunk/dialog.jsx.map +1 -0
- package/dist/_chunk/disclosure.js +185 -0
- package/dist/_chunk/disclosure.js.map +1 -0
- package/dist/_chunk/disclosure.jsx +185 -0
- package/dist/_chunk/disclosure.jsx.map +1 -0
- package/dist/_chunk/dnd.js +1304 -0
- package/dist/_chunk/dnd.js.map +1 -0
- package/dist/_chunk/dnd.jsx +1304 -0
- package/dist/_chunk/dnd.jsx.map +1 -0
- package/dist/_chunk/env.js +105 -0
- package/dist/_chunk/env.js.map +1 -0
- package/dist/_chunk/env.jsx +105 -0
- package/dist/_chunk/env.jsx.map +1 -0
- package/dist/_chunk/filterDOMProps.js +82 -0
- package/dist/_chunk/filterDOMProps.js.map +1 -0
- package/dist/_chunk/filterDOMProps.jsx +82 -0
- package/dist/_chunk/filterDOMProps.jsx.map +1 -0
- package/dist/_chunk/focus.js +399 -0
- package/dist/_chunk/focus.js.map +1 -0
- package/dist/_chunk/focus.jsx +399 -0
- package/dist/_chunk/focus.jsx.map +1 -0
- package/dist/_chunk/focus2.js +895 -0
- package/dist/_chunk/focus2.js.map +1 -0
- package/dist/_chunk/focus2.jsx +870 -0
- package/dist/_chunk/focus2.jsx.map +1 -0
- package/dist/_chunk/form.js +39 -0
- package/dist/_chunk/form.js.map +1 -0
- package/dist/_chunk/form.jsx +39 -0
- package/dist/_chunk/form.jsx.map +1 -0
- package/dist/_chunk/grid.js +623 -0
- package/dist/_chunk/grid.js.map +1 -0
- package/dist/_chunk/grid.jsx +623 -0
- package/dist/_chunk/grid.jsx.map +1 -0
- package/dist/_chunk/gridlist.js +364 -0
- package/dist/_chunk/gridlist.js.map +1 -0
- package/dist/_chunk/gridlist.jsx +364 -0
- package/dist/_chunk/gridlist.jsx.map +1 -0
- package/dist/_chunk/i18n.js +254 -0
- package/dist/_chunk/i18n.js.map +1 -0
- package/dist/_chunk/i18n.jsx +254 -0
- package/dist/_chunk/i18n.jsx.map +1 -0
- package/dist/_chunk/interactions.js +241 -0
- package/dist/_chunk/interactions.js.map +1 -0
- package/dist/_chunk/interactions.jsx +237 -0
- package/dist/_chunk/interactions.jsx.map +1 -0
- package/dist/_chunk/link.js +96 -0
- package/dist/_chunk/link.js.map +1 -0
- package/dist/_chunk/link.jsx +96 -0
- package/dist/_chunk/link.jsx.map +1 -0
- package/dist/_chunk/listbox.js +324 -0
- package/dist/_chunk/listbox.js.map +1 -0
- package/dist/_chunk/listbox.jsx +324 -0
- package/dist/_chunk/listbox.jsx.map +1 -0
- package/dist/_chunk/live-announcer.js +207 -0
- package/dist/_chunk/live-announcer.js.map +1 -0
- package/dist/_chunk/live-announcer.jsx +207 -0
- package/dist/_chunk/live-announcer.jsx.map +1 -0
- package/dist/_chunk/menu.js +518 -0
- package/dist/_chunk/menu.js.map +1 -0
- package/dist/_chunk/menu.jsx +518 -0
- package/dist/_chunk/menu.jsx.map +1 -0
- package/dist/_chunk/meter.js +33 -0
- package/dist/_chunk/meter.js.map +1 -0
- package/dist/_chunk/meter.jsx +33 -0
- package/dist/_chunk/meter.jsx.map +1 -0
- package/dist/_chunk/numberfield.js +258 -0
- package/dist/_chunk/numberfield.js.map +1 -0
- package/dist/_chunk/numberfield.jsx +258 -0
- package/dist/_chunk/numberfield.jsx.map +1 -0
- package/dist/_chunk/overlays.js +186 -0
- package/dist/_chunk/overlays.js.map +1 -0
- package/dist/_chunk/overlays.jsx +162 -0
- package/dist/_chunk/overlays.jsx.map +1 -0
- package/dist/_chunk/popover.js +574 -0
- package/dist/_chunk/popover.js.map +1 -0
- package/dist/_chunk/popover.jsx +574 -0
- package/dist/_chunk/popover.jsx.map +1 -0
- package/dist/_chunk/radio.js +319 -0
- package/dist/_chunk/radio.js.map +1 -0
- package/dist/_chunk/radio.jsx +319 -0
- package/dist/_chunk/radio.jsx.map +1 -0
- package/dist/_chunk/searchfield.js +209 -0
- package/dist/_chunk/searchfield.js.map +1 -0
- package/dist/_chunk/searchfield.jsx +209 -0
- package/dist/_chunk/searchfield.jsx.map +1 -0
- package/dist/_chunk/select.js +403 -0
- package/dist/_chunk/select.js.map +1 -0
- package/dist/_chunk/select.jsx +394 -0
- package/dist/_chunk/select.jsx.map +1 -0
- package/dist/_chunk/selection.js +679 -0
- package/dist/_chunk/selection.js.map +1 -0
- package/dist/_chunk/selection.jsx +679 -0
- package/dist/_chunk/selection.jsx.map +1 -0
- package/dist/_chunk/separator.js +29 -0
- package/dist/_chunk/separator.js.map +1 -0
- package/dist/_chunk/separator.jsx +29 -0
- package/dist/_chunk/separator.jsx.map +1 -0
- package/dist/_chunk/slider.js +255 -0
- package/dist/_chunk/slider.js.map +1 -0
- package/dist/_chunk/slider.jsx +255 -0
- package/dist/_chunk/slider.jsx.map +1 -0
- package/dist/_chunk/steplist.js +66 -0
- package/dist/_chunk/steplist.js.map +1 -0
- package/dist/_chunk/steplist.jsx +66 -0
- package/dist/_chunk/steplist.jsx.map +1 -0
- package/dist/_chunk/switch.js +34 -0
- package/dist/_chunk/switch.js.map +1 -0
- package/dist/_chunk/switch.jsx +34 -0
- package/dist/_chunk/switch.jsx.map +1 -0
- package/dist/_chunk/table.js +1051 -0
- package/dist/_chunk/table.js.map +1 -0
- package/dist/_chunk/table.jsx +1051 -0
- package/dist/_chunk/table.jsx.map +1 -0
- package/dist/_chunk/tabs.js +260 -0
- package/dist/_chunk/tabs.js.map +1 -0
- package/dist/_chunk/tabs.jsx +260 -0
- package/dist/_chunk/tabs.jsx.map +1 -0
- package/dist/_chunk/tag.js +286 -0
- package/dist/_chunk/tag.js.map +1 -0
- package/dist/_chunk/tag.jsx +286 -0
- package/dist/_chunk/tag.jsx.map +1 -0
- package/dist/_chunk/textfield.js +109 -0
- package/dist/_chunk/textfield.js.map +1 -0
- package/dist/_chunk/textfield.jsx +109 -0
- package/dist/_chunk/textfield.jsx.map +1 -0
- package/dist/_chunk/toast.js +250 -0
- package/dist/_chunk/toast.js.map +1 -0
- package/dist/_chunk/toast.jsx +250 -0
- package/dist/_chunk/toast.jsx.map +1 -0
- package/dist/_chunk/toolbar.js +258 -0
- package/dist/_chunk/toolbar.js.map +1 -0
- package/dist/_chunk/toolbar.jsx +258 -0
- package/dist/_chunk/toolbar.jsx.map +1 -0
- package/dist/_chunk/tooltip.js +185 -0
- package/dist/_chunk/tooltip.js.map +1 -0
- package/dist/_chunk/tooltip.jsx +185 -0
- package/dist/_chunk/tooltip.jsx.map +1 -0
- package/dist/_chunk/tree.js +424 -0
- package/dist/_chunk/tree.js.map +1 -0
- package/dist/_chunk/tree.jsx +424 -0
- package/dist/_chunk/tree.jsx.map +1 -0
- package/dist/_chunk/utils.js +665 -0
- package/dist/_chunk/utils.js.map +1 -0
- package/dist/_chunk/utils.jsx +665 -0
- package/dist/_chunk/utils.jsx.map +1 -0
- package/dist/_chunk/visually-hidden.js +92 -0
- package/dist/_chunk/visually-hidden.js.map +1 -0
- package/dist/_chunk/visually-hidden.jsx +92 -0
- package/dist/_chunk/visually-hidden.jsx.map +1 -0
- package/dist/actiongroup/createActionGroup.d.ts +5 -5
- package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
- package/dist/actiongroup/index.d.ts +1 -1
- package/dist/actiongroup/index.js +2 -0
- package/dist/actiongroup/index.jsx +2 -0
- package/dist/autocomplete/createAutocomplete.d.ts +12 -10
- package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
- package/dist/autocomplete/index.d.ts +1 -1
- package/dist/autocomplete/index.d.ts.map +1 -1
- package/dist/autocomplete/index.js +2 -0
- package/dist/autocomplete/index.jsx +2 -0
- package/dist/breadcrumbs/createBreadcrumbs.d.ts +9 -7
- package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
- package/dist/breadcrumbs/index.d.ts +1 -1
- package/dist/breadcrumbs/index.js +2 -0
- package/dist/breadcrumbs/index.jsx +2 -0
- package/dist/button/createButton.d.ts +1 -1
- package/dist/button/createButton.d.ts.map +1 -1
- package/dist/button/createToggleButton.d.ts +3 -3
- package/dist/button/createToggleButtonGroup.d.ts +7 -7
- package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
- package/dist/button/index.d.ts +6 -6
- package/dist/button/index.d.ts.map +1 -1
- package/dist/button/index.js +2 -0
- package/dist/button/index.jsx +2 -0
- package/dist/button/types.d.ts +18 -12
- package/dist/button/types.d.ts.map +1 -1
- package/dist/calendar/createCalendar.d.ts +15 -5
- package/dist/calendar/createCalendar.d.ts.map +1 -1
- package/dist/calendar/createCalendarCell.d.ts +6 -2
- package/dist/calendar/createCalendarCell.d.ts.map +1 -1
- package/dist/calendar/createCalendarGrid.d.ts +4 -4
- package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
- package/dist/calendar/createCalendarMonthPicker.d.ts +41 -0
- package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -0
- package/dist/calendar/createCalendarYearPicker.d.ts +49 -0
- package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -0
- package/dist/calendar/createRangeCalendar.d.ts +15 -5
- package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
- package/dist/calendar/createRangeCalendarCell.d.ts +4 -2
- package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
- package/dist/calendar/index.d.ts +7 -5
- package/dist/calendar/index.d.ts.map +1 -1
- package/dist/calendar/index.js +2 -0
- package/dist/calendar/index.jsx +2 -0
- package/dist/calendar/intl/index.d.ts +12 -0
- package/dist/calendar/intl/index.d.ts.map +1 -0
- package/dist/calendar/utils.d.ts +16 -0
- package/dist/calendar/utils.d.ts.map +1 -0
- package/dist/checkbox/createCheckbox.d.ts +10 -6
- package/dist/checkbox/createCheckbox.d.ts.map +1 -1
- package/dist/checkbox/createCheckboxGroup.d.ts +7 -7
- package/dist/checkbox/createCheckboxGroup.d.ts.map +1 -1
- package/dist/checkbox/createCheckboxGroupItem.d.ts +4 -4
- package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
- package/dist/checkbox/createCheckboxGroupState.d.ts +2 -2
- package/dist/checkbox/createCheckboxGroupState.d.ts.map +1 -1
- package/dist/checkbox/index.d.ts +8 -8
- package/dist/checkbox/index.d.ts.map +1 -1
- package/dist/checkbox/index.js +2 -0
- package/dist/checkbox/index.jsx +2 -0
- package/dist/collections/index.d.ts +3 -3
- package/dist/collections/index.d.ts.map +1 -1
- package/dist/collections/index.js +160 -0
- package/dist/collections/index.js.map +1 -0
- package/dist/collections/index.jsx +160 -0
- package/dist/collections/index.jsx.map +1 -0
- package/dist/color/createColorArea.d.ts +3 -3
- package/dist/color/createColorArea.d.ts.map +1 -1
- package/dist/color/createColorField.d.ts +4 -4
- package/dist/color/createColorField.d.ts.map +1 -1
- package/dist/color/createColorSlider.d.ts +4 -4
- package/dist/color/createColorSlider.d.ts.map +1 -1
- package/dist/color/createColorSwatch.d.ts +2 -2
- package/dist/color/createColorSwatch.d.ts.map +1 -1
- package/dist/color/createColorWheel.d.ts +3 -3
- package/dist/color/createColorWheel.d.ts.map +1 -1
- package/dist/color/index.d.ts +6 -6
- package/dist/color/index.js +2 -0
- package/dist/color/index.jsx +2 -0
- package/dist/color/types.d.ts +98 -16
- package/dist/color/types.d.ts.map +1 -1
- package/dist/combobox/createComboBox.d.ts +10 -7
- package/dist/combobox/createComboBox.d.ts.map +1 -1
- package/dist/combobox/index.d.ts +1 -1
- package/dist/combobox/index.js +2 -0
- package/dist/combobox/index.jsx +2 -0
- package/dist/combobox/intl/index.d.ts +1 -1
- package/dist/datepicker/createDateField.d.ts +18 -6
- package/dist/datepicker/createDateField.d.ts.map +1 -1
- package/dist/datepicker/createDatePicker.d.ts +51 -5
- package/dist/datepicker/createDatePicker.d.ts.map +1 -1
- package/dist/datepicker/createDatePickerGroup.d.ts +19 -0
- package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -0
- package/dist/datepicker/createDateRangePicker.d.ts +8 -6
- package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
- package/dist/datepicker/createDateSegment.d.ts +10 -2
- package/dist/datepicker/createDateSegment.d.ts.map +1 -1
- package/dist/datepicker/createTimeField.d.ts +11 -5
- package/dist/datepicker/createTimeField.d.ts.map +1 -1
- package/dist/datepicker/createTimeSegment.d.ts +2 -2
- package/dist/datepicker/createTimeSegment.d.ts.map +1 -1
- package/dist/datepicker/index.d.ts +7 -6
- package/dist/datepicker/index.d.ts.map +1 -1
- package/dist/datepicker/index.js +2 -0
- package/dist/datepicker/index.jsx +2 -0
- package/dist/dialog/createDialog.d.ts +5 -5
- package/dist/dialog/createDialog.d.ts.map +1 -1
- package/dist/dialog/index.d.ts +2 -2
- package/dist/dialog/index.d.ts.map +1 -1
- package/dist/dialog/index.js +2 -0
- package/dist/dialog/index.jsx +2 -0
- package/dist/dialog/types.d.ts +4 -4
- package/dist/disclosure/createDisclosure.d.ts +5 -2
- package/dist/disclosure/createDisclosure.d.ts.map +1 -1
- package/dist/disclosure/createDisclosureGroup.d.ts +4 -4
- package/dist/disclosure/createDisclosureGroup.d.ts.map +1 -1
- package/dist/disclosure/index.d.ts +2 -2
- package/dist/disclosure/index.js +2 -0
- package/dist/disclosure/index.jsx +2 -0
- package/dist/dnd/createDrag.d.ts +2 -2
- package/dist/dnd/createDrag.d.ts.map +1 -1
- package/dist/dnd/createDraggableCollection.d.ts +2 -2
- package/dist/dnd/createDraggableItem.d.ts +3 -3
- package/dist/dnd/createDraggableItem.d.ts.map +1 -1
- package/dist/dnd/createDrop.d.ts +2 -2
- package/dist/dnd/createDrop.d.ts.map +1 -1
- package/dist/dnd/createDroppableCollection.d.ts +26 -6
- package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
- package/dist/dnd/createDroppableItem.d.ts +3 -3
- package/dist/dnd/index.d.ts +12 -12
- package/dist/dnd/index.d.ts.map +1 -1
- package/dist/dnd/index.js +2 -0
- package/dist/dnd/index.jsx +2 -0
- package/dist/dnd/types.d.ts +2 -2
- package/dist/dnd/types.d.ts.map +1 -1
- package/dist/dnd/utils.d.ts +2 -2
- package/dist/dnd/utils.d.ts.map +1 -1
- package/dist/focus/FocusScope.d.ts +1 -1
- package/dist/focus/FocusScope.d.ts.map +1 -1
- package/dist/focus/createAutoFocus.d.ts.map +1 -1
- package/dist/focus/createFocusRestore.d.ts.map +1 -1
- package/dist/focus/createVirtualFocus.d.ts +4 -4
- package/dist/focus/createVirtualFocus.d.ts.map +1 -1
- package/dist/focus/index.d.ts +4 -4
- package/dist/focus/index.d.ts.map +1 -1
- package/dist/focus/index.js +2 -0
- package/dist/focus/index.jsx +2 -0
- package/dist/form/createFormReset.d.ts +1 -1
- package/dist/form/createFormValidation.d.ts +3 -3
- package/dist/form/createFormValidation.d.ts.map +1 -1
- package/dist/form/index.d.ts +2 -2
- package/dist/form/index.d.ts.map +1 -1
- package/dist/form/index.js +3 -0
- package/dist/form/index.jsx +3 -0
- package/dist/grid/GridKeyboardDelegate.d.ts +5 -5
- package/dist/grid/createGrid.d.ts +3 -3
- package/dist/grid/createGridCell.d.ts +3 -3
- package/dist/grid/createGridRow.d.ts +3 -3
- package/dist/grid/index.d.ts +5 -5
- package/dist/grid/index.js +2 -0
- package/dist/grid/index.jsx +2 -0
- package/dist/grid/types.d.ts +8 -8
- package/dist/gridlist/createGridList.d.ts +12 -4
- package/dist/gridlist/createGridList.d.ts.map +1 -1
- package/dist/gridlist/createGridListItem.d.ts +4 -4
- package/dist/gridlist/createGridListItem.d.ts.map +1 -1
- package/dist/gridlist/createGridListSection.d.ts +15 -0
- package/dist/gridlist/createGridListSection.d.ts.map +1 -0
- package/dist/gridlist/createGridListSelectionCheckbox.d.ts +3 -3
- package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +1 -1
- package/dist/gridlist/index.d.ts +5 -4
- package/dist/gridlist/index.d.ts.map +1 -1
- package/dist/gridlist/index.js +2 -0
- package/dist/gridlist/index.jsx +2 -0
- package/dist/gridlist/types.d.ts +61 -7
- package/dist/gridlist/types.d.ts.map +1 -1
- package/dist/i18n/createCollator.d.ts.map +1 -1
- package/dist/i18n/createDateFormatter.d.ts.map +1 -1
- package/dist/i18n/createFilter.d.ts.map +1 -1
- package/dist/i18n/createNumberFormatter.d.ts +1 -1
- package/dist/i18n/createNumberFormatter.d.ts.map +1 -1
- package/dist/i18n/createStringFormatter.d.ts +2 -2
- package/dist/i18n/createStringFormatter.d.ts.map +1 -1
- package/dist/i18n/index.d.ts +8 -8
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/index.js +3 -0
- package/dist/i18n/index.jsx +3 -0
- package/dist/i18n/locale.d.ts +2 -2
- package/dist/i18n/locale.d.ts.map +1 -1
- package/dist/i18n/utils.d.ts.map +1 -1
- package/dist/index.d.ts +56 -51
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +71 -17119
- package/dist/index.jsx +71 -0
- package/dist/interactions/FocusableProvider.d.ts +2 -2
- package/dist/interactions/FocusableProvider.d.ts.map +1 -1
- package/dist/interactions/PressEvent.d.ts +13 -2
- package/dist/interactions/PressEvent.d.ts.map +1 -1
- package/dist/interactions/createFocus.d.ts +1 -1
- package/dist/interactions/createFocus.d.ts.map +1 -1
- package/dist/interactions/createFocusRing.d.ts +1 -1
- package/dist/interactions/createFocusRing.d.ts.map +1 -1
- package/dist/interactions/createFocusWithin.d.ts +1 -1
- package/dist/interactions/createFocusWithin.d.ts.map +1 -1
- package/dist/interactions/createFocusable.d.ts +3 -3
- package/dist/interactions/createFocusable.d.ts.map +1 -1
- package/dist/interactions/createHover.d.ts +5 -5
- package/dist/interactions/createHover.d.ts.map +1 -1
- package/dist/interactions/createInteractionModality.d.ts +3 -4
- package/dist/interactions/createInteractionModality.d.ts.map +1 -1
- package/dist/interactions/createKeyboard.d.ts +1 -1
- package/dist/interactions/createKeyboard.d.ts.map +1 -1
- package/dist/interactions/createLongPress.d.ts +5 -5
- package/dist/interactions/createMove.d.ts +5 -5
- package/dist/interactions/createMove.d.ts.map +1 -1
- package/dist/interactions/createPress.d.ts +4 -4
- package/dist/interactions/createPress.d.ts.map +1 -1
- package/dist/interactions/index.d.ts +12 -12
- package/dist/interactions/index.d.ts.map +1 -1
- package/dist/interactions/index.js +10 -0
- package/dist/interactions/index.jsx +10 -0
- package/dist/label/createField.d.ts +4 -4
- package/dist/label/createField.d.ts.map +1 -1
- package/dist/label/createLabel.d.ts +7 -7
- package/dist/label/createLabel.d.ts.map +1 -1
- package/dist/label/createLabels.d.ts +1 -1
- package/dist/label/createLabels.d.ts.map +1 -1
- package/dist/label/index.d.ts +5 -5
- package/dist/label/index.js +4 -0
- package/dist/label/index.jsx +4 -0
- package/dist/landmark/createLandmark.d.ts +5 -5
- package/dist/landmark/createLandmark.d.ts.map +1 -1
- package/dist/landmark/index.d.ts +1 -1
- package/dist/landmark/index.js +2 -0
- package/dist/landmark/index.jsx +2 -0
- package/dist/link/createLink.d.ts +14 -8
- package/dist/link/createLink.d.ts.map +1 -1
- package/dist/link/index.d.ts +1 -1
- package/dist/link/index.js +2 -0
- package/dist/link/index.jsx +2 -0
- package/dist/listbox/createListBox.d.ts +48 -6
- package/dist/listbox/createListBox.d.ts.map +1 -1
- package/dist/listbox/createOption.d.ts +27 -4
- package/dist/listbox/createOption.d.ts.map +1 -1
- package/dist/listbox/index.d.ts +2 -2
- package/dist/listbox/index.d.ts.map +1 -1
- package/dist/listbox/index.js +2 -0
- package/dist/listbox/index.jsx +2 -0
- package/dist/live-announcer/announce.d.ts +2 -2
- package/dist/live-announcer/announce.d.ts.map +1 -1
- package/dist/live-announcer/index.d.ts +1 -1
- package/dist/live-announcer/index.js +2 -0
- package/dist/live-announcer/index.jsx +2 -0
- package/dist/menu/createMenu.d.ts +14 -11
- package/dist/menu/createMenu.d.ts.map +1 -1
- package/dist/menu/createMenuItem.d.ts +25 -5
- package/dist/menu/createMenuItem.d.ts.map +1 -1
- package/dist/menu/createMenuTrigger.d.ts +4 -4
- package/dist/menu/index.d.ts +3 -3
- package/dist/menu/index.d.ts.map +1 -1
- package/dist/menu/index.js +2 -0
- package/dist/menu/index.jsx +2 -0
- package/dist/meter/createMeter.d.ts +6 -6
- package/dist/meter/createMeter.d.ts.map +1 -1
- package/dist/meter/index.d.ts +1 -1
- package/dist/meter/index.js +2 -0
- package/dist/meter/index.jsx +2 -0
- package/dist/numberfield/createNumberField.d.ts +9 -8
- package/dist/numberfield/createNumberField.d.ts.map +1 -1
- package/dist/numberfield/index.d.ts +1 -1
- package/dist/numberfield/index.js +2 -0
- package/dist/numberfield/index.jsx +2 -0
- package/dist/overlays/ariaHideOutside.d.ts.map +1 -1
- package/dist/overlays/createModal.d.ts +3 -3
- package/dist/overlays/createModal.d.ts.map +1 -1
- package/dist/overlays/createOverlay.d.ts +1 -1
- package/dist/overlays/createOverlay.d.ts.map +1 -1
- package/dist/overlays/createOverlayTrigger.d.ts +6 -6
- package/dist/overlays/index.d.ts +6 -6
- package/dist/overlays/index.d.ts.map +1 -1
- package/dist/overlays/index.js +4 -0
- package/dist/overlays/index.jsx +4 -0
- package/dist/popover/calculatePosition.d.ts +6 -4
- package/dist/popover/calculatePosition.d.ts.map +1 -1
- package/dist/popover/createOverlayPosition.d.ts +11 -3
- package/dist/popover/createOverlayPosition.d.ts.map +1 -1
- package/dist/popover/createPopover.d.ts +4 -4
- package/dist/popover/createPopover.d.ts.map +1 -1
- package/dist/popover/index.d.ts +3 -3
- package/dist/popover/index.js +2 -0
- package/dist/popover/index.jsx +2 -0
- package/dist/progress/createProgressBar.d.ts +7 -5
- package/dist/progress/createProgressBar.d.ts.map +1 -1
- package/dist/progress/index.d.ts +1 -1
- package/dist/progress/index.js +2 -0
- package/dist/progress/index.jsx +2 -0
- package/dist/radio/createRadio.d.ts +9 -7
- package/dist/radio/createRadio.d.ts.map +1 -1
- package/dist/radio/createRadioGroup.d.ts +10 -10
- package/dist/radio/createRadioGroup.d.ts.map +1 -1
- package/dist/radio/createRadioGroupState.d.ts +3 -3
- package/dist/radio/createRadioGroupState.d.ts.map +1 -1
- package/dist/radio/index.d.ts +3 -3
- package/dist/radio/index.d.ts.map +1 -1
- package/dist/radio/index.js +2 -0
- package/dist/radio/index.jsx +2 -0
- package/dist/searchfield/createSearchField.d.ts +7 -7
- package/dist/searchfield/createSearchField.d.ts.map +1 -1
- package/dist/searchfield/index.d.ts +2 -2
- package/dist/searchfield/index.js +2 -0
- package/dist/searchfield/index.jsx +2 -0
- package/dist/select/createHiddenSelect.d.ts +4 -4
- package/dist/select/createHiddenSelect.d.ts.map +1 -1
- package/dist/select/createSelect.d.ts +14 -6
- package/dist/select/createSelect.d.ts.map +1 -1
- package/dist/select/index.d.ts +2 -2
- package/dist/select/index.d.ts.map +1 -1
- package/dist/select/index.js +2 -0
- package/dist/select/index.jsx +2 -0
- package/dist/selection/DOMLayoutDelegate.d.ts +58 -0
- package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -0
- package/dist/selection/ListKeyboardDelegate.d.ts +95 -0
- package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -0
- package/dist/selection/constants.d.ts +15 -0
- package/dist/selection/constants.d.ts.map +1 -0
- package/dist/selection/createCollectionRowInteraction.d.ts +13 -0
- package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -0
- package/dist/selection/createScrollIntoViewOnFocus.d.ts +31 -0
- package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -0
- package/dist/selection/createSelectableCollection.d.ts +69 -0
- package/dist/selection/createSelectableCollection.d.ts.map +1 -0
- package/dist/selection/createSelectableItem.d.ts +154 -0
- package/dist/selection/createSelectableItem.d.ts.map +1 -0
- package/dist/selection/createSelectableList.d.ts +43 -0
- package/dist/selection/createSelectableList.d.ts.map +1 -0
- package/dist/selection/createTypeSelect.d.ts +2 -2
- package/dist/selection/createTypeSelect.d.ts.map +1 -1
- package/dist/selection/index.d.ts +10 -1
- package/dist/selection/index.d.ts.map +1 -1
- package/dist/selection/index.js +4 -0
- package/dist/selection/index.jsx +4 -0
- package/dist/selection/selectItem.d.ts +29 -0
- package/dist/selection/selectItem.d.ts.map +1 -0
- package/dist/selection/utils.d.ts +40 -0
- package/dist/selection/utils.d.ts.map +1 -0
- package/dist/separator/createSeparator.d.ts +9 -5
- package/dist/separator/createSeparator.d.ts.map +1 -1
- package/dist/separator/index.d.ts +1 -1
- package/dist/separator/index.js +2 -0
- package/dist/separator/index.jsx +2 -0
- package/dist/slider/createSlider.d.ts +11 -7
- package/dist/slider/createSlider.d.ts.map +1 -1
- package/dist/slider/index.d.ts +2 -2
- package/dist/slider/index.js +2 -0
- package/dist/slider/index.jsx +2 -0
- package/dist/ssr/index.d.ts +18 -1
- package/dist/ssr/index.d.ts.map +1 -1
- package/dist/ssr/index.js +299 -0
- package/dist/ssr/index.js.map +1 -0
- package/dist/ssr/index.jsx +292 -0
- package/dist/ssr/index.jsx.map +1 -0
- package/dist/steplist/createStepList.d.ts +36 -0
- package/dist/steplist/createStepList.d.ts.map +1 -0
- package/dist/steplist/index.d.ts +2 -0
- package/dist/steplist/index.d.ts.map +1 -0
- package/dist/steplist/index.js +2 -0
- package/dist/steplist/index.jsx +2 -0
- package/dist/switch/createSwitch.d.ts +10 -4
- package/dist/switch/createSwitch.d.ts.map +1 -1
- package/dist/switch/index.d.ts +1 -1
- package/dist/switch/index.js +2 -0
- package/dist/switch/index.jsx +2 -0
- package/dist/table/createTable.d.ts +3 -3
- package/dist/table/createTable.d.ts.map +1 -1
- package/dist/table/createTableCell.d.ts +3 -3
- package/dist/table/createTableCell.d.ts.map +1 -1
- package/dist/table/createTableColumnHeader.d.ts +3 -3
- package/dist/table/createTableColumnHeader.d.ts.map +1 -1
- package/dist/table/createTableColumnResize.d.ts +41 -0
- package/dist/table/createTableColumnResize.d.ts.map +1 -0
- package/dist/table/createTableHeaderRow.d.ts +3 -3
- package/dist/table/createTableRow.d.ts +4 -4
- package/dist/table/createTableRow.d.ts.map +1 -1
- package/dist/table/createTableRowGroup.d.ts +2 -2
- package/dist/table/createTableRowGroup.d.ts.map +1 -1
- package/dist/table/createTableSelectAllCheckbox.d.ts +3 -3
- package/dist/table/createTableSelectionCheckbox.d.ts +3 -3
- package/dist/table/index.d.ts +11 -9
- package/dist/table/index.d.ts.map +1 -1
- package/dist/table/index.js +2 -0
- package/dist/table/index.jsx +2 -0
- package/dist/table/types.d.ts +41 -7
- package/dist/table/types.d.ts.map +1 -1
- package/dist/tabs/createTabs.d.ts +32 -28
- package/dist/tabs/createTabs.d.ts.map +1 -1
- package/dist/tabs/index.d.ts +1 -1
- package/dist/tabs/index.js +2 -0
- package/dist/tabs/index.jsx +2 -0
- package/dist/tag/createTag.d.ts +4 -2
- package/dist/tag/createTag.d.ts.map +1 -1
- package/dist/tag/createTagGroup.d.ts +5 -5
- package/dist/tag/createTagGroup.d.ts.map +1 -1
- package/dist/tag/index.d.ts +2 -2
- package/dist/tag/index.d.ts.map +1 -1
- package/dist/tag/index.js +2 -0
- package/dist/tag/index.jsx +2 -0
- package/dist/textfield/createTextField.d.ts +17 -11
- package/dist/textfield/createTextField.d.ts.map +1 -1
- package/dist/textfield/index.d.ts +1 -1
- package/dist/textfield/index.d.ts.map +1 -1
- package/dist/textfield/index.js +2 -0
- package/dist/textfield/index.jsx +2 -0
- package/dist/toast/createToast.d.ts +2 -2
- package/dist/toast/createToast.d.ts.map +1 -1
- package/dist/toast/createToastRegion.d.ts +5 -3
- package/dist/toast/createToastRegion.d.ts.map +1 -1
- package/dist/toast/index.d.ts +2 -2
- package/dist/toast/index.d.ts.map +1 -1
- package/dist/toast/index.js +2 -0
- package/dist/toast/index.jsx +2 -0
- package/dist/toggle/createToggle.d.ts +13 -9
- package/dist/toggle/createToggle.d.ts.map +1 -1
- package/dist/toggle/createToggleState.d.ts +2 -2
- package/dist/toggle/createToggleState.d.ts.map +1 -1
- package/dist/toggle/index.d.ts +4 -4
- package/dist/toggle/index.d.ts.map +1 -1
- package/dist/toggle/index.js +3 -0
- package/dist/toggle/index.jsx +3 -0
- package/dist/toolbar/createToolbar.d.ts +9 -9
- package/dist/toolbar/createToolbar.d.ts.map +1 -1
- package/dist/toolbar/index.d.ts +1 -1
- package/dist/toolbar/index.d.ts.map +1 -1
- package/dist/toolbar/index.js +2 -0
- package/dist/toolbar/index.jsx +2 -0
- package/dist/tooltip/createTooltip.d.ts +5 -5
- package/dist/tooltip/createTooltip.d.ts.map +1 -1
- package/dist/tooltip/createTooltipTrigger.d.ts +10 -5
- package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
- package/dist/tooltip/index.d.ts +2 -2
- package/dist/tooltip/index.js +2 -0
- package/dist/tooltip/index.jsx +2 -0
- package/dist/tree/createTree.d.ts +8 -4
- package/dist/tree/createTree.d.ts.map +1 -1
- package/dist/tree/createTreeItem.d.ts +4 -4
- package/dist/tree/createTreeItem.d.ts.map +1 -1
- package/dist/tree/createTreeSelectionCheckbox.d.ts +3 -3
- package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
- package/dist/tree/index.d.ts +4 -4
- package/dist/tree/index.js +2 -0
- package/dist/tree/index.jsx +2 -0
- package/dist/tree/types.d.ts +20 -6
- package/dist/tree/types.d.ts.map +1 -1
- package/dist/utils/animation.d.ts +60 -0
- package/dist/utils/animation.d.ts.map +1 -0
- package/dist/utils/createDescription.d.ts +2 -2
- package/dist/utils/createDescription.d.ts.map +1 -1
- package/dist/utils/dom.d.ts +48 -2
- package/dist/utils/dom.d.ts.map +1 -1
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/focus.d.ts +1 -1
- package/dist/utils/focus.d.ts.map +1 -1
- package/dist/utils/geometry.d.ts.map +1 -1
- package/dist/utils/index.d.ts +15 -12
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +5 -0
- package/dist/utils/index.jsx +5 -0
- package/dist/utils/keyboard.d.ts +17 -0
- package/dist/utils/keyboard.d.ts.map +1 -0
- package/dist/utils/mergeProps.d.ts.map +1 -1
- package/dist/utils/reactivity.d.ts +1 -1
- package/dist/utils/scrollIntoView.d.ts +30 -0
- package/dist/utils/scrollIntoView.d.ts.map +1 -0
- package/dist/visually-hidden/createVisuallyHidden.d.ts +2 -2
- package/dist/visually-hidden/createVisuallyHidden.d.ts.map +1 -1
- package/dist/visually-hidden/index.d.ts +1 -1
- package/dist/visually-hidden/index.js +2 -0
- package/dist/visually-hidden/index.jsx +2 -0
- package/package.json +334 -33
- package/src/actiongroup/createActionGroup.ts +101 -91
- package/src/actiongroup/index.ts +1 -1
- package/src/autocomplete/createAutocomplete.ts +177 -148
- package/src/autocomplete/index.ts +1 -1
- package/src/breadcrumbs/createBreadcrumbs.ts +33 -42
- package/src/breadcrumbs/index.ts +1 -1
- package/src/button/createButton.ts +102 -73
- package/src/button/createToggleButton.ts +10 -10
- package/src/button/createToggleButtonGroup.ts +25 -32
- package/src/button/index.ts +6 -9
- package/src/button/types.ts +18 -12
- package/src/calendar/createCalendar.ts +64 -29
- package/src/calendar/createCalendarCell.ts +115 -46
- package/src/calendar/createCalendarGrid.ts +97 -41
- package/src/calendar/createCalendarMonthPicker.ts +105 -0
- package/src/calendar/createCalendarYearPicker.ts +144 -0
- package/src/calendar/createRangeCalendar.ts +68 -31
- package/src/calendar/createRangeCalendarCell.ts +92 -31
- package/src/calendar/index.ts +21 -8
- package/src/calendar/intl/index.ts +210 -0
- package/src/calendar/utils.ts +231 -0
- package/src/checkbox/createCheckbox.ts +23 -21
- package/src/checkbox/createCheckboxGroup.ts +68 -44
- package/src/checkbox/createCheckboxGroupItem.ts +26 -41
- package/src/checkbox/createCheckboxGroupState.ts +3 -22
- package/src/checkbox/index.ts +8 -10
- package/src/collections/index.ts +33 -29
- package/src/color/createColorArea.ts +232 -154
- package/src/color/createColorField.ts +107 -58
- package/src/color/createColorSlider.ts +231 -73
- package/src/color/createColorSwatch.ts +38 -13
- package/src/color/createColorWheel.ts +208 -83
- package/src/color/index.ts +6 -6
- package/src/color/types.ts +98 -16
- package/src/combobox/createComboBox.ts +157 -100
- package/src/combobox/index.ts +1 -1
- package/src/combobox/intl/index.ts +5 -5
- package/src/datepicker/createDateField.ts +192 -39
- package/src/datepicker/createDatePicker.ts +260 -67
- package/src/datepicker/createDatePickerGroup.ts +149 -0
- package/src/datepicker/createDateRangePicker.ts +105 -57
- package/src/datepicker/createDateSegment.ts +188 -96
- package/src/datepicker/createTimeField.ts +38 -34
- package/src/datepicker/createTimeSegment.ts +67 -85
- package/src/datepicker/index.ts +13 -14
- package/src/dialog/createDialog.ts +45 -38
- package/src/dialog/index.ts +2 -2
- package/src/dialog/types.ts +4 -4
- package/src/disclosure/createDisclosure.ts +138 -33
- package/src/disclosure/createDisclosureGroup.ts +8 -21
- package/src/disclosure/index.ts +2 -2
- package/src/dnd/createDrag.ts +19 -25
- package/src/dnd/createDraggableCollection.ts +4 -4
- package/src/dnd/createDraggableItem.ts +20 -19
- package/src/dnd/createDrop.ts +42 -51
- package/src/dnd/createDroppableCollection.ts +293 -173
- package/src/dnd/createDroppableItem.ts +34 -34
- package/src/dnd/index.ts +23 -12
- package/src/dnd/types.ts +4 -7
- package/src/dnd/utils.ts +58 -47
- package/src/focus/FocusScope.tsx +301 -176
- package/src/focus/createAutoFocus.ts +4 -20
- package/src/focus/createFocusRestore.ts +15 -28
- package/src/focus/createVirtualFocus.ts +20 -36
- package/src/focus/index.ts +4 -8
- package/src/form/createFormReset.ts +4 -4
- package/src/form/createFormValidation.ts +23 -39
- package/src/form/index.ts +2 -5
- package/src/grid/GridKeyboardDelegate.ts +30 -30
- package/src/grid/createGrid.ts +36 -36
- package/src/grid/createGridCell.ts +18 -18
- package/src/grid/createGridRow.ts +14 -14
- package/src/grid/index.ts +5 -5
- package/src/grid/types.ts +8 -8
- package/src/gridlist/createGridList.ts +172 -64
- package/src/gridlist/createGridListItem.ts +98 -121
- package/src/gridlist/createGridListSection.ts +54 -0
- package/src/gridlist/createGridListSelectionCheckbox.ts +12 -9
- package/src/gridlist/index.ts +7 -4
- package/src/gridlist/types.ts +58 -7
- package/src/i18n/createCollator.ts +5 -18
- package/src/i18n/createDateFormatter.ts +5 -13
- package/src/i18n/createFilter.ts +11 -24
- package/src/i18n/createNumberFormatter.ts +4 -6
- package/src/i18n/createStringFormatter.ts +19 -15
- package/src/i18n/index.ts +8 -11
- package/src/i18n/locale.tsx +15 -40
- package/src/i18n/utils.ts +35 -39
- package/src/index.ts +111 -172
- package/src/interactions/FocusableProvider.tsx +3 -7
- package/src/interactions/PressEvent.ts +18 -4
- package/src/interactions/createFocus.ts +12 -8
- package/src/interactions/createFocusRing.ts +21 -19
- package/src/interactions/createFocusWithin.ts +20 -13
- package/src/interactions/createFocusable.ts +15 -16
- package/src/interactions/createHover.ts +70 -55
- package/src/interactions/createInteractionModality.ts +96 -94
- package/src/interactions/createKeyboard.ts +12 -2
- package/src/interactions/createLongPress.ts +23 -23
- package/src/interactions/createMove.ts +72 -62
- package/src/interactions/createPress.ts +192 -92
- package/src/interactions/index.ts +24 -16
- package/src/label/createField.ts +18 -19
- package/src/label/createLabel.ts +18 -30
- package/src/label/createLabels.ts +8 -12
- package/src/label/index.ts +5 -5
- package/src/landmark/createLandmark.ts +30 -51
- package/src/landmark/index.ts +1 -1
- package/src/link/createLink.ts +83 -56
- package/src/link/index.ts +1 -1
- package/src/listbox/createListBox.ts +198 -66
- package/src/listbox/createOption.ts +112 -71
- package/src/listbox/index.ts +2 -6
- package/src/live-announcer/announce.ts +44 -71
- package/src/live-announcer/index.ts +1 -1
- package/src/menu/createMenu.ts +171 -65
- package/src/menu/createMenuItem.ts +315 -51
- package/src/menu/createMenuTrigger.ts +15 -15
- package/src/menu/index.ts +3 -12
- package/src/meter/createMeter.ts +7 -15
- package/src/meter/index.ts +1 -1
- package/src/numberfield/createNumberField.ts +205 -80
- package/src/numberfield/index.ts +1 -1
- package/src/overlays/ariaHideOutside.ts +14 -10
- package/src/overlays/createInteractOutside.ts +21 -18
- package/src/overlays/createModal.tsx +17 -17
- package/src/overlays/createOverlay.ts +38 -8
- package/src/overlays/createOverlayTrigger.ts +16 -16
- package/src/overlays/createPreventScroll.ts +46 -24
- package/src/overlays/index.ts +6 -17
- package/src/popover/calculatePosition.ts +134 -124
- package/src/popover/createOverlayPosition.ts +55 -40
- package/src/popover/createPopover.ts +42 -17
- package/src/popover/index.ts +3 -3
- package/src/progress/createProgressBar.ts +31 -32
- package/src/progress/index.ts +1 -1
- package/src/radio/createRadio.ts +114 -75
- package/src/radio/createRadioGroup.ts +83 -77
- package/src/radio/createRadioGroupState.ts +7 -31
- package/src/radio/index.ts +3 -8
- package/src/searchfield/createSearchField.ts +57 -29
- package/src/searchfield/index.ts +2 -2
- package/src/select/createHiddenSelect.tsx +57 -44
- package/src/select/createSelect.ts +146 -73
- package/src/select/index.ts +2 -7
- package/src/selection/DOMLayoutDelegate.ts +102 -0
- package/src/selection/ListKeyboardDelegate.ts +398 -0
- package/src/selection/constants.ts +16 -0
- package/src/selection/createCollectionRowInteraction.ts +209 -0
- package/src/selection/createScrollIntoViewOnFocus.ts +65 -0
- package/src/selection/createSelectableCollection.ts +645 -0
- package/src/selection/createSelectableItem.ts +498 -0
- package/src/selection/createSelectableList.ts +93 -0
- package/src/selection/createTypeSelect.ts +120 -59
- package/src/selection/index.ts +32 -1
- package/src/selection/selectItem.ts +80 -0
- package/src/selection/utils.ts +82 -0
- package/src/separator/createSeparator.ts +20 -25
- package/src/separator/index.ts +1 -1
- package/src/slider/createSlider.ts +128 -112
- package/src/slider/index.ts +2 -2
- package/src/ssr/index.tsx +38 -46
- package/src/steplist/createStepList.ts +106 -0
- package/src/steplist/index.ts +8 -0
- package/src/switch/createSwitch.ts +19 -14
- package/src/switch/index.ts +1 -1
- package/src/table/createTable.ts +192 -95
- package/src/table/createTableCell.ts +17 -16
- package/src/table/createTableColumnHeader.ts +67 -20
- package/src/table/createTableColumnResize.ts +256 -0
- package/src/table/createTableHeaderRow.ts +7 -7
- package/src/table/createTableRow.ts +206 -91
- package/src/table/createTableRowGroup.ts +5 -7
- package/src/table/createTableSelectAllCheckbox.ts +14 -14
- package/src/table/createTableSelectionCheckbox.ts +8 -8
- package/src/table/index.ts +14 -9
- package/src/table/types.ts +43 -7
- package/src/tabs/createTabs.ts +123 -111
- package/src/tabs/index.ts +1 -1
- package/src/tag/createTag.ts +57 -50
- package/src/tag/createTagGroup.ts +47 -41
- package/src/tag/index.ts +2 -6
- package/src/textfield/createTextField.ts +67 -35
- package/src/textfield/index.ts +1 -5
- package/src/toast/createToast.ts +29 -26
- package/src/toast/createToastRegion.ts +169 -26
- package/src/toast/index.ts +2 -6
- package/src/toggle/createToggle.ts +115 -53
- package/src/toggle/createToggleState.ts +2 -10
- package/src/toggle/index.ts +4 -5
- package/src/toolbar/createToolbar.ts +214 -230
- package/src/toolbar/index.ts +1 -1
- package/src/tooltip/createTooltip.ts +11 -24
- package/src/tooltip/createTooltipTrigger.ts +61 -49
- package/src/tooltip/index.ts +2 -2
- package/src/tree/createTree.ts +128 -72
- package/src/tree/createTreeItem.ts +120 -135
- package/src/tree/createTreeSelectionCheckbox.ts +11 -8
- package/src/tree/index.ts +4 -4
- package/src/tree/types.ts +20 -6
- package/src/utils/animation.ts +151 -0
- package/src/utils/createDescription.ts +6 -23
- package/src/utils/dom.ts +265 -68
- package/src/utils/env.ts +9 -11
- package/src/utils/events.ts +7 -7
- package/src/utils/filterDOMProps.ts +49 -49
- package/src/utils/focus.ts +60 -68
- package/src/utils/geometry.ts +1 -4
- package/src/utils/globalListeners.ts +9 -9
- package/src/utils/index.ts +20 -22
- package/src/utils/keyboard.ts +25 -0
- package/src/utils/mergeProps.ts +49 -15
- package/src/utils/platform.ts +2 -2
- package/src/utils/reactivity.ts +3 -3
- package/src/utils/scrollIntoView.ts +181 -0
- package/src/utils/textSelection.ts +16 -16
- package/src/visually-hidden/createVisuallyHidden.ts +16 -28
- package/src/visually-hidden/index.ts +1 -1
- package/dist/i18n/NumberFormatter.d.ts +0 -43
- package/dist/i18n/NumberFormatter.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.ssr.js +0 -17082
- package/dist/index.ssr.js.map +0 -1
- package/src/i18n/NumberFormatter.ts +0 -266
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { i as access } from "./env.js";
|
|
2
|
+
import { createId } from "../ssr/index.js";
|
|
3
|
+
import { createContext, createEffect, createSignal, onCleanup, useContext } from "solid-js";
|
|
4
|
+
import { Portal, createComponent, getNextElement, insert, isServer, runHydrationEvents, spread, template } from "solid-js/web";
|
|
5
|
+
//#region src/overlays/createOverlayTrigger.ts
|
|
6
|
+
/**
|
|
7
|
+
* Handles the behavior and accessibility for an overlay trigger.
|
|
8
|
+
* Based on @react-aria/overlays useOverlayTrigger.
|
|
9
|
+
*/
|
|
10
|
+
const onCloseMap = /* @__PURE__ */ new WeakMap();
|
|
11
|
+
/**
|
|
12
|
+
* Handles the behavior and accessibility for an overlay trigger, e.g. a button
|
|
13
|
+
* that opens a popover, menu, or other overlay that is positioned relative to the trigger.
|
|
14
|
+
*/
|
|
15
|
+
function createOverlayTrigger(props, state, ref) {
|
|
16
|
+
const propsAccessor = () => access(props);
|
|
17
|
+
const overlayId = createId();
|
|
18
|
+
createEffect(() => {
|
|
19
|
+
const element = ref?.();
|
|
20
|
+
if (element) onCloseMap.set(element, state.close);
|
|
21
|
+
});
|
|
22
|
+
const getAriaHasPopup = () => {
|
|
23
|
+
const type = propsAccessor().type;
|
|
24
|
+
if (type === "menu") return true;
|
|
25
|
+
else if (type === "listbox") return "listbox";
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
triggerProps: {
|
|
29
|
+
get "aria-haspopup"() {
|
|
30
|
+
return getAriaHasPopup();
|
|
31
|
+
},
|
|
32
|
+
get "aria-expanded"() {
|
|
33
|
+
return state.isOpen();
|
|
34
|
+
},
|
|
35
|
+
get "aria-controls"() {
|
|
36
|
+
return state.isOpen() ? overlayId : void 0;
|
|
37
|
+
},
|
|
38
|
+
onPress: state.toggle
|
|
39
|
+
},
|
|
40
|
+
overlayProps: { id: overlayId }
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region src/overlays/createModal.tsx
|
|
45
|
+
/**
|
|
46
|
+
* Modal context and hooks for managing modal accessibility.
|
|
47
|
+
* Based on @react-aria/overlays useModal.
|
|
48
|
+
*/
|
|
49
|
+
var _tmpl$ = /*#__PURE__*/ template(`<div data-overlay-container>`);
|
|
50
|
+
const ModalContext = createContext(null);
|
|
51
|
+
const PortalContext = createContext({});
|
|
52
|
+
/**
|
|
53
|
+
* Each ModalProvider tracks how many modals are open in its subtree. On mount, the modals
|
|
54
|
+
* trigger `addModal` to increment the count, and trigger `removeModal` on unmount to decrement it.
|
|
55
|
+
* This is done recursively so that all parent providers are incremented and decremented.
|
|
56
|
+
* If the modal count is greater than zero, we add `aria-hidden` to this provider to hide its
|
|
57
|
+
* subtree from screen readers. This is done using SolidJS context in order to account for things
|
|
58
|
+
* like portals, which can cause the component tree and the DOM tree to differ significantly in structure.
|
|
59
|
+
*/
|
|
60
|
+
const ModalProvider = (props) => {
|
|
61
|
+
const parent = useContext(ModalContext);
|
|
62
|
+
const [modalCount, setModalCount] = createSignal(0);
|
|
63
|
+
const context = {
|
|
64
|
+
parent,
|
|
65
|
+
modalCount,
|
|
66
|
+
addModal() {
|
|
67
|
+
setModalCount((count) => count + 1);
|
|
68
|
+
if (parent) parent.addModal();
|
|
69
|
+
},
|
|
70
|
+
removeModal() {
|
|
71
|
+
setModalCount((count) => count - 1);
|
|
72
|
+
if (parent) parent.removeModal();
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
return createComponent(ModalContext.Provider, {
|
|
76
|
+
value: context,
|
|
77
|
+
get children() {
|
|
78
|
+
return props.children;
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Sets the portal container for overlays rendered by descendants.
|
|
84
|
+
*/
|
|
85
|
+
const UNSAFE_PortalProvider = (props) => {
|
|
86
|
+
const parent = useUNSAFE_PortalContext();
|
|
87
|
+
return createComponent(PortalContext.Provider, {
|
|
88
|
+
get value() {
|
|
89
|
+
return { getContainer: props.getContainer === null ? void 0 : props.getContainer ?? parent.getContainer };
|
|
90
|
+
},
|
|
91
|
+
get children() {
|
|
92
|
+
return props.children;
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Returns the portal container configuration inherited from the nearest provider.
|
|
98
|
+
*/
|
|
99
|
+
function useUNSAFE_PortalContext() {
|
|
100
|
+
return useContext(PortalContext) ?? {};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Used to determine if the tree should be aria-hidden based on how many
|
|
104
|
+
* modals are open.
|
|
105
|
+
*/
|
|
106
|
+
function useModalProvider() {
|
|
107
|
+
const context = useContext(ModalContext);
|
|
108
|
+
return { modalProviderProps: { get "aria-hidden"() {
|
|
109
|
+
return context && context.modalCount() > 0 ? true : void 0;
|
|
110
|
+
} } };
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Creates a root node that will be aria-hidden if there are other modals open.
|
|
114
|
+
*/
|
|
115
|
+
const OverlayContainerDOM = (props) => {
|
|
116
|
+
const { modalProviderProps } = useModalProvider();
|
|
117
|
+
return (() => {
|
|
118
|
+
var _el$ = getNextElement(_tmpl$);
|
|
119
|
+
spread(_el$, modalProviderProps, false, true);
|
|
120
|
+
insert(_el$, () => props.children);
|
|
121
|
+
runHydrationEvents();
|
|
122
|
+
return _el$;
|
|
123
|
+
})();
|
|
124
|
+
};
|
|
125
|
+
/**
|
|
126
|
+
* An OverlayProvider acts as a container for the top-level application.
|
|
127
|
+
* Any application that uses modal dialogs or other overlays should
|
|
128
|
+
* be wrapped in a `<OverlayProvider>`. This is used to ensure that
|
|
129
|
+
* the main content of the application is hidden from screen readers
|
|
130
|
+
* if a modal or other overlay is opened. Only the top-most modal or
|
|
131
|
+
* overlay should be accessible at once.
|
|
132
|
+
*/
|
|
133
|
+
const OverlayProvider = (props) => {
|
|
134
|
+
return createComponent(ModalProvider, { get children() {
|
|
135
|
+
return createComponent(OverlayContainerDOM, { get children() {
|
|
136
|
+
return props.children;
|
|
137
|
+
} });
|
|
138
|
+
} });
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* A container for overlays like modals and popovers. Renders the overlay
|
|
142
|
+
* into a Portal which is placed at the end of the document body.
|
|
143
|
+
* Also ensures that the overlay is hidden from screen readers if a
|
|
144
|
+
* nested modal is opened. Only the top-most modal or overlay should
|
|
145
|
+
* be accessible at once.
|
|
146
|
+
*/
|
|
147
|
+
const OverlayContainer = (props) => {
|
|
148
|
+
if (isServer) return null;
|
|
149
|
+
const portalContext = useUNSAFE_PortalContext();
|
|
150
|
+
const portalContainer = () => props.portalContainer ?? portalContext.getContainer?.() ?? document.body;
|
|
151
|
+
createEffect(() => {
|
|
152
|
+
if (portalContainer()?.closest("[data-overlay-container]")) throw new Error("An OverlayContainer must not be inside another container. Please change the portalContainer prop.");
|
|
153
|
+
});
|
|
154
|
+
return createComponent(Portal, {
|
|
155
|
+
get mount() {
|
|
156
|
+
return portalContainer();
|
|
157
|
+
},
|
|
158
|
+
get children() {
|
|
159
|
+
return createComponent(OverlayProvider, { get children() {
|
|
160
|
+
return props.children;
|
|
161
|
+
} });
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* Hides content outside the current `<OverlayContainer>` from screen readers
|
|
167
|
+
* on mount and restores it on unmount. Typically used by modal dialogs and
|
|
168
|
+
* other types of overlays to ensure that only the top-most modal is
|
|
169
|
+
* accessible at once.
|
|
170
|
+
*/
|
|
171
|
+
function createModal(options) {
|
|
172
|
+
const context = useContext(ModalContext);
|
|
173
|
+
if (!context) throw new Error("Modal is not contained within a provider");
|
|
174
|
+
createEffect(() => {
|
|
175
|
+
if (options?.isDisabled || !context.parent) return;
|
|
176
|
+
context.parent.addModal();
|
|
177
|
+
onCleanup(() => {
|
|
178
|
+
if (context.parent) context.parent.removeModal();
|
|
179
|
+
});
|
|
180
|
+
});
|
|
181
|
+
return { modalProps: { "data-ismodal": !options?.isDisabled } };
|
|
182
|
+
}
|
|
183
|
+
//#endregion
|
|
184
|
+
export { createModal as a, createOverlayTrigger as c, UNSAFE_PortalProvider as i, onCloseMap as l, OverlayContainer as n, useModalProvider as o, OverlayProvider as r, useUNSAFE_PortalContext as s, ModalProvider as t };
|
|
185
|
+
|
|
186
|
+
//# sourceMappingURL=overlays.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlays.js","names":["createContext","createSignal","useContext","createEffect","onCleanup","JSX","Accessor","ParentComponent","Portal","isServer","ModalProviderProps","children","Element","PortalProviderProps","getContainer","PortalProviderContextValue","ModalContext","parent","modalCount","addModal","removeModal","PortalContext","ModalProvider","props","setModalCount","context","count","_$createComponent","Provider","value","UNSAFE_PortalProvider","useUNSAFE_PortalContext","undefined","ModalProviderAria","modalProviderProps","useModalProvider","aria-hidden","OverlayContainerDOM","_el$","_$getNextElement","_tmpl$","_$spread","_$insert","_$runHydrationEvents","OverlayProvider","OverlayContainerProps","portalContainer","OverlayContainer","portalContext","document","body","container","closest","Error","mount","AriaModalOptions","isDisabled","ModalAria","modalProps","createModal","options"],"sources":["../../src/overlays/createOverlayTrigger.ts","../../src/overlays/createModal.tsx"],"sourcesContent":["/**\n * Handles the behavior and accessibility for an overlay trigger.\n * Based on @react-aria/overlays useOverlayTrigger.\n */\n\nimport { createEffect } from \"solid-js\";\nimport type { OverlayTriggerState } from \"@proyecto-viviana/solid-stately\";\nimport { createId } from \"../ssr\";\nimport { access, type MaybeAccessor } from \"../utils\";\n\nexport interface OverlayTriggerProps {\n /** Type of overlay that is opened by the trigger. */\n type: \"dialog\" | \"menu\" | \"listbox\" | \"tree\" | \"grid\";\n}\n\nexport interface OverlayTriggerAria {\n /** Props for the trigger element. */\n triggerProps: {\n \"aria-haspopup\"?: boolean | \"listbox\";\n \"aria-expanded\": boolean;\n \"aria-controls\"?: string;\n onPress: () => void;\n };\n /** Props for the overlay container element. */\n overlayProps: {\n id: string;\n };\n}\n\n// Map for storing close functions, used by useCloseOnScroll\nexport const onCloseMap = new WeakMap<Element, () => void>();\n\n/**\n * Handles the behavior and accessibility for an overlay trigger, e.g. a button\n * that opens a popover, menu, or other overlay that is positioned relative to the trigger.\n */\nexport function createOverlayTrigger(\n props: MaybeAccessor<OverlayTriggerProps>,\n state: OverlayTriggerState,\n ref?: () => Element | null,\n): OverlayTriggerAria {\n const propsAccessor = () => access(props);\n const overlayId = createId();\n\n // Backward compatibility. Share state close function with useOverlayPosition so it can close on scroll\n // without forcing users to pass onClose.\n createEffect(() => {\n const element = ref?.();\n if (element) {\n onCloseMap.set(element, state.close);\n }\n });\n\n // Aria 1.1 supports multiple values for aria-haspopup other than just menus.\n // https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup\n // However, we only add it for menus for now because screen readers often\n // announce it as a menu even for other values.\n const getAriaHasPopup = (): boolean | \"listbox\" | undefined => {\n const type = propsAccessor().type;\n if (type === \"menu\") {\n return true;\n } else if (type === \"listbox\") {\n return \"listbox\";\n }\n return undefined;\n };\n\n return {\n triggerProps: {\n get \"aria-haspopup\"() {\n return getAriaHasPopup();\n },\n get \"aria-expanded\"() {\n return state.isOpen();\n },\n get \"aria-controls\"() {\n return state.isOpen() ? overlayId : undefined;\n },\n onPress: state.toggle,\n },\n overlayProps: {\n id: overlayId,\n },\n };\n}\n","/**\n * Modal context and hooks for managing modal accessibility.\n * Based on @react-aria/overlays useModal.\n */\n\nimport {\n createContext,\n createSignal,\n useContext,\n createEffect,\n onCleanup,\n type JSX,\n type Accessor,\n type ParentComponent,\n} from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nimport { isServer } from \"solid-js/web\";\n\nexport interface ModalProviderProps {\n children: JSX.Element;\n}\n\nexport interface PortalProviderProps {\n /** Returns the element where overlays should portal. Pass null to clear inherited context. */\n getContainer?: (() => Element | null) | null;\n children: JSX.Element;\n}\n\nexport interface PortalProviderContextValue {\n getContainer?: () => Element | null;\n}\n\ninterface ModalContext {\n parent: ModalContext | null;\n modalCount: Accessor<number>;\n addModal: () => void;\n removeModal: () => void;\n}\n\nconst ModalContext = createContext<ModalContext | null>(null);\nconst PortalContext = createContext<PortalProviderContextValue>({});\n\n/**\n * Each ModalProvider tracks how many modals are open in its subtree. On mount, the modals\n * trigger `addModal` to increment the count, and trigger `removeModal` on unmount to decrement it.\n * This is done recursively so that all parent providers are incremented and decremented.\n * If the modal count is greater than zero, we add `aria-hidden` to this provider to hide its\n * subtree from screen readers. This is done using SolidJS context in order to account for things\n * like portals, which can cause the component tree and the DOM tree to differ significantly in structure.\n */\nexport const ModalProvider: ParentComponent<ModalProviderProps> = (props) => {\n const parent = useContext(ModalContext);\n const [modalCount, setModalCount] = createSignal(0);\n\n const context: ModalContext = {\n parent,\n modalCount,\n addModal() {\n setModalCount((count) => count + 1);\n if (parent) {\n parent.addModal();\n }\n },\n removeModal() {\n setModalCount((count) => count - 1);\n if (parent) {\n parent.removeModal();\n }\n },\n };\n\n return <ModalContext.Provider value={context}>{props.children}</ModalContext.Provider>;\n};\n\n/**\n * Sets the portal container for overlays rendered by descendants.\n */\nexport const UNSAFE_PortalProvider: ParentComponent<PortalProviderProps> = (props) => {\n const parent = useUNSAFE_PortalContext();\n\n return (\n <PortalContext.Provider\n value={{\n getContainer:\n props.getContainer === null ? undefined : (props.getContainer ?? parent.getContainer),\n }}\n >\n {props.children}\n </PortalContext.Provider>\n );\n};\n\n/**\n * Returns the portal container configuration inherited from the nearest provider.\n */\nexport function useUNSAFE_PortalContext(): PortalProviderContextValue {\n return useContext(PortalContext) ?? {};\n}\n\nexport interface ModalProviderAria {\n /** Props to be spread on the container element. */\n modalProviderProps: {\n \"aria-hidden\"?: true;\n };\n}\n\n/**\n * Used to determine if the tree should be aria-hidden based on how many\n * modals are open.\n */\nexport function useModalProvider(): ModalProviderAria {\n const context = useContext(ModalContext);\n return {\n modalProviderProps: {\n get \"aria-hidden\"() {\n return context && context.modalCount() > 0 ? true : undefined;\n },\n },\n };\n}\n\n/**\n * Creates a root node that will be aria-hidden if there are other modals open.\n */\nconst OverlayContainerDOM: ParentComponent<ModalProviderProps> = (props) => {\n const { modalProviderProps } = useModalProvider();\n return (\n <div data-overlay-container {...modalProviderProps}>\n {props.children}\n </div>\n );\n};\n\n/**\n * An OverlayProvider acts as a container for the top-level application.\n * Any application that uses modal dialogs or other overlays should\n * be wrapped in a `<OverlayProvider>`. This is used to ensure that\n * the main content of the application is hidden from screen readers\n * if a modal or other overlay is opened. Only the top-most modal or\n * overlay should be accessible at once.\n */\nexport const OverlayProvider: ParentComponent<ModalProviderProps> = (props) => {\n return (\n <ModalProvider>\n <OverlayContainerDOM>{props.children}</OverlayContainerDOM>\n </ModalProvider>\n );\n};\n\nexport interface OverlayContainerProps extends ModalProviderProps {\n /**\n * The container element in which the overlay portal will be placed.\n * @default document.body\n */\n portalContainer?: Element;\n}\n\n/**\n * A container for overlays like modals and popovers. Renders the overlay\n * into a Portal which is placed at the end of the document body.\n * Also ensures that the overlay is hidden from screen readers if a\n * nested modal is opened. Only the top-most modal or overlay should\n * be accessible at once.\n */\nexport const OverlayContainer: ParentComponent<OverlayContainerProps> = (props) => {\n // Don't render portal on server\n if (isServer) {\n return null;\n }\n\n const portalContext = useUNSAFE_PortalContext();\n const portalContainer = () =>\n props.portalContainer ?? portalContext.getContainer?.() ?? document.body;\n\n createEffect(() => {\n const container = portalContainer();\n if (container?.closest(\"[data-overlay-container]\")) {\n throw new Error(\n \"An OverlayContainer must not be inside another container. Please change the portalContainer prop.\",\n );\n }\n });\n\n return (\n <Portal mount={portalContainer()}>\n <OverlayProvider>{props.children}</OverlayProvider>\n </Portal>\n );\n};\n\nexport interface AriaModalOptions {\n /** Whether the modal is disabled. */\n isDisabled?: boolean;\n}\n\nexport interface ModalAria {\n /** Props for the modal content element. */\n modalProps: {\n \"data-ismodal\": boolean;\n };\n}\n\n/**\n * Hides content outside the current `<OverlayContainer>` from screen readers\n * on mount and restores it on unmount. Typically used by modal dialogs and\n * other types of overlays to ensure that only the top-most modal is\n * accessible at once.\n */\nexport function createModal(options?: AriaModalOptions): ModalAria {\n // Add aria-hidden to all parent providers on mount, and restore on unmount.\n const context = useContext(ModalContext);\n\n if (!context) {\n throw new Error(\"Modal is not contained within a provider\");\n }\n\n createEffect(() => {\n if (options?.isDisabled || !context.parent) {\n return;\n }\n\n // The immediate context is from the provider containing this modal, so we only\n // want to trigger aria-hidden on its parents not on the modal provider itself.\n context.parent.addModal();\n\n onCleanup(() => {\n if (context.parent) {\n context.parent.removeModal();\n }\n });\n });\n\n return {\n modalProps: {\n \"data-ismodal\": !options?.isDisabled,\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { i as access } from "./env.jsx";
|
|
2
|
+
import { createId } from "../ssr/index.jsx";
|
|
3
|
+
import { createContext, createEffect, createSignal, onCleanup, useContext } from "solid-js";
|
|
4
|
+
import { Portal, isServer } from "solid-js/web";
|
|
5
|
+
//#region src/overlays/createOverlayTrigger.ts
|
|
6
|
+
/**
|
|
7
|
+
* Handles the behavior and accessibility for an overlay trigger.
|
|
8
|
+
* Based on @react-aria/overlays useOverlayTrigger.
|
|
9
|
+
*/
|
|
10
|
+
const onCloseMap = /* @__PURE__ */ new WeakMap();
|
|
11
|
+
/**
|
|
12
|
+
* Handles the behavior and accessibility for an overlay trigger, e.g. a button
|
|
13
|
+
* that opens a popover, menu, or other overlay that is positioned relative to the trigger.
|
|
14
|
+
*/
|
|
15
|
+
function createOverlayTrigger(props, state, ref) {
|
|
16
|
+
const propsAccessor = () => access(props);
|
|
17
|
+
const overlayId = createId();
|
|
18
|
+
createEffect(() => {
|
|
19
|
+
const element = ref?.();
|
|
20
|
+
if (element) onCloseMap.set(element, state.close);
|
|
21
|
+
});
|
|
22
|
+
const getAriaHasPopup = () => {
|
|
23
|
+
const type = propsAccessor().type;
|
|
24
|
+
if (type === "menu") return true;
|
|
25
|
+
else if (type === "listbox") return "listbox";
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
triggerProps: {
|
|
29
|
+
get "aria-haspopup"() {
|
|
30
|
+
return getAriaHasPopup();
|
|
31
|
+
},
|
|
32
|
+
get "aria-expanded"() {
|
|
33
|
+
return state.isOpen();
|
|
34
|
+
},
|
|
35
|
+
get "aria-controls"() {
|
|
36
|
+
return state.isOpen() ? overlayId : void 0;
|
|
37
|
+
},
|
|
38
|
+
onPress: state.toggle
|
|
39
|
+
},
|
|
40
|
+
overlayProps: { id: overlayId }
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
//#endregion
|
|
44
|
+
//#region src/overlays/createModal.tsx
|
|
45
|
+
/**
|
|
46
|
+
* Modal context and hooks for managing modal accessibility.
|
|
47
|
+
* Based on @react-aria/overlays useModal.
|
|
48
|
+
*/
|
|
49
|
+
const ModalContext = createContext(null);
|
|
50
|
+
const PortalContext = createContext({});
|
|
51
|
+
/**
|
|
52
|
+
* Each ModalProvider tracks how many modals are open in its subtree. On mount, the modals
|
|
53
|
+
* trigger `addModal` to increment the count, and trigger `removeModal` on unmount to decrement it.
|
|
54
|
+
* This is done recursively so that all parent providers are incremented and decremented.
|
|
55
|
+
* If the modal count is greater than zero, we add `aria-hidden` to this provider to hide its
|
|
56
|
+
* subtree from screen readers. This is done using SolidJS context in order to account for things
|
|
57
|
+
* like portals, which can cause the component tree and the DOM tree to differ significantly in structure.
|
|
58
|
+
*/
|
|
59
|
+
const ModalProvider = (props) => {
|
|
60
|
+
const parent = useContext(ModalContext);
|
|
61
|
+
const [modalCount, setModalCount] = createSignal(0);
|
|
62
|
+
const context = {
|
|
63
|
+
parent,
|
|
64
|
+
modalCount,
|
|
65
|
+
addModal() {
|
|
66
|
+
setModalCount((count) => count + 1);
|
|
67
|
+
if (parent) parent.addModal();
|
|
68
|
+
},
|
|
69
|
+
removeModal() {
|
|
70
|
+
setModalCount((count) => count - 1);
|
|
71
|
+
if (parent) parent.removeModal();
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
return <ModalContext.Provider value={context}>{props.children}</ModalContext.Provider>;
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Sets the portal container for overlays rendered by descendants.
|
|
78
|
+
*/
|
|
79
|
+
const UNSAFE_PortalProvider = (props) => {
|
|
80
|
+
const parent = useUNSAFE_PortalContext();
|
|
81
|
+
return <PortalContext.Provider value={{ getContainer: props.getContainer === null ? void 0 : props.getContainer ?? parent.getContainer }}>
|
|
82
|
+
{props.children}
|
|
83
|
+
</PortalContext.Provider>;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* Returns the portal container configuration inherited from the nearest provider.
|
|
87
|
+
*/
|
|
88
|
+
function useUNSAFE_PortalContext() {
|
|
89
|
+
return useContext(PortalContext) ?? {};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Used to determine if the tree should be aria-hidden based on how many
|
|
93
|
+
* modals are open.
|
|
94
|
+
*/
|
|
95
|
+
function useModalProvider() {
|
|
96
|
+
const context = useContext(ModalContext);
|
|
97
|
+
return { modalProviderProps: { get "aria-hidden"() {
|
|
98
|
+
return context && context.modalCount() > 0 ? true : void 0;
|
|
99
|
+
} } };
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Creates a root node that will be aria-hidden if there are other modals open.
|
|
103
|
+
*/
|
|
104
|
+
const OverlayContainerDOM = (props) => {
|
|
105
|
+
const { modalProviderProps } = useModalProvider();
|
|
106
|
+
return <div data-overlay-container {...modalProviderProps}>
|
|
107
|
+
{props.children}
|
|
108
|
+
</div>;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* An OverlayProvider acts as a container for the top-level application.
|
|
112
|
+
* Any application that uses modal dialogs or other overlays should
|
|
113
|
+
* be wrapped in a `<OverlayProvider>`. This is used to ensure that
|
|
114
|
+
* the main content of the application is hidden from screen readers
|
|
115
|
+
* if a modal or other overlay is opened. Only the top-most modal or
|
|
116
|
+
* overlay should be accessible at once.
|
|
117
|
+
*/
|
|
118
|
+
const OverlayProvider = (props) => {
|
|
119
|
+
return <ModalProvider>
|
|
120
|
+
<OverlayContainerDOM>{props.children}</OverlayContainerDOM>
|
|
121
|
+
</ModalProvider>;
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* A container for overlays like modals and popovers. Renders the overlay
|
|
125
|
+
* into a Portal which is placed at the end of the document body.
|
|
126
|
+
* Also ensures that the overlay is hidden from screen readers if a
|
|
127
|
+
* nested modal is opened. Only the top-most modal or overlay should
|
|
128
|
+
* be accessible at once.
|
|
129
|
+
*/
|
|
130
|
+
const OverlayContainer = (props) => {
|
|
131
|
+
if (isServer) return null;
|
|
132
|
+
const portalContext = useUNSAFE_PortalContext();
|
|
133
|
+
const portalContainer = () => props.portalContainer ?? portalContext.getContainer?.() ?? document.body;
|
|
134
|
+
createEffect(() => {
|
|
135
|
+
if (portalContainer()?.closest("[data-overlay-container]")) throw new Error("An OverlayContainer must not be inside another container. Please change the portalContainer prop.");
|
|
136
|
+
});
|
|
137
|
+
return <Portal mount={portalContainer()}>
|
|
138
|
+
<OverlayProvider>{props.children}</OverlayProvider>
|
|
139
|
+
</Portal>;
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* Hides content outside the current `<OverlayContainer>` from screen readers
|
|
143
|
+
* on mount and restores it on unmount. Typically used by modal dialogs and
|
|
144
|
+
* other types of overlays to ensure that only the top-most modal is
|
|
145
|
+
* accessible at once.
|
|
146
|
+
*/
|
|
147
|
+
function createModal(options) {
|
|
148
|
+
const context = useContext(ModalContext);
|
|
149
|
+
if (!context) throw new Error("Modal is not contained within a provider");
|
|
150
|
+
createEffect(() => {
|
|
151
|
+
if (options?.isDisabled || !context.parent) return;
|
|
152
|
+
context.parent.addModal();
|
|
153
|
+
onCleanup(() => {
|
|
154
|
+
if (context.parent) context.parent.removeModal();
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
return { modalProps: { "data-ismodal": !options?.isDisabled } };
|
|
158
|
+
}
|
|
159
|
+
//#endregion
|
|
160
|
+
export { createModal as a, createOverlayTrigger as c, UNSAFE_PortalProvider as i, onCloseMap as l, OverlayContainer as n, useModalProvider as o, OverlayProvider as r, useUNSAFE_PortalContext as s, ModalProvider as t };
|
|
161
|
+
|
|
162
|
+
//# sourceMappingURL=overlays.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"overlays.jsx","names":[],"sources":["../../src/overlays/createOverlayTrigger.ts","../../src/overlays/createModal.tsx"],"sourcesContent":["/**\n * Handles the behavior and accessibility for an overlay trigger.\n * Based on @react-aria/overlays useOverlayTrigger.\n */\n\nimport { createEffect } from \"solid-js\";\nimport type { OverlayTriggerState } from \"@proyecto-viviana/solid-stately\";\nimport { createId } from \"../ssr\";\nimport { access, type MaybeAccessor } from \"../utils\";\n\nexport interface OverlayTriggerProps {\n /** Type of overlay that is opened by the trigger. */\n type: \"dialog\" | \"menu\" | \"listbox\" | \"tree\" | \"grid\";\n}\n\nexport interface OverlayTriggerAria {\n /** Props for the trigger element. */\n triggerProps: {\n \"aria-haspopup\"?: boolean | \"listbox\";\n \"aria-expanded\": boolean;\n \"aria-controls\"?: string;\n onPress: () => void;\n };\n /** Props for the overlay container element. */\n overlayProps: {\n id: string;\n };\n}\n\n// Map for storing close functions, used by useCloseOnScroll\nexport const onCloseMap = new WeakMap<Element, () => void>();\n\n/**\n * Handles the behavior and accessibility for an overlay trigger, e.g. a button\n * that opens a popover, menu, or other overlay that is positioned relative to the trigger.\n */\nexport function createOverlayTrigger(\n props: MaybeAccessor<OverlayTriggerProps>,\n state: OverlayTriggerState,\n ref?: () => Element | null,\n): OverlayTriggerAria {\n const propsAccessor = () => access(props);\n const overlayId = createId();\n\n // Backward compatibility. Share state close function with useOverlayPosition so it can close on scroll\n // without forcing users to pass onClose.\n createEffect(() => {\n const element = ref?.();\n if (element) {\n onCloseMap.set(element, state.close);\n }\n });\n\n // Aria 1.1 supports multiple values for aria-haspopup other than just menus.\n // https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup\n // However, we only add it for menus for now because screen readers often\n // announce it as a menu even for other values.\n const getAriaHasPopup = (): boolean | \"listbox\" | undefined => {\n const type = propsAccessor().type;\n if (type === \"menu\") {\n return true;\n } else if (type === \"listbox\") {\n return \"listbox\";\n }\n return undefined;\n };\n\n return {\n triggerProps: {\n get \"aria-haspopup\"() {\n return getAriaHasPopup();\n },\n get \"aria-expanded\"() {\n return state.isOpen();\n },\n get \"aria-controls\"() {\n return state.isOpen() ? overlayId : undefined;\n },\n onPress: state.toggle,\n },\n overlayProps: {\n id: overlayId,\n },\n };\n}\n","/**\n * Modal context and hooks for managing modal accessibility.\n * Based on @react-aria/overlays useModal.\n */\n\nimport {\n createContext,\n createSignal,\n useContext,\n createEffect,\n onCleanup,\n type JSX,\n type Accessor,\n type ParentComponent,\n} from \"solid-js\";\nimport { Portal } from \"solid-js/web\";\nimport { isServer } from \"solid-js/web\";\n\nexport interface ModalProviderProps {\n children: JSX.Element;\n}\n\nexport interface PortalProviderProps {\n /** Returns the element where overlays should portal. Pass null to clear inherited context. */\n getContainer?: (() => Element | null) | null;\n children: JSX.Element;\n}\n\nexport interface PortalProviderContextValue {\n getContainer?: () => Element | null;\n}\n\ninterface ModalContext {\n parent: ModalContext | null;\n modalCount: Accessor<number>;\n addModal: () => void;\n removeModal: () => void;\n}\n\nconst ModalContext = createContext<ModalContext | null>(null);\nconst PortalContext = createContext<PortalProviderContextValue>({});\n\n/**\n * Each ModalProvider tracks how many modals are open in its subtree. On mount, the modals\n * trigger `addModal` to increment the count, and trigger `removeModal` on unmount to decrement it.\n * This is done recursively so that all parent providers are incremented and decremented.\n * If the modal count is greater than zero, we add `aria-hidden` to this provider to hide its\n * subtree from screen readers. This is done using SolidJS context in order to account for things\n * like portals, which can cause the component tree and the DOM tree to differ significantly in structure.\n */\nexport const ModalProvider: ParentComponent<ModalProviderProps> = (props) => {\n const parent = useContext(ModalContext);\n const [modalCount, setModalCount] = createSignal(0);\n\n const context: ModalContext = {\n parent,\n modalCount,\n addModal() {\n setModalCount((count) => count + 1);\n if (parent) {\n parent.addModal();\n }\n },\n removeModal() {\n setModalCount((count) => count - 1);\n if (parent) {\n parent.removeModal();\n }\n },\n };\n\n return <ModalContext.Provider value={context}>{props.children}</ModalContext.Provider>;\n};\n\n/**\n * Sets the portal container for overlays rendered by descendants.\n */\nexport const UNSAFE_PortalProvider: ParentComponent<PortalProviderProps> = (props) => {\n const parent = useUNSAFE_PortalContext();\n\n return (\n <PortalContext.Provider\n value={{\n getContainer:\n props.getContainer === null ? undefined : (props.getContainer ?? parent.getContainer),\n }}\n >\n {props.children}\n </PortalContext.Provider>\n );\n};\n\n/**\n * Returns the portal container configuration inherited from the nearest provider.\n */\nexport function useUNSAFE_PortalContext(): PortalProviderContextValue {\n return useContext(PortalContext) ?? {};\n}\n\nexport interface ModalProviderAria {\n /** Props to be spread on the container element. */\n modalProviderProps: {\n \"aria-hidden\"?: true;\n };\n}\n\n/**\n * Used to determine if the tree should be aria-hidden based on how many\n * modals are open.\n */\nexport function useModalProvider(): ModalProviderAria {\n const context = useContext(ModalContext);\n return {\n modalProviderProps: {\n get \"aria-hidden\"() {\n return context && context.modalCount() > 0 ? true : undefined;\n },\n },\n };\n}\n\n/**\n * Creates a root node that will be aria-hidden if there are other modals open.\n */\nconst OverlayContainerDOM: ParentComponent<ModalProviderProps> = (props) => {\n const { modalProviderProps } = useModalProvider();\n return (\n <div data-overlay-container {...modalProviderProps}>\n {props.children}\n </div>\n );\n};\n\n/**\n * An OverlayProvider acts as a container for the top-level application.\n * Any application that uses modal dialogs or other overlays should\n * be wrapped in a `<OverlayProvider>`. This is used to ensure that\n * the main content of the application is hidden from screen readers\n * if a modal or other overlay is opened. Only the top-most modal or\n * overlay should be accessible at once.\n */\nexport const OverlayProvider: ParentComponent<ModalProviderProps> = (props) => {\n return (\n <ModalProvider>\n <OverlayContainerDOM>{props.children}</OverlayContainerDOM>\n </ModalProvider>\n );\n};\n\nexport interface OverlayContainerProps extends ModalProviderProps {\n /**\n * The container element in which the overlay portal will be placed.\n * @default document.body\n */\n portalContainer?: Element;\n}\n\n/**\n * A container for overlays like modals and popovers. Renders the overlay\n * into a Portal which is placed at the end of the document body.\n * Also ensures that the overlay is hidden from screen readers if a\n * nested modal is opened. Only the top-most modal or overlay should\n * be accessible at once.\n */\nexport const OverlayContainer: ParentComponent<OverlayContainerProps> = (props) => {\n // Don't render portal on server\n if (isServer) {\n return null;\n }\n\n const portalContext = useUNSAFE_PortalContext();\n const portalContainer = () =>\n props.portalContainer ?? portalContext.getContainer?.() ?? document.body;\n\n createEffect(() => {\n const container = portalContainer();\n if (container?.closest(\"[data-overlay-container]\")) {\n throw new Error(\n \"An OverlayContainer must not be inside another container. Please change the portalContainer prop.\",\n );\n }\n });\n\n return (\n <Portal mount={portalContainer()}>\n <OverlayProvider>{props.children}</OverlayProvider>\n </Portal>\n );\n};\n\nexport interface AriaModalOptions {\n /** Whether the modal is disabled. */\n isDisabled?: boolean;\n}\n\nexport interface ModalAria {\n /** Props for the modal content element. */\n modalProps: {\n \"data-ismodal\": boolean;\n };\n}\n\n/**\n * Hides content outside the current `<OverlayContainer>` from screen readers\n * on mount and restores it on unmount. Typically used by modal dialogs and\n * other types of overlays to ensure that only the top-most modal is\n * accessible at once.\n */\nexport function createModal(options?: AriaModalOptions): ModalAria {\n // Add aria-hidden to all parent providers on mount, and restore on unmount.\n const context = useContext(ModalContext);\n\n if (!context) {\n throw new Error(\"Modal is not contained within a provider\");\n }\n\n createEffect(() => {\n if (options?.isDisabled || !context.parent) {\n return;\n }\n\n // The immediate context is from the provider containing this modal, so we only\n // want to trigger aria-hidden on its parents not on the modal provider itself.\n context.parent.addModal();\n\n onCleanup(() => {\n if (context.parent) {\n context.parent.removeModal();\n }\n });\n });\n\n return {\n modalProps: {\n \"data-ismodal\": !options?.isDisabled,\n },\n };\n}\n"],"mappings":"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"}
|