@cube-dev/ui-kit 0.200.1 → 0.202.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 +1 -1
- package/dist/CHANGELOG.md +50 -0
- package/dist/README.md +1 -1
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +2 -1
- package/dist/components/HiddenInput.js.map +1 -1
- package/dist/components/Root.js +1 -1
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Button/Button.js +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/ItemActionsWrapper.js +1 -1
- package/dist/components/actions/ItemButton/ItemButton.js +1 -1
- package/dist/components/actions/Link/Link.js +1 -1
- package/dist/components/actions/Menu/Menu.js +1 -1
- package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
- package/dist/components/actions/Menu/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/actions-run.js +1 -1
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.js +1 -1
- package/dist/components/actions/use-anchored-menu.js +1 -1
- package/dist/components/actions/use-context-menu.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider/Divider.d.ts +22 -0
- package/dist/components/content/Divider/Divider.js +159 -0
- package/dist/components/content/Divider/Divider.js.map +1 -0
- package/dist/components/content/Footer.js +1 -1
- package/dist/components/content/Header.js +1 -1
- package/dist/components/content/HotKeys/HotKeys.js +1 -1
- package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
- package/dist/components/content/InlineInput/InlineInput.js +1 -1
- package/dist/components/content/Item/Item.js +1 -1
- package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.d.ts +2 -1
- package/dist/components/content/TextItem/TextItem.js +134 -69
- package/dist/components/content/TextItem/TextItem.js.map +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +39 -14
- package/dist/components/content/Tree/Tree.js.map +1 -1
- package/dist/components/content/Tree/TreeNode.js +8 -7
- package/dist/components/content/Tree/TreeNode.js.map +1 -1
- package/dist/components/content/Tree/checked-keys.js +158 -0
- package/dist/components/content/Tree/checked-keys.js.map +1 -0
- package/dist/components/content/Tree/rowId.js +16 -0
- package/dist/components/content/Tree/rowId.js.map +1 -0
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/tree-index.js +10 -2
- package/dist/components/content/Tree/tree-index.js.map +1 -1
- package/dist/components/content/Tree/types.d.ts +21 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +17 -123
- package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -1
- package/dist/components/content/Tree/use-load-data.js +1 -1
- package/dist/components/content/highlightText.js +1 -1
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/data/DataTable/DataTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +94 -66
- package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
- package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
- package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
- package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
- package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
- package/dist/components/data/TableBase/ColumnResizer.js +1 -1
- package/dist/components/data/TableBase/RowCollection.js +1 -1
- package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
- package/dist/components/data/TableBase/TableRow.js +1 -1
- package/dist/components/data/TableBase/TableRowLink.js +88 -0
- package/dist/components/data/TableBase/TableRowLink.js.map +1 -0
- package/dist/components/data/TableBase/TableView.js +317 -69
- package/dist/components/data/TableBase/TableView.js.map +1 -1
- package/dist/components/data/TableBase/TreeGridTable.js +1 -1
- package/dist/components/data/TableBase/column-header.js +1 -1
- package/dist/components/data/TableBase/column-menu.js +1 -1
- package/dist/components/data/TableBase/column-styles.js +1 -1
- package/dist/components/data/TableBase/column-tint.js +1 -1
- package/dist/components/data/TableBase/row-menu.js +1 -1
- package/dist/components/data/TableBase/styled.js +33 -22
- package/dist/components/data/TableBase/styled.js.map +1 -1
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.d.ts +2 -1
- package/dist/components/data/TableBase/types.js +1 -1
- package/dist/components/data/TableBase/types.js.map +1 -1
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-menu.js +1 -1
- package/dist/components/data/TableBase/use-column-order.js +1 -1
- package/dist/components/data/TableBase/use-column-window.js +1 -1
- package/dist/components/data/TableBase/use-container-width.js +1 -1
- package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
- package/dist/components/data/TableBase/use-scrollability.js +1 -1
- package/dist/components/data/TableBase/use-table-columns.js +1 -1
- package/dist/components/data/TableBase/use-table-search.js +1 -1
- package/dist/components/data/TableBase/use-table-selection.js +1 -1
- package/dist/components/data/TableBase/use-table-sort.js +1 -1
- package/dist/components/data/TableBase/use-table-sorts.js +1 -1
- package/dist/components/data/TableBase/use-table-storage.js +1 -1
- package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
- package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.d.ts +3 -2
- package/dist/components/fields/Checkbox/Checkbox.js +21 -10
- package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.d.ts +3 -2
- package/dist/components/fields/Checkbox/CheckboxGroup.js +36 -42
- package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
- package/dist/components/fields/Checkbox/context.js +1 -1
- package/dist/components/fields/ColorInput/ColorInput.d.ts +3 -2
- package/dist/components/fields/ColorInput/ColorInput.js +5 -3
- package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.d.ts +9 -3
- package/dist/components/fields/ColorPicker/ColorPicker.js +182 -200
- package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.d.ts +3 -2
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +143 -171
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
- package/dist/components/fields/ComboBox/ComboBox.d.ts +6 -4
- package/dist/components/fields/ComboBox/ComboBox.js +601 -574
- package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +5 -4
- package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
- package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
- package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
- package/dist/components/fields/DatePicker/DateInput.d.ts +3 -2
- package/dist/components/fields/DatePicker/DateInput.js +7 -5
- package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +79 -76
- package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePicker.d.ts +3 -2
- package/dist/components/fields/DatePicker/DatePicker.js +85 -173
- package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
- package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
- package/dist/components/fields/DatePicker/DateRangePicker.d.ts +3 -2
- package/dist/components/fields/DatePicker/DateRangePicker.js +117 -204
- package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.d.ts +3 -2
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +289 -434
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.d.ts +3 -2
- package/dist/components/fields/DatePicker/PeriodPicker.js +87 -113
- package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.d.ts +3 -2
- package/dist/components/fields/DatePicker/TimeInput.js +7 -5
- package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
- package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
- package/dist/components/fields/DatePicker/YearPicker.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.js +1 -1
- package/dist/components/fields/DatePicker/period.js +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/utils.js +1 -1
- package/dist/components/fields/FileInput/FileInput.d.ts +3 -2
- package/dist/components/fields/FileInput/FileInput.js +114 -141
- package/dist/components/fields/FileInput/FileInput.js.map +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +10 -65
- package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
- package/dist/components/fields/FilterListBox/styled.js +66 -0
- package/dist/components/fields/FilterListBox/styled.js.map +1 -0
- package/dist/components/fields/FilterPicker/FilterPicker.d.ts +35 -3
- package/dist/components/fields/FilterPicker/FilterPicker.js +76 -15
- package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
- package/dist/components/fields/FilterPicker/FilterTree.js +413 -0
- package/dist/components/fields/FilterPicker/FilterTree.js.map +1 -0
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.d.ts +3 -2
- package/dist/components/fields/ListBox/ListBox.js +7 -10
- package/dist/components/fields/ListBox/ListBox.js.map +1 -1
- package/dist/components/fields/ListBox/optionId.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +5 -3
- package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +5 -3
- package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
- package/dist/components/fields/Picker/Picker.d.ts +9 -3
- package/dist/components/fields/Picker/Picker.js +12 -11
- package/dist/components/fields/Picker/Picker.js.map +1 -1
- package/dist/components/fields/RadioGroup/Radio.js +152 -154
- package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.d.ts +3 -2
- package/dist/components/fields/RadioGroup/RadioGroup.js +85 -111
- package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/RadioGroup/context.js.map +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +9 -4
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +16 -23
- package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +52 -48
- package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
- package/dist/components/fields/Select/Select.d.ts +3 -2
- package/dist/components/fields/Select/Select.js +8 -10
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +19 -26
- package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
- package/dist/components/fields/Slider/Slider.js +51 -58
- package/dist/components/fields/Slider/Slider.js.map +1 -1
- package/dist/components/fields/Slider/SliderBase.js +61 -60
- package/dist/components/fields/Slider/SliderBase.js.map +1 -1
- package/dist/components/fields/Slider/SliderThumb.js +1 -1
- package/dist/components/fields/Slider/SliderTrack.js +1 -1
- package/dist/components/fields/Slider/elements.js +1 -1
- package/dist/components/fields/Slider/index.js +1 -1
- package/dist/components/fields/Slider/types.d.ts +3 -2
- package/dist/components/fields/Switch/Switch.d.ts +12 -2
- package/dist/components/fields/Switch/Switch.js +97 -165
- package/dist/components/fields/Switch/Switch.js.map +1 -1
- package/dist/components/fields/TagInput/TagInput.d.ts +5 -2
- package/dist/components/fields/TagInput/TagInput.js +18 -13
- package/dist/components/fields/TagInput/TagInput.js.map +1 -1
- package/dist/components/fields/TagInput/TagList.js +1 -1
- package/dist/components/fields/TagInput/useActiveOption.js +1 -1
- package/dist/components/fields/TagInput/useTagError.js +1 -1
- package/dist/components/fields/TextArea/TextArea.js +5 -3
- package/dist/components/fields/TextArea/TextArea.js.map +1 -1
- package/dist/components/fields/TextInput/TextInput.js +5 -3
- package/dist/components/fields/TextInput/TextInput.js.map +1 -1
- package/dist/components/fields/TextInput/TextInputBase.d.ts +15 -4
- package/dist/components/fields/TextInput/TextInputBase.js +200 -104
- package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
- package/dist/components/fields/TextInput/displayed-validation.js +1 -1
- package/dist/components/fields/TextInput/index.d.ts +2 -2
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/fields/index.d.ts +2 -2
- package/dist/components/fields/option-origin-press.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +120 -57
- package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
- package/dist/components/form/FieldWrapper/field-description.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/ModernFormRoot.js +1 -1
- package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
- package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
- package/dist/components/form/Form/SubmitError.js +1 -1
- package/dist/components/form/Form/backend.js +1 -1
- package/dist/components/form/Form/index.js +1 -1
- package/dist/components/form/Form/modern/actions.js +1 -1
- package/dist/components/form/Form/modern/context.js +1 -1
- package/dist/components/form/Form/modern/controller.js +1 -1
- package/dist/components/form/Form/modern/field-binding.js +1 -1
- package/dist/components/form/Form/modern/field.js +1 -1
- package/dist/components/form/Form/modern/react.js +1 -1
- package/dist/components/form/Form/modern/store.js +1 -1
- package/dist/components/form/Form/modern/validation.js +1 -1
- package/dist/components/form/Form/modern/values.js +1 -1
- package/dist/components/form/Form/reset-unbound-controls.js +1 -1
- package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/field-chrome.js +1 -1
- package/dist/components/form/field-chrome.js.map +1 -1
- package/dist/components/form/field-layout.d.ts +10 -0
- package/dist/components/form/field-layout.js +96 -0
- package/dist/components/form/field-layout.js.map +1 -0
- package/dist/components/form/index.d.ts +2 -1
- package/dist/components/form/legacy-tooltip.js +15 -2
- package/dist/components/form/legacy-tooltip.js.map +1 -1
- package/dist/components/form/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/wrapper.js +6 -2
- package/dist/components/form/wrapper.js.map +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/Flex.js +1 -1
- package/dist/components/layout/Flow.js +1 -1
- package/dist/components/layout/Grid.js +1 -1
- package/dist/components/layout/Panel.js +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/ResizablePanel.js +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +2 -1
- package/dist/components/navigation/Tabs/styled.js.map +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/default-button-text.js +1 -1
- package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
- package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
- package/dist/components/overlays/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Tray.js +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Modal/modal-containment.js +1 -1
- package/dist/components/overlays/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +2 -2
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +116 -116
- package/dist/data/item-themes.js.map +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +1 -1
- package/dist/i18n/locales/en-US/uikit.js +1 -1
- package/dist/i18n/locales/es-ES/uikit.js +1 -1
- package/dist/i18n/locales/es-MX/uikit.js +1 -1
- package/dist/i18n/locales/fr-FR/uikit.js +1 -1
- package/dist/i18n/locales/it-IT/uikit.js +1 -1
- package/dist/i18n/locales/ja-JP/uikit.js +1 -1
- package/dist/i18n/locales/nb-NO/uikit.js +1 -1
- package/dist/i18n/locales/pt-BR/uikit.js +1 -1
- package/dist/i18n/locales/pt-PT/uikit.js +1 -1
- package/dist/i18n/locales/sv-SE/uikit.js +1 -1
- package/dist/i18n/locales/vi-VN/uikit.js +1 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/namespace.js +1 -1
- package/dist/i18n/useFormatter.js +1 -1
- package/dist/i18n/useI18n.js +1 -1
- package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
- package/dist/icons/AdjustmentsIcon.js +1 -1
- package/dist/icons/AiIcon.js +1 -1
- package/dist/icons/AreaChartIcon.js +1 -1
- package/dist/icons/ArrowNarrowDownIcon.js +1 -1
- package/dist/icons/ArrowNarrowUpIcon.js +1 -1
- package/dist/icons/BackwardIcon.js +1 -1
- package/dist/icons/BarChartIcon.js +1 -1
- package/dist/icons/BellFilledIcon.js +1 -1
- package/dist/icons/BellIcon.js +1 -1
- package/dist/icons/BooleanIcon.js +1 -1
- package/dist/icons/CalendarEditIcon.js +1 -1
- package/dist/icons/CalendarIcon.js +1 -1
- package/dist/icons/CaretDownIcon.js +1 -1
- package/dist/icons/CaretUpIcon.js +1 -1
- package/dist/icons/ChartAreaStackedIcon.js +1 -1
- package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarGroupedIcon.js +1 -1
- package/dist/icons/ChartBarHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarLineIcon.js +1 -1
- package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
- package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
- package/dist/icons/ChartBoxPlot2Icon.js +1 -1
- package/dist/icons/ChartBoxPlotIcon.js +1 -1
- package/dist/icons/ChartBubbleIcon.js +1 -1
- package/dist/icons/ChartDonut2Icon.js +1 -1
- package/dist/icons/ChartFunnelIcon.js +1 -1
- package/dist/icons/ChartHeatmapIcon.js +1 -1
- package/dist/icons/ChartKPIIcon.js +1 -1
- package/dist/icons/ChartPie2Icon.js +1 -1
- package/dist/icons/ChartScatterIcon.js +1 -1
- package/dist/icons/CheckCircleFilledIcon.js +1 -1
- package/dist/icons/CheckCircleIcon.js +1 -1
- package/dist/icons/CheckIcon.js +1 -1
- package/dist/icons/CircleFilledIcon.js +1 -1
- package/dist/icons/ClearIcon.js +1 -1
- package/dist/icons/CloseCircleFilledIcon.js +1 -1
- package/dist/icons/CloseCircleIcon.js +1 -1
- package/dist/icons/CloseIcon.js +1 -1
- package/dist/icons/CodeIcon.js +1 -1
- package/dist/icons/ColumnTotalIcon.js +1 -1
- package/dist/icons/CopyIcon.js +1 -1
- package/dist/icons/CountIcon.js +1 -1
- package/dist/icons/CubeIcon.js +1 -1
- package/dist/icons/CubePauseIcon.js +1 -1
- package/dist/icons/CubePlayIcon.js +1 -1
- package/dist/icons/CurrencyDollarIcon.js +1 -1
- package/dist/icons/DangerIcon.js +1 -1
- package/dist/icons/DashboardIcon.js +1 -1
- package/dist/icons/DatabaseIcon.js +1 -1
- package/dist/icons/DecimalDecreaseIcon.js +1 -1
- package/dist/icons/DecimalIncreaseIcon.js +1 -1
- package/dist/icons/DirectionIcon.js +1 -1
- package/dist/icons/DonutIcon.js +1 -1
- package/dist/icons/DownIcon.js +1 -1
- package/dist/icons/EditIcon.js +1 -1
- package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
- package/dist/icons/ExclamationCircleIcon.js +1 -1
- package/dist/icons/ExclamationIcon.js +1 -1
- package/dist/icons/EyeIcon.js +1 -1
- package/dist/icons/EyeInvisibleIcon.js +1 -1
- package/dist/icons/FilterIcon.js +1 -1
- package/dist/icons/FolderFilledIcon.js +1 -1
- package/dist/icons/FolderIcon.js +1 -1
- package/dist/icons/FolderOpenFilledIcon.js +1 -1
- package/dist/icons/FolderOpenIcon.js +1 -1
- package/dist/icons/ForwardIcon.js +1 -1
- package/dist/icons/GripVerticalIcon.js +1 -1
- package/dist/icons/HierarchyIcon.js +1 -1
- package/dist/icons/HierarchyOpenIcon.js +1 -1
- package/dist/icons/Icon.js +1 -1
- package/dist/icons/InfoCircleIcon.js +1 -1
- package/dist/icons/InfoIcon.js +1 -1
- package/dist/icons/KeyIcon.js +1 -1
- package/dist/icons/LeftIcon.js +1 -1
- package/dist/icons/LineChartIcon.js +1 -1
- package/dist/icons/LoadingIcon.js +1 -1
- package/dist/icons/LockFilledIcon.js +1 -1
- package/dist/icons/LockIcon.js +1 -1
- package/dist/icons/MoreIcon.js +1 -1
- package/dist/icons/NotAllowedIcon.js +1 -1
- package/dist/icons/Number123Icon.js +1 -1
- package/dist/icons/NumberIcon.js +1 -1
- package/dist/icons/PauseCircleFilledIcon.js +1 -1
- package/dist/icons/PauseCircleIcon.js +1 -1
- package/dist/icons/PauseIcon.js +1 -1
- package/dist/icons/PercentageIcon.js +1 -1
- package/dist/icons/PieChartIcon.js +1 -1
- package/dist/icons/PipetteIcon.js +1 -1
- package/dist/icons/PlayCircleIcon.js +1 -1
- package/dist/icons/PlayIcon.js +1 -1
- package/dist/icons/PlusIcon.js +1 -1
- package/dist/icons/ProgressBarIcon.js +1 -1
- package/dist/icons/ReloadIcon.js +1 -1
- package/dist/icons/ReportIcon.js +1 -1
- package/dist/icons/ReturnIcon.js +1 -1
- package/dist/icons/RightIcon.js +1 -1
- package/dist/icons/RowTotalsIcon.js +1 -1
- package/dist/icons/SchemeIcon.js +1 -1
- package/dist/icons/SearchIcon.js +1 -1
- package/dist/icons/SemanticQueryIcon.js +1 -1
- package/dist/icons/SettingsIcon.js +1 -1
- package/dist/icons/ShieldFilledIcon.js +1 -1
- package/dist/icons/ShieldIcon.js +1 -1
- package/dist/icons/SlashIcon.js +1 -1
- package/dist/icons/SparklesIcon.js +1 -1
- package/dist/icons/SqlIcon.js +1 -1
- package/dist/icons/StatsIcon.js +1 -1
- package/dist/icons/StopIcon.js +1 -1
- package/dist/icons/StringIcon.js +1 -1
- package/dist/icons/SubtotalsIcon.js +1 -1
- package/dist/icons/SwitchIcon.js +1 -1
- package/dist/icons/TableIcon.js +1 -1
- package/dist/icons/ThumbsDownIcon.js +1 -1
- package/dist/icons/ThumbsUpIcon.js +1 -1
- package/dist/icons/ThunderboltCrossedIcon.js +1 -1
- package/dist/icons/ThunderboltFilledIcon.js +1 -1
- package/dist/icons/ThunderboltIcon.js +1 -1
- package/dist/icons/TimeIcon.js +1 -1
- package/dist/icons/TrashIcon.js +1 -1
- package/dist/icons/UnlockIcon.js +1 -1
- package/dist/icons/UpIcon.js +1 -1
- package/dist/icons/UserGroupIcon.js +1 -1
- package/dist/icons/UserIcon.js +1 -1
- package/dist/icons/UserLockIcon.js +1 -1
- package/dist/icons/ViewIcon.js +1 -1
- package/dist/icons/WarningFilledIcon.js +1 -1
- package/dist/icons/WarningIcon.js +1 -1
- package/dist/icons/wrap-icon.js +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.d.ts +5 -0
- package/dist/provider.js +19 -7
- package/dist/provider.js.map +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigation-url.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/providers/use-navigation.js +1 -1
- package/dist/shared/form.d.ts +3 -1
- package/dist/tokens/all-tokens.js +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/legacy-color.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +4 -4
- package/dist/tokens/palette.js.map +1 -1
- package/dist/tokens/resolve.js +1 -1
- package/dist/tokens/shadows.js +1 -1
- package/dist/tokens/sizes.js +1 -1
- package/dist/tokens/spacing.js +1 -1
- package/dist/tokens/typography.js +1 -1
- package/dist/utils/ResizeSensor.js +1 -1
- package/dist/utils/colors.js +1 -1
- package/dist/utils/dotize.js +1 -1
- package/dist/utils/is-dev-env.js +1 -1
- package/dist/utils/modules.js +1 -1
- package/dist/utils/promise.js +1 -1
- package/dist/utils/raf.js +1 -1
- package/dist/utils/random.js +1 -1
- package/dist/utils/range.js +1 -1
- package/dist/utils/react/RenderCache.js +1 -1
- package/dist/utils/react/Slots.js +1 -1
- package/dist/utils/react/chain.js +1 -1
- package/dist/utils/react/disabledProps.js +29 -2
- package/dist/utils/react/disabledProps.js.map +1 -1
- package/dist/utils/react/forwardRefWithGenerics.js +1 -1
- package/dist/utils/react/index.js +1 -1
- package/dist/utils/react/interactions.js +1 -1
- package/dist/utils/react/isTextOnly.js +1 -1
- package/dist/utils/react/mapProps.js +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/overlayKeyPropagation.js +44 -7
- package/dist/utils/react/overlayKeyPropagation.js.map +1 -1
- package/dist/utils/react/programmaticFocus.js +1 -1
- package/dist/utils/react/resolveIcon.js +1 -1
- package/dist/utils/react/sharedStore.js +1 -1
- package/dist/utils/react/useBufferedValue.js +1 -1
- package/dist/utils/react/useCombinedRefs.js +1 -1
- package/dist/utils/react/useControlledFocusVisible.js +1 -1
- package/dist/utils/react/useEventBus.js +1 -1
- package/dist/utils/react/useId.js +1 -1
- package/dist/utils/react/useIsDarwin.js +1 -1
- package/dist/utils/react/useKeySymbols.js +1 -1
- package/dist/utils/react/useLayoutEffect.js +1 -1
- package/dist/utils/react/useLocalStorage.js +1 -1
- package/dist/utils/react/useMergeStyles.js +1 -1
- package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
- package/dist/utils/react/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useScheme.js +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/selection.js +1 -1
- package/dist/utils/styles.js +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.js +3 -3
- package/docs/CreateComponent.md +1 -1
- package/docs/FieldProperties.md +17 -7
- package/docs/Usage.md +3 -0
- package/docs/components/content/Divider.md +103 -21
- package/docs/components/content/Tree.md +5 -4
- package/docs/components/data/ItemTable.md +9 -1
- package/docs/components/fields/Checkbox.md +7 -8
- package/docs/components/fields/ColorInput.md +11 -13
- package/docs/components/fields/ColorPicker.md +2 -2
- package/docs/components/fields/ColorSwatchGroup.md +2 -3
- package/docs/components/fields/ComboBox.md +2 -4
- package/docs/components/fields/CommandTextArea.md +3 -5
- package/docs/components/fields/DatePicker.md +1 -4
- package/docs/components/fields/FileInput.md +1 -5
- package/docs/components/fields/FilterListBox.md +0 -3
- package/docs/components/fields/FilterPicker.md +68 -5
- package/docs/components/fields/HueSlider.md +1 -2
- package/docs/components/fields/ListBox.md +0 -3
- package/docs/components/fields/NumberInput.md +5 -6
- package/docs/components/fields/PasswordInput.md +7 -8
- package/docs/components/fields/PeriodPicker.md +0 -4
- package/docs/components/fields/Picker.md +2 -4
- package/docs/components/fields/RadioGroup.md +4 -5
- package/docs/components/fields/SearchComboBox.md +2 -4
- package/docs/components/fields/SearchInput.md +3 -4
- package/docs/components/fields/Select.md +0 -3
- package/docs/components/fields/Slider.md +0 -1
- package/docs/components/fields/Switch.md +16 -3
- package/docs/components/fields/TagInput.md +3 -6
- package/docs/components/fields/TextArea.md +9 -8
- package/docs/components/fields/TextInput.md +39 -10
- package/docs/components/overlays/Tooltip.md +1 -1
- package/docs/tasty/ai-agents.md +1 -1
- package/docs/tasty/react-api.md +1 -1
- package/docs/tasty/styles.md +37 -3
- package/package.json +6 -4
- package/dist/components/content/Divider.d.ts +0 -7
- package/dist/components/content/Divider.js +0 -105
- package/dist/components/content/Divider.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
2
|
+
import { mergeProps } from "./mergeProps.js";
|
|
2
3
|
//#region src/utils/react/disabledProps.ts
|
|
3
4
|
/**
|
|
4
5
|
* Tags where `disabled` is a real HTML attribute. Browsers refuse to dispatch
|
|
@@ -81,7 +82,33 @@ function omitActivationEventProps(props) {
|
|
|
81
82
|
for (const prop of ACTIVATION_EVENT_PROPS) delete result[prop];
|
|
82
83
|
return result;
|
|
83
84
|
}
|
|
85
|
+
/**
|
|
86
|
+
* React reports a click on an inert checkbox or radio as a change: the browser
|
|
87
|
+
* toggles it before the click is cancelled. Kept as a handler rather than
|
|
88
|
+
* dropped, or React would warn about a `checked` input without one.
|
|
89
|
+
*/
|
|
90
|
+
function ignoreChange(event) {
|
|
91
|
+
event.stopPropagation();
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Turns the props React Aria gives a disabled checkbox, switch or radio
|
|
95
|
+
* `<input>` into those of an inert one (`isInert` from
|
|
96
|
+
* `getDisabledElementProps`): no native `disabled`, so it keeps its focus, and
|
|
97
|
+
* nothing a click, `Space` or a change could toggle it with. A text input uses
|
|
98
|
+
* it too, made read-only by its caller, so it fires no change to ignore.
|
|
99
|
+
*
|
|
100
|
+
* React Aria leaves `tabIndex` out of a disabled input's props, so a caller's
|
|
101
|
+
* `excludeFromTabOrder` has to be passed again.
|
|
102
|
+
*/
|
|
103
|
+
function getInertInputProps(inputProps, { excludeFromTabOrder } = {}) {
|
|
104
|
+
return mergeProps({
|
|
105
|
+
...omitActivationEventProps(inputProps),
|
|
106
|
+
disabled: false,
|
|
107
|
+
onChange: ignoreChange,
|
|
108
|
+
...excludeFromTabOrder ? { tabIndex: -1 } : null
|
|
109
|
+
}, INERT_PROPS);
|
|
110
|
+
}
|
|
84
111
|
//#endregion
|
|
85
|
-
export { getDisabledElementProps, omitActivationEventProps };
|
|
112
|
+
export { getDisabledElementProps, getInertInputProps, omitActivationEventProps };
|
|
86
113
|
|
|
87
114
|
//# sourceMappingURL=disabledProps.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disabledProps.js","names":["KeyboardEvent","SyntheticEvent","Props","FORM_CONTROL_TAGS","Set","ACTIVATION_EVENT_PROPS","const","preventActivation","event","preventDefault","preventKeyActivation","target","currentTarget","key","INERT_PROPS","onClick","onKeyDown","onKeyUp","EMPTY_PROPS","DisabledElementOptions","isDisabled","keepEvents","as","DisabledElementProps","isNativelyDisabled","isInert","inertProps","getDisabledElementProps","has","omitActivationEventProps","props","T","result","prop"],"sources":["../../../src/utils/react/disabledProps.ts"],"sourcesContent":["import type { KeyboardEvent, SyntheticEvent } from 'react';\nimport type { Props } from '../../props';\n\n/**\n * Tags where `disabled` is a real HTML attribute. Browsers refuse to dispatch\n * mouse events on those elements while the attribute is set, so nothing that\n * listens for hover — a tooltip trigger above all — ever hears from them.\n * On every other tag the attribute is invalid markup that does nothing.\n */\nconst FORM_CONTROL_TAGS = new Set([\n 'button',\n 'input',\n 'select',\n 'textarea',\n 'fieldset',\n 'option',\n 'optgroup',\n]);\n\n/**\n * Handlers that can activate an element. They are dropped while the element is\n * disabled through `aria-disabled` alone, so it stays as inert as a natively\n * disabled one.\n */\nconst ACTIVATION_EVENT_PROPS = [\n 'onClick',\n 'onDoubleClick',\n 'onMouseDown',\n 'onMouseUp',\n 'onPointerDown',\n 'onPointerUp',\n 'onTouchStart',\n 'onTouchEnd',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n] as const;\n\nfunction preventActivation(event: SyntheticEvent) {\n // Without the native attribute a click still runs the default action and\n // would submit the surrounding form or follow the link.\n event.preventDefault();\n}\n\nfunction preventKeyActivation(event: KeyboardEvent) {\n // Enter and Space on the focused element make the browser click it, and that\n // click would reach the ancestors' handlers. Keys from a focused descendant\n // are left alone.\n if (\n event.target === event.currentTarget &&\n (event.key === 'Enter' || event.key === ' ')\n ) {\n event.preventDefault();\n }\n}\n\nconst INERT_PROPS: Props = {\n 'aria-disabled': true,\n onClick: preventActivation,\n onKeyDown: preventKeyActivation,\n onKeyUp: preventKeyActivation,\n};\n\nconst EMPTY_PROPS: Props = {};\n\nexport interface DisabledElementOptions {\n /** Whether the component is disabled. */\n isDisabled?: boolean;\n /**\n * Whether the element has to keep receiving pointer and focus events while\n * disabled. Set it when the element hosts a tooltip: the tooltip is there to\n * explain why the element is unavailable, so hover has to reach it. Or when\n * it has to keep focus, as a loading action does while a keyboard press runs.\n */\n keepEvents?: boolean;\n /** The tag the component renders. */\n as?: string;\n}\n\nexport interface DisabledElementProps {\n /** Whether the element has to carry the native `disabled` attribute. */\n isNativelyDisabled: boolean;\n /**\n * Whether the element is disabled through `aria-disabled` only and therefore\n * has to be kept inert by hand: spread `inertProps` and drop the activation\n * handlers with `omitActivationEventProps`.\n */\n isInert: boolean;\n /** Props that mark the element disabled and inert. Spread them last. */\n inertProps: Props;\n}\n\n/**\n * Decides how the disabled state reaches the DOM.\n *\n * The native `disabled` attribute is the strongest option, but it also makes\n * the browser swallow the events the element needs to open a tooltip. When\n * such an element has to stay hoverable, it is marked `aria-disabled` instead\n * and kept inert by blocking activation — the outcome a user sees is the same,\n * except the tooltip now opens and screen readers still announce the state.\n */\nexport function getDisabledElementProps({\n isDisabled,\n keepEvents,\n as = 'div',\n}: DisabledElementOptions): DisabledElementProps {\n if (!isDisabled) {\n return {\n isNativelyDisabled: false,\n isInert: false,\n inertProps: EMPTY_PROPS,\n };\n }\n\n // The attribute only means something on form controls, and there it can be\n // kept whenever nothing depends on the element's events.\n if (FORM_CONTROL_TAGS.has(as) && !keepEvents) {\n return {\n isNativelyDisabled: true,\n isInert: false,\n inertProps: EMPTY_PROPS,\n };\n }\n\n return { isNativelyDisabled: false, isInert: true, inertProps: INERT_PROPS };\n}\n\n/**\n * Removes the handlers that would activate an element which is disabled\n * without the native attribute.\n */\nexport function omitActivationEventProps<T extends Props>(props: T): T {\n const result = { ...props };\n\n for (const prop of ACTIVATION_EVENT_PROPS) {\n delete result[prop];\n }\n\n return result;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"disabledProps.js","names":["mergeProps","ChangeEvent","KeyboardEvent","SyntheticEvent","Props","FORM_CONTROL_TAGS","Set","ACTIVATION_EVENT_PROPS","const","preventActivation","event","preventDefault","preventKeyActivation","target","currentTarget","key","INERT_PROPS","onClick","onKeyDown","onKeyUp","EMPTY_PROPS","DisabledElementOptions","isDisabled","keepEvents","as","DisabledElementProps","isNativelyDisabled","isInert","inertProps","getDisabledElementProps","has","omitActivationEventProps","props","T","result","prop","ignoreChange","stopPropagation","getInertInputProps","inputProps","excludeFromTabOrder","disabled","onChange","tabIndex"],"sources":["../../../src/utils/react/disabledProps.ts"],"sourcesContent":["import { mergeProps } from './mergeProps';\n\nimport type { ChangeEvent, KeyboardEvent, SyntheticEvent } from 'react';\nimport type { Props } from '../../props';\n\n/**\n * Tags where `disabled` is a real HTML attribute. Browsers refuse to dispatch\n * mouse events on those elements while the attribute is set, so nothing that\n * listens for hover — a tooltip trigger above all — ever hears from them.\n * On every other tag the attribute is invalid markup that does nothing.\n */\nconst FORM_CONTROL_TAGS = new Set([\n 'button',\n 'input',\n 'select',\n 'textarea',\n 'fieldset',\n 'option',\n 'optgroup',\n]);\n\n/**\n * Handlers that can activate an element. They are dropped while the element is\n * disabled through `aria-disabled` alone, so it stays as inert as a natively\n * disabled one.\n */\nconst ACTIVATION_EVENT_PROPS = [\n 'onClick',\n 'onDoubleClick',\n 'onMouseDown',\n 'onMouseUp',\n 'onPointerDown',\n 'onPointerUp',\n 'onTouchStart',\n 'onTouchEnd',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n] as const;\n\nfunction preventActivation(event: SyntheticEvent) {\n // Without the native attribute a click still runs the default action and\n // would submit the surrounding form or follow the link.\n event.preventDefault();\n}\n\nfunction preventKeyActivation(event: KeyboardEvent) {\n // Enter and Space on the focused element make the browser click it, and that\n // click would reach the ancestors' handlers. Keys from a focused descendant\n // are left alone.\n if (\n event.target === event.currentTarget &&\n (event.key === 'Enter' || event.key === ' ')\n ) {\n event.preventDefault();\n }\n}\n\nconst INERT_PROPS: Props = {\n 'aria-disabled': true,\n onClick: preventActivation,\n onKeyDown: preventKeyActivation,\n onKeyUp: preventKeyActivation,\n};\n\nconst EMPTY_PROPS: Props = {};\n\nexport interface DisabledElementOptions {\n /** Whether the component is disabled. */\n isDisabled?: boolean;\n /**\n * Whether the element has to keep receiving pointer and focus events while\n * disabled. Set it when the element hosts a tooltip: the tooltip is there to\n * explain why the element is unavailable, so hover has to reach it. Or when\n * it has to keep focus, as a loading action does while a keyboard press runs.\n */\n keepEvents?: boolean;\n /** The tag the component renders. */\n as?: string;\n}\n\nexport interface DisabledElementProps {\n /** Whether the element has to carry the native `disabled` attribute. */\n isNativelyDisabled: boolean;\n /**\n * Whether the element is disabled through `aria-disabled` only and therefore\n * has to be kept inert by hand: spread `inertProps` and drop the activation\n * handlers with `omitActivationEventProps`.\n */\n isInert: boolean;\n /** Props that mark the element disabled and inert. Spread them last. */\n inertProps: Props;\n}\n\n/**\n * Decides how the disabled state reaches the DOM.\n *\n * The native `disabled` attribute is the strongest option, but it also makes\n * the browser swallow the events the element needs to open a tooltip. When\n * such an element has to stay hoverable, it is marked `aria-disabled` instead\n * and kept inert by blocking activation — the outcome a user sees is the same,\n * except the tooltip now opens and screen readers still announce the state.\n */\nexport function getDisabledElementProps({\n isDisabled,\n keepEvents,\n as = 'div',\n}: DisabledElementOptions): DisabledElementProps {\n if (!isDisabled) {\n return {\n isNativelyDisabled: false,\n isInert: false,\n inertProps: EMPTY_PROPS,\n };\n }\n\n // The attribute only means something on form controls, and there it can be\n // kept whenever nothing depends on the element's events.\n if (FORM_CONTROL_TAGS.has(as) && !keepEvents) {\n return {\n isNativelyDisabled: true,\n isInert: false,\n inertProps: EMPTY_PROPS,\n };\n }\n\n return { isNativelyDisabled: false, isInert: true, inertProps: INERT_PROPS };\n}\n\n/**\n * Removes the handlers that would activate an element which is disabled\n * without the native attribute.\n */\nexport function omitActivationEventProps<T extends Props>(props: T): T {\n const result = { ...props };\n\n for (const prop of ACTIVATION_EVENT_PROPS) {\n delete result[prop];\n }\n\n return result;\n}\n\n/**\n * React reports a click on an inert checkbox or radio as a change: the browser\n * toggles it before the click is cancelled. Kept as a handler rather than\n * dropped, or React would warn about a `checked` input without one.\n */\nfunction ignoreChange(event: ChangeEvent) {\n event.stopPropagation();\n}\n\n/**\n * Turns the props React Aria gives a disabled checkbox, switch or radio\n * `<input>` into those of an inert one (`isInert` from\n * `getDisabledElementProps`): no native `disabled`, so it keeps its focus, and\n * nothing a click, `Space` or a change could toggle it with. A text input uses\n * it too, made read-only by its caller, so it fires no change to ignore.\n *\n * React Aria leaves `tabIndex` out of a disabled input's props, so a caller's\n * `excludeFromTabOrder` has to be passed again.\n */\nexport function getInertInputProps<T extends Props>(\n inputProps: T,\n { excludeFromTabOrder }: { excludeFromTabOrder?: boolean } = {},\n): T {\n return mergeProps(\n {\n ...omitActivationEventProps(inputProps),\n disabled: false,\n onChange: ignoreChange,\n ...(excludeFromTabOrder ? { tabIndex: -1 } : null),\n },\n INERT_PROPS,\n ) as T;\n}\n"],"mappings":";;;;;;;;;AAWA,MAAMK,oCAAoB,IAAIC,IAAI;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;AAAU,CACX;;;;;;AAOD,MAAMC,yBAAyB;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AAAY;AAGd,SAASE,kBAAkBC,OAAuB;CAGhDA,MAAMC,eAAe;AACvB;AAEA,SAASC,qBAAqBF,OAAsB;CAIlD,IACEA,MAAMG,WAAWH,MAAMI,kBACtBJ,MAAMK,QAAQ,WAAWL,MAAMK,QAAQ,MAExCL,MAAMC,eAAe;AAEzB;AAEA,MAAMK,cAAqB;CACzB,iBAAiB;CACjBC,SAASR;CACTS,WAAWN;CACXO,SAASP;AACX;AAEA,MAAMQ,cAAqB,CAAC;;;;;;;;;;AAsC5B,SAAgBS,wBAAwB,EACtCP,YACAC,YACAC,KAAK,SAC0C;CAC/C,IAAI,CAACF,YACH,OAAO;EACLI,oBAAoB;EACpBC,SAAS;EACTC,YAAYR;CACd;CAKF,IAAIf,kBAAkByB,IAAIN,EAAE,KAAK,CAACD,YAChC,OAAO;EACLG,oBAAoB;EACpBC,SAAS;EACTC,YAAYR;CACd;CAGF,OAAO;EAAEM,oBAAoB;EAAOC,SAAS;EAAMC,YAAYZ;CAAY;AAC7E;;;;;AAMA,SAAgBe,yBAA0CC,OAAa;CACrE,MAAME,SAAS,EAAE,GAAGF,MAAM;CAE1B,KAAK,MAAMG,QAAQ5B,wBACjB,OAAO2B,OAAOC;CAGhB,OAAOD;AACT;;;;;;AAOA,SAASE,aAAa1B,OAAoB;CACxCA,MAAM2B,gBAAgB;AACxB;;;;;;;;;;;AAYA,SAAgBC,mBACdC,YACA,EAAEC,wBAA2D,CAAC,GAC3D;CACH,OAAOxC,WACL;EACE,GAAG+B,yBAAyBQ,UAAU;EACtCE,UAAU;EACVC,UAAUN;EACV,GAAII,sBAAsB,EAAEG,UAAU,GAAG,IAAI;CAC/C,GACA3B,WACF;AACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
2
2
|
import { chain } from "./chain.js";
|
|
3
3
|
import { useLayoutEffect } from "./useLayoutEffect.js";
|
|
4
4
|
import { mergeProps } from "./mergeProps.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { useRef, useState } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
2
2
|
//#region src/utils/react/nullableValue.ts
|
|
3
3
|
function castNullableStringValue(props, emptyValue = "") {
|
|
4
4
|
return castNullableField(props, ["value", "defaultValue"], "string", (v) => String(v), emptyValue);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
2
2
|
//#region src/utils/react/overlayKeyPropagation.ts
|
|
3
3
|
/**
|
|
4
4
|
* Keys whose final handling belongs to the overlay around a control, not to
|
|
@@ -20,11 +20,9 @@ const OVERLAY_KEYS = /* @__PURE__ */ new Set(["Escape", "Tab"]);
|
|
|
20
20
|
* is opposite between them:
|
|
21
21
|
*
|
|
22
22
|
* - Wrapped by `useKeyboard`, the event is augmented and propagation is
|
|
23
|
-
* stopped
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* releasing later keys until a render replaced the handler. Re-asserting the
|
|
27
|
-
* default here is what keeps the opt-out from outliving its own event.
|
|
23
|
+
* stopped after the handler unless it opts out, decided per event. A
|
|
24
|
+
* handler that already opted out keeps every key except `Escape` and `Tab`
|
|
25
|
+
* contained here all the same, by re-asserting the stop.
|
|
28
26
|
* - Spread straight onto an element, the event is an ordinary React one and
|
|
29
27
|
* propagation is the default, so containment is what has to be asked for.
|
|
30
28
|
*
|
|
@@ -40,7 +38,46 @@ function allowOverlayKeysToPropagate(event) {
|
|
|
40
38
|
}
|
|
41
39
|
if (!isOverlayKey) event.stopPropagation();
|
|
42
40
|
}
|
|
41
|
+
/**
|
|
42
|
+
* Where `Escape` and `Tab` go from a field a user types into, once the field
|
|
43
|
+
* and its caller's `onKeyDown` have both seen the key: a prevented one stops
|
|
44
|
+
* at the field, any other goes on to the overlay around it. Other keys are
|
|
45
|
+
* left as they are.
|
|
46
|
+
*
|
|
47
|
+
* Prevention is the signal because that is how the overlay reads it too: a
|
|
48
|
+
* Dialog stays open on a prevented `Escape` (`useOverlayEscapeGuard`). React
|
|
49
|
+
* Aria's `FocusScope` does not: it moves focus on every `Tab` that reaches it
|
|
50
|
+
* and ignores `defaultPrevented`, so a `Tab` a field or caller takes over has
|
|
51
|
+
* to stop here or focus moves anyway.
|
|
52
|
+
*
|
|
53
|
+
* Shape-aware like `allowOverlayKeysToPropagate`: an event wrapped by
|
|
54
|
+
* `useKeyboard` stops unless released, a plain one travels unless stopped.
|
|
55
|
+
* A key an IME is composing with is left as it is: it cancels or confirms
|
|
56
|
+
* the composition, and the overlay ignores it anyway. That is `isComposing`
|
|
57
|
+
* alone. The key Safari fires as a composition ends (`keyCode` 229,
|
|
58
|
+
* `isComposing` false) is an ordinary key to the overlay, so it follows the
|
|
59
|
+
* rule too, even in a field that skips it for its own key handling.
|
|
60
|
+
*/
|
|
61
|
+
function settleOverlayKey(event) {
|
|
62
|
+
if (!OVERLAY_KEYS.has(event.key) || event.nativeEvent.isComposing) return;
|
|
63
|
+
const isAugmented = typeof event.continuePropagation === "function";
|
|
64
|
+
if (!event.isDefaultPrevented()) {
|
|
65
|
+
if (isAugmented) event.continuePropagation();
|
|
66
|
+
} else if (!isAugmented || event.isPropagationStopped?.() === false) event.stopPropagation();
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* A text field's `onKeyDown`, followed by `settleOverlayKey`. Without a
|
|
70
|
+
* handler there is nothing to wrap: React Aria then leaves every key to
|
|
71
|
+
* propagate, `Escape` and `Tab` included.
|
|
72
|
+
*/
|
|
73
|
+
function withOverlayKeys(onKeyDown) {
|
|
74
|
+
if (!onKeyDown) return void 0;
|
|
75
|
+
return (event) => {
|
|
76
|
+
onKeyDown(event);
|
|
77
|
+
settleOverlayKey(event);
|
|
78
|
+
};
|
|
79
|
+
}
|
|
43
80
|
//#endregion
|
|
44
|
-
export { allowOverlayKeysToPropagate };
|
|
81
|
+
export { OVERLAY_KEYS, allowOverlayKeysToPropagate, settleOverlayKey, withOverlayKeys };
|
|
45
82
|
|
|
46
83
|
//# sourceMappingURL=overlayKeyPropagation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"overlayKeyPropagation.js","names":["KeyboardEvent","MaybeAugmentedKeyboardEvent","continuePropagation","isPropagationStopped","OVERLAY_KEYS","Set","allowOverlayKeysToPropagate","event","isOverlayKey","has","key","stopPropagation"],"sources":["../../../src/utils/react/overlayKeyPropagation.ts"],"sourcesContent":["import type { KeyboardEvent } from 'react';\n\n/**\n * A key event as it reaches a handler that may or may not have been wrapped by\n * React Aria's `useKeyboard`.\n */\ntype MaybeAugmentedKeyboardEvent = KeyboardEvent<any> & {\n continuePropagation?: () => void;\n isPropagationStopped?: () => boolean;\n};\n\n/**\n * Keys whose final handling belongs to the overlay around a control, not to\n * the control. `Escape` dismisses it (CUB-4839). `Tab` is how its `FocusScope`\n * keeps focus inside: React Aria contains focus from a `keydown` listener on\n * the document, so a `Tab` held here left a Dialog's first or last control\n * unable to wrap (CUB-5603).\n */\
|
|
1
|
+
{"version":3,"file":"overlayKeyPropagation.js","names":["KeyboardEvent","MaybeAugmentedKeyboardEvent","continuePropagation","isPropagationStopped","OVERLAY_KEYS","Set","allowOverlayKeysToPropagate","event","isOverlayKey","has","key","stopPropagation","settleOverlayKey","nativeEvent","isComposing","isAugmented","isDefaultPrevented","withOverlayKeys","onKeyDown","E","undefined"],"sources":["../../../src/utils/react/overlayKeyPropagation.ts"],"sourcesContent":["import type { KeyboardEvent } from 'react';\n\n/**\n * A key event as it reaches a handler that may or may not have been wrapped by\n * React Aria's `useKeyboard`.\n */\ntype MaybeAugmentedKeyboardEvent = KeyboardEvent<any> & {\n continuePropagation?: () => void;\n isPropagationStopped?: () => boolean;\n};\n\n/**\n * Keys whose final handling belongs to the overlay around a control, not to\n * the control. `Escape` dismisses it (CUB-4839). `Tab` is how its `FocusScope`\n * keeps focus inside: React Aria contains focus from a `keydown` listener on\n * the document, so a `Tab` held here left a Dialog's first or last control\n * unable to wrap (CUB-5603).\n */\nexport const OVERLAY_KEYS = new Set(['Escape', 'Tab']);\n\n/**\n * Let `Escape` and `Tab` keep travelling out of a trigger or list, and hold\n * every other key exactly as before.\n *\n * Every other key stays contained: releasing them too would let `Enter` and\n * typeahead reach ancestor shortcuts and form submits, which callers have\n * always had held here.\n *\n * Shape-aware because the same `onKeyDown` is reached two ways and the DEFAULT\n * is opposite between them:\n *\n * - Wrapped by `useKeyboard`, the event is augmented and propagation is\n * stopped after the handler unless it opts out, decided per event. A\n * handler that already opted out keeps every key except `Escape` and `Tab`\n * contained here all the same, by re-asserting the stop.\n * - Spread straight onto an element, the event is an ordinary React one and\n * propagation is the default, so containment is what has to be asked for.\n *\n * Getting this backwards is silent in one direction and loud in the other:\n * calling `stopPropagation()` on a plain event really does stop it.\n */\nexport function allowOverlayKeysToPropagate(\n event: MaybeAugmentedKeyboardEvent,\n) {\n const isOverlayKey = OVERLAY_KEYS.has(event.key);\n\n if (typeof event.continuePropagation === 'function') {\n if (isOverlayKey) {\n event.continuePropagation();\n } else if (event.isPropagationStopped?.() === false) {\n // Only ever called when the flag is already clear, which is the one case\n // `stopPropagation` does not warn about.\n event.stopPropagation();\n }\n\n return;\n }\n\n if (!isOverlayKey) event.stopPropagation();\n}\n\n/**\n * Where `Escape` and `Tab` go from a field a user types into, once the field\n * and its caller's `onKeyDown` have both seen the key: a prevented one stops\n * at the field, any other goes on to the overlay around it. Other keys are\n * left as they are.\n *\n * Prevention is the signal because that is how the overlay reads it too: a\n * Dialog stays open on a prevented `Escape` (`useOverlayEscapeGuard`). React\n * Aria's `FocusScope` does not: it moves focus on every `Tab` that reaches it\n * and ignores `defaultPrevented`, so a `Tab` a field or caller takes over has\n * to stop here or focus moves anyway.\n *\n * Shape-aware like `allowOverlayKeysToPropagate`: an event wrapped by\n * `useKeyboard` stops unless released, a plain one travels unless stopped.\n * A key an IME is composing with is left as it is: it cancels or confirms\n * the composition, and the overlay ignores it anyway. That is `isComposing`\n * alone. The key Safari fires as a composition ends (`keyCode` 229,\n * `isComposing` false) is an ordinary key to the overlay, so it follows the\n * rule too, even in a field that skips it for its own key handling.\n */\nexport function settleOverlayKey(event: MaybeAugmentedKeyboardEvent) {\n if (!OVERLAY_KEYS.has(event.key) || event.nativeEvent.isComposing) return;\n\n const isAugmented = typeof event.continuePropagation === 'function';\n\n if (!event.isDefaultPrevented()) {\n if (isAugmented) event.continuePropagation!();\n } else if (!isAugmented || event.isPropagationStopped?.() === false) {\n // Only when the flag is clear, the one case `stopPropagation` does not\n // warn about on a wrapped event.\n event.stopPropagation();\n }\n}\n\n/**\n * A text field's `onKeyDown`, followed by `settleOverlayKey`. Without a\n * handler there is nothing to wrap: React Aria then leaves every key to\n * propagate, `Escape` and `Tab` included.\n */\nexport function withOverlayKeys<E extends MaybeAugmentedKeyboardEvent>(\n onKeyDown: ((event: E) => void) | undefined,\n) {\n if (!onKeyDown) return undefined;\n\n return (event: E) => {\n onKeyDown(event);\n settleOverlayKey(event);\n };\n}\n"],"mappings":";;;;;;;;;AAkBA,MAAaI,+BAAe,IAAIC,IAAI,CAAC,UAAU,KAAK,CAAC;;;;;;;;;;;;;;;;;;;;;;AAuBrD,SAAgBC,4BACdC,OACA;CACA,MAAMC,eAAeJ,aAAaK,IAAIF,MAAMG,GAAG;CAE/C,IAAI,OAAOH,MAAML,wBAAwB,YAAY;EACnD,IAAIM,cACFD,MAAML,oBAAoB;OACrB,IAAIK,MAAMJ,uBAAuB,MAAM,OAG5CI,MAAMI,gBAAgB;EAGxB;CACF;CAEA,IAAI,CAACH,cAAcD,MAAMI,gBAAgB;AAC3C;;;;;;;;;;;;;;;;;;;;;AAsBA,SAAgBC,iBAAiBL,OAAoC;CACnE,IAAI,CAACH,aAAaK,IAAIF,MAAMG,GAAG,KAAKH,MAAMM,YAAYC,aAAa;CAEnE,MAAMC,cAAc,OAAOR,MAAML,wBAAwB;CAEzD,IAAI,CAACK,MAAMS,mBAAmB,GACxBD;MAAAA,aAAaR,MAAML,oBAAqB;CAAA,OACvC,IAAI,CAACa,eAAeR,MAAMJ,uBAAuB,MAAM,OAG5DI,MAAMI,gBAAgB;AAE1B;;;;;;AAOA,SAAgBM,gBACdC,WACA;CACA,IAAI,CAACA,WAAW,OAAOE,KAAAA;CAEvB,QAAQb,UAAa;EACnBW,UAAUX,KAAK;EACfK,iBAAiBL,KAAK;CACxB;AACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../_internal/hooks/use-event.js";
|
|
3
3
|
import { isDevEnv } from "../is-dev-env.js";
|
|
4
4
|
import { c } from "react/compiler-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
|
|
3
3
|
import { useCallback, useRef, useState } from "react";
|
|
4
4
|
//#region src/utils/react/useBufferedValue.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
2
2
|
import { c } from "react/compiler-runtime";
|
|
3
3
|
import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef } from "react";
|
|
4
4
|
//#region src/utils/react/useEventBus.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
|
|
3
3
|
import "react/compiler-runtime";
|
|
4
4
|
import { useEffect, useRef, useState } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
2
2
|
import * as React$1 from "react";
|
|
3
3
|
//#region src/utils/react/useLayoutEffect.tsx
|
|
4
4
|
const useLayoutEffect$1 = typeof window !== "undefined" ? React$1.useLayoutEffect : React$1.useEffect;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../_internal/hooks/use-event.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { useSyncExternalStore } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
2
2
|
import { useEvent } from "../../_internal/hooks/use-event.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { getEventTarget, nodeContains } from "@react-aria/utils";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
2
2
|
import { EventBusContext, useEventBus } from "./useEventBus.js";
|
|
3
3
|
import { c } from "react/compiler-runtime";
|
|
4
4
|
import { useContext, useEffect, useEffectEvent, useRef } from "react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
2
2
|
import { Fragment, isValidElement } from "react";
|
|
3
3
|
//#region src/utils/react/wrapNodeIfPlain.ts
|
|
4
4
|
function wrapNodeIfPlain(children, render) {
|
package/dist/utils/selection.js
CHANGED
package/dist/utils/styles.js
CHANGED
package/dist/utils/tree.js
CHANGED
package/dist/utils/warnings.js
CHANGED
package/dist/version.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
|
|
2
2
|
//#region src/version.ts
|
|
3
|
-
const VERSION = "0.
|
|
4
|
-
const TASTY_VERSION = "3.
|
|
3
|
+
const VERSION = "0.202.0";
|
|
4
|
+
const TASTY_VERSION = "3.15.0";
|
|
5
5
|
if (typeof window !== "undefined") {
|
|
6
6
|
const version = VERSION;
|
|
7
7
|
const tastyVersion = TASTY_VERSION;
|
package/docs/CreateComponent.md
CHANGED
|
@@ -429,7 +429,7 @@ export function Action(
|
|
|
429
429
|
|
|
430
430
|
## Form Integration
|
|
431
431
|
|
|
432
|
-
Call `wrapWithField(control, props)` consistently: it renders the field chrome when the field has something to show, and `isBare` decides when set. Attach the field's ref to the control's own root, as the `Action` above does; the chrome takes none, so the ref reaches the control with or without it, and `labelRef` reaches the label. `useFieldProps` works out whether a field without a label needs the chrome, and asks for it with `isBare={false}`; a control that shows messages of its own asks the same way after it, with `isBare: props.isBare ?? false`, as `TagInput` does. A control that shows the errors of its `validate` passes `showsValidateErrors: true` to `useFieldProps`, so a `validate` asks too. Never infer presentation from message content. Pass React Aria's label props to the wrapper so a supplied label remains associated with the control in both modes. Inner controls whose parent owns the field chrome should receive `isBare` to avoid nested fields, written after any spread of the parent's resolved props, which can carry `isBare={false}`.
|
|
432
|
+
Call `wrapWithField(control, props)` consistently: it renders the field chrome when the field has something to show, and `isBare` decides when set. Attach the field's ref to the control's own root, as the `Action` above does; the chrome takes none, so the ref reaches the control with or without it, and `labelRef` reaches the label. `useFieldProps` works out whether a field without a label needs the chrome, and asks for it with `isBare={false}`; a control that shows messages of its own asks the same way after it, with `isBare: props.isBare ?? false`, as `TagInput` does. A control that shows the errors of its `validate` passes `showsValidateErrors: true` to `useFieldProps`, so a `validate` asks too. Never infer presentation from message content. Pass React Aria's label props to the wrapper so a supplied label remains associated with the control in both modes. Inner controls whose parent owns the field chrome should receive `isBare` to avoid nested fields, written after any spread of the parent's resolved props, which can carry `isBare={false}`. An input's style props are `FieldLayoutStyleProps` and go to its outer element: route them with `splitFieldLayout`, put its `styles` on the control and pass `{ ...props, ...field }` to `wrapWithField`.
|
|
433
433
|
|
|
434
434
|
For input components that need to integrate with forms, see the [Field documentation](./components/form/Field.md) for comprehensive guidance on:
|
|
435
435
|
|
package/docs/FieldProperties.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
All input components in UI Kit (`TextInput`, `Select`, `ComboBox`, `Checkbox`, `RadioGroup`, `NumberInput`, `Switch`, `DatePicker`, `Slider`, `FileInput`, etc.) share a common set of field properties. These properties are provided by the `FieldBaseProps` interface and enable form integration, validation, labeling, and state management.
|
|
4
4
|
|
|
5
|
-
When used inside a [Form](./components/form/Form.md), these properties are automatically inherited from the form context and can be overridden at the field level.
|
|
5
|
+
When used inside a [Form](./components/form/Form.md), these properties are automatically inherited from the form context and can be overridden at the field level. For the state a form passes down (`isDisabled`, `isReadOnly`, `isInvalid` and `isValid`), a field prop set to `undefined` counts as not set, so a wrapper that passes an optional `isDisabled` through keeps the form's state.
|
|
6
6
|
|
|
7
7
|
For modern forms, follow the [use-case guide](./components/form/ModernForm.md). Bind with `name` and put validation options on the input, or choose `field={form.field(path, options)}` for model-aware type checking and validator inference. Keep presentation props on the input. These binding styles are alternatives; descriptors are not required for nested data.
|
|
8
8
|
|
|
@@ -22,10 +22,10 @@ For modern forms, follow the [use-case guide](./components/form/ModernForm.md).
|
|
|
22
22
|
- **`label`** `ReactNode` — Label text displayed above or beside the input.
|
|
23
23
|
- **`labelPosition`** `'top' | 'side' | 'split'` (default: `top`) — Position of the label relative to the input. Side and split layouts reserve a label column only when a label is present.
|
|
24
24
|
- **`description`** `ReactNode` — Help text. It appears below a top label or the control when there is no visible label, and beside the control with a side or split label. It remains independent of the error message.
|
|
25
|
-
- **`isBare`** `boolean` — Render the control without field layout, description or message text. A supplied `label` remains as a visually hidden accessible label; label tooltips, suffixes and extra content are omitted. Form binding, invalid state and control styles still apply. Use this for an inline control that would otherwise show its chrome but has no room for it, or when a parent already renders that chrome. Provide `aria-describedby` when the error is explained elsewhere. Unset, a field renders its chrome when there is something to show: a non-empty `label`, a form binding, or a `description`, `errorMessage`, `message`, `fieldStyles`, `fieldProps` or `isHidden` prop, whatever it holds. On `TextInput`, `TextArea`, `PasswordInput` and `NumberInput`, which show the errors of a `validate`, that prop counts too. Otherwise it renders only the control. `TagInput` always has something to show: its refusal messages. Pass `isBare={false}` to render the chrome anyway.
|
|
25
|
+
- **`isBare`** `boolean` — Render the control without field layout, description or message text. A supplied `label` remains as a visually hidden accessible label; label tooltips, suffixes and extra content are omitted. Form binding, invalid state and control styles still apply. Use this for an inline control that would otherwise show its chrome but has no room for it, or when a parent already renders that chrome. Provide `aria-describedby` when the error is explained elsewhere. Unset, a field renders its chrome when there is something to show: a non-empty `label`, a form binding, or a `description`, `errorMessage`, `message`, `fieldStyles`, `fieldProps` or `isHidden` prop, whatever it holds. On `TextInput`, `TextArea`, `PasswordInput` and `NumberInput`, which show the errors of a `validate`, that prop counts too. Otherwise it renders only the control. `TagInput` always has something to show: its refusal messages. Pass `isBare={false}` to render the chrome anyway. Style props size whichever element is outermost, so adding a label never changes where they apply; see _Field sizing and alignment_.
|
|
26
26
|
- **`forceField`** `boolean` — **Deprecated.** Use `isBare={false}`. Renders the chrome even with nothing to show; an explicit `isBare` wins.
|
|
27
27
|
- **`extra`** `ReactNode` — Additional content displayed next to the label.
|
|
28
|
-
- **`labelTooltip`** `ReactNode` — Content of an info badge shown next to the label. Only rendered when the field has a label. (Formerly `tooltip`. On most fields `tooltip` is gone; on `Select`
|
|
28
|
+
- **`labelTooltip`** `ReactNode` — Content of an info badge shown next to the label. Only rendered when the field has a label. (Formerly `tooltip`. On most fields `tooltip` is gone; on `Select`, `Picker`, `FilterPicker`, `ColorPicker`, `Checkbox`, `Switch` and the text inputs (`TextInput`, `TextArea`, `PasswordInput`, `SearchInput`, `NumberInput`, `CommandTextArea`) it is the control's own tooltip, as on `Item` and `Button`.)
|
|
29
29
|
- **`labelSuffix`** `ReactNode` — Content displayed after the label text.
|
|
30
30
|
- **`labelProps`** `object` — Additional HTML props passed to the label element.
|
|
31
31
|
- **`labelStyles`** `Styles` — Tasty styles for the label element.
|
|
@@ -51,12 +51,22 @@ The field wrapper stays in place when a description or message appears or disapp
|
|
|
51
51
|
|
|
52
52
|
### Field sizing and alignment
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
An input's style props (`width`, `height`, `flex*`, `gridArea`, `margin`, `inset`, `position`, …) place and size its outer element: the field wrapper when it renders, the input itself otherwise. Adding a label never changes where they apply. When they size a wrapped field, the input stretches to fill it as it would in a grid cell of that size. Inputs with a fixed or capped size keep it: `Checkbox` and `Switch` their content width, single-line inputs and a vertical `Slider` their height. A side label's column is part of the width, and a split label keeps the input at its content width.
|
|
55
|
+
|
|
56
|
+
`styles` always styles the input and `fieldStyles` always styles the wrapper. To size them apart, use a style prop for the field and `styles` for the input:
|
|
55
57
|
|
|
56
58
|
```jsx
|
|
57
|
-
|
|
59
|
+
// The field is 40x wide, label column included; the input fills it.
|
|
60
|
+
<TextInput label="Name" labelPosition="side" width="40x" />
|
|
61
|
+
|
|
62
|
+
// The field is 40x wide; the input inside it stays 20x.
|
|
63
|
+
<TextInput label="Name" width="40x" styles={{ width: '20x' }} />
|
|
58
64
|
```
|
|
59
65
|
|
|
66
|
+
A style prop wins over `fieldStyles` for the same key. `fieldStyles` keeps working for everything else, but it never makes the input fill the field. Field-level inputs take only these style props; restyle the input through `styles` and its part props (`inputStyles`, `triggerStyles`, …).
|
|
67
|
+
|
|
68
|
+
A state map on a style prop resolves against the element it lands on, which is the wrapper on a labelled field. Use media, container or root states there, not the input's own states such as `focused`. `className`, `style`, `qa` and `ref` never move to the wrapper.
|
|
69
|
+
|
|
60
70
|
Fields without labels no longer reserve an empty side or split label column. If a row should intentionally align with neighbouring side labels, add `fieldStyles={{ padding: '$full-label-width left' }}`. For a nameless legacy `Form.Item`, put that padding on the item's `styles` instead; it owns the wrapper. Remove deprecated `forceField` when migrating these rows.
|
|
61
71
|
|
|
62
72
|
## Necessity Indicators
|
|
@@ -89,7 +99,7 @@ Fields without labels no longer reserve an empty side or split label column. If
|
|
|
89
99
|
|
|
90
100
|
## State
|
|
91
101
|
|
|
92
|
-
- **`isDisabled`** `boolean` (default: `false`) — Whether the field is disabled and non-interactive. A field also takes it from an enclosing `<Provider isDisabled>` or `<Form isDisabled
|
|
102
|
+
- **`isDisabled`** `boolean` (default: `false`) — Whether the field is disabled and non-interactive. A field also takes it from an enclosing `<Provider isDisabled>` or `<Form isDisabled>`, including when its own `isDisabled` is `undefined`. Buttons don't, apart from `Form.Submit` and `Form.Reset`: see [Button](./components/actions/Button.md).
|
|
93
103
|
- **`isReadOnly`** `boolean` (default: `false`) — Whether the field can be focused but not changed.
|
|
94
104
|
- **`isLoading`** `boolean` (default: `false`) — Whether the field shows its loading spinner. `Select`, `Picker`, `FilterPicker`, `ColorPicker` and a button-type `Radio` also disable while loading; other fields stay interactive, and fields without a spinner, such as `Checkbox`, `RadioGroup`, `ListBox` or `Slider`, ignore it.
|
|
95
105
|
- **`isHidden`** `boolean` (default: `false`) — Whether the field is hidden.
|
|
@@ -113,7 +123,7 @@ Fields without labels no longer reserve an empty side or split label column. If
|
|
|
113
123
|
|
|
114
124
|
## Styling
|
|
115
125
|
|
|
116
|
-
- **`fieldStyles`** `Styles` — Tasty styles for the field wrapper.
|
|
126
|
+
- **`fieldStyles`** `Styles` — Tasty styles for the field wrapper. A style prop for the same key wins over it.
|
|
117
127
|
- **`messageStyles`** `Styles` — Tasty styles for the message/error text.
|
|
118
128
|
|
|
119
129
|
## Validation Rules
|
package/docs/Usage.md
CHANGED
|
@@ -415,6 +415,8 @@ The package's `tasty.config.ts` lists the other components as `protectedComponen
|
|
|
415
415
|
- style props other than the ones that place or size the component (`width`, `height`, `gridArea`, `margin`, `inset`, …). Containers (`Card`, `Panel`, `ResizablePanel`, `Content`, `Header`, `Footer`, and `Layout` and `GridLayout` with their sub-components) also keep the ones that lay out their content: `padding`, `gap`, `flow`, `place*`, `align*`, `justify*`, `grid*`, `overflow` and `scrollbar`. Root `styles` that sets only allowed props passes too;
|
|
416
416
|
- `tasty()` wrappers that restyle a protected component, and wrappers of those wrappers.
|
|
417
417
|
|
|
418
|
+
On an input, the style props that place or size it act on its outer element: the field wrapper when it renders (see [Field properties](./FieldProperties.md)), the input itself otherwise. Its `styles` always style the input, so a root `styles` that only sizes it passes the rule but sizes the input inside the field, not the field. Input components take no other style props.
|
|
419
|
+
|
|
418
420
|
A component's own prop that shares a name with a style passes, such as a field's `direction` and `filter`, a text field's `resize`, `ColorSwatch`'s `color` or `AlertDialog`'s `content`.
|
|
419
421
|
|
|
420
422
|
A sub-component counts as the component it hangs off, so `Button.Split` is protected like `Button`, and `Layout.Content` is a container like `Layout`. The list names the exceptions, such as `Button.Group`.
|
|
@@ -465,6 +467,7 @@ These are data-attribute modifiers used in component style maps (via the `mods`
|
|
|
465
467
|
| Modifier | Description |
|
|
466
468
|
| --- | --- |
|
|
467
469
|
| `disabled` | Disabled state |
|
|
470
|
+
| `readonly` | Read-only state: the value shows but cannot change |
|
|
468
471
|
| `hovered` | Hover state |
|
|
469
472
|
| `focused` | Focus state |
|
|
470
473
|
| `pressed` | Active/pressed state |
|