@proyecto-viviana/solidaria 0.2.8 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -236
- package/dist/actiongroup/createActionGroup.d.ts +5 -5
- package/dist/actiongroup/createActionGroup.d.ts.map +1 -1
- package/dist/actiongroup/index.d.ts +1 -1
- package/dist/autocomplete/createAutocomplete.d.ts +10 -10
- package/dist/autocomplete/createAutocomplete.d.ts.map +1 -1
- package/dist/autocomplete/index.d.ts +1 -1
- package/dist/autocomplete/index.d.ts.map +1 -1
- package/dist/breadcrumbs/createBreadcrumbs.d.ts +9 -7
- package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +1 -1
- package/dist/breadcrumbs/index.d.ts +1 -1
- package/dist/button/createButton.d.ts +1 -1
- package/dist/button/createButton.d.ts.map +1 -1
- package/dist/button/createToggleButton.d.ts +3 -3
- package/dist/button/createToggleButtonGroup.d.ts +7 -7
- package/dist/button/createToggleButtonGroup.d.ts.map +1 -1
- package/dist/button/index.d.ts +6 -6
- package/dist/button/index.d.ts.map +1 -1
- package/dist/button/types.d.ts +18 -12
- package/dist/button/types.d.ts.map +1 -1
- package/dist/calendar/createCalendar.d.ts +15 -5
- package/dist/calendar/createCalendar.d.ts.map +1 -1
- package/dist/calendar/createCalendarCell.d.ts +6 -2
- package/dist/calendar/createCalendarCell.d.ts.map +1 -1
- package/dist/calendar/createCalendarGrid.d.ts +4 -4
- package/dist/calendar/createCalendarGrid.d.ts.map +1 -1
- package/dist/calendar/createRangeCalendar.d.ts +15 -5
- package/dist/calendar/createRangeCalendar.d.ts.map +1 -1
- package/dist/calendar/createRangeCalendarCell.d.ts +4 -2
- package/dist/calendar/createRangeCalendarCell.d.ts.map +1 -1
- package/dist/calendar/index.d.ts +5 -5
- package/dist/calendar/index.d.ts.map +1 -1
- package/dist/calendar/intl/index.d.ts +12 -0
- package/dist/calendar/intl/index.d.ts.map +1 -0
- package/dist/calendar/utils.d.ts +12 -0
- package/dist/calendar/utils.d.ts.map +1 -0
- package/dist/checkbox/createCheckbox.d.ts +6 -6
- package/dist/checkbox/createCheckbox.d.ts.map +1 -1
- package/dist/checkbox/createCheckboxGroup.d.ts +7 -7
- package/dist/checkbox/createCheckboxGroup.d.ts.map +1 -1
- package/dist/checkbox/createCheckboxGroupItem.d.ts +4 -4
- package/dist/checkbox/createCheckboxGroupItem.d.ts.map +1 -1
- package/dist/checkbox/createCheckboxGroupState.d.ts +2 -2
- package/dist/checkbox/createCheckboxGroupState.d.ts.map +1 -1
- package/dist/checkbox/index.d.ts +8 -8
- package/dist/checkbox/index.d.ts.map +1 -1
- package/dist/collections/index.d.ts +3 -3
- package/dist/collections/index.d.ts.map +1 -1
- package/dist/color/createColorArea.d.ts +3 -3
- package/dist/color/createColorArea.d.ts.map +1 -1
- package/dist/color/createColorField.d.ts +4 -4
- package/dist/color/createColorField.d.ts.map +1 -1
- package/dist/color/createColorSlider.d.ts +4 -4
- package/dist/color/createColorSlider.d.ts.map +1 -1
- package/dist/color/createColorSwatch.d.ts +2 -2
- package/dist/color/createColorSwatch.d.ts.map +1 -1
- package/dist/color/createColorWheel.d.ts +3 -3
- package/dist/color/createColorWheel.d.ts.map +1 -1
- package/dist/color/index.d.ts +6 -6
- package/dist/color/types.d.ts +98 -16
- package/dist/color/types.d.ts.map +1 -1
- package/dist/combobox/createComboBox.d.ts +10 -7
- package/dist/combobox/createComboBox.d.ts.map +1 -1
- package/dist/combobox/index.d.ts +1 -1
- package/dist/combobox/intl/index.d.ts +1 -1
- package/dist/datepicker/createDateField.d.ts +18 -6
- package/dist/datepicker/createDateField.d.ts.map +1 -1
- package/dist/datepicker/createDatePicker.d.ts +51 -5
- package/dist/datepicker/createDatePicker.d.ts.map +1 -1
- package/dist/datepicker/createDatePickerGroup.d.ts +19 -0
- package/dist/datepicker/createDatePickerGroup.d.ts.map +1 -0
- package/dist/datepicker/createDateRangePicker.d.ts +8 -6
- package/dist/datepicker/createDateRangePicker.d.ts.map +1 -1
- package/dist/datepicker/createDateSegment.d.ts +10 -2
- package/dist/datepicker/createDateSegment.d.ts.map +1 -1
- package/dist/datepicker/createTimeField.d.ts +11 -5
- package/dist/datepicker/createTimeField.d.ts.map +1 -1
- package/dist/datepicker/createTimeSegment.d.ts +2 -2
- package/dist/datepicker/createTimeSegment.d.ts.map +1 -1
- package/dist/datepicker/index.d.ts +7 -6
- package/dist/datepicker/index.d.ts.map +1 -1
- package/dist/dialog/createDialog.d.ts +5 -5
- package/dist/dialog/createDialog.d.ts.map +1 -1
- package/dist/dialog/index.d.ts +2 -2
- package/dist/dialog/index.d.ts.map +1 -1
- package/dist/dialog/types.d.ts +4 -4
- package/dist/disclosure/createDisclosure.d.ts +5 -2
- package/dist/disclosure/createDisclosure.d.ts.map +1 -1
- package/dist/disclosure/createDisclosureGroup.d.ts +4 -4
- package/dist/disclosure/createDisclosureGroup.d.ts.map +1 -1
- package/dist/disclosure/index.d.ts +2 -2
- package/dist/dnd/createDrag.d.ts +2 -2
- package/dist/dnd/createDrag.d.ts.map +1 -1
- package/dist/dnd/createDraggableCollection.d.ts +2 -2
- package/dist/dnd/createDraggableItem.d.ts +3 -3
- package/dist/dnd/createDraggableItem.d.ts.map +1 -1
- package/dist/dnd/createDrop.d.ts +2 -2
- package/dist/dnd/createDrop.d.ts.map +1 -1
- package/dist/dnd/createDroppableCollection.d.ts +26 -6
- package/dist/dnd/createDroppableCollection.d.ts.map +1 -1
- package/dist/dnd/createDroppableItem.d.ts +3 -3
- package/dist/dnd/index.d.ts +12 -12
- package/dist/dnd/index.d.ts.map +1 -1
- package/dist/dnd/types.d.ts +2 -2
- package/dist/dnd/types.d.ts.map +1 -1
- package/dist/dnd/utils.d.ts +1 -1
- package/dist/dnd/utils.d.ts.map +1 -1
- package/dist/focus/FocusScope.d.ts +1 -1
- package/dist/focus/FocusScope.d.ts.map +1 -1
- package/dist/focus/createAutoFocus.d.ts.map +1 -1
- package/dist/focus/createFocusRestore.d.ts.map +1 -1
- package/dist/focus/createVirtualFocus.d.ts +4 -4
- package/dist/focus/createVirtualFocus.d.ts.map +1 -1
- package/dist/focus/index.d.ts +4 -4
- package/dist/focus/index.d.ts.map +1 -1
- package/dist/form/createFormReset.d.ts +1 -1
- package/dist/form/createFormValidation.d.ts +3 -3
- package/dist/form/createFormValidation.d.ts.map +1 -1
- package/dist/form/index.d.ts +2 -2
- package/dist/form/index.d.ts.map +1 -1
- package/dist/grid/GridKeyboardDelegate.d.ts +5 -5
- package/dist/grid/createGrid.d.ts +3 -3
- package/dist/grid/createGridCell.d.ts +3 -3
- package/dist/grid/createGridRow.d.ts +3 -3
- package/dist/grid/index.d.ts +5 -5
- package/dist/grid/types.d.ts +8 -8
- package/dist/gridlist/createGridList.d.ts +6 -4
- package/dist/gridlist/createGridList.d.ts.map +1 -1
- package/dist/gridlist/createGridListItem.d.ts +4 -4
- package/dist/gridlist/createGridListItem.d.ts.map +1 -1
- package/dist/gridlist/createGridListSelectionCheckbox.d.ts +3 -3
- package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +1 -1
- package/dist/gridlist/index.d.ts +4 -4
- package/dist/gridlist/types.d.ts +11 -7
- package/dist/gridlist/types.d.ts.map +1 -1
- package/dist/i18n/createCollator.d.ts.map +1 -1
- package/dist/i18n/createDateFormatter.d.ts.map +1 -1
- package/dist/i18n/createFilter.d.ts.map +1 -1
- package/dist/i18n/createNumberFormatter.d.ts +1 -1
- package/dist/i18n/createNumberFormatter.d.ts.map +1 -1
- package/dist/i18n/createStringFormatter.d.ts +2 -2
- package/dist/i18n/createStringFormatter.d.ts.map +1 -1
- package/dist/i18n/index.d.ts +8 -8
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/i18n/locale.d.ts +2 -2
- package/dist/i18n/locale.d.ts.map +1 -1
- package/dist/i18n/utils.d.ts.map +1 -1
- package/dist/index.d.ts +52 -51
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18012 -16820
- package/dist/index.js.map +1 -1
- package/dist/index.jsx +18242 -0
- package/dist/index.jsx.map +1 -0
- package/dist/interactions/FocusableProvider.d.ts +2 -2
- package/dist/interactions/FocusableProvider.d.ts.map +1 -1
- package/dist/interactions/PressEvent.d.ts +2 -2
- package/dist/interactions/createFocus.d.ts +1 -1
- package/dist/interactions/createFocus.d.ts.map +1 -1
- package/dist/interactions/createFocusRing.d.ts +1 -1
- package/dist/interactions/createFocusRing.d.ts.map +1 -1
- package/dist/interactions/createFocusWithin.d.ts +1 -1
- package/dist/interactions/createFocusWithin.d.ts.map +1 -1
- package/dist/interactions/createFocusable.d.ts +3 -3
- package/dist/interactions/createFocusable.d.ts.map +1 -1
- package/dist/interactions/createHover.d.ts +5 -5
- package/dist/interactions/createHover.d.ts.map +1 -1
- package/dist/interactions/createInteractionModality.d.ts +3 -3
- package/dist/interactions/createInteractionModality.d.ts.map +1 -1
- package/dist/interactions/createKeyboard.d.ts +1 -1
- package/dist/interactions/createLongPress.d.ts +5 -5
- package/dist/interactions/createMove.d.ts +5 -5
- package/dist/interactions/createMove.d.ts.map +1 -1
- package/dist/interactions/createPress.d.ts +4 -4
- package/dist/interactions/createPress.d.ts.map +1 -1
- package/dist/interactions/index.d.ts +12 -12
- package/dist/interactions/index.d.ts.map +1 -1
- package/dist/label/createField.d.ts +4 -4
- package/dist/label/createField.d.ts.map +1 -1
- package/dist/label/createLabel.d.ts +7 -7
- package/dist/label/createLabel.d.ts.map +1 -1
- package/dist/label/createLabels.d.ts +1 -1
- package/dist/label/createLabels.d.ts.map +1 -1
- package/dist/label/index.d.ts +5 -5
- package/dist/landmark/createLandmark.d.ts +5 -5
- package/dist/landmark/createLandmark.d.ts.map +1 -1
- package/dist/landmark/index.d.ts +1 -1
- package/dist/link/createLink.d.ts +14 -8
- package/dist/link/createLink.d.ts.map +1 -1
- package/dist/link/index.d.ts +1 -1
- package/dist/listbox/createListBox.d.ts +11 -6
- package/dist/listbox/createListBox.d.ts.map +1 -1
- package/dist/listbox/createOption.d.ts +21 -4
- package/dist/listbox/createOption.d.ts.map +1 -1
- package/dist/listbox/index.d.ts +2 -2
- package/dist/listbox/index.d.ts.map +1 -1
- package/dist/live-announcer/announce.d.ts +2 -2
- package/dist/live-announcer/announce.d.ts.map +1 -1
- package/dist/live-announcer/index.d.ts +1 -1
- package/dist/menu/createMenu.d.ts +7 -7
- package/dist/menu/createMenu.d.ts.map +1 -1
- package/dist/menu/createMenuItem.d.ts +16 -4
- package/dist/menu/createMenuItem.d.ts.map +1 -1
- package/dist/menu/createMenuTrigger.d.ts +4 -4
- package/dist/menu/index.d.ts +3 -3
- package/dist/menu/index.d.ts.map +1 -1
- package/dist/meter/createMeter.d.ts +6 -6
- package/dist/meter/createMeter.d.ts.map +1 -1
- package/dist/meter/index.d.ts +1 -1
- package/dist/numberfield/createNumberField.d.ts +9 -8
- package/dist/numberfield/createNumberField.d.ts.map +1 -1
- package/dist/numberfield/index.d.ts +1 -1
- package/dist/overlays/ariaHideOutside.d.ts.map +1 -1
- package/dist/overlays/createModal.d.ts +3 -3
- package/dist/overlays/createModal.d.ts.map +1 -1
- package/dist/overlays/createOverlay.d.ts +1 -1
- package/dist/overlays/createOverlay.d.ts.map +1 -1
- package/dist/overlays/createOverlayTrigger.d.ts +6 -6
- package/dist/overlays/index.d.ts +6 -6
- package/dist/overlays/index.d.ts.map +1 -1
- package/dist/popover/calculatePosition.d.ts +4 -4
- package/dist/popover/calculatePosition.d.ts.map +1 -1
- package/dist/popover/createOverlayPosition.d.ts +3 -3
- package/dist/popover/createOverlayPosition.d.ts.map +1 -1
- package/dist/popover/createPopover.d.ts +4 -4
- package/dist/popover/createPopover.d.ts.map +1 -1
- package/dist/popover/index.d.ts +3 -3
- package/dist/progress/createProgressBar.d.ts +7 -5
- package/dist/progress/createProgressBar.d.ts.map +1 -1
- package/dist/progress/index.d.ts +1 -1
- package/dist/radio/createRadio.d.ts +7 -7
- package/dist/radio/createRadio.d.ts.map +1 -1
- package/dist/radio/createRadioGroup.d.ts +10 -10
- package/dist/radio/createRadioGroup.d.ts.map +1 -1
- package/dist/radio/createRadioGroupState.d.ts +3 -3
- package/dist/radio/createRadioGroupState.d.ts.map +1 -1
- package/dist/radio/index.d.ts +3 -3
- package/dist/radio/index.d.ts.map +1 -1
- package/dist/searchfield/createSearchField.d.ts +7 -7
- package/dist/searchfield/createSearchField.d.ts.map +1 -1
- package/dist/searchfield/index.d.ts +2 -2
- package/dist/select/createHiddenSelect.d.ts +4 -4
- package/dist/select/createHiddenSelect.d.ts.map +1 -1
- package/dist/select/createSelect.d.ts +14 -6
- package/dist/select/createSelect.d.ts.map +1 -1
- package/dist/select/index.d.ts +2 -2
- package/dist/select/index.d.ts.map +1 -1
- package/dist/selection/createTypeSelect.d.ts +2 -2
- package/dist/selection/index.d.ts +1 -1
- package/dist/separator/createSeparator.d.ts +9 -5
- package/dist/separator/createSeparator.d.ts.map +1 -1
- package/dist/separator/index.d.ts +1 -1
- package/dist/slider/createSlider.d.ts +11 -7
- package/dist/slider/createSlider.d.ts.map +1 -1
- package/dist/slider/index.d.ts +2 -2
- package/dist/ssr/index.d.ts +1 -1
- package/dist/ssr/index.d.ts.map +1 -1
- package/dist/steplist/createStepList.d.ts +36 -0
- package/dist/steplist/createStepList.d.ts.map +1 -0
- package/dist/steplist/index.d.ts +2 -0
- package/dist/steplist/index.d.ts.map +1 -0
- package/dist/switch/createSwitch.d.ts +6 -4
- package/dist/switch/createSwitch.d.ts.map +1 -1
- package/dist/switch/index.d.ts +1 -1
- package/dist/table/createTable.d.ts +3 -3
- package/dist/table/createTable.d.ts.map +1 -1
- package/dist/table/createTableCell.d.ts +3 -3
- package/dist/table/createTableCell.d.ts.map +1 -1
- package/dist/table/createTableColumnHeader.d.ts +3 -3
- package/dist/table/createTableColumnHeader.d.ts.map +1 -1
- package/dist/table/createTableColumnResize.d.ts +41 -0
- package/dist/table/createTableColumnResize.d.ts.map +1 -0
- package/dist/table/createTableHeaderRow.d.ts +3 -3
- package/dist/table/createTableRow.d.ts +3 -3
- package/dist/table/createTableRow.d.ts.map +1 -1
- package/dist/table/createTableRowGroup.d.ts +2 -2
- package/dist/table/createTableRowGroup.d.ts.map +1 -1
- package/dist/table/createTableSelectAllCheckbox.d.ts +3 -3
- package/dist/table/createTableSelectAllCheckbox.d.ts.map +1 -1
- package/dist/table/createTableSelectionCheckbox.d.ts +3 -3
- package/dist/table/index.d.ts +11 -9
- package/dist/table/index.d.ts.map +1 -1
- package/dist/table/types.d.ts +15 -7
- package/dist/table/types.d.ts.map +1 -1
- package/dist/tabs/createTabs.d.ts +28 -25
- package/dist/tabs/createTabs.d.ts.map +1 -1
- package/dist/tabs/index.d.ts +1 -1
- package/dist/tag/createTag.d.ts +2 -2
- package/dist/tag/createTag.d.ts.map +1 -1
- package/dist/tag/createTagGroup.d.ts +5 -5
- package/dist/tag/createTagGroup.d.ts.map +1 -1
- package/dist/tag/index.d.ts +2 -2
- package/dist/tag/index.d.ts.map +1 -1
- package/dist/textfield/createTextField.d.ts +17 -11
- package/dist/textfield/createTextField.d.ts.map +1 -1
- package/dist/textfield/index.d.ts +1 -1
- package/dist/textfield/index.d.ts.map +1 -1
- package/dist/toast/createToast.d.ts +2 -2
- package/dist/toast/createToast.d.ts.map +1 -1
- package/dist/toast/createToastRegion.d.ts +5 -3
- package/dist/toast/createToastRegion.d.ts.map +1 -1
- package/dist/toast/index.d.ts +2 -2
- package/dist/toast/index.d.ts.map +1 -1
- package/dist/toggle/createToggle.d.ts +9 -9
- package/dist/toggle/createToggle.d.ts.map +1 -1
- package/dist/toggle/createToggleState.d.ts +2 -2
- package/dist/toggle/createToggleState.d.ts.map +1 -1
- package/dist/toggle/index.d.ts +4 -4
- package/dist/toggle/index.d.ts.map +1 -1
- package/dist/toolbar/createToolbar.d.ts +9 -9
- package/dist/toolbar/createToolbar.d.ts.map +1 -1
- package/dist/toolbar/index.d.ts +1 -1
- package/dist/toolbar/index.d.ts.map +1 -1
- package/dist/tooltip/createTooltip.d.ts +5 -5
- package/dist/tooltip/createTooltip.d.ts.map +1 -1
- package/dist/tooltip/createTooltipTrigger.d.ts +10 -5
- package/dist/tooltip/createTooltipTrigger.d.ts.map +1 -1
- package/dist/tooltip/index.d.ts +2 -2
- package/dist/tree/createTree.d.ts +3 -3
- package/dist/tree/createTree.d.ts.map +1 -1
- package/dist/tree/createTreeItem.d.ts +4 -4
- package/dist/tree/createTreeItem.d.ts.map +1 -1
- package/dist/tree/createTreeSelectionCheckbox.d.ts +3 -3
- package/dist/tree/createTreeSelectionCheckbox.d.ts.map +1 -1
- package/dist/tree/index.d.ts +4 -4
- package/dist/tree/types.d.ts +10 -6
- package/dist/tree/types.d.ts.map +1 -1
- package/dist/utils/createDescription.d.ts +2 -2
- package/dist/utils/createDescription.d.ts.map +1 -1
- package/dist/utils/dom.d.ts.map +1 -1
- package/dist/utils/env.d.ts.map +1 -1
- package/dist/utils/focus.d.ts +1 -1
- package/dist/utils/focus.d.ts.map +1 -1
- package/dist/utils/geometry.d.ts.map +1 -1
- package/dist/utils/index.d.ts +12 -12
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/mergeProps.d.ts.map +1 -1
- package/dist/utils/reactivity.d.ts +1 -1
- package/dist/visually-hidden/createVisuallyHidden.d.ts +2 -2
- package/dist/visually-hidden/createVisuallyHidden.d.ts.map +1 -1
- package/dist/visually-hidden/index.d.ts +1 -1
- package/package.json +32 -32
- package/src/actiongroup/createActionGroup.ts +101 -91
- package/src/actiongroup/index.ts +1 -1
- package/src/autocomplete/createAutocomplete.ts +117 -134
- package/src/autocomplete/index.ts +1 -1
- package/src/breadcrumbs/createBreadcrumbs.ts +33 -42
- package/src/breadcrumbs/index.ts +1 -1
- package/src/button/createButton.ts +102 -73
- package/src/button/createToggleButton.ts +10 -10
- package/src/button/createToggleButtonGroup.ts +25 -32
- package/src/button/index.ts +6 -9
- package/src/button/types.ts +18 -12
- package/src/calendar/createCalendar.ts +62 -29
- package/src/calendar/createCalendarCell.ts +98 -46
- package/src/calendar/createCalendarGrid.ts +57 -35
- package/src/calendar/createRangeCalendar.ts +66 -31
- package/src/calendar/createRangeCalendarCell.ts +92 -31
- package/src/calendar/index.ts +5 -9
- package/src/calendar/intl/index.ts +210 -0
- package/src/calendar/utils.ts +227 -0
- package/src/checkbox/createCheckbox.ts +13 -21
- package/src/checkbox/createCheckboxGroup.ts +68 -44
- package/src/checkbox/createCheckboxGroupItem.ts +16 -27
- package/src/checkbox/createCheckboxGroupState.ts +3 -22
- package/src/checkbox/index.ts +8 -10
- package/src/collections/index.ts +33 -29
- package/src/color/createColorArea.ts +232 -154
- package/src/color/createColorField.ts +107 -58
- package/src/color/createColorSlider.ts +231 -73
- package/src/color/createColorSwatch.ts +38 -13
- package/src/color/createColorWheel.ts +208 -83
- package/src/color/index.ts +6 -6
- package/src/color/types.ts +98 -16
- package/src/combobox/createComboBox.ts +157 -100
- package/src/combobox/index.ts +1 -1
- package/src/combobox/intl/index.ts +5 -5
- package/src/datepicker/createDateField.ts +192 -39
- package/src/datepicker/createDatePicker.ts +260 -67
- package/src/datepicker/createDatePickerGroup.ts +149 -0
- package/src/datepicker/createDateRangePicker.ts +105 -57
- package/src/datepicker/createDateSegment.ts +183 -96
- package/src/datepicker/createTimeField.ts +38 -34
- package/src/datepicker/createTimeSegment.ts +67 -85
- package/src/datepicker/index.ts +13 -14
- package/src/dialog/createDialog.ts +45 -38
- package/src/dialog/index.ts +2 -2
- package/src/dialog/types.ts +4 -4
- package/src/disclosure/createDisclosure.ts +138 -33
- package/src/disclosure/createDisclosureGroup.ts +8 -21
- package/src/disclosure/index.ts +2 -2
- package/src/dnd/createDrag.ts +19 -25
- package/src/dnd/createDraggableCollection.ts +4 -4
- package/src/dnd/createDraggableItem.ts +20 -19
- package/src/dnd/createDrop.ts +42 -51
- package/src/dnd/createDroppableCollection.ts +290 -173
- package/src/dnd/createDroppableItem.ts +34 -34
- package/src/dnd/index.ts +23 -12
- package/src/dnd/types.ts +4 -7
- package/src/dnd/utils.ts +36 -49
- package/src/focus/FocusScope.tsx +155 -164
- package/src/focus/createAutoFocus.ts +4 -20
- package/src/focus/createFocusRestore.ts +15 -28
- package/src/focus/createVirtualFocus.ts +20 -36
- package/src/focus/index.ts +4 -8
- package/src/form/createFormReset.ts +4 -4
- package/src/form/createFormValidation.ts +20 -43
- package/src/form/index.ts +2 -5
- package/src/grid/GridKeyboardDelegate.ts +30 -30
- package/src/grid/createGrid.ts +36 -36
- package/src/grid/createGridCell.ts +18 -18
- package/src/grid/createGridRow.ts +14 -14
- package/src/grid/index.ts +5 -5
- package/src/grid/types.ts +8 -8
- package/src/gridlist/createGridList.ts +34 -29
- package/src/gridlist/createGridListItem.ts +68 -23
- package/src/gridlist/createGridListSelectionCheckbox.ts +12 -9
- package/src/gridlist/index.ts +4 -4
- package/src/gridlist/types.ts +11 -7
- package/src/i18n/createCollator.ts +5 -18
- package/src/i18n/createDateFormatter.ts +5 -13
- package/src/i18n/createFilter.ts +11 -24
- package/src/i18n/createNumberFormatter.ts +4 -6
- package/src/i18n/createStringFormatter.ts +19 -15
- package/src/i18n/index.ts +8 -11
- package/src/i18n/locale.tsx +15 -40
- package/src/i18n/utils.ts +35 -39
- package/src/index.ts +68 -169
- package/src/interactions/FocusableProvider.tsx +3 -7
- package/src/interactions/PressEvent.ts +4 -4
- package/src/interactions/createFocus.ts +12 -8
- package/src/interactions/createFocusRing.ts +21 -19
- package/src/interactions/createFocusWithin.ts +20 -13
- package/src/interactions/createFocusable.ts +15 -16
- package/src/interactions/createHover.ts +70 -55
- package/src/interactions/createInteractionModality.ts +75 -82
- package/src/interactions/createKeyboard.ts +2 -2
- package/src/interactions/createLongPress.ts +23 -23
- package/src/interactions/createMove.ts +72 -62
- package/src/interactions/createPress.ts +164 -87
- package/src/interactions/index.ts +24 -16
- package/src/label/createField.ts +18 -19
- package/src/label/createLabel.ts +18 -30
- package/src/label/createLabels.ts +8 -12
- package/src/label/index.ts +5 -5
- package/src/landmark/createLandmark.ts +30 -51
- package/src/landmark/index.ts +1 -1
- package/src/link/createLink.ts +83 -56
- package/src/link/index.ts +1 -1
- package/src/listbox/createListBox.ts +69 -58
- package/src/listbox/createOption.ts +83 -37
- package/src/listbox/index.ts +2 -6
- package/src/live-announcer/announce.ts +44 -71
- package/src/live-announcer/index.ts +1 -1
- package/src/menu/createMenu.ts +79 -50
- package/src/menu/createMenuItem.ts +79 -27
- package/src/menu/createMenuTrigger.ts +15 -15
- package/src/menu/index.ts +3 -12
- package/src/meter/createMeter.ts +7 -15
- package/src/meter/index.ts +1 -1
- package/src/numberfield/createNumberField.ts +138 -81
- package/src/numberfield/index.ts +1 -1
- package/src/overlays/ariaHideOutside.ts +14 -10
- package/src/overlays/createInteractOutside.ts +21 -18
- package/src/overlays/createModal.tsx +17 -17
- package/src/overlays/createOverlay.ts +38 -8
- package/src/overlays/createOverlayTrigger.ts +16 -16
- package/src/overlays/createPreventScroll.ts +46 -24
- package/src/overlays/index.ts +6 -17
- package/src/popover/calculatePosition.ts +115 -117
- package/src/popover/createOverlayPosition.ts +46 -40
- package/src/popover/createPopover.ts +42 -17
- package/src/popover/index.ts +3 -3
- package/src/progress/createProgressBar.ts +31 -32
- package/src/progress/index.ts +1 -1
- package/src/radio/createRadio.ts +95 -73
- package/src/radio/createRadioGroup.ts +83 -77
- package/src/radio/createRadioGroupState.ts +7 -31
- package/src/radio/index.ts +3 -8
- package/src/searchfield/createSearchField.ts +57 -29
- package/src/searchfield/index.ts +2 -2
- package/src/select/createHiddenSelect.tsx +57 -44
- package/src/select/createSelect.ts +128 -71
- package/src/select/index.ts +2 -7
- package/src/selection/createTypeSelect.ts +11 -11
- package/src/selection/index.ts +1 -1
- package/src/separator/createSeparator.ts +20 -25
- package/src/separator/index.ts +1 -1
- package/src/slider/createSlider.ts +93 -124
- package/src/slider/index.ts +2 -2
- package/src/ssr/index.tsx +8 -47
- package/src/steplist/createStepList.ts +106 -0
- package/src/steplist/index.ts +8 -0
- package/src/switch/createSwitch.ts +9 -14
- package/src/switch/index.ts +1 -1
- package/src/table/createTable.ts +152 -85
- package/src/table/createTableCell.ts +17 -16
- package/src/table/createTableColumnHeader.ts +67 -20
- package/src/table/createTableColumnResize.ts +256 -0
- package/src/table/createTableHeaderRow.ts +7 -7
- package/src/table/createTableRow.ts +149 -29
- package/src/table/createTableRowGroup.ts +5 -7
- package/src/table/createTableSelectAllCheckbox.ts +12 -11
- package/src/table/createTableSelectionCheckbox.ts +8 -8
- package/src/table/index.ts +14 -9
- package/src/table/types.ts +15 -7
- package/src/tabs/createTabs.ts +74 -92
- package/src/tabs/index.ts +1 -1
- package/src/tag/createTag.ts +52 -50
- package/src/tag/createTagGroup.ts +47 -41
- package/src/tag/index.ts +2 -6
- package/src/textfield/createTextField.ts +67 -35
- package/src/textfield/index.ts +1 -5
- package/src/toast/createToast.ts +28 -26
- package/src/toast/createToastRegion.ts +169 -26
- package/src/toast/index.ts +2 -6
- package/src/toggle/createToggle.ts +95 -53
- package/src/toggle/createToggleState.ts +2 -10
- package/src/toggle/index.ts +4 -5
- package/src/toolbar/createToolbar.ts +193 -210
- package/src/toolbar/index.ts +1 -1
- package/src/tooltip/createTooltip.ts +11 -24
- package/src/tooltip/createTooltipTrigger.ts +61 -49
- package/src/tooltip/index.ts +2 -2
- package/src/tree/createTree.ts +35 -37
- package/src/tree/createTreeItem.ts +29 -29
- package/src/tree/createTreeSelectionCheckbox.ts +11 -8
- package/src/tree/index.ts +4 -4
- package/src/tree/types.ts +10 -6
- package/src/utils/createDescription.ts +6 -23
- package/src/utils/dom.ts +61 -54
- package/src/utils/env.ts +9 -11
- package/src/utils/events.ts +7 -7
- package/src/utils/filterDOMProps.ts +49 -49
- package/src/utils/focus.ts +60 -68
- package/src/utils/geometry.ts +1 -4
- package/src/utils/globalListeners.ts +9 -9
- package/src/utils/index.ts +12 -22
- package/src/utils/mergeProps.ts +42 -15
- package/src/utils/platform.ts +2 -2
- package/src/utils/reactivity.ts +3 -3
- package/src/utils/textSelection.ts +16 -16
- package/src/visually-hidden/createVisuallyHidden.ts +16 -28
- package/src/visually-hidden/index.ts +1 -1
- package/dist/i18n/NumberFormatter.d.ts +0 -43
- package/dist/i18n/NumberFormatter.d.ts.map +0 -1
- package/dist/index.ssr.js +0 -17082
- package/dist/index.ssr.js.map +0 -1
- package/src/i18n/NumberFormatter.ts +0 -266
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
* Based on @react-aria/slider useSlider.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { type JSX, onCleanup, onMount } from
|
|
8
|
-
import { createLabel } from
|
|
9
|
-
import { createFocusRing } from
|
|
10
|
-
import { filterDOMProps } from
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import
|
|
15
|
-
import {
|
|
7
|
+
import { type JSX, onCleanup, onMount } from "solid-js";
|
|
8
|
+
import { createLabel } from "../label/createLabel";
|
|
9
|
+
import { createFocusRing } from "../interactions/createFocusRing";
|
|
10
|
+
import { filterDOMProps } from "../utils/filterDOMProps";
|
|
11
|
+
import { focusWithoutScrolling } from "../utils/focus";
|
|
12
|
+
import { mergeProps } from "../utils/mergeProps";
|
|
13
|
+
import { createId } from "../ssr";
|
|
14
|
+
import { access, type MaybeAccessor } from "../utils/reactivity";
|
|
15
|
+
import type { SliderState, SliderOrientation } from "@proyecto-viviana/solid-stately";
|
|
16
16
|
|
|
17
17
|
export interface AriaSliderProps {
|
|
18
18
|
/** An ID for the slider. */
|
|
@@ -22,13 +22,17 @@ export interface AriaSliderProps {
|
|
|
22
22
|
/** The label for the slider. */
|
|
23
23
|
label?: JSX.Element;
|
|
24
24
|
/** An accessible label for the slider when no visible label is provided. */
|
|
25
|
-
|
|
25
|
+
"aria-label"?: string;
|
|
26
26
|
/** The ID of an element that labels the slider. */
|
|
27
|
-
|
|
27
|
+
"aria-labelledby"?: string;
|
|
28
28
|
/** The ID of an element that describes the slider. */
|
|
29
|
-
|
|
29
|
+
"aria-describedby"?: string;
|
|
30
30
|
/** The orientation of the slider. */
|
|
31
31
|
orientation?: SliderOrientation;
|
|
32
|
+
/** The name for the form input. */
|
|
33
|
+
name?: string;
|
|
34
|
+
/** The form element this input belongs to. */
|
|
35
|
+
form?: string;
|
|
32
36
|
}
|
|
33
37
|
|
|
34
38
|
export interface SliderAria {
|
|
@@ -52,11 +56,11 @@ export interface SliderAria {
|
|
|
52
56
|
export function createSlider(
|
|
53
57
|
props: MaybeAccessor<AriaSliderProps>,
|
|
54
58
|
state: SliderState,
|
|
55
|
-
trackRef?: () => HTMLElement | null
|
|
59
|
+
trackRef?: () => HTMLElement | null,
|
|
60
|
+
inputRef?: () => HTMLInputElement | null,
|
|
56
61
|
): SliderAria {
|
|
57
62
|
const getProps = () => access(props);
|
|
58
63
|
const id = createId(getProps().id);
|
|
59
|
-
const locale = useLocale();
|
|
60
64
|
|
|
61
65
|
// Generate IDs for associated elements
|
|
62
66
|
const inputId = `${id}-input`;
|
|
@@ -74,13 +78,13 @@ export function createSlider(
|
|
|
74
78
|
get label() {
|
|
75
79
|
return getProps().label;
|
|
76
80
|
},
|
|
77
|
-
get
|
|
78
|
-
return getProps()[
|
|
81
|
+
get "aria-label"() {
|
|
82
|
+
return getProps()["aria-label"];
|
|
79
83
|
},
|
|
80
|
-
get
|
|
81
|
-
return getProps()[
|
|
84
|
+
get "aria-labelledby"() {
|
|
85
|
+
return getProps()["aria-labelledby"];
|
|
82
86
|
},
|
|
83
|
-
labelElementType:
|
|
87
|
+
labelElementType: "span",
|
|
84
88
|
});
|
|
85
89
|
|
|
86
90
|
// Focus ring for keyboard focus styling
|
|
@@ -97,7 +101,7 @@ export function createSlider(
|
|
|
97
101
|
if (!track) return 0;
|
|
98
102
|
|
|
99
103
|
const rect = track.getBoundingClientRect();
|
|
100
|
-
const isVertical = state.orientation ===
|
|
104
|
+
const isVertical = state.orientation === "vertical";
|
|
101
105
|
|
|
102
106
|
let position: number;
|
|
103
107
|
if (isVertical) {
|
|
@@ -123,6 +127,7 @@ export function createSlider(
|
|
|
123
127
|
|
|
124
128
|
const percent = getPositionFromPointer(e.clientX, e.clientY);
|
|
125
129
|
state.setValuePercent(percent);
|
|
130
|
+
focusWithoutScrolling(inputRef?.() ?? null);
|
|
126
131
|
state.setDragging(true);
|
|
127
132
|
};
|
|
128
133
|
|
|
@@ -144,56 +149,28 @@ export function createSlider(
|
|
|
144
149
|
}
|
|
145
150
|
|
|
146
151
|
currentPointerId = null;
|
|
152
|
+
focusWithoutScrolling(inputRef?.() ?? null);
|
|
147
153
|
state.setDragging(false);
|
|
148
154
|
};
|
|
149
155
|
|
|
150
|
-
// Keyboard navigation
|
|
156
|
+
// Keyboard navigation that is not consistently handled by the native range input.
|
|
151
157
|
const onThumbKeyDown = (e: KeyboardEvent) => {
|
|
152
158
|
if (state.isDisabled) return;
|
|
153
159
|
|
|
154
|
-
const isVertical = state.orientation === 'vertical';
|
|
155
|
-
const isRTL = locale().direction === 'rtl';
|
|
156
|
-
const shouldIncrementOnArrowRight = !isVertical && !isRTL;
|
|
157
|
-
const shouldIncrementOnArrowLeft = !isVertical && isRTL;
|
|
158
|
-
|
|
159
160
|
switch (e.key) {
|
|
160
|
-
case
|
|
161
|
-
case 'ArrowUp':
|
|
162
|
-
e.preventDefault();
|
|
163
|
-
if (
|
|
164
|
-
(e.key === 'ArrowRight' && shouldIncrementOnArrowRight) ||
|
|
165
|
-
(e.key === 'ArrowUp' && isVertical)
|
|
166
|
-
) {
|
|
167
|
-
state.increment();
|
|
168
|
-
} else {
|
|
169
|
-
state.decrement();
|
|
170
|
-
}
|
|
171
|
-
break;
|
|
172
|
-
case 'ArrowLeft':
|
|
173
|
-
case 'ArrowDown':
|
|
174
|
-
e.preventDefault();
|
|
175
|
-
if (
|
|
176
|
-
(e.key === 'ArrowLeft' && shouldIncrementOnArrowLeft) ||
|
|
177
|
-
(e.key === 'ArrowDown' && isVertical)
|
|
178
|
-
) {
|
|
179
|
-
state.increment();
|
|
180
|
-
} else {
|
|
181
|
-
state.decrement();
|
|
182
|
-
}
|
|
183
|
-
break;
|
|
184
|
-
case 'PageUp':
|
|
161
|
+
case "PageUp":
|
|
185
162
|
e.preventDefault();
|
|
186
163
|
state.increment(state.pageStep / state.step);
|
|
187
164
|
break;
|
|
188
|
-
case
|
|
165
|
+
case "PageDown":
|
|
189
166
|
e.preventDefault();
|
|
190
167
|
state.decrement(state.pageStep / state.step);
|
|
191
168
|
break;
|
|
192
|
-
case
|
|
169
|
+
case "Home":
|
|
193
170
|
e.preventDefault();
|
|
194
171
|
state.setValue(state.minValue);
|
|
195
172
|
break;
|
|
196
|
-
case
|
|
173
|
+
case "End":
|
|
197
174
|
e.preventDefault();
|
|
198
175
|
state.setValue(state.maxValue);
|
|
199
176
|
break;
|
|
@@ -216,6 +193,7 @@ export function createSlider(
|
|
|
216
193
|
e.preventDefault();
|
|
217
194
|
e.stopPropagation(); // Prevent track from also handling
|
|
218
195
|
currentPointerId = e.pointerId;
|
|
196
|
+
focusWithoutScrolling(inputRef?.() ?? null);
|
|
219
197
|
|
|
220
198
|
// Capture pointer on document for smooth dragging
|
|
221
199
|
document.body.setPointerCapture(e.pointerId);
|
|
@@ -241,27 +219,28 @@ export function createSlider(
|
|
|
241
219
|
}
|
|
242
220
|
|
|
243
221
|
currentPointerId = null;
|
|
222
|
+
focusWithoutScrolling(inputRef?.() ?? null);
|
|
244
223
|
state.setDragging(false);
|
|
245
224
|
};
|
|
246
225
|
|
|
247
226
|
// Set up global listeners on mount (client-side only)
|
|
248
227
|
onMount(() => {
|
|
249
|
-
if (typeof document ===
|
|
228
|
+
if (typeof document === "undefined") return;
|
|
250
229
|
|
|
251
|
-
document.addEventListener(
|
|
252
|
-
document.addEventListener(
|
|
253
|
-
document.addEventListener(
|
|
230
|
+
document.addEventListener("pointermove", onDocumentPointerMove);
|
|
231
|
+
document.addEventListener("pointerup", onDocumentPointerUp);
|
|
232
|
+
document.addEventListener("pointercancel", onDocumentPointerUp);
|
|
254
233
|
|
|
255
234
|
// Cleanup when component unmounts
|
|
256
235
|
onCleanup(() => {
|
|
257
|
-
document.removeEventListener(
|
|
258
|
-
document.removeEventListener(
|
|
259
|
-
document.removeEventListener(
|
|
236
|
+
document.removeEventListener("pointermove", onDocumentPointerMove);
|
|
237
|
+
document.removeEventListener("pointerup", onDocumentPointerUp);
|
|
238
|
+
document.removeEventListener("pointercancel", onDocumentPointerUp);
|
|
260
239
|
});
|
|
261
240
|
});
|
|
262
241
|
|
|
263
|
-
const labelledBy = () => (fieldProps as {
|
|
264
|
-
const ariaLabel = () => (fieldProps as {
|
|
242
|
+
const labelledBy = () => (fieldProps as { "aria-labelledby"?: string })["aria-labelledby"];
|
|
243
|
+
const ariaLabel = () => (fieldProps as { "aria-label"?: string })["aria-label"];
|
|
265
244
|
|
|
266
245
|
return {
|
|
267
246
|
get labelProps() {
|
|
@@ -272,10 +251,10 @@ export function createSlider(
|
|
|
272
251
|
domProps(),
|
|
273
252
|
fieldProps as Record<string, unknown>,
|
|
274
253
|
{
|
|
275
|
-
role:
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
} as Record<string, unknown
|
|
254
|
+
role: "group",
|
|
255
|
+
"data-disabled": state.isDisabled || undefined,
|
|
256
|
+
"data-orientation": state.orientation,
|
|
257
|
+
} as Record<string, unknown>,
|
|
279
258
|
) as JSX.HTMLAttributes<HTMLElement>;
|
|
280
259
|
},
|
|
281
260
|
get trackProps() {
|
|
@@ -285,79 +264,69 @@ export function createSlider(
|
|
|
285
264
|
onPointerUp: onTrackPointerUp,
|
|
286
265
|
onPointerCancel: onTrackPointerUp,
|
|
287
266
|
style: {
|
|
288
|
-
position:
|
|
289
|
-
|
|
267
|
+
position: "relative",
|
|
268
|
+
"touch-action": "none",
|
|
290
269
|
},
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
270
|
+
"data-disabled": state.isDisabled || undefined,
|
|
271
|
+
"data-orientation": state.orientation,
|
|
272
|
+
"data-dragging": state.isDragging() || undefined,
|
|
294
273
|
} as JSX.HTMLAttributes<HTMLElement>;
|
|
295
274
|
},
|
|
296
275
|
get thumbProps() {
|
|
297
276
|
const percent = state.getValuePercent();
|
|
298
|
-
const isVertical = state.orientation ===
|
|
277
|
+
const isVertical = state.orientation === "vertical";
|
|
278
|
+
|
|
279
|
+
return {
|
|
280
|
+
onPointerDown: onThumbPointerDown,
|
|
281
|
+
onKeyDown: onThumbKeyDown,
|
|
282
|
+
style: {
|
|
283
|
+
position: "absolute",
|
|
284
|
+
[isVertical ? "bottom" : "left"]: `${percent * 100}%`,
|
|
285
|
+
transform: isVertical ? "translateY(50%)" : "translateX(-50%)",
|
|
286
|
+
"touch-action": "none",
|
|
287
|
+
},
|
|
288
|
+
"data-disabled": state.isDisabled || undefined,
|
|
289
|
+
"data-dragging": state.isDragging() || undefined,
|
|
290
|
+
} as JSX.HTMLAttributes<HTMLElement>;
|
|
291
|
+
},
|
|
292
|
+
get inputProps() {
|
|
293
|
+
const p = getProps();
|
|
299
294
|
|
|
300
295
|
return mergeProps(
|
|
301
296
|
focusProps as Record<string, unknown>,
|
|
302
297
|
{
|
|
303
|
-
|
|
298
|
+
type: "range",
|
|
299
|
+
id: inputId,
|
|
300
|
+
min: state.minValue,
|
|
301
|
+
max: state.maxValue,
|
|
302
|
+
step: state.step,
|
|
303
|
+
value: state.value(),
|
|
304
|
+
name: p.name,
|
|
305
|
+
form: p.form,
|
|
306
|
+
disabled: state.isDisabled,
|
|
307
|
+
"aria-orientation": state.orientation,
|
|
308
|
+
"aria-valuetext": state.getFormattedValue(),
|
|
309
|
+
"aria-labelledby": labelledBy(),
|
|
310
|
+
"aria-label": labelledBy() ? undefined : ariaLabel(),
|
|
304
311
|
tabIndex: state.isDisabled ? undefined : 0,
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
onPointerDown: onThumbPointerDown,
|
|
314
|
-
onKeyDown: onThumbKeyDown,
|
|
312
|
+
onInput: (e: Event) => {
|
|
313
|
+
const target = e.target as HTMLInputElement;
|
|
314
|
+
state.setValue(parseFloat(target.value));
|
|
315
|
+
},
|
|
316
|
+
onChange: (e: Event) => {
|
|
317
|
+
const target = e.target as HTMLInputElement;
|
|
318
|
+
state.setValue(parseFloat(target.value));
|
|
319
|
+
},
|
|
315
320
|
onFocus,
|
|
316
321
|
onBlur,
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
[isVertical ? 'bottom' : 'left']: `${percent * 100}%`,
|
|
320
|
-
transform: isVertical ? 'translateY(50%)' : 'translateX(-50%)',
|
|
321
|
-
},
|
|
322
|
-
'data-disabled': state.isDisabled || undefined,
|
|
323
|
-
'data-dragging': state.isDragging() || undefined,
|
|
324
|
-
'data-focus-visible': isFocusVisible() || undefined,
|
|
325
|
-
} as Record<string, unknown>
|
|
326
|
-
) as JSX.HTMLAttributes<HTMLElement>;
|
|
327
|
-
},
|
|
328
|
-
get inputProps() {
|
|
329
|
-
return {
|
|
330
|
-
type: 'range',
|
|
331
|
-
id: inputId,
|
|
332
|
-
min: state.minValue,
|
|
333
|
-
max: state.maxValue,
|
|
334
|
-
step: state.step,
|
|
335
|
-
value: state.value(),
|
|
336
|
-
disabled: state.isDisabled,
|
|
337
|
-
'aria-hidden': true,
|
|
338
|
-
tabIndex: -1,
|
|
339
|
-
style: {
|
|
340
|
-
position: 'absolute',
|
|
341
|
-
width: '1px',
|
|
342
|
-
height: '1px',
|
|
343
|
-
padding: '0',
|
|
344
|
-
margin: '-1px',
|
|
345
|
-
overflow: 'hidden',
|
|
346
|
-
clip: 'rect(0, 0, 0, 0)',
|
|
347
|
-
'white-space': 'nowrap',
|
|
348
|
-
border: '0',
|
|
349
|
-
},
|
|
350
|
-
onChange: (e: Event) => {
|
|
351
|
-
const target = e.target as HTMLInputElement;
|
|
352
|
-
state.setValue(parseFloat(target.value));
|
|
353
|
-
},
|
|
354
|
-
} as JSX.InputHTMLAttributes<HTMLInputElement>;
|
|
322
|
+
} as Record<string, unknown>,
|
|
323
|
+
) as JSX.InputHTMLAttributes<HTMLInputElement>;
|
|
355
324
|
},
|
|
356
325
|
get outputProps() {
|
|
357
326
|
return {
|
|
358
327
|
id: outputId,
|
|
359
|
-
|
|
360
|
-
|
|
328
|
+
for: inputId,
|
|
329
|
+
"aria-live": "off",
|
|
361
330
|
} as JSX.HTMLAttributes<HTMLElement>;
|
|
362
331
|
},
|
|
363
332
|
};
|
package/src/slider/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { createSlider } from
|
|
2
|
-
export type { AriaSliderProps, SliderAria } from
|
|
1
|
+
export { createSlider } from "./createSlider";
|
|
2
|
+
export type { AriaSliderProps, SliderAria } from "./createSlider";
|
package/src/ssr/index.tsx
CHANGED
|
@@ -18,12 +18,8 @@ import {
|
|
|
18
18
|
onMount,
|
|
19
19
|
useContext,
|
|
20
20
|
createUniqueId,
|
|
21
|
-
} from
|
|
22
|
-
import { isServer } from
|
|
23
|
-
|
|
24
|
-
// ============================================
|
|
25
|
-
// TYPES
|
|
26
|
-
// ============================================
|
|
21
|
+
} from "solid-js";
|
|
22
|
+
import { isServer } from "solid-js/web";
|
|
27
23
|
|
|
28
24
|
export interface SSRProviderProps extends ParentProps {}
|
|
29
25
|
|
|
@@ -34,19 +30,11 @@ export interface SSRContextValue {
|
|
|
34
30
|
prefix: string;
|
|
35
31
|
}
|
|
36
32
|
|
|
37
|
-
// ============================================
|
|
38
|
-
// CONTEXT
|
|
39
|
-
// ============================================
|
|
40
|
-
|
|
41
33
|
const SSRContext = createContext<SSRContextValue>({
|
|
42
34
|
isSSR: isServer,
|
|
43
|
-
prefix:
|
|
35
|
+
prefix: "",
|
|
44
36
|
});
|
|
45
37
|
|
|
46
|
-
// ============================================
|
|
47
|
-
// BASIC UTILITIES
|
|
48
|
-
// ============================================
|
|
49
|
-
|
|
50
38
|
/**
|
|
51
39
|
* Returns whether the component is currently being server side rendered.
|
|
52
40
|
* Can be used to delay browser-specific rendering until after hydration.
|
|
@@ -92,10 +80,6 @@ export function createId(defaultId?: string): string {
|
|
|
92
80
|
return ctx.prefix ? `solidaria-${ctx.prefix}-${uniqueId}` : `solidaria-${uniqueId}`;
|
|
93
81
|
}
|
|
94
82
|
|
|
95
|
-
// ============================================
|
|
96
|
-
// SSR PROVIDER
|
|
97
|
-
// ============================================
|
|
98
|
-
|
|
99
83
|
/**
|
|
100
84
|
* Provides SSR context to the component tree.
|
|
101
85
|
*
|
|
@@ -130,17 +114,9 @@ export function SSRProvider(props: SSRProviderProps & { prefix?: string }): JSX.
|
|
|
130
114
|
: parentContext.prefix,
|
|
131
115
|
}));
|
|
132
116
|
|
|
133
|
-
return (
|
|
134
|
-
<SSRContext.Provider value={value()}>
|
|
135
|
-
{props.children}
|
|
136
|
-
</SSRContext.Provider>
|
|
137
|
-
);
|
|
117
|
+
return <SSRContext.Provider value={value()}>{props.children}</SSRContext.Provider>;
|
|
138
118
|
}
|
|
139
119
|
|
|
140
|
-
// ============================================
|
|
141
|
-
// HYDRATION STATE
|
|
142
|
-
// ============================================
|
|
143
|
-
|
|
144
120
|
/**
|
|
145
121
|
* Tracks whether the component is currently hydrating.
|
|
146
122
|
*
|
|
@@ -204,10 +180,6 @@ export function useIsSSR(): Accessor<boolean> {
|
|
|
204
180
|
return createHydrationState();
|
|
205
181
|
}
|
|
206
182
|
|
|
207
|
-
// ============================================
|
|
208
|
-
// SAFE BROWSER EFFECTS
|
|
209
|
-
// ============================================
|
|
210
|
-
|
|
211
183
|
/**
|
|
212
184
|
* Creates an effect that only runs on the client after hydration.
|
|
213
185
|
* This is a convenience wrapper that ensures browser-specific code
|
|
@@ -234,7 +206,7 @@ export function createBrowserEffect(fn: () => void | (() => void)): void {
|
|
|
234
206
|
|
|
235
207
|
createEffect(() => {
|
|
236
208
|
const cleanup = fn();
|
|
237
|
-
if (typeof cleanup ===
|
|
209
|
+
if (typeof cleanup === "function") {
|
|
238
210
|
onCleanup(cleanup);
|
|
239
211
|
}
|
|
240
212
|
});
|
|
@@ -259,10 +231,7 @@ export function createBrowserEffect(fn: () => void | (() => void)): void {
|
|
|
259
231
|
* }
|
|
260
232
|
* ```
|
|
261
233
|
*/
|
|
262
|
-
export function createBrowserValue<T>(
|
|
263
|
-
fn: () => T,
|
|
264
|
-
fallback: T
|
|
265
|
-
): Accessor<T> {
|
|
234
|
+
export function createBrowserValue<T>(fn: () => T, fallback: T): Accessor<T> {
|
|
266
235
|
if (isServer) {
|
|
267
236
|
return () => fallback;
|
|
268
237
|
}
|
|
@@ -276,10 +245,6 @@ export function createBrowserValue<T>(
|
|
|
276
245
|
return value;
|
|
277
246
|
}
|
|
278
247
|
|
|
279
|
-
// ============================================
|
|
280
|
-
// WINDOW/DOCUMENT SAFE ACCESS
|
|
281
|
-
// ============================================
|
|
282
|
-
|
|
283
248
|
/**
|
|
284
249
|
* Returns the window object if available, or undefined during SSR.
|
|
285
250
|
* Useful for accessing browser globals safely.
|
|
@@ -293,7 +258,7 @@ export function createBrowserValue<T>(
|
|
|
293
258
|
* ```
|
|
294
259
|
*/
|
|
295
260
|
export function getWindow(): Window | undefined {
|
|
296
|
-
if (typeof window !==
|
|
261
|
+
if (typeof window !== "undefined") {
|
|
297
262
|
return window;
|
|
298
263
|
}
|
|
299
264
|
return undefined;
|
|
@@ -312,7 +277,7 @@ export function getWindow(): Window | undefined {
|
|
|
312
277
|
* ```
|
|
313
278
|
*/
|
|
314
279
|
export function getDocument(): Document | undefined {
|
|
315
|
-
if (typeof document !==
|
|
280
|
+
if (typeof document !== "undefined") {
|
|
316
281
|
return document;
|
|
317
282
|
}
|
|
318
283
|
return undefined;
|
|
@@ -336,10 +301,6 @@ export function getOwnerWindow(el: Element | null | undefined): Window | undefin
|
|
|
336
301
|
return getOwnerDocument(el)?.defaultView ?? getWindow();
|
|
337
302
|
}
|
|
338
303
|
|
|
339
|
-
// ============================================
|
|
340
|
-
// PORTAL HELPERS
|
|
341
|
-
// ============================================
|
|
342
|
-
|
|
343
304
|
/**
|
|
344
305
|
* Gets the appropriate container for portals, with SSR safety.
|
|
345
306
|
* Returns the specified container, or document.body on the client,
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ARIA hooks for StepList components.
|
|
3
|
+
* Provides accessible step list and step item props.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { JSX } from "solid-js";
|
|
7
|
+
import type { StepListState } from "@proyecto-viviana/solid-stately";
|
|
8
|
+
import type { Key } from "@proyecto-viviana/solid-stately";
|
|
9
|
+
|
|
10
|
+
export interface AriaStepListProps {
|
|
11
|
+
/** Accessible label for the step list. */
|
|
12
|
+
"aria-label"?: string;
|
|
13
|
+
/** ID of element that labels the step list. */
|
|
14
|
+
"aria-labelledby"?: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface StepListAria {
|
|
18
|
+
/** Props for the step list container element. */
|
|
19
|
+
stepListProps: JSX.HTMLAttributes<HTMLOListElement>;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Creates ARIA props for a step list container.
|
|
24
|
+
*/
|
|
25
|
+
export function createStepList(props: AriaStepListProps, _state: StepListState): StepListAria {
|
|
26
|
+
return {
|
|
27
|
+
stepListProps: {
|
|
28
|
+
get "aria-label"() {
|
|
29
|
+
return props["aria-label"] ?? "Step List";
|
|
30
|
+
},
|
|
31
|
+
get "aria-labelledby"() {
|
|
32
|
+
return props["aria-labelledby"];
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface AriaStepProps {
|
|
39
|
+
/** The key of this step. */
|
|
40
|
+
key: Key;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export interface StepAria {
|
|
44
|
+
/** Props for the step element (anchor/link). */
|
|
45
|
+
stepProps: JSX.HTMLAttributes<HTMLAnchorElement>;
|
|
46
|
+
/** Accessible text describing the step state. */
|
|
47
|
+
stepStateText: string;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Creates ARIA props for an individual step within a step list.
|
|
52
|
+
*/
|
|
53
|
+
export function createStep(props: AriaStepProps, state: StepListState): StepAria {
|
|
54
|
+
const isSelected = () => state.selectedKey() === props.key;
|
|
55
|
+
const isCompleted = () => state.isCompleted(props.key);
|
|
56
|
+
const selectable = () => state.isSelectable(props.key);
|
|
57
|
+
|
|
58
|
+
const getStepStateText = (): string => {
|
|
59
|
+
if (isSelected()) return "Current";
|
|
60
|
+
if (isCompleted()) return "Completed";
|
|
61
|
+
return "Not completed";
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const handleClick: JSX.EventHandler<HTMLAnchorElement, MouseEvent> = (e) => {
|
|
65
|
+
e.preventDefault();
|
|
66
|
+
if (selectable()) {
|
|
67
|
+
state.setSelectedKey(props.key);
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const handleKeyDown: JSX.EventHandler<HTMLAnchorElement, KeyboardEvent> = (e) => {
|
|
72
|
+
// Prevent arrow key scrolling — tab order handles navigation
|
|
73
|
+
if (e.key === "ArrowUp" || e.key === "ArrowDown") {
|
|
74
|
+
e.preventDefault();
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
78
|
+
e.preventDefault();
|
|
79
|
+
if (selectable()) {
|
|
80
|
+
state.setSelectedKey(props.key);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
return {
|
|
86
|
+
get stepProps() {
|
|
87
|
+
return {
|
|
88
|
+
role: "link" as const,
|
|
89
|
+
get "aria-current"() {
|
|
90
|
+
return isSelected() ? ("step" as const) : undefined;
|
|
91
|
+
},
|
|
92
|
+
get "aria-disabled"() {
|
|
93
|
+
return !selectable() ? true : undefined;
|
|
94
|
+
},
|
|
95
|
+
get tabIndex() {
|
|
96
|
+
return selectable() ? 0 : undefined;
|
|
97
|
+
},
|
|
98
|
+
onClick: handleClick,
|
|
99
|
+
onKeyDown: handleKeyDown,
|
|
100
|
+
};
|
|
101
|
+
},
|
|
102
|
+
get stepStateText() {
|
|
103
|
+
return getStepStateText();
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
}
|
|
@@ -7,14 +7,10 @@
|
|
|
7
7
|
* This is a 1:1 port of @react-aria/switch's useSwitch hook.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import { JSX, Accessor } from
|
|
11
|
-
import { createToggle, type AriaToggleProps } from
|
|
12
|
-
import { type ToggleState } from
|
|
13
|
-
import { type MaybeAccessor } from
|
|
14
|
-
|
|
15
|
-
// ============================================
|
|
16
|
-
// TYPES
|
|
17
|
-
// ============================================
|
|
10
|
+
import { JSX, Accessor } from "solid-js";
|
|
11
|
+
import { createToggle, type AriaToggleProps } from "../toggle/createToggle";
|
|
12
|
+
import { type ToggleState } from "@proyecto-viviana/solid-stately";
|
|
13
|
+
import { type MaybeAccessor } from "../utils/reactivity";
|
|
18
14
|
|
|
19
15
|
export interface AriaSwitchProps extends AriaToggleProps {
|
|
20
16
|
// Switch uses the same props as toggle
|
|
@@ -33,12 +29,10 @@ export interface SwitchAria {
|
|
|
33
29
|
isDisabled: boolean;
|
|
34
30
|
/** Whether the switch is read only. */
|
|
35
31
|
isReadOnly: boolean;
|
|
32
|
+
/** Whether the switch is invalid. */
|
|
33
|
+
isInvalid: boolean;
|
|
36
34
|
}
|
|
37
35
|
|
|
38
|
-
// ============================================
|
|
39
|
-
// IMPLEMENTATION
|
|
40
|
-
// ============================================
|
|
41
|
-
|
|
42
36
|
/**
|
|
43
37
|
* Provides the behavior and accessibility implementation for a switch component.
|
|
44
38
|
* A switch is similar to a checkbox, but represents on/off values as opposed to selection.
|
|
@@ -46,7 +40,7 @@ export interface SwitchAria {
|
|
|
46
40
|
export function createSwitch(
|
|
47
41
|
props: MaybeAccessor<AriaSwitchProps>,
|
|
48
42
|
state: ToggleState,
|
|
49
|
-
ref: () => HTMLInputElement | null
|
|
43
|
+
ref: () => HTMLInputElement | null,
|
|
50
44
|
): SwitchAria {
|
|
51
45
|
// Don't destructure inputProps - it's a getter that needs to be evaluated each time
|
|
52
46
|
const toggle = createToggle(props, state, ref);
|
|
@@ -58,7 +52,7 @@ export function createSwitch(
|
|
|
58
52
|
const baseProps = toggle.inputProps;
|
|
59
53
|
return {
|
|
60
54
|
...baseProps,
|
|
61
|
-
role:
|
|
55
|
+
role: "switch" as const,
|
|
62
56
|
checked: toggle.isSelected(),
|
|
63
57
|
};
|
|
64
58
|
},
|
|
@@ -66,5 +60,6 @@ export function createSwitch(
|
|
|
66
60
|
isPressed: toggle.isPressed,
|
|
67
61
|
isDisabled: toggle.isDisabled,
|
|
68
62
|
isReadOnly: toggle.isReadOnly,
|
|
63
|
+
isInvalid: toggle.isInvalid,
|
|
69
64
|
};
|
|
70
65
|
}
|
package/src/switch/index.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { createSwitch, type AriaSwitchProps, type SwitchAria } from
|
|
1
|
+
export { createSwitch, type AriaSwitchProps, type SwitchAria } from "./createSwitch";
|