@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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Press interactions
|
|
2
|
-
export { createPress, type CreatePressProps, type PressResult } from
|
|
3
|
-
export { PressEvent, type IPressEvent, type PressEventType } from
|
|
2
|
+
export { createPress, type CreatePressProps, type PressResult } from "./createPress";
|
|
3
|
+
export { PressEvent, type IPressEvent, type PressEventType } from "./PressEvent";
|
|
4
4
|
|
|
5
5
|
// Long press interactions
|
|
6
6
|
export {
|
|
@@ -8,18 +8,30 @@ export {
|
|
|
8
8
|
type LongPressProps,
|
|
9
9
|
type LongPressResult,
|
|
10
10
|
type LongPressEvent,
|
|
11
|
-
} from
|
|
11
|
+
} from "./createLongPress";
|
|
12
12
|
|
|
13
13
|
// Move interactions
|
|
14
|
-
export {
|
|
14
|
+
export {
|
|
15
|
+
createMove,
|
|
16
|
+
type MoveEvents,
|
|
17
|
+
type MoveResult,
|
|
18
|
+
type MoveStartEvent,
|
|
19
|
+
type MoveMoveEvent,
|
|
20
|
+
type MoveEndEvent,
|
|
21
|
+
} from "./createMove";
|
|
15
22
|
|
|
16
23
|
// Focus interactions
|
|
17
|
-
export {
|
|
24
|
+
export {
|
|
25
|
+
createFocus,
|
|
26
|
+
type CreateFocusProps,
|
|
27
|
+
type FocusResult,
|
|
28
|
+
type FocusEvents,
|
|
29
|
+
} from "./createFocus";
|
|
18
30
|
export {
|
|
19
31
|
createFocusWithin,
|
|
20
32
|
type FocusWithinProps,
|
|
21
33
|
type FocusWithinResult,
|
|
22
|
-
} from
|
|
34
|
+
} from "./createFocusWithin";
|
|
23
35
|
export {
|
|
24
36
|
createFocusable,
|
|
25
37
|
FocusableContext,
|
|
@@ -29,13 +41,9 @@ export {
|
|
|
29
41
|
type FocusableProviderProps,
|
|
30
42
|
type FocusableProps,
|
|
31
43
|
type FocusableDOMProps,
|
|
32
|
-
} from
|
|
33
|
-
export { FocusableProvider } from
|
|
34
|
-
export {
|
|
35
|
-
createFocusRing,
|
|
36
|
-
type FocusRingProps,
|
|
37
|
-
type FocusRingResult,
|
|
38
|
-
} from './createFocusRing';
|
|
44
|
+
} from "./createFocusable";
|
|
45
|
+
export { FocusableProvider } from "./FocusableProvider";
|
|
46
|
+
export { createFocusRing, type FocusRingProps, type FocusRingResult } from "./createFocusRing";
|
|
39
47
|
|
|
40
48
|
// Interaction modality
|
|
41
49
|
export {
|
|
@@ -56,7 +64,7 @@ export {
|
|
|
56
64
|
type FocusVisibleResult,
|
|
57
65
|
type FocusVisibleHandler,
|
|
58
66
|
type InteractionModalityResult,
|
|
59
|
-
} from
|
|
67
|
+
} from "./createInteractionModality";
|
|
60
68
|
|
|
61
69
|
// Hover interactions
|
|
62
70
|
export {
|
|
@@ -66,7 +74,7 @@ export {
|
|
|
66
74
|
type HoverResult,
|
|
67
75
|
type HoverEvent,
|
|
68
76
|
type HoverEvents,
|
|
69
|
-
} from
|
|
77
|
+
} from "./createHover";
|
|
70
78
|
|
|
71
79
|
// Keyboard interactions
|
|
72
80
|
export {
|
|
@@ -75,4 +83,4 @@ export {
|
|
|
75
83
|
type KeyboardResult,
|
|
76
84
|
type KeyboardEvents,
|
|
77
85
|
type KeyboardEvent,
|
|
78
|
-
} from
|
|
86
|
+
} from "./createKeyboard";
|
package/src/label/createField.ts
CHANGED
|
@@ -8,15 +8,17 @@
|
|
|
8
8
|
* This is a 1:1 port of @react-aria/label's useField hook.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { JSX } from
|
|
12
|
-
import { createId } from
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
11
|
+
import { JSX } from "solid-js";
|
|
12
|
+
import { createId } from "../ssr";
|
|
13
|
+
import {
|
|
14
|
+
createLabel,
|
|
15
|
+
type LabelAriaProps,
|
|
16
|
+
type LabelAria,
|
|
17
|
+
type AriaLabelingProps,
|
|
18
|
+
type DOMProps,
|
|
19
|
+
} from "./createLabel";
|
|
20
|
+
import { mergeProps } from "../utils/mergeProps";
|
|
21
|
+
import { type MaybeAccessor, access } from "../utils/reactivity";
|
|
20
22
|
|
|
21
23
|
export interface HelpTextProps {
|
|
22
24
|
/** A description for the field. Provides a hint such as specific requirements for what to choose. */
|
|
@@ -43,7 +45,8 @@ export interface Validation<T> {
|
|
|
43
45
|
validate?: (value: T) => string | string[] | true | null | undefined;
|
|
44
46
|
}
|
|
45
47
|
|
|
46
|
-
export interface AriaFieldProps
|
|
48
|
+
export interface AriaFieldProps
|
|
49
|
+
extends LabelAriaProps, HelpTextProps, Omit<Validation<any>, "isRequired"> {}
|
|
47
50
|
|
|
48
51
|
export interface FieldAria extends LabelAria {
|
|
49
52
|
/** Props for the description element, if any. */
|
|
@@ -52,10 +55,6 @@ export interface FieldAria extends LabelAria {
|
|
|
52
55
|
errorMessageProps: JSX.HTMLAttributes<HTMLElement>;
|
|
53
56
|
}
|
|
54
57
|
|
|
55
|
-
// ============================================
|
|
56
|
-
// IMPLEMENTATION
|
|
57
|
-
// ============================================
|
|
58
|
-
|
|
59
58
|
/**
|
|
60
59
|
* Provides the accessibility implementation for input fields.
|
|
61
60
|
* Fields accept user input, gain context from their label, and may display
|
|
@@ -72,7 +71,7 @@ export function createField(props: MaybeAccessor<AriaFieldProps>): FieldAria {
|
|
|
72
71
|
const descriptionId = createId();
|
|
73
72
|
const errorMessageId = createId();
|
|
74
73
|
|
|
75
|
-
const getDescriptionProps = (): FieldAria[
|
|
74
|
+
const getDescriptionProps = (): FieldAria["descriptionProps"] => {
|
|
76
75
|
const { description, errorMessage, isInvalid } = getProps();
|
|
77
76
|
|
|
78
77
|
// Only include ID if description exists or there's an error message that might be shown
|
|
@@ -85,7 +84,7 @@ export function createField(props: MaybeAccessor<AriaFieldProps>): FieldAria {
|
|
|
85
84
|
};
|
|
86
85
|
};
|
|
87
86
|
|
|
88
|
-
const getErrorMessageProps = (): FieldAria[
|
|
87
|
+
const getErrorMessageProps = (): FieldAria["errorMessageProps"] => {
|
|
89
88
|
const { errorMessage, isInvalid } = getProps();
|
|
90
89
|
|
|
91
90
|
// Only include ID if there's an error message and the field is invalid
|
|
@@ -116,15 +115,15 @@ export function createField(props: MaybeAccessor<AriaFieldProps>): FieldAria {
|
|
|
116
115
|
}
|
|
117
116
|
|
|
118
117
|
// Add any existing aria-describedby from props
|
|
119
|
-
const existingDescribedBy = getProps()[
|
|
118
|
+
const existingDescribedBy = getProps()["aria-describedby"];
|
|
120
119
|
if (existingDescribedBy) {
|
|
121
120
|
describedByIds.push(existingDescribedBy);
|
|
122
121
|
}
|
|
123
122
|
|
|
124
|
-
const ariaDescribedBy = describedByIds.length > 0 ? describedByIds.join(
|
|
123
|
+
const ariaDescribedBy = describedByIds.length > 0 ? describedByIds.join(" ") : undefined;
|
|
125
124
|
|
|
126
125
|
return mergeProps(baseLabelFieldProps, {
|
|
127
|
-
|
|
126
|
+
"aria-describedby": ariaDescribedBy,
|
|
128
127
|
}) as AriaLabelingProps & DOMProps;
|
|
129
128
|
};
|
|
130
129
|
|
package/src/label/createLabel.ts
CHANGED
|
@@ -7,25 +7,21 @@
|
|
|
7
7
|
* This is a 1:1 port of @react-aria/label's useLabel hook.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import { JSX } from
|
|
11
|
-
import { createId } from
|
|
12
|
-
import { createLabels } from
|
|
13
|
-
import { type MaybeAccessor, access } from
|
|
14
|
-
import { isDevEnv } from
|
|
15
|
-
|
|
16
|
-
// ============================================
|
|
17
|
-
// TYPES
|
|
18
|
-
// ============================================
|
|
10
|
+
import { JSX } from "solid-js";
|
|
11
|
+
import { createId } from "../ssr";
|
|
12
|
+
import { createLabels } from "./createLabels";
|
|
13
|
+
import { type MaybeAccessor, access } from "../utils/reactivity";
|
|
14
|
+
import { isDevEnv } from "../utils/env";
|
|
19
15
|
|
|
20
16
|
export interface AriaLabelingProps {
|
|
21
17
|
/** Defines a string value that labels the current element. */
|
|
22
|
-
|
|
18
|
+
"aria-label"?: string;
|
|
23
19
|
/** Identifies the element (or elements) that labels the current element. */
|
|
24
|
-
|
|
20
|
+
"aria-labelledby"?: string;
|
|
25
21
|
/** Identifies the element (or elements) that describes the object. */
|
|
26
|
-
|
|
22
|
+
"aria-describedby"?: string;
|
|
27
23
|
/** Identifies the element (or elements) that provide a detailed, extended description for the object. */
|
|
28
|
-
|
|
24
|
+
"aria-details"?: string;
|
|
29
25
|
}
|
|
30
26
|
|
|
31
27
|
export interface LabelableProps {
|
|
@@ -43,7 +39,7 @@ export interface LabelAriaProps extends LabelableProps, DOMProps, AriaLabelingPr
|
|
|
43
39
|
* The HTML element used to render the label, e.g. 'label', or 'span'.
|
|
44
40
|
* @default 'label'
|
|
45
41
|
*/
|
|
46
|
-
labelElementType?:
|
|
42
|
+
labelElementType?: "label" | "span" | "div";
|
|
47
43
|
}
|
|
48
44
|
|
|
49
45
|
export interface LabelAria {
|
|
@@ -53,10 +49,6 @@ export interface LabelAria {
|
|
|
53
49
|
fieldProps: AriaLabelingProps & DOMProps;
|
|
54
50
|
}
|
|
55
51
|
|
|
56
|
-
// ============================================
|
|
57
|
-
// IMPLEMENTATION
|
|
58
|
-
// ============================================
|
|
59
|
-
|
|
60
52
|
/**
|
|
61
53
|
* Provides the accessibility implementation for labels and their associated elements.
|
|
62
54
|
* Labels provide context for user inputs.
|
|
@@ -69,8 +61,8 @@ export function createLabel(props: MaybeAccessor<LabelAriaProps>): LabelAria {
|
|
|
69
61
|
const id = createId(getProps().id);
|
|
70
62
|
const labelId = createId();
|
|
71
63
|
|
|
72
|
-
const getLabelProps = (): LabelAria[
|
|
73
|
-
const { label, labelElementType =
|
|
64
|
+
const getLabelProps = (): LabelAria["labelProps"] => {
|
|
65
|
+
const { label, labelElementType = "label" } = getProps();
|
|
74
66
|
|
|
75
67
|
if (!label) {
|
|
76
68
|
return {};
|
|
@@ -78,16 +70,12 @@ export function createLabel(props: MaybeAccessor<LabelAriaProps>): LabelAria {
|
|
|
78
70
|
|
|
79
71
|
return {
|
|
80
72
|
id: labelId,
|
|
81
|
-
...(labelElementType ===
|
|
73
|
+
...(labelElementType === "label" ? { for: id } : {}),
|
|
82
74
|
};
|
|
83
75
|
};
|
|
84
76
|
|
|
85
|
-
const getFieldProps = (): LabelAria[
|
|
86
|
-
const {
|
|
87
|
-
label,
|
|
88
|
-
'aria-labelledby': ariaLabelledby,
|
|
89
|
-
'aria-label': ariaLabel,
|
|
90
|
-
} = getProps();
|
|
77
|
+
const getFieldProps = (): LabelAria["fieldProps"] => {
|
|
78
|
+
const { label, "aria-labelledby": ariaLabelledby, "aria-label": ariaLabel } = getProps();
|
|
91
79
|
|
|
92
80
|
let labelledBy = ariaLabelledby;
|
|
93
81
|
|
|
@@ -95,14 +83,14 @@ export function createLabel(props: MaybeAccessor<LabelAriaProps>): LabelAria {
|
|
|
95
83
|
labelledBy = ariaLabelledby ? `${labelId} ${ariaLabelledby}` : labelId;
|
|
96
84
|
} else if (!ariaLabelledby && !ariaLabel && isDevEnv()) {
|
|
97
85
|
console.warn(
|
|
98
|
-
|
|
86
|
+
"If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility",
|
|
99
87
|
);
|
|
100
88
|
}
|
|
101
89
|
|
|
102
90
|
return createLabels({
|
|
103
91
|
id,
|
|
104
|
-
|
|
105
|
-
|
|
92
|
+
"aria-label": ariaLabel,
|
|
93
|
+
"aria-labelledby": labelledBy,
|
|
106
94
|
});
|
|
107
95
|
};
|
|
108
96
|
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* This is a 1:1 port of @react-aria/utils's useLabels hook.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { createId } from
|
|
10
|
-
import type { AriaLabelingProps, DOMProps } from
|
|
9
|
+
import { createId } from "../ssr";
|
|
10
|
+
import type { AriaLabelingProps, DOMProps } from "./createLabel";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Merges aria-label and aria-labelledby into aria-labelledby when both exist.
|
|
@@ -17,13 +17,9 @@ import type { AriaLabelingProps, DOMProps } from './createLabel';
|
|
|
17
17
|
*/
|
|
18
18
|
export function createLabels(
|
|
19
19
|
props: DOMProps & AriaLabelingProps,
|
|
20
|
-
defaultLabel?: string
|
|
20
|
+
defaultLabel?: string,
|
|
21
21
|
): DOMProps & AriaLabelingProps {
|
|
22
|
-
let {
|
|
23
|
-
id,
|
|
24
|
-
'aria-label': label,
|
|
25
|
-
'aria-labelledby': labelledBy,
|
|
26
|
-
} = props;
|
|
22
|
+
let { id, "aria-label": label, "aria-labelledby": labelledBy } = props;
|
|
27
23
|
|
|
28
24
|
// Generate an ID if not provided
|
|
29
25
|
id = createId(id);
|
|
@@ -32,9 +28,9 @@ export function createLabels(
|
|
|
32
28
|
// combine them by pointing to the element itself.
|
|
33
29
|
if (labelledBy && label) {
|
|
34
30
|
const ids = new Set([id, ...labelledBy.trim().split(/\s+/)]);
|
|
35
|
-
labelledBy = [...ids].join(
|
|
31
|
+
labelledBy = [...ids].join(" ");
|
|
36
32
|
} else if (labelledBy) {
|
|
37
|
-
labelledBy = labelledBy.trim().split(/\s+/).join(
|
|
33
|
+
labelledBy = labelledBy.trim().split(/\s+/).join(" ");
|
|
38
34
|
}
|
|
39
35
|
|
|
40
36
|
// If no labels are provided, use the default
|
|
@@ -44,7 +40,7 @@ export function createLabels(
|
|
|
44
40
|
|
|
45
41
|
return {
|
|
46
42
|
id,
|
|
47
|
-
|
|
48
|
-
|
|
43
|
+
"aria-label": label,
|
|
44
|
+
"aria-labelledby": labelledBy,
|
|
49
45
|
};
|
|
50
46
|
}
|
package/src/label/index.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export { createLabel } from
|
|
1
|
+
export { createLabel } from "./createLabel";
|
|
2
2
|
export type {
|
|
3
3
|
LabelAriaProps,
|
|
4
4
|
LabelAria,
|
|
5
5
|
AriaLabelingProps,
|
|
6
6
|
LabelableProps,
|
|
7
7
|
DOMProps,
|
|
8
|
-
} from
|
|
8
|
+
} from "./createLabel";
|
|
9
9
|
|
|
10
|
-
export { createField } from
|
|
10
|
+
export { createField } from "./createField";
|
|
11
11
|
export type {
|
|
12
12
|
AriaFieldProps,
|
|
13
13
|
FieldAria,
|
|
14
14
|
HelpTextProps,
|
|
15
15
|
ValidationResult,
|
|
16
16
|
Validation,
|
|
17
|
-
} from
|
|
17
|
+
} from "./createField";
|
|
18
18
|
|
|
19
|
-
export { createLabels } from
|
|
19
|
+
export { createLabels } from "./createLabels";
|
|
@@ -8,25 +8,21 @@
|
|
|
8
8
|
* The F6 key (or Shift+F6) cycles through all registered landmarks.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type { JSX, Accessor } from
|
|
12
|
-
import { createEffect, onCleanup } from
|
|
13
|
-
import { access, type MaybeAccessor } from
|
|
14
|
-
import { filterDOMProps } from
|
|
15
|
-
|
|
16
|
-
// ============================================
|
|
17
|
-
// TYPES
|
|
18
|
-
// ============================================
|
|
11
|
+
import type { JSX, Accessor } from "solid-js";
|
|
12
|
+
import { createEffect, onCleanup } from "solid-js";
|
|
13
|
+
import { access, type MaybeAccessor } from "../utils";
|
|
14
|
+
import { filterDOMProps } from "../utils";
|
|
19
15
|
|
|
20
16
|
/** ARIA landmark roles */
|
|
21
17
|
export type AriaLandmarkRole =
|
|
22
|
-
|
|
|
23
|
-
|
|
|
24
|
-
|
|
|
25
|
-
|
|
|
26
|
-
|
|
|
27
|
-
|
|
|
28
|
-
|
|
|
29
|
-
|
|
|
18
|
+
| "main"
|
|
19
|
+
| "region"
|
|
20
|
+
| "search"
|
|
21
|
+
| "navigation"
|
|
22
|
+
| "form"
|
|
23
|
+
| "banner"
|
|
24
|
+
| "contentinfo"
|
|
25
|
+
| "complementary";
|
|
30
26
|
|
|
31
27
|
export interface AriaLandmarkProps {
|
|
32
28
|
/** The ARIA landmark role. */
|
|
@@ -35,9 +31,9 @@ export interface AriaLandmarkProps {
|
|
|
35
31
|
* A human-readable label for the landmark.
|
|
36
32
|
* Required when multiple landmarks with the same role exist on a page.
|
|
37
33
|
*/
|
|
38
|
-
|
|
34
|
+
"aria-label"?: string;
|
|
39
35
|
/** Identifies the element(s) that labels the landmark. */
|
|
40
|
-
|
|
36
|
+
"aria-labelledby"?: string;
|
|
41
37
|
/** The element's unique identifier. */
|
|
42
38
|
id?: string;
|
|
43
39
|
/**
|
|
@@ -63,10 +59,6 @@ export interface LandmarkController {
|
|
|
63
59
|
navigate: (role: AriaLandmarkRole) => void;
|
|
64
60
|
}
|
|
65
61
|
|
|
66
|
-
// ============================================
|
|
67
|
-
// INTERNAL: Landmark Entry
|
|
68
|
-
// ============================================
|
|
69
|
-
|
|
70
62
|
interface LandmarkEntry {
|
|
71
63
|
ref: HTMLElement;
|
|
72
64
|
role: AriaLandmarkRole;
|
|
@@ -75,10 +67,6 @@ interface LandmarkEntry {
|
|
|
75
67
|
lastFocused?: HTMLElement;
|
|
76
68
|
}
|
|
77
69
|
|
|
78
|
-
// ============================================
|
|
79
|
-
// LANDMARK MANAGER (Singleton)
|
|
80
|
-
// ============================================
|
|
81
|
-
|
|
82
70
|
/**
|
|
83
71
|
* Manages all registered landmarks and handles F6 keyboard navigation.
|
|
84
72
|
*/
|
|
@@ -88,7 +76,7 @@ class LandmarkManager {
|
|
|
88
76
|
private listening = false;
|
|
89
77
|
|
|
90
78
|
constructor() {
|
|
91
|
-
if (typeof window !==
|
|
79
|
+
if (typeof window !== "undefined") {
|
|
92
80
|
this.startListening();
|
|
93
81
|
}
|
|
94
82
|
}
|
|
@@ -97,12 +85,12 @@ class LandmarkManager {
|
|
|
97
85
|
if (this.listening) return;
|
|
98
86
|
this.listening = true;
|
|
99
87
|
|
|
100
|
-
window.addEventListener(
|
|
88
|
+
window.addEventListener("keydown", this.handleKeyDown.bind(this), true);
|
|
101
89
|
}
|
|
102
90
|
|
|
103
91
|
private handleKeyDown(event: KeyboardEvent) {
|
|
104
92
|
// F6 to navigate landmarks
|
|
105
|
-
if (event.key ===
|
|
93
|
+
if (event.key === "F6") {
|
|
106
94
|
event.preventDefault();
|
|
107
95
|
if (event.shiftKey) {
|
|
108
96
|
this.focusPrevious();
|
|
@@ -168,7 +156,7 @@ class LandmarkManager {
|
|
|
168
156
|
const uniqueLabels = new Set(labels.filter(Boolean));
|
|
169
157
|
if (uniqueLabels.size < group.length) {
|
|
170
158
|
console.warn(
|
|
171
|
-
`Multiple landmarks with role "${role}" exist. Each should have a unique aria-label or aria-labelledby
|
|
159
|
+
`Multiple landmarks with role "${role}" exist. Each should have a unique aria-label or aria-labelledby.`,
|
|
172
160
|
);
|
|
173
161
|
}
|
|
174
162
|
}
|
|
@@ -195,13 +183,12 @@ class LandmarkManager {
|
|
|
195
183
|
this.currentIndex = this.findCurrentLandmarkIndex(activeElement);
|
|
196
184
|
|
|
197
185
|
// Move to previous
|
|
198
|
-
this.currentIndex =
|
|
199
|
-
(this.currentIndex - 1 + this.landmarks.length) % this.landmarks.length;
|
|
186
|
+
this.currentIndex = (this.currentIndex - 1 + this.landmarks.length) % this.landmarks.length;
|
|
200
187
|
this.focusLandmark(this.landmarks[this.currentIndex]);
|
|
201
188
|
}
|
|
202
189
|
|
|
203
190
|
focusMain(): void {
|
|
204
|
-
const main = this.landmarks.find((l) => l.role ===
|
|
191
|
+
const main = this.landmarks.find((l) => l.role === "main");
|
|
205
192
|
if (main) {
|
|
206
193
|
this.focusLandmark(main);
|
|
207
194
|
}
|
|
@@ -252,21 +239,21 @@ class LandmarkManager {
|
|
|
252
239
|
}
|
|
253
240
|
|
|
254
241
|
// Fallback: make the landmark itself focusable and focus it
|
|
255
|
-
if (!landmark.ref.hasAttribute(
|
|
256
|
-
landmark.ref.setAttribute(
|
|
242
|
+
if (!landmark.ref.hasAttribute("tabindex")) {
|
|
243
|
+
landmark.ref.setAttribute("tabindex", "-1");
|
|
257
244
|
}
|
|
258
245
|
landmark.ref.focus();
|
|
259
246
|
}
|
|
260
247
|
|
|
261
248
|
private findFirstFocusable(container: HTMLElement): HTMLElement | null {
|
|
262
249
|
const focusableSelectors = [
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
250
|
+
"a[href]",
|
|
251
|
+
"button:not([disabled])",
|
|
252
|
+
"input:not([disabled])",
|
|
253
|
+
"select:not([disabled])",
|
|
254
|
+
"textarea:not([disabled])",
|
|
268
255
|
'[tabindex]:not([tabindex="-1"])',
|
|
269
|
-
].join(
|
|
256
|
+
].join(", ");
|
|
270
257
|
|
|
271
258
|
return container.querySelector<HTMLElement>(focusableSelectors);
|
|
272
259
|
}
|
|
@@ -291,10 +278,6 @@ function getLandmarkManager(): LandmarkManager {
|
|
|
291
278
|
return landmarkManager;
|
|
292
279
|
}
|
|
293
280
|
|
|
294
|
-
// ============================================
|
|
295
|
-
// CREATE LANDMARK
|
|
296
|
-
// ============================================
|
|
297
|
-
|
|
298
281
|
/**
|
|
299
282
|
* Provides landmark navigation in an application.
|
|
300
283
|
* Call this with a role and label to register a landmark navigable with F6.
|
|
@@ -318,7 +301,7 @@ function getLandmarkManager(): LandmarkManager {
|
|
|
318
301
|
*/
|
|
319
302
|
export function createLandmark<T extends HTMLElement = HTMLElement>(
|
|
320
303
|
props: MaybeAccessor<AriaLandmarkProps>,
|
|
321
|
-
ref: Accessor<T | undefined
|
|
304
|
+
ref: Accessor<T | undefined>,
|
|
322
305
|
): LandmarkAria<T> {
|
|
323
306
|
// Register with the landmark manager
|
|
324
307
|
createEffect(() => {
|
|
@@ -329,7 +312,7 @@ export function createLandmark<T extends HTMLElement = HTMLElement>(
|
|
|
329
312
|
const entry: LandmarkEntry = {
|
|
330
313
|
ref: element,
|
|
331
314
|
role: p.role,
|
|
332
|
-
label: p[
|
|
315
|
+
label: p["aria-label"],
|
|
333
316
|
focus: p.focus,
|
|
334
317
|
};
|
|
335
318
|
|
|
@@ -358,10 +341,6 @@ export function createLandmark<T extends HTMLElement = HTMLElement>(
|
|
|
358
341
|
};
|
|
359
342
|
}
|
|
360
343
|
|
|
361
|
-
// ============================================
|
|
362
|
-
// LANDMARK CONTROLLER
|
|
363
|
-
// ============================================
|
|
364
|
-
|
|
365
344
|
/**
|
|
366
345
|
* Returns a controller for programmatic landmark navigation.
|
|
367
346
|
*
|
package/src/landmark/index.ts
CHANGED