@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
|
@@ -7,91 +7,82 @@
|
|
|
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
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>;
|
|
66
57
|
/** Optional id override for the controlled collection element. */
|
|
67
|
-
collectionId?: string
|
|
58
|
+
collectionId?: string;
|
|
68
59
|
/** Optional accessible name for the controlled collection element. */
|
|
69
|
-
collectionAriaLabel?: string
|
|
60
|
+
collectionAriaLabel?: string;
|
|
70
61
|
/**
|
|
71
62
|
* An optional filter function used to determine if an option should be included.
|
|
72
63
|
* @param textValue - The text value of the item
|
|
73
64
|
* @param inputValue - The current input value
|
|
74
65
|
*/
|
|
75
|
-
filter?: (textValue: string, inputValue: string) => boolean
|
|
66
|
+
filter?: (textValue: string, inputValue: string) => boolean;
|
|
76
67
|
/**
|
|
77
68
|
* Whether to focus the first item after filtering.
|
|
78
69
|
* @default false
|
|
79
70
|
*/
|
|
80
|
-
disableAutoFocusFirst?: boolean
|
|
71
|
+
disableAutoFocusFirst?: boolean;
|
|
81
72
|
/**
|
|
82
73
|
* Whether to disable virtual focus (aria-activedescendant).
|
|
83
74
|
* @default false
|
|
84
75
|
*/
|
|
85
|
-
disableVirtualFocus?: boolean
|
|
76
|
+
disableVirtualFocus?: boolean;
|
|
86
77
|
}
|
|
87
78
|
|
|
88
79
|
export interface AutocompleteAria<_T = unknown> {
|
|
89
80
|
/** Props for the autocomplete input element. */
|
|
90
|
-
inputProps: AutocompleteInputProps
|
|
81
|
+
inputProps: AutocompleteInputProps;
|
|
91
82
|
/** Props for the collection (ListBox/Menu). */
|
|
92
|
-
collectionProps: CollectionOptions
|
|
83
|
+
collectionProps: CollectionOptions;
|
|
93
84
|
/** A filter function that returns if the item should be shown. */
|
|
94
|
-
filter?: (textValue: string) => boolean
|
|
85
|
+
filter?: (textValue: string) => boolean;
|
|
95
86
|
}
|
|
96
87
|
|
|
97
88
|
function toKeyboardEventInit(e: KeyboardEvent): KeyboardEventInit {
|
|
@@ -107,20 +98,12 @@ function toKeyboardEventInit(e: KeyboardEvent): KeyboardEventInit {
|
|
|
107
98
|
metaKey: e.metaKey,
|
|
108
99
|
bubbles: e.bubbles,
|
|
109
100
|
cancelable: e.cancelable,
|
|
110
|
-
}
|
|
101
|
+
};
|
|
111
102
|
}
|
|
112
103
|
|
|
113
|
-
// ============================================
|
|
114
|
-
// CONSTANTS
|
|
115
|
-
// ============================================
|
|
116
|
-
|
|
117
104
|
// Custom event names for collection communication
|
|
118
|
-
export const AUTOCOMPLETE_FOCUS_EVENT =
|
|
119
|
-
export const AUTOCOMPLETE_CLEAR_FOCUS_EVENT =
|
|
120
|
-
|
|
121
|
-
// ============================================
|
|
122
|
-
// CREATE AUTOCOMPLETE HOOK
|
|
123
|
-
// ============================================
|
|
105
|
+
export const AUTOCOMPLETE_FOCUS_EVENT = "autocomplete:focus";
|
|
106
|
+
export const AUTOCOMPLETE_CLEAR_FOCUS_EVENT = "autocomplete:clearfocus";
|
|
124
107
|
|
|
125
108
|
/**
|
|
126
109
|
* Provides the behavior and accessibility implementation for an autocomplete component.
|
|
@@ -153,7 +136,7 @@ export const AUTOCOMPLETE_CLEAR_FOCUS_EVENT = 'autocomplete:clearfocus'
|
|
|
153
136
|
*/
|
|
154
137
|
export function createAutocomplete<T = unknown>(
|
|
155
138
|
props: AriaAutocompleteOptions<T>,
|
|
156
|
-
state: AutocompleteState
|
|
139
|
+
state: AutocompleteState,
|
|
157
140
|
): AutocompleteAria<T> {
|
|
158
141
|
const {
|
|
159
142
|
inputRef,
|
|
@@ -163,109 +146,109 @@ export function createAutocomplete<T = unknown>(
|
|
|
163
146
|
collectionAriaLabel,
|
|
164
147
|
disableAutoFocusFirst = false,
|
|
165
148
|
disableVirtualFocus = false,
|
|
166
|
-
} = props
|
|
149
|
+
} = props;
|
|
167
150
|
|
|
168
|
-
const collectionId = collectionIdProp ?? createId()
|
|
169
|
-
const [shouldUseVirtualFocus] = createSignal(!disableVirtualFocus)
|
|
170
|
-
let lastInputType =
|
|
151
|
+
const collectionId = collectionIdProp ?? createId();
|
|
152
|
+
const [shouldUseVirtualFocus] = createSignal(!disableVirtualFocus);
|
|
153
|
+
let lastInputType = "";
|
|
171
154
|
|
|
172
155
|
// Track the input type for determining focus behavior
|
|
173
156
|
const handleInput = (e: Event) => {
|
|
174
|
-
const inputEvent = e as InputEvent
|
|
175
|
-
lastInputType = inputEvent.inputType ||
|
|
176
|
-
}
|
|
157
|
+
const inputEvent = e as InputEvent;
|
|
158
|
+
lastInputType = inputEvent.inputType || "";
|
|
159
|
+
};
|
|
177
160
|
|
|
178
161
|
// Set up input event listener
|
|
179
162
|
createEffect(() => {
|
|
180
|
-
const input = inputRef()
|
|
163
|
+
const input = inputRef();
|
|
181
164
|
if (input) {
|
|
182
|
-
input.addEventListener(
|
|
165
|
+
input.addEventListener("input", handleInput);
|
|
183
166
|
onCleanup(() => {
|
|
184
|
-
input.removeEventListener(
|
|
185
|
-
})
|
|
167
|
+
input.removeEventListener("input", handleInput);
|
|
168
|
+
});
|
|
186
169
|
}
|
|
187
|
-
})
|
|
170
|
+
});
|
|
188
171
|
|
|
189
172
|
// Focus first item in collection
|
|
190
173
|
const focusFirstItem = () => {
|
|
191
|
-
const collection = collectionRef()
|
|
174
|
+
const collection = collectionRef();
|
|
192
175
|
if (collection) {
|
|
193
176
|
collection.dispatchEvent(
|
|
194
177
|
new CustomEvent(AUTOCOMPLETE_FOCUS_EVENT, {
|
|
195
178
|
cancelable: true,
|
|
196
179
|
bubbles: true,
|
|
197
|
-
detail: { focusStrategy:
|
|
198
|
-
})
|
|
199
|
-
)
|
|
180
|
+
detail: { focusStrategy: "first" },
|
|
181
|
+
}),
|
|
182
|
+
);
|
|
200
183
|
}
|
|
201
|
-
}
|
|
184
|
+
};
|
|
202
185
|
|
|
203
186
|
// Clear virtual focus
|
|
204
187
|
const clearVirtualFocus = (clearFocusKey = false) => {
|
|
205
|
-
state.setFocusedNodeId(null)
|
|
206
|
-
const collection = collectionRef()
|
|
188
|
+
state.setFocusedNodeId(null);
|
|
189
|
+
const collection = collectionRef();
|
|
207
190
|
if (collection) {
|
|
208
191
|
collection.dispatchEvent(
|
|
209
192
|
new CustomEvent(AUTOCOMPLETE_CLEAR_FOCUS_EVENT, {
|
|
210
193
|
cancelable: true,
|
|
211
194
|
bubbles: true,
|
|
212
195
|
detail: { clearFocusKey },
|
|
213
|
-
})
|
|
214
|
-
)
|
|
196
|
+
}),
|
|
197
|
+
);
|
|
215
198
|
}
|
|
216
|
-
}
|
|
199
|
+
};
|
|
217
200
|
|
|
218
201
|
// Handle input value changes
|
|
219
202
|
const onChange = (value: string) => {
|
|
220
203
|
// Focus first item when typing forward, clear when backspacing/pasting
|
|
221
|
-
if (lastInputType ===
|
|
222
|
-
focusFirstItem()
|
|
204
|
+
if (lastInputType === "insertText" && !disableAutoFocusFirst) {
|
|
205
|
+
focusFirstItem();
|
|
223
206
|
} else if (
|
|
224
207
|
lastInputType &&
|
|
225
|
-
(lastInputType.includes(
|
|
226
|
-
lastInputType.includes(
|
|
227
|
-
lastInputType.includes(
|
|
208
|
+
(lastInputType.includes("insert") ||
|
|
209
|
+
lastInputType.includes("delete") ||
|
|
210
|
+
lastInputType.includes("history"))
|
|
228
211
|
) {
|
|
229
|
-
clearVirtualFocus(true)
|
|
212
|
+
clearVirtualFocus(true);
|
|
230
213
|
}
|
|
231
214
|
|
|
232
|
-
state.setInputValue(value)
|
|
233
|
-
}
|
|
215
|
+
state.setInputValue(value);
|
|
216
|
+
};
|
|
234
217
|
|
|
235
218
|
// Handle keyboard navigation
|
|
236
219
|
const onKeyDown = (e: KeyboardEvent) => {
|
|
237
|
-
if (
|
|
238
|
-
return
|
|
220
|
+
if ("isComposing" in e && e.isComposing) {
|
|
221
|
+
return;
|
|
239
222
|
}
|
|
240
223
|
|
|
241
|
-
const focusedNodeId = state.focusedNodeId()
|
|
242
|
-
const collection = collectionRef()
|
|
243
|
-
const ownerDocument = getOwnerDocument(inputRef() ?? collection)
|
|
224
|
+
const focusedNodeId = state.focusedNodeId();
|
|
225
|
+
const collection = collectionRef();
|
|
226
|
+
const ownerDocument = getOwnerDocument(inputRef() ?? collection);
|
|
244
227
|
|
|
245
228
|
switch (e.key) {
|
|
246
|
-
case
|
|
229
|
+
case "Escape":
|
|
247
230
|
// Let the input handle Escape (e.g., clear value)
|
|
248
231
|
if (e.defaultPrevented) {
|
|
249
|
-
return
|
|
232
|
+
return;
|
|
250
233
|
}
|
|
251
|
-
break
|
|
234
|
+
break;
|
|
252
235
|
|
|
253
|
-
case
|
|
236
|
+
case " ":
|
|
254
237
|
// Space shouldn't trigger item action
|
|
255
|
-
return
|
|
238
|
+
return;
|
|
256
239
|
|
|
257
|
-
case
|
|
240
|
+
case "Tab":
|
|
258
241
|
// Let Tab propagate normally for focus management
|
|
259
|
-
return
|
|
260
|
-
|
|
261
|
-
case
|
|
262
|
-
case
|
|
263
|
-
case
|
|
264
|
-
case
|
|
265
|
-
case
|
|
266
|
-
case
|
|
242
|
+
return;
|
|
243
|
+
|
|
244
|
+
case "ArrowUp":
|
|
245
|
+
case "ArrowDown":
|
|
246
|
+
case "Home":
|
|
247
|
+
case "End":
|
|
248
|
+
case "PageUp":
|
|
249
|
+
case "PageDown": {
|
|
267
250
|
// Prevent cursor movement in input
|
|
268
|
-
e.preventDefault()
|
|
251
|
+
e.preventDefault();
|
|
269
252
|
|
|
270
253
|
// Dispatch focus event to collection
|
|
271
254
|
if (collection) {
|
|
@@ -273,68 +256,68 @@ export function createAutocomplete<T = unknown>(
|
|
|
273
256
|
new CustomEvent(AUTOCOMPLETE_FOCUS_EVENT, {
|
|
274
257
|
cancelable: true,
|
|
275
258
|
bubbles: true,
|
|
276
|
-
})
|
|
277
|
-
)
|
|
259
|
+
}),
|
|
260
|
+
);
|
|
278
261
|
}
|
|
279
|
-
break
|
|
262
|
+
break;
|
|
280
263
|
}
|
|
281
264
|
|
|
282
|
-
case
|
|
283
|
-
case
|
|
265
|
+
case "ArrowLeft":
|
|
266
|
+
case "ArrowRight":
|
|
284
267
|
// Clear activedescendant so screen reader announces cursor movement
|
|
285
|
-
clearVirtualFocus()
|
|
286
|
-
return
|
|
268
|
+
clearVirtualFocus();
|
|
269
|
+
return;
|
|
287
270
|
|
|
288
|
-
case
|
|
271
|
+
case "Enter":
|
|
289
272
|
// Trigger click on focused item
|
|
290
273
|
if (focusedNodeId) {
|
|
291
|
-
const item = ownerDocument?.getElementById(focusedNodeId)
|
|
274
|
+
const item = ownerDocument?.getElementById(focusedNodeId);
|
|
292
275
|
if (item) {
|
|
293
|
-
item.click()
|
|
294
|
-
e.preventDefault()
|
|
276
|
+
item.click();
|
|
277
|
+
e.preventDefault();
|
|
295
278
|
}
|
|
296
279
|
}
|
|
297
|
-
return
|
|
280
|
+
return;
|
|
298
281
|
}
|
|
299
282
|
|
|
300
283
|
// Forward keyboard events to collection/focused item
|
|
301
284
|
if (!e.defaultPrevented && collection) {
|
|
302
|
-
e.stopPropagation()
|
|
285
|
+
e.stopPropagation();
|
|
303
286
|
|
|
304
287
|
if (focusedNodeId) {
|
|
305
|
-
const item = ownerDocument?.getElementById(focusedNodeId)
|
|
288
|
+
const item = ownerDocument?.getElementById(focusedNodeId);
|
|
306
289
|
if (item) {
|
|
307
|
-
item.dispatchEvent(new KeyboardEvent(e.type, toKeyboardEventInit(e)))
|
|
290
|
+
item.dispatchEvent(new KeyboardEvent(e.type, toKeyboardEventInit(e)));
|
|
308
291
|
}
|
|
309
292
|
} else {
|
|
310
|
-
collection.dispatchEvent(new KeyboardEvent(e.type, toKeyboardEventInit(e)))
|
|
293
|
+
collection.dispatchEvent(new KeyboardEvent(e.type, toKeyboardEventInit(e)));
|
|
311
294
|
}
|
|
312
295
|
}
|
|
313
|
-
}
|
|
296
|
+
};
|
|
314
297
|
|
|
315
298
|
// Handle focus events
|
|
316
299
|
const onFocus = (e: FocusEvent) => {
|
|
317
|
-
if (!e.isTrusted) return
|
|
300
|
+
if (!e.isTrusted) return;
|
|
318
301
|
|
|
319
302
|
// Restore virtual focus when refocusing input
|
|
320
|
-
const focusedNodeId = state.focusedNodeId()
|
|
303
|
+
const focusedNodeId = state.focusedNodeId();
|
|
321
304
|
if (focusedNodeId) {
|
|
322
|
-
const item = document.getElementById(focusedNodeId)
|
|
305
|
+
const item = document.getElementById(focusedNodeId);
|
|
323
306
|
if (item) {
|
|
324
307
|
// Item still exists, keep focus on it
|
|
325
308
|
}
|
|
326
309
|
}
|
|
327
|
-
}
|
|
310
|
+
};
|
|
328
311
|
|
|
329
312
|
const onBlur = (e: FocusEvent) => {
|
|
330
|
-
if (!e.isTrusted) return
|
|
313
|
+
if (!e.isTrusted) return;
|
|
331
314
|
// Virtual focus blur handling would go here
|
|
332
|
-
}
|
|
315
|
+
};
|
|
333
316
|
|
|
334
317
|
// Create filter function
|
|
335
318
|
const filterFn = filter
|
|
336
319
|
? (textValue: string) => filter(textValue, state.inputValue())
|
|
337
|
-
: undefined
|
|
320
|
+
: undefined;
|
|
338
321
|
|
|
339
322
|
return {
|
|
340
323
|
inputProps: {
|
|
@@ -343,22 +326,22 @@ export function createAutocomplete<T = unknown>(
|
|
|
343
326
|
onKeyDown,
|
|
344
327
|
onFocus,
|
|
345
328
|
onBlur,
|
|
346
|
-
get
|
|
347
|
-
return () => (shouldUseVirtualFocus() ? state.focusedNodeId() ?? undefined : undefined)
|
|
329
|
+
get "aria-activedescendant"() {
|
|
330
|
+
return () => (shouldUseVirtualFocus() ? (state.focusedNodeId() ?? undefined) : undefined);
|
|
348
331
|
},
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
enterKeyHint:
|
|
352
|
-
autoCorrect:
|
|
353
|
-
spellCheck:
|
|
354
|
-
autoComplete:
|
|
332
|
+
"aria-controls": collectionId,
|
|
333
|
+
"aria-autocomplete": "list",
|
|
334
|
+
enterKeyHint: "go",
|
|
335
|
+
autoCorrect: "off",
|
|
336
|
+
spellCheck: "false",
|
|
337
|
+
autoComplete: "off",
|
|
355
338
|
},
|
|
356
339
|
collectionProps: {
|
|
357
340
|
id: collectionId,
|
|
358
|
-
|
|
341
|
+
"aria-label": collectionAriaLabel,
|
|
359
342
|
shouldUseVirtualFocus: shouldUseVirtualFocus(),
|
|
360
343
|
disallowTypeAhead: shouldUseVirtualFocus(),
|
|
361
344
|
},
|
|
362
345
|
filter: filterFn,
|
|
363
|
-
}
|
|
346
|
+
};
|
|
364
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,13 +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"> {
|
|
34
32
|
/** The DOM id for the breadcrumb item. */
|
|
35
33
|
id?: string;
|
|
36
34
|
/** Whether this is the current/last item in the breadcrumb trail. */
|
|
37
35
|
isCurrent?: boolean;
|
|
38
36
|
/** The type of current location for aria-current. @default 'page' */
|
|
39
|
-
|
|
37
|
+
"aria-current"?: "page" | "step" | "location" | "date" | "time" | boolean;
|
|
40
38
|
/** The HTML element type. @default 'a' */
|
|
41
39
|
elementType?: string;
|
|
42
40
|
}
|
|
@@ -46,15 +44,11 @@ export interface BreadcrumbItemAria extends LinkAria {
|
|
|
46
44
|
itemProps: Record<string, unknown>;
|
|
47
45
|
}
|
|
48
46
|
|
|
49
|
-
// ============================================
|
|
50
|
-
// IMPLEMENTATION
|
|
51
|
-
// ============================================
|
|
52
|
-
|
|
53
47
|
/**
|
|
54
48
|
* Provides accessibility implementation for the breadcrumbs navigation container.
|
|
55
49
|
*/
|
|
56
50
|
export function createBreadcrumbs(
|
|
57
|
-
props: MaybeAccessor<AriaBreadcrumbsProps> = {}
|
|
51
|
+
props: MaybeAccessor<AriaBreadcrumbsProps> = {},
|
|
58
52
|
): BreadcrumbsAria {
|
|
59
53
|
const getProps = () => access(props);
|
|
60
54
|
|
|
@@ -62,15 +56,12 @@ export function createBreadcrumbs(
|
|
|
62
56
|
const p = getProps();
|
|
63
57
|
|
|
64
58
|
// Only apply a default label when no other label source exists.
|
|
65
|
-
const ariaLabel =
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
'aria-label': ariaLabel,
|
|
72
|
-
}
|
|
73
|
-
);
|
|
59
|
+
const ariaLabel = p["aria-label"] ?? (p["aria-labelledby"] ? undefined : "Breadcrumbs");
|
|
60
|
+
|
|
61
|
+
return mergeProps(filterDOMProps(p as Record<string, unknown>, { labelable: true }), {
|
|
62
|
+
"aria-label": ariaLabel,
|
|
63
|
+
"aria-details": p["aria-details"],
|
|
64
|
+
});
|
|
74
65
|
};
|
|
75
66
|
|
|
76
67
|
return {
|
|
@@ -84,13 +75,13 @@ export function createBreadcrumbs(
|
|
|
84
75
|
* Provides accessibility implementation for an individual breadcrumb item.
|
|
85
76
|
*/
|
|
86
77
|
export function createBreadcrumbItem(
|
|
87
|
-
props: MaybeAccessor<AriaBreadcrumbItemProps> = {}
|
|
78
|
+
props: MaybeAccessor<AriaBreadcrumbItemProps> = {},
|
|
88
79
|
): BreadcrumbItemAria {
|
|
89
80
|
const getProps = () => access(props);
|
|
90
81
|
|
|
91
82
|
const isCurrent = () => getProps().isCurrent ?? false;
|
|
92
83
|
const isDisabled = () => getProps().isDisabled ?? false;
|
|
93
|
-
const elementType = () => getProps().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)
|
|
@@ -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
|
|
|
@@ -156,23 +150,20 @@ export function createBreadcrumbItem(
|
|
|
156
150
|
const current = isCurrent();
|
|
157
151
|
|
|
158
152
|
// Start with link props, forwarding id if provided
|
|
159
|
-
let baseProps: Record<string, unknown> = p.id
|
|
160
|
-
? mergeProps(linkProps, { id: p.id })
|
|
161
|
-
: linkProps;
|
|
153
|
+
let baseProps: Record<string, unknown> = p.id ? mergeProps(linkProps, { id: p.id }) : linkProps;
|
|
162
154
|
|
|
163
155
|
// Add aria-current for current page
|
|
164
156
|
if (current) {
|
|
165
|
-
const ariaCurrent = p[
|
|
157
|
+
const ariaCurrent = p["aria-current"] ?? "page";
|
|
166
158
|
baseProps = mergeProps(baseProps, {
|
|
167
|
-
|
|
159
|
+
"aria-current": ariaCurrent,
|
|
168
160
|
});
|
|
169
|
-
|
|
170
161
|
}
|
|
171
162
|
|
|
172
163
|
// Add aria-disabled for disabled items
|
|
173
164
|
if (isDisabled()) {
|
|
174
165
|
baseProps = mergeProps(baseProps, {
|
|
175
|
-
|
|
166
|
+
"aria-disabled": true,
|
|
176
167
|
});
|
|
177
168
|
}
|
|
178
169
|
|
package/src/breadcrumbs/index.ts
CHANGED