@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
package/src/menu/createMenu.ts
CHANGED
|
@@ -4,16 +4,16 @@
|
|
|
4
4
|
* Based on @react-aria/menu useMenu.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { createEffect, onCleanup, type JSX, type Accessor } from
|
|
8
|
-
import { createFocusWithin } from
|
|
9
|
-
import { createLabel } from
|
|
10
|
-
import { createTypeSelect } from
|
|
11
|
-
import { filterDOMProps } from
|
|
12
|
-
import { mergeProps } from
|
|
13
|
-
import { createId } from
|
|
14
|
-
import { access, type MaybeAccessor } from
|
|
15
|
-
import { isDevEnv } from
|
|
16
|
-
import type { MenuState, Key, Collection } from
|
|
7
|
+
import { createEffect, onCleanup, type JSX, type Accessor } from "solid-js";
|
|
8
|
+
import { createFocusWithin } from "../interactions/createFocusWithin";
|
|
9
|
+
import { createLabel } from "../label/createLabel";
|
|
10
|
+
import { createTypeSelect } from "../selection/createTypeSelect";
|
|
11
|
+
import { filterDOMProps } from "../utils/filterDOMProps";
|
|
12
|
+
import { mergeProps } from "../utils/mergeProps";
|
|
13
|
+
import { createId } from "../ssr";
|
|
14
|
+
import { access, type MaybeAccessor } from "../utils/reactivity";
|
|
15
|
+
import { isDevEnv } from "../utils/env";
|
|
16
|
+
import type { MenuState, Key, Collection } from "@proyecto-viviana/solid-stately";
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Default number of items to skip for page up/down when DOM measurement is not available.
|
|
@@ -26,17 +26,17 @@ const DEFAULT_PAGE_SIZE = 10;
|
|
|
26
26
|
function findNextNonDisabledKey<T>(
|
|
27
27
|
collection: Collection<T>,
|
|
28
28
|
currentKey: Key | null,
|
|
29
|
-
direction:
|
|
29
|
+
direction: "next" | "prev",
|
|
30
30
|
isDisabled: (key: Key) => boolean,
|
|
31
|
-
wrap: boolean
|
|
31
|
+
wrap: boolean,
|
|
32
32
|
): Key | null {
|
|
33
|
-
const getNextKey =
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
const getNextKey =
|
|
34
|
+
direction === "next"
|
|
35
|
+
? (key: Key) => collection.getKeyAfter(key)
|
|
36
|
+
: (key: Key) => collection.getKeyBefore(key);
|
|
36
37
|
|
|
37
|
-
const getFirstKey =
|
|
38
|
-
? () => collection.getFirstKey()
|
|
39
|
-
: () => collection.getLastKey();
|
|
38
|
+
const getFirstKey =
|
|
39
|
+
direction === "next" ? () => collection.getFirstKey() : () => collection.getLastKey();
|
|
40
40
|
|
|
41
41
|
let nextKey = currentKey != null ? getNextKey(currentKey) : getFirstKey();
|
|
42
42
|
|
|
@@ -65,11 +65,11 @@ export interface AriaMenuProps {
|
|
|
65
65
|
/** The label for the menu. */
|
|
66
66
|
label?: JSX.Element;
|
|
67
67
|
/** An accessible label for the menu when no visible label is provided. */
|
|
68
|
-
|
|
68
|
+
"aria-label"?: string;
|
|
69
69
|
/** The ID of an element that labels the menu. */
|
|
70
|
-
|
|
70
|
+
"aria-labelledby"?: string;
|
|
71
71
|
/** The ID of an element that describes the menu. */
|
|
72
|
-
|
|
72
|
+
"aria-describedby"?: string;
|
|
73
73
|
/** Handler called when focus moves into the menu. */
|
|
74
74
|
onFocus?: (e: FocusEvent) => void;
|
|
75
75
|
/** Handler called when focus moves out of the menu. */
|
|
@@ -83,7 +83,7 @@ export interface AriaMenuProps {
|
|
|
83
83
|
/** Whether focus should automatically wrap around. */
|
|
84
84
|
shouldFocusWrap?: boolean;
|
|
85
85
|
/** Whether to auto-focus the first item when the menu opens. */
|
|
86
|
-
autoFocus?: boolean |
|
|
86
|
+
autoFocus?: boolean | "first" | "last";
|
|
87
87
|
/** Whether type-to-select is disabled. @default false */
|
|
88
88
|
disallowTypeAhead?: boolean;
|
|
89
89
|
}
|
|
@@ -116,7 +116,7 @@ export function getMenuData(state: MenuState): MenuData | undefined {
|
|
|
116
116
|
export function createMenu<T>(
|
|
117
117
|
props: MaybeAccessor<AriaMenuProps>,
|
|
118
118
|
state: MenuState<T>,
|
|
119
|
-
ref?: Accessor<HTMLElement | null
|
|
119
|
+
ref?: Accessor<HTMLElement | null>,
|
|
120
120
|
): MenuAria {
|
|
121
121
|
const getProps = () => access(props);
|
|
122
122
|
const id = createId(getProps().id);
|
|
@@ -124,15 +124,16 @@ export function createMenu<T>(
|
|
|
124
124
|
// Development-time warning for missing accessibility labels
|
|
125
125
|
if (isDevEnv()) {
|
|
126
126
|
const p = getProps();
|
|
127
|
-
if (!p.label && !p[
|
|
127
|
+
if (!p.label && !p["aria-label"] && !p["aria-labelledby"]) {
|
|
128
128
|
console.warn(
|
|
129
|
-
|
|
129
|
+
"[solidaria] A Menu requires an aria-label or aria-labelledby attribute for accessibility.",
|
|
130
130
|
);
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
|
|
134
134
|
// Filter DOM props
|
|
135
|
-
const domProps = () =>
|
|
135
|
+
const domProps = () =>
|
|
136
|
+
filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true });
|
|
136
137
|
|
|
137
138
|
const updateSharedData = () => {
|
|
138
139
|
const p = getProps();
|
|
@@ -174,13 +175,13 @@ export function createMenu<T>(
|
|
|
174
175
|
get label() {
|
|
175
176
|
return getProps().label;
|
|
176
177
|
},
|
|
177
|
-
get
|
|
178
|
-
return getProps()[
|
|
178
|
+
get "aria-label"() {
|
|
179
|
+
return getProps()["aria-label"];
|
|
179
180
|
},
|
|
180
|
-
get
|
|
181
|
-
return getProps()[
|
|
181
|
+
get "aria-labelledby"() {
|
|
182
|
+
return getProps()["aria-labelledby"];
|
|
182
183
|
},
|
|
183
|
-
labelElementType:
|
|
184
|
+
labelElementType: "span",
|
|
184
185
|
});
|
|
185
186
|
|
|
186
187
|
// Type-to-select
|
|
@@ -206,25 +207,25 @@ export function createMenu<T>(
|
|
|
206
207
|
const isDisabled = (key: Key) => state.isDisabled(key);
|
|
207
208
|
|
|
208
209
|
switch (e.key) {
|
|
209
|
-
case
|
|
210
|
+
case "ArrowDown": {
|
|
210
211
|
e.preventDefault();
|
|
211
212
|
const currentKey = state.focusedKey();
|
|
212
|
-
const nextKey = findNextNonDisabledKey(collection, currentKey,
|
|
213
|
+
const nextKey = findNextNonDisabledKey(collection, currentKey, "next", isDisabled, wrap);
|
|
213
214
|
if (nextKey != null) {
|
|
214
215
|
state.setFocusedKey(nextKey);
|
|
215
216
|
}
|
|
216
217
|
break;
|
|
217
218
|
}
|
|
218
|
-
case
|
|
219
|
+
case "ArrowUp": {
|
|
219
220
|
e.preventDefault();
|
|
220
221
|
const currentKey = state.focusedKey();
|
|
221
|
-
const prevKey = findNextNonDisabledKey(collection, currentKey,
|
|
222
|
+
const prevKey = findNextNonDisabledKey(collection, currentKey, "prev", isDisabled, wrap);
|
|
222
223
|
if (prevKey != null) {
|
|
223
224
|
state.setFocusedKey(prevKey);
|
|
224
225
|
}
|
|
225
226
|
break;
|
|
226
227
|
}
|
|
227
|
-
case
|
|
228
|
+
case "Home": {
|
|
228
229
|
e.preventDefault();
|
|
229
230
|
// Find first non-disabled key
|
|
230
231
|
let firstKey = collection.getFirstKey();
|
|
@@ -236,7 +237,7 @@ export function createMenu<T>(
|
|
|
236
237
|
}
|
|
237
238
|
break;
|
|
238
239
|
}
|
|
239
|
-
case
|
|
240
|
+
case "End": {
|
|
240
241
|
e.preventDefault();
|
|
241
242
|
// Find last non-disabled key
|
|
242
243
|
let lastKey = collection.getLastKey();
|
|
@@ -248,23 +249,24 @@ export function createMenu<T>(
|
|
|
248
249
|
}
|
|
249
250
|
break;
|
|
250
251
|
}
|
|
251
|
-
case
|
|
252
|
-
case
|
|
252
|
+
case " ":
|
|
253
|
+
case "Enter": {
|
|
253
254
|
e.preventDefault();
|
|
254
255
|
const focusedKey = state.focusedKey();
|
|
255
256
|
// Don't activate disabled items
|
|
256
257
|
if (focusedKey != null && !isDisabled(focusedKey)) {
|
|
258
|
+
state.select(focusedKey, e, collection);
|
|
257
259
|
p.onAction?.(focusedKey);
|
|
258
260
|
p.onClose?.();
|
|
259
261
|
}
|
|
260
262
|
break;
|
|
261
263
|
}
|
|
262
|
-
case
|
|
264
|
+
case "Escape": {
|
|
263
265
|
e.preventDefault();
|
|
264
266
|
p.onClose?.();
|
|
265
267
|
break;
|
|
266
268
|
}
|
|
267
|
-
case
|
|
269
|
+
case "PageDown": {
|
|
268
270
|
e.preventDefault();
|
|
269
271
|
const currentKey = state.focusedKey();
|
|
270
272
|
const el = ref?.();
|
|
@@ -288,7 +290,13 @@ export function createMenu<T>(
|
|
|
288
290
|
targetKey = nextKey;
|
|
289
291
|
} else {
|
|
290
292
|
// Skip over disabled items without counting them
|
|
291
|
-
const afterDisabled = findNextNonDisabledKey(
|
|
293
|
+
const afterDisabled = findNextNonDisabledKey(
|
|
294
|
+
collection,
|
|
295
|
+
nextKey,
|
|
296
|
+
"next",
|
|
297
|
+
isDisabled,
|
|
298
|
+
false,
|
|
299
|
+
);
|
|
292
300
|
if (afterDisabled != null) {
|
|
293
301
|
targetKey = afterDisabled;
|
|
294
302
|
} else {
|
|
@@ -306,7 +314,13 @@ export function createMenu<T>(
|
|
|
306
314
|
let targetKey = currentKey;
|
|
307
315
|
|
|
308
316
|
while (count > 0 && targetKey != null) {
|
|
309
|
-
const nextKey = findNextNonDisabledKey(
|
|
317
|
+
const nextKey = findNextNonDisabledKey(
|
|
318
|
+
collection,
|
|
319
|
+
targetKey,
|
|
320
|
+
"next",
|
|
321
|
+
isDisabled,
|
|
322
|
+
false,
|
|
323
|
+
);
|
|
310
324
|
if (nextKey == null) break;
|
|
311
325
|
targetKey = nextKey;
|
|
312
326
|
count--;
|
|
@@ -318,7 +332,7 @@ export function createMenu<T>(
|
|
|
318
332
|
}
|
|
319
333
|
break;
|
|
320
334
|
}
|
|
321
|
-
case
|
|
335
|
+
case "PageUp": {
|
|
322
336
|
e.preventDefault();
|
|
323
337
|
const currentKey = state.focusedKey();
|
|
324
338
|
const el = ref?.();
|
|
@@ -342,7 +356,13 @@ export function createMenu<T>(
|
|
|
342
356
|
targetKey = prevKey;
|
|
343
357
|
} else {
|
|
344
358
|
// Skip over disabled items without counting them
|
|
345
|
-
const beforeDisabled = findNextNonDisabledKey(
|
|
359
|
+
const beforeDisabled = findNextNonDisabledKey(
|
|
360
|
+
collection,
|
|
361
|
+
prevKey,
|
|
362
|
+
"prev",
|
|
363
|
+
isDisabled,
|
|
364
|
+
false,
|
|
365
|
+
);
|
|
346
366
|
if (beforeDisabled != null) {
|
|
347
367
|
targetKey = beforeDisabled;
|
|
348
368
|
} else {
|
|
@@ -360,7 +380,13 @@ export function createMenu<T>(
|
|
|
360
380
|
let targetKey = currentKey;
|
|
361
381
|
|
|
362
382
|
while (count > 0 && targetKey != null) {
|
|
363
|
-
const prevKey = findNextNonDisabledKey(
|
|
383
|
+
const prevKey = findNextNonDisabledKey(
|
|
384
|
+
collection,
|
|
385
|
+
targetKey,
|
|
386
|
+
"prev",
|
|
387
|
+
isDisabled,
|
|
388
|
+
false,
|
|
389
|
+
);
|
|
364
390
|
if (prevKey == null) break;
|
|
365
391
|
targetKey = prevKey;
|
|
366
392
|
count--;
|
|
@@ -387,16 +413,19 @@ export function createMenu<T>(
|
|
|
387
413
|
focusWithinProps as Record<string, unknown>,
|
|
388
414
|
fieldProps as Record<string, unknown>,
|
|
389
415
|
{
|
|
390
|
-
role:
|
|
416
|
+
role: "menu",
|
|
391
417
|
tabIndex: p.isDisabled ? undefined : 0,
|
|
392
|
-
|
|
418
|
+
"aria-disabled": p.isDisabled || undefined,
|
|
393
419
|
onKeyDown,
|
|
394
|
-
} as Record<string, unknown
|
|
420
|
+
} as Record<string, unknown>,
|
|
395
421
|
);
|
|
396
422
|
|
|
397
423
|
// Add type-select props if enabled
|
|
398
424
|
if (!p.disallowTypeAhead) {
|
|
399
|
-
return mergeProps(
|
|
425
|
+
return mergeProps(
|
|
426
|
+
baseProps,
|
|
427
|
+
typeSelectProps as Record<string, unknown>,
|
|
428
|
+
) as JSX.HTMLAttributes<HTMLElement>;
|
|
400
429
|
}
|
|
401
430
|
|
|
402
431
|
return baseProps as JSX.HTMLAttributes<HTMLElement>;
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
* Based on @react-aria/menu useMenuItem.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { type JSX, type Accessor } from
|
|
7
|
-
import { createPress } from
|
|
8
|
-
import { createHover } from
|
|
9
|
-
import { createFocusRing } from
|
|
10
|
-
import { mergeProps } from
|
|
11
|
-
import { access, type MaybeAccessor } from
|
|
12
|
-
import { getMenuData } from
|
|
13
|
-
import type { MenuState, Key } from
|
|
6
|
+
import { type JSX, type Accessor } from "solid-js";
|
|
7
|
+
import { createPress } from "../interactions/createPress";
|
|
8
|
+
import { createHover } from "../interactions/createHover";
|
|
9
|
+
import { createFocusRing } from "../interactions/createFocusRing";
|
|
10
|
+
import { mergeProps } from "../utils/mergeProps";
|
|
11
|
+
import { access, type MaybeAccessor } from "../utils/reactivity";
|
|
12
|
+
import { getMenuData } from "./createMenu";
|
|
13
|
+
import type { MenuState, Key, SelectionMode } from "@proyecto-viviana/solid-stately";
|
|
14
14
|
|
|
15
15
|
export interface AriaMenuItemProps {
|
|
16
16
|
/** The unique key for the menu item. */
|
|
@@ -18,11 +18,19 @@ export interface AriaMenuItemProps {
|
|
|
18
18
|
/** Whether the menu item is disabled. */
|
|
19
19
|
isDisabled?: boolean;
|
|
20
20
|
/** An accessible label for the menu item. */
|
|
21
|
-
|
|
21
|
+
"aria-label"?: string;
|
|
22
22
|
/** Handler called when the menu item is selected. */
|
|
23
23
|
onAction?: () => void;
|
|
24
24
|
/** Whether to close the menu when this item is selected. */
|
|
25
25
|
closeOnSelect?: boolean;
|
|
26
|
+
/** A URL to link to. Turns the menu item into a link. */
|
|
27
|
+
href?: string;
|
|
28
|
+
/** The target window for the link. */
|
|
29
|
+
target?: string;
|
|
30
|
+
/** The relationship between the linked resource and the current page. */
|
|
31
|
+
rel?: string;
|
|
32
|
+
/** Causes the browser to download the linked URL. A string may be provided to suggest a file name. */
|
|
33
|
+
download?: boolean | string;
|
|
26
34
|
}
|
|
27
35
|
|
|
28
36
|
export interface MenuItemAria {
|
|
@@ -42,6 +50,10 @@ export interface MenuItemAria {
|
|
|
42
50
|
isPressed: Accessor<boolean>;
|
|
43
51
|
/** Whether the menu item is disabled. */
|
|
44
52
|
isDisabled: Accessor<boolean>;
|
|
53
|
+
/** Whether the menu item is selected. */
|
|
54
|
+
isSelected: Accessor<boolean>;
|
|
55
|
+
/** The parent menu selection mode. */
|
|
56
|
+
selectionMode: Accessor<SelectionMode>;
|
|
45
57
|
}
|
|
46
58
|
|
|
47
59
|
/**
|
|
@@ -50,7 +62,7 @@ export interface MenuItemAria {
|
|
|
50
62
|
export function createMenuItem<T>(
|
|
51
63
|
props: MaybeAccessor<AriaMenuItemProps>,
|
|
52
64
|
state: MenuState<T>,
|
|
53
|
-
_ref?: () => HTMLElement | null
|
|
65
|
+
_ref?: () => HTMLElement | null,
|
|
54
66
|
): MenuItemAria {
|
|
55
67
|
const getProps = () => access(props);
|
|
56
68
|
|
|
@@ -59,13 +71,26 @@ export function createMenuItem<T>(
|
|
|
59
71
|
|
|
60
72
|
// Computed states
|
|
61
73
|
const isDisabled: Accessor<boolean> = () => {
|
|
62
|
-
return Boolean(
|
|
74
|
+
return Boolean(
|
|
75
|
+
getData()?.isDisabled || getProps().isDisabled || state.isDisabled(getProps().key),
|
|
76
|
+
);
|
|
63
77
|
};
|
|
64
78
|
|
|
65
79
|
const isFocused: Accessor<boolean> = () => {
|
|
66
80
|
return state.focusedKey() === getProps().key;
|
|
67
81
|
};
|
|
68
82
|
|
|
83
|
+
const isSelected: Accessor<boolean> = () => {
|
|
84
|
+
return selectionMode() !== "none" && state.isSelected(getProps().key);
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
const selectionMode: Accessor<SelectionMode> = () => {
|
|
88
|
+
return state.selectionMode();
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
// Whether this is a link item
|
|
92
|
+
const isLink = () => !!getProps().href;
|
|
93
|
+
|
|
69
94
|
// Handle press
|
|
70
95
|
const { pressProps, isPressed } = createPress({
|
|
71
96
|
get isDisabled() {
|
|
@@ -76,6 +101,8 @@ export function createMenuItem<T>(
|
|
|
76
101
|
const key = p.key;
|
|
77
102
|
const data = getData();
|
|
78
103
|
|
|
104
|
+
state.select(key, undefined, state.collection());
|
|
105
|
+
|
|
79
106
|
// Call item-specific onAction
|
|
80
107
|
p.onAction?.();
|
|
81
108
|
|
|
@@ -83,6 +110,7 @@ export function createMenuItem<T>(
|
|
|
83
110
|
data?.onAction?.(key);
|
|
84
111
|
|
|
85
112
|
// Close menu if closeOnSelect is not explicitly false
|
|
113
|
+
// For link items, default to closing the menu
|
|
86
114
|
if (p.closeOnSelect !== false) {
|
|
87
115
|
data?.onClose?.();
|
|
88
116
|
}
|
|
@@ -109,26 +137,48 @@ export function createMenuItem<T>(
|
|
|
109
137
|
|
|
110
138
|
return {
|
|
111
139
|
get menuItemProps() {
|
|
112
|
-
const
|
|
113
|
-
const
|
|
140
|
+
const p = getProps();
|
|
141
|
+
const key = p.key;
|
|
142
|
+
const ariaLabel = p["aria-label"];
|
|
143
|
+
const mode = selectionMode();
|
|
144
|
+
const selected = isSelected();
|
|
145
|
+
|
|
146
|
+
const baseProps: Record<string, unknown> = {
|
|
147
|
+
role:
|
|
148
|
+
mode === "single"
|
|
149
|
+
? "menuitemradio"
|
|
150
|
+
: mode === "multiple"
|
|
151
|
+
? "menuitemcheckbox"
|
|
152
|
+
: "menuitem",
|
|
153
|
+
id: String(key),
|
|
154
|
+
"aria-disabled": isDisabled() || undefined,
|
|
155
|
+
"aria-checked": mode !== "none" ? selected : undefined,
|
|
156
|
+
"aria-label": ariaLabel,
|
|
157
|
+
"aria-labelledby": !ariaLabel ? labelId : undefined,
|
|
158
|
+
"aria-describedby": descriptionId,
|
|
159
|
+
tabIndex: isFocused() ? 0 : -1,
|
|
160
|
+
"data-selected": selected || undefined,
|
|
161
|
+
"data-focused": isFocused() || undefined,
|
|
162
|
+
"data-focus-visible": isFocusVisible() || undefined,
|
|
163
|
+
"data-pressed": isPressed() || undefined,
|
|
164
|
+
"data-disabled": isDisabled() || undefined,
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
// Add link props when href is present
|
|
168
|
+
if (isLink()) {
|
|
169
|
+
baseProps.href = isDisabled() ? undefined : p.href;
|
|
170
|
+
if (p.target) baseProps.target = p.target;
|
|
171
|
+
if (p.rel) baseProps.rel = p.rel;
|
|
172
|
+
if (p.download != null && p.download !== false) {
|
|
173
|
+
baseProps.download = p.download === true ? "" : p.download;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
114
176
|
|
|
115
177
|
return mergeProps(
|
|
116
178
|
pressProps as Record<string, unknown>,
|
|
117
179
|
hoverProps as Record<string, unknown>,
|
|
118
180
|
focusProps as Record<string, unknown>,
|
|
119
|
-
|
|
120
|
-
role: 'menuitem',
|
|
121
|
-
id: String(key),
|
|
122
|
-
'aria-disabled': isDisabled() || undefined,
|
|
123
|
-
'aria-label': ariaLabel,
|
|
124
|
-
'aria-labelledby': !ariaLabel ? labelId : undefined,
|
|
125
|
-
'aria-describedby': descriptionId,
|
|
126
|
-
tabIndex: isFocused() ? 0 : -1,
|
|
127
|
-
'data-focused': isFocused() || undefined,
|
|
128
|
-
'data-focus-visible': isFocusVisible() || undefined,
|
|
129
|
-
'data-pressed': isPressed() || undefined,
|
|
130
|
-
'data-disabled': isDisabled() || undefined,
|
|
131
|
-
} as Record<string, unknown>
|
|
181
|
+
baseProps,
|
|
132
182
|
) as JSX.HTMLAttributes<HTMLElement>;
|
|
133
183
|
},
|
|
134
184
|
labelProps: {
|
|
@@ -139,11 +189,13 @@ export function createMenuItem<T>(
|
|
|
139
189
|
},
|
|
140
190
|
keyboardShortcutProps: {
|
|
141
191
|
id: keyboardId,
|
|
142
|
-
|
|
192
|
+
"aria-hidden": true,
|
|
143
193
|
},
|
|
144
194
|
isFocused,
|
|
145
195
|
isFocusVisible: () => isFocused() && isFocusVisible(),
|
|
146
196
|
isPressed,
|
|
147
197
|
isDisabled,
|
|
198
|
+
isSelected,
|
|
199
|
+
selectionMode,
|
|
148
200
|
};
|
|
149
201
|
}
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
* Based on @react-aria/menu useMenuTrigger.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { type JSX } from
|
|
7
|
-
import { createId } from
|
|
8
|
-
import { access, type MaybeAccessor } from
|
|
9
|
-
import type { OverlayTriggerState } from
|
|
6
|
+
import { type JSX } from "solid-js";
|
|
7
|
+
import { createId } from "../ssr";
|
|
8
|
+
import { access, type MaybeAccessor } from "../utils/reactivity";
|
|
9
|
+
import type { OverlayTriggerState } from "@proyecto-viviana/solid-stately";
|
|
10
10
|
|
|
11
11
|
export interface AriaMenuTriggerProps {
|
|
12
12
|
/** The type of menu that the menu trigger opens. */
|
|
13
|
-
type?:
|
|
13
|
+
type?: "menu" | "listbox";
|
|
14
14
|
/** Whether the menu trigger is disabled. */
|
|
15
15
|
isDisabled?: boolean;
|
|
16
16
|
/** An ID for the menu. */
|
|
@@ -32,7 +32,7 @@ export interface MenuTriggerAria {
|
|
|
32
32
|
*/
|
|
33
33
|
export function createMenuTrigger(
|
|
34
34
|
props: MaybeAccessor<AriaMenuTriggerProps>,
|
|
35
|
-
state: OverlayTriggerState
|
|
35
|
+
state: OverlayTriggerState,
|
|
36
36
|
): MenuTriggerAria {
|
|
37
37
|
const getProps = () => access(props);
|
|
38
38
|
const menuId = createId(getProps().id);
|
|
@@ -47,16 +47,16 @@ export function createMenuTrigger(
|
|
|
47
47
|
if (getProps().isDisabled) return;
|
|
48
48
|
|
|
49
49
|
switch (e.key) {
|
|
50
|
-
case
|
|
51
|
-
case
|
|
52
|
-
case
|
|
50
|
+
case "Enter":
|
|
51
|
+
case " ":
|
|
52
|
+
case "ArrowDown": {
|
|
53
53
|
e.preventDefault();
|
|
54
54
|
if (!state.isOpen()) {
|
|
55
55
|
state.open();
|
|
56
56
|
}
|
|
57
57
|
break;
|
|
58
58
|
}
|
|
59
|
-
case
|
|
59
|
+
case "ArrowUp": {
|
|
60
60
|
e.preventDefault();
|
|
61
61
|
if (!state.isOpen()) {
|
|
62
62
|
state.open();
|
|
@@ -69,14 +69,14 @@ export function createMenuTrigger(
|
|
|
69
69
|
return {
|
|
70
70
|
get menuTriggerProps() {
|
|
71
71
|
const p = getProps();
|
|
72
|
-
const type = p.type ??
|
|
72
|
+
const type = p.type ?? "menu";
|
|
73
73
|
const isOpen = state.isOpen();
|
|
74
74
|
|
|
75
75
|
return {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
76
|
+
"aria-haspopup": type,
|
|
77
|
+
"aria-expanded": isOpen,
|
|
78
|
+
"aria-controls": isOpen ? menuId : undefined,
|
|
79
|
+
"aria-disabled": p.isDisabled || undefined,
|
|
80
80
|
onPress,
|
|
81
81
|
onKeyDown,
|
|
82
82
|
};
|
package/src/menu/index.ts
CHANGED
|
@@ -1,18 +1,9 @@
|
|
|
1
|
-
export {
|
|
2
|
-
createMenu,
|
|
3
|
-
getMenuData,
|
|
4
|
-
type AriaMenuProps,
|
|
5
|
-
type MenuAria,
|
|
6
|
-
} from './createMenu';
|
|
1
|
+
export { createMenu, getMenuData, type AriaMenuProps, type MenuAria } from "./createMenu";
|
|
7
2
|
|
|
8
|
-
export {
|
|
9
|
-
createMenuItem,
|
|
10
|
-
type AriaMenuItemProps,
|
|
11
|
-
type MenuItemAria,
|
|
12
|
-
} from './createMenuItem';
|
|
3
|
+
export { createMenuItem, type AriaMenuItemProps, type MenuItemAria } from "./createMenuItem";
|
|
13
4
|
|
|
14
5
|
export {
|
|
15
6
|
createMenuTrigger,
|
|
16
7
|
type AriaMenuTriggerProps,
|
|
17
8
|
type MenuTriggerAria,
|
|
18
|
-
} from
|
|
9
|
+
} from "./createMenuTrigger";
|
package/src/meter/createMeter.ts
CHANGED
|
@@ -8,13 +8,9 @@
|
|
|
8
8
|
* This is a port of @react-aria/meter's useMeter hook.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { createProgressBar, type AriaProgressBarProps } from
|
|
11
|
+
import { createProgressBar, type AriaProgressBarProps } from "../progress/createProgressBar";
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
// TYPES
|
|
15
|
-
// ============================================
|
|
16
|
-
|
|
17
|
-
export interface AriaMeterProps extends Omit<AriaProgressBarProps, 'isIndeterminate'> {
|
|
13
|
+
export interface AriaMeterProps extends Omit<AriaProgressBarProps, "isIndeterminate"> {
|
|
18
14
|
/** The current value (controlled). */
|
|
19
15
|
value?: number;
|
|
20
16
|
/** The smallest value allowed for the input. @default 0 */
|
|
@@ -28,13 +24,13 @@ export interface AriaMeterProps extends Omit<AriaProgressBarProps, 'isIndetermin
|
|
|
28
24
|
/** The content to display as the label. */
|
|
29
25
|
label?: string;
|
|
30
26
|
/** An accessibility label for this item. */
|
|
31
|
-
|
|
27
|
+
"aria-label"?: string;
|
|
32
28
|
/** Identifies the element (or elements) that labels the current element. */
|
|
33
|
-
|
|
29
|
+
"aria-labelledby"?: string;
|
|
34
30
|
/** Identifies the element (or elements) that describes the object. */
|
|
35
|
-
|
|
31
|
+
"aria-describedby"?: string;
|
|
36
32
|
/** Identifies the element (or elements) that provide a detailed, extended description for the object. */
|
|
37
|
-
|
|
33
|
+
"aria-details"?: string;
|
|
38
34
|
}
|
|
39
35
|
|
|
40
36
|
export interface MeterAria {
|
|
@@ -44,10 +40,6 @@ export interface MeterAria {
|
|
|
44
40
|
labelProps: Record<string, unknown>;
|
|
45
41
|
}
|
|
46
42
|
|
|
47
|
-
// ============================================
|
|
48
|
-
// IMPLEMENTATION
|
|
49
|
-
// ============================================
|
|
50
|
-
|
|
51
43
|
/**
|
|
52
44
|
* Provides the accessibility implementation for a meter component.
|
|
53
45
|
* Meters represent a quantity within a known range, or a fractional value.
|
|
@@ -60,7 +52,7 @@ export function createMeter(props: AriaMeterProps = {}): MeterAria {
|
|
|
60
52
|
get meterProps() {
|
|
61
53
|
return {
|
|
62
54
|
...progressBarProps,
|
|
63
|
-
role:
|
|
55
|
+
role: "meter",
|
|
64
56
|
};
|
|
65
57
|
},
|
|
66
58
|
get labelProps() {
|
package/src/meter/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { createMeter, type AriaMeterProps, type MeterAria } from
|
|
1
|
+
export { createMeter, type AriaMeterProps, type MeterAria } from "./createMeter";
|