@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,11 +3,11 @@
|
|
|
3
3
|
* Based on @react-aria/gridlist/useGridList.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { createMemo, type Accessor } from
|
|
7
|
-
import type { JSX } from
|
|
8
|
-
import { createId } from
|
|
9
|
-
import type { GridState, GridCollection, Key } from
|
|
10
|
-
import type { AriaGridListProps, GridListAria } 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 { GridState, GridCollection, Key } from "@proyecto-viviana/solid-stately";
|
|
10
|
+
import type { AriaGridListProps, GridListAria } from "./types";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Metadata stored for a grid list instance.
|
|
@@ -15,6 +15,8 @@ import type { AriaGridListProps, GridListAria } from './types';
|
|
|
15
15
|
interface GridListData {
|
|
16
16
|
/** The generated ID for the grid list. */
|
|
17
17
|
gridListId: string;
|
|
18
|
+
/** How selection should behave when pressing an item. */
|
|
19
|
+
selectionBehavior: "replace" | "toggle";
|
|
18
20
|
/** Actions registered for the grid list. */
|
|
19
21
|
actions: {
|
|
20
22
|
onAction?: (key: Key) => void;
|
|
@@ -30,7 +32,7 @@ const gridListDataMap = new WeakMap<object, GridListData>();
|
|
|
30
32
|
* Gets the grid list data for a given state.
|
|
31
33
|
*/
|
|
32
34
|
export function getGridListData<T extends object, C extends GridCollection<T>>(
|
|
33
|
-
state: GridState<T, C
|
|
35
|
+
state: GridState<T, C>,
|
|
34
36
|
): GridListData | undefined {
|
|
35
37
|
return gridListDataMap.get(state);
|
|
36
38
|
}
|
|
@@ -41,7 +43,7 @@ export function getGridListData<T extends object, C extends GridCollection<T>>(
|
|
|
41
43
|
export function createGridList<T extends object, C extends GridCollection<T> = GridCollection<T>>(
|
|
42
44
|
props: Accessor<AriaGridListProps>,
|
|
43
45
|
state: Accessor<GridState<T, C>>,
|
|
44
|
-
_ref: Accessor<
|
|
46
|
+
_ref: Accessor<HTMLElement | null>,
|
|
45
47
|
): GridListAria {
|
|
46
48
|
// Generate a unique ID for the grid list
|
|
47
49
|
const gridListId = props().id ?? createId();
|
|
@@ -49,6 +51,9 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
|
|
|
49
51
|
// Store grid list data for child components
|
|
50
52
|
const gridListData: GridListData = {
|
|
51
53
|
gridListId,
|
|
54
|
+
get selectionBehavior() {
|
|
55
|
+
return props().selectionBehavior ?? "replace";
|
|
56
|
+
},
|
|
52
57
|
actions: {
|
|
53
58
|
get onAction() {
|
|
54
59
|
return props().onAction;
|
|
@@ -69,7 +74,7 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
|
|
|
69
74
|
if (p.isDisabled) return;
|
|
70
75
|
|
|
71
76
|
switch (e.key) {
|
|
72
|
-
case
|
|
77
|
+
case "ArrowDown": {
|
|
73
78
|
e.preventDefault();
|
|
74
79
|
if (focusedKey != null) {
|
|
75
80
|
const nextKey = collection.getKeyAfter(focusedKey);
|
|
@@ -84,7 +89,7 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
|
|
|
84
89
|
}
|
|
85
90
|
break;
|
|
86
91
|
}
|
|
87
|
-
case
|
|
92
|
+
case "ArrowUp": {
|
|
88
93
|
e.preventDefault();
|
|
89
94
|
if (focusedKey != null) {
|
|
90
95
|
const prevKey = collection.getKeyBefore(focusedKey);
|
|
@@ -99,7 +104,7 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
|
|
|
99
104
|
}
|
|
100
105
|
break;
|
|
101
106
|
}
|
|
102
|
-
case
|
|
107
|
+
case "Home": {
|
|
103
108
|
e.preventDefault();
|
|
104
109
|
const firstKey = collection.getFirstKey();
|
|
105
110
|
if (firstKey != null) {
|
|
@@ -107,7 +112,7 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
|
|
|
107
112
|
}
|
|
108
113
|
break;
|
|
109
114
|
}
|
|
110
|
-
case
|
|
115
|
+
case "End": {
|
|
111
116
|
e.preventDefault();
|
|
112
117
|
const lastKey = collection.getLastKey();
|
|
113
118
|
if (lastKey != null) {
|
|
@@ -115,16 +120,32 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
|
|
|
115
120
|
}
|
|
116
121
|
break;
|
|
117
122
|
}
|
|
118
|
-
case
|
|
119
|
-
case
|
|
120
|
-
if ((e.ctrlKey || e.metaKey) && s.selectionMode ===
|
|
123
|
+
case "a":
|
|
124
|
+
case "A": {
|
|
125
|
+
if ((e.ctrlKey || e.metaKey) && s.selectionMode === "multiple") {
|
|
121
126
|
e.preventDefault();
|
|
122
127
|
s.selectAll();
|
|
123
128
|
}
|
|
124
129
|
break;
|
|
125
130
|
}
|
|
126
|
-
case
|
|
127
|
-
|
|
131
|
+
case " ":
|
|
132
|
+
case "Space":
|
|
133
|
+
case "Spacebar": {
|
|
134
|
+
if (focusedKey != null && s.selectionMode !== "none" && !s.isDisabled(focusedKey)) {
|
|
135
|
+
e.preventDefault();
|
|
136
|
+
s.toggleSelection(focusedKey);
|
|
137
|
+
}
|
|
138
|
+
break;
|
|
139
|
+
}
|
|
140
|
+
case "Enter": {
|
|
141
|
+
if (focusedKey != null && !s.isDisabled(focusedKey)) {
|
|
142
|
+
e.preventDefault();
|
|
143
|
+
p.onAction?.(focusedKey);
|
|
144
|
+
}
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
case "Escape": {
|
|
148
|
+
if (s.selectionMode !== "none") {
|
|
128
149
|
e.preventDefault();
|
|
129
150
|
s.clearSelection();
|
|
130
151
|
}
|
|
@@ -156,13 +177,13 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
|
|
|
156
177
|
const s = state();
|
|
157
178
|
|
|
158
179
|
const baseProps: Record<string, unknown> = {
|
|
159
|
-
role:
|
|
180
|
+
role: "grid",
|
|
160
181
|
id: gridListId,
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
182
|
+
"aria-label": p["aria-label"],
|
|
183
|
+
"aria-labelledby": p["aria-labelledby"],
|
|
184
|
+
"aria-describedby": p["aria-describedby"],
|
|
185
|
+
"aria-multiselectable": s.selectionMode === "multiple" ? true : undefined,
|
|
186
|
+
"aria-disabled": p.isDisabled || undefined,
|
|
166
187
|
tabIndex: p.isDisabled ? undefined : 0,
|
|
167
188
|
onKeyDown,
|
|
168
189
|
onFocus,
|
|
@@ -171,10 +192,10 @@ export function createGridList<T extends object, C extends GridCollection<T> = G
|
|
|
171
192
|
|
|
172
193
|
// Add row count for virtualized lists
|
|
173
194
|
if (p.isVirtualized) {
|
|
174
|
-
baseProps[
|
|
195
|
+
baseProps["aria-rowcount"] = s.collection.rowCount;
|
|
175
196
|
}
|
|
176
197
|
|
|
177
|
-
return baseProps as JSX.HTMLAttributes<
|
|
198
|
+
return baseProps as JSX.HTMLAttributes<HTMLElement>;
|
|
178
199
|
});
|
|
179
200
|
|
|
180
201
|
return {
|
|
@@ -3,21 +3,26 @@
|
|
|
3
3
|
* Based on @react-aria/gridlist/useGridListItem.
|
|
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 { AriaGridListItemProps, GridListItemAria } from
|
|
10
|
-
import { getGridListData } 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 { AriaGridListItemProps, GridListItemAria } from "./types";
|
|
10
|
+
import { getGridListData } from "./createGridList";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Creates accessibility props for a grid list item.
|
|
14
14
|
*/
|
|
15
|
-
export function createGridListItem<
|
|
15
|
+
export function createGridListItem<
|
|
16
|
+
T extends object,
|
|
17
|
+
C extends GridCollection<T> = GridCollection<T>,
|
|
18
|
+
>(
|
|
16
19
|
props: Accessor<AriaGridListItemProps>,
|
|
17
20
|
state: Accessor<GridState<T, C>>,
|
|
18
|
-
_ref: Accessor<
|
|
21
|
+
_ref: Accessor<HTMLElement | null>,
|
|
19
22
|
): GridListItemAria {
|
|
20
23
|
const [isPressed, setIsPressed] = createSignal(false);
|
|
24
|
+
let isPointerPressed = false;
|
|
25
|
+
let ignoreNextClick = false;
|
|
21
26
|
|
|
22
27
|
const isSelected = createMemo(() => {
|
|
23
28
|
const s = state();
|
|
@@ -37,8 +42,7 @@ export function createGridListItem<T extends object, C extends GridCollection<T>
|
|
|
37
42
|
return s.focusedKey === p.node.key;
|
|
38
43
|
});
|
|
39
44
|
|
|
40
|
-
|
|
41
|
-
const onClick = (e: MouseEvent) => {
|
|
45
|
+
const handleActivation = (e: MouseEvent | PointerEvent) => {
|
|
42
46
|
const s = state();
|
|
43
47
|
const p = props();
|
|
44
48
|
|
|
@@ -49,14 +53,14 @@ export function createGridListItem<T extends object, C extends GridCollection<T>
|
|
|
49
53
|
const onAction = gridListData?.actions.onAction;
|
|
50
54
|
|
|
51
55
|
// Handle selection
|
|
52
|
-
if (s.selectionMode !==
|
|
53
|
-
if (e.shiftKey && s.selectionMode ===
|
|
56
|
+
if (s.selectionMode !== "none") {
|
|
57
|
+
if (e.shiftKey && s.selectionMode === "multiple") {
|
|
54
58
|
s.extendSelection(p.node.key);
|
|
55
|
-
} else if (e.ctrlKey || e.metaKey) {
|
|
59
|
+
} else if (p.selectionBehavior === "toggle" || e.ctrlKey || e.metaKey) {
|
|
56
60
|
s.toggleSelection(p.node.key);
|
|
57
61
|
} else {
|
|
58
62
|
// Replace selection or toggle if already selected
|
|
59
|
-
if (isSelected() && s.selectedKeys !==
|
|
63
|
+
if (isSelected() && s.selectedKeys !== "all") {
|
|
60
64
|
const selectedKeys = s.selectedKeys as Set<unknown>;
|
|
61
65
|
if (selectedKeys.size === 1) {
|
|
62
66
|
// Single selection, trigger action
|
|
@@ -84,13 +88,23 @@ export function createGridListItem<T extends object, C extends GridCollection<T>
|
|
|
84
88
|
}
|
|
85
89
|
};
|
|
86
90
|
|
|
91
|
+
// Handle click/press for selection and actions.
|
|
92
|
+
const onClick = (e: MouseEvent) => {
|
|
93
|
+
if (ignoreNextClick) {
|
|
94
|
+
ignoreNextClick = false;
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
handleActivation(e);
|
|
99
|
+
};
|
|
100
|
+
|
|
87
101
|
const onKeyDown = (e: KeyboardEvent) => {
|
|
88
102
|
const s = state();
|
|
89
103
|
const p = props();
|
|
90
104
|
|
|
91
105
|
if (isDisabled()) return;
|
|
92
106
|
|
|
93
|
-
if (e.key ===
|
|
107
|
+
if (e.key === "Enter") {
|
|
94
108
|
// Get grid list metadata for actions
|
|
95
109
|
const gridListData = getGridListData(s);
|
|
96
110
|
const onAction = gridListData?.actions.onAction;
|
|
@@ -106,9 +120,9 @@ export function createGridListItem<T extends object, C extends GridCollection<T>
|
|
|
106
120
|
p.onAction();
|
|
107
121
|
}
|
|
108
122
|
}
|
|
109
|
-
} else if (e.key ===
|
|
123
|
+
} else if (e.key === " " || e.key === "Space" || e.key === "Spacebar") {
|
|
110
124
|
// Space toggles selection
|
|
111
|
-
if (s.selectionMode !==
|
|
125
|
+
if (s.selectionMode !== "none") {
|
|
112
126
|
e.preventDefault();
|
|
113
127
|
s.toggleSelection(p.node.key);
|
|
114
128
|
}
|
|
@@ -122,10 +136,39 @@ export function createGridListItem<T extends object, C extends GridCollection<T>
|
|
|
122
136
|
};
|
|
123
137
|
|
|
124
138
|
const onPointerDown = () => {
|
|
139
|
+
if (isDisabled()) return;
|
|
140
|
+
isPointerPressed = true;
|
|
125
141
|
setIsPressed(true);
|
|
126
142
|
};
|
|
127
143
|
|
|
128
|
-
const onPointerUp = () => {
|
|
144
|
+
const onPointerUp = (e: PointerEvent) => {
|
|
145
|
+
const wasPointerPressed = isPointerPressed;
|
|
146
|
+
isPointerPressed = false;
|
|
147
|
+
setIsPressed(false);
|
|
148
|
+
|
|
149
|
+
if (!wasPointerPressed || isDisabled()) return;
|
|
150
|
+
|
|
151
|
+
const currentTarget = e.currentTarget;
|
|
152
|
+
const target = e.target;
|
|
153
|
+
if (
|
|
154
|
+
currentTarget instanceof HTMLElement &&
|
|
155
|
+
target instanceof Node &&
|
|
156
|
+
!currentTarget.contains(target)
|
|
157
|
+
) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
ignoreNextClick = true;
|
|
162
|
+
handleActivation(e);
|
|
163
|
+
};
|
|
164
|
+
|
|
165
|
+
const onPointerCancel = () => {
|
|
166
|
+
isPointerPressed = false;
|
|
167
|
+
setIsPressed(false);
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
const onPointerLeave = () => {
|
|
171
|
+
isPointerPressed = false;
|
|
129
172
|
setIsPressed(false);
|
|
130
173
|
};
|
|
131
174
|
|
|
@@ -135,28 +178,30 @@ export function createGridListItem<T extends object, C extends GridCollection<T>
|
|
|
135
178
|
const node = p.node;
|
|
136
179
|
|
|
137
180
|
const baseProps: Record<string, unknown> = {
|
|
138
|
-
role:
|
|
139
|
-
|
|
140
|
-
|
|
181
|
+
role: "row",
|
|
182
|
+
"aria-selected": s.selectionMode !== "none" ? isSelected() : undefined,
|
|
183
|
+
"aria-disabled": isDisabled() || undefined,
|
|
141
184
|
tabIndex: isFocused() ? 0 : -1,
|
|
142
185
|
onClick,
|
|
143
186
|
onKeyDown,
|
|
144
187
|
onFocus,
|
|
145
188
|
onPointerDown,
|
|
146
189
|
onPointerUp,
|
|
190
|
+
onPointerCancel,
|
|
191
|
+
onPointerLeave,
|
|
147
192
|
};
|
|
148
193
|
|
|
149
194
|
// Add aria-rowindex for virtualized lists
|
|
150
195
|
if (p.isVirtualized && node.rowIndex != null) {
|
|
151
|
-
baseProps[
|
|
196
|
+
baseProps["aria-rowindex"] = node.rowIndex + 1; // 1-based
|
|
152
197
|
}
|
|
153
198
|
|
|
154
|
-
return baseProps as JSX.HTMLAttributes<
|
|
199
|
+
return baseProps as JSX.HTMLAttributes<HTMLElement>;
|
|
155
200
|
});
|
|
156
201
|
|
|
157
202
|
const gridCellProps = createMemo(() => {
|
|
158
203
|
return {
|
|
159
|
-
role:
|
|
204
|
+
role: "gridcell",
|
|
160
205
|
} as JSX.HTMLAttributes<HTMLDivElement>;
|
|
161
206
|
});
|
|
162
207
|
|
|
@@ -3,18 +3,21 @@
|
|
|
3
3
|
* Based on @react-aria/gridlist.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { createMemo, type Accessor } from
|
|
7
|
-
import type { JSX } from
|
|
8
|
-
import { createId } from
|
|
9
|
-
import type { GridState, GridCollection } from
|
|
10
|
-
import type { AriaGridListSelectionCheckboxProps, GridListSelectionCheckboxAria } 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 { GridState, GridCollection } from "@proyecto-viviana/solid-stately";
|
|
10
|
+
import type { AriaGridListSelectionCheckboxProps, GridListSelectionCheckboxAria } from "./types";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* Creates accessibility props for a grid list item selection checkbox.
|
|
14
14
|
*/
|
|
15
|
-
export function createGridListSelectionCheckbox<
|
|
15
|
+
export function createGridListSelectionCheckbox<
|
|
16
|
+
T extends object,
|
|
17
|
+
C extends GridCollection<T> = GridCollection<T>,
|
|
18
|
+
>(
|
|
16
19
|
props: Accessor<AriaGridListSelectionCheckboxProps>,
|
|
17
|
-
state: Accessor<GridState<T, C
|
|
20
|
+
state: Accessor<GridState<T, C>>,
|
|
18
21
|
): GridListSelectionCheckboxAria {
|
|
19
22
|
const checkboxId = createId();
|
|
20
23
|
|
|
@@ -41,11 +44,11 @@ export function createGridListSelectionCheckbox<T extends object, C extends Grid
|
|
|
41
44
|
const checkboxProps = createMemo(() => {
|
|
42
45
|
const baseProps: Record<string, unknown> = {
|
|
43
46
|
id: checkboxId,
|
|
44
|
-
type:
|
|
47
|
+
type: "checkbox",
|
|
45
48
|
checked: isSelected(),
|
|
46
49
|
disabled: isDisabled(),
|
|
47
50
|
onChange,
|
|
48
|
-
|
|
51
|
+
"aria-label": "Select",
|
|
49
52
|
};
|
|
50
53
|
|
|
51
54
|
return baseProps as JSX.InputHTMLAttributes<HTMLInputElement>;
|
package/src/gridlist/index.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* GridList ARIA hooks for solidaria.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
export { createGridList, getGridListData } from
|
|
6
|
-
export { createGridListItem } from
|
|
7
|
-
export { createGridListSelectionCheckbox } from
|
|
5
|
+
export { createGridList, getGridListData } from "./createGridList";
|
|
6
|
+
export { createGridListItem } from "./createGridListItem";
|
|
7
|
+
export { createGridListSelectionCheckbox } from "./createGridListSelectionCheckbox";
|
|
8
8
|
|
|
9
9
|
export type {
|
|
10
10
|
AriaGridListProps,
|
|
@@ -13,4 +13,4 @@ export type {
|
|
|
13
13
|
GridListItemAria,
|
|
14
14
|
AriaGridListSelectionCheckboxProps,
|
|
15
15
|
GridListSelectionCheckboxAria,
|
|
16
|
-
} from
|
|
16
|
+
} from "./types";
|
package/src/gridlist/types.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Based on @react-aria/gridlist types.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type { JSX } from
|
|
7
|
-
import type { Key, GridNode } from
|
|
6
|
+
import type { JSX } from "solid-js";
|
|
7
|
+
import type { Key, GridNode } from "@proyecto-viviana/solid-stately";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Props for the createGridList hook.
|
|
@@ -13,17 +13,19 @@ export interface AriaGridListProps {
|
|
|
13
13
|
/** ID for the grid list element. */
|
|
14
14
|
id?: string;
|
|
15
15
|
/** ARIA label for the grid list. */
|
|
16
|
-
|
|
16
|
+
"aria-label"?: string;
|
|
17
17
|
/** ARIA labelledby for the grid list. */
|
|
18
|
-
|
|
18
|
+
"aria-labelledby"?: string;
|
|
19
19
|
/** ARIA describedby for the grid list. */
|
|
20
|
-
|
|
20
|
+
"aria-describedby"?: string;
|
|
21
21
|
/** Whether the grid list uses virtual scrolling. */
|
|
22
22
|
isVirtualized?: boolean;
|
|
23
23
|
/** Handler for item actions. */
|
|
24
24
|
onAction?: (key: Key) => void;
|
|
25
25
|
/** Whether selection should occur on press up. */
|
|
26
26
|
shouldSelectOnPressUp?: boolean;
|
|
27
|
+
/** How selection should behave when pressing an item. */
|
|
28
|
+
selectionBehavior?: "replace" | "toggle";
|
|
27
29
|
/** Whether the grid list is disabled. */
|
|
28
30
|
isDisabled?: boolean;
|
|
29
31
|
}
|
|
@@ -33,7 +35,7 @@ export interface AriaGridListProps {
|
|
|
33
35
|
*/
|
|
34
36
|
export interface GridListAria {
|
|
35
37
|
/** Props to spread on the grid list element. */
|
|
36
|
-
gridProps: JSX.HTMLAttributes<
|
|
38
|
+
gridProps: JSX.HTMLAttributes<HTMLElement>;
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
/**
|
|
@@ -44,6 +46,8 @@ export interface AriaGridListItemProps {
|
|
|
44
46
|
node: GridNode<unknown>;
|
|
45
47
|
/** Whether the grid list is virtualized. */
|
|
46
48
|
isVirtualized?: boolean;
|
|
49
|
+
/** How selection should behave when pressing an item. */
|
|
50
|
+
selectionBehavior?: "replace" | "toggle";
|
|
47
51
|
/** Handler for item action. */
|
|
48
52
|
onAction?: () => void;
|
|
49
53
|
}
|
|
@@ -53,7 +57,7 @@ export interface AriaGridListItemProps {
|
|
|
53
57
|
*/
|
|
54
58
|
export interface GridListItemAria {
|
|
55
59
|
/** Props to spread on the item element. */
|
|
56
|
-
rowProps: JSX.HTMLAttributes<
|
|
60
|
+
rowProps: JSX.HTMLAttributes<HTMLElement>;
|
|
57
61
|
/** Props to spread on the grid cell wrapper. */
|
|
58
62
|
gridCellProps: JSX.HTMLAttributes<HTMLDivElement>;
|
|
59
63
|
/** Whether the item is selected. */
|
|
@@ -1,79 +1,66 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* createCollator hook for solidaria
|
|
3
|
-
*
|
|
4
|
-
* Provides localized string comparison/collation with caching.
|
|
5
|
-
*
|
|
6
|
-
* Port of @react-aria/i18n useCollator.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import { createMemo } from
|
|
10
|
-
import { useLocale } from
|
|
11
|
-
import { createCacheKey } from
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
*
|
|
68
|
-
* // Numeric sorting
|
|
69
|
-
* const numericCollator = createCollator({ numeric: true });
|
|
70
|
-
* // ['a1', 'a10', 'a2'].sort(numericCollator().compare) -> ['a1', 'a2', 'a10']
|
|
71
|
-
* ```
|
|
72
|
-
*/
|
|
73
|
-
export function createCollator(
|
|
74
|
-
options?: Intl.CollatorOptions
|
|
75
|
-
): () => Intl.Collator {
|
|
76
|
-
const locale = useLocale();
|
|
77
|
-
|
|
78
|
-
return createMemo(() => getCachedCollator(locale().locale, options));
|
|
79
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* createCollator hook for solidaria
|
|
3
|
+
*
|
|
4
|
+
* Provides localized string comparison/collation with caching.
|
|
5
|
+
*
|
|
6
|
+
* Port of @react-aria/i18n useCollator.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { createMemo } from "solid-js";
|
|
10
|
+
import { useLocale } from "./locale";
|
|
11
|
+
import { createCacheKey } from "./utils";
|
|
12
|
+
|
|
13
|
+
const collatorCache = new Map<string, Intl.Collator>();
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Gets or creates a cached collator.
|
|
17
|
+
*/
|
|
18
|
+
function getCachedCollator(locale: string, options?: Intl.CollatorOptions): Intl.Collator {
|
|
19
|
+
const cacheKey = createCacheKey(locale, options as Record<string, unknown>);
|
|
20
|
+
|
|
21
|
+
if (collatorCache.has(cacheKey)) {
|
|
22
|
+
return collatorCache.get(cacheKey)!;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
const collator = new Intl.Collator(locale, options);
|
|
26
|
+
collatorCache.set(cacheKey, collator);
|
|
27
|
+
return collator;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Provides localized string collation for the current locale.
|
|
32
|
+
* Useful for sorting strings according to locale-specific rules.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```tsx
|
|
36
|
+
* function SortedList(props: { items: string[] }) {
|
|
37
|
+
* const collator = createCollator();
|
|
38
|
+
*
|
|
39
|
+
* const sortedItems = () =>
|
|
40
|
+
* [...props.items].sort((a, b) => collator().compare(a, b));
|
|
41
|
+
*
|
|
42
|
+
* return (
|
|
43
|
+
* <ul>
|
|
44
|
+
* <For each={sortedItems()}>
|
|
45
|
+
* {(item) => <li>{item}</li>}
|
|
46
|
+
* </For>
|
|
47
|
+
* </ul>
|
|
48
|
+
* );
|
|
49
|
+
* }
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```tsx
|
|
54
|
+
* // Case-insensitive sorting
|
|
55
|
+
* const collator = createCollator({ sensitivity: 'base' });
|
|
56
|
+
*
|
|
57
|
+
* // Numeric sorting
|
|
58
|
+
* const numericCollator = createCollator({ numeric: true });
|
|
59
|
+
* // ['a1', 'a10', 'a2'].sort(numericCollator().compare) -> ['a1', 'a2', 'a10']
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export function createCollator(options?: Intl.CollatorOptions): () => Intl.Collator {
|
|
63
|
+
const locale = useLocale();
|
|
64
|
+
|
|
65
|
+
return createMemo(() => getCachedCollator(locale().locale, options));
|
|
66
|
+
}
|