@cube-dev/ui-kit 0.165.0 → 0.167.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -7
- package/dist/CHANGELOG.md +48 -0
- package/dist/README.md +4 -7
- package/dist/_internal/hooks/use-chained-callback.js +1 -1
- package/dist/_internal/hooks/use-debounced-value.js +1 -1
- package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
- package/dist/_internal/hooks/use-event.js +1 -1
- package/dist/_internal/hooks/use-is-first-render.js +1 -1
- package/dist/_internal/hooks/use-sync-ref.js +1 -1
- package/dist/_internal/hooks/use-timer/timer.js +1 -1
- package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
- package/dist/_internal/hooks/use-warn.js +1 -1
- package/dist/components/Block.js +1 -1
- package/dist/components/CollectionItem.js +1 -1
- package/dist/components/GlobalStyles.js +4 -4
- package/dist/components/GlobalStyles.js.map +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +1 -2
- 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.d.ts +1 -0
- package/dist/components/actions/Button/Button.js +1 -1
- package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
- package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
- package/dist/components/actions/ButtonSplit/context.js +1 -1
- package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
- package/dist/components/actions/CommandMenu/styled.js +1 -1
- package/dist/components/actions/ItemAction/ItemAction.js +1 -1
- package/dist/components/actions/ItemActionContext.js +1 -1
- package/dist/components/actions/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/MenuItem.js +1 -1
- package/dist/components/actions/Menu/MenuSection.js +1 -1
- package/dist/components/actions/Menu/MenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
- package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
- package/dist/components/actions/Menu/context.js +1 -1
- package/dist/components/actions/Menu/styled.js +1 -1
- package/dist/components/actions/index.js +1 -1
- package/dist/components/actions/use-action.js +1 -1
- package/dist/components/actions/use-anchored-menu.d.ts +7 -3
- package/dist/components/actions/use-anchored-menu.js +17 -12
- package/dist/components/actions/use-anchored-menu.js.map +1 -1
- package/dist/components/actions/use-context-menu.d.ts +6 -3
- package/dist/components/actions/use-context-menu.js +25 -13
- package/dist/components/actions/use-context-menu.js.map +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider.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 +1 -1
- package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
- package/dist/components/content/ItemCard/ItemCard.js +1 -1
- package/dist/components/content/Layout/GridLayout.js +1 -1
- package/dist/components/content/Layout/Layout.js +1 -1
- package/dist/components/content/Layout/LayoutBlock.js +1 -1
- package/dist/components/content/Layout/LayoutCenter.js +1 -1
- package/dist/components/content/Layout/LayoutContainer.js +1 -1
- package/dist/components/content/Layout/LayoutContent.js +1 -1
- package/dist/components/content/Layout/LayoutContext.js +1 -1
- package/dist/components/content/Layout/LayoutFlex.js +1 -1
- package/dist/components/content/Layout/LayoutFooter.js +1 -1
- package/dist/components/content/Layout/LayoutGrid.js +1 -1
- package/dist/components/content/Layout/LayoutHeader.js +1 -1
- package/dist/components/content/Layout/LayoutPane.js +1 -1
- package/dist/components/content/Layout/LayoutPanel.js +1 -1
- package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
- package/dist/components/content/Layout/LayoutToolbar.js +1 -1
- package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
- package/dist/components/content/Layout/index.js +1 -1
- package/dist/components/content/Layout/utils.js +1 -1
- package/dist/components/content/Paragraph.js +1 -1
- package/dist/components/content/Placeholder/Placeholder.js +1 -1
- package/dist/components/content/PrismCode/PrismCode.js +1 -1
- package/dist/components/content/PrismCode/prismSetup.js +1 -1
- package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
- package/dist/components/content/Result/Result.js +1 -1
- package/dist/components/content/Skeleton/Skeleton.js +1 -1
- package/dist/components/content/Tag/Tag.js +1 -1
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/TreeNode.js +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 +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 +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 +1 -1
- package/dist/components/data/TableBase/column-menu.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.d.ts +2 -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.d.ts +1 -0
- package/dist/components/data/TableBase/use-cell-selection.js +0 -0
- package/dist/components/data/TableBase/use-column-order.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-tree-state.js +1 -1
- package/dist/components/fields/Checkbox/Checkbox.js +1 -1
- package/dist/components/fields/Checkbox/CheckboxGroup.js +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 +1 -1
- package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
- package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
- package/dist/components/fields/ComboBox/ComboBox.js +1 -1
- 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.js +1 -1
- package/dist/components/fields/DatePicker/period.js +1 -1
- package/dist/components/fields/DatePicker/props.js +1 -1
- package/dist/components/fields/DatePicker/utils.js +1 -1
- package/dist/components/fields/FileInput/FileInput.js +1 -1
- package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
- package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
- package/dist/components/fields/Input/Input.js +1 -1
- package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
- package/dist/components/fields/ListBox/ListBox.js +1 -1
- package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
- package/dist/components/fields/ListBoxPopover/index.d.ts +1 -0
- package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +2 -0
- package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
- package/dist/components/fields/NumberInput/NumberInput.js +1 -1
- package/dist/components/fields/NumberInput/StepButton.js +1 -1
- package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
- package/dist/components/fields/Picker/Picker.js +1 -1
- package/dist/components/fields/RadioGroup/Radio.js +1 -1
- package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
- package/dist/components/fields/RadioGroup/context.js +1 -1
- package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
- package/dist/components/fields/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.js +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 +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/TextArea/TextArea.js +1 -1
- package/dist/components/fields/TextInput/TextInput.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/fields/color/ColorPanel.js +1 -1
- package/dist/components/fields/color/channels.js +1 -1
- package/dist/components/fields/color/color.js +1 -1
- package/dist/components/fields/color/context.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/Form/Field.js +1 -1
- package/dist/components/form/Form/Form.js +1 -1
- package/dist/components/form/Form/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/index.js +1 -1
- package/dist/components/form/Form/use-field/use-field-props.js +1 -1
- package/dist/components/form/Form/use-field/use-field.js +1 -1
- package/dist/components/form/Form/use-form.js +1 -1
- package/dist/components/form/Form/validation.js +1 -1
- package/dist/components/form/Label.js +1 -1
- package/dist/components/form/validation/ValidationIndicator.js +1 -1
- package/dist/components/form/validation/resolve-validation-props.js +1 -1
- package/dist/components/form/validation/use-validation-props.js +1 -1
- package/dist/components/form/wrapper.js +1 -1
- package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
- package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
- package/dist/components/layout/Board/Board.d.ts +33 -7
- package/dist/components/layout/Board/Board.js +29 -11
- package/dist/components/layout/Board/Board.js.map +1 -1
- package/dist/components/layout/Board/BoardProvider.js +1 -1
- package/dist/components/layout/Board/BoardResponsive.d.ts +6 -3
- package/dist/components/layout/Board/BoardResponsive.js +3 -3
- package/dist/components/layout/Board/BoardResponsive.js.map +1 -1
- package/dist/components/layout/Board/Widget.d.ts +38 -1
- package/dist/components/layout/Board/Widget.js +6 -2
- package/dist/components/layout/Board/Widget.js.map +1 -1
- package/dist/components/layout/Board/WidgetHost.js +69 -18
- package/dist/components/layout/Board/WidgetHost.js.map +1 -1
- package/dist/components/layout/Board/board-context.js +1 -1
- package/dist/components/layout/Board/board-context.js.map +1 -1
- package/dist/components/layout/Board/board-store.js +2 -2
- package/dist/components/layout/Board/board-store.js.map +1 -1
- package/dist/components/layout/Board/grid-core/calculate.js +1 -1
- package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
- package/dist/components/layout/Board/grid-core/collision.js +1 -1
- package/dist/components/layout/Board/grid-core/compactors.js +1 -1
- package/dist/components/layout/Board/grid-core/constraints.js +1 -1
- package/dist/components/layout/Board/grid-core/group-move.js +1 -1
- package/dist/components/layout/Board/grid-core/layout.js +1 -1
- package/dist/components/layout/Board/grid-core/placement.d.ts +58 -0
- package/dist/components/layout/Board/grid-core/placement.js +153 -0
- package/dist/components/layout/Board/grid-core/placement.js.map +1 -0
- package/dist/components/layout/Board/grid-core/sort.js +1 -1
- package/dist/components/layout/Board/index.d.ts +3 -1
- package/dist/components/layout/Board/index.js +2 -1
- package/dist/components/layout/Board/index.js.map +1 -1
- package/dist/components/layout/Board/responsive-utils.js +1 -1
- package/dist/components/layout/Board/use-board-layout.d.ts +26 -0
- package/dist/components/layout/Board/use-board-layout.js +4 -4
- package/dist/components/layout/Board/use-board-layout.js.map +1 -1
- package/dist/components/layout/Board/use-board-registry.js +5 -56
- package/dist/components/layout/Board/use-board-registry.js.map +1 -1
- package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
- package/dist/components/layout/Board/use-board-selection.js +1 -1
- package/dist/components/layout/Flex.js +1 -1
- package/dist/components/layout/Flow.js +1 -1
- package/dist/components/layout/Grid.js +1 -1
- package/dist/components/layout/Panel.js +1 -1
- package/dist/components/layout/Prefix.js +1 -1
- package/dist/components/layout/ResizablePanel.js +1 -1
- package/dist/components/layout/Space.js +1 -1
- package/dist/components/layout/Suffix.js +1 -1
- package/dist/components/navigation/Pagination/Pagination.js +1 -1
- package/dist/components/navigation/Pagination/use-pagination.js +1 -1
- package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
- package/dist/components/navigation/Tabs/TabButton.js +1 -1
- package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
- package/dist/components/navigation/Tabs/TabPanel.js +1 -1
- package/dist/components/navigation/Tabs/TabPicker.js +1 -1
- package/dist/components/navigation/Tabs/Tabs.js +1 -1
- package/dist/components/navigation/Tabs/TabsAction.js +1 -1
- package/dist/components/navigation/Tabs/TabsContext.js +1 -1
- package/dist/components/navigation/Tabs/popover-placement.js +1 -1
- package/dist/components/navigation/Tabs/styled.js +1 -1
- package/dist/components/navigation/Tabs/types.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
- package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/CalendarHeader.js +1 -1
- package/dist/components/other/Calendar/CalendarPanel.js +1 -1
- package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
- package/dist/components/other/Calendar/PeriodGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +1 -1
- package/dist/components/other/Calendar/styled.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
- package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
- package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
- package/dist/components/overlays/Dialog/Dialog.js +1 -1
- package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
- package/dist/components/overlays/Dialog/DialogForm.js +1 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
- package/dist/components/overlays/Dialog/context.js +1 -1
- package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
- package/dist/components/overlays/Modal/Modal.d.ts +2 -1
- package/dist/components/overlays/Modal/Modal.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- package/dist/components/overlays/Modal/Overlay.d.ts +1 -0
- package/dist/components/overlays/Modal/Overlay.js +1 -1
- package/dist/components/overlays/Modal/Popover.js +1 -1
- package/dist/components/overlays/Modal/Tray.js +1 -1
- package/dist/components/overlays/Modal/Underlay.js +1 -1
- package/dist/components/overlays/Modal/types.d.ts +1 -0
- 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.d.ts +2 -0
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
- package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
- package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
- package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
- package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
- package/dist/components/overlays/Notifications/index.js +1 -1
- package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
- package/dist/components/overlays/Notifications/use-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
- package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
- package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
- package/dist/components/overlays/Toast/ToastItem.js +1 -1
- package/dist/components/overlays/Toast/index.js +1 -1
- package/dist/components/overlays/Toast/useProgressToast.js +1 -1
- package/dist/components/overlays/Toast/useToast.js +1 -1
- package/dist/components/overlays/Tooltip/Tooltip.js +2 -1
- 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.js +1 -1
- package/dist/components/overlays/Tooltip/context.js +1 -1
- package/dist/components/portal/Portal.js +1 -1
- package/dist/components/portal/PortalProvider.d.ts +2 -0
- package/dist/components/portal/PortalProvider.js +1 -1
- package/dist/components/portal/index.d.ts +1 -0
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/eslint-plugin/defaults.generated.js +25 -1
- package/dist/eslint-plugin/defaults.generated.js.map +1 -1
- package/dist/eslint-plugin/index.js +1 -1
- package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
- package/dist/i18n/I18nProvider.js +1 -1
- package/dist/i18n/createFormatter.js +1 -1
- package/dist/i18n/index.js +1 -1
- package/dist/i18n/instance.js +1 -1
- package/dist/i18n/locales/de-DE/uikit.js +1 -1
- package/dist/i18n/locales/en-US/uikit.js +1 -1
- package/dist/i18n/locales/es-ES/uikit.js +1 -1
- package/dist/i18n/locales/es-MX/uikit.js +1 -1
- package/dist/i18n/locales/fr-FR/uikit.js +1 -1
- package/dist/i18n/locales/it-IT/uikit.js +1 -1
- package/dist/i18n/locales/ja-JP/uikit.js +1 -1
- package/dist/i18n/locales/nb-NO/uikit.js +1 -1
- package/dist/i18n/locales/pt-BR/uikit.js +1 -1
- package/dist/i18n/locales/pt-PT/uikit.js +1 -1
- package/dist/i18n/locales/sv-SE/uikit.js +1 -1
- package/dist/i18n/locales/vi-VN/uikit.js +1 -1
- package/dist/i18n/locales.js +1 -1
- package/dist/i18n/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 +7 -3
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/probe/canonicalize.js +1 -1
- package/dist/probe/css.js +1 -1
- package/dist/probe/index.js +1 -1
- package/dist/provider.js +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/tokens/all-tokens.d.ts +10 -0
- package/dist/tokens/{index.js → all-tokens.js} +7 -25
- package/dist/tokens/all-tokens.js.map +1 -0
- package/dist/tokens/base.js +2 -1
- package/dist/tokens/base.js.map +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/index.d.ts +3 -10
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +1 -1
- package/dist/tokens/palette-config.js +1 -1
- package/dist/tokens/palette.js +1 -1
- package/dist/tokens/resolve.d.ts +113 -0
- package/dist/tokens/resolve.js +403 -0
- package/dist/tokens/resolve.js.map +1 -0
- 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/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 +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.d.ts +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/usePopoverSync.js +1 -1
- package/dist/utils/react/useQaProps.js +1 -1
- package/dist/utils/react/useViewportSize.js +1 -1
- package/dist/utils/react/wrapNodeIfPlain.js +1 -1
- package/dist/utils/selection.js +1 -1
- package/dist/utils/styles.js +1 -1
- package/dist/utils/tree.js +1 -1
- package/dist/utils/warnings.js +1 -1
- package/dist/version.js +3 -3
- package/docs/Colors.md +16 -40
- package/docs/ComplexLayout.md +8 -0
- package/docs/CreateComponent.md +15 -8
- package/docs/Introduction.md +15 -36
- package/docs/RenderCache.md +8 -6
- package/docs/Theming.md +164 -497
- package/docs/Usage.md +129 -138
- package/docs/Utilities.md +2 -2
- package/docs/components/CollectionItem.md +1 -0
- package/docs/components/actions/Banner.md +1 -0
- package/docs/components/actions/Button.md +8 -36
- package/docs/components/actions/ButtonSplit.md +2 -0
- package/docs/components/actions/CommandMenu.md +8 -8
- package/docs/components/actions/ItemButton.md +6 -20
- package/docs/components/actions/Link.md +10 -5
- package/docs/components/actions/Menu.md +24 -11
- package/docs/components/actions/MenuTrigger.md +3 -12
- package/docs/components/actions/use-anchored-menu.md +5 -5
- package/docs/components/actions/use-context-menu.md +11 -7
- package/docs/components/content/Badge.md +3 -0
- package/docs/components/content/HotKeys.md +21 -14
- package/docs/components/content/InlineInput.md +14 -14
- package/docs/components/content/Item.md +25 -17
- package/docs/components/content/ItemCard.md +1 -0
- package/docs/components/content/Layout.md +12 -1
- package/docs/components/content/PrismCode.md +13 -18
- package/docs/components/content/Tag.md +1 -1
- package/docs/components/content/TextItem.md +5 -3
- package/docs/components/content/Tree.md +69 -154
- package/docs/components/data/DataTable.md +56 -168
- package/docs/components/data/ItemTable.md +182 -485
- package/docs/components/fields/Checkbox.md +2 -0
- package/docs/components/fields/ColorInput.md +38 -79
- package/docs/components/fields/ColorPicker.md +17 -39
- package/docs/components/fields/ColorSwatch.md +11 -30
- package/docs/components/fields/ColorSwatchGroup.md +18 -42
- package/docs/components/fields/ComboBox.md +13 -1
- package/docs/components/fields/CommandTextArea.md +10 -37
- package/docs/components/fields/DatePicker.md +3 -0
- package/docs/components/fields/FileInput.md +3 -0
- package/docs/components/fields/FilterListBox.md +34 -14
- package/docs/components/fields/FilterPicker.md +33 -16
- package/docs/components/fields/HueSlider.md +5 -5
- package/docs/components/fields/ListBox.md +35 -9
- package/docs/components/fields/NumberInput.md +3 -0
- package/docs/components/fields/PasswordInput.md +3 -0
- package/docs/components/fields/PeriodPicker.md +7 -17
- package/docs/components/fields/Picker.md +54 -29
- package/docs/components/fields/RadioGroup.md +13 -5
- package/docs/components/fields/SearchComboBox.md +3 -0
- package/docs/components/fields/SearchInput.md +4 -2
- package/docs/components/fields/Select.md +23 -13
- package/docs/components/fields/Switch.md +3 -0
- package/docs/components/fields/TextInput.md +3 -0
- package/docs/components/fields/TextInputMapper.md +1 -2
- package/docs/components/form/Field.md +5 -2
- package/docs/components/form/Form.md +5 -0
- package/docs/components/form/FormInstance.md +1 -1
- package/docs/components/helpers/DisplayTransition.md +10 -6
- package/docs/components/helpers/IconSwitch.md +1 -0
- package/docs/components/layout/Board.md +89 -193
- package/docs/components/navigation/Pagination.md +36 -75
- package/docs/components/navigation/Tabs.md +3 -15
- package/docs/components/other/Calendar.md +22 -39
- package/docs/components/other/CubeLogo.md +1 -1
- package/docs/components/overlays/Dialog.md +3 -0
- package/docs/components/overlays/DialogContainer.md +2 -0
- package/docs/components/overlays/DialogForm.md +6 -2
- package/docs/components/overlays/DialogTrigger.md +4 -2
- package/docs/components/overlays/Notifications.md +7 -0
- package/docs/components/overlays/Toast.md +12 -8
- package/docs/components/overlays/Tooltip.md +16 -0
- package/docs/components/overlays/UseDialogContainer.md +16 -10
- package/docs/components/status/LoadingAnimation.md +3 -9
- package/docs/tasty/configuration.md +195 -15
- package/docs/tasty/dsl.md +40 -5
- package/docs/tasty/injector.md +11 -0
- package/docs/tasty/methodology.md +1 -1
- package/docs/tasty/pipeline.md +1 -4
- package/docs/tasty/react-api.md +1 -1
- package/docs/tasty/styles.md +8 -1
- package/package.json +4 -4
- package/dist/tokens/index.js.map +0 -1
|
@@ -183,34 +183,20 @@ Actions automatically inherit the parent button's `type` prop and adjust their s
|
|
|
183
183
|
|
|
184
184
|
## Behaviour Inside Popovers
|
|
185
185
|
|
|
186
|
-
Like `Button`, an `ItemButton` press inside an open popover **dismisses
|
|
187
|
-
that popover** by default — popovers are transient surfaces and any action
|
|
188
|
-
inside them should close them. Modals/trays/fullscreen Dialogs are not
|
|
189
|
-
affected.
|
|
186
|
+
Like `Button`, an `ItemButton` press inside an open popover **dismisses that popover** by default — popovers are transient surfaces and any action inside them should close them. Modals/trays/fullscreen Dialogs are not affected.
|
|
190
187
|
|
|
191
188
|
### Opt-outs
|
|
192
189
|
|
|
193
|
-
- **Automatic for popover triggers** — `MenuTrigger`, `DialogTrigger
|
|
194
|
-
|
|
195
|
-
`ComboBox`, `Select`) mark their trigger ItemButtons with
|
|
196
|
-
`data-popover-trigger` so they don't dismiss the popover they themselves
|
|
197
|
-
live in.
|
|
198
|
-
- **Manual via `data-popover-keep`** — add to the ItemButton (toggle) or
|
|
199
|
-
any ancestor (whole subtree):
|
|
190
|
+
- **Automatic for popover triggers** — `MenuTrigger`, `DialogTrigger type="popover"`, and the picker components (`FilterPicker`, `Picker`, `ComboBox`, `Select`) mark their trigger ItemButtons with `data-popover-trigger` so they don't dismiss the popover they themselves live in.
|
|
191
|
+
- **Manual via `data-popover-keep`** — add to the ItemButton (toggle) or any ancestor (whole subtree):
|
|
200
192
|
```jsx
|
|
201
193
|
<ItemButton data-popover-keep onPress={() => setMode((m) => !m)}>
|
|
202
194
|
Toggle Mode
|
|
203
195
|
</ItemButton>
|
|
204
196
|
```
|
|
205
|
-
- **Custom non-Cube triggers** — call `useDismissParentPopover()` directly
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
The dismiss is dispatched via the EventBus, which defers with `setTimeout(0)`
|
|
210
|
-
— so synchronous `onPress` handlers (and the React state updates they
|
|
211
|
-
trigger) flush BEFORE the popover closes. This makes the "open a hoisted
|
|
212
|
-
modal from a popover footer" pattern work without flicker: the modal mounts
|
|
213
|
-
first, then the popover closes behind it.
|
|
197
|
+
- **Custom non-Cube triggers** — call `useDismissParentPopover()` directly if you build a control on top of something other than `Button` / `ItemButton`.
|
|
198
|
+
|
|
199
|
+
The dismiss is dispatched via the EventBus, which defers with `setTimeout(0)` — so synchronous `onPress` handlers (and the React state updates they trigger) flush BEFORE the popover closes. This makes the "open a hoisted modal from a popover footer" pattern work without flicker: the modal mounts first, then the popover closes behind it.
|
|
214
200
|
|
|
215
201
|
## Best Practices
|
|
216
202
|
|
|
@@ -27,6 +27,7 @@ Supports [Base properties](../../BaseProperties.md)
|
|
|
27
27
|
Customizes the root element of the component.
|
|
28
28
|
|
|
29
29
|
Sub-elements:
|
|
30
|
+
|
|
30
31
|
- `ButtonIcon` – wrapper around `icon` and `rightIcon` when used.
|
|
31
32
|
|
|
32
33
|
### Style Properties
|
|
@@ -69,6 +70,7 @@ These properties allow direct style application without using the `styles` prop:
|
|
|
69
70
|
```
|
|
70
71
|
|
|
71
72
|
Notes:
|
|
73
|
+
|
|
72
74
|
- Adds `target="_blank"` and `rel="noopener noreferrer"` automatically.
|
|
73
75
|
- Cmd/Ctrl/Shift + click also opens in a new tab, like a native link.
|
|
74
76
|
|
|
@@ -101,11 +103,13 @@ Notes:
|
|
|
101
103
|
```
|
|
102
104
|
|
|
103
105
|
Accepted object shape:
|
|
106
|
+
|
|
104
107
|
```ts
|
|
105
108
|
{ pathname?: string; search?: string; hash?: string }
|
|
106
109
|
```
|
|
107
110
|
|
|
108
111
|
Notes:
|
|
112
|
+
|
|
109
113
|
- `search` and `hash` are auto-prefixed with `?` and `#` if needed
|
|
110
114
|
- `pathname` can be relative (e.g., `../parent`) or absolute (e.g., `/root`)
|
|
111
115
|
- Works with `!` and `@` prefixes when passed as strings
|
|
@@ -124,6 +128,7 @@ Notes:
|
|
|
124
128
|
```
|
|
125
129
|
|
|
126
130
|
Behavior:
|
|
131
|
+
|
|
127
132
|
- Uses `navigate(delta)` from the navigation adapter with overload signature
|
|
128
133
|
- The default adapter calls `window.history.go(delta)`
|
|
129
134
|
|
|
@@ -217,6 +222,7 @@ export function App() {
|
|
|
217
222
|
```
|
|
218
223
|
|
|
219
224
|
Default adapter behavior:
|
|
225
|
+
|
|
220
226
|
- String/object navigation uses `window.location.assign(href)`
|
|
221
227
|
- History navigation uses `window.history.go(delta)`
|
|
222
228
|
- `!` prefix opens resolved URLs in a new tab
|
|
@@ -230,10 +236,10 @@ Default adapter behavior:
|
|
|
230
236
|
Control navigation behavior via the `navigationOptions` prop:
|
|
231
237
|
|
|
232
238
|
```jsx
|
|
233
|
-
<Link
|
|
239
|
+
<Link
|
|
234
240
|
to="/search"
|
|
235
|
-
navigationOptions={{
|
|
236
|
-
replace: true,
|
|
241
|
+
navigationOptions={{
|
|
242
|
+
replace: true,
|
|
237
243
|
state: { from: 'homepage' },
|
|
238
244
|
relative: 'path',
|
|
239
245
|
preventScrollReset: true
|
|
@@ -246,7 +252,7 @@ Control navigation behavior via the `navigationOptions` prop:
|
|
|
246
252
|
### Available options
|
|
247
253
|
|
|
248
254
|
- `replace`: Replace current history entry instead of pushing a new one
|
|
249
|
-
- `state`: Navigation state data (router-specific)
|
|
255
|
+
- `state`: Navigation state data (router-specific)
|
|
250
256
|
- `relative`: How relative paths are resolved (`'route'` | `'path'`)
|
|
251
257
|
- `preventScrollReset`: Prevent scroll reset on navigation
|
|
252
258
|
|
|
@@ -326,4 +332,3 @@ These options are passed to the router's `navigate` function and have no effect
|
|
|
326
332
|
## Related Components
|
|
327
333
|
|
|
328
334
|
- [Button](./Button.md) – Action component with multiple visual styles, including `type="link"`.
|
|
329
|
-
|
|
@@ -62,6 +62,7 @@ Supports [Base properties](../../BaseProperties.md)
|
|
|
62
62
|
Customizes the root menu container element.
|
|
63
63
|
|
|
64
64
|
**Sub-elements:**
|
|
65
|
+
|
|
65
66
|
- `Header` - Optional header element at the top of the menu
|
|
66
67
|
- `Divider` - Separator elements between sections
|
|
67
68
|
|
|
@@ -70,14 +71,17 @@ Customizes the root menu container element.
|
|
|
70
71
|
Customizes individual menu items.
|
|
71
72
|
|
|
72
73
|
**Sub-elements:**
|
|
74
|
+
|
|
73
75
|
- `Icon` - Icon element within menu items
|
|
74
76
|
- `Text` - Main text content of menu items
|
|
75
77
|
- `Description` - Secondary text content for items with descriptions
|
|
78
|
+
|
|
76
79
|
#### sectionStyles
|
|
77
80
|
|
|
78
81
|
Customizes section container elements.
|
|
79
82
|
|
|
80
83
|
**Sub-elements:**
|
|
84
|
+
|
|
81
85
|
- `SectionHeading` - Section title/heading element
|
|
82
86
|
|
|
83
87
|
#### sectionHeadingStyles
|
|
@@ -117,6 +121,7 @@ The `mods` property accepts the following modifiers you can override:
|
|
|
117
121
|
- **`selectedKeys`** `string[]` — Currently selected keys (controlled)
|
|
118
122
|
- **`defaultSelectedKeys`** `string[]` — Initially selected keys (uncontrolled)
|
|
119
123
|
- **`onSelectionChange`** `(keys: string[]) => void` — Handler for selection changes
|
|
124
|
+
|
|
120
125
|
### State Properties
|
|
121
126
|
|
|
122
127
|
- **`disabledKeys`** `Iterable<Key>` — Keys of disabled items
|
|
@@ -167,16 +172,16 @@ For detailed information about all available item properties, see [Item document
|
|
|
167
172
|
|
|
168
173
|
```jsx
|
|
169
174
|
<Menu>
|
|
170
|
-
<Menu.Item
|
|
171
|
-
key="save"
|
|
175
|
+
<Menu.Item
|
|
176
|
+
key="save"
|
|
172
177
|
icon={<IconSave />}
|
|
173
178
|
hotkeys="cmd+s"
|
|
174
179
|
description="Save the current document"
|
|
175
180
|
>
|
|
176
181
|
Save
|
|
177
182
|
</Menu.Item>
|
|
178
|
-
<Menu.Item
|
|
179
|
-
key="export"
|
|
183
|
+
<Menu.Item
|
|
184
|
+
key="export"
|
|
180
185
|
icon={<IconExport />}
|
|
181
186
|
suffix="PDF"
|
|
182
187
|
tooltip="Export as PDF file"
|
|
@@ -215,6 +220,7 @@ For detailed information about all available item properties, see [Item document
|
|
|
215
220
|
## Selection Modes
|
|
216
221
|
|
|
217
222
|
### None (Default)
|
|
223
|
+
|
|
218
224
|
Items are not selectable and only trigger `onAction` when activated.
|
|
219
225
|
|
|
220
226
|
```jsx
|
|
@@ -225,6 +231,7 @@ Items are not selectable and only trigger `onAction` when activated.
|
|
|
225
231
|
```
|
|
226
232
|
|
|
227
233
|
### Single Selection
|
|
234
|
+
|
|
228
235
|
Only one item can be selected at a time.
|
|
229
236
|
|
|
230
237
|
```jsx
|
|
@@ -235,6 +242,7 @@ Only one item can be selected at a time.
|
|
|
235
242
|
```
|
|
236
243
|
|
|
237
244
|
### Multiple Selection
|
|
245
|
+
|
|
238
246
|
Multiple items can be selected simultaneously.
|
|
239
247
|
|
|
240
248
|
```jsx
|
|
@@ -309,8 +317,8 @@ const items = [
|
|
|
309
317
|
<Menu.Item key="copy" tooltip="Copy selected text">
|
|
310
318
|
Copy
|
|
311
319
|
</Menu.Item>
|
|
312
|
-
<Menu.Item
|
|
313
|
-
key="paste"
|
|
320
|
+
<Menu.Item
|
|
321
|
+
key="paste"
|
|
314
322
|
tooltip={{ title: "Paste from clipboard", placement: "left" }}
|
|
315
323
|
>
|
|
316
324
|
Paste
|
|
@@ -324,7 +332,7 @@ const items = [
|
|
|
324
332
|
<Menu onAction={(key) => console.log(key)}>
|
|
325
333
|
<Menu.Item key="copy">Copy</Menu.Item>
|
|
326
334
|
<Menu.Item key="paste">Paste</Menu.Item>
|
|
327
|
-
|
|
335
|
+
|
|
328
336
|
<Menu.SubMenuTrigger>
|
|
329
337
|
<Menu.Item key="share">Share</Menu.Item>
|
|
330
338
|
<Menu onAction={(key) => console.log(key)}>
|
|
@@ -333,7 +341,7 @@ const items = [
|
|
|
333
341
|
<Menu.Item key="share-sms">SMS</Menu.Item>
|
|
334
342
|
</Menu>
|
|
335
343
|
</Menu.SubMenuTrigger>
|
|
336
|
-
|
|
344
|
+
|
|
337
345
|
<Menu.Item key="delete">Delete</Menu.Item>
|
|
338
346
|
</Menu>
|
|
339
347
|
```
|
|
@@ -343,13 +351,13 @@ const items = [
|
|
|
343
351
|
```jsx
|
|
344
352
|
<Menu onAction={(key) => console.log(key)}>
|
|
345
353
|
<Menu.Item key="new">New File</Menu.Item>
|
|
346
|
-
|
|
354
|
+
|
|
347
355
|
<Menu.SubMenuTrigger>
|
|
348
356
|
<Menu.Item key="export">Export</Menu.Item>
|
|
349
357
|
<Menu onAction={(key) => console.log(key)}>
|
|
350
358
|
<Menu.Item key="export-pdf">Export as PDF</Menu.Item>
|
|
351
359
|
<Menu.Item key="export-image">Export as Image</Menu.Item>
|
|
352
|
-
|
|
360
|
+
|
|
353
361
|
<Menu.SubMenuTrigger>
|
|
354
362
|
<Menu.Item key="export-formats">More formats</Menu.Item>
|
|
355
363
|
<Menu onAction={(key) => console.log(key)}>
|
|
@@ -368,7 +376,7 @@ const items = [
|
|
|
368
376
|
```jsx
|
|
369
377
|
<Menu onAction={(key) => console.log(key)}>
|
|
370
378
|
<Menu.Item key="copy">Copy</Menu.Item>
|
|
371
|
-
|
|
379
|
+
|
|
372
380
|
<Menu.SubMenuTrigger>
|
|
373
381
|
<Menu.Item key="settings">Settings</Menu.Item>
|
|
374
382
|
<Menu onAction={(key) => console.log(key)}>
|
|
@@ -418,12 +426,14 @@ const items = [
|
|
|
418
426
|
## Best Practices
|
|
419
427
|
|
|
420
428
|
1. **Clear Labels**: Use descriptive, action-oriented labels
|
|
429
|
+
|
|
421
430
|
```jsx
|
|
422
431
|
<Menu.Item key="save">Save Document</Menu.Item> // Good
|
|
423
432
|
<Menu.Item key="save">Save</Menu.Item> // Less clear
|
|
424
433
|
```
|
|
425
434
|
|
|
426
435
|
2. **Logical Grouping**: Group related actions using sections
|
|
436
|
+
|
|
427
437
|
```jsx
|
|
428
438
|
<Menu.Section title="File Operations">
|
|
429
439
|
<Menu.Item key="new">New</Menu.Item>
|
|
@@ -432,16 +442,19 @@ const items = [
|
|
|
432
442
|
```
|
|
433
443
|
|
|
434
444
|
3. **Keyboard Shortcuts**: Include shortcuts for common actions
|
|
445
|
+
|
|
435
446
|
```jsx
|
|
436
447
|
<Menu.Item key="copy" hotkeys="Ctrl+C">Copy</Menu.Item>
|
|
437
448
|
```
|
|
438
449
|
|
|
439
450
|
4. **Appropriate Selection**: Choose the right selection mode
|
|
451
|
+
|
|
440
452
|
- Use `selectionMode="none"` for action menus
|
|
441
453
|
- Use `selectionMode="single"` for mutually exclusive options
|
|
442
454
|
- Use `selectionMode="multiple"` for independent toggles
|
|
443
455
|
|
|
444
456
|
5. **Disabled States**: Clearly indicate unavailable actions
|
|
457
|
+
|
|
445
458
|
```jsx
|
|
446
459
|
<Menu disabledKeys={['paste']}>
|
|
447
460
|
<Menu.Item key="paste">Paste</Menu.Item>
|
|
@@ -41,10 +41,7 @@ These properties allow direct style application without using the `styles` prop:
|
|
|
41
41
|
|
|
42
42
|
## Focus restoration
|
|
43
43
|
|
|
44
|
-
When the menu closes, focus returns to the trigger — **unless the action that
|
|
45
|
-
closed it moved focus somewhere else**. An item whose action opens a panel, a
|
|
46
|
-
dialog or an inline editor just focuses that surface; a single `focus()` call
|
|
47
|
-
from a mount effect is enough, and the menu leaves it alone:
|
|
44
|
+
When the menu closes, focus returns to the trigger — **unless the action that closed it moved focus somewhere else**. An item whose action opens a panel, a dialog or an inline editor just focuses that surface; a single `focus()` call from a mount effect is enough, and the menu leaves it alone:
|
|
48
45
|
|
|
49
46
|
```jsx
|
|
50
47
|
function Panel() {
|
|
@@ -70,15 +67,9 @@ function Panel() {
|
|
|
70
67
|
</MenuTrigger>;
|
|
71
68
|
```
|
|
72
69
|
|
|
73
|
-
Focusing the surface's own container rather than its first tabbable child
|
|
74
|
-
matters when a header carries a close button — `<FocusScope autoFocus>` would
|
|
75
|
-
land the user on ✕, with <kbd>Enter</kbd> already meaning "close the thing that
|
|
76
|
-
just opened".
|
|
70
|
+
Focusing the surface's own container rather than its first tabbable child matters when a header carries a close button — `<FocusScope autoFocus>` would land the user on ✕, with <kbd>Enter</kbd> already meaning "close the thing that just opened".
|
|
77
71
|
|
|
78
|
-
`shouldRestoreFocus={false}` covers the remaining case: a surface that claims
|
|
79
|
-
focus *later* than the menu's restore — after an async load, an entry
|
|
80
|
-
animation, or a `requestAnimationFrame`. Without it the trigger takes focus
|
|
81
|
-
first and the user sees a flash.
|
|
72
|
+
`shouldRestoreFocus={false}` covers the remaining case: a surface that claims focus _later_ than the menu's restore — after an async load, an entry animation, or a `requestAnimationFrame`. Without it the trigger takes focus first and the user sees a flash.
|
|
82
73
|
|
|
83
74
|
```jsx
|
|
84
75
|
<MenuTrigger shouldRestoreFocus={false}>
|
|
@@ -68,7 +68,7 @@ function useAnchoredMenu<P, T = ComponentProps<typeof MenuTrigger>>(
|
|
|
68
68
|
The hook provides full programmatic control over the menu:
|
|
69
69
|
|
|
70
70
|
- **`open()`** opens the menu with provided props
|
|
71
|
-
- **`update()`** updates menu props without closing/reopening
|
|
71
|
+
- **`update()`** updates the runtime menu props without closing/reopening — only needed for props the caller owns, since `defaultMenuProps` are re-read on every render
|
|
72
72
|
- **`close()`** closes the menu
|
|
73
73
|
- **No automatic triggering** - designed for manual control via events or state
|
|
74
74
|
|
|
@@ -83,8 +83,8 @@ Positions menus relative to the anchor element:
|
|
|
83
83
|
|
|
84
84
|
### Props Merging Strategy
|
|
85
85
|
|
|
86
|
-
- **`defaultMenuProps`** - Used as base props for the menu component
|
|
87
|
-
- **Runtime props** (via `open()`/`update()`) - Merged
|
|
86
|
+
- **`defaultMenuProps`** - Used as base props for the menu component, and re-read on every render: changing them updates a menu that is already open, so content kept there (items, `isDisabled`, `disabledKeys`) stays current without an `update()` call
|
|
87
|
+
- **Runtime props** (via `open()`/`update()`) - Merged over the defaults, taking precedence, and held until the next `open()`/`update()`
|
|
88
88
|
- **Trigger props** - Merged with `defaultTriggerProps` for positioning control
|
|
89
89
|
|
|
90
90
|
### Menu Synchronization
|
|
@@ -103,7 +103,7 @@ import { IconDotsVertical } from '@tabler/icons-react';
|
|
|
103
103
|
|
|
104
104
|
function TabWithMultipleTriggers() {
|
|
105
105
|
const menu = useAnchoredMenu(
|
|
106
|
-
Menu,
|
|
106
|
+
Menu,
|
|
107
107
|
{
|
|
108
108
|
placement: 'top end',
|
|
109
109
|
},
|
|
@@ -206,7 +206,7 @@ The hook positions the menu by:
|
|
|
206
206
|
|
|
207
207
|
---
|
|
208
208
|
|
|
209
|
-
|
|
209
|
+
_Last updated: 2025-01-16_
|
|
210
210
|
|
|
211
211
|
### Style Properties
|
|
212
212
|
|
|
@@ -29,7 +29,8 @@ function useContextMenu<P, T = ComponentProps<typeof MenuTrigger>>(
|
|
|
29
29
|
|
|
30
30
|
/**
|
|
31
31
|
* Programmatically opens the menu at the specified coordinates or element center.
|
|
32
|
-
* Runtime props are merged with defaultMenuProps
|
|
32
|
+
* Runtime props are merged with the current defaultMenuProps on every render
|
|
33
|
+
* (runtime props take precedence).
|
|
33
34
|
*
|
|
34
35
|
* @param props - Props to pass to the menu component (optional, defaults to defaultMenuProps)
|
|
35
36
|
* @param triggerProps - Additional props for MenuTrigger (merged with defaultTriggerProps)
|
|
@@ -42,8 +43,8 @@ function useContextMenu<P, T = ComponentProps<typeof MenuTrigger>>(
|
|
|
42
43
|
): void;
|
|
43
44
|
|
|
44
45
|
/**
|
|
45
|
-
* Updates the props of the currently open menu without repositioning.
|
|
46
|
-
* Props are merged
|
|
46
|
+
* Updates the runtime props of the currently open menu without repositioning.
|
|
47
|
+
* Props are merged over the current defaultMenuProps.
|
|
47
48
|
*/
|
|
48
49
|
update(props: P, triggerProps?: T): void;
|
|
49
50
|
|
|
@@ -83,6 +84,7 @@ The hook automatically binds `onContextMenu` events to the `targetRef` element:
|
|
|
83
84
|
`useContextMenu` supports two positioning modes:
|
|
84
85
|
|
|
85
86
|
1. **Coordinate-Based Positioning** (when event is provided):
|
|
87
|
+
|
|
86
88
|
- Creates an **invisible anchor element** at click coordinates
|
|
87
89
|
- Supports **collision detection** and automatic repositioning
|
|
88
90
|
- **Clamps coordinates** to stay within the container bounds
|
|
@@ -97,8 +99,8 @@ The hook automatically binds `onContextMenu` events to the `targetRef` element:
|
|
|
97
99
|
|
|
98
100
|
The hook provides flexible prop management:
|
|
99
101
|
|
|
100
|
-
- **`defaultMenuProps`** - Used for automatic right-click opening
|
|
101
|
-
- **Runtime props** (via `open()`) - Merged
|
|
102
|
+
- **`defaultMenuProps`** - Used for automatic right-click opening, and re-read on every render: changing them updates a menu that is already open, so content kept there (items, `isDisabled`, `disabledKeys`) stays current without an `update()` call
|
|
103
|
+
- **Runtime props** (via `open()`/`update()`) - Merged over the defaults, taking precedence, and held until the next `open()`/`update()`
|
|
102
104
|
- **Trigger props** - Merged with `defaultTriggerProps` for positioning control
|
|
103
105
|
|
|
104
106
|
### Menu Synchronization
|
|
@@ -122,7 +124,7 @@ function FileItem({ file }) {
|
|
|
122
124
|
const { targetRef, rendered } = useContextMenu(
|
|
123
125
|
Menu,
|
|
124
126
|
{ placement: 'bottom start' }, // trigger props
|
|
125
|
-
{
|
|
127
|
+
{
|
|
126
128
|
onAction: handleAction,
|
|
127
129
|
children: (
|
|
128
130
|
<>
|
|
@@ -162,6 +164,7 @@ function FileItem({ file }) {
|
|
|
162
164
|
The hook calculates menu position differently based on whether an event is provided:
|
|
163
165
|
|
|
164
166
|
**With Event (Coordinate-Based):**
|
|
167
|
+
|
|
165
168
|
1. **Getting viewport coordinates** from the pointer event
|
|
166
169
|
2. **Converting to container-relative coordinates** accounting for borders and scroll
|
|
167
170
|
3. **Clamping to container bounds** to ensure the menu stays visible
|
|
@@ -169,6 +172,7 @@ The hook calculates menu position differently based on whether an event is provi
|
|
|
169
172
|
5. **Delegating to MenuTrigger** for collision detection and final positioning
|
|
170
173
|
|
|
171
174
|
**Without Event (Center-Based):**
|
|
175
|
+
|
|
172
176
|
1. **Calculating element center** using `clientWidth/2` and `clientHeight/2`
|
|
173
177
|
2. **Accounting for scroll offset** to position relative to content area
|
|
174
178
|
3. **Clamping to container bounds** to ensure proper positioning
|
|
@@ -215,7 +219,7 @@ The `{rendered}` element contains the invisible anchor and MenuTrigger component
|
|
|
215
219
|
|
|
216
220
|
---
|
|
217
221
|
|
|
218
|
-
|
|
222
|
+
_Last updated: 2025-01-16_
|
|
219
223
|
|
|
220
224
|
### Style Properties
|
|
221
225
|
|
|
@@ -56,6 +56,7 @@ Supports [Base properties](../../BaseProperties.md)
|
|
|
56
56
|
Badges support multiple themes for different semantic meanings:
|
|
57
57
|
|
|
58
58
|
Available themes:
|
|
59
|
+
|
|
59
60
|
- **Special** (default): Purple background, highlighted features
|
|
60
61
|
- **Warning**: Yellow/amber background, caution or attention needed
|
|
61
62
|
- **Note**: Violet background, informational content
|
|
@@ -68,6 +69,7 @@ Available themes:
|
|
|
68
69
|
Badges commonly display numerical counts:
|
|
69
70
|
|
|
70
71
|
Best practices for numbers:
|
|
72
|
+
|
|
71
73
|
- Use single digits for small counts (1-9)
|
|
72
74
|
- Show exact numbers up to 99
|
|
73
75
|
- Consider "99+" format for counts over 99
|
|
@@ -84,6 +86,7 @@ Best practices for numbers:
|
|
|
84
86
|
Short text labels work well in badges:
|
|
85
87
|
|
|
86
88
|
Guidelines for text badges:
|
|
89
|
+
|
|
87
90
|
- Keep text to 2-4 characters maximum
|
|
88
91
|
- Use uppercase for better readability
|
|
89
92
|
- Common patterns: "NEW", "HOT", "BETA", "PRO"
|
|
@@ -30,6 +30,7 @@ Supports [Base properties](../../BaseProperties.md)
|
|
|
30
30
|
Customizes the root element of the component (Space component).
|
|
31
31
|
|
|
32
32
|
**Sub-elements:**
|
|
33
|
+
|
|
33
34
|
- None - The component uses Tag components for individual keys
|
|
34
35
|
|
|
35
36
|
### Style Properties
|
|
@@ -112,7 +113,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
|
|
|
112
113
|
### With Description
|
|
113
114
|
|
|
114
115
|
```jsx
|
|
115
|
-
<HotKeys
|
|
116
|
+
<HotKeys
|
|
116
117
|
aria-label="Command palette"
|
|
117
118
|
aria-description="Opens the command palette for quick actions"
|
|
118
119
|
>
|
|
@@ -123,7 +124,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
|
|
|
123
124
|
### Alternative Shortcuts
|
|
124
125
|
|
|
125
126
|
```jsx
|
|
126
|
-
<HotKeys
|
|
127
|
+
<HotKeys
|
|
127
128
|
aria-label="Search"
|
|
128
129
|
aria-description="Opens the search dialog"
|
|
129
130
|
>
|
|
@@ -134,7 +135,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
|
|
|
134
135
|
### Complex Alternatives
|
|
135
136
|
|
|
136
137
|
```jsx
|
|
137
|
-
<HotKeys
|
|
138
|
+
<HotKeys
|
|
138
139
|
aria-label="Quick actions"
|
|
139
140
|
aria-description="Multiple ways to access quick actions menu"
|
|
140
141
|
>
|
|
@@ -145,7 +146,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
|
|
|
145
146
|
### Function Keys
|
|
146
147
|
|
|
147
148
|
```jsx
|
|
148
|
-
<HotKeys
|
|
149
|
+
<HotKeys
|
|
149
150
|
aria-label="Help functions"
|
|
150
151
|
aria-description="Function keys for help, rename, and search"
|
|
151
152
|
>
|
|
@@ -156,7 +157,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
|
|
|
156
157
|
### Arrow Keys
|
|
157
158
|
|
|
158
159
|
```jsx
|
|
159
|
-
<HotKeys
|
|
160
|
+
<HotKeys
|
|
160
161
|
aria-label="Navigation"
|
|
161
162
|
aria-description="Arrow keys for directional navigation"
|
|
162
163
|
>
|
|
@@ -167,7 +168,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
|
|
|
167
168
|
### Special Keys
|
|
168
169
|
|
|
169
170
|
```jsx
|
|
170
|
-
<HotKeys
|
|
171
|
+
<HotKeys
|
|
171
172
|
aria-label="Common actions"
|
|
172
173
|
aria-description="Frequently used special keys"
|
|
173
174
|
>
|
|
@@ -178,7 +179,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
|
|
|
178
179
|
### Platform-Specific Keys
|
|
179
180
|
|
|
180
181
|
```jsx
|
|
181
|
-
<HotKeys
|
|
182
|
+
<HotKeys
|
|
182
183
|
aria-label="Copy"
|
|
183
184
|
aria-description="Copy selected content to clipboard"
|
|
184
185
|
>
|
|
@@ -189,7 +190,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
|
|
|
189
190
|
### With Custom Styles
|
|
190
191
|
|
|
191
192
|
```jsx
|
|
192
|
-
<HotKeys
|
|
193
|
+
<HotKeys
|
|
193
194
|
aria-label="Styled shortcuts"
|
|
194
195
|
aria-description="Custom styled keyboard shortcuts"
|
|
195
196
|
styles={{
|
|
@@ -263,9 +264,10 @@ The HotKeys component is designed with comprehensive accessibility support:
|
|
|
263
264
|
## Best Practices
|
|
264
265
|
|
|
265
266
|
1. **Provide meaningful labels**: Always use the `aria-label` prop to describe what the shortcuts do
|
|
267
|
+
|
|
266
268
|
```jsx
|
|
267
|
-
<HotKeys
|
|
268
|
-
aria-label="Search"
|
|
269
|
+
<HotKeys
|
|
270
|
+
aria-label="Search"
|
|
269
271
|
aria-description="Opens the search dialog"
|
|
270
272
|
>
|
|
271
273
|
mod+k
|
|
@@ -273,14 +275,16 @@ The HotKeys component is designed with comprehensive accessibility support:
|
|
|
273
275
|
```
|
|
274
276
|
|
|
275
277
|
2. **Use platform-appropriate modifiers**: Use `mod` instead of `ctrl` for cross-platform shortcuts
|
|
278
|
+
|
|
276
279
|
```jsx
|
|
277
280
|
<HotKeys aria-label="Search">mod+k</HotKeys> // Good: Works on both Mac and PC
|
|
278
281
|
<HotKeys aria-label="Search">ctrl+k</HotKeys> // Limited: PC-specific
|
|
279
282
|
```
|
|
280
283
|
|
|
281
284
|
3. **Group related alternatives**: Separate alternative shortcuts with commas
|
|
285
|
+
|
|
282
286
|
```jsx
|
|
283
|
-
<HotKeys
|
|
287
|
+
<HotKeys
|
|
284
288
|
aria-label="Search"
|
|
285
289
|
aria-description="Opens search dialog"
|
|
286
290
|
>
|
|
@@ -289,8 +293,9 @@ The HotKeys component is designed with comprehensive accessibility support:
|
|
|
289
293
|
```
|
|
290
294
|
|
|
291
295
|
4. **Provide descriptions for complex shortcuts**: Use the `aria-description` prop for clarity
|
|
296
|
+
|
|
292
297
|
```jsx
|
|
293
|
-
<HotKeys
|
|
298
|
+
<HotKeys
|
|
294
299
|
aria-label="Command palette"
|
|
295
300
|
aria-description="Opens the command palette for quick actions"
|
|
296
301
|
>
|
|
@@ -299,12 +304,14 @@ The HotKeys component is designed with comprehensive accessibility support:
|
|
|
299
304
|
```
|
|
300
305
|
|
|
301
306
|
5. **Use clear, recognizable keys**: Stick to standard key names
|
|
307
|
+
|
|
302
308
|
```jsx
|
|
303
309
|
<HotKeys aria-label="Confirm">enter, space</HotKeys> // Good: Clear key names
|
|
304
310
|
<HotKeys aria-label="Confirm">ret, spc</HotKeys> // Avoid: Unclear abbreviations
|
|
305
311
|
```
|
|
306
312
|
|
|
307
313
|
6. **Keep combinations reasonable**: Avoid overly complex key combinations
|
|
314
|
+
|
|
308
315
|
```jsx
|
|
309
316
|
<HotKeys aria-label="Command palette">mod+shift+p</HotKeys> // Good: Reasonable complexity
|
|
310
317
|
<HotKeys aria-label="Command palette">mod+ctrl+shift+alt+p</HotKeys> // Avoid: Too complex
|
|
@@ -312,7 +319,7 @@ The HotKeys component is designed with comprehensive accessibility support:
|
|
|
312
319
|
|
|
313
320
|
7. **Consider context**: Provide context about when and where shortcuts are available
|
|
314
321
|
```jsx
|
|
315
|
-
<HotKeys
|
|
322
|
+
<HotKeys
|
|
316
323
|
aria-label="Cancel"
|
|
317
324
|
aria-description="Cancel current action and close dialog"
|
|
318
325
|
>
|
|
@@ -342,4 +349,4 @@ This ensures users see familiar symbols regardless of their operating system.
|
|
|
342
349
|
- Consider adding animation for key press feedback
|
|
343
350
|
- Support for custom key symbol mappings
|
|
344
351
|
- Integration with system accessibility preferences
|
|
345
|
-
- Support for voice command alternatives
|
|
352
|
+
- Support for voice command alternatives
|
|
@@ -87,15 +87,15 @@ These properties allow direct style application without using the `styles` prop:
|
|
|
87
87
|
|
|
88
88
|
The `mods` property is automatically populated. Consumers can target these in their own `styles`:
|
|
89
89
|
|
|
90
|
-
| Modifier
|
|
91
|
-
|
|
|
92
|
-
| editing
|
|
93
|
-
| editable
|
|
94
|
-
| focused
|
|
95
|
-
| disabled
|
|
96
|
-
| read-only
|
|
97
|
-
| styled
|
|
98
|
-
| empty
|
|
90
|
+
| Modifier | Type | Description |
|
|
91
|
+
| --- | --- | --- |
|
|
92
|
+
| editing | `boolean` | Currently in edit mode |
|
|
93
|
+
| editable | `boolean` | `editTrigger` is `dblclick` or `click` and not disabled/read-only |
|
|
94
|
+
| focused | `boolean` | The component is focused — keyboard-focused on the display, **or** while editing. Always `false` when `keyboardActivation={false}` (the host owns the focus indication). |
|
|
95
|
+
| disabled | `boolean` | `isDisabled` is `true` |
|
|
96
|
+
| read-only | `boolean` | `isReadOnly` is `true` |
|
|
97
|
+
| styled | `boolean` | `isStyled` is `true` |
|
|
98
|
+
| empty | `boolean` | The committed value is empty |
|
|
99
99
|
|
|
100
100
|
## Examples
|
|
101
101
|
|
|
@@ -283,11 +283,11 @@ When leaving edit mode, focus is not restored automatically — the host is resp
|
|
|
283
283
|
|
|
284
284
|
These look similar but fire under different conditions. Pick the one that matches your intent:
|
|
285
285
|
|
|
286
|
-
| Event
|
|
287
|
-
|
|
|
288
|
-
| `onChange`
|
|
289
|
-
| `onSubmit`
|
|
290
|
-
| `onCancel`
|
|
286
|
+
| Event | Fires when | Typical use |
|
|
287
|
+
| --- | --- | --- |
|
|
288
|
+
| `onChange` | The committed value is **different** from the previous value | Updating state (controlled pattern) |
|
|
289
|
+
| `onSubmit` | The user commits (Enter / blur / `ref.stopEditing(true)`) — always fires | Side effects (server save, toasts) |
|
|
290
|
+
| `onCancel` | Escape, empty submit (when `allowEmpty=false`), or `ref.stopEditing(false)` | Reverting UI, cleanup |
|
|
291
291
|
|
|
292
292
|
### Optimistic Display
|
|
293
293
|
|