@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/utils/events.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Based on @react-aria/utils event utilities.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { isAndroid } from
|
|
6
|
+
import { isAndroid } from "./platform";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Checks if a click event was generated from a virtual source like a screen reader.
|
|
@@ -11,14 +11,14 @@ import { isAndroid } from './platform';
|
|
|
11
11
|
*/
|
|
12
12
|
export function isVirtualClick(event: MouseEvent | PointerEvent): boolean {
|
|
13
13
|
// JAWS/NVDA with Firefox.
|
|
14
|
-
if ((event as PointerEvent).pointerType ===
|
|
14
|
+
if ((event as PointerEvent).pointerType === "" && event.isTrusted) {
|
|
15
15
|
return true;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
// Android TalkBack's detail value varies depending on the event listener providing the event.
|
|
19
19
|
// If pointerType is defined, event is from a click listener.
|
|
20
20
|
if (isAndroid() && (event as PointerEvent).pointerType) {
|
|
21
|
-
return event.type ===
|
|
21
|
+
return event.type === "click" && (event as MouseEvent).buttons === 1;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
return event.detail === 0 && !(event as PointerEvent).pointerType;
|
|
@@ -40,7 +40,7 @@ export function isVirtualPointerEvent(event: PointerEvent): boolean {
|
|
|
40
40
|
event.height === 1 &&
|
|
41
41
|
event.pressure === 0 &&
|
|
42
42
|
event.detail === 0 &&
|
|
43
|
-
event.pointerType ===
|
|
43
|
+
event.pointerType === "mouse")
|
|
44
44
|
);
|
|
45
45
|
}
|
|
46
46
|
|
|
@@ -81,7 +81,7 @@ export function chain<T extends (...args: any[]) => any>(
|
|
|
81
81
|
): T {
|
|
82
82
|
return ((...args: Parameters<T>) => {
|
|
83
83
|
for (const callback of callbacks) {
|
|
84
|
-
if (typeof callback ===
|
|
84
|
+
if (typeof callback === "function") {
|
|
85
85
|
callback(...args);
|
|
86
86
|
}
|
|
87
87
|
}
|
|
@@ -93,12 +93,12 @@ export function chain<T extends (...args: any[]) => any>(
|
|
|
93
93
|
* Used for synthetic events where target needs to be modified.
|
|
94
94
|
*/
|
|
95
95
|
export function setEventTarget<T extends Event>(event: T, target: EventTarget): void {
|
|
96
|
-
Object.defineProperty(event,
|
|
96
|
+
Object.defineProperty(event, "target", {
|
|
97
97
|
value: target,
|
|
98
98
|
writable: false,
|
|
99
99
|
configurable: true,
|
|
100
100
|
});
|
|
101
|
-
Object.defineProperty(event,
|
|
101
|
+
Object.defineProperty(event, "currentTarget", {
|
|
102
102
|
value: target,
|
|
103
103
|
writable: false,
|
|
104
104
|
configurable: true,
|
|
@@ -5,63 +5,63 @@
|
|
|
5
5
|
* This is a 1:1 port of @react-aria/utils filterDOMProps.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
const DOMPropNames = new Set([
|
|
8
|
+
const DOMPropNames = new Set(["id"]);
|
|
9
9
|
|
|
10
10
|
const labelablePropNames = new Set([
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
"aria-label",
|
|
12
|
+
"aria-labelledby",
|
|
13
|
+
"aria-describedby",
|
|
14
|
+
"aria-details",
|
|
15
15
|
]);
|
|
16
16
|
|
|
17
17
|
// See LinkDOMProps in dom.d.ts.
|
|
18
18
|
const linkPropNames = new Set([
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
"href",
|
|
20
|
+
"hrefLang",
|
|
21
|
+
"target",
|
|
22
|
+
"rel",
|
|
23
|
+
"download",
|
|
24
|
+
"ping",
|
|
25
|
+
"referrerPolicy",
|
|
26
26
|
]);
|
|
27
27
|
|
|
28
|
-
const globalAttrs = new Set([
|
|
28
|
+
const globalAttrs = new Set(["dir", "lang", "hidden", "inert", "translate"]);
|
|
29
29
|
|
|
30
30
|
const globalEvents = new Set([
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
31
|
+
"onClick",
|
|
32
|
+
"onAuxClick",
|
|
33
|
+
"onContextMenu",
|
|
34
|
+
"onDoubleClick",
|
|
35
|
+
"onMouseDown",
|
|
36
|
+
"onMouseEnter",
|
|
37
|
+
"onMouseLeave",
|
|
38
|
+
"onMouseMove",
|
|
39
|
+
"onMouseOut",
|
|
40
|
+
"onMouseOver",
|
|
41
|
+
"onMouseUp",
|
|
42
|
+
"onTouchCancel",
|
|
43
|
+
"onTouchEnd",
|
|
44
|
+
"onTouchMove",
|
|
45
|
+
"onTouchStart",
|
|
46
|
+
"onPointerDown",
|
|
47
|
+
"onPointerMove",
|
|
48
|
+
"onPointerUp",
|
|
49
|
+
"onPointerCancel",
|
|
50
|
+
"onPointerEnter",
|
|
51
|
+
"onPointerLeave",
|
|
52
|
+
"onPointerOver",
|
|
53
|
+
"onPointerOut",
|
|
54
|
+
"onGotPointerCapture",
|
|
55
|
+
"onLostPointerCapture",
|
|
56
|
+
"onScroll",
|
|
57
|
+
"onWheel",
|
|
58
|
+
"onAnimationStart",
|
|
59
|
+
"onAnimationEnd",
|
|
60
|
+
"onAnimationIteration",
|
|
61
|
+
"onTransitionCancel",
|
|
62
|
+
"onTransitionEnd",
|
|
63
|
+
"onTransitionRun",
|
|
64
|
+
"onTransitionStart",
|
|
65
65
|
]);
|
|
66
66
|
|
|
67
67
|
const propRe = /^(data-.*)$/;
|
|
@@ -90,7 +90,7 @@ export interface FilterDOMPropsOptions {
|
|
|
90
90
|
*/
|
|
91
91
|
export function filterDOMProps<T extends object>(
|
|
92
92
|
props: T,
|
|
93
|
-
opts: FilterDOMPropsOptions = {}
|
|
93
|
+
opts: FilterDOMPropsOptions = {},
|
|
94
94
|
): Partial<T> {
|
|
95
95
|
const { labelable, isLink, global, events = global, propNames } = opts;
|
|
96
96
|
const filteredProps: Partial<T> = {};
|
|
@@ -104,7 +104,7 @@ export function filterDOMProps<T extends object>(
|
|
|
104
104
|
(global && globalAttrs.has(prop)) ||
|
|
105
105
|
(events &&
|
|
106
106
|
(globalEvents.has(prop) ||
|
|
107
|
-
(prop.endsWith(
|
|
107
|
+
(prop.endsWith("Capture") && globalEvents.has(prop.slice(0, -7))))) ||
|
|
108
108
|
propNames?.has(prop) ||
|
|
109
109
|
propRe.test(prop))
|
|
110
110
|
) {
|
package/src/utils/focus.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Based on @react-aria/utils focus utilities.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { getOwnerDocument } from
|
|
6
|
+
import { getEventTarget, getOwnerDocument, getOwnerWindow, isFocusable } from "./dom";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Focuses an element without scrolling the page.
|
|
@@ -12,12 +12,10 @@ import { getOwnerDocument } from './dom';
|
|
|
12
12
|
export function focusWithoutScrolling(element: HTMLElement | null): void {
|
|
13
13
|
if (!element) return;
|
|
14
14
|
|
|
15
|
-
// Try using the modern preventScroll option
|
|
16
15
|
try {
|
|
17
16
|
element.focus({ preventScroll: true });
|
|
18
17
|
} catch {
|
|
19
18
|
// Fallback for browsers that don't support preventScroll
|
|
20
|
-
// Save scroll positions and restore after focus
|
|
21
19
|
const scrollableElements = getScrollableAncestors(element);
|
|
22
20
|
const scrollPositions = scrollableElements.map((el) => ({
|
|
23
21
|
element: el,
|
|
@@ -27,7 +25,6 @@ export function focusWithoutScrolling(element: HTMLElement | null): void {
|
|
|
27
25
|
|
|
28
26
|
element.focus();
|
|
29
27
|
|
|
30
|
-
// Restore scroll positions
|
|
31
28
|
for (const { element: el, scrollTop, scrollLeft } of scrollPositions) {
|
|
32
29
|
el.scrollTop = scrollTop;
|
|
33
30
|
el.scrollLeft = scrollLeft;
|
|
@@ -48,10 +45,10 @@ function getScrollableAncestors(element: Element): Element[] {
|
|
|
48
45
|
const overflowX = style.overflowX;
|
|
49
46
|
|
|
50
47
|
if (
|
|
51
|
-
overflowY ===
|
|
52
|
-
overflowY ===
|
|
53
|
-
overflowX ===
|
|
54
|
-
overflowX ===
|
|
48
|
+
overflowY === "auto" ||
|
|
49
|
+
overflowY === "scroll" ||
|
|
50
|
+
overflowX === "auto" ||
|
|
51
|
+
overflowX === "scroll"
|
|
55
52
|
) {
|
|
56
53
|
ancestors.push(parent);
|
|
57
54
|
}
|
|
@@ -66,82 +63,77 @@ function getScrollableAncestors(element: Element): Element[] {
|
|
|
66
63
|
return ancestors;
|
|
67
64
|
}
|
|
68
65
|
|
|
69
|
-
// State for preventFocus
|
|
70
|
-
let ignoreFocus = false;
|
|
71
|
-
let preventFocusTimeout: ReturnType<typeof setTimeout> | null = null;
|
|
72
|
-
|
|
73
66
|
/**
|
|
74
67
|
* Prevents focus from moving to a new element temporarily.
|
|
75
68
|
* Used when clicking on a button that shouldn't steal focus.
|
|
76
69
|
*/
|
|
77
|
-
export function preventFocus(target: Element): void {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const
|
|
83
|
-
const activeElement = document.activeElement;
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
70
|
+
export function preventFocus(target: Element | null): (() => void) | undefined {
|
|
71
|
+
while (target && !isFocusable(target)) {
|
|
72
|
+
target = target.parentElement;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const ownerWindow = getOwnerWindow(target);
|
|
76
|
+
const activeElement = ownerWindow.document.activeElement as HTMLElement | null;
|
|
77
|
+
|
|
78
|
+
if (!activeElement || activeElement === target) {
|
|
79
|
+
return undefined;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
let isRefocusing = false;
|
|
83
|
+
|
|
84
|
+
const onBlur = (event: FocusEvent) => {
|
|
85
|
+
if (getEventTarget(event) === activeElement || isRefocusing) {
|
|
86
|
+
event.stopImmediatePropagation();
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
const onFocusOut = (event: FocusEvent) => {
|
|
91
|
+
if (getEventTarget(event) === activeElement || isRefocusing) {
|
|
92
|
+
event.stopImmediatePropagation();
|
|
93
|
+
|
|
94
|
+
if (!target && !isRefocusing) {
|
|
95
|
+
isRefocusing = true;
|
|
96
|
+
focusWithoutScrolling(activeElement);
|
|
97
|
+
cleanup();
|
|
95
98
|
}
|
|
96
99
|
}
|
|
97
100
|
};
|
|
98
101
|
|
|
99
|
-
const
|
|
100
|
-
if (
|
|
101
|
-
|
|
102
|
+
const onFocus = (event: FocusEvent) => {
|
|
103
|
+
if (getEventTarget(event) === target || isRefocusing) {
|
|
104
|
+
event.stopImmediatePropagation();
|
|
102
105
|
}
|
|
103
106
|
};
|
|
104
107
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
el.addEventListener('focus', onFocus, true);
|
|
109
|
-
el.addEventListener('blur', onBlur, true);
|
|
110
|
-
el.addEventListener('focusin', onFocus, true);
|
|
111
|
-
el.addEventListener('focusout', onBlur, true);
|
|
112
|
-
|
|
113
|
-
// Clean up after the current event cycle
|
|
114
|
-
if (preventFocusTimeout != null) {
|
|
115
|
-
clearTimeout(preventFocusTimeout);
|
|
116
|
-
}
|
|
108
|
+
const onFocusIn = (event: FocusEvent) => {
|
|
109
|
+
if (getEventTarget(event) === target || isRefocusing) {
|
|
110
|
+
event.stopImmediatePropagation();
|
|
117
111
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}, 0);
|
|
126
|
-
}
|
|
112
|
+
if (!isRefocusing) {
|
|
113
|
+
isRefocusing = true;
|
|
114
|
+
focusWithoutScrolling(activeElement);
|
|
115
|
+
cleanup();
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
};
|
|
127
119
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
let current: Element | null = element;
|
|
120
|
+
ownerWindow.addEventListener("blur", onBlur, true);
|
|
121
|
+
ownerWindow.addEventListener("focusout", onFocusOut, true);
|
|
122
|
+
ownerWindow.addEventListener("focusin", onFocusIn, true);
|
|
123
|
+
ownerWindow.addEventListener("focus", onFocus, true);
|
|
133
124
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
)
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
125
|
+
const raf = ownerWindow.requestAnimationFrame(cleanup);
|
|
126
|
+
|
|
127
|
+
function cleanup() {
|
|
128
|
+
ownerWindow.cancelAnimationFrame(raf);
|
|
129
|
+
ownerWindow.removeEventListener("blur", onBlur, true);
|
|
130
|
+
ownerWindow.removeEventListener("focusout", onFocusOut, true);
|
|
131
|
+
ownerWindow.removeEventListener("focusin", onFocusIn, true);
|
|
132
|
+
ownerWindow.removeEventListener("focus", onFocus, true);
|
|
133
|
+
isRefocusing = false;
|
|
142
134
|
}
|
|
143
135
|
|
|
144
|
-
return
|
|
136
|
+
return cleanup;
|
|
145
137
|
}
|
|
146
138
|
|
|
147
139
|
/**
|
package/src/utils/geometry.ts
CHANGED
|
@@ -23,12 +23,10 @@ export interface EventPoint {
|
|
|
23
23
|
* Checks if two rectangles overlap.
|
|
24
24
|
*/
|
|
25
25
|
export function areRectanglesOverlapping(a: Rect, b: Rect): boolean {
|
|
26
|
-
// Check if one rectangle is to the left of the other
|
|
27
26
|
if (a.left > b.right || b.left > a.right) {
|
|
28
27
|
return false;
|
|
29
28
|
}
|
|
30
29
|
|
|
31
|
-
// Check if one rectangle is above the other
|
|
32
30
|
if (a.top > b.bottom || b.top > a.bottom) {
|
|
33
31
|
return false;
|
|
34
32
|
}
|
|
@@ -44,7 +42,6 @@ export function getPointClientRect(point: EventPoint): Rect {
|
|
|
44
42
|
let offsetX = 0;
|
|
45
43
|
let offsetY = 0;
|
|
46
44
|
|
|
47
|
-
// Use width/height if available (PointerEvent)
|
|
48
45
|
if (point.width !== undefined && point.width > 0) {
|
|
49
46
|
offsetX = point.width / 2;
|
|
50
47
|
} else if (point.radiusX !== undefined && point.radiusX > 0) {
|
|
@@ -80,7 +77,7 @@ export function isPointOverTarget(point: EventPoint, target: Element): boolean {
|
|
|
80
77
|
bottom: rect.bottom,
|
|
81
78
|
left: rect.left,
|
|
82
79
|
},
|
|
83
|
-
pointRect
|
|
80
|
+
pointRect,
|
|
84
81
|
);
|
|
85
82
|
}
|
|
86
83
|
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* In SolidJS, we use onCleanup for automatic cleanup instead of useEffect return.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { onCleanup } from
|
|
8
|
+
import { onCleanup } from "solid-js";
|
|
9
9
|
|
|
10
10
|
export interface GlobalListenerOptions extends AddEventListenerOptions {
|
|
11
11
|
/** Whether to add the listener to the window instead of document */
|
|
@@ -31,17 +31,17 @@ export function createGlobalListeners() {
|
|
|
31
31
|
function addGlobalListener<K extends keyof DocumentEventMap>(
|
|
32
32
|
type: K,
|
|
33
33
|
handler: (ev: DocumentEventMap[K]) => void,
|
|
34
|
-
options?: GlobalListenerOptions
|
|
34
|
+
options?: GlobalListenerOptions,
|
|
35
35
|
): void;
|
|
36
36
|
function addGlobalListener<K extends keyof WindowEventMap>(
|
|
37
37
|
type: K,
|
|
38
38
|
handler: (ev: WindowEventMap[K]) => void,
|
|
39
|
-
options?: GlobalListenerOptions & { isWindow: true }
|
|
39
|
+
options?: GlobalListenerOptions & { isWindow: true },
|
|
40
40
|
): void;
|
|
41
41
|
function addGlobalListener(
|
|
42
42
|
type: string,
|
|
43
43
|
handler: EventListener,
|
|
44
|
-
options?: GlobalListenerOptions
|
|
44
|
+
options?: GlobalListenerOptions,
|
|
45
45
|
): void {
|
|
46
46
|
const target = options?.isWindow ? window : document;
|
|
47
47
|
const listenerOptions = options
|
|
@@ -62,17 +62,17 @@ export function createGlobalListeners() {
|
|
|
62
62
|
function removeGlobalListener<K extends keyof DocumentEventMap>(
|
|
63
63
|
type: K,
|
|
64
64
|
handler: (ev: DocumentEventMap[K]) => void,
|
|
65
|
-
options?: AddEventListenerOptions
|
|
65
|
+
options?: AddEventListenerOptions,
|
|
66
66
|
): void;
|
|
67
67
|
function removeGlobalListener<K extends keyof WindowEventMap>(
|
|
68
68
|
type: K,
|
|
69
69
|
handler: (ev: WindowEventMap[K]) => void,
|
|
70
|
-
options?: AddEventListenerOptions & { isWindow: true }
|
|
70
|
+
options?: AddEventListenerOptions & { isWindow: true },
|
|
71
71
|
): void;
|
|
72
72
|
function removeGlobalListener(
|
|
73
73
|
type: string,
|
|
74
74
|
handler: EventListener,
|
|
75
|
-
options?: AddEventListenerOptions & { isWindow?: boolean }
|
|
75
|
+
options?: AddEventListenerOptions & { isWindow?: boolean },
|
|
76
76
|
): void {
|
|
77
77
|
const target = options?.isWindow ? window : document;
|
|
78
78
|
const listenerOptions = options
|
|
@@ -89,7 +89,7 @@ export function createGlobalListeners() {
|
|
|
89
89
|
l.target === target &&
|
|
90
90
|
l.type === type &&
|
|
91
91
|
l.handler === handler &&
|
|
92
|
-
l.options?.capture === listenerOptions?.capture
|
|
92
|
+
l.options?.capture === listenerOptions?.capture,
|
|
93
93
|
);
|
|
94
94
|
if (index !== -1) {
|
|
95
95
|
listeners.splice(index, 1);
|
|
@@ -123,7 +123,7 @@ export function createGlobalListeners() {
|
|
|
123
123
|
export function addGlobalListenerOnce<K extends keyof DocumentEventMap>(
|
|
124
124
|
type: K,
|
|
125
125
|
handler: (ev: DocumentEventMap[K]) => void,
|
|
126
|
-
options?: GlobalListenerOptions
|
|
126
|
+
options?: GlobalListenerOptions,
|
|
127
127
|
): () => void {
|
|
128
128
|
const target = options?.isWindow ? window : document;
|
|
129
129
|
const listenerOptions = options
|
package/src/utils/index.ts
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
export { mergeProps } from
|
|
2
|
-
export { filterDOMProps, type FilterDOMPropsOptions } from
|
|
1
|
+
export { mergeProps } from "./mergeProps";
|
|
2
|
+
export { filterDOMProps, type FilterDOMPropsOptions } from "./filterDOMProps";
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
export { access, isAccessor, type MaybeAccessor, type MaybeAccessorValue } from './reactivity';
|
|
4
|
+
export { access, isAccessor, type MaybeAccessor, type MaybeAccessorValue } from "./reactivity";
|
|
6
5
|
|
|
7
|
-
// Platform detection
|
|
8
6
|
export {
|
|
9
7
|
isMac,
|
|
10
8
|
isIPhone,
|
|
@@ -15,9 +13,8 @@ export {
|
|
|
15
13
|
isChrome,
|
|
16
14
|
isAndroid,
|
|
17
15
|
isFirefox,
|
|
18
|
-
} from
|
|
16
|
+
} from "./platform";
|
|
19
17
|
|
|
20
|
-
// DOM utilities
|
|
21
18
|
export {
|
|
22
19
|
getOwnerDocument,
|
|
23
20
|
getOwnerWindow,
|
|
@@ -33,9 +30,8 @@ export {
|
|
|
33
30
|
isScrollable,
|
|
34
31
|
getScrollParent,
|
|
35
32
|
willOpenKeyboard,
|
|
36
|
-
} from
|
|
33
|
+
} from "./dom";
|
|
37
34
|
|
|
38
|
-
// Geometry utilities
|
|
39
35
|
export {
|
|
40
36
|
areRectanglesOverlapping,
|
|
41
37
|
getPointClientRect,
|
|
@@ -44,37 +40,31 @@ export {
|
|
|
44
40
|
getTouchById,
|
|
45
41
|
type Rect,
|
|
46
42
|
type EventPoint,
|
|
47
|
-
} from
|
|
43
|
+
} from "./geometry";
|
|
48
44
|
|
|
49
|
-
// Event utilities
|
|
50
45
|
export {
|
|
51
46
|
isVirtualClick,
|
|
52
47
|
isVirtualPointerEvent,
|
|
53
48
|
createMouseEvent,
|
|
54
49
|
chain,
|
|
55
50
|
setEventTarget,
|
|
56
|
-
} from
|
|
51
|
+
} from "./events";
|
|
57
52
|
|
|
58
|
-
|
|
59
|
-
export { disableTextSelection, restoreTextSelection } from './textSelection';
|
|
53
|
+
export { disableTextSelection, restoreTextSelection } from "./textSelection";
|
|
60
54
|
|
|
61
|
-
|
|
62
|
-
export { focusWithoutScrolling, focusSafely, preventFocus } from './focus';
|
|
55
|
+
export { focusWithoutScrolling, focusSafely, preventFocus } from "./focus";
|
|
63
56
|
|
|
64
|
-
// Global listener management
|
|
65
57
|
export {
|
|
66
58
|
createGlobalListeners,
|
|
67
59
|
addGlobalListenerOnce,
|
|
68
60
|
type GlobalListenerOptions,
|
|
69
|
-
} from
|
|
61
|
+
} from "./globalListeners";
|
|
70
62
|
|
|
71
|
-
|
|
72
|
-
export { isTestEnv, isDevEnv, isProdEnv } from './env';
|
|
63
|
+
export { isTestEnv, isDevEnv, isProdEnv } from "./env";
|
|
73
64
|
|
|
74
|
-
// Description utility for aria-describedby
|
|
75
65
|
export {
|
|
76
66
|
createDescription,
|
|
77
67
|
type DescriptionProps,
|
|
78
68
|
getDescriptionNodeCount,
|
|
79
69
|
clearDescriptionNodes,
|
|
80
|
-
} from
|
|
70
|
+
} from "./createDescription";
|
package/src/utils/mergeProps.ts
CHANGED
|
@@ -9,30 +9,57 @@ type Props = { [key: string]: unknown };
|
|
|
9
9
|
* @param args - Props objects to merge
|
|
10
10
|
* @returns Merged props object. Use type parameter R to specify the result type.
|
|
11
11
|
*/
|
|
12
|
-
export function mergeProps<R extends object = Record<string, unknown>, T extends object = object>(
|
|
12
|
+
export function mergeProps<R extends object = Record<string, unknown>, T extends object = object>(
|
|
13
|
+
...args: T[]
|
|
14
|
+
): R {
|
|
13
15
|
const result: Props = {};
|
|
16
|
+
const setResultValue = (key: string, value: unknown) => {
|
|
17
|
+
const resultDescriptor = Object.getOwnPropertyDescriptor(result, key);
|
|
18
|
+
|
|
19
|
+
if (resultDescriptor?.get || resultDescriptor?.set) {
|
|
20
|
+
Object.defineProperty(result, key, {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
configurable: true,
|
|
23
|
+
writable: true,
|
|
24
|
+
value,
|
|
25
|
+
});
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
result[key] = value;
|
|
30
|
+
};
|
|
14
31
|
|
|
15
32
|
for (const props of args) {
|
|
16
33
|
for (const key in props) {
|
|
17
|
-
const
|
|
34
|
+
const descriptor = Object.getOwnPropertyDescriptor(props, key);
|
|
35
|
+
const hasGetter = typeof descriptor?.get === "function";
|
|
36
|
+
const getValue = () => (hasGetter ? descriptor.get!.call(props) : props[key]);
|
|
37
|
+
const value = getValue();
|
|
18
38
|
const existingValue = result[key];
|
|
19
39
|
|
|
20
40
|
if (
|
|
21
|
-
typeof existingValue ===
|
|
22
|
-
typeof value ===
|
|
23
|
-
key.startsWith(
|
|
41
|
+
typeof existingValue === "function" &&
|
|
42
|
+
typeof value === "function" &&
|
|
43
|
+
key.startsWith("on") &&
|
|
24
44
|
key[2] === key[2]?.toUpperCase()
|
|
25
45
|
) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
46
|
+
setResultValue(key, chainHandlers(existingValue as Function, value as Function));
|
|
47
|
+
} else if (key === "class" || key === "className") {
|
|
48
|
+
setResultValue(key, mergeClassNames(existingValue, value));
|
|
49
|
+
} else if (
|
|
50
|
+
key === "style" &&
|
|
51
|
+
typeof existingValue === "object" &&
|
|
52
|
+
typeof value === "object"
|
|
53
|
+
) {
|
|
54
|
+
setResultValue(key, { ...(existingValue as object), ...(value as object) });
|
|
55
|
+
} else if (hasGetter && (value !== undefined || !(key in result))) {
|
|
56
|
+
Object.defineProperty(result, key, {
|
|
57
|
+
enumerable: true,
|
|
58
|
+
configurable: true,
|
|
59
|
+
get: getValue,
|
|
60
|
+
});
|
|
34
61
|
} else if (value !== undefined) {
|
|
35
|
-
|
|
62
|
+
setResultValue(key, value);
|
|
36
63
|
}
|
|
37
64
|
}
|
|
38
65
|
}
|
|
@@ -48,5 +75,5 @@ function chainHandlers(existingHandler: Function, newHandler: Function) {
|
|
|
48
75
|
}
|
|
49
76
|
|
|
50
77
|
function mergeClassNames(...classes: unknown[]): string {
|
|
51
|
-
return classes.filter(Boolean).join(
|
|
78
|
+
return classes.filter(Boolean).join(" ");
|
|
52
79
|
}
|
package/src/utils/platform.ts
CHANGED
|
@@ -3,16 +3,26 @@
|
|
|
3
3
|
* Based on @react-aria/utils platform detection.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
interface NavigatorWithUserAgentData extends Navigator {
|
|
7
|
+
userAgentData?: {
|
|
8
|
+
platform?: string;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
function getNavigator(): NavigatorWithUserAgentData | null {
|
|
13
|
+
if (typeof window === "undefined" || window.navigator == null) return null;
|
|
14
|
+
return window.navigator as NavigatorWithUserAgentData;
|
|
15
|
+
}
|
|
16
|
+
|
|
6
17
|
function testPlatform(re: RegExp): boolean {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
18
|
+
const nav = getNavigator();
|
|
19
|
+
if (!nav) return false;
|
|
20
|
+
return re.test(nav.platform || nav.userAgentData?.platform || "");
|
|
10
21
|
}
|
|
11
22
|
|
|
12
23
|
function testUserAgent(re: RegExp): boolean {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
: false;
|
|
24
|
+
const nav = getNavigator();
|
|
25
|
+
return nav ? re.test(nav.userAgent) : false;
|
|
16
26
|
}
|
|
17
27
|
|
|
18
28
|
export function isMac(): boolean {
|