@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
package/src/tree/index.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Tree ARIA layer exports.
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
export { createTree, getTreeData } from
|
|
6
|
-
export { createTreeItem } from
|
|
7
|
-
export { createTreeSelectionCheckbox } from
|
|
5
|
+
export { createTree, getTreeData } from "./createTree";
|
|
6
|
+
export { createTreeItem } from "./createTreeItem";
|
|
7
|
+
export { createTreeSelectionCheckbox } from "./createTreeSelectionCheckbox";
|
|
8
8
|
|
|
9
9
|
export type {
|
|
10
10
|
AriaTreeProps,
|
|
@@ -13,4 +13,4 @@ export type {
|
|
|
13
13
|
TreeItemAria,
|
|
14
14
|
AriaTreeSelectionCheckboxProps,
|
|
15
15
|
TreeSelectionCheckboxAria,
|
|
16
|
-
} from
|
|
16
|
+
} from "./types";
|
package/src/tree/types.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Based on @react-aria/tree.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type { JSX } from
|
|
7
|
-
import type { Key, TreeNode } from
|
|
6
|
+
import type { JSX } from "solid-js";
|
|
7
|
+
import type { Key, TreeNode } from "@proyecto-viviana/solid-stately";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Props for createTree.
|
|
@@ -13,11 +13,11 @@ export interface AriaTreeProps {
|
|
|
13
13
|
/** The unique id for the tree. */
|
|
14
14
|
id?: string;
|
|
15
15
|
/** Label for accessibility. */
|
|
16
|
-
|
|
16
|
+
"aria-label"?: string;
|
|
17
17
|
/** ID of an element that labels the tree. */
|
|
18
|
-
|
|
18
|
+
"aria-labelledby"?: string;
|
|
19
19
|
/** ID of an element that describes the tree. */
|
|
20
|
-
|
|
20
|
+
"aria-describedby"?: string;
|
|
21
21
|
/** Whether the tree is virtualized. */
|
|
22
22
|
isVirtualized?: boolean;
|
|
23
23
|
/** Handler called when an item action is triggered. */
|
|
@@ -25,7 +25,7 @@ export interface AriaTreeProps {
|
|
|
25
25
|
/** Whether the tree is disabled. */
|
|
26
26
|
isDisabled?: boolean;
|
|
27
27
|
/** The writing direction for the tree. Determines expand/collapse key mapping. */
|
|
28
|
-
direction?:
|
|
28
|
+
direction?: "ltr" | "rtl";
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
/**
|
|
@@ -44,8 +44,12 @@ export interface AriaTreeItemProps<T = unknown> {
|
|
|
44
44
|
node: TreeNode<T>;
|
|
45
45
|
/** Whether the item is rendered in a virtualized list. */
|
|
46
46
|
isVirtualized?: boolean;
|
|
47
|
+
/** How selection should behave when pressing an item. */
|
|
48
|
+
selectionBehavior?: "replace" | "toggle";
|
|
47
49
|
/** Handler called when this item's action is triggered. */
|
|
48
50
|
onAction?: () => void;
|
|
51
|
+
/** Whether this item is disabled. */
|
|
52
|
+
isDisabled?: boolean;
|
|
49
53
|
/** The text value for the item (used for aria-label on the row). */
|
|
50
54
|
textValue?: string;
|
|
51
55
|
}
|
|
@@ -23,28 +23,16 @@
|
|
|
23
23
|
* ```
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
|
-
import { createSignal, createEffect, onCleanup, type Accessor } from
|
|
27
|
-
import { isServer } from
|
|
28
|
-
|
|
29
|
-
// ============================================
|
|
30
|
-
// TYPES
|
|
31
|
-
// ============================================
|
|
26
|
+
import { createSignal, createEffect, onCleanup, type Accessor } from "solid-js";
|
|
27
|
+
import { isServer } from "solid-js/web";
|
|
32
28
|
|
|
33
29
|
export interface DescriptionProps {
|
|
34
|
-
|
|
30
|
+
"aria-describedby"?: string;
|
|
35
31
|
}
|
|
36
32
|
|
|
37
|
-
// ============================================
|
|
38
|
-
// STATE
|
|
39
|
-
// ============================================
|
|
40
|
-
|
|
41
33
|
let descriptionId = 0;
|
|
42
34
|
const descriptionNodes = new Map<string, { refCount: number; element: Element }>();
|
|
43
35
|
|
|
44
|
-
// ============================================
|
|
45
|
-
// IMPLEMENTATION
|
|
46
|
-
// ============================================
|
|
47
|
-
|
|
48
36
|
/**
|
|
49
37
|
* Creates an invisible description element and returns aria-describedby props.
|
|
50
38
|
*
|
|
@@ -62,7 +50,6 @@ const descriptionNodes = new Map<string, { refCount: number; element: Element }>
|
|
|
62
50
|
* ```
|
|
63
51
|
*/
|
|
64
52
|
export function createDescription(description: Accessor<string | undefined>): DescriptionProps {
|
|
65
|
-
// SSR: return empty object
|
|
66
53
|
if (isServer) {
|
|
67
54
|
return {};
|
|
68
55
|
}
|
|
@@ -80,26 +67,23 @@ export function createDescription(description: Accessor<string | undefined>): De
|
|
|
80
67
|
let node = descriptionNodes.get(desc);
|
|
81
68
|
|
|
82
69
|
if (!node) {
|
|
83
|
-
// Create new description element
|
|
84
70
|
const newId = `solidaria-description-${descriptionId++}`;
|
|
85
71
|
setId(newId);
|
|
86
72
|
|
|
87
|
-
const element = document.createElement(
|
|
73
|
+
const element = document.createElement("div");
|
|
88
74
|
element.id = newId;
|
|
89
|
-
element.style.display =
|
|
75
|
+
element.style.display = "none";
|
|
90
76
|
element.textContent = desc;
|
|
91
77
|
document.body.appendChild(element);
|
|
92
78
|
|
|
93
79
|
node = { refCount: 0, element };
|
|
94
80
|
descriptionNodes.set(desc, node);
|
|
95
81
|
} else {
|
|
96
|
-
// Reuse existing element
|
|
97
82
|
setId(node.element.id);
|
|
98
83
|
}
|
|
99
84
|
|
|
100
85
|
node.refCount++;
|
|
101
86
|
|
|
102
|
-
// Cleanup when description changes or component unmounts
|
|
103
87
|
onCleanup(() => {
|
|
104
88
|
if (node && --node.refCount === 0) {
|
|
105
89
|
node.element.remove();
|
|
@@ -108,9 +92,8 @@ export function createDescription(description: Accessor<string | undefined>): De
|
|
|
108
92
|
});
|
|
109
93
|
});
|
|
110
94
|
|
|
111
|
-
// Return reactive props object
|
|
112
95
|
return {
|
|
113
|
-
get
|
|
96
|
+
get "aria-describedby"() {
|
|
114
97
|
const desc = description();
|
|
115
98
|
return desc ? id() : undefined;
|
|
116
99
|
},
|
package/src/utils/dom.ts
CHANGED
|
@@ -54,7 +54,7 @@ export function nodeContains(parent: Node | null, child: Node | null): boolean {
|
|
|
54
54
|
*/
|
|
55
55
|
export function getEventTarget<T extends EventTarget>(event: Event): T | null {
|
|
56
56
|
// Use composedPath to get the real target when using Shadow DOM
|
|
57
|
-
if (typeof event.composedPath ===
|
|
57
|
+
if (typeof event.composedPath === "function") {
|
|
58
58
|
const path = event.composedPath();
|
|
59
59
|
if (path.length > 0) {
|
|
60
60
|
return path[0] as T;
|
|
@@ -74,22 +74,26 @@ export function isFocusable(element: Element): boolean {
|
|
|
74
74
|
|
|
75
75
|
// Check native focusable elements
|
|
76
76
|
const tagName = element.tagName.toLowerCase();
|
|
77
|
-
if ([
|
|
77
|
+
if (["input", "select", "textarea", "button", "a", "area"].includes(tagName)) {
|
|
78
78
|
// For anchor elements, they must have href to be focusable
|
|
79
|
-
if (tagName ===
|
|
80
|
-
return element.hasAttribute(
|
|
79
|
+
if (tagName === "a" || tagName === "area") {
|
|
80
|
+
return element.hasAttribute("href");
|
|
81
81
|
}
|
|
82
82
|
return true;
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
//
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
// A negative tabIndex is not tabbable, but it is still programmatically focusable.
|
|
86
|
+
// React Aria's focusable selector includes all tabindex values for this reason.
|
|
87
|
+
const tabIndex = element.getAttribute("tabindex");
|
|
88
|
+
if (tabIndex != null) {
|
|
88
89
|
return true;
|
|
89
90
|
}
|
|
90
91
|
|
|
91
92
|
// Check for contenteditable
|
|
92
|
-
if (
|
|
93
|
+
if (
|
|
94
|
+
element.hasAttribute("contenteditable") &&
|
|
95
|
+
element.getAttribute("contenteditable") !== "false"
|
|
96
|
+
) {
|
|
93
97
|
return true;
|
|
94
98
|
}
|
|
95
99
|
|
|
@@ -103,16 +107,16 @@ export function isValidKeyboardEvent(event: KeyboardEvent, currentTarget: Elemen
|
|
|
103
107
|
const { key, code } = event;
|
|
104
108
|
const element = currentTarget as HTMLElement;
|
|
105
109
|
const tagName = element.tagName.toLowerCase();
|
|
106
|
-
const role = element.getAttribute(
|
|
110
|
+
const role = element.getAttribute("role");
|
|
107
111
|
|
|
108
112
|
// Only accept Enter and Space
|
|
109
|
-
const isActivationKey = key ===
|
|
113
|
+
const isActivationKey = key === "Enter" || key === " " || key === "Spacebar" || code === "Space";
|
|
110
114
|
if (!isActivationKey) {
|
|
111
115
|
return false;
|
|
112
116
|
}
|
|
113
117
|
|
|
114
118
|
// Text inputs should handle their own keyboard events
|
|
115
|
-
if (tagName ===
|
|
119
|
+
if (tagName === "textarea") {
|
|
116
120
|
return false;
|
|
117
121
|
}
|
|
118
122
|
|
|
@@ -122,13 +126,13 @@ export function isValidKeyboardEvent(event: KeyboardEvent, currentTarget: Elemen
|
|
|
122
126
|
}
|
|
123
127
|
|
|
124
128
|
// Links should only respond to Enter, not Space
|
|
125
|
-
const isLink = role ===
|
|
126
|
-
if (isLink && key !==
|
|
129
|
+
const isLink = role === "link" || (!role && isHTMLAnchorLink(element));
|
|
130
|
+
if (isLink && key !== "Enter") {
|
|
127
131
|
return false;
|
|
128
132
|
}
|
|
129
133
|
|
|
130
134
|
// Input elements have specific key handling
|
|
131
|
-
if (tagName ===
|
|
135
|
+
if (tagName === "input") {
|
|
132
136
|
return isValidInputKey(element as HTMLInputElement, key);
|
|
133
137
|
}
|
|
134
138
|
|
|
@@ -142,14 +146,24 @@ export function isValidInputKey(target: HTMLInputElement, key: string): boolean
|
|
|
142
146
|
const type = target.type.toLowerCase();
|
|
143
147
|
|
|
144
148
|
// Checkbox and radio only respond to Space
|
|
145
|
-
if (type ===
|
|
146
|
-
return key ===
|
|
149
|
+
if (type === "checkbox" || type === "radio") {
|
|
150
|
+
return key === " " || key === "Spacebar";
|
|
147
151
|
}
|
|
148
152
|
|
|
149
153
|
// Text-like inputs handle their own keyboard events
|
|
150
154
|
const textInputTypes = [
|
|
151
|
-
|
|
152
|
-
|
|
155
|
+
"text",
|
|
156
|
+
"search",
|
|
157
|
+
"url",
|
|
158
|
+
"tel",
|
|
159
|
+
"email",
|
|
160
|
+
"password",
|
|
161
|
+
"date",
|
|
162
|
+
"month",
|
|
163
|
+
"week",
|
|
164
|
+
"time",
|
|
165
|
+
"datetime-local",
|
|
166
|
+
"number",
|
|
153
167
|
];
|
|
154
168
|
if (textInputTypes.includes(type)) {
|
|
155
169
|
return false;
|
|
@@ -162,34 +176,18 @@ export function isValidInputKey(target: HTMLInputElement, key: string): boolean
|
|
|
162
176
|
* Checks if an element is an HTML anchor link (has href attribute).
|
|
163
177
|
*/
|
|
164
178
|
export function isHTMLAnchorLink(target: Element): boolean {
|
|
165
|
-
return target.tagName ===
|
|
179
|
+
return target.tagName === "A" && target.hasAttribute("href");
|
|
166
180
|
}
|
|
167
181
|
|
|
168
182
|
/**
|
|
169
183
|
* Whether to prevent default on keyboard events for this element.
|
|
170
184
|
*/
|
|
171
185
|
export function shouldPreventDefaultKeyboard(target: Element, key: string): boolean {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
// Never prevent default on inputs - they handle their own behavior
|
|
175
|
-
if (tagName === 'input' || tagName === 'textarea' || tagName === 'select') {
|
|
176
|
-
return false;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
// Don't prevent default on links for Enter (native navigation)
|
|
180
|
-
if ((tagName === 'a' || target.getAttribute('role') === 'link') && key === 'Enter') {
|
|
181
|
-
return false;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
// Buttons with submit/reset type should not prevent default
|
|
185
|
-
if (tagName === 'button') {
|
|
186
|
-
const type = (target as HTMLButtonElement).type;
|
|
187
|
-
if (type === 'submit' || type === 'reset') {
|
|
188
|
-
return false;
|
|
189
|
-
}
|
|
186
|
+
if (target instanceof HTMLInputElement) {
|
|
187
|
+
return !isValidInputKey(target, key);
|
|
190
188
|
}
|
|
191
189
|
|
|
192
|
-
return
|
|
190
|
+
return shouldPreventDefaultUp(target);
|
|
193
191
|
}
|
|
194
192
|
|
|
195
193
|
/**
|
|
@@ -199,19 +197,19 @@ export function shouldPreventDefaultUp(target: Element): boolean {
|
|
|
199
197
|
const tagName = target.tagName.toLowerCase();
|
|
200
198
|
|
|
201
199
|
// Never prevent default on form elements
|
|
202
|
-
if (tagName ===
|
|
200
|
+
if (tagName === "input" || tagName === "textarea" || tagName === "select") {
|
|
203
201
|
return false;
|
|
204
202
|
}
|
|
205
203
|
|
|
206
204
|
// Don't prevent default on links
|
|
207
|
-
if (tagName ===
|
|
205
|
+
if (tagName === "a" || target.getAttribute("role") === "link") {
|
|
208
206
|
return false;
|
|
209
207
|
}
|
|
210
208
|
|
|
211
209
|
// Buttons with submit/reset type should not prevent default
|
|
212
|
-
if (tagName ===
|
|
210
|
+
if (tagName === "button") {
|
|
213
211
|
const type = (target as HTMLButtonElement).type;
|
|
214
|
-
if (type ===
|
|
212
|
+
if (type === "submit" || type === "reset") {
|
|
215
213
|
return false;
|
|
216
214
|
}
|
|
217
215
|
}
|
|
@@ -230,15 +228,15 @@ export function openLink(target: HTMLAnchorElement, event: Event, allowOpener =
|
|
|
230
228
|
// Handle modifier keys for open-in-new-tab behavior
|
|
231
229
|
const keyEvent = event as KeyboardEvent;
|
|
232
230
|
const shouldOpenInNewTab =
|
|
233
|
-
linkTarget ===
|
|
231
|
+
linkTarget === "_blank" ||
|
|
234
232
|
keyEvent?.metaKey ||
|
|
235
233
|
keyEvent?.ctrlKey ||
|
|
236
234
|
keyEvent?.shiftKey ||
|
|
237
235
|
keyEvent?.altKey;
|
|
238
236
|
|
|
239
237
|
if (shouldOpenInNewTab) {
|
|
240
|
-
const features = !allowOpener && rel?.includes(
|
|
241
|
-
window.open(href, linkTarget ||
|
|
238
|
+
const features = !allowOpener && rel?.includes("noopener") ? "noopener" : undefined;
|
|
239
|
+
window.open(href, linkTarget || "_blank", features);
|
|
242
240
|
} else {
|
|
243
241
|
window.location.href = href;
|
|
244
242
|
}
|
|
@@ -248,10 +246,6 @@ export function openLink(target: HTMLAnchorElement, event: Event, allowOpener =
|
|
|
248
246
|
|
|
249
247
|
(openLink as { isOpening?: boolean }).isOpening = false;
|
|
250
248
|
|
|
251
|
-
// ============================================
|
|
252
|
-
// Scroll utilities
|
|
253
|
-
// ============================================
|
|
254
|
-
|
|
255
249
|
/**
|
|
256
250
|
* Checks if an element is scrollable based on its overflow style.
|
|
257
251
|
* @param node - The element to check
|
|
@@ -303,23 +297,36 @@ export function willOpenKeyboard(target: Element | null): boolean {
|
|
|
303
297
|
const tagName = target.tagName.toLowerCase();
|
|
304
298
|
|
|
305
299
|
// Inputs that open keyboard (not all input types do)
|
|
306
|
-
if (tagName ===
|
|
300
|
+
if (tagName === "input") {
|
|
307
301
|
const type = (target as HTMLInputElement).type.toLowerCase();
|
|
308
302
|
// These input types open the keyboard
|
|
309
303
|
const keyboardTypes = [
|
|
310
|
-
|
|
311
|
-
|
|
304
|
+
"text",
|
|
305
|
+
"search",
|
|
306
|
+
"url",
|
|
307
|
+
"tel",
|
|
308
|
+
"email",
|
|
309
|
+
"password",
|
|
310
|
+
"date",
|
|
311
|
+
"month",
|
|
312
|
+
"week",
|
|
313
|
+
"time",
|
|
314
|
+
"datetime-local",
|
|
315
|
+
"number",
|
|
312
316
|
];
|
|
313
317
|
return keyboardTypes.includes(type);
|
|
314
318
|
}
|
|
315
319
|
|
|
316
320
|
// Textareas always open keyboard
|
|
317
|
-
if (tagName ===
|
|
321
|
+
if (tagName === "textarea") {
|
|
318
322
|
return true;
|
|
319
323
|
}
|
|
320
324
|
|
|
321
325
|
// Contenteditable elements open keyboard
|
|
322
|
-
if (
|
|
326
|
+
if (
|
|
327
|
+
target.hasAttribute("contenteditable") &&
|
|
328
|
+
target.getAttribute("contenteditable") !== "false"
|
|
329
|
+
) {
|
|
323
330
|
return true;
|
|
324
331
|
}
|
|
325
332
|
|
package/src/utils/env.ts
CHANGED
|
@@ -4,17 +4,17 @@
|
|
|
4
4
|
* Compatible with Node.js and Vite environments.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
type ImportMetaWithEnv = ImportMeta & {
|
|
8
|
+
env?: Record<string, unknown> & { DEV?: boolean; PROD?: boolean };
|
|
9
|
+
};
|
|
9
10
|
type ProcessLike = { env?: Record<string, string | undefined> };
|
|
10
11
|
|
|
11
12
|
function getEnvVar(key: string): string | undefined {
|
|
12
|
-
// Check Vite's import.meta.env
|
|
13
13
|
const importMetaEnv = (import.meta as ImportMetaWithEnv).env;
|
|
14
|
-
if (importMetaEnv && typeof importMetaEnv[key] ===
|
|
14
|
+
if (importMetaEnv && typeof importMetaEnv[key] === "string") {
|
|
15
15
|
return importMetaEnv[key] as string;
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
|
|
18
18
|
const processEnv = (globalThis as typeof globalThis & { process?: ProcessLike }).process?.env;
|
|
19
19
|
if (processEnv) {
|
|
20
20
|
return processEnv[key];
|
|
@@ -26,30 +26,28 @@ function getEnvVar(key: string): string | undefined {
|
|
|
26
26
|
* Check if we're running in a test environment.
|
|
27
27
|
*/
|
|
28
28
|
export function isTestEnv(): boolean {
|
|
29
|
-
return getEnvVar(
|
|
29
|
+
return getEnvVar("NODE_ENV") === "test";
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
33
|
* Check if we're running in a development environment (not production).
|
|
34
34
|
*/
|
|
35
35
|
export function isDevEnv(): boolean {
|
|
36
|
-
// Check Vite's DEV flag
|
|
37
36
|
const importMetaEnv = (import.meta as ImportMetaWithEnv).env;
|
|
38
37
|
if (importMetaEnv?.DEV === true) {
|
|
39
38
|
return true;
|
|
40
39
|
}
|
|
41
|
-
const nodeEnv = getEnvVar(
|
|
42
|
-
return nodeEnv !==
|
|
40
|
+
const nodeEnv = getEnvVar("NODE_ENV");
|
|
41
|
+
return nodeEnv !== "production";
|
|
43
42
|
}
|
|
44
43
|
|
|
45
44
|
/**
|
|
46
45
|
* Check if we're running in production.
|
|
47
46
|
*/
|
|
48
47
|
export function isProdEnv(): boolean {
|
|
49
|
-
// Check Vite's PROD flag
|
|
50
48
|
const importMetaEnv = (import.meta as ImportMetaWithEnv).env;
|
|
51
49
|
if (importMetaEnv?.PROD === true) {
|
|
52
50
|
return true;
|
|
53
51
|
}
|
|
54
|
-
return getEnvVar(
|
|
52
|
+
return getEnvVar("NODE_ENV") === "production";
|
|
55
53
|
}
|
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
|
) {
|