@proyecto-viviana/solidaria 0.2.5 → 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/LICENSE +21 -0
- package/README.md +31 -236
- package/dist/actiongroup/createActionGroup.d.ts +29 -0
- package/dist/actiongroup/createActionGroup.d.ts.map +1 -0
- package/dist/actiongroup/index.d.ts +2 -0
- package/dist/actiongroup/index.d.ts.map +1 -0
- package/dist/autocomplete/createAutocomplete.d.ts +16 -12
- 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 +11 -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 +32 -0
- package/dist/button/createToggleButtonGroup.d.ts.map +1 -0
- package/dist/button/index.d.ts +6 -4
- 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 +8 -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 +7 -3
- 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 +11 -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 +56 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/color/createColorArea.d.ts +3 -3
- package/dist/color/createColorArea.d.ts.map +1 -1
- package/dist/color/createColorField.d.ts +4 -4
- package/dist/color/createColorField.d.ts.map +1 -1
- package/dist/color/createColorSlider.d.ts +4 -4
- package/dist/color/createColorSlider.d.ts.map +1 -1
- package/dist/color/createColorSwatch.d.ts +2 -2
- package/dist/color/createColorSwatch.d.ts.map +1 -1
- package/dist/color/createColorWheel.d.ts +3 -3
- package/dist/color/createColorWheel.d.ts.map +1 -1
- package/dist/color/index.d.ts +6 -6
- package/dist/color/types.d.ts +98 -16
- package/dist/color/types.d.ts.map +1 -1
- package/dist/combobox/createComboBox.d.ts +16 -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 +57 -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 +42 -0
- package/dist/datepicker/createDateRangePicker.d.ts.map +1 -0
- package/dist/datepicker/createDateSegment.d.ts +11 -3
- 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 +29 -0
- package/dist/datepicker/createTimeSegment.d.ts.map +1 -0
- package/dist/datepicker/index.d.ts +7 -4
- 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 -3
- 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 +6 -2
- package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
- 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 +55 -4
- package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
- package/dist/dnd/createDroppableItem.d.ts +3 -3
- package/dist/dnd/createDroppableItem.d.ts.map +1 -1
- 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/createGrid.d.ts.map +1 -1
- 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 -49
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18089 -15690
- package/dist/index.js.map +1 -7
- 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 +23 -7
- package/dist/link/createLink.d.ts.map +1 -1
- package/dist/link/index.d.ts +1 -1
- package/dist/listbox/createListBox.d.ts +12 -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 +8 -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 +27 -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 +19 -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 +11 -11
- 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 +6 -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 +13 -5
- 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 +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/platform.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 +34 -32
- package/src/actiongroup/createActionGroup.ts +334 -0
- package/src/actiongroup/index.ts +8 -0
- package/src/autocomplete/createAutocomplete.ts +137 -131
- package/src/autocomplete/index.ts +1 -1
- package/src/breadcrumbs/createBreadcrumbs.ts +37 -51
- 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 +121 -0
- package/src/button/index.ts +10 -4
- package/src/button/types.ts +18 -12
- package/src/calendar/createCalendar.ts +62 -29
- package/src/calendar/createCalendarCell.ts +102 -48
- package/src/calendar/createCalendarGrid.ts +78 -47
- package/src/calendar/createRangeCalendar.ts +66 -31
- package/src/calendar/createRangeCalendarCell.ts +115 -37
- 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 +86 -45
- 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 +246 -0
- package/src/color/createColorArea.ts +458 -314
- package/src/color/createColorField.ts +186 -137
- package/src/color/createColorSlider.ts +444 -197
- package/src/color/createColorSwatch.ts +65 -40
- package/src/color/createColorWheel.ts +343 -208
- package/src/color/index.ts +24 -24
- package/src/color/types.ts +198 -116
- package/src/combobox/createComboBox.ts +727 -647
- package/src/combobox/index.ts +6 -6
- package/src/combobox/intl/index.ts +5 -5
- package/src/datepicker/createDateField.ts +192 -39
- package/src/datepicker/createDatePicker.ts +294 -63
- package/src/datepicker/createDatePickerGroup.ts +149 -0
- package/src/datepicker/createDateRangePicker.ts +294 -0
- package/src/datepicker/createDateSegment.ts +316 -75
- package/src/datepicker/createTimeField.ts +38 -34
- package/src/datepicker/createTimeSegment.ts +352 -0
- package/src/datepicker/index.ts +24 -11
- package/src/dialog/createDialog.ts +127 -120
- package/src/dialog/index.ts +2 -2
- package/src/dialog/types.ts +19 -19
- package/src/disclosure/createDisclosure.ts +138 -33
- package/src/disclosure/createDisclosureGroup.ts +8 -18
- package/src/disclosure/index.ts +2 -2
- package/src/dnd/createDrag.ts +218 -209
- package/src/dnd/createDraggableCollection.ts +96 -63
- package/src/dnd/createDraggableItem.ts +260 -243
- package/src/dnd/createDrop.ts +313 -321
- package/src/dnd/createDroppableCollection.ts +799 -293
- package/src/dnd/createDroppableItem.ts +215 -213
- package/src/dnd/index.ts +66 -47
- package/src/dnd/types.ts +86 -89
- package/src/dnd/utils.ts +281 -294
- package/src/focus/FocusScope.tsx +155 -164
- package/src/focus/createAutoFocus.ts +305 -321
- package/src/focus/createFocusRestore.ts +300 -313
- package/src/focus/createVirtualFocus.ts +380 -396
- package/src/focus/index.ts +4 -8
- package/src/form/createFormReset.ts +4 -4
- package/src/form/createFormValidation.ts +201 -224
- package/src/form/index.ts +8 -11
- package/src/grid/GridKeyboardDelegate.ts +30 -30
- package/src/grid/createGrid.ts +38 -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 +45 -24
- 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 +66 -79
- package/src/i18n/createDateFormatter.ts +75 -83
- package/src/i18n/createFilter.ts +118 -131
- package/src/i18n/createNumberFormatter.ts +50 -52
- package/src/i18n/createStringFormatter.ts +19 -15
- package/src/i18n/index.ts +37 -40
- package/src/i18n/locale.tsx +163 -188
- package/src/i18n/utils.ts +95 -99
- package/src/index.ts +114 -164
- package/src/interactions/FocusableProvider.tsx +3 -7
- package/src/interactions/PressEvent.ts +4 -4
- package/src/interactions/createFocus.ts +16 -11
- package/src/interactions/createFocusRing.ts +21 -19
- package/src/interactions/createFocusWithin.ts +24 -16
- 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 +174 -174
- package/src/interactions/createMove.ts +299 -289
- package/src/interactions/createPress.ts +168 -91
- 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 +356 -377
- package/src/landmark/index.ts +8 -8
- package/src/link/createLink.ts +96 -54
- package/src/link/index.ts +1 -1
- package/src/listbox/createListBox.ts +319 -269
- package/src/listbox/createOption.ts +208 -151
- package/src/listbox/index.ts +8 -12
- package/src/live-announcer/announce.ts +295 -322
- package/src/live-announcer/index.ts +9 -9
- package/src/menu/createMenu.ts +434 -396
- package/src/menu/createMenuItem.ts +201 -149
- package/src/menu/createMenuTrigger.ts +88 -88
- package/src/menu/index.ts +9 -18
- package/src/meter/createMeter.ts +7 -20
- package/src/meter/index.ts +1 -1
- package/src/numberfield/createNumberField.ts +368 -268
- package/src/numberfield/index.ts +5 -5
- package/src/overlays/ariaHideOutside.ts +223 -219
- package/src/overlays/createInteractOutside.ts +152 -149
- package/src/overlays/createModal.tsx +238 -202
- package/src/overlays/createOverlay.ts +195 -155
- package/src/overlays/createOverlayTrigger.ts +85 -85
- package/src/overlays/createPreventScroll.ts +288 -266
- package/src/overlays/index.ts +37 -44
- package/src/popover/calculatePosition.ts +117 -119
- package/src/popover/createOverlayPosition.ts +52 -43
- package/src/popover/createPopover.ts +63 -24
- package/src/popover/index.ts +3 -3
- package/src/progress/createProgressBar.ts +36 -32
- package/src/progress/index.ts +1 -1
- package/src/radio/createRadio.ts +95 -73
- package/src/radio/createRadioGroup.ts +142 -62
- package/src/radio/createRadioGroupState.ts +7 -31
- package/src/radio/index.ts +3 -8
- package/src/searchfield/createSearchField.ts +269 -186
- package/src/searchfield/index.ts +2 -2
- package/src/select/createHiddenSelect.tsx +276 -236
- package/src/select/createSelect.ts +430 -395
- package/src/select/index.ts +9 -14
- 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 +333 -349
- package/src/slider/index.ts +2 -2
- package/src/ssr/index.tsx +331 -370
- 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 +155 -86
- 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 +138 -127
- package/src/tabs/index.ts +1 -1
- package/src/tag/createTag.ts +171 -40
- package/src/tag/createTagGroup.ts +50 -39
- 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 +34 -26
- package/src/toast/createToastRegion.ts +169 -27
- 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 +226 -169
- package/src/toolbar/index.ts +1 -1
- package/src/tooltip/createTooltip.ts +66 -79
- package/src/tooltip/createTooltipTrigger.ts +238 -222
- package/src/tooltip/index.ts +6 -6
- package/src/tree/createTree.ts +259 -246
- package/src/tree/createTreeItem.ts +282 -233
- package/src/tree/createTreeSelectionCheckbox.ts +71 -68
- package/src/tree/index.ts +16 -16
- package/src/tree/types.ts +95 -87
- package/src/utils/createDescription.ts +6 -23
- package/src/utils/dom.ts +61 -54
- package/src/utils/env.ts +53 -54
- 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 +16 -6
- package/src/utils/reactivity.ts +3 -3
- package/src/utils/textSelection.ts +16 -16
- package/src/visually-hidden/createVisuallyHidden.ts +127 -124
- package/src/visually-hidden/index.ts +6 -6
- package/dist/i18n/NumberFormatter.d.ts +0 -43
- package/dist/i18n/NumberFormatter.d.ts.map +0 -1
- package/dist/index.ssr.js +0 -15875
- package/dist/index.ssr.js.map +0 -7
- package/src/i18n/NumberFormatter.ts +0 -266
|
@@ -7,100 +7,103 @@
|
|
|
7
7
|
* Based on @react-aria/autocomplete useAutocomplete.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
onCleanup,
|
|
14
|
-
type Accessor,
|
|
15
|
-
} from 'solid-js'
|
|
16
|
-
import { createId, getOwnerDocument } from '../ssr'
|
|
17
|
-
import { type AutocompleteState } from '@proyecto-viviana/solid-stately'
|
|
18
|
-
|
|
19
|
-
// ============================================
|
|
20
|
-
// TYPES
|
|
21
|
-
// ============================================
|
|
10
|
+
import { createSignal, createEffect, onCleanup, type Accessor } from "solid-js";
|
|
11
|
+
import { createId, getOwnerDocument } from "../ssr";
|
|
12
|
+
import { type AutocompleteState } from "@proyecto-viviana/solid-stately";
|
|
22
13
|
|
|
23
14
|
export interface CollectionOptions {
|
|
24
15
|
/** The id of the collection element. */
|
|
25
|
-
id?: string
|
|
16
|
+
id?: string;
|
|
26
17
|
/** Accessible label for the collection. */
|
|
27
|
-
|
|
18
|
+
"aria-label"?: string;
|
|
28
19
|
/** Whether the collection items should use virtual focus instead of being focused directly. */
|
|
29
|
-
shouldUseVirtualFocus: boolean
|
|
20
|
+
shouldUseVirtualFocus: boolean;
|
|
30
21
|
/** Whether typeahead is disabled. */
|
|
31
|
-
disallowTypeAhead: boolean
|
|
22
|
+
disallowTypeAhead: boolean;
|
|
32
23
|
}
|
|
33
24
|
|
|
34
25
|
export interface AutocompleteInputProps {
|
|
35
26
|
/** Current input value. */
|
|
36
|
-
value: Accessor<string
|
|
27
|
+
value: Accessor<string>;
|
|
37
28
|
/** Handler for input value changes. */
|
|
38
|
-
onChange: (value: string) => void
|
|
29
|
+
onChange: (value: string) => void;
|
|
39
30
|
/** Handler for key events. */
|
|
40
|
-
onKeyDown: (e: KeyboardEvent) => void
|
|
31
|
+
onKeyDown: (e: KeyboardEvent) => void;
|
|
41
32
|
/** Handler for focus events. */
|
|
42
|
-
onFocus: (e: FocusEvent) => void
|
|
33
|
+
onFocus: (e: FocusEvent) => void;
|
|
43
34
|
/** Handler for blur events. */
|
|
44
|
-
onBlur: (e: FocusEvent) => void
|
|
35
|
+
onBlur: (e: FocusEvent) => void;
|
|
45
36
|
/** The id of the currently focused item for aria-activedescendant. */
|
|
46
|
-
|
|
37
|
+
"aria-activedescendant": Accessor<string | undefined>;
|
|
47
38
|
/** The id of the controlled collection. */
|
|
48
|
-
|
|
39
|
+
"aria-controls": string;
|
|
49
40
|
/** Autocomplete type. */
|
|
50
|
-
|
|
41
|
+
"aria-autocomplete": "list" | "none" | "inline" | "both";
|
|
51
42
|
/** Enter key hint for mobile keyboards. */
|
|
52
|
-
enterKeyHint:
|
|
43
|
+
enterKeyHint: "go";
|
|
53
44
|
/** Disable autocorrect. */
|
|
54
|
-
autoCorrect:
|
|
45
|
+
autoCorrect: "off";
|
|
55
46
|
/** Disable spell check. */
|
|
56
|
-
spellCheck:
|
|
47
|
+
spellCheck: "false";
|
|
57
48
|
/** Disable browser autocomplete. */
|
|
58
|
-
autoComplete:
|
|
49
|
+
autoComplete: "off";
|
|
59
50
|
}
|
|
60
51
|
|
|
61
|
-
export interface AriaAutocompleteOptions<
|
|
52
|
+
export interface AriaAutocompleteOptions<_T = unknown> {
|
|
62
53
|
/** Ref accessor for the input element. */
|
|
63
|
-
inputRef: Accessor<HTMLInputElement | undefined
|
|
54
|
+
inputRef: Accessor<HTMLInputElement | undefined>;
|
|
64
55
|
/** Ref accessor for the collection element. */
|
|
65
|
-
collectionRef: Accessor<HTMLElement | undefined
|
|
56
|
+
collectionRef: Accessor<HTMLElement | undefined>;
|
|
57
|
+
/** Optional id override for the controlled collection element. */
|
|
58
|
+
collectionId?: string;
|
|
59
|
+
/** Optional accessible name for the controlled collection element. */
|
|
60
|
+
collectionAriaLabel?: string;
|
|
66
61
|
/**
|
|
67
62
|
* An optional filter function used to determine if an option should be included.
|
|
68
63
|
* @param textValue - The text value of the item
|
|
69
64
|
* @param inputValue - The current input value
|
|
70
65
|
*/
|
|
71
|
-
filter?: (textValue: string, inputValue: string) => boolean
|
|
66
|
+
filter?: (textValue: string, inputValue: string) => boolean;
|
|
72
67
|
/**
|
|
73
68
|
* Whether to focus the first item after filtering.
|
|
74
69
|
* @default false
|
|
75
70
|
*/
|
|
76
|
-
disableAutoFocusFirst?: boolean
|
|
71
|
+
disableAutoFocusFirst?: boolean;
|
|
77
72
|
/**
|
|
78
73
|
* Whether to disable virtual focus (aria-activedescendant).
|
|
79
74
|
* @default false
|
|
80
75
|
*/
|
|
81
|
-
disableVirtualFocus?: boolean
|
|
76
|
+
disableVirtualFocus?: boolean;
|
|
82
77
|
}
|
|
83
78
|
|
|
84
|
-
export interface AutocompleteAria<
|
|
79
|
+
export interface AutocompleteAria<_T = unknown> {
|
|
85
80
|
/** Props for the autocomplete input element. */
|
|
86
|
-
inputProps: AutocompleteInputProps
|
|
81
|
+
inputProps: AutocompleteInputProps;
|
|
87
82
|
/** Props for the collection (ListBox/Menu). */
|
|
88
|
-
collectionProps: CollectionOptions
|
|
83
|
+
collectionProps: CollectionOptions;
|
|
89
84
|
/** A filter function that returns if the item should be shown. */
|
|
90
|
-
filter?: (textValue: string) => boolean
|
|
85
|
+
filter?: (textValue: string) => boolean;
|
|
91
86
|
}
|
|
92
87
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
88
|
+
function toKeyboardEventInit(e: KeyboardEvent): KeyboardEventInit {
|
|
89
|
+
return {
|
|
90
|
+
key: e.key,
|
|
91
|
+
code: e.code,
|
|
92
|
+
location: e.location,
|
|
93
|
+
repeat: e.repeat,
|
|
94
|
+
isComposing: e.isComposing,
|
|
95
|
+
ctrlKey: e.ctrlKey,
|
|
96
|
+
shiftKey: e.shiftKey,
|
|
97
|
+
altKey: e.altKey,
|
|
98
|
+
metaKey: e.metaKey,
|
|
99
|
+
bubbles: e.bubbles,
|
|
100
|
+
cancelable: e.cancelable,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
96
103
|
|
|
97
104
|
// Custom event names for collection communication
|
|
98
|
-
export const AUTOCOMPLETE_FOCUS_EVENT =
|
|
99
|
-
export const AUTOCOMPLETE_CLEAR_FOCUS_EVENT =
|
|
100
|
-
|
|
101
|
-
// ============================================
|
|
102
|
-
// CREATE AUTOCOMPLETE HOOK
|
|
103
|
-
// ============================================
|
|
105
|
+
export const AUTOCOMPLETE_FOCUS_EVENT = "autocomplete:focus";
|
|
106
|
+
export const AUTOCOMPLETE_CLEAR_FOCUS_EVENT = "autocomplete:clearfocus";
|
|
104
107
|
|
|
105
108
|
/**
|
|
106
109
|
* Provides the behavior and accessibility implementation for an autocomplete component.
|
|
@@ -133,116 +136,119 @@ export const AUTOCOMPLETE_CLEAR_FOCUS_EVENT = 'autocomplete:clearfocus'
|
|
|
133
136
|
*/
|
|
134
137
|
export function createAutocomplete<T = unknown>(
|
|
135
138
|
props: AriaAutocompleteOptions<T>,
|
|
136
|
-
state: AutocompleteState
|
|
139
|
+
state: AutocompleteState,
|
|
137
140
|
): AutocompleteAria<T> {
|
|
138
141
|
const {
|
|
139
142
|
inputRef,
|
|
140
143
|
collectionRef,
|
|
141
144
|
filter,
|
|
145
|
+
collectionId: collectionIdProp,
|
|
146
|
+
collectionAriaLabel,
|
|
142
147
|
disableAutoFocusFirst = false,
|
|
143
148
|
disableVirtualFocus = false,
|
|
144
|
-
} = props
|
|
149
|
+
} = props;
|
|
145
150
|
|
|
146
|
-
const collectionId = createId()
|
|
147
|
-
const [shouldUseVirtualFocus] = createSignal(!disableVirtualFocus)
|
|
148
|
-
let lastInputType =
|
|
151
|
+
const collectionId = collectionIdProp ?? createId();
|
|
152
|
+
const [shouldUseVirtualFocus] = createSignal(!disableVirtualFocus);
|
|
153
|
+
let lastInputType = "";
|
|
149
154
|
|
|
150
155
|
// Track the input type for determining focus behavior
|
|
151
156
|
const handleInput = (e: Event) => {
|
|
152
|
-
const inputEvent = e as InputEvent
|
|
153
|
-
lastInputType = inputEvent.inputType ||
|
|
154
|
-
}
|
|
157
|
+
const inputEvent = e as InputEvent;
|
|
158
|
+
lastInputType = inputEvent.inputType || "";
|
|
159
|
+
};
|
|
155
160
|
|
|
156
161
|
// Set up input event listener
|
|
157
162
|
createEffect(() => {
|
|
158
|
-
const input = inputRef()
|
|
163
|
+
const input = inputRef();
|
|
159
164
|
if (input) {
|
|
160
|
-
input.addEventListener(
|
|
165
|
+
input.addEventListener("input", handleInput);
|
|
161
166
|
onCleanup(() => {
|
|
162
|
-
input.removeEventListener(
|
|
163
|
-
})
|
|
167
|
+
input.removeEventListener("input", handleInput);
|
|
168
|
+
});
|
|
164
169
|
}
|
|
165
|
-
})
|
|
170
|
+
});
|
|
166
171
|
|
|
167
172
|
// Focus first item in collection
|
|
168
173
|
const focusFirstItem = () => {
|
|
169
|
-
const collection = collectionRef()
|
|
174
|
+
const collection = collectionRef();
|
|
170
175
|
if (collection) {
|
|
171
176
|
collection.dispatchEvent(
|
|
172
177
|
new CustomEvent(AUTOCOMPLETE_FOCUS_EVENT, {
|
|
173
178
|
cancelable: true,
|
|
174
179
|
bubbles: true,
|
|
175
|
-
detail: { focusStrategy:
|
|
176
|
-
})
|
|
177
|
-
)
|
|
180
|
+
detail: { focusStrategy: "first" },
|
|
181
|
+
}),
|
|
182
|
+
);
|
|
178
183
|
}
|
|
179
|
-
}
|
|
184
|
+
};
|
|
180
185
|
|
|
181
186
|
// Clear virtual focus
|
|
182
187
|
const clearVirtualFocus = (clearFocusKey = false) => {
|
|
183
|
-
state.setFocusedNodeId(null)
|
|
184
|
-
const collection = collectionRef()
|
|
188
|
+
state.setFocusedNodeId(null);
|
|
189
|
+
const collection = collectionRef();
|
|
185
190
|
if (collection) {
|
|
186
191
|
collection.dispatchEvent(
|
|
187
192
|
new CustomEvent(AUTOCOMPLETE_CLEAR_FOCUS_EVENT, {
|
|
188
193
|
cancelable: true,
|
|
189
194
|
bubbles: true,
|
|
190
195
|
detail: { clearFocusKey },
|
|
191
|
-
})
|
|
192
|
-
)
|
|
196
|
+
}),
|
|
197
|
+
);
|
|
193
198
|
}
|
|
194
|
-
}
|
|
199
|
+
};
|
|
195
200
|
|
|
196
201
|
// Handle input value changes
|
|
197
202
|
const onChange = (value: string) => {
|
|
198
203
|
// Focus first item when typing forward, clear when backspacing/pasting
|
|
199
|
-
if (lastInputType ===
|
|
200
|
-
focusFirstItem()
|
|
204
|
+
if (lastInputType === "insertText" && !disableAutoFocusFirst) {
|
|
205
|
+
focusFirstItem();
|
|
201
206
|
} else if (
|
|
202
207
|
lastInputType &&
|
|
203
|
-
(lastInputType.includes(
|
|
204
|
-
lastInputType.includes(
|
|
205
|
-
lastInputType.includes(
|
|
208
|
+
(lastInputType.includes("insert") ||
|
|
209
|
+
lastInputType.includes("delete") ||
|
|
210
|
+
lastInputType.includes("history"))
|
|
206
211
|
) {
|
|
207
|
-
clearVirtualFocus(true)
|
|
212
|
+
clearVirtualFocus(true);
|
|
208
213
|
}
|
|
209
214
|
|
|
210
|
-
state.setInputValue(value)
|
|
211
|
-
}
|
|
215
|
+
state.setInputValue(value);
|
|
216
|
+
};
|
|
212
217
|
|
|
213
218
|
// Handle keyboard navigation
|
|
214
219
|
const onKeyDown = (e: KeyboardEvent) => {
|
|
215
|
-
if (
|
|
216
|
-
return
|
|
220
|
+
if ("isComposing" in e && e.isComposing) {
|
|
221
|
+
return;
|
|
217
222
|
}
|
|
218
223
|
|
|
219
|
-
const focusedNodeId = state.focusedNodeId()
|
|
220
|
-
const collection = collectionRef()
|
|
224
|
+
const focusedNodeId = state.focusedNodeId();
|
|
225
|
+
const collection = collectionRef();
|
|
226
|
+
const ownerDocument = getOwnerDocument(inputRef() ?? collection);
|
|
221
227
|
|
|
222
228
|
switch (e.key) {
|
|
223
|
-
case
|
|
229
|
+
case "Escape":
|
|
224
230
|
// Let the input handle Escape (e.g., clear value)
|
|
225
231
|
if (e.defaultPrevented) {
|
|
226
|
-
return
|
|
232
|
+
return;
|
|
227
233
|
}
|
|
228
|
-
break
|
|
234
|
+
break;
|
|
229
235
|
|
|
230
|
-
case
|
|
236
|
+
case " ":
|
|
231
237
|
// Space shouldn't trigger item action
|
|
232
|
-
return
|
|
238
|
+
return;
|
|
233
239
|
|
|
234
|
-
case
|
|
240
|
+
case "Tab":
|
|
235
241
|
// Let Tab propagate normally for focus management
|
|
236
|
-
return
|
|
237
|
-
|
|
238
|
-
case
|
|
239
|
-
case
|
|
240
|
-
case
|
|
241
|
-
case
|
|
242
|
-
case
|
|
243
|
-
case
|
|
242
|
+
return;
|
|
243
|
+
|
|
244
|
+
case "ArrowUp":
|
|
245
|
+
case "ArrowDown":
|
|
246
|
+
case "Home":
|
|
247
|
+
case "End":
|
|
248
|
+
case "PageUp":
|
|
249
|
+
case "PageDown": {
|
|
244
250
|
// Prevent cursor movement in input
|
|
245
|
-
e.preventDefault()
|
|
251
|
+
e.preventDefault();
|
|
246
252
|
|
|
247
253
|
// Dispatch focus event to collection
|
|
248
254
|
if (collection) {
|
|
@@ -250,68 +256,68 @@ export function createAutocomplete<T = unknown>(
|
|
|
250
256
|
new CustomEvent(AUTOCOMPLETE_FOCUS_EVENT, {
|
|
251
257
|
cancelable: true,
|
|
252
258
|
bubbles: true,
|
|
253
|
-
})
|
|
254
|
-
)
|
|
259
|
+
}),
|
|
260
|
+
);
|
|
255
261
|
}
|
|
256
|
-
break
|
|
262
|
+
break;
|
|
257
263
|
}
|
|
258
264
|
|
|
259
|
-
case
|
|
260
|
-
case
|
|
265
|
+
case "ArrowLeft":
|
|
266
|
+
case "ArrowRight":
|
|
261
267
|
// Clear activedescendant so screen reader announces cursor movement
|
|
262
|
-
clearVirtualFocus()
|
|
263
|
-
return
|
|
268
|
+
clearVirtualFocus();
|
|
269
|
+
return;
|
|
264
270
|
|
|
265
|
-
case
|
|
271
|
+
case "Enter":
|
|
266
272
|
// Trigger click on focused item
|
|
267
273
|
if (focusedNodeId) {
|
|
268
|
-
const item =
|
|
274
|
+
const item = ownerDocument?.getElementById(focusedNodeId);
|
|
269
275
|
if (item) {
|
|
270
|
-
item.click()
|
|
271
|
-
e.preventDefault()
|
|
276
|
+
item.click();
|
|
277
|
+
e.preventDefault();
|
|
272
278
|
}
|
|
273
279
|
}
|
|
274
|
-
return
|
|
280
|
+
return;
|
|
275
281
|
}
|
|
276
282
|
|
|
277
283
|
// Forward keyboard events to collection/focused item
|
|
278
284
|
if (!e.defaultPrevented && collection) {
|
|
279
|
-
e.stopPropagation()
|
|
285
|
+
e.stopPropagation();
|
|
280
286
|
|
|
281
287
|
if (focusedNodeId) {
|
|
282
|
-
const item =
|
|
288
|
+
const item = ownerDocument?.getElementById(focusedNodeId);
|
|
283
289
|
if (item) {
|
|
284
|
-
item.dispatchEvent(new KeyboardEvent(e.type, e))
|
|
290
|
+
item.dispatchEvent(new KeyboardEvent(e.type, toKeyboardEventInit(e)));
|
|
285
291
|
}
|
|
286
292
|
} else {
|
|
287
|
-
collection.dispatchEvent(new KeyboardEvent(e.type, e))
|
|
293
|
+
collection.dispatchEvent(new KeyboardEvent(e.type, toKeyboardEventInit(e)));
|
|
288
294
|
}
|
|
289
295
|
}
|
|
290
|
-
}
|
|
296
|
+
};
|
|
291
297
|
|
|
292
298
|
// Handle focus events
|
|
293
299
|
const onFocus = (e: FocusEvent) => {
|
|
294
|
-
if (!e.isTrusted) return
|
|
300
|
+
if (!e.isTrusted) return;
|
|
295
301
|
|
|
296
302
|
// Restore virtual focus when refocusing input
|
|
297
|
-
const focusedNodeId = state.focusedNodeId()
|
|
303
|
+
const focusedNodeId = state.focusedNodeId();
|
|
298
304
|
if (focusedNodeId) {
|
|
299
|
-
const item = document.getElementById(focusedNodeId)
|
|
305
|
+
const item = document.getElementById(focusedNodeId);
|
|
300
306
|
if (item) {
|
|
301
307
|
// Item still exists, keep focus on it
|
|
302
308
|
}
|
|
303
309
|
}
|
|
304
|
-
}
|
|
310
|
+
};
|
|
305
311
|
|
|
306
312
|
const onBlur = (e: FocusEvent) => {
|
|
307
|
-
if (!e.isTrusted) return
|
|
313
|
+
if (!e.isTrusted) return;
|
|
308
314
|
// Virtual focus blur handling would go here
|
|
309
|
-
}
|
|
315
|
+
};
|
|
310
316
|
|
|
311
317
|
// Create filter function
|
|
312
318
|
const filterFn = filter
|
|
313
319
|
? (textValue: string) => filter(textValue, state.inputValue())
|
|
314
|
-
: undefined
|
|
320
|
+
: undefined;
|
|
315
321
|
|
|
316
322
|
return {
|
|
317
323
|
inputProps: {
|
|
@@ -320,22 +326,22 @@ export function createAutocomplete<T = unknown>(
|
|
|
320
326
|
onKeyDown,
|
|
321
327
|
onFocus,
|
|
322
328
|
onBlur,
|
|
323
|
-
get
|
|
324
|
-
return () => (shouldUseVirtualFocus() ? state.focusedNodeId() ?? undefined : undefined)
|
|
329
|
+
get "aria-activedescendant"() {
|
|
330
|
+
return () => (shouldUseVirtualFocus() ? (state.focusedNodeId() ?? undefined) : undefined);
|
|
325
331
|
},
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
enterKeyHint:
|
|
329
|
-
autoCorrect:
|
|
330
|
-
spellCheck:
|
|
331
|
-
autoComplete:
|
|
332
|
+
"aria-controls": collectionId,
|
|
333
|
+
"aria-autocomplete": "list",
|
|
334
|
+
enterKeyHint: "go",
|
|
335
|
+
autoCorrect: "off",
|
|
336
|
+
spellCheck: "false",
|
|
337
|
+
autoComplete: "off",
|
|
332
338
|
},
|
|
333
339
|
collectionProps: {
|
|
334
340
|
id: collectionId,
|
|
335
|
-
|
|
341
|
+
"aria-label": collectionAriaLabel,
|
|
336
342
|
shouldUseVirtualFocus: shouldUseVirtualFocus(),
|
|
337
343
|
disallowTypeAhead: shouldUseVirtualFocus(),
|
|
338
344
|
},
|
|
339
345
|
filter: filterFn,
|
|
340
|
-
}
|
|
346
|
+
};
|
|
341
347
|
}
|
|
@@ -5,22 +5,20 @@
|
|
|
5
5
|
* Port of @react-aria/breadcrumbs.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { createLink, type AriaLinkProps, type LinkAria } from
|
|
9
|
-
import { filterDOMProps } from
|
|
10
|
-
import { mergeProps } from
|
|
11
|
-
import { type MaybeAccessor, access } from
|
|
12
|
-
|
|
13
|
-
// ============================================
|
|
14
|
-
// TYPES
|
|
15
|
-
// ============================================
|
|
8
|
+
import { createLink, type AriaLinkProps, type LinkAria } from "../link";
|
|
9
|
+
import { filterDOMProps } from "../utils/filterDOMProps";
|
|
10
|
+
import { mergeProps } from "../utils/mergeProps";
|
|
11
|
+
import { type MaybeAccessor, access } from "../utils/reactivity";
|
|
16
12
|
|
|
17
13
|
export interface AriaBreadcrumbsProps {
|
|
18
14
|
/** Provides a label for the breadcrumbs navigation. */
|
|
19
|
-
|
|
15
|
+
"aria-label"?: string;
|
|
20
16
|
/** Identifies the element (or elements) that labels the breadcrumbs. */
|
|
21
|
-
|
|
17
|
+
"aria-labelledby"?: string;
|
|
22
18
|
/** Identifies the element (or elements) that describes the breadcrumbs. */
|
|
23
|
-
|
|
19
|
+
"aria-describedby"?: string;
|
|
20
|
+
/** Identifies the element (or elements) that provide a detailed description. */
|
|
21
|
+
"aria-details"?: string;
|
|
24
22
|
/** Whether the breadcrumbs are disabled. */
|
|
25
23
|
isDisabled?: boolean;
|
|
26
24
|
}
|
|
@@ -30,11 +28,13 @@ export interface BreadcrumbsAria {
|
|
|
30
28
|
navProps: Record<string, unknown>;
|
|
31
29
|
}
|
|
32
30
|
|
|
33
|
-
export interface AriaBreadcrumbItemProps extends Omit<AriaLinkProps,
|
|
31
|
+
export interface AriaBreadcrumbItemProps extends Omit<AriaLinkProps, "aria-current"> {
|
|
32
|
+
/** The DOM id for the breadcrumb item. */
|
|
33
|
+
id?: string;
|
|
34
34
|
/** Whether this is the current/last item in the breadcrumb trail. */
|
|
35
35
|
isCurrent?: boolean;
|
|
36
36
|
/** The type of current location for aria-current. @default 'page' */
|
|
37
|
-
|
|
37
|
+
"aria-current"?: "page" | "step" | "location" | "date" | "time" | boolean;
|
|
38
38
|
/** The HTML element type. @default 'a' */
|
|
39
39
|
elementType?: string;
|
|
40
40
|
}
|
|
@@ -44,30 +44,24 @@ export interface BreadcrumbItemAria extends LinkAria {
|
|
|
44
44
|
itemProps: Record<string, unknown>;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
// ============================================
|
|
48
|
-
// IMPLEMENTATION
|
|
49
|
-
// ============================================
|
|
50
|
-
|
|
51
47
|
/**
|
|
52
48
|
* Provides accessibility implementation for the breadcrumbs navigation container.
|
|
53
49
|
*/
|
|
54
50
|
export function createBreadcrumbs(
|
|
55
|
-
props: MaybeAccessor<AriaBreadcrumbsProps> = {}
|
|
51
|
+
props: MaybeAccessor<AriaBreadcrumbsProps> = {},
|
|
56
52
|
): BreadcrumbsAria {
|
|
57
53
|
const getProps = () => access(props);
|
|
58
54
|
|
|
59
55
|
const getNavProps = (): Record<string, unknown> => {
|
|
60
56
|
const p = getProps();
|
|
61
57
|
|
|
62
|
-
//
|
|
63
|
-
const ariaLabel = p[
|
|
58
|
+
// Only apply a default label when no other label source exists.
|
|
59
|
+
const ariaLabel = p["aria-label"] ?? (p["aria-labelledby"] ? undefined : "Breadcrumbs");
|
|
64
60
|
|
|
65
|
-
return mergeProps(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
}
|
|
70
|
-
);
|
|
61
|
+
return mergeProps(filterDOMProps(p as Record<string, unknown>, { labelable: true }), {
|
|
62
|
+
"aria-label": ariaLabel,
|
|
63
|
+
"aria-details": p["aria-details"],
|
|
64
|
+
});
|
|
71
65
|
};
|
|
72
66
|
|
|
73
67
|
return {
|
|
@@ -81,16 +75,13 @@ export function createBreadcrumbs(
|
|
|
81
75
|
* Provides accessibility implementation for an individual breadcrumb item.
|
|
82
76
|
*/
|
|
83
77
|
export function createBreadcrumbItem(
|
|
84
|
-
props: MaybeAccessor<AriaBreadcrumbItemProps> = {}
|
|
78
|
+
props: MaybeAccessor<AriaBreadcrumbItemProps> = {},
|
|
85
79
|
): BreadcrumbItemAria {
|
|
86
80
|
const getProps = () => access(props);
|
|
87
81
|
|
|
88
82
|
const isCurrent = () => getProps().isCurrent ?? false;
|
|
89
83
|
const isDisabled = () => getProps().isDisabled ?? false;
|
|
90
|
-
const elementType = () => getProps().elementType ??
|
|
91
|
-
|
|
92
|
-
// Check if element is a heading
|
|
93
|
-
const isHeading = () => /^h[1-6]$/.test(elementType());
|
|
84
|
+
const elementType = () => getProps().elementType ?? "a";
|
|
94
85
|
|
|
95
86
|
// Use createLink for base link behavior
|
|
96
87
|
// Current items are treated as disabled (can't navigate to current page)
|
|
@@ -102,7 +93,7 @@ export function createBreadcrumbItem(
|
|
|
102
93
|
return elementType();
|
|
103
94
|
},
|
|
104
95
|
get href() {
|
|
105
|
-
return getProps().href;
|
|
96
|
+
return isCurrent() ? undefined : getProps().href;
|
|
106
97
|
},
|
|
107
98
|
get target() {
|
|
108
99
|
return getProps().target;
|
|
@@ -140,14 +131,17 @@ export function createBreadcrumbItem(
|
|
|
140
131
|
get autoFocus() {
|
|
141
132
|
return getProps().autoFocus;
|
|
142
133
|
},
|
|
143
|
-
get
|
|
144
|
-
return getProps()[
|
|
134
|
+
get "aria-label"() {
|
|
135
|
+
return getProps()["aria-label"];
|
|
145
136
|
},
|
|
146
|
-
get
|
|
147
|
-
return getProps()[
|
|
137
|
+
get "aria-labelledby"() {
|
|
138
|
+
return getProps()["aria-labelledby"];
|
|
148
139
|
},
|
|
149
|
-
get
|
|
150
|
-
return getProps()[
|
|
140
|
+
get "aria-describedby"() {
|
|
141
|
+
return getProps()["aria-describedby"];
|
|
142
|
+
},
|
|
143
|
+
get "aria-details"() {
|
|
144
|
+
return getProps()["aria-details"];
|
|
151
145
|
},
|
|
152
146
|
});
|
|
153
147
|
|
|
@@ -155,29 +149,21 @@ export function createBreadcrumbItem(
|
|
|
155
149
|
const p = getProps();
|
|
156
150
|
const current = isCurrent();
|
|
157
151
|
|
|
158
|
-
// Start with link props
|
|
159
|
-
let baseProps: Record<string, unknown> =
|
|
152
|
+
// Start with link props, forwarding id if provided
|
|
153
|
+
let baseProps: Record<string, unknown> = p.id ? mergeProps(linkProps, { id: p.id }) : linkProps;
|
|
160
154
|
|
|
161
155
|
// Add aria-current for current page
|
|
162
156
|
if (current) {
|
|
163
|
-
const ariaCurrent = p[
|
|
157
|
+
const ariaCurrent = p["aria-current"] ?? "page";
|
|
164
158
|
baseProps = mergeProps(baseProps, {
|
|
165
|
-
|
|
159
|
+
"aria-current": ariaCurrent,
|
|
166
160
|
});
|
|
167
|
-
|
|
168
|
-
// Adjust tabIndex for current item
|
|
169
|
-
// If autoFocus is true, we want the item focusable
|
|
170
|
-
if (p.autoFocus) {
|
|
171
|
-
baseProps = mergeProps(baseProps, {
|
|
172
|
-
tabIndex: -1,
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
161
|
}
|
|
176
162
|
|
|
177
163
|
// Add aria-disabled for disabled items
|
|
178
164
|
if (isDisabled()) {
|
|
179
165
|
baseProps = mergeProps(baseProps, {
|
|
180
|
-
|
|
166
|
+
"aria-disabled": true,
|
|
181
167
|
});
|
|
182
168
|
}
|
|
183
169
|
|
package/src/breadcrumbs/index.ts
CHANGED