@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
|
@@ -8,16 +8,12 @@
|
|
|
8
8
|
* This is a 1:1 port of @react-aria/checkbox's useCheckbox hook.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { JSX, Accessor, createEffect } from
|
|
12
|
-
import { createToggle, type AriaToggleProps } from
|
|
13
|
-
import { type ToggleState } from
|
|
14
|
-
import { createPress } from
|
|
15
|
-
import { mergeProps } from
|
|
16
|
-
import { type MaybeAccessor, access } from
|
|
17
|
-
|
|
18
|
-
// ============================================
|
|
19
|
-
// TYPES
|
|
20
|
-
// ============================================
|
|
11
|
+
import { JSX, Accessor, createEffect } from "solid-js";
|
|
12
|
+
import { createToggle, type AriaToggleProps } from "../toggle";
|
|
13
|
+
import { type ToggleState } from "@proyecto-viviana/solid-stately";
|
|
14
|
+
import { createPress } from "../interactions/createPress";
|
|
15
|
+
import { mergeProps } from "../utils/mergeProps";
|
|
16
|
+
import { type MaybeAccessor, access } from "../utils/reactivity";
|
|
21
17
|
|
|
22
18
|
export interface AriaCheckboxProps extends AriaToggleProps {
|
|
23
19
|
/**
|
|
@@ -31,9 +27,9 @@ export interface AriaCheckboxProps extends AriaToggleProps {
|
|
|
31
27
|
isRequired?: boolean;
|
|
32
28
|
/**
|
|
33
29
|
* The validation behavior for the checkbox.
|
|
34
|
-
* @default '
|
|
30
|
+
* @default 'native'
|
|
35
31
|
*/
|
|
36
|
-
validationBehavior?:
|
|
32
|
+
validationBehavior?: "aria" | "native";
|
|
37
33
|
}
|
|
38
34
|
|
|
39
35
|
export interface CheckboxAria {
|
|
@@ -53,10 +49,6 @@ export interface CheckboxAria {
|
|
|
53
49
|
isInvalid: boolean;
|
|
54
50
|
}
|
|
55
51
|
|
|
56
|
-
// ============================================
|
|
57
|
-
// IMPLEMENTATION
|
|
58
|
-
// ============================================
|
|
59
|
-
|
|
60
52
|
/**
|
|
61
53
|
* Provides the behavior and accessibility implementation for a checkbox component.
|
|
62
54
|
* Checkboxes allow users to select multiple items from a list of individual items,
|
|
@@ -69,7 +61,7 @@ export interface CheckboxAria {
|
|
|
69
61
|
export function createCheckbox(
|
|
70
62
|
props: MaybeAccessor<AriaCheckboxProps>,
|
|
71
63
|
state: ToggleState,
|
|
72
|
-
inputRef: () => HTMLInputElement | null
|
|
64
|
+
inputRef: () => HTMLInputElement | null,
|
|
73
65
|
): CheckboxAria {
|
|
74
66
|
const getProps = () => access(props);
|
|
75
67
|
|
|
@@ -114,16 +106,16 @@ export function createCheckbox(
|
|
|
114
106
|
// Prevent label from being focused when mouse down on it.
|
|
115
107
|
// Note, this does not prevent the input from being focused in the `click` event.
|
|
116
108
|
onMouseDown: (e: MouseEvent) => e.preventDefault(),
|
|
117
|
-
} as Record<string, unknown
|
|
109
|
+
} as Record<string, unknown>,
|
|
118
110
|
) as JSX.LabelHTMLAttributes<HTMLLabelElement>,
|
|
119
111
|
get inputProps() {
|
|
120
112
|
const p = getProps();
|
|
121
|
-
const { isRequired, validationBehavior =
|
|
113
|
+
const { isRequired, validationBehavior = "native" } = p;
|
|
122
114
|
|
|
123
115
|
return mergeProps(toggleResult.inputProps, {
|
|
124
116
|
checked: isSelected(),
|
|
125
|
-
|
|
126
|
-
required: isRequired && validationBehavior ===
|
|
117
|
+
"aria-required": (isRequired && validationBehavior === "aria") || undefined,
|
|
118
|
+
required: isRequired && validationBehavior === "native",
|
|
127
119
|
}) as JSX.InputHTMLAttributes<HTMLInputElement>;
|
|
128
120
|
},
|
|
129
121
|
isSelected,
|
|
@@ -7,27 +7,27 @@
|
|
|
7
7
|
* This is a 1:1 port of @react-aria/checkbox's useCheckboxGroup hook.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import { JSX } from
|
|
11
|
-
import { createField } from
|
|
12
|
-
import { createFocusWithin } from
|
|
13
|
-
import { filterDOMProps } from
|
|
14
|
-
import { mergeProps } from
|
|
15
|
-
import { type MaybeAccessor, access } from
|
|
16
|
-
import {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
10
|
+
import { JSX, createEffect } from "solid-js";
|
|
11
|
+
import { createField } from "../label";
|
|
12
|
+
import { createFocusWithin } from "../interactions/createFocusWithin";
|
|
13
|
+
import { filterDOMProps } from "../utils/filterDOMProps";
|
|
14
|
+
import { mergeProps } from "../utils/mergeProps";
|
|
15
|
+
import { type MaybeAccessor, access } from "../utils/reactivity";
|
|
16
|
+
import {
|
|
17
|
+
type CheckboxGroupState,
|
|
18
|
+
type CheckboxGroupProps,
|
|
19
|
+
type ValidityState,
|
|
20
|
+
} from "@proyecto-viviana/solid-stately";
|
|
21
21
|
|
|
22
22
|
export interface AriaCheckboxGroupProps extends CheckboxGroupProps {
|
|
23
23
|
/** Defines a string value that labels the current element. */
|
|
24
|
-
|
|
24
|
+
"aria-label"?: string;
|
|
25
25
|
/** Identifies the element (or elements) that labels the current element. */
|
|
26
|
-
|
|
26
|
+
"aria-labelledby"?: string;
|
|
27
27
|
/** Identifies the element (or elements) that describes the object. */
|
|
28
|
-
|
|
28
|
+
"aria-describedby"?: string;
|
|
29
29
|
/** Identifies the element (or elements) that provide a detailed, extended description for the object. */
|
|
30
|
-
|
|
30
|
+
"aria-details"?: string;
|
|
31
31
|
/** A description for the field. Provides a hint such as specific requirements for what to choose. */
|
|
32
32
|
description?: JSX.Element;
|
|
33
33
|
/** An error message for the field. */
|
|
@@ -59,14 +59,10 @@ export const checkboxGroupData = new WeakMap<
|
|
|
59
59
|
form?: string;
|
|
60
60
|
descriptionId?: string;
|
|
61
61
|
errorMessageId?: string;
|
|
62
|
-
validationBehavior:
|
|
62
|
+
validationBehavior: "aria" | "native";
|
|
63
63
|
}
|
|
64
64
|
>();
|
|
65
65
|
|
|
66
|
-
// ============================================
|
|
67
|
-
// IMPLEMENTATION
|
|
68
|
-
// ============================================
|
|
69
|
-
|
|
70
66
|
/**
|
|
71
67
|
* Provides the behavior and accessibility implementation for a checkbox group component.
|
|
72
68
|
* Checkbox groups allow users to select multiple items from a list of options.
|
|
@@ -76,7 +72,7 @@ export const checkboxGroupData = new WeakMap<
|
|
|
76
72
|
*/
|
|
77
73
|
export function createCheckboxGroup(
|
|
78
74
|
props: MaybeAccessor<AriaCheckboxGroupProps>,
|
|
79
|
-
state: CheckboxGroupState
|
|
75
|
+
state: CheckboxGroupState,
|
|
80
76
|
): CheckboxGroupAria {
|
|
81
77
|
const getProps = () => access(props);
|
|
82
78
|
const displayValidation = () => state.displayValidation();
|
|
@@ -91,43 +87,71 @@ export function createCheckboxGroup(
|
|
|
91
87
|
|
|
92
88
|
// Use field for label association
|
|
93
89
|
const { labelProps, fieldProps, descriptionProps, errorMessageProps } = createField({
|
|
94
|
-
get label() {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
get
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
get
|
|
101
|
-
|
|
90
|
+
get label() {
|
|
91
|
+
return getProps().label;
|
|
92
|
+
},
|
|
93
|
+
get "aria-label"() {
|
|
94
|
+
return getProps()["aria-label"];
|
|
95
|
+
},
|
|
96
|
+
get "aria-labelledby"() {
|
|
97
|
+
return getProps()["aria-labelledby"];
|
|
98
|
+
},
|
|
99
|
+
get "aria-describedby"() {
|
|
100
|
+
return getProps()["aria-describedby"];
|
|
101
|
+
},
|
|
102
|
+
get "aria-details"() {
|
|
103
|
+
return getProps()["aria-details"];
|
|
104
|
+
},
|
|
105
|
+
get description() {
|
|
106
|
+
return getProps().description;
|
|
107
|
+
},
|
|
108
|
+
get errorMessage() {
|
|
109
|
+
return getProps().errorMessage ?? fallbackErrorMessage();
|
|
110
|
+
},
|
|
111
|
+
get isInvalid() {
|
|
112
|
+
return isInvalid();
|
|
113
|
+
},
|
|
102
114
|
// Checkbox group is not an HTML input element so it
|
|
103
115
|
// shouldn't be labeled by a <label> element.
|
|
104
|
-
labelElementType:
|
|
116
|
+
labelElementType: "span",
|
|
105
117
|
});
|
|
106
118
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
119
|
+
const updateCheckboxGroupData = () => {
|
|
120
|
+
checkboxGroupData.set(state, {
|
|
121
|
+
name: getProps().name,
|
|
122
|
+
form: getProps().form,
|
|
123
|
+
descriptionId: descriptionProps.id,
|
|
124
|
+
errorMessageId: errorMessageProps.id,
|
|
125
|
+
validationBehavior: getProps().validationBehavior ?? "native",
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
// Store group metadata synchronously for first-render children, then keep it reactive.
|
|
130
|
+
updateCheckboxGroupData();
|
|
131
|
+
createEffect(updateCheckboxGroupData);
|
|
115
132
|
|
|
116
133
|
// Filter DOM props
|
|
117
|
-
const domProps = () =>
|
|
134
|
+
const domProps = () =>
|
|
135
|
+
filterDOMProps(getProps() as unknown as Record<string, unknown>, { labelable: true });
|
|
118
136
|
|
|
119
137
|
// Handle focus within
|
|
120
138
|
const { focusWithinProps } = createFocusWithin({
|
|
121
|
-
get onBlurWithin() {
|
|
122
|
-
|
|
123
|
-
|
|
139
|
+
get onBlurWithin() {
|
|
140
|
+
return getProps().onBlur;
|
|
141
|
+
},
|
|
142
|
+
get onFocusWithin() {
|
|
143
|
+
return getProps().onFocus;
|
|
144
|
+
},
|
|
145
|
+
get onFocusWithinChange() {
|
|
146
|
+
return getProps().onFocusChange;
|
|
147
|
+
},
|
|
124
148
|
});
|
|
125
149
|
|
|
126
150
|
return {
|
|
127
151
|
get groupProps() {
|
|
128
152
|
return mergeProps(domProps(), {
|
|
129
|
-
role:
|
|
130
|
-
|
|
153
|
+
role: "group",
|
|
154
|
+
"aria-disabled": state.isDisabled || undefined,
|
|
131
155
|
...fieldProps,
|
|
132
156
|
...focusWithinProps,
|
|
133
157
|
}) as JSX.HTMLAttributes<HTMLElement>;
|
|
@@ -7,25 +7,20 @@
|
|
|
7
7
|
* This is a 1:1 port of @react-aria/checkbox's useCheckboxGroupItem hook.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import { JSX } from
|
|
11
|
-
import { createCheckbox, type AriaCheckboxProps, type CheckboxAria } from
|
|
12
|
-
import { type ToggleState, type CheckboxGroupState } from
|
|
13
|
-
import { checkboxGroupData } from
|
|
14
|
-
import { type MaybeAccessor, access } from
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
export interface AriaCheckboxGroupItemProps extends Omit<AriaCheckboxProps, 'isSelected' | 'defaultSelected'> {
|
|
10
|
+
import { JSX } from "solid-js";
|
|
11
|
+
import { createCheckbox, type AriaCheckboxProps, type CheckboxAria } from "./createCheckbox";
|
|
12
|
+
import { type ToggleState, type CheckboxGroupState } from "@proyecto-viviana/solid-stately";
|
|
13
|
+
import { checkboxGroupData } from "./createCheckboxGroup";
|
|
14
|
+
import { type MaybeAccessor, access } from "../utils/reactivity";
|
|
15
|
+
|
|
16
|
+
export interface AriaCheckboxGroupItemProps extends Omit<
|
|
17
|
+
AriaCheckboxProps,
|
|
18
|
+
"isSelected" | "defaultSelected"
|
|
19
|
+
> {
|
|
21
20
|
/** The value of the checkbox. */
|
|
22
21
|
value: string;
|
|
23
22
|
}
|
|
24
23
|
|
|
25
|
-
// ============================================
|
|
26
|
-
// IMPLEMENTATION
|
|
27
|
-
// ============================================
|
|
28
|
-
|
|
29
24
|
/**
|
|
30
25
|
* Provides the behavior and accessibility implementation for a checkbox component
|
|
31
26
|
* contained within a checkbox group.
|
|
@@ -37,7 +32,7 @@ export interface AriaCheckboxGroupItemProps extends Omit<AriaCheckboxProps, 'isS
|
|
|
37
32
|
export function createCheckboxGroupItem(
|
|
38
33
|
props: MaybeAccessor<AriaCheckboxGroupItemProps>,
|
|
39
34
|
state: CheckboxGroupState,
|
|
40
|
-
inputRef: () => HTMLInputElement | null
|
|
35
|
+
inputRef: () => HTMLInputElement | null,
|
|
41
36
|
): CheckboxAria {
|
|
42
37
|
const getProps = () => access(props);
|
|
43
38
|
|
|
@@ -59,10 +54,8 @@ export function createCheckboxGroupItem(
|
|
|
59
54
|
},
|
|
60
55
|
};
|
|
61
56
|
|
|
62
|
-
// Get group data
|
|
63
57
|
const getGroupData = () => checkboxGroupData.get(state);
|
|
64
58
|
|
|
65
|
-
// Build checkbox props
|
|
66
59
|
const checkboxProps = (): AriaCheckboxProps => {
|
|
67
60
|
const p = getProps();
|
|
68
61
|
const groupData = getGroupData();
|
|
@@ -71,17 +64,16 @@ export function createCheckboxGroupItem(
|
|
|
71
64
|
...p,
|
|
72
65
|
isReadOnly: p.isReadOnly ?? state.isReadOnly,
|
|
73
66
|
isDisabled: p.isDisabled ?? state.isDisabled,
|
|
67
|
+
isInvalid: p.isInvalid ?? state.isInvalid,
|
|
74
68
|
name: p.name ?? groupData?.name,
|
|
75
69
|
form: p.form ?? groupData?.form,
|
|
76
70
|
isRequired: p.isRequired ?? state.isRequired(),
|
|
77
|
-
validationBehavior: p.validationBehavior ?? groupData?.validationBehavior ??
|
|
71
|
+
validationBehavior: p.validationBehavior ?? groupData?.validationBehavior ?? "native",
|
|
78
72
|
};
|
|
79
73
|
};
|
|
80
74
|
|
|
81
|
-
// Use the checkbox hook
|
|
82
75
|
const result = createCheckbox(checkboxProps, toggleState, inputRef);
|
|
83
76
|
|
|
84
|
-
// Add group-level aria-describedby
|
|
85
77
|
return {
|
|
86
78
|
...result,
|
|
87
79
|
get inputProps() {
|
|
@@ -90,27 +82,24 @@ export function createCheckboxGroupItem(
|
|
|
90
82
|
|
|
91
83
|
const describedByIds: string[] = [];
|
|
92
84
|
|
|
93
|
-
|
|
94
|
-
const propsDescribedBy = getProps()['aria-describedby'];
|
|
85
|
+
const propsDescribedBy = getProps()["aria-describedby"];
|
|
95
86
|
if (propsDescribedBy) {
|
|
96
87
|
describedByIds.push(propsDescribedBy);
|
|
97
88
|
}
|
|
98
89
|
|
|
99
|
-
// Add error message ID if group is invalid
|
|
100
90
|
if (state.isInvalid && groupData?.errorMessageId) {
|
|
101
91
|
describedByIds.push(groupData.errorMessageId);
|
|
102
92
|
}
|
|
103
93
|
|
|
104
|
-
// Add description ID
|
|
105
94
|
if (groupData?.descriptionId) {
|
|
106
95
|
describedByIds.push(groupData.descriptionId);
|
|
107
96
|
}
|
|
108
97
|
|
|
109
|
-
const ariaDescribedBy = describedByIds.length > 0 ? describedByIds.join(
|
|
98
|
+
const ariaDescribedBy = describedByIds.length > 0 ? describedByIds.join(" ") : undefined;
|
|
110
99
|
|
|
111
100
|
return {
|
|
112
101
|
...baseInputProps,
|
|
113
|
-
|
|
102
|
+
"aria-describedby": ariaDescribedBy,
|
|
114
103
|
} as JSX.InputHTMLAttributes<HTMLInputElement>;
|
|
115
104
|
},
|
|
116
105
|
};
|
|
@@ -7,12 +7,8 @@
|
|
|
7
7
|
* This is a 1:1 port of @react-stately/checkbox's useCheckboxGroupState.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import { createSignal, Accessor } from
|
|
11
|
-
import { type MaybeAccessor, access } from
|
|
12
|
-
|
|
13
|
-
// ============================================
|
|
14
|
-
// TYPES
|
|
15
|
-
// ============================================
|
|
10
|
+
import { createSignal, Accessor } from "solid-js";
|
|
11
|
+
import { type MaybeAccessor, access } from "../utils/reactivity";
|
|
16
12
|
|
|
17
13
|
export interface CheckboxGroupProps {
|
|
18
14
|
/** The current selected values (controlled). */
|
|
@@ -71,47 +67,36 @@ export interface CheckboxGroupState {
|
|
|
71
67
|
toggleValue(value: string): void;
|
|
72
68
|
}
|
|
73
69
|
|
|
74
|
-
// ============================================
|
|
75
|
-
// IMPLEMENTATION
|
|
76
|
-
// ============================================
|
|
77
|
-
|
|
78
70
|
/**
|
|
79
71
|
* Provides state management for a checkbox group component.
|
|
80
72
|
* Provides a name for the group, and manages selection and focus state.
|
|
81
73
|
*/
|
|
82
74
|
export function createCheckboxGroupState(
|
|
83
|
-
props: MaybeAccessor<CheckboxGroupProps> = {}
|
|
75
|
+
props: MaybeAccessor<CheckboxGroupProps> = {},
|
|
84
76
|
): CheckboxGroupState {
|
|
85
77
|
const getProps = () => access(props);
|
|
86
78
|
|
|
87
|
-
// Get initial values
|
|
88
79
|
const initialProps = getProps();
|
|
89
80
|
const initialValue = initialProps.value ?? initialProps.defaultValue ?? [];
|
|
90
81
|
|
|
91
|
-
// Create internal signal for uncontrolled mode
|
|
92
82
|
const [internalValue, setInternalValue] = createSignal<readonly string[]>(initialValue);
|
|
93
83
|
|
|
94
|
-
// Determine if controlled
|
|
95
84
|
const isControlled = () => getProps().value !== undefined;
|
|
96
85
|
|
|
97
|
-
// Get current value
|
|
98
86
|
const value: Accessor<readonly string[]> = () => {
|
|
99
87
|
const p = getProps();
|
|
100
88
|
return isControlled() ? (p.value ?? []) : internalValue();
|
|
101
89
|
};
|
|
102
90
|
|
|
103
|
-
// Check if required (true if isRequired and no items selected)
|
|
104
91
|
const isRequired: Accessor<boolean> = () => {
|
|
105
92
|
const p = getProps();
|
|
106
93
|
return !!p.isRequired && value().length === 0;
|
|
107
94
|
};
|
|
108
95
|
|
|
109
|
-
// Check if invalid
|
|
110
96
|
const isInvalid = () => {
|
|
111
97
|
return getProps().isInvalid ?? false;
|
|
112
98
|
};
|
|
113
99
|
|
|
114
|
-
// Set value
|
|
115
100
|
function setValue(newValue: string[]): void {
|
|
116
101
|
const p = getProps();
|
|
117
102
|
if (p.isReadOnly || p.isDisabled) {
|
|
@@ -125,12 +110,10 @@ export function createCheckboxGroupState(
|
|
|
125
110
|
p.onChange?.(newValue);
|
|
126
111
|
}
|
|
127
112
|
|
|
128
|
-
// Check if value is selected
|
|
129
113
|
function isSelected(checkValue: string): boolean {
|
|
130
114
|
return value().includes(checkValue);
|
|
131
115
|
}
|
|
132
116
|
|
|
133
|
-
// Add value
|
|
134
117
|
function addValue(addVal: string): void {
|
|
135
118
|
const p = getProps();
|
|
136
119
|
if (p.isReadOnly || p.isDisabled) {
|
|
@@ -143,7 +126,6 @@ export function createCheckboxGroupState(
|
|
|
143
126
|
}
|
|
144
127
|
}
|
|
145
128
|
|
|
146
|
-
// Remove value
|
|
147
129
|
function removeValue(removeVal: string): void {
|
|
148
130
|
const p = getProps();
|
|
149
131
|
if (p.isReadOnly || p.isDisabled) {
|
|
@@ -156,7 +138,6 @@ export function createCheckboxGroupState(
|
|
|
156
138
|
}
|
|
157
139
|
}
|
|
158
140
|
|
|
159
|
-
// Toggle value
|
|
160
141
|
function toggleValue(toggleVal: string): void {
|
|
161
142
|
const p = getProps();
|
|
162
143
|
if (p.isReadOnly || p.isDisabled) {
|
package/src/checkbox/index.ts
CHANGED
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
export { createCheckbox } from
|
|
2
|
-
export type { AriaCheckboxProps, CheckboxAria } from
|
|
1
|
+
export { createCheckbox } from "./createCheckbox";
|
|
2
|
+
export type { AriaCheckboxProps, CheckboxAria } from "./createCheckbox";
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
export {
|
|
6
|
-
export type { CheckboxGroupProps, CheckboxGroupState } from '@proyecto-viviana/solid-stately';
|
|
4
|
+
export { createCheckboxGroupState } from "@proyecto-viviana/solid-stately";
|
|
5
|
+
export type { CheckboxGroupProps, CheckboxGroupState } from "@proyecto-viviana/solid-stately";
|
|
7
6
|
|
|
8
|
-
|
|
9
|
-
export {
|
|
10
|
-
export type { AriaCheckboxGroupProps, CheckboxGroupAria } from './createCheckboxGroup';
|
|
7
|
+
export { createCheckboxGroup, checkboxGroupData } from "./createCheckboxGroup";
|
|
8
|
+
export type { AriaCheckboxGroupProps, CheckboxGroupAria } from "./createCheckboxGroup";
|
|
11
9
|
|
|
12
|
-
export { createCheckboxGroupItem } from
|
|
13
|
-
export type { AriaCheckboxGroupItemProps } from
|
|
10
|
+
export { createCheckboxGroupItem } from "./createCheckboxGroupItem";
|
|
11
|
+
export type { AriaCheckboxGroupItemProps } from "./createCheckboxGroupItem";
|
package/src/collections/index.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { createContext, createMemo, useContext, type Accessor } from
|
|
2
|
-
import { access, type MaybeAccessor } from
|
|
1
|
+
import { createContext, createMemo, useContext, type Accessor } from "solid-js";
|
|
2
|
+
import { access, type MaybeAccessor } from "../utils";
|
|
3
3
|
import {
|
|
4
4
|
ListCollection,
|
|
5
5
|
type Collection as StatelyCollection,
|
|
6
6
|
type CollectionNode as StatelyCollectionNode,
|
|
7
7
|
type Key,
|
|
8
|
-
} from
|
|
8
|
+
} from "@proyecto-viviana/solid-stately";
|
|
9
9
|
|
|
10
10
|
export interface CachedChildrenOptions<T> {
|
|
11
11
|
items?: Iterable<T>;
|
|
@@ -26,15 +26,15 @@ export interface CollectionCompatNode<TProps = unknown, TValue = unknown> {
|
|
|
26
26
|
props: TProps;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
const COLLECTION_NODE_PROP =
|
|
29
|
+
const COLLECTION_NODE_PROP = "__collectionNode";
|
|
30
30
|
|
|
31
31
|
function applyCollectionMetadata<T>(
|
|
32
32
|
rendered: unknown,
|
|
33
33
|
item: T,
|
|
34
34
|
key: Key,
|
|
35
|
-
addIdAndValue: boolean
|
|
35
|
+
addIdAndValue: boolean,
|
|
36
36
|
): unknown {
|
|
37
|
-
if (typeof rendered !==
|
|
37
|
+
if (typeof rendered !== "object" || rendered === null) return rendered;
|
|
38
38
|
const next = {
|
|
39
39
|
...(rendered as Record<string, unknown>),
|
|
40
40
|
key,
|
|
@@ -56,7 +56,7 @@ function applyCollectionMetadata<T>(
|
|
|
56
56
|
* For Solid, this is a lightweight mapper over item arrays.
|
|
57
57
|
*/
|
|
58
58
|
export function CollectionBuilder<T>(props: CollectionBuilderProps<T>): unknown {
|
|
59
|
-
if (typeof props.children ===
|
|
59
|
+
if (typeof props.children === "function" && props.items) {
|
|
60
60
|
const children = props.children as (item: T) => unknown;
|
|
61
61
|
const mapped: unknown[] = [];
|
|
62
62
|
let index = 0;
|
|
@@ -64,16 +64,11 @@ export function CollectionBuilder<T>(props: CollectionBuilderProps<T>): unknown
|
|
|
64
64
|
for (const item of props.items) {
|
|
65
65
|
const baseKey = getResolvedItemKey(item, index, props.getKey);
|
|
66
66
|
if (baseKey == null) {
|
|
67
|
-
throw new Error(
|
|
67
|
+
throw new Error("Could not determine key for item");
|
|
68
68
|
}
|
|
69
69
|
const key = props.idScope != null ? `${String(props.idScope)}:${String(baseKey)}` : baseKey;
|
|
70
70
|
const rendered = children(item);
|
|
71
|
-
const withMeta = applyCollectionMetadata(
|
|
72
|
-
rendered,
|
|
73
|
-
item,
|
|
74
|
-
key,
|
|
75
|
-
props.addIdAndValue ?? false
|
|
76
|
-
);
|
|
71
|
+
const withMeta = applyCollectionMetadata(rendered, item, key, props.addIdAndValue ?? false);
|
|
77
72
|
mapped.push(withMeta);
|
|
78
73
|
index += 1;
|
|
79
74
|
}
|
|
@@ -94,12 +89,14 @@ export function Collection<T>(props: CollectionProps<T>): unknown {
|
|
|
94
89
|
* Identity helper retained for API compatibility.
|
|
95
90
|
*/
|
|
96
91
|
export function createLeafComponent<TProps>(
|
|
97
|
-
component: (props: TProps, node?: CollectionCompatNode<TProps, unknown>) => unknown
|
|
92
|
+
component: (props: TProps, node?: CollectionCompatNode<TProps, unknown>) => unknown,
|
|
98
93
|
): (props: TProps) => unknown {
|
|
99
94
|
return (props: TProps) => {
|
|
100
|
-
const node = (props as Record<string, unknown>)[COLLECTION_NODE_PROP] as
|
|
95
|
+
const node = (props as Record<string, unknown>)[COLLECTION_NODE_PROP] as
|
|
96
|
+
| CollectionCompatNode<TProps, unknown>
|
|
97
|
+
| undefined;
|
|
101
98
|
if (component.length >= 2 && !node) {
|
|
102
|
-
throw new Error(`${component.name ||
|
|
99
|
+
throw new Error(`${component.name || "Component"} cannot be rendered outside a collection.`);
|
|
103
100
|
}
|
|
104
101
|
return component(props, node);
|
|
105
102
|
};
|
|
@@ -109,12 +106,14 @@ export function createLeafComponent<TProps>(
|
|
|
109
106
|
* Identity helper retained for API compatibility.
|
|
110
107
|
*/
|
|
111
108
|
export function createBranchComponent<TProps>(
|
|
112
|
-
component: (props: TProps, node?: CollectionCompatNode<TProps, unknown>) => unknown
|
|
109
|
+
component: (props: TProps, node?: CollectionCompatNode<TProps, unknown>) => unknown,
|
|
113
110
|
): (props: TProps) => unknown {
|
|
114
111
|
return (props: TProps) => {
|
|
115
|
-
const node = (props as Record<string, unknown>)[COLLECTION_NODE_PROP] as
|
|
112
|
+
const node = (props as Record<string, unknown>)[COLLECTION_NODE_PROP] as
|
|
113
|
+
| CollectionCompatNode<TProps, unknown>
|
|
114
|
+
| undefined;
|
|
116
115
|
if (component.length >= 2 && !node) {
|
|
117
|
-
throw new Error(`${component.name ||
|
|
116
|
+
throw new Error(`${component.name || "Component"} cannot be rendered outside a collection.`);
|
|
118
117
|
}
|
|
119
118
|
return component(props, node);
|
|
120
119
|
};
|
|
@@ -125,7 +124,9 @@ const HiddenContext = createContext<Accessor<boolean>>(() => false);
|
|
|
125
124
|
/**
|
|
126
125
|
* Wraps a component and suppresses rendering when the hidden context is true.
|
|
127
126
|
*/
|
|
128
|
-
export function createHideableComponent<TProps>(
|
|
127
|
+
export function createHideableComponent<TProps>(
|
|
128
|
+
component: (props: TProps) => unknown,
|
|
129
|
+
): (props: TProps) => unknown {
|
|
129
130
|
return (props: TProps) => {
|
|
130
131
|
const isHidden = useIsHidden();
|
|
131
132
|
if (isHidden()) return null;
|
|
@@ -140,7 +141,9 @@ export function useIsHidden(): Accessor<boolean> {
|
|
|
140
141
|
/**
|
|
141
142
|
* Memoized item renderer for dynamic child mapping.
|
|
142
143
|
*/
|
|
143
|
-
export function useCachedChildren<T>(
|
|
144
|
+
export function useCachedChildren<T>(
|
|
145
|
+
options: MaybeAccessor<CachedChildrenOptions<T>>,
|
|
146
|
+
): Accessor<unknown[]> {
|
|
144
147
|
let objectCache = new WeakMap<object, unknown>();
|
|
145
148
|
const primitiveCache = new Map<Key, unknown>();
|
|
146
149
|
let lastDependencies: ReadonlyArray<unknown> | undefined;
|
|
@@ -178,7 +181,7 @@ export function useCachedChildren<T>(options: MaybeAccessor<CachedChildrenOption
|
|
|
178
181
|
lastGetKey = resolvedGetKey;
|
|
179
182
|
}
|
|
180
183
|
|
|
181
|
-
if (typeof resolved.children ===
|
|
184
|
+
if (typeof resolved.children === "function" && resolved.items) {
|
|
182
185
|
const children = resolved.children as (item: T) => unknown;
|
|
183
186
|
const rendered: unknown[] = [];
|
|
184
187
|
let index = 0;
|
|
@@ -186,12 +189,13 @@ export function useCachedChildren<T>(options: MaybeAccessor<CachedChildrenOption
|
|
|
186
189
|
for (const item of resolved.items) {
|
|
187
190
|
const baseKey = getItemKey(item, index, resolvedGetKey);
|
|
188
191
|
if (baseKey == null) {
|
|
189
|
-
throw new Error(
|
|
192
|
+
throw new Error("Could not determine key for item");
|
|
190
193
|
}
|
|
191
|
-
const key =
|
|
194
|
+
const key =
|
|
195
|
+
resolvedIdScope != null ? `${String(resolvedIdScope)}:${String(baseKey)}` : baseKey;
|
|
192
196
|
let child: unknown;
|
|
193
197
|
|
|
194
|
-
if (typeof item ===
|
|
198
|
+
if (typeof item === "object" && item !== null) {
|
|
195
199
|
child = objectCache.get(item as object);
|
|
196
200
|
if (child === undefined) {
|
|
197
201
|
child = applyCollectionMetadata(children(item), item, key, resolvedAddIdAndValue);
|
|
@@ -232,11 +236,11 @@ export type CollectionType<T = unknown> = StatelyCollection<T>;
|
|
|
232
236
|
|
|
233
237
|
function getResolvedItemKey<T>(item: T, index: number, getKey?: (item: T) => Key): Key | undefined {
|
|
234
238
|
if (getKey) return getKey(item);
|
|
235
|
-
if (typeof item ===
|
|
239
|
+
if (typeof item === "object" && item !== null) {
|
|
236
240
|
const keyed = item as Record<string, unknown>;
|
|
237
241
|
const keyValue = keyed.key ?? keyed.id;
|
|
238
|
-
if (typeof keyValue ===
|
|
242
|
+
if (typeof keyValue === "string" || typeof keyValue === "number") return keyValue;
|
|
239
243
|
}
|
|
240
|
-
if (typeof item ===
|
|
244
|
+
if (typeof item === "string" || typeof item === "number") return index;
|
|
241
245
|
return undefined;
|
|
242
246
|
}
|