@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,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
|
|
@@ -212,7 +212,7 @@ const Compact = tasty(ItemTable, {
|
|
|
212
212
|
});
|
|
213
213
|
```
|
|
214
214
|
|
|
215
|
-
Rows publish their paint as inherited custom properties — `#row-base`, `#row-overlay`, `#row-text` and `$dim` — which cells consume. That is what lets a pinned (and therefore opaque) cell match its row's state without duplicating the state matrix.
|
|
215
|
+
Rows publish their paint as inherited custom properties — `#row-base`, `#row-overlay`, `$row-overlay-weight`, `#row-text` and `$dim` — which cells consume. `#row-overlay` is an opaque color that cells mix into `#row-base` at `$row-overlay-weight` (a percentage), so each cell paints one solid background color. That is what lets a pinned (and therefore opaque) cell match its row's state without duplicating the state matrix.
|
|
216
216
|
|
|
217
217
|
Geometry runs through tokens too: `$row-height`, `$header-height`, `$cell-padding-x` (16px) and `$cell-padding-y`. Height lives on the **cells**, not the `<tr>` — table layout ignores `min-height` on a row and sizes it from its cells instead.
|
|
218
218
|
|
|
@@ -591,12 +591,18 @@ Unselectable rows are excluded from every scope. Pressing the header checkbox wh
|
|
|
591
591
|
/>
|
|
592
592
|
```
|
|
593
593
|
|
|
594
|
+
When no visible column is marked `isRowHeader`, a table with `rowLink` uses its first visible data column eligible for the row header. Set `isRowHeader={false}` on a column to exclude it from that default. Selection and action columns do not affect the choice. If no data column is eligible, the table renders no row links.
|
|
595
|
+
|
|
594
596
|
Because it is a real `<a href>`, ⌘-click, middle-click and "Open in new tab" all work natively — none of which an `onClick` handler can give you. The anchor sits below the cells' own content in the stacking order, so a button or `⋮` trigger inside a cell still takes its own clicks, and its accessible name comes from the row-header cell rather than being announced as "link".
|
|
595
597
|
|
|
596
598
|
The row-header cell is styled as a link — `#purple-text` at weight 600, matching the kit's `Link`, with an underline while the row is hovered. The anchor itself is invisible, so without that the row would give no sign that it navigates.
|
|
597
599
|
|
|
598
600
|
`onRowAction` is the non-navigational alternative — Enter, or a click that did not land on a control inside a cell. Use one or the other, not both.
|
|
599
601
|
|
|
602
|
+
Flat tables with row links, row actions or exposed row menus have a resting body-row tab stop. Up/Down move between interactive rows, Home/End move to the first/last, and Enter activates the focused row's link or action. Down from a focused column header enters the body. Disabled rows are skipped; making a row unselectable only disables its checkbox. In-cell controls keep their own keys and Tab behavior. Reorderable rows retain their drag shortcuts.
|
|
603
|
+
|
|
604
|
+
Keyboard focus emphasizes the row background, including selected rows, matching the kit's list items. Controls inside a row keep their own focus appearance.
|
|
605
|
+
|
|
600
606
|
### Row Menu
|
|
601
607
|
|
|
602
608
|
`rowMenu` supplies `Menu.Item` children, and `rowContextMenu` decides where they are exposed. The split is deliberate: `rowMenu` alone renders nothing, so a row never grows a `⋮` nobody asked for.
|
|
@@ -624,6 +630,8 @@ The row-header cell is styled as a link — `#purple-text` at weight 600, matchi
|
|
|
624
630
|
|
|
625
631
|
A row whose resolver returns `null` gets no trigger, and right-clicking it falls through to the browser's own context menu — more useful than an empty popover.
|
|
626
632
|
|
|
633
|
+
From a focused flat row, Tab reaches its visible `⋮` trigger; Shift+F10 opens its context menu, including in `'context-only'` mode. Closing restores the opening row or control, or a surviving neighbor if the row was removed. A menu action that focuses another control keeps that focus.
|
|
634
|
+
|
|
627
635
|
### Bulk Actions
|
|
628
636
|
|
|
629
637
|
`bulkActions` implies `selectionMode="multiple"` — a bulk action with no way to select rows is a contradiction, not a configuration.
|
|
@@ -24,7 +24,7 @@ Checkboxes allow users to select multiple items from a list of individual items,
|
|
|
24
24
|
- **`onChange`** `function` — Callback fired when the checkbox value changes
|
|
25
25
|
- **`onFocus`** `function` — Callback fired when the checkbox receives focus
|
|
26
26
|
- **`onBlur`** `function` — Callback fired when the checkbox loses focus
|
|
27
|
-
- **`tooltip`** `string | TooltipProviderProps` — Tooltip shown on hover over the box and its inline label, in or out of a group, including while disabled. A string, or `TooltipProvider` props such as `title` and `placement`. It also opens when the checkbox takes keyboard focus, and describes its input to screen readers. The info badge next to a field label is `labelTooltip`
|
|
27
|
+
- **`tooltip`** `string | TooltipProviderProps` — Tooltip shown on hover over the box and its inline label, in or out of a group, including while disabled. A string, or `TooltipProvider` props such as `title` and `placement`. It also opens when the checkbox takes keyboard focus, and describes its input to screen readers. A disabled checkbox with a tooltip stays in the Tab order, marked `aria-disabled` rather than natively disabled, so the keyboard reaches the tooltip too, and a plain `<form>` submits it when it is checked. The info badge next to a field label is `labelTooltip`
|
|
28
28
|
|
|
29
29
|
### Base Properties
|
|
30
30
|
|
|
@@ -50,12 +50,8 @@ Customizes the checkbox input element specifically.
|
|
|
50
50
|
|
|
51
51
|
These properties allow direct style application without using the `styles` prop:
|
|
52
52
|
|
|
53
|
-
- **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
|
|
54
53
|
- **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `blockMargin`, `inlineMargin`, `inset`, `blockInset`, `inlineInset`, `position`, `scrollMargin`, `blockScrollMargin`, `inlineScrollMargin`, `scrollPadding`, `blockScrollPadding`, `inlineScrollPadding`
|
|
55
54
|
- **Dimension:** `width`, `height`, `blockSize`, `inlineSize`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
56
|
-
- **Block:** `border`, `blockBorder`, `inlineBorder`, `radius`, `shadow`, `outline`, `padding`, `blockPadding`, `inlinePadding`, `overflow`, `scrollbar`, `textAlign`
|
|
57
|
-
- **Color:** `color`, `fill`, `fade`, `image`
|
|
58
|
-
- **Flow:** `flow`, `place`, `placeItems`, `placeContent`, `alignItems`, `alignContent`, `justifyItems`, `justifyContent`, `align`, `justify`, `gap`, `columnGap`, `rowGap`, `gridColumns`, `gridRows`, `gridTemplate`, `gridAreas`
|
|
59
55
|
|
|
60
56
|
### Modifiers
|
|
61
57
|
|
|
@@ -66,6 +62,7 @@ The `mods` property accepts the following modifiers you can override:
|
|
|
66
62
|
- **`invalid`** `boolean` — Whether the checkbox has validation errors
|
|
67
63
|
- **`valid`** `boolean` — Whether the checkbox is valid
|
|
68
64
|
- **`disabled`** `boolean` — Whether the checkbox is disabled
|
|
65
|
+
- **`readonly`** `boolean` — Whether the checkbox is read-only, on its own or through its group: a recessed box with a dark check instead of the brand fill, and no hover state
|
|
69
66
|
- **`hovered`** `boolean` — Whether the checkbox is being hovered
|
|
70
67
|
- **`focused`** `boolean` — Whether the checkbox has focus
|
|
71
68
|
- **`side-label`** `boolean` — Whether the label is positioned to the side
|
|
@@ -105,7 +102,7 @@ The `mods` property accepts the following modifiers you can override:
|
|
|
105
102
|
|
|
106
103
|
### With a Tooltip
|
|
107
104
|
|
|
108
|
-
A disabled checkbox still shows its tooltip, which makes it a good place to say why the option is unavailable.
|
|
105
|
+
A disabled checkbox still shows its tooltip, which makes it a good place to say why the option is unavailable. While it has a tooltip, it stays focusable and is marked `aria-disabled` instead of natively disabled, so keyboard users can read the reason too; `Space` and clicks still change nothing. Without a tooltip, a disabled checkbox is natively disabled and `Tab` skips it.
|
|
109
106
|
|
|
110
107
|
```jsx
|
|
111
108
|
<Checkbox isDisabled tooltip="Available on the Team plan">
|
|
@@ -113,6 +110,8 @@ A disabled checkbox still shows its tooltip, which makes it a good place to say
|
|
|
113
110
|
</Checkbox>
|
|
114
111
|
```
|
|
115
112
|
|
|
113
|
+
Prefer `tooltip` to wrapping the checkbox in `TooltipProvider`: while disabled, a checkbox takes no trigger props from a wrapper, so that tooltip never opens.
|
|
114
|
+
|
|
116
115
|
### With Validation
|
|
117
116
|
|
|
118
117
|
```jsx
|
|
@@ -139,9 +138,9 @@ A disabled checkbox still shows its tooltip, which makes it a good place to say
|
|
|
139
138
|
|
|
140
139
|
### Keyboard Navigation
|
|
141
140
|
|
|
142
|
-
- `Tab` - Moves focus to the checkbox
|
|
141
|
+
- `Tab` - Moves focus to the checkbox. A disabled checkbox takes focus only while it has a `tooltip`, which then opens
|
|
143
142
|
- `Space` - Toggles the checkbox state
|
|
144
|
-
- `Enter` does not toggle the checkbox. Inside a form with a submit button, the browser submits the form instead.
|
|
143
|
+
- `Enter` does not toggle the checkbox. Inside a form with a submit button, the browser submits the form instead, unless the checkbox is disabled.
|
|
145
144
|
|
|
146
145
|
### Screen Reader Support
|
|
147
146
|
|
|
@@ -78,25 +78,23 @@ Customizes the color swatch shown inside the input.
|
|
|
78
78
|
|
|
79
79
|
These properties allow direct style application without using the `styles` prop:
|
|
80
80
|
|
|
81
|
-
- **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
|
|
82
81
|
- **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `blockMargin`, `inlineMargin`, `inset`, `blockInset`, `inlineInset`, `position`, `scrollMargin`, `blockScrollMargin`, `inlineScrollMargin`, `scrollPadding`, `blockScrollPadding`, `inlineScrollPadding`
|
|
83
82
|
- **Dimension:** `width`, `height`, `blockSize`, `inlineSize`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
84
|
-
- **Block:** `border`, `blockBorder`, `inlineBorder`, `radius`, `shadow`, `outline`, `padding`, `blockPadding`, `inlinePadding`, `overflow`, `scrollbar`, `textAlign`
|
|
85
|
-
- **Color:** `color`, `fill`, `fade`, `image`
|
|
86
83
|
|
|
87
84
|
### Modifiers
|
|
88
85
|
|
|
89
86
|
The `mods` property accepts the following modifiers you can override:
|
|
90
87
|
|
|
91
|
-
| Modifier
|
|
92
|
-
|
|
|
93
|
-
| `focused`
|
|
94
|
-
| `hovered`
|
|
95
|
-
| `disabled` | `boolean` | The picker is disabled
|
|
96
|
-
| `
|
|
97
|
-
| `
|
|
98
|
-
| `
|
|
99
|
-
| `
|
|
88
|
+
| Modifier | Type | Description |
|
|
89
|
+
| --- | --- | --- |
|
|
90
|
+
| `focused` | `boolean` | The text input has focus |
|
|
91
|
+
| `hovered` | `boolean` | The pointer is over the input |
|
|
92
|
+
| `disabled` | `boolean` | The picker is disabled |
|
|
93
|
+
| `readonly` | `boolean` | The picker is read-only: a recessed fill and a softer border, except in high contrast, no hover state |
|
|
94
|
+
| `valid` | `boolean` | The field is in the valid state |
|
|
95
|
+
| `invalid` | `boolean` | The field is in the invalid state |
|
|
96
|
+
| `prefix` | `boolean` | A prefix (the swatch) is rendered |
|
|
97
|
+
| `suffix` | `boolean` | A suffix (the trigger) is rendered |
|
|
100
98
|
|
|
101
99
|
The swatch carries its own `empty` modifier while there is no color to show.
|
|
102
100
|
|
|
@@ -196,7 +194,7 @@ const [color, setColor] = useState('okhst(264 80% 60%)');
|
|
|
196
194
|
- `Tab` — moves focus to the text input, then to the popover trigger
|
|
197
195
|
- `Enter` — commits and normalizes the typed color without leaving the field
|
|
198
196
|
- `Space` / `Enter` on the trigger — opens the popover
|
|
199
|
-
- `Escape` — closes the popover
|
|
197
|
+
- `Escape` — closes the popover. In the text input it closes a surrounding `Dialog`, as in other fields
|
|
200
198
|
- `Left` / `Right`, `Home` / `End` on a channel slider — moves that channel
|
|
201
199
|
- `Left` / `Right` on the space switcher — moves between HST, LCH and RGB
|
|
202
200
|
|
|
@@ -28,7 +28,8 @@ Use [ColorInput](./ColorInput.md) instead when the color has to be readable and
|
|
|
28
28
|
- **`type`** `CubeItemProps['type']` (default: `outline`) — Visual type of the trigger
|
|
29
29
|
- **`theme`** `CubeItemProps['theme']` (default: `default`) — Theme of the trigger
|
|
30
30
|
- **`size`** `CubeItemProps['size']` — Size of the trigger
|
|
31
|
-
- **`
|
|
31
|
+
- **`tooltip`** `CubeItemProps['tooltip']` — Tooltip for the trigger, separate from `labelTooltip`
|
|
32
|
+
- **`triggerTooltip`** `CubeItemProps['tooltip']` — _(deprecated)_ Use `tooltip`.
|
|
32
33
|
- **`swatches`** `Array<string | { color: string; label?: string }>` — Colors to offer under the editor, as a [ColorSwatchGroup](./ColorSwatchGroup.md)
|
|
33
34
|
- **`swatchColumns`** `number` — How many swatches per row. Defaults to a single row
|
|
34
35
|
- **`isOpen`** `boolean` — Whether the popover is open (controlled)
|
|
@@ -68,7 +69,6 @@ These properties allow direct style application without using the `styles` prop:
|
|
|
68
69
|
|
|
69
70
|
- **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `blockMargin`, `inlineMargin`, `inset`, `blockInset`, `inlineInset`, `position`, `scrollMargin`, `blockScrollMargin`, `inlineScrollMargin`, `scrollPadding`, `blockScrollPadding`, `inlineScrollPadding`
|
|
70
71
|
- **Dimension:** `width`, `height`, `blockSize`, `inlineSize`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
71
|
-
- **Block:** `border`, `blockBorder`, `inlineBorder`, `radius`, `shadow`, `outline`, `padding`, `blockPadding`, `inlinePadding`, `overflow`, `scrollbar`, `textAlign`
|
|
72
72
|
|
|
73
73
|
### Modifiers
|
|
74
74
|
|
|
@@ -49,11 +49,10 @@ These properties allow direct style application without using the `styles` prop:
|
|
|
49
49
|
|
|
50
50
|
- **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `blockMargin`, `inlineMargin`, `inset`, `blockInset`, `inlineInset`, `position`, `scrollMargin`, `blockScrollMargin`, `inlineScrollMargin`, `scrollPadding`, `blockScrollPadding`, `inlineScrollPadding`
|
|
51
51
|
- **Dimension:** `width`, `height`, `blockSize`, `inlineSize`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
52
|
-
- **Block:** `border`, `blockBorder`, `inlineBorder`, `radius`, `shadow`, `outline`, `padding`, `blockPadding`, `inlinePadding`, `overflow`, `scrollbar`, `textAlign`
|
|
53
52
|
|
|
54
|
-
###
|
|
53
|
+
### Styling the group
|
|
55
54
|
|
|
56
|
-
`ColorSwatchGroup` and `ColorPicker`
|
|
55
|
+
`ColorSwatchGroup` and `ColorPicker` take only the style props above, which place and size their outer element. Give the group its `radius`, `border`, `padding` or `shadow` through `styles`.
|
|
57
56
|
|
|
58
57
|
### Modifiers
|
|
59
58
|
|
|
@@ -56,7 +56,7 @@ A combobox component that combines a text input with a dropdown list, allowing u
|
|
|
56
56
|
|
|
57
57
|
#### Notable Properties
|
|
58
58
|
|
|
59
|
-
**onKeyDown** - Runs before ComboBox's own key handling, listed under [Keyboard Navigation](#keyboard-navigation). Calling `e.preventDefault()` takes the key over: ComboBox skips its handling for that event, so a prevented `ArrowDown` does not open the popover or move focus, and a prevented `Enter` does not select the focused option or commit a custom value. Without `preventDefault()` the built-in handling runs as usual after your handler. The event is React Aria's keyboard event (`KeyboardEvent` from `@react-types/shared`). `Escape` and `Tab` go on to ancestors, so a surrounding `Dialog` still closes on `Escape` and
|
|
59
|
+
**onKeyDown** - Runs before ComboBox's own key handling, listed under [Keyboard Navigation](#keyboard-navigation). Calling `e.preventDefault()` takes the key over: ComboBox skips its handling for that event, so a prevented `ArrowDown` does not open the popover or move focus, and a prevented `Enter` does not select the focused option or commit a custom value. Without `preventDefault()` the built-in handling runs as usual after your handler. The event is React Aria's keyboard event (`KeyboardEvent` from `@react-types/shared`). `Escape` and `Tab` go on to ancestors, so a surrounding `Dialog` still closes on `Escape` and moves focus on `Tab`, unless ComboBox acts on them or you prevent them: `Escape` that closes the list or clears the value stops at the input, and so does an `Escape` or `Tab` you prevent. Other keys stop at the input unless you call `e.continuePropagation()`.
|
|
60
60
|
|
|
61
61
|
```jsx
|
|
62
62
|
<ComboBox
|
|
@@ -182,11 +182,8 @@ Customizes section heading elements within grouped options.
|
|
|
182
182
|
|
|
183
183
|
These properties allow direct style application without using the `styles` prop:
|
|
184
184
|
|
|
185
|
-
- **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
|
|
186
185
|
- **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `blockMargin`, `inlineMargin`, `inset`, `blockInset`, `inlineInset`, `position`, `scrollMargin`, `blockScrollMargin`, `inlineScrollMargin`, `scrollPadding`, `blockScrollPadding`, `inlineScrollPadding`
|
|
187
186
|
- **Dimension:** `width`, `height`, `blockSize`, `inlineSize`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
188
|
-
- **Block:** `border`, `blockBorder`, `inlineBorder`, `radius`, `shadow`, `outline`
|
|
189
|
-
- **Color:** `color`, `fill`, `fade`, `image`
|
|
190
187
|
|
|
191
188
|
### Modifiers
|
|
192
189
|
|
|
@@ -195,6 +192,7 @@ The `mods` property accepts the following modifiers you can override:
|
|
|
195
192
|
- **`invalid`** `boolean` — Applied when validation state is invalid
|
|
196
193
|
- **`valid`** `boolean` — Applied when validation state is valid
|
|
197
194
|
- **`disabled`** `boolean` — Applied when the combobox is disabled
|
|
195
|
+
- **`readonly`** `boolean` — Applied when the combobox is read-only: a recessed fill and a softer border, except in high contrast
|
|
198
196
|
- **`focused`** `boolean` — Applied when the input has focus
|
|
199
197
|
- **`loading`** `boolean` — Applied when the combobox is in loading state
|
|
200
198
|
- **`prefix`** `boolean` — Applied when prefix content is present
|
|
@@ -37,6 +37,7 @@ Choose a different component when the interaction has another outcome:
|
|
|
37
37
|
- **`autoSize`** `boolean` (default: `false`) — Resize to fit content.
|
|
38
38
|
- **`rows`** `number` (default: `3`) — Visible rows.
|
|
39
39
|
- **`maxRows`** `number` (default: `10`) — Max visible rows when `autoSize` is true.
|
|
40
|
+
- **`tooltip`** `string | TooltipProviderProps` — The input's own tooltip, opened on hover over the field box and on keyboard focus. It closes on the first key, so it never covers the suggestions. See [TextInput](./TextInput.md#with-a-tooltip) for the behaviour
|
|
40
41
|
|
|
41
42
|
Each option's value is the **literal string to insert**. For commands, set the item's `textValue` (and `key`) to the full `/clear` — the slash is part of both the active token and the inserted value, so `/cle` becomes `/clear ` with no duplication. This decouples insertion from the trigger, so non-command autocomplete (e.g. a `@mention` resolving to `@john`) works the same way.
|
|
42
43
|
|
|
@@ -67,11 +68,8 @@ Supports all [Field properties](../../FieldProperties.md) (`label`, `name`, `isR
|
|
|
67
68
|
|
|
68
69
|
These properties allow direct style application without using the `styles` prop:
|
|
69
70
|
|
|
70
|
-
- **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
|
|
71
71
|
- **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `blockMargin`, `inlineMargin`, `inset`, `blockInset`, `inlineInset`, `position`, `scrollMargin`, `blockScrollMargin`, `inlineScrollMargin`, `scrollPadding`, `blockScrollPadding`, `inlineScrollPadding`
|
|
72
72
|
- **Dimension:** `width`, `height`, `blockSize`, `inlineSize`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
73
|
-
- **Block:** `border`, `blockBorder`, `inlineBorder`, `radius`, `shadow`, `outline`, `padding`, `blockPadding`, `inlinePadding`, `overflow`, `scrollbar`, `textAlign`
|
|
74
|
-
- **Color:** `color`, `fill`, `fade`, `image`
|
|
75
73
|
|
|
76
74
|
## Examples
|
|
77
75
|
|
|
@@ -115,8 +113,8 @@ These properties allow direct style application without using the `styles` prop:
|
|
|
115
113
|
- `Tab` — Moves focus into / out of the textarea.
|
|
116
114
|
- `ArrowUp` / `ArrowDown` — Move the highlighted option (only while the popover is open; otherwise moves the caret).
|
|
117
115
|
- `Home` / `End` — Jump to the first / last option while open.
|
|
118
|
-
- `Enter` / `Tab` — Insert the highlighted option while open; otherwise insert a newline / submit.
|
|
119
|
-
- `Escape` — Close the popover without changing the text.
|
|
116
|
+
- `Enter` / `Tab` — Insert the highlighted option while open; otherwise insert a newline / submit. A `Tab` that inserts an option keeps focus in the textarea, inside a `Dialog` too.
|
|
117
|
+
- `Escape` — Close the popover without changing the text. With the popover closed, `Escape` goes on to a surrounding `Dialog` and closes it, unless your `onKeyDown` prevents it.
|
|
120
118
|
|
|
121
119
|
### Screen Reader Support
|
|
122
120
|
|
|
@@ -79,12 +79,8 @@ Customizes the calendar trigger button.
|
|
|
79
79
|
|
|
80
80
|
These properties allow direct style application without using the `styles` prop:
|
|
81
81
|
|
|
82
|
-
- **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
|
|
83
82
|
- **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `blockMargin`, `inlineMargin`, `inset`, `blockInset`, `inlineInset`, `position`, `scrollMargin`, `blockScrollMargin`, `inlineScrollMargin`, `scrollPadding`, `blockScrollPadding`, `inlineScrollPadding`
|
|
84
83
|
- **Dimension:** `width`, `height`, `blockSize`, `inlineSize`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
85
|
-
- **Block:** `border`, `blockBorder`, `inlineBorder`, `radius`, `shadow`, `outline`, `padding`, `blockPadding`, `inlinePadding`, `overflow`, `scrollbar`, `textAlign`
|
|
86
|
-
- **Color:** `color`, `fill`, `fade`, `image`
|
|
87
|
-
- **Flow:** `flow`, `place`, `placeItems`, `placeContent`, `alignItems`, `alignContent`, `justifyItems`, `justifyContent`, `align`, `justify`, `gap`, `columnGap`, `rowGap`, `gridColumns`, `gridRows`, `gridTemplate`, `gridAreas`
|
|
88
84
|
|
|
89
85
|
### Modifiers
|
|
90
86
|
|
|
@@ -93,6 +89,7 @@ The `mods` property accepts the following modifiers you can override:
|
|
|
93
89
|
- **`opened`** `boolean` — Whether the calendar is open
|
|
94
90
|
- **`focused`** `boolean` — Whether the input has focus
|
|
95
91
|
- **`disabled`** `boolean` — Whether the date picker is disabled
|
|
92
|
+
- **`readonly`** `boolean` — Whether the date picker is read-only: a recessed fill and a softer border, except in high contrast
|
|
96
93
|
- **`invalid`** `boolean` — Whether the date picker has validation errors
|
|
97
94
|
- **`valid`** `boolean` — Whether the date picker is valid
|
|
98
95
|
- **`hovered`** `boolean` — Whether the date picker is being hovered
|
|
@@ -38,7 +38,7 @@ Supports all [Field properties](../../FieldProperties.md)
|
|
|
38
38
|
|
|
39
39
|
#### styles
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
Styles the input element. Its style props place and size the field: see [Field properties](../../FieldProperties.md).
|
|
42
42
|
|
|
43
43
|
**Sub-elements:**
|
|
44
44
|
|
|
@@ -51,12 +51,8 @@ Customizes the root element of the component.
|
|
|
51
51
|
|
|
52
52
|
These properties allow direct style application without using the `styles` prop:
|
|
53
53
|
|
|
54
|
-
- **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
|
|
55
54
|
- **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `blockMargin`, `inlineMargin`, `inset`, `blockInset`, `inlineInset`, `position`, `scrollMargin`, `blockScrollMargin`, `inlineScrollMargin`, `scrollPadding`, `blockScrollPadding`, `inlineScrollPadding`
|
|
56
55
|
- **Dimension:** `width`, `height`, `blockSize`, `inlineSize`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
57
|
-
- **Block:** `border`, `blockBorder`, `inlineBorder`, `radius`, `shadow`, `outline`, `padding`, `blockPadding`, `inlinePadding`, `overflow`, `scrollbar`, `textAlign`
|
|
58
|
-
- **Color:** `color`, `fill`, `fade`, `image`
|
|
59
|
-
- **Flow:** `flow`, `place`, `placeItems`, `placeContent`, `alignItems`, `alignContent`, `justifyItems`, `justifyContent`, `align`, `justify`, `gap`, `columnGap`, `rowGap`, `gridColumns`, `gridRows`, `gridTemplate`, `gridAreas`
|
|
60
56
|
|
|
61
57
|
### Modifiers
|
|
62
58
|
|
|
@@ -137,11 +137,8 @@ Customizes the footer area when footer prop is provided.
|
|
|
137
137
|
|
|
138
138
|
These properties allow direct style application without using the `styles` prop:
|
|
139
139
|
|
|
140
|
-
- **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
|
|
141
140
|
- **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `blockMargin`, `inlineMargin`, `inset`, `blockInset`, `inlineInset`, `position`, `scrollMargin`, `blockScrollMargin`, `inlineScrollMargin`, `scrollPadding`, `blockScrollPadding`, `inlineScrollPadding`
|
|
142
141
|
- **Dimension:** `width`, `height`, `blockSize`, `inlineSize`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
143
|
-
- **Block:** `border`, `blockBorder`, `inlineBorder`, `radius`, `shadow`, `outline`
|
|
144
|
-
- **Color:** `color`, `fill`, `fade`, `image`
|
|
145
142
|
|
|
146
143
|
### Modifiers
|
|
147
144
|
|
|
@@ -8,6 +8,7 @@ A button-triggered field for keeping one or more selected values from a **search
|
|
|
8
8
|
- Users need a visible search field to find options
|
|
9
9
|
- A compact button trigger is preferable to an always-visible input
|
|
10
10
|
- Multiple selection, checkboxes, select-all, grouped options, or a custom trigger summary are needed
|
|
11
|
+
- The options form a tree, such as groups and their members, and parents should be checkable as a whole (`treeData`)
|
|
11
12
|
- The selection should participate in form state and validation
|
|
12
13
|
|
|
13
14
|
Choose a different component when the interaction has another shape:
|
|
@@ -57,7 +58,8 @@ Choose a different component when the interaction has another shape:
|
|
|
57
58
|
- **`listBoxStyles`** `Styles` — Custom styles for the dropdown list container within the popover
|
|
58
59
|
- **`popoverStyles`** `Styles` — Custom styles for the popover dialog that contains the FilterListBox
|
|
59
60
|
- **`triggerStyles`** `Styles` — Custom styles for the trigger button element
|
|
60
|
-
- **`
|
|
61
|
+
- **`tooltip`** `string | TooltipProps` — Tooltip for the trigger button (separate from `labelTooltip`)
|
|
62
|
+
- **`triggerTooltip`** `string | TooltipProps` — _(deprecated)_ Use `tooltip`.
|
|
61
63
|
- **`triggerDescription`** `string` — Description for the trigger button (separate from field description)
|
|
62
64
|
- **`prefix`** `ReactNode` — Content to show before the trigger button text
|
|
63
65
|
- **`suffix`** `ReactNode` — Content to show after the trigger button text
|
|
@@ -78,6 +80,10 @@ Choose a different component when the interaction has another shape:
|
|
|
78
80
|
- **`onClear`** `() => void` — Callback called when the clear button is pressed
|
|
79
81
|
- **`actions`** `ReactNode` — Custom actions rendered inside the trigger, to the left of the built-in clear button and dropdown caret
|
|
80
82
|
- **`onOpenChange`** `(isOpen: boolean) => void` — Callback called when the popover open state changes
|
|
83
|
+
- **`treeData`** `CubeTreeNodeData[]` — Tree-shaped options. The popover shows a checkable `Tree` in place of the list, and `items` and `children` are not used. Tree mode is always multiple selection, and the value is every fully checked key, parents included
|
|
84
|
+
- **`expandedKeys`** `string[]` — Expanded nodes in tree mode (controlled). A search expands nodes on its own and restores these when it clears
|
|
85
|
+
- **`defaultExpandedKeys`** `string[]` — Initially expanded nodes in tree mode (uncontrolled), read once when the picker mounts
|
|
86
|
+
- **`onExpand`** `(expandedKeys: string[]) => void` — Called when the user expands or collapses a node in tree mode, outside a search
|
|
81
87
|
- **`isReorderable`** `boolean` (default: `false`) — Enable drag-and-drop item reordering in the dropdown list
|
|
82
88
|
- **`onReorder`** `(newOrder: string[]) => void` — Callback when items are reordered via drag-and-drop or keyboard (Alt+Arrow)
|
|
83
89
|
|
|
@@ -155,11 +161,8 @@ Customizes the footer area when footer prop is provided.
|
|
|
155
161
|
|
|
156
162
|
These properties allow direct style application without using the `styles` prop:
|
|
157
163
|
|
|
158
|
-
- **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
|
|
159
164
|
- **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `blockMargin`, `inlineMargin`, `inset`, `blockInset`, `inlineInset`, `position`, `scrollMargin`, `blockScrollMargin`, `inlineScrollMargin`, `scrollPadding`, `blockScrollPadding`, `inlineScrollPadding`
|
|
160
165
|
- **Dimension:** `width`, `height`, `blockSize`, `inlineSize`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
|
|
161
|
-
- **Block:** `border`, `blockBorder`, `inlineBorder`, `radius`, `shadow`, `outline`
|
|
162
|
-
- **Color:** `color`, `fill`, `fade`, `image`
|
|
163
166
|
|
|
164
167
|
### Modifiers
|
|
165
168
|
|
|
@@ -268,7 +271,7 @@ For dynamic content, use the `items` prop with a render function. Virtualization
|
|
|
268
271
|
|
|
269
272
|
### Dynamic Sections Pattern
|
|
270
273
|
|
|
271
|
-
For
|
|
274
|
+
For grouped options (sections), use the `items` prop with nested render functions. Each section contains a `children` array of items. Sections are one level of grouping; for a real tree, with parents that expand and check their children, see [Tree Options](#tree-options).
|
|
272
275
|
|
|
273
276
|
```jsx
|
|
274
277
|
const categories = [
|
|
@@ -318,6 +321,8 @@ const categories = [
|
|
|
318
321
|
- `single` - Allows selecting only one item at a time
|
|
319
322
|
- `multiple` - Allows selecting multiple items
|
|
320
323
|
|
|
324
|
+
With `treeData`, the picker is always `multiple`.
|
|
325
|
+
|
|
321
326
|
### Button Types
|
|
322
327
|
|
|
323
328
|
- `outline` - Default outlined button style; `mods={{ selected: true }}` adds a brand-tinted fill
|
|
@@ -524,6 +529,52 @@ const DEFAULT_KEY = 'apple';
|
|
|
524
529
|
</FilterPicker>
|
|
525
530
|
```
|
|
526
531
|
|
|
532
|
+
### Tree Options
|
|
533
|
+
|
|
534
|
+
Pass `treeData` to pick from a tree. The popover shows a checkable Tree under the same header, search and footer, and `items` and `children` are not used.
|
|
535
|
+
|
|
536
|
+
- **Value.** Tree mode is always multiple selection. `selectedKeys` is every fully checked key, parents included, in tree order. A parent key passed without its children checks its whole subtree.
|
|
537
|
+
- **Cascade.** Checking a parent checks its children, and a parent with only some of them checked is half-checked. The cascade runs over the whole tree, so unchecking a node during a search keeps the nodes the search hides as they were.
|
|
538
|
+
- **Search.** A node that matches keeps its whole subtree. The ancestors of deeper matches stay with only their matching branches, and every node with a match below it opens. This expansion belongs to the search: it starts over whenever the query changes, and clearing the search brings back the nodes the user had open. Nodes match on `textValue`, else on `title` when it is a string, else on `key`.
|
|
539
|
+
- **Summary.** The default trigger summary lists the topmost checked nodes: "Design" rather than "Design, Dieter Rams, Susan Kare". `renderSummary` receives every checked key, conducted over the tree and in tree order, as `onSelectionChange` reports them.
|
|
540
|
+
- **Disabling.** Disable a node with its own `isDisabled` or `isCheckboxDisabled`; `disabledKeys` does not apply. A disabled node's key in the value still checks its subtree, and Enter or Space on a row whose checkbox is disabled does nothing. The cascade passes through a disabled node: checking its parent checks the enabled nodes below it, and its own state follows them.
|
|
541
|
+
- **Expansion.** Uncontrolled expansion starts from `defaultExpandedKeys`, read once when the picker mounts, and is kept across opening and closing the popover. For nodes that arrive later, pass `expandedKeys`.
|
|
542
|
+
- **List-only props.** These apply to the flat list and have no effect with `treeData`: `items`, `children`, `disabledKeys`, `allowsCustomValue`, `showSelectAll`, `selectAllLabel`, `isCheckable`, `disallowEmptySelection`, `sortSelectedToTop`, `isReorderable`, `onReorder`, `onOptionClick`, `focusOnHover`, `listGap`, `listStyles`, `optionStyles`, `sectionStyles` and `headingStyles`.
|
|
543
|
+
|
|
544
|
+
```jsx
|
|
545
|
+
const userGroups = [
|
|
546
|
+
{
|
|
547
|
+
key: 'engineering',
|
|
548
|
+
title: 'Engineering',
|
|
549
|
+
children: [
|
|
550
|
+
{ key: 'engineering:ada', title: 'Ada Lovelace' },
|
|
551
|
+
{ key: 'engineering:grace', title: 'Grace Hopper' },
|
|
552
|
+
],
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
key: 'design',
|
|
556
|
+
title: 'Design',
|
|
557
|
+
children: [
|
|
558
|
+
{ key: 'design:dieter', title: 'Dieter Rams' },
|
|
559
|
+
{ key: 'design:susan', title: 'Susan Kare' },
|
|
560
|
+
],
|
|
561
|
+
},
|
|
562
|
+
{ key: 'contractors', title: 'Contractors', isLeaf: true },
|
|
563
|
+
];
|
|
564
|
+
|
|
565
|
+
<FilterPicker
|
|
566
|
+
label="User groups"
|
|
567
|
+
placeholder="Select user groups..."
|
|
568
|
+
searchPlaceholder="Search groups and members..."
|
|
569
|
+
treeData={userGroups}
|
|
570
|
+
defaultSelectedKeys={['design', 'engineering:ada']}
|
|
571
|
+
defaultExpandedKeys={['engineering']}
|
|
572
|
+
onSelectionChange={(keys) => console.log(keys)}
|
|
573
|
+
/>
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
Keys must be unique across the whole tree. When one person belongs to several groups, give each occurrence its own key (`engineering:ada`, `support:ada`) and map the keys back to people in `onSelectionChange`.
|
|
577
|
+
|
|
527
578
|
### Loading Items
|
|
528
579
|
|
|
529
580
|
Use `isLoadingItems` to indicate that items are currently being fetched. Unlike `isLoading`, the trigger stays enabled so users can still open the popover and interact with items that have already loaded. A loading spinner appears in the search input suffix.
|
|
@@ -606,6 +657,16 @@ const [keyOrder, setKeyOrder] = useState([
|
|
|
606
657
|
- `Home/End` - Navigate to first/last option
|
|
607
658
|
- `Alt+ArrowUp` / `Alt+ArrowDown` - Reorder the focused item (when `isReorderable`)
|
|
608
659
|
|
|
660
|
+
With `treeData`, focus stays in the search input and the keys drive the active row:
|
|
661
|
+
|
|
662
|
+
- `Arrow Up/Down` - Move the active row
|
|
663
|
+
- `Home/End`, `Page Up/Page Down` - Move the active row to the first or last row
|
|
664
|
+
- `Arrow Right` - Expands the active row, or moves to its first child when it is open. With text in the search, only when the caret is at the end
|
|
665
|
+
- `Arrow Left` - Collapses the active row, or moves to its parent. With text in the search, only when the caret is at the start
|
|
666
|
+
- `Space` - Toggles the active row while the search is empty; otherwise types a space
|
|
667
|
+
- `Enter` - Toggles the active row and closes the popover
|
|
668
|
+
- `Escape` - Clears the search, then closes the popover
|
|
669
|
+
|
|
609
670
|
### Screen Reader Support
|
|
610
671
|
|
|
611
672
|
- Trigger button announces current selection state
|
|
@@ -622,6 +683,8 @@ const [keyOrder, setKeyOrder] = useState([
|
|
|
622
683
|
- `aria-controls` - References the popover while it is open
|
|
623
684
|
- `aria-describedby` - Associates help text and descriptions
|
|
624
685
|
|
|
686
|
+
In tree mode, the search input is a `combobox` with `aria-haspopup="tree"`, `aria-controls` naming the tree while it has rows, and `aria-activedescendant` naming the active row. Each row reports its level, position and expansion, and its checkbox reports checked, not checked or mixed. Nothing in the tree is a tab stop, so `Tab` moves from the search to the footer.
|
|
687
|
+
|
|
625
688
|
## Best Practices
|
|
626
689
|
|
|
627
690
|
1. **Do**: Provide clear, descriptive labels for the trigger
|