@proyecto-viviana/solidaria 0.1.3 → 0.2.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/dist/index.d.ts +6135 -50
- package/dist/index.js +485 -1120
- package/dist/{index.ssr.js → index.jsx} +89 -143
- package/package.json +7 -9
- package/dist/autocomplete/createAutocomplete.d.ts +0 -109
- package/dist/autocomplete/createAutocomplete.d.ts.map +0 -1
- package/dist/autocomplete/index.d.ts +0 -2
- package/dist/autocomplete/index.d.ts.map +0 -1
- package/dist/breadcrumbs/createBreadcrumbs.d.ts +0 -43
- package/dist/breadcrumbs/createBreadcrumbs.d.ts.map +0 -1
- package/dist/breadcrumbs/index.d.ts +0 -2
- package/dist/breadcrumbs/index.d.ts.map +0 -1
- package/dist/button/createButton.d.ts +0 -29
- package/dist/button/createButton.d.ts.map +0 -1
- package/dist/button/createToggleButton.d.ts +0 -41
- package/dist/button/createToggleButton.d.ts.map +0 -1
- package/dist/button/index.d.ts +0 -5
- package/dist/button/index.d.ts.map +0 -1
- package/dist/button/types.d.ts +0 -77
- package/dist/button/types.d.ts.map +0 -1
- package/dist/calendar/createCalendar.d.ts +0 -41
- package/dist/calendar/createCalendar.d.ts.map +0 -1
- package/dist/calendar/createCalendarCell.d.ts +0 -41
- package/dist/calendar/createCalendarCell.d.ts.map +0 -1
- package/dist/calendar/createCalendarGrid.d.ts +0 -29
- package/dist/calendar/createCalendarGrid.d.ts.map +0 -1
- package/dist/calendar/createRangeCalendar.d.ts +0 -39
- package/dist/calendar/createRangeCalendar.d.ts.map +0 -1
- package/dist/calendar/createRangeCalendarCell.d.ts +0 -45
- package/dist/calendar/createRangeCalendarCell.d.ts.map +0 -1
- package/dist/calendar/index.d.ts +0 -6
- package/dist/calendar/index.d.ts.map +0 -1
- package/dist/checkbox/createCheckbox.d.ts +0 -56
- package/dist/checkbox/createCheckbox.d.ts.map +0 -1
- package/dist/checkbox/createCheckboxGroup.d.ts +0 -53
- package/dist/checkbox/createCheckboxGroup.d.ts.map +0 -1
- package/dist/checkbox/createCheckboxGroupItem.d.ts +0 -25
- package/dist/checkbox/createCheckboxGroupItem.d.ts.map +0 -1
- package/dist/checkbox/createCheckboxGroupState.d.ts +0 -71
- package/dist/checkbox/createCheckboxGroupState.d.ts.map +0 -1
- package/dist/checkbox/index.d.ts +0 -9
- package/dist/checkbox/index.d.ts.map +0 -1
- package/dist/color/createColorArea.d.ts +0 -13
- package/dist/color/createColorArea.d.ts.map +0 -1
- package/dist/color/createColorField.d.ts +0 -13
- package/dist/color/createColorField.d.ts.map +0 -1
- package/dist/color/createColorSlider.d.ts +0 -13
- package/dist/color/createColorSlider.d.ts.map +0 -1
- package/dist/color/createColorSwatch.d.ts +0 -12
- package/dist/color/createColorSwatch.d.ts.map +0 -1
- package/dist/color/createColorWheel.d.ts +0 -13
- package/dist/color/createColorWheel.d.ts.map +0 -1
- package/dist/color/index.d.ts +0 -10
- package/dist/color/index.d.ts.map +0 -1
- package/dist/color/types.d.ts +0 -106
- package/dist/color/types.d.ts.map +0 -1
- package/dist/combobox/createComboBox.d.ts +0 -77
- package/dist/combobox/createComboBox.d.ts.map +0 -1
- package/dist/combobox/index.d.ts +0 -2
- package/dist/combobox/index.d.ts.map +0 -1
- package/dist/combobox/intl/index.d.ts +0 -14
- package/dist/combobox/intl/index.d.ts.map +0 -1
- package/dist/datepicker/createDateField.d.ts +0 -51
- package/dist/datepicker/createDateField.d.ts.map +0 -1
- package/dist/datepicker/createDatePicker.d.ts +0 -65
- package/dist/datepicker/createDatePicker.d.ts.map +0 -1
- package/dist/datepicker/createDateSegment.d.ts +0 -29
- package/dist/datepicker/createDateSegment.d.ts.map +0 -1
- package/dist/datepicker/createTimeField.d.ts +0 -51
- package/dist/datepicker/createTimeField.d.ts.map +0 -1
- package/dist/datepicker/index.d.ts +0 -5
- package/dist/datepicker/index.d.ts.map +0 -1
- package/dist/dialog/createDialog.d.ts +0 -25
- package/dist/dialog/createDialog.d.ts.map +0 -1
- package/dist/dialog/index.d.ts +0 -3
- package/dist/dialog/index.d.ts.map +0 -1
- package/dist/dialog/types.d.ts +0 -18
- package/dist/dialog/types.d.ts.map +0 -1
- package/dist/disclosure/createDisclosure.d.ts +0 -52
- package/dist/disclosure/createDisclosure.d.ts.map +0 -1
- package/dist/disclosure/createDisclosureGroup.d.ts +0 -39
- package/dist/disclosure/createDisclosureGroup.d.ts.map +0 -1
- package/dist/disclosure/index.d.ts +0 -3
- package/dist/disclosure/index.d.ts.map +0 -1
- package/dist/dnd/createDrag.d.ts +0 -16
- package/dist/dnd/createDrag.d.ts.map +0 -1
- package/dist/dnd/createDraggableCollection.d.ts +0 -27
- package/dist/dnd/createDraggableCollection.d.ts.map +0 -1
- package/dist/dnd/createDraggableItem.d.ts +0 -37
- package/dist/dnd/createDraggableItem.d.ts.map +0 -1
- package/dist/dnd/createDrop.d.ts +0 -16
- package/dist/dnd/createDrop.d.ts.map +0 -1
- package/dist/dnd/createDroppableCollection.d.ts +0 -76
- package/dist/dnd/createDroppableCollection.d.ts.map +0 -1
- package/dist/dnd/createDroppableItem.d.ts +0 -31
- package/dist/dnd/createDroppableItem.d.ts.map +0 -1
- package/dist/dnd/index.d.ts +0 -18
- package/dist/dnd/index.d.ts.map +0 -1
- package/dist/dnd/types.d.ts +0 -66
- package/dist/dnd/types.d.ts.map +0 -1
- package/dist/dnd/utils.d.ts +0 -57
- package/dist/dnd/utils.d.ts.map +0 -1
- package/dist/focus/FocusScope.d.ts +0 -57
- package/dist/focus/FocusScope.d.ts.map +0 -1
- package/dist/focus/createAutoFocus.d.ts +0 -120
- package/dist/focus/createAutoFocus.d.ts.map +0 -1
- package/dist/focus/createFocusRestore.d.ts +0 -116
- package/dist/focus/createFocusRestore.d.ts.map +0 -1
- package/dist/focus/createVirtualFocus.d.ts +0 -170
- package/dist/focus/createVirtualFocus.d.ts.map +0 -1
- package/dist/focus/index.d.ts +0 -5
- package/dist/focus/index.d.ts.map +0 -1
- package/dist/form/createFormReset.d.ts +0 -27
- package/dist/form/createFormReset.d.ts.map +0 -1
- package/dist/form/createFormValidation.d.ts +0 -56
- package/dist/form/createFormValidation.d.ts.map +0 -1
- package/dist/form/index.d.ts +0 -3
- package/dist/form/index.d.ts.map +0 -1
- package/dist/grid/GridKeyboardDelegate.d.ts +0 -79
- package/dist/grid/GridKeyboardDelegate.d.ts.map +0 -1
- package/dist/grid/createGrid.d.ts +0 -24
- package/dist/grid/createGrid.d.ts.map +0 -1
- package/dist/grid/createGridCell.d.ts +0 -12
- package/dist/grid/createGridCell.d.ts.map +0 -1
- package/dist/grid/createGridRow.d.ts +0 -12
- package/dist/grid/createGridRow.d.ts.map +0 -1
- package/dist/grid/index.d.ts +0 -10
- package/dist/grid/index.d.ts.map +0 -1
- package/dist/grid/types.d.ts +0 -126
- package/dist/grid/types.d.ts.map +0 -1
- package/dist/gridlist/createGridList.d.ts +0 -28
- package/dist/gridlist/createGridList.d.ts.map +0 -1
- package/dist/gridlist/createGridListItem.d.ts +0 -12
- package/dist/gridlist/createGridListItem.d.ts.map +0 -1
- package/dist/gridlist/createGridListSelectionCheckbox.d.ts +0 -12
- package/dist/gridlist/createGridListSelectionCheckbox.d.ts.map +0 -1
- package/dist/gridlist/index.d.ts +0 -8
- package/dist/gridlist/index.d.ts.map +0 -1
- package/dist/gridlist/types.d.ts +0 -75
- package/dist/gridlist/types.d.ts.map +0 -1
- package/dist/i18n/NumberFormatter.d.ts +0 -43
- package/dist/i18n/NumberFormatter.d.ts.map +0 -1
- package/dist/i18n/createCollator.d.ts +0 -41
- package/dist/i18n/createCollator.d.ts.map +0 -1
- package/dist/i18n/createDateFormatter.d.ts +0 -45
- package/dist/i18n/createDateFormatter.d.ts.map +0 -1
- package/dist/i18n/createFilter.d.ts +0 -57
- package/dist/i18n/createFilter.d.ts.map +0 -1
- package/dist/i18n/createNumberFormatter.d.ts +0 -43
- package/dist/i18n/createNumberFormatter.d.ts.map +0 -1
- package/dist/i18n/createStringFormatter.d.ts +0 -42
- package/dist/i18n/createStringFormatter.d.ts.map +0 -1
- package/dist/i18n/index.d.ts +0 -9
- package/dist/i18n/index.d.ts.map +0 -1
- package/dist/i18n/locale.d.ts +0 -66
- package/dist/i18n/locale.d.ts.map +0 -1
- package/dist/i18n/utils.d.ts +0 -17
- package/dist/i18n/utils.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -7
- package/dist/index.ssr.js.map +0 -7
- package/dist/interactions/FocusableProvider.d.ts +0 -26
- package/dist/interactions/FocusableProvider.d.ts.map +0 -1
- package/dist/interactions/PressEvent.d.ts +0 -73
- package/dist/interactions/PressEvent.d.ts.map +0 -1
- package/dist/interactions/createFocus.d.ts +0 -31
- package/dist/interactions/createFocus.d.ts.map +0 -1
- package/dist/interactions/createFocusRing.d.ts +0 -37
- package/dist/interactions/createFocusRing.d.ts.map +0 -1
- package/dist/interactions/createFocusWithin.d.ts +0 -27
- package/dist/interactions/createFocusWithin.d.ts.map +0 -1
- package/dist/interactions/createFocusable.d.ts +0 -65
- package/dist/interactions/createFocusable.d.ts.map +0 -1
- package/dist/interactions/createHover.d.ts +0 -43
- package/dist/interactions/createHover.d.ts.map +0 -1
- package/dist/interactions/createInteractionModality.d.ts +0 -73
- package/dist/interactions/createInteractionModality.d.ts.map +0 -1
- package/dist/interactions/createKeyboard.d.ts +0 -35
- package/dist/interactions/createKeyboard.d.ts.map +0 -1
- package/dist/interactions/createLongPress.d.ts +0 -63
- package/dist/interactions/createLongPress.d.ts.map +0 -1
- package/dist/interactions/createMove.d.ts +0 -40
- package/dist/interactions/createMove.d.ts.map +0 -1
- package/dist/interactions/createPress.d.ts +0 -55
- package/dist/interactions/createPress.d.ts.map +0 -1
- package/dist/interactions/index.d.ts +0 -13
- package/dist/interactions/index.d.ts.map +0 -1
- package/dist/label/createField.d.ts +0 -51
- package/dist/label/createField.d.ts.map +0 -1
- package/dist/label/createLabel.d.ts +0 -49
- package/dist/label/createLabel.d.ts.map +0 -1
- package/dist/label/createLabels.d.ts +0 -16
- package/dist/label/createLabels.d.ts.map +0 -1
- package/dist/label/index.d.ts +0 -6
- package/dist/label/index.d.ts.map +0 -1
- package/dist/landmark/createLandmark.d.ts +0 -79
- package/dist/landmark/createLandmark.d.ts.map +0 -1
- package/dist/landmark/index.d.ts +0 -2
- package/dist/landmark/index.d.ts.map +0 -1
- package/dist/link/createLink.d.ts +0 -65
- package/dist/link/createLink.d.ts.map +0 -1
- package/dist/link/index.d.ts +0 -2
- package/dist/link/index.d.ts.map +0 -1
- package/dist/listbox/createListBox.d.ts +0 -58
- package/dist/listbox/createListBox.d.ts.map +0 -1
- package/dist/listbox/createOption.d.ts +0 -42
- package/dist/listbox/createOption.d.ts.map +0 -1
- package/dist/listbox/index.d.ts +0 -3
- package/dist/listbox/index.d.ts.map +0 -1
- package/dist/live-announcer/announce.d.ts +0 -113
- package/dist/live-announcer/announce.d.ts.map +0 -1
- package/dist/live-announcer/index.d.ts +0 -2
- package/dist/live-announcer/index.d.ts.map +0 -1
- package/dist/menu/createMenu.d.ts +0 -57
- package/dist/menu/createMenu.d.ts.map +0 -1
- package/dist/menu/createMenuItem.d.ts +0 -42
- package/dist/menu/createMenuItem.d.ts.map +0 -1
- package/dist/menu/createMenuTrigger.d.ts +0 -29
- package/dist/menu/createMenuTrigger.d.ts.map +0 -1
- package/dist/menu/index.d.ts +0 -4
- package/dist/menu/index.d.ts.map +0 -1
- package/dist/meter/createMeter.d.ts +0 -44
- package/dist/meter/createMeter.d.ts.map +0 -1
- package/dist/meter/index.d.ts +0 -2
- package/dist/meter/index.d.ts.map +0 -1
- package/dist/numberfield/createNumberField.d.ts +0 -56
- package/dist/numberfield/createNumberField.d.ts.map +0 -1
- package/dist/numberfield/index.d.ts +0 -2
- package/dist/numberfield/index.d.ts.map +0 -1
- package/dist/overlays/ariaHideOutside.d.ts +0 -25
- package/dist/overlays/ariaHideOutside.d.ts.map +0 -1
- package/dist/overlays/createInteractOutside.d.ts +0 -20
- package/dist/overlays/createInteractOutside.d.ts.map +0 -1
- package/dist/overlays/createModal.d.ts +0 -70
- package/dist/overlays/createModal.d.ts.map +0 -1
- package/dist/overlays/createOverlay.d.ts +0 -43
- package/dist/overlays/createOverlay.d.ts.map +0 -1
- package/dist/overlays/createOverlayTrigger.d.ts +0 -30
- package/dist/overlays/createOverlayTrigger.d.ts.map +0 -1
- package/dist/overlays/createPreventScroll.d.ts +0 -15
- package/dist/overlays/createPreventScroll.d.ts.map +0 -1
- package/dist/overlays/index.d.ts +0 -7
- package/dist/overlays/index.d.ts.map +0 -1
- package/dist/popover/calculatePosition.d.ts +0 -67
- package/dist/popover/calculatePosition.d.ts.map +0 -1
- package/dist/popover/createOverlayPosition.d.ts +0 -109
- package/dist/popover/createOverlayPosition.d.ts.map +0 -1
- package/dist/popover/createPopover.d.ts +0 -88
- package/dist/popover/createPopover.d.ts.map +0 -1
- package/dist/popover/index.d.ts +0 -4
- package/dist/popover/index.d.ts.map +0 -1
- package/dist/progress/createProgressBar.d.ts +0 -47
- package/dist/progress/createProgressBar.d.ts.map +0 -1
- package/dist/progress/index.d.ts +0 -2
- package/dist/progress/index.d.ts.map +0 -1
- package/dist/radio/createRadio.d.ts +0 -68
- package/dist/radio/createRadio.d.ts.map +0 -1
- package/dist/radio/createRadioGroup.d.ts +0 -85
- package/dist/radio/createRadioGroup.d.ts.map +0 -1
- package/dist/radio/createRadioGroupState.d.ts +0 -77
- package/dist/radio/createRadioGroupState.d.ts.map +0 -1
- package/dist/radio/index.d.ts +0 -4
- package/dist/radio/index.d.ts.map +0 -1
- package/dist/searchfield/createSearchField.d.ts +0 -32
- package/dist/searchfield/createSearchField.d.ts.map +0 -1
- package/dist/searchfield/index.d.ts +0 -3
- package/dist/searchfield/index.d.ts.map +0 -1
- package/dist/select/createHiddenSelect.d.ts +0 -69
- package/dist/select/createHiddenSelect.d.ts.map +0 -1
- package/dist/select/createSelect.d.ts +0 -70
- package/dist/select/createSelect.d.ts.map +0 -1
- package/dist/select/index.d.ts +0 -3
- package/dist/select/index.d.ts.map +0 -1
- package/dist/selection/createTypeSelect.d.ts +0 -43
- package/dist/selection/createTypeSelect.d.ts.map +0 -1
- package/dist/selection/index.d.ts +0 -6
- package/dist/selection/index.d.ts.map +0 -1
- package/dist/separator/createSeparator.d.ts +0 -38
- package/dist/separator/createSeparator.d.ts.map +0 -1
- package/dist/separator/index.d.ts +0 -2
- package/dist/separator/index.d.ts.map +0 -1
- package/dist/slider/createSlider.d.ts +0 -43
- package/dist/slider/createSlider.d.ts.map +0 -1
- package/dist/slider/index.d.ts +0 -3
- package/dist/slider/index.d.ts.map +0 -1
- package/dist/ssr/index.d.ts +0 -221
- package/dist/ssr/index.d.ts.map +0 -1
- package/dist/switch/createSwitch.d.ts +0 -34
- package/dist/switch/createSwitch.d.ts.map +0 -1
- package/dist/switch/index.d.ts +0 -2
- package/dist/switch/index.d.ts.map +0 -1
- package/dist/table/createTable.d.ts +0 -24
- package/dist/table/createTable.d.ts.map +0 -1
- package/dist/table/createTableCell.d.ts +0 -12
- package/dist/table/createTableCell.d.ts.map +0 -1
- package/dist/table/createTableColumnHeader.d.ts +0 -12
- package/dist/table/createTableColumnHeader.d.ts.map +0 -1
- package/dist/table/createTableHeaderRow.d.ts +0 -12
- package/dist/table/createTableHeaderRow.d.ts.map +0 -1
- package/dist/table/createTableRow.d.ts +0 -12
- package/dist/table/createTableRow.d.ts.map +0 -1
- package/dist/table/createTableRowGroup.d.ts +0 -11
- package/dist/table/createTableRowGroup.d.ts.map +0 -1
- package/dist/table/createTableSelectAllCheckbox.d.ts +0 -12
- package/dist/table/createTableSelectAllCheckbox.d.ts.map +0 -1
- package/dist/table/createTableSelectionCheckbox.d.ts +0 -12
- package/dist/table/createTableSelectionCheckbox.d.ts.map +0 -1
- package/dist/table/index.d.ts +0 -14
- package/dist/table/index.d.ts.map +0 -1
- package/dist/table/types.d.ts +0 -150
- package/dist/table/types.d.ts.map +0 -1
- package/dist/tabs/createTabs.d.ts +0 -123
- package/dist/tabs/createTabs.d.ts.map +0 -1
- package/dist/tabs/index.d.ts +0 -2
- package/dist/tabs/index.d.ts.map +0 -1
- package/dist/tag/createTag.d.ts +0 -42
- package/dist/tag/createTag.d.ts.map +0 -1
- package/dist/tag/createTagGroup.d.ts +0 -54
- package/dist/tag/createTagGroup.d.ts.map +0 -1
- package/dist/tag/index.d.ts +0 -3
- package/dist/tag/index.d.ts.map +0 -1
- package/dist/textfield/createTextField.d.ts +0 -73
- package/dist/textfield/createTextField.d.ts.map +0 -1
- package/dist/textfield/index.d.ts +0 -2
- package/dist/textfield/index.d.ts.map +0 -1
- package/dist/toast/createToast.d.ts +0 -58
- package/dist/toast/createToast.d.ts.map +0 -1
- package/dist/toast/createToastRegion.d.ts +0 -49
- package/dist/toast/createToastRegion.d.ts.map +0 -1
- package/dist/toast/index.d.ts +0 -3
- package/dist/toast/index.d.ts.map +0 -1
- package/dist/toggle/createToggle.d.ts +0 -94
- package/dist/toggle/createToggle.d.ts.map +0 -1
- package/dist/toggle/createToggleState.d.ts +0 -34
- package/dist/toggle/createToggleState.d.ts.map +0 -1
- package/dist/toggle/index.d.ts +0 -5
- package/dist/toggle/index.d.ts.map +0 -1
- package/dist/toolbar/createToolbar.d.ts +0 -49
- package/dist/toolbar/createToolbar.d.ts.map +0 -1
- package/dist/toolbar/index.d.ts +0 -2
- package/dist/toolbar/index.d.ts.map +0 -1
- package/dist/tooltip/createTooltip.d.ts +0 -48
- package/dist/tooltip/createTooltip.d.ts.map +0 -1
- package/dist/tooltip/createTooltipTrigger.d.ts +0 -64
- package/dist/tooltip/createTooltipTrigger.d.ts.map +0 -1
- package/dist/tooltip/index.d.ts +0 -3
- package/dist/tooltip/index.d.ts.map +0 -1
- package/dist/tree/createTree.d.ts +0 -28
- package/dist/tree/createTree.d.ts.map +0 -1
- package/dist/tree/createTreeItem.d.ts +0 -12
- package/dist/tree/createTreeItem.d.ts.map +0 -1
- package/dist/tree/createTreeSelectionCheckbox.d.ts +0 -12
- package/dist/tree/createTreeSelectionCheckbox.d.ts.map +0 -1
- package/dist/tree/index.d.ts +0 -8
- package/dist/tree/index.d.ts.map +0 -1
- package/dist/tree/types.d.ts +0 -81
- package/dist/tree/types.d.ts.map +0 -1
- package/dist/utils/createDescription.d.ts +0 -56
- package/dist/utils/createDescription.d.ts.map +0 -1
- package/dist/utils/dom.d.ts +0 -68
- package/dist/utils/dom.d.ts.map +0 -1
- package/dist/utils/env.d.ts +0 -18
- package/dist/utils/env.d.ts.map +0 -1
- package/dist/utils/events.d.ts +0 -29
- package/dist/utils/events.d.ts.map +0 -1
- package/dist/utils/filterDOMProps.d.ts +0 -29
- package/dist/utils/filterDOMProps.d.ts.map +0 -1
- package/dist/utils/focus.d.ts +0 -20
- package/dist/utils/focus.d.ts.map +0 -1
- package/dist/utils/geometry.d.ts +0 -40
- package/dist/utils/geometry.d.ts.map +0 -1
- package/dist/utils/globalListeners.d.ts +0 -36
- package/dist/utils/globalListeners.d.ts.map +0 -1
- package/dist/utils/index.d.ts +0 -13
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/mergeProps.d.ts +0 -11
- package/dist/utils/mergeProps.d.ts.map +0 -1
- package/dist/utils/platform.d.ts +0 -14
- package/dist/utils/platform.d.ts.map +0 -1
- package/dist/utils/reactivity.d.ts +0 -28
- package/dist/utils/reactivity.d.ts.map +0 -1
- package/dist/utils/textSelection.d.ts +0 -19
- package/dist/utils/textSelection.d.ts.map +0 -1
- package/dist/visually-hidden/createVisuallyHidden.d.ts +0 -60
- package/dist/visually-hidden/createVisuallyHidden.d.ts.map +0 -1
- package/dist/visually-hidden/index.d.ts +0 -2
- package/dist/visually-hidden/index.d.ts.map +0 -1
- package/src/autocomplete/createAutocomplete.ts +0 -341
- package/src/autocomplete/index.ts +0 -9
- package/src/breadcrumbs/createBreadcrumbs.ts +0 -196
- package/src/breadcrumbs/index.ts +0 -8
- package/src/button/createButton.ts +0 -142
- package/src/button/createToggleButton.ts +0 -101
- package/src/button/index.ts +0 -4
- package/src/button/types.ts +0 -78
- package/src/calendar/createCalendar.ts +0 -138
- package/src/calendar/createCalendarCell.ts +0 -187
- package/src/calendar/createCalendarGrid.ts +0 -140
- package/src/calendar/createRangeCalendar.ts +0 -136
- package/src/calendar/createRangeCalendarCell.ts +0 -186
- package/src/calendar/index.ts +0 -34
- package/src/checkbox/createCheckbox.ts +0 -135
- package/src/checkbox/createCheckboxGroup.ts +0 -137
- package/src/checkbox/createCheckboxGroupItem.ts +0 -117
- package/src/checkbox/createCheckboxGroupState.ts +0 -193
- package/src/checkbox/index.ts +0 -13
- package/src/color/createColorArea.ts +0 -314
- package/src/color/createColorField.ts +0 -137
- package/src/color/createColorSlider.ts +0 -197
- package/src/color/createColorSwatch.ts +0 -40
- package/src/color/createColorWheel.ts +0 -208
- package/src/color/index.ts +0 -24
- package/src/color/types.ts +0 -116
- package/src/combobox/createComboBox.ts +0 -647
- package/src/combobox/index.ts +0 -6
- package/src/combobox/intl/en-US.json +0 -7
- package/src/combobox/intl/es-ES.json +0 -7
- package/src/combobox/intl/index.ts +0 -23
- package/src/datepicker/createDateField.ts +0 -154
- package/src/datepicker/createDatePicker.ts +0 -206
- package/src/datepicker/createDateSegment.ts +0 -229
- package/src/datepicker/createTimeField.ts +0 -154
- package/src/datepicker/index.ts +0 -28
- package/src/dialog/createDialog.ts +0 -120
- package/src/dialog/index.ts +0 -2
- package/src/dialog/types.ts +0 -19
- package/src/disclosure/createDisclosure.ts +0 -131
- package/src/disclosure/createDisclosureGroup.ts +0 -62
- package/src/disclosure/index.ts +0 -11
- package/src/dnd/createDrag.ts +0 -209
- package/src/dnd/createDraggableCollection.ts +0 -63
- package/src/dnd/createDraggableItem.ts +0 -243
- package/src/dnd/createDrop.ts +0 -321
- package/src/dnd/createDroppableCollection.ts +0 -293
- package/src/dnd/createDroppableItem.ts +0 -213
- package/src/dnd/index.ts +0 -47
- package/src/dnd/types.ts +0 -89
- package/src/dnd/utils.ts +0 -294
- package/src/focus/FocusScope.tsx +0 -408
- package/src/focus/createAutoFocus.ts +0 -321
- package/src/focus/createFocusRestore.ts +0 -313
- package/src/focus/createVirtualFocus.ts +0 -396
- package/src/focus/index.ts +0 -35
- package/src/form/createFormReset.ts +0 -51
- package/src/form/createFormValidation.ts +0 -224
- package/src/form/index.ts +0 -11
- package/src/grid/GridKeyboardDelegate.ts +0 -429
- package/src/grid/createGrid.ts +0 -261
- package/src/grid/createGridCell.ts +0 -182
- package/src/grid/createGridRow.ts +0 -153
- package/src/grid/index.ts +0 -18
- package/src/grid/types.ts +0 -133
- package/src/gridlist/createGridList.ts +0 -185
- package/src/gridlist/createGridListItem.ts +0 -180
- package/src/gridlist/createGridListSelectionCheckbox.ts +0 -59
- package/src/gridlist/index.ts +0 -16
- package/src/gridlist/types.ts +0 -81
- package/src/i18n/NumberFormatter.ts +0 -266
- package/src/i18n/createCollator.ts +0 -79
- package/src/i18n/createDateFormatter.ts +0 -83
- package/src/i18n/createFilter.ts +0 -131
- package/src/i18n/createNumberFormatter.ts +0 -52
- package/src/i18n/createStringFormatter.ts +0 -87
- package/src/i18n/index.ts +0 -40
- package/src/i18n/locale.tsx +0 -188
- package/src/i18n/utils.ts +0 -99
- package/src/index.ts +0 -670
- package/src/interactions/FocusableProvider.tsx +0 -44
- package/src/interactions/PressEvent.ts +0 -124
- package/src/interactions/createFocus.ts +0 -163
- package/src/interactions/createFocusRing.ts +0 -89
- package/src/interactions/createFocusWithin.ts +0 -206
- package/src/interactions/createFocusable.ts +0 -168
- package/src/interactions/createHover.ts +0 -254
- package/src/interactions/createInteractionModality.ts +0 -424
- package/src/interactions/createKeyboard.ts +0 -82
- package/src/interactions/createLongPress.ts +0 -174
- package/src/interactions/createMove.ts +0 -289
- package/src/interactions/createPress.ts +0 -834
- package/src/interactions/index.ts +0 -78
- package/src/label/createField.ts +0 -145
- package/src/label/createLabel.ts +0 -117
- package/src/label/createLabels.ts +0 -50
- package/src/label/index.ts +0 -19
- package/src/landmark/createLandmark.ts +0 -377
- package/src/landmark/index.ts +0 -8
- package/src/link/createLink.ts +0 -182
- package/src/link/index.ts +0 -1
- package/src/listbox/createListBox.ts +0 -269
- package/src/listbox/createOption.ts +0 -151
- package/src/listbox/index.ts +0 -12
- package/src/live-announcer/announce.ts +0 -322
- package/src/live-announcer/index.ts +0 -9
- package/src/menu/createMenu.ts +0 -396
- package/src/menu/createMenuItem.ts +0 -149
- package/src/menu/createMenuTrigger.ts +0 -88
- package/src/menu/index.ts +0 -18
- package/src/meter/createMeter.ts +0 -75
- package/src/meter/index.ts +0 -1
- package/src/numberfield/createNumberField.ts +0 -268
- package/src/numberfield/index.ts +0 -5
- package/src/overlays/ariaHideOutside.ts +0 -219
- package/src/overlays/createInteractOutside.ts +0 -149
- package/src/overlays/createModal.tsx +0 -202
- package/src/overlays/createOverlay.ts +0 -155
- package/src/overlays/createOverlayTrigger.ts +0 -85
- package/src/overlays/createPreventScroll.ts +0 -266
- package/src/overlays/index.ts +0 -44
- package/src/popover/calculatePosition.ts +0 -766
- package/src/popover/createOverlayPosition.ts +0 -356
- package/src/popover/createPopover.ts +0 -170
- package/src/popover/index.ts +0 -24
- package/src/progress/createProgressBar.ts +0 -128
- package/src/progress/index.ts +0 -5
- package/src/radio/createRadio.ts +0 -287
- package/src/radio/createRadioGroup.ts +0 -189
- package/src/radio/createRadioGroupState.ts +0 -201
- package/src/radio/index.ts +0 -23
- package/src/searchfield/createSearchField.ts +0 -186
- package/src/searchfield/index.ts +0 -2
- package/src/select/createHiddenSelect.tsx +0 -236
- package/src/select/createSelect.ts +0 -395
- package/src/select/index.ts +0 -14
- package/src/selection/createTypeSelect.ts +0 -201
- package/src/selection/index.ts +0 -6
- package/src/separator/createSeparator.ts +0 -82
- package/src/separator/index.ts +0 -6
- package/src/slider/createSlider.ts +0 -349
- package/src/slider/index.ts +0 -2
- package/src/ssr/index.tsx +0 -370
- package/src/switch/createSwitch.ts +0 -70
- package/src/switch/index.ts +0 -1
- package/src/table/createTable.ts +0 -526
- package/src/table/createTableCell.ts +0 -147
- package/src/table/createTableColumnHeader.ts +0 -115
- package/src/table/createTableHeaderRow.ts +0 -40
- package/src/table/createTableRow.ts +0 -155
- package/src/table/createTableRowGroup.ts +0 -32
- package/src/table/createTableSelectAllCheckbox.ts +0 -73
- package/src/table/createTableSelectionCheckbox.ts +0 -59
- package/src/table/index.ts +0 -30
- package/src/table/types.ts +0 -165
- package/src/tabs/createTabs.ts +0 -472
- package/src/tabs/index.ts +0 -14
- package/src/tag/createTag.ts +0 -194
- package/src/tag/createTagGroup.ts +0 -154
- package/src/tag/index.ts +0 -12
- package/src/textfield/createTextField.ts +0 -198
- package/src/textfield/index.ts +0 -5
- package/src/toast/createToast.ts +0 -118
- package/src/toast/createToastRegion.ts +0 -100
- package/src/toast/index.ts +0 -11
- package/src/toggle/createToggle.ts +0 -223
- package/src/toggle/createToggleState.ts +0 -94
- package/src/toggle/index.ts +0 -7
- package/src/toolbar/createToolbar.ts +0 -368
- package/src/toolbar/index.ts +0 -6
- package/src/tooltip/createTooltip.ts +0 -79
- package/src/tooltip/createTooltipTrigger.ts +0 -222
- package/src/tooltip/index.ts +0 -6
- package/src/tree/createTree.ts +0 -246
- package/src/tree/createTreeItem.ts +0 -233
- package/src/tree/createTreeSelectionCheckbox.ts +0 -68
- package/src/tree/index.ts +0 -16
- package/src/tree/types.ts +0 -87
- package/src/utils/createDescription.ts +0 -137
- package/src/utils/dom.ts +0 -327
- package/src/utils/env.ts +0 -54
- package/src/utils/events.ts +0 -106
- package/src/utils/filterDOMProps.ts +0 -116
- package/src/utils/focus.ts +0 -151
- package/src/utils/geometry.ts +0 -115
- package/src/utils/globalListeners.ts +0 -142
- package/src/utils/index.ts +0 -80
- package/src/utils/mergeProps.ts +0 -52
- package/src/utils/platform.ts +0 -52
- package/src/utils/reactivity.ts +0 -36
- package/src/utils/textSelection.ts +0 -114
- package/src/visually-hidden/createVisuallyHidden.ts +0 -124
- package/src/visually-hidden/index.ts +0 -6
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Detects interactions outside a given element.
|
|
3
|
-
* Based on @react-aria/interactions useInteractOutside.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { createEffect, onCleanup } from 'solid-js';
|
|
7
|
-
import { getOwnerDocument } from '../utils';
|
|
8
|
-
|
|
9
|
-
export interface InteractOutsideProps {
|
|
10
|
-
/** Reference to the element to detect interactions outside of. */
|
|
11
|
-
ref: () => Element | null;
|
|
12
|
-
/** Handler called when an interaction outside the element completes. */
|
|
13
|
-
onInteractOutside?: (e: PointerEvent) => void;
|
|
14
|
-
/** Handler called when an interaction outside the element starts. */
|
|
15
|
-
onInteractOutsideStart?: (e: PointerEvent) => void;
|
|
16
|
-
/** Whether the interact outside events should be disabled. */
|
|
17
|
-
isDisabled?: boolean;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Detects interactions outside a given element, used in components like
|
|
22
|
-
* Dialogs and Popovers so they can close when a user clicks outside them.
|
|
23
|
-
*/
|
|
24
|
-
export function createInteractOutside(props: InteractOutsideProps): void {
|
|
25
|
-
let isPointerDown = false;
|
|
26
|
-
let ignoreEmulatedMouseEvents = false;
|
|
27
|
-
|
|
28
|
-
createEffect(() => {
|
|
29
|
-
const { ref, onInteractOutside, onInteractOutsideStart, isDisabled } = props;
|
|
30
|
-
|
|
31
|
-
if (isDisabled) {
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const element = ref();
|
|
36
|
-
const documentObject = getOwnerDocument(element);
|
|
37
|
-
|
|
38
|
-
const onPointerDown = (e: PointerEvent) => {
|
|
39
|
-
if (onInteractOutside && isValidEvent(e, ref)) {
|
|
40
|
-
if (onInteractOutsideStart) {
|
|
41
|
-
onInteractOutsideStart(e);
|
|
42
|
-
}
|
|
43
|
-
isPointerDown = true;
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const triggerInteractOutside = (e: PointerEvent) => {
|
|
48
|
-
if (onInteractOutside) {
|
|
49
|
-
onInteractOutside(e);
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
// Use pointer events if available. Otherwise, fall back to mouse and touch events.
|
|
54
|
-
if (typeof PointerEvent !== 'undefined') {
|
|
55
|
-
const onClick = (e: PointerEvent) => {
|
|
56
|
-
if (isPointerDown && isValidEvent(e, ref)) {
|
|
57
|
-
triggerInteractOutside(e);
|
|
58
|
-
}
|
|
59
|
-
isPointerDown = false;
|
|
60
|
-
};
|
|
61
|
-
|
|
62
|
-
// Use click instead of pointerup to avoid Android Chrome issue
|
|
63
|
-
// https://issues.chromium.org/issues/40732224
|
|
64
|
-
documentObject.addEventListener('pointerdown', onPointerDown as EventListener, true);
|
|
65
|
-
documentObject.addEventListener('click', onClick as EventListener, true);
|
|
66
|
-
|
|
67
|
-
onCleanup(() => {
|
|
68
|
-
documentObject.removeEventListener('pointerdown', onPointerDown as EventListener, true);
|
|
69
|
-
documentObject.removeEventListener('click', onClick as EventListener, true);
|
|
70
|
-
});
|
|
71
|
-
} else {
|
|
72
|
-
// Fallback for environments without PointerEvent (mainly tests)
|
|
73
|
-
const onMouseUp = (e: MouseEvent) => {
|
|
74
|
-
if (ignoreEmulatedMouseEvents) {
|
|
75
|
-
ignoreEmulatedMouseEvents = false;
|
|
76
|
-
} else if (isPointerDown && isValidEvent(e as unknown as PointerEvent, ref)) {
|
|
77
|
-
triggerInteractOutside(e as unknown as PointerEvent);
|
|
78
|
-
}
|
|
79
|
-
isPointerDown = false;
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
const onTouchEnd = (e: TouchEvent) => {
|
|
83
|
-
ignoreEmulatedMouseEvents = true;
|
|
84
|
-
if (isPointerDown && isValidEvent(e as unknown as PointerEvent, ref)) {
|
|
85
|
-
triggerInteractOutside(e as unknown as PointerEvent);
|
|
86
|
-
}
|
|
87
|
-
isPointerDown = false;
|
|
88
|
-
};
|
|
89
|
-
|
|
90
|
-
const onMouseDown = (e: MouseEvent) => {
|
|
91
|
-
if (onInteractOutside && isValidEvent(e as unknown as PointerEvent, ref)) {
|
|
92
|
-
if (onInteractOutsideStart) {
|
|
93
|
-
onInteractOutsideStart(e as unknown as PointerEvent);
|
|
94
|
-
}
|
|
95
|
-
isPointerDown = true;
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
const onTouchStart = (e: TouchEvent) => {
|
|
100
|
-
if (onInteractOutside && isValidEvent(e as unknown as PointerEvent, ref)) {
|
|
101
|
-
if (onInteractOutsideStart) {
|
|
102
|
-
onInteractOutsideStart(e as unknown as PointerEvent);
|
|
103
|
-
}
|
|
104
|
-
isPointerDown = true;
|
|
105
|
-
}
|
|
106
|
-
};
|
|
107
|
-
|
|
108
|
-
documentObject.addEventListener('mousedown', onMouseDown as EventListener, true);
|
|
109
|
-
documentObject.addEventListener('mouseup', onMouseUp as EventListener, true);
|
|
110
|
-
documentObject.addEventListener('touchstart', onTouchStart as EventListener, true);
|
|
111
|
-
documentObject.addEventListener('touchend', onTouchEnd as EventListener, true);
|
|
112
|
-
|
|
113
|
-
onCleanup(() => {
|
|
114
|
-
documentObject.removeEventListener('mousedown', onMouseDown as EventListener, true);
|
|
115
|
-
documentObject.removeEventListener('mouseup', onMouseUp as EventListener, true);
|
|
116
|
-
documentObject.removeEventListener('touchstart', onTouchStart as EventListener, true);
|
|
117
|
-
documentObject.removeEventListener('touchend', onTouchEnd as EventListener, true);
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
function isValidEvent(event: PointerEvent | MouseEvent | TouchEvent, ref: () => Element | null): boolean {
|
|
124
|
-
// Only handle primary button clicks
|
|
125
|
-
if ('button' in event && event.button > 0) {
|
|
126
|
-
return false;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
if (event.target) {
|
|
130
|
-
// If the event target is no longer in the document, ignore
|
|
131
|
-
const ownerDocument = (event.target as Element).ownerDocument;
|
|
132
|
-
if (!ownerDocument || !ownerDocument.documentElement.contains(event.target as Node)) {
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
// If the target is within a top layer element (e.g. toasts), ignore
|
|
136
|
-
if ((event.target as Element).closest?.('[data-solidaria-top-layer]')) {
|
|
137
|
-
return false;
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const element = ref();
|
|
142
|
-
if (!element) {
|
|
143
|
-
return false;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// When the event source is inside a Shadow DOM, event.target is just the shadow root.
|
|
147
|
-
// Using event.composedPath instead means we can get the actual element inside the shadow root.
|
|
148
|
-
return !event.composedPath().includes(element);
|
|
149
|
-
}
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Modal context and hooks for managing modal accessibility.
|
|
3
|
-
* Based on @react-aria/overlays useModal.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
createContext,
|
|
8
|
-
createSignal,
|
|
9
|
-
useContext,
|
|
10
|
-
createEffect,
|
|
11
|
-
onCleanup,
|
|
12
|
-
type JSX,
|
|
13
|
-
type Accessor,
|
|
14
|
-
type ParentComponent,
|
|
15
|
-
} from 'solid-js';
|
|
16
|
-
import { Portal } from 'solid-js/web';
|
|
17
|
-
import { isServer } from 'solid-js/web';
|
|
18
|
-
|
|
19
|
-
export interface ModalProviderProps {
|
|
20
|
-
children: JSX.Element;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
interface ModalContext {
|
|
24
|
-
parent: ModalContext | null;
|
|
25
|
-
modalCount: Accessor<number>;
|
|
26
|
-
addModal: () => void;
|
|
27
|
-
removeModal: () => void;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const ModalContext = createContext<ModalContext | null>(null);
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Each ModalProvider tracks how many modals are open in its subtree. On mount, the modals
|
|
34
|
-
* trigger `addModal` to increment the count, and trigger `removeModal` on unmount to decrement it.
|
|
35
|
-
* This is done recursively so that all parent providers are incremented and decremented.
|
|
36
|
-
* If the modal count is greater than zero, we add `aria-hidden` to this provider to hide its
|
|
37
|
-
* subtree from screen readers. This is done using SolidJS context in order to account for things
|
|
38
|
-
* like portals, which can cause the component tree and the DOM tree to differ significantly in structure.
|
|
39
|
-
*/
|
|
40
|
-
export const ModalProvider: ParentComponent<ModalProviderProps> = (props) => {
|
|
41
|
-
const parent = useContext(ModalContext);
|
|
42
|
-
const [modalCount, setModalCount] = createSignal(0);
|
|
43
|
-
|
|
44
|
-
const context: ModalContext = {
|
|
45
|
-
parent,
|
|
46
|
-
modalCount,
|
|
47
|
-
addModal() {
|
|
48
|
-
setModalCount((count) => count + 1);
|
|
49
|
-
if (parent) {
|
|
50
|
-
parent.addModal();
|
|
51
|
-
}
|
|
52
|
-
},
|
|
53
|
-
removeModal() {
|
|
54
|
-
setModalCount((count) => count - 1);
|
|
55
|
-
if (parent) {
|
|
56
|
-
parent.removeModal();
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
return (
|
|
62
|
-
<ModalContext.Provider value={context}>
|
|
63
|
-
{props.children}
|
|
64
|
-
</ModalContext.Provider>
|
|
65
|
-
);
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
export interface ModalProviderAria {
|
|
69
|
-
/** Props to be spread on the container element. */
|
|
70
|
-
modalProviderProps: {
|
|
71
|
-
'aria-hidden'?: true;
|
|
72
|
-
};
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Used to determine if the tree should be aria-hidden based on how many
|
|
77
|
-
* modals are open.
|
|
78
|
-
*/
|
|
79
|
-
export function useModalProvider(): ModalProviderAria {
|
|
80
|
-
const context = useContext(ModalContext);
|
|
81
|
-
return {
|
|
82
|
-
modalProviderProps: {
|
|
83
|
-
get 'aria-hidden'() {
|
|
84
|
-
return context && context.modalCount() > 0 ? true : undefined;
|
|
85
|
-
},
|
|
86
|
-
},
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/**
|
|
91
|
-
* Creates a root node that will be aria-hidden if there are other modals open.
|
|
92
|
-
*/
|
|
93
|
-
const OverlayContainerDOM: ParentComponent<ModalProviderProps> = (props) => {
|
|
94
|
-
const { modalProviderProps } = useModalProvider();
|
|
95
|
-
return (
|
|
96
|
-
<div data-overlay-container {...modalProviderProps}>
|
|
97
|
-
{props.children}
|
|
98
|
-
</div>
|
|
99
|
-
);
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* An OverlayProvider acts as a container for the top-level application.
|
|
104
|
-
* Any application that uses modal dialogs or other overlays should
|
|
105
|
-
* be wrapped in a `<OverlayProvider>`. This is used to ensure that
|
|
106
|
-
* the main content of the application is hidden from screen readers
|
|
107
|
-
* if a modal or other overlay is opened. Only the top-most modal or
|
|
108
|
-
* overlay should be accessible at once.
|
|
109
|
-
*/
|
|
110
|
-
export const OverlayProvider: ParentComponent<ModalProviderProps> = (props) => {
|
|
111
|
-
return (
|
|
112
|
-
<ModalProvider>
|
|
113
|
-
<OverlayContainerDOM>{props.children}</OverlayContainerDOM>
|
|
114
|
-
</ModalProvider>
|
|
115
|
-
);
|
|
116
|
-
};
|
|
117
|
-
|
|
118
|
-
export interface OverlayContainerProps extends ModalProviderProps {
|
|
119
|
-
/**
|
|
120
|
-
* The container element in which the overlay portal will be placed.
|
|
121
|
-
* @default document.body
|
|
122
|
-
*/
|
|
123
|
-
portalContainer?: Element;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* A container for overlays like modals and popovers. Renders the overlay
|
|
128
|
-
* into a Portal which is placed at the end of the document body.
|
|
129
|
-
* Also ensures that the overlay is hidden from screen readers if a
|
|
130
|
-
* nested modal is opened. Only the top-most modal or overlay should
|
|
131
|
-
* be accessible at once.
|
|
132
|
-
*/
|
|
133
|
-
export const OverlayContainer: ParentComponent<OverlayContainerProps> = (props) => {
|
|
134
|
-
// Don't render portal on server
|
|
135
|
-
if (isServer) {
|
|
136
|
-
return null;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
const portalContainer = () => props.portalContainer ?? document.body;
|
|
140
|
-
|
|
141
|
-
createEffect(() => {
|
|
142
|
-
const container = portalContainer();
|
|
143
|
-
if (container?.closest('[data-overlay-container]')) {
|
|
144
|
-
throw new Error('An OverlayContainer must not be inside another container. Please change the portalContainer prop.');
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
|
|
148
|
-
return (
|
|
149
|
-
<Portal mount={portalContainer()}>
|
|
150
|
-
<OverlayProvider>{props.children}</OverlayProvider>
|
|
151
|
-
</Portal>
|
|
152
|
-
);
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
export interface AriaModalOptions {
|
|
156
|
-
/** Whether the modal is disabled. */
|
|
157
|
-
isDisabled?: boolean;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
export interface ModalAria {
|
|
161
|
-
/** Props for the modal content element. */
|
|
162
|
-
modalProps: {
|
|
163
|
-
'data-ismodal': boolean;
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
* Hides content outside the current `<OverlayContainer>` from screen readers
|
|
169
|
-
* on mount and restores it on unmount. Typically used by modal dialogs and
|
|
170
|
-
* other types of overlays to ensure that only the top-most modal is
|
|
171
|
-
* accessible at once.
|
|
172
|
-
*/
|
|
173
|
-
export function createModal(options?: AriaModalOptions): ModalAria {
|
|
174
|
-
// Add aria-hidden to all parent providers on mount, and restore on unmount.
|
|
175
|
-
const context = useContext(ModalContext);
|
|
176
|
-
|
|
177
|
-
if (!context) {
|
|
178
|
-
throw new Error('Modal is not contained within a provider');
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
createEffect(() => {
|
|
182
|
-
if (options?.isDisabled || !context.parent) {
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
// The immediate context is from the provider containing this modal, so we only
|
|
187
|
-
// want to trigger aria-hidden on its parents not on the modal provider itself.
|
|
188
|
-
context.parent.addModal();
|
|
189
|
-
|
|
190
|
-
onCleanup(() => {
|
|
191
|
-
if (context.parent) {
|
|
192
|
-
context.parent.removeModal();
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
});
|
|
196
|
-
|
|
197
|
-
return {
|
|
198
|
-
modalProps: {
|
|
199
|
-
'data-ismodal': !options?.isDisabled,
|
|
200
|
-
},
|
|
201
|
-
};
|
|
202
|
-
}
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Provides the behavior for overlays such as dialogs, popovers, and menus.
|
|
3
|
-
* Based on @react-aria/overlays useOverlay.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { createEffect, onCleanup, type JSX } from 'solid-js';
|
|
7
|
-
import { createInteractOutside } from './createInteractOutside';
|
|
8
|
-
import { createFocusWithin } from '../interactions/createFocusWithin';
|
|
9
|
-
|
|
10
|
-
export interface AriaOverlayProps {
|
|
11
|
-
/** Whether the overlay is currently open. */
|
|
12
|
-
isOpen?: boolean;
|
|
13
|
-
/** Handler that is called when the overlay should close. */
|
|
14
|
-
onClose?: () => void;
|
|
15
|
-
/**
|
|
16
|
-
* Whether to close the overlay when the user interacts outside it.
|
|
17
|
-
* @default false
|
|
18
|
-
*/
|
|
19
|
-
isDismissable?: boolean;
|
|
20
|
-
/** Whether the overlay should close when focus is lost or moves outside it. */
|
|
21
|
-
shouldCloseOnBlur?: boolean;
|
|
22
|
-
/**
|
|
23
|
-
* Whether pressing the escape key to close the overlay should be disabled.
|
|
24
|
-
* @default false
|
|
25
|
-
*/
|
|
26
|
-
isKeyboardDismissDisabled?: boolean;
|
|
27
|
-
/**
|
|
28
|
-
* When user interacts with the argument element outside of the overlay ref,
|
|
29
|
-
* return true if onClose should be called. This gives you a chance to filter
|
|
30
|
-
* out interaction with elements that should not dismiss the overlay.
|
|
31
|
-
* By default, onClose will always be called on interaction outside the overlay ref.
|
|
32
|
-
*/
|
|
33
|
-
shouldCloseOnInteractOutside?: (element: Element) => boolean;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export interface OverlayAria {
|
|
37
|
-
/** Props to apply to the overlay container element. */
|
|
38
|
-
overlayProps: JSX.HTMLAttributes<HTMLElement>;
|
|
39
|
-
/** Props to apply to the underlay element, if any. */
|
|
40
|
-
underlayProps: JSX.HTMLAttributes<HTMLElement>;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// Stack of visible overlays, used to ensure only topmost overlay closes
|
|
44
|
-
const visibleOverlays: Array<() => Element | null> = [];
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Provides the behavior for overlays such as dialogs, popovers, and menus.
|
|
48
|
-
* Hides the overlay when the user interacts outside it, when the Escape key is pressed,
|
|
49
|
-
* or optionally, on blur. Only the top-most overlay will close at once.
|
|
50
|
-
*/
|
|
51
|
-
export function createOverlay(
|
|
52
|
-
props: AriaOverlayProps,
|
|
53
|
-
ref: () => Element | null
|
|
54
|
-
): OverlayAria {
|
|
55
|
-
const {
|
|
56
|
-
onClose,
|
|
57
|
-
shouldCloseOnBlur,
|
|
58
|
-
isOpen,
|
|
59
|
-
isDismissable = false,
|
|
60
|
-
isKeyboardDismissDisabled = false,
|
|
61
|
-
shouldCloseOnInteractOutside,
|
|
62
|
-
} = props;
|
|
63
|
-
|
|
64
|
-
// Add the overlay ref to the stack of visible overlays on mount, and remove on unmount.
|
|
65
|
-
createEffect(() => {
|
|
66
|
-
if (isOpen && !visibleOverlays.includes(ref)) {
|
|
67
|
-
visibleOverlays.push(ref);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
onCleanup(() => {
|
|
71
|
-
const index = visibleOverlays.indexOf(ref);
|
|
72
|
-
if (index >= 0) {
|
|
73
|
-
visibleOverlays.splice(index, 1);
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
// Only hide the overlay when it is the topmost visible overlay in the stack
|
|
79
|
-
const onHide = () => {
|
|
80
|
-
if (visibleOverlays[visibleOverlays.length - 1] === ref && onClose) {
|
|
81
|
-
onClose();
|
|
82
|
-
}
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
const onInteractOutsideStart = (e: PointerEvent) => {
|
|
86
|
-
if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target as Element)) {
|
|
87
|
-
if (visibleOverlays[visibleOverlays.length - 1] === ref) {
|
|
88
|
-
e.stopPropagation();
|
|
89
|
-
e.preventDefault();
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
const onInteractOutside = (e: PointerEvent) => {
|
|
95
|
-
if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.target as Element)) {
|
|
96
|
-
if (visibleOverlays[visibleOverlays.length - 1] === ref) {
|
|
97
|
-
e.stopPropagation();
|
|
98
|
-
e.preventDefault();
|
|
99
|
-
}
|
|
100
|
-
onHide();
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
|
|
104
|
-
// Handle clicking outside the overlay to close it
|
|
105
|
-
createInteractOutside({
|
|
106
|
-
ref,
|
|
107
|
-
onInteractOutside: isDismissable && isOpen ? onInteractOutside : undefined,
|
|
108
|
-
onInteractOutsideStart,
|
|
109
|
-
isDisabled: !isDismissable || !isOpen,
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
// Handle focus within for blur detection
|
|
113
|
-
const { focusWithinProps } = createFocusWithin({
|
|
114
|
-
isDisabled: !shouldCloseOnBlur,
|
|
115
|
-
onBlurWithin: (e) => {
|
|
116
|
-
// Do not close if relatedTarget is null, which means focus is lost to the body.
|
|
117
|
-
// That can happen when switching tabs, or due to a browser bug.
|
|
118
|
-
// Clicking on the body to close the overlay should already be handled by createInteractOutside.
|
|
119
|
-
if (!e.relatedTarget) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
if (!shouldCloseOnInteractOutside || shouldCloseOnInteractOutside(e.relatedTarget as Element)) {
|
|
124
|
-
onClose?.();
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
// Handle the escape key
|
|
130
|
-
const onKeyDown: JSX.EventHandler<HTMLElement, KeyboardEvent> = (e) => {
|
|
131
|
-
if (e.key === 'Escape' && !isKeyboardDismissDisabled && !(e as any).nativeEvent?.isComposing) {
|
|
132
|
-
e.stopPropagation();
|
|
133
|
-
e.preventDefault();
|
|
134
|
-
onHide();
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
const onPointerDownUnderlay: JSX.EventHandler<HTMLElement, PointerEvent> = (e) => {
|
|
139
|
-
// Fixes a Firefox issue that starts text selection
|
|
140
|
-
// https://bugzilla.mozilla.org/show_bug.cgi?id=1675846
|
|
141
|
-
if (e.target === e.currentTarget) {
|
|
142
|
-
e.preventDefault();
|
|
143
|
-
}
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
return {
|
|
147
|
-
overlayProps: {
|
|
148
|
-
onKeyDown,
|
|
149
|
-
...focusWithinProps,
|
|
150
|
-
},
|
|
151
|
-
underlayProps: {
|
|
152
|
-
onPointerDown: onPointerDownUnderlay,
|
|
153
|
-
},
|
|
154
|
-
};
|
|
155
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Handles the behavior and accessibility for an overlay trigger.
|
|
3
|
-
* Based on @react-aria/overlays useOverlayTrigger.
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
import { createEffect } from 'solid-js';
|
|
7
|
-
import type { OverlayTriggerState } from '@proyecto-viviana/solid-stately';
|
|
8
|
-
import { createId } from '../ssr';
|
|
9
|
-
import { access, type MaybeAccessor } from '../utils';
|
|
10
|
-
|
|
11
|
-
export interface OverlayTriggerProps {
|
|
12
|
-
/** Type of overlay that is opened by the trigger. */
|
|
13
|
-
type: 'dialog' | 'menu' | 'listbox' | 'tree' | 'grid';
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export interface OverlayTriggerAria {
|
|
17
|
-
/** Props for the trigger element. */
|
|
18
|
-
triggerProps: {
|
|
19
|
-
'aria-haspopup'?: boolean | 'listbox';
|
|
20
|
-
'aria-expanded': boolean;
|
|
21
|
-
'aria-controls'?: string;
|
|
22
|
-
onPress: () => void;
|
|
23
|
-
};
|
|
24
|
-
/** Props for the overlay container element. */
|
|
25
|
-
overlayProps: {
|
|
26
|
-
id: string;
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
// Map for storing close functions, used by useCloseOnScroll
|
|
31
|
-
export const onCloseMap = new WeakMap<Element, () => void>();
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Handles the behavior and accessibility for an overlay trigger, e.g. a button
|
|
35
|
-
* that opens a popover, menu, or other overlay that is positioned relative to the trigger.
|
|
36
|
-
*/
|
|
37
|
-
export function createOverlayTrigger(
|
|
38
|
-
props: MaybeAccessor<OverlayTriggerProps>,
|
|
39
|
-
state: OverlayTriggerState,
|
|
40
|
-
ref?: () => Element | null
|
|
41
|
-
): OverlayTriggerAria {
|
|
42
|
-
const propsAccessor = () => access(props);
|
|
43
|
-
const overlayId = createId();
|
|
44
|
-
|
|
45
|
-
// Backward compatibility. Share state close function with useOverlayPosition so it can close on scroll
|
|
46
|
-
// without forcing users to pass onClose.
|
|
47
|
-
createEffect(() => {
|
|
48
|
-
const element = ref?.();
|
|
49
|
-
if (element) {
|
|
50
|
-
onCloseMap.set(element, state.close);
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
// Aria 1.1 supports multiple values for aria-haspopup other than just menus.
|
|
55
|
-
// https://www.w3.org/TR/wai-aria-1.1/#aria-haspopup
|
|
56
|
-
// However, we only add it for menus for now because screen readers often
|
|
57
|
-
// announce it as a menu even for other values.
|
|
58
|
-
const getAriaHasPopup = (): boolean | 'listbox' | undefined => {
|
|
59
|
-
const type = propsAccessor().type;
|
|
60
|
-
if (type === 'menu') {
|
|
61
|
-
return true;
|
|
62
|
-
} else if (type === 'listbox') {
|
|
63
|
-
return 'listbox';
|
|
64
|
-
}
|
|
65
|
-
return undefined;
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
return {
|
|
69
|
-
triggerProps: {
|
|
70
|
-
get 'aria-haspopup'() {
|
|
71
|
-
return getAriaHasPopup();
|
|
72
|
-
},
|
|
73
|
-
get 'aria-expanded'() {
|
|
74
|
-
return state.isOpen();
|
|
75
|
-
},
|
|
76
|
-
get 'aria-controls'() {
|
|
77
|
-
return state.isOpen() ? overlayId : undefined;
|
|
78
|
-
},
|
|
79
|
-
onPress: state.toggle,
|
|
80
|
-
},
|
|
81
|
-
overlayProps: {
|
|
82
|
-
id: overlayId,
|
|
83
|
-
},
|
|
84
|
-
};
|
|
85
|
-
}
|