@proyecto-viviana/solidaria 0.2.5 → 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/LICENSE +21 -0
- package/README.md +31 -236
- package/dist/actiongroup/createActionGroup.d.ts +29 -0
- package/dist/actiongroup/createActionGroup.d.ts.map +1 -0
- package/dist/actiongroup/index.d.ts +2 -0
- package/dist/actiongroup/index.d.ts.map +1 -0
- package/dist/autocomplete/createAutocomplete.d.ts +16 -12
- 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 +11 -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 +32 -0
- package/dist/button/createToggleButtonGroup.d.ts.map +1 -0
- package/dist/button/index.d.ts +6 -4
- 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 +8 -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 +7 -3
- 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 +11 -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 +56 -0
- package/dist/collections/index.d.ts.map +1 -0
- 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 +16 -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 +57 -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 +42 -0
- package/dist/datepicker/createDateRangePicker.d.ts.map +1 -0
- package/dist/datepicker/createDateSegment.d.ts +11 -3
- 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 +29 -0
- package/dist/datepicker/createTimeSegment.d.ts.map +1 -0
- package/dist/datepicker/index.d.ts +7 -4
- 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 -3
- 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 +6 -2
- package/dist/dnd/createDraggableCollection.d.ts.map +1 -1
- 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 +55 -4
- package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
- package/dist/dnd/createDroppableItem.d.ts +3 -3
- package/dist/dnd/createDroppableItem.d.ts.map +1 -1
- 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/createGrid.d.ts.map +1 -1
- 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 -49
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18089 -15690
- package/dist/index.js.map +1 -7
- 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 +23 -7
- package/dist/link/createLink.d.ts.map +1 -1
- package/dist/link/index.d.ts +1 -1
- package/dist/listbox/createListBox.d.ts +12 -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 +8 -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 +27 -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 +19 -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 +11 -11
- 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 +6 -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 +13 -5
- 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 +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/platform.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 +34 -32
- package/src/actiongroup/createActionGroup.ts +334 -0
- package/src/actiongroup/index.ts +8 -0
- package/src/autocomplete/createAutocomplete.ts +137 -131
- package/src/autocomplete/index.ts +1 -1
- package/src/breadcrumbs/createBreadcrumbs.ts +37 -51
- 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 +121 -0
- package/src/button/index.ts +10 -4
- package/src/button/types.ts +18 -12
- package/src/calendar/createCalendar.ts +62 -29
- package/src/calendar/createCalendarCell.ts +102 -48
- package/src/calendar/createCalendarGrid.ts +78 -47
- package/src/calendar/createRangeCalendar.ts +66 -31
- package/src/calendar/createRangeCalendarCell.ts +115 -37
- 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 +86 -45
- 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 +246 -0
- package/src/color/createColorArea.ts +458 -314
- package/src/color/createColorField.ts +186 -137
- package/src/color/createColorSlider.ts +444 -197
- package/src/color/createColorSwatch.ts +65 -40
- package/src/color/createColorWheel.ts +343 -208
- package/src/color/index.ts +24 -24
- package/src/color/types.ts +198 -116
- package/src/combobox/createComboBox.ts +727 -647
- package/src/combobox/index.ts +6 -6
- package/src/combobox/intl/index.ts +5 -5
- package/src/datepicker/createDateField.ts +192 -39
- package/src/datepicker/createDatePicker.ts +294 -63
- package/src/datepicker/createDatePickerGroup.ts +149 -0
- package/src/datepicker/createDateRangePicker.ts +294 -0
- package/src/datepicker/createDateSegment.ts +316 -75
- package/src/datepicker/createTimeField.ts +38 -34
- package/src/datepicker/createTimeSegment.ts +352 -0
- package/src/datepicker/index.ts +24 -11
- package/src/dialog/createDialog.ts +127 -120
- package/src/dialog/index.ts +2 -2
- package/src/dialog/types.ts +19 -19
- package/src/disclosure/createDisclosure.ts +138 -33
- package/src/disclosure/createDisclosureGroup.ts +8 -18
- package/src/disclosure/index.ts +2 -2
- package/src/dnd/createDrag.ts +218 -209
- package/src/dnd/createDraggableCollection.ts +96 -63
- package/src/dnd/createDraggableItem.ts +260 -243
- package/src/dnd/createDrop.ts +313 -321
- package/src/dnd/createDroppableCollection.ts +799 -293
- package/src/dnd/createDroppableItem.ts +215 -213
- package/src/dnd/index.ts +66 -47
- package/src/dnd/types.ts +86 -89
- package/src/dnd/utils.ts +281 -294
- package/src/focus/FocusScope.tsx +155 -164
- package/src/focus/createAutoFocus.ts +305 -321
- package/src/focus/createFocusRestore.ts +300 -313
- package/src/focus/createVirtualFocus.ts +380 -396
- package/src/focus/index.ts +4 -8
- package/src/form/createFormReset.ts +4 -4
- package/src/form/createFormValidation.ts +201 -224
- package/src/form/index.ts +8 -11
- package/src/grid/GridKeyboardDelegate.ts +30 -30
- package/src/grid/createGrid.ts +38 -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 +45 -24
- 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 +66 -79
- package/src/i18n/createDateFormatter.ts +75 -83
- package/src/i18n/createFilter.ts +118 -131
- package/src/i18n/createNumberFormatter.ts +50 -52
- package/src/i18n/createStringFormatter.ts +19 -15
- package/src/i18n/index.ts +37 -40
- package/src/i18n/locale.tsx +163 -188
- package/src/i18n/utils.ts +95 -99
- package/src/index.ts +114 -164
- package/src/interactions/FocusableProvider.tsx +3 -7
- package/src/interactions/PressEvent.ts +4 -4
- package/src/interactions/createFocus.ts +16 -11
- package/src/interactions/createFocusRing.ts +21 -19
- package/src/interactions/createFocusWithin.ts +24 -16
- 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 +174 -174
- package/src/interactions/createMove.ts +299 -289
- package/src/interactions/createPress.ts +168 -91
- 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 +356 -377
- package/src/landmark/index.ts +8 -8
- package/src/link/createLink.ts +96 -54
- package/src/link/index.ts +1 -1
- package/src/listbox/createListBox.ts +319 -269
- package/src/listbox/createOption.ts +208 -151
- package/src/listbox/index.ts +8 -12
- package/src/live-announcer/announce.ts +295 -322
- package/src/live-announcer/index.ts +9 -9
- package/src/menu/createMenu.ts +434 -396
- package/src/menu/createMenuItem.ts +201 -149
- package/src/menu/createMenuTrigger.ts +88 -88
- package/src/menu/index.ts +9 -18
- package/src/meter/createMeter.ts +7 -20
- package/src/meter/index.ts +1 -1
- package/src/numberfield/createNumberField.ts +368 -268
- package/src/numberfield/index.ts +5 -5
- package/src/overlays/ariaHideOutside.ts +223 -219
- package/src/overlays/createInteractOutside.ts +152 -149
- package/src/overlays/createModal.tsx +238 -202
- package/src/overlays/createOverlay.ts +195 -155
- package/src/overlays/createOverlayTrigger.ts +85 -85
- package/src/overlays/createPreventScroll.ts +288 -266
- package/src/overlays/index.ts +37 -44
- package/src/popover/calculatePosition.ts +117 -119
- package/src/popover/createOverlayPosition.ts +52 -43
- package/src/popover/createPopover.ts +63 -24
- package/src/popover/index.ts +3 -3
- package/src/progress/createProgressBar.ts +36 -32
- package/src/progress/index.ts +1 -1
- package/src/radio/createRadio.ts +95 -73
- package/src/radio/createRadioGroup.ts +142 -62
- package/src/radio/createRadioGroupState.ts +7 -31
- package/src/radio/index.ts +3 -8
- package/src/searchfield/createSearchField.ts +269 -186
- package/src/searchfield/index.ts +2 -2
- package/src/select/createHiddenSelect.tsx +276 -236
- package/src/select/createSelect.ts +430 -395
- package/src/select/index.ts +9 -14
- 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 +333 -349
- package/src/slider/index.ts +2 -2
- package/src/ssr/index.tsx +331 -370
- 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 +155 -86
- 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 +138 -127
- package/src/tabs/index.ts +1 -1
- package/src/tag/createTag.ts +171 -40
- package/src/tag/createTagGroup.ts +50 -39
- 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 +34 -26
- package/src/toast/createToastRegion.ts +169 -27
- 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 +226 -169
- package/src/toolbar/index.ts +1 -1
- package/src/tooltip/createTooltip.ts +66 -79
- package/src/tooltip/createTooltipTrigger.ts +238 -222
- package/src/tooltip/index.ts +6 -6
- package/src/tree/createTree.ts +259 -246
- package/src/tree/createTreeItem.ts +282 -233
- package/src/tree/createTreeSelectionCheckbox.ts +71 -68
- package/src/tree/index.ts +16 -16
- package/src/tree/types.ts +95 -87
- package/src/utils/createDescription.ts +6 -23
- package/src/utils/dom.ts +61 -54
- package/src/utils/env.ts +53 -54
- 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 +16 -6
- package/src/utils/reactivity.ts +3 -3
- package/src/utils/textSelection.ts +16 -16
- package/src/visually-hidden/createVisuallyHidden.ts +127 -124
- package/src/visually-hidden/index.ts +6 -6
- package/dist/i18n/NumberFormatter.d.ts +0 -43
- package/dist/i18n/NumberFormatter.d.ts.map +0 -1
- package/dist/index.ssr.js +0 -15875
- package/dist/index.ssr.js.map +0 -7
- package/src/i18n/NumberFormatter.ts +0 -266
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* Based on @react-aria/grid/GridKeyboardDelegate.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type { GridCollection, GridNode, Key } from
|
|
7
|
-
import type { KeyboardDelegate } from
|
|
8
|
-
import type { Accessor } from
|
|
6
|
+
import type { GridCollection, GridNode, Key } from "@proyecto-viviana/solid-stately";
|
|
7
|
+
import type { KeyboardDelegate } from "./types";
|
|
8
|
+
import type { Accessor } from "solid-js";
|
|
9
9
|
|
|
10
10
|
export interface GridKeyboardDelegateOptions<T> {
|
|
11
11
|
/** The grid collection. */
|
|
@@ -15,9 +15,9 @@ export interface GridKeyboardDelegateOptions<T> {
|
|
|
15
15
|
/** Ref to the grid element. */
|
|
16
16
|
ref: Accessor<HTMLElement | null>;
|
|
17
17
|
/** Focus mode: row or cell. */
|
|
18
|
-
focusMode:
|
|
18
|
+
focusMode: "row" | "cell";
|
|
19
19
|
/** Text direction (ltr or rtl). */
|
|
20
|
-
direction:
|
|
20
|
+
direction: "ltr" | "rtl";
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
/**
|
|
@@ -27,8 +27,8 @@ export class GridKeyboardDelegate<T> implements KeyboardDelegate {
|
|
|
27
27
|
private collection: GridCollection<T>;
|
|
28
28
|
private disabledKeys: Set<Key>;
|
|
29
29
|
private ref: Accessor<HTMLElement | null>;
|
|
30
|
-
private focusMode:
|
|
31
|
-
private direction:
|
|
30
|
+
private focusMode: "row" | "cell";
|
|
31
|
+
private direction: "ltr" | "rtl";
|
|
32
32
|
|
|
33
33
|
constructor(options: GridKeyboardDelegateOptions<T>) {
|
|
34
34
|
this.collection = options.collection;
|
|
@@ -52,11 +52,11 @@ export class GridKeyboardDelegate<T> implements KeyboardDelegate {
|
|
|
52
52
|
const item = this.collection.getItem(key);
|
|
53
53
|
if (!item) return null;
|
|
54
54
|
|
|
55
|
-
if (item.type ===
|
|
55
|
+
if (item.type === "item") {
|
|
56
56
|
return key;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
if (item.type ===
|
|
59
|
+
if (item.type === "cell" && item.parentKey != null) {
|
|
60
60
|
return item.parentKey;
|
|
61
61
|
}
|
|
62
62
|
|
|
@@ -67,7 +67,7 @@ export class GridKeyboardDelegate<T> implements KeyboardDelegate {
|
|
|
67
67
|
* Get all body rows (excluding header rows).
|
|
68
68
|
*/
|
|
69
69
|
private getBodyRows(): GridNode<T>[] {
|
|
70
|
-
return this.collection.rows.filter((row) => row.type ===
|
|
70
|
+
return this.collection.rows.filter((row) => row.type === "item");
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
/**
|
|
@@ -76,7 +76,7 @@ export class GridKeyboardDelegate<T> implements KeyboardDelegate {
|
|
|
76
76
|
getFirstKey(fromKey?: Key, global?: boolean): Key | null {
|
|
77
77
|
const rows = this.getBodyRows();
|
|
78
78
|
|
|
79
|
-
if (this.focusMode ===
|
|
79
|
+
if (this.focusMode === "row" || global) {
|
|
80
80
|
// Find first non-disabled row
|
|
81
81
|
for (const row of rows) {
|
|
82
82
|
if (!this.isDisabled(row.key)) {
|
|
@@ -114,7 +114,7 @@ export class GridKeyboardDelegate<T> implements KeyboardDelegate {
|
|
|
114
114
|
getLastKey(fromKey?: Key, global?: boolean): Key | null {
|
|
115
115
|
const rows = this.getBodyRows();
|
|
116
116
|
|
|
117
|
-
if (this.focusMode ===
|
|
117
|
+
if (this.focusMode === "row" || global) {
|
|
118
118
|
// Find last non-disabled row
|
|
119
119
|
for (let i = rows.length - 1; i >= 0; i--) {
|
|
120
120
|
if (!this.isDisabled(rows[i].key)) {
|
|
@@ -155,9 +155,9 @@ export class GridKeyboardDelegate<T> implements KeyboardDelegate {
|
|
|
155
155
|
|
|
156
156
|
const rows = this.getBodyRows();
|
|
157
157
|
|
|
158
|
-
if (this.focusMode ===
|
|
158
|
+
if (this.focusMode === "row" || item.type === "item") {
|
|
159
159
|
// Find the row and get the previous one
|
|
160
|
-
const rowKey = item.type ===
|
|
160
|
+
const rowKey = item.type === "item" ? key : item.parentKey;
|
|
161
161
|
const rowIndex = rows.findIndex((r) => r.key === rowKey);
|
|
162
162
|
|
|
163
163
|
if (rowIndex > 0) {
|
|
@@ -172,7 +172,7 @@ export class GridKeyboardDelegate<T> implements KeyboardDelegate {
|
|
|
172
172
|
}
|
|
173
173
|
|
|
174
174
|
// Cell focus mode - get cell in same column of previous row
|
|
175
|
-
if (item.type ===
|
|
175
|
+
if (item.type === "cell" && item.parentKey != null) {
|
|
176
176
|
const rowIndex = rows.findIndex((r) => r.key === item.parentKey);
|
|
177
177
|
const colIndex = item.column ?? item.index;
|
|
178
178
|
|
|
@@ -201,9 +201,9 @@ export class GridKeyboardDelegate<T> implements KeyboardDelegate {
|
|
|
201
201
|
|
|
202
202
|
const rows = this.getBodyRows();
|
|
203
203
|
|
|
204
|
-
if (this.focusMode ===
|
|
204
|
+
if (this.focusMode === "row" || item.type === "item") {
|
|
205
205
|
// Find the row and get the next one
|
|
206
|
-
const rowKey = item.type ===
|
|
206
|
+
const rowKey = item.type === "item" ? key : item.parentKey;
|
|
207
207
|
const rowIndex = rows.findIndex((r) => r.key === rowKey);
|
|
208
208
|
|
|
209
209
|
if (rowIndex >= 0 && rowIndex < rows.length - 1) {
|
|
@@ -218,7 +218,7 @@ export class GridKeyboardDelegate<T> implements KeyboardDelegate {
|
|
|
218
218
|
}
|
|
219
219
|
|
|
220
220
|
// Cell focus mode - get cell in same column of next row
|
|
221
|
-
if (item.type ===
|
|
221
|
+
if (item.type === "cell" && item.parentKey != null) {
|
|
222
222
|
const rowIndex = rows.findIndex((r) => r.key === item.parentKey);
|
|
223
223
|
const colIndex = item.column ?? item.index;
|
|
224
224
|
|
|
@@ -246,15 +246,15 @@ export class GridKeyboardDelegate<T> implements KeyboardDelegate {
|
|
|
246
246
|
if (!item) return null;
|
|
247
247
|
|
|
248
248
|
// In row focus mode, left/right might not be meaningful
|
|
249
|
-
if (this.focusMode ===
|
|
249
|
+
if (this.focusMode === "row") {
|
|
250
250
|
return null;
|
|
251
251
|
}
|
|
252
252
|
|
|
253
|
-
if (item.type ===
|
|
253
|
+
if (item.type === "cell" && item.parentKey != null) {
|
|
254
254
|
const children = [...this.collection.getChildren(item.parentKey)];
|
|
255
255
|
const colIndex = children.findIndex((c) => c.key === key);
|
|
256
256
|
|
|
257
|
-
if (this.direction ===
|
|
257
|
+
if (this.direction === "rtl") {
|
|
258
258
|
// RTL: left moves to higher index
|
|
259
259
|
if (colIndex < children.length - 1) {
|
|
260
260
|
return children[colIndex + 1].key;
|
|
@@ -278,15 +278,15 @@ export class GridKeyboardDelegate<T> implements KeyboardDelegate {
|
|
|
278
278
|
if (!item) return null;
|
|
279
279
|
|
|
280
280
|
// In row focus mode, left/right might not be meaningful
|
|
281
|
-
if (this.focusMode ===
|
|
281
|
+
if (this.focusMode === "row") {
|
|
282
282
|
return null;
|
|
283
283
|
}
|
|
284
284
|
|
|
285
|
-
if (item.type ===
|
|
285
|
+
if (item.type === "cell" && item.parentKey != null) {
|
|
286
286
|
const children = [...this.collection.getChildren(item.parentKey)];
|
|
287
287
|
const colIndex = children.findIndex((c) => c.key === key);
|
|
288
288
|
|
|
289
|
-
if (this.direction ===
|
|
289
|
+
if (this.direction === "rtl") {
|
|
290
290
|
// RTL: right moves to lower index
|
|
291
291
|
if (colIndex > 0) {
|
|
292
292
|
return children[colIndex - 1].key;
|
|
@@ -327,12 +327,12 @@ export class GridKeyboardDelegate<T> implements KeyboardDelegate {
|
|
|
327
327
|
// Find first non-disabled row at or before target
|
|
328
328
|
for (let i = targetIndex; i >= 0; i--) {
|
|
329
329
|
if (!this.isDisabled(rows[i].key)) {
|
|
330
|
-
if (this.focusMode ===
|
|
330
|
+
if (this.focusMode === "row" || item.type === "item") {
|
|
331
331
|
return rows[i].key;
|
|
332
332
|
}
|
|
333
333
|
|
|
334
334
|
// Cell focus mode - return cell at same column
|
|
335
|
-
const colIndex = item.type ===
|
|
335
|
+
const colIndex = item.type === "cell" ? (item.column ?? item.index) : 0;
|
|
336
336
|
const children = [...this.collection.getChildren(rows[i].key)];
|
|
337
337
|
const targetCol = Math.min(colIndex, children.length - 1);
|
|
338
338
|
if (targetCol >= 0) {
|
|
@@ -369,12 +369,12 @@ export class GridKeyboardDelegate<T> implements KeyboardDelegate {
|
|
|
369
369
|
// Find first non-disabled row at or after target
|
|
370
370
|
for (let i = targetIndex; i < rows.length; i++) {
|
|
371
371
|
if (!this.isDisabled(rows[i].key)) {
|
|
372
|
-
if (this.focusMode ===
|
|
372
|
+
if (this.focusMode === "row" || item.type === "item") {
|
|
373
373
|
return rows[i].key;
|
|
374
374
|
}
|
|
375
375
|
|
|
376
376
|
// Cell focus mode - return cell at same column
|
|
377
|
-
const colIndex = item.type ===
|
|
377
|
+
const colIndex = item.type === "cell" ? (item.column ?? item.index) : 0;
|
|
378
378
|
const children = [...this.collection.getChildren(rows[i].key)];
|
|
379
379
|
const targetCol = Math.min(colIndex, children.length - 1);
|
|
380
380
|
if (targetCol >= 0) {
|
|
@@ -406,7 +406,7 @@ export class GridKeyboardDelegate<T> implements KeyboardDelegate {
|
|
|
406
406
|
for (let i = startIndex; i < rows.length; i++) {
|
|
407
407
|
const row = rows[i];
|
|
408
408
|
if (!this.isDisabled(row.key)) {
|
|
409
|
-
const textValue = row.textValue?.toLowerCase() ??
|
|
409
|
+
const textValue = row.textValue?.toLowerCase() ?? "";
|
|
410
410
|
if (textValue.startsWith(searchLower)) {
|
|
411
411
|
return row.key;
|
|
412
412
|
}
|
|
@@ -417,7 +417,7 @@ export class GridKeyboardDelegate<T> implements KeyboardDelegate {
|
|
|
417
417
|
for (let i = 0; i < startIndex; i++) {
|
|
418
418
|
const row = rows[i];
|
|
419
419
|
if (!this.isDisabled(row.key)) {
|
|
420
|
-
const textValue = row.textValue?.toLowerCase() ??
|
|
420
|
+
const textValue = row.textValue?.toLowerCase() ?? "";
|
|
421
421
|
if (textValue.startsWith(searchLower)) {
|
|
422
422
|
return row.key;
|
|
423
423
|
}
|
package/src/grid/createGrid.ts
CHANGED
|
@@ -3,12 +3,13 @@
|
|
|
3
3
|
* Based on @react-aria/grid/useGrid.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { createMemo, createSignal, type Accessor } from
|
|
7
|
-
import type { JSX } from
|
|
8
|
-
import { createId } from
|
|
9
|
-
import type { GridState, GridCollection, Key } from
|
|
10
|
-
import type { GridProps, GridAria, KeyboardDelegate } from
|
|
11
|
-
import { GridKeyboardDelegate } 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 { GridState, GridCollection, Key } from "@proyecto-viviana/solid-stately";
|
|
10
|
+
import type { GridProps, GridAria, KeyboardDelegate } from "./types";
|
|
11
|
+
import { GridKeyboardDelegate } from "./GridKeyboardDelegate";
|
|
12
|
+
import { useLocale } from "../i18n";
|
|
12
13
|
|
|
13
14
|
// Global map to store grid metadata for child components
|
|
14
15
|
const gridMap = new WeakMap<
|
|
@@ -34,9 +35,10 @@ export function getGridData<T>(state: GridState<T, GridCollection<T>>) {
|
|
|
34
35
|
export function createGrid<T extends object>(
|
|
35
36
|
props: Accessor<GridProps>,
|
|
36
37
|
state: Accessor<GridState<T, GridCollection<T>>>,
|
|
37
|
-
ref: Accessor<HTMLElement | null
|
|
38
|
+
ref: Accessor<HTMLElement | null>,
|
|
38
39
|
): GridAria {
|
|
39
40
|
const id = createId(props().id);
|
|
41
|
+
const locale = useLocale();
|
|
40
42
|
|
|
41
43
|
// Track focused state
|
|
42
44
|
const [_isFocused, setIsFocused] = createSignal(false);
|
|
@@ -54,8 +56,8 @@ export function createGrid<T extends object>(
|
|
|
54
56
|
collection: s.collection,
|
|
55
57
|
disabledKeys: s.disabledKeys,
|
|
56
58
|
ref,
|
|
57
|
-
focusMode: p.focusMode ??
|
|
58
|
-
direction:
|
|
59
|
+
focusMode: p.focusMode ?? "row",
|
|
60
|
+
direction: locale().direction,
|
|
59
61
|
});
|
|
60
62
|
});
|
|
61
63
|
|
|
@@ -91,7 +93,7 @@ export function createGrid<T extends object>(
|
|
|
91
93
|
const focusedKey = s.focusedKey;
|
|
92
94
|
if (focusedKey == null) {
|
|
93
95
|
// If nothing is focused, focus the first item
|
|
94
|
-
if (e.key ===
|
|
96
|
+
if (e.key === "ArrowDown" || e.key === "ArrowUp" || e.key === "Home" || e.key === "End") {
|
|
95
97
|
const firstKey = delegate.getFirstKey?.();
|
|
96
98
|
if (firstKey != null) {
|
|
97
99
|
e.preventDefault();
|
|
@@ -104,19 +106,19 @@ export function createGrid<T extends object>(
|
|
|
104
106
|
let nextKey: Key | null = null;
|
|
105
107
|
|
|
106
108
|
switch (e.key) {
|
|
107
|
-
case
|
|
109
|
+
case "ArrowDown":
|
|
108
110
|
nextKey = delegate.getKeyBelow?.(focusedKey) ?? null;
|
|
109
111
|
break;
|
|
110
|
-
case
|
|
112
|
+
case "ArrowUp":
|
|
111
113
|
nextKey = delegate.getKeyAbove?.(focusedKey) ?? null;
|
|
112
114
|
break;
|
|
113
|
-
case
|
|
115
|
+
case "ArrowLeft":
|
|
114
116
|
nextKey = delegate.getKeyLeftOf?.(focusedKey) ?? null;
|
|
115
117
|
break;
|
|
116
|
-
case
|
|
118
|
+
case "ArrowRight":
|
|
117
119
|
nextKey = delegate.getKeyRightOf?.(focusedKey) ?? null;
|
|
118
120
|
break;
|
|
119
|
-
case
|
|
121
|
+
case "Home":
|
|
120
122
|
if (e.ctrlKey) {
|
|
121
123
|
nextKey = delegate.getFirstKey?.() ?? null;
|
|
122
124
|
} else {
|
|
@@ -124,7 +126,7 @@ export function createGrid<T extends object>(
|
|
|
124
126
|
nextKey = delegate.getFirstKey?.(focusedKey) ?? null;
|
|
125
127
|
}
|
|
126
128
|
break;
|
|
127
|
-
case
|
|
129
|
+
case "End":
|
|
128
130
|
if (e.ctrlKey) {
|
|
129
131
|
nextKey = delegate.getLastKey?.() ?? null;
|
|
130
132
|
} else {
|
|
@@ -132,31 +134,31 @@ export function createGrid<T extends object>(
|
|
|
132
134
|
nextKey = delegate.getLastKey?.(focusedKey) ?? null;
|
|
133
135
|
}
|
|
134
136
|
break;
|
|
135
|
-
case
|
|
137
|
+
case "PageDown":
|
|
136
138
|
nextKey = delegate.getKeyPageBelow?.(focusedKey) ?? null;
|
|
137
139
|
break;
|
|
138
|
-
case
|
|
140
|
+
case "PageUp":
|
|
139
141
|
nextKey = delegate.getKeyPageAbove?.(focusedKey) ?? null;
|
|
140
142
|
break;
|
|
141
|
-
case
|
|
142
|
-
if (p.escapeKeyBehavior !==
|
|
143
|
+
case "Escape":
|
|
144
|
+
if (p.escapeKeyBehavior !== "none") {
|
|
143
145
|
s.clearSelection();
|
|
144
146
|
}
|
|
145
147
|
return;
|
|
146
|
-
case
|
|
148
|
+
case "a":
|
|
147
149
|
if (e.ctrlKey || e.metaKey) {
|
|
148
150
|
e.preventDefault();
|
|
149
|
-
if (s.selectionMode ===
|
|
151
|
+
if (s.selectionMode === "multiple") {
|
|
150
152
|
s.selectAll();
|
|
151
153
|
}
|
|
152
154
|
}
|
|
153
155
|
return;
|
|
154
|
-
case
|
|
155
|
-
case
|
|
156
|
+
case " ":
|
|
157
|
+
case "Enter":
|
|
156
158
|
e.preventDefault();
|
|
157
159
|
// Toggle selection or trigger action
|
|
158
|
-
if (s.selectionMode !==
|
|
159
|
-
if (e.shiftKey && s.selectionMode ===
|
|
160
|
+
if (s.selectionMode !== "none") {
|
|
161
|
+
if (e.shiftKey && s.selectionMode === "multiple") {
|
|
160
162
|
s.extendSelection(focusedKey);
|
|
161
163
|
} else {
|
|
162
164
|
s.toggleSelection(focusedKey);
|
|
@@ -180,7 +182,7 @@ export function createGrid<T extends object>(
|
|
|
180
182
|
s.setFocusedKey(nextKey);
|
|
181
183
|
|
|
182
184
|
// Handle shift+arrow for range selection
|
|
183
|
-
if (e.shiftKey && s.selectionMode ===
|
|
185
|
+
if (e.shiftKey && s.selectionMode === "multiple") {
|
|
184
186
|
s.extendSelection(nextKey);
|
|
185
187
|
}
|
|
186
188
|
}
|
|
@@ -223,8 +225,8 @@ export function createGrid<T extends object>(
|
|
|
223
225
|
// Warn if no label is provided
|
|
224
226
|
createMemo(() => {
|
|
225
227
|
const p = props();
|
|
226
|
-
if (!p[
|
|
227
|
-
console.warn(
|
|
228
|
+
if (!p["aria-label"] && !p["aria-labelledby"]) {
|
|
229
|
+
console.warn("Grid: An aria-label or aria-labelledby prop is required for accessibility.");
|
|
228
230
|
}
|
|
229
231
|
});
|
|
230
232
|
|
|
@@ -233,12 +235,12 @@ export function createGrid<T extends object>(
|
|
|
233
235
|
const s = state();
|
|
234
236
|
|
|
235
237
|
const baseProps: Record<string, unknown> = {
|
|
236
|
-
role:
|
|
238
|
+
role: "grid",
|
|
237
239
|
id,
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
240
|
+
"aria-label": p["aria-label"],
|
|
241
|
+
"aria-labelledby": p["aria-labelledby"],
|
|
242
|
+
"aria-describedby": p["aria-describedby"],
|
|
243
|
+
"aria-multiselectable": s.selectionMode === "multiple" ? "true" : undefined,
|
|
242
244
|
tabIndex: s.collection.size === 0 ? 0 : -1,
|
|
243
245
|
onKeyDown,
|
|
244
246
|
onFocus,
|
|
@@ -246,8 +248,8 @@ export function createGrid<T extends object>(
|
|
|
246
248
|
};
|
|
247
249
|
|
|
248
250
|
if (p.isVirtualized) {
|
|
249
|
-
baseProps[
|
|
250
|
-
baseProps[
|
|
251
|
+
baseProps["aria-rowcount"] = s.collection.rowCount;
|
|
252
|
+
baseProps["aria-colcount"] = s.collection.columnCount;
|
|
251
253
|
}
|
|
252
254
|
|
|
253
255
|
return baseProps as JSX.HTMLAttributes<HTMLElement>;
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
* Based on @react-aria/grid/useGridCell.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { createMemo, createSignal, type Accessor } from
|
|
7
|
-
import type { JSX } from
|
|
8
|
-
import type { GridState, GridCollection } from
|
|
9
|
-
import type { GridCellProps, GridCellAria } from
|
|
10
|
-
import { getGridData } from
|
|
6
|
+
import { createMemo, createSignal, type Accessor } from "solid-js";
|
|
7
|
+
import type { JSX } from "solid-js";
|
|
8
|
+
import type { GridState, GridCollection } from "@proyecto-viviana/solid-stately";
|
|
9
|
+
import type { GridCellProps, GridCellAria } from "./types";
|
|
10
|
+
import { getGridData } from "./createGrid";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Creates accessibility props for a grid cell.
|
|
@@ -15,7 +15,7 @@ import { getGridData } from './createGrid';
|
|
|
15
15
|
export function createGridCell<T extends object>(
|
|
16
16
|
props: Accessor<GridCellProps>,
|
|
17
17
|
state: Accessor<GridState<T, GridCollection<T>>>,
|
|
18
|
-
_ref: Accessor<HTMLElement | null
|
|
18
|
+
_ref: Accessor<HTMLElement | null>,
|
|
19
19
|
): GridCellAria {
|
|
20
20
|
const [isPressed, setIsPressed] = createSignal(false);
|
|
21
21
|
|
|
@@ -63,8 +63,8 @@ export function createGridCell<T extends object>(
|
|
|
63
63
|
const rowKey = node?.parentKey;
|
|
64
64
|
|
|
65
65
|
// Handle selection on parent row
|
|
66
|
-
if (rowKey != null && s.selectionMode !==
|
|
67
|
-
if (e.shiftKey && s.selectionMode ===
|
|
66
|
+
if (rowKey != null && s.selectionMode !== "none") {
|
|
67
|
+
if (e.shiftKey && s.selectionMode === "multiple") {
|
|
68
68
|
s.extendSelection(rowKey);
|
|
69
69
|
} else if (e.ctrlKey || e.metaKey) {
|
|
70
70
|
s.toggleSelection(rowKey);
|
|
@@ -91,7 +91,7 @@ export function createGridCell<T extends object>(
|
|
|
91
91
|
if (isDisabled()) return;
|
|
92
92
|
|
|
93
93
|
// Enter or Space triggers cell action
|
|
94
|
-
if (e.key ===
|
|
94
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
95
95
|
// Only handle if there's an action to trigger
|
|
96
96
|
const gridData = getGridData(s);
|
|
97
97
|
const onCellAction = gridData?.actions.onCellAction;
|
|
@@ -130,17 +130,17 @@ export function createGridCell<T extends object>(
|
|
|
130
130
|
const node = s.collection.getItem(p.key);
|
|
131
131
|
|
|
132
132
|
// Determine the role based on node type
|
|
133
|
-
let role: string =
|
|
134
|
-
if (node?.type ===
|
|
135
|
-
role =
|
|
136
|
-
} else if (node?.type ===
|
|
137
|
-
role =
|
|
133
|
+
let role: string = "gridcell";
|
|
134
|
+
if (node?.type === "rowheader") {
|
|
135
|
+
role = "rowheader";
|
|
136
|
+
} else if (node?.type === "column") {
|
|
137
|
+
role = "columnheader";
|
|
138
138
|
}
|
|
139
139
|
|
|
140
140
|
const baseProps: Record<string, unknown> = {
|
|
141
141
|
role,
|
|
142
|
-
|
|
143
|
-
|
|
142
|
+
"aria-disabled": isDisabled() || undefined,
|
|
143
|
+
"aria-selected": s.selectionMode !== "none" ? isSelected() : undefined,
|
|
144
144
|
tabIndex: isFocused() ? 0 : -1,
|
|
145
145
|
onClick,
|
|
146
146
|
onKeyDown,
|
|
@@ -151,12 +151,12 @@ export function createGridCell<T extends object>(
|
|
|
151
151
|
|
|
152
152
|
// Add column index for virtualized grids
|
|
153
153
|
if (p.isVirtualized && node?.column != null) {
|
|
154
|
-
baseProps[
|
|
154
|
+
baseProps["aria-colindex"] = node.column + 1; // aria-colindex is 1-based
|
|
155
155
|
}
|
|
156
156
|
|
|
157
157
|
// Add colspan if present
|
|
158
158
|
if (node?.colspan != null && node.colspan > 1) {
|
|
159
|
-
baseProps[
|
|
159
|
+
baseProps["aria-colspan"] = node.colspan;
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
return baseProps as JSX.HTMLAttributes<HTMLElement>;
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
* Based on @react-aria/grid/useGridRow.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { createMemo, createSignal, type Accessor } from
|
|
7
|
-
import type { JSX } from
|
|
8
|
-
import type { GridState, GridCollection } from
|
|
9
|
-
import type { GridRowProps, GridRowAria } from
|
|
10
|
-
import { getGridData } from
|
|
6
|
+
import { createMemo, createSignal, type Accessor } from "solid-js";
|
|
7
|
+
import type { JSX } from "solid-js";
|
|
8
|
+
import type { GridState, GridCollection } from "@proyecto-viviana/solid-stately";
|
|
9
|
+
import type { GridRowProps, GridRowAria } from "./types";
|
|
10
|
+
import { getGridData } from "./createGrid";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Creates accessibility props for a grid row.
|
|
@@ -15,7 +15,7 @@ import { getGridData } from './createGrid';
|
|
|
15
15
|
export function createGridRow<T extends object>(
|
|
16
16
|
props: Accessor<GridRowProps>,
|
|
17
17
|
state: Accessor<GridState<T, GridCollection<T>>>,
|
|
18
|
-
_ref: Accessor<HTMLElement | null
|
|
18
|
+
_ref: Accessor<HTMLElement | null>,
|
|
19
19
|
): GridRowAria {
|
|
20
20
|
const [isPressed, setIsPressed] = createSignal(false);
|
|
21
21
|
|
|
@@ -49,8 +49,8 @@ export function createGridRow<T extends object>(
|
|
|
49
49
|
const onRowAction = gridData?.actions.onRowAction;
|
|
50
50
|
|
|
51
51
|
// Handle selection
|
|
52
|
-
if (s.selectionMode !==
|
|
53
|
-
if (e.shiftKey && s.selectionMode ===
|
|
52
|
+
if (s.selectionMode !== "none") {
|
|
53
|
+
if (e.shiftKey && s.selectionMode === "multiple") {
|
|
54
54
|
s.extendSelection(p.key);
|
|
55
55
|
} else if (e.ctrlKey || e.metaKey) {
|
|
56
56
|
s.toggleSelection(p.key);
|
|
@@ -76,7 +76,7 @@ export function createGridRow<T extends object>(
|
|
|
76
76
|
|
|
77
77
|
if (isDisabled()) return;
|
|
78
78
|
|
|
79
|
-
if (e.key ===
|
|
79
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
80
80
|
e.preventDefault();
|
|
81
81
|
|
|
82
82
|
// Get grid metadata for actions
|
|
@@ -84,7 +84,7 @@ export function createGridRow<T extends object>(
|
|
|
84
84
|
const onRowAction = gridData?.actions.onRowAction;
|
|
85
85
|
|
|
86
86
|
// Handle selection
|
|
87
|
-
if (s.selectionMode !==
|
|
87
|
+
if (s.selectionMode !== "none") {
|
|
88
88
|
s.toggleSelection(p.key);
|
|
89
89
|
}
|
|
90
90
|
|
|
@@ -118,9 +118,9 @@ export function createGridRow<T extends object>(
|
|
|
118
118
|
const p = props();
|
|
119
119
|
|
|
120
120
|
const baseProps: Record<string, unknown> = {
|
|
121
|
-
role:
|
|
122
|
-
|
|
123
|
-
|
|
121
|
+
role: "row",
|
|
122
|
+
"aria-selected": s.selectionMode !== "none" ? isSelected() : undefined,
|
|
123
|
+
"aria-disabled": isDisabled() || undefined,
|
|
124
124
|
tabIndex: isFocused() ? 0 : -1,
|
|
125
125
|
onClick,
|
|
126
126
|
onKeyDown,
|
|
@@ -130,7 +130,7 @@ export function createGridRow<T extends object>(
|
|
|
130
130
|
};
|
|
131
131
|
|
|
132
132
|
if (p.isVirtualized && p.index != null) {
|
|
133
|
-
baseProps[
|
|
133
|
+
baseProps["aria-rowindex"] = p.index + 1; // aria-rowindex is 1-based
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
return baseProps as JSX.HTMLAttributes<HTMLElement>;
|
package/src/grid/index.ts
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
* Based on @react-aria/grid.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
export { createGrid, getGridData } from
|
|
7
|
-
export { createGridRow } from
|
|
8
|
-
export { createGridCell } from
|
|
9
|
-
export { GridKeyboardDelegate } from
|
|
6
|
+
export { createGrid, getGridData } from "./createGrid";
|
|
7
|
+
export { createGridRow } from "./createGridRow";
|
|
8
|
+
export { createGridCell } from "./createGridCell";
|
|
9
|
+
export { GridKeyboardDelegate } from "./GridKeyboardDelegate";
|
|
10
10
|
export type {
|
|
11
11
|
KeyboardDelegate,
|
|
12
12
|
GridProps,
|
|
@@ -15,4 +15,4 @@ export type {
|
|
|
15
15
|
GridRowAria,
|
|
16
16
|
GridCellProps,
|
|
17
17
|
GridCellAria,
|
|
18
|
-
} from
|
|
18
|
+
} from "./types";
|
package/src/grid/types.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Based on @react-aria/grid types.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type { JSX } from
|
|
7
|
-
import type { Key } from
|
|
6
|
+
import type { JSX } from "solid-js";
|
|
7
|
+
import type { Key } from "@proyecto-viviana/solid-stately";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Keyboard delegate interface for grid navigation.
|
|
@@ -43,21 +43,21 @@ export interface GridProps {
|
|
|
43
43
|
/** Custom keyboard delegate for navigation. */
|
|
44
44
|
keyboardDelegate?: KeyboardDelegate;
|
|
45
45
|
/** Whether focus should be on row or cell. */
|
|
46
|
-
focusMode?:
|
|
46
|
+
focusMode?: "row" | "cell";
|
|
47
47
|
/** Handler for row actions. */
|
|
48
48
|
onRowAction?: (key: Key) => void;
|
|
49
49
|
/** Handler for cell actions. */
|
|
50
50
|
onCellAction?: (key: Key) => void;
|
|
51
51
|
/** Escape key behavior. */
|
|
52
|
-
escapeKeyBehavior?:
|
|
52
|
+
escapeKeyBehavior?: "clearSelection" | "none";
|
|
53
53
|
/** Whether selection should occur on press up. */
|
|
54
54
|
shouldSelectOnPressUp?: boolean;
|
|
55
55
|
/** ARIA label for the grid. */
|
|
56
|
-
|
|
56
|
+
"aria-label"?: string;
|
|
57
57
|
/** ARIA labelledby for the grid. */
|
|
58
|
-
|
|
58
|
+
"aria-labelledby"?: string;
|
|
59
59
|
/** ARIA describedby for the grid. */
|
|
60
|
-
|
|
60
|
+
"aria-describedby"?: string;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
/**
|
|
@@ -111,7 +111,7 @@ export interface GridCellProps {
|
|
|
111
111
|
/** Whether the grid is virtualized. */
|
|
112
112
|
isVirtualized?: boolean;
|
|
113
113
|
/** Whether to focus cell or child element. */
|
|
114
|
-
focusMode?:
|
|
114
|
+
focusMode?: "child" | "cell";
|
|
115
115
|
/** Handler for cell action. */
|
|
116
116
|
onAction?: () => void;
|
|
117
117
|
}
|