@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
package/docs/Usage.md
CHANGED
|
@@ -16,7 +16,7 @@ For styling engine internals see the [Tasty documentation](./tasty/usage.md). Ta
|
|
|
16
16
|
Tasty provides custom units that map to CSS custom properties defined on the Root component. Use these instead of raw pixel values to keep styling consistent.
|
|
17
17
|
|
|
18
18
|
| Unit | CSS Variable | Example | Computed (defaults) |
|
|
19
|
-
|
|
19
|
+
| --- | --- | --- | --- |
|
|
20
20
|
| `x` | `var(--gap)` | `2x` → `calc(var(--gap) * 2)` | 16px |
|
|
21
21
|
| `r` | `var(--radius)` | `1r` → `var(--radius)` | 6px |
|
|
22
22
|
| `cr` | `var(--card-radius)` | `1cr` → `var(--card-radius)` | 10px |
|
|
@@ -28,7 +28,7 @@ Tasty provides custom units that map to CSS custom properties defined on the Roo
|
|
|
28
28
|
These CSS custom properties are defined in `src/tokens/base.ts` and applied globally.
|
|
29
29
|
|
|
30
30
|
| Token | Default | Description |
|
|
31
|
-
|
|
31
|
+
| --- | --- | --- |
|
|
32
32
|
| `$gap` | `8px` | Base spacing unit (used with `x` multiplier) |
|
|
33
33
|
| `$radius` | `6px` | Base border radius (used with `r` multiplier) |
|
|
34
34
|
| `$border-width` | `1px` | Base border width (used with `bw` multiplier) |
|
|
@@ -47,20 +47,20 @@ These CSS custom properties are defined in `src/tokens/base.ts` and applied glob
|
|
|
47
47
|
|
|
48
48
|
Defined in `src/tokens/spacing.ts`. Values use the `x` unit.
|
|
49
49
|
|
|
50
|
-
| Token
|
|
51
|
-
|
|
52
|
-
| `$space-xs` | `0.5x`
|
|
53
|
-
| `$space-sm` | `0.75x` | 6px
|
|
54
|
-
| `$space-md` | `1x`
|
|
55
|
-
| `$space-lg` | `1.5x`
|
|
56
|
-
| `$space-xl` | `2x`
|
|
50
|
+
| Token | Value | Computed (gap=8px) |
|
|
51
|
+
| ----------- | ------- | ------------------ |
|
|
52
|
+
| `$space-xs` | `0.5x` | 4px |
|
|
53
|
+
| `$space-sm` | `0.75x` | 6px |
|
|
54
|
+
| `$space-md` | `1x` | 8px |
|
|
55
|
+
| `$space-lg` | `1.5x` | 12px |
|
|
56
|
+
| `$space-xl` | `2x` | 16px |
|
|
57
57
|
|
|
58
58
|
## Size Tokens
|
|
59
59
|
|
|
60
60
|
Defined in `src/tokens/sizes.ts`. Used for component heights and icon sizes.
|
|
61
61
|
|
|
62
|
-
| Token
|
|
63
|
-
|
|
62
|
+
| Token | Value |
|
|
63
|
+
| ---------- | ------ |
|
|
64
64
|
| `$size-xs` | `24px` |
|
|
65
65
|
| `$size-sm` | `28px` |
|
|
66
66
|
| `$size-md` | `32px` |
|
|
@@ -71,22 +71,22 @@ Defined in `src/tokens/sizes.ts`. Used for component heights and icon sizes.
|
|
|
71
71
|
|
|
72
72
|
Defined in `src/tokens/shadows.ts`. Shadow colors (`#shadow-sm`, `#shadow-md`, `#shadow-lg`) are generated by Glaze and adapt automatically to dark / high-contrast schemes.
|
|
73
73
|
|
|
74
|
-
| Token
|
|
75
|
-
|
|
76
|
-
| `$item-shadow`
|
|
77
|
-
| `$card-shadow`
|
|
78
|
-
| `$shadow`
|
|
79
|
-
| `$dialog-shadow` | `0 1x 4x #shadow-lg`
|
|
74
|
+
| Token | Value |
|
|
75
|
+
| ---------------- | ------------------------- |
|
|
76
|
+
| `$item-shadow` | `0 1bw 0.375x #shadow-sm` |
|
|
77
|
+
| `$card-shadow` | `0 0.5x 2x #shadow-md` |
|
|
78
|
+
| `$shadow` | `0 0.5x 2x #shadow-md` |
|
|
79
|
+
| `$dialog-shadow` | `0 1x 4x #shadow-lg` |
|
|
80
80
|
|
|
81
81
|
## Layout Tokens
|
|
82
82
|
|
|
83
83
|
Defined in `src/tokens/layout.ts`.
|
|
84
84
|
|
|
85
|
-
| Token
|
|
86
|
-
|
|
85
|
+
| Token | Value |
|
|
86
|
+
| -------------------- | -------- |
|
|
87
87
|
| `$max-content-width` | `1440px` |
|
|
88
|
-
| `$topbar-height`
|
|
89
|
-
| `$sidebar-width`
|
|
88
|
+
| `$topbar-height` | `48px` |
|
|
89
|
+
| `$sidebar-width` | `200px` |
|
|
90
90
|
|
|
91
91
|
## Color Tokens
|
|
92
92
|
|
|
@@ -118,7 +118,7 @@ When the attribute is absent, the scheme falls back to `@media (prefers-color-sc
|
|
|
118
118
|
The neutral palette uses a `surface` / `surface-text` model. Each surface depth has its own AAA text color, plus a soft (AA) variant for secondary copy:
|
|
119
119
|
|
|
120
120
|
| Token | Role |
|
|
121
|
-
|
|
121
|
+
| --- | --- |
|
|
122
122
|
| `#surface` | Primary background |
|
|
123
123
|
| `#surface-2` | Slightly recessed background (cards, inputs) |
|
|
124
124
|
| `#surface-3` | Deepest background (panels, code blocks) |
|
|
@@ -132,7 +132,7 @@ The neutral palette uses a `surface` / `surface-text` model. Each surface depth
|
|
|
132
132
|
### Other Neutral Tokens
|
|
133
133
|
|
|
134
134
|
| Token | Role |
|
|
135
|
-
|
|
135
|
+
| --- | --- |
|
|
136
136
|
| `#border` | Default border color |
|
|
137
137
|
| `#placeholder` | Input placeholder text |
|
|
138
138
|
| `#focus` | Focus ring color |
|
|
@@ -144,20 +144,13 @@ The neutral palette uses a `surface` / `surface-text` model. Each surface depth
|
|
|
144
144
|
|
|
145
145
|
### Context Hooks
|
|
146
146
|
|
|
147
|
-
Tokens a **container** sets to steer a component that cannot resolve the color on
|
|
148
|
-
its own. They ship with a default, so nothing has to be set unless the default is
|
|
149
|
-
wrong.
|
|
147
|
+
Tokens a **container** sets to steer a component that cannot resolve the color on its own. They ship with a default, so nothing has to be set unless the default is wrong.
|
|
150
148
|
|
|
151
149
|
| Token | Default | Role |
|
|
152
|
-
|
|
150
|
+
| --- | --- | --- |
|
|
153
151
|
| `#current-fill` | `#surface` | The label color `current.primary` punches out of its `currentcolor` chip — read by that one flavour and nothing else |
|
|
154
152
|
|
|
155
|
-
`theme="current" type="primary"` fills with the color it **inherits**, so its
|
|
156
|
-
label cannot come from that color too and reads `#current-fill` instead. The page
|
|
157
|
-
(`#surface`) is the right answer almost everywhere, and wrong in exactly one
|
|
158
|
-
place: a container whose own text color is the page paints `#white`, which *is*
|
|
159
|
-
`#surface` in light mode, so the label would vanish into its own chip. Such a container sets
|
|
160
|
-
the token to its own fill, which contrasts with its own text by construction:
|
|
153
|
+
`theme="current" type="primary"` fills with the color it **inherits**, so its label cannot come from that color too and reads `#current-fill` instead. The page (`#surface`) is the right answer almost everywhere, and wrong in exactly one place: a container whose own text color is the page paints `#white`, which _is_ `#surface` in light mode, so the label would vanish into its own chip. Such a container sets the token to its own fill, which contrasts with its own text by construction:
|
|
161
154
|
|
|
162
155
|
```jsx
|
|
163
156
|
<Block fill="#fixed-dark" color="#white" styles={{ '#current-fill': '#fixed-dark' }}>
|
|
@@ -165,16 +158,14 @@ the token to its own fill, which contrasts with its own text by construction:
|
|
|
165
158
|
</Block>
|
|
166
159
|
```
|
|
167
160
|
|
|
168
|
-
Setting it moves the label, the icon slots and the chip's rim together. It also
|
|
169
|
-
takes the alpha suffix like any other token (`#current-fill.5` is the disabled
|
|
170
|
-
label), because it is a declared token rather than a bare custom property.
|
|
161
|
+
Setting it moves the label, the icon slots and the chip's rim together. It also takes the alpha suffix like any other token (`#current-fill.5` is the disabled label), because it is a declared token rather than a bare custom property.
|
|
171
162
|
|
|
172
163
|
### Accent System
|
|
173
164
|
|
|
174
165
|
Each themed color (default, primary, success, danger, warning, note) provides an `accent-*` family anchored to a fixed white "accent surface text". These tokens stay recognizable across schemes (used for branded buttons, CTAs, etc.):
|
|
175
166
|
|
|
176
167
|
| Token (default theme; prefixed in others) | Role |
|
|
177
|
-
|
|
168
|
+
| --- | --- |
|
|
178
169
|
| `#accent-surface` | Saturated brand fill (button bg) |
|
|
179
170
|
| `#accent-surface-2`, `#accent-surface-3` | Darker / more saturated variants |
|
|
180
171
|
| `#accent-surface-text` | Near-white text on accent fill |
|
|
@@ -187,15 +178,15 @@ In the `default` theme these tokens are unprefixed (`#accent-surface`). In color
|
|
|
187
178
|
|
|
188
179
|
Each colored theme (`primary`, `purple`, `success`, `danger`, `warning`, `note`) also provides its own tinted `<theme>-surface` (banner / chip background) and `<theme>-surface-text` (banner text).
|
|
189
180
|
|
|
190
|
-
The hues below are the
|
|
181
|
+
The hues below are the _defaults_; each is tunable at runtime (see [Theming](./Theming.md)).
|
|
191
182
|
|
|
192
|
-
| Group
|
|
193
|
-
|
|
194
|
-
| `#primary-*` / `#purple-*` | 280.3°
|
|
195
|
-
| `#success-*`
|
|
196
|
-
| `#danger-*`
|
|
197
|
-
| `#warning-*`
|
|
198
|
-
| `#note-*`
|
|
183
|
+
| Group | Default hue | Purpose |
|
|
184
|
+
| -------------------------- | ----------- | ----------------------------- |
|
|
185
|
+
| `#primary-*` / `#purple-*` | 280.3° | Primary actions, brand color |
|
|
186
|
+
| `#success-*` | 156.9° | Success states, confirmations |
|
|
187
|
+
| `#danger-*` | 23.1° | Errors, destructive actions |
|
|
188
|
+
| `#warning-*` | 84.3° | Warning states, caution |
|
|
189
|
+
| `#note-*` | 302.3° | Informational notes |
|
|
199
190
|
|
|
200
191
|
For example, a success banner uses `fill: '#success-surface'` + `color: '#success-surface-text'`, while a primary button uses `fill: '#primary-accent-surface'` + `color: '#primary-accent-surface-text'`.
|
|
201
192
|
|
|
@@ -212,7 +203,7 @@ resetPaletteConfig();
|
|
|
212
203
|
|
|
213
204
|
Also available: `getPaletteConfig()`, `subscribePaletteConfig()`, the `usePaletteConfig()` hook, a `<Root palette={…}>` prop, `DEFAULT_PALETTE_CONFIG`, and `invalidatePaletteTokens()` for when you drive `glaze.configure(...)` yourself after mount. The palette is process-global — one palette per process, not per tree or per request.
|
|
214
205
|
|
|
215
|
-
To theme a
|
|
206
|
+
To theme a _region_ instead of the document — a theme preview, or a dark panel inside a light page — use `renderColorTokens()`. It resolves one config and one scheme to flat values you apply via a `tokens` prop, without touching the live palette:
|
|
216
207
|
|
|
217
208
|
```tsx
|
|
218
209
|
<Block tokens={renderColorTokens({ accent: { hue: 210 }, scheme: 'dark' })} fill="#surface">
|
|
@@ -226,27 +217,27 @@ Full contract, caveats and a live playground: [Theming](./Theming.md).
|
|
|
226
217
|
|
|
227
218
|
The previous token names continue to work as aliases (defined at the bottom of `src/tokens/colors.ts`). New code should prefer the Glaze tokens, but existing components do not need to be migrated:
|
|
228
219
|
|
|
229
|
-
| Legacy
|
|
230
|
-
|
|
231
|
-
| `#text`
|
|
232
|
-
| `#dark` / `#dark-01`
|
|
233
|
-
| `#dark-02`
|
|
234
|
-
| `#dark-03`
|
|
235
|
-
| `#dark-04`
|
|
236
|
-
| `#dark-05`
|
|
237
|
-
| `#minor`
|
|
238
|
-
| `#shadow`
|
|
239
|
-
| `#light`
|
|
240
|
-
| `#dark-bg`
|
|
241
|
-
| `#primary` / `#purple`
|
|
242
|
-
| `#primary-text` / `#purple-text` | `#primary-accent-text`
|
|
243
|
-
| `#primary-bg` / `#purple-bg`
|
|
244
|
-
| `#primary-icon` / `#purple-icon` | `#primary-accent-icon`
|
|
245
|
-
| `#<status>`
|
|
246
|
-
| `#<status>-text`
|
|
247
|
-
| `#<status>-bg`
|
|
248
|
-
| `#<status>-icon`
|
|
249
|
-
| `#<status>-disabled`
|
|
220
|
+
| Legacy | Resolves to |
|
|
221
|
+
| -------------------------------- | -------------------------- |
|
|
222
|
+
| `#text` | `#surface-text-soft` |
|
|
223
|
+
| `#dark` / `#dark-01` | `#surface-text` |
|
|
224
|
+
| `#dark-02` | `#surface-text-soft` |
|
|
225
|
+
| `#dark-03` | `#surface-text-soft-2` |
|
|
226
|
+
| `#dark-04` | `#placeholder` |
|
|
227
|
+
| `#dark-05` | `#border` |
|
|
228
|
+
| `#minor` | `#surface-text-soft.65` |
|
|
229
|
+
| `#shadow` | `#shadow-md` |
|
|
230
|
+
| `#light` | `#surface-3` |
|
|
231
|
+
| `#dark-bg` | `#surface-2` |
|
|
232
|
+
| `#primary` / `#purple` | `#primary-accent-surface` |
|
|
233
|
+
| `#primary-text` / `#purple-text` | `#primary-accent-text` |
|
|
234
|
+
| `#primary-bg` / `#purple-bg` | `#primary-surface` |
|
|
235
|
+
| `#primary-icon` / `#purple-icon` | `#primary-accent-icon` |
|
|
236
|
+
| `#<status>` | `#<status>-accent-surface` |
|
|
237
|
+
| `#<status>-text` | `#<status>-accent-text` |
|
|
238
|
+
| `#<status>-bg` | `#<status>-surface` |
|
|
239
|
+
| `#<status>-icon` | `#<status>-accent-icon` |
|
|
240
|
+
| `#<status>-disabled` | `#disabled` |
|
|
250
241
|
|
|
251
242
|
`#white`, `#black`, and `#clear` are not defined in the palette — `#white` and `#black` are tasty's built-in named colors, and `#clear` is an alias for `transparent`.
|
|
252
243
|
|
|
@@ -259,74 +250,95 @@ Defined in `src/tokens/typography.ts`.
|
|
|
259
250
|
### Headings
|
|
260
251
|
|
|
261
252
|
| Preset | Size | Line Height | Weight |
|
|
262
|
-
|
|
263
|
-
| `h1`
|
|
264
|
-
| `h2`
|
|
265
|
-
| `h3`
|
|
266
|
-
| `h4`
|
|
267
|
-
| `h5`
|
|
268
|
-
| `h6`
|
|
253
|
+
| ------ | ---- | ----------- | ------ |
|
|
254
|
+
| `h1` | 36px | 44px | 600 |
|
|
255
|
+
| `h2` | 24px | 32px | 600 |
|
|
256
|
+
| `h3` | 20px | 28px | 600 |
|
|
257
|
+
| `h4` | 18px | 24px | 600 |
|
|
258
|
+
| `h5` | 16px | 22px | 600 |
|
|
259
|
+
| `h6` | 14px | 20px | 600 |
|
|
269
260
|
|
|
270
261
|
### Text
|
|
271
262
|
|
|
272
|
-
| Preset | Size | Line Height | Weight | Notes
|
|
273
|
-
|
|
274
|
-
| `t1`
|
|
275
|
-
| `t2`
|
|
276
|
-
| `t2m`
|
|
277
|
-
| `t3`
|
|
278
|
-
| `t3m`
|
|
279
|
-
| `t4`
|
|
280
|
-
| `t4m`
|
|
263
|
+
| Preset | Size | Line Height | Weight | Notes |
|
|
264
|
+
| ------ | ---- | ----------- | ------ | --------------------- |
|
|
265
|
+
| `t1` | 18px | 24px | 400 | |
|
|
266
|
+
| `t2` | 16px | 22px | 400 | |
|
|
267
|
+
| `t2m` | 16px | 22px | 500 | Medium weight variant |
|
|
268
|
+
| `t3` | 14px | 20px | 400 | Base text size |
|
|
269
|
+
| `t3m` | 14px | 20px | 500 | Medium weight variant |
|
|
270
|
+
| `t4` | 12px | 18px | 500 | Small text |
|
|
271
|
+
| `t4m` | 12px | 18px | 600 | Small text, semi-bold |
|
|
281
272
|
|
|
282
273
|
### Paragraph
|
|
283
274
|
|
|
284
275
|
Paragraph presets have slightly increased line heights compared to text presets at the same size, optimized for multi-line reading.
|
|
285
276
|
|
|
286
277
|
| Preset | Size | Line Height | Weight |
|
|
287
|
-
|
|
288
|
-
| `p1`
|
|
289
|
-
| `p2`
|
|
290
|
-
| `p3`
|
|
291
|
-
| `p4`
|
|
278
|
+
| ------ | ---- | ----------- | ------ |
|
|
279
|
+
| `p1` | 18px | 28px | 400 |
|
|
280
|
+
| `p2` | 16px | 24px | 400 |
|
|
281
|
+
| `p3` | 14px | 22px | 400 |
|
|
282
|
+
| `p4` | 12px | 20px | 500 |
|
|
292
283
|
|
|
293
284
|
### Markdown / Prose
|
|
294
285
|
|
|
295
286
|
Largest line heights, designed for long-form content blocks.
|
|
296
287
|
|
|
297
288
|
| Preset | Size | Line Height | Weight |
|
|
298
|
-
|
|
299
|
-
| `m1`
|
|
300
|
-
| `m2`
|
|
301
|
-
| `m3`
|
|
289
|
+
| ------ | ---- | ----------- | ------ |
|
|
290
|
+
| `m1` | 18px | 32px | 400 |
|
|
291
|
+
| `m2` | 16px | 28px | 400 |
|
|
292
|
+
| `m3` | 14px | 24px | 400 |
|
|
302
293
|
|
|
303
294
|
### Snippet / Monospace
|
|
304
295
|
|
|
305
296
|
Sized to parallel `t2`–`t4`. Each preset sets `font-family` to `var(--font-mono)` (the design-system monospace stack from `Root`).
|
|
306
297
|
|
|
307
|
-
| Preset | Size | Line Height | Weight | Notes
|
|
308
|
-
|
|
309
|
-
| `s2`
|
|
310
|
-
| `s3`
|
|
311
|
-
| `s4`
|
|
298
|
+
| Preset | Size | Line Height | Weight | Notes |
|
|
299
|
+
| ------ | ---- | ----------- | ------ | ------------------------------------ |
|
|
300
|
+
| `s2` | 16px | 22px | 400 | Larger code / snippet text |
|
|
301
|
+
| `s3` | 14px | 20px | 400 | Default snippet size (matches Prism) |
|
|
302
|
+
| `s4` | 12px | 18px | 400 | Compact code / snippet text |
|
|
312
303
|
|
|
313
304
|
### Special Presets
|
|
314
305
|
|
|
315
|
-
| Preset
|
|
316
|
-
|
|
317
|
-
| `c1`
|
|
318
|
-
| `c2`
|
|
319
|
-
| `tag`
|
|
320
|
-
| `strong`
|
|
321
|
-
| `em`
|
|
322
|
-
| `default` | Aliases `t3` values — the base text style
|
|
306
|
+
| Preset | Description |
|
|
307
|
+
| --------- | ---------------------------------------------- |
|
|
308
|
+
| `c1` | 14px, weight 600, uppercase — section captions |
|
|
309
|
+
| `c2` | 12px, weight 600, uppercase — small captions |
|
|
310
|
+
| `tag` | 12px, weight 600 — tag/badge text |
|
|
311
|
+
| `strong` | Inherits everything, applies bold weight |
|
|
312
|
+
| `em` | Inherits everything, applies italic style |
|
|
313
|
+
| `default` | Aliases `t3` values — the base text style |
|
|
314
|
+
|
|
315
|
+
## Resolving Tokens Outside CSS
|
|
316
|
+
|
|
317
|
+
Some surfaces cannot take a `var(--…)` reference — a third-party iframe (Stripe Elements), a CodeMirror or Monaco theme object, a Vega spec. Those take colors, lengths and font descriptors as values, so they need the token _resolved_. `resolveTokenValue()` and its siblings read that value out of the DOM, from the element `Root` declares the tokens on, and refuse to hand back a placeholder.
|
|
318
|
+
|
|
319
|
+
```ts
|
|
320
|
+
import { resolvePresetValues, resolveTokenValue, resolveTokenValues } from '@cube-dev/ui-kit';
|
|
321
|
+
|
|
322
|
+
resolveTokenValue('#purple'); // 'oklch(0.571 0.0971 280.3)'
|
|
323
|
+
resolveTokenValue('$space-md'); // '8px'
|
|
324
|
+
resolveTokenValues(['#surface', '#surface-text', '#border']); // keyed by the tokens as written
|
|
325
|
+
resolvePresetValues('s3'); // { fontFamily: 'ui-monospace, …', fontSize: '14px', lineHeight: '20px', … }
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
`useTokenValue()`, `useTokenValues()` and `usePresetValues()` are the same three readers as hooks, re-resolved whenever the palette is re-seeded or the scheme / contrast tier flips. The object `useTokenValues()` returns keeps its identity while the values do, so it is safe as a dependency of the theme object built from it.
|
|
329
|
+
|
|
330
|
+
So these helpers do not inspect the value. They read `$tokens-applied`, a marker the token block declares alongside the tokens, which answers the question that matters — _are the kit's tokens in effect on this element?_ Off that surface every read returns `null` (or `fallback`) and warns once in development; on it, the computed value is taken as the truth.
|
|
331
|
+
|
|
332
|
+
All six take `{ element, fallback }`. Pass `element` to read a _local_ override instead of the document — a subtree carrying its own `tokens` prop (`renderColorTokens()`), or one under a `data-schema` / `data-contrast` that differs from the document's. Pass `fallback` for the value to use when a token cannot be resolved, including during SSR, where there is no DOM to read.
|
|
333
|
+
|
|
334
|
+
**Why `getComputedStyle` by hand does not work.** `Root` declares the token block on `<body>`, so `<html>`, a detached node, and a tree that has not mounted `Root` yet are all outside it — and a token read from outside does not come back empty. Tasty registers `@property` rules with real `initial-value`s, so `--gap` reads `4px` there rather than the kit's `8px`, `--radius` reads `6px`, `--transition` reads `80ms`. The value looks entirely ordinary and is simply wrong. Inspecting it cannot help in the other direction either: `#clear` really is `transparent` and `$h2-letter-spacing` really is `0px`, indistinguishable from an unset property of the same type.
|
|
323
335
|
|
|
324
336
|
## Themes
|
|
325
337
|
|
|
326
338
|
Component themes are set via the `theme` prop or `theme=name` modifier:
|
|
327
339
|
|
|
328
340
|
| Theme | Purpose |
|
|
329
|
-
|
|
341
|
+
| --- | --- |
|
|
330
342
|
| `default` | Standard appearance |
|
|
331
343
|
| `danger` | Destructive / error actions |
|
|
332
344
|
| `special` | Highlighted / promoted actions |
|
|
@@ -340,7 +352,7 @@ Component themes are set via the `theme` prop or `theme=name` modifier:
|
|
|
340
352
|
Reusable style presets applied via the `recipe` style property. Defined in `src/components/Root.tsx`.
|
|
341
353
|
|
|
342
354
|
| Recipe | Purpose |
|
|
343
|
-
|
|
355
|
+
| --- | --- |
|
|
344
356
|
| `reset` | Zero out margin, padding, border, outline; set `box-sizing: border-box` |
|
|
345
357
|
| `button` | Base button appearance: no native styling, `touch-action: manipulation` |
|
|
346
358
|
| `input` | Base input appearance: no native styling, inherit color |
|
|
@@ -353,7 +365,7 @@ Reusable style presets applied via the `recipe` style property. Defined in `src/
|
|
|
353
365
|
These are data-attribute modifiers used in component style maps (via the `mods` prop):
|
|
354
366
|
|
|
355
367
|
| Modifier | Description |
|
|
356
|
-
|
|
368
|
+
| --- | --- |
|
|
357
369
|
| `disabled` | Disabled state |
|
|
358
370
|
| `hovered` | Hover state |
|
|
359
371
|
| `focused` | Focus state |
|
|
@@ -395,38 +407,17 @@ Icons live in `src/icons/`. Use existing icons when possible; otherwise use `@ta
|
|
|
395
407
|
- Always wrap tabler icons with `<Icon>` for custom size/color. Never add props directly to tabler icons.
|
|
396
408
|
- To add new icons run: `pnpm add-icons`
|
|
397
409
|
|
|
398
|
-
Illustrations are not icons and do not live in `src/icons/`: `CubeLogo` and
|
|
399
|
-
`NoDataIcon` are `Icon`-based components under `src/components/other/`. They size
|
|
400
|
-
like an icon, but `NoDataIcon` is a three-tone drawing on the shared cube-face
|
|
401
|
-
tokens (`#loading-face-1` … `#loading-face-3`) rather than a `currentColor`
|
|
402
|
-
glyph, so it ignores `color` and belongs at illustration sizes (`size="8x"` and
|
|
403
|
-
up).
|
|
410
|
+
Illustrations are not icons and do not live in `src/icons/`: `CubeLogo` and `NoDataIcon` are `Icon`-based components under `src/components/other/`. They size like an icon, but `NoDataIcon` is a three-tone drawing on the shared cube-face tokens (`#loading-face-1` … `#loading-face-3`) rather than a `currentColor` glyph, so it ignores `color` and belongs at illustration sizes (`size="8x"` and up).
|
|
404
411
|
|
|
405
412
|
## Hierarchical Table Rows
|
|
406
413
|
|
|
407
|
-
`ItemTable` and `DataTable` opt into native treegrid behavior with
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
virtualization. ItemTable client search preserves ancestor paths and temporarily
|
|
415
|
-
opens branches containing matches. Server modes do not transform nested data.
|
|
416
|
-
|
|
417
|
-
Use `treeColumnKey` to choose the disclosure/indent column. Its hierarchy chrome
|
|
418
|
-
is customizable through the `TreeContent`, `TreeToggle`, and `TreeValue`
|
|
419
|
-
sub-elements. ItemTable multiple selection cascades by default; DataTable cell
|
|
420
|
-
ranges contain visible rows only. See each component's docs for pagination,
|
|
421
|
-
numbering, selection, and drag/drop limits.
|
|
422
|
-
|
|
423
|
-
DataTable also accepts nested column definitions for already-shaped pivot
|
|
424
|
-
results. Group nodes create accessible multi-row headers with native column
|
|
425
|
-
spans, while sorting, resizing, ranges and copying continue to operate on their
|
|
426
|
-
leaf columns. Both tables fill an available flex pane by default; use
|
|
427
|
-
`isAutoHeight` for a compact result whose frame should end at its last rendered
|
|
428
|
-
row. Auto-height renders every row, so bounded tables remain the right choice
|
|
429
|
-
for large results.
|
|
414
|
+
`ItemTable` and `DataTable` opt into native treegrid behavior with `getRowChildren`. Pass roots in `data`; the callback returns already-loaded children, and row keys must be globally unique. Expansion is uncontrolled with `defaultExpandedKeys` or controlled with `expandedKeys` / `onExpand`.
|
|
415
|
+
|
|
416
|
+
The shared table engine recursively sorts siblings, paginates roots with their complete subtrees, and flattens only expanded rows for rendering and virtualization. ItemTable client search preserves ancestor paths and temporarily opens branches containing matches. Server modes do not transform nested data.
|
|
417
|
+
|
|
418
|
+
Use `treeColumnKey` to choose the disclosure/indent column. Its hierarchy chrome is customizable through the `TreeContent`, `TreeToggle`, and `TreeValue` sub-elements. ItemTable multiple selection cascades by default; DataTable cell ranges contain visible rows only. See each component's docs for pagination, numbering, selection, and drag/drop limits.
|
|
419
|
+
|
|
420
|
+
DataTable also accepts nested column definitions for already-shaped pivot results. Group nodes create accessible multi-row headers with native column spans, while sorting, resizing, ranges and copying continue to operate on their leaf columns. Both tables fill an available flex pane by default; use `isAutoHeight` for a compact result whose frame should end at its last rendered row. Auto-height renders every row, so bounded tables remain the right choice for large results.
|
|
430
421
|
|
|
431
422
|
## Form System
|
|
432
423
|
|
|
@@ -457,7 +448,7 @@ Returns a `CubeFormInstance` with:
|
|
|
457
448
|
Async rule-based system. Each rule is an object with one of these properties:
|
|
458
449
|
|
|
459
450
|
| Rule | Description |
|
|
460
|
-
|
|
451
|
+
| --- | --- |
|
|
461
452
|
| `required` | Field must have a value |
|
|
462
453
|
| `type` | Type check: `email`, `url`, `number`, `integer`, `date`, `hex`, etc. |
|
|
463
454
|
| `pattern` | Regex pattern match |
|
package/docs/Utilities.md
CHANGED
|
@@ -36,7 +36,7 @@ function extractStyles(
|
|
|
36
36
|
### Predefined style lists
|
|
37
37
|
|
|
38
38
|
| List | Contains |
|
|
39
|
-
|
|
39
|
+
| --- | --- |
|
|
40
40
|
| `BASE_STYLES` | `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition` |
|
|
41
41
|
| `POSITION_STYLES` | `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position` |
|
|
42
42
|
| `DIMENSION_STYLES` | `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex` |
|
|
@@ -144,7 +144,7 @@ function filterBaseProps(
|
|
|
144
144
|
### What passes through
|
|
145
145
|
|
|
146
146
|
| Category | Examples |
|
|
147
|
-
|
|
147
|
+
| --- | --- |
|
|
148
148
|
| DOM ids | `id` |
|
|
149
149
|
| Base props | `role`, `as`, `children`, `style`, `className`, `href`, `target`, `tabIndex`, `hidden`, `disabled` |
|
|
150
150
|
| ARIA attributes | `aria-label`, `aria-describedby`, etc. |
|
|
@@ -195,13 +195,7 @@ import { IconPlus } from '@tabler/icons-react';
|
|
|
195
195
|
</Button>;
|
|
196
196
|
```
|
|
197
197
|
|
|
198
|
-
A disabled button keeps showing its tooltip. Browsers stop dispatching mouse
|
|
199
|
-
events on elements carrying the native `disabled` attribute, so a button that
|
|
200
|
-
has a tooltip is marked with `aria-disabled` instead and kept inert: `onPress`
|
|
201
|
-
never fires and clicks (including the ones Enter and Space produce) do nothing.
|
|
202
|
-
Such a button also stays in the tab order, so keyboard users can focus it and
|
|
203
|
-
read the tooltip. Buttons rendered as links (`to`) are always marked this way,
|
|
204
|
-
since `disabled` is not a valid attribute on an anchor.
|
|
198
|
+
A disabled button keeps showing its tooltip. Browsers stop dispatching mouse events on elements carrying the native `disabled` attribute, so a button that has a tooltip is marked with `aria-disabled` instead and kept inert: `onPress` never fires and clicks (including the ones Enter and Space produce) do nothing. Such a button also stays in the tab order, so keyboard users can focus it and read the tooltip. Buttons rendered as links (`to`) are always marked this way, since `disabled` is not a valid attribute on an anchor.
|
|
205
199
|
|
|
206
200
|
### Custom Size
|
|
207
201
|
|
|
@@ -234,35 +228,21 @@ since `disabled` is not a valid attribute on an anchor.
|
|
|
234
228
|
|
|
235
229
|
- `aria-label`, `aria-labelledby` – Accessible name.
|
|
236
230
|
- `aria-pressed` – Managed automatically when `isSelected` is used.
|
|
237
|
-
- `aria-disabled` – Announces the disabled state whenever the native `disabled`
|
|
238
|
-
attribute cannot be used: on links, and on buttons that carry a tooltip.
|
|
231
|
+
- `aria-disabled` – Announces the disabled state whenever the native `disabled` attribute cannot be used: on links, and on buttons that carry a tooltip.
|
|
239
232
|
- Additional ARIA attributes supported by React Aria's `useButton`.
|
|
240
233
|
|
|
241
234
|
## Behaviour Inside Popovers
|
|
242
235
|
|
|
243
|
-
By default, pressing a `Button` inside an open popover (any overlay that
|
|
244
|
-
uses `usePopoverSync` — including the popovers rendered by `FilterPicker`,
|
|
245
|
-
`Picker`, `ComboBox`, `Select`, `MenuTrigger`, and
|
|
246
|
-
`DialogTrigger type="popover"`) **dismisses that popover** after the user's
|
|
247
|
-
`onPress` runs. This matches the common UX where a popover is a transient
|
|
248
|
-
surface: any action inside it should close it.
|
|
236
|
+
By default, pressing a `Button` inside an open popover (any overlay that uses `usePopoverSync` — including the popovers rendered by `FilterPicker`, `Picker`, `ComboBox`, `Select`, `MenuTrigger`, and `DialogTrigger type="popover"`) **dismisses that popover** after the user's `onPress` runs. This matches the common UX where a popover is a transient surface: any action inside it should close it.
|
|
249
237
|
|
|
250
|
-
Modal / tray / fullscreen Dialogs are **not** affected — a Button inside a
|
|
251
|
-
modal Dialog does not auto-close it.
|
|
238
|
+
Modal / tray / fullscreen Dialogs are **not** affected — a Button inside a modal Dialog does not auto-close it.
|
|
252
239
|
|
|
253
240
|
### Opt-outs
|
|
254
241
|
|
|
255
242
|
There are three ways to keep the popover open when a Button is pressed:
|
|
256
243
|
|
|
257
|
-
1. **Automatic for popover triggers.** Buttons that act as popover triggers
|
|
258
|
-
|
|
259
|
-
`DialogTrigger type="popover"`, `FilterPicker`, `Picker`, `ComboBox`,
|
|
260
|
-
`Select`). Modal-type `DialogTrigger` children are **not** marked, so they
|
|
261
|
-
correctly dismiss the parent popover and let the modal take over.
|
|
262
|
-
2. **Manual via `data-popover-keep`.** Add the attribute to the button
|
|
263
|
-
(toggle case) or to any ancestor element (subtree case — useful when a
|
|
264
|
-
custom inline editor inside a popover footer should not collapse on
|
|
265
|
-
every interaction):
|
|
244
|
+
1. **Automatic for popover triggers.** Buttons that act as popover triggers already carry `data-popover-trigger` (applied by `MenuTrigger`, `DialogTrigger type="popover"`, `FilterPicker`, `Picker`, `ComboBox`, `Select`). Modal-type `DialogTrigger` children are **not** marked, so they correctly dismiss the parent popover and let the modal take over.
|
|
245
|
+
2. **Manual via `data-popover-keep`.** Add the attribute to the button (toggle case) or to any ancestor element (subtree case — useful when a custom inline editor inside a popover footer should not collapse on every interaction):
|
|
266
246
|
|
|
267
247
|
```jsx
|
|
268
248
|
<Button data-popover-keep onPress={() => setMode((m) => !m)}>
|
|
@@ -274,9 +254,7 @@ There are three ways to keep the popover open when a Button is pressed:
|
|
|
274
254
|
</div>
|
|
275
255
|
```
|
|
276
256
|
|
|
277
|
-
3. **Custom non-Cube triggers.** Call `useDismissParentPopover()` yourself if
|
|
278
|
-
your control should dismiss the popover but does not extend `Button` /
|
|
279
|
-
`ItemButton`:
|
|
257
|
+
3. **Custom non-Cube triggers.** Call `useDismissParentPopover()` yourself if your control should dismiss the popover but does not extend `Button` / `ItemButton`:
|
|
280
258
|
```jsx
|
|
281
259
|
const dismiss = useDismissParentPopover();
|
|
282
260
|
<MyCustomPressable
|
|
@@ -289,13 +267,7 @@ There are three ways to keep the popover open when a Button is pressed:
|
|
|
289
267
|
|
|
290
268
|
### Async `onPress`
|
|
291
269
|
|
|
292
|
-
The dismiss is dispatched via the EventBus, which defers with `setTimeout(0)`.
|
|
293
|
-
This means synchronous `onPress` handlers (and any React state updates they
|
|
294
|
-
trigger) flush **before** the popover closes — including the common case of
|
|
295
|
-
opening a hoisted modal via `useDialogContainer` from a popover footer (the
|
|
296
|
-
modal mounts first, then the popover closes behind it). If your `onPress` is
|
|
297
|
-
async and `await`s before opening another overlay, the popover will close
|
|
298
|
-
first and the new overlay will appear after — usually fine, but worth noting.
|
|
270
|
+
The dismiss is dispatched via the EventBus, which defers with `setTimeout(0)`. This means synchronous `onPress` handlers (and any React state updates they trigger) flush **before** the popover closes — including the common case of opening a hoisted modal via `useDialogContainer` from a popover footer (the modal mounts first, then the popover closes behind it). If your `onPress` is async and `await`s before opening another overlay, the popover will close first and the new overlay will appear after — usually fine, but worth noting.
|
|
299
271
|
|
|
300
272
|
## Best Practices
|
|
301
273
|
|
|
@@ -180,11 +180,13 @@ Use `actionProps`, `triggerProps`, and `menuProps` to customise individual parts
|
|
|
180
180
|
## Best Practices
|
|
181
181
|
|
|
182
182
|
1. **Do**: Use strict mode for standard action+trigger patterns.
|
|
183
|
+
|
|
183
184
|
```jsx
|
|
184
185
|
<Button.Split actions={actions} defaultActionKey="deploy" type="primary" />
|
|
185
186
|
```
|
|
186
187
|
|
|
187
188
|
2. **Do**: Set `type` and `theme` on the wrapper instead of repeating on each child.
|
|
189
|
+
|
|
188
190
|
```jsx
|
|
189
191
|
<Button.Split type="primary">
|
|
190
192
|
<Button>Save</Button>
|
|
@@ -129,8 +129,8 @@ For detailed information about all available item properties, see the [Menu.Item
|
|
|
129
129
|
|
|
130
130
|
```jsx
|
|
131
131
|
<CommandMenu searchPlaceholder="Search commands...">
|
|
132
|
-
<CommandMenu.Item
|
|
133
|
-
key="save"
|
|
132
|
+
<CommandMenu.Item
|
|
133
|
+
key="save"
|
|
134
134
|
icon={<IconSave />}
|
|
135
135
|
hotkeys="cmd+s"
|
|
136
136
|
keywords={["write", "disk", "persist"]}
|
|
@@ -138,8 +138,8 @@ For detailed information about all available item properties, see the [Menu.Item
|
|
|
138
138
|
>
|
|
139
139
|
Save Document
|
|
140
140
|
</CommandMenu.Item>
|
|
141
|
-
<CommandMenu.Item
|
|
142
|
-
key="help"
|
|
141
|
+
<CommandMenu.Item
|
|
142
|
+
key="help"
|
|
143
143
|
icon={<IconHelp />}
|
|
144
144
|
forceMount={true}
|
|
145
145
|
description="Always visible help option"
|
|
@@ -358,10 +358,10 @@ function CommandMenuDialogContent({ onClose, ...args }) {
|
|
|
358
358
|
|
|
359
359
|
return (
|
|
360
360
|
<Dialog size="medium" isDismissable={false}>
|
|
361
|
-
<CommandMenu
|
|
362
|
-
width="100%"
|
|
363
|
-
height="max(40x, 90vh)"
|
|
364
|
-
size="medium"
|
|
361
|
+
<CommandMenu
|
|
362
|
+
width="100%"
|
|
363
|
+
height="max(40x, 90vh)"
|
|
364
|
+
size="medium"
|
|
365
365
|
onAction={handleAction}
|
|
366
366
|
{...args}
|
|
367
367
|
>
|