@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
|
@@ -6,15 +6,11 @@
|
|
|
6
6
|
* Port of @react-aria/disclosure useDisclosure.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { type JSX, createEffect } from
|
|
10
|
-
import { type DisclosureState } from
|
|
11
|
-
import { createId, canUseDOM } from
|
|
12
|
-
import { createPress } from
|
|
13
|
-
import { mergeProps } from
|
|
14
|
-
|
|
15
|
-
// ============================================
|
|
16
|
-
// TYPES
|
|
17
|
-
// ============================================
|
|
9
|
+
import { type JSX, createEffect, onCleanup } from "solid-js";
|
|
10
|
+
import { type DisclosureState } from "@proyecto-viviana/solid-stately";
|
|
11
|
+
import { createId, canUseDOM } from "../ssr";
|
|
12
|
+
import { createPress } from "../interactions/createPress";
|
|
13
|
+
import { mergeProps } from "../utils/mergeProps";
|
|
18
14
|
|
|
19
15
|
export interface AriaDisclosureProps {
|
|
20
16
|
/** Whether the disclosure is disabled. */
|
|
@@ -26,11 +22,16 @@ export interface DisclosureAria {
|
|
|
26
22
|
buttonProps: JSX.ButtonHTMLAttributes<HTMLButtonElement>;
|
|
27
23
|
/** Props for the disclosure panel. */
|
|
28
24
|
panelProps: JSX.HTMLAttributes<HTMLElement>;
|
|
25
|
+
/** Whether the disclosure trigger is currently pressed. */
|
|
26
|
+
isPressed: () => boolean;
|
|
29
27
|
}
|
|
30
28
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
29
|
+
export function getDisclosurePanelHiddenAttribute(
|
|
30
|
+
isExpanded: boolean,
|
|
31
|
+
hasDOM = canUseDOM,
|
|
32
|
+
): true | undefined {
|
|
33
|
+
return hasDOM ? undefined : !isExpanded || undefined;
|
|
34
|
+
}
|
|
34
35
|
|
|
35
36
|
/**
|
|
36
37
|
* Provides the behavior and accessibility implementation for a disclosure component.
|
|
@@ -66,65 +67,169 @@ export interface DisclosureAria {
|
|
|
66
67
|
export function createDisclosure(
|
|
67
68
|
props: AriaDisclosureProps | (() => AriaDisclosureProps),
|
|
68
69
|
state: DisclosureState,
|
|
69
|
-
panelRef: () => HTMLElement | null
|
|
70
|
+
panelRef: () => HTMLElement | null,
|
|
70
71
|
): DisclosureAria {
|
|
71
72
|
// Handle both plain object and accessor function patterns
|
|
72
|
-
const getProps = typeof props ===
|
|
73
|
+
const getProps = typeof props === "function" ? props : () => props;
|
|
73
74
|
|
|
74
75
|
const triggerId = createId();
|
|
75
76
|
const panelId = createId();
|
|
76
77
|
|
|
77
|
-
|
|
78
|
+
let raf: number | null = null;
|
|
79
|
+
let isExpandedRef: boolean | null = null;
|
|
80
|
+
|
|
81
|
+
const requestFrame = (callback: FrameRequestCallback): number => {
|
|
82
|
+
if (typeof requestAnimationFrame === "function") {
|
|
83
|
+
return requestAnimationFrame(callback);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return window.setTimeout(() => callback(performance.now()), 16);
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
const cancelFrame = (id: number) => {
|
|
90
|
+
if (typeof cancelAnimationFrame === "function") {
|
|
91
|
+
cancelAnimationFrame(id);
|
|
92
|
+
} else {
|
|
93
|
+
window.clearTimeout(id);
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
const cancelPendingRaf = () => {
|
|
98
|
+
if (raf != null && canUseDOM) {
|
|
99
|
+
cancelFrame(raf);
|
|
100
|
+
raf = null;
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
const setPanelSize = (panel: HTMLElement, width: string, height: string) => {
|
|
105
|
+
panel.style.setProperty("--disclosure-panel-width", width);
|
|
106
|
+
panel.style.setProperty("--disclosure-panel-height", height);
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
const getPanelAnimations = (panel: HTMLElement): Animation[] => {
|
|
110
|
+
return typeof panel.getAnimations === "function" ? panel.getAnimations() : [];
|
|
111
|
+
};
|
|
112
|
+
|
|
113
|
+
// Handle browser find-in-page reveal for collapsed panels.
|
|
78
114
|
createEffect(() => {
|
|
79
115
|
if (!canUseDOM) return;
|
|
80
116
|
|
|
81
117
|
const panel = panelRef();
|
|
82
118
|
if (!panel) return;
|
|
83
119
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
120
|
+
const handleBeforeMatch = () => {
|
|
121
|
+
cancelPendingRaf();
|
|
122
|
+
raf = requestFrame(() => {
|
|
123
|
+
if (panelRef() === panel) {
|
|
124
|
+
panel.setAttribute("hidden", "until-found");
|
|
125
|
+
}
|
|
126
|
+
raf = null;
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
state.toggle();
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
panel.addEventListener("beforematch", handleBeforeMatch);
|
|
133
|
+
onCleanup(() => {
|
|
134
|
+
panel.removeEventListener("beforematch", handleBeforeMatch);
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
// Handle panel visibility and animation sizing.
|
|
139
|
+
createEffect(() => {
|
|
140
|
+
if (!canUseDOM) return;
|
|
141
|
+
|
|
142
|
+
const panel = panelRef();
|
|
143
|
+
if (!panel) return;
|
|
144
|
+
|
|
145
|
+
const isExpanded = state.isExpanded();
|
|
146
|
+
cancelPendingRaf();
|
|
147
|
+
|
|
148
|
+
if (isExpandedRef === null || typeof panel.getAnimations !== "function") {
|
|
149
|
+
if (isExpanded) {
|
|
150
|
+
panel.removeAttribute("hidden");
|
|
151
|
+
setPanelSize(panel, "auto", "auto");
|
|
152
|
+
} else {
|
|
153
|
+
panel.setAttribute("hidden", "until-found");
|
|
154
|
+
setPanelSize(panel, "0px", "0px");
|
|
155
|
+
}
|
|
156
|
+
} else if (isExpanded !== isExpandedRef) {
|
|
157
|
+
if (isExpanded) {
|
|
158
|
+
panel.removeAttribute("hidden");
|
|
159
|
+
setPanelSize(panel, `${panel.scrollWidth}px`, `${panel.scrollHeight}px`);
|
|
160
|
+
|
|
161
|
+
Promise.all(getPanelAnimations(panel).map((animation) => animation.finished))
|
|
162
|
+
.then(() => {
|
|
163
|
+
if (panelRef() === panel && state.isExpanded()) {
|
|
164
|
+
setPanelSize(panel, "auto", "auto");
|
|
165
|
+
}
|
|
166
|
+
})
|
|
167
|
+
.catch(() => {});
|
|
168
|
+
} else {
|
|
169
|
+
setPanelSize(panel, `${panel.scrollWidth}px`, `${panel.scrollHeight}px`);
|
|
170
|
+
|
|
171
|
+
// Force style recalculation before animating to zero.
|
|
172
|
+
window.getComputedStyle(panel).height;
|
|
173
|
+
|
|
174
|
+
setPanelSize(panel, "0px", "0px");
|
|
175
|
+
|
|
176
|
+
Promise.all(getPanelAnimations(panel).map((animation) => animation.finished))
|
|
177
|
+
.then(() => {
|
|
178
|
+
if (panelRef() === panel && !state.isExpanded()) {
|
|
179
|
+
panel.setAttribute("hidden", "until-found");
|
|
180
|
+
}
|
|
181
|
+
})
|
|
182
|
+
.catch(() => {});
|
|
183
|
+
}
|
|
89
184
|
}
|
|
185
|
+
|
|
186
|
+
isExpandedRef = isExpanded;
|
|
90
187
|
});
|
|
91
188
|
|
|
189
|
+
onCleanup(cancelPendingRaf);
|
|
190
|
+
|
|
92
191
|
// Use createPress for proper interaction handling (matches Select/Menu pattern)
|
|
93
|
-
const { pressProps } = createPress({
|
|
192
|
+
const { pressProps, isPressed } = createPress({
|
|
94
193
|
get isDisabled() {
|
|
95
194
|
return getProps().isDisabled;
|
|
96
195
|
},
|
|
97
|
-
|
|
98
|
-
|
|
196
|
+
onPressStart(event) {
|
|
197
|
+
if (event.pointerType === "keyboard") {
|
|
198
|
+
state.toggle();
|
|
199
|
+
}
|
|
200
|
+
},
|
|
201
|
+
onPress(event) {
|
|
202
|
+
if (event.pointerType !== "keyboard") {
|
|
203
|
+
state.toggle();
|
|
204
|
+
}
|
|
99
205
|
},
|
|
100
206
|
});
|
|
101
207
|
|
|
102
208
|
return {
|
|
209
|
+
isPressed,
|
|
103
210
|
// Button props - merge with pressProps for consistent interaction handling
|
|
104
211
|
// Using getter (not createMemo) to match createSelect pattern
|
|
105
212
|
get buttonProps(): JSX.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
106
213
|
const p = getProps();
|
|
107
|
-
// Note: Don't add duplicate onKeyDown handler here!
|
|
108
|
-
// createPress already handles Enter/Space via its onPress callback.
|
|
109
|
-
// Adding another toggle call would double-toggle (toggle on keydown, toggle again on keyup).
|
|
110
214
|
return mergeProps(
|
|
111
215
|
pressProps as Record<string, unknown>,
|
|
112
216
|
{
|
|
113
217
|
id: triggerId,
|
|
114
|
-
type:
|
|
115
|
-
|
|
116
|
-
|
|
218
|
+
type: "button",
|
|
219
|
+
"aria-expanded": state.isExpanded(),
|
|
220
|
+
"aria-controls": panelId,
|
|
117
221
|
disabled: p.isDisabled,
|
|
118
|
-
} as Record<string, unknown
|
|
222
|
+
} as Record<string, unknown>,
|
|
119
223
|
) as JSX.ButtonHTMLAttributes<HTMLButtonElement>;
|
|
120
224
|
},
|
|
121
225
|
// Panel props
|
|
122
226
|
get panelProps(): JSX.HTMLAttributes<HTMLElement> {
|
|
123
227
|
return {
|
|
124
228
|
id: panelId,
|
|
125
|
-
role:
|
|
126
|
-
|
|
127
|
-
hidden: !state.isExpanded()
|
|
229
|
+
role: "group",
|
|
230
|
+
"aria-labelledby": triggerId,
|
|
231
|
+
"aria-hidden": !state.isExpanded(),
|
|
232
|
+
hidden: getDisclosurePanelHiddenAttribute(state.isExpanded()),
|
|
128
233
|
};
|
|
129
234
|
},
|
|
130
235
|
};
|
|
@@ -6,13 +6,9 @@
|
|
|
6
6
|
* Port of @react-aria/disclosure.
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import { type JSX
|
|
10
|
-
import { type DisclosureGroupState } from
|
|
11
|
-
import {
|
|
12
|
-
|
|
13
|
-
// ============================================
|
|
14
|
-
// TYPES
|
|
15
|
-
// ============================================
|
|
9
|
+
import { type JSX } from "solid-js";
|
|
10
|
+
import { type DisclosureGroupState } from "@proyecto-viviana/solid-stately";
|
|
11
|
+
import { type MaybeAccessor } from "../utils/reactivity";
|
|
16
12
|
|
|
17
13
|
export interface AriaDisclosureGroupProps {
|
|
18
14
|
/** Whether the disclosure group is disabled. */
|
|
@@ -24,10 +20,6 @@ export interface DisclosureGroupAria {
|
|
|
24
20
|
groupProps: JSX.HTMLAttributes<HTMLElement>;
|
|
25
21
|
}
|
|
26
22
|
|
|
27
|
-
// ============================================
|
|
28
|
-
// IMPLEMENTATION
|
|
29
|
-
// ============================================
|
|
30
|
-
|
|
31
23
|
/**
|
|
32
24
|
* Provides accessibility implementation for a group of disclosures (accordion).
|
|
33
25
|
*
|
|
@@ -49,17 +41,12 @@ export interface DisclosureGroupAria {
|
|
|
49
41
|
* ```
|
|
50
42
|
*/
|
|
51
43
|
export function createDisclosureGroup(
|
|
52
|
-
|
|
53
|
-
|
|
44
|
+
_props: MaybeAccessor<AriaDisclosureGroupProps>,
|
|
45
|
+
_state: DisclosureGroupState,
|
|
54
46
|
): DisclosureGroupAria {
|
|
55
|
-
const getProps = () => access(props);
|
|
56
|
-
|
|
57
|
-
const groupProps = createMemo<JSX.HTMLAttributes<HTMLElement>>(() => ({
|
|
58
|
-
role: 'group',
|
|
59
|
-
'aria-disabled': getProps().isDisabled || state.isDisabled || undefined,
|
|
60
|
-
}));
|
|
61
|
-
|
|
62
47
|
return {
|
|
63
|
-
get groupProps() {
|
|
48
|
+
get groupProps() {
|
|
49
|
+
return {};
|
|
50
|
+
},
|
|
64
51
|
};
|
|
65
52
|
}
|
package/src/disclosure/index.ts
CHANGED
|
@@ -2,10 +2,10 @@ export {
|
|
|
2
2
|
createDisclosure,
|
|
3
3
|
type AriaDisclosureProps,
|
|
4
4
|
type DisclosureAria,
|
|
5
|
-
} from
|
|
5
|
+
} from "./createDisclosure";
|
|
6
6
|
|
|
7
7
|
export {
|
|
8
8
|
createDisclosureGroup,
|
|
9
9
|
type AriaDisclosureGroupProps,
|
|
10
10
|
type DisclosureGroupAria,
|
|
11
|
-
} from
|
|
11
|
+
} from "./createDisclosureGroup";
|
package/src/dnd/createDrag.ts
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* mouse, touch, and keyboard interactions.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { createMemo, type Accessor } from
|
|
9
|
-
import { createDragState } from
|
|
10
|
-
import type { AriaDragOptions, DragAria } from
|
|
8
|
+
import { createMemo, type Accessor } from "solid-js";
|
|
9
|
+
import { createDragState } from "@proyecto-viviana/solid-stately";
|
|
10
|
+
import type { AriaDragOptions, DragAria } from "./types";
|
|
11
11
|
import {
|
|
12
12
|
getTypes,
|
|
13
13
|
writeToDataTransfer,
|
|
@@ -17,8 +17,8 @@ import {
|
|
|
17
17
|
setGlobalAllowedDropOperations,
|
|
18
18
|
setGlobalDropEffect,
|
|
19
19
|
getGlobalDropEffect,
|
|
20
|
-
} from
|
|
21
|
-
import { setGlobalDraggingTypes } from
|
|
20
|
+
} from "./utils";
|
|
21
|
+
import { setGlobalDraggingTypes } from "./createDraggableCollection";
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Creates ARIA props for a draggable element.
|
|
@@ -29,7 +29,6 @@ import { setGlobalDraggingTypes } from './createDraggableCollection';
|
|
|
29
29
|
export function createDrag(props: Accessor<AriaDragOptions>): DragAria {
|
|
30
30
|
const getProps = createMemo(() => props());
|
|
31
31
|
|
|
32
|
-
// Create drag state
|
|
33
32
|
const state = createDragState(() => ({
|
|
34
33
|
getItems: getProps().getItems,
|
|
35
34
|
getAllowedDropOperations: getProps().getAllowedDropOperations,
|
|
@@ -41,7 +40,6 @@ export function createDrag(props: Accessor<AriaDragOptions>): DragAria {
|
|
|
41
40
|
preview: getProps().preview,
|
|
42
41
|
}));
|
|
43
42
|
|
|
44
|
-
// Track position for drag move
|
|
45
43
|
let lastX = 0;
|
|
46
44
|
let lastY = 0;
|
|
47
45
|
|
|
@@ -51,10 +49,8 @@ export function createDrag(props: Accessor<AriaDragOptions>): DragAria {
|
|
|
51
49
|
|
|
52
50
|
const p = getProps();
|
|
53
51
|
|
|
54
|
-
// Call state handler
|
|
55
52
|
state.startDrag(e.clientX, e.clientY);
|
|
56
53
|
|
|
57
|
-
// Get items and write to data transfer
|
|
58
54
|
const items = state.getItems();
|
|
59
55
|
setGlobalDraggingTypes(getTypes(items));
|
|
60
56
|
e.dataTransfer?.clearData?.();
|
|
@@ -62,7 +58,6 @@ export function createDrag(props: Accessor<AriaDragOptions>): DragAria {
|
|
|
62
58
|
writeToDataTransfer(e.dataTransfer, items);
|
|
63
59
|
}
|
|
64
60
|
|
|
65
|
-
// Set allowed drop operations
|
|
66
61
|
let allowed = DROP_OPERATION.all;
|
|
67
62
|
const allowedOps = state.getAllowedDropOperations();
|
|
68
63
|
if (allowedOps.length > 0) {
|
|
@@ -73,14 +68,14 @@ export function createDrag(props: Accessor<AriaDragOptions>): DragAria {
|
|
|
73
68
|
}
|
|
74
69
|
|
|
75
70
|
setGlobalAllowedDropOperations(allowed);
|
|
76
|
-
const effectAllowed = EFFECT_ALLOWED[allowed] ||
|
|
71
|
+
const effectAllowed = EFFECT_ALLOWED[allowed] || "none";
|
|
77
72
|
if (e.dataTransfer) {
|
|
78
|
-
e.dataTransfer.effectAllowed =
|
|
79
|
-
|
|
73
|
+
e.dataTransfer.effectAllowed = (
|
|
74
|
+
effectAllowed === "cancel" ? "none" : effectAllowed
|
|
75
|
+
) as DataTransfer["effectAllowed"];
|
|
80
76
|
}
|
|
81
77
|
|
|
82
|
-
|
|
83
|
-
if (typeof p.preview?.current === 'function' && e.dataTransfer) {
|
|
78
|
+
if (typeof p.preview?.current === "function" && e.dataTransfer) {
|
|
84
79
|
p.preview.current(items, (node, userX, userY) => {
|
|
85
80
|
if (!node || !e.dataTransfer) return;
|
|
86
81
|
|
|
@@ -94,8 +89,8 @@ export function createDrag(props: Accessor<AriaDragOptions>): DragAria {
|
|
|
94
89
|
defaultY = size.height / 2;
|
|
95
90
|
}
|
|
96
91
|
|
|
97
|
-
let offsetX = typeof userX ===
|
|
98
|
-
let offsetY = typeof userY ===
|
|
92
|
+
let offsetX = typeof userX === "number" ? userX : defaultX;
|
|
93
|
+
let offsetY = typeof userY === "number" ? userY : defaultY;
|
|
99
94
|
|
|
100
95
|
offsetX = Math.max(0, Math.min(offsetX, size.width));
|
|
101
96
|
offsetY = Math.max(0, Math.min(offsetY, size.height));
|
|
@@ -124,7 +119,7 @@ export function createDrag(props: Accessor<AriaDragOptions>): DragAria {
|
|
|
124
119
|
const onDragEnd = (e: DragEvent) => {
|
|
125
120
|
e.stopPropagation();
|
|
126
121
|
|
|
127
|
-
let dropEffect: string = e.dataTransfer?.dropEffect ??
|
|
122
|
+
let dropEffect: string = e.dataTransfer?.dropEffect ?? "none";
|
|
128
123
|
// Chrome Android fix - use global drop effect
|
|
129
124
|
if (getGlobalDropEffect()) {
|
|
130
125
|
dropEffect = getGlobalDropEffect()!;
|
|
@@ -140,14 +135,14 @@ export function createDrag(props: Accessor<AriaDragOptions>): DragAria {
|
|
|
140
135
|
|
|
141
136
|
// Keyboard/screen reader drag initiation
|
|
142
137
|
const onKeyDown = (e: KeyboardEvent) => {
|
|
143
|
-
if (e.key ===
|
|
138
|
+
if (e.key === "Enter" && e.target === e.currentTarget) {
|
|
144
139
|
e.preventDefault();
|
|
145
140
|
e.stopPropagation();
|
|
146
141
|
}
|
|
147
142
|
};
|
|
148
143
|
|
|
149
144
|
const onKeyUp = (e: KeyboardEvent) => {
|
|
150
|
-
if (e.key ===
|
|
145
|
+
if (e.key === "Enter" && e.target === e.currentTarget) {
|
|
151
146
|
e.preventDefault();
|
|
152
147
|
e.stopPropagation();
|
|
153
148
|
// Would initiate keyboard-based drag mode
|
|
@@ -184,7 +179,6 @@ export function createDrag(props: Accessor<AriaDragOptions>): DragAria {
|
|
|
184
179
|
onDragEnd,
|
|
185
180
|
};
|
|
186
181
|
|
|
187
|
-
// Add keyboard handlers if no separate drag button
|
|
188
182
|
if (!p.hasDragButton) {
|
|
189
183
|
baseProps.onKeyDown = onKeyDown;
|
|
190
184
|
baseProps.onKeyUp = onKeyUp;
|
|
@@ -203,8 +197,8 @@ export function createDrag(props: Accessor<AriaDragOptions>): DragAria {
|
|
|
203
197
|
}
|
|
204
198
|
|
|
205
199
|
return {
|
|
206
|
-
type:
|
|
207
|
-
|
|
200
|
+
type: "button" as const,
|
|
201
|
+
"aria-label": "Drag",
|
|
208
202
|
onKeyDown,
|
|
209
203
|
onKeyUp,
|
|
210
204
|
};
|
|
@@ -212,10 +206,10 @@ export function createDrag(props: Accessor<AriaDragOptions>): DragAria {
|
|
|
212
206
|
|
|
213
207
|
return {
|
|
214
208
|
get dragProps() {
|
|
215
|
-
return dragProps() as DragAria[
|
|
209
|
+
return dragProps() as DragAria["dragProps"];
|
|
216
210
|
},
|
|
217
211
|
get dragButtonProps() {
|
|
218
|
-
return dragButtonProps() as DragAria[
|
|
212
|
+
return dragButtonProps() as DragAria["dragButtonProps"];
|
|
219
213
|
},
|
|
220
214
|
get isDragging() {
|
|
221
215
|
return state.isDragging;
|
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* component like ListBox, GridList, or Table.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { createMemo, createEffect, onCleanup, type Accessor } from
|
|
9
|
-
import type { DraggableCollectionState } from
|
|
10
|
-
import { getTypes } from
|
|
8
|
+
import { createMemo, createEffect, onCleanup, type Accessor } from "solid-js";
|
|
9
|
+
import type { DraggableCollectionState } from "@proyecto-viviana/solid-stately";
|
|
10
|
+
import { getTypes } from "./utils";
|
|
11
11
|
|
|
12
12
|
// Global state for tracking the dragging collection
|
|
13
13
|
let globalDraggingCollectionRef: HTMLElement | null = null;
|
|
@@ -57,7 +57,7 @@ export interface DraggableCollectionAria {
|
|
|
57
57
|
*/
|
|
58
58
|
export function createDraggableCollection(
|
|
59
59
|
options: DraggableCollectionOptions,
|
|
60
|
-
state: DraggableCollectionState
|
|
60
|
+
state: DraggableCollectionState,
|
|
61
61
|
): DraggableCollectionAria {
|
|
62
62
|
const ref = createMemo(() => options.ref());
|
|
63
63
|
|
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* Provides accessibility props for items that can be dragged from a collection.
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { createMemo, type Accessor } from
|
|
8
|
-
import type { JSX } from
|
|
7
|
+
import { createMemo, type Accessor } from "solid-js";
|
|
8
|
+
import type { JSX } from "solid-js";
|
|
9
9
|
import type {
|
|
10
10
|
DraggableCollectionState,
|
|
11
11
|
DragPreviewRenderer,
|
|
12
|
-
} from
|
|
12
|
+
} from "@proyecto-viviana/solid-stately";
|
|
13
13
|
import {
|
|
14
14
|
getTypes,
|
|
15
15
|
writeToDataTransfer,
|
|
@@ -19,8 +19,8 @@ import {
|
|
|
19
19
|
setGlobalAllowedDropOperations,
|
|
20
20
|
setGlobalDropEffect,
|
|
21
21
|
getGlobalDropEffect,
|
|
22
|
-
} from
|
|
23
|
-
import { setGlobalDraggingTypes } from
|
|
22
|
+
} from "./utils";
|
|
23
|
+
import { setGlobalDraggingTypes } from "./createDraggableCollection";
|
|
24
24
|
|
|
25
25
|
export interface DraggableItemOptions {
|
|
26
26
|
/** The unique key of the item. */
|
|
@@ -51,7 +51,7 @@ export interface DraggableItemAria {
|
|
|
51
51
|
*/
|
|
52
52
|
export function createDraggableItem(
|
|
53
53
|
options: Accessor<DraggableItemOptions>,
|
|
54
|
-
state: DraggableCollectionState
|
|
54
|
+
state: DraggableCollectionState,
|
|
55
55
|
): DraggableItemAria {
|
|
56
56
|
const getOptions = createMemo(() => options());
|
|
57
57
|
|
|
@@ -103,15 +103,16 @@ export function createDraggableItem(
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
setGlobalAllowedDropOperations(allowed);
|
|
106
|
-
const effectAllowed = EFFECT_ALLOWED[allowed] ||
|
|
106
|
+
const effectAllowed = EFFECT_ALLOWED[allowed] || "none";
|
|
107
107
|
if (e.dataTransfer) {
|
|
108
|
-
e.dataTransfer.effectAllowed =
|
|
109
|
-
|
|
108
|
+
e.dataTransfer.effectAllowed = (
|
|
109
|
+
effectAllowed === "cancel" ? "none" : effectAllowed
|
|
110
|
+
) as DataTransfer["effectAllowed"];
|
|
110
111
|
}
|
|
111
112
|
|
|
112
113
|
// Handle custom preview from item options or collection state.
|
|
113
114
|
const preview = opts.preview ?? state.preview;
|
|
114
|
-
if (typeof preview?.current ===
|
|
115
|
+
if (typeof preview?.current === "function" && e.dataTransfer) {
|
|
115
116
|
preview.current(items, (node, userX, userY) => {
|
|
116
117
|
if (!node || !e.dataTransfer) return;
|
|
117
118
|
|
|
@@ -125,8 +126,8 @@ export function createDraggableItem(
|
|
|
125
126
|
defaultY = size.height / 2;
|
|
126
127
|
}
|
|
127
128
|
|
|
128
|
-
let offsetX = typeof userX ===
|
|
129
|
-
let offsetY = typeof userY ===
|
|
129
|
+
let offsetX = typeof userX === "number" ? userX : defaultX;
|
|
130
|
+
let offsetY = typeof userY === "number" ? userY : defaultY;
|
|
130
131
|
|
|
131
132
|
offsetX = Math.max(0, Math.min(offsetX, size.width));
|
|
132
133
|
offsetY = Math.max(0, Math.min(offsetY, size.height));
|
|
@@ -155,7 +156,7 @@ export function createDraggableItem(
|
|
|
155
156
|
const onDragEnd = (e: DragEvent) => {
|
|
156
157
|
e.stopPropagation();
|
|
157
158
|
|
|
158
|
-
let dropEffect: string = e.dataTransfer?.dropEffect ??
|
|
159
|
+
let dropEffect: string = e.dataTransfer?.dropEffect ?? "none";
|
|
159
160
|
// Chrome Android fix - use global drop effect
|
|
160
161
|
if (getGlobalDropEffect()) {
|
|
161
162
|
dropEffect = getGlobalDropEffect()!;
|
|
@@ -172,14 +173,14 @@ export function createDraggableItem(
|
|
|
172
173
|
|
|
173
174
|
// Keyboard/screen reader drag initiation
|
|
174
175
|
const onKeyDown = (e: KeyboardEvent) => {
|
|
175
|
-
if (e.key ===
|
|
176
|
+
if (e.key === "Enter" && e.target === e.currentTarget) {
|
|
176
177
|
e.preventDefault();
|
|
177
178
|
e.stopPropagation();
|
|
178
179
|
}
|
|
179
180
|
};
|
|
180
181
|
|
|
181
182
|
const onKeyUp = (e: KeyboardEvent) => {
|
|
182
|
-
if (e.key ===
|
|
183
|
+
if (e.key === "Enter" && e.target === e.currentTarget) {
|
|
183
184
|
e.preventDefault();
|
|
184
185
|
e.stopPropagation();
|
|
185
186
|
|
|
@@ -238,8 +239,8 @@ export function createDraggableItem(
|
|
|
238
239
|
}
|
|
239
240
|
|
|
240
241
|
return {
|
|
241
|
-
type:
|
|
242
|
-
|
|
242
|
+
type: "button" as const,
|
|
243
|
+
"aria-label": "Drag",
|
|
243
244
|
onKeyDown,
|
|
244
245
|
onKeyUp,
|
|
245
246
|
};
|
|
@@ -247,10 +248,10 @@ export function createDraggableItem(
|
|
|
247
248
|
|
|
248
249
|
return {
|
|
249
250
|
get dragProps() {
|
|
250
|
-
return dragProps() as DraggableItemAria[
|
|
251
|
+
return dragProps() as DraggableItemAria["dragProps"];
|
|
251
252
|
},
|
|
252
253
|
get dragButtonProps() {
|
|
253
|
-
return dragButtonProps() as DraggableItemAria[
|
|
254
|
+
return dragButtonProps() as DraggableItemAria["dragButtonProps"];
|
|
254
255
|
},
|
|
255
256
|
get isDragging() {
|
|
256
257
|
return isDragging();
|