@proyecto-viviana/solidaria 0.1.3 → 0.2.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/dist/index.d.ts +6135 -50
- package/dist/index.js +485 -1120
- package/dist/{index.ssr.js → index.jsx} +89 -143
- package/package.json +7 -9
- package/dist/autocomplete/createAutocomplete.d.ts +0 -109
- package/dist/autocomplete/createAutocomplete.d.ts.map +0 -1
- package/dist/autocomplete/index.d.ts +0 -2
- package/dist/autocomplete/index.d.ts.map +0 -1
- package/dist/breadcrumbs/createBreadcrumbs.d.ts +0 -43
- package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +0 -1
- package/dist/breadcrumbs/index.d.ts +0 -2
- package/dist/breadcrumbs/index.d.ts.map +0 -1
- package/dist/button/createButton.d.ts +0 -29
- package/dist/button/createButton.d.ts.map +0 -1
- package/dist/button/createToggleButton.d.ts +0 -41
- package/dist/button/createToggleButton.d.ts.map +0 -1
- package/dist/button/index.d.ts +0 -5
- package/dist/button/index.d.ts.map +0 -1
- package/dist/button/types.d.ts +0 -77
- package/dist/button/types.d.ts.map +0 -1
- package/dist/calendar/createCalendar.d.ts +0 -41
- package/dist/calendar/createCalendar.d.ts.map +0 -1
- package/dist/calendar/createCalendarCell.d.ts +0 -41
- package/dist/calendar/createCalendarCell.d.ts.map +0 -1
- package/dist/calendar/createCalendarGrid.d.ts +0 -29
- package/dist/calendar/createCalendarGrid.d.ts.map +0 -1
- package/dist/calendar/createRangeCalendar.d.ts +0 -39
- package/dist/calendar/createRangeCalendar.d.ts.map +0 -1
- package/dist/calendar/createRangeCalendarCell.d.ts +0 -45
- package/dist/calendar/createRangeCalendarCell.d.ts.map +0 -1
- package/dist/calendar/index.d.ts +0 -6
- package/dist/calendar/index.d.ts.map +0 -1
- package/dist/checkbox/createCheckbox.d.ts +0 -56
- package/dist/checkbox/createCheckbox.d.ts.map +0 -1
- package/dist/checkbox/createCheckboxGroup.d.ts +0 -53
- package/dist/checkbox/createCheckboxGroup.d.ts.map +0 -1
- package/dist/checkbox/createCheckboxGroupItem.d.ts +0 -25
- package/dist/checkbox/createCheckboxGroupItem.d.ts.map +0 -1
- package/dist/checkbox/createCheckboxGroupState.d.ts +0 -71
- package/dist/checkbox/createCheckboxGroupState.d.ts.map +0 -1
- package/dist/checkbox/index.d.ts +0 -9
- package/dist/checkbox/index.d.ts.map +0 -1
- package/dist/color/createColorArea.d.ts +0 -13
- package/dist/color/createColorArea.d.ts.map +0 -1
- package/dist/color/createColorField.d.ts +0 -13
- package/dist/color/createColorField.d.ts.map +0 -1
- package/dist/color/createColorSlider.d.ts +0 -13
- package/dist/color/createColorSlider.d.ts.map +0 -1
- package/dist/color/createColorSwatch.d.ts +0 -12
- package/dist/color/createColorSwatch.d.ts.map +0 -1
- package/dist/color/createColorWheel.d.ts +0 -13
- package/dist/color/createColorWheel.d.ts.map +0 -1
- package/dist/color/index.d.ts +0 -10
- package/dist/color/index.d.ts.map +0 -1
- package/dist/color/types.d.ts +0 -106
- package/dist/color/types.d.ts.map +0 -1
- package/dist/combobox/createComboBox.d.ts +0 -77
- package/dist/combobox/createComboBox.d.ts.map +0 -1
- package/dist/combobox/index.d.ts +0 -2
- package/dist/combobox/index.d.ts.map +0 -1
- package/dist/combobox/intl/index.d.ts +0 -14
- package/dist/combobox/intl/index.d.ts.map +0 -1
- package/dist/datepicker/createDateField.d.ts +0 -51
- package/dist/datepicker/createDateField.d.ts.map +0 -1
- package/dist/datepicker/createDatePicker.d.ts +0 -65
- package/dist/datepicker/createDatePicker.d.ts.map +0 -1
- package/dist/datepicker/createDateSegment.d.ts +0 -29
- package/dist/datepicker/createDateSegment.d.ts.map +0 -1
- package/dist/datepicker/createTimeField.d.ts +0 -51
- package/dist/datepicker/createTimeField.d.ts.map +0 -1
- package/dist/datepicker/index.d.ts +0 -5
- package/dist/datepicker/index.d.ts.map +0 -1
- package/dist/dialog/createDialog.d.ts +0 -25
- package/dist/dialog/createDialog.d.ts.map +0 -1
- package/dist/dialog/index.d.ts +0 -3
- package/dist/dialog/index.d.ts.map +0 -1
- package/dist/dialog/types.d.ts +0 -18
- package/dist/dialog/types.d.ts.map +0 -1
- package/dist/disclosure/createDisclosure.d.ts +0 -52
- package/dist/disclosure/createDisclosure.d.ts.map +0 -1
- package/dist/disclosure/createDisclosureGroup.d.ts +0 -39
- package/dist/disclosure/createDisclosureGroup.d.ts.map +0 -1
- package/dist/disclosure/index.d.ts +0 -3
- package/dist/disclosure/index.d.ts.map +0 -1
- package/dist/dnd/createDrag.d.ts +0 -16
- package/dist/dnd/createDrag.d.ts.map +0 -1
- package/dist/dnd/createDraggableCollection.d.ts +0 -27
- package/dist/dnd/createDraggableCollection.d.ts.map +0 -1
- package/dist/dnd/createDraggableItem.d.ts +0 -37
- package/dist/dnd/createDraggableItem.d.ts.map +0 -1
- package/dist/dnd/createDrop.d.ts +0 -16
- package/dist/dnd/createDrop.d.ts.map +0 -1
- package/dist/dnd/createDroppableCollection.d.ts +0 -76
- package/dist/dnd/createDroppableCollection.d.ts.map +0 -1
- package/dist/dnd/createDroppableItem.d.ts +0 -31
- package/dist/dnd/createDroppableItem.d.ts.map +0 -1
- package/dist/dnd/index.d.ts +0 -18
- package/dist/dnd/index.d.ts.map +0 -1
- package/dist/dnd/types.d.ts +0 -66
- package/dist/dnd/types.d.ts.map +0 -1
- package/dist/dnd/utils.d.ts +0 -57
- package/dist/dnd/utils.d.ts.map +0 -1
- package/dist/focus/FocusScope.d.ts +0 -57
- package/dist/focus/FocusScope.d.ts.map +0 -1
- package/dist/focus/createAutoFocus.d.ts +0 -120
- package/dist/focus/createAutoFocus.d.ts.map +0 -1
- package/dist/focus/createFocusRestore.d.ts +0 -116
- package/dist/focus/createFocusRestore.d.ts.map +0 -1
- package/dist/focus/createVirtualFocus.d.ts +0 -170
- package/dist/focus/createVirtualFocus.d.ts.map +0 -1
- package/dist/focus/index.d.ts +0 -5
- package/dist/focus/index.d.ts.map +0 -1
- package/dist/form/createFormReset.d.ts +0 -27
- package/dist/form/createFormReset.d.ts.map +0 -1
- package/dist/form/createFormValidation.d.ts +0 -56
- package/dist/form/createFormValidation.d.ts.map +0 -1
- package/dist/form/index.d.ts +0 -3
- package/dist/form/index.d.ts.map +0 -1
- package/dist/grid/GridKeyboardDelegate.d.ts +0 -79
- package/dist/grid/GridKeyboardDelegate.d.ts.map +0 -1
- package/dist/grid/createGrid.d.ts +0 -24
- package/dist/grid/createGrid.d.ts.map +0 -1
- package/dist/grid/createGridCell.d.ts +0 -12
- package/dist/grid/createGridCell.d.ts.map +0 -1
- package/dist/grid/createGridRow.d.ts +0 -12
- package/dist/grid/createGridRow.d.ts.map +0 -1
- package/dist/grid/index.d.ts +0 -10
- package/dist/grid/index.d.ts.map +0 -1
- package/dist/grid/types.d.ts +0 -126
- package/dist/grid/types.d.ts.map +0 -1
- package/dist/gridlist/createGridList.d.ts +0 -28
- package/dist/gridlist/createGridList.d.ts.map +0 -1
- package/dist/gridlist/createGridListItem.d.ts +0 -12
- package/dist/gridlist/createGridListItem.d.ts.map +0 -1
- package/dist/gridlist/createGridListSelectionCheckbox.d.ts +0 -12
- package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +0 -1
- package/dist/gridlist/index.d.ts +0 -8
- package/dist/gridlist/index.d.ts.map +0 -1
- package/dist/gridlist/types.d.ts +0 -75
- package/dist/gridlist/types.d.ts.map +0 -1
- package/dist/i18n/NumberFormatter.d.ts +0 -43
- package/dist/i18n/NumberFormatter.d.ts.map +0 -1
- package/dist/i18n/createCollator.d.ts +0 -41
- package/dist/i18n/createCollator.d.ts.map +0 -1
- package/dist/i18n/createDateFormatter.d.ts +0 -45
- package/dist/i18n/createDateFormatter.d.ts.map +0 -1
- package/dist/i18n/createFilter.d.ts +0 -57
- package/dist/i18n/createFilter.d.ts.map +0 -1
- package/dist/i18n/createNumberFormatter.d.ts +0 -43
- package/dist/i18n/createNumberFormatter.d.ts.map +0 -1
- package/dist/i18n/createStringFormatter.d.ts +0 -42
- package/dist/i18n/createStringFormatter.d.ts.map +0 -1
- package/dist/i18n/index.d.ts +0 -9
- package/dist/i18n/index.d.ts.map +0 -1
- package/dist/i18n/locale.d.ts +0 -66
- package/dist/i18n/locale.d.ts.map +0 -1
- package/dist/i18n/utils.d.ts +0 -17
- package/dist/i18n/utils.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -7
- package/dist/index.ssr.js.map +0 -7
- package/dist/interactions/FocusableProvider.d.ts +0 -26
- package/dist/interactions/FocusableProvider.d.ts.map +0 -1
- package/dist/interactions/PressEvent.d.ts +0 -73
- package/dist/interactions/PressEvent.d.ts.map +0 -1
- package/dist/interactions/createFocus.d.ts +0 -31
- package/dist/interactions/createFocus.d.ts.map +0 -1
- package/dist/interactions/createFocusRing.d.ts +0 -37
- package/dist/interactions/createFocusRing.d.ts.map +0 -1
- package/dist/interactions/createFocusWithin.d.ts +0 -27
- package/dist/interactions/createFocusWithin.d.ts.map +0 -1
- package/dist/interactions/createFocusable.d.ts +0 -65
- package/dist/interactions/createFocusable.d.ts.map +0 -1
- package/dist/interactions/createHover.d.ts +0 -43
- package/dist/interactions/createHover.d.ts.map +0 -1
- package/dist/interactions/createInteractionModality.d.ts +0 -73
- package/dist/interactions/createInteractionModality.d.ts.map +0 -1
- package/dist/interactions/createKeyboard.d.ts +0 -35
- package/dist/interactions/createKeyboard.d.ts.map +0 -1
- package/dist/interactions/createLongPress.d.ts +0 -63
- package/dist/interactions/createLongPress.d.ts.map +0 -1
- package/dist/interactions/createMove.d.ts +0 -40
- package/dist/interactions/createMove.d.ts.map +0 -1
- package/dist/interactions/createPress.d.ts +0 -55
- package/dist/interactions/createPress.d.ts.map +0 -1
- package/dist/interactions/index.d.ts +0 -13
- package/dist/interactions/index.d.ts.map +0 -1
- package/dist/label/createField.d.ts +0 -51
- package/dist/label/createField.d.ts.map +0 -1
- package/dist/label/createLabel.d.ts +0 -49
- package/dist/label/createLabel.d.ts.map +0 -1
- package/dist/label/createLabels.d.ts +0 -16
- package/dist/label/createLabels.d.ts.map +0 -1
- package/dist/label/index.d.ts +0 -6
- package/dist/label/index.d.ts.map +0 -1
- package/dist/landmark/createLandmark.d.ts +0 -79
- package/dist/landmark/createLandmark.d.ts.map +0 -1
- package/dist/landmark/index.d.ts +0 -2
- package/dist/landmark/index.d.ts.map +0 -1
- package/dist/link/createLink.d.ts +0 -65
- package/dist/link/createLink.d.ts.map +0 -1
- package/dist/link/index.d.ts +0 -2
- package/dist/link/index.d.ts.map +0 -1
- package/dist/listbox/createListBox.d.ts +0 -58
- package/dist/listbox/createListBox.d.ts.map +0 -1
- package/dist/listbox/createOption.d.ts +0 -42
- package/dist/listbox/createOption.d.ts.map +0 -1
- package/dist/listbox/index.d.ts +0 -3
- package/dist/listbox/index.d.ts.map +0 -1
- package/dist/live-announcer/announce.d.ts +0 -113
- package/dist/live-announcer/announce.d.ts.map +0 -1
- package/dist/live-announcer/index.d.ts +0 -2
- package/dist/live-announcer/index.d.ts.map +0 -1
- package/dist/menu/createMenu.d.ts +0 -57
- package/dist/menu/createMenu.d.ts.map +0 -1
- package/dist/menu/createMenuItem.d.ts +0 -42
- package/dist/menu/createMenuItem.d.ts.map +0 -1
- package/dist/menu/createMenuTrigger.d.ts +0 -29
- package/dist/menu/createMenuTrigger.d.ts.map +0 -1
- package/dist/menu/index.d.ts +0 -4
- package/dist/menu/index.d.ts.map +0 -1
- package/dist/meter/createMeter.d.ts +0 -44
- package/dist/meter/createMeter.d.ts.map +0 -1
- package/dist/meter/index.d.ts +0 -2
- package/dist/meter/index.d.ts.map +0 -1
- package/dist/numberfield/createNumberField.d.ts +0 -56
- package/dist/numberfield/createNumberField.d.ts.map +0 -1
- package/dist/numberfield/index.d.ts +0 -2
- package/dist/numberfield/index.d.ts.map +0 -1
- package/dist/overlays/ariaHideOutside.d.ts +0 -25
- package/dist/overlays/ariaHideOutside.d.ts.map +0 -1
- package/dist/overlays/createInteractOutside.d.ts +0 -20
- package/dist/overlays/createInteractOutside.d.ts.map +0 -1
- package/dist/overlays/createModal.d.ts +0 -70
- package/dist/overlays/createModal.d.ts.map +0 -1
- package/dist/overlays/createOverlay.d.ts +0 -43
- package/dist/overlays/createOverlay.d.ts.map +0 -1
- package/dist/overlays/createOverlayTrigger.d.ts +0 -30
- package/dist/overlays/createOverlayTrigger.d.ts.map +0 -1
- package/dist/overlays/createPreventScroll.d.ts +0 -15
- package/dist/overlays/createPreventScroll.d.ts.map +0 -1
- package/dist/overlays/index.d.ts +0 -7
- package/dist/overlays/index.d.ts.map +0 -1
- package/dist/popover/calculatePosition.d.ts +0 -67
- package/dist/popover/calculatePosition.d.ts.map +0 -1
- package/dist/popover/createOverlayPosition.d.ts +0 -109
- package/dist/popover/createOverlayPosition.d.ts.map +0 -1
- package/dist/popover/createPopover.d.ts +0 -88
- package/dist/popover/createPopover.d.ts.map +0 -1
- package/dist/popover/index.d.ts +0 -4
- package/dist/popover/index.d.ts.map +0 -1
- package/dist/progress/createProgressBar.d.ts +0 -47
- package/dist/progress/createProgressBar.d.ts.map +0 -1
- package/dist/progress/index.d.ts +0 -2
- package/dist/progress/index.d.ts.map +0 -1
- package/dist/radio/createRadio.d.ts +0 -68
- package/dist/radio/createRadio.d.ts.map +0 -1
- package/dist/radio/createRadioGroup.d.ts +0 -85
- package/dist/radio/createRadioGroup.d.ts.map +0 -1
- package/dist/radio/createRadioGroupState.d.ts +0 -77
- package/dist/radio/createRadioGroupState.d.ts.map +0 -1
- package/dist/radio/index.d.ts +0 -4
- package/dist/radio/index.d.ts.map +0 -1
- package/dist/searchfield/createSearchField.d.ts +0 -32
- package/dist/searchfield/createSearchField.d.ts.map +0 -1
- package/dist/searchfield/index.d.ts +0 -3
- package/dist/searchfield/index.d.ts.map +0 -1
- package/dist/select/createHiddenSelect.d.ts +0 -69
- package/dist/select/createHiddenSelect.d.ts.map +0 -1
- package/dist/select/createSelect.d.ts +0 -70
- package/dist/select/createSelect.d.ts.map +0 -1
- package/dist/select/index.d.ts +0 -3
- package/dist/select/index.d.ts.map +0 -1
- package/dist/selection/createTypeSelect.d.ts +0 -43
- package/dist/selection/createTypeSelect.d.ts.map +0 -1
- package/dist/selection/index.d.ts +0 -6
- package/dist/selection/index.d.ts.map +0 -1
- package/dist/separator/createSeparator.d.ts +0 -38
- package/dist/separator/createSeparator.d.ts.map +0 -1
- package/dist/separator/index.d.ts +0 -2
- package/dist/separator/index.d.ts.map +0 -1
- package/dist/slider/createSlider.d.ts +0 -43
- package/dist/slider/createSlider.d.ts.map +0 -1
- package/dist/slider/index.d.ts +0 -3
- package/dist/slider/index.d.ts.map +0 -1
- package/dist/ssr/index.d.ts +0 -221
- package/dist/ssr/index.d.ts.map +0 -1
- package/dist/switch/createSwitch.d.ts +0 -34
- package/dist/switch/createSwitch.d.ts.map +0 -1
- package/dist/switch/index.d.ts +0 -2
- package/dist/switch/index.d.ts.map +0 -1
- package/dist/table/createTable.d.ts +0 -24
- package/dist/table/createTable.d.ts.map +0 -1
- package/dist/table/createTableCell.d.ts +0 -12
- package/dist/table/createTableCell.d.ts.map +0 -1
- package/dist/table/createTableColumnHeader.d.ts +0 -12
- package/dist/table/createTableColumnHeader.d.ts.map +0 -1
- package/dist/table/createTableHeaderRow.d.ts +0 -12
- package/dist/table/createTableHeaderRow.d.ts.map +0 -1
- package/dist/table/createTableRow.d.ts +0 -12
- package/dist/table/createTableRow.d.ts.map +0 -1
- package/dist/table/createTableRowGroup.d.ts +0 -11
- package/dist/table/createTableRowGroup.d.ts.map +0 -1
- package/dist/table/createTableSelectAllCheckbox.d.ts +0 -12
- package/dist/table/createTableSelectAllCheckbox.d.ts.map +0 -1
- package/dist/table/createTableSelectionCheckbox.d.ts +0 -12
- package/dist/table/createTableSelectionCheckbox.d.ts.map +0 -1
- package/dist/table/index.d.ts +0 -14
- package/dist/table/index.d.ts.map +0 -1
- package/dist/table/types.d.ts +0 -150
- package/dist/table/types.d.ts.map +0 -1
- package/dist/tabs/createTabs.d.ts +0 -123
- package/dist/tabs/createTabs.d.ts.map +0 -1
- package/dist/tabs/index.d.ts +0 -2
- package/dist/tabs/index.d.ts.map +0 -1
- package/dist/tag/createTag.d.ts +0 -42
- package/dist/tag/createTag.d.ts.map +0 -1
- package/dist/tag/createTagGroup.d.ts +0 -54
- package/dist/tag/createTagGroup.d.ts.map +0 -1
- package/dist/tag/index.d.ts +0 -3
- package/dist/tag/index.d.ts.map +0 -1
- package/dist/textfield/createTextField.d.ts +0 -73
- package/dist/textfield/createTextField.d.ts.map +0 -1
- package/dist/textfield/index.d.ts +0 -2
- package/dist/textfield/index.d.ts.map +0 -1
- package/dist/toast/createToast.d.ts +0 -58
- package/dist/toast/createToast.d.ts.map +0 -1
- package/dist/toast/createToastRegion.d.ts +0 -49
- package/dist/toast/createToastRegion.d.ts.map +0 -1
- package/dist/toast/index.d.ts +0 -3
- package/dist/toast/index.d.ts.map +0 -1
- package/dist/toggle/createToggle.d.ts +0 -94
- package/dist/toggle/createToggle.d.ts.map +0 -1
- package/dist/toggle/createToggleState.d.ts +0 -34
- package/dist/toggle/createToggleState.d.ts.map +0 -1
- package/dist/toggle/index.d.ts +0 -5
- package/dist/toggle/index.d.ts.map +0 -1
- package/dist/toolbar/createToolbar.d.ts +0 -49
- package/dist/toolbar/createToolbar.d.ts.map +0 -1
- package/dist/toolbar/index.d.ts +0 -2
- package/dist/toolbar/index.d.ts.map +0 -1
- package/dist/tooltip/createTooltip.d.ts +0 -48
- package/dist/tooltip/createTooltip.d.ts.map +0 -1
- package/dist/tooltip/createTooltipTrigger.d.ts +0 -64
- package/dist/tooltip/createTooltipTrigger.d.ts.map +0 -1
- package/dist/tooltip/index.d.ts +0 -3
- package/dist/tooltip/index.d.ts.map +0 -1
- package/dist/tree/createTree.d.ts +0 -28
- package/dist/tree/createTree.d.ts.map +0 -1
- package/dist/tree/createTreeItem.d.ts +0 -12
- package/dist/tree/createTreeItem.d.ts.map +0 -1
- package/dist/tree/createTreeSelectionCheckbox.d.ts +0 -12
- package/dist/tree/createTreeSelectionCheckbox.d.ts.map +0 -1
- package/dist/tree/index.d.ts +0 -8
- package/dist/tree/index.d.ts.map +0 -1
- package/dist/tree/types.d.ts +0 -81
- package/dist/tree/types.d.ts.map +0 -1
- package/dist/utils/createDescription.d.ts +0 -56
- package/dist/utils/createDescription.d.ts.map +0 -1
- package/dist/utils/dom.d.ts +0 -68
- package/dist/utils/dom.d.ts.map +0 -1
- package/dist/utils/env.d.ts +0 -18
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/events.d.ts +0 -29
- package/dist/utils/events.d.ts.map +0 -1
- package/dist/utils/filterDOMProps.d.ts +0 -29
- package/dist/utils/filterDOMProps.d.ts.map +0 -1
- package/dist/utils/focus.d.ts +0 -20
- package/dist/utils/focus.d.ts.map +0 -1
- package/dist/utils/geometry.d.ts +0 -40
- package/dist/utils/geometry.d.ts.map +0 -1
- package/dist/utils/globalListeners.d.ts +0 -36
- package/dist/utils/globalListeners.d.ts.map +0 -1
- package/dist/utils/index.d.ts +0 -13
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/mergeProps.d.ts +0 -11
- package/dist/utils/mergeProps.d.ts.map +0 -1
- package/dist/utils/platform.d.ts +0 -14
- package/dist/utils/platform.d.ts.map +0 -1
- package/dist/utils/reactivity.d.ts +0 -28
- package/dist/utils/reactivity.d.ts.map +0 -1
- package/dist/utils/textSelection.d.ts +0 -19
- package/dist/utils/textSelection.d.ts.map +0 -1
- package/dist/visually-hidden/createVisuallyHidden.d.ts +0 -60
- package/dist/visually-hidden/createVisuallyHidden.d.ts.map +0 -1
- package/dist/visually-hidden/index.d.ts +0 -2
- package/dist/visually-hidden/index.d.ts.map +0 -1
- package/src/autocomplete/createAutocomplete.ts +0 -341
- package/src/autocomplete/index.ts +0 -9
- package/src/breadcrumbs/createBreadcrumbs.ts +0 -196
- package/src/breadcrumbs/index.ts +0 -8
- package/src/button/createButton.ts +0 -142
- package/src/button/createToggleButton.ts +0 -101
- package/src/button/index.ts +0 -4
- package/src/button/types.ts +0 -78
- package/src/calendar/createCalendar.ts +0 -138
- package/src/calendar/createCalendarCell.ts +0 -187
- package/src/calendar/createCalendarGrid.ts +0 -140
- package/src/calendar/createRangeCalendar.ts +0 -136
- package/src/calendar/createRangeCalendarCell.ts +0 -186
- package/src/calendar/index.ts +0 -34
- package/src/checkbox/createCheckbox.ts +0 -135
- package/src/checkbox/createCheckboxGroup.ts +0 -137
- package/src/checkbox/createCheckboxGroupItem.ts +0 -117
- package/src/checkbox/createCheckboxGroupState.ts +0 -193
- package/src/checkbox/index.ts +0 -13
- package/src/color/createColorArea.ts +0 -314
- package/src/color/createColorField.ts +0 -137
- package/src/color/createColorSlider.ts +0 -197
- package/src/color/createColorSwatch.ts +0 -40
- package/src/color/createColorWheel.ts +0 -208
- package/src/color/index.ts +0 -24
- package/src/color/types.ts +0 -116
- package/src/combobox/createComboBox.ts +0 -647
- package/src/combobox/index.ts +0 -6
- package/src/combobox/intl/en-US.json +0 -7
- package/src/combobox/intl/es-ES.json +0 -7
- package/src/combobox/intl/index.ts +0 -23
- package/src/datepicker/createDateField.ts +0 -154
- package/src/datepicker/createDatePicker.ts +0 -206
- package/src/datepicker/createDateSegment.ts +0 -229
- package/src/datepicker/createTimeField.ts +0 -154
- package/src/datepicker/index.ts +0 -28
- package/src/dialog/createDialog.ts +0 -120
- package/src/dialog/index.ts +0 -2
- package/src/dialog/types.ts +0 -19
- package/src/disclosure/createDisclosure.ts +0 -131
- package/src/disclosure/createDisclosureGroup.ts +0 -62
- package/src/disclosure/index.ts +0 -11
- package/src/dnd/createDrag.ts +0 -209
- package/src/dnd/createDraggableCollection.ts +0 -63
- package/src/dnd/createDraggableItem.ts +0 -243
- package/src/dnd/createDrop.ts +0 -321
- package/src/dnd/createDroppableCollection.ts +0 -293
- package/src/dnd/createDroppableItem.ts +0 -213
- package/src/dnd/index.ts +0 -47
- package/src/dnd/types.ts +0 -89
- package/src/dnd/utils.ts +0 -294
- package/src/focus/FocusScope.tsx +0 -408
- package/src/focus/createAutoFocus.ts +0 -321
- package/src/focus/createFocusRestore.ts +0 -313
- package/src/focus/createVirtualFocus.ts +0 -396
- package/src/focus/index.ts +0 -35
- package/src/form/createFormReset.ts +0 -51
- package/src/form/createFormValidation.ts +0 -224
- package/src/form/index.ts +0 -11
- package/src/grid/GridKeyboardDelegate.ts +0 -429
- package/src/grid/createGrid.ts +0 -261
- package/src/grid/createGridCell.ts +0 -182
- package/src/grid/createGridRow.ts +0 -153
- package/src/grid/index.ts +0 -18
- package/src/grid/types.ts +0 -133
- package/src/gridlist/createGridList.ts +0 -185
- package/src/gridlist/createGridListItem.ts +0 -180
- package/src/gridlist/createGridListSelectionCheckbox.ts +0 -59
- package/src/gridlist/index.ts +0 -16
- package/src/gridlist/types.ts +0 -81
- package/src/i18n/NumberFormatter.ts +0 -266
- package/src/i18n/createCollator.ts +0 -79
- package/src/i18n/createDateFormatter.ts +0 -83
- package/src/i18n/createFilter.ts +0 -131
- package/src/i18n/createNumberFormatter.ts +0 -52
- package/src/i18n/createStringFormatter.ts +0 -87
- package/src/i18n/index.ts +0 -40
- package/src/i18n/locale.tsx +0 -188
- package/src/i18n/utils.ts +0 -99
- package/src/index.ts +0 -670
- package/src/interactions/FocusableProvider.tsx +0 -44
- package/src/interactions/PressEvent.ts +0 -124
- package/src/interactions/createFocus.ts +0 -163
- package/src/interactions/createFocusRing.ts +0 -89
- package/src/interactions/createFocusWithin.ts +0 -206
- package/src/interactions/createFocusable.ts +0 -168
- package/src/interactions/createHover.ts +0 -254
- package/src/interactions/createInteractionModality.ts +0 -424
- package/src/interactions/createKeyboard.ts +0 -82
- package/src/interactions/createLongPress.ts +0 -174
- package/src/interactions/createMove.ts +0 -289
- package/src/interactions/createPress.ts +0 -834
- package/src/interactions/index.ts +0 -78
- package/src/label/createField.ts +0 -145
- package/src/label/createLabel.ts +0 -117
- package/src/label/createLabels.ts +0 -50
- package/src/label/index.ts +0 -19
- package/src/landmark/createLandmark.ts +0 -377
- package/src/landmark/index.ts +0 -8
- package/src/link/createLink.ts +0 -182
- package/src/link/index.ts +0 -1
- package/src/listbox/createListBox.ts +0 -269
- package/src/listbox/createOption.ts +0 -151
- package/src/listbox/index.ts +0 -12
- package/src/live-announcer/announce.ts +0 -322
- package/src/live-announcer/index.ts +0 -9
- package/src/menu/createMenu.ts +0 -396
- package/src/menu/createMenuItem.ts +0 -149
- package/src/menu/createMenuTrigger.ts +0 -88
- package/src/menu/index.ts +0 -18
- package/src/meter/createMeter.ts +0 -75
- package/src/meter/index.ts +0 -1
- package/src/numberfield/createNumberField.ts +0 -268
- package/src/numberfield/index.ts +0 -5
- package/src/overlays/ariaHideOutside.ts +0 -219
- package/src/overlays/createInteractOutside.ts +0 -149
- package/src/overlays/createModal.tsx +0 -202
- package/src/overlays/createOverlay.ts +0 -155
- package/src/overlays/createOverlayTrigger.ts +0 -85
- package/src/overlays/createPreventScroll.ts +0 -266
- package/src/overlays/index.ts +0 -44
- package/src/popover/calculatePosition.ts +0 -766
- package/src/popover/createOverlayPosition.ts +0 -356
- package/src/popover/createPopover.ts +0 -170
- package/src/popover/index.ts +0 -24
- package/src/progress/createProgressBar.ts +0 -128
- package/src/progress/index.ts +0 -5
- package/src/radio/createRadio.ts +0 -287
- package/src/radio/createRadioGroup.ts +0 -189
- package/src/radio/createRadioGroupState.ts +0 -201
- package/src/radio/index.ts +0 -23
- package/src/searchfield/createSearchField.ts +0 -186
- package/src/searchfield/index.ts +0 -2
- package/src/select/createHiddenSelect.tsx +0 -236
- package/src/select/createSelect.ts +0 -395
- package/src/select/index.ts +0 -14
- package/src/selection/createTypeSelect.ts +0 -201
- package/src/selection/index.ts +0 -6
- package/src/separator/createSeparator.ts +0 -82
- package/src/separator/index.ts +0 -6
- package/src/slider/createSlider.ts +0 -349
- package/src/slider/index.ts +0 -2
- package/src/ssr/index.tsx +0 -370
- package/src/switch/createSwitch.ts +0 -70
- package/src/switch/index.ts +0 -1
- package/src/table/createTable.ts +0 -526
- package/src/table/createTableCell.ts +0 -147
- package/src/table/createTableColumnHeader.ts +0 -115
- package/src/table/createTableHeaderRow.ts +0 -40
- package/src/table/createTableRow.ts +0 -155
- package/src/table/createTableRowGroup.ts +0 -32
- package/src/table/createTableSelectAllCheckbox.ts +0 -73
- package/src/table/createTableSelectionCheckbox.ts +0 -59
- package/src/table/index.ts +0 -30
- package/src/table/types.ts +0 -165
- package/src/tabs/createTabs.ts +0 -472
- package/src/tabs/index.ts +0 -14
- package/src/tag/createTag.ts +0 -194
- package/src/tag/createTagGroup.ts +0 -154
- package/src/tag/index.ts +0 -12
- package/src/textfield/createTextField.ts +0 -198
- package/src/textfield/index.ts +0 -5
- package/src/toast/createToast.ts +0 -118
- package/src/toast/createToastRegion.ts +0 -100
- package/src/toast/index.ts +0 -11
- package/src/toggle/createToggle.ts +0 -223
- package/src/toggle/createToggleState.ts +0 -94
- package/src/toggle/index.ts +0 -7
- package/src/toolbar/createToolbar.ts +0 -368
- package/src/toolbar/index.ts +0 -6
- package/src/tooltip/createTooltip.ts +0 -79
- package/src/tooltip/createTooltipTrigger.ts +0 -222
- package/src/tooltip/index.ts +0 -6
- package/src/tree/createTree.ts +0 -246
- package/src/tree/createTreeItem.ts +0 -233
- package/src/tree/createTreeSelectionCheckbox.ts +0 -68
- package/src/tree/index.ts +0 -16
- package/src/tree/types.ts +0 -87
- package/src/utils/createDescription.ts +0 -137
- package/src/utils/dom.ts +0 -327
- package/src/utils/env.ts +0 -54
- package/src/utils/events.ts +0 -106
- package/src/utils/filterDOMProps.ts +0 -116
- package/src/utils/focus.ts +0 -151
- package/src/utils/geometry.ts +0 -115
- package/src/utils/globalListeners.ts +0 -142
- package/src/utils/index.ts +0 -80
- package/src/utils/mergeProps.ts +0 -52
- package/src/utils/platform.ts +0 -52
- package/src/utils/reactivity.ts +0 -36
- package/src/utils/textSelection.ts +0 -114
- package/src/visually-hidden/createVisuallyHidden.ts +0 -124
- package/src/visually-hidden/index.ts +0 -6
|
@@ -1,341 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* createAutocomplete - Accessibility hook for autocomplete components
|
|
3
|
-
*
|
|
4
|
-
* Provides keyboard navigation, virtual focus via aria-activedescendant,
|
|
5
|
-
* and filtering capabilities for autocomplete inputs.
|
|
6
|
-
*
|
|
7
|
-
* Based on @react-aria/autocomplete useAutocomplete.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import {
|
|
11
|
-
createSignal,
|
|
12
|
-
createEffect,
|
|
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
|
-
// ============================================
|
|
22
|
-
|
|
23
|
-
export interface CollectionOptions {
|
|
24
|
-
/** The id of the collection element. */
|
|
25
|
-
id?: string
|
|
26
|
-
/** Accessible label for the collection. */
|
|
27
|
-
'aria-label'?: string
|
|
28
|
-
/** Whether the collection items should use virtual focus instead of being focused directly. */
|
|
29
|
-
shouldUseVirtualFocus: boolean
|
|
30
|
-
/** Whether typeahead is disabled. */
|
|
31
|
-
disallowTypeAhead: boolean
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
export interface AutocompleteInputProps {
|
|
35
|
-
/** Current input value. */
|
|
36
|
-
value: Accessor<string>
|
|
37
|
-
/** Handler for input value changes. */
|
|
38
|
-
onChange: (value: string) => void
|
|
39
|
-
/** Handler for key events. */
|
|
40
|
-
onKeyDown: (e: KeyboardEvent) => void
|
|
41
|
-
/** Handler for focus events. */
|
|
42
|
-
onFocus: (e: FocusEvent) => void
|
|
43
|
-
/** Handler for blur events. */
|
|
44
|
-
onBlur: (e: FocusEvent) => void
|
|
45
|
-
/** The id of the currently focused item for aria-activedescendant. */
|
|
46
|
-
'aria-activedescendant': Accessor<string | undefined>
|
|
47
|
-
/** The id of the controlled collection. */
|
|
48
|
-
'aria-controls': string
|
|
49
|
-
/** Autocomplete type. */
|
|
50
|
-
'aria-autocomplete': 'list' | 'none' | 'inline' | 'both'
|
|
51
|
-
/** Enter key hint for mobile keyboards. */
|
|
52
|
-
enterKeyHint: 'go'
|
|
53
|
-
/** Disable autocorrect. */
|
|
54
|
-
autoCorrect: 'off'
|
|
55
|
-
/** Disable spell check. */
|
|
56
|
-
spellCheck: 'false'
|
|
57
|
-
/** Disable browser autocomplete. */
|
|
58
|
-
autoComplete: 'off'
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export interface AriaAutocompleteOptions<T = unknown> {
|
|
62
|
-
/** Ref accessor for the input element. */
|
|
63
|
-
inputRef: Accessor<HTMLInputElement | undefined>
|
|
64
|
-
/** Ref accessor for the collection element. */
|
|
65
|
-
collectionRef: Accessor<HTMLElement | undefined>
|
|
66
|
-
/**
|
|
67
|
-
* An optional filter function used to determine if an option should be included.
|
|
68
|
-
* @param textValue - The text value of the item
|
|
69
|
-
* @param inputValue - The current input value
|
|
70
|
-
*/
|
|
71
|
-
filter?: (textValue: string, inputValue: string) => boolean
|
|
72
|
-
/**
|
|
73
|
-
* Whether to focus the first item after filtering.
|
|
74
|
-
* @default false
|
|
75
|
-
*/
|
|
76
|
-
disableAutoFocusFirst?: boolean
|
|
77
|
-
/**
|
|
78
|
-
* Whether to disable virtual focus (aria-activedescendant).
|
|
79
|
-
* @default false
|
|
80
|
-
*/
|
|
81
|
-
disableVirtualFocus?: boolean
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
export interface AutocompleteAria<T = unknown> {
|
|
85
|
-
/** Props for the autocomplete input element. */
|
|
86
|
-
inputProps: AutocompleteInputProps
|
|
87
|
-
/** Props for the collection (ListBox/Menu). */
|
|
88
|
-
collectionProps: CollectionOptions
|
|
89
|
-
/** A filter function that returns if the item should be shown. */
|
|
90
|
-
filter?: (textValue: string) => boolean
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
// ============================================
|
|
94
|
-
// CONSTANTS
|
|
95
|
-
// ============================================
|
|
96
|
-
|
|
97
|
-
// Custom event names for collection communication
|
|
98
|
-
export const AUTOCOMPLETE_FOCUS_EVENT = 'autocomplete:focus'
|
|
99
|
-
export const AUTOCOMPLETE_CLEAR_FOCUS_EVENT = 'autocomplete:clearfocus'
|
|
100
|
-
|
|
101
|
-
// ============================================
|
|
102
|
-
// CREATE AUTOCOMPLETE HOOK
|
|
103
|
-
// ============================================
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Provides the behavior and accessibility implementation for an autocomplete component.
|
|
107
|
-
* An autocomplete combines a text input with a collection, allowing users to filter
|
|
108
|
-
* the collection's contents to match a query.
|
|
109
|
-
*
|
|
110
|
-
* @example
|
|
111
|
-
* ```tsx
|
|
112
|
-
* const state = createAutocompleteState({ defaultInputValue: '' });
|
|
113
|
-
* let inputRef, collectionRef;
|
|
114
|
-
*
|
|
115
|
-
* const { inputProps, collectionProps, filter } = createAutocomplete({
|
|
116
|
-
* inputRef: () => inputRef,
|
|
117
|
-
* collectionRef: () => collectionRef,
|
|
118
|
-
* filter: (textValue, inputValue) =>
|
|
119
|
-
* textValue.toLowerCase().includes(inputValue.toLowerCase()),
|
|
120
|
-
* }, state);
|
|
121
|
-
*
|
|
122
|
-
* return (
|
|
123
|
-
* <div>
|
|
124
|
-
* <input ref={inputRef} {...inputProps} />
|
|
125
|
-
* <ul ref={collectionRef} {...collectionProps}>
|
|
126
|
-
* {items.filter(item => filter?.(item.name) ?? true).map(item => (
|
|
127
|
-
* <li key={item.id}>{item.name}</li>
|
|
128
|
-
* ))}
|
|
129
|
-
* </ul>
|
|
130
|
-
* </div>
|
|
131
|
-
* );
|
|
132
|
-
* ```
|
|
133
|
-
*/
|
|
134
|
-
export function createAutocomplete<T = unknown>(
|
|
135
|
-
props: AriaAutocompleteOptions<T>,
|
|
136
|
-
state: AutocompleteState
|
|
137
|
-
): AutocompleteAria<T> {
|
|
138
|
-
const {
|
|
139
|
-
inputRef,
|
|
140
|
-
collectionRef,
|
|
141
|
-
filter,
|
|
142
|
-
disableAutoFocusFirst = false,
|
|
143
|
-
disableVirtualFocus = false,
|
|
144
|
-
} = props
|
|
145
|
-
|
|
146
|
-
const collectionId = createId()
|
|
147
|
-
const [shouldUseVirtualFocus] = createSignal(!disableVirtualFocus)
|
|
148
|
-
let lastInputType = ''
|
|
149
|
-
|
|
150
|
-
// Track the input type for determining focus behavior
|
|
151
|
-
const handleInput = (e: Event) => {
|
|
152
|
-
const inputEvent = e as InputEvent
|
|
153
|
-
lastInputType = inputEvent.inputType || ''
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
// Set up input event listener
|
|
157
|
-
createEffect(() => {
|
|
158
|
-
const input = inputRef()
|
|
159
|
-
if (input) {
|
|
160
|
-
input.addEventListener('input', handleInput)
|
|
161
|
-
onCleanup(() => {
|
|
162
|
-
input.removeEventListener('input', handleInput)
|
|
163
|
-
})
|
|
164
|
-
}
|
|
165
|
-
})
|
|
166
|
-
|
|
167
|
-
// Focus first item in collection
|
|
168
|
-
const focusFirstItem = () => {
|
|
169
|
-
const collection = collectionRef()
|
|
170
|
-
if (collection) {
|
|
171
|
-
collection.dispatchEvent(
|
|
172
|
-
new CustomEvent(AUTOCOMPLETE_FOCUS_EVENT, {
|
|
173
|
-
cancelable: true,
|
|
174
|
-
bubbles: true,
|
|
175
|
-
detail: { focusStrategy: 'first' },
|
|
176
|
-
})
|
|
177
|
-
)
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
// Clear virtual focus
|
|
182
|
-
const clearVirtualFocus = (clearFocusKey = false) => {
|
|
183
|
-
state.setFocusedNodeId(null)
|
|
184
|
-
const collection = collectionRef()
|
|
185
|
-
if (collection) {
|
|
186
|
-
collection.dispatchEvent(
|
|
187
|
-
new CustomEvent(AUTOCOMPLETE_CLEAR_FOCUS_EVENT, {
|
|
188
|
-
cancelable: true,
|
|
189
|
-
bubbles: true,
|
|
190
|
-
detail: { clearFocusKey },
|
|
191
|
-
})
|
|
192
|
-
)
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
// Handle input value changes
|
|
197
|
-
const onChange = (value: string) => {
|
|
198
|
-
// Focus first item when typing forward, clear when backspacing/pasting
|
|
199
|
-
if (lastInputType === 'insertText' && !disableAutoFocusFirst) {
|
|
200
|
-
focusFirstItem()
|
|
201
|
-
} else if (
|
|
202
|
-
lastInputType &&
|
|
203
|
-
(lastInputType.includes('insert') ||
|
|
204
|
-
lastInputType.includes('delete') ||
|
|
205
|
-
lastInputType.includes('history'))
|
|
206
|
-
) {
|
|
207
|
-
clearVirtualFocus(true)
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
state.setInputValue(value)
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
// Handle keyboard navigation
|
|
214
|
-
const onKeyDown = (e: KeyboardEvent) => {
|
|
215
|
-
if ((e as any).isComposing) {
|
|
216
|
-
return
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
const focusedNodeId = state.focusedNodeId()
|
|
220
|
-
const collection = collectionRef()
|
|
221
|
-
|
|
222
|
-
switch (e.key) {
|
|
223
|
-
case 'Escape':
|
|
224
|
-
// Let the input handle Escape (e.g., clear value)
|
|
225
|
-
if (e.defaultPrevented) {
|
|
226
|
-
return
|
|
227
|
-
}
|
|
228
|
-
break
|
|
229
|
-
|
|
230
|
-
case ' ':
|
|
231
|
-
// Space shouldn't trigger item action
|
|
232
|
-
return
|
|
233
|
-
|
|
234
|
-
case 'Tab':
|
|
235
|
-
// Let Tab propagate normally for focus management
|
|
236
|
-
return
|
|
237
|
-
|
|
238
|
-
case 'ArrowUp':
|
|
239
|
-
case 'ArrowDown':
|
|
240
|
-
case 'Home':
|
|
241
|
-
case 'End':
|
|
242
|
-
case 'PageUp':
|
|
243
|
-
case 'PageDown': {
|
|
244
|
-
// Prevent cursor movement in input
|
|
245
|
-
e.preventDefault()
|
|
246
|
-
|
|
247
|
-
// Dispatch focus event to collection
|
|
248
|
-
if (collection) {
|
|
249
|
-
collection.dispatchEvent(
|
|
250
|
-
new CustomEvent(AUTOCOMPLETE_FOCUS_EVENT, {
|
|
251
|
-
cancelable: true,
|
|
252
|
-
bubbles: true,
|
|
253
|
-
})
|
|
254
|
-
)
|
|
255
|
-
}
|
|
256
|
-
break
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
case 'ArrowLeft':
|
|
260
|
-
case 'ArrowRight':
|
|
261
|
-
// Clear activedescendant so screen reader announces cursor movement
|
|
262
|
-
clearVirtualFocus()
|
|
263
|
-
return
|
|
264
|
-
|
|
265
|
-
case 'Enter':
|
|
266
|
-
// Trigger click on focused item
|
|
267
|
-
if (focusedNodeId) {
|
|
268
|
-
const item = document.getElementById(focusedNodeId)
|
|
269
|
-
if (item) {
|
|
270
|
-
item.click()
|
|
271
|
-
e.preventDefault()
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
return
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
// Forward keyboard events to collection/focused item
|
|
278
|
-
if (!e.defaultPrevented && collection) {
|
|
279
|
-
e.stopPropagation()
|
|
280
|
-
|
|
281
|
-
if (focusedNodeId) {
|
|
282
|
-
const item = document.getElementById(focusedNodeId)
|
|
283
|
-
if (item) {
|
|
284
|
-
item.dispatchEvent(new KeyboardEvent(e.type, e))
|
|
285
|
-
}
|
|
286
|
-
} else {
|
|
287
|
-
collection.dispatchEvent(new KeyboardEvent(e.type, e))
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
// Handle focus events
|
|
293
|
-
const onFocus = (e: FocusEvent) => {
|
|
294
|
-
if (!e.isTrusted) return
|
|
295
|
-
|
|
296
|
-
// Restore virtual focus when refocusing input
|
|
297
|
-
const focusedNodeId = state.focusedNodeId()
|
|
298
|
-
if (focusedNodeId) {
|
|
299
|
-
const item = document.getElementById(focusedNodeId)
|
|
300
|
-
if (item) {
|
|
301
|
-
// Item still exists, keep focus on it
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
const onBlur = (e: FocusEvent) => {
|
|
307
|
-
if (!e.isTrusted) return
|
|
308
|
-
// Virtual focus blur handling would go here
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
// Create filter function
|
|
312
|
-
const filterFn = filter
|
|
313
|
-
? (textValue: string) => filter(textValue, state.inputValue())
|
|
314
|
-
: undefined
|
|
315
|
-
|
|
316
|
-
return {
|
|
317
|
-
inputProps: {
|
|
318
|
-
value: state.inputValue,
|
|
319
|
-
onChange,
|
|
320
|
-
onKeyDown,
|
|
321
|
-
onFocus,
|
|
322
|
-
onBlur,
|
|
323
|
-
get 'aria-activedescendant'() {
|
|
324
|
-
return () => (shouldUseVirtualFocus() ? state.focusedNodeId() ?? undefined : undefined)
|
|
325
|
-
},
|
|
326
|
-
'aria-controls': collectionId,
|
|
327
|
-
'aria-autocomplete': 'list',
|
|
328
|
-
enterKeyHint: 'go',
|
|
329
|
-
autoCorrect: 'off',
|
|
330
|
-
spellCheck: 'false',
|
|
331
|
-
autoComplete: 'off',
|
|
332
|
-
},
|
|
333
|
-
collectionProps: {
|
|
334
|
-
id: collectionId,
|
|
335
|
-
'aria-label': 'Suggestions',
|
|
336
|
-
shouldUseVirtualFocus: shouldUseVirtualFocus(),
|
|
337
|
-
disallowTypeAhead: shouldUseVirtualFocus(),
|
|
338
|
-
},
|
|
339
|
-
filter: filterFn,
|
|
340
|
-
}
|
|
341
|
-
}
|
|
@@ -1,196 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Breadcrumbs hooks for Solidaria
|
|
3
|
-
*
|
|
4
|
-
* Provides accessibility implementation for breadcrumb navigation.
|
|
5
|
-
* Port of @react-aria/breadcrumbs.
|
|
6
|
-
*/
|
|
7
|
-
|
|
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';
|
|
12
|
-
|
|
13
|
-
// ============================================
|
|
14
|
-
// TYPES
|
|
15
|
-
// ============================================
|
|
16
|
-
|
|
17
|
-
export interface AriaBreadcrumbsProps {
|
|
18
|
-
/** Provides a label for the breadcrumbs navigation. */
|
|
19
|
-
'aria-label'?: string;
|
|
20
|
-
/** Identifies the element (or elements) that labels the breadcrumbs. */
|
|
21
|
-
'aria-labelledby'?: string;
|
|
22
|
-
/** Identifies the element (or elements) that describes the breadcrumbs. */
|
|
23
|
-
'aria-describedby'?: string;
|
|
24
|
-
/** Whether the breadcrumbs are disabled. */
|
|
25
|
-
isDisabled?: boolean;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export interface BreadcrumbsAria {
|
|
29
|
-
/** Props for the breadcrumbs nav element. */
|
|
30
|
-
navProps: Record<string, unknown>;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export interface AriaBreadcrumbItemProps extends Omit<AriaLinkProps, 'aria-current'> {
|
|
34
|
-
/** Whether this is the current/last item in the breadcrumb trail. */
|
|
35
|
-
isCurrent?: boolean;
|
|
36
|
-
/** The type of current location for aria-current. @default 'page' */
|
|
37
|
-
'aria-current'?: 'page' | 'step' | 'location' | 'date' | 'time' | boolean;
|
|
38
|
-
/** The HTML element type. @default 'a' */
|
|
39
|
-
elementType?: string;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export interface BreadcrumbItemAria extends LinkAria {
|
|
43
|
-
/** Props for the breadcrumb item element. */
|
|
44
|
-
itemProps: Record<string, unknown>;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// ============================================
|
|
48
|
-
// IMPLEMENTATION
|
|
49
|
-
// ============================================
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Provides accessibility implementation for the breadcrumbs navigation container.
|
|
53
|
-
*/
|
|
54
|
-
export function createBreadcrumbs(
|
|
55
|
-
props: MaybeAccessor<AriaBreadcrumbsProps> = {}
|
|
56
|
-
): BreadcrumbsAria {
|
|
57
|
-
const getProps = () => access(props);
|
|
58
|
-
|
|
59
|
-
const getNavProps = (): Record<string, unknown> => {
|
|
60
|
-
const p = getProps();
|
|
61
|
-
|
|
62
|
-
// Default aria-label to "Breadcrumbs" if not provided
|
|
63
|
-
const ariaLabel = p['aria-label'] ?? 'Breadcrumbs';
|
|
64
|
-
|
|
65
|
-
return mergeProps(
|
|
66
|
-
filterDOMProps(p as Record<string, unknown>, { labelable: true }),
|
|
67
|
-
{
|
|
68
|
-
'aria-label': ariaLabel,
|
|
69
|
-
}
|
|
70
|
-
);
|
|
71
|
-
};
|
|
72
|
-
|
|
73
|
-
return {
|
|
74
|
-
get navProps() {
|
|
75
|
-
return getNavProps();
|
|
76
|
-
},
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Provides accessibility implementation for an individual breadcrumb item.
|
|
82
|
-
*/
|
|
83
|
-
export function createBreadcrumbItem(
|
|
84
|
-
props: MaybeAccessor<AriaBreadcrumbItemProps> = {}
|
|
85
|
-
): BreadcrumbItemAria {
|
|
86
|
-
const getProps = () => access(props);
|
|
87
|
-
|
|
88
|
-
const isCurrent = () => getProps().isCurrent ?? false;
|
|
89
|
-
const isDisabled = () => getProps().isDisabled ?? false;
|
|
90
|
-
const elementType = () => getProps().elementType ?? 'a';
|
|
91
|
-
|
|
92
|
-
// Check if element is a heading
|
|
93
|
-
const isHeading = () => /^h[1-6]$/.test(elementType());
|
|
94
|
-
|
|
95
|
-
// Use createLink for base link behavior
|
|
96
|
-
// Current items are treated as disabled (can't navigate to current page)
|
|
97
|
-
const { linkProps, isPressed } = createLink({
|
|
98
|
-
get isDisabled() {
|
|
99
|
-
return isDisabled() || isCurrent();
|
|
100
|
-
},
|
|
101
|
-
get elementType() {
|
|
102
|
-
return elementType();
|
|
103
|
-
},
|
|
104
|
-
get href() {
|
|
105
|
-
return getProps().href;
|
|
106
|
-
},
|
|
107
|
-
get target() {
|
|
108
|
-
return getProps().target;
|
|
109
|
-
},
|
|
110
|
-
get rel() {
|
|
111
|
-
return getProps().rel;
|
|
112
|
-
},
|
|
113
|
-
get onPress() {
|
|
114
|
-
return getProps().onPress;
|
|
115
|
-
},
|
|
116
|
-
get onPressStart() {
|
|
117
|
-
return getProps().onPressStart;
|
|
118
|
-
},
|
|
119
|
-
get onPressEnd() {
|
|
120
|
-
return getProps().onPressEnd;
|
|
121
|
-
},
|
|
122
|
-
get onClick() {
|
|
123
|
-
return getProps().onClick;
|
|
124
|
-
},
|
|
125
|
-
get onFocus() {
|
|
126
|
-
return getProps().onFocus;
|
|
127
|
-
},
|
|
128
|
-
get onBlur() {
|
|
129
|
-
return getProps().onBlur;
|
|
130
|
-
},
|
|
131
|
-
get onFocusChange() {
|
|
132
|
-
return getProps().onFocusChange;
|
|
133
|
-
},
|
|
134
|
-
get onKeyDown() {
|
|
135
|
-
return getProps().onKeyDown;
|
|
136
|
-
},
|
|
137
|
-
get onKeyUp() {
|
|
138
|
-
return getProps().onKeyUp;
|
|
139
|
-
},
|
|
140
|
-
get autoFocus() {
|
|
141
|
-
return getProps().autoFocus;
|
|
142
|
-
},
|
|
143
|
-
get 'aria-label'() {
|
|
144
|
-
return getProps()['aria-label'];
|
|
145
|
-
},
|
|
146
|
-
get 'aria-labelledby'() {
|
|
147
|
-
return getProps()['aria-labelledby'];
|
|
148
|
-
},
|
|
149
|
-
get 'aria-describedby'() {
|
|
150
|
-
return getProps()['aria-describedby'];
|
|
151
|
-
},
|
|
152
|
-
});
|
|
153
|
-
|
|
154
|
-
const getItemProps = (): Record<string, unknown> => {
|
|
155
|
-
const p = getProps();
|
|
156
|
-
const current = isCurrent();
|
|
157
|
-
|
|
158
|
-
// Start with link props (unless it's a heading)
|
|
159
|
-
let baseProps: Record<string, unknown> = isHeading() ? {} : linkProps;
|
|
160
|
-
|
|
161
|
-
// Add aria-current for current page
|
|
162
|
-
if (current) {
|
|
163
|
-
const ariaCurrent = p['aria-current'] ?? 'page';
|
|
164
|
-
baseProps = mergeProps(baseProps, {
|
|
165
|
-
'aria-current': ariaCurrent,
|
|
166
|
-
});
|
|
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
|
-
}
|
|
176
|
-
|
|
177
|
-
// Add aria-disabled for disabled items
|
|
178
|
-
if (isDisabled()) {
|
|
179
|
-
baseProps = mergeProps(baseProps, {
|
|
180
|
-
'aria-disabled': true,
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
return baseProps;
|
|
185
|
-
};
|
|
186
|
-
|
|
187
|
-
return {
|
|
188
|
-
get itemProps() {
|
|
189
|
-
return getItemProps();
|
|
190
|
-
},
|
|
191
|
-
get linkProps() {
|
|
192
|
-
return linkProps;
|
|
193
|
-
},
|
|
194
|
-
isPressed,
|
|
195
|
-
};
|
|
196
|
-
}
|
package/src/breadcrumbs/index.ts
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { Accessor } from 'solid-js';
|
|
2
|
-
import { createPress } from '../interactions';
|
|
3
|
-
import { createFocusable } from '../interactions';
|
|
4
|
-
import { mergeProps, filterDOMProps } from '../utils';
|
|
5
|
-
import type { AriaButtonProps, ButtonAria } from './types';
|
|
6
|
-
|
|
7
|
-
function isDisabledValue(isDisabled: Accessor<boolean> | boolean | undefined): boolean {
|
|
8
|
-
if (typeof isDisabled === 'function') {
|
|
9
|
-
return isDisabled();
|
|
10
|
-
}
|
|
11
|
-
return isDisabled ?? false;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Provides the behavior and accessibility implementation for a button component.
|
|
16
|
-
* Handles press interactions across mouse, touch, keyboard and screen readers.
|
|
17
|
-
*
|
|
18
|
-
* Based on react-aria's useButton but adapted for SolidJS.
|
|
19
|
-
*
|
|
20
|
-
* @example
|
|
21
|
-
* ```tsx
|
|
22
|
-
* import { createButton } from 'solidaria';
|
|
23
|
-
*
|
|
24
|
-
* function Button(props) {
|
|
25
|
-
* let ref;
|
|
26
|
-
* const { buttonProps, isPressed } = createButton(props);
|
|
27
|
-
*
|
|
28
|
-
* return (
|
|
29
|
-
* <button
|
|
30
|
-
* {...buttonProps}
|
|
31
|
-
* ref={ref}
|
|
32
|
-
* class={isPressed() ? 'pressed' : ''}
|
|
33
|
-
* >
|
|
34
|
-
* {props.children}
|
|
35
|
-
* </button>
|
|
36
|
-
* );
|
|
37
|
-
* }
|
|
38
|
-
* ```
|
|
39
|
-
*/
|
|
40
|
-
export function createButton(props: AriaButtonProps = {}): ButtonAria {
|
|
41
|
-
const elementType = props.elementType ?? 'button';
|
|
42
|
-
|
|
43
|
-
const { pressProps, isPressed } = createPress({
|
|
44
|
-
isDisabled: props.isDisabled,
|
|
45
|
-
onPress: props.onPress,
|
|
46
|
-
onPressStart: props.onPressStart,
|
|
47
|
-
onPressEnd: props.onPressEnd,
|
|
48
|
-
onPressUp: props.onPressUp,
|
|
49
|
-
onPressChange: props.onPressChange,
|
|
50
|
-
onClick: props.onClick,
|
|
51
|
-
preventFocusOnPress: props.preventFocusOnPress,
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
const { focusableProps } = createFocusable({
|
|
55
|
-
isDisabled: props.isDisabled,
|
|
56
|
-
autoFocus: props.autoFocus,
|
|
57
|
-
excludeFromTabOrder: props.excludeFromTabOrder,
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
const isNativeButton = elementType === 'button' || elementType === 'input';
|
|
61
|
-
const isLink = elementType === 'a';
|
|
62
|
-
const disabled = isDisabledValue(props.isDisabled);
|
|
63
|
-
|
|
64
|
-
// Handle allowFocusWhenDisabled - set tabIndex to -1 when disabled but focusable
|
|
65
|
-
// This allows tooltips to be shown on disabled buttons
|
|
66
|
-
if (props.allowFocusWhenDisabled && disabled) {
|
|
67
|
-
(focusableProps as Record<string, unknown>).tabIndex = -1;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// Build base props based on element type
|
|
71
|
-
let additionalProps: Record<string, unknown> = {};
|
|
72
|
-
|
|
73
|
-
if (isNativeButton) {
|
|
74
|
-
additionalProps = {
|
|
75
|
-
type: props.type ?? 'button',
|
|
76
|
-
disabled: disabled,
|
|
77
|
-
// Form-related attributes
|
|
78
|
-
...(props.form && { form: props.form }),
|
|
79
|
-
...(props.formAction && { formAction: props.formAction }),
|
|
80
|
-
...(props.formEncType && { formEncType: props.formEncType }),
|
|
81
|
-
...(props.formMethod && { formMethod: props.formMethod }),
|
|
82
|
-
...(props.formNoValidate && { formNoValidate: props.formNoValidate }),
|
|
83
|
-
...(props.formTarget && { formTarget: props.formTarget }),
|
|
84
|
-
...(props.name && { name: props.name }),
|
|
85
|
-
...(props.value && { value: props.value }),
|
|
86
|
-
};
|
|
87
|
-
} else {
|
|
88
|
-
// Non-native buttons need role and tabIndex
|
|
89
|
-
additionalProps = {
|
|
90
|
-
role: 'button',
|
|
91
|
-
tabIndex: disabled ? undefined : 0,
|
|
92
|
-
'aria-disabled': disabled ? true : undefined,
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
if (isLink) {
|
|
96
|
-
additionalProps.href = props.href;
|
|
97
|
-
additionalProps.target = props.target;
|
|
98
|
-
additionalProps.rel = props.rel;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// ARIA attributes
|
|
103
|
-
const ariaProps: Record<string, unknown> = {};
|
|
104
|
-
|
|
105
|
-
if (props['aria-pressed'] !== undefined) {
|
|
106
|
-
ariaProps['aria-pressed'] = props['aria-pressed'];
|
|
107
|
-
}
|
|
108
|
-
if (props['aria-haspopup'] !== undefined) {
|
|
109
|
-
ariaProps['aria-haspopup'] = props['aria-haspopup'];
|
|
110
|
-
}
|
|
111
|
-
if (props['aria-expanded'] !== undefined) {
|
|
112
|
-
ariaProps['aria-expanded'] = props['aria-expanded'];
|
|
113
|
-
}
|
|
114
|
-
if (props['aria-label']) {
|
|
115
|
-
ariaProps['aria-label'] = props['aria-label'];
|
|
116
|
-
}
|
|
117
|
-
if (props['aria-labelledby']) {
|
|
118
|
-
ariaProps['aria-labelledby'] = props['aria-labelledby'];
|
|
119
|
-
}
|
|
120
|
-
if (props['aria-describedby']) {
|
|
121
|
-
ariaProps['aria-describedby'] = props['aria-describedby'];
|
|
122
|
-
}
|
|
123
|
-
if (props['aria-controls']) {
|
|
124
|
-
ariaProps['aria-controls'] = props['aria-controls'];
|
|
125
|
-
}
|
|
126
|
-
if (props['aria-current'] !== undefined) {
|
|
127
|
-
ariaProps['aria-current'] = props['aria-current'];
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
const buttonProps = mergeProps(
|
|
131
|
-
filterDOMProps(props as Record<string, unknown>, { labelable: true }),
|
|
132
|
-
additionalProps,
|
|
133
|
-
ariaProps,
|
|
134
|
-
focusableProps as Record<string, unknown>,
|
|
135
|
-
pressProps as Record<string, unknown>
|
|
136
|
-
);
|
|
137
|
-
|
|
138
|
-
return {
|
|
139
|
-
buttonProps,
|
|
140
|
-
isPressed,
|
|
141
|
-
};
|
|
142
|
-
}
|