@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
|
@@ -8,17 +8,20 @@
|
|
|
8
8
|
* Port of @react-aria/focus useFocusRing.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
import {
|
|
12
|
+
type JSX,
|
|
13
|
+
type Accessor,
|
|
14
|
+
createSignal,
|
|
15
|
+
createEffect,
|
|
16
|
+
onCleanup,
|
|
17
|
+
createMemo,
|
|
18
|
+
} from "solid-js";
|
|
19
|
+
import { createFocus } from "./createFocus";
|
|
20
|
+
import { createFocusWithin } from "./createFocusWithin";
|
|
14
21
|
import {
|
|
15
22
|
createFocusVisibleListener,
|
|
16
23
|
isFocusVisible as isGlobalFocusVisible,
|
|
17
|
-
} from
|
|
18
|
-
|
|
19
|
-
// ============================================
|
|
20
|
-
// TYPES
|
|
21
|
-
// ============================================
|
|
24
|
+
} from "./createInteractionModality";
|
|
22
25
|
|
|
23
26
|
export interface FocusRingProps {
|
|
24
27
|
/** Whether the element is a text input. */
|
|
@@ -38,10 +41,6 @@ export interface FocusRingResult {
|
|
|
38
41
|
focusProps: JSX.HTMLAttributes<HTMLElement>;
|
|
39
42
|
}
|
|
40
43
|
|
|
41
|
-
// ============================================
|
|
42
|
-
// IMPLEMENTATION
|
|
43
|
-
// ============================================
|
|
44
|
-
|
|
45
44
|
/**
|
|
46
45
|
* Determines whether a focus ring should be visible for a given element.
|
|
47
46
|
*
|
|
@@ -55,15 +54,16 @@ export function createFocusRing(props: FocusRingProps = {}): FocusRingResult {
|
|
|
55
54
|
const { isTextInput = false, autoFocus = false, within = false } = props;
|
|
56
55
|
|
|
57
56
|
const [isFocused, setIsFocused] = createSignal(false);
|
|
58
|
-
const [focusVisibleFlag, setFocusVisibleFlag] = createSignal(
|
|
59
|
-
autoFocus || isGlobalFocusVisible()
|
|
60
|
-
);
|
|
57
|
+
const [focusVisibleFlag, setFocusVisibleFlag] = createSignal(autoFocus || isGlobalFocusVisible());
|
|
61
58
|
const isFocusVisible = createMemo(() => isFocused() && focusVisibleFlag());
|
|
62
59
|
|
|
63
60
|
createEffect(() => {
|
|
64
|
-
const cleanup = createFocusVisibleListener(
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
const cleanup = createFocusVisibleListener(
|
|
62
|
+
(visible) => {
|
|
63
|
+
setFocusVisibleFlag(visible);
|
|
64
|
+
},
|
|
65
|
+
{ isTextInput },
|
|
66
|
+
);
|
|
67
67
|
onCleanup(cleanup);
|
|
68
68
|
});
|
|
69
69
|
|
|
@@ -84,6 +84,8 @@ export function createFocusRing(props: FocusRingProps = {}): FocusRingResult {
|
|
|
84
84
|
return {
|
|
85
85
|
isFocused,
|
|
86
86
|
isFocusVisible,
|
|
87
|
-
focusProps: (within
|
|
87
|
+
focusProps: (within
|
|
88
|
+
? focusWithinResult.focusWithinProps
|
|
89
|
+
: focusResult.focusProps) as JSX.HTMLAttributes<HTMLElement>,
|
|
88
90
|
};
|
|
89
91
|
}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
* This is a 1-1 port of React-Aria's useFocusWithin hook adapted for SolidJS.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { JSX, onCleanup } from
|
|
8
|
-
import { getOwnerDocument, getEventTarget, nodeContains, createGlobalListeners } from
|
|
9
|
-
import { setEventTarget } from
|
|
7
|
+
import { JSX, onCleanup } from "solid-js";
|
|
8
|
+
import { getOwnerDocument, getEventTarget, nodeContains, createGlobalListeners } from "../utils";
|
|
9
|
+
import { setEventTarget } from "../utils/events";
|
|
10
10
|
|
|
11
11
|
export interface FocusWithinProps {
|
|
12
12
|
/** Whether the focus within events should be disabled. */
|
|
@@ -32,7 +32,10 @@ function getActiveElement(doc: Document): Element | null {
|
|
|
32
32
|
return activeElement;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
function createSyntheticBlurHandler(): (
|
|
35
|
+
function createSyntheticBlurHandler(): (
|
|
36
|
+
_e: FocusEvent,
|
|
37
|
+
target: Element,
|
|
38
|
+
) => (() => void) | undefined {
|
|
36
39
|
let isFocused = false;
|
|
37
40
|
let observer: MutationObserver | null = null;
|
|
38
41
|
|
|
@@ -54,7 +57,7 @@ function createSyntheticBlurHandler(): (_e: FocusEvent, target: Element) => (()
|
|
|
54
57
|
}
|
|
55
58
|
};
|
|
56
59
|
|
|
57
|
-
target.addEventListener(
|
|
60
|
+
target.addEventListener("focusout", onBlurHandler, { once: true });
|
|
58
61
|
|
|
59
62
|
observer = new MutationObserver(() => {
|
|
60
63
|
if (isFocused && (target as HTMLButtonElement).disabled) {
|
|
@@ -62,13 +65,14 @@ function createSyntheticBlurHandler(): (_e: FocusEvent, target: Element) => (()
|
|
|
62
65
|
observer?.disconnect();
|
|
63
66
|
observer = null;
|
|
64
67
|
const ownerDocument = target.ownerDocument;
|
|
65
|
-
const relatedTarget =
|
|
66
|
-
|
|
67
|
-
target.dispatchEvent(new FocusEvent(
|
|
68
|
+
const relatedTarget =
|
|
69
|
+
target === ownerDocument.activeElement ? null : ownerDocument.activeElement;
|
|
70
|
+
target.dispatchEvent(new FocusEvent("blur", { relatedTarget }));
|
|
71
|
+
target.dispatchEvent(new FocusEvent("focusout", { bubbles: true, relatedTarget }));
|
|
68
72
|
}
|
|
69
73
|
});
|
|
70
74
|
|
|
71
|
-
observer.observe(target, { attributes: true, attributeFilter: [
|
|
75
|
+
observer.observe(target, { attributes: true, attributeFilter: ["disabled"] });
|
|
72
76
|
|
|
73
77
|
return () => {
|
|
74
78
|
if (observer) {
|
|
@@ -158,13 +162,16 @@ export function createFocusWithin(props: FocusWithinProps = {}): FocusWithinResu
|
|
|
158
162
|
const currentTarget = e.currentTarget;
|
|
159
163
|
|
|
160
164
|
addGlobalListener(
|
|
161
|
-
|
|
165
|
+
"focus",
|
|
162
166
|
(focusEvent: Event) => {
|
|
163
|
-
if (
|
|
167
|
+
if (
|
|
168
|
+
isFocusWithin &&
|
|
169
|
+
!nodeContains(currentTarget, (focusEvent as FocusEvent).target as Element)
|
|
170
|
+
) {
|
|
164
171
|
// Create a synthetic blur event
|
|
165
172
|
const window = ownerDocument?.defaultView;
|
|
166
173
|
if (window) {
|
|
167
|
-
const nativeEvent = new window.FocusEvent(
|
|
174
|
+
const nativeEvent = new window.FocusEvent("blur", {
|
|
168
175
|
relatedTarget: (focusEvent as FocusEvent).target as Element,
|
|
169
176
|
});
|
|
170
177
|
setEventTarget(nativeEvent, currentTarget);
|
|
@@ -184,7 +191,7 @@ export function createFocusWithin(props: FocusWithinProps = {}): FocusWithinResu
|
|
|
184
191
|
}
|
|
185
192
|
}
|
|
186
193
|
},
|
|
187
|
-
{ capture: true }
|
|
194
|
+
{ capture: true },
|
|
188
195
|
);
|
|
189
196
|
}
|
|
190
197
|
};
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* This is a 1-1 port of React-Aria's useFocusable hook adapted for SolidJS.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { JSX, Accessor, createContext, useContext, onMount } from
|
|
8
|
-
import { createFocus, type FocusEvents } from
|
|
9
|
-
import { createKeyboard, type KeyboardEvents } from
|
|
10
|
-
import { mergeProps, focusSafely } from
|
|
7
|
+
import { JSX, Accessor, createContext, useContext, onMount } from "solid-js";
|
|
8
|
+
import { createFocus, type FocusEvents } from "./createFocus";
|
|
9
|
+
import { createKeyboard, type KeyboardEvents } from "./createKeyboard";
|
|
10
|
+
import { mergeProps, focusSafely } from "../utils";
|
|
11
11
|
|
|
12
12
|
export interface FocusableDOMProps {
|
|
13
13
|
/** Whether to exclude the element from the sequential tab order. */
|
|
@@ -46,8 +46,8 @@ export const FocusableContext = createContext<FocusableContextValue | null>(null
|
|
|
46
46
|
* Hook to consume the FocusableContext and sync the ref.
|
|
47
47
|
*/
|
|
48
48
|
function useFocusableContext(
|
|
49
|
-
setRef: (el: HTMLElement) => void
|
|
50
|
-
): Omit<FocusableContextValue,
|
|
49
|
+
setRef: (el: HTMLElement) => void,
|
|
50
|
+
): Omit<FocusableContextValue, "ref"> {
|
|
51
51
|
const context = useContext(FocusableContext) || {};
|
|
52
52
|
|
|
53
53
|
// If context has a ref, sync our ref to it
|
|
@@ -72,7 +72,7 @@ export interface FocusableProviderProps {
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
function isDisabledValue(isDisabled: Accessor<boolean> | boolean | undefined): boolean {
|
|
75
|
-
if (typeof isDisabled ===
|
|
75
|
+
if (typeof isDisabled === "function") {
|
|
76
76
|
return isDisabled();
|
|
77
77
|
}
|
|
78
78
|
return isDisabled ?? false;
|
|
@@ -106,7 +106,7 @@ function isDisabledValue(isDisabled: Accessor<boolean> | boolean | undefined): b
|
|
|
106
106
|
*/
|
|
107
107
|
export function createFocusable(
|
|
108
108
|
props: CreateFocusableProps = {},
|
|
109
|
-
ref?: (el: HTMLElement) => void
|
|
109
|
+
ref?: (el: HTMLElement) => void,
|
|
110
110
|
): FocusableResult {
|
|
111
111
|
let elementRef: HTMLElement | null = null;
|
|
112
112
|
let autoFocusDone = false;
|
|
@@ -146,20 +146,19 @@ export function createFocusable(
|
|
|
146
146
|
}
|
|
147
147
|
});
|
|
148
148
|
|
|
149
|
-
// Always set a tabIndex so that Safari allows focusing native buttons and inputs.
|
|
150
|
-
let tabIndex: number | undefined = props.excludeFromTabOrder ? -1 : 0;
|
|
151
|
-
if (isDisabledValue(props.isDisabled)) {
|
|
152
|
-
tabIndex = undefined;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
149
|
// Build final focusable props
|
|
156
150
|
const focusableProps = mergeProps(
|
|
157
151
|
{
|
|
158
152
|
...interactions,
|
|
159
|
-
tabIndex
|
|
153
|
+
get tabIndex() {
|
|
154
|
+
if (isDisabledValue(props.isDisabled)) {
|
|
155
|
+
return undefined;
|
|
156
|
+
}
|
|
157
|
+
return props.excludeFromTabOrder ? -1 : 0;
|
|
158
|
+
},
|
|
160
159
|
ref: setRef,
|
|
161
160
|
},
|
|
162
|
-
interactionProps
|
|
161
|
+
interactionProps,
|
|
163
162
|
) as JSX.HTMLAttributes<HTMLElement>;
|
|
164
163
|
|
|
165
164
|
return {
|
|
@@ -7,20 +7,23 @@
|
|
|
7
7
|
* Port of @react-aria/interactions useHover.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
import {
|
|
11
|
+
type JSX,
|
|
12
|
+
type Accessor,
|
|
13
|
+
createSignal,
|
|
14
|
+
createEffect,
|
|
15
|
+
onCleanup,
|
|
16
|
+
createMemo,
|
|
17
|
+
} from "solid-js";
|
|
18
|
+
import { type MaybeAccessor, access } from "../utils/reactivity";
|
|
19
|
+
import { isTestEnv } from "../utils/env";
|
|
20
|
+
import { createGlobalListeners, nodeContains } from "../utils";
|
|
18
21
|
|
|
19
22
|
export interface HoverEvent {
|
|
20
23
|
/** The type of hover event being fired. */
|
|
21
|
-
type:
|
|
24
|
+
type: "hoverstart" | "hoverend";
|
|
22
25
|
/** The pointer type that triggered the hover event. */
|
|
23
|
-
pointerType:
|
|
26
|
+
pointerType: "mouse" | "pen";
|
|
24
27
|
/** The target element of the hover event. */
|
|
25
28
|
target: Element;
|
|
26
29
|
}
|
|
@@ -42,12 +45,12 @@ export interface CreateHoverProps extends HoverEvents {
|
|
|
42
45
|
/** Event handler props returned by createHover - safe to spread on any element */
|
|
43
46
|
export type HoverProps = Pick<
|
|
44
47
|
JSX.HTMLAttributes<HTMLElement>,
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
|
|
|
48
|
+
| "onPointerEnter"
|
|
49
|
+
| "onPointerLeave"
|
|
50
|
+
| "onPointerOver"
|
|
51
|
+
| "onPointerOut"
|
|
52
|
+
| "onMouseEnter"
|
|
53
|
+
| "onMouseLeave"
|
|
51
54
|
>;
|
|
52
55
|
|
|
53
56
|
export interface HoverResult {
|
|
@@ -57,10 +60,6 @@ export interface HoverResult {
|
|
|
57
60
|
isHovered: Accessor<boolean>;
|
|
58
61
|
}
|
|
59
62
|
|
|
60
|
-
// ============================================
|
|
61
|
-
// GLOBAL STATE
|
|
62
|
-
// ============================================
|
|
63
|
-
|
|
64
63
|
// iOS fires onPointerEnter twice: once with pointerType="touch" and again with pointerType="mouse".
|
|
65
64
|
// We want to ignore these emulated events so they do not trigger hover behavior.
|
|
66
65
|
let globalIgnoreEmulatedMouseEvents = false;
|
|
@@ -74,21 +73,21 @@ function setGlobalIgnoreEmulatedMouseEvents() {
|
|
|
74
73
|
}
|
|
75
74
|
|
|
76
75
|
function handleGlobalPointerEvent(e: PointerEvent) {
|
|
77
|
-
if (e.pointerType ===
|
|
76
|
+
if (e.pointerType === "touch") {
|
|
78
77
|
setGlobalIgnoreEmulatedMouseEvents();
|
|
79
78
|
}
|
|
80
79
|
}
|
|
81
80
|
|
|
82
81
|
function setupGlobalTouchEvents() {
|
|
83
|
-
if (typeof document ===
|
|
82
|
+
if (typeof document === "undefined") {
|
|
84
83
|
return () => {};
|
|
85
84
|
}
|
|
86
85
|
|
|
87
86
|
if (hoverCount === 0) {
|
|
88
|
-
if (typeof PointerEvent !==
|
|
89
|
-
document.addEventListener(
|
|
87
|
+
if (typeof PointerEvent !== "undefined") {
|
|
88
|
+
document.addEventListener("pointerup", handleGlobalPointerEvent);
|
|
90
89
|
} else if (isTestEnv()) {
|
|
91
|
-
document.addEventListener(
|
|
90
|
+
document.addEventListener("touchend", setGlobalIgnoreEmulatedMouseEvents);
|
|
92
91
|
}
|
|
93
92
|
}
|
|
94
93
|
|
|
@@ -99,18 +98,14 @@ function setupGlobalTouchEvents() {
|
|
|
99
98
|
return;
|
|
100
99
|
}
|
|
101
100
|
|
|
102
|
-
if (typeof PointerEvent !==
|
|
103
|
-
document.removeEventListener(
|
|
101
|
+
if (typeof PointerEvent !== "undefined") {
|
|
102
|
+
document.removeEventListener("pointerup", handleGlobalPointerEvent);
|
|
104
103
|
} else if (isTestEnv()) {
|
|
105
|
-
document.removeEventListener(
|
|
104
|
+
document.removeEventListener("touchend", setGlobalIgnoreEmulatedMouseEvents);
|
|
106
105
|
}
|
|
107
106
|
};
|
|
108
107
|
}
|
|
109
108
|
|
|
110
|
-
// ============================================
|
|
111
|
-
// IMPLEMENTATION
|
|
112
|
-
// ============================================
|
|
113
|
-
|
|
114
109
|
/**
|
|
115
110
|
* Handles pointer hover interactions for an element.
|
|
116
111
|
*/
|
|
@@ -123,7 +118,7 @@ export function createHover(props: MaybeAccessor<CreateHoverProps> = {}): HoverR
|
|
|
123
118
|
let state = {
|
|
124
119
|
isHovered: false,
|
|
125
120
|
ignoreEmulatedMouseEvents: false,
|
|
126
|
-
pointerType:
|
|
121
|
+
pointerType: "" as "mouse" | "pen" | "",
|
|
127
122
|
target: null as Element | null,
|
|
128
123
|
};
|
|
129
124
|
|
|
@@ -137,11 +132,15 @@ export function createHover(props: MaybeAccessor<CreateHoverProps> = {}): HoverR
|
|
|
137
132
|
createEffect(() => {
|
|
138
133
|
const p = getProps();
|
|
139
134
|
if (p.isDisabled && state.isHovered) {
|
|
140
|
-
triggerHoverEnd(state.target as Element, state.pointerType as
|
|
135
|
+
triggerHoverEnd(state.target as Element, state.pointerType as "mouse" | "pen");
|
|
141
136
|
}
|
|
142
137
|
});
|
|
143
138
|
|
|
144
|
-
function triggerHoverStart(
|
|
139
|
+
function triggerHoverStart(
|
|
140
|
+
target: Element,
|
|
141
|
+
pointerType: "mouse" | "pen",
|
|
142
|
+
eventTarget: Element | null,
|
|
143
|
+
) {
|
|
145
144
|
const p = getProps();
|
|
146
145
|
state.pointerType = pointerType;
|
|
147
146
|
|
|
@@ -153,14 +152,22 @@ export function createHover(props: MaybeAccessor<CreateHoverProps> = {}): HoverR
|
|
|
153
152
|
state.isHovered = true;
|
|
154
153
|
state.target = target;
|
|
155
154
|
|
|
156
|
-
addGlobalListener(
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
155
|
+
addGlobalListener(
|
|
156
|
+
"pointerover",
|
|
157
|
+
(event: PointerEvent) => {
|
|
158
|
+
if (
|
|
159
|
+
state.isHovered &&
|
|
160
|
+
state.target &&
|
|
161
|
+
!nodeContains(state.target, event.target as Element)
|
|
162
|
+
) {
|
|
163
|
+
triggerHoverEnd(event.target as Element, event.pointerType as "mouse" | "pen");
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
{ capture: true },
|
|
167
|
+
);
|
|
161
168
|
|
|
162
169
|
p.onHoverStart?.({
|
|
163
|
-
type:
|
|
170
|
+
type: "hoverstart",
|
|
164
171
|
target,
|
|
165
172
|
pointerType,
|
|
166
173
|
});
|
|
@@ -169,9 +176,9 @@ export function createHover(props: MaybeAccessor<CreateHoverProps> = {}): HoverR
|
|
|
169
176
|
setIsHovered(true);
|
|
170
177
|
}
|
|
171
178
|
|
|
172
|
-
function triggerHoverEnd(target: Element | null, pointerType:
|
|
179
|
+
function triggerHoverEnd(target: Element | null, pointerType: "mouse" | "pen") {
|
|
173
180
|
const p = getProps();
|
|
174
|
-
state.pointerType =
|
|
181
|
+
state.pointerType = "";
|
|
175
182
|
state.target = null;
|
|
176
183
|
|
|
177
184
|
if (!state.isHovered || !target) {
|
|
@@ -182,7 +189,7 @@ export function createHover(props: MaybeAccessor<CreateHoverProps> = {}): HoverR
|
|
|
182
189
|
removeAllGlobalListeners();
|
|
183
190
|
|
|
184
191
|
p.onHoverEnd?.({
|
|
185
|
-
type:
|
|
192
|
+
type: "hoverend",
|
|
186
193
|
target,
|
|
187
194
|
pointerType,
|
|
188
195
|
});
|
|
@@ -192,36 +199,44 @@ export function createHover(props: MaybeAccessor<CreateHoverProps> = {}): HoverR
|
|
|
192
199
|
}
|
|
193
200
|
|
|
194
201
|
const hoverProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => {
|
|
195
|
-
if (typeof PointerEvent !==
|
|
202
|
+
if (typeof PointerEvent !== "undefined") {
|
|
196
203
|
return {
|
|
197
204
|
onPointerEnter: (e: PointerEvent) => {
|
|
198
|
-
if (globalIgnoreEmulatedMouseEvents && e.pointerType ===
|
|
205
|
+
if (globalIgnoreEmulatedMouseEvents && e.pointerType === "mouse") {
|
|
199
206
|
return;
|
|
200
207
|
}
|
|
201
|
-
if (e.pointerType ===
|
|
208
|
+
if (e.pointerType === "touch") {
|
|
202
209
|
return;
|
|
203
210
|
}
|
|
204
|
-
triggerHoverStart(
|
|
211
|
+
triggerHoverStart(
|
|
212
|
+
e.currentTarget as Element,
|
|
213
|
+
e.pointerType as "mouse" | "pen",
|
|
214
|
+
e.target as Element,
|
|
215
|
+
);
|
|
205
216
|
},
|
|
206
217
|
onPointerLeave: (e: PointerEvent) => {
|
|
207
218
|
const p = getProps();
|
|
208
219
|
if (!p.isDisabled && (e.currentTarget as Element).contains(e.target as Element)) {
|
|
209
|
-
triggerHoverEnd(e.currentTarget as Element, e.pointerType as
|
|
220
|
+
triggerHoverEnd(e.currentTarget as Element, e.pointerType as "mouse" | "pen");
|
|
210
221
|
}
|
|
211
222
|
},
|
|
212
223
|
onPointerOver: (e: PointerEvent) => {
|
|
213
|
-
if (globalIgnoreEmulatedMouseEvents && e.pointerType ===
|
|
224
|
+
if (globalIgnoreEmulatedMouseEvents && e.pointerType === "mouse") {
|
|
214
225
|
return;
|
|
215
226
|
}
|
|
216
|
-
if (e.pointerType ===
|
|
227
|
+
if (e.pointerType === "touch") {
|
|
217
228
|
return;
|
|
218
229
|
}
|
|
219
|
-
triggerHoverStart(
|
|
230
|
+
triggerHoverStart(
|
|
231
|
+
e.currentTarget as Element,
|
|
232
|
+
e.pointerType as "mouse" | "pen",
|
|
233
|
+
e.target as Element,
|
|
234
|
+
);
|
|
220
235
|
},
|
|
221
236
|
onPointerOut: (e: PointerEvent) => {
|
|
222
237
|
const p = getProps();
|
|
223
238
|
if (!p.isDisabled && (e.currentTarget as Element).contains(e.target as Element)) {
|
|
224
|
-
triggerHoverEnd(e.currentTarget as Element, e.pointerType as
|
|
239
|
+
triggerHoverEnd(e.currentTarget as Element, e.pointerType as "mouse" | "pen");
|
|
225
240
|
}
|
|
226
241
|
},
|
|
227
242
|
};
|
|
@@ -234,14 +249,14 @@ export function createHover(props: MaybeAccessor<CreateHoverProps> = {}): HoverR
|
|
|
234
249
|
},
|
|
235
250
|
onMouseEnter: (e: MouseEvent) => {
|
|
236
251
|
if (!state.ignoreEmulatedMouseEvents && !globalIgnoreEmulatedMouseEvents) {
|
|
237
|
-
triggerHoverStart(e.currentTarget as Element,
|
|
252
|
+
triggerHoverStart(e.currentTarget as Element, "mouse", e.target as Element);
|
|
238
253
|
}
|
|
239
254
|
state.ignoreEmulatedMouseEvents = false;
|
|
240
255
|
},
|
|
241
256
|
onMouseLeave: (e: MouseEvent) => {
|
|
242
257
|
const p = getProps();
|
|
243
258
|
if (!p.isDisabled && (e.currentTarget as Element).contains(e.target as Element)) {
|
|
244
|
-
triggerHoverEnd(e.currentTarget as Element,
|
|
259
|
+
triggerHoverEnd(e.currentTarget as Element, "mouse");
|
|
245
260
|
}
|
|
246
261
|
},
|
|
247
262
|
};
|