@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
|
@@ -6,24 +6,20 @@
|
|
|
6
6
|
* Port of @react-aria/tooltip useTooltip.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { type JSX } from
|
|
10
|
-
import { type TooltipTriggerState } from
|
|
11
|
-
import { createHover } from
|
|
12
|
-
import { filterDOMProps, mergeProps } from
|
|
13
|
-
|
|
14
|
-
// ============================================
|
|
15
|
-
// TYPES
|
|
16
|
-
// ============================================
|
|
9
|
+
import { type JSX } from "solid-js";
|
|
10
|
+
import { type TooltipTriggerState } from "@proyecto-viviana/solid-stately";
|
|
11
|
+
import { createHover } from "../interactions/createHover";
|
|
12
|
+
import { filterDOMProps, mergeProps } from "../utils";
|
|
17
13
|
|
|
18
14
|
export interface TooltipProps {
|
|
19
15
|
/** Whether the tooltip is disabled. */
|
|
20
16
|
isDisabled?: boolean;
|
|
21
17
|
/** Custom aria-label for the tooltip. */
|
|
22
|
-
|
|
18
|
+
"aria-label"?: string;
|
|
23
19
|
/** ID of an element that labels the tooltip. */
|
|
24
|
-
|
|
20
|
+
"aria-labelledby"?: string;
|
|
25
21
|
/** ID of an element that describes the tooltip. */
|
|
26
|
-
|
|
22
|
+
"aria-describedby"?: string;
|
|
27
23
|
}
|
|
28
24
|
|
|
29
25
|
export interface TooltipAria {
|
|
@@ -31,10 +27,6 @@ export interface TooltipAria {
|
|
|
31
27
|
tooltipProps: JSX.HTMLAttributes<HTMLElement>;
|
|
32
28
|
}
|
|
33
29
|
|
|
34
|
-
// ============================================
|
|
35
|
-
// IMPLEMENTATION
|
|
36
|
-
// ============================================
|
|
37
|
-
|
|
38
30
|
/**
|
|
39
31
|
* Provides the accessibility implementation for a Tooltip component.
|
|
40
32
|
*
|
|
@@ -58,10 +50,7 @@ export interface TooltipAria {
|
|
|
58
50
|
* }
|
|
59
51
|
* ```
|
|
60
52
|
*/
|
|
61
|
-
export function createTooltip(
|
|
62
|
-
props: TooltipProps = {},
|
|
63
|
-
state?: TooltipTriggerState
|
|
64
|
-
): TooltipAria {
|
|
53
|
+
export function createTooltip(props: TooltipProps = {}, state?: TooltipTriggerState): TooltipAria {
|
|
65
54
|
const domProps = filterDOMProps(props, { labelable: true });
|
|
66
55
|
|
|
67
56
|
const { hoverProps } = createHover({
|
|
@@ -70,10 +59,8 @@ export function createTooltip(
|
|
|
70
59
|
});
|
|
71
60
|
|
|
72
61
|
return {
|
|
73
|
-
tooltipProps: mergeProps<JSX.HTMLAttributes<HTMLElement>>(
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
{ role: 'tooltip' }
|
|
77
|
-
),
|
|
62
|
+
tooltipProps: mergeProps<JSX.HTMLAttributes<HTMLElement>>(domProps, hoverProps, {
|
|
63
|
+
role: "tooltip",
|
|
64
|
+
}),
|
|
78
65
|
};
|
|
79
66
|
}
|
|
@@ -7,66 +7,71 @@
|
|
|
7
7
|
* Port of @react-aria/tooltip useTooltipTrigger.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import { type JSX, createEffect, onCleanup } from
|
|
11
|
-
import { type TooltipTriggerState } from
|
|
12
|
-
import { createHover } from
|
|
13
|
-
import { createFocusable } from
|
|
14
|
-
import { createId } from
|
|
15
|
-
|
|
16
|
-
// ============================================
|
|
17
|
-
// TYPES
|
|
18
|
-
// ============================================
|
|
10
|
+
import { type JSX, createEffect, onCleanup } from "solid-js";
|
|
11
|
+
import { type TooltipTriggerState } from "@proyecto-viviana/solid-stately";
|
|
12
|
+
import { createHover } from "../interactions/createHover";
|
|
13
|
+
import { createFocusable } from "../interactions/createFocusable";
|
|
14
|
+
import { createId } from "../ssr";
|
|
19
15
|
|
|
20
16
|
export interface TooltipTriggerProps {
|
|
21
17
|
/** Whether the tooltip should be disabled. */
|
|
22
18
|
isDisabled?: boolean;
|
|
23
19
|
/**
|
|
24
20
|
* The trigger mechanism for the tooltip.
|
|
25
|
-
* @default '
|
|
21
|
+
* @default 'hover'
|
|
26
22
|
*/
|
|
27
|
-
trigger?:
|
|
23
|
+
trigger?: "focus" | "hover";
|
|
28
24
|
/**
|
|
29
25
|
* Whether the tooltip should close when the trigger is pressed.
|
|
30
26
|
* @default true
|
|
31
27
|
*/
|
|
32
28
|
shouldCloseOnPress?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* ID of the tooltip element.
|
|
31
|
+
* @internal Used by component wrappers to merge explicit tooltip ids with trigger aria-describedby.
|
|
32
|
+
*/
|
|
33
|
+
tooltipId?: string;
|
|
33
34
|
}
|
|
34
35
|
|
|
35
36
|
export interface TooltipTriggerAria {
|
|
36
37
|
/** Props to spread on the trigger element. */
|
|
37
38
|
triggerProps: JSX.HTMLAttributes<HTMLElement>;
|
|
38
39
|
/** Props to spread on the tooltip element (id for accessibility). */
|
|
39
|
-
tooltipProps: { id: string };
|
|
40
|
+
tooltipProps: { readonly id: string };
|
|
40
41
|
}
|
|
41
42
|
|
|
42
|
-
|
|
43
|
-
// GLOBAL STATE
|
|
44
|
-
// ============================================
|
|
45
|
-
|
|
46
|
-
type Modality = 'keyboard' | 'pointer' | 'virtual';
|
|
43
|
+
type Modality = "keyboard" | "pointer" | "virtual";
|
|
47
44
|
let currentModality: Modality | null = null;
|
|
48
45
|
|
|
49
46
|
// Track interaction modality (pointer vs keyboard)
|
|
50
|
-
if (typeof document !==
|
|
51
|
-
document.addEventListener(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
47
|
+
if (typeof document !== "undefined") {
|
|
48
|
+
document.addEventListener(
|
|
49
|
+
"keydown",
|
|
50
|
+
() => {
|
|
51
|
+
currentModality = "keyboard";
|
|
52
|
+
},
|
|
53
|
+
true,
|
|
54
|
+
);
|
|
55
|
+
document.addEventListener(
|
|
56
|
+
"pointerdown",
|
|
57
|
+
() => {
|
|
58
|
+
currentModality = "pointer";
|
|
59
|
+
},
|
|
60
|
+
true,
|
|
61
|
+
);
|
|
62
|
+
document.addEventListener(
|
|
63
|
+
"pointermove",
|
|
64
|
+
() => {
|
|
65
|
+
currentModality = "pointer";
|
|
66
|
+
},
|
|
67
|
+
true,
|
|
68
|
+
);
|
|
60
69
|
}
|
|
61
70
|
|
|
62
71
|
function isFocusVisible(): boolean {
|
|
63
|
-
return currentModality ===
|
|
72
|
+
return currentModality === "keyboard";
|
|
64
73
|
}
|
|
65
74
|
|
|
66
|
-
// ============================================
|
|
67
|
-
// IMPLEMENTATION
|
|
68
|
-
// ============================================
|
|
69
|
-
|
|
70
75
|
/**
|
|
71
76
|
* Provides the behavior and accessibility implementation for a tooltip trigger.
|
|
72
77
|
*
|
|
@@ -100,20 +105,21 @@ function isFocusVisible(): boolean {
|
|
|
100
105
|
export function createTooltipTrigger(
|
|
101
106
|
props: TooltipTriggerProps,
|
|
102
107
|
state: TooltipTriggerState,
|
|
103
|
-
ref: () => HTMLElement | null | undefined
|
|
108
|
+
ref: () => HTMLElement | null | undefined,
|
|
104
109
|
): TooltipTriggerAria {
|
|
105
110
|
const isDisabled = () => props.isDisabled ?? false;
|
|
106
|
-
const trigger = () => props.trigger;
|
|
111
|
+
const trigger = () => props.trigger ?? "hover";
|
|
107
112
|
const shouldCloseOnPress = () => props.shouldCloseOnPress ?? true;
|
|
108
113
|
|
|
109
|
-
const
|
|
114
|
+
const generatedTooltipId = createId();
|
|
115
|
+
const tooltipId = () => props.tooltipId ?? generatedTooltipId;
|
|
110
116
|
|
|
111
117
|
// Track hover and focus state
|
|
112
118
|
let isHovered = false;
|
|
113
119
|
let isFocused = false;
|
|
114
120
|
|
|
115
121
|
const handleShow = () => {
|
|
116
|
-
if (isHovered || isFocused) {
|
|
122
|
+
if (!isDisabled() && (isHovered || isFocused)) {
|
|
117
123
|
state.open(isFocused);
|
|
118
124
|
}
|
|
119
125
|
};
|
|
@@ -131,21 +137,21 @@ export function createTooltipTrigger(
|
|
|
131
137
|
const onKeyDown = (e: KeyboardEvent) => {
|
|
132
138
|
const element = ref();
|
|
133
139
|
if (element) {
|
|
134
|
-
if (e.key ===
|
|
140
|
+
if (e.key === "Escape") {
|
|
135
141
|
e.stopPropagation();
|
|
136
142
|
state.close(true);
|
|
137
143
|
}
|
|
138
144
|
}
|
|
139
145
|
};
|
|
140
146
|
|
|
141
|
-
document.addEventListener(
|
|
147
|
+
document.addEventListener("keydown", onKeyDown, true);
|
|
142
148
|
onCleanup(() => {
|
|
143
|
-
document.removeEventListener(
|
|
149
|
+
document.removeEventListener("keydown", onKeyDown, true);
|
|
144
150
|
});
|
|
145
151
|
});
|
|
146
152
|
|
|
147
153
|
const onHoverStart = () => {
|
|
148
|
-
if (trigger() ===
|
|
154
|
+
if (isDisabled() || trigger() === "focus") {
|
|
149
155
|
return;
|
|
150
156
|
}
|
|
151
157
|
// Hover events (onPointerEnter) only fire from pointer interactions,
|
|
@@ -155,7 +161,7 @@ export function createTooltipTrigger(
|
|
|
155
161
|
};
|
|
156
162
|
|
|
157
163
|
const onHoverEnd = () => {
|
|
158
|
-
if (trigger() ===
|
|
164
|
+
if (isDisabled() || trigger() === "focus") {
|
|
159
165
|
return;
|
|
160
166
|
}
|
|
161
167
|
isFocused = false;
|
|
@@ -164,7 +170,7 @@ export function createTooltipTrigger(
|
|
|
164
170
|
};
|
|
165
171
|
|
|
166
172
|
const closeOnPress = () => {
|
|
167
|
-
if (!shouldCloseOnPress()) {
|
|
173
|
+
if (isDisabled() || !shouldCloseOnPress()) {
|
|
168
174
|
return;
|
|
169
175
|
}
|
|
170
176
|
isFocused = false;
|
|
@@ -173,13 +179,17 @@ export function createTooltipTrigger(
|
|
|
173
179
|
};
|
|
174
180
|
|
|
175
181
|
const onKeyDownPress = (event: KeyboardEvent) => {
|
|
176
|
-
if (event.key !==
|
|
182
|
+
if (event.key !== "Enter" && event.key !== " " && event.key !== "Spacebar") {
|
|
177
183
|
return;
|
|
178
184
|
}
|
|
179
185
|
closeOnPress();
|
|
180
186
|
};
|
|
181
187
|
|
|
182
188
|
const onFocus = () => {
|
|
189
|
+
if (isDisabled()) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
|
|
183
193
|
const visible = isFocusVisible();
|
|
184
194
|
if (visible) {
|
|
185
195
|
isFocused = true;
|
|
@@ -193,14 +203,14 @@ export function createTooltipTrigger(
|
|
|
193
203
|
handleHide(true);
|
|
194
204
|
};
|
|
195
205
|
|
|
196
|
-
const { hoverProps } = createHover({
|
|
206
|
+
const { hoverProps } = createHover(() => ({
|
|
197
207
|
isDisabled: isDisabled(),
|
|
198
208
|
onHoverStart,
|
|
199
209
|
onHoverEnd,
|
|
200
|
-
});
|
|
210
|
+
}));
|
|
201
211
|
|
|
202
212
|
const { focusableProps } = createFocusable({
|
|
203
|
-
isDisabled
|
|
213
|
+
isDisabled,
|
|
204
214
|
onFocus,
|
|
205
215
|
onBlur,
|
|
206
216
|
});
|
|
@@ -208,8 +218,8 @@ export function createTooltipTrigger(
|
|
|
208
218
|
const triggerProps = {
|
|
209
219
|
...focusableProps,
|
|
210
220
|
...hoverProps,
|
|
211
|
-
get
|
|
212
|
-
return state.isOpen() ? tooltipId : undefined;
|
|
221
|
+
get "aria-describedby"() {
|
|
222
|
+
return !isDisabled() && state.isOpen() ? tooltipId() : undefined;
|
|
213
223
|
},
|
|
214
224
|
onPointerDown: closeOnPress,
|
|
215
225
|
onKeyDown: onKeyDownPress,
|
|
@@ -220,7 +230,9 @@ export function createTooltipTrigger(
|
|
|
220
230
|
return {
|
|
221
231
|
triggerProps: triggerProps as JSX.HTMLAttributes<HTMLElement>,
|
|
222
232
|
tooltipProps: {
|
|
223
|
-
id
|
|
233
|
+
get id() {
|
|
234
|
+
return tooltipId();
|
|
235
|
+
},
|
|
224
236
|
},
|
|
225
237
|
};
|
|
226
238
|
}
|
package/src/tooltip/index.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { createTooltip, type TooltipProps, type TooltipAria } from
|
|
1
|
+
export { createTooltip, type TooltipProps, type TooltipAria } from "./createTooltip";
|
|
2
2
|
export {
|
|
3
3
|
createTooltipTrigger,
|
|
4
4
|
type TooltipTriggerProps,
|
|
5
5
|
type TooltipTriggerAria,
|
|
6
|
-
} from
|
|
6
|
+
} from "./createTooltipTrigger";
|
package/src/tree/createTree.ts
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
* Based on @react-aria/tree/useTree.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { createMemo, type Accessor } from
|
|
7
|
-
import type { JSX } from
|
|
8
|
-
import { createId } from
|
|
9
|
-
import type { TreeState, TreeCollection, Key } from
|
|
10
|
-
import type { AriaTreeProps, TreeAria } from
|
|
6
|
+
import { createMemo, type Accessor } from "solid-js";
|
|
7
|
+
import type { JSX } from "solid-js";
|
|
8
|
+
import { createId } from "@proyecto-viviana/solid-stately";
|
|
9
|
+
import type { TreeState, TreeCollection, Key } from "@proyecto-viviana/solid-stately";
|
|
10
|
+
import type { AriaTreeProps, TreeAria } from "./types";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Metadata stored for a tree instance.
|
|
@@ -30,7 +30,7 @@ const treeDataMap = new WeakMap<object, TreeData>();
|
|
|
30
30
|
* Gets the tree data for a given state.
|
|
31
31
|
*/
|
|
32
32
|
export function getTreeData<T extends object, C extends TreeCollection<T>>(
|
|
33
|
-
state: TreeState<T, C
|
|
33
|
+
state: TreeState<T, C>,
|
|
34
34
|
): TreeData | undefined {
|
|
35
35
|
return treeDataMap.get(state);
|
|
36
36
|
}
|
|
@@ -41,7 +41,7 @@ export function getTreeData<T extends object, C extends TreeCollection<T>>(
|
|
|
41
41
|
export function createTree<T extends object, C extends TreeCollection<T> = TreeCollection<T>>(
|
|
42
42
|
props: Accessor<AriaTreeProps>,
|
|
43
43
|
state: Accessor<TreeState<T, C>>,
|
|
44
|
-
_ref: Accessor<HTMLDivElement | null
|
|
44
|
+
_ref: Accessor<HTMLDivElement | null>,
|
|
45
45
|
): TreeAria {
|
|
46
46
|
// Generate a unique ID for the tree
|
|
47
47
|
const treeId = props().id ?? createId();
|
|
@@ -65,15 +65,15 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
65
65
|
const p = props();
|
|
66
66
|
const collection = s.collection;
|
|
67
67
|
const focusedKey = s.focusedKey;
|
|
68
|
-
const direction = p.direction ??
|
|
68
|
+
const direction = p.direction ?? "ltr";
|
|
69
69
|
// In RTL, ArrowLeft expands and ArrowRight collapses (opposite of LTR)
|
|
70
|
-
const expandKey = direction ===
|
|
71
|
-
const collapseKey = direction ===
|
|
70
|
+
const expandKey = direction === "rtl" ? "ArrowLeft" : "ArrowRight";
|
|
71
|
+
const collapseKey = direction === "rtl" ? "ArrowRight" : "ArrowLeft";
|
|
72
72
|
|
|
73
73
|
if (p.isDisabled) return;
|
|
74
74
|
|
|
75
75
|
switch (e.key) {
|
|
76
|
-
case
|
|
76
|
+
case "ArrowDown": {
|
|
77
77
|
e.preventDefault();
|
|
78
78
|
if (focusedKey != null) {
|
|
79
79
|
const nextKey = collection.getKeyAfter(focusedKey);
|
|
@@ -88,7 +88,7 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
88
88
|
}
|
|
89
89
|
break;
|
|
90
90
|
}
|
|
91
|
-
case
|
|
91
|
+
case "ArrowUp": {
|
|
92
92
|
e.preventDefault();
|
|
93
93
|
if (focusedKey != null) {
|
|
94
94
|
const prevKey = collection.getKeyBefore(focusedKey);
|
|
@@ -103,8 +103,8 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
103
103
|
}
|
|
104
104
|
break;
|
|
105
105
|
}
|
|
106
|
-
case
|
|
107
|
-
case
|
|
106
|
+
case "ArrowRight":
|
|
107
|
+
case "ArrowLeft": {
|
|
108
108
|
e.preventDefault();
|
|
109
109
|
if (focusedKey != null) {
|
|
110
110
|
const node = collection.getItem(focusedKey);
|
|
@@ -131,7 +131,7 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
131
131
|
}
|
|
132
132
|
break;
|
|
133
133
|
}
|
|
134
|
-
case
|
|
134
|
+
case "Home": {
|
|
135
135
|
e.preventDefault();
|
|
136
136
|
const firstKey = collection.getFirstKey();
|
|
137
137
|
if (firstKey != null) {
|
|
@@ -139,7 +139,7 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
139
139
|
}
|
|
140
140
|
break;
|
|
141
141
|
}
|
|
142
|
-
case
|
|
142
|
+
case "End": {
|
|
143
143
|
e.preventDefault();
|
|
144
144
|
const lastKey = collection.getLastKey();
|
|
145
145
|
if (lastKey != null) {
|
|
@@ -147,38 +147,38 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
147
147
|
}
|
|
148
148
|
break;
|
|
149
149
|
}
|
|
150
|
-
case
|
|
151
|
-
case
|
|
152
|
-
if ((e.ctrlKey || e.metaKey) && s.selectionMode ===
|
|
150
|
+
case "a":
|
|
151
|
+
case "A": {
|
|
152
|
+
if ((e.ctrlKey || e.metaKey) && s.selectionMode === "multiple") {
|
|
153
153
|
e.preventDefault();
|
|
154
154
|
s.selectAll();
|
|
155
155
|
}
|
|
156
156
|
break;
|
|
157
157
|
}
|
|
158
|
-
case
|
|
159
|
-
case
|
|
160
|
-
case
|
|
161
|
-
if (focusedKey != null && s.selectionMode !==
|
|
158
|
+
case " ":
|
|
159
|
+
case "Space":
|
|
160
|
+
case "Spacebar": {
|
|
161
|
+
if (focusedKey != null && s.selectionMode !== "none" && !s.isDisabled(focusedKey)) {
|
|
162
162
|
e.preventDefault();
|
|
163
163
|
s.toggleSelection(focusedKey);
|
|
164
164
|
}
|
|
165
165
|
break;
|
|
166
166
|
}
|
|
167
|
-
case
|
|
167
|
+
case "Enter": {
|
|
168
168
|
if (focusedKey != null && !s.isDisabled(focusedKey)) {
|
|
169
169
|
e.preventDefault();
|
|
170
170
|
p.onAction?.(focusedKey);
|
|
171
171
|
}
|
|
172
172
|
break;
|
|
173
173
|
}
|
|
174
|
-
case
|
|
175
|
-
if (s.selectionMode !==
|
|
174
|
+
case "Escape": {
|
|
175
|
+
if (s.selectionMode !== "none") {
|
|
176
176
|
e.preventDefault();
|
|
177
177
|
s.clearSelection();
|
|
178
178
|
}
|
|
179
179
|
break;
|
|
180
180
|
}
|
|
181
|
-
case
|
|
181
|
+
case "*": {
|
|
182
182
|
// Expand all siblings at current level
|
|
183
183
|
e.preventDefault();
|
|
184
184
|
if (focusedKey != null) {
|
|
@@ -191,9 +191,7 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
191
191
|
siblings = [...collection.getChildren(parentKey)].map((n) => n.key);
|
|
192
192
|
} else {
|
|
193
193
|
// Root level siblings
|
|
194
|
-
siblings = collection.rows
|
|
195
|
-
.filter((n) => n.level === 0)
|
|
196
|
-
.map((n) => n.key);
|
|
194
|
+
siblings = collection.rows.filter((n) => n.level === 0).map((n) => n.key);
|
|
197
195
|
}
|
|
198
196
|
// Expand all expandable siblings
|
|
199
197
|
for (const siblingKey of siblings) {
|
|
@@ -232,13 +230,13 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
232
230
|
const s = state();
|
|
233
231
|
|
|
234
232
|
const baseProps: Record<string, unknown> = {
|
|
235
|
-
role:
|
|
233
|
+
role: "treegrid",
|
|
236
234
|
id: treeId,
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
235
|
+
"aria-label": p["aria-label"],
|
|
236
|
+
"aria-labelledby": p["aria-labelledby"],
|
|
237
|
+
"aria-describedby": p["aria-describedby"],
|
|
238
|
+
"aria-multiselectable": s.selectionMode === "multiple" ? true : undefined,
|
|
239
|
+
"aria-disabled": p.isDisabled || undefined,
|
|
242
240
|
tabIndex: p.isDisabled ? undefined : 0,
|
|
243
241
|
onKeyDown,
|
|
244
242
|
onFocus,
|
|
@@ -247,7 +245,7 @@ export function createTree<T extends object, C extends TreeCollection<T> = TreeC
|
|
|
247
245
|
|
|
248
246
|
// Add row count for virtualized trees
|
|
249
247
|
if (p.isVirtualized) {
|
|
250
|
-
baseProps[
|
|
248
|
+
baseProps["aria-rowcount"] = s.collection.rowCount;
|
|
251
249
|
}
|
|
252
250
|
|
|
253
251
|
return baseProps as JSX.HTMLAttributes<HTMLDivElement>;
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
* Based on @react-aria/tree/useTreeItem.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { createMemo, createSignal, type Accessor } from
|
|
7
|
-
import type { JSX } from
|
|
8
|
-
import { createId } from
|
|
9
|
-
import type { TreeState, TreeCollection } from
|
|
10
|
-
import type { AriaTreeItemProps, TreeItemAria } from
|
|
11
|
-
import { getTreeData } from
|
|
6
|
+
import { createMemo, createSignal, type Accessor } from "solid-js";
|
|
7
|
+
import type { JSX } from "solid-js";
|
|
8
|
+
import { createId } from "@proyecto-viviana/solid-stately";
|
|
9
|
+
import type { TreeState, TreeCollection } from "@proyecto-viviana/solid-stately";
|
|
10
|
+
import type { AriaTreeItemProps, TreeItemAria } from "./types";
|
|
11
|
+
import { getTreeData } from "./createTree";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* Creates accessibility props for a tree item.
|
|
@@ -16,7 +16,7 @@ import { getTreeData } from './createTree';
|
|
|
16
16
|
export function createTreeItem<T extends object, C extends TreeCollection<T> = TreeCollection<T>>(
|
|
17
17
|
props: Accessor<AriaTreeItemProps<T>>,
|
|
18
18
|
state: Accessor<TreeState<T, C>>,
|
|
19
|
-
_ref: Accessor<
|
|
19
|
+
_ref: Accessor<HTMLElement | null>,
|
|
20
20
|
): TreeItemAria {
|
|
21
21
|
const [isPressed, setIsPressed] = createSignal(false);
|
|
22
22
|
const rowId = createId();
|
|
@@ -31,7 +31,7 @@ export function createTreeItem<T extends object, C extends TreeCollection<T> = T
|
|
|
31
31
|
const isDisabled = createMemo(() => {
|
|
32
32
|
const s = state();
|
|
33
33
|
const p = props();
|
|
34
|
-
return s.isDisabled(p.node.key);
|
|
34
|
+
return p.isDisabled === true || s.isDisabled(p.node.key);
|
|
35
35
|
});
|
|
36
36
|
|
|
37
37
|
const isFocused = createMemo(() => {
|
|
@@ -68,14 +68,14 @@ export function createTreeItem<T extends object, C extends TreeCollection<T> = T
|
|
|
68
68
|
const onAction = treeData?.actions.onAction;
|
|
69
69
|
|
|
70
70
|
// Handle selection
|
|
71
|
-
if (s.selectionMode !==
|
|
72
|
-
if (e.shiftKey && s.selectionMode ===
|
|
71
|
+
if (s.selectionMode !== "none") {
|
|
72
|
+
if (e.shiftKey && s.selectionMode === "multiple") {
|
|
73
73
|
s.extendSelection(p.node.key);
|
|
74
|
-
} else if (e.ctrlKey || e.metaKey) {
|
|
74
|
+
} else if (p.selectionBehavior === "toggle" || e.ctrlKey || e.metaKey) {
|
|
75
75
|
s.toggleSelection(p.node.key);
|
|
76
76
|
} else {
|
|
77
77
|
// Replace selection or toggle if already selected
|
|
78
|
-
if (isSelected() && s.selectedKeys !==
|
|
78
|
+
if (isSelected() && s.selectedKeys !== "all") {
|
|
79
79
|
const selectedKeys = s.selectedKeys as Set<unknown>;
|
|
80
80
|
if (selectedKeys.size === 1) {
|
|
81
81
|
// Single selection, trigger action
|
|
@@ -109,7 +109,7 @@ export function createTreeItem<T extends object, C extends TreeCollection<T> = T
|
|
|
109
109
|
|
|
110
110
|
if (isDisabled()) return;
|
|
111
111
|
|
|
112
|
-
if (e.key ===
|
|
112
|
+
if (e.key === "Enter") {
|
|
113
113
|
// Get tree metadata for actions
|
|
114
114
|
const treeData = getTreeData(s);
|
|
115
115
|
const onAction = treeData?.actions.onAction;
|
|
@@ -125,9 +125,9 @@ export function createTreeItem<T extends object, C extends TreeCollection<T> = T
|
|
|
125
125
|
p.onAction();
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
|
-
} else if (e.key ===
|
|
128
|
+
} else if (e.key === " " || e.key === "Space" || e.key === "Spacebar") {
|
|
129
129
|
// Space toggles selection
|
|
130
|
-
if (s.selectionMode !==
|
|
130
|
+
if (s.selectionMode !== "none") {
|
|
131
131
|
e.preventDefault();
|
|
132
132
|
s.toggleSelection(p.node.key);
|
|
133
133
|
}
|
|
@@ -184,15 +184,15 @@ export function createTreeItem<T extends object, C extends TreeCollection<T> = T
|
|
|
184
184
|
const textValue = p.textValue ?? node.textValue;
|
|
185
185
|
|
|
186
186
|
const baseProps: Record<string, unknown> = {
|
|
187
|
-
role:
|
|
187
|
+
role: "row",
|
|
188
188
|
id: rowId,
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
189
|
+
"aria-label": textValue || undefined,
|
|
190
|
+
"aria-selected": s.selectionMode !== "none" ? isSelected() : undefined,
|
|
191
|
+
"aria-disabled": isDisabled() || undefined,
|
|
192
|
+
"aria-expanded": isExpandable() ? isExpanded() : undefined,
|
|
193
|
+
"aria-level": node.level + 1, // 1-based for ARIA
|
|
194
|
+
"aria-posinset": posinset,
|
|
195
|
+
"aria-setsize": setsize,
|
|
196
196
|
tabIndex: isFocused() ? 0 : -1,
|
|
197
197
|
onClick,
|
|
198
198
|
onKeyDown,
|
|
@@ -203,7 +203,7 @@ export function createTreeItem<T extends object, C extends TreeCollection<T> = T
|
|
|
203
203
|
|
|
204
204
|
// Add aria-rowindex for virtualized trees
|
|
205
205
|
if (p.isVirtualized && node.rowIndex != null) {
|
|
206
|
-
baseProps[
|
|
206
|
+
baseProps["aria-rowindex"] = node.rowIndex + 1; // 1-based
|
|
207
207
|
}
|
|
208
208
|
|
|
209
209
|
return baseProps as JSX.HTMLAttributes<HTMLDivElement>;
|
|
@@ -211,7 +211,7 @@ export function createTreeItem<T extends object, C extends TreeCollection<T> = T
|
|
|
211
211
|
|
|
212
212
|
const gridCellProps = createMemo(() => {
|
|
213
213
|
return {
|
|
214
|
-
role:
|
|
214
|
+
role: "gridcell",
|
|
215
215
|
} as JSX.HTMLAttributes<HTMLDivElement>;
|
|
216
216
|
});
|
|
217
217
|
|
|
@@ -234,17 +234,17 @@ export function createTreeItem<T extends object, C extends TreeCollection<T> = T
|
|
|
234
234
|
|
|
235
235
|
const expandButtonProps = createMemo(() => {
|
|
236
236
|
const baseProps: Record<string, unknown> = {
|
|
237
|
-
type:
|
|
237
|
+
type: "button",
|
|
238
238
|
id: expandButtonId,
|
|
239
|
-
|
|
240
|
-
|
|
239
|
+
"aria-label": isExpanded() ? "Collapse" : "Expand",
|
|
240
|
+
"aria-labelledby": isExpandable() ? `${expandButtonId} ${rowId}` : undefined,
|
|
241
241
|
onClick: onExpandClick,
|
|
242
242
|
onPointerDown: stopPointerPropagation,
|
|
243
243
|
onPointerUp: stopPointerPropagation,
|
|
244
244
|
onMouseDown: stopPointerPropagation,
|
|
245
245
|
onMouseUp: stopPointerPropagation,
|
|
246
246
|
tabIndex: -1, // Not in tab order, use arrow keys
|
|
247
|
-
|
|
247
|
+
"aria-hidden": !isExpandable() ? true : undefined,
|
|
248
248
|
};
|
|
249
249
|
|
|
250
250
|
return baseProps as JSX.ButtonHTMLAttributes<HTMLButtonElement>;
|
|
@@ -3,17 +3,20 @@
|
|
|
3
3
|
* Based on @react-aria/gridlist/useGridListSelectionCheckbox.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { createMemo, type Accessor } from
|
|
7
|
-
import type { JSX } from
|
|
8
|
-
import type { TreeState, TreeCollection } from
|
|
9
|
-
import type { AriaTreeSelectionCheckboxProps, TreeSelectionCheckboxAria } from
|
|
6
|
+
import { createMemo, type Accessor } from "solid-js";
|
|
7
|
+
import type { JSX } from "solid-js";
|
|
8
|
+
import type { TreeState, TreeCollection } from "@proyecto-viviana/solid-stately";
|
|
9
|
+
import type { AriaTreeSelectionCheckboxProps, TreeSelectionCheckboxAria } from "./types";
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* Creates accessibility props for a tree selection checkbox.
|
|
13
13
|
*/
|
|
14
|
-
export function createTreeSelectionCheckbox<
|
|
14
|
+
export function createTreeSelectionCheckbox<
|
|
15
|
+
T extends object,
|
|
16
|
+
C extends TreeCollection<T> = TreeCollection<T>,
|
|
17
|
+
>(
|
|
15
18
|
props: Accessor<AriaTreeSelectionCheckboxProps>,
|
|
16
|
-
state: Accessor<TreeState<T, C
|
|
19
|
+
state: Accessor<TreeState<T, C>>,
|
|
17
20
|
): TreeSelectionCheckboxAria {
|
|
18
21
|
const isSelected = createMemo(() => {
|
|
19
22
|
const s = state();
|
|
@@ -48,8 +51,8 @@ export function createTreeSelectionCheckbox<T extends object, C extends TreeColl
|
|
|
48
51
|
|
|
49
52
|
const checkboxProps = createMemo(() => {
|
|
50
53
|
const baseProps: Record<string, unknown> = {
|
|
51
|
-
type:
|
|
52
|
-
|
|
54
|
+
type: "checkbox",
|
|
55
|
+
"aria-label": "Select",
|
|
53
56
|
checked: isSelected(),
|
|
54
57
|
disabled: isDisabled(),
|
|
55
58
|
onChange,
|