@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.js","names":[],"sources":["../../src/tokens/resolve.ts"],"sourcesContent":["import { useState, useSyncExternalStore } from 'react';\n\nimport { useLayoutEffect } from '../utils/react/useLayoutEffect';\nimport { warn } from '../utils/warnings';\n\nimport { getTokens } from './all-tokens';\nimport { getPaletteVersion, usePaletteVersion } from './palette-config';\n\n/**\n * Resolving a design token to a literal value, for consumers that render into a\n * surface our stylesheets do not reach — a third-party iframe (Stripe Elements),\n * a CodeMirror / Monaco theme object, a Vega spec. Those take colors, lengths and\n * font descriptors as values; `var(--purple-color)` means nothing to them.\n *\n * Doing it by hand fails silently, because a token read from the wrong element\n * does not come back empty. Tasty registers `@property` rules — its own defaults\n * plus one for every custom property whose type it can infer — and an undeclared\n * token reads back as that rule's `initial-value`. Some of those are obvious\n * duds (`rgba(0, 0, 0, 0)` for a `<color>`, `0px` for a `<length>`), but many are\n * ordinary-looking values: off the token block `--gap` reads `4px` rather than\n * the kit's `8px`, `--transition` reads `80ms`, `--radius` reads `6px`. So\n * inspecting the value cannot tell a real token from a miss, in either\n * direction — `#clear` really is `transparent` and `$h2-letter-spacing` really\n * is `0px`.\n *\n * The question that CAN be answered is \"are the kit's tokens in effect on this\n * element?\", and `$tokens-applied` (see `src/tokens/base.ts`) answers it: it is\n * declared alongside the tokens, so it is present exactly where they are. Off\n * that surface every read is reported as unresolved; on it, the computed value\n * is the truth.\n */\n\n/**\n * Declared by the token block and nothing else — see `src/tokens/base.ts`.\n *\n * Matched by VALUE rather than by presence, because presence is not the signal\n * it looks like: tasty infers a type for the marker as readily as for any other\n * token, registers `@property --tokens-applied` with `initial-value: 0`, and so\n * hands back `0` off the block instead of an empty string. Comparing against the\n * declared value is right either way, and cannot drift from `base.ts`.\n */\nconst SURFACE_MARKER = '$tokens-applied';\n\nfunction isTokenSurface(computed: CSSStyleDeclaration): boolean {\n const declared = getTokens()[SURFACE_MARKER];\n const name = tokenToProperty(SURFACE_MARKER);\n\n if (typeof declared !== 'string' || !name) return false;\n\n return (\n normalizeValue(computed.getPropertyValue(name)) === normalizeValue(declared)\n );\n}\n\n/**\n * Values that mean \"this property was never declared\" once we already know the\n * token block IS in effect. Only used to catch a token the kit does not declare\n * at all — a typo, or a name from another design system — since for those there\n * is no marker to lean on.\n */\nconst PLACEHOLDER_VALUES = new Set([\n 'transparent',\n 'rgba(0,0,0,0)',\n '0',\n '0px',\n '0deg',\n '0s',\n]);\n\n/** Custom property names are CSS identifiers: a letter or `_`, then word chars or `-`. */\nconst PROPERTY_NAME_RE = /^[a-zA-Z_][\\w-]*$/;\n\nexport interface ResolveTokenOptions {\n /**\n * Element to read the tokens off. Defaults to the document `<body>`, which is\n * where `<Root>` declares them.\n *\n * Pass an element when the value has to reflect a *local* override — a subtree\n * carrying its own `tokens` prop (`renderColorTokens()`), or one under a\n * `data-schema` / `data-contrast` attribute that differs from the document's.\n * The element's own document and view are used, so a node inside a same-origin\n * iframe resolves against that iframe.\n */\n element?: Element | null;\n /**\n * Returned in place of `null` when a token is unset, unresolvable, or reads\n * back as an `@property` placeholder — including on the server, where there is\n * no DOM to read.\n */\n fallback?: string;\n}\n\n/**\n * Fields mirror {@link TypographyPreset}. A field the preset does not define is\n * `null`, except `fontFamily`, which falls back to the document's `--font-sans`\n * so the common case (`t1`–`t4`, `h1`–`h6`, which inherit the sans stack rather\n * than naming it) still hands back a usable stack.\n */\nexport type ResolvedPreset = {\n fontFamily: string | null;\n fontSize: string | null;\n fontStyle: string | null;\n fontWeight: string | null;\n lineHeight: string | null;\n letterSpacing: string | null;\n textTransform: string | null;\n boldFontWeight: string | null;\n iconSize: string | null;\n};\n\nconst PRESET_FIELD_SUFFIXES: Record<keyof ResolvedPreset, string> = {\n fontFamily: 'font-family',\n fontSize: 'font-size',\n fontStyle: 'font-style',\n fontWeight: 'font-weight',\n lineHeight: 'line-height',\n letterSpacing: 'letter-spacing',\n textTransform: 'text-transform',\n boldFontWeight: 'bold-font-weight',\n iconSize: 'icon-size',\n};\n\nconst PRESET_FIELDS = Object.keys(\n PRESET_FIELD_SUFFIXES,\n) as (keyof ResolvedPreset)[];\n\n/**\n * Map a token to its CSS custom property name, using the same convention tasty's\n * style DSL does: `#name` is a color (`--name-color`), `$name` is everything else\n * (`--name`). A raw `--name` or a bare `name` is taken as written.\n *\n * Returns `null` for anything that would not be a valid custom property.\n */\nfunction tokenToProperty(token: string): string | null {\n const trimmed = token.trim();\n\n let name: string;\n\n if (trimmed.startsWith('--')) {\n name = trimmed.slice(2);\n } else if (trimmed.startsWith('#')) {\n name = `${trimmed.slice(1)}-color`;\n } else if (trimmed.startsWith('$')) {\n name = trimmed.slice(1);\n } else {\n name = trimmed;\n }\n\n return PROPERTY_NAME_RE.test(name) ? `--${name}` : null;\n}\n\n/** Whitespace and case are not meaningful in the values we compare against. */\nfunction normalizeValue(value: string): string {\n return value.replace(/\\s+/g, '').toLowerCase();\n}\n\n/**\n * Every custom property the kit declares, by name. Membership only — the value\n * is deliberately not consulted, because a token's declared value tells you\n * nothing about whether it is in effect where you read it.\n *\n * Memoized against the palette version, like {@link getTokens} itself.\n */\nlet knownNamesCache: { version: number; names: Set<string> } | null = null;\n\nfunction getKnownTokenNames(): Set<string> {\n const version = getPaletteVersion();\n\n if (!knownNamesCache || knownNamesCache.version !== version) {\n const names = new Set<string>();\n\n for (const key of Object.keys(getTokens())) {\n const name = tokenToProperty(key);\n\n if (name) names.add(name);\n }\n\n knownNamesCache = { version, names };\n }\n\n return knownNamesCache.names;\n}\n\n/** These fire per token, per page — once each, not once per render. */\nconst warnedTokens = new Set<string>();\n\nfunction warnOnce(key: string, message: string) {\n if (warnedTokens.has(key)) return;\n\n warnedTokens.add(key);\n\n warn(message);\n}\n\n/** The document `<body>` is where `<Root>` declares the token block. */\nfunction resolveTarget(element?: Element | null): Element | null {\n if (element) return element;\n if (typeof document === 'undefined') return null;\n\n return document.body ?? document.documentElement ?? null;\n}\n\nfunction readValue(\n computed: CSSStyleDeclaration,\n token: string,\n fallback: string | null,\n silent: boolean,\n onTokenSurface: boolean,\n): string | null {\n const name = tokenToProperty(token);\n\n if (!name) {\n warnOnce(`name:${token}`, `\"${token}\" is not a valid design token name.`);\n\n return fallback;\n }\n\n if (!onTokenSurface) {\n if (!silent) {\n warnOnce(\n `surface:${name}`,\n `Token \"${token}\" (${name}) was read from an element the design tokens are not in effect on, so any value there is tasty's @property default rather than the kit's. <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. Pass \\`element\\` to read from a specific subtree, or \\`fallback\\` for a value to use instead.`,\n );\n }\n\n return fallback;\n }\n\n const value = computed.getPropertyValue(name).trim();\n\n if (!value) return fallback;\n\n // On a token surface the computed value is the truth, including a genuinely\n // transparent color or a real `0px`. The only thing left to catch is a name\n // the kit never declares, where an @property default is all there is to read.\n if (\n PLACEHOLDER_VALUES.has(normalizeValue(value)) &&\n !getKnownTokenNames().has(name)\n ) {\n if (!silent) {\n warnOnce(\n `unknown:${name}`,\n `Token \"${token}\" (${name}) is not declared by the kit, and read back as an unset custom property. Check the name, or pass \\`fallback\\`.`,\n );\n }\n\n return fallback;\n }\n\n return value;\n}\n\n/**\n * Read the resolved value of one design token — a color, a length, a font\n * descriptor — as a literal string.\n *\n * ```ts\n * resolveTokenValue('#purple'); // 'oklch(0.52 0.24 285)'\n * resolveTokenValue('$space-md'); // '8px'\n * resolveTokenValue('$t3-font-size'); // '14px'\n * ```\n *\n * Returns `options.fallback ?? null` when the token is not declared on the\n * element it was read from — see {@link ResolveTokenOptions}.\n */\nexport function resolveTokenValue(\n token: string,\n options: ResolveTokenOptions = {},\n): string | null {\n return resolveTokenValues([token], options)[token];\n}\n\n/**\n * {@link resolveTokenValue} for several tokens at once, through a single\n * `getComputedStyle` call. Prefer this when building a theme object — a Stripe\n * `Appearance`, a CodeMirror theme — which needs a dozen values at a time.\n *\n * ```ts\n * const { '#surface': background, '#surface-text': color } = resolveTokenValues([\n * '#surface',\n * '#surface-text',\n * ]);\n * ```\n */\nexport function resolveTokenValues<T extends string>(\n tokens: readonly T[],\n options: ResolveTokenOptions = {},\n): Record<T, string | null> {\n return readTokens(tokens, options, false);\n}\n\n/** Shared by the public reader and the preset reader, which suppresses warnings. */\nfunction readTokens<T extends string>(\n tokens: readonly T[],\n options: ResolveTokenOptions,\n silent: boolean,\n): Record<T, string | null> {\n const { element, fallback = null } = options;\n const result = {} as Record<T, string | null>;\n const target = resolveTarget(element);\n const view = target?.ownerDocument?.defaultView;\n\n if (!target || !view) {\n for (const token of tokens) result[token] = fallback;\n\n return result;\n }\n\n const computed = view.getComputedStyle(target);\n // One read for the whole batch: the marker is a property of the element, not\n // of any individual token.\n const onTokenSurface = isTokenSurface(computed);\n\n for (const token of tokens) {\n result[token] = readValue(\n computed,\n token,\n fallback,\n silent,\n onTokenSurface,\n );\n }\n\n return result;\n}\n\n/**\n * Resolve a typography preset — `'t3'`, `'h2'`, `'s3'` — to the literal font\n * descriptors behind it, for a surface that takes a font as values rather than\n * as a `preset` style.\n *\n * ```ts\n * const { fontFamily, fontSize, lineHeight } = resolvePresetValues('t3');\n * ```\n *\n * A preset legitimately leaves most of these unset — only headings carry an\n * `iconSize`, only the `s*` family names a `fontFamily` — so unlike\n * {@link resolveTokenValues} a miss here is expected and never warns.\n */\nexport function resolvePresetValues(\n preset: string,\n options: ResolveTokenOptions = {},\n): ResolvedPreset {\n const { fallback = null } = options;\n const names = PRESET_FIELDS.map(\n (field) => `$${preset}-${PRESET_FIELD_SUFFIXES[field]}`,\n );\n const values = readTokens(\n [...names, '--font-sans'],\n { element: options.element },\n true,\n );\n const resolved = {} as ResolvedPreset;\n\n PRESET_FIELDS.forEach((field, index) => {\n resolved[field] = values[names[index]] ?? fallback;\n });\n\n // Every preset but the `s*` family inherits the sans stack rather than naming\n // it, so the token is absent by design and `--font-sans` is the real answer.\n resolved.fontFamily =\n values[names[PRESET_FIELDS.indexOf('fontFamily')]] ??\n values['--font-sans'] ??\n fallback;\n\n return resolved;\n}\n\n// ============================================================================\n// Appearance subscription\n// ============================================================================\n\n/**\n * A token's resolved value changes for two reasons: the palette was re-seeded\n * (`setPaletteConfig()`, covered by `usePaletteVersion`), or the scheme /\n * contrast tier flipped. This store covers the second.\n *\n * Both axes are the ones `@dark` and `@hc` resolve against (see\n * `src/components/Root.tsx`): the `data-schema` / `data-contrast` attributes on\n * `<html>`, and the `prefers-color-scheme` / `prefers-contrast` media queries\n * they fall back to. An attribute flip is invisible to `matchMedia` and a system\n * flip is invisible to a `MutationObserver`, so both are watched.\n */\nconst APPEARANCE_QUERIES = [\n '(prefers-color-scheme: dark)',\n '(prefers-contrast: more)',\n];\nconst APPEARANCE_ATTRIBUTES = ['data-schema', 'data-contrast'];\n\nlet appearanceVersion = 0;\nlet stopWatchingAppearance: (() => void) | null = null;\n\nconst appearanceListeners = new Set<() => void>();\n\nfunction onAppearanceChange() {\n appearanceVersion++;\n\n appearanceListeners.forEach((listener) => listener());\n}\n\nfunction watchAppearance(): () => void {\n const teardowns: (() => void)[] = [];\n\n // Guarded rather than assumed: jsdom ships neither `matchMedia` nor a\n // `MediaQueryList` in every version, and a consumer's unit tests are exactly\n // where a hook like this gets mounted. Losing one source of change is a stale\n // value; throwing is a broken render.\n if (typeof window.matchMedia === 'function') {\n for (const query of APPEARANCE_QUERIES) {\n const list = window.matchMedia(query);\n\n if (typeof list?.addEventListener !== 'function') continue;\n\n list.addEventListener('change', onAppearanceChange);\n teardowns.push(() =>\n list.removeEventListener('change', onAppearanceChange),\n );\n }\n }\n\n if (typeof MutationObserver === 'function' && document.documentElement) {\n const observer = new MutationObserver(onAppearanceChange);\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: APPEARANCE_ATTRIBUTES,\n });\n\n teardowns.push(() => observer.disconnect());\n }\n\n return () => teardowns.forEach((teardown) => teardown());\n}\n\nfunction subscribeAppearance(listener: () => void): () => void {\n appearanceListeners.add(listener);\n\n if (appearanceListeners.size === 1 && typeof window !== 'undefined') {\n stopWatchingAppearance = watchAppearance();\n }\n\n return () => {\n appearanceListeners.delete(listener);\n\n if (!appearanceListeners.size) {\n stopWatchingAppearance?.();\n stopWatchingAppearance = null;\n }\n };\n}\n\nfunction getAppearanceVersion(): number {\n return appearanceVersion;\n}\n\n/**\n * A version React only ever hands out while rendering on the server or\n * hydrating: `useSyncExternalStore` reads `getServerSnapshot` in exactly those\n * two cases and `getSnapshot` in every other. That makes it a reliable \"this\n * render has to match the server's markup\" flag — see {@link useResolvedTokens}.\n *\n * A plain client render (`createRoot`) never sees it, so a CSR app still\n * resolves on its first render rather than paying an extra pass.\n */\nconst HYDRATING = -1;\n\nfunction getServerAppearanceVersion(): number {\n return HYDRATING;\n}\n\n/**\n * Re-render on a scheme / contrast change. Returns the version rather than the\n * state so the snapshot is a primitive — the same reason `usePaletteVersion`\n * does, see `src/tokens/palette-config.ts`.\n */\nfunction useAppearanceVersion(): number {\n return useSyncExternalStore(\n subscribeAppearance,\n getAppearanceVersion,\n getServerAppearanceVersion,\n );\n}\n\n// ============================================================================\n// React bindings\n// ============================================================================\n\n/**\n * The value is read out of the DOM, so it re-resolves whenever the palette is\n * re-seeded or the scheme / contrast tier flips, and it is `fallback ?? null`\n * during SSR. The layout effect is what covers the first commit: a consumer\n * rendered in the same pass as `<Root>` reads before the token block lands.\n */\nfunction useResolvedTokens<T extends string>(\n tokens: readonly T[],\n key: string,\n options: ResolveTokenOptions,\n): Record<T, string | null> {\n const { element, fallback } = options;\n const paletteVersion = usePaletteVersion();\n const appearance = useAppearanceVersion();\n\n const [values, setValues] = useState(() =>\n appearance === HYDRATING\n ? unresolved(tokens, fallback)\n : resolveTokenValues(tokens, options),\n );\n\n useLayoutEffect(() => {\n setValues((previous) => {\n const next = resolveTokenValues(tokens, { element, fallback });\n\n return isSameRecord(previous, next) ? previous : next;\n });\n // `tokens` is a fresh array on all but the first render, so `key` — its\n // joined identity — is what belongs in the dependency list.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [key, element, fallback, paletteVersion, appearance]);\n\n return values;\n}\n\n/**\n * What the server rendered: no DOM, so every token is the fallback. The first\n * client render has to agree with it or hydration reports a mismatch for any\n * consumer that renders the value; the layout effect above replaces it with the\n * resolved values before the browser paints.\n */\nfunction unresolved<T extends string>(\n tokens: readonly T[],\n fallback: string | undefined,\n): Record<T, string | null> {\n const result = {} as Record<T, string | null>;\n\n for (const token of tokens) result[token] = fallback ?? null;\n\n return result;\n}\n\n/** Keeps the previous object when nothing moved, so it stays usable as a dep. */\nfunction isSameRecord<T extends Record<string, string | null>>(\n a: T,\n b: T,\n): boolean {\n const keys = Object.keys(b);\n\n if (Object.keys(a).length !== keys.length) return false;\n\n return keys.every((key) => a[key] === b[key]);\n}\n\n/**\n * {@link resolveTokenValue} as a hook: re-renders when the palette is re-seeded\n * or the scheme / contrast tier flips.\n *\n * ```tsx\n * const accent = useTokenValue('#purple');\n *\n * return <Chart series={{ color: accent ?? '#000' }} />;\n * ```\n */\nexport function useTokenValue(\n token: string,\n options: ResolveTokenOptions = {},\n): string | null {\n return useResolvedTokens([token], token, options)[token];\n}\n\n/**\n * {@link resolveTokenValues} as a hook. The returned object keeps its identity\n * while the values are unchanged, so it is safe as a dependency of the theme\n * object built from it — and the token list may be an inline literal.\n *\n * ```tsx\n * const colors = useTokenValues(['#surface', '#surface-text', '#border']);\n *\n * const appearance = useMemo(() => toStripeAppearance(colors), [colors]);\n * ```\n */\nexport function useTokenValues<T extends string>(\n tokens: readonly T[],\n options: ResolveTokenOptions = {},\n): Record<T, string | null> {\n return useResolvedTokens(tokens, tokens.join(' '), options);\n}\n\n/**\n * {@link resolvePresetValues} as a hook.\n *\n * ```tsx\n * const { fontFamily, fontSize } = usePresetValues('s3');\n * ```\n */\nexport function usePresetValues(\n preset: string,\n options: ResolveTokenOptions = {},\n): ResolvedPreset {\n const { element, fallback } = options;\n const paletteVersion = usePaletteVersion();\n const appearance = useAppearanceVersion();\n\n const [values, setValues] = useState(() =>\n appearance === HYDRATING\n ? unresolvedPreset(fallback)\n : resolvePresetValues(preset, options),\n );\n\n useLayoutEffect(() => {\n setValues((previous) => {\n const next = resolvePresetValues(preset, { element, fallback });\n\n return isSameRecord(previous, next) ? previous : next;\n });\n }, [preset, element, fallback, paletteVersion, appearance]);\n\n return values;\n}\n\n/** {@link unresolved} for the fixed shape {@link resolvePresetValues} returns. */\nfunction unresolvedPreset(fallback: string | undefined): ResolvedPreset {\n const resolved = {} as ResolvedPreset;\n\n for (const field of PRESET_FIELDS) resolved[field] = fallback ?? null;\n\n return resolved;\n}\n"],"mappings":"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"}
|
package/dist/tokens/shadows.js
CHANGED
package/dist/tokens/sizes.js
CHANGED
package/dist/tokens/spacing.js
CHANGED
package/dist/utils/is-dev-env.js
CHANGED
package/dist/utils/modules.js
CHANGED
package/dist/utils/promise.js
CHANGED
package/dist/utils/raf.js
CHANGED
package/dist/utils/random.js
CHANGED
package/dist/utils/range.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
|
|
2
2
|
import { mergeProps } from "./mergeProps.js";
|
|
3
3
|
import { Children, cloneElement, createContext, useContext, useMemo } from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
|
|
2
2
|
import { chain } from "./chain.js";
|
|
3
3
|
import { getDisabledElementProps, omitActivationEventProps } from "./disabledProps.js";
|
|
4
4
|
import { forwardRefWithGenerics } from "./forwardRefWithGenerics.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
|
|
2
2
|
//#region src/utils/react/nullableValue.ts
|
|
3
3
|
function castNullableStringValue(props) {
|
|
4
4
|
return castNullableField(props, ["value", "defaultValue"], "string", (v) => String(v));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
|
|
2
2
|
import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef } from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/utils/react/useEventBus.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
|
|
2
2
|
import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
|
|
3
3
|
import { useEffect, useRef, useState } from "react";
|
|
4
4
|
import { useSSRSafeId } from "@react-aria/ssr";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import * as React$1 from "react";
|
|
3
3
|
|
|
4
4
|
//#region src/utils/react/useLayoutEffect.d.ts
|
|
5
|
-
declare const useLayoutEffect$1: typeof React$1.
|
|
5
|
+
declare const useLayoutEffect$1: typeof React$1.useLayoutEffect;
|
|
6
6
|
//#endregion
|
|
7
7
|
export { useLayoutEffect$1 as useLayoutEffect };
|
|
8
8
|
//# sourceMappingURL=useLayoutEffect.d.ts.map
|
package/dist/utils/selection.js
CHANGED
package/dist/utils/styles.js
CHANGED
package/dist/utils/tree.js
CHANGED
package/dist/utils/warnings.js
CHANGED
package/dist/version.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
|
|
2
2
|
//#region src/version.ts
|
|
3
|
-
const VERSION = "0.
|
|
4
|
-
const TASTY_VERSION = "3.1
|
|
3
|
+
const VERSION = "0.167.0";
|
|
4
|
+
const TASTY_VERSION = "3.3.1";
|
|
5
5
|
if (typeof window !== "undefined") {
|
|
6
6
|
const version = VERSION;
|
|
7
7
|
const tastyVersion = TASTY_VERSION;
|
package/docs/Colors.md
CHANGED
|
@@ -1,35 +1,24 @@
|
|
|
1
1
|
# Colors
|
|
2
2
|
|
|
3
|
-
Cube UI Kit color tokens are generated by Glaze from a shared OKHST palette.
|
|
4
|
-
Every adaptive token includes light, dark, and high-contrast variants. Change
|
|
5
|
-
the active scheme in the Storybook toolbar to review each example.
|
|
3
|
+
Cube UI Kit color tokens are generated by Glaze from a shared OKHST palette. Every adaptive token includes light, dark, and high-contrast variants. Change the active scheme in the Storybook toolbar to review each example.
|
|
6
4
|
|
|
7
|
-
The colors shown here come from the default seeds. Those seeds — brand hue,
|
|
8
|
-
saturation, per-status hues — are tunable at runtime; see
|
|
9
|
-
[Theming](./Theming.md) for a live playground.
|
|
5
|
+
The colors shown here come from the default seeds. Those seeds — brand hue, saturation, per-status hues — are tunable at runtime; see [Theming](./Theming.md) for a live playground.
|
|
10
6
|
|
|
11
7
|
## Choosing a color pair
|
|
12
8
|
|
|
13
9
|
Start with the surface, then choose a foreground designed for that surface:
|
|
14
10
|
|
|
15
|
-
- On neutral surfaces, use the matching text family:
|
|
16
|
-
|
|
17
|
-
-
|
|
18
|
-
high-contrast foreground.
|
|
19
|
-
- Use `#<theme>-accent-text` or `-soft` when the foreground should retain the
|
|
20
|
-
semantic hue, such as notification titles and links.
|
|
11
|
+
- On neutral surfaces, use the matching text family: `#surface` + `#surface-text`, `#surface-2` + `#surface-2-text`, and so on.
|
|
12
|
+
- On semantic tinted surfaces, use `#<theme>-surface-text` for a neutralized, high-contrast foreground.
|
|
13
|
+
- Use `#<theme>-accent-text` or `-soft` when the foreground should retain the semantic hue, such as notification titles and links.
|
|
21
14
|
- On solid accent fills, use `#<theme>-accent-surface-text`.
|
|
22
|
-
- Do not select colors only because they look similar. Their names describe
|
|
23
|
-
the contrast relationship and intended role.
|
|
15
|
+
- Do not select colors only because they look similar. Their names describe the contrast relationship and intended role.
|
|
24
16
|
|
|
25
|
-
The text examples show each color with `t3m`, `t3`, and `t4`. Typography does
|
|
26
|
-
not change the color pairing; it makes the foreground easier to evaluate at
|
|
27
|
-
common UI sizes and weights.
|
|
17
|
+
The text examples show each color with `t3m`, `t3`, and `t4`. Typography does not change the color pairing; it makes the foreground easier to evaluate at common UI sizes and weights.
|
|
28
18
|
|
|
29
19
|
## Neutral surfaces
|
|
30
20
|
|
|
31
|
-
Neutral surfaces form the page, panel, and nested-container elevation ladder.
|
|
32
|
-
Use the text tokens named for the selected surface whenever one exists.
|
|
21
|
+
Neutral surfaces form the page, panel, and nested-container elevation ladder. Use the text tokens named for the selected surface whenever one exists.
|
|
33
22
|
|
|
34
23
|
## Semantic surfaces
|
|
35
24
|
|
|
@@ -37,45 +26,32 @@ Semantic surfaces support two deliberate foreground treatments.
|
|
|
37
26
|
|
|
38
27
|
### Surface text
|
|
39
28
|
|
|
40
|
-
The surface-text family keeps the semantic hue subtle and prioritizes strong
|
|
41
|
-
readability.
|
|
29
|
+
The surface-text family keeps the semantic hue subtle and prioritizes strong readability.
|
|
42
30
|
|
|
43
31
|
### Accent text
|
|
44
32
|
|
|
45
|
-
The accent-text family preserves more semantic color. This is the pairing used
|
|
46
|
-
by notification and Item card styles.
|
|
33
|
+
The accent-text family preserves more semantic color. This is the pairing used by notification and Item card styles.
|
|
47
34
|
|
|
48
35
|
## Solid accents and interaction states
|
|
49
36
|
|
|
50
|
-
Solid accent fills are fixed brand colors with a dedicated light foreground.
|
|
51
|
-
The numbered surface ramp represents default, hover, and pressed states and is
|
|
52
|
-
shared by semantic themes.
|
|
37
|
+
Solid accent fills are fixed brand colors with a dedicated light foreground. The numbered surface ramp represents default, hover, and pressed states and is shared by semantic themes.
|
|
53
38
|
|
|
54
39
|
## Disabled states
|
|
55
40
|
|
|
56
|
-
Disabled pairs intentionally have lower contrast than active content. Use the
|
|
57
|
-
neutral pair for low-emphasis controls and the accent-disabled pair for muted
|
|
58
|
-
solid semantic controls. Do not use disabled text for active information or
|
|
59
|
-
content that must meet normal text contrast requirements.
|
|
41
|
+
Disabled pairs intentionally have lower contrast than active content. Use the neutral pair for low-emphasis controls and the accent-disabled pair for muted solid semantic controls. Do not use disabled text for active information or content that must meet normal text contrast requirements.
|
|
60
42
|
|
|
61
43
|
## Utility colors
|
|
62
44
|
|
|
63
|
-
`#placeholder`, `#focus`, semantic accent icons, and `#overlay` have narrow
|
|
64
|
-
roles. Keep them in those roles rather than treating them as general palette
|
|
65
|
-
swatches.
|
|
45
|
+
`#placeholder`, `#focus`, semantic accent icons, and `#overlay` have narrow roles. Keep them in those roles rather than treating them as general palette swatches.
|
|
66
46
|
|
|
67
47
|
## Code syntax
|
|
68
48
|
|
|
69
|
-
Syntax tokens are calibrated as a group against `#surface`. Use the semantic
|
|
70
|
-
token for each syntax role instead of assigning arbitrary palette colors.
|
|
49
|
+
Syntax tokens are calibrated as a group against `#surface`. Use the semantic token for each syntax role instead of assigning arbitrary palette colors.
|
|
71
50
|
|
|
72
51
|
## Borders and shadows
|
|
73
52
|
|
|
74
|
-
Borders use the `1bw` design-system width. Shadow geometry comes from
|
|
75
|
-
`src/tokens/shadows.ts`; the `#shadow-sm`, `#shadow-md`, and `#shadow-lg`
|
|
76
|
-
colors adapt with the active scheme.
|
|
53
|
+
Borders use the `1bw` design-system width. Shadow geometry comes from `src/tokens/shadows.ts`; the `#shadow-sm`, `#shadow-md`, and `#shadow-lg` colors adapt with the active scheme.
|
|
77
54
|
|
|
78
55
|
## Scope
|
|
79
56
|
|
|
80
|
-
This reference focuses on tokens intended for product UI. Internal loading-face
|
|
81
|
-
colors and compatibility aliases are intentionally omitted.
|
|
57
|
+
This reference focuses on tokens intended for product UI. Internal loading-face colors and compatibility aliases are intentionally omitted.
|
package/docs/ComplexLayout.md
CHANGED
|
@@ -64,6 +64,7 @@ Use `Layout.Panel` for side navigation. Panels are absolutely positioned and aut
|
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
**Key props:**
|
|
67
|
+
|
|
67
68
|
- `side` - Panel position: `"left"`, `"right"`, `"top"`, `"bottom"`
|
|
68
69
|
- `size` - Panel width (for left/right) or height (for top/bottom)
|
|
69
70
|
- `isOpen` / `onOpenChange` - Control panel visibility
|
|
@@ -86,6 +87,7 @@ Add `isResizable` to allow users to resize the panel.
|
|
|
86
87
|
```
|
|
87
88
|
|
|
88
89
|
**Resize behavior:**
|
|
90
|
+
|
|
89
91
|
- Drag the edge handle to resize
|
|
90
92
|
- Double-click the handle to reset to default size
|
|
91
93
|
- Use `minSize` and `maxSize` to constrain resize range
|
|
@@ -108,6 +110,7 @@ Use `sizeStorageKey` to persist the panel size in localStorage. The size will be
|
|
|
108
110
|
```
|
|
109
111
|
|
|
110
112
|
**Notes:**
|
|
113
|
+
|
|
111
114
|
- The `sizeStorageKey` must be unique across your application
|
|
112
115
|
- Size is persisted after drag operations complete
|
|
113
116
|
- Double-clicking to reset also updates the stored value
|
|
@@ -166,6 +169,7 @@ Use `Space` components to create three sections.
|
|
|
166
169
|
```
|
|
167
170
|
|
|
168
171
|
**Header props:**
|
|
172
|
+
|
|
169
173
|
- `title` - Page title
|
|
170
174
|
- `subtitle` - Text below the title
|
|
171
175
|
- `breadcrumbs` - Array of `[label, href]` tuples
|
|
@@ -222,6 +226,7 @@ Panels with `mode="sticky"` float over content without pushing it aside.
|
|
|
222
226
|
### Overlay Panel
|
|
223
227
|
|
|
224
228
|
Panels with `mode="overlay"` show a backdrop and dismiss on:
|
|
229
|
+
|
|
225
230
|
- Clicking the backdrop
|
|
226
231
|
- Pressing Escape anywhere in the Layout
|
|
227
232
|
- Moving focus to the main content area
|
|
@@ -264,6 +269,7 @@ Panels with `mode="dialog"` render as a modal dialog instead of inline.
|
|
|
264
269
|
```
|
|
265
270
|
|
|
266
271
|
**Use cases:**
|
|
272
|
+
|
|
267
273
|
- Mobile-responsive layouts where sidebars become modal dialogs
|
|
268
274
|
- Settings panels that need full focus
|
|
269
275
|
- Any panel that should overlay rather than push content
|
|
@@ -354,6 +360,7 @@ Use `Layout.Container` for content that should be horizontally centered with a c
|
|
|
354
360
|
```
|
|
355
361
|
|
|
356
362
|
**Use cases:**
|
|
363
|
+
|
|
357
364
|
- Article or documentation pages
|
|
358
365
|
- Forms and settings pages
|
|
359
366
|
- Any content that benefits from constrained width
|
|
@@ -371,6 +378,7 @@ Use `Layout.Center` for content that should be centered both horizontally and ve
|
|
|
371
378
|
```
|
|
372
379
|
|
|
373
380
|
**Use cases:**
|
|
381
|
+
|
|
374
382
|
- Empty states ("No items found")
|
|
375
383
|
- Loading screens
|
|
376
384
|
- Welcome/onboarding screens
|