@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,15 +5,15 @@
|
|
|
5
5
|
* Ported from @react-aria/overlays useOverlayPosition.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { createEffect, createSignal, onCleanup, type JSX } from
|
|
9
|
-
import { useLocale } from
|
|
8
|
+
import { createEffect, createSignal, onCleanup, type JSX } from "solid-js";
|
|
9
|
+
import { useLocale } from "../i18n";
|
|
10
10
|
import {
|
|
11
11
|
calculatePosition,
|
|
12
12
|
getRect,
|
|
13
13
|
type Placement,
|
|
14
14
|
type PlacementAxis,
|
|
15
15
|
type PositionResult,
|
|
16
|
-
} from
|
|
16
|
+
} from "./calculatePosition";
|
|
17
17
|
|
|
18
18
|
export interface PositionProps {
|
|
19
19
|
/**
|
|
@@ -109,13 +109,13 @@ export interface PositionAria {
|
|
|
109
109
|
updatePosition: () => void;
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
const visualViewport = typeof document !==
|
|
112
|
+
const visualViewport = typeof document !== "undefined" ? window.visualViewport : null;
|
|
113
113
|
|
|
114
114
|
function translateRTL(position: string, direction: string): string {
|
|
115
|
-
if (direction ===
|
|
116
|
-
return position.replace(
|
|
115
|
+
if (direction === "rtl") {
|
|
116
|
+
return position.replace("start", "right").replace("end", "left");
|
|
117
117
|
}
|
|
118
|
-
return position.replace(
|
|
118
|
+
return position.replace("start", "left").replace("end", "right");
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
/**
|
|
@@ -131,11 +131,11 @@ export function createOverlayPosition(props: AriaPositionProps): PositionAria {
|
|
|
131
131
|
const overlayRef = () => props.overlayRef();
|
|
132
132
|
const arrowRef = () => props.arrowRef?.() ?? null;
|
|
133
133
|
const scrollRef = () => props.scrollRef?.() ?? overlayRef();
|
|
134
|
-
const placement = () => (props.placement ??
|
|
134
|
+
const placement = () => (props.placement ?? "bottom") as Placement;
|
|
135
135
|
const containerPadding = () => props.containerPadding ?? 12;
|
|
136
136
|
const shouldFlip = () => props.shouldFlip ?? true;
|
|
137
137
|
const boundaryElement = () =>
|
|
138
|
-
props.boundaryElement ?? (typeof document !==
|
|
138
|
+
props.boundaryElement ?? (typeof document !== "undefined" ? document.body : null);
|
|
139
139
|
const offset = () => props.offset ?? 0;
|
|
140
140
|
const crossOffset = () => props.crossOffset ?? 0;
|
|
141
141
|
const shouldUpdatePosition = () => props.shouldUpdatePosition ?? true;
|
|
@@ -174,9 +174,9 @@ export function createOverlayPosition(props: AriaPositionProps): PositionAria {
|
|
|
174
174
|
// Reset overlay's previous max height
|
|
175
175
|
const overlay = overlayNode as HTMLElement;
|
|
176
176
|
if (!maxHeight() && overlayNode) {
|
|
177
|
-
overlay.style.top =
|
|
178
|
-
overlay.style.bottom =
|
|
179
|
-
overlay.style.maxHeight = (window.visualViewport?.height ?? window.innerHeight) +
|
|
177
|
+
overlay.style.top = "0px";
|
|
178
|
+
overlay.style.bottom = "";
|
|
179
|
+
overlay.style.maxHeight = (window.visualViewport?.height ?? window.innerHeight) + "px";
|
|
180
180
|
}
|
|
181
181
|
|
|
182
182
|
const result = calculatePosition({
|
|
@@ -199,16 +199,16 @@ export function createOverlayPosition(props: AriaPositionProps): PositionAria {
|
|
|
199
199
|
}
|
|
200
200
|
|
|
201
201
|
// Apply styles directly for immediate positioning
|
|
202
|
-
overlay.style.top =
|
|
203
|
-
overlay.style.bottom =
|
|
204
|
-
overlay.style.left =
|
|
205
|
-
overlay.style.right =
|
|
202
|
+
overlay.style.top = "";
|
|
203
|
+
overlay.style.bottom = "";
|
|
204
|
+
overlay.style.left = "";
|
|
205
|
+
overlay.style.right = "";
|
|
206
206
|
|
|
207
207
|
const pos = result.position as Record<string, number | undefined>;
|
|
208
208
|
Object.keys(pos).forEach((key) => {
|
|
209
|
-
overlay.style.setProperty(key, pos[key] +
|
|
209
|
+
overlay.style.setProperty(key, pos[key] + "px");
|
|
210
210
|
});
|
|
211
|
-
overlay.style.maxHeight = result.maxHeight != null ? result.maxHeight +
|
|
211
|
+
overlay.style.maxHeight = result.maxHeight != null ? result.maxHeight + "px" : "";
|
|
212
212
|
|
|
213
213
|
setPosition(result);
|
|
214
214
|
};
|
|
@@ -240,10 +240,10 @@ export function createOverlayPosition(props: AriaPositionProps): PositionAria {
|
|
|
240
240
|
if (!isOpen()) return;
|
|
241
241
|
|
|
242
242
|
const handleResize = () => updatePosition();
|
|
243
|
-
window.addEventListener(
|
|
243
|
+
window.addEventListener("resize", handleResize, false);
|
|
244
244
|
|
|
245
245
|
onCleanup(() => {
|
|
246
|
-
window.removeEventListener(
|
|
246
|
+
window.removeEventListener("resize", handleResize, false);
|
|
247
247
|
});
|
|
248
248
|
});
|
|
249
249
|
|
|
@@ -295,12 +295,12 @@ export function createOverlayPosition(props: AriaPositionProps): PositionAria {
|
|
|
295
295
|
}
|
|
296
296
|
};
|
|
297
297
|
|
|
298
|
-
visualViewport?.addEventListener(
|
|
299
|
-
visualViewport?.addEventListener(
|
|
298
|
+
visualViewport?.addEventListener("resize", onResize);
|
|
299
|
+
visualViewport?.addEventListener("scroll", onScroll);
|
|
300
300
|
|
|
301
301
|
onCleanup(() => {
|
|
302
|
-
visualViewport?.removeEventListener(
|
|
303
|
-
visualViewport?.removeEventListener(
|
|
302
|
+
visualViewport?.removeEventListener("resize", onResize);
|
|
303
|
+
visualViewport?.removeEventListener("scroll", onScroll);
|
|
304
304
|
clearTimeout(timeout);
|
|
305
305
|
});
|
|
306
306
|
});
|
|
@@ -325,35 +325,41 @@ export function createOverlayPosition(props: AriaPositionProps): PositionAria {
|
|
|
325
325
|
}
|
|
326
326
|
};
|
|
327
327
|
|
|
328
|
-
document.addEventListener(
|
|
328
|
+
document.addEventListener("scroll", handleScroll, true);
|
|
329
329
|
|
|
330
330
|
onCleanup(() => {
|
|
331
|
-
document.removeEventListener(
|
|
331
|
+
document.removeEventListener("scroll", handleScroll, true);
|
|
332
332
|
});
|
|
333
333
|
});
|
|
334
334
|
|
|
335
335
|
return {
|
|
336
336
|
overlayProps: {
|
|
337
|
-
style: {
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
337
|
+
get style(): JSX.CSSProperties {
|
|
338
|
+
const current = position();
|
|
339
|
+
return {
|
|
340
|
+
position: current ? "absolute" : "fixed",
|
|
341
|
+
top: !current ? 0 : undefined,
|
|
342
|
+
left: !current ? 0 : undefined,
|
|
343
|
+
"z-index": 100000,
|
|
344
|
+
"max-height": current?.maxHeight ?? "100vh",
|
|
345
|
+
} as JSX.CSSProperties;
|
|
346
|
+
},
|
|
344
347
|
},
|
|
345
348
|
placement: () => position()?.placement ?? null,
|
|
346
349
|
triggerAnchorPoint: () => position()?.triggerAnchorPoint ?? null,
|
|
347
350
|
arrowProps: {
|
|
348
|
-
|
|
349
|
-
role:
|
|
350
|
-
style: {
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
351
|
+
"aria-hidden": "true",
|
|
352
|
+
role: "presentation",
|
|
353
|
+
get style(): JSX.CSSProperties {
|
|
354
|
+
const current = position();
|
|
355
|
+
return {
|
|
356
|
+
left: current?.arrowOffsetLeft != null ? `${current.arrowOffsetLeft}px` : undefined,
|
|
357
|
+
top: current?.arrowOffsetTop != null ? `${current.arrowOffsetTop}px` : undefined,
|
|
358
|
+
};
|
|
359
|
+
},
|
|
354
360
|
},
|
|
355
361
|
updatePosition,
|
|
356
362
|
};
|
|
357
363
|
}
|
|
358
364
|
|
|
359
|
-
export { type Placement, type PlacementAxis } from
|
|
365
|
+
export { type Placement, type PlacementAxis } from "./calculatePosition";
|
|
@@ -5,16 +5,16 @@
|
|
|
5
5
|
* Ported from @react-aria/overlays usePopover.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { createEffect, onCleanup, type JSX } from
|
|
9
|
-
import { createOverlay } from
|
|
8
|
+
import { createEffect, onCleanup, type JSX } from "solid-js";
|
|
9
|
+
import { createOverlay } from "../overlays/createOverlay";
|
|
10
10
|
import {
|
|
11
11
|
createOverlayPosition,
|
|
12
12
|
type AriaPositionProps,
|
|
13
13
|
type PlacementAxis,
|
|
14
|
-
} from
|
|
15
|
-
import { createPreventScroll } from
|
|
16
|
-
import { ariaHideOutside, keepVisible } from
|
|
17
|
-
import { mergeProps } from
|
|
14
|
+
} from "./createOverlayPosition";
|
|
15
|
+
import { createPreventScroll } from "../overlays/createPreventScroll";
|
|
16
|
+
import { ariaHideOutside, keepVisible } from "../overlays/ariaHideOutside";
|
|
17
|
+
import { mergeProps } from "../utils/mergeProps";
|
|
18
18
|
|
|
19
19
|
export interface OverlayTriggerState {
|
|
20
20
|
/** Whether the overlay is currently open. */
|
|
@@ -27,8 +27,10 @@ export interface OverlayTriggerState {
|
|
|
27
27
|
toggle: () => void;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
export interface AriaPopoverProps
|
|
31
|
-
|
|
30
|
+
export interface AriaPopoverProps extends Omit<
|
|
31
|
+
AriaPositionProps,
|
|
32
|
+
"isOpen" | "onClose" | "targetRef" | "overlayRef"
|
|
33
|
+
> {
|
|
32
34
|
/**
|
|
33
35
|
* The ref for the element which the popover positions itself with respect to.
|
|
34
36
|
*/
|
|
@@ -94,17 +96,14 @@ export interface PopoverAria {
|
|
|
94
96
|
* Provides the behavior and accessibility implementation for a popover component.
|
|
95
97
|
* A popover is an overlay element positioned relative to a trigger.
|
|
96
98
|
*/
|
|
97
|
-
export function createPopover(
|
|
98
|
-
props: AriaPopoverProps,
|
|
99
|
-
state: OverlayTriggerState
|
|
100
|
-
): PopoverAria {
|
|
99
|
+
export function createPopover(props: AriaPopoverProps, state: OverlayTriggerState): PopoverAria {
|
|
101
100
|
const triggerRef = () => props.triggerRef();
|
|
102
101
|
const popoverRef = () => props.popoverRef();
|
|
103
102
|
const groupRef = () => props.groupRef?.() ?? null;
|
|
104
103
|
const isNonModal = () => props.isNonModal ?? false;
|
|
105
104
|
const isKeyboardDismissDisabled = () => props.isKeyboardDismissDisabled ?? false;
|
|
106
105
|
const shouldCloseOnInteractOutside = props.shouldCloseOnInteractOutside;
|
|
107
|
-
const isSubmenu = () => props.trigger ===
|
|
106
|
+
const isSubmenu = () => props.trigger === "SubmenuTrigger";
|
|
108
107
|
|
|
109
108
|
// Overlay behavior (dismiss handling)
|
|
110
109
|
const { overlayProps, underlayProps } = createOverlay(
|
|
@@ -113,7 +112,9 @@ export function createPopover(
|
|
|
113
112
|
return state.isOpen();
|
|
114
113
|
},
|
|
115
114
|
onClose: state.close,
|
|
116
|
-
shouldCloseOnBlur
|
|
115
|
+
get shouldCloseOnBlur() {
|
|
116
|
+
return !isSubmenu();
|
|
117
|
+
},
|
|
117
118
|
get isDismissable() {
|
|
118
119
|
return !isNonModal() || isSubmenu();
|
|
119
120
|
},
|
|
@@ -124,7 +125,7 @@ export function createPopover(
|
|
|
124
125
|
return shouldCloseOnInteractOutside;
|
|
125
126
|
},
|
|
126
127
|
},
|
|
127
|
-
() => groupRef() ?? popoverRef()
|
|
128
|
+
() => groupRef() ?? popoverRef(),
|
|
128
129
|
);
|
|
129
130
|
|
|
130
131
|
// Overlay positioning
|
|
@@ -172,8 +173,32 @@ export function createPopover(
|
|
|
172
173
|
}
|
|
173
174
|
});
|
|
174
175
|
|
|
176
|
+
const merged = mergeProps(overlayProps, positionProps) as Record<string, unknown>;
|
|
177
|
+
const popoverProps = new Proxy(merged, {
|
|
178
|
+
get(target, key: string) {
|
|
179
|
+
if (key === "style") return positionProps.style;
|
|
180
|
+
return target[key];
|
|
181
|
+
},
|
|
182
|
+
has(target, key) {
|
|
183
|
+
return key in target;
|
|
184
|
+
},
|
|
185
|
+
ownKeys(target) {
|
|
186
|
+
return Reflect.ownKeys(target);
|
|
187
|
+
},
|
|
188
|
+
getOwnPropertyDescriptor(target, key) {
|
|
189
|
+
if (key === "style") {
|
|
190
|
+
return {
|
|
191
|
+
configurable: true,
|
|
192
|
+
enumerable: true,
|
|
193
|
+
get: () => positionProps.style,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
return Reflect.getOwnPropertyDescriptor(target, key);
|
|
197
|
+
},
|
|
198
|
+
});
|
|
199
|
+
|
|
175
200
|
return {
|
|
176
|
-
popoverProps
|
|
201
|
+
popoverProps,
|
|
177
202
|
arrowProps,
|
|
178
203
|
underlayProps,
|
|
179
204
|
placement,
|
|
@@ -181,4 +206,4 @@ export function createPopover(
|
|
|
181
206
|
};
|
|
182
207
|
}
|
|
183
208
|
|
|
184
|
-
export { type PlacementAxis } from
|
|
209
|
+
export { type PlacementAxis } from "./createOverlayPosition";
|
package/src/popover/index.ts
CHANGED
|
@@ -4,7 +4,7 @@ export {
|
|
|
4
4
|
type AriaPopoverProps,
|
|
5
5
|
type PopoverAria,
|
|
6
6
|
type OverlayTriggerState,
|
|
7
|
-
} from
|
|
7
|
+
} from "./createPopover";
|
|
8
8
|
|
|
9
9
|
// Overlay Position
|
|
10
10
|
export {
|
|
@@ -12,7 +12,7 @@ export {
|
|
|
12
12
|
type AriaPositionProps,
|
|
13
13
|
type PositionProps,
|
|
14
14
|
type PositionAria,
|
|
15
|
-
} from
|
|
15
|
+
} from "./createOverlayPosition";
|
|
16
16
|
|
|
17
17
|
// Position calculation utilities
|
|
18
18
|
export {
|
|
@@ -21,4 +21,4 @@ export {
|
|
|
21
21
|
type PlacementAxis,
|
|
22
22
|
type PositionOpts,
|
|
23
23
|
type PositionResult,
|
|
24
|
-
} from
|
|
24
|
+
} from "./calculatePosition";
|
|
@@ -8,16 +8,14 @@
|
|
|
8
8
|
* This is a 1:1 port of @react-aria/progress's useProgressBar hook.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { createLabel } from
|
|
12
|
-
import { mergeProps } from
|
|
13
|
-
import { filterDOMProps } from
|
|
14
|
-
import { type MaybeAccessor, access } from
|
|
15
|
-
|
|
16
|
-
// ============================================
|
|
17
|
-
// TYPES
|
|
18
|
-
// ============================================
|
|
11
|
+
import { createLabel } from "../label/createLabel";
|
|
12
|
+
import { mergeProps } from "../utils/mergeProps";
|
|
13
|
+
import { filterDOMProps } from "../utils/filterDOMProps";
|
|
14
|
+
import { type MaybeAccessor, access } from "../utils/reactivity";
|
|
19
15
|
|
|
20
16
|
export interface AriaProgressBarProps {
|
|
17
|
+
/** The element id. */
|
|
18
|
+
id?: string;
|
|
21
19
|
/** The current value (controlled). */
|
|
22
20
|
value?: number;
|
|
23
21
|
/** The smallest value allowed for the input. @default 0 */
|
|
@@ -33,13 +31,13 @@ export interface AriaProgressBarProps {
|
|
|
33
31
|
/** The content to display as the label. */
|
|
34
32
|
label?: string;
|
|
35
33
|
/** An accessibility label for this item. */
|
|
36
|
-
|
|
34
|
+
"aria-label"?: string;
|
|
37
35
|
/** Identifies the element (or elements) that labels the current element. */
|
|
38
|
-
|
|
36
|
+
"aria-labelledby"?: string;
|
|
39
37
|
/** Identifies the element (or elements) that describes the object. */
|
|
40
|
-
|
|
38
|
+
"aria-describedby"?: string;
|
|
41
39
|
/** Identifies the element (or elements) that provide a detailed, extended description for the object. */
|
|
42
|
-
|
|
40
|
+
"aria-details"?: string;
|
|
43
41
|
}
|
|
44
42
|
|
|
45
43
|
export interface ProgressBarAria {
|
|
@@ -49,10 +47,6 @@ export interface ProgressBarAria {
|
|
|
49
47
|
labelProps: Record<string, unknown>;
|
|
50
48
|
}
|
|
51
49
|
|
|
52
|
-
// ============================================
|
|
53
|
-
// UTILITIES
|
|
54
|
-
// ============================================
|
|
55
|
-
|
|
56
50
|
function clamp(value: number, min: number, max: number): number {
|
|
57
51
|
return Math.min(Math.max(value, min), max);
|
|
58
52
|
}
|
|
@@ -62,28 +56,33 @@ function getSafeRange(min: number, max: number): number {
|
|
|
62
56
|
return Number.isFinite(range) && range > 0 ? range : 1;
|
|
63
57
|
}
|
|
64
58
|
|
|
65
|
-
// ============================================
|
|
66
|
-
// IMPLEMENTATION
|
|
67
|
-
// ============================================
|
|
68
|
-
|
|
69
59
|
/**
|
|
70
60
|
* Provides the accessibility implementation for a progress bar component.
|
|
71
61
|
* Progress bars show either determinate or indeterminate progress of an operation
|
|
72
62
|
* over time.
|
|
73
63
|
*/
|
|
74
64
|
export function createProgressBar(
|
|
75
|
-
props: MaybeAccessor<AriaProgressBarProps> = {}
|
|
65
|
+
props: MaybeAccessor<AriaProgressBarProps> = {},
|
|
76
66
|
): ProgressBarAria {
|
|
77
67
|
const getProps = () => access(props);
|
|
78
68
|
|
|
79
69
|
// Create label handling
|
|
80
70
|
const { labelProps, fieldProps } = createLabel({
|
|
81
|
-
get
|
|
82
|
-
|
|
83
|
-
|
|
71
|
+
get id() {
|
|
72
|
+
return getProps().id;
|
|
73
|
+
},
|
|
74
|
+
get label() {
|
|
75
|
+
return getProps().label;
|
|
76
|
+
},
|
|
77
|
+
get "aria-label"() {
|
|
78
|
+
return getProps()["aria-label"];
|
|
79
|
+
},
|
|
80
|
+
get "aria-labelledby"() {
|
|
81
|
+
return getProps()["aria-labelledby"];
|
|
82
|
+
},
|
|
84
83
|
// Progress bar is not an HTML input element so it
|
|
85
84
|
// shouldn't be labeled by a <label> element.
|
|
86
|
-
labelElementType:
|
|
85
|
+
labelElementType: "span",
|
|
87
86
|
});
|
|
88
87
|
|
|
89
88
|
// Build progress bar props
|
|
@@ -93,7 +92,7 @@ export function createProgressBar(
|
|
|
93
92
|
const minValue = p.minValue ?? 0;
|
|
94
93
|
const maxValue = p.maxValue ?? 100;
|
|
95
94
|
const isIndeterminate = p.isIndeterminate ?? false;
|
|
96
|
-
const formatOptions = p.formatOptions ?? { style:
|
|
95
|
+
const formatOptions = p.formatOptions ?? { style: "percent" as const };
|
|
97
96
|
|
|
98
97
|
const clampedValue = clamp(value, minValue, maxValue);
|
|
99
98
|
const percentage = (clampedValue - minValue) / getSafeRange(minValue, maxValue);
|
|
@@ -101,7 +100,7 @@ export function createProgressBar(
|
|
|
101
100
|
// Format value label
|
|
102
101
|
let valueLabel = p.valueLabel;
|
|
103
102
|
if (!isIndeterminate && !valueLabel) {
|
|
104
|
-
const valueToFormat = formatOptions.style ===
|
|
103
|
+
const valueToFormat = formatOptions.style === "percent" ? percentage : clampedValue;
|
|
105
104
|
try {
|
|
106
105
|
const formatter = new Intl.NumberFormat(undefined, formatOptions);
|
|
107
106
|
valueLabel = formatter.format(valueToFormat);
|
|
@@ -114,11 +113,11 @@ export function createProgressBar(
|
|
|
114
113
|
const domProps = filterDOMProps(p as Record<string, unknown>, { labelable: true });
|
|
115
114
|
|
|
116
115
|
return mergeProps(domProps, fieldProps as Record<string, unknown>, {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
role:
|
|
116
|
+
"aria-valuenow": isIndeterminate ? undefined : clampedValue,
|
|
117
|
+
"aria-valuemin": minValue,
|
|
118
|
+
"aria-valuemax": maxValue,
|
|
119
|
+
"aria-valuetext": isIndeterminate ? undefined : valueLabel,
|
|
120
|
+
role: "progressbar",
|
|
122
121
|
});
|
|
123
122
|
};
|
|
124
123
|
|
package/src/progress/index.ts
CHANGED