@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
package/src/toast/createToast.ts
CHANGED
|
@@ -6,19 +6,19 @@
|
|
|
6
6
|
* Port of @react-aria/toast useToast.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { type JSX, createMemo } from
|
|
10
|
-
import { type QueuedToast, type ToastState } from
|
|
11
|
-
import { createId } from
|
|
12
|
-
|
|
13
|
-
// ============================================
|
|
14
|
-
// TYPES
|
|
15
|
-
// ============================================
|
|
9
|
+
import { type JSX, createMemo } from "solid-js";
|
|
10
|
+
import { type QueuedToast, type ToastState } from "@proyecto-viviana/solid-stately";
|
|
11
|
+
import { createId } from "../ssr";
|
|
16
12
|
|
|
17
13
|
export interface AriaToastProps<T> {
|
|
18
14
|
/** The toast to display. */
|
|
19
15
|
toast: QueuedToast<T>;
|
|
20
16
|
/** The toast state from createToastState. */
|
|
21
17
|
state: ToastState<T>;
|
|
18
|
+
/** Whether the rendered toast includes a title element. */
|
|
19
|
+
hasTitle?: boolean;
|
|
20
|
+
/** Whether the rendered toast includes a description element. */
|
|
21
|
+
hasDescription?: boolean;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
export interface ToastAria {
|
|
@@ -34,10 +34,6 @@ export interface ToastAria {
|
|
|
34
34
|
closeButtonProps: JSX.ButtonHTMLAttributes<HTMLButtonElement>;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
// ============================================
|
|
38
|
-
// IMPLEMENTATION
|
|
39
|
-
// ============================================
|
|
40
|
-
|
|
41
37
|
/**
|
|
42
38
|
* Provides the accessibility implementation for a Toast component.
|
|
43
39
|
*
|
|
@@ -70,6 +66,8 @@ export interface ToastAria {
|
|
|
70
66
|
export function createToast<T>(props: AriaToastProps<T>): ToastAria {
|
|
71
67
|
const titleId = createId();
|
|
72
68
|
const descriptionId = createId();
|
|
69
|
+
const hasTitle = props.hasTitle ?? true;
|
|
70
|
+
const hasDescription = props.hasDescription ?? true;
|
|
73
71
|
|
|
74
72
|
const close = () => {
|
|
75
73
|
props.state.close(props.toast.key);
|
|
@@ -77,19 +75,19 @@ export function createToast<T>(props: AriaToastProps<T>): ToastAria {
|
|
|
77
75
|
|
|
78
76
|
// Toast container - role="alertdialog" for screen readers
|
|
79
77
|
const toastProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({
|
|
80
|
-
role:
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
78
|
+
role: "alertdialog",
|
|
79
|
+
"aria-modal": "false",
|
|
80
|
+
"aria-labelledby": hasTitle ? titleId : undefined,
|
|
81
|
+
"aria-describedby": hasDescription ? descriptionId : undefined,
|
|
82
|
+
"data-animation": props.toast.animation,
|
|
83
|
+
"data-key": props.toast.key,
|
|
86
84
|
}));
|
|
87
85
|
|
|
88
86
|
// Content area with role="alert" for immediate announcement
|
|
89
87
|
const contentProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({
|
|
90
|
-
role:
|
|
91
|
-
|
|
92
|
-
|
|
88
|
+
role: "alert",
|
|
89
|
+
"aria-atomic": "true",
|
|
90
|
+
"aria-live": "assertive",
|
|
93
91
|
}));
|
|
94
92
|
|
|
95
93
|
// Title props
|
|
@@ -104,15 +102,25 @@ export function createToast<T>(props: AriaToastProps<T>): ToastAria {
|
|
|
104
102
|
|
|
105
103
|
// Close button
|
|
106
104
|
const closeButtonProps = createMemo<JSX.ButtonHTMLAttributes<HTMLButtonElement>>(() => ({
|
|
107
|
-
|
|
105
|
+
"aria-label": "Close",
|
|
108
106
|
onClick: close,
|
|
109
107
|
}));
|
|
110
108
|
|
|
111
109
|
return {
|
|
112
|
-
get toastProps() {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
get
|
|
116
|
-
|
|
110
|
+
get toastProps() {
|
|
111
|
+
return toastProps();
|
|
112
|
+
},
|
|
113
|
+
get contentProps() {
|
|
114
|
+
return contentProps();
|
|
115
|
+
},
|
|
116
|
+
get titleProps() {
|
|
117
|
+
return titleProps();
|
|
118
|
+
},
|
|
119
|
+
get descriptionProps() {
|
|
120
|
+
return descriptionProps();
|
|
121
|
+
},
|
|
122
|
+
get closeButtonProps() {
|
|
123
|
+
return closeButtonProps();
|
|
124
|
+
},
|
|
117
125
|
};
|
|
118
126
|
}
|
|
@@ -7,20 +7,20 @@
|
|
|
7
7
|
* Port of @react-aria/toast useToastRegion.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import { type JSX, createMemo } from
|
|
11
|
-
import { type ToastState } from
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
// TYPES
|
|
17
|
-
// ============================================
|
|
10
|
+
import { type Accessor, type JSX, createEffect, createMemo, onCleanup } from "solid-js";
|
|
11
|
+
import { type ToastState } from "@proyecto-viviana/solid-stately";
|
|
12
|
+
import { createHover } from "../interactions/createHover";
|
|
13
|
+
import { getInteractionModality } from "../interactions/createInteractionModality";
|
|
14
|
+
import { createLandmark } from "../landmark/createLandmark";
|
|
15
|
+
import { focusWithoutScrolling } from "../utils/focus";
|
|
18
16
|
|
|
19
17
|
export interface AriaToastRegionProps<T> {
|
|
20
18
|
/** The toast state from createToastState. */
|
|
21
19
|
state: ToastState<T>;
|
|
20
|
+
/** The toast region element. Required for landmark navigation and focus recovery. */
|
|
21
|
+
ref?: Accessor<HTMLElement | undefined>;
|
|
22
22
|
/** An accessible label for the region. */
|
|
23
|
-
|
|
23
|
+
"aria-label"?: string;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
export interface ToastRegionAria {
|
|
@@ -28,10 +28,6 @@ export interface ToastRegionAria {
|
|
|
28
28
|
regionProps: JSX.HTMLAttributes<HTMLElement>;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
// ============================================
|
|
32
|
-
// IMPLEMENTATION
|
|
33
|
-
// ============================================
|
|
34
|
-
|
|
35
31
|
/**
|
|
36
32
|
* Provides the accessibility implementation for a ToastRegion component.
|
|
37
33
|
*
|
|
@@ -60,41 +56,187 @@ export interface ToastRegionAria {
|
|
|
60
56
|
* ```
|
|
61
57
|
*/
|
|
62
58
|
export function createToastRegion<T>(props: AriaToastRegionProps<T>): ToastRegionAria {
|
|
63
|
-
|
|
59
|
+
const visibleToasts = () =>
|
|
60
|
+
typeof props.state.visibleToasts === "function" ? props.state.visibleToasts() : [];
|
|
61
|
+
const regionRef = () => props.ref?.();
|
|
62
|
+
const activeRegionRef = () => (visibleToasts().length > 0 ? regionRef() : undefined);
|
|
63
|
+
|
|
64
|
+
const { landmarkProps } = createLandmark(
|
|
65
|
+
() => ({
|
|
66
|
+
role: "region",
|
|
67
|
+
"aria-label": props["aria-label"] ?? "Notifications",
|
|
68
|
+
}),
|
|
69
|
+
activeRegionRef,
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
let isHovered = false;
|
|
73
|
+
let isFocused = false;
|
|
74
|
+
let toastElements: HTMLElement[] = [];
|
|
75
|
+
let previousVisibleToasts = visibleToasts();
|
|
76
|
+
let focusedToastIndex = -1;
|
|
77
|
+
let lastFocused: HTMLElement | null = null;
|
|
78
|
+
|
|
79
|
+
const updateTimers = () => {
|
|
80
|
+
if (isHovered || isFocused) {
|
|
81
|
+
props.state.pauseAll();
|
|
82
|
+
} else {
|
|
83
|
+
props.state.resumeAll();
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
64
87
|
const { hoverProps } = createHover({
|
|
65
88
|
onHoverStart: () => {
|
|
66
|
-
|
|
89
|
+
isHovered = true;
|
|
90
|
+
updateTimers();
|
|
67
91
|
},
|
|
68
92
|
onHoverEnd: () => {
|
|
69
|
-
|
|
93
|
+
isHovered = false;
|
|
94
|
+
updateTimers();
|
|
70
95
|
},
|
|
71
96
|
});
|
|
72
97
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
98
|
+
const getToastElements = () => {
|
|
99
|
+
const element = regionRef();
|
|
100
|
+
return element ? [...element.querySelectorAll<HTMLElement>('[role="alertdialog"]')] : [];
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
const restoreLastFocused = () => {
|
|
104
|
+
if (!lastFocused?.isConnected) {
|
|
105
|
+
lastFocused = null;
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (getInteractionModality() === "pointer") {
|
|
110
|
+
focusWithoutScrolling(lastFocused);
|
|
111
|
+
} else {
|
|
112
|
+
lastFocused.focus();
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
lastFocused = null;
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
const handleFocusIn = (e: FocusEvent) => {
|
|
119
|
+
const currentTarget = e.currentTarget as HTMLElement;
|
|
120
|
+
const relatedTarget = e.relatedTarget as HTMLElement | null;
|
|
121
|
+
|
|
122
|
+
if (!isFocused) {
|
|
123
|
+
isFocused = true;
|
|
124
|
+
if (relatedTarget && !currentTarget.contains(relatedTarget)) {
|
|
125
|
+
lastFocused = relatedTarget;
|
|
126
|
+
}
|
|
127
|
+
updateTimers();
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
toastElements = getToastElements();
|
|
131
|
+
const target =
|
|
132
|
+
e.target instanceof Element ? e.target.closest<HTMLElement>('[role="alertdialog"]') : null;
|
|
133
|
+
focusedToastIndex = target ? toastElements.findIndex((toast) => toast === target) : -1;
|
|
76
134
|
};
|
|
77
135
|
|
|
78
|
-
const
|
|
79
|
-
// Only resume if focus moved outside the region
|
|
136
|
+
const handleFocusOut = (e: FocusEvent) => {
|
|
80
137
|
const target = e.relatedTarget as HTMLElement | null;
|
|
81
138
|
const currentTarget = e.currentTarget as HTMLElement;
|
|
82
139
|
if (!target || !currentTarget.contains(target)) {
|
|
83
|
-
|
|
140
|
+
isFocused = false;
|
|
141
|
+
focusedToastIndex = -1;
|
|
142
|
+
updateTimers();
|
|
84
143
|
}
|
|
85
144
|
};
|
|
86
145
|
|
|
146
|
+
createEffect(() => {
|
|
147
|
+
const currentVisibleToasts = visibleToasts();
|
|
148
|
+
const element = regionRef();
|
|
149
|
+
|
|
150
|
+
if (focusedToastIndex === -1 || currentVisibleToasts.length === 0 || !element) {
|
|
151
|
+
toastElements = [];
|
|
152
|
+
previousVisibleToasts = currentVisibleToasts;
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
toastElements = getToastElements();
|
|
157
|
+
|
|
158
|
+
const unchanged =
|
|
159
|
+
previousVisibleToasts.length === currentVisibleToasts.length &&
|
|
160
|
+
currentVisibleToasts.every((toast, index) => toast.key === previousVisibleToasts[index]?.key);
|
|
161
|
+
|
|
162
|
+
if (unchanged) {
|
|
163
|
+
previousVisibleToasts = currentVisibleToasts;
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
const allToasts = previousVisibleToasts.map((toast, index) => ({
|
|
168
|
+
index,
|
|
169
|
+
isRemoved: !currentVisibleToasts.some((currentToast) => currentToast.key === toast.key),
|
|
170
|
+
}));
|
|
171
|
+
const removedFocusedToastIndex = allToasts.findIndex(
|
|
172
|
+
(toast) => toast.index === focusedToastIndex && toast.isRemoved,
|
|
173
|
+
);
|
|
174
|
+
|
|
175
|
+
if (removedFocusedToastIndex > -1) {
|
|
176
|
+
if (getInteractionModality() === "pointer" && lastFocused?.isConnected) {
|
|
177
|
+
focusWithoutScrolling(lastFocused);
|
|
178
|
+
} else {
|
|
179
|
+
let index = 0;
|
|
180
|
+
let nextToast: number | undefined;
|
|
181
|
+
let previousToast: number | undefined;
|
|
182
|
+
|
|
183
|
+
while (index <= removedFocusedToastIndex) {
|
|
184
|
+
if (!allToasts[index]?.isRemoved) {
|
|
185
|
+
previousToast = Math.max(0, index - 1);
|
|
186
|
+
}
|
|
187
|
+
index++;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
while (index < allToasts.length) {
|
|
191
|
+
if (!allToasts[index]?.isRemoved) {
|
|
192
|
+
nextToast = index - 1;
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
index++;
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
if (previousToast === undefined && nextToast === undefined) {
|
|
199
|
+
previousToast = 0;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
if (
|
|
203
|
+
previousToast !== undefined &&
|
|
204
|
+
previousToast >= 0 &&
|
|
205
|
+
previousToast < toastElements.length
|
|
206
|
+
) {
|
|
207
|
+
focusWithoutScrolling(toastElements[previousToast]);
|
|
208
|
+
} else if (nextToast !== undefined && nextToast >= 0 && nextToast < toastElements.length) {
|
|
209
|
+
focusWithoutScrolling(toastElements[nextToast]);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
previousVisibleToasts = currentVisibleToasts;
|
|
215
|
+
});
|
|
216
|
+
|
|
217
|
+
createEffect(() => {
|
|
218
|
+
if (visibleToasts().length === 0) {
|
|
219
|
+
restoreLastFocused();
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
onCleanup(() => {
|
|
224
|
+
restoreLastFocused();
|
|
225
|
+
});
|
|
226
|
+
|
|
87
227
|
// Region props
|
|
88
228
|
const regionProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({
|
|
229
|
+
...landmarkProps,
|
|
89
230
|
...hoverProps,
|
|
90
|
-
role: 'region' as const,
|
|
91
|
-
'aria-label': props['aria-label'] ?? 'Notifications',
|
|
92
231
|
tabIndex: -1,
|
|
93
|
-
|
|
94
|
-
|
|
232
|
+
"data-solidaria-top-layer": "true",
|
|
233
|
+
onFocusIn: handleFocusIn,
|
|
234
|
+
onFocusOut: handleFocusOut,
|
|
95
235
|
}));
|
|
96
236
|
|
|
97
237
|
return {
|
|
98
|
-
get regionProps() {
|
|
238
|
+
get regionProps() {
|
|
239
|
+
return regionProps();
|
|
240
|
+
},
|
|
99
241
|
};
|
|
100
242
|
}
|
package/src/toast/index.ts
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
export {
|
|
2
|
-
createToast,
|
|
3
|
-
type AriaToastProps,
|
|
4
|
-
type ToastAria,
|
|
5
|
-
} from './createToast';
|
|
1
|
+
export { createToast, type AriaToastProps, type ToastAria } from "./createToast";
|
|
6
2
|
|
|
7
3
|
export {
|
|
8
4
|
createToastRegion,
|
|
9
5
|
type AriaToastRegionProps,
|
|
10
6
|
type ToastRegionAria,
|
|
11
|
-
} from
|
|
7
|
+
} from "./createToastRegion";
|
|
@@ -6,19 +6,15 @@
|
|
|
6
6
|
* This is a 1:1 port of @react-aria/toggle's useToggle hook.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { JSX, Accessor, createEffect } from
|
|
10
|
-
import { createPress } from
|
|
11
|
-
import { createFocusable } from
|
|
12
|
-
import { mergeProps } from
|
|
13
|
-
import { filterDOMProps } from
|
|
14
|
-
import { type MaybeAccessor, access } from
|
|
15
|
-
import { isDevEnv } from
|
|
16
|
-
import { type ToggleState } from
|
|
17
|
-
import { type PressEvent } from
|
|
18
|
-
|
|
19
|
-
// ============================================
|
|
20
|
-
// TYPES
|
|
21
|
-
// ============================================
|
|
9
|
+
import { JSX, Accessor, createEffect } from "solid-js";
|
|
10
|
+
import { createPress } from "../interactions/createPress";
|
|
11
|
+
import { createFocusable } from "../interactions/createFocusable";
|
|
12
|
+
import { mergeProps } from "../utils/mergeProps";
|
|
13
|
+
import { filterDOMProps } from "../utils/filterDOMProps";
|
|
14
|
+
import { type MaybeAccessor, access } from "../utils/reactivity";
|
|
15
|
+
import { isDevEnv } from "../utils/env";
|
|
16
|
+
import { type ToggleState } from "@proyecto-viviana/solid-stately";
|
|
17
|
+
import { type PressEvent } from "../interactions/PressEvent";
|
|
22
18
|
|
|
23
19
|
export interface AriaToggleProps {
|
|
24
20
|
/** Whether the element should be selected (controlled). */
|
|
@@ -44,15 +40,15 @@ export interface AriaToggleProps {
|
|
|
44
40
|
/** The element's children. */
|
|
45
41
|
children?: JSX.Element;
|
|
46
42
|
/** Defines a string value that labels the current element. */
|
|
47
|
-
|
|
43
|
+
"aria-label"?: string;
|
|
48
44
|
/** Identifies the element (or elements) that labels the current element. */
|
|
49
|
-
|
|
45
|
+
"aria-labelledby"?: string;
|
|
50
46
|
/** Identifies the element (or elements) that describes the object. */
|
|
51
|
-
|
|
47
|
+
"aria-describedby"?: string;
|
|
52
48
|
/** Identifies the element (or elements) that provide an error message for the object. */
|
|
53
|
-
|
|
49
|
+
"aria-errormessage"?: string;
|
|
54
50
|
/** Identifies the element (or elements) whose contents or presence are controlled by the current element. */
|
|
55
|
-
|
|
51
|
+
"aria-controls"?: string;
|
|
56
52
|
/** The element's unique identifier. */
|
|
57
53
|
id?: string;
|
|
58
54
|
/** Handler that is called when the press is released over the target. */
|
|
@@ -100,17 +96,13 @@ export interface ToggleAria {
|
|
|
100
96
|
isInvalid: boolean;
|
|
101
97
|
}
|
|
102
98
|
|
|
103
|
-
// ============================================
|
|
104
|
-
// IMPLEMENTATION
|
|
105
|
-
// ============================================
|
|
106
|
-
|
|
107
99
|
/**
|
|
108
100
|
* Handles interactions for toggle elements, e.g. Checkboxes and Switches.
|
|
109
101
|
*/
|
|
110
102
|
export function createToggle(
|
|
111
103
|
props: MaybeAccessor<AriaToggleProps>,
|
|
112
104
|
state: ToggleState,
|
|
113
|
-
ref: () => HTMLInputElement | null
|
|
105
|
+
ref: () => HTMLInputElement | null,
|
|
114
106
|
): ToggleAria {
|
|
115
107
|
const getProps = () => access(props);
|
|
116
108
|
|
|
@@ -122,45 +114,93 @@ export function createToggle(
|
|
|
122
114
|
|
|
123
115
|
// Handle press state for keyboard interactions and cases where labelProps is not used.
|
|
124
116
|
const { pressProps, isPressed } = createPress({
|
|
125
|
-
get onPressStart() {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
get
|
|
129
|
-
|
|
130
|
-
|
|
117
|
+
get onPressStart() {
|
|
118
|
+
return getProps().onPressStart;
|
|
119
|
+
},
|
|
120
|
+
get onPressEnd() {
|
|
121
|
+
return getProps().onPressEnd;
|
|
122
|
+
},
|
|
123
|
+
get onPressChange() {
|
|
124
|
+
return getProps().onPressChange;
|
|
125
|
+
},
|
|
126
|
+
get onPress() {
|
|
127
|
+
return getProps().onPress;
|
|
128
|
+
},
|
|
129
|
+
get onPressUp() {
|
|
130
|
+
return getProps().onPressUp;
|
|
131
|
+
},
|
|
132
|
+
get onClick() {
|
|
133
|
+
return getProps().onClick;
|
|
134
|
+
},
|
|
135
|
+
get isDisabled() {
|
|
136
|
+
return isDisabled();
|
|
137
|
+
},
|
|
131
138
|
});
|
|
132
139
|
|
|
133
140
|
// Handle press state on the label.
|
|
134
141
|
const { pressProps: labelPressProps, isPressed: isLabelPressed } = createPress({
|
|
135
|
-
get onPressStart() {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
get
|
|
142
|
+
get onPressStart() {
|
|
143
|
+
return getProps().onPressStart;
|
|
144
|
+
},
|
|
145
|
+
get onPressEnd() {
|
|
146
|
+
return getProps().onPressEnd;
|
|
147
|
+
},
|
|
148
|
+
get onPressChange() {
|
|
149
|
+
return getProps().onPressChange;
|
|
150
|
+
},
|
|
151
|
+
get onPressUp() {
|
|
152
|
+
return getProps().onPressUp;
|
|
153
|
+
},
|
|
154
|
+
get onClick() {
|
|
155
|
+
return getProps().onClick;
|
|
156
|
+
},
|
|
139
157
|
onPress(e: PressEvent) {
|
|
140
158
|
getProps().onPress?.(e);
|
|
141
159
|
state.toggle();
|
|
142
160
|
ref()?.focus();
|
|
143
161
|
},
|
|
144
|
-
get isDisabled() {
|
|
162
|
+
get isDisabled() {
|
|
163
|
+
return isDisabled() || isReadOnly();
|
|
164
|
+
},
|
|
145
165
|
});
|
|
146
166
|
|
|
147
167
|
// Handle focusable - extract the relevant props for createFocusable
|
|
148
|
-
const { focusableProps } = createFocusable(
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
168
|
+
const { focusableProps } = createFocusable(
|
|
169
|
+
{
|
|
170
|
+
get isDisabled() {
|
|
171
|
+
return isDisabled();
|
|
172
|
+
},
|
|
173
|
+
get autoFocus() {
|
|
174
|
+
return getProps().autoFocus;
|
|
175
|
+
},
|
|
176
|
+
get onFocus() {
|
|
177
|
+
return getProps().onFocus;
|
|
178
|
+
},
|
|
179
|
+
get onBlur() {
|
|
180
|
+
return getProps().onBlur;
|
|
181
|
+
},
|
|
182
|
+
get onFocusChange() {
|
|
183
|
+
return getProps().onFocusChange;
|
|
184
|
+
},
|
|
185
|
+
get onKeyDown() {
|
|
186
|
+
return getProps().onKeyDown;
|
|
187
|
+
},
|
|
188
|
+
get onKeyUp() {
|
|
189
|
+
return getProps().onKeyUp;
|
|
190
|
+
},
|
|
191
|
+
get excludeFromTabOrder() {
|
|
192
|
+
return getProps().excludeFromTabOrder;
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
ref as unknown as (el: HTMLElement) => void,
|
|
196
|
+
);
|
|
158
197
|
|
|
159
198
|
// Combine press and focusable props for input
|
|
160
199
|
const interactions = mergeProps(pressProps, focusableProps);
|
|
161
200
|
|
|
162
201
|
// Filter DOM props
|
|
163
|
-
const domProps = () =>
|
|
202
|
+
const domProps = () =>
|
|
203
|
+
filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true });
|
|
164
204
|
|
|
165
205
|
// Handle input change
|
|
166
206
|
const onChange: JSX.EventHandler<HTMLInputElement, Event> = (e) => {
|
|
@@ -182,9 +222,11 @@ export function createToggle(
|
|
|
182
222
|
createEffect(() => {
|
|
183
223
|
const p = getProps();
|
|
184
224
|
const hasChildren = p.children != null;
|
|
185
|
-
const hasAriaLabel = p[
|
|
225
|
+
const hasAriaLabel = p["aria-label"] != null || p["aria-labelledby"] != null;
|
|
186
226
|
if (!hasChildren && !hasAriaLabel && isDevEnv()) {
|
|
187
|
-
console.warn(
|
|
227
|
+
console.warn(
|
|
228
|
+
"If you do not provide children, you must specify an aria-label for accessibility",
|
|
229
|
+
);
|
|
188
230
|
}
|
|
189
231
|
});
|
|
190
232
|
|
|
@@ -194,20 +236,20 @@ export function createToggle(
|
|
|
194
236
|
return {
|
|
195
237
|
labelProps: mergeProps(labelPressProps, {
|
|
196
238
|
onClick: (e: MouseEvent) => e.preventDefault(),
|
|
197
|
-
})
|
|
239
|
+
}) as JSX.LabelHTMLAttributes<HTMLLabelElement>,
|
|
198
240
|
get inputProps() {
|
|
199
241
|
const p = getProps();
|
|
200
242
|
return mergeProps(domProps(), {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
243
|
+
"aria-invalid": isInvalid() || undefined,
|
|
244
|
+
"aria-errormessage": p["aria-errormessage"],
|
|
245
|
+
"aria-controls": p["aria-controls"],
|
|
246
|
+
"aria-readonly": isReadOnly() || undefined,
|
|
205
247
|
onChange,
|
|
206
248
|
disabled: isDisabled(),
|
|
207
249
|
...(p.value == null ? {} : { value: p.value }),
|
|
208
250
|
name: p.name,
|
|
209
251
|
form: p.form,
|
|
210
|
-
type:
|
|
252
|
+
type: "checkbox" as const,
|
|
211
253
|
...interactions,
|
|
212
254
|
// Stop click propagation to prevent labelProps.onClick from calling preventDefault
|
|
213
255
|
// which would prevent the checkbox from toggling in JSDOM/testing-library environments
|
|
@@ -6,12 +6,8 @@
|
|
|
6
6
|
* This is a 1:1 port of @react-stately/toggle's useToggleState.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { createSignal, Accessor } from
|
|
10
|
-
import { type MaybeAccessor, access } from
|
|
11
|
-
|
|
12
|
-
// ============================================
|
|
13
|
-
// TYPES
|
|
14
|
-
// ============================================
|
|
9
|
+
import { createSignal, Accessor } from "solid-js";
|
|
10
|
+
import { type MaybeAccessor, access } from "../utils/reactivity";
|
|
15
11
|
|
|
16
12
|
export interface ToggleStateOptions {
|
|
17
13
|
/** Whether the element should be selected (controlled). */
|
|
@@ -35,10 +31,6 @@ export interface ToggleState {
|
|
|
35
31
|
toggle(): void;
|
|
36
32
|
}
|
|
37
33
|
|
|
38
|
-
// ============================================
|
|
39
|
-
// IMPLEMENTATION
|
|
40
|
-
// ============================================
|
|
41
|
-
|
|
42
34
|
/**
|
|
43
35
|
* Provides state management for toggle components like checkboxes and switches.
|
|
44
36
|
*/
|
package/src/toggle/index.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
export {
|
|
3
|
-
export type { ToggleStateOptions, ToggleState } from '@proyecto-viviana/solid-stately';
|
|
1
|
+
export { createToggleState } from "@proyecto-viviana/solid-stately";
|
|
2
|
+
export type { ToggleStateOptions, ToggleState } from "@proyecto-viviana/solid-stately";
|
|
4
3
|
|
|
5
4
|
// ARIA hook (solidaria-specific)
|
|
6
|
-
export { createToggle } from
|
|
7
|
-
export type { AriaToggleProps, ToggleAria } from
|
|
5
|
+
export { createToggle } from "./createToggle";
|
|
6
|
+
export type { AriaToggleProps, ToggleAria } from "./createToggle";
|