@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
|
@@ -5,14 +5,10 @@
|
|
|
5
5
|
* Based on @react-aria/datepicker useDateSegment semantics (time-field scope).
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { createMemo, createSignal } from
|
|
9
|
-
import { useLocale } from
|
|
10
|
-
import { access, type MaybeAccessor } from
|
|
11
|
-
import type { TimeFieldState, TimeSegment, TimeSegmentType } from
|
|
12
|
-
|
|
13
|
-
// ============================================
|
|
14
|
-
// TYPES
|
|
15
|
-
// ============================================
|
|
8
|
+
import { createMemo, createSignal } from "solid-js";
|
|
9
|
+
import { useLocale } from "../i18n";
|
|
10
|
+
import { access, type MaybeAccessor } from "../utils/reactivity";
|
|
11
|
+
import type { TimeFieldState, TimeSegment, TimeSegmentType } from "@proyecto-viviana/solid-stately";
|
|
16
12
|
|
|
17
13
|
export interface AriaTimeSegmentProps {
|
|
18
14
|
/** The segment data. */
|
|
@@ -32,21 +28,17 @@ export interface TimeSegmentAria {
|
|
|
32
28
|
text: string;
|
|
33
29
|
}
|
|
34
30
|
|
|
35
|
-
// ============================================
|
|
36
|
-
// IMPLEMENTATION
|
|
37
|
-
// ============================================
|
|
38
|
-
|
|
39
31
|
/**
|
|
40
32
|
* Provides the behavior and accessibility implementation for a time segment.
|
|
41
33
|
*/
|
|
42
34
|
export function createTimeSegment<T extends TimeFieldState>(
|
|
43
35
|
props: MaybeAccessor<AriaTimeSegmentProps>,
|
|
44
36
|
state: T,
|
|
45
|
-
ref?: () => HTMLElement | null
|
|
37
|
+
ref?: () => HTMLElement | null,
|
|
46
38
|
): TimeSegmentAria {
|
|
47
39
|
const getProps = () => access(props);
|
|
48
40
|
const [isFocused, setIsFocused] = createSignal(false);
|
|
49
|
-
const [enteredKeys, setEnteredKeys] = createSignal(
|
|
41
|
+
const [enteredKeys, setEnteredKeys] = createSignal("");
|
|
50
42
|
const [isComposing, setIsComposing] = createSignal(false);
|
|
51
43
|
const locale = useLocale();
|
|
52
44
|
|
|
@@ -57,25 +49,23 @@ export function createTimeSegment<T extends TimeFieldState>(
|
|
|
57
49
|
return seg.isEditable && !state.isDisabled() && !state.isReadOnly();
|
|
58
50
|
});
|
|
59
51
|
|
|
60
|
-
const focusSegment = (target:
|
|
52
|
+
const focusSegment = (target: "first" | "last" | "prev" | "next") => {
|
|
61
53
|
const el = ref?.();
|
|
62
54
|
if (!el) return;
|
|
63
55
|
|
|
64
56
|
const container = el.parentElement;
|
|
65
57
|
if (!container) return;
|
|
66
58
|
|
|
67
|
-
const segments = Array.from(
|
|
68
|
-
container.querySelectorAll<HTMLElement>('[role="spinbutton"]')
|
|
69
|
-
);
|
|
59
|
+
const segments = Array.from(container.querySelectorAll<HTMLElement>('[role="spinbutton"]'));
|
|
70
60
|
|
|
71
61
|
if (segments.length === 0) return;
|
|
72
62
|
|
|
73
|
-
if (target ===
|
|
63
|
+
if (target === "first") {
|
|
74
64
|
segments[0]?.focus();
|
|
75
65
|
return;
|
|
76
66
|
}
|
|
77
67
|
|
|
78
|
-
if (target ===
|
|
68
|
+
if (target === "last") {
|
|
79
69
|
segments[segments.length - 1]?.focus();
|
|
80
70
|
return;
|
|
81
71
|
}
|
|
@@ -83,7 +73,7 @@ export function createTimeSegment<T extends TimeFieldState>(
|
|
|
83
73
|
const currentIndex = segments.indexOf(el);
|
|
84
74
|
if (currentIndex < 0) return;
|
|
85
75
|
|
|
86
|
-
const nextIndex = target ===
|
|
76
|
+
const nextIndex = target === "next" ? currentIndex + 1 : currentIndex - 1;
|
|
87
77
|
if (nextIndex >= 0 && nextIndex < segments.length) {
|
|
88
78
|
segments[nextIndex]?.focus();
|
|
89
79
|
}
|
|
@@ -91,14 +81,10 @@ export function createTimeSegment<T extends TimeFieldState>(
|
|
|
91
81
|
|
|
92
82
|
const clearCurrentSegment = (type: TimeSegmentType) => {
|
|
93
83
|
state.clearSegment(type);
|
|
94
|
-
setEnteredKeys(
|
|
84
|
+
setEnteredKeys("");
|
|
95
85
|
};
|
|
96
86
|
|
|
97
|
-
const handleNumericInput = (
|
|
98
|
-
key: string,
|
|
99
|
-
type: TimeSegmentType,
|
|
100
|
-
seg: TimeSegment
|
|
101
|
-
) => {
|
|
87
|
+
const handleNumericInput = (key: string, type: TimeSegmentType, seg: TimeSegment) => {
|
|
102
88
|
const newKeys = enteredKeys() + key;
|
|
103
89
|
const numValue = parseInt(newKeys, 10);
|
|
104
90
|
const maxValue = seg.maxValue ?? 99;
|
|
@@ -108,10 +94,10 @@ export function createTimeSegment<T extends TimeFieldState>(
|
|
|
108
94
|
if (numValue <= maxValue) {
|
|
109
95
|
state.setSegment(type, numValue);
|
|
110
96
|
|
|
111
|
-
const potentialNextValue = parseInt(newKeys +
|
|
97
|
+
const potentialNextValue = parseInt(newKeys + "0", 10);
|
|
112
98
|
if (potentialNextValue > maxValue || newKeys.length >= maxDigits) {
|
|
113
|
-
setEnteredKeys(
|
|
114
|
-
focusSegment(
|
|
99
|
+
setEnteredKeys("");
|
|
100
|
+
focusSegment("next");
|
|
115
101
|
} else {
|
|
116
102
|
setEnteredKeys(newKeys);
|
|
117
103
|
}
|
|
@@ -119,15 +105,15 @@ export function createTimeSegment<T extends TimeFieldState>(
|
|
|
119
105
|
const singleValue = parseInt(key, 10);
|
|
120
106
|
if (singleValue >= minValue && singleValue <= maxValue) {
|
|
121
107
|
state.setSegment(type, singleValue);
|
|
122
|
-
const potentialNextValue = parseInt(key +
|
|
108
|
+
const potentialNextValue = parseInt(key + "0", 10);
|
|
123
109
|
if (potentialNextValue > maxValue || key.length >= maxDigits) {
|
|
124
|
-
setEnteredKeys(
|
|
125
|
-
focusSegment(
|
|
110
|
+
setEnteredKeys("");
|
|
111
|
+
focusSegment("next");
|
|
126
112
|
} else {
|
|
127
113
|
setEnteredKeys(key);
|
|
128
114
|
}
|
|
129
115
|
} else {
|
|
130
|
-
setEnteredKeys(
|
|
116
|
+
setEnteredKeys("");
|
|
131
117
|
}
|
|
132
118
|
}
|
|
133
119
|
};
|
|
@@ -139,42 +125,42 @@ export function createTimeSegment<T extends TimeFieldState>(
|
|
|
139
125
|
const seg = segment();
|
|
140
126
|
const type = seg.type;
|
|
141
127
|
|
|
142
|
-
if (type ===
|
|
128
|
+
if (type === "literal") return;
|
|
143
129
|
|
|
144
130
|
switch (e.key) {
|
|
145
|
-
case
|
|
131
|
+
case "ArrowRight":
|
|
146
132
|
e.preventDefault();
|
|
147
|
-
focusSegment(locale().direction ===
|
|
133
|
+
focusSegment(locale().direction === "rtl" ? "prev" : "next");
|
|
148
134
|
break;
|
|
149
|
-
case
|
|
135
|
+
case "ArrowLeft":
|
|
150
136
|
e.preventDefault();
|
|
151
|
-
focusSegment(locale().direction ===
|
|
137
|
+
focusSegment(locale().direction === "rtl" ? "next" : "prev");
|
|
152
138
|
break;
|
|
153
|
-
case
|
|
139
|
+
case "ArrowUp":
|
|
154
140
|
e.preventDefault();
|
|
155
141
|
state.incrementSegment(type);
|
|
156
142
|
break;
|
|
157
|
-
case
|
|
143
|
+
case "ArrowDown":
|
|
158
144
|
e.preventDefault();
|
|
159
145
|
state.decrementSegment(type);
|
|
160
146
|
break;
|
|
161
|
-
case
|
|
147
|
+
case "Home":
|
|
162
148
|
e.preventDefault();
|
|
163
|
-
focusSegment(
|
|
149
|
+
focusSegment("first");
|
|
164
150
|
break;
|
|
165
|
-
case
|
|
151
|
+
case "End":
|
|
166
152
|
e.preventDefault();
|
|
167
|
-
focusSegment(
|
|
153
|
+
focusSegment("last");
|
|
168
154
|
break;
|
|
169
|
-
case
|
|
155
|
+
case "Backspace":
|
|
170
156
|
e.preventDefault();
|
|
171
157
|
if (seg.isPlaceholder) {
|
|
172
|
-
focusSegment(
|
|
158
|
+
focusSegment("prev");
|
|
173
159
|
} else {
|
|
174
160
|
clearCurrentSegment(type);
|
|
175
161
|
}
|
|
176
162
|
break;
|
|
177
|
-
case
|
|
163
|
+
case "Delete":
|
|
178
164
|
e.preventDefault();
|
|
179
165
|
clearCurrentSegment(type);
|
|
180
166
|
break;
|
|
@@ -193,15 +179,15 @@ export function createTimeSegment<T extends TimeFieldState>(
|
|
|
193
179
|
if (isComposing()) return;
|
|
194
180
|
|
|
195
181
|
const seg = segment();
|
|
196
|
-
if (seg.type ===
|
|
182
|
+
if (seg.type === "literal") return;
|
|
197
183
|
|
|
198
|
-
if (e.inputType ===
|
|
184
|
+
if (e.inputType === "deleteContentBackward" || e.inputType === "deleteContentForward") {
|
|
199
185
|
e.preventDefault();
|
|
200
186
|
clearCurrentSegment(seg.type);
|
|
201
187
|
return;
|
|
202
188
|
}
|
|
203
189
|
|
|
204
|
-
if (e.inputType ===
|
|
190
|
+
if (e.inputType === "insertText" && e.data) {
|
|
205
191
|
const normalizedDigit = normalizeDigit(e.data);
|
|
206
192
|
if (!normalizedDigit) return;
|
|
207
193
|
e.preventDefault();
|
|
@@ -212,7 +198,7 @@ export function createTimeSegment<T extends TimeFieldState>(
|
|
|
212
198
|
const handleCompositionStart = () => {
|
|
213
199
|
if (!isEditable()) return;
|
|
214
200
|
setIsComposing(true);
|
|
215
|
-
setEnteredKeys(
|
|
201
|
+
setEnteredKeys("");
|
|
216
202
|
};
|
|
217
203
|
|
|
218
204
|
const handleCompositionEnd = (e: CompositionEvent) => {
|
|
@@ -220,9 +206,9 @@ export function createTimeSegment<T extends TimeFieldState>(
|
|
|
220
206
|
setIsComposing(false);
|
|
221
207
|
|
|
222
208
|
const seg = segment();
|
|
223
|
-
if (seg.type ===
|
|
209
|
+
if (seg.type === "literal") return;
|
|
224
210
|
|
|
225
|
-
const digits = extractNormalizedDigits(e.data ??
|
|
211
|
+
const digits = extractNormalizedDigits(e.data ?? "");
|
|
226
212
|
if (digits.length === 0) return;
|
|
227
213
|
|
|
228
214
|
for (const digit of digits) {
|
|
@@ -232,12 +218,12 @@ export function createTimeSegment<T extends TimeFieldState>(
|
|
|
232
218
|
|
|
233
219
|
const handleFocus = () => {
|
|
234
220
|
setIsFocused(true);
|
|
235
|
-
setEnteredKeys(
|
|
221
|
+
setEnteredKeys("");
|
|
236
222
|
};
|
|
237
223
|
|
|
238
224
|
const handleBlur = () => {
|
|
239
225
|
setIsFocused(false);
|
|
240
|
-
setEnteredKeys(
|
|
226
|
+
setEnteredKeys("");
|
|
241
227
|
|
|
242
228
|
const maybeState = state as unknown as { confirmPlaceholder?: () => void };
|
|
243
229
|
maybeState.confirmPlaceholder?.();
|
|
@@ -247,28 +233,28 @@ export function createTimeSegment<T extends TimeFieldState>(
|
|
|
247
233
|
const seg = segment();
|
|
248
234
|
const type = seg.type;
|
|
249
235
|
|
|
250
|
-
if (type ===
|
|
236
|
+
if (type === "literal") {
|
|
251
237
|
return {
|
|
252
|
-
|
|
238
|
+
"aria-hidden": true,
|
|
253
239
|
};
|
|
254
240
|
}
|
|
255
241
|
|
|
256
242
|
return {
|
|
257
|
-
role:
|
|
243
|
+
role: "spinbutton",
|
|
258
244
|
tabIndex: isEditable() ? 0 : -1,
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
245
|
+
"aria-label": getSegmentLabel(type, locale().locale),
|
|
246
|
+
"aria-valuenow": seg.value,
|
|
247
|
+
"aria-valuemin": seg.minValue,
|
|
248
|
+
"aria-valuemax": seg.maxValue,
|
|
249
|
+
"aria-valuetext": seg.isPlaceholder ? seg.placeholder : seg.text,
|
|
250
|
+
"aria-readonly": state.isReadOnly() || undefined,
|
|
251
|
+
"aria-disabled": state.isDisabled() || undefined,
|
|
252
|
+
"aria-invalid": state.isInvalid() || undefined,
|
|
267
253
|
contentEditable: isEditable(),
|
|
268
254
|
suppressContentEditableWarning: true,
|
|
269
|
-
inputMode:
|
|
270
|
-
autoCorrect:
|
|
271
|
-
enterKeyHint:
|
|
255
|
+
inputMode: "numeric" as const,
|
|
256
|
+
autoCorrect: "off",
|
|
257
|
+
enterKeyHint: "next" as const,
|
|
272
258
|
spellCheck: false,
|
|
273
259
|
onKeyDown: handleKeyDown,
|
|
274
260
|
onFocus: handleFocus,
|
|
@@ -306,31 +292,27 @@ export function createTimeSegment<T extends TimeFieldState>(
|
|
|
306
292
|
};
|
|
307
293
|
}
|
|
308
294
|
|
|
309
|
-
|
|
310
|
-
// HELPERS
|
|
311
|
-
// ============================================
|
|
312
|
-
|
|
313
|
-
type EditableTimeSegmentType = Exclude<TimeSegmentType, 'literal'>;
|
|
295
|
+
type EditableTimeSegmentType = Exclude<TimeSegmentType, "literal">;
|
|
314
296
|
|
|
315
297
|
const SEGMENT_LABELS: Record<string, Record<EditableTimeSegmentType, string>> = {
|
|
316
298
|
en: {
|
|
317
|
-
hour:
|
|
318
|
-
minute:
|
|
319
|
-
second:
|
|
320
|
-
dayPeriod:
|
|
299
|
+
hour: "Hour",
|
|
300
|
+
minute: "Minute",
|
|
301
|
+
second: "Second",
|
|
302
|
+
dayPeriod: "AM/PM",
|
|
321
303
|
},
|
|
322
304
|
es: {
|
|
323
|
-
hour:
|
|
324
|
-
minute:
|
|
325
|
-
second:
|
|
326
|
-
dayPeriod:
|
|
305
|
+
hour: "Hora",
|
|
306
|
+
minute: "Minuto",
|
|
307
|
+
second: "Segundo",
|
|
308
|
+
dayPeriod: "AM/PM",
|
|
327
309
|
},
|
|
328
310
|
};
|
|
329
311
|
|
|
330
312
|
function getSegmentLabel(type: TimeSegmentType, locale: string): string {
|
|
331
|
-
if (type ===
|
|
313
|
+
if (type === "literal") return "";
|
|
332
314
|
|
|
333
|
-
const language = locale.toLowerCase().split(
|
|
315
|
+
const language = locale.toLowerCase().split("-")[0] ?? "en";
|
|
334
316
|
const labels = SEGMENT_LABELS[language] ?? SEGMENT_LABELS.en;
|
|
335
317
|
return labels[type];
|
|
336
318
|
}
|
package/src/datepicker/index.ts
CHANGED
|
@@ -1,30 +1,22 @@
|
|
|
1
1
|
// Date Field
|
|
2
|
-
export {
|
|
3
|
-
createDateField,
|
|
4
|
-
type AriaDateFieldProps,
|
|
5
|
-
type DateFieldAria,
|
|
6
|
-
} from './createDateField';
|
|
2
|
+
export { createDateField, type AriaDateFieldProps, type DateFieldAria } from "./createDateField";
|
|
7
3
|
|
|
8
4
|
// Date Segment
|
|
9
5
|
export {
|
|
10
6
|
createDateSegment,
|
|
11
7
|
type AriaDateSegmentProps,
|
|
12
8
|
type DateSegmentAria,
|
|
13
|
-
} from
|
|
9
|
+
} from "./createDateSegment";
|
|
14
10
|
|
|
15
11
|
// Time Field
|
|
16
|
-
export {
|
|
17
|
-
createTimeField,
|
|
18
|
-
type AriaTimeFieldProps,
|
|
19
|
-
type TimeFieldAria,
|
|
20
|
-
} from './createTimeField';
|
|
12
|
+
export { createTimeField, type AriaTimeFieldProps, type TimeFieldAria } from "./createTimeField";
|
|
21
13
|
|
|
22
14
|
// Time Segment
|
|
23
15
|
export {
|
|
24
16
|
createTimeSegment,
|
|
25
17
|
type AriaTimeSegmentProps,
|
|
26
18
|
type TimeSegmentAria,
|
|
27
|
-
} from
|
|
19
|
+
} from "./createTimeSegment";
|
|
28
20
|
|
|
29
21
|
// Date Picker
|
|
30
22
|
export {
|
|
@@ -32,11 +24,18 @@ export {
|
|
|
32
24
|
type AriaDatePickerProps,
|
|
33
25
|
type DatePickerAria,
|
|
34
26
|
type DatePickerState,
|
|
35
|
-
} from
|
|
27
|
+
} from "./createDatePicker";
|
|
28
|
+
|
|
29
|
+
// Date Picker Group
|
|
30
|
+
export {
|
|
31
|
+
createDatePickerGroup,
|
|
32
|
+
type AriaDatePickerGroupProps,
|
|
33
|
+
type DatePickerGroupAria,
|
|
34
|
+
} from "./createDatePickerGroup";
|
|
36
35
|
|
|
37
36
|
// Date Range Picker
|
|
38
37
|
export {
|
|
39
38
|
createDateRangePicker,
|
|
40
39
|
type AriaDateRangePickerProps,
|
|
41
40
|
type DateRangePickerAria,
|
|
42
|
-
} from
|
|
41
|
+
} from "./createDateRangePicker";
|
|
@@ -15,24 +15,31 @@
|
|
|
15
15
|
* https://github.com/adobe/react-spectrum/blob/main/packages/@react-aria/dialog/src/useDialog.ts
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
|
-
import {
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
import {
|
|
19
|
+
Accessor,
|
|
20
|
+
createEffect,
|
|
21
|
+
createMemo,
|
|
22
|
+
createSignal,
|
|
23
|
+
createUniqueId,
|
|
24
|
+
onCleanup,
|
|
25
|
+
} from "solid-js";
|
|
26
|
+
import { filterDOMProps, focusSafely } from "../utils";
|
|
27
|
+
import type { AriaLabelingProps, DOMProps } from "./types";
|
|
21
28
|
|
|
22
29
|
export interface AriaDialogProps extends DOMProps, AriaLabelingProps {
|
|
23
30
|
/**
|
|
24
31
|
* The role of the dialog element.
|
|
25
32
|
* @default 'dialog'
|
|
26
33
|
*/
|
|
27
|
-
role?:
|
|
34
|
+
role?: "dialog" | "alertdialog";
|
|
28
35
|
}
|
|
29
36
|
|
|
30
37
|
export interface DialogAria {
|
|
31
38
|
/** Props for the dialog container element. */
|
|
32
|
-
dialogProps: Accessor<Record<string,
|
|
39
|
+
dialogProps: Accessor<Record<string, unknown>>;
|
|
33
40
|
|
|
34
41
|
/** Props for the dialog title element. */
|
|
35
|
-
titleProps: Accessor<Record<string,
|
|
42
|
+
titleProps: Accessor<Record<string, unknown>>;
|
|
36
43
|
}
|
|
37
44
|
|
|
38
45
|
/**
|
|
@@ -41,31 +48,31 @@ export interface DialogAria {
|
|
|
41
48
|
*/
|
|
42
49
|
export function createDialog(
|
|
43
50
|
props: AriaDialogProps | Accessor<AriaDialogProps>,
|
|
44
|
-
ref: Accessor<HTMLElement | undefined
|
|
51
|
+
ref: Accessor<HTMLElement | undefined>,
|
|
45
52
|
): DialogAria {
|
|
46
53
|
// Support both direct props and accessor pattern
|
|
47
|
-
const getProps = typeof props ===
|
|
54
|
+
const getProps = typeof props === "function" ? props : () => props;
|
|
48
55
|
|
|
49
|
-
const role = () => getProps().role ??
|
|
50
|
-
const generatedTitleId = createUniqueId()
|
|
51
|
-
const [isRefocusing, setIsRefocusing] = createSignal(false)
|
|
56
|
+
const role = () => getProps().role ?? "dialog";
|
|
57
|
+
const generatedTitleId = createUniqueId();
|
|
58
|
+
const [isRefocusing, setIsRefocusing] = createSignal(false);
|
|
52
59
|
|
|
53
60
|
const titleId = createMemo(() => {
|
|
54
|
-
const p = getProps()
|
|
61
|
+
const p = getProps();
|
|
55
62
|
// Use provided aria-labelledby, or generated ID if no aria-label
|
|
56
|
-
if (p[
|
|
57
|
-
return p[
|
|
58
|
-
})
|
|
63
|
+
if (p["aria-labelledby"]) return undefined;
|
|
64
|
+
return p["aria-label"] ? undefined : generatedTitleId;
|
|
65
|
+
});
|
|
59
66
|
|
|
60
67
|
// Focus the dialog itself on mount, unless a child element is already focused.
|
|
61
68
|
// Only run on the client (SSR-safe)
|
|
62
69
|
createEffect(() => {
|
|
63
70
|
// Guard against SSR - document is not available on the server
|
|
64
|
-
if (typeof document ===
|
|
71
|
+
if (typeof document === "undefined") return;
|
|
65
72
|
|
|
66
|
-
const dialogEl = ref()
|
|
73
|
+
const dialogEl = ref();
|
|
67
74
|
if (dialogEl && !dialogEl.contains(document.activeElement)) {
|
|
68
|
-
focusSafely(dialogEl)
|
|
75
|
+
focusSafely(dialogEl);
|
|
69
76
|
|
|
70
77
|
// Safari on iOS does not move the VoiceOver cursor to the dialog
|
|
71
78
|
// or announce that it has opened until it has rendered. A workaround
|
|
@@ -73,48 +80,48 @@ export function createDialog(
|
|
|
73
80
|
const timeout = setTimeout(() => {
|
|
74
81
|
// Check that the dialog is still focused, or focused was lost to the body.
|
|
75
82
|
if (document.activeElement === dialogEl || document.activeElement === document.body) {
|
|
76
|
-
setIsRefocusing(true)
|
|
77
|
-
dialogEl.blur()
|
|
78
|
-
focusSafely(dialogEl)
|
|
79
|
-
setIsRefocusing(false)
|
|
83
|
+
setIsRefocusing(true);
|
|
84
|
+
dialogEl.blur();
|
|
85
|
+
focusSafely(dialogEl);
|
|
86
|
+
setIsRefocusing(false);
|
|
80
87
|
}
|
|
81
|
-
}, 500)
|
|
88
|
+
}, 500);
|
|
82
89
|
|
|
83
90
|
onCleanup(() => {
|
|
84
|
-
clearTimeout(timeout)
|
|
85
|
-
})
|
|
91
|
+
clearTimeout(timeout);
|
|
92
|
+
});
|
|
86
93
|
}
|
|
87
|
-
})
|
|
94
|
+
});
|
|
88
95
|
|
|
89
96
|
// Note: Focus containment is typically handled by createModal at a higher level
|
|
90
97
|
// For standalone dialogs, focus containment should be managed by the overlay system
|
|
91
98
|
|
|
92
99
|
const dialogProps = createMemo(() => {
|
|
93
|
-
const p = getProps()
|
|
100
|
+
const p = getProps();
|
|
94
101
|
return {
|
|
95
102
|
...filterDOMProps(p),
|
|
96
103
|
role: role(),
|
|
97
104
|
tabIndex: -1,
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
105
|
+
"aria-label": p["aria-label"],
|
|
106
|
+
"aria-labelledby": p["aria-labelledby"] || titleId(),
|
|
107
|
+
"aria-describedby": p["aria-describedby"],
|
|
101
108
|
// Prevent blur events from reaching createOverlay, which may cause
|
|
102
109
|
// popovers to close. Since focus is contained within the dialog,
|
|
103
110
|
// we don't want this to occur due to the above createEffect.
|
|
104
111
|
onBlur: (e: FocusEvent) => {
|
|
105
112
|
if (isRefocusing()) {
|
|
106
|
-
e.stopPropagation()
|
|
113
|
+
e.stopPropagation();
|
|
107
114
|
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
})
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
});
|
|
111
118
|
|
|
112
119
|
const titlePropsValue = createMemo(() => ({
|
|
113
|
-
id: titleId()
|
|
114
|
-
}))
|
|
120
|
+
id: titleId(),
|
|
121
|
+
}));
|
|
115
122
|
|
|
116
123
|
return {
|
|
117
124
|
dialogProps,
|
|
118
|
-
titleProps: titlePropsValue
|
|
119
|
-
}
|
|
125
|
+
titleProps: titlePropsValue,
|
|
126
|
+
};
|
|
120
127
|
}
|
package/src/dialog/index.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { createDialog } from
|
|
2
|
-
export type { AriaDialogProps, DialogAria } from
|
|
1
|
+
export { createDialog } from "./createDialog";
|
|
2
|
+
export type { AriaDialogProps, DialogAria } from "./createDialog";
|
package/src/dialog/types.ts
CHANGED
|
@@ -9,11 +9,11 @@ export interface DOMProps {
|
|
|
9
9
|
|
|
10
10
|
export interface AriaLabelingProps {
|
|
11
11
|
/** Defines a string value that labels the current element. */
|
|
12
|
-
|
|
12
|
+
"aria-label"?: string;
|
|
13
13
|
/** Identifies the element (or elements) that labels the current element. */
|
|
14
|
-
|
|
14
|
+
"aria-labelledby"?: string;
|
|
15
15
|
/** Identifies the element (or elements) that describes the object. */
|
|
16
|
-
|
|
16
|
+
"aria-describedby"?: string;
|
|
17
17
|
/** Identifies the element (or elements) that provide a detailed, extended description for the object. */
|
|
18
|
-
|
|
18
|
+
"aria-details"?: string;
|
|
19
19
|
}
|