@cube-dev/ui-kit 0.201.0 → 0.203.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 +56 -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.js +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 +233 -178
- 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/index.d.ts +2 -2
- package/dist/components/data/ItemTable/item-table-sections.js +68 -0
- package/dist/components/data/ItemTable/item-table-sections.js.map +1 -0
- package/dist/components/data/ItemTable/types.d.ts +12 -0
- 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 +31 -27
- package/dist/components/data/ItemTable/use-item-table-selection.js.map +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 +1 -1
- package/dist/components/data/TableBase/TableView.d.ts +1 -0
- package/dist/components/data/TableBase/TableView.js +86 -21
- 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 +25 -1
- package/dist/components/data/TableBase/styled.js.map +1 -1
- package/dist/components/data/TableBase/table-body-sections.d.ts +3 -0
- package/dist/components/data/TableBase/table-body-sections.js +30 -0
- package/dist/components/data/TableBase/table-body-sections.js.map +1 -0
- package/dist/components/data/TableBase/table-tree.js +1 -1
- package/dist/components/data/TableBase/types.js +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/data/index.d.ts +2 -2
- 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 +7 -5
- package/dist/components/fields/ComboBox/ComboBox.js +704 -639
- 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 +6 -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 +84 -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 +116 -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 +288 -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 -6
- 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 +71 -100
- 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 +40 -21
- package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +52 -37
- package/dist/components/fields/NumberInput/StepButton.js.map +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 -3
- 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 +25 -4
- package/dist/components/fields/TextInput/TextInputBase.js +214 -106
- 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 +20 -0
- package/dist/components/form/field-layout.js +114 -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 +7 -3
- package/dist/components/navigation/Tabs/Tabs.js.map +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 +18 -18
- 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 +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +25 -1
- package/dist/eslint-plugin/defaults.generated.js.map +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 +5 -4
- 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 +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 +2 -2
- package/docs/CreateComponent.md +1 -1
- package/docs/FieldProperties.md +29 -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 +25 -0
- 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 +9 -7
- package/docs/components/fields/CommandTextArea.md +4 -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 -3
- package/docs/components/fields/ListBox.md +0 -3
- package/docs/components/fields/NumberInput.md +9 -6
- package/docs/components/fields/PasswordInput.md +9 -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 +16 -4
- package/docs/components/fields/Select.md +0 -3
- package/docs/components/fields/Slider.md +0 -2
- package/docs/components/fields/Switch.md +16 -3
- package/docs/components/fields/TagInput.md +3 -6
- package/docs/components/fields/TextArea.md +10 -8
- package/docs/components/fields/TextInput.md +52 -10
- package/docs/components/navigation/Tabs.md +47 -0
- package/docs/components/overlays/Tooltip.md +1 -1
- package/package.json +4 -2
- 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,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.203.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.203.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.203.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.203.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.203.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.203.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.203.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.203.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.203.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.203.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,6 +1,6 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.203.0 | Cube Dev Team */
|
|
2
2
|
//#region src/version.ts
|
|
3
|
-
const VERSION = "0.
|
|
3
|
+
const VERSION = "0.203.0";
|
|
4
4
|
const TASTY_VERSION = "3.15.0";
|
|
5
5
|
if (typeof window !== "undefined") {
|
|
6
6
|
const version = 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,33 @@ 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
|
+
`width` is the space an input takes in the layout, label included. `controlWidth` is the control's own width: it sizes the element `width` sizes when the input renders bare, in every label position. On a bare input, with no label, description or form binding, the two reach the same element, so use `width` there; `controlWidth` wins when both are set. Beside a side label, `controlWidth` sizes the control alone, fixed, capped or following its value, however long the label is in a given language:
|
|
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 select is 100px wide beside its label.
|
|
63
|
+
<Select label="Limit" labelPosition="side" controlWidth="100px">…</Select>
|
|
64
|
+
|
|
65
|
+
// The select fills the space beside its label, up to 30x.
|
|
66
|
+
<Select label="Compare with" labelPosition="side" controlWidth="max 30x">…</Select>
|
|
67
|
+
|
|
68
|
+
// The select follows its value, up to 30x.
|
|
69
|
+
<Select label="Compare with" labelPosition="side" controlWidth="initial max-content 30x">…</Select>
|
|
70
|
+
|
|
71
|
+
// The field is 40x wide; the input inside it stays 20x.
|
|
72
|
+
<TextInput label="Name" width="40x" controlWidth="20x" />
|
|
58
73
|
```
|
|
59
74
|
|
|
75
|
+
In a `Form`, a side label's column is the Form's `labelWidth` (25x by default) plus 1x, so the control starts `labelWidth` + 1x from the field's edge and is `controlWidth` wide. `controlWidth` wins over `styles.width`. `styles` always styles the input and `fieldStyles` always styles the wrapper: keep `styles` for restyling the input itself.
|
|
76
|
+
|
|
77
|
+
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 and `controlWidth`; restyle the input through `styles` and its part props (`inputStyles`, `triggerStyles`, …).
|
|
78
|
+
|
|
79
|
+
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`. A state map on `controlWidth` resolves against the control. `className`, `style`, `qa` and `ref` never move to the wrapper.
|
|
80
|
+
|
|
60
81
|
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
82
|
|
|
62
83
|
## Necessity Indicators
|
|
@@ -89,7 +110,7 @@ Fields without labels no longer reserve an empty side or split label column. If
|
|
|
89
110
|
|
|
90
111
|
## State
|
|
91
112
|
|
|
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
|
|
113
|
+
- **`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
114
|
- **`isReadOnly`** `boolean` (default: `false`) — Whether the field can be focused but not changed.
|
|
94
115
|
- **`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
116
|
- **`isHidden`** `boolean` (default: `false`) — Whether the field is hidden.
|
|
@@ -113,7 +134,8 @@ Fields without labels no longer reserve an empty side or split label column. If
|
|
|
113
134
|
|
|
114
135
|
## Styling
|
|
115
136
|
|
|
116
|
-
- **`
|
|
137
|
+
- **`controlWidth`** `Styles['width']` — The control's own width, in every label position: the element `width` sizes when the input renders bare. Beside a side label it sizes the control alone. It wins over `width` on a bare input and over `styles.width`; see _Field sizing and alignment_.
|
|
138
|
+
- **`fieldStyles`** `Styles` — Tasty styles for the field wrapper. A style prop for the same key wins over it.
|
|
117
139
|
- **`messageStyles`** `Styles` — Tasty styles for the message/error text.
|
|
118
140
|
|
|
119
141
|
## 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. To size the input alone, beside a side label for example, use its `controlWidth` prop. 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 |
|
|
@@ -1,28 +1,44 @@
|
|
|
1
1
|
# Divider
|
|
2
2
|
|
|
3
|
-
A
|
|
3
|
+
A line that separates content. It is horizontal by default and vertical with `orientation="vertical"`, and it can show text, such as "or", between two lines. Built on React Aria's `useSeparator`.
|
|
4
4
|
|
|
5
5
|
## When to Use
|
|
6
6
|
|
|
7
7
|
- Separating sections of content
|
|
8
|
-
-
|
|
9
|
-
- "Or" or
|
|
8
|
+
- Separating the items of a toolbar or an action row (vertical)
|
|
9
|
+
- "Or" or another label between two blocks of content
|
|
10
10
|
|
|
11
|
-
##
|
|
11
|
+
## Component
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
---
|
|
14
14
|
|
|
15
|
-
###
|
|
15
|
+
### Properties
|
|
16
16
|
|
|
17
|
-
- `
|
|
18
|
-
- `
|
|
19
|
-
- `fill` — `#border` (switches to `none` when text is present)
|
|
20
|
-
- `preset` — `c1`
|
|
21
|
-
- `gridArea` — `divider`
|
|
17
|
+
- **`children`** `ReactNode` — Text shown between two lines. It also names the separator for screen readers, unless `aria-label` or `aria-labelledby` names it. Screen readers get it only as that name, so keep it to text: a link or button in it would be unreachable.
|
|
18
|
+
- **`orientation`** `'horizontal' | 'vertical'` (default: `'horizontal'`) — The direction of the line. A vertical divider stretches to the height of its flex or grid row, even when the row centers its items. Elsewhere, or to make it shorter, give it a `height`.
|
|
22
19
|
|
|
23
20
|
### Base Properties
|
|
24
21
|
|
|
25
|
-
Supports [Base properties](../../BaseProperties.md).
|
|
22
|
+
Supports [Base properties](../../BaseProperties.md). A divider's `qa` defaults to `Divider`.
|
|
23
|
+
|
|
24
|
+
### Styling Properties
|
|
25
|
+
|
|
26
|
+
#### styles
|
|
27
|
+
|
|
28
|
+
Customizes the root element. Without text, the root is the line itself.
|
|
29
|
+
|
|
30
|
+
**Sub-elements:**
|
|
31
|
+
|
|
32
|
+
- `Line` - Each of the two lines around the text.
|
|
33
|
+
|
|
34
|
+
### Style Defaults
|
|
35
|
+
|
|
36
|
+
- `fill` — `#border`; `none` with text, where the `Line` sub-elements carry the color
|
|
37
|
+
- `height` — `1bw` when horizontal without text
|
|
38
|
+
- `width` — `1bw` when vertical without text
|
|
39
|
+
- `margin` — `0`
|
|
40
|
+
- `preset` — `c1`
|
|
41
|
+
- `display` — `block`; `grid` with text
|
|
26
42
|
|
|
27
43
|
### Style Properties
|
|
28
44
|
|
|
@@ -31,21 +47,87 @@ These properties allow direct style application without using the `styles` prop:
|
|
|
31
47
|
- **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
|
|
32
48
|
- **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `blockMargin`, `inlineMargin`, `inset`, `blockInset`, `inlineInset`, `position`, `scrollMargin`, `blockScrollMargin`, `inlineScrollMargin`, `scrollPadding`, `blockScrollPadding`, `inlineScrollPadding`
|
|
33
49
|
- **Dimension:** `width`, `height`, `blockSize`, `inlineSize`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
34
|
-
- **Block:** `border`, `blockBorder`, `inlineBorder`, `radius`, `shadow`, `outline
|
|
50
|
+
- **Block:** `border`, `blockBorder`, `inlineBorder`, `radius`, `shadow`, `outline`
|
|
35
51
|
- **Color:** `color`, `fill`, `fade`, `image`
|
|
36
|
-
- **Text:** `textTransform`, `fontWeight`, `fontStyle`
|
|
37
|
-
- **Flow:** `flow`, `place`, `placeItems`, `placeContent`, `alignItems`, `alignContent`, `justifyItems`, `justifyContent`, `align`, `justify`, `gap`, `columnGap`, `rowGap`, `gridColumns`, `gridRows`, `gridTemplate`, `gridAreas`
|
|
38
52
|
|
|
39
|
-
|
|
53
|
+
### Modifiers
|
|
40
54
|
|
|
41
|
-
|
|
42
|
-
<Divider />
|
|
55
|
+
The `mods` property accepts the following modifiers you can override:
|
|
43
56
|
|
|
44
|
-
|
|
57
|
+
| Modifier | Type | Description |
|
|
58
|
+
| --- | --- | --- |
|
|
59
|
+
| text | `boolean` | The divider shows text between two lines |
|
|
60
|
+
| vertical | `boolean` | The divider is vertical |
|
|
61
|
+
| sized | `boolean` | It has a `height` or `blockSize` of its own, so a vertical divider follows the row's alignment instead of stretching |
|
|
62
|
+
|
|
63
|
+
## Examples
|
|
64
|
+
|
|
65
|
+
### Between sections
|
|
45
66
|
|
|
46
|
-
|
|
67
|
+
```jsx
|
|
68
|
+
<Space flow="column" gap="1x">
|
|
47
69
|
<Paragraph>Section 1</Paragraph>
|
|
48
70
|
<Divider />
|
|
49
71
|
<Paragraph>Section 2</Paragraph>
|
|
50
|
-
</
|
|
72
|
+
</Space>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Spacing
|
|
76
|
+
|
|
77
|
+
```jsx
|
|
78
|
+
<Divider margin="1x 0" />
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### With text
|
|
82
|
+
|
|
83
|
+
```jsx
|
|
84
|
+
<Divider>or</Divider>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Vertical, in a row of actions
|
|
88
|
+
|
|
89
|
+
```jsx
|
|
90
|
+
<Space placeItems="center" gap="1.5x">
|
|
91
|
+
<Button>Edit</Button>
|
|
92
|
+
<Divider orientation="vertical" />
|
|
93
|
+
<Button>Delete</Button>
|
|
94
|
+
</Space>
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
A vertical divider takes the height of its row in a flex or grid container. Give it a `height` when it should be shorter, or when its container is a plain block. A divider with a height follows the row's alignment, so it stays centered in a row that centers its items. A `min max` range counts as a height too; add `alignSelf="stretch"` to stretch within it:
|
|
98
|
+
|
|
99
|
+
```jsx
|
|
100
|
+
<Space placeItems="center" gap="1.5x">
|
|
101
|
+
<Button>Edit</Button>
|
|
102
|
+
<Divider orientation="vertical" height="3x" />
|
|
103
|
+
<Button>Delete</Button>
|
|
104
|
+
</Space>
|
|
51
105
|
```
|
|
106
|
+
|
|
107
|
+
A vertical divider with text needs a row about `8x` tall or more. In a shorter row the lines shrink to nothing and only the text is left.
|
|
108
|
+
|
|
109
|
+
## Accessibility
|
|
110
|
+
|
|
111
|
+
### Screen Reader Support
|
|
112
|
+
|
|
113
|
+
- A horizontal divider without text is an `<hr>`, which screen readers announce as a separator.
|
|
114
|
+
- A vertical divider, or one with text, is a `div` with `role="separator"`. A vertical one carries `aria-orientation="vertical"`.
|
|
115
|
+
- ARIA treats a separator's content as presentational, so a text divider is named by its text through `aria-labelledby`: its accessible name is its text, and the text is hidden from screen readers so it is not read a second time. An `aria-label` or `aria-labelledby` you pass replaces that name.
|
|
116
|
+
|
|
117
|
+
## Best Practices
|
|
118
|
+
|
|
119
|
+
1. **Do**: put spacing on the divider or its container
|
|
120
|
+
|
|
121
|
+
```jsx
|
|
122
|
+
<Divider margin="2x 0" />
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
2. **Don't**: draw a separator with a bordered empty element; it is invisible to screen readers
|
|
126
|
+
|
|
127
|
+
```jsx
|
|
128
|
+
<Block styles={{ border: 'top' }} />
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Related Components
|
|
132
|
+
|
|
133
|
+
- [Space](../layout/Space.md) - Lays out the content a divider separates
|
|
@@ -25,8 +25,8 @@ The component's data shape (`treeData`) and the public callback shape are design
|
|
|
25
25
|
- **`defaultExpandedKeys`** `string[]` — Default expanded keys (uncontrolled).
|
|
26
26
|
- **`expandedKeys`** `string[]` — Controlled expanded keys.
|
|
27
27
|
- **`autoExpandParent`** `boolean` (default: `false`) — Auto-expand parents of currently expanded keys. Useful for filtering.
|
|
28
|
-
- **`defaultCheckedKeys`** `string[]` — Default checked keys (uncontrolled).
|
|
29
|
-
- **`checkedKeys`** `string[] | { checked: string[]; halfChecked?: string[] }` — Controlled checked keys. Pass the object form to receive the same shape back from `onCheck
|
|
28
|
+
- **`defaultCheckedKeys`** `string[]` — Default checked keys (uncontrolled). A parent key checks its whole subtree, as in AntD.
|
|
29
|
+
- **`checkedKeys`** `string[] | { checked: string[]; halfChecked?: string[] }` — Controlled checked keys. In the array form, a parent key checks its whole subtree, as in AntD. Pass the object form to receive the same shape back from `onCheck`; it is taken as given.
|
|
30
30
|
- **`defaultSelectedKeys`** `string[]` — Default selected keys (uncontrolled).
|
|
31
31
|
- **`selectedKeys`** `string[]` — Controlled selected keys.
|
|
32
32
|
- **`height`** `number` — Fixed height in pixels. When omitted, the tree fills the available vertical space and scrolls internally.
|
|
@@ -53,6 +53,7 @@ The component's data shape (`treeData`) and the public callback shape are design
|
|
|
53
53
|
|
|
54
54
|
- **`key`** `string` — Unique identifier of the node.
|
|
55
55
|
- **`title`** `ReactNode` — Visible label.
|
|
56
|
+
- **`textValue`** `string` — Plain-text label, for a `title` that is not a string. It names the row's checkbox and is what `FilterPicker`'s tree mode searches and summarises.
|
|
56
57
|
- **`children`** `CubeTreeNodeData[]` — Children. Pass `undefined` together with `isLeaf={false}` for lazy nodes.
|
|
57
58
|
- **`isLeaf`** `boolean` — Force leaf rendering (no expand toggle, no `loadData` call).
|
|
58
59
|
- **`isDisabled`** `boolean` — Disable interactions on this row (focus / select / expand / check).
|
|
@@ -200,7 +201,7 @@ Pass the matching keys via `expandedKeys` and set `autoExpandParent` to keep the
|
|
|
200
201
|
|
|
201
202
|
### Per-node Disabling
|
|
202
203
|
|
|
203
|
-
Disable the entire row, just the checkbox, or hide the checkbox via node-level flags.
|
|
204
|
+
Disable the entire row, just the checkbox, or hide the checkbox via node-level flags. Such a node with no eligible nodes below it keeps its own checked state. Above eligible nodes, its state follows them, and the cascade passes through it: checking its parent checks the eligible nodes below it.
|
|
204
205
|
|
|
205
206
|
```jsx
|
|
206
207
|
const data = [
|
|
@@ -268,7 +269,7 @@ Tree implements the [`treegrid` ARIA pattern](https://www.w3.org/WAI/ARIA/apg/pa
|
|
|
268
269
|
### Screen Reader Support
|
|
269
270
|
|
|
270
271
|
- Each row reports `aria-level`, `aria-posinset` and `aria-setsize`. Expandable rows also report `aria-expanded`, including a lazy row (`isLeaf: false`) whose children have not loaded yet.
|
|
271
|
-
- When `isCheckable` is enabled,
|
|
272
|
+
- When `isCheckable` is enabled, each row's checkbox carries the checked state (`checked`, `not checked`, or `mixed` for the indeterminate state), named by the node's `textValue` or string `title`. The row itself takes no `aria-checked`, which `row` does not support; it has `data-checked` and `data-indeterminate` for tests.
|
|
272
273
|
- Disabled rows expose `aria-disabled="true"`.
|
|
273
274
|
|
|
274
275
|
### ARIA Properties
|