@proyecto-viviana/solidaria 0.2.8 → 0.3.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/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/autocomplete/createAutocomplete.d.ts +10 -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/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/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/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/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 +5 -5
- package/dist/calendar/index.d.ts.map +1 -1
- 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 +12 -0
- package/dist/calendar/utils.d.ts.map +1 -0
- package/dist/checkbox/createCheckbox.d.ts +6 -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/collections/index.d.ts +3 -3
- package/dist/collections/index.d.ts.map +1 -1
- 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/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/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/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/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/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/types.d.ts +2 -2
- package/dist/dnd/types.d.ts.map +1 -1
- package/dist/dnd/utils.d.ts +1 -1
- 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/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/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/types.d.ts +8 -8
- package/dist/gridlist/createGridList.d.ts +6 -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/createGridListSelectionCheckbox.d.ts +3 -3
- package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +1 -1
- package/dist/gridlist/index.d.ts +4 -4
- package/dist/gridlist/types.d.ts +11 -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/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 +52 -51
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18012 -16820
- package/dist/index.js.map +1 -1
- package/dist/index.jsx +18242 -0
- package/dist/index.jsx.map +1 -0
- package/dist/interactions/FocusableProvider.d.ts +2 -2
- package/dist/interactions/FocusableProvider.d.ts.map +1 -1
- package/dist/interactions/PressEvent.d.ts +2 -2
- 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 -3
- package/dist/interactions/createInteractionModality.d.ts.map +1 -1
- package/dist/interactions/createKeyboard.d.ts +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/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/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/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/listbox/createListBox.d.ts +11 -6
- package/dist/listbox/createListBox.d.ts.map +1 -1
- package/dist/listbox/createOption.d.ts +21 -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/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/menu/createMenu.d.ts +7 -7
- package/dist/menu/createMenu.d.ts.map +1 -1
- package/dist/menu/createMenuItem.d.ts +16 -4
- 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/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/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/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/popover/calculatePosition.d.ts +4 -4
- package/dist/popover/calculatePosition.d.ts.map +1 -1
- package/dist/popover/createOverlayPosition.d.ts +3 -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/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/radio/createRadio.d.ts +7 -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/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/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/selection/createTypeSelect.d.ts +2 -2
- package/dist/selection/index.d.ts +1 -1
- 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/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/ssr/index.d.ts +1 -1
- package/dist/ssr/index.d.ts.map +1 -1
- 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/switch/createSwitch.d.ts +6 -4
- package/dist/switch/createSwitch.d.ts.map +1 -1
- package/dist/switch/index.d.ts +1 -1
- 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 +3 -3
- 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/createTableSelectAllCheckbox.d.ts.map +1 -1
- 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/types.d.ts +15 -7
- package/dist/table/types.d.ts.map +1 -1
- package/dist/tabs/createTabs.d.ts +28 -25
- package/dist/tabs/createTabs.d.ts.map +1 -1
- package/dist/tabs/index.d.ts +1 -1
- package/dist/tag/createTag.d.ts +2 -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/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/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/toggle/createToggle.d.ts +9 -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/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/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/tree/createTree.d.ts +3 -3
- 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/types.d.ts +10 -6
- package/dist/tree/types.d.ts.map +1 -1
- package/dist/utils/createDescription.d.ts +2 -2
- package/dist/utils/createDescription.d.ts.map +1 -1
- 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 +12 -12
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/mergeProps.d.ts.map +1 -1
- package/dist/utils/reactivity.d.ts +1 -1
- 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/package.json +32 -32
- package/src/actiongroup/createActionGroup.ts +101 -91
- package/src/actiongroup/index.ts +1 -1
- package/src/autocomplete/createAutocomplete.ts +117 -134
- 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 +62 -29
- package/src/calendar/createCalendarCell.ts +98 -46
- package/src/calendar/createCalendarGrid.ts +57 -35
- package/src/calendar/createRangeCalendar.ts +66 -31
- package/src/calendar/createRangeCalendarCell.ts +92 -31
- package/src/calendar/index.ts +5 -9
- package/src/calendar/intl/index.ts +210 -0
- package/src/calendar/utils.ts +227 -0
- package/src/checkbox/createCheckbox.ts +13 -21
- package/src/checkbox/createCheckboxGroup.ts +68 -44
- package/src/checkbox/createCheckboxGroupItem.ts +16 -27
- 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 +183 -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 +290 -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 +36 -49
- package/src/focus/FocusScope.tsx +155 -164
- 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 +20 -43
- 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 +34 -29
- package/src/gridlist/createGridListItem.ts +68 -23
- package/src/gridlist/createGridListSelectionCheckbox.ts +12 -9
- package/src/gridlist/index.ts +4 -4
- package/src/gridlist/types.ts +11 -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 +68 -169
- package/src/interactions/FocusableProvider.tsx +3 -7
- package/src/interactions/PressEvent.ts +4 -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 +75 -82
- package/src/interactions/createKeyboard.ts +2 -2
- package/src/interactions/createLongPress.ts +23 -23
- package/src/interactions/createMove.ts +72 -62
- package/src/interactions/createPress.ts +164 -87
- 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 +69 -58
- package/src/listbox/createOption.ts +83 -37
- 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 +79 -50
- package/src/menu/createMenuItem.ts +79 -27
- 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 +138 -81
- 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 +115 -117
- package/src/popover/createOverlayPosition.ts +46 -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 +95 -73
- 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 +128 -71
- package/src/select/index.ts +2 -7
- package/src/selection/createTypeSelect.ts +11 -11
- package/src/selection/index.ts +1 -1
- package/src/separator/createSeparator.ts +20 -25
- package/src/separator/index.ts +1 -1
- package/src/slider/createSlider.ts +93 -124
- package/src/slider/index.ts +2 -2
- package/src/ssr/index.tsx +8 -47
- package/src/steplist/createStepList.ts +106 -0
- package/src/steplist/index.ts +8 -0
- package/src/switch/createSwitch.ts +9 -14
- package/src/switch/index.ts +1 -1
- package/src/table/createTable.ts +152 -85
- 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 +149 -29
- package/src/table/createTableRowGroup.ts +5 -7
- package/src/table/createTableSelectAllCheckbox.ts +12 -11
- package/src/table/createTableSelectionCheckbox.ts +8 -8
- package/src/table/index.ts +14 -9
- package/src/table/types.ts +15 -7
- package/src/tabs/createTabs.ts +74 -92
- package/src/tabs/index.ts +1 -1
- package/src/tag/createTag.ts +52 -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 +28 -26
- package/src/toast/createToastRegion.ts +169 -26
- package/src/toast/index.ts +2 -6
- package/src/toggle/createToggle.ts +95 -53
- package/src/toggle/createToggleState.ts +2 -10
- package/src/toggle/index.ts +4 -5
- package/src/toolbar/createToolbar.ts +193 -210
- 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 +35 -37
- package/src/tree/createTreeItem.ts +29 -29
- package/src/tree/createTreeSelectionCheckbox.ts +11 -8
- package/src/tree/index.ts +4 -4
- package/src/tree/types.ts +10 -6
- package/src/utils/createDescription.ts +6 -23
- package/src/utils/dom.ts +61 -54
- 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 +12 -22
- package/src/utils/mergeProps.ts +42 -15
- package/src/utils/platform.ts +2 -2
- package/src/utils/reactivity.ts +3 -3
- 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.ssr.js +0 -17082
- package/dist/index.ssr.js.map +0 -1
- package/src/i18n/NumberFormatter.ts +0 -266
package/src/link/createLink.ts
CHANGED
|
@@ -8,17 +8,13 @@
|
|
|
8
8
|
* This is a 1:1 port of @react-aria/link's useLink hook.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { type Accessor } from
|
|
12
|
-
import { createPress } from
|
|
13
|
-
import { createFocusable } from
|
|
14
|
-
import { mergeProps } from
|
|
15
|
-
import { filterDOMProps } from
|
|
16
|
-
import { type MaybeAccessor, access } from
|
|
17
|
-
import { type PressEvent } from
|
|
18
|
-
|
|
19
|
-
// ============================================
|
|
20
|
-
// TYPES
|
|
21
|
-
// ============================================
|
|
11
|
+
import { type Accessor } from "solid-js";
|
|
12
|
+
import { createPress } from "../interactions/createPress";
|
|
13
|
+
import { createFocusable } from "../interactions/createFocusable";
|
|
14
|
+
import { mergeProps } from "../utils/mergeProps";
|
|
15
|
+
import { filterDOMProps } from "../utils/filterDOMProps";
|
|
16
|
+
import { type MaybeAccessor, access } from "../utils/reactivity";
|
|
17
|
+
import { type PressEvent } from "../interactions/PressEvent";
|
|
22
18
|
|
|
23
19
|
export interface AriaLinkProps {
|
|
24
20
|
/** Whether the link is disabled. */
|
|
@@ -41,21 +37,25 @@ export interface AriaLinkProps {
|
|
|
41
37
|
ping?: string;
|
|
42
38
|
/** Referrer policy for fetches initiated by this link. */
|
|
43
39
|
referrerPolicy?:
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
51
|
-
|
|
|
52
|
-
|
|
|
40
|
+
| ""
|
|
41
|
+
| "no-referrer"
|
|
42
|
+
| "no-referrer-when-downgrade"
|
|
43
|
+
| "origin"
|
|
44
|
+
| "origin-when-cross-origin"
|
|
45
|
+
| "same-origin"
|
|
46
|
+
| "strict-origin"
|
|
47
|
+
| "strict-origin-when-cross-origin"
|
|
48
|
+
| "unsafe-url";
|
|
53
49
|
/** Handler that is called when the press is released over the target. */
|
|
54
50
|
onPress?: (e: PressEvent) => void;
|
|
55
51
|
/** Handler that is called when a press interaction starts. */
|
|
56
52
|
onPressStart?: (e: PressEvent) => void;
|
|
57
53
|
/** Handler that is called when a press interaction ends. */
|
|
58
54
|
onPressEnd?: (e: PressEvent) => void;
|
|
55
|
+
/** Handler that is called when a press is released over the target. */
|
|
56
|
+
onPressUp?: (e: PressEvent) => void;
|
|
57
|
+
/** Handler that is called when the press state changes. */
|
|
58
|
+
onPressChange?: (isPressed: boolean) => void;
|
|
59
59
|
/** Handler that is called when the element is clicked. */
|
|
60
60
|
onClick?: (e: MouseEvent) => void;
|
|
61
61
|
/** Handler that is called when the element receives focus. */
|
|
@@ -71,13 +71,15 @@ export interface AriaLinkProps {
|
|
|
71
71
|
/** Whether to autofocus the element. */
|
|
72
72
|
autoFocus?: boolean;
|
|
73
73
|
/** Indicates the current "page" or state within a set of related elements. */
|
|
74
|
-
|
|
74
|
+
"aria-current"?: "page" | "step" | "location" | "date" | "time" | "true" | "false" | boolean;
|
|
75
75
|
/** Defines a string value that labels the current element. */
|
|
76
|
-
|
|
76
|
+
"aria-label"?: string;
|
|
77
77
|
/** Identifies the element (or elements) that labels the current element. */
|
|
78
|
-
|
|
78
|
+
"aria-labelledby"?: string;
|
|
79
79
|
/** Identifies the element (or elements) that describes the object. */
|
|
80
|
-
|
|
80
|
+
"aria-describedby"?: string;
|
|
81
|
+
/** Identifies the element (or elements) that provide a detailed description. */
|
|
82
|
+
"aria-details"?: string;
|
|
81
83
|
}
|
|
82
84
|
|
|
83
85
|
export interface LinkAria {
|
|
@@ -87,40 +89,62 @@ export interface LinkAria {
|
|
|
87
89
|
isPressed: Accessor<boolean>;
|
|
88
90
|
}
|
|
89
91
|
|
|
90
|
-
// ============================================
|
|
91
|
-
// IMPLEMENTATION
|
|
92
|
-
// ============================================
|
|
93
|
-
|
|
94
92
|
/**
|
|
95
93
|
* Provides the behavior and accessibility implementation for a link component.
|
|
96
94
|
* A link allows a user to navigate to another page or resource within a web page
|
|
97
95
|
* or application.
|
|
98
96
|
*/
|
|
99
|
-
export function createLink(
|
|
100
|
-
props: MaybeAccessor<AriaLinkProps> = {}
|
|
101
|
-
): LinkAria {
|
|
97
|
+
export function createLink(props: MaybeAccessor<AriaLinkProps> = {}): LinkAria {
|
|
102
98
|
const getProps = () => access(props);
|
|
103
99
|
|
|
104
100
|
const isDisabled = () => getProps().isDisabled ?? false;
|
|
105
|
-
const elementType = () => getProps().elementType ??
|
|
101
|
+
const elementType = () => getProps().elementType ?? "a";
|
|
106
102
|
|
|
107
103
|
// Create press handling
|
|
108
104
|
const { pressProps, isPressed } = createPress({
|
|
109
|
-
get isDisabled() {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
get
|
|
105
|
+
get isDisabled() {
|
|
106
|
+
return isDisabled();
|
|
107
|
+
},
|
|
108
|
+
get onPress() {
|
|
109
|
+
return getProps().onPress;
|
|
110
|
+
},
|
|
111
|
+
get onPressStart() {
|
|
112
|
+
return getProps().onPressStart;
|
|
113
|
+
},
|
|
114
|
+
get onPressEnd() {
|
|
115
|
+
return getProps().onPressEnd;
|
|
116
|
+
},
|
|
117
|
+
get onPressUp() {
|
|
118
|
+
return getProps().onPressUp;
|
|
119
|
+
},
|
|
120
|
+
get onPressChange() {
|
|
121
|
+
return getProps().onPressChange;
|
|
122
|
+
},
|
|
113
123
|
});
|
|
114
124
|
|
|
115
125
|
// Create focusable handling
|
|
116
126
|
const { focusableProps } = createFocusable({
|
|
117
|
-
get isDisabled() {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
get
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
get
|
|
127
|
+
get isDisabled() {
|
|
128
|
+
return isDisabled();
|
|
129
|
+
},
|
|
130
|
+
get autoFocus() {
|
|
131
|
+
return getProps().autoFocus;
|
|
132
|
+
},
|
|
133
|
+
get onFocus() {
|
|
134
|
+
return getProps().onFocus;
|
|
135
|
+
},
|
|
136
|
+
get onBlur() {
|
|
137
|
+
return getProps().onBlur;
|
|
138
|
+
},
|
|
139
|
+
get onFocusChange() {
|
|
140
|
+
return getProps().onFocusChange;
|
|
141
|
+
},
|
|
142
|
+
get onKeyDown() {
|
|
143
|
+
return getProps().onKeyDown;
|
|
144
|
+
},
|
|
145
|
+
get onKeyUp() {
|
|
146
|
+
return getProps().onKeyUp;
|
|
147
|
+
},
|
|
124
148
|
});
|
|
125
149
|
|
|
126
150
|
// Build link props
|
|
@@ -132,29 +156,32 @@ export function createLink(
|
|
|
132
156
|
let baseProps: Record<string, unknown> = {};
|
|
133
157
|
|
|
134
158
|
// If not an <a>, add role and tabIndex
|
|
135
|
-
if (elType !==
|
|
159
|
+
if (elType !== "a") {
|
|
136
160
|
baseProps = {
|
|
137
|
-
role:
|
|
161
|
+
role: "link",
|
|
138
162
|
tabIndex: disabled ? undefined : 0,
|
|
139
163
|
};
|
|
140
164
|
}
|
|
141
165
|
|
|
142
166
|
// ARIA attributes
|
|
143
167
|
const ariaProps: Record<string, unknown> = {
|
|
144
|
-
|
|
168
|
+
"aria-disabled": disabled || undefined,
|
|
145
169
|
};
|
|
146
170
|
|
|
147
|
-
if (p[
|
|
148
|
-
ariaProps[
|
|
171
|
+
if (p["aria-current"] !== undefined) {
|
|
172
|
+
ariaProps["aria-current"] = p["aria-current"];
|
|
173
|
+
}
|
|
174
|
+
if (p["aria-label"]) {
|
|
175
|
+
ariaProps["aria-label"] = p["aria-label"];
|
|
149
176
|
}
|
|
150
|
-
if (p[
|
|
151
|
-
ariaProps[
|
|
177
|
+
if (p["aria-labelledby"]) {
|
|
178
|
+
ariaProps["aria-labelledby"] = p["aria-labelledby"];
|
|
152
179
|
}
|
|
153
|
-
if (p[
|
|
154
|
-
ariaProps[
|
|
180
|
+
if (p["aria-describedby"]) {
|
|
181
|
+
ariaProps["aria-describedby"] = p["aria-describedby"];
|
|
155
182
|
}
|
|
156
|
-
if (p[
|
|
157
|
-
ariaProps[
|
|
183
|
+
if (p["aria-details"]) {
|
|
184
|
+
ariaProps["aria-details"] = p["aria-details"];
|
|
158
185
|
}
|
|
159
186
|
|
|
160
187
|
// Handle onClick - prevent default navigation when appropriate
|
|
@@ -178,13 +205,13 @@ export function createLink(
|
|
|
178
205
|
return mergeProps(
|
|
179
206
|
filterDOMProps(p as Record<string, unknown>, {
|
|
180
207
|
labelable: true,
|
|
181
|
-
isLink: elType ===
|
|
208
|
+
isLink: elType === "a",
|
|
182
209
|
}),
|
|
183
210
|
baseProps,
|
|
184
211
|
ariaProps,
|
|
185
212
|
focusableProps as Record<string, unknown>,
|
|
186
213
|
pressProps as Record<string, unknown>,
|
|
187
|
-
{ onClick }
|
|
214
|
+
{ onClick },
|
|
188
215
|
);
|
|
189
216
|
};
|
|
190
217
|
|
package/src/link/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { createLink, type AriaLinkProps, type LinkAria } from
|
|
1
|
+
export { createLink, type AriaLinkProps, type LinkAria } from "./createLink";
|
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
* Based on @react-aria/listbox useListBox.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { createEffect, onCleanup, type JSX } from
|
|
8
|
-
import { createFocusWithin } from
|
|
9
|
-
import { createLabel } from
|
|
10
|
-
import { createTypeSelect } from
|
|
11
|
-
import { filterDOMProps } from
|
|
12
|
-
import { mergeProps } from
|
|
13
|
-
import { createId } from
|
|
14
|
-
import { access, type MaybeAccessor } from
|
|
15
|
-
import { isDevEnv } from
|
|
16
|
-
import type { ListState, Key } from
|
|
7
|
+
import { createEffect, onCleanup, type JSX } from "solid-js";
|
|
8
|
+
import { createFocusWithin } from "../interactions/createFocusWithin";
|
|
9
|
+
import { createLabel } from "../label/createLabel";
|
|
10
|
+
import { createTypeSelect } from "../selection/createTypeSelect";
|
|
11
|
+
import { filterDOMProps } from "../utils/filterDOMProps";
|
|
12
|
+
import { mergeProps } from "../utils/mergeProps";
|
|
13
|
+
import { createId } from "../ssr";
|
|
14
|
+
import { access, type MaybeAccessor } from "../utils/reactivity";
|
|
15
|
+
import { isDevEnv } from "../utils/env";
|
|
16
|
+
import type { ListState, Key } from "@proyecto-viviana/solid-stately";
|
|
17
17
|
|
|
18
18
|
export interface AriaListBoxProps {
|
|
19
19
|
/** An ID for the listbox. */
|
|
@@ -23,11 +23,11 @@ export interface AriaListBoxProps {
|
|
|
23
23
|
/** The label for the listbox. */
|
|
24
24
|
label?: JSX.Element;
|
|
25
25
|
/** An accessible label for the listbox when no visible label is provided. */
|
|
26
|
-
|
|
26
|
+
"aria-label"?: string;
|
|
27
27
|
/** The ID of an element that labels the listbox. */
|
|
28
|
-
|
|
28
|
+
"aria-labelledby"?: string;
|
|
29
29
|
/** The ID of an element that describes the listbox. */
|
|
30
|
-
|
|
30
|
+
"aria-describedby"?: string;
|
|
31
31
|
/** Handler called when focus moves into the listbox. */
|
|
32
32
|
onFocus?: (e: FocusEvent) => void;
|
|
33
33
|
/** Handler called when focus moves out of the listbox. */
|
|
@@ -42,6 +42,11 @@ export interface AriaListBoxProps {
|
|
|
42
42
|
shouldSelectOnPressUp?: boolean;
|
|
43
43
|
/** Whether to focus items on hover. */
|
|
44
44
|
shouldFocusOnHover?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Whether keyboard focus movement should also update selection in single selection mode.
|
|
47
|
+
* @default true
|
|
48
|
+
*/
|
|
49
|
+
shouldSelectOnFocus?: boolean;
|
|
45
50
|
/** Whether type-to-select is disabled. @default false */
|
|
46
51
|
disallowTypeAhead?: boolean;
|
|
47
52
|
}
|
|
@@ -71,16 +76,16 @@ export function getListBoxData(state: ListState): ListBoxData | undefined {
|
|
|
71
76
|
function findNextEnabledKey<T>(
|
|
72
77
|
state: ListState<T>,
|
|
73
78
|
currentKey: Key | null,
|
|
74
|
-
direction:
|
|
75
|
-
wrap: boolean
|
|
79
|
+
direction: "next" | "prev",
|
|
80
|
+
wrap: boolean,
|
|
76
81
|
): Key | null {
|
|
77
82
|
const collection = state.collection();
|
|
78
|
-
const getAdjacentKey =
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
: () => collection.getLastKey();
|
|
83
|
+
const getAdjacentKey =
|
|
84
|
+
direction === "next"
|
|
85
|
+
? (key: Key) => collection.getKeyAfter(key)
|
|
86
|
+
: (key: Key) => collection.getKeyBefore(key);
|
|
87
|
+
const getBoundaryKey =
|
|
88
|
+
direction === "next" ? () => collection.getFirstKey() : () => collection.getLastKey();
|
|
84
89
|
|
|
85
90
|
let key = currentKey != null ? getAdjacentKey(currentKey) : getBoundaryKey();
|
|
86
91
|
while (key != null && state.isDisabled(key)) {
|
|
@@ -104,7 +109,7 @@ function findNextEnabledKey<T>(
|
|
|
104
109
|
export function createListBox<T>(
|
|
105
110
|
props: MaybeAccessor<AriaListBoxProps>,
|
|
106
111
|
state: ListState<T>,
|
|
107
|
-
_ref?: () => HTMLElement | null
|
|
112
|
+
_ref?: () => HTMLElement | null,
|
|
108
113
|
): ListBoxAria {
|
|
109
114
|
const getProps = () => access(props);
|
|
110
115
|
const id = createId(getProps().id);
|
|
@@ -112,15 +117,16 @@ export function createListBox<T>(
|
|
|
112
117
|
// Development-time warning for missing accessibility labels
|
|
113
118
|
if (isDevEnv()) {
|
|
114
119
|
const p = getProps();
|
|
115
|
-
if (!p.label && !p[
|
|
120
|
+
if (!p.label && !p["aria-label"] && !p["aria-labelledby"]) {
|
|
116
121
|
console.warn(
|
|
117
|
-
|
|
122
|
+
"[solidaria] A ListBox requires an aria-label or aria-labelledby attribute for accessibility.",
|
|
118
123
|
);
|
|
119
124
|
}
|
|
120
125
|
}
|
|
121
126
|
|
|
122
127
|
// Filter DOM props
|
|
123
|
-
const domProps = () =>
|
|
128
|
+
const domProps = () =>
|
|
129
|
+
filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true });
|
|
124
130
|
|
|
125
131
|
const updateSharedData = () => {
|
|
126
132
|
const p = getProps();
|
|
@@ -163,13 +169,13 @@ export function createListBox<T>(
|
|
|
163
169
|
get label() {
|
|
164
170
|
return getProps().label;
|
|
165
171
|
},
|
|
166
|
-
get
|
|
167
|
-
return getProps()[
|
|
172
|
+
get "aria-label"() {
|
|
173
|
+
return getProps()["aria-label"];
|
|
168
174
|
},
|
|
169
|
-
get
|
|
170
|
-
return getProps()[
|
|
175
|
+
get "aria-labelledby"() {
|
|
176
|
+
return getProps()["aria-labelledby"];
|
|
171
177
|
},
|
|
172
|
-
labelElementType:
|
|
178
|
+
labelElementType: "span",
|
|
173
179
|
});
|
|
174
180
|
|
|
175
181
|
// Type-to-select
|
|
@@ -190,82 +196,83 @@ export function createListBox<T>(
|
|
|
190
196
|
|
|
191
197
|
const collection = state.collection();
|
|
192
198
|
const shouldWrap = p.shouldFocusWrap ?? false;
|
|
199
|
+
const shouldSelectOnFocus = p.shouldSelectOnFocus ?? true;
|
|
193
200
|
|
|
194
201
|
switch (e.key) {
|
|
195
|
-
case
|
|
202
|
+
case "ArrowDown": {
|
|
196
203
|
e.preventDefault();
|
|
197
|
-
const nextKey = findNextEnabledKey(state, state.focusedKey(),
|
|
204
|
+
const nextKey = findNextEnabledKey(state, state.focusedKey(), "next", shouldWrap);
|
|
198
205
|
if (nextKey != null) {
|
|
199
206
|
state.setFocusedKey(nextKey);
|
|
200
|
-
if (!e.shiftKey && state.selectionMode() ===
|
|
207
|
+
if (shouldSelectOnFocus && !e.shiftKey && state.selectionMode() === "single") {
|
|
201
208
|
state.replaceSelection(nextKey);
|
|
202
|
-
} else if (e.shiftKey && state.selectionMode() ===
|
|
209
|
+
} else if (e.shiftKey && state.selectionMode() === "multiple") {
|
|
203
210
|
state.extendSelection(nextKey, collection);
|
|
204
211
|
}
|
|
205
212
|
}
|
|
206
213
|
break;
|
|
207
214
|
}
|
|
208
|
-
case
|
|
215
|
+
case "ArrowUp": {
|
|
209
216
|
e.preventDefault();
|
|
210
|
-
const prevKey = findNextEnabledKey(state, state.focusedKey(),
|
|
217
|
+
const prevKey = findNextEnabledKey(state, state.focusedKey(), "prev", shouldWrap);
|
|
211
218
|
if (prevKey != null) {
|
|
212
219
|
state.setFocusedKey(prevKey);
|
|
213
|
-
if (!e.shiftKey && state.selectionMode() ===
|
|
220
|
+
if (shouldSelectOnFocus && !e.shiftKey && state.selectionMode() === "single") {
|
|
214
221
|
state.replaceSelection(prevKey);
|
|
215
|
-
} else if (e.shiftKey && state.selectionMode() ===
|
|
222
|
+
} else if (e.shiftKey && state.selectionMode() === "multiple") {
|
|
216
223
|
state.extendSelection(prevKey, collection);
|
|
217
224
|
}
|
|
218
225
|
}
|
|
219
226
|
break;
|
|
220
227
|
}
|
|
221
|
-
case
|
|
228
|
+
case "Home": {
|
|
222
229
|
e.preventDefault();
|
|
223
|
-
const firstKey = findNextEnabledKey(state, null,
|
|
230
|
+
const firstKey = findNextEnabledKey(state, null, "next", false);
|
|
224
231
|
if (firstKey != null) {
|
|
225
232
|
state.setFocusedKey(firstKey);
|
|
226
|
-
if (e.ctrlKey && e.shiftKey && state.selectionMode() ===
|
|
233
|
+
if (e.ctrlKey && e.shiftKey && state.selectionMode() === "multiple") {
|
|
227
234
|
// Select from current to first
|
|
228
235
|
state.extendSelection(firstKey, collection);
|
|
229
|
-
} else if (!e.shiftKey && state.selectionMode() ===
|
|
236
|
+
} else if (shouldSelectOnFocus && !e.shiftKey && state.selectionMode() === "single") {
|
|
230
237
|
state.replaceSelection(firstKey);
|
|
231
238
|
}
|
|
232
239
|
}
|
|
233
240
|
break;
|
|
234
241
|
}
|
|
235
|
-
case
|
|
242
|
+
case "End": {
|
|
236
243
|
e.preventDefault();
|
|
237
|
-
const lastKey = findNextEnabledKey(state, null,
|
|
244
|
+
const lastKey = findNextEnabledKey(state, null, "prev", false);
|
|
238
245
|
if (lastKey != null) {
|
|
239
246
|
state.setFocusedKey(lastKey);
|
|
240
|
-
if (e.ctrlKey && e.shiftKey && state.selectionMode() ===
|
|
247
|
+
if (e.ctrlKey && e.shiftKey && state.selectionMode() === "multiple") {
|
|
241
248
|
// Select from current to last
|
|
242
249
|
state.extendSelection(lastKey, collection);
|
|
243
|
-
} else if (!e.shiftKey && state.selectionMode() ===
|
|
250
|
+
} else if (shouldSelectOnFocus && !e.shiftKey && state.selectionMode() === "single") {
|
|
244
251
|
state.replaceSelection(lastKey);
|
|
245
252
|
}
|
|
246
253
|
}
|
|
247
254
|
break;
|
|
248
255
|
}
|
|
249
|
-
case
|
|
250
|
-
case
|
|
256
|
+
case " ":
|
|
257
|
+
case "Enter": {
|
|
251
258
|
e.preventDefault();
|
|
252
259
|
const focusedKey = state.focusedKey();
|
|
253
260
|
if (focusedKey != null && !state.isDisabled(focusedKey)) {
|
|
254
|
-
if (state.selectionMode() !==
|
|
261
|
+
if (state.selectionMode() !== "none") {
|
|
255
262
|
state.toggleSelection(focusedKey);
|
|
256
263
|
}
|
|
257
264
|
p.onAction?.(focusedKey);
|
|
258
265
|
}
|
|
259
266
|
break;
|
|
260
267
|
}
|
|
261
|
-
case
|
|
262
|
-
if ((e.ctrlKey || e.metaKey) && state.selectionMode() ===
|
|
268
|
+
case "a": {
|
|
269
|
+
if ((e.ctrlKey || e.metaKey) && state.selectionMode() === "multiple") {
|
|
263
270
|
e.preventDefault();
|
|
264
271
|
state.selectAll();
|
|
265
272
|
}
|
|
266
273
|
break;
|
|
267
274
|
}
|
|
268
|
-
case
|
|
275
|
+
case "Escape": {
|
|
269
276
|
e.preventDefault();
|
|
270
277
|
if (!state.disallowEmptySelection()) {
|
|
271
278
|
state.clearSelection();
|
|
@@ -288,18 +295,22 @@ export function createListBox<T>(
|
|
|
288
295
|
focusWithinProps as Record<string, unknown>,
|
|
289
296
|
fieldProps as Record<string, unknown>,
|
|
290
297
|
{
|
|
291
|
-
role:
|
|
298
|
+
role: "listbox",
|
|
292
299
|
tabIndex: p.isDisabled ? undefined : 0,
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
300
|
+
"aria-disabled": p.isDisabled || undefined,
|
|
301
|
+
"aria-multiselectable": selectionMode === "multiple" ? true : undefined,
|
|
302
|
+
"aria-activedescendant":
|
|
303
|
+
state.focusedKey() != null ? String(state.focusedKey()) : undefined,
|
|
296
304
|
onKeyDown,
|
|
297
|
-
}
|
|
305
|
+
},
|
|
298
306
|
);
|
|
299
307
|
|
|
300
308
|
// Add type-select props if enabled
|
|
301
309
|
if (!p.disallowTypeAhead) {
|
|
302
|
-
return mergeProps(
|
|
310
|
+
return mergeProps(
|
|
311
|
+
baseProps,
|
|
312
|
+
typeSelectProps as Record<string, unknown>,
|
|
313
|
+
) as JSX.HTMLAttributes<HTMLElement>;
|
|
303
314
|
}
|
|
304
315
|
|
|
305
316
|
return baseProps as JSX.HTMLAttributes<HTMLElement>;
|