@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,364 @@
|
|
|
1
|
+
import { o as mergeProps } from "./env.jsx";
|
|
2
|
+
import { S as scrollIntoViewport } from "./utils.jsx";
|
|
3
|
+
import { o as getInteractionModality } from "./createInteractionModality.jsx";
|
|
4
|
+
import { createId as createId$1, createSlotId } from "../ssr/index.jsx";
|
|
5
|
+
import { t as createLabels } from "./createLabels.jsx";
|
|
6
|
+
import { n as createSelectableItem } from "./createSelectableItem.jsx";
|
|
7
|
+
import { t as mergeCollectionRowInteractionProps } from "./createCollectionRowInteraction.jsx";
|
|
8
|
+
import { createEffect, createMemo } from "solid-js";
|
|
9
|
+
import { createId } from "@proyecto-viviana/solid-stately";
|
|
10
|
+
//#region src/gridlist/createGridList.ts
|
|
11
|
+
/**
|
|
12
|
+
* createGridList - Provides accessibility for a grid list.
|
|
13
|
+
* Based on @react-aria/gridlist/useGridList.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* WeakMap to store grid list data for child components to access.
|
|
17
|
+
*/
|
|
18
|
+
const gridListDataMap = /* @__PURE__ */ new WeakMap();
|
|
19
|
+
/**
|
|
20
|
+
* Gets the grid list data for a given state.
|
|
21
|
+
*/
|
|
22
|
+
function getGridListData(state) {
|
|
23
|
+
return gridListDataMap.get(state);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Whether a key should be skipped during keyboard navigation. Disabled keys only
|
|
27
|
+
* block navigation under `disabledBehavior: "all"` (the default); under
|
|
28
|
+
* `"selection"` they remain focusable (selection is still blocked elsewhere).
|
|
29
|
+
* Mirrors `ListKeyboardDelegate.isDisabled` in React Aria.
|
|
30
|
+
*/
|
|
31
|
+
function isNavigationDisabled(state, key) {
|
|
32
|
+
return state.isDisabled(key) && state.disabledBehavior === "all";
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Walks from `startKey` via `step` until reaching a navigable (not
|
|
36
|
+
* navigation-disabled) key, mirroring React Aria's
|
|
37
|
+
* `ListKeyboardDelegate.findNextNonDisabled`. The next/previous lookups and the
|
|
38
|
+
* `getFirstKey`/`getLastKey` boundaries all funnel through this so arrow keys,
|
|
39
|
+
* Home and End land on enabled rows only.
|
|
40
|
+
*/
|
|
41
|
+
function findNextNavigableKey(state, startKey, step) {
|
|
42
|
+
let key = startKey;
|
|
43
|
+
while (key != null && isNavigationDisabled(state, key)) key = step(key);
|
|
44
|
+
return key;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Creates accessibility props for a grid list.
|
|
48
|
+
*/
|
|
49
|
+
function createGridList(props, state, ref) {
|
|
50
|
+
const gridListId = props().id ?? createId();
|
|
51
|
+
const gridListData = {
|
|
52
|
+
gridListId,
|
|
53
|
+
get selectionBehavior() {
|
|
54
|
+
return props().selectionBehavior ?? "replace";
|
|
55
|
+
},
|
|
56
|
+
get shouldSelectOnPressUp() {
|
|
57
|
+
return props().shouldSelectOnPressUp ?? false;
|
|
58
|
+
},
|
|
59
|
+
get keyboardNavigationBehavior() {
|
|
60
|
+
return props().keyboardNavigationBehavior ?? "arrow";
|
|
61
|
+
},
|
|
62
|
+
get direction() {
|
|
63
|
+
return props().direction ?? "ltr";
|
|
64
|
+
},
|
|
65
|
+
actions: { get onAction() {
|
|
66
|
+
return props().onAction;
|
|
67
|
+
} }
|
|
68
|
+
};
|
|
69
|
+
gridListDataMap.set(state(), gridListData);
|
|
70
|
+
const onKeyDown = (e) => {
|
|
71
|
+
const s = state();
|
|
72
|
+
const p = props();
|
|
73
|
+
const collection = s.collection;
|
|
74
|
+
const focusedKey = s.focusedKey;
|
|
75
|
+
if (p.isDisabled) return;
|
|
76
|
+
switch (e.key) {
|
|
77
|
+
case "ArrowDown": {
|
|
78
|
+
e.preventDefault();
|
|
79
|
+
const nextKey = focusedKey != null ? findNextNavigableKey(s, collection.getKeyAfter(focusedKey), (k) => collection.getKeyAfter(k)) : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));
|
|
80
|
+
if (nextKey != null) s.setFocusedKey(nextKey);
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
case "ArrowUp": {
|
|
84
|
+
e.preventDefault();
|
|
85
|
+
const prevKey = focusedKey != null ? findNextNavigableKey(s, collection.getKeyBefore(focusedKey), (k) => collection.getKeyBefore(k)) : findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k));
|
|
86
|
+
if (prevKey != null) s.setFocusedKey(prevKey);
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
case "ArrowRight":
|
|
90
|
+
case "ArrowLeft": {
|
|
91
|
+
if (p.orientation !== "horizontal") break;
|
|
92
|
+
e.preventDefault();
|
|
93
|
+
const isRtl = p.direction === "rtl";
|
|
94
|
+
const step = (e.key === "ArrowRight" ? !isRtl : isRtl) ? (k) => collection.getKeyAfter(k) : (k) => collection.getKeyBefore(k);
|
|
95
|
+
const nextKey = focusedKey != null ? findNextNavigableKey(s, step(focusedKey), step) : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));
|
|
96
|
+
if (nextKey != null) s.setFocusedKey(nextKey);
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
case "Home": {
|
|
100
|
+
e.preventDefault();
|
|
101
|
+
const firstKey = findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));
|
|
102
|
+
if (firstKey != null) s.setFocusedKey(firstKey);
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
case "End": {
|
|
106
|
+
e.preventDefault();
|
|
107
|
+
const lastKey = findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k));
|
|
108
|
+
if (lastKey != null) s.setFocusedKey(lastKey);
|
|
109
|
+
break;
|
|
110
|
+
}
|
|
111
|
+
case "a":
|
|
112
|
+
case "A":
|
|
113
|
+
if ((e.ctrlKey || e.metaKey) && s.selectionMode === "multiple") {
|
|
114
|
+
e.preventDefault();
|
|
115
|
+
s.selectAll();
|
|
116
|
+
}
|
|
117
|
+
break;
|
|
118
|
+
case "Escape":
|
|
119
|
+
if (s.selectionMode !== "none") {
|
|
120
|
+
e.preventDefault();
|
|
121
|
+
s.clearSelection();
|
|
122
|
+
}
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
const onFocus = () => {
|
|
127
|
+
const s = state();
|
|
128
|
+
s.setFocused(true);
|
|
129
|
+
if (s.focusedKey == null) {
|
|
130
|
+
const firstKey = findNextNavigableKey(s, s.collection.getFirstKey(), (k) => s.collection.getKeyAfter(k));
|
|
131
|
+
if (firstKey != null) s.setFocusedKey(firstKey);
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
const onBlur = () => {
|
|
135
|
+
state().setFocused(false);
|
|
136
|
+
};
|
|
137
|
+
createEffect(() => {
|
|
138
|
+
const key = state().focusedKey;
|
|
139
|
+
const el = ref();
|
|
140
|
+
if (!el || key == null) return;
|
|
141
|
+
const active = document.activeElement;
|
|
142
|
+
if (!active || active !== el && !el.contains(active)) return;
|
|
143
|
+
const target = el.querySelector(`[data-key="${key}"]`);
|
|
144
|
+
if (target && target !== active) {
|
|
145
|
+
target.focus();
|
|
146
|
+
if (getInteractionModality() !== "pointer") scrollIntoViewport(target, { containingElement: el });
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
const gridProps = createMemo(() => {
|
|
150
|
+
const p = props();
|
|
151
|
+
const s = state();
|
|
152
|
+
const baseProps = {
|
|
153
|
+
role: "grid",
|
|
154
|
+
id: gridListId,
|
|
155
|
+
"aria-label": p["aria-label"],
|
|
156
|
+
"aria-labelledby": p["aria-labelledby"],
|
|
157
|
+
"aria-describedby": p["aria-describedby"],
|
|
158
|
+
"aria-multiselectable": s.selectionMode === "multiple" ? true : void 0,
|
|
159
|
+
"aria-disabled": p.isDisabled || void 0,
|
|
160
|
+
tabIndex: p.isDisabled ? void 0 : 0,
|
|
161
|
+
onKeyDown,
|
|
162
|
+
onFocus,
|
|
163
|
+
onBlur
|
|
164
|
+
};
|
|
165
|
+
if (p.isVirtualized) baseProps["aria-rowcount"] = s.collection.rowCount;
|
|
166
|
+
return baseProps;
|
|
167
|
+
});
|
|
168
|
+
return { get gridProps() {
|
|
169
|
+
return gridProps();
|
|
170
|
+
} };
|
|
171
|
+
}
|
|
172
|
+
//#endregion
|
|
173
|
+
//#region src/gridlist/createGridListItem.ts
|
|
174
|
+
/**
|
|
175
|
+
* createGridListItem - Provides accessibility for a grid list item.
|
|
176
|
+
* Based on @react-aria/gridlist/useGridListItem.
|
|
177
|
+
*/
|
|
178
|
+
/**
|
|
179
|
+
* Creates accessibility props for a grid list item.
|
|
180
|
+
*/
|
|
181
|
+
function createGridListItem(props, state, ref) {
|
|
182
|
+
const isSelected = createMemo(() => {
|
|
183
|
+
const s = state();
|
|
184
|
+
const p = props();
|
|
185
|
+
return s.isSelected(p.node.key);
|
|
186
|
+
});
|
|
187
|
+
const selectableItem = createSelectableItem(() => {
|
|
188
|
+
const s = state();
|
|
189
|
+
const p = props();
|
|
190
|
+
const gridListData = getGridListData(s);
|
|
191
|
+
const onAction = gridListData?.actions.onAction;
|
|
192
|
+
return {
|
|
193
|
+
key: p.node.key,
|
|
194
|
+
id: `${gridListData?.gridListId ?? "gridlist"}-row-${String(p.node.key)}`,
|
|
195
|
+
isVirtualized: p.isVirtualized,
|
|
196
|
+
shouldSelectOnPressUp: gridListData?.shouldSelectOnPressUp ?? false,
|
|
197
|
+
onAction: onAction || p.onAction ? () => {
|
|
198
|
+
p.onAction?.();
|
|
199
|
+
onAction?.(p.node.key);
|
|
200
|
+
} : void 0
|
|
201
|
+
};
|
|
202
|
+
}, {
|
|
203
|
+
collection: () => state().collection,
|
|
204
|
+
isFocused: () => state().isFocused,
|
|
205
|
+
setFocused: (focused) => state().setFocused(focused),
|
|
206
|
+
focusedKey: () => state().focusedKey,
|
|
207
|
+
childFocusStrategy: () => state().childFocusStrategy,
|
|
208
|
+
setFocusedKey: (key, strategy) => state().setFocusedKey(key, strategy),
|
|
209
|
+
selectionMode: () => state().selectionMode,
|
|
210
|
+
selectionBehavior: () => props().selectionBehavior ?? state().selectionBehavior,
|
|
211
|
+
disallowEmptySelection: () => state().disallowEmptySelection,
|
|
212
|
+
selectedKeys: () => state().selectedKeys,
|
|
213
|
+
disabledKeys: () => state().disabledKeys,
|
|
214
|
+
disabledBehavior: () => state().disabledBehavior,
|
|
215
|
+
isEmpty: () => {
|
|
216
|
+
const keys = state().selectedKeys;
|
|
217
|
+
return keys !== "all" && keys.size === 0;
|
|
218
|
+
},
|
|
219
|
+
isSelectAll: () => state().selectedKeys === "all",
|
|
220
|
+
isSelected: (key) => state().isSelected(key),
|
|
221
|
+
isDisabled: (key) => {
|
|
222
|
+
const s = state();
|
|
223
|
+
const item = s.collection.getItem(key);
|
|
224
|
+
return s.disabledBehavior === "all" && s.isDisabled(key) && item?.props?.disabledBehavior !== "selection";
|
|
225
|
+
},
|
|
226
|
+
canSelectItem: (key) => {
|
|
227
|
+
const s = state();
|
|
228
|
+
return s.selectionMode !== "none" && !s.isDisabled(key);
|
|
229
|
+
},
|
|
230
|
+
setSelectionBehavior: (behavior) => state().setSelectionBehavior(behavior),
|
|
231
|
+
toggleSelection: (key) => state().toggleSelection(key),
|
|
232
|
+
replaceSelection: (key) => state().replaceSelection(key),
|
|
233
|
+
setSelectedKeys: (keys) => state().setSelectedKeys(keys),
|
|
234
|
+
selectAll: () => state().selectAll(),
|
|
235
|
+
clearSelection: () => state().clearSelection(),
|
|
236
|
+
toggleSelectAll: () => state().toggleSelectAll(),
|
|
237
|
+
extendSelection: (toKey, _collection) => state().extendSelection(toKey)
|
|
238
|
+
}, ref);
|
|
239
|
+
const rowProps = createMemo(() => {
|
|
240
|
+
const s = state();
|
|
241
|
+
const p = props();
|
|
242
|
+
const node = p.node;
|
|
243
|
+
const baseProps = {
|
|
244
|
+
role: "row",
|
|
245
|
+
"aria-selected": s.selectionMode !== "none" ? isSelected() : void 0,
|
|
246
|
+
"aria-disabled": selectableItem.isDisabled() || void 0
|
|
247
|
+
};
|
|
248
|
+
if (p.isVirtualized && node.rowIndex != null) baseProps["aria-rowindex"] = node.rowIndex + 1;
|
|
249
|
+
const gridListData = getGridListData(s);
|
|
250
|
+
return mergeCollectionRowInteractionProps(mergeProps(selectableItem.itemProps, baseProps), {
|
|
251
|
+
ref,
|
|
252
|
+
keyboardNavigationBehavior: () => gridListData?.keyboardNavigationBehavior ?? "arrow",
|
|
253
|
+
direction: () => gridListData?.direction ?? "ltr"
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
const gridCellProps = createMemo(() => {
|
|
257
|
+
return { role: "gridcell" };
|
|
258
|
+
});
|
|
259
|
+
return {
|
|
260
|
+
get rowProps() {
|
|
261
|
+
return rowProps();
|
|
262
|
+
},
|
|
263
|
+
get gridCellProps() {
|
|
264
|
+
return gridCellProps();
|
|
265
|
+
},
|
|
266
|
+
get isSelected() {
|
|
267
|
+
return isSelected();
|
|
268
|
+
},
|
|
269
|
+
get isDisabled() {
|
|
270
|
+
return selectableItem.isDisabled();
|
|
271
|
+
},
|
|
272
|
+
get isPressed() {
|
|
273
|
+
return selectableItem.isPressed();
|
|
274
|
+
}
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
//#endregion
|
|
278
|
+
//#region src/gridlist/createGridListSelectionCheckbox.ts
|
|
279
|
+
/**
|
|
280
|
+
* createGridListSelectionCheckbox - Provides accessibility for a grid list item selection checkbox.
|
|
281
|
+
* Based on @react-aria/gridlist.
|
|
282
|
+
*/
|
|
283
|
+
/**
|
|
284
|
+
* Creates accessibility props for a grid list item selection checkbox.
|
|
285
|
+
*/
|
|
286
|
+
function createGridListSelectionCheckbox(props, state) {
|
|
287
|
+
const checkboxId = createId();
|
|
288
|
+
const isSelected = createMemo(() => {
|
|
289
|
+
const s = state();
|
|
290
|
+
const p = props();
|
|
291
|
+
return s.isSelected(p.key);
|
|
292
|
+
});
|
|
293
|
+
const isDisabled = createMemo(() => {
|
|
294
|
+
const s = state();
|
|
295
|
+
const p = props();
|
|
296
|
+
return s.isDisabled(p.key);
|
|
297
|
+
});
|
|
298
|
+
const onChange = () => {
|
|
299
|
+
const s = state();
|
|
300
|
+
const p = props();
|
|
301
|
+
if (!isDisabled()) s.toggleSelection(p.key);
|
|
302
|
+
};
|
|
303
|
+
const checkboxProps = createMemo(() => {
|
|
304
|
+
return {
|
|
305
|
+
id: checkboxId,
|
|
306
|
+
type: "checkbox",
|
|
307
|
+
checked: isSelected(),
|
|
308
|
+
disabled: isDisabled(),
|
|
309
|
+
onChange,
|
|
310
|
+
"aria-label": "Select"
|
|
311
|
+
};
|
|
312
|
+
});
|
|
313
|
+
return { get checkboxProps() {
|
|
314
|
+
return checkboxProps();
|
|
315
|
+
} };
|
|
316
|
+
}
|
|
317
|
+
//#endregion
|
|
318
|
+
//#region src/gridlist/createGridListSection.ts
|
|
319
|
+
/**
|
|
320
|
+
* createGridListSection - Provides accessibility for a grid list section.
|
|
321
|
+
* Based on @react-aria/gridlist/useGridListSection.
|
|
322
|
+
*/
|
|
323
|
+
/**
|
|
324
|
+
* Creates accessibility props for a grid list section.
|
|
325
|
+
*
|
|
326
|
+
* Mirrors upstream `useGridListSection`: a section is a `role="rowgroup"`
|
|
327
|
+
* wrapper whose optional header renders as `role="row"` › `role="rowheader"`.
|
|
328
|
+
* The `aria-labelledby` of the wrapper points at the header's id via a slot id
|
|
329
|
+
* that resolves to `undefined` when no header is rendered.
|
|
330
|
+
*/
|
|
331
|
+
function createGridListSection(props) {
|
|
332
|
+
const headingId = createSlotId();
|
|
333
|
+
const rowGroupId = createId$1();
|
|
334
|
+
const labelProps = createMemo(() => createLabels({
|
|
335
|
+
id: rowGroupId,
|
|
336
|
+
"aria-label": props["aria-label"],
|
|
337
|
+
"aria-labelledby": headingId()
|
|
338
|
+
}));
|
|
339
|
+
return {
|
|
340
|
+
rowProps: { role: "row" },
|
|
341
|
+
rowHeaderProps: {
|
|
342
|
+
get id() {
|
|
343
|
+
return headingId();
|
|
344
|
+
},
|
|
345
|
+
role: "rowheader"
|
|
346
|
+
},
|
|
347
|
+
rowGroupProps: {
|
|
348
|
+
role: "rowgroup",
|
|
349
|
+
get id() {
|
|
350
|
+
return labelProps().id;
|
|
351
|
+
},
|
|
352
|
+
get "aria-label"() {
|
|
353
|
+
return labelProps()["aria-label"];
|
|
354
|
+
},
|
|
355
|
+
get "aria-labelledby"() {
|
|
356
|
+
return labelProps()["aria-labelledby"];
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
//#endregion
|
|
362
|
+
export { getGridListData as a, createGridList as i, createGridListSelectionCheckbox as n, createGridListItem as r, createGridListSection as t };
|
|
363
|
+
|
|
364
|
+
//# sourceMappingURL=gridlist.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gridlist.jsx","names":["createId"],"sources":["../../src/gridlist/createGridList.ts","../../src/gridlist/createGridListItem.ts","../../src/gridlist/createGridListSelectionCheckbox.ts","../../src/gridlist/createGridListSection.ts"],"sourcesContent":["/**\n * createGridList - Provides accessibility for a grid list.\n * Based on @react-aria/gridlist/useGridList.\n */\n\nimport { createMemo, createEffect, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport { createId } from \"@proyecto-viviana/solid-stately\";\nimport type { GridState, GridCollection, Key } from \"@proyecto-viviana/solid-stately\";\nimport type { AriaGridListProps, GridListAria } from \"./types\";\nimport { scrollIntoViewport } from \"../utils\";\nimport { getInteractionModality } from \"../interactions/createInteractionModality\";\n\n/**\n * Metadata stored for a grid list instance.\n */\ninterface GridListData {\n /** The generated ID for the grid list. */\n gridListId: string;\n /** How selection should behave when pressing an item. */\n selectionBehavior: \"replace\" | \"toggle\";\n /** Whether row selection should occur on press up. */\n shouldSelectOnPressUp: boolean;\n /** How keyboard navigation behaves within row children. */\n keyboardNavigationBehavior: \"arrow\" | \"tab\";\n /** Text direction for row-child arrow navigation. */\n direction: \"ltr\" | \"rtl\";\n /** Actions registered for the grid list. */\n actions: {\n onAction?: (key: Key) => void;\n };\n}\n\n/**\n * WeakMap to store grid list data for child components to access.\n */\nconst gridListDataMap = new WeakMap<object, GridListData>();\n\n/**\n * Gets the grid list data for a given state.\n */\nexport function getGridListData<T extends object, C extends GridCollection<T>>(\n state: GridState<T, C>,\n): GridListData | undefined {\n return gridListDataMap.get(state);\n}\n\n/**\n * Whether a key should be skipped during keyboard navigation. Disabled keys only\n * block navigation under `disabledBehavior: \"all\"` (the default); under\n * `\"selection\"` they remain focusable (selection is still blocked elsewhere).\n * Mirrors `ListKeyboardDelegate.isDisabled` in React Aria.\n */\nfunction isNavigationDisabled<T extends object, C extends GridCollection<T>>(\n state: GridState<T, C>,\n key: Key,\n): boolean {\n return state.isDisabled(key) && state.disabledBehavior === \"all\";\n}\n\n/**\n * Walks from `startKey` via `step` until reaching a navigable (not\n * navigation-disabled) key, mirroring React Aria's\n * `ListKeyboardDelegate.findNextNonDisabled`. The next/previous lookups and the\n * `getFirstKey`/`getLastKey` boundaries all funnel through this so arrow keys,\n * Home and End land on enabled rows only.\n */\nfunction findNextNavigableKey<T extends object, C extends GridCollection<T>>(\n state: GridState<T, C>,\n startKey: Key | null,\n step: (key: Key) => Key | null,\n): Key | null {\n let key = startKey;\n while (key != null && isNavigationDisabled(state, key)) {\n key = step(key);\n }\n return key;\n}\n\n/**\n * Creates accessibility props for a grid list.\n */\nexport function createGridList<T extends object, C extends GridCollection<T> = GridCollection<T>>(\n props: Accessor<AriaGridListProps>,\n state: Accessor<GridState<T, C>>,\n ref: Accessor<HTMLElement | null>,\n): GridListAria {\n // Generate a unique ID for the grid list\n const gridListId = props().id ?? createId();\n\n // Store grid list data for child components\n const gridListData: GridListData = {\n gridListId,\n get selectionBehavior() {\n return props().selectionBehavior ?? \"replace\";\n },\n get shouldSelectOnPressUp() {\n return props().shouldSelectOnPressUp ?? false;\n },\n get keyboardNavigationBehavior() {\n return props().keyboardNavigationBehavior ?? \"arrow\";\n },\n get direction() {\n return props().direction ?? \"ltr\";\n },\n actions: {\n get onAction() {\n return props().onAction;\n },\n },\n };\n\n // Store in WeakMap using the state as key\n gridListDataMap.set(state(), gridListData);\n\n // Handle keyboard navigation\n const onKeyDown = (e: KeyboardEvent) => {\n const s = state();\n const p = props();\n const collection = s.collection;\n const focusedKey = s.focusedKey;\n\n if (p.isDisabled) return;\n\n switch (e.key) {\n case \"ArrowDown\": {\n e.preventDefault();\n const nextKey =\n focusedKey != null\n ? findNextNavigableKey(s, collection.getKeyAfter(focusedKey), (k) =>\n collection.getKeyAfter(k),\n )\n : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));\n if (nextKey != null) {\n s.setFocusedKey(nextKey);\n }\n break;\n }\n case \"ArrowUp\": {\n e.preventDefault();\n const prevKey =\n focusedKey != null\n ? findNextNavigableKey(s, collection.getKeyBefore(focusedKey), (k) =>\n collection.getKeyBefore(k),\n )\n : findNextNavigableKey(s, collection.getLastKey(), (k) => collection.getKeyBefore(k));\n if (prevKey != null) {\n s.setFocusedKey(prevKey);\n }\n break;\n }\n case \"ArrowRight\":\n case \"ArrowLeft\": {\n // Horizontal orientation promotes the inline axis to the primary\n // navigation axis. Upstream's ListKeyboardDelegate strips\n // getKeyLeftOf/getKeyRightOf for a vertical stack, so Left/Right stay\n // no-ops there; in a horizontal stack they move prev/next, flipped\n // under RTL (Right=next, Left=prev in LTR).\n if (p.orientation !== \"horizontal\") break;\n e.preventDefault();\n const isRtl = p.direction === \"rtl\";\n const forward = e.key === \"ArrowRight\" ? !isRtl : isRtl;\n const step = forward\n ? (k: Key) => collection.getKeyAfter(k)\n : (k: Key) => collection.getKeyBefore(k);\n const nextKey =\n focusedKey != null\n ? findNextNavigableKey(s, step(focusedKey), step)\n : findNextNavigableKey(s, collection.getFirstKey(), (k) => collection.getKeyAfter(k));\n if (nextKey != null) {\n s.setFocusedKey(nextKey);\n }\n break;\n }\n case \"Home\": {\n e.preventDefault();\n const firstKey = findNextNavigableKey(s, collection.getFirstKey(), (k) =>\n collection.getKeyAfter(k),\n );\n if (firstKey != null) {\n s.setFocusedKey(firstKey);\n }\n break;\n }\n case \"End\": {\n e.preventDefault();\n const lastKey = findNextNavigableKey(s, collection.getLastKey(), (k) =>\n collection.getKeyBefore(k),\n );\n if (lastKey != null) {\n s.setFocusedKey(lastKey);\n }\n break;\n }\n case \"a\":\n case \"A\": {\n if ((e.ctrlKey || e.metaKey) && s.selectionMode === \"multiple\") {\n e.preventDefault();\n s.selectAll();\n }\n break;\n }\n // Space (toggle selection) and Enter (onAction) are intentionally absent\n // here. Upstream's useSelectableCollection has no Space/Enter case — the\n // focused item owns both, via useSelectableItem. We follow browser focus\n // onto the focused row (the effect below), so the row's own handlers in\n // createGridListItem fire. Handling them here too would double-toggle a\n // focused row, because Solid delegates keydown and bubbles the row event\n // up to this grid handler.\n case \"Escape\": {\n if (s.selectionMode !== \"none\") {\n e.preventDefault();\n s.clearSelection();\n }\n break;\n }\n }\n };\n\n const onFocus = () => {\n const s = state();\n s.setFocused(true);\n\n // If nothing is focused, focus the first navigable item\n if (s.focusedKey == null) {\n const firstKey = findNextNavigableKey(s, s.collection.getFirstKey(), (k) =>\n s.collection.getKeyAfter(k),\n );\n if (firstKey != null) {\n s.setFocusedKey(firstKey);\n }\n }\n };\n\n const onBlur = () => {\n const s = state();\n s.setFocused(false);\n };\n\n // Mirror React Aria's useSelectableCollection: once the roving tabindex for the\n // focused key has been committed to the DOM, move browser focus onto that row\n // from a post-commit effect, looking it up by its stable data-key rather than by\n // transient tabindex. Selection and activation live on the row\n // (createGridListItem) to match upstream, so keyboard nav has to carry focus\n // there for the row's Space/Enter handlers to act on.\n createEffect(() => {\n const s = state();\n const key = s.focusedKey;\n const el = ref();\n if (!el || key == null) {\n return;\n }\n\n // Only manage focus while it already lives inside the grid — i.e. the user is\n // navigating with the keyboard. Gate on the physical position of browser focus\n // rather than the grid's logical isFocused signal: focus can land directly on a\n // row (a pointer click) without ever firing the grid's own focus handler, and\n // the contains() check keeps us from yanking focus back from elsewhere on the\n // page when the focused key changes from a background interaction.\n const active = document.activeElement;\n if (!active || (active !== el && !el.contains(active))) {\n return;\n }\n\n const target = el.querySelector<HTMLElement>(`[data-key=\"${key}\"]`);\n if (target && target !== active) {\n target.focus();\n\n // Reveal the newly focused row when navigating with the keyboard, mirroring\n // useSelectableCollection. Pointer-driven focus changes should not shift the\n // scroll position under the user's finger.\n if (getInteractionModality() !== \"pointer\") {\n scrollIntoViewport(target, { containingElement: el });\n }\n }\n });\n\n const gridProps = createMemo(() => {\n const p = props();\n const s = state();\n\n const baseProps: Record<string, unknown> = {\n role: \"grid\",\n id: gridListId,\n \"aria-label\": p[\"aria-label\"],\n \"aria-labelledby\": p[\"aria-labelledby\"],\n \"aria-describedby\": p[\"aria-describedby\"],\n \"aria-multiselectable\": s.selectionMode === \"multiple\" ? true : undefined,\n \"aria-disabled\": p.isDisabled || undefined,\n tabIndex: p.isDisabled ? undefined : 0,\n onKeyDown,\n onFocus,\n onBlur,\n };\n\n // Add row count for virtualized lists\n if (p.isVirtualized) {\n baseProps[\"aria-rowcount\"] = s.collection.rowCount;\n }\n\n return baseProps as JSX.HTMLAttributes<HTMLElement>;\n });\n\n return {\n get gridProps() {\n return gridProps();\n },\n };\n}\n","/**\n * createGridListItem - Provides accessibility for a grid list item.\n * Based on @react-aria/gridlist/useGridListItem.\n */\n\nimport { createMemo, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport type {\n Collection,\n GridState,\n GridCollection,\n Key,\n Selection,\n} from \"@proyecto-viviana/solid-stately\";\nimport type { AriaGridListItemProps, GridListItemAria } from \"./types\";\nimport { getGridListData } from \"./createGridList\";\nimport { createSelectableItem, type SelectableItemState } from \"../selection/createSelectableItem\";\nimport { mergeCollectionRowInteractionProps } from \"../selection/createCollectionRowInteraction\";\nimport { mergeProps } from \"../utils/mergeProps\";\n\n/**\n * Creates accessibility props for a grid list item.\n */\nexport function createGridListItem<\n T extends object,\n C extends GridCollection<T> = GridCollection<T>,\n>(\n props: Accessor<AriaGridListItemProps>,\n state: Accessor<GridState<T, C>>,\n ref: Accessor<HTMLElement | null>,\n): GridListItemAria {\n const isSelected = createMemo(() => {\n const s = state();\n const p = props();\n return s.isSelected(p.node.key);\n });\n\n const selectableState: SelectableItemState<T> = {\n collection: () => state().collection as unknown as Collection<T>,\n isFocused: () => state().isFocused,\n setFocused: (focused: boolean) => state().setFocused(focused),\n focusedKey: () => state().focusedKey,\n childFocusStrategy: () => state().childFocusStrategy,\n setFocusedKey: (key: Key | null, strategy) => state().setFocusedKey(key, strategy),\n selectionMode: () => state().selectionMode,\n selectionBehavior: () => props().selectionBehavior ?? state().selectionBehavior,\n disallowEmptySelection: () => state().disallowEmptySelection,\n selectedKeys: () => state().selectedKeys as Selection,\n disabledKeys: () => state().disabledKeys,\n disabledBehavior: () => state().disabledBehavior,\n isEmpty: () => {\n const keys = state().selectedKeys;\n return keys !== \"all\" && keys.size === 0;\n },\n isSelectAll: () => state().selectedKeys === \"all\",\n isSelected: (key: Key) => state().isSelected(key),\n isDisabled: (key: Key) => {\n const s = state();\n const item = s.collection.getItem(key);\n return (\n s.disabledBehavior === \"all\" &&\n s.isDisabled(key) &&\n item?.props?.disabledBehavior !== \"selection\"\n );\n },\n canSelectItem: (key: Key) => {\n const s = state();\n return s.selectionMode !== \"none\" && !s.isDisabled(key);\n },\n setSelectionBehavior: (behavior) => state().setSelectionBehavior(behavior),\n toggleSelection: (key: Key) => state().toggleSelection(key),\n replaceSelection: (key: Key) => state().replaceSelection(key),\n setSelectedKeys: (keys: Iterable<Key>) => state().setSelectedKeys(keys),\n selectAll: () => state().selectAll(),\n clearSelection: () => state().clearSelection(),\n toggleSelectAll: () => state().toggleSelectAll(),\n extendSelection: (toKey: Key, _collection: Collection<T>) => state().extendSelection(toKey),\n };\n\n const selectableItem = createSelectableItem<T>(\n () => {\n const s = state();\n const p = props();\n const gridListData = getGridListData(s);\n const onAction = gridListData?.actions.onAction;\n\n return {\n key: p.node.key,\n id: `${gridListData?.gridListId ?? \"gridlist\"}-row-${String(p.node.key)}`,\n isVirtualized: p.isVirtualized,\n shouldSelectOnPressUp: gridListData?.shouldSelectOnPressUp ?? false,\n onAction:\n onAction || p.onAction\n ? () => {\n p.onAction?.();\n onAction?.(p.node.key);\n }\n : undefined,\n };\n },\n selectableState,\n ref,\n );\n\n const rowProps = createMemo(() => {\n const s = state();\n const p = props();\n const node = p.node;\n\n const baseProps: Record<string, unknown> = {\n role: \"row\",\n \"aria-selected\": s.selectionMode !== \"none\" ? isSelected() : undefined,\n \"aria-disabled\": selectableItem.isDisabled() || undefined,\n };\n\n // Add aria-rowindex for virtualized lists\n if (p.isVirtualized && node.rowIndex != null) {\n baseProps[\"aria-rowindex\"] = node.rowIndex + 1; // 1-based\n }\n\n const gridListData = getGridListData(s);\n const mergedProps = mergeProps<JSX.HTMLAttributes<HTMLElement>>(\n selectableItem.itemProps,\n baseProps,\n );\n\n return mergeCollectionRowInteractionProps(mergedProps, {\n ref,\n keyboardNavigationBehavior: () => gridListData?.keyboardNavigationBehavior ?? \"arrow\",\n direction: () => gridListData?.direction ?? \"ltr\",\n });\n });\n\n const gridCellProps = createMemo(() => {\n return {\n role: \"gridcell\",\n } as JSX.HTMLAttributes<HTMLDivElement>;\n });\n\n return {\n get rowProps() {\n return rowProps();\n },\n get gridCellProps() {\n return gridCellProps();\n },\n get isSelected() {\n return isSelected();\n },\n get isDisabled() {\n return selectableItem.isDisabled();\n },\n get isPressed() {\n return selectableItem.isPressed();\n },\n };\n}\n","/**\n * createGridListSelectionCheckbox - Provides accessibility for a grid list item selection checkbox.\n * Based on @react-aria/gridlist.\n */\n\nimport { createMemo, type Accessor } from \"solid-js\";\nimport type { JSX } from \"solid-js\";\nimport { createId } from \"@proyecto-viviana/solid-stately\";\nimport type { GridState, GridCollection } from \"@proyecto-viviana/solid-stately\";\nimport type { AriaGridListSelectionCheckboxProps, GridListSelectionCheckboxAria } from \"./types\";\n\n/**\n * Creates accessibility props for a grid list item selection checkbox.\n */\nexport function createGridListSelectionCheckbox<\n T extends object,\n C extends GridCollection<T> = GridCollection<T>,\n>(\n props: Accessor<AriaGridListSelectionCheckboxProps>,\n state: Accessor<GridState<T, C>>,\n): GridListSelectionCheckboxAria {\n const checkboxId = createId();\n\n const isSelected = createMemo(() => {\n const s = state();\n const p = props();\n return s.isSelected(p.key);\n });\n\n const isDisabled = createMemo(() => {\n const s = state();\n const p = props();\n return s.isDisabled(p.key);\n });\n\n const onChange = () => {\n const s = state();\n const p = props();\n if (!isDisabled()) {\n s.toggleSelection(p.key);\n }\n };\n\n const checkboxProps = createMemo(() => {\n const baseProps: Record<string, unknown> = {\n id: checkboxId,\n type: \"checkbox\",\n checked: isSelected(),\n disabled: isDisabled(),\n onChange,\n \"aria-label\": \"Select\",\n };\n\n return baseProps as JSX.InputHTMLAttributes<HTMLInputElement>;\n });\n\n return {\n get checkboxProps() {\n return checkboxProps();\n },\n };\n}\n","/**\n * createGridListSection - Provides accessibility for a grid list section.\n * Based on @react-aria/gridlist/useGridListSection.\n */\n\nimport { createMemo } from \"solid-js\";\nimport { createId, createSlotId } from \"../ssr\";\nimport { createLabels } from \"../label/createLabels\";\nimport type { AriaGridListSectionProps, GridListSectionAria } from \"./types\";\n\n/**\n * Creates accessibility props for a grid list section.\n *\n * Mirrors upstream `useGridListSection`: a section is a `role=\"rowgroup\"`\n * wrapper whose optional header renders as `role=\"row\"` › `role=\"rowheader\"`.\n * The `aria-labelledby` of the wrapper points at the header's id via a slot id\n * that resolves to `undefined` when no header is rendered.\n */\nexport function createGridListSection(props: AriaGridListSectionProps): GridListSectionAria {\n const headingId = createSlotId();\n // Stable id for the rowgroup so `createLabels` does not regenerate one each\n // time the slot id resolves (it short-circuits on a provided id).\n const rowGroupId = createId();\n\n const labelProps = createMemo(() =>\n createLabels({\n id: rowGroupId,\n \"aria-label\": props[\"aria-label\"],\n \"aria-labelledby\": headingId(),\n }),\n );\n\n return {\n rowProps: { role: \"row\" },\n rowHeaderProps: {\n get id() {\n return headingId();\n },\n role: \"rowheader\",\n },\n rowGroupProps: {\n role: \"rowgroup\",\n get id() {\n return labelProps().id;\n },\n get \"aria-label\"() {\n return labelProps()[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return labelProps()[\"aria-labelledby\"];\n },\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
import { a as useLocale, o as createCacheKey, t as createCollator } from "./createCollator.js";
|
|
2
|
+
import { createMemo } from "solid-js";
|
|
3
|
+
import { NumberFormatter, NumberFormatter as NumberFormatter$1 } from "@internationalized/number";
|
|
4
|
+
import { LocalizedStringDictionary, LocalizedStringFormatter } from "@internationalized/string";
|
|
5
|
+
//#region src/i18n/createNumberFormatter.ts
|
|
6
|
+
/**
|
|
7
|
+
* createNumberFormatter hook for solidaria
|
|
8
|
+
*
|
|
9
|
+
* Provides localized number formatting with automatic locale updates.
|
|
10
|
+
*
|
|
11
|
+
* Port of @react-aria/i18n useNumberFormatter.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Provides localized number formatting for the current locale.
|
|
15
|
+
* Automatically updates when the locale changes.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```tsx
|
|
19
|
+
* function PriceDisplay(props: { value: number }) {
|
|
20
|
+
* const formatter = createNumberFormatter({
|
|
21
|
+
* style: 'currency',
|
|
22
|
+
* currency: 'USD',
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* return <span>{formatter().format(props.value)}</span>;
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* // Percent formatting
|
|
32
|
+
* const percentFormatter = createNumberFormatter({
|
|
33
|
+
* style: 'percent',
|
|
34
|
+
* minimumFractionDigits: 1,
|
|
35
|
+
* });
|
|
36
|
+
* percentFormatter().format(0.125); // '12.5%'
|
|
37
|
+
*
|
|
38
|
+
* // Unit formatting
|
|
39
|
+
* const tempFormatter = createNumberFormatter({
|
|
40
|
+
* style: 'unit',
|
|
41
|
+
* unit: 'celsius',
|
|
42
|
+
* });
|
|
43
|
+
* tempFormatter().format(25); // '25°C'
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
function createNumberFormatter(options = {}) {
|
|
47
|
+
const locale = useLocale();
|
|
48
|
+
return createMemo(() => new NumberFormatter(locale().locale, options));
|
|
49
|
+
}
|
|
50
|
+
//#endregion
|
|
51
|
+
//#region src/i18n/createDateFormatter.ts
|
|
52
|
+
/**
|
|
53
|
+
* createDateFormatter hook for solidaria
|
|
54
|
+
*
|
|
55
|
+
* Provides localized date formatting with caching.
|
|
56
|
+
*
|
|
57
|
+
* Port of @react-aria/i18n useDateFormatter.
|
|
58
|
+
*/
|
|
59
|
+
const dateFormatterCache = /* @__PURE__ */ new Map();
|
|
60
|
+
/**
|
|
61
|
+
* Gets or creates a cached date formatter.
|
|
62
|
+
*/
|
|
63
|
+
function getCachedDateFormatter(locale, options) {
|
|
64
|
+
const cacheKey = createCacheKey(locale, options);
|
|
65
|
+
if (dateFormatterCache.has(cacheKey)) return dateFormatterCache.get(cacheKey);
|
|
66
|
+
const formatter = new Intl.DateTimeFormat(locale, options);
|
|
67
|
+
dateFormatterCache.set(cacheKey, formatter);
|
|
68
|
+
return formatter;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Provides localized date and time formatting for the current locale.
|
|
72
|
+
* Automatically updates when the locale changes.
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```tsx
|
|
76
|
+
* function DateDisplay(props: { date: Date }) {
|
|
77
|
+
* const formatter = createDateFormatter({
|
|
78
|
+
* year: 'numeric',
|
|
79
|
+
* month: 'long',
|
|
80
|
+
* day: 'numeric',
|
|
81
|
+
* });
|
|
82
|
+
*
|
|
83
|
+
* return <span>{formatter().format(props.date)}</span>;
|
|
84
|
+
* }
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```tsx
|
|
89
|
+
* // Short date
|
|
90
|
+
* const shortDate = createDateFormatter({ dateStyle: 'short' });
|
|
91
|
+
* shortDate().format(new Date()); // '1/19/26' (US) or '19/01/26' (UK)
|
|
92
|
+
*
|
|
93
|
+
* // Full date with time
|
|
94
|
+
* const fullDateTime = createDateFormatter({
|
|
95
|
+
* dateStyle: 'full',
|
|
96
|
+
* timeStyle: 'short',
|
|
97
|
+
* });
|
|
98
|
+
*
|
|
99
|
+
* // Time only
|
|
100
|
+
* const timeFormatter = createDateFormatter({
|
|
101
|
+
* hour: 'numeric',
|
|
102
|
+
* minute: '2-digit',
|
|
103
|
+
* });
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
function createDateFormatter(options) {
|
|
107
|
+
const locale = useLocale();
|
|
108
|
+
return createMemo(() => getCachedDateFormatter(locale().locale, options));
|
|
109
|
+
}
|
|
110
|
+
//#endregion
|
|
111
|
+
//#region src/i18n/createFilter.ts
|
|
112
|
+
/**
|
|
113
|
+
* createFilter hook for solidaria
|
|
114
|
+
*
|
|
115
|
+
* Provides localized string filtering with collation support.
|
|
116
|
+
*
|
|
117
|
+
* Port of @react-aria/i18n useFilter.
|
|
118
|
+
*/
|
|
119
|
+
/**
|
|
120
|
+
* Provides localized string search functionality for filtering or matching items.
|
|
121
|
+
* Respects locale-specific collation rules for case and diacritic sensitivity.
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```tsx
|
|
125
|
+
* function SearchableList(props: { items: { name: string }[] }) {
|
|
126
|
+
* const [query, setQuery] = createSignal('');
|
|
127
|
+
* const filter = createFilter({ sensitivity: 'base' });
|
|
128
|
+
*
|
|
129
|
+
* const filteredItems = () =>
|
|
130
|
+
* props.items.filter((item) =>
|
|
131
|
+
* filter().contains(item.name, query())
|
|
132
|
+
* );
|
|
133
|
+
*
|
|
134
|
+
* return (
|
|
135
|
+
* <>
|
|
136
|
+
* <input
|
|
137
|
+
* value={query()}
|
|
138
|
+
* onInput={(e) => setQuery(e.target.value)}
|
|
139
|
+
* placeholder="Search..."
|
|
140
|
+
* />
|
|
141
|
+
* <ul>
|
|
142
|
+
* <For each={filteredItems()}>
|
|
143
|
+
* {(item) => <li>{item.name}</li>}
|
|
144
|
+
* </For>
|
|
145
|
+
* </ul>
|
|
146
|
+
* </>
|
|
147
|
+
* );
|
|
148
|
+
* }
|
|
149
|
+
* ```
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```tsx
|
|
153
|
+
* // Case-insensitive, diacritic-insensitive filtering
|
|
154
|
+
* const filter = createFilter({ sensitivity: 'base' });
|
|
155
|
+
* filter().contains('Café', 'cafe'); // true
|
|
156
|
+
* filter().startsWith('Hello', 'hello'); // true
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
function createFilter(options) {
|
|
160
|
+
const collator = createCollator({
|
|
161
|
+
usage: "search",
|
|
162
|
+
...options
|
|
163
|
+
});
|
|
164
|
+
return createMemo(() => {
|
|
165
|
+
const coll = collator();
|
|
166
|
+
const startsWith = (str, substring) => {
|
|
167
|
+
if (substring.length === 0) return true;
|
|
168
|
+
const normalizedStr = str.normalize("NFC");
|
|
169
|
+
const normalizedSub = substring.normalize("NFC");
|
|
170
|
+
return coll.compare(normalizedStr.slice(0, normalizedSub.length), normalizedSub) === 0;
|
|
171
|
+
};
|
|
172
|
+
const endsWith = (str, substring) => {
|
|
173
|
+
if (substring.length === 0) return true;
|
|
174
|
+
const normalizedStr = str.normalize("NFC");
|
|
175
|
+
const normalizedSub = substring.normalize("NFC");
|
|
176
|
+
return coll.compare(normalizedStr.slice(-normalizedSub.length), normalizedSub) === 0;
|
|
177
|
+
};
|
|
178
|
+
const contains = (str, substring) => {
|
|
179
|
+
if (substring.length === 0) return true;
|
|
180
|
+
const normalizedStr = str.normalize("NFC");
|
|
181
|
+
const normalizedSub = substring.normalize("NFC");
|
|
182
|
+
const sliceLen = normalizedSub.length;
|
|
183
|
+
for (let scan = 0; scan + sliceLen <= normalizedStr.length; scan++) {
|
|
184
|
+
const slice = normalizedStr.slice(scan, scan + sliceLen);
|
|
185
|
+
if (coll.compare(normalizedSub, slice) === 0) return true;
|
|
186
|
+
}
|
|
187
|
+
return false;
|
|
188
|
+
};
|
|
189
|
+
return {
|
|
190
|
+
startsWith,
|
|
191
|
+
endsWith,
|
|
192
|
+
contains
|
|
193
|
+
};
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
//#endregion
|
|
197
|
+
//#region src/i18n/createStringFormatter.ts
|
|
198
|
+
/**
|
|
199
|
+
* String formatter for localized strings with ICU MessageFormat support.
|
|
200
|
+
* Port of @react-aria/i18n useLocalizedStringFormatter.
|
|
201
|
+
*/
|
|
202
|
+
const cache = /* @__PURE__ */ new WeakMap();
|
|
203
|
+
function getCachedDictionary(strings) {
|
|
204
|
+
let dictionary = cache.get(strings);
|
|
205
|
+
if (!dictionary) {
|
|
206
|
+
dictionary = new LocalizedStringDictionary(strings);
|
|
207
|
+
cache.set(strings, dictionary);
|
|
208
|
+
}
|
|
209
|
+
return dictionary;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Returns a cached LocalizedStringDictionary for the given strings.
|
|
213
|
+
*/
|
|
214
|
+
function createStringDictionary(strings, packageName) {
|
|
215
|
+
return packageName && LocalizedStringDictionary.getGlobalDictionaryForPackage(packageName) || getCachedDictionary(strings);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Provides localized string formatting for the current locale.
|
|
219
|
+
* Supports interpolating variables, selecting the correct pluralization,
|
|
220
|
+
* and formatting numbers. Automatically updates when the locale changes.
|
|
221
|
+
*
|
|
222
|
+
* @param strings - A mapping of languages to localized strings by key.
|
|
223
|
+
* @param packageName - Optional package name for global dictionary lookup.
|
|
224
|
+
*
|
|
225
|
+
* @example
|
|
226
|
+
* ```tsx
|
|
227
|
+
* const strings = {
|
|
228
|
+
* 'en-US': {
|
|
229
|
+
* greeting: 'Hello, {name}!',
|
|
230
|
+
* count: '{count, plural, one {# item} other {# items}}'
|
|
231
|
+
* }
|
|
232
|
+
* };
|
|
233
|
+
*
|
|
234
|
+
* function MyComponent() {
|
|
235
|
+
* const stringFormatter = createStringFormatter(strings);
|
|
236
|
+
*
|
|
237
|
+
* return (
|
|
238
|
+
* <div>
|
|
239
|
+
* {stringFormatter().format('greeting', { name: 'World' })}
|
|
240
|
+
* {stringFormatter().format('count', { count: 5 })}
|
|
241
|
+
* </div>
|
|
242
|
+
* );
|
|
243
|
+
* }
|
|
244
|
+
* ```
|
|
245
|
+
*/
|
|
246
|
+
function createStringFormatter(strings, packageName) {
|
|
247
|
+
const localeAccessor = useLocale();
|
|
248
|
+
const dictionary = createStringDictionary(strings, packageName);
|
|
249
|
+
return createMemo(() => new LocalizedStringFormatter(localeAccessor().locale, dictionary));
|
|
250
|
+
}
|
|
251
|
+
//#endregion
|
|
252
|
+
export { createDateFormatter as a, createFilter as i, createStringDictionary as n, createNumberFormatter as o, createStringFormatter as r, NumberFormatter$1 as t };
|
|
253
|
+
|
|
254
|
+
//# sourceMappingURL=i18n.js.map
|