@proyecto-viviana/solidaria 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_chunk/DragManager.js +627 -0
- package/dist/_chunk/DragManager.js.map +1 -0
- package/dist/_chunk/DragManager.jsx +627 -0
- package/dist/_chunk/DragManager.jsx.map +1 -0
- package/dist/_chunk/FocusScope.js +400 -0
- package/dist/_chunk/FocusScope.js.map +1 -0
- package/dist/_chunk/FocusScope.jsx +375 -0
- package/dist/_chunk/FocusScope.jsx.map +1 -0
- package/dist/_chunk/actiongroup.js +141 -0
- package/dist/_chunk/actiongroup.js.map +1 -0
- package/dist/_chunk/actiongroup.jsx +141 -0
- package/dist/_chunk/actiongroup.jsx.map +1 -0
- package/dist/_chunk/announce.js +207 -0
- package/dist/_chunk/announce.js.map +1 -0
- package/dist/_chunk/announce.jsx +207 -0
- package/dist/_chunk/announce.jsx.map +1 -0
- package/dist/_chunk/ariaHideOutside.js +122 -0
- package/dist/_chunk/ariaHideOutside.js.map +1 -0
- package/dist/_chunk/ariaHideOutside.jsx +122 -0
- package/dist/_chunk/ariaHideOutside.jsx.map +1 -0
- package/dist/_chunk/autocomplete.js +244 -0
- package/dist/_chunk/autocomplete.js.map +1 -0
- package/dist/_chunk/autocomplete.jsx +244 -0
- package/dist/_chunk/autocomplete.jsx.map +1 -0
- package/dist/_chunk/breadcrumbs.js +121 -0
- package/dist/_chunk/breadcrumbs.js.map +1 -0
- package/dist/_chunk/breadcrumbs.jsx +121 -0
- package/dist/_chunk/breadcrumbs.jsx.map +1 -0
- package/dist/_chunk/button.js +275 -0
- package/dist/_chunk/button.js.map +1 -0
- package/dist/_chunk/button.jsx +275 -0
- package/dist/_chunk/button.jsx.map +1 -0
- package/dist/_chunk/calendar.js +1037 -0
- package/dist/_chunk/calendar.js.map +1 -0
- package/dist/_chunk/calendar.jsx +1037 -0
- package/dist/_chunk/calendar.jsx.map +1 -0
- package/dist/_chunk/checkbox.js +235 -0
- package/dist/_chunk/checkbox.js.map +1 -0
- package/dist/_chunk/checkbox.jsx +235 -0
- package/dist/_chunk/checkbox.jsx.map +1 -0
- package/dist/_chunk/color.js +1458 -0
- package/dist/_chunk/color.js.map +1 -0
- package/dist/_chunk/color.jsx +1458 -0
- package/dist/_chunk/color.jsx.map +1 -0
- package/dist/_chunk/combobox.js +1062 -0
- package/dist/_chunk/combobox.js.map +1 -0
- package/dist/_chunk/combobox.jsx +1062 -0
- package/dist/_chunk/combobox.jsx.map +1 -0
- package/dist/_chunk/constants.js +19 -0
- package/dist/_chunk/constants.js.map +1 -0
- package/dist/_chunk/constants.jsx +19 -0
- package/dist/_chunk/constants.jsx.map +1 -0
- package/dist/_chunk/createCollator.js +61 -0
- package/dist/_chunk/createCollator.js.map +1 -0
- package/dist/_chunk/createCollator.jsx +61 -0
- package/dist/_chunk/createCollator.jsx.map +1 -0
- package/dist/_chunk/createCollectionRowInteraction.js +133 -0
- package/dist/_chunk/createCollectionRowInteraction.js.map +1 -0
- package/dist/_chunk/createCollectionRowInteraction.jsx +133 -0
- package/dist/_chunk/createCollectionRowInteraction.jsx.map +1 -0
- package/dist/_chunk/createField.js +55 -0
- package/dist/_chunk/createField.js.map +1 -0
- package/dist/_chunk/createField.jsx +55 -0
- package/dist/_chunk/createField.jsx.map +1 -0
- package/dist/_chunk/createFocus.js +105 -0
- package/dist/_chunk/createFocus.js.map +1 -0
- package/dist/_chunk/createFocus.jsx +105 -0
- package/dist/_chunk/createFocus.jsx.map +1 -0
- package/dist/_chunk/createFocusRing.js +54 -0
- package/dist/_chunk/createFocusRing.js.map +1 -0
- package/dist/_chunk/createFocusRing.jsx +54 -0
- package/dist/_chunk/createFocusRing.jsx.map +1 -0
- package/dist/_chunk/createFocusWithin.js +120 -0
- package/dist/_chunk/createFocusWithin.js.map +1 -0
- package/dist/_chunk/createFocusWithin.jsx +120 -0
- package/dist/_chunk/createFocusWithin.jsx.map +1 -0
- package/dist/_chunk/createFocusable.js +131 -0
- package/dist/_chunk/createFocusable.js.map +1 -0
- package/dist/_chunk/createFocusable.jsx +131 -0
- package/dist/_chunk/createFocusable.jsx.map +1 -0
- package/dist/_chunk/createFormReset.js +39 -0
- package/dist/_chunk/createFormReset.js.map +1 -0
- package/dist/_chunk/createFormReset.jsx +39 -0
- package/dist/_chunk/createFormReset.jsx.map +1 -0
- package/dist/_chunk/createFormValidation.js +135 -0
- package/dist/_chunk/createFormValidation.js.map +1 -0
- package/dist/_chunk/createFormValidation.jsx +135 -0
- package/dist/_chunk/createFormValidation.jsx.map +1 -0
- package/dist/_chunk/createHover.js +131 -0
- package/dist/_chunk/createHover.js.map +1 -0
- package/dist/_chunk/createHover.jsx +131 -0
- package/dist/_chunk/createHover.jsx.map +1 -0
- package/dist/_chunk/createInteractionModality.js +268 -0
- package/dist/_chunk/createInteractionModality.js.map +1 -0
- package/dist/_chunk/createInteractionModality.jsx +268 -0
- package/dist/_chunk/createInteractionModality.jsx.map +1 -0
- package/dist/_chunk/createLabel.js +47 -0
- package/dist/_chunk/createLabel.js.map +1 -0
- package/dist/_chunk/createLabel.jsx +47 -0
- package/dist/_chunk/createLabel.jsx.map +1 -0
- package/dist/_chunk/createLabels.js +32 -0
- package/dist/_chunk/createLabels.js.map +1 -0
- package/dist/_chunk/createLabels.jsx +32 -0
- package/dist/_chunk/createLabels.jsx.map +1 -0
- package/dist/_chunk/createLandmark.js +198 -0
- package/dist/_chunk/createLandmark.js.map +1 -0
- package/dist/_chunk/createLandmark.jsx +198 -0
- package/dist/_chunk/createLandmark.jsx.map +1 -0
- package/dist/_chunk/createOverlay.js +327 -0
- package/dist/_chunk/createOverlay.js.map +1 -0
- package/dist/_chunk/createOverlay.jsx +327 -0
- package/dist/_chunk/createOverlay.jsx.map +1 -0
- package/dist/_chunk/createPress.js +526 -0
- package/dist/_chunk/createPress.js.map +1 -0
- package/dist/_chunk/createPress.jsx +526 -0
- package/dist/_chunk/createPress.jsx.map +1 -0
- package/dist/_chunk/createProgressBar.js +82 -0
- package/dist/_chunk/createProgressBar.js.map +1 -0
- package/dist/_chunk/createProgressBar.jsx +82 -0
- package/dist/_chunk/createProgressBar.jsx.map +1 -0
- package/dist/_chunk/createSelectableItem.js +302 -0
- package/dist/_chunk/createSelectableItem.js.map +1 -0
- package/dist/_chunk/createSelectableItem.jsx +302 -0
- package/dist/_chunk/createSelectableItem.jsx.map +1 -0
- package/dist/_chunk/createStringFormatter.js +61 -0
- package/dist/_chunk/createStringFormatter.js.map +1 -0
- package/dist/_chunk/createStringFormatter.jsx +61 -0
- package/dist/_chunk/createStringFormatter.jsx.map +1 -0
- package/dist/_chunk/createToggle.js +159 -0
- package/dist/_chunk/createToggle.js.map +1 -0
- package/dist/_chunk/createToggle.jsx +159 -0
- package/dist/_chunk/createToggle.jsx.map +1 -0
- package/dist/_chunk/createTypeSelect.js +125 -0
- package/dist/_chunk/createTypeSelect.js.map +1 -0
- package/dist/_chunk/createTypeSelect.jsx +125 -0
- package/dist/_chunk/createTypeSelect.jsx.map +1 -0
- package/dist/_chunk/datepicker.js +1706 -0
- package/dist/_chunk/datepicker.js.map +1 -0
- package/dist/_chunk/datepicker.jsx +1706 -0
- package/dist/_chunk/datepicker.jsx.map +1 -0
- package/dist/_chunk/dialog.js +62 -0
- package/dist/_chunk/dialog.js.map +1 -0
- package/dist/_chunk/dialog.jsx +62 -0
- package/dist/_chunk/dialog.jsx.map +1 -0
- package/dist/_chunk/disclosure.js +185 -0
- package/dist/_chunk/disclosure.js.map +1 -0
- package/dist/_chunk/disclosure.jsx +185 -0
- package/dist/_chunk/disclosure.jsx.map +1 -0
- package/dist/_chunk/dnd.js +2395 -0
- package/dist/_chunk/dnd.js.map +1 -0
- package/dist/_chunk/dnd.jsx +2395 -0
- package/dist/_chunk/dnd.jsx.map +1 -0
- package/dist/_chunk/env.js +87 -0
- package/dist/_chunk/env.js.map +1 -0
- package/dist/_chunk/env.jsx +87 -0
- package/dist/_chunk/env.jsx.map +1 -0
- package/dist/_chunk/filterDOMProps.js +82 -0
- package/dist/_chunk/filterDOMProps.js.map +1 -0
- package/dist/_chunk/filterDOMProps.jsx +82 -0
- package/dist/_chunk/filterDOMProps.jsx.map +1 -0
- package/dist/_chunk/focus.js +399 -0
- package/dist/_chunk/focus.js.map +1 -0
- package/dist/_chunk/focus.jsx +399 -0
- package/dist/_chunk/focus.jsx.map +1 -0
- package/dist/_chunk/focus2.js +631 -0
- package/dist/_chunk/focus2.js.map +1 -0
- package/dist/_chunk/focus2.jsx +631 -0
- package/dist/_chunk/focus2.jsx.map +1 -0
- package/dist/_chunk/grid.js +623 -0
- package/dist/_chunk/grid.js.map +1 -0
- package/dist/_chunk/grid.jsx +623 -0
- package/dist/_chunk/grid.jsx.map +1 -0
- package/dist/_chunk/gridlist.js +369 -0
- package/dist/_chunk/gridlist.js.map +1 -0
- package/dist/_chunk/gridlist.jsx +369 -0
- package/dist/_chunk/gridlist.jsx.map +1 -0
- package/dist/_chunk/i18n.js +199 -0
- package/dist/_chunk/i18n.js.map +1 -0
- package/dist/_chunk/i18n.jsx +199 -0
- package/dist/_chunk/i18n.jsx.map +1 -0
- package/dist/_chunk/interactions.js +331 -0
- package/dist/_chunk/interactions.js.map +1 -0
- package/dist/_chunk/interactions.jsx +325 -0
- package/dist/_chunk/interactions.jsx.map +1 -0
- package/dist/_chunk/link.js +97 -0
- package/dist/_chunk/link.js.map +1 -0
- package/dist/_chunk/link.jsx +97 -0
- package/dist/_chunk/link.jsx.map +1 -0
- package/dist/_chunk/listbox.js +356 -0
- package/dist/_chunk/listbox.js.map +1 -0
- package/dist/_chunk/listbox.jsx +356 -0
- package/dist/_chunk/listbox.jsx.map +1 -0
- package/dist/_chunk/locale.js +173 -0
- package/dist/_chunk/locale.js.map +1 -0
- package/dist/_chunk/locale.jsx +167 -0
- package/dist/_chunk/locale.jsx.map +1 -0
- package/dist/_chunk/menu.js +519 -0
- package/dist/_chunk/menu.js.map +1 -0
- package/dist/_chunk/menu.jsx +519 -0
- package/dist/_chunk/menu.jsx.map +1 -0
- package/dist/_chunk/meter.js +33 -0
- package/dist/_chunk/meter.js.map +1 -0
- package/dist/_chunk/meter.jsx +33 -0
- package/dist/_chunk/meter.jsx.map +1 -0
- package/dist/_chunk/numberfield.js +259 -0
- package/dist/_chunk/numberfield.js.map +1 -0
- package/dist/_chunk/numberfield.jsx +259 -0
- package/dist/_chunk/numberfield.jsx.map +1 -0
- package/dist/_chunk/overlays.js +186 -0
- package/dist/_chunk/overlays.js.map +1 -0
- package/dist/_chunk/overlays.jsx +162 -0
- package/dist/_chunk/overlays.jsx.map +1 -0
- package/dist/_chunk/popover.js +574 -0
- package/dist/_chunk/popover.js.map +1 -0
- package/dist/_chunk/popover.jsx +574 -0
- package/dist/_chunk/popover.jsx.map +1 -0
- package/dist/_chunk/radio.js +320 -0
- package/dist/_chunk/radio.js.map +1 -0
- package/dist/_chunk/radio.jsx +320 -0
- package/dist/_chunk/radio.jsx.map +1 -0
- package/dist/_chunk/reactivity.js +21 -0
- package/dist/_chunk/reactivity.js.map +1 -0
- package/dist/_chunk/reactivity.jsx +21 -0
- package/dist/_chunk/reactivity.jsx.map +1 -0
- package/dist/_chunk/searchfield.js +210 -0
- package/dist/_chunk/searchfield.js.map +1 -0
- package/dist/_chunk/searchfield.jsx +210 -0
- package/dist/_chunk/searchfield.jsx.map +1 -0
- package/dist/_chunk/select.js +406 -0
- package/dist/_chunk/select.js.map +1 -0
- package/dist/_chunk/select.jsx +397 -0
- package/dist/_chunk/select.jsx.map +1 -0
- package/dist/_chunk/selection.js +666 -0
- package/dist/_chunk/selection.js.map +1 -0
- package/dist/_chunk/selection.jsx +666 -0
- package/dist/_chunk/selection.jsx.map +1 -0
- package/dist/_chunk/separator.js +29 -0
- package/dist/_chunk/separator.js.map +1 -0
- package/dist/_chunk/separator.jsx +29 -0
- package/dist/_chunk/separator.jsx.map +1 -0
- package/dist/_chunk/slider.js +256 -0
- package/dist/_chunk/slider.js.map +1 -0
- package/dist/_chunk/slider.jsx +256 -0
- package/dist/_chunk/slider.jsx.map +1 -0
- package/dist/_chunk/spinbutton.js +153 -0
- package/dist/_chunk/spinbutton.js.map +1 -0
- package/dist/_chunk/spinbutton.jsx +153 -0
- package/dist/_chunk/spinbutton.jsx.map +1 -0
- package/dist/_chunk/steplist.js +66 -0
- package/dist/_chunk/steplist.js.map +1 -0
- package/dist/_chunk/steplist.jsx +66 -0
- package/dist/_chunk/steplist.jsx.map +1 -0
- package/dist/_chunk/switch.js +34 -0
- package/dist/_chunk/switch.js.map +1 -0
- package/dist/_chunk/switch.jsx +34 -0
- package/dist/_chunk/switch.jsx.map +1 -0
- package/dist/_chunk/table.js +1088 -0
- package/dist/_chunk/table.js.map +1 -0
- package/dist/_chunk/table.jsx +1088 -0
- package/dist/_chunk/table.jsx.map +1 -0
- package/dist/_chunk/tabs.js +263 -0
- package/dist/_chunk/tabs.js.map +1 -0
- package/dist/_chunk/tabs.jsx +263 -0
- package/dist/_chunk/tabs.jsx.map +1 -0
- package/dist/_chunk/tag.js +322 -0
- package/dist/_chunk/tag.js.map +1 -0
- package/dist/_chunk/tag.jsx +322 -0
- package/dist/_chunk/tag.jsx.map +1 -0
- package/dist/_chunk/textfield.js +110 -0
- package/dist/_chunk/textfield.js.map +1 -0
- package/dist/_chunk/textfield.jsx +110 -0
- package/dist/_chunk/textfield.jsx.map +1 -0
- package/dist/_chunk/toast.js +250 -0
- package/dist/_chunk/toast.js.map +1 -0
- package/dist/_chunk/toast.jsx +250 -0
- package/dist/_chunk/toast.jsx.map +1 -0
- package/dist/_chunk/toolbar.js +226 -0
- package/dist/_chunk/toolbar.js.map +1 -0
- package/dist/_chunk/toolbar.jsx +226 -0
- package/dist/_chunk/toolbar.jsx.map +1 -0
- package/dist/_chunk/tooltip.js +185 -0
- package/dist/_chunk/tooltip.js.map +1 -0
- package/dist/_chunk/tooltip.jsx +185 -0
- package/dist/_chunk/tooltip.jsx.map +1 -0
- package/dist/_chunk/tree.js +452 -0
- package/dist/_chunk/tree.js.map +1 -0
- package/dist/_chunk/tree.jsx +452 -0
- package/dist/_chunk/tree.jsx.map +1 -0
- package/dist/_chunk/utils.js +705 -0
- package/dist/_chunk/utils.js.map +1 -0
- package/dist/_chunk/utils.jsx +705 -0
- package/dist/_chunk/utils.jsx.map +1 -0
- package/dist/_chunk/visually-hidden.js +93 -0
- package/dist/_chunk/visually-hidden.js.map +1 -0
- package/dist/_chunk/visually-hidden.jsx +93 -0
- package/dist/_chunk/visually-hidden.jsx.map +1 -0
- package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
- package/dist/actiongroup/index.js +2 -0
- package/dist/actiongroup/index.jsx +2 -0
- package/dist/autocomplete/createAutocomplete.d.ts +12 -7
- package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
- package/dist/autocomplete/index.js +2 -0
- package/dist/autocomplete/index.jsx +2 -0
- package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
- package/dist/breadcrumbs/index.js +2 -0
- package/dist/breadcrumbs/index.jsx +2 -0
- package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
- package/dist/button/index.js +2 -0
- package/dist/button/index.jsx +2 -0
- package/dist/calendar/createCalendar.d.ts.map +1 -1
- package/dist/calendar/createCalendarCell.d.ts.map +1 -1
- package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
- package/dist/calendar/createCalendarMonthPicker.d.ts +41 -0
- package/dist/calendar/createCalendarMonthPicker.d.ts.map +1 -0
- package/dist/calendar/createCalendarYearPicker.d.ts +49 -0
- package/dist/calendar/createCalendarYearPicker.d.ts.map +1 -0
- package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
- package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
- package/dist/calendar/index.d.ts +2 -0
- package/dist/calendar/index.d.ts.map +1 -1
- package/dist/calendar/index.js +2 -0
- package/dist/calendar/index.jsx +2 -0
- package/dist/calendar/intl/index.d.ts +1 -1
- package/dist/calendar/intl/index.d.ts.map +1 -1
- package/dist/calendar/utils.d.ts +4 -0
- package/dist/calendar/utils.d.ts.map +1 -1
- package/dist/checkbox/createCheckbox.d.ts +4 -0
- package/dist/checkbox/createCheckbox.d.ts.map +1 -1
- package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
- package/dist/checkbox/index.js +2 -0
- package/dist/checkbox/index.jsx +2 -0
- package/dist/collections/index.js +160 -0
- package/dist/collections/index.js.map +1 -0
- package/dist/collections/index.jsx +160 -0
- package/dist/collections/index.jsx.map +1 -0
- package/dist/color/createColorArea.d.ts.map +1 -1
- package/dist/color/createColorField.d.ts.map +1 -1
- package/dist/color/createColorSlider.d.ts.map +1 -1
- package/dist/color/createColorSwatch.d.ts.map +1 -1
- package/dist/color/createColorWheel.d.ts.map +1 -1
- package/dist/color/index.js +2 -0
- package/dist/color/index.jsx +2 -0
- package/dist/color/intl/index.d.ts +30 -0
- package/dist/color/intl/index.d.ts.map +1 -0
- package/dist/combobox/createComboBox.d.ts.map +1 -1
- package/dist/combobox/index.js +2 -0
- package/dist/combobox/index.jsx +2 -0
- package/dist/combobox/intl/generated-locales.d.ts +16 -0
- package/dist/combobox/intl/generated-locales.d.ts.map +1 -0
- package/dist/combobox/intl/index.d.ts +2 -2
- package/dist/combobox/intl/index.d.ts.map +1 -1
- package/dist/datepicker/createDateField.d.ts +45 -23
- package/dist/datepicker/createDateField.d.ts.map +1 -1
- package/dist/datepicker/createDatePicker.d.ts +34 -6
- package/dist/datepicker/createDatePicker.d.ts.map +1 -1
- package/dist/datepicker/createDatePickerGroup.d.ts +13 -13
- package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -1
- package/dist/datepicker/createDateRangePicker.d.ts +55 -7
- package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
- package/dist/datepicker/createDateSegment.d.ts +6 -15
- package/dist/datepicker/createDateSegment.d.ts.map +1 -1
- package/dist/datepicker/createDisplayNames.d.ts +17 -0
- package/dist/datepicker/createDisplayNames.d.ts.map +1 -0
- package/dist/datepicker/createTimeField.d.ts +12 -49
- package/dist/datepicker/createTimeField.d.ts.map +1 -1
- package/dist/datepicker/index.d.ts +3 -3
- package/dist/datepicker/index.d.ts.map +1 -1
- package/dist/datepicker/index.js +2 -0
- package/dist/datepicker/index.jsx +2 -0
- package/dist/datepicker/intl.d.ts +12 -0
- package/dist/datepicker/intl.d.ts.map +1 -0
- package/dist/dialog/index.js +2 -0
- package/dist/dialog/index.jsx +2 -0
- package/dist/disclosure/index.js +2 -0
- package/dist/disclosure/index.jsx +2 -0
- package/dist/dnd/DragManager.d.ts +86 -0
- package/dist/dnd/DragManager.d.ts.map +1 -0
- package/dist/dnd/DropTargetKeyboardNavigation.d.ts +42 -0
- package/dist/dnd/DropTargetKeyboardNavigation.d.ts.map +1 -0
- package/dist/dnd/createDrag.d.ts.map +1 -1
- package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
- package/dist/dnd/createDraggableItem.d.ts +12 -7
- package/dist/dnd/createDraggableItem.d.ts.map +1 -1
- package/dist/dnd/createDroppableCollection.d.ts +7 -15
- package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
- package/dist/dnd/index.d.ts +5 -1
- package/dist/dnd/index.d.ts.map +1 -1
- package/dist/dnd/index.js +3 -0
- package/dist/dnd/index.jsx +3 -0
- package/dist/dnd/intl/index.d.ts +39 -0
- package/dist/dnd/intl/index.d.ts.map +1 -0
- package/dist/dnd/utils.d.ts +7 -2
- package/dist/dnd/utils.d.ts.map +1 -1
- package/dist/focus/FocusScope.d.ts +7 -0
- package/dist/focus/FocusScope.d.ts.map +1 -1
- package/dist/focus/index.d.ts +2 -1
- package/dist/focus/index.d.ts.map +1 -1
- package/dist/focus/index.js +3 -0
- package/dist/focus/index.jsx +3 -0
- package/dist/focus/virtualFocus.d.ts +26 -0
- package/dist/focus/virtualFocus.d.ts.map +1 -0
- package/dist/form/createFormValidation.d.ts.map +1 -1
- package/dist/form/index.js +3 -0
- package/dist/form/index.jsx +3 -0
- package/dist/grid/index.js +2 -0
- package/dist/grid/index.jsx +2 -0
- package/dist/gridlist/createGridList.d.ts +7 -1
- package/dist/gridlist/createGridList.d.ts.map +1 -1
- package/dist/gridlist/createGridListItem.d.ts +1 -1
- package/dist/gridlist/createGridListItem.d.ts.map +1 -1
- package/dist/gridlist/createGridListSection.d.ts +15 -0
- package/dist/gridlist/createGridListSection.d.ts.map +1 -0
- package/dist/gridlist/index.d.ts +2 -1
- package/dist/gridlist/index.d.ts.map +1 -1
- package/dist/gridlist/index.js +2 -0
- package/dist/gridlist/index.jsx +2 -0
- package/dist/gridlist/types.d.ts +50 -0
- package/dist/gridlist/types.d.ts.map +1 -1
- package/dist/i18n/index.js +5 -0
- package/dist/i18n/index.jsx +5 -0
- package/dist/index.d.ts +10 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +77 -18311
- package/dist/index.jsx +77 -18242
- package/dist/interactions/FocusableProvider.d.ts.map +1 -1
- package/dist/interactions/PressEvent.d.ts +11 -0
- package/dist/interactions/PressEvent.d.ts.map +1 -1
- package/dist/interactions/createFocus.d.ts.map +1 -1
- package/dist/interactions/createFocusWithin.d.ts.map +1 -1
- package/dist/interactions/createInteractionModality.d.ts +0 -1
- package/dist/interactions/createInteractionModality.d.ts.map +1 -1
- package/dist/interactions/createKeyboard.d.ts.map +1 -1
- package/dist/interactions/createPress.d.ts.map +1 -1
- package/dist/interactions/index.js +9 -0
- package/dist/interactions/index.jsx +9 -0
- package/dist/label/createLabels.d.ts.map +1 -1
- package/dist/label/index.js +4 -0
- package/dist/label/index.jsx +4 -0
- package/dist/landmark/index.js +2 -0
- package/dist/landmark/index.jsx +2 -0
- package/dist/link/index.js +2 -0
- package/dist/link/index.jsx +2 -0
- package/dist/listbox/createListBox.d.ts +37 -0
- package/dist/listbox/createListBox.d.ts.map +1 -1
- package/dist/listbox/createOption.d.ts +7 -1
- package/dist/listbox/createOption.d.ts.map +1 -1
- package/dist/listbox/index.js +2 -0
- package/dist/listbox/index.jsx +2 -0
- package/dist/live-announcer/index.js +2 -0
- package/dist/live-announcer/index.jsx +2 -0
- package/dist/menu/createMenu.d.ts +7 -4
- package/dist/menu/createMenu.d.ts.map +1 -1
- package/dist/menu/createMenuItem.d.ts +9 -1
- package/dist/menu/createMenuItem.d.ts.map +1 -1
- package/dist/menu/index.js +2 -0
- package/dist/menu/index.jsx +2 -0
- package/dist/meter/index.js +2 -0
- package/dist/meter/index.jsx +2 -0
- package/dist/numberfield/createNumberField.d.ts.map +1 -1
- package/dist/numberfield/index.js +2 -0
- package/dist/numberfield/index.jsx +2 -0
- package/dist/overlays/index.js +4 -0
- package/dist/overlays/index.jsx +4 -0
- package/dist/popover/calculatePosition.d.ts +2 -0
- package/dist/popover/calculatePosition.d.ts.map +1 -1
- package/dist/popover/createOverlayPosition.d.ts +8 -0
- package/dist/popover/createOverlayPosition.d.ts.map +1 -1
- package/dist/popover/index.js +2 -0
- package/dist/popover/index.jsx +2 -0
- package/dist/progress/index.js +2 -0
- package/dist/progress/index.jsx +2 -0
- package/dist/radio/createRadio.d.ts +2 -0
- package/dist/radio/createRadio.d.ts.map +1 -1
- package/dist/radio/index.js +2 -0
- package/dist/radio/index.jsx +2 -0
- package/dist/searchfield/index.js +2 -0
- package/dist/searchfield/index.jsx +2 -0
- package/dist/select/createSelect.d.ts +2 -0
- package/dist/select/createSelect.d.ts.map +1 -1
- package/dist/select/index.js +2 -0
- package/dist/select/index.jsx +2 -0
- package/dist/selection/DOMLayoutDelegate.d.ts +58 -0
- package/dist/selection/DOMLayoutDelegate.d.ts.map +1 -0
- package/dist/selection/ListKeyboardDelegate.d.ts +95 -0
- package/dist/selection/ListKeyboardDelegate.d.ts.map +1 -0
- package/dist/selection/constants.d.ts +15 -0
- package/dist/selection/constants.d.ts.map +1 -0
- package/dist/selection/createCollectionRowInteraction.d.ts +13 -0
- package/dist/selection/createCollectionRowInteraction.d.ts.map +1 -0
- package/dist/selection/createScrollIntoViewOnFocus.d.ts +31 -0
- package/dist/selection/createScrollIntoViewOnFocus.d.ts.map +1 -0
- package/dist/selection/createSelectableCollection.d.ts +69 -0
- package/dist/selection/createSelectableCollection.d.ts.map +1 -0
- package/dist/selection/createSelectableItem.d.ts +154 -0
- package/dist/selection/createSelectableItem.d.ts.map +1 -0
- package/dist/selection/createSelectableList.d.ts +43 -0
- package/dist/selection/createSelectableList.d.ts.map +1 -0
- package/dist/selection/createTypeSelect.d.ts.map +1 -1
- package/dist/selection/index.d.ts +9 -0
- package/dist/selection/index.d.ts.map +1 -1
- package/dist/selection/index.js +5 -0
- package/dist/selection/index.jsx +5 -0
- package/dist/selection/selectItem.d.ts +29 -0
- package/dist/selection/selectItem.d.ts.map +1 -0
- package/dist/selection/utils.d.ts +40 -0
- package/dist/selection/utils.d.ts.map +1 -0
- package/dist/separator/index.js +2 -0
- package/dist/separator/index.jsx +2 -0
- package/dist/slider/createSlider.d.ts.map +1 -1
- package/dist/slider/index.js +2 -0
- package/dist/slider/index.jsx +2 -0
- package/dist/spinbutton/createSpinButton.d.ts +41 -0
- package/dist/spinbutton/createSpinButton.d.ts.map +1 -0
- package/dist/spinbutton/index.d.ts +3 -0
- package/dist/spinbutton/index.d.ts.map +1 -0
- package/dist/spinbutton/index.js +2 -0
- package/dist/spinbutton/index.jsx +2 -0
- package/dist/spinbutton/intl.d.ts +5 -0
- package/dist/spinbutton/intl.d.ts.map +1 -0
- package/dist/ssr/index.d.ts +17 -0
- package/dist/ssr/index.d.ts.map +1 -1
- package/dist/ssr/index.js +299 -0
- package/dist/ssr/index.js.map +1 -0
- package/dist/ssr/index.jsx +292 -0
- package/dist/ssr/index.jsx.map +1 -0
- package/dist/steplist/index.js +2 -0
- package/dist/steplist/index.jsx +2 -0
- package/dist/switch/createSwitch.d.ts +4 -0
- package/dist/switch/createSwitch.d.ts.map +1 -1
- package/dist/switch/index.js +2 -0
- package/dist/switch/index.jsx +2 -0
- package/dist/table/createTable.d.ts.map +1 -1
- package/dist/table/createTableColumnHeader.d.ts.map +1 -1
- package/dist/table/createTableRow.d.ts +1 -1
- package/dist/table/createTableRow.d.ts.map +1 -1
- package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
- package/dist/table/createTableSelectionCheckbox.d.ts.map +1 -1
- package/dist/table/index.js +2 -0
- package/dist/table/index.jsx +2 -0
- package/dist/table/types.d.ts +35 -1
- package/dist/table/types.d.ts.map +1 -1
- package/dist/table/utils.d.ts +15 -0
- package/dist/table/utils.d.ts.map +1 -0
- package/dist/tabs/createTabs.d.ts +5 -3
- package/dist/tabs/createTabs.d.ts.map +1 -1
- package/dist/tabs/index.js +2 -0
- package/dist/tabs/index.jsx +2 -0
- package/dist/tag/createTag.d.ts +2 -0
- package/dist/tag/createTag.d.ts.map +1 -1
- package/dist/tag/createTagGroup.d.ts +7 -0
- package/dist/tag/createTagGroup.d.ts.map +1 -1
- package/dist/tag/index.js +2 -0
- package/dist/tag/index.jsx +2 -0
- package/dist/textfield/index.js +2 -0
- package/dist/textfield/index.jsx +2 -0
- package/dist/toast/createToast.d.ts.map +1 -1
- package/dist/toast/index.js +2 -0
- package/dist/toast/index.jsx +2 -0
- package/dist/toggle/createToggle.d.ts +4 -0
- package/dist/toggle/createToggle.d.ts.map +1 -1
- package/dist/toggle/index.js +3 -0
- package/dist/toggle/index.jsx +3 -0
- package/dist/toolbar/createToolbar.d.ts +1 -1
- package/dist/toolbar/createToolbar.d.ts.map +1 -1
- package/dist/toolbar/index.js +2 -0
- package/dist/toolbar/index.jsx +2 -0
- package/dist/tooltip/index.js +2 -0
- package/dist/tooltip/index.jsx +2 -0
- package/dist/tree/createTree.d.ts +5 -1
- package/dist/tree/createTree.d.ts.map +1 -1
- package/dist/tree/createTreeItem.d.ts +1 -1
- package/dist/tree/createTreeItem.d.ts.map +1 -1
- package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
- package/dist/tree/index.js +2 -0
- package/dist/tree/index.jsx +2 -0
- package/dist/tree/types.d.ts +10 -0
- package/dist/tree/types.d.ts.map +1 -1
- package/dist/utils/animation.d.ts +60 -0
- package/dist/utils/animation.d.ts.map +1 -0
- package/dist/utils/dom.d.ts +49 -2
- package/dist/utils/dom.d.ts.map +1 -1
- package/dist/utils/index.d.ts +4 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.jsx +6 -0
- package/dist/utils/keyboard.d.ts +17 -0
- package/dist/utils/keyboard.d.ts.map +1 -0
- package/dist/utils/mergeProps.d.ts.map +1 -1
- package/dist/utils/scrollIntoView.d.ts +30 -0
- package/dist/utils/scrollIntoView.d.ts.map +1 -0
- package/dist/visually-hidden/index.js +2 -0
- package/dist/visually-hidden/index.jsx +2 -0
- package/package.json +304 -3
- package/src/actiongroup/createActionGroup.ts +26 -109
- package/src/autocomplete/createAutocomplete.ts +202 -35
- package/src/breadcrumbs/createBreadcrumbs.ts +12 -4
- package/src/button/createToggleButtonGroup.ts +19 -14
- package/src/calendar/createCalendar.ts +5 -4
- package/src/calendar/createCalendarCell.ts +36 -5
- package/src/calendar/createCalendarGrid.ts +47 -12
- package/src/calendar/createCalendarMonthPicker.ts +105 -0
- package/src/calendar/createCalendarYearPicker.ts +144 -0
- package/src/calendar/createRangeCalendar.ts +27 -15
- package/src/calendar/createRangeCalendarCell.ts +17 -3
- package/src/calendar/index.ts +17 -0
- package/src/calendar/intl/index.ts +8 -0
- package/src/calendar/utils.ts +4 -0
- package/src/checkbox/createCheckbox.ts +10 -0
- package/src/checkbox/createCheckboxGroupItem.ts +12 -16
- package/src/color/createColorArea.ts +17 -10
- package/src/color/createColorField.ts +8 -1
- package/src/color/createColorSlider.ts +1 -2
- package/src/color/createColorSwatch.ts +4 -2
- package/src/color/createColorWheel.ts +0 -6
- package/src/color/intl/index.ts +316 -0
- package/src/combobox/createComboBox.ts +35 -4
- package/src/combobox/intl/generated-locales.ts +635 -0
- package/src/combobox/intl/index.ts +8 -2
- package/src/datepicker/createDateField.ts +228 -213
- package/src/datepicker/createDatePicker.ts +157 -146
- package/src/datepicker/createDatePickerGroup.ts +88 -82
- package/src/datepicker/createDateRangePicker.ts +230 -179
- package/src/datepicker/createDateSegment.ts +386 -384
- package/src/datepicker/createDisplayNames.ts +45 -0
- package/src/datepicker/createTimeField.ts +36 -129
- package/src/datepicker/index.ts +13 -14
- package/src/datepicker/intl.ts +633 -0
- package/src/dnd/DragManager.ts +693 -0
- package/src/dnd/DropTargetKeyboardNavigation.ts +337 -0
- package/src/dnd/createDrag.ts +31 -5
- package/src/dnd/createDraggableCollection.ts +33 -15
- package/src/dnd/createDraggableItem.ts +92 -5
- package/src/dnd/createDroppableCollection.ts +488 -371
- package/src/dnd/index.ts +11 -0
- package/src/dnd/intl/ar-AE.json +29 -0
- package/src/dnd/intl/bg-BG.json +29 -0
- package/src/dnd/intl/cs-CZ.json +29 -0
- package/src/dnd/intl/da-DK.json +29 -0
- package/src/dnd/intl/de-DE.json +29 -0
- package/src/dnd/intl/el-GR.json +29 -0
- package/src/dnd/intl/en-US.json +29 -0
- package/src/dnd/intl/es-ES.json +29 -0
- package/src/dnd/intl/et-EE.json +29 -0
- package/src/dnd/intl/fi-FI.json +29 -0
- package/src/dnd/intl/fr-FR.json +29 -0
- package/src/dnd/intl/he-IL.json +29 -0
- package/src/dnd/intl/hr-HR.json +29 -0
- package/src/dnd/intl/hu-HU.json +29 -0
- package/src/dnd/intl/index.ts +139 -0
- package/src/dnd/intl/it-IT.json +29 -0
- package/src/dnd/intl/ja-JP.json +29 -0
- package/src/dnd/intl/ko-KR.json +29 -0
- package/src/dnd/intl/lt-LT.json +29 -0
- package/src/dnd/intl/lv-LV.json +29 -0
- package/src/dnd/intl/nb-NO.json +29 -0
- package/src/dnd/intl/nl-NL.json +29 -0
- package/src/dnd/intl/pl-PL.json +29 -0
- package/src/dnd/intl/pt-BR.json +29 -0
- package/src/dnd/intl/pt-PT.json +29 -0
- package/src/dnd/intl/ro-RO.json +29 -0
- package/src/dnd/intl/ru-RU.json +29 -0
- package/src/dnd/intl/sk-SK.json +29 -0
- package/src/dnd/intl/sl-SI.json +29 -0
- package/src/dnd/intl/sr-SP.json +29 -0
- package/src/dnd/intl/sv-SE.json +29 -0
- package/src/dnd/intl/tr-TR.json +29 -0
- package/src/dnd/intl/uk-UA.json +29 -0
- package/src/dnd/intl/zh-CN.json +29 -0
- package/src/dnd/intl/zh-TW.json +29 -0
- package/src/dnd/utils.ts +63 -3
- package/src/focus/FocusScope.tsx +266 -24
- package/src/focus/index.ts +8 -0
- package/src/focus/virtualFocus.ts +55 -0
- package/src/form/createFormValidation.ts +8 -1
- package/src/gridlist/createGridList.ts +187 -48
- package/src/gridlist/createGridListItem.ts +87 -155
- package/src/gridlist/createGridListSection.ts +54 -0
- package/src/gridlist/index.ts +3 -0
- package/src/gridlist/types.ts +47 -0
- package/src/index.ts +51 -3
- package/src/interactions/FocusableProvider.tsx +11 -6
- package/src/interactions/PressEvent.ts +14 -0
- package/src/interactions/createFocus.ts +26 -21
- package/src/interactions/createFocusWithin.ts +23 -24
- package/src/interactions/createInteractionModality.ts +26 -15
- package/src/interactions/createKeyboard.ts +10 -0
- package/src/interactions/createPress.ts +29 -6
- package/src/label/createLabels.ts +7 -4
- package/src/listbox/createListBox.ts +203 -10
- package/src/listbox/createOption.ts +84 -74
- package/src/menu/createMenu.ts +93 -16
- package/src/menu/createMenuItem.ts +253 -41
- package/src/numberfield/createNumberField.ts +82 -14
- package/src/popover/calculatePosition.ts +19 -7
- package/src/popover/createOverlayPosition.ts +9 -0
- package/src/radio/createRadio.ts +19 -2
- package/src/select/createSelect.ts +41 -4
- package/src/selection/DOMLayoutDelegate.ts +102 -0
- package/src/selection/ListKeyboardDelegate.ts +398 -0
- package/src/selection/constants.ts +16 -0
- package/src/selection/createCollectionRowInteraction.ts +209 -0
- package/src/selection/createScrollIntoViewOnFocus.ts +65 -0
- package/src/selection/createSelectableCollection.ts +645 -0
- package/src/selection/createSelectableItem.ts +512 -0
- package/src/selection/createSelectableList.ts +93 -0
- package/src/selection/createTypeSelect.ts +112 -51
- package/src/selection/index.ts +31 -0
- package/src/selection/selectItem.ts +80 -0
- package/src/selection/utils.ts +82 -0
- package/src/slider/createSlider.ts +48 -1
- package/src/spinbutton/createSpinButton.ts +163 -0
- package/src/spinbutton/index.ts +10 -0
- package/src/spinbutton/intl.ts +115 -0
- package/src/ssr/index.tsx +31 -0
- package/src/switch/createSwitch.ts +10 -0
- package/src/table/createTable.ts +82 -27
- package/src/table/createTableColumnHeader.ts +10 -0
- package/src/table/createTableRow.ts +208 -203
- package/src/table/createTableSelectAllCheckbox.ts +3 -4
- package/src/table/createTableSelectionCheckbox.ts +24 -1
- package/src/table/types.ts +37 -1
- package/src/table/utils.ts +41 -0
- package/src/tabs/createTabs.ts +95 -24
- package/src/tag/createTag.ts +30 -36
- package/src/tag/createTagGroup.ts +92 -0
- package/src/toast/createToast.ts +1 -0
- package/src/toggle/createToggle.ts +20 -0
- package/src/toolbar/createToolbar.ts +43 -94
- package/src/tree/createTree.ts +165 -52
- package/src/tree/createTreeItem.ts +105 -120
- package/src/tree/createTreeSelectionCheckbox.ts +14 -1
- package/src/tree/types.ts +10 -0
- package/src/utils/animation.ts +243 -0
- package/src/utils/dom.ts +216 -25
- package/src/utils/index.ts +10 -0
- package/src/utils/keyboard.ts +25 -0
- package/src/utils/mergeProps.ts +8 -1
- package/src/utils/scrollIntoView.ts +181 -0
- package/dist/datepicker/createTimeSegment.d.ts +0 -29
- package/dist/datepicker/createTimeSegment.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.jsx.map +0 -1
- package/src/datepicker/createTimeSegment.ts +0 -352
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
import { i as mergeProps$1 } from "./env.jsx";
|
|
2
|
+
import { t as filterDOMProps } from "./filterDOMProps.jsx";
|
|
3
|
+
import { t as access } from "./reactivity.jsx";
|
|
4
|
+
import { n as focusWithoutScrolling } from "./focus.jsx";
|
|
5
|
+
import { t as createFocusRing } from "./createFocusRing.jsx";
|
|
6
|
+
import { i as useLocale } from "./locale.jsx";
|
|
7
|
+
import { createId } from "../ssr/index.jsx";
|
|
8
|
+
import { t as createLabel } from "./createLabel.jsx";
|
|
9
|
+
import { onCleanup, onMount } from "solid-js";
|
|
10
|
+
//#region src/slider/createSlider.ts
|
|
11
|
+
/**
|
|
12
|
+
* Provides the behavior and accessibility implementation for a slider component.
|
|
13
|
+
* A slider allows users to select a value from a range.
|
|
14
|
+
* Based on @react-aria/slider useSlider.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Provides the behavior and accessibility implementation for a slider.
|
|
18
|
+
*/
|
|
19
|
+
function createSlider(props, state, trackRef, inputRef) {
|
|
20
|
+
const getProps = () => access(props);
|
|
21
|
+
const id = createId(getProps().id);
|
|
22
|
+
const locale = useLocale();
|
|
23
|
+
const inputId = `${id}-input`;
|
|
24
|
+
const outputId = `${id}-output`;
|
|
25
|
+
const domProps = () => filterDOMProps(getProps(), { labelable: true });
|
|
26
|
+
const { labelProps, fieldProps } = createLabel({
|
|
27
|
+
get id() {
|
|
28
|
+
return inputId;
|
|
29
|
+
},
|
|
30
|
+
get label() {
|
|
31
|
+
return getProps().label;
|
|
32
|
+
},
|
|
33
|
+
get "aria-label"() {
|
|
34
|
+
return getProps()["aria-label"];
|
|
35
|
+
},
|
|
36
|
+
get "aria-labelledby"() {
|
|
37
|
+
return getProps()["aria-labelledby"];
|
|
38
|
+
},
|
|
39
|
+
labelElementType: "span"
|
|
40
|
+
});
|
|
41
|
+
const { isFocusVisible, focusProps } = createFocusRing({ within: true });
|
|
42
|
+
let currentPointerId = null;
|
|
43
|
+
const getPositionFromPointer = (clientX, clientY) => {
|
|
44
|
+
const track = trackRef?.();
|
|
45
|
+
if (!track) return 0;
|
|
46
|
+
const rect = track.getBoundingClientRect();
|
|
47
|
+
const isVertical = state.orientation === "vertical";
|
|
48
|
+
let position;
|
|
49
|
+
if (isVertical) position = (rect.bottom - clientY) / rect.height;
|
|
50
|
+
else position = (clientX - rect.left) / rect.width;
|
|
51
|
+
return Math.max(0, Math.min(1, position));
|
|
52
|
+
};
|
|
53
|
+
const onTrackPointerDown = (e) => {
|
|
54
|
+
if (state.isDisabled || e.button !== 0) return;
|
|
55
|
+
e.preventDefault();
|
|
56
|
+
currentPointerId = e.pointerId;
|
|
57
|
+
const track = trackRef?.();
|
|
58
|
+
if (track) track.setPointerCapture(e.pointerId);
|
|
59
|
+
const percent = getPositionFromPointer(e.clientX, e.clientY);
|
|
60
|
+
state.setValuePercent(percent);
|
|
61
|
+
focusWithoutScrolling(inputRef?.() ?? null);
|
|
62
|
+
state.setDragging(true);
|
|
63
|
+
};
|
|
64
|
+
const onTrackPointerMove = (e) => {
|
|
65
|
+
if (!state.isDragging() || e.pointerId !== currentPointerId) return;
|
|
66
|
+
const percent = getPositionFromPointer(e.clientX, e.clientY);
|
|
67
|
+
state.setValuePercent(percent);
|
|
68
|
+
};
|
|
69
|
+
const onTrackPointerUp = (e) => {
|
|
70
|
+
if (e.pointerId !== currentPointerId) return;
|
|
71
|
+
const track = trackRef?.();
|
|
72
|
+
if (track) track.releasePointerCapture(e.pointerId);
|
|
73
|
+
currentPointerId = null;
|
|
74
|
+
focusWithoutScrolling(inputRef?.() ?? null);
|
|
75
|
+
state.setDragging(false);
|
|
76
|
+
};
|
|
77
|
+
const onThumbKeyDown = (e) => {
|
|
78
|
+
if (state.isDisabled) return;
|
|
79
|
+
switch (e.key) {
|
|
80
|
+
case "ArrowRight":
|
|
81
|
+
e.preventDefault();
|
|
82
|
+
if (state.orientation === "horizontal" && locale().direction === "rtl") state.decrement();
|
|
83
|
+
else state.increment();
|
|
84
|
+
break;
|
|
85
|
+
case "ArrowLeft":
|
|
86
|
+
e.preventDefault();
|
|
87
|
+
if (state.orientation === "horizontal" && locale().direction === "rtl") state.increment();
|
|
88
|
+
else state.decrement();
|
|
89
|
+
break;
|
|
90
|
+
case "ArrowUp":
|
|
91
|
+
e.preventDefault();
|
|
92
|
+
if (state.orientation === "vertical") state.increment();
|
|
93
|
+
else state.decrement();
|
|
94
|
+
break;
|
|
95
|
+
case "ArrowDown":
|
|
96
|
+
e.preventDefault();
|
|
97
|
+
if (state.orientation === "vertical") state.decrement();
|
|
98
|
+
else state.increment();
|
|
99
|
+
break;
|
|
100
|
+
case "PageUp":
|
|
101
|
+
e.preventDefault();
|
|
102
|
+
state.increment(state.pageStep / state.step);
|
|
103
|
+
break;
|
|
104
|
+
case "PageDown":
|
|
105
|
+
e.preventDefault();
|
|
106
|
+
state.decrement(state.pageStep / state.step);
|
|
107
|
+
break;
|
|
108
|
+
case "Home":
|
|
109
|
+
e.preventDefault();
|
|
110
|
+
state.setValue(state.minValue);
|
|
111
|
+
break;
|
|
112
|
+
case "End":
|
|
113
|
+
e.preventDefault();
|
|
114
|
+
state.setValue(state.maxValue);
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
const onFocus = () => {
|
|
119
|
+
state.setFocused(true);
|
|
120
|
+
};
|
|
121
|
+
const onBlur = () => {
|
|
122
|
+
state.setFocused(false);
|
|
123
|
+
};
|
|
124
|
+
const onThumbPointerDown = (e) => {
|
|
125
|
+
if (state.isDisabled || e.button !== 0) return;
|
|
126
|
+
e.preventDefault();
|
|
127
|
+
e.stopPropagation();
|
|
128
|
+
currentPointerId = e.pointerId;
|
|
129
|
+
focusWithoutScrolling(inputRef?.() ?? null);
|
|
130
|
+
document.body.setPointerCapture(e.pointerId);
|
|
131
|
+
state.setDragging(true);
|
|
132
|
+
};
|
|
133
|
+
const onDocumentPointerMove = (e) => {
|
|
134
|
+
if (!state.isDragging() || e.pointerId !== currentPointerId) return;
|
|
135
|
+
const percent = getPositionFromPointer(e.clientX, e.clientY);
|
|
136
|
+
state.setValuePercent(percent);
|
|
137
|
+
};
|
|
138
|
+
const onDocumentPointerUp = (e) => {
|
|
139
|
+
if (e.pointerId !== currentPointerId) return;
|
|
140
|
+
try {
|
|
141
|
+
document.body.releasePointerCapture(e.pointerId);
|
|
142
|
+
} catch {}
|
|
143
|
+
currentPointerId = null;
|
|
144
|
+
focusWithoutScrolling(inputRef?.() ?? null);
|
|
145
|
+
state.setDragging(false);
|
|
146
|
+
};
|
|
147
|
+
onMount(() => {
|
|
148
|
+
if (typeof document === "undefined") return;
|
|
149
|
+
document.addEventListener("pointermove", onDocumentPointerMove);
|
|
150
|
+
document.addEventListener("pointerup", onDocumentPointerUp);
|
|
151
|
+
document.addEventListener("pointercancel", onDocumentPointerUp);
|
|
152
|
+
onCleanup(() => {
|
|
153
|
+
document.removeEventListener("pointermove", onDocumentPointerMove);
|
|
154
|
+
document.removeEventListener("pointerup", onDocumentPointerUp);
|
|
155
|
+
document.removeEventListener("pointercancel", onDocumentPointerUp);
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
const labelledBy = () => fieldProps["aria-labelledby"];
|
|
159
|
+
const ariaLabel = () => fieldProps["aria-label"];
|
|
160
|
+
return {
|
|
161
|
+
get labelProps() {
|
|
162
|
+
return labelProps;
|
|
163
|
+
},
|
|
164
|
+
get groupProps() {
|
|
165
|
+
return mergeProps$1(domProps(), fieldProps, {
|
|
166
|
+
role: "group",
|
|
167
|
+
"data-disabled": state.isDisabled || void 0,
|
|
168
|
+
"data-orientation": state.orientation
|
|
169
|
+
});
|
|
170
|
+
},
|
|
171
|
+
get trackProps() {
|
|
172
|
+
return {
|
|
173
|
+
onPointerDown: onTrackPointerDown,
|
|
174
|
+
onPointerMove: onTrackPointerMove,
|
|
175
|
+
onPointerUp: onTrackPointerUp,
|
|
176
|
+
onPointerCancel: onTrackPointerUp,
|
|
177
|
+
style: {
|
|
178
|
+
position: "relative",
|
|
179
|
+
"touch-action": "none"
|
|
180
|
+
},
|
|
181
|
+
"data-disabled": state.isDisabled || void 0,
|
|
182
|
+
"data-orientation": state.orientation,
|
|
183
|
+
"data-dragging": state.isDragging() || void 0
|
|
184
|
+
};
|
|
185
|
+
},
|
|
186
|
+
get thumbProps() {
|
|
187
|
+
const percent = state.getValuePercent();
|
|
188
|
+
const isVertical = state.orientation === "vertical";
|
|
189
|
+
return {
|
|
190
|
+
role: "slider",
|
|
191
|
+
"aria-valuemin": state.minValue,
|
|
192
|
+
"aria-valuemax": state.maxValue,
|
|
193
|
+
"aria-valuenow": state.value(),
|
|
194
|
+
"aria-valuetext": state.getFormattedValue(),
|
|
195
|
+
"aria-orientation": state.orientation,
|
|
196
|
+
"aria-disabled": state.isDisabled || void 0,
|
|
197
|
+
"aria-labelledby": labelledBy(),
|
|
198
|
+
"aria-label": labelledBy() ? void 0 : ariaLabel(),
|
|
199
|
+
tabIndex: state.isDisabled ? void 0 : 0,
|
|
200
|
+
onPointerDown: onThumbPointerDown,
|
|
201
|
+
onKeyDown: onThumbKeyDown,
|
|
202
|
+
onFocus,
|
|
203
|
+
onBlur,
|
|
204
|
+
style: {
|
|
205
|
+
position: "absolute",
|
|
206
|
+
[isVertical ? "bottom" : "left"]: `${percent * 100}%`,
|
|
207
|
+
transform: isVertical ? "translateY(50%)" : "translateX(-50%)",
|
|
208
|
+
"touch-action": "none"
|
|
209
|
+
},
|
|
210
|
+
"data-disabled": state.isDisabled || void 0,
|
|
211
|
+
"data-dragging": state.isDragging() || void 0
|
|
212
|
+
};
|
|
213
|
+
},
|
|
214
|
+
get inputProps() {
|
|
215
|
+
const p = getProps();
|
|
216
|
+
return mergeProps$1(focusProps, {
|
|
217
|
+
type: "range",
|
|
218
|
+
id: inputId,
|
|
219
|
+
"aria-hidden": true,
|
|
220
|
+
min: state.minValue,
|
|
221
|
+
max: state.maxValue,
|
|
222
|
+
step: state.step,
|
|
223
|
+
value: state.value(),
|
|
224
|
+
name: p.name,
|
|
225
|
+
form: p.form,
|
|
226
|
+
disabled: state.isDisabled,
|
|
227
|
+
"aria-orientation": state.orientation,
|
|
228
|
+
"aria-valuetext": state.getFormattedValue(),
|
|
229
|
+
"aria-labelledby": labelledBy(),
|
|
230
|
+
"aria-label": labelledBy() ? void 0 : ariaLabel(),
|
|
231
|
+
tabIndex: -1,
|
|
232
|
+
onInput: (e) => {
|
|
233
|
+
const target = e.target;
|
|
234
|
+
state.setValue(parseFloat(target.value));
|
|
235
|
+
},
|
|
236
|
+
onChange: (e) => {
|
|
237
|
+
const target = e.target;
|
|
238
|
+
state.setValue(parseFloat(target.value));
|
|
239
|
+
},
|
|
240
|
+
onFocus,
|
|
241
|
+
onBlur
|
|
242
|
+
});
|
|
243
|
+
},
|
|
244
|
+
get outputProps() {
|
|
245
|
+
return {
|
|
246
|
+
id: outputId,
|
|
247
|
+
for: inputId,
|
|
248
|
+
"aria-live": "off"
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
}
|
|
253
|
+
//#endregion
|
|
254
|
+
export { createSlider as t };
|
|
255
|
+
|
|
256
|
+
//# sourceMappingURL=slider.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider.jsx","names":["mergeProps"],"sources":["../../src/slider/createSlider.ts"],"sourcesContent":["/**\n * Provides the behavior and accessibility implementation for a slider component.\n * A slider allows users to select a value from a range.\n * Based on @react-aria/slider useSlider.\n */\n\nimport { type JSX, onCleanup, onMount } from \"solid-js\";\nimport { createLabel } from \"../label/createLabel\";\nimport { createFocusRing } from \"../interactions/createFocusRing\";\nimport { filterDOMProps } from \"../utils/filterDOMProps\";\nimport { focusWithoutScrolling } from \"../utils/focus\";\nimport { mergeProps } from \"../utils/mergeProps\";\nimport { createId } from \"../ssr\";\nimport { useLocale } from \"../i18n\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport type { SliderState, SliderOrientation } from \"@proyecto-viviana/solid-stately\";\n\nexport interface AriaSliderProps {\n /** An ID for the slider. */\n id?: string;\n /** Whether the slider is disabled. */\n isDisabled?: boolean;\n /** The label for the slider. */\n label?: JSX.Element;\n /** An accessible label for the slider when no visible label is provided. */\n \"aria-label\"?: string;\n /** The ID of an element that labels the slider. */\n \"aria-labelledby\"?: string;\n /** The ID of an element that describes the slider. */\n \"aria-describedby\"?: string;\n /** The orientation of the slider. */\n orientation?: SliderOrientation;\n /** The name for the form input. */\n name?: string;\n /** The form element this input belongs to. */\n form?: string;\n}\n\nexport interface SliderAria {\n /** Props for the label element. */\n labelProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the root group element. */\n groupProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the track element. */\n trackProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the thumb element. */\n thumbProps: JSX.HTMLAttributes<HTMLElement>;\n /** Props for the hidden input element. */\n inputProps: JSX.InputHTMLAttributes<HTMLInputElement>;\n /** Props for the output element (showing current value). */\n outputProps: JSX.HTMLAttributes<HTMLElement>;\n}\n\n/**\n * Provides the behavior and accessibility implementation for a slider.\n */\nexport function createSlider(\n props: MaybeAccessor<AriaSliderProps>,\n state: SliderState,\n trackRef?: () => HTMLElement | null,\n inputRef?: () => HTMLInputElement | null,\n): SliderAria {\n const getProps = () => access(props);\n const id = createId(getProps().id);\n const locale = useLocale();\n\n // Generate IDs for associated elements\n const inputId = `${id}-input`;\n const outputId = `${id}-output`;\n\n // Filter DOM props\n const domProps = () =>\n filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true });\n\n // Label handling\n const { labelProps, fieldProps } = createLabel({\n get id() {\n return inputId;\n },\n get label() {\n return getProps().label;\n },\n get \"aria-label\"() {\n return getProps()[\"aria-label\"];\n },\n get \"aria-labelledby\"() {\n return getProps()[\"aria-labelledby\"];\n },\n labelElementType: \"span\",\n });\n\n // Focus ring for keyboard focus styling\n const { isFocusVisible, focusProps } = createFocusRing({\n within: true,\n });\n\n // Track pointer state for drag handling\n let currentPointerId: number | null = null;\n\n // Calculate position from pointer event\n const getPositionFromPointer = (clientX: number, clientY: number): number => {\n const track = trackRef?.();\n if (!track) return 0;\n\n const rect = track.getBoundingClientRect();\n const isVertical = state.orientation === \"vertical\";\n\n let position: number;\n if (isVertical) {\n position = (rect.bottom - clientY) / rect.height;\n } else {\n position = (clientX - rect.left) / rect.width;\n }\n\n return Math.max(0, Math.min(1, position));\n };\n\n // Handle pointer down on track\n const onTrackPointerDown = (e: PointerEvent) => {\n if (state.isDisabled || e.button !== 0) return;\n\n e.preventDefault();\n currentPointerId = e.pointerId;\n\n const track = trackRef?.();\n if (track) {\n track.setPointerCapture(e.pointerId);\n }\n\n const percent = getPositionFromPointer(e.clientX, e.clientY);\n state.setValuePercent(percent);\n focusWithoutScrolling(inputRef?.() ?? null);\n state.setDragging(true);\n };\n\n // Handle pointer move for dragging\n const onTrackPointerMove = (e: PointerEvent) => {\n if (!state.isDragging() || e.pointerId !== currentPointerId) return;\n\n const percent = getPositionFromPointer(e.clientX, e.clientY);\n state.setValuePercent(percent);\n };\n\n // Handle pointer up to end drag\n const onTrackPointerUp = (e: PointerEvent) => {\n if (e.pointerId !== currentPointerId) return;\n\n const track = trackRef?.();\n if (track) {\n track.releasePointerCapture(e.pointerId);\n }\n\n currentPointerId = null;\n focusWithoutScrolling(inputRef?.() ?? null);\n state.setDragging(false);\n };\n\n // Keyboard navigation that is not consistently handled by the native range input.\n const onThumbKeyDown = (e: KeyboardEvent) => {\n if (state.isDisabled) return;\n\n switch (e.key) {\n case \"ArrowRight\":\n e.preventDefault();\n if (state.orientation === \"horizontal\" && locale().direction === \"rtl\") {\n state.decrement();\n } else {\n state.increment();\n }\n break;\n case \"ArrowLeft\":\n e.preventDefault();\n if (state.orientation === \"horizontal\" && locale().direction === \"rtl\") {\n state.increment();\n } else {\n state.decrement();\n }\n break;\n case \"ArrowUp\":\n e.preventDefault();\n if (state.orientation === \"vertical\") {\n state.increment();\n } else {\n state.decrement();\n }\n break;\n case \"ArrowDown\":\n e.preventDefault();\n if (state.orientation === \"vertical\") {\n state.decrement();\n } else {\n state.increment();\n }\n break;\n case \"PageUp\":\n e.preventDefault();\n state.increment(state.pageStep / state.step);\n break;\n case \"PageDown\":\n e.preventDefault();\n state.decrement(state.pageStep / state.step);\n break;\n case \"Home\":\n e.preventDefault();\n state.setValue(state.minValue);\n break;\n case \"End\":\n e.preventDefault();\n state.setValue(state.maxValue);\n break;\n }\n };\n\n // Handle focus events\n const onFocus = () => {\n state.setFocused(true);\n };\n\n const onBlur = () => {\n state.setFocused(false);\n };\n\n // Handle pointer down on thumb (for direct thumb dragging)\n const onThumbPointerDown = (e: PointerEvent) => {\n if (state.isDisabled || e.button !== 0) return;\n\n e.preventDefault();\n e.stopPropagation(); // Prevent track from also handling\n currentPointerId = e.pointerId;\n focusWithoutScrolling(inputRef?.() ?? null);\n\n // Capture pointer on document for smooth dragging\n document.body.setPointerCapture(e.pointerId);\n state.setDragging(true);\n };\n\n // Global pointer move handler for thumb dragging\n const onDocumentPointerMove = (e: PointerEvent) => {\n if (!state.isDragging() || e.pointerId !== currentPointerId) return;\n\n const percent = getPositionFromPointer(e.clientX, e.clientY);\n state.setValuePercent(percent);\n };\n\n // Global pointer up handler\n const onDocumentPointerUp = (e: PointerEvent) => {\n if (e.pointerId !== currentPointerId) return;\n\n try {\n document.body.releasePointerCapture(e.pointerId);\n } catch {\n // Ignore if capture was already released\n }\n\n currentPointerId = null;\n focusWithoutScrolling(inputRef?.() ?? null);\n state.setDragging(false);\n };\n\n // Set up global listeners on mount (client-side only)\n onMount(() => {\n if (typeof document === \"undefined\") return;\n\n document.addEventListener(\"pointermove\", onDocumentPointerMove);\n document.addEventListener(\"pointerup\", onDocumentPointerUp);\n document.addEventListener(\"pointercancel\", onDocumentPointerUp);\n\n // Cleanup when component unmounts\n onCleanup(() => {\n document.removeEventListener(\"pointermove\", onDocumentPointerMove);\n document.removeEventListener(\"pointerup\", onDocumentPointerUp);\n document.removeEventListener(\"pointercancel\", onDocumentPointerUp);\n });\n });\n\n const labelledBy = () => (fieldProps as { \"aria-labelledby\"?: string })[\"aria-labelledby\"];\n const ariaLabel = () => (fieldProps as { \"aria-label\"?: string })[\"aria-label\"];\n\n return {\n get labelProps() {\n return labelProps as JSX.HTMLAttributes<HTMLElement>;\n },\n get groupProps() {\n return mergeProps(\n domProps(),\n fieldProps as Record<string, unknown>,\n {\n role: \"group\",\n \"data-disabled\": state.isDisabled || undefined,\n \"data-orientation\": state.orientation,\n } as Record<string, unknown>,\n ) as JSX.HTMLAttributes<HTMLElement>;\n },\n get trackProps() {\n return {\n onPointerDown: onTrackPointerDown,\n onPointerMove: onTrackPointerMove,\n onPointerUp: onTrackPointerUp,\n onPointerCancel: onTrackPointerUp,\n style: {\n position: \"relative\",\n \"touch-action\": \"none\",\n },\n \"data-disabled\": state.isDisabled || undefined,\n \"data-orientation\": state.orientation,\n \"data-dragging\": state.isDragging() || undefined,\n } as JSX.HTMLAttributes<HTMLElement>;\n },\n get thumbProps() {\n const percent = state.getValuePercent();\n const isVertical = state.orientation === \"vertical\";\n\n return {\n role: \"slider\",\n \"aria-valuemin\": state.minValue,\n \"aria-valuemax\": state.maxValue,\n \"aria-valuenow\": state.value(),\n \"aria-valuetext\": state.getFormattedValue(),\n \"aria-orientation\": state.orientation,\n \"aria-disabled\": state.isDisabled || undefined,\n \"aria-labelledby\": labelledBy(),\n \"aria-label\": labelledBy() ? undefined : ariaLabel(),\n tabIndex: state.isDisabled ? undefined : 0,\n onPointerDown: onThumbPointerDown,\n onKeyDown: onThumbKeyDown,\n onFocus,\n onBlur,\n style: {\n position: \"absolute\",\n [isVertical ? \"bottom\" : \"left\"]: `${percent * 100}%`,\n transform: isVertical ? \"translateY(50%)\" : \"translateX(-50%)\",\n \"touch-action\": \"none\",\n },\n \"data-disabled\": state.isDisabled || undefined,\n \"data-dragging\": state.isDragging() || undefined,\n } as JSX.HTMLAttributes<HTMLElement>;\n },\n get inputProps() {\n const p = getProps();\n\n return mergeProps(\n focusProps as Record<string, unknown>,\n {\n type: \"range\",\n id: inputId,\n \"aria-hidden\": true,\n min: state.minValue,\n max: state.maxValue,\n step: state.step,\n value: state.value(),\n name: p.name,\n form: p.form,\n disabled: state.isDisabled,\n \"aria-orientation\": state.orientation,\n \"aria-valuetext\": state.getFormattedValue(),\n \"aria-labelledby\": labelledBy(),\n \"aria-label\": labelledBy() ? undefined : ariaLabel(),\n tabIndex: -1,\n onInput: (e: Event) => {\n const target = e.target as HTMLInputElement;\n state.setValue(parseFloat(target.value));\n },\n onChange: (e: Event) => {\n const target = e.target as HTMLInputElement;\n state.setValue(parseFloat(target.value));\n },\n onFocus,\n onBlur,\n } as Record<string, unknown>,\n ) as JSX.InputHTMLAttributes<HTMLInputElement>;\n },\n get outputProps() {\n return {\n id: outputId,\n for: inputId,\n \"aria-live\": \"off\",\n } as JSX.HTMLAttributes<HTMLElement>;\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { t as access } from "./reactivity.js";
|
|
2
|
+
import { n as createStringFormatter } from "./createStringFormatter.js";
|
|
3
|
+
import { n as clearAnnouncer, t as announce } from "./announce.js";
|
|
4
|
+
import { createEffect, createMemo } from "solid-js";
|
|
5
|
+
import { LocalizedStringDictionary } from "@internationalized/string";
|
|
6
|
+
//#region src/spinbutton/intl.ts
|
|
7
|
+
const spinButtonStrings = {
|
|
8
|
+
"ar-AE": { "Empty": `\u{641}\u{627}\u{631}\u{63A}` },
|
|
9
|
+
"bg-BG": { "Empty": `\u{418}\u{437}\u{43F}\u{440}\u{430}\u{437}\u{43D}\u{438}` },
|
|
10
|
+
"cs-CZ": { "Empty": `Pr\xe1zdn\xe9` },
|
|
11
|
+
"da-DK": { "Empty": `Tom` },
|
|
12
|
+
"de-DE": { "Empty": `Leer` },
|
|
13
|
+
"el-GR": { "Empty": `\u{386}\u{3B4}\u{3B5}\u{3B9}\u{3BF}` },
|
|
14
|
+
"en-US": { "Empty": `Empty` },
|
|
15
|
+
"es-ES": { "Empty": `Vac\xedo` },
|
|
16
|
+
"et-EE": { "Empty": `T\xfchjenda` },
|
|
17
|
+
"fi-FI": { "Empty": `Tyhj\xe4` },
|
|
18
|
+
"fr-FR": { "Empty": `Vide` },
|
|
19
|
+
"he-IL": { "Empty": `\u{5E8}\u{5D9}\u{5E7}` },
|
|
20
|
+
"hr-HR": { "Empty": `Prazno` },
|
|
21
|
+
"hu-HU": { "Empty": `\xdcres` },
|
|
22
|
+
"it-IT": { "Empty": `Vuoto` },
|
|
23
|
+
"ja-JP": { "Empty": `\u{7A7A}` },
|
|
24
|
+
"ko-KR": { "Empty": `\u{BE44}\u{C5B4} \u{C788}\u{C74C}` },
|
|
25
|
+
"lt-LT": { "Empty": `Tu\u{161}\u{10D}ias` },
|
|
26
|
+
"lv-LV": { "Empty": `Tuk\u{161}s` },
|
|
27
|
+
"nb-NO": { "Empty": `Tom` },
|
|
28
|
+
"nl-NL": { "Empty": `Leeg` },
|
|
29
|
+
"pl-PL": { "Empty": `Pusty` },
|
|
30
|
+
"pt-BR": { "Empty": `Vazio` },
|
|
31
|
+
"pt-PT": { "Empty": `Vazio` },
|
|
32
|
+
"ro-RO": { "Empty": `Gol` },
|
|
33
|
+
"ru-RU": { "Empty": `\u{41D}\u{435} \u{437}\u{430}\u{43F}\u{43E}\u{43B}\u{43D}\u{435}\u{43D}\u{43E}` },
|
|
34
|
+
"sk-SK": { "Empty": `Pr\xe1zdne` },
|
|
35
|
+
"sl-SI": { "Empty": `Prazen` },
|
|
36
|
+
"sr-SP": { "Empty": `Prazno` },
|
|
37
|
+
"sv-SE": { "Empty": `Tomt` },
|
|
38
|
+
"tr-TR": { "Empty": `Bo\u{15F}` },
|
|
39
|
+
"uk-UA": { "Empty": `\u{41F}\u{443}\u{441}\u{442}\u{43E}` },
|
|
40
|
+
"zh-CN": { "Empty": `\u{7A7A}` },
|
|
41
|
+
"zh-TW": { "Empty": `\u{7A7A}\u{767D}` }
|
|
42
|
+
};
|
|
43
|
+
const spinButtonDictionary = new LocalizedStringDictionary(spinButtonStrings);
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/spinbutton/createSpinButton.ts
|
|
46
|
+
/**
|
|
47
|
+
* createSpinButton hook for Solidaria
|
|
48
|
+
*
|
|
49
|
+
* Provides the ARIA spinbutton props and live-region announcement behaviour for
|
|
50
|
+
* a single spinbutton (e.g. a date-field segment). Port of the keyboard/announce
|
|
51
|
+
* portion of @react-aria/spinbutton `useSpinButton`. The pointer press-and-hold
|
|
52
|
+
* button machinery (increment/decrement buttons) is intentionally omitted — date
|
|
53
|
+
* segments drive value changes through the keyboard only.
|
|
54
|
+
*/
|
|
55
|
+
/**
|
|
56
|
+
* Provides the behaviour and accessibility implementation for a spinbutton.
|
|
57
|
+
*/
|
|
58
|
+
function createSpinButton(props) {
|
|
59
|
+
const getProps = () => access(props);
|
|
60
|
+
const stringFormatter = createStringFormatter(spinButtonStrings, "@react-aria/spinbutton");
|
|
61
|
+
const onKeyDown = (e) => {
|
|
62
|
+
const p = getProps();
|
|
63
|
+
if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || p.isReadOnly || e.isComposing) return;
|
|
64
|
+
switch (e.key) {
|
|
65
|
+
case "PageUp":
|
|
66
|
+
if (p.onIncrementPage) {
|
|
67
|
+
e.preventDefault();
|
|
68
|
+
p.onIncrementPage();
|
|
69
|
+
} else if (p.onIncrement) {
|
|
70
|
+
e.preventDefault();
|
|
71
|
+
p.onIncrement();
|
|
72
|
+
}
|
|
73
|
+
break;
|
|
74
|
+
case "ArrowUp":
|
|
75
|
+
case "Up":
|
|
76
|
+
if (p.onIncrement) {
|
|
77
|
+
e.preventDefault();
|
|
78
|
+
p.onIncrement();
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
case "PageDown":
|
|
82
|
+
if (p.onDecrementPage) {
|
|
83
|
+
e.preventDefault();
|
|
84
|
+
p.onDecrementPage();
|
|
85
|
+
} else if (p.onDecrement) {
|
|
86
|
+
e.preventDefault();
|
|
87
|
+
p.onDecrement();
|
|
88
|
+
}
|
|
89
|
+
break;
|
|
90
|
+
case "ArrowDown":
|
|
91
|
+
case "Down":
|
|
92
|
+
if (p.onDecrement) {
|
|
93
|
+
e.preventDefault();
|
|
94
|
+
p.onDecrement();
|
|
95
|
+
}
|
|
96
|
+
break;
|
|
97
|
+
case "Home":
|
|
98
|
+
if (p.onDecrementToMin) {
|
|
99
|
+
e.preventDefault();
|
|
100
|
+
p.onDecrementToMin();
|
|
101
|
+
}
|
|
102
|
+
break;
|
|
103
|
+
case "End":
|
|
104
|
+
if (p.onIncrementToMax) {
|
|
105
|
+
e.preventDefault();
|
|
106
|
+
p.onIncrementToMax();
|
|
107
|
+
}
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
let isFocused = false;
|
|
112
|
+
const onFocus = () => {
|
|
113
|
+
isFocused = true;
|
|
114
|
+
};
|
|
115
|
+
const onBlur = () => {
|
|
116
|
+
isFocused = false;
|
|
117
|
+
};
|
|
118
|
+
const ariaTextValue = createMemo(() => {
|
|
119
|
+
const p = getProps();
|
|
120
|
+
return p.textValue === "" ? stringFormatter().format("Empty") : (p.textValue || `${p.value}`).replace("-", "−");
|
|
121
|
+
});
|
|
122
|
+
createEffect(() => {
|
|
123
|
+
const value = ariaTextValue();
|
|
124
|
+
if (isFocused) {
|
|
125
|
+
clearAnnouncer("assertive");
|
|
126
|
+
announce(value, "assertive");
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
const spinButtonProps = createMemo(() => {
|
|
130
|
+
const p = getProps();
|
|
131
|
+
const value = p.value;
|
|
132
|
+
return {
|
|
133
|
+
role: "spinbutton",
|
|
134
|
+
"aria-valuenow": value !== void 0 && !isNaN(value) ? value : void 0,
|
|
135
|
+
"aria-valuetext": ariaTextValue(),
|
|
136
|
+
"aria-valuemin": p.minValue,
|
|
137
|
+
"aria-valuemax": p.maxValue,
|
|
138
|
+
"aria-disabled": p.isDisabled || void 0,
|
|
139
|
+
"aria-readonly": p.isReadOnly || void 0,
|
|
140
|
+
"aria-required": p.isRequired || void 0,
|
|
141
|
+
onKeyDown,
|
|
142
|
+
onFocus,
|
|
143
|
+
onBlur
|
|
144
|
+
};
|
|
145
|
+
});
|
|
146
|
+
return { get spinButtonProps() {
|
|
147
|
+
return spinButtonProps();
|
|
148
|
+
} };
|
|
149
|
+
}
|
|
150
|
+
//#endregion
|
|
151
|
+
export { spinButtonDictionary as n, spinButtonStrings as r, createSpinButton as t };
|
|
152
|
+
|
|
153
|
+
//# sourceMappingURL=spinbutton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinbutton.js","names":[],"sources":["../../src/spinbutton/intl.ts","../../src/spinbutton/createSpinButton.ts"],"sourcesContent":["// Spinbutton announcement catalog, ported verbatim from @react-aria/spinbutton's\n// intl/*.json (34 locales). Keep in sync with the vendored react-spectrum source on\n// every pin bump.\nimport { LocalizedStringDictionary } from \"@internationalized/string\";\n\nexport type SpinButtonStringKey = \"Empty\";\n\nexport const spinButtonStrings: Record<string, Record<SpinButtonStringKey, string>> = {\n \"ar-AE\": {\n \"Empty\": `\\u{641}\\u{627}\\u{631}\\u{63A}`\n },\n \"bg-BG\": {\n \"Empty\": `\\u{418}\\u{437}\\u{43F}\\u{440}\\u{430}\\u{437}\\u{43D}\\u{438}`\n },\n \"cs-CZ\": {\n \"Empty\": `Pr\\xe1zdn\\xe9`\n },\n \"da-DK\": {\n \"Empty\": `Tom`\n },\n \"de-DE\": {\n \"Empty\": `Leer`\n },\n \"el-GR\": {\n \"Empty\": `\\u{386}\\u{3B4}\\u{3B5}\\u{3B9}\\u{3BF}`\n },\n \"en-US\": {\n \"Empty\": `Empty`\n },\n \"es-ES\": {\n \"Empty\": `Vac\\xedo`\n },\n \"et-EE\": {\n \"Empty\": `T\\xfchjenda`\n },\n \"fi-FI\": {\n \"Empty\": `Tyhj\\xe4`\n },\n \"fr-FR\": {\n \"Empty\": `Vide`\n },\n \"he-IL\": {\n \"Empty\": `\\u{5E8}\\u{5D9}\\u{5E7}`\n },\n \"hr-HR\": {\n \"Empty\": `Prazno`\n },\n \"hu-HU\": {\n \"Empty\": `\\xdcres`\n },\n \"it-IT\": {\n \"Empty\": `Vuoto`\n },\n \"ja-JP\": {\n \"Empty\": `\\u{7A7A}`\n },\n \"ko-KR\": {\n \"Empty\": `\\u{BE44}\\u{C5B4} \\u{C788}\\u{C74C}`\n },\n \"lt-LT\": {\n \"Empty\": `Tu\\u{161}\\u{10D}ias`\n },\n \"lv-LV\": {\n \"Empty\": `Tuk\\u{161}s`\n },\n \"nb-NO\": {\n \"Empty\": `Tom`\n },\n \"nl-NL\": {\n \"Empty\": `Leeg`\n },\n \"pl-PL\": {\n \"Empty\": `Pusty`\n },\n \"pt-BR\": {\n \"Empty\": `Vazio`\n },\n \"pt-PT\": {\n \"Empty\": `Vazio`\n },\n \"ro-RO\": {\n \"Empty\": `Gol`\n },\n \"ru-RU\": {\n \"Empty\": `\\u{41D}\\u{435} \\u{437}\\u{430}\\u{43F}\\u{43E}\\u{43B}\\u{43D}\\u{435}\\u{43D}\\u{43E}`\n },\n \"sk-SK\": {\n \"Empty\": `Pr\\xe1zdne`\n },\n \"sl-SI\": {\n \"Empty\": `Prazen`\n },\n \"sr-SP\": {\n \"Empty\": `Prazno`\n },\n \"sv-SE\": {\n \"Empty\": `Tomt`\n },\n \"tr-TR\": {\n \"Empty\": `Bo\\u{15F}`\n },\n \"uk-UA\": {\n \"Empty\": `\\u{41F}\\u{443}\\u{441}\\u{442}\\u{43E}`\n },\n \"zh-CN\": {\n \"Empty\": `\\u{7A7A}`\n },\n \"zh-TW\": {\n \"Empty\": `\\u{7A7A}\\u{767D}`\n },\n};\n\nexport const spinButtonDictionary = new LocalizedStringDictionary<SpinButtonStringKey, string>(\n spinButtonStrings,\n);\n","/**\n * createSpinButton hook for Solidaria\n *\n * Provides the ARIA spinbutton props and live-region announcement behaviour for\n * a single spinbutton (e.g. a date-field segment). Port of the keyboard/announce\n * portion of @react-aria/spinbutton `useSpinButton`. The pointer press-and-hold\n * button machinery (increment/decrement buttons) is intentionally omitted — date\n * segments drive value changes through the keyboard only.\n */\n\nimport { createMemo, createEffect } from \"solid-js\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { createStringFormatter } from \"../i18n\";\nimport { announce, clearAnnouncer } from \"../live-announcer\";\nimport { spinButtonStrings, type SpinButtonStringKey } from \"./intl\";\n\nexport interface SpinButtonProps {\n /** The current value of the spinbutton. */\n value?: number;\n /** A human-readable text alternative for the value. */\n textValue?: string;\n /** The smallest value allowed. */\n minValue?: number;\n /** The largest value allowed. */\n maxValue?: number;\n /** Whether the spinbutton is disabled. */\n isDisabled?: boolean;\n /** Whether the spinbutton is read only. */\n isReadOnly?: boolean;\n /** Whether the spinbutton is required. */\n isRequired?: boolean;\n onIncrement?: () => void;\n onIncrementPage?: () => void;\n onDecrement?: () => void;\n onDecrementPage?: () => void;\n onDecrementToMin?: () => void;\n onIncrementToMax?: () => void;\n}\n\nexport interface SpinButtonAria {\n /** Props for the spinbutton element. */\n spinButtonProps: Record<string, unknown>;\n}\n\n/**\n * Provides the behaviour and accessibility implementation for a spinbutton.\n */\nexport function createSpinButton(props: MaybeAccessor<SpinButtonProps>): SpinButtonAria {\n const getProps = () => access(props);\n const stringFormatter = createStringFormatter<SpinButtonStringKey>(\n spinButtonStrings,\n \"@react-aria/spinbutton\",\n );\n\n const onKeyDown = (e: KeyboardEvent) => {\n const p = getProps();\n if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || p.isReadOnly || e.isComposing) {\n return;\n }\n\n switch (e.key) {\n // Upstream deliberately falls through PageUp → ArrowUp when no page\n // handler exists; our tsconfig forbids lexical fallthrough, so the\n // PageUp case mirrors that branch inline instead.\n case \"PageUp\":\n if (p.onIncrementPage) {\n e.preventDefault();\n p.onIncrementPage();\n } else if (p.onIncrement) {\n e.preventDefault();\n p.onIncrement();\n }\n break;\n case \"ArrowUp\":\n case \"Up\":\n if (p.onIncrement) {\n e.preventDefault();\n p.onIncrement();\n }\n break;\n // Same faithful fallthrough as PageUp, mirrored inline (PageDown → ArrowDown).\n case \"PageDown\":\n if (p.onDecrementPage) {\n e.preventDefault();\n p.onDecrementPage();\n } else if (p.onDecrement) {\n e.preventDefault();\n p.onDecrement();\n }\n break;\n case \"ArrowDown\":\n case \"Down\":\n if (p.onDecrement) {\n e.preventDefault();\n p.onDecrement();\n }\n break;\n case \"Home\":\n if (p.onDecrementToMin) {\n e.preventDefault();\n p.onDecrementToMin();\n }\n break;\n case \"End\":\n if (p.onIncrementToMax) {\n e.preventDefault();\n p.onIncrementToMax();\n }\n break;\n }\n };\n\n // Non-reactive focus flag — matches upstream's `isFocused` ref. Toggling it must\n // NOT re-run the announce effect; only a change in `ariaTextValue` announces.\n let isFocused = false;\n const onFocus = () => {\n isFocused = true;\n };\n const onBlur = () => {\n isFocused = false;\n };\n\n // Replace Unicode hyphen-minus (U+002D) with minus sign (U+2212) so VoiceOver\n // announces it as \"minus\". Replace the empty string with the word \"Empty\".\n const ariaTextValue = createMemo(() => {\n const p = getProps();\n return p.textValue === \"\"\n ? stringFormatter().format(\"Empty\")\n : (p.textValue || `${p.value}`).replace(\"-\", \"−\");\n });\n\n createEffect(() => {\n const value = ariaTextValue();\n if (isFocused) {\n clearAnnouncer(\"assertive\");\n announce(value, \"assertive\");\n }\n });\n\n const spinButtonProps = createMemo(() => {\n const p = getProps();\n const value = p.value;\n return {\n role: \"spinbutton\",\n \"aria-valuenow\": value !== undefined && !isNaN(value) ? value : undefined,\n \"aria-valuetext\": ariaTextValue(),\n \"aria-valuemin\": p.minValue,\n \"aria-valuemax\": p.maxValue,\n \"aria-disabled\": p.isDisabled || undefined,\n \"aria-readonly\": p.isReadOnly || undefined,\n \"aria-required\": p.isRequired || undefined,\n onKeyDown,\n onFocus,\n onBlur,\n };\n });\n\n return {\n get spinButtonProps() {\n return spinButtonProps();\n },\n };\n}\n"],"mappings":";;;;;;AAOA,MAAa,oBAAyE;CACpF,SAAS,EACT,SAAS,+BACT;CACA,SAAS,EACT,SAAS,2DACT;CACA,SAAS,EACT,SAAS,gBACT;CACA,SAAS,EACT,SAAS,MACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,sCACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,cACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,wBACT;CACA,SAAS,EACT,SAAS,SACT;CACA,SAAS,EACT,SAAS,UACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,oCACT;CACA,SAAS,EACT,SAAS,sBACT;CACA,SAAS,EACT,SAAS,cACT;CACA,SAAS,EACT,SAAS,MACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,MACT;CACA,SAAS,EACT,SAAS,iFACT;CACA,SAAS,EACT,SAAS,aACT;CACA,SAAS,EACT,SAAS,SACT;CACA,SAAS,EACT,SAAS,SACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,YACT;CACA,SAAS,EACT,SAAS,sCACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,mBACT;AACF;AAEA,MAAa,uBAAuB,IAAI,0BACtC,iBACF;;;;;;;;;;;;;;;ACnEA,SAAgB,iBAAiB,OAAuD;CACtF,MAAM,iBAAiB,OAAO,KAAK;CACnC,MAAM,kBAAkB,sBACtB,mBACA,wBACF;CAEA,MAAM,aAAa,MAAqB;EACtC,MAAM,IAAI,SAAS;EACnB,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,aACxE;EAGF,QAAQ,EAAE,KAAV;GAIE,KAAK;IACH,IAAI,EAAE,iBAAiB;KACrB,EAAE,eAAe;KACjB,EAAE,gBAAgB;IACpB,OAAO,IAAI,EAAE,aAAa;KACxB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GACF,KAAK;GACL,KAAK;IACH,IAAI,EAAE,aAAa;KACjB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GAEF,KAAK;IACH,IAAI,EAAE,iBAAiB;KACrB,EAAE,eAAe;KACjB,EAAE,gBAAgB;IACpB,OAAO,IAAI,EAAE,aAAa;KACxB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GACF,KAAK;GACL,KAAK;IACH,IAAI,EAAE,aAAa;KACjB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GACF,KAAK;IACH,IAAI,EAAE,kBAAkB;KACtB,EAAE,eAAe;KACjB,EAAE,iBAAiB;IACrB;IACA;GACF,KAAK;IACH,IAAI,EAAE,kBAAkB;KACtB,EAAE,eAAe;KACjB,EAAE,iBAAiB;IACrB;IACA;EACJ;CACF;CAIA,IAAI,YAAY;CAChB,MAAM,gBAAgB;EACpB,YAAY;CACd;CACA,MAAM,eAAe;EACnB,YAAY;CACd;CAIA,MAAM,gBAAgB,iBAAiB;EACrC,MAAM,IAAI,SAAS;EACnB,OAAO,EAAE,cAAc,KACnB,gBAAgB,CAAC,CAAC,OAAO,OAAO,KAC/B,EAAE,aAAa,GAAG,EAAE,QAAA,CAAS,QAAQ,KAAK,GAAG;CACpD,CAAC;CAED,mBAAmB;EACjB,MAAM,QAAQ,cAAc;EAC5B,IAAI,WAAW;GACb,eAAe,WAAW;GAC1B,SAAS,OAAO,WAAW;EAC7B;CACF,CAAC;CAED,MAAM,kBAAkB,iBAAiB;EACvC,MAAM,IAAI,SAAS;EACnB,MAAM,QAAQ,EAAE;EAChB,OAAO;GACL,MAAM;GACN,iBAAiB,UAAU,KAAA,KAAa,CAAC,MAAM,KAAK,IAAI,QAAQ,KAAA;GAChE,kBAAkB,cAAc;GAChC,iBAAiB,EAAE;GACnB,iBAAiB,EAAE;GACnB,iBAAiB,EAAE,cAAc,KAAA;GACjC,iBAAiB,EAAE,cAAc,KAAA;GACjC,iBAAiB,EAAE,cAAc,KAAA;GACjC;GACA;GACA;EACF;CACF,CAAC;CAED,OAAO,EACL,IAAI,kBAAkB;EACpB,OAAO,gBAAgB;CACzB,EACF;AACF"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { t as access } from "./reactivity.jsx";
|
|
2
|
+
import { n as createStringFormatter } from "./createStringFormatter.jsx";
|
|
3
|
+
import { n as clearAnnouncer, t as announce } from "./announce.jsx";
|
|
4
|
+
import { createEffect, createMemo } from "solid-js";
|
|
5
|
+
import { LocalizedStringDictionary } from "@internationalized/string";
|
|
6
|
+
//#region src/spinbutton/intl.ts
|
|
7
|
+
const spinButtonStrings = {
|
|
8
|
+
"ar-AE": { "Empty": `\u{641}\u{627}\u{631}\u{63A}` },
|
|
9
|
+
"bg-BG": { "Empty": `\u{418}\u{437}\u{43F}\u{440}\u{430}\u{437}\u{43D}\u{438}` },
|
|
10
|
+
"cs-CZ": { "Empty": `Pr\xe1zdn\xe9` },
|
|
11
|
+
"da-DK": { "Empty": `Tom` },
|
|
12
|
+
"de-DE": { "Empty": `Leer` },
|
|
13
|
+
"el-GR": { "Empty": `\u{386}\u{3B4}\u{3B5}\u{3B9}\u{3BF}` },
|
|
14
|
+
"en-US": { "Empty": `Empty` },
|
|
15
|
+
"es-ES": { "Empty": `Vac\xedo` },
|
|
16
|
+
"et-EE": { "Empty": `T\xfchjenda` },
|
|
17
|
+
"fi-FI": { "Empty": `Tyhj\xe4` },
|
|
18
|
+
"fr-FR": { "Empty": `Vide` },
|
|
19
|
+
"he-IL": { "Empty": `\u{5E8}\u{5D9}\u{5E7}` },
|
|
20
|
+
"hr-HR": { "Empty": `Prazno` },
|
|
21
|
+
"hu-HU": { "Empty": `\xdcres` },
|
|
22
|
+
"it-IT": { "Empty": `Vuoto` },
|
|
23
|
+
"ja-JP": { "Empty": `\u{7A7A}` },
|
|
24
|
+
"ko-KR": { "Empty": `\u{BE44}\u{C5B4} \u{C788}\u{C74C}` },
|
|
25
|
+
"lt-LT": { "Empty": `Tu\u{161}\u{10D}ias` },
|
|
26
|
+
"lv-LV": { "Empty": `Tuk\u{161}s` },
|
|
27
|
+
"nb-NO": { "Empty": `Tom` },
|
|
28
|
+
"nl-NL": { "Empty": `Leeg` },
|
|
29
|
+
"pl-PL": { "Empty": `Pusty` },
|
|
30
|
+
"pt-BR": { "Empty": `Vazio` },
|
|
31
|
+
"pt-PT": { "Empty": `Vazio` },
|
|
32
|
+
"ro-RO": { "Empty": `Gol` },
|
|
33
|
+
"ru-RU": { "Empty": `\u{41D}\u{435} \u{437}\u{430}\u{43F}\u{43E}\u{43B}\u{43D}\u{435}\u{43D}\u{43E}` },
|
|
34
|
+
"sk-SK": { "Empty": `Pr\xe1zdne` },
|
|
35
|
+
"sl-SI": { "Empty": `Prazen` },
|
|
36
|
+
"sr-SP": { "Empty": `Prazno` },
|
|
37
|
+
"sv-SE": { "Empty": `Tomt` },
|
|
38
|
+
"tr-TR": { "Empty": `Bo\u{15F}` },
|
|
39
|
+
"uk-UA": { "Empty": `\u{41F}\u{443}\u{441}\u{442}\u{43E}` },
|
|
40
|
+
"zh-CN": { "Empty": `\u{7A7A}` },
|
|
41
|
+
"zh-TW": { "Empty": `\u{7A7A}\u{767D}` }
|
|
42
|
+
};
|
|
43
|
+
const spinButtonDictionary = new LocalizedStringDictionary(spinButtonStrings);
|
|
44
|
+
//#endregion
|
|
45
|
+
//#region src/spinbutton/createSpinButton.ts
|
|
46
|
+
/**
|
|
47
|
+
* createSpinButton hook for Solidaria
|
|
48
|
+
*
|
|
49
|
+
* Provides the ARIA spinbutton props and live-region announcement behaviour for
|
|
50
|
+
* a single spinbutton (e.g. a date-field segment). Port of the keyboard/announce
|
|
51
|
+
* portion of @react-aria/spinbutton `useSpinButton`. The pointer press-and-hold
|
|
52
|
+
* button machinery (increment/decrement buttons) is intentionally omitted — date
|
|
53
|
+
* segments drive value changes through the keyboard only.
|
|
54
|
+
*/
|
|
55
|
+
/**
|
|
56
|
+
* Provides the behaviour and accessibility implementation for a spinbutton.
|
|
57
|
+
*/
|
|
58
|
+
function createSpinButton(props) {
|
|
59
|
+
const getProps = () => access(props);
|
|
60
|
+
const stringFormatter = createStringFormatter(spinButtonStrings, "@react-aria/spinbutton");
|
|
61
|
+
const onKeyDown = (e) => {
|
|
62
|
+
const p = getProps();
|
|
63
|
+
if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || p.isReadOnly || e.isComposing) return;
|
|
64
|
+
switch (e.key) {
|
|
65
|
+
case "PageUp":
|
|
66
|
+
if (p.onIncrementPage) {
|
|
67
|
+
e.preventDefault();
|
|
68
|
+
p.onIncrementPage();
|
|
69
|
+
} else if (p.onIncrement) {
|
|
70
|
+
e.preventDefault();
|
|
71
|
+
p.onIncrement();
|
|
72
|
+
}
|
|
73
|
+
break;
|
|
74
|
+
case "ArrowUp":
|
|
75
|
+
case "Up":
|
|
76
|
+
if (p.onIncrement) {
|
|
77
|
+
e.preventDefault();
|
|
78
|
+
p.onIncrement();
|
|
79
|
+
}
|
|
80
|
+
break;
|
|
81
|
+
case "PageDown":
|
|
82
|
+
if (p.onDecrementPage) {
|
|
83
|
+
e.preventDefault();
|
|
84
|
+
p.onDecrementPage();
|
|
85
|
+
} else if (p.onDecrement) {
|
|
86
|
+
e.preventDefault();
|
|
87
|
+
p.onDecrement();
|
|
88
|
+
}
|
|
89
|
+
break;
|
|
90
|
+
case "ArrowDown":
|
|
91
|
+
case "Down":
|
|
92
|
+
if (p.onDecrement) {
|
|
93
|
+
e.preventDefault();
|
|
94
|
+
p.onDecrement();
|
|
95
|
+
}
|
|
96
|
+
break;
|
|
97
|
+
case "Home":
|
|
98
|
+
if (p.onDecrementToMin) {
|
|
99
|
+
e.preventDefault();
|
|
100
|
+
p.onDecrementToMin();
|
|
101
|
+
}
|
|
102
|
+
break;
|
|
103
|
+
case "End":
|
|
104
|
+
if (p.onIncrementToMax) {
|
|
105
|
+
e.preventDefault();
|
|
106
|
+
p.onIncrementToMax();
|
|
107
|
+
}
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
let isFocused = false;
|
|
112
|
+
const onFocus = () => {
|
|
113
|
+
isFocused = true;
|
|
114
|
+
};
|
|
115
|
+
const onBlur = () => {
|
|
116
|
+
isFocused = false;
|
|
117
|
+
};
|
|
118
|
+
const ariaTextValue = createMemo(() => {
|
|
119
|
+
const p = getProps();
|
|
120
|
+
return p.textValue === "" ? stringFormatter().format("Empty") : (p.textValue || `${p.value}`).replace("-", "−");
|
|
121
|
+
});
|
|
122
|
+
createEffect(() => {
|
|
123
|
+
const value = ariaTextValue();
|
|
124
|
+
if (isFocused) {
|
|
125
|
+
clearAnnouncer("assertive");
|
|
126
|
+
announce(value, "assertive");
|
|
127
|
+
}
|
|
128
|
+
});
|
|
129
|
+
const spinButtonProps = createMemo(() => {
|
|
130
|
+
const p = getProps();
|
|
131
|
+
const value = p.value;
|
|
132
|
+
return {
|
|
133
|
+
role: "spinbutton",
|
|
134
|
+
"aria-valuenow": value !== void 0 && !isNaN(value) ? value : void 0,
|
|
135
|
+
"aria-valuetext": ariaTextValue(),
|
|
136
|
+
"aria-valuemin": p.minValue,
|
|
137
|
+
"aria-valuemax": p.maxValue,
|
|
138
|
+
"aria-disabled": p.isDisabled || void 0,
|
|
139
|
+
"aria-readonly": p.isReadOnly || void 0,
|
|
140
|
+
"aria-required": p.isRequired || void 0,
|
|
141
|
+
onKeyDown,
|
|
142
|
+
onFocus,
|
|
143
|
+
onBlur
|
|
144
|
+
};
|
|
145
|
+
});
|
|
146
|
+
return { get spinButtonProps() {
|
|
147
|
+
return spinButtonProps();
|
|
148
|
+
} };
|
|
149
|
+
}
|
|
150
|
+
//#endregion
|
|
151
|
+
export { spinButtonDictionary as n, spinButtonStrings as r, createSpinButton as t };
|
|
152
|
+
|
|
153
|
+
//# sourceMappingURL=spinbutton.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinbutton.jsx","names":[],"sources":["../../src/spinbutton/intl.ts","../../src/spinbutton/createSpinButton.ts"],"sourcesContent":["// Spinbutton announcement catalog, ported verbatim from @react-aria/spinbutton's\n// intl/*.json (34 locales). Keep in sync with the vendored react-spectrum source on\n// every pin bump.\nimport { LocalizedStringDictionary } from \"@internationalized/string\";\n\nexport type SpinButtonStringKey = \"Empty\";\n\nexport const spinButtonStrings: Record<string, Record<SpinButtonStringKey, string>> = {\n \"ar-AE\": {\n \"Empty\": `\\u{641}\\u{627}\\u{631}\\u{63A}`\n },\n \"bg-BG\": {\n \"Empty\": `\\u{418}\\u{437}\\u{43F}\\u{440}\\u{430}\\u{437}\\u{43D}\\u{438}`\n },\n \"cs-CZ\": {\n \"Empty\": `Pr\\xe1zdn\\xe9`\n },\n \"da-DK\": {\n \"Empty\": `Tom`\n },\n \"de-DE\": {\n \"Empty\": `Leer`\n },\n \"el-GR\": {\n \"Empty\": `\\u{386}\\u{3B4}\\u{3B5}\\u{3B9}\\u{3BF}`\n },\n \"en-US\": {\n \"Empty\": `Empty`\n },\n \"es-ES\": {\n \"Empty\": `Vac\\xedo`\n },\n \"et-EE\": {\n \"Empty\": `T\\xfchjenda`\n },\n \"fi-FI\": {\n \"Empty\": `Tyhj\\xe4`\n },\n \"fr-FR\": {\n \"Empty\": `Vide`\n },\n \"he-IL\": {\n \"Empty\": `\\u{5E8}\\u{5D9}\\u{5E7}`\n },\n \"hr-HR\": {\n \"Empty\": `Prazno`\n },\n \"hu-HU\": {\n \"Empty\": `\\xdcres`\n },\n \"it-IT\": {\n \"Empty\": `Vuoto`\n },\n \"ja-JP\": {\n \"Empty\": `\\u{7A7A}`\n },\n \"ko-KR\": {\n \"Empty\": `\\u{BE44}\\u{C5B4} \\u{C788}\\u{C74C}`\n },\n \"lt-LT\": {\n \"Empty\": `Tu\\u{161}\\u{10D}ias`\n },\n \"lv-LV\": {\n \"Empty\": `Tuk\\u{161}s`\n },\n \"nb-NO\": {\n \"Empty\": `Tom`\n },\n \"nl-NL\": {\n \"Empty\": `Leeg`\n },\n \"pl-PL\": {\n \"Empty\": `Pusty`\n },\n \"pt-BR\": {\n \"Empty\": `Vazio`\n },\n \"pt-PT\": {\n \"Empty\": `Vazio`\n },\n \"ro-RO\": {\n \"Empty\": `Gol`\n },\n \"ru-RU\": {\n \"Empty\": `\\u{41D}\\u{435} \\u{437}\\u{430}\\u{43F}\\u{43E}\\u{43B}\\u{43D}\\u{435}\\u{43D}\\u{43E}`\n },\n \"sk-SK\": {\n \"Empty\": `Pr\\xe1zdne`\n },\n \"sl-SI\": {\n \"Empty\": `Prazen`\n },\n \"sr-SP\": {\n \"Empty\": `Prazno`\n },\n \"sv-SE\": {\n \"Empty\": `Tomt`\n },\n \"tr-TR\": {\n \"Empty\": `Bo\\u{15F}`\n },\n \"uk-UA\": {\n \"Empty\": `\\u{41F}\\u{443}\\u{441}\\u{442}\\u{43E}`\n },\n \"zh-CN\": {\n \"Empty\": `\\u{7A7A}`\n },\n \"zh-TW\": {\n \"Empty\": `\\u{7A7A}\\u{767D}`\n },\n};\n\nexport const spinButtonDictionary = new LocalizedStringDictionary<SpinButtonStringKey, string>(\n spinButtonStrings,\n);\n","/**\n * createSpinButton hook for Solidaria\n *\n * Provides the ARIA spinbutton props and live-region announcement behaviour for\n * a single spinbutton (e.g. a date-field segment). Port of the keyboard/announce\n * portion of @react-aria/spinbutton `useSpinButton`. The pointer press-and-hold\n * button machinery (increment/decrement buttons) is intentionally omitted — date\n * segments drive value changes through the keyboard only.\n */\n\nimport { createMemo, createEffect } from \"solid-js\";\nimport { access, type MaybeAccessor } from \"../utils/reactivity\";\nimport { createStringFormatter } from \"../i18n\";\nimport { announce, clearAnnouncer } from \"../live-announcer\";\nimport { spinButtonStrings, type SpinButtonStringKey } from \"./intl\";\n\nexport interface SpinButtonProps {\n /** The current value of the spinbutton. */\n value?: number;\n /** A human-readable text alternative for the value. */\n textValue?: string;\n /** The smallest value allowed. */\n minValue?: number;\n /** The largest value allowed. */\n maxValue?: number;\n /** Whether the spinbutton is disabled. */\n isDisabled?: boolean;\n /** Whether the spinbutton is read only. */\n isReadOnly?: boolean;\n /** Whether the spinbutton is required. */\n isRequired?: boolean;\n onIncrement?: () => void;\n onIncrementPage?: () => void;\n onDecrement?: () => void;\n onDecrementPage?: () => void;\n onDecrementToMin?: () => void;\n onIncrementToMax?: () => void;\n}\n\nexport interface SpinButtonAria {\n /** Props for the spinbutton element. */\n spinButtonProps: Record<string, unknown>;\n}\n\n/**\n * Provides the behaviour and accessibility implementation for a spinbutton.\n */\nexport function createSpinButton(props: MaybeAccessor<SpinButtonProps>): SpinButtonAria {\n const getProps = () => access(props);\n const stringFormatter = createStringFormatter<SpinButtonStringKey>(\n spinButtonStrings,\n \"@react-aria/spinbutton\",\n );\n\n const onKeyDown = (e: KeyboardEvent) => {\n const p = getProps();\n if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey || p.isReadOnly || e.isComposing) {\n return;\n }\n\n switch (e.key) {\n // Upstream deliberately falls through PageUp → ArrowUp when no page\n // handler exists; our tsconfig forbids lexical fallthrough, so the\n // PageUp case mirrors that branch inline instead.\n case \"PageUp\":\n if (p.onIncrementPage) {\n e.preventDefault();\n p.onIncrementPage();\n } else if (p.onIncrement) {\n e.preventDefault();\n p.onIncrement();\n }\n break;\n case \"ArrowUp\":\n case \"Up\":\n if (p.onIncrement) {\n e.preventDefault();\n p.onIncrement();\n }\n break;\n // Same faithful fallthrough as PageUp, mirrored inline (PageDown → ArrowDown).\n case \"PageDown\":\n if (p.onDecrementPage) {\n e.preventDefault();\n p.onDecrementPage();\n } else if (p.onDecrement) {\n e.preventDefault();\n p.onDecrement();\n }\n break;\n case \"ArrowDown\":\n case \"Down\":\n if (p.onDecrement) {\n e.preventDefault();\n p.onDecrement();\n }\n break;\n case \"Home\":\n if (p.onDecrementToMin) {\n e.preventDefault();\n p.onDecrementToMin();\n }\n break;\n case \"End\":\n if (p.onIncrementToMax) {\n e.preventDefault();\n p.onIncrementToMax();\n }\n break;\n }\n };\n\n // Non-reactive focus flag — matches upstream's `isFocused` ref. Toggling it must\n // NOT re-run the announce effect; only a change in `ariaTextValue` announces.\n let isFocused = false;\n const onFocus = () => {\n isFocused = true;\n };\n const onBlur = () => {\n isFocused = false;\n };\n\n // Replace Unicode hyphen-minus (U+002D) with minus sign (U+2212) so VoiceOver\n // announces it as \"minus\". Replace the empty string with the word \"Empty\".\n const ariaTextValue = createMemo(() => {\n const p = getProps();\n return p.textValue === \"\"\n ? stringFormatter().format(\"Empty\")\n : (p.textValue || `${p.value}`).replace(\"-\", \"−\");\n });\n\n createEffect(() => {\n const value = ariaTextValue();\n if (isFocused) {\n clearAnnouncer(\"assertive\");\n announce(value, \"assertive\");\n }\n });\n\n const spinButtonProps = createMemo(() => {\n const p = getProps();\n const value = p.value;\n return {\n role: \"spinbutton\",\n \"aria-valuenow\": value !== undefined && !isNaN(value) ? value : undefined,\n \"aria-valuetext\": ariaTextValue(),\n \"aria-valuemin\": p.minValue,\n \"aria-valuemax\": p.maxValue,\n \"aria-disabled\": p.isDisabled || undefined,\n \"aria-readonly\": p.isReadOnly || undefined,\n \"aria-required\": p.isRequired || undefined,\n onKeyDown,\n onFocus,\n onBlur,\n };\n });\n\n return {\n get spinButtonProps() {\n return spinButtonProps();\n },\n };\n}\n"],"mappings":";;;;;;AAOA,MAAa,oBAAyE;CACpF,SAAS,EACT,SAAS,+BACT;CACA,SAAS,EACT,SAAS,2DACT;CACA,SAAS,EACT,SAAS,gBACT;CACA,SAAS,EACT,SAAS,MACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,sCACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,cACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,wBACT;CACA,SAAS,EACT,SAAS,SACT;CACA,SAAS,EACT,SAAS,UACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,oCACT;CACA,SAAS,EACT,SAAS,sBACT;CACA,SAAS,EACT,SAAS,cACT;CACA,SAAS,EACT,SAAS,MACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,QACT;CACA,SAAS,EACT,SAAS,MACT;CACA,SAAS,EACT,SAAS,iFACT;CACA,SAAS,EACT,SAAS,aACT;CACA,SAAS,EACT,SAAS,SACT;CACA,SAAS,EACT,SAAS,SACT;CACA,SAAS,EACT,SAAS,OACT;CACA,SAAS,EACT,SAAS,YACT;CACA,SAAS,EACT,SAAS,sCACT;CACA,SAAS,EACT,SAAS,WACT;CACA,SAAS,EACT,SAAS,mBACT;AACF;AAEA,MAAa,uBAAuB,IAAI,0BACtC,iBACF;;;;;;;;;;;;;;;ACnEA,SAAgB,iBAAiB,OAAuD;CACtF,MAAM,iBAAiB,OAAO,KAAK;CACnC,MAAM,kBAAkB,sBACtB,mBACA,wBACF;CAEA,MAAM,aAAa,MAAqB;EACtC,MAAM,IAAI,SAAS;EACnB,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,aACxE;EAGF,QAAQ,EAAE,KAAV;GAIE,KAAK;IACH,IAAI,EAAE,iBAAiB;KACrB,EAAE,eAAe;KACjB,EAAE,gBAAgB;IACpB,OAAO,IAAI,EAAE,aAAa;KACxB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GACF,KAAK;GACL,KAAK;IACH,IAAI,EAAE,aAAa;KACjB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GAEF,KAAK;IACH,IAAI,EAAE,iBAAiB;KACrB,EAAE,eAAe;KACjB,EAAE,gBAAgB;IACpB,OAAO,IAAI,EAAE,aAAa;KACxB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GACF,KAAK;GACL,KAAK;IACH,IAAI,EAAE,aAAa;KACjB,EAAE,eAAe;KACjB,EAAE,YAAY;IAChB;IACA;GACF,KAAK;IACH,IAAI,EAAE,kBAAkB;KACtB,EAAE,eAAe;KACjB,EAAE,iBAAiB;IACrB;IACA;GACF,KAAK;IACH,IAAI,EAAE,kBAAkB;KACtB,EAAE,eAAe;KACjB,EAAE,iBAAiB;IACrB;IACA;EACJ;CACF;CAIA,IAAI,YAAY;CAChB,MAAM,gBAAgB;EACpB,YAAY;CACd;CACA,MAAM,eAAe;EACnB,YAAY;CACd;CAIA,MAAM,gBAAgB,iBAAiB;EACrC,MAAM,IAAI,SAAS;EACnB,OAAO,EAAE,cAAc,KACnB,gBAAgB,CAAC,CAAC,OAAO,OAAO,KAC/B,EAAE,aAAa,GAAG,EAAE,QAAA,CAAS,QAAQ,KAAK,GAAG;CACpD,CAAC;CAED,mBAAmB;EACjB,MAAM,QAAQ,cAAc;EAC5B,IAAI,WAAW;GACb,eAAe,WAAW;GAC1B,SAAS,OAAO,WAAW;EAC7B;CACF,CAAC;CAED,MAAM,kBAAkB,iBAAiB;EACvC,MAAM,IAAI,SAAS;EACnB,MAAM,QAAQ,EAAE;EAChB,OAAO;GACL,MAAM;GACN,iBAAiB,UAAU,KAAA,KAAa,CAAC,MAAM,KAAK,IAAI,QAAQ,KAAA;GAChE,kBAAkB,cAAc;GAChC,iBAAiB,EAAE;GACnB,iBAAiB,EAAE;GACnB,iBAAiB,EAAE,cAAc,KAAA;GACjC,iBAAiB,EAAE,cAAc,KAAA;GACjC,iBAAiB,EAAE,cAAc,KAAA;GACjC;GACA;GACA;EACF;CACF,CAAC;CAED,OAAO,EACL,IAAI,kBAAkB;EACpB,OAAO,gBAAgB;CACzB,EACF;AACF"}
|