@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
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
* Based on @react-aria/select useSelect.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { type JSX, type Accessor, createEffect, onCleanup } from
|
|
8
|
-
import { createPress } from
|
|
9
|
-
import { createFocusRing } from
|
|
10
|
-
import { createLabel } from
|
|
11
|
-
import { createTypeSelect } from
|
|
12
|
-
import { filterDOMProps } from
|
|
13
|
-
import { mergeProps } from
|
|
14
|
-
import { createId } from
|
|
15
|
-
import { access, type MaybeAccessor } from
|
|
16
|
-
import type { SelectState, CollectionNode } from
|
|
7
|
+
import { type JSX, type Accessor, createEffect, onCleanup } from "solid-js";
|
|
8
|
+
import { createPress } from "../interactions/createPress";
|
|
9
|
+
import { createFocusRing } from "../interactions/createFocusRing";
|
|
10
|
+
import { createLabel } from "../label/createLabel";
|
|
11
|
+
import { createTypeSelect } from "../selection/createTypeSelect";
|
|
12
|
+
import { filterDOMProps } from "../utils/filterDOMProps";
|
|
13
|
+
import { mergeProps } from "../utils/mergeProps";
|
|
14
|
+
import { createId } from "../ssr";
|
|
15
|
+
import { access, type MaybeAccessor } from "../utils/reactivity";
|
|
16
|
+
import type { SelectState, CollectionNode } from "@proyecto-viviana/solid-stately";
|
|
17
17
|
|
|
18
18
|
export interface AriaSelectProps {
|
|
19
19
|
/** An ID for the select. */
|
|
@@ -22,14 +22,16 @@ export interface AriaSelectProps {
|
|
|
22
22
|
isDisabled?: boolean;
|
|
23
23
|
/** Whether the select is required. */
|
|
24
24
|
isRequired?: boolean;
|
|
25
|
+
/** Whether the select is invalid. */
|
|
26
|
+
isInvalid?: boolean;
|
|
25
27
|
/** The label for the select. */
|
|
26
28
|
label?: JSX.Element;
|
|
27
29
|
/** An accessible label for the select when no visible label is provided. */
|
|
28
|
-
|
|
30
|
+
"aria-label"?: string;
|
|
29
31
|
/** The ID of an element that labels the select. */
|
|
30
|
-
|
|
32
|
+
"aria-labelledby"?: string;
|
|
31
33
|
/** The ID of an element that describes the select. */
|
|
32
|
-
|
|
34
|
+
"aria-describedby"?: string;
|
|
33
35
|
/** Placeholder text when no option is selected. */
|
|
34
36
|
placeholder?: string;
|
|
35
37
|
/** Whether the select should be auto-focused. */
|
|
@@ -42,8 +44,14 @@ export interface AriaSelectProps {
|
|
|
42
44
|
onFocusChange?: (isFocused: boolean) => void;
|
|
43
45
|
/** The name of the select, used when submitting an HTML form. */
|
|
44
46
|
name?: string;
|
|
47
|
+
/** Associates the hidden native select with a form element by id. */
|
|
48
|
+
form?: string;
|
|
45
49
|
/** Whether type-to-select is disabled. @default false */
|
|
46
50
|
disallowTypeAhead?: boolean;
|
|
51
|
+
/** Whether the select can open when its collection is empty. @default false */
|
|
52
|
+
allowsEmptyCollection?: boolean;
|
|
53
|
+
/** Whether validation should use ARIA attributes or native browser validation. */
|
|
54
|
+
validationBehavior?: "aria" | "native";
|
|
47
55
|
}
|
|
48
56
|
|
|
49
57
|
export interface SelectAria<T> {
|
|
@@ -86,7 +94,7 @@ export function getSelectData(state: SelectState): SelectData | undefined {
|
|
|
86
94
|
export function createSelect<T>(
|
|
87
95
|
props: MaybeAccessor<AriaSelectProps>,
|
|
88
96
|
state: SelectState<T>,
|
|
89
|
-
_ref?: () => HTMLElement | null
|
|
97
|
+
_ref?: () => HTMLElement | null,
|
|
90
98
|
): SelectAria<T> {
|
|
91
99
|
const getProps = () => access(props);
|
|
92
100
|
const id = createId(getProps().id);
|
|
@@ -119,13 +127,13 @@ export function createSelect<T>(
|
|
|
119
127
|
get label() {
|
|
120
128
|
return getProps().label;
|
|
121
129
|
},
|
|
122
|
-
get
|
|
123
|
-
return getProps()[
|
|
130
|
+
get "aria-label"() {
|
|
131
|
+
return getProps()["aria-label"];
|
|
124
132
|
},
|
|
125
|
-
get
|
|
126
|
-
return getProps()[
|
|
133
|
+
get "aria-labelledby"() {
|
|
134
|
+
return getProps()["aria-labelledby"];
|
|
127
135
|
},
|
|
128
|
-
labelElementType:
|
|
136
|
+
labelElementType: "span",
|
|
129
137
|
});
|
|
130
138
|
|
|
131
139
|
// Focus ring for keyboard focus styling
|
|
@@ -139,14 +147,8 @@ export function createSelect<T>(
|
|
|
139
147
|
const isFocused = state.isFocused;
|
|
140
148
|
|
|
141
149
|
// Handle press on trigger
|
|
142
|
-
const
|
|
143
|
-
|
|
144
|
-
return getProps().isDisabled ?? state.isDisabled;
|
|
145
|
-
},
|
|
146
|
-
onPress() {
|
|
147
|
-
state.toggle();
|
|
148
|
-
},
|
|
149
|
-
});
|
|
150
|
+
const canOpen = () =>
|
|
151
|
+
getProps().allowsEmptyCollection || state.collection().getFirstKey() != null;
|
|
150
152
|
|
|
151
153
|
// Helper to check if key is disabled
|
|
152
154
|
const isKeyDisabled = (key: string | number): boolean => {
|
|
@@ -155,14 +157,17 @@ export function createSelect<T>(
|
|
|
155
157
|
};
|
|
156
158
|
|
|
157
159
|
// Helper to find the next non-disabled key.
|
|
158
|
-
const findNextKey = (
|
|
160
|
+
const findNextKey = (
|
|
161
|
+
fromKey: string | number | null,
|
|
162
|
+
direction: "forward" | "backward",
|
|
163
|
+
): string | number | null => {
|
|
159
164
|
const collection = state.collection();
|
|
160
|
-
const getAdjacent =
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
: () => collection.getLastKey();
|
|
165
|
+
const getAdjacent =
|
|
166
|
+
direction === "forward"
|
|
167
|
+
? (k: string | number) => collection.getKeyAfter(k)
|
|
168
|
+
: (k: string | number) => collection.getKeyBefore(k);
|
|
169
|
+
const getBoundary =
|
|
170
|
+
direction === "forward" ? () => collection.getFirstKey() : () => collection.getLastKey();
|
|
166
171
|
|
|
167
172
|
let key = fromKey == null ? getBoundary() : getAdjacent(fromKey);
|
|
168
173
|
while (key != null && isKeyDisabled(key)) {
|
|
@@ -172,6 +177,42 @@ export function createSelect<T>(
|
|
|
172
177
|
return key;
|
|
173
178
|
};
|
|
174
179
|
|
|
180
|
+
const focusKeyForOpen = (): string | number | null => {
|
|
181
|
+
const selectedKey = state.selectedKey();
|
|
182
|
+
if (selectedKey != null && !isKeyDisabled(selectedKey)) {
|
|
183
|
+
return selectedKey;
|
|
184
|
+
}
|
|
185
|
+
return findNextKey(null, "forward");
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
const openWithFocus = () => {
|
|
189
|
+
if (state.isOpen() || !canOpen()) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
state.open();
|
|
193
|
+
const focusKey = focusKeyForOpen();
|
|
194
|
+
if (focusKey != null) {
|
|
195
|
+
state.setFocusedKey(focusKey);
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
const { pressProps } = createPress({
|
|
200
|
+
get isDisabled() {
|
|
201
|
+
return getProps().isDisabled ?? state.isDisabled;
|
|
202
|
+
},
|
|
203
|
+
onPress(e) {
|
|
204
|
+
if (e.pointerType === "keyboard") {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
if (state.isOpen()) {
|
|
209
|
+
state.close();
|
|
210
|
+
} else {
|
|
211
|
+
openWithFocus();
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
|
|
175
216
|
// Type-to-select - for Select, typing directly selects items when closed
|
|
176
217
|
const { typeSelectProps } = createTypeSelect({
|
|
177
218
|
collection: () => state.collection(),
|
|
@@ -187,7 +228,9 @@ export function createSelect<T>(
|
|
|
187
228
|
},
|
|
188
229
|
isKeyDisabled,
|
|
189
230
|
get isDisabled() {
|
|
190
|
-
return Boolean(
|
|
231
|
+
return Boolean(
|
|
232
|
+
(getProps().disallowTypeAhead ?? false) || getProps().isDisabled || state.isDisabled,
|
|
233
|
+
);
|
|
191
234
|
},
|
|
192
235
|
});
|
|
193
236
|
|
|
@@ -198,20 +241,28 @@ export function createSelect<T>(
|
|
|
198
241
|
const currentKey = state.focusedKey() ?? state.selectedKey();
|
|
199
242
|
|
|
200
243
|
switch (e.key) {
|
|
201
|
-
case
|
|
202
|
-
case
|
|
244
|
+
case "Enter":
|
|
245
|
+
case " ":
|
|
203
246
|
e.preventDefault();
|
|
204
|
-
state.
|
|
247
|
+
if (state.isOpen()) {
|
|
248
|
+
state.close();
|
|
249
|
+
} else {
|
|
250
|
+
openWithFocus();
|
|
251
|
+
}
|
|
205
252
|
break;
|
|
206
253
|
|
|
207
|
-
case
|
|
254
|
+
case "ArrowDown":
|
|
208
255
|
e.preventDefault();
|
|
209
256
|
if (!state.isOpen()) {
|
|
257
|
+
if (!canOpen()) {
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
210
260
|
// ArrowDown: Open the dropdown and focus first/selected item
|
|
211
261
|
state.open();
|
|
212
|
-
const focusKey =
|
|
213
|
-
|
|
214
|
-
|
|
262
|
+
const focusKey =
|
|
263
|
+
currentKey != null && !isKeyDisabled(currentKey)
|
|
264
|
+
? currentKey
|
|
265
|
+
: findNextKey(currentKey, "forward");
|
|
215
266
|
if (focusKey) {
|
|
216
267
|
state.setFocusedKey(focusKey);
|
|
217
268
|
}
|
|
@@ -219,14 +270,18 @@ export function createSelect<T>(
|
|
|
219
270
|
// When open, navigation is handled by the listbox
|
|
220
271
|
break;
|
|
221
272
|
|
|
222
|
-
case
|
|
273
|
+
case "ArrowUp":
|
|
223
274
|
e.preventDefault();
|
|
224
275
|
if (!state.isOpen()) {
|
|
276
|
+
if (!canOpen()) {
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
225
279
|
// ArrowUp: Open the dropdown and focus last/selected item
|
|
226
280
|
state.open();
|
|
227
|
-
const focusKey =
|
|
228
|
-
|
|
229
|
-
|
|
281
|
+
const focusKey =
|
|
282
|
+
currentKey != null && !isKeyDisabled(currentKey)
|
|
283
|
+
? currentKey
|
|
284
|
+
: findNextKey(currentKey, "backward");
|
|
230
285
|
if (focusKey) {
|
|
231
286
|
state.setFocusedKey(focusKey);
|
|
232
287
|
}
|
|
@@ -234,51 +289,51 @@ export function createSelect<T>(
|
|
|
234
289
|
// When open, navigation is handled by the listbox
|
|
235
290
|
break;
|
|
236
291
|
|
|
237
|
-
case
|
|
292
|
+
case "ArrowRight":
|
|
238
293
|
// ArrowRight: Select next option (for horizontal keyboard navigation pattern)
|
|
239
294
|
if (!state.isOpen()) {
|
|
240
295
|
e.preventDefault();
|
|
241
|
-
const nextKey = findNextKey(currentKey,
|
|
296
|
+
const nextKey = findNextKey(currentKey, "forward");
|
|
242
297
|
if (nextKey != null) {
|
|
243
298
|
state.setSelectedKey(nextKey);
|
|
244
299
|
}
|
|
245
300
|
}
|
|
246
301
|
break;
|
|
247
302
|
|
|
248
|
-
case
|
|
303
|
+
case "ArrowLeft":
|
|
249
304
|
// ArrowLeft: Select previous option (for horizontal keyboard navigation pattern)
|
|
250
305
|
if (!state.isOpen()) {
|
|
251
306
|
e.preventDefault();
|
|
252
|
-
const prevKey = findNextKey(currentKey,
|
|
307
|
+
const prevKey = findNextKey(currentKey, "backward");
|
|
253
308
|
if (prevKey != null) {
|
|
254
309
|
state.setSelectedKey(prevKey);
|
|
255
310
|
}
|
|
256
311
|
}
|
|
257
312
|
break;
|
|
258
313
|
|
|
259
|
-
case
|
|
314
|
+
case "Home":
|
|
260
315
|
// Home: Select first option
|
|
261
316
|
if (!state.isOpen()) {
|
|
262
317
|
e.preventDefault();
|
|
263
|
-
const firstKey = findNextKey(null,
|
|
318
|
+
const firstKey = findNextKey(null, "forward");
|
|
264
319
|
if (firstKey != null) {
|
|
265
320
|
state.setSelectedKey(firstKey);
|
|
266
321
|
}
|
|
267
322
|
}
|
|
268
323
|
break;
|
|
269
324
|
|
|
270
|
-
case
|
|
325
|
+
case "End":
|
|
271
326
|
// End: Select last option
|
|
272
327
|
if (!state.isOpen()) {
|
|
273
328
|
e.preventDefault();
|
|
274
|
-
const lastKey = findNextKey(null,
|
|
329
|
+
const lastKey = findNextKey(null, "backward");
|
|
275
330
|
if (lastKey != null) {
|
|
276
331
|
state.setSelectedKey(lastKey);
|
|
277
332
|
}
|
|
278
333
|
}
|
|
279
334
|
break;
|
|
280
335
|
|
|
281
|
-
case
|
|
336
|
+
case "Escape":
|
|
282
337
|
if (state.isOpen()) {
|
|
283
338
|
e.preventDefault();
|
|
284
339
|
state.close();
|
|
@@ -316,27 +371,29 @@ export function createSelect<T>(
|
|
|
316
371
|
fieldProps as Record<string, unknown>,
|
|
317
372
|
{
|
|
318
373
|
id: buttonId,
|
|
319
|
-
|
|
320
|
-
type: 'button',
|
|
374
|
+
type: "button",
|
|
321
375
|
tabIndex: isDisabled ? undefined : 0,
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
376
|
+
"aria-haspopup": "listbox",
|
|
377
|
+
"aria-expanded": isOpen,
|
|
378
|
+
"aria-controls": isOpen ? listBoxId : undefined,
|
|
379
|
+
"aria-disabled": isDisabled || undefined,
|
|
380
|
+
"aria-required": p.isRequired || undefined,
|
|
381
|
+
"aria-describedby": p["aria-describedby"] || undefined,
|
|
328
382
|
onKeyDown,
|
|
329
383
|
onFocus: handleFocus,
|
|
330
384
|
onBlur: handleBlur,
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
} as Record<string, unknown
|
|
385
|
+
"data-open": isOpen || undefined,
|
|
386
|
+
"data-disabled": isDisabled || undefined,
|
|
387
|
+
"data-focus-visible": isFocusVisible() || undefined,
|
|
388
|
+
} as Record<string, unknown>,
|
|
335
389
|
);
|
|
336
390
|
|
|
337
391
|
// Add type-select props if enabled
|
|
338
392
|
if (!p.disallowTypeAhead) {
|
|
339
|
-
return mergeProps(
|
|
393
|
+
return mergeProps(
|
|
394
|
+
baseProps,
|
|
395
|
+
typeSelectProps as Record<string, unknown>,
|
|
396
|
+
) as JSX.HTMLAttributes<HTMLElement>;
|
|
340
397
|
}
|
|
341
398
|
|
|
342
399
|
return baseProps as JSX.HTMLAttributes<HTMLElement>;
|
|
@@ -349,9 +406,9 @@ export function createSelect<T>(
|
|
|
349
406
|
get menuProps() {
|
|
350
407
|
return {
|
|
351
408
|
id: listBoxId,
|
|
352
|
-
role:
|
|
353
|
-
|
|
354
|
-
|
|
409
|
+
role: "listbox",
|
|
410
|
+
"aria-labelledby": buttonId,
|
|
411
|
+
"aria-multiselectable": state.selectionMode() === "multiple" ? true : undefined,
|
|
355
412
|
tabIndex: -1,
|
|
356
413
|
} as JSX.HTMLAttributes<HTMLElement>;
|
|
357
414
|
},
|
package/src/select/index.ts
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
createSelect,
|
|
3
|
-
getSelectData,
|
|
4
|
-
type AriaSelectProps,
|
|
5
|
-
type SelectAria,
|
|
6
|
-
} from './createSelect';
|
|
1
|
+
export { createSelect, getSelectData, type AriaSelectProps, type SelectAria } from "./createSelect";
|
|
7
2
|
|
|
8
3
|
export {
|
|
9
4
|
createHiddenSelect,
|
|
@@ -11,4 +6,4 @@ export {
|
|
|
11
6
|
type AriaHiddenSelectProps,
|
|
12
7
|
type HiddenSelectAria,
|
|
13
8
|
type HiddenSelectProps,
|
|
14
|
-
} from
|
|
9
|
+
} from "./createHiddenSelect.jsx";
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* item text values. Supports multi-character search with debouncing.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import type { JSX, Accessor } from
|
|
10
|
-
import type { Key, Collection, CollectionNode } from
|
|
9
|
+
import type { JSX, Accessor } from "solid-js";
|
|
10
|
+
import type { Key, Collection, CollectionNode } from "@proyecto-viviana/solid-stately";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Controls how long to wait before clearing the typeahead buffer.
|
|
@@ -53,7 +53,7 @@ function getStringForKey(key: string): string {
|
|
|
53
53
|
if (key.length === 1 || !/^[A-Z]/i.test(key)) {
|
|
54
54
|
return key;
|
|
55
55
|
}
|
|
56
|
-
return
|
|
56
|
+
return "";
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
/**
|
|
@@ -64,14 +64,14 @@ function getKeyForSearch<T>(
|
|
|
64
64
|
collection: Collection<T>,
|
|
65
65
|
search: string,
|
|
66
66
|
fromKey: Key | null,
|
|
67
|
-
isKeyDisabled?: (key: Key) => boolean
|
|
67
|
+
isKeyDisabled?: (key: Key) => boolean,
|
|
68
68
|
): Key | null {
|
|
69
69
|
const searchLower = search.toLowerCase();
|
|
70
70
|
|
|
71
71
|
// Collect all items in order
|
|
72
72
|
const items: CollectionNode<T>[] = [];
|
|
73
73
|
for (const item of collection) {
|
|
74
|
-
if (item.type ===
|
|
74
|
+
if (item.type === "item") {
|
|
75
75
|
items.push(item);
|
|
76
76
|
}
|
|
77
77
|
}
|
|
@@ -81,7 +81,7 @@ function getKeyForSearch<T>(
|
|
|
81
81
|
// Find the starting index
|
|
82
82
|
let startIndex = 0;
|
|
83
83
|
if (fromKey != null) {
|
|
84
|
-
const fromIndex = items.findIndex(item => item.key === fromKey);
|
|
84
|
+
const fromIndex = items.findIndex((item) => item.key === fromKey);
|
|
85
85
|
if (fromIndex !== -1) {
|
|
86
86
|
// Start searching from the item AFTER the current one
|
|
87
87
|
startIndex = (fromIndex + 1) % items.length;
|
|
@@ -99,7 +99,7 @@ function getKeyForSearch<T>(
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
// Check if the text value starts with the search string
|
|
102
|
-
const textValue = item.textValue ||
|
|
102
|
+
const textValue = item.textValue || "";
|
|
103
103
|
if (textValue.toLowerCase().startsWith(searchLower)) {
|
|
104
104
|
return item.key;
|
|
105
105
|
}
|
|
@@ -125,7 +125,7 @@ function getKeyForSearch<T>(
|
|
|
125
125
|
export function createTypeSelect<T>(options: TypeSelectOptions<T>): TypeSelectAria {
|
|
126
126
|
// Create mutable state object to persist across keystrokes
|
|
127
127
|
const state: TypeSelectState = {
|
|
128
|
-
search:
|
|
128
|
+
search: "",
|
|
129
129
|
timeout: undefined,
|
|
130
130
|
};
|
|
131
131
|
|
|
@@ -147,13 +147,13 @@ export function createTypeSelect<T>(options: TypeSelectOptions<T>): TypeSelectAr
|
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
// Don't start search with space (common action key)
|
|
150
|
-
if (state.search.length === 0 && character ===
|
|
150
|
+
if (state.search.length === 0 && character === " ") {
|
|
151
151
|
return;
|
|
152
152
|
}
|
|
153
153
|
|
|
154
154
|
// If there's already search text and the user types a space,
|
|
155
155
|
// prevent it from triggering selection and include it in the search
|
|
156
|
-
if (character ===
|
|
156
|
+
if (character === " " && state.search.trim().length > 0) {
|
|
157
157
|
e.preventDefault();
|
|
158
158
|
e.stopPropagation();
|
|
159
159
|
}
|
|
@@ -183,7 +183,7 @@ export function createTypeSelect<T>(options: TypeSelectOptions<T>): TypeSelectAr
|
|
|
183
183
|
clearTimeout(state.timeout);
|
|
184
184
|
}
|
|
185
185
|
state.timeout = setTimeout(() => {
|
|
186
|
-
state.search =
|
|
186
|
+
state.search = "";
|
|
187
187
|
}, TYPEAHEAD_DEBOUNCE_WAIT_MS);
|
|
188
188
|
};
|
|
189
189
|
|
package/src/selection/index.ts
CHANGED
|
@@ -5,15 +5,11 @@
|
|
|
5
5
|
* e.g. groups of menu items or sections of a page.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { JSX } from
|
|
9
|
-
import { access, type MaybeAccessor } from
|
|
10
|
-
import { filterDOMProps } from
|
|
8
|
+
import type { JSX } from "solid-js";
|
|
9
|
+
import { access, type MaybeAccessor } from "../utils";
|
|
10
|
+
import { filterDOMProps } from "../utils";
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
// TYPES
|
|
14
|
-
// ============================================
|
|
15
|
-
|
|
16
|
-
export type Orientation = 'horizontal' | 'vertical';
|
|
12
|
+
export type Orientation = "horizontal" | "vertical";
|
|
17
13
|
|
|
18
14
|
export interface AriaSeparatorProps {
|
|
19
15
|
/**
|
|
@@ -27,9 +23,13 @@ export interface AriaSeparatorProps {
|
|
|
27
23
|
*/
|
|
28
24
|
elementType?: string;
|
|
29
25
|
/** An accessibility label for the separator. */
|
|
30
|
-
|
|
26
|
+
"aria-label"?: string;
|
|
31
27
|
/** Identifies the element(s) that labels the separator. */
|
|
32
|
-
|
|
28
|
+
"aria-labelledby"?: string;
|
|
29
|
+
/** Identifies the element(s) that describes the separator. */
|
|
30
|
+
"aria-describedby"?: string;
|
|
31
|
+
/** Identifies the element(s) that provide a detailed description. */
|
|
32
|
+
"aria-details"?: string;
|
|
33
33
|
/** The element's unique identifier. */
|
|
34
34
|
id?: string;
|
|
35
35
|
}
|
|
@@ -39,39 +39,34 @@ export interface SeparatorAria {
|
|
|
39
39
|
separatorProps: JSX.HTMLAttributes<HTMLElement>;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
// ============================================
|
|
43
|
-
// CREATE SEPARATOR
|
|
44
|
-
// ============================================
|
|
45
|
-
|
|
46
42
|
/**
|
|
47
43
|
* Provides the accessibility implementation for a separator.
|
|
48
44
|
* A separator is a visual divider between two groups of content,
|
|
49
45
|
* e.g. groups of menu items or sections of a page.
|
|
50
46
|
*/
|
|
51
|
-
export function createSeparator(
|
|
52
|
-
props: MaybeAccessor<AriaSeparatorProps> = {}
|
|
53
|
-
): SeparatorAria {
|
|
47
|
+
export function createSeparator(props: MaybeAccessor<AriaSeparatorProps> = {}): SeparatorAria {
|
|
54
48
|
const getSeparatorProps = (): JSX.HTMLAttributes<HTMLElement> => {
|
|
55
49
|
const p = access(props);
|
|
56
50
|
const domProps = filterDOMProps(p as Record<string, unknown>, { labelable: true });
|
|
57
51
|
|
|
58
52
|
// if orientation is horizontal, aria-orientation default is horizontal, so we leave it undefined
|
|
59
53
|
// if it's vertical, we need to specify it
|
|
60
|
-
let ariaOrientation:
|
|
61
|
-
if (p.orientation ===
|
|
62
|
-
ariaOrientation =
|
|
54
|
+
let ariaOrientation: "vertical" | undefined;
|
|
55
|
+
if (p.orientation === "vertical") {
|
|
56
|
+
ariaOrientation = "vertical";
|
|
63
57
|
}
|
|
64
58
|
|
|
65
|
-
|
|
66
|
-
if (p.elementType !== 'hr') {
|
|
59
|
+
if (p.elementType !== "hr") {
|
|
67
60
|
return {
|
|
68
61
|
...domProps,
|
|
69
|
-
role:
|
|
70
|
-
|
|
62
|
+
role: "separator",
|
|
63
|
+
"aria-orientation": ariaOrientation,
|
|
71
64
|
};
|
|
72
65
|
}
|
|
73
66
|
|
|
74
|
-
return
|
|
67
|
+
return {
|
|
68
|
+
...domProps,
|
|
69
|
+
};
|
|
75
70
|
};
|
|
76
71
|
|
|
77
72
|
return {
|
package/src/separator/index.ts
CHANGED