@cube-dev/ui-kit 0.195.0 → 0.196.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/dist/CHANGELOG.md +174 -0
- 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 +1 -1
- package/dist/components/Root.d.ts +6 -0
- package/dist/components/Root.js +125 -102
- package/dist/components/Root.js.map +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 +11 -5
- package/dist/components/actions/Button/Button.js.map +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.d.ts +9 -4
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +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 +27 -25
- package/dist/components/actions/ItemAction/ItemAction.js.map +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 +7 -4
- package/dist/components/actions/Menu/MenuCollectionItem.js.map +1 -1
- package/dist/components/actions/Menu/MenuItem.js +69 -60
- package/dist/components/actions/Menu/MenuItem.js.map +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 -4
- package/dist/components/actions/Menu/styled.js.map +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 +15 -14
- package/dist/components/actions/use-action.js.map +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.d.ts +8 -8
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider.js +1 -1
- 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 +16 -4
- package/dist/components/content/Item/Item.js.map +1 -1
- package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +7 -3
- package/dist/components/content/ItemBadge/ItemBadge.js.map +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 +29 -15
- package/dist/components/content/Layout/Layout.js.map +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 +20 -10
- package/dist/components/content/Layout/LayoutContext.js.map +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +12 -9
- package/dist/components/content/Layout/LayoutFooter.js.map +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.d.ts +4 -2
- package/dist/components/content/Layout/LayoutPanel.js +73 -2
- package/dist/components/content/Layout/LayoutPanel.js.map +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.d.ts +14 -14
- 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 +1 -1
- package/dist/components/content/Tree/TreeNode.js +2 -1
- package/dist/components/content/Tree/TreeNode.js.map +1 -1
- package/dist/components/content/Tree/styled.js +1 -1
- package/dist/components/content/Tree/tree-index.js +1 -1
- package/dist/components/content/Tree/use-checkbox-tree.js +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 +3 -3
- package/dist/components/content/use-auto-tooltip.js.map +1 -1
- package/dist/components/data/DataTable/DataTable.js +1 -1
- package/dist/components/data/ItemTable/ItemTable.js +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 +2 -1
- package/dist/components/data/ItemTable/ItemTableToolbar.js.map +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/TableView.js +3 -1
- 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 +1 -1
- 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/fields/Checkbox/Checkbox.js +2 -2
- package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +5 -5
- 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.js +1 -1
- package/dist/components/fields/ColorPicker/ColorPicker.js +3 -1
- 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.js +2 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
- package/dist/components/fields/ComboBox/ComboBox.d.ts +27 -7
- package/dist/components/fields/ComboBox/ComboBox.js +1095 -619
- package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/fields/ComboBox/comboBoxOptions.js +84 -0
- package/dist/components/fields/ComboBox/comboBoxOptions.js.map +1 -0
- package/dist/components/fields/CommandTextArea/CommandTextArea.js +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.js +1 -1
- package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
- package/dist/components/fields/DatePicker/DatePicker.js +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.js +1 -1
- package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
- package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
- package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
- package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
- package/dist/components/fields/DatePicker/TimeInput.js +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.d.ts +7 -0
- package/dist/components/fields/DatePicker/parseDate.js +17 -3
- package/dist/components/fields/DatePicker/parseDate.js.map +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.js +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +2 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +15 -6
- package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
- package/dist/components/fields/Input/Input.d.ts +2 -2
- package/dist/components/fields/Input/Input.js +2 -2
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.d.ts +10 -4
- package/dist/components/fields/ListBox/ListBox.js +298 -146
- 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 +150 -139
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +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.d.ts +6 -1
- package/dist/components/fields/NumberInput/NumberInput.js +136 -128
- package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +38 -48
- package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.d.ts +1 -2
- package/dist/components/fields/PasswordInput/PasswordInput.js +77 -111
- package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
- package/dist/components/fields/Picker/Picker.d.ts +1 -1
- package/dist/components/fields/Picker/Picker.js +22 -8
- package/dist/components/fields/Picker/Picker.js.map +1 -1
- package/dist/components/fields/RadioGroup/Radio.d.ts +12 -12
- package/dist/components/fields/RadioGroup/Radio.js +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +2 -2
- package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -6
- package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
- package/dist/components/fields/SearchInput/SearchInput.d.ts +8 -3
- package/dist/components/fields/SearchInput/SearchInput.js +22 -34
- package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
- package/dist/components/fields/Select/Select.d.ts +12 -1
- package/dist/components/fields/Select/Select.js +365 -207
- 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 +3 -4
- package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
- package/dist/components/fields/Slider/Slider.js +1 -1
- package/dist/components/fields/Slider/SliderBase.js +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/Switch/Switch.js +1 -1
- package/dist/components/fields/TagInput/TagInput.js +2 -2
- 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.d.ts +0 -1
- package/dist/components/fields/TextArea/TextArea.js +49 -63
- package/dist/components/fields/TextArea/TextArea.js.map +1 -1
- package/dist/components/fields/TextInput/TextInput.d.ts +1 -1
- package/dist/components/fields/TextInput/TextInput.js +42 -46
- package/dist/components/fields/TextInput/TextInput.js.map +1 -1
- package/dist/components/fields/TextInput/TextInputBase.d.ts +6 -2
- package/dist/components/fields/TextInput/TextInputBase.js +32 -10
- package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
- package/dist/components/fields/TextInput/displayed-validation.js +50 -0
- package/dist/components/fields/TextInput/displayed-validation.js.map +1 -0
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +20 -17
- package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
- package/dist/components/fields/TriggerActions.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +3 -1
- package/dist/components/fields/color/ColorPanel.js.map +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 +78 -0
- package/dist/components/fields/option-origin-press.js.map +1 -0
- package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +10 -8
- package/dist/components/form/FieldWrapper/FieldWrapper.js +214 -159
- package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
- package/dist/components/form/FieldWrapper/field-description.js +3 -3
- package/dist/components/form/FieldWrapper/field-description.js.map +1 -1
- package/dist/components/form/FieldWrapper/types.d.ts +4 -3
- 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 +21 -33
- package/dist/components/form/Form/use-field/use-field-props.js.map +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 +4 -34
- package/dist/components/form/field-chrome.js.map +1 -1
- package/dist/components/form/legacy-tooltip.js +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.d.ts +6 -17
- package/dist/components/form/wrapper.js +6 -14
- 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 +3 -1
- package/dist/components/navigation/Pagination/Pagination.js.map +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 +2 -1
- package/dist/components/navigation/Tabs/TabPicker.js.map +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 +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.d.ts +6 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +3 -2
- package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +3 -2
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +28 -14
- package/dist/components/overlays/Dialog/Dialog.js.map +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.d.ts +7 -3
- package/dist/components/overlays/Dialog/DialogTrigger.js +149 -132
- package/dist/components/overlays/Dialog/DialogTrigger.js.map +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 +83 -0
- package/dist/components/overlays/Dialog/use-dialog-open-sync.js.map +1 -0
- 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 +9 -3
- package/dist/components/overlays/Modal/Overlay.js.map +1 -1
- package/dist/components/overlays/Modal/Popover.js +31 -29
- package/dist/components/overlays/Modal/Popover.js.map +1 -1
- package/dist/components/overlays/Modal/Tray.js +2 -1
- package/dist/components/overlays/Modal/Tray.js.map +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 +18 -32
- package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +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.d.ts +8 -0
- package/dist/components/overlays/Tooltip/Tooltip.js +16 -22
- package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
- package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.d.ts +1 -1
- package/dist/components/overlays/Tooltip/TooltipTrigger.js +163 -113
- package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/overlays/Tooltip/context.js.map +1 -1
- package/dist/components/overlays/Tooltip/split-trigger-props.js +6 -5
- package/dist/components/overlays/Tooltip/split-trigger-props.js.map +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 +11 -17
- 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 +6 -4
- package/dist/i18n/locales/en-US/uikit.js +6 -4
- package/dist/i18n/locales/en-US/uikit.json.d.ts +3 -1
- package/dist/i18n/locales/es-ES/uikit.js +6 -4
- package/dist/i18n/locales/es-MX/uikit.js +6 -4
- package/dist/i18n/locales/fr-FR/uikit.js +6 -4
- package/dist/i18n/locales/it-IT/uikit.js +6 -4
- package/dist/i18n/locales/ja-JP/uikit.js +6 -4
- package/dist/i18n/locales/nb-NO/uikit.js +6 -4
- package/dist/i18n/locales/pt-BR/uikit.js +6 -4
- package/dist/i18n/locales/pt-PT/uikit.js +6 -4
- package/dist/i18n/locales/sv-SE/uikit.js +6 -4
- package/dist/i18n/locales/vi-VN/uikit.js +6 -4
- 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 +1 -1
- package/dist/index.js +2 -2
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigation-url.js +15 -3
- package/dist/providers/navigation-url.js.map +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/providers/use-navigation.js +1 -1
- package/dist/shared/form.d.ts +11 -12
- 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 +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 +18 -9
- package/dist/utils/react/nullableValue.js.map +1 -1
- package/dist/utils/react/overlayKeyPropagation.js +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/ComplexLayout.md +1 -1
- package/docs/CreateComponent.md +2 -0
- package/docs/FieldProperties.md +31 -6
- package/docs/Theming.md +2 -1
- package/docs/Usage.md +2 -0
- package/docs/components/Root.md +1 -1
- package/docs/components/actions/Button.md +8 -2
- package/docs/components/actions/ButtonSplit.md +27 -1
- package/docs/components/actions/Link.md +1 -1
- package/docs/components/actions/Menu.md +4 -2
- package/docs/components/content/InfoBadge.md +2 -0
- package/docs/components/content/ItemBadge.md +4 -0
- package/docs/components/content/Layout.md +10 -5
- package/docs/components/fields/ComboBox.md +30 -19
- package/docs/components/fields/FilterListBox.md +2 -2
- package/docs/components/fields/FilterPicker.md +2 -2
- package/docs/components/fields/ListBox.md +14 -10
- package/docs/components/fields/NumberInput.md +20 -11
- package/docs/components/fields/PasswordInput.md +6 -7
- package/docs/components/fields/Picker.md +6 -5
- package/docs/components/fields/RadioGroup.md +1 -1
- package/docs/components/fields/SearchInput.md +7 -6
- package/docs/components/fields/Select.md +14 -8
- package/docs/components/fields/TagInput.md +8 -1
- package/docs/components/fields/TextArea.md +4 -3
- package/docs/components/fields/TextInput.md +13 -6
- package/docs/components/overlays/AlertDialog.md +7 -1
- package/docs/components/overlays/Dialog.md +5 -5
- package/docs/components/overlays/DialogTrigger.md +6 -6
- package/docs/components/overlays/Tooltip.md +17 -6
- package/docs/components/overlays/TooltipTrigger.md +2 -0
- package/package.json +1 -1
|
@@ -16,13 +16,14 @@ A number input component that allows users to enter numeric values and increment
|
|
|
16
16
|
|
|
17
17
|
### Properties
|
|
18
18
|
|
|
19
|
-
- **`value`** `number` — The numeric value in controlled mode
|
|
19
|
+
- **`value`** `number | null` — The numeric value in controlled mode. `null` clears the field and keeps it controlled
|
|
20
20
|
- **`defaultValue`** `number` — The default numeric value in uncontrolled mode
|
|
21
21
|
- **`placeholder`** `string` — Placeholder text when input is empty
|
|
22
22
|
- **`icon`** `ReactElement` — Icon element rendered before the input
|
|
23
23
|
- **`prefix`** — Input decoration before the main input
|
|
24
24
|
- **`suffix`** — Input decoration after the main input
|
|
25
|
-
- **`suffixPosition`** `'before' | 'after'` (default: `before`) — Position of suffix relative to validation/loading
|
|
25
|
+
- **`suffixPosition`** `'before' | 'after'` (default: `before`) — Position of `suffix` relative to the stepper buttons. `before` keeps a unit next to the number (`40 px ⌃⌄`); `after` places the suffix after the steppers. The validation/loading icon always comes before both
|
|
26
|
+
- **`actions`** `ReactNode` — Controls placed last, after the steppers and `suffix` whatever `suffixPosition` is
|
|
26
27
|
- **`hideStepper`** `boolean` (default: `false`) — Whether to hide the stepper buttons
|
|
27
28
|
- **`minValue`** `number` — Minimum allowed value
|
|
28
29
|
- **`maxValue`** `number` — Maximum allowed value
|
|
@@ -31,10 +32,11 @@ A number input component that allows users to enter numeric values and increment
|
|
|
31
32
|
- **`size`** `'small' | 'medium' | 'large'` (default: `medium`) — Input size
|
|
32
33
|
- **`autoComplete`** `string` (default: `off`) — HTML [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) token that tells the browser what to autofill (`cc-number`, `one-time-code`, …). A number field opts out of autofill by default.
|
|
33
34
|
- **`isWheelDisabled`** `boolean` — Whether scrolling the mouse wheel changes the value
|
|
34
|
-
- **`decrementAriaLabel`** `string` — Custom aria-label for the decrement button
|
|
35
|
-
- **`incrementAriaLabel`** `string` — Custom aria-label for the increment button
|
|
35
|
+
- **`decrementAriaLabel`** `string` — Custom aria-label for the decrement button, in place of the translated "Decrease {label}"
|
|
36
|
+
- **`incrementAriaLabel`** `string` — Custom aria-label for the increment button, in place of the translated "Increase {label}"
|
|
36
37
|
- **`inputProps`** `Props` — Direct props passed to the native input element, merged over the props React Aria generates: a key you set wins, and event handlers are chained rather than replaced
|
|
37
|
-
- **`wrapperProps`** `Props` — Direct props passed to the input wrapper element
|
|
38
|
+
- **`wrapperProps`** `Props` — Direct props passed to the input wrapper element, merged with the `group` props React Aria puts there: event handlers are chained
|
|
39
|
+
- **`validate`** `(value: number) => ValidationError | true | null | undefined` — Client-side validation. React Aria sets `aria-invalid` from the returned errors at once; the invalid style and the message follow after the user edits or leaves the field, so an empty field does not open in red. A typed number is checked once it commits, on blur or `Enter`. An explicit `errorMessage` replaces the returned message, and an explicit `isInvalid` (or a form's validation) takes over from `validate` entirely
|
|
38
40
|
- **`onChange`** `function` — Callback fired when the input value changes
|
|
39
41
|
- **`onBlur`** `function` — Callback fired when the input loses focus
|
|
40
42
|
- **`onFocus`** `function` — Callback fired when the input receives focus
|
|
@@ -109,7 +111,7 @@ The `mods` prop accepts the following modifiers you can override:
|
|
|
109
111
|
- **`disabled`** `boolean` — Forces disabled appearance.
|
|
110
112
|
- **`invalid`** `boolean` — Forces invalid state styling.
|
|
111
113
|
- **`valid`** `boolean` — Forces valid state styling.
|
|
112
|
-
- **`
|
|
114
|
+
- **`hovered`** `boolean` — Forces hover appearance.
|
|
113
115
|
- **`prefix`** `boolean` — Indicates presence of prefix content.
|
|
114
116
|
- **`suffix`** `boolean` — Indicates presence of suffix content.
|
|
115
117
|
|
|
@@ -139,6 +141,14 @@ The `mods` prop accepts the following modifiers you can override:
|
|
|
139
141
|
<NumberInput label="Amount" hideStepper />
|
|
140
142
|
```
|
|
141
143
|
|
|
144
|
+
### With a Unit Suffix
|
|
145
|
+
|
|
146
|
+
A unit sits between the number and the steppers. Pass `suffixPosition="after"` to put the suffix after the steppers instead.
|
|
147
|
+
|
|
148
|
+
```jsx
|
|
149
|
+
<NumberInput label="Width" defaultValue={40} suffix={<Text>px</Text>} />
|
|
150
|
+
```
|
|
151
|
+
|
|
142
152
|
### With Min/Max/Step
|
|
143
153
|
|
|
144
154
|
```jsx
|
|
@@ -169,17 +179,16 @@ The `mods` prop accepts the following modifiers you can override:
|
|
|
169
179
|
|
|
170
180
|
### Screen Reader Support
|
|
171
181
|
|
|
172
|
-
- Announces
|
|
173
|
-
-
|
|
174
|
-
- Announces min/max/step constraints
|
|
182
|
+
- Announces a text field described as "Number field", with its label, description and validation messages
|
|
183
|
+
- The stepper buttons are named after the field ("Increase Quantity", "Decrease Quantity"), translated with the UI Kit locale. With a label that is not text, the name is "Increase" or "Decrease" and the label is read after it. They are not in the `Tab` order, and pressing one does not close a popover the field sits in
|
|
175
184
|
- State changes like "invalid" or "required" are announced
|
|
176
|
-
-
|
|
185
|
+
- The loading indicator is visual only: `isLoading` is not announced
|
|
177
186
|
|
|
178
187
|
### ARIA Properties
|
|
179
188
|
|
|
180
189
|
- `aria-label`, `aria-labelledby` – Accessible name for the input
|
|
181
190
|
- `aria-describedby` – Links to description and error messages
|
|
182
|
-
- `aria-invalid` – Managed automatically based on `isInvalid`
|
|
191
|
+
- `aria-invalid` – Managed automatically based on `isInvalid` and `validate`
|
|
183
192
|
- `aria-required` – Set when `isRequired` is true
|
|
184
193
|
- Additional ARIA attributes supported by React Aria's `useNumberField`
|
|
185
194
|
|
|
@@ -16,7 +16,7 @@ A password input is a specialized text field that masks user input to protect se
|
|
|
16
16
|
|
|
17
17
|
### Properties
|
|
18
18
|
|
|
19
|
-
- **`value`** `string` — The password value in controlled mode
|
|
19
|
+
- **`value`** `string | null` — The password value in controlled mode. `null` clears the field and keeps it controlled
|
|
20
20
|
- **`defaultValue`** `string` — The default password value in uncontrolled mode
|
|
21
21
|
- **`isBuffered`** `boolean` (default: `true`) — Whether typed text is held locally until the controlled `value` catches up. This is what keeps the caret in place when the value round-trips through a store that re-renders a pass late; `onChange` still fires on every keystroke. Set to `false` for a caller that must see the field snap back to its own `value` the moment it declines a keystroke.
|
|
22
22
|
- **`placeholder`** `string` — Placeholder text when input is empty
|
|
@@ -26,7 +26,7 @@ A password input is a specialized text field that masks user input to protect se
|
|
|
26
26
|
- **`suffixPosition`** `'before' | 'after'` (default: `after`) — Position of suffix relative to validation/loading icons
|
|
27
27
|
- **`size`** `'small' | 'medium' | 'large'` (default: `medium`) — Input size
|
|
28
28
|
- **`autoComplete`** `string` — HTML [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) token that tells the browser what to autofill (`current-password`, `new-password`, `off`, …). The lowercase `autocomplete` alias is deprecated.
|
|
29
|
-
- **`inputProps`** `Props` — Direct props passed to the native input element, merged over the props React Aria generates: a key you set wins, and event handlers are chained rather than replaced
|
|
29
|
+
- **`inputProps`** `Props` — Direct props passed to the native input element, merged over the props React Aria generates: a key you set wins, and event handlers are chained rather than replaced. The explicit `isDisabled`, `maxLength`, `minLength`, `autoFocus` and `autoComplete` props win over the same attributes in `inputProps` when they are set; one left unset keeps the `inputProps` value
|
|
30
30
|
- **`wrapperProps`** `Props` — Direct props passed to the input wrapper element
|
|
31
31
|
- **`onChange`** `function` — Callback fired when the input value changes
|
|
32
32
|
- **`onBlur`** `function` — Callback fired when the input loses focus
|
|
@@ -186,8 +186,8 @@ The `mods` property accepts the following modifiers you can override:
|
|
|
186
186
|
|
|
187
187
|
### Keyboard Navigation
|
|
188
188
|
|
|
189
|
-
- `Tab` - Moves focus to the password input
|
|
190
|
-
- `Shift + Tab` - Moves focus
|
|
189
|
+
- `Tab` - Moves focus to the password input, then to the toggle button, which comes after it
|
|
190
|
+
- `Shift + Tab` - Moves focus from the toggle button back to the input
|
|
191
191
|
- `Enter` - Toggles password visibility when toggle button is focused
|
|
192
192
|
- `Space` - Toggles password visibility when toggle button is focused
|
|
193
193
|
- All standard text input keyboard shortcuts work for text entry
|
|
@@ -195,8 +195,7 @@ The `mods` property accepts the following modifiers you can override:
|
|
|
195
195
|
### Screen Reader Support
|
|
196
196
|
|
|
197
197
|
- Component announces as "password" input type to screen readers
|
|
198
|
-
-
|
|
199
|
-
- Current visibility state is communicated when changed
|
|
198
|
+
- The toggle is a toggle button named "Show password" (translated with the UI Kit locale). Its name stays the same, and `aria-pressed` reports whether the password is shown: "Show password, pressed" while it is visible, "Show password, not pressed" while it is masked
|
|
200
199
|
- Validation errors and requirements are announced
|
|
201
200
|
|
|
202
201
|
### ARIA Properties
|
|
@@ -206,7 +205,7 @@ The `mods` property accepts the following modifiers you can override:
|
|
|
206
205
|
- `aria-describedby` - References additional descriptive text
|
|
207
206
|
- `aria-invalid` - Indicates validation state
|
|
208
207
|
- `aria-required` - Indicates if password entry is required
|
|
209
|
-
-
|
|
208
|
+
- The toggle button has `aria-label="Show password"` and `aria-pressed`, `true` while the password is shown
|
|
210
209
|
|
|
211
210
|
## Best Practices
|
|
212
211
|
|
|
@@ -629,9 +629,9 @@ The Picker component is built with React Aria hooks and provides comprehensive a
|
|
|
629
629
|
|
|
630
630
|
### Screen Reader Support
|
|
631
631
|
|
|
632
|
-
-
|
|
633
|
-
-
|
|
634
|
-
-
|
|
632
|
+
- The trigger is a button named by the field `label` (or `aria-label`), so its name does not change with the selection
|
|
633
|
+
- The value the trigger shows is its description, announced after the name: the selected item(s), the `renderSummary` output, or the placeholder while empty (for example "Status, button, Open")
|
|
634
|
+
- With `renderSummary={false}` the trigger shows no value, so it has no value description
|
|
635
635
|
- Popover opening/closing is announced to screen readers
|
|
636
636
|
- Item selection changes are announced immediately
|
|
637
637
|
- Loading state announces "loading" to users
|
|
@@ -644,9 +644,10 @@ The component automatically manages ARIA attributes:
|
|
|
644
644
|
|
|
645
645
|
- **`aria-label`** — Labels the trigger when no visible label exists
|
|
646
646
|
- **`aria-labelledby`** — Associates the label with the trigger
|
|
647
|
-
- **`aria-describedby`** — Associates help text and error messages
|
|
647
|
+
- **`aria-describedby`** — Associates the displayed value, then help text and error messages
|
|
648
|
+
- **`aria-haspopup="dialog"`** — The trigger opens a popover dialog that holds the list
|
|
648
649
|
|
|
649
|
-
The
|
|
650
|
+
The trigger also sets `aria-expanded`, and `aria-controls` while the popover is open; none of these need to be set manually. A disabled Picker disables the trigger button.
|
|
650
651
|
|
|
651
652
|
### Best Practices for Accessibility
|
|
652
653
|
|
|
@@ -29,7 +29,7 @@ If the control is not a field — a toolbar that swaps which view is on screen,
|
|
|
29
29
|
### Properties
|
|
30
30
|
|
|
31
31
|
- **`children`** — Radio elements that define the available options
|
|
32
|
-
- **`value`** `string` — The currently selected value (controlled)
|
|
32
|
+
- **`value`** `string | null` — The currently selected value (controlled). `null` selects nothing and keeps the group controlled
|
|
33
33
|
- **`defaultValue`** `string` — The default selected value (uncontrolled)
|
|
34
34
|
- **`type`** `'radio' | 'button' | 'tabs'` (default: `radio`) — Visual type for all radios in the group (button/tabs default to horizontal)
|
|
35
35
|
- **`orientation`** `undefined | 'vertical' | 'horizontal'` (default: `undefined`) — Orientation of the radio group. When unset it is derived from `type`: `horizontal` for `button` and `tabs`, `vertical` otherwise
|
|
@@ -16,7 +16,7 @@ A search input provides a specialized text field for search functionality, featu
|
|
|
16
16
|
|
|
17
17
|
### Properties
|
|
18
18
|
|
|
19
|
-
- **`value`** `string` — The search value in controlled mode
|
|
19
|
+
- **`value`** `string | null` — The search value in controlled mode. `null` clears the field and keeps it controlled
|
|
20
20
|
- **`defaultValue`** `string` — The default search value in uncontrolled mode
|
|
21
21
|
- **`isBuffered`** `boolean` (default: `true`) — Whether typed text is held locally until the controlled `value` catches up. This is what keeps the caret in place when the value round-trips through a store that re-renders a pass late; `onChange` still fires on every keystroke. Set to `false` for a caller that must see the field snap back to its own `value` the moment it declines a keystroke.
|
|
22
22
|
- **`placeholder`** `string` — Placeholder text when input is empty
|
|
@@ -24,14 +24,15 @@ A search input provides a specialized text field for search functionality, featu
|
|
|
24
24
|
- **`prefix`** `ReactNode` — Content rendered before the input
|
|
25
25
|
- **`suffix`** — Input decoration after the main input (before clear button)
|
|
26
26
|
- **`suffixPosition`** `'before' | 'after'` (default: `after`) — Position of suffix relative to validation/loading state icons
|
|
27
|
-
- **`isClearable`** `boolean` (default: `false`) — Whether the search input shows a clear button
|
|
27
|
+
- **`isClearable`** `boolean` (default: `false`) — Whether the search input shows a clear button while it has text. `Escape` clears the input either way
|
|
28
28
|
- **`size`** `'small' | 'medium' | 'large'` (default: `medium`) — Input size
|
|
29
29
|
- **`autoComplete`** `string` — HTML [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) token that tells the browser what to autofill (`off` to suppress autofill on a filter field). The lowercase `autocomplete` alias is deprecated.
|
|
30
30
|
- **`inputProps`** `Props` — Direct props passed to the native input element, merged over the props React Aria generates: a key you set wins, and event handlers are chained rather than replaced
|
|
31
31
|
- **`wrapperProps`** `Props` — Direct props passed to the input wrapper element
|
|
32
|
+
- **`inputRef`** `RefObject<HTMLInputElement>` — Ref to the native input element. It is the same element the clear button returns focus to
|
|
32
33
|
- **`onChange`** `function` — Callback fired when the search value changes
|
|
33
34
|
- **`onSubmit`** `function` — Callback fired when search is submitted
|
|
34
|
-
- **`onClear`** `function` — Callback fired
|
|
35
|
+
- **`onClear`** `function` — Callback fired after the text is cleared, by the clear button or by `Escape`. Not called when there was no text to clear
|
|
35
36
|
- **`onBlur`** `function` — Callback fired when the input loses focus
|
|
36
37
|
- **`onFocus`** `function` — Callback fired when the input receives focus
|
|
37
38
|
|
|
@@ -179,8 +180,8 @@ const [searchValue, setSearchValue] = useState('');
|
|
|
179
180
|
|
|
180
181
|
### Keyboard Navigation
|
|
181
182
|
|
|
182
|
-
- `Tab` - Moves focus to the search input
|
|
183
|
-
- `Escape` - Clears the search input
|
|
183
|
+
- `Tab` - Moves focus to the search input. The clear button is skipped: it is not in the `Tab` order
|
|
184
|
+
- `Escape` - Clears the search input and calls `onClear`, whether or not `isClearable` is set, as in a native search field. With the input already empty, `Escape` is left to the surrounding UI, so a `Dialog` closes on the next press
|
|
184
185
|
- `Enter` - Submits search or triggers onSubmit callback
|
|
185
186
|
- All standard text input keyboard shortcuts work for text entry
|
|
186
187
|
|
|
@@ -189,7 +190,7 @@ const [searchValue, setSearchValue] = useState('');
|
|
|
189
190
|
- Component announces as "search" input type to screen readers
|
|
190
191
|
- Search icon and clear button have appropriate labels
|
|
191
192
|
- Current search value and results count are announced when available
|
|
192
|
-
-
|
|
193
|
+
- `isInvalid` sets `aria-invalid` on the input. The loading indicator is visual only: `isLoading` is not announced
|
|
193
194
|
|
|
194
195
|
### ARIA Properties
|
|
195
196
|
|
|
@@ -35,7 +35,7 @@ Choose a different component when the interaction has another shape:
|
|
|
35
35
|
- **`suffixPosition`** `string` (default: `before`) — Position of suffix relative to validation icons
|
|
36
36
|
- **`type`** `string` (default: `outline`) — Visual style variant of the select
|
|
37
37
|
- **`theme`** `string` (default: `default`) — Theme variant affecting overall styling
|
|
38
|
-
- **`size`** `string` (default: `medium`) — Size of the
|
|
38
|
+
- **`size`** `string` (default: `medium`) — Size of the trigger and of the options in its list (a `small` trigger opens `medium` options)
|
|
39
39
|
- **`direction`** `string` (default: `bottom`) — Preferred direction for the dropdown menu
|
|
40
40
|
- **`isClearable`** `boolean` (default: `false`) — Whether the select is clearable using a clear button in the rightIcon slot
|
|
41
41
|
- **`clearLabel`** `string` — Accessible name for the built-in clear button. Defaults to a localized "Clear value".
|
|
@@ -48,10 +48,10 @@ Choose a different component when the interaction has another shape:
|
|
|
48
48
|
- **`disabledKeys`** `Iterable<Key>` — Keys of items that are disabled
|
|
49
49
|
- **`children`** `ReactNode | (item: T) => ReactElement` — Static child items or render function for dynamic items
|
|
50
50
|
- **`triggerRef`** `RefObject<HTMLButtonElement>` — Ref for the trigger button element
|
|
51
|
-
- **`popoverRef`** `RefObject<
|
|
51
|
+
- **`popoverRef`** `RefObject<HTMLElement | null>` — Ref for the popover overlay element
|
|
52
52
|
- **`listBoxRef`** `RefObject<HTMLElement>` — Ref for the list box element
|
|
53
|
-
- **`
|
|
54
|
-
- **`
|
|
53
|
+
- **`isLoading`** `boolean` — Shows a loading indicator in the trigger and fixes the value until loading ends
|
|
54
|
+
- **`loadingIndicator`** `ReactNode` — Replaces the default loading icon shown while `isLoading` is set
|
|
55
55
|
- **`styles`** `Styles` — Styles for the root wrapper element
|
|
56
56
|
- **`inputStyles`** `Styles` — Styles for the input trigger element
|
|
57
57
|
- **`listBoxStyles`** `Styles` — Styles for the dropdown list container
|
|
@@ -59,7 +59,8 @@ Choose a different component when the interaction has another shape:
|
|
|
59
59
|
- **`listGap`** `number` — Space between options, in pixels. Defaults to a hairline (`1bw`)
|
|
60
60
|
- **`overlayStyles`** `Styles` — Styles for the dropdown overlay wrapper
|
|
61
61
|
- **`triggerStyles`** `Styles` — Styles for the trigger button element
|
|
62
|
-
- **`inputProps`** `Props` — Additional props for the
|
|
62
|
+
- **`inputProps`** `Props` — Additional props for the trigger button element
|
|
63
|
+
- **`autoFocus`** `boolean` — Focuses the trigger when it mounts
|
|
63
64
|
- **`triggerDescription`** `ReactNode` — Description text displayed within the trigger button (different from field-level description)
|
|
64
65
|
- **`descriptionPlacement`** `'inline' | 'block'` — Controls how the trigger description is positioned
|
|
65
66
|
- **`hotkeys`** `string` — Keyboard shortcut that triggers the select when pressed
|
|
@@ -83,6 +84,8 @@ Choose a different component when the interaction has another shape:
|
|
|
83
84
|
|
|
84
85
|
**onClear** - Callback fired when the clear button is pressed, allowing you to perform custom actions when the selection is cleared.
|
|
85
86
|
|
|
87
|
+
**isReadOnly** and **isLoading** - The trigger stays focusable and keeps its accessible name, but the value can't change: the list doesn't open, typeahead and the arrow keys don't pick another option, and the clear button is hidden. If either one, or `isDisabled`, turns on while the list is open, the list closes.
|
|
88
|
+
|
|
86
89
|
**actions** - Your own controls inside the trigger, rendered to the left of the built-in clear button and dropdown caret. Pressing one runs its handler without opening or closing the popover — including while the popover is open — so an action can do something the clear button cannot, such as restoring a default selection instead of emptying it. Use `Select.Action` so they match the trigger's size and theme. Actions follow the trigger's disabled state but not `isReadOnly`; pass `isDisabled` yourself for an action that changes the value.
|
|
87
90
|
|
|
88
91
|
**tooltip** - Enables tooltip display on the trigger button. Can be:
|
|
@@ -524,15 +527,18 @@ const groups = [
|
|
|
524
527
|
### Keyboard Navigation
|
|
525
528
|
|
|
526
529
|
- `Tab` - Moves focus to the select
|
|
527
|
-
- `Space/Enter` - Opens the dropdown
|
|
528
|
-
- `Arrow Down` - Opens dropdown
|
|
529
|
-
- `Arrow Up` -
|
|
530
|
+
- `Space/Enter` - Opens the dropdown on the selected option, or the first one
|
|
531
|
+
- `Arrow Down` - Opens the dropdown on the selected option, or the first one; moves to the next option when open
|
|
532
|
+
- `Arrow Up` - Opens the dropdown on the last option; moves to the previous option when open
|
|
533
|
+
- `Page Down/Page Up` - Moves about one visible page of options
|
|
530
534
|
- `Home` - Moves to first option
|
|
531
535
|
- `End` - Moves to last option
|
|
532
536
|
- `Escape` - Closes dropdown without selecting
|
|
533
537
|
- `Enter` - Selects focused option and closes dropdown
|
|
534
538
|
- Typing - Navigates to options starting with typed character
|
|
535
539
|
|
|
540
|
+
Opened with a pointer, the list focuses the selected option, or the list itself when nothing is selected. The focused option is scrolled into view as the list opens.
|
|
541
|
+
|
|
536
542
|
### Screen Reader Support
|
|
537
543
|
|
|
538
544
|
- Component announces as "combobox" or "listbox" to screen readers
|
|
@@ -69,7 +69,7 @@ A multi-value field. The user types a value into a single-line input and commits
|
|
|
69
69
|
|
|
70
70
|
**tagProps** - Called per value. Return a theme, an icon or `qa` for the chip. A string `children` replaces the chip's text and also names the value in the input's description and in the "Added"/"Removed" announcements, for values whose label does not come from the options. `isDisabled: true` locks the chip: it has no remove button, the keyboard skips it, and its option cannot be unpicked. An invalid chip stays in the danger theme whatever theme it asks for.
|
|
71
71
|
|
|
72
|
-
**children / items** - Options turn the input into a combobox. Typing filters them and focuses the option the typed text names, or else the first match. Enter or a click toggles the focused option, and the popover stays open so the user can pick several in a row. A picked option is added as its own key, whatever other options its text resembles. Typed text means "add": pressing Enter on an option that is already a chip refuses it as a duplicate, and unpicking it takes the arrow keys, a click, or an empty input. A picked option shows a checked box. Typed text names an option by its exact label, then by its key, anywhere in the list, before any looser match counts, so `active` finds `active` even when `Active` comes first. Enter, a delimiter, a paste and blur all go by the same rule, and the option the text names stays listed and focused even when the filter would hide it, as when a key is typed, so they always add the same option. Without `allowsCustomValue`, typed text must name an option, and a label in another case or without its accents counts too: `production` adds `Production`. On blur a query that names nothing is dropped. With `allowsCustomValue`, only an exact match counts: `paris` next to an option `Paris` is a value of its own, offered and focused as its own row and added as typed, since a case-sensitive filter treats the two apart. A press on a control outside while the popover shows (a button, a link, another field) is not taken by it: it reaches the control, so a Save button saves on the first click, with the typed text already committed. A press anywhere else, such as the backdrop of a dialog the field sits in, only closes the popover, and the dialog
|
|
72
|
+
**children / items** - Options turn the input into a combobox. Typing filters them and focuses the option the typed text names, or else the first match. Enter or a click toggles the focused option, and the popover stays open so the user can pick several in a row. A picked option is added as its own key, whatever other options its text resembles. Typed text means "add": pressing Enter on an option that is already a chip refuses it as a duplicate, and unpicking it takes the arrow keys, a click, or an empty input. A picked option shows a checked box. Typed text names an option by its exact label, then by its key, anywhere in the list, before any looser match counts, so `active` finds `active` even when `Active` comes first. Enter, a delimiter, a paste and blur all go by the same rule, and the option the text names stays listed and focused even when the filter would hide it, as when a key is typed, so they always add the same option. Without `allowsCustomValue`, typed text must name an option, and a label in another case or without its accents counts too: `production` adds `Production`. On blur a query that names nothing is dropped. With `allowsCustomValue`, only an exact match counts: `paris` next to an option `Paris` is a value of its own, offered and focused as its own row and added as typed, since a case-sensitive filter treats the two apart. A press on a control outside while the popover shows (a button, a link, another field) is not taken by it: it reaches the control, so a Save button saves on the first click, with the typed text already committed. A press anywhere else, such as blank space in or the backdrop of a dialog the field sits in, or a control outside the dialog or popover it sits in, only closes the popover, keeps the typed text in the input, and leaves the dialog open. An enabled UI Kit `Button` or `ItemButton` is the exception: it is reached from anywhere. A press on a disabled control never commits the typed text. The typed text is offered as its own option after the matches, the same way [FilterListBox](./FilterListBox.md) does, and custom values already added are listed there too, checked and sorted, so they can be unpicked from the list as well as from their chips. One unpicked in the list stays there, unchecked, until focus leaves the field, so it can be picked back. An option in `disabledKeys` is refused however it is entered. A chip for an option shows the option's label, while the value holds its key. The label is remembered, so it survives server-side filtering (`filter={false}` with changing `items`).
|
|
73
73
|
|
|
74
74
|
### Base Properties
|
|
75
75
|
|
|
@@ -79,6 +79,13 @@ Supports [Base properties](../../BaseProperties.md)
|
|
|
79
79
|
|
|
80
80
|
Supports all [Field properties](../../FieldProperties.md)
|
|
81
81
|
|
|
82
|
+
A standalone TagInput renders field chrome by default, so refused values show their reason below the control and the input references that reason through `aria-describedby`, even without a visible `label`. No empty `message` prop is needed. A local rejection takes precedence over the ordinary field error until the draft is edited. With `isBare`, there is no visible message slot; rejection feedback is announced through the live region instead.
|
|
83
|
+
|
|
84
|
+
```jsx
|
|
85
|
+
<TagInput aria-label="Recipients" defaultValue={['ana@acme.com']} />
|
|
86
|
+
<TagInput isBare aria-label="Inline recipients" defaultValue={['ana@acme.com']} />
|
|
87
|
+
```
|
|
88
|
+
|
|
82
89
|
### Styling Properties
|
|
83
90
|
|
|
84
91
|
#### styles
|
|
@@ -37,7 +37,7 @@ These properties allow direct style application without using the `styles` prop:
|
|
|
37
37
|
- **`autoSize`** `boolean` (default: `false`) — Whether the textarea should automatically resize based on content
|
|
38
38
|
- **`maxRows`** `number` (default: `10`) — Maximum number of visible rows when `autoSize` is enabled
|
|
39
39
|
- **`rows`** `number` (default: `3`) — Number of visible text rows
|
|
40
|
-
- **`value`** `string` — The text value in controlled mode
|
|
40
|
+
- **`value`** `string | null` — The text value in controlled mode. `null` clears the field and keeps it controlled
|
|
41
41
|
- **`defaultValue`** `string` — The default text value in uncontrolled mode
|
|
42
42
|
- **`isBuffered`** `boolean` (default: `true`) — Whether typed text is held locally until the controlled `value` catches up. This is what keeps the caret in place when the value round-trips through a store that re-renders a pass late; `onChange` still fires on every keystroke. Set to `false` for a caller that must see the field snap back to its own `value` the moment it declines a keystroke.
|
|
43
43
|
- **`placeholder`** `string` — Placeholder text when input is empty
|
|
@@ -50,11 +50,12 @@ These properties allow direct style application without using the `styles` prop:
|
|
|
50
50
|
- **`autoComplete`** `string` — HTML [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) token that tells the browser what to autofill (`street-address`, `off`, …). The lowercase `autocomplete` alias is deprecated.
|
|
51
51
|
- **`maxLength`** `number` — Maximum number of characters allowed
|
|
52
52
|
- **`minLength`** `number` — Minimum number of characters required
|
|
53
|
-
- **`inputProps`** `Props` — Direct HTML props passed to the inner textarea element, merged over the props React Aria generates: a key you set wins, and event handlers are chained rather than replaced
|
|
53
|
+
- **`inputProps`** `Props` — Direct HTML props passed to the inner textarea element, merged over the props React Aria generates: a key you set wins, and event handlers are chained rather than replaced. The explicit `isDisabled`, `maxLength`, `minLength`, `autoFocus` and `autoComplete` props win over the same attributes in `inputProps` when they are set; one left unset keeps the `inputProps` value. Set the row count with `rows`, which always applies
|
|
54
54
|
- **`wrapperProps`** `Props` — Additional HTML props passed to the input wrapper container
|
|
55
55
|
- **`inputRef`** `RefObject<HTMLTextAreaElement>` — Ref to the inner textarea element
|
|
56
56
|
- **`wrapperRef`** `RefObject<HTMLDivElement>` — Ref to the input wrapper container
|
|
57
|
-
- **`loadingIndicator`** `ReactNode` —
|
|
57
|
+
- **`loadingIndicator`** `ReactNode` — Rendered in place of the default loading icon while `isLoading` is set
|
|
58
|
+
- **`validate`** `(value: string) => ValidationError | true | null | undefined` — Client-side validation. React Aria sets `aria-invalid` from the returned errors at once; the invalid style and the message follow after the user edits or leaves the field, so an empty field does not open in red. An explicit `errorMessage` replaces the returned message, and an explicit `isInvalid` (or a form's validation) takes over from `validate` entirely
|
|
58
59
|
- **`inputStyles`** `Styles` — Custom styles for the textarea element
|
|
59
60
|
- **`onChange`** `function` — Callback fired when the input value changes
|
|
60
61
|
- **`onBlur`** `function` — Callback fired when the input loses focus
|
|
@@ -16,7 +16,7 @@ A text input component that allows users to input custom text entries with a key
|
|
|
16
16
|
|
|
17
17
|
### Properties
|
|
18
18
|
|
|
19
|
-
- **`value`** `string` — The text value in controlled mode
|
|
19
|
+
- **`value`** `string | null` — The text value in controlled mode. `null` clears the field and keeps it controlled
|
|
20
20
|
- **`defaultValue`** `string` — The default text value in uncontrolled mode
|
|
21
21
|
- **`isBuffered`** `boolean` (default: `true`) — Whether typed text is held locally until the controlled `value` catches up. This is what keeps the caret in place when the value round-trips through a store that re-renders a pass late; `onChange` still fires on every keystroke. Set to `false` for a caller that must see the field snap back to its own `value` the moment it declines a keystroke.
|
|
22
22
|
- **`placeholder`** `string` — Placeholder text when input is empty
|
|
@@ -32,10 +32,11 @@ A text input component that allows users to input custom text entries with a key
|
|
|
32
32
|
- **`autoComplete`** `string` — HTML [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) token that tells the browser what to autofill (`email`, `username`, `off`, …). The lowercase `autocomplete` alias is deprecated.
|
|
33
33
|
- **`maxLength`** `number` — Maximum number of characters allowed
|
|
34
34
|
- **`minLength`** `number` — Minimum number of characters required
|
|
35
|
-
- **`inputProps`** `Props` — Direct HTML props passed to the inner input element, merged over the props React Aria generates: a key you set wins, and event handlers are chained rather than replaced
|
|
35
|
+
- **`inputProps`** `Props` — Direct HTML props passed to the inner input element, merged over the props React Aria generates: a key you set wins, and event handlers are chained rather than replaced. The explicit `isDisabled`, `maxLength`, `minLength`, `autoFocus`, `rows` and `autoComplete` props win over the same attributes in `inputProps` when they are set; one left unset keeps the `inputProps` value
|
|
36
36
|
- **`inputRef`** `RefObject<HTMLInputElement | HTMLTextAreaElement>` — Ref to the inner input element
|
|
37
37
|
- **`wrapperRef`** `RefObject<HTMLDivElement>` — Ref to the input wrapper container
|
|
38
|
-
- **`loadingIndicator`** `ReactNode` —
|
|
38
|
+
- **`loadingIndicator`** `ReactNode` — Rendered in place of the default loading icon while `isLoading` is set
|
|
39
|
+
- **`validate`** `(value: string) => ValidationError | true | null | undefined` — Client-side validation. React Aria sets `aria-invalid` from the returned errors at once; the invalid style and the message follow after the user edits or leaves the field, so an empty field does not open in red. An explicit `errorMessage` replaces the returned message, and an explicit `isInvalid` (or a form's validation) takes over from `validate` entirely
|
|
39
40
|
- **`onChange`** `function` — Callback fired when the input value changes
|
|
40
41
|
- **`onBlur`** `function` — Callback fired when the input loses focus
|
|
41
42
|
- **`onFocus`** `function` — Callback fired when the input receives focus
|
|
@@ -110,10 +111,12 @@ These properties allow direct style application without using the `styles` prop:
|
|
|
110
111
|
The `mods` prop accepts the following modifiers you can override:
|
|
111
112
|
|
|
112
113
|
- **`focused`** `boolean` — Forces focus ring appearance.
|
|
114
|
+
- **`hovered`** `boolean` — Forces hover appearance.
|
|
113
115
|
- **`disabled`** `boolean` — Forces disabled appearance.
|
|
114
116
|
- **`invalid`** `boolean` — Forces invalid state styling.
|
|
115
117
|
- **`valid`** `boolean` — Forces valid state styling.
|
|
116
|
-
- **`
|
|
118
|
+
- **`loadable`** `boolean` — Set when a `loadingIndicator` is given. The loading icon itself follows `isLoading`, which has no modifier.
|
|
119
|
+
- **`multiline`** `boolean` — Set for a multiline input.
|
|
117
120
|
- **`prefix`** `boolean` — Indicates presence of prefix content.
|
|
118
121
|
- **`suffix`** `boolean` — Indicates presence of suffix content.
|
|
119
122
|
|
|
@@ -189,18 +192,22 @@ import { IconMail } from '@tabler/icons-react';
|
|
|
189
192
|
- `Shift + Tab` – Moves focus away from the input
|
|
190
193
|
- Standard text editing shortcuts (Ctrl+A, Ctrl+C, etc.)
|
|
191
194
|
|
|
195
|
+
### Pointer
|
|
196
|
+
|
|
197
|
+
A press anywhere inside the field's border focuses the input, including the prefix and suffix areas and their icons. Presses on interactive content there, such as a button in `suffix`, stay with that content.
|
|
198
|
+
|
|
192
199
|
### Screen Reader Support
|
|
193
200
|
|
|
194
201
|
- Announces role "textbox" or "searchbox" for search inputs
|
|
195
202
|
- Announces label, description, and validation messages
|
|
196
203
|
- State changes like "invalid" or "required" are announced
|
|
197
|
-
-
|
|
204
|
+
- The loading indicator is visual only: `isLoading` is not announced, so announce a long-running check yourself if users need to hear it
|
|
198
205
|
|
|
199
206
|
### ARIA Properties
|
|
200
207
|
|
|
201
208
|
- `aria-label`, `aria-labelledby` – Accessible name for the input
|
|
202
209
|
- `aria-describedby` – Links to description and error messages
|
|
203
|
-
- `aria-invalid` – Managed automatically based on `isInvalid`
|
|
210
|
+
- `aria-invalid` – Managed automatically based on `isInvalid` and `validate`
|
|
204
211
|
- `aria-required` – Set when `isRequired` is true
|
|
205
212
|
- Additional ARIA attributes supported by React Aria's `useTextField`
|
|
206
213
|
|
|
@@ -12,7 +12,7 @@ A modal dialog for important messages that require user acknowledgment. Extends
|
|
|
12
12
|
|
|
13
13
|
- **`title`** `string` — Dialog title
|
|
14
14
|
- **`content`** `ReactNode` — Dialog body content
|
|
15
|
-
- **`danger`** `boolean` —
|
|
15
|
+
- **`danger`** `boolean` — Marks the confirm action as destructive. It gets danger styling, and the dialog opens with focus on Cancel, or on the dialog itself when there is no Cancel, so a reflexive Enter does not run it. An explicit `autoFocus` on `actions.confirm` still puts focus there. Without `danger`, the confirm button takes focus
|
|
16
16
|
- **`noActions`** `boolean` — Hide the action buttons entirely
|
|
17
17
|
- **`actions`** `object` — Customize buttons:
|
|
18
18
|
- `confirm` — Confirm button props or `false` to hide (default: `{ children: 'Ok', type: 'primary' }`)
|
|
@@ -66,6 +66,12 @@ These properties allow direct style application without using the `styles` prop:
|
|
|
66
66
|
/>
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
+
## Accessibility
|
|
70
|
+
|
|
71
|
+
- The dialog has `role="alertdialog"`. Its title is its name, and its `content` is its description (`aria-describedby`), so a screen reader reads the message when the dialog opens
|
|
72
|
+
- Focus starts on the confirm button, or on Cancel (the dialog itself without one) when `danger` is set and the confirm action does not set `autoFocus`
|
|
73
|
+
- Focus stays inside the dialog until it closes, then returns to the element that opened it
|
|
74
|
+
|
|
69
75
|
## Imperative API
|
|
70
76
|
|
|
71
77
|
`useAlertDialogAPI()` opens an alert dialog from code, such as an event handler, with no `DialogTrigger` to render. It works anywhere under `<Root>`. A dialog belongs to the component that calls the hook and closes when that component unmounts; see [The dialog's owner](#the-dialogs-owner).
|
|
@@ -183,16 +183,16 @@ The body is the `Content` that is a direct child of the dialog or of a direct-ch
|
|
|
183
183
|
|
|
184
184
|
### Screen Reader Support
|
|
185
185
|
|
|
186
|
-
- Dialog announces as "dialog" or "alertdialog" based on role
|
|
187
|
-
-
|
|
186
|
+
- Dialog announces as "dialog" or "alertdialog" based on role, with its title as its name
|
|
187
|
+
- An alert dialog also reads its `Content`, the message, as its description. A plain dialog reads only its title on open, so a form inside it is not read field by field; link a short description with `aria-describedby` when the title alone is not enough
|
|
188
|
+
- Focus moves into the dialog when it opens: to an input marked `data-autofocus`, or to a submit or primary button, otherwise to the dialog itself. In an alert dialog this never picks a destructive (`danger`) button
|
|
189
|
+
- Focus is contained within the dialog from the moment it opens, including while it animates in. A `panel` dialog does not contain focus, nor does a popover opened by a `DialogTrigger` with `isDismissable={false}`
|
|
188
190
|
- Focus returns to the trigger element when dialog closes
|
|
189
|
-
- Dialog title and content are properly announced
|
|
190
|
-
- State changes and actions are communicated to screen readers
|
|
191
191
|
|
|
192
192
|
### ARIA Properties
|
|
193
193
|
|
|
194
194
|
- `aria-labelledby` - Links dialog to its title element automatically
|
|
195
|
-
- `aria-describedby` -
|
|
195
|
+
- `aria-describedby` - Set automatically only for `role="alertdialog"`, where it links the dialog to its `Content`. A plain dialog links nothing unless you pass `aria-describedby` with the id of the element that describes it. An explicit `aria-describedby` always wins
|
|
196
196
|
- `aria-modal` - Not set. While a modal, fullscreen or tray dialog is open, the page behind it is `aria-hidden` instead, so a screen reader's reading cursor stays in the dialog. Lists, menus and popovers opened from the dialog render outside it and stay readable, which `aria-modal` would prevent. Popover and panel dialogs leave the page readable
|
|
197
197
|
- `role` - Set to "dialog" or "alertdialog" based on content type
|
|
198
198
|
|
|
@@ -19,13 +19,13 @@ DialogTrigger serves as a wrapper around a Dialog and its associated trigger, li
|
|
|
19
19
|
- **`type`** `'modal' | 'popover' | 'tray' | 'fullscreen' | 'fullscreenTakeover' | 'panel'` (default: `modal`) — The type of Dialog that should be rendered
|
|
20
20
|
- **`mobileType`** `'modal' | 'tray' | 'fullscreen' | 'fullscreenTakeover' | 'panel' | 'popover'` (default: same as `type`) — The Dialog type on mobile
|
|
21
21
|
- **`placement`** `'top' | 'bottom' | 'left' | 'right' | 'top start' | 'top end' | 'bottom start' | 'bottom end' | 'left top' | 'left bottom' | 'right top' | 'right bottom'` — The placement of the dialog relative to its trigger
|
|
22
|
-
- **`hideArrow`** `boolean`
|
|
22
|
+
- **`hideArrow`** `boolean` — **Deprecated.** Has no effect: popovers render no arrow, so there is nothing to hide
|
|
23
23
|
- **`mobileViewport`** `number` (default: `700`) — The screen breakpoint for the mobile type
|
|
24
|
-
- **`isDismissable`** `boolean` (default: `true`) — Whether passive dismissal (Escape or an outside click) can close the dialog. Explicit dialog actions, such as Submit and Cancel, can still close it.
|
|
24
|
+
- **`isDismissable`** `boolean` (default: `true`) — Whether passive dismissal (Escape or an outside click) can close the dialog. Explicit dialog actions, such as Submit and Cancel, can still close it. A popover that is not dismissable leaves outside presses alone: the control pressed still receives the press, and a text field there can take focus, because such a popover does not hold focus. It stays open when another popover opens, and closes when a modal, tray, fullscreen or panel dialog opens from another `DialogTrigger`.
|
|
25
25
|
- **`isKeyboardDismissDisabled`** `boolean` (default: `false`) — Whether pressing the escape key to close the dialog should be disabled
|
|
26
26
|
- **`isOpen`** `boolean` — Whether the dialog is open (controlled)
|
|
27
27
|
- **`defaultOpen`** `boolean` (default: `false`) — Whether the dialog is open by default (uncontrolled)
|
|
28
|
-
- **`offset`** `number` (default: `8`) — The
|
|
28
|
+
- **`offset`** `number` (default: `8`) — The gap between the trigger and a popover, along the main axis. `0` places the popover flush against the trigger
|
|
29
29
|
- **`crossOffset`** `number` (default: `0`) — The additional offset applied along the cross axis
|
|
30
30
|
- **`containerPadding`** `number` (default: `12`) — The padding between the edge of the overlay and the boundary
|
|
31
31
|
- **`shouldFlip`** `boolean` (default: `true`) — Whether the overlay should flip positions when insufficient space
|
|
@@ -33,7 +33,7 @@ DialogTrigger serves as a wrapper around a Dialog and its associated trigger, li
|
|
|
33
33
|
- **`hideOnClose`** `boolean` — Whether to hide the overlay instead of unmounting on close
|
|
34
34
|
- **`onOpenChange`** `function` — Callback fired when the dialog open state changes
|
|
35
35
|
- **`onDismiss`** `function` — Callback fired when the dialog is dismissed
|
|
36
|
-
- **`targetRef`** — The ref of the element the Dialog should visually attach itself to
|
|
36
|
+
- **`targetRef`** — The ref of the element the Dialog should visually attach itself to. A popover closes when this element scrolls, as one attached to its trigger does
|
|
37
37
|
- **`styles`** — The style map for the overlay
|
|
38
38
|
- **`shouldCloseOnInteractOutside`** `(element: Element) => boolean` — Function to determine if a popover type Dialog should close on outside interaction. Asked before every built-in dismiss behaviour, so returning `false` keeps the popover open even for a `Button` / `ItemButton` that would otherwise dismiss it, or for a control the trigger itself owns (a picker's clear button, its custom `actions`) that would otherwise be read as a press on the trigger — and the pressed control still receives its own click. The element passed is the deepest node under the pointer (for a `Button` that is the label inside it, not the `<button>`), so guard with `contains()` rather than an identity check
|
|
39
39
|
- **`shouldRestoreFocus`** `boolean` (default: `true`) — Whether focus returns to the trigger when the dialog closes. Only needed for a surface that claims focus _later_ than the restore (async load, entry animation); an action that focuses the surface it opens is already left alone — see [Focus Management](#best-practices)
|
|
@@ -158,7 +158,7 @@ function ControlledDialog() {
|
|
|
158
158
|
### Screen Reader Support
|
|
159
159
|
|
|
160
160
|
- Dialog announces as "dialog" to screen readers
|
|
161
|
-
- Focus is
|
|
161
|
+
- Focus is contained within the dialog from the moment it opens, including while it animates in. A popover with `isDismissable={false}` does not contain focus, so focus can follow a press outside it
|
|
162
162
|
- Focus returns to trigger element when dialog closes
|
|
163
163
|
- The page behind a modal, fullscreen or tray dialog is hidden from screen readers while it is open; lists, menus and popovers opened from the dialog stay readable. Popover and panel dialogs leave the page readable
|
|
164
164
|
- Proper ARIA attributes are applied automatically
|
|
@@ -168,7 +168,7 @@ function ControlledDialog() {
|
|
|
168
168
|
- `aria-haspopup` - Automatically applied to trigger element
|
|
169
169
|
- `aria-expanded` - Indicates dialog open state
|
|
170
170
|
- `aria-labelledby` - Links dialog to its title
|
|
171
|
-
- `aria-describedby` -
|
|
171
|
+
- `aria-describedby` - Set for an alert dialog, linking its message; see [Dialog](./Dialog.md#aria-properties)
|
|
172
172
|
|
|
173
173
|
## Best Practices
|
|
174
174
|
|
|
@@ -39,14 +39,14 @@ Display container for tooltip content. Has a directional arrow dependent on its
|
|
|
39
39
|
### Properties
|
|
40
40
|
|
|
41
41
|
- **`tipStyles`** `Styles` — Custom styles for the tooltip arrow (tip) element
|
|
42
|
-
- **`showIcon`** `boolean` —
|
|
42
|
+
- **`showIcon`** `boolean` — Deprecated. Has no effect
|
|
43
43
|
- **`placement`** `PlacementAxis` (default: `'top'`) — Position of the tooltip relative to its trigger. Options: `top`, `bottom`, `left`, `right`
|
|
44
44
|
- **`isMaterial`** `boolean` — Enables material-style tooltip with auto pointer events
|
|
45
45
|
- **`isLight`** `boolean` — Uses light color scheme for the tooltip
|
|
46
46
|
- **`isOpen`** `boolean` — Controlled open state of the tooltip
|
|
47
47
|
- **`defaultOpen`** `boolean` — Whether the tooltip is open by default (uncontrolled)
|
|
48
48
|
- **`onOpenChange`** `(isOpen: boolean) => void` — Callback when the tooltip open state changes
|
|
49
|
-
- **`shouldFlip`** `boolean` — Whether the tooltip
|
|
49
|
+
- **`shouldFlip`** `boolean` (default: `true`) — Whether the tooltip moves to the opposite side of its trigger when there is not enough room on the requested one
|
|
50
50
|
|
|
51
51
|
### Base Properties
|
|
52
52
|
|
|
@@ -214,14 +214,22 @@ function ControlledExample() {
|
|
|
214
214
|
|
|
215
215
|
### Conditional Tooltip
|
|
216
216
|
|
|
217
|
-
Show a tooltip only when certain conditions are met:
|
|
217
|
+
Show a tooltip only when certain conditions are met. Empty content (`null`, `undefined` or `''`) turns the tooltip off: nothing opens and the trigger gets no `aria-describedby`.
|
|
218
218
|
|
|
219
219
|
```jsx
|
|
220
|
-
<TooltipProvider title={
|
|
221
|
-
<Button
|
|
220
|
+
<TooltipProvider title={isShared ? 'Visible to your whole team' : null}>
|
|
221
|
+
<Button>Share</Button>
|
|
222
222
|
</TooltipProvider>
|
|
223
223
|
```
|
|
224
224
|
|
|
225
|
+
A disabled `Button` receives neither hover nor focus, so a `TooltipProvider` around it never opens. Give the button its own `tooltip` instead; it then stays hoverable and focusable while disabled:
|
|
226
|
+
|
|
227
|
+
```jsx
|
|
228
|
+
<Button isDisabled={hasError} tooltip={hasError ? 'Fix errors first' : undefined}>
|
|
229
|
+
Submit
|
|
230
|
+
</Button>
|
|
231
|
+
```
|
|
232
|
+
|
|
225
233
|
### Focus-Only Trigger
|
|
226
234
|
|
|
227
235
|
Show tooltip only on focus, not on hover:
|
|
@@ -238,7 +246,10 @@ Show tooltip only on focus, not on hover:
|
|
|
238
246
|
|
|
239
247
|
- `Tab` - Moves focus to the trigger element, showing the tooltip after the delay
|
|
240
248
|
- `Shift + Tab` - Moves focus away from the trigger, hiding the tooltip
|
|
249
|
+
- `Escape` - Hides the tooltip
|
|
241
250
|
- Tooltips automatically appear on focus for keyboard users
|
|
251
|
+
- Pressing the trigger hides the tooltip, unless `shouldCloseOnPress` is `false`
|
|
252
|
+
- When the page or an element containing the trigger scrolls, the tooltip follows the trigger while it stays in view, and hides once it is scrolled out of view
|
|
242
253
|
|
|
243
254
|
### Screen Reader Support
|
|
244
255
|
|
|
@@ -249,7 +260,7 @@ Show tooltip only on focus, not on hover:
|
|
|
249
260
|
|
|
250
261
|
### ARIA Properties
|
|
251
262
|
|
|
252
|
-
- `aria-describedby` - Automatically set on the trigger to reference the tooltip
|
|
263
|
+
- `aria-describedby` - Automatically set on the trigger to reference the tooltip while it is open. `Button`, `ItemBadge`, `ItemAction`, `Checkbox`, `Radio` and `Item` rows (`ItemButton`, list and menu items) add it after their own `aria-describedby` rather than replacing it
|
|
253
264
|
- All standard ARIA labeling props are supported
|
|
254
265
|
|
|
255
266
|
### Best Practices
|
|
@@ -24,6 +24,8 @@ Lower-level component that wraps a trigger element and a `Tooltip`. Use when you
|
|
|
24
24
|
- **`trigger`** `'focus'` — When set, opens the tooltip only on focus instead of both focus and hover
|
|
25
25
|
- **`shouldCloseOnPress`** `boolean` (default: `true`) — Whether the tooltip closes when the trigger is pressed
|
|
26
26
|
|
|
27
|
+
A `Tooltip` with empty content (`null`, `undefined` or `''`) never opens. When the page or an element containing the trigger scrolls, an open tooltip follows its trigger while the trigger stays in view, and closes once it is scrolled out of view. Set `shouldFlip` on the `Tooltip` itself.
|
|
28
|
+
|
|
27
29
|
### Base Properties
|
|
28
30
|
|
|
29
31
|
Supports [Base properties](../../BaseProperties.md).
|