@cube-dev/ui-kit 0.0.0-canary-ca2791e → 0.0.0-canary-20121c0
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 +15 -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 +3 -3
- 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.js +1 -1
- package/dist/components/actions/use-context-menu.js +1 -1
- package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
- package/dist/components/content/Alert/Alert.js +1 -1
- package/dist/components/content/Alert/use-alert.js +1 -1
- package/dist/components/content/Avatar/Avatar.js +1 -1
- package/dist/components/content/Badge/Badge.js +1 -1
- package/dist/components/content/Card/Card.js +1 -1
- package/dist/components/content/Content.js +1 -1
- package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
- package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
- package/dist/components/content/Disclosure/Disclosure.js +1 -1
- package/dist/components/content/Divider.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.d.ts +14 -14
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.js +1 -1
- package/dist/components/content/Tree/Tree.js +1 -1
- package/dist/components/content/Tree/TreeNode.js +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.js +1 -1
- package/dist/components/layout/Board/BoardProvider.js +1 -1
- package/dist/components/layout/Board/BoardResponsive.js +1 -1
- package/dist/components/layout/Board/Widget.js +1 -1
- package/dist/components/layout/Board/WidgetHost.js +1 -1
- package/dist/components/layout/Board/board-context.js +1 -1
- package/dist/components/layout/Board/board-store.js +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.js +1 -1
- package/dist/components/layout/Board/grid-core/sort.js +1 -1
- package/dist/components/layout/Board/index.js +1 -1
- package/dist/components/layout/Board/responsive-utils.js +1 -1
- package/dist/components/layout/Board/use-board-layout.js +1 -1
- package/dist/components/layout/Board/use-board-registry.js +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 +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 +13 -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.js +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/base.js +1 -1
- package/dist/tokens/color-seed.js +1 -1
- package/dist/tokens/color-theme.js +1 -1
- package/dist/tokens/colors.js +1 -1
- package/dist/tokens/index.js +3 -3
- package/dist/tokens/index.js.map +1 -1
- 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/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.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 +108 -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 +2 -2
- package/docs/components/actions/use-context-menu.md +5 -2
- 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 +55 -211
- 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 +7 -3
- 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
|
@@ -71,32 +71,212 @@ These docs use `data-schema="dark"` in examples. If your app already standardize
|
|
|
71
71
|
| `globalStyles` | `Record<string, Styles>` | - | Global Tasty styles keyed by CSS selector |
|
|
72
72
|
| `plugins` | `TastyPlugin[]` | - | Plugins that bundle any of the above (processed in order; later override earlier, and direct config wins over all). See [Plugins](plugins.md) |
|
|
73
73
|
| `gc` | `GCConfig` | - | Garbage-collection tuning for unused styles (`{ touchInterval, capacity }`) |
|
|
74
|
-
| `
|
|
74
|
+
| `batchInjection` | `boolean \| 'always'` | `false` | Defer stylesheet writes and apply them in one batch. See [Batched injection](#batched-injection) |
|
|
75
|
+
| `colorSpace` | `'rgb' \| 'hsl' \| 'oklch'` | - | **Deprecated** — no longer has any effect. See [Color space](#color-space) |
|
|
75
76
|
| `namePrefix` | `string` | `'t'` (runtime) / `'ts'` (zero-runtime) | Prefix prepended to every generated identifier (class, keyframe, counter-style names). Must match `^[a-zA-Z_][a-zA-Z0-9_-]{0,31}$`. See [Name prefix](#name-prefix). |
|
|
76
77
|
|
|
77
78
|
---
|
|
78
79
|
|
|
80
|
+
## Batched Injection
|
|
81
|
+
|
|
82
|
+
Every `insertRule()` on a live stylesheet invalidates style for that sheet's
|
|
83
|
+
scope. Components inject during React's render phase, and if anything else reads
|
|
84
|
+
layout in the same pass, the two interleave:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
inject -> read (forced style recalc) -> inject -> read (forced recalc) -> ...
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
A UI kit that measures during render — popovers, autosizing inputs, virtualized
|
|
91
|
+
lists — can turn one mount into a dozen full-tree recalculations. `batchInjection`
|
|
92
|
+
queues the writes instead and applies them together, so the tree is invalidated
|
|
93
|
+
once per flush.
|
|
94
|
+
|
|
95
|
+
```tsx
|
|
96
|
+
import { configure, TastyBatchProvider } from '@tenphi/tasty';
|
|
97
|
+
|
|
98
|
+
configure({ batchInjection: true });
|
|
99
|
+
|
|
100
|
+
createRoot(el).render(
|
|
101
|
+
<TastyBatchProvider>
|
|
102
|
+
<App />
|
|
103
|
+
</TastyBatchProvider>,
|
|
104
|
+
);
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Why the provider is required
|
|
108
|
+
|
|
109
|
+
Deferring a write past React's layout phase would let a `useLayoutEffect`
|
|
110
|
+
measure an element whose rules are not in the sheet yet and read its *unstyled*
|
|
111
|
+
box — a wrong number, not a stale one, so it never self-corrects.
|
|
112
|
+
|
|
113
|
+
`TastyBatchProvider` closes that hole. It opens a *batch window* during its
|
|
114
|
+
render and closes it — flushing — in `useInsertionEffect`, which React runs in
|
|
115
|
+
the mutation phase, before any layout effect:
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
provider renders -> window OPEN
|
|
119
|
+
children render -> injections queued
|
|
120
|
+
provider insertionEffect -> FLUSH, window CLOSED
|
|
121
|
+
layout effects run -> rules are in the sheet
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
With `batchInjection: true` a write is only ever queued inside such a window, so
|
|
125
|
+
turning the flag on can make injection cheaper but can never make a measurement
|
|
126
|
+
wrong. Injections outside a window are written straight through, exactly as with
|
|
127
|
+
batching off:
|
|
128
|
+
|
|
129
|
+
- a deep update that did not re-render the provider
|
|
130
|
+
- an injection from a layout effect, an event handler or an async callback
|
|
131
|
+
- SSR and RSC, where there is no live sheet at all
|
|
132
|
+
|
|
133
|
+
Mount the provider as high in the tree as you can: batching applies to the
|
|
134
|
+
commits it takes part in.
|
|
135
|
+
|
|
136
|
+
### Modes
|
|
137
|
+
|
|
138
|
+
| Value | Behaviour |
|
|
139
|
+
|-------|-----------|
|
|
140
|
+
| `false` (default) | One `insertRule()` per component, synchronously. |
|
|
141
|
+
| `true` | Batch inside a provider window only. Cannot affect measurement. Without the provider nothing is batched, and dev mode says so once. |
|
|
142
|
+
| `'always'` | Batch every injection, flushing on a microtask when no window is open. Covers more commits; a `useLayoutEffect` measuring a freshly mounted element can read its unstyled box. Paint is unaffected — microtasks always drain before the browser paints. |
|
|
143
|
+
|
|
144
|
+
### Ordering
|
|
145
|
+
|
|
146
|
+
All writes share one FIFO queue — component rules, global rules, raw CSS,
|
|
147
|
+
`@property`, `@keyframes`, `@font-face`, `@counter-style` and `@function`.
|
|
148
|
+
Draining it in insertion order keeps the sheet byte-identical to unbatched
|
|
149
|
+
output, which matters because equal-specificity rules resolve by document order.
|
|
150
|
+
|
|
151
|
+
### SSR, RSC and zero-runtime
|
|
152
|
+
|
|
153
|
+
**Server render — nothing to batch, safe to leave enabled.** SSR and RSC collect
|
|
154
|
+
CSS as text through `ServerStyleCollector`; the runtime injector never runs
|
|
155
|
+
there, so `batchInjection` changes nothing either way. `<TastyBatchProvider>`
|
|
156
|
+
renders its children and does nothing else: the window it opens is a no-op
|
|
157
|
+
without a `document`, and the `useInsertionEffect` that would close it never
|
|
158
|
+
fires on the server. Configure the flag once in shared code — no environment
|
|
159
|
+
branching needed.
|
|
160
|
+
|
|
161
|
+
**Hydration — the better your SSR coverage, the less there is to batch.**
|
|
162
|
+
`hydrateTastyClasses()` (wired up for you by `@tenphi/tasty/ssr/next` and the
|
|
163
|
+
Astro integration) pre-populates the injector from `window.__TASTY__`, so
|
|
164
|
+
hydrating a server-rendered class is a cache hit that produces no sheet write at
|
|
165
|
+
all. Batching pays off on what SSR could not cover: client-only routes, styles
|
|
166
|
+
that first appear after hydration (a `styles` prop that changes on interaction, a
|
|
167
|
+
modal or popover mounting), and dynamic tokens.
|
|
168
|
+
|
|
169
|
+
**Astro islands — one provider per island, or `'always'`.** Every island is its
|
|
170
|
+
own React root, so a provider inside one island does not open a window for
|
|
171
|
+
another. With `batchInjection: true`, wrap each island root that renders enough
|
|
172
|
+
tasty components to be worth it. `'always'` needs no provider and covers every
|
|
173
|
+
island, at the cost of the measurement hazard above. Either way, an island that
|
|
174
|
+
only re-hydrates server-rendered classes has nothing to batch.
|
|
175
|
+
|
|
176
|
+
**Zero-runtime (`tastyStatic`) — unaffected.** Build-time extraction never
|
|
177
|
+
touches the injector: the babel plugin emits either a CSS file import or an
|
|
178
|
+
`injectCSS()` call from `@tenphi/tasty/static/inject`, which appends text to a
|
|
179
|
+
single `<style data-tasty-static>` element. `batchInjection` only defers CSSOM
|
|
180
|
+
writes made by the runtime injector, so extracted styles are unchanged. In an app
|
|
181
|
+
that mixes both, it still applies to the runtime half.
|
|
182
|
+
|
|
183
|
+
### `flushStyles()`
|
|
184
|
+
|
|
185
|
+
Applies every pending write immediately. Every injector read API calls it for
|
|
186
|
+
you — `getCSSText`, `getCSSTextForClasses`, `getCSSTextForNode`,
|
|
187
|
+
`getRawCSSText`, `isPropertyDefined`, `getMetrics`, `cleanup`, `gc` and
|
|
188
|
+
`destroy` — so a read never observes a partial sheet.
|
|
189
|
+
Call it directly before measuring in code that runs outside a batch window under
|
|
190
|
+
`'always'`:
|
|
191
|
+
|
|
192
|
+
```tsx
|
|
193
|
+
import { flushStyles } from '@tenphi/tasty';
|
|
194
|
+
|
|
195
|
+
useLayoutEffect(() => {
|
|
196
|
+
flushStyles();
|
|
197
|
+
const { width } = ref.current.getBoundingClientRect();
|
|
198
|
+
}, []);
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
`hasPendingStyleWrites()` reports whether anything is queued, and
|
|
202
|
+
`resetStyleBatch()` drops the queue without applying it (tests only).
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
79
206
|
## Color Space
|
|
80
207
|
|
|
81
|
-
|
|
208
|
+
> **Deprecated.** `configure({ colorSpace })` no longer has any effect and will
|
|
209
|
+
> be removed in the next major. Setting it warns in development.
|
|
210
|
+
|
|
211
|
+
A `#name` token's value used to be rewritten into a configured color space, so
|
|
212
|
+
`#brand: '#ff8800'` declared `--brand-color: oklch(0.75 0.16 55)`. That existed
|
|
213
|
+
to serve the opacity suffix, which needed numeric channels to write an alpha
|
|
214
|
+
into. Opacity now uses CSS relative color syntax —
|
|
215
|
+
`oklch(from var(--brand-color) l c h / .5)` — which has the browser read the
|
|
216
|
+
channels, so there is nothing left for the setting to decide.
|
|
217
|
+
|
|
218
|
+
A color is emitted exactly as authored:
|
|
82
219
|
|
|
83
220
|
```jsx
|
|
84
|
-
configure({
|
|
85
|
-
|
|
86
|
-
});
|
|
221
|
+
configure({ tokens: { '#brand': '#ff8800' } });
|
|
222
|
+
// → --brand-color: #ff8800
|
|
87
223
|
```
|
|
88
224
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
225
|
+
That holds for every form: a hex literal, a native color function, a bare CSS
|
|
226
|
+
color name, a `color-mix()`, a `light-dark()`, a fallback chain. A `#token`
|
|
227
|
+
reference still resolves to its `var()` chain, and a plugin color function such
|
|
228
|
+
as `okhsl()` is still resolved by the parser to the color it denotes.
|
|
229
|
+
|
|
230
|
+
To address a token's channels, use relative color syntax against the token:
|
|
231
|
+
|
|
232
|
+
```css
|
|
233
|
+
background: oklch(from var(--brand-color) calc(l * 1.2) c h);
|
|
234
|
+
```
|
|
94
235
|
|
|
95
|
-
|
|
236
|
+
This works on any `<color>`, including the ones no build-time conversion could
|
|
237
|
+
have evaluated — and it is what the [opacity suffix](dsl.md#color-tokens--opacity)
|
|
238
|
+
itself uses. Its space is always `oklch`, which is unbounded, so a wide-gamut
|
|
239
|
+
color survives a round trip a narrower space would clamp.
|
|
96
240
|
|
|
97
|
-
|
|
241
|
+
### Migrating off `colorSpace`
|
|
242
|
+
|
|
243
|
+
Drop the option. If you relied on the uniform output format, nothing in Tasty
|
|
244
|
+
needs it — author your tokens in the space you want them emitted in, since the
|
|
245
|
+
value now passes through untouched:
|
|
246
|
+
|
|
247
|
+
```jsx
|
|
248
|
+
// before: any input, normalized to the configured space on the way out
|
|
249
|
+
configure({ colorSpace: 'oklch', tokens: { '#brand': '#ff8800' } });
|
|
250
|
+
|
|
251
|
+
// after: author it in the space you want
|
|
252
|
+
configure({ tokens: { '#brand': 'oklch(0.75 0.16 55)' } });
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
### Migrating off the channel companions
|
|
256
|
+
|
|
257
|
+
A `#name` token used to declare a second variable beside `--name-color` holding
|
|
258
|
+
its channels decomposed, suffixed with the configured space —
|
|
259
|
+
`--brand-color-oklch: 0.75 0.16 55` — and a `color` style emitted
|
|
260
|
+
`--current-color-{space}` beside `--current-color`. Both are gone, for the same
|
|
261
|
+
reason: they existed so an opacity suffix had channels to write an alpha into.
|
|
262
|
+
|
|
263
|
+
These were never part of the public API, but they were visible in the emitted
|
|
264
|
+
CSS, so hand-authored CSS may reference one. Address the token itself instead:
|
|
265
|
+
|
|
266
|
+
```css
|
|
267
|
+
/* before */
|
|
268
|
+
color: oklch(var(--brand-color-oklch) / 0.5);
|
|
269
|
+
background: oklch(var(--brand-color-oklch));
|
|
270
|
+
|
|
271
|
+
/* after */
|
|
272
|
+
color: oklch(from var(--brand-color) l c h / 0.5);
|
|
273
|
+
background: var(--brand-color);
|
|
274
|
+
```
|
|
98
275
|
|
|
99
|
-
|
|
276
|
+
The replacement is strictly more capable — the companion could only be
|
|
277
|
+
decomposed for a color the engine could evaluate at build time, while relative
|
|
278
|
+
color syntax works on every `<color>`, including a `color-mix()`, a
|
|
279
|
+
`light-dark()`, and a variable Tasty never defined.
|
|
100
280
|
|
|
101
281
|
---
|
|
102
282
|
|
|
@@ -167,7 +347,7 @@ configure({
|
|
|
167
347
|
```
|
|
168
348
|
|
|
169
349
|
- `$name` keys become `--name` CSS custom properties
|
|
170
|
-
- `#name` keys become `--name-color`
|
|
350
|
+
- `#name` keys become `--name-color` custom properties
|
|
171
351
|
- Names keep their case, since CSS custom properties are case-sensitive: `$myVar` is `--myVar` and is referenced as `$myVar`. A leading capital is not supported and folds — `$Foo` and `#Purple` become `--foo` and `--purple-color` — so start names lowercase. Kebab-case (`$my-var`) remains the convention.
|
|
172
352
|
|
|
173
353
|
Tokens are automatically emitted in all rendering modes: runtime (client), SSR, and zero-runtime (Babel plugin).
|
|
@@ -289,7 +469,7 @@ See [Functions (`@function`)](dsl.md#functions-function) for inline usage inside
|
|
|
289
469
|
|
|
290
470
|
### Custom color functions
|
|
291
471
|
|
|
292
|
-
A parse function whose output is an already-supported color (`rgb`, `hsl`, `#…`, `oklch`, …) is treated as a **color function**: it works everywhere a color is accepted — style values, `#token.alpha` opacity injection,
|
|
472
|
+
A parse function whose output is an already-supported color (`rgb`, `hsl`, `#…`, `oklch`, …) is treated as a **color function**: it works everywhere a color is accepted — style values, `#token.alpha` opacity injection, and `parseColor` — with no extra registration. This is the same mechanism the built-in `okhsl`/`okhst` plugins use; they are ordinary plugins registered by default.
|
|
293
473
|
|
|
294
474
|
```ts
|
|
295
475
|
import { configure, createColorFunc } from '@tenphi/tasty';
|
package/docs/tasty/dsl.md
CHANGED
|
@@ -151,9 +151,9 @@ these:
|
|
|
151
151
|
|
|
152
152
|
- a token holding a `color-mix()`, a `light-dark()`, or a `color()` in a space
|
|
153
153
|
Tasty cannot convert — none of which have channels to decompose
|
|
154
|
-
- `#current`, which resolves to
|
|
154
|
+
- `#current`, which resolves to the color the element inherits
|
|
155
155
|
- a `--name-color` variable declared in your own CSS, with no Tasty token
|
|
156
|
-
definition
|
|
156
|
+
definition behind it
|
|
157
157
|
|
|
158
158
|
Two properties follow from writing the alpha slot rather than compositing:
|
|
159
159
|
|
|
@@ -163,6 +163,41 @@ Two properties follow from writing the alpha slot rather than compositing:
|
|
|
163
163
|
`/ var(--fade)` unchanged, so it works whether `$fade` holds `.5` or `50%` —
|
|
164
164
|
which is what `--*-opacity` properties are registered to accept.
|
|
165
165
|
|
|
166
|
+
### `#current` is the keyword
|
|
167
|
+
|
|
168
|
+
`#current` emits the `currentcolor` keyword, so it resolves against the element
|
|
169
|
+
that reads it. That is what lets it follow a color an ancestor faded — a ramp
|
|
170
|
+
that expresses its disabled state once, in `color`, fades everything painted from
|
|
171
|
+
`#current` below it with no further declarations.
|
|
172
|
+
|
|
173
|
+
The `color` style also publishes `--current-color` beside every color it sets,
|
|
174
|
+
for anything that needs the inherited color *as a color* rather than as the
|
|
175
|
+
keyword — hand-authored CSS, or a place the keyword will not do. Read it as
|
|
176
|
+
`$current-color`. It is registered with `initial-value: currentcolor`, so where
|
|
177
|
+
nothing published it, it still resolves against each element's own color:
|
|
178
|
+
|
|
179
|
+
```jsx
|
|
180
|
+
fill: '$current-color'; // → var(--current-color)
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
A color that already reads the color it inherits — `#current`, a `#current` fade
|
|
184
|
+
— is not published into it: resolving such a value a second time at a descendant
|
|
185
|
+
would fade it twice.
|
|
186
|
+
|
|
187
|
+
One case needs the wider floor to be considered. A token *defined* as `#current`
|
|
188
|
+
and then faded gives relative color syntax a `currentcolor` origin, which Safari
|
|
189
|
+
supports only from 18:
|
|
190
|
+
|
|
191
|
+
```jsx
|
|
192
|
+
{ '#ink': '#current', fill: '#ink.5' }
|
|
193
|
+
// --ink-color: currentcolor
|
|
194
|
+
// fill: oklch(from currentcolor l c h / .5) → Chrome, Firefox, Safari 18+
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
Put the fade in the token instead — `{ '#ink': '#current.5' }` — and it goes
|
|
198
|
+
through `color-mix()`, which works from Safari 16.2 and composes like every other
|
|
199
|
+
`#current` fade.
|
|
200
|
+
|
|
166
201
|
### `#current` composes instead
|
|
167
202
|
|
|
168
203
|
`#current` is the one exception, and the difference is deliberate. A token *names*
|
|
@@ -182,9 +217,9 @@ step. Because a `color-mix()` percentage cannot be a `<number>`, an opacity
|
|
|
182
217
|
custom property used as `#current.$fade` must hold a unitless number; a token
|
|
183
218
|
accepts either form.
|
|
184
219
|
|
|
185
|
-
The space is always `oklch
|
|
186
|
-
|
|
187
|
-
|
|
220
|
+
The space is always `oklch`: it is unbounded, so a wide-gamut color survives a
|
|
221
|
+
round trip that a gamut-limited space would clamp. Nothing configures this —
|
|
222
|
+
see [Color space](configuration.md#color-space).
|
|
188
223
|
|
|
189
224
|
---
|
|
190
225
|
|
package/docs/tasty/injector.md
CHANGED
|
@@ -300,6 +300,17 @@ const styleRule: StyleResult = {
|
|
|
300
300
|
};
|
|
301
301
|
```
|
|
302
302
|
|
|
303
|
+
### Batched Injection
|
|
304
|
+
|
|
305
|
+
`configure({ batchInjection: true })` queues every sheet write — component
|
|
306
|
+
rules, global rules, raw CSS and at-rules — into one FIFO and applies them
|
|
307
|
+
together, so the document is style-invalidated once per flush instead of once per
|
|
308
|
+
component. `<TastyBatchProvider>` flushes in `useInsertionEffect`, before any
|
|
309
|
+
layout effect, so a queued write can never be observed by a measurement. See
|
|
310
|
+
[Batched injection](configuration.md#batched-injection) for the modes and the
|
|
311
|
+
ordering guarantee. `flushStyles()` applies pending writes on demand; every read
|
|
312
|
+
API here calls it for you.
|
|
313
|
+
|
|
303
314
|
### Deduplication & Performance
|
|
304
315
|
|
|
305
316
|
```typescript
|
package/docs/tasty/pipeline.md
CHANGED
|
@@ -683,7 +683,7 @@ The default entry's exclusive is `!hovered & !@media(dark)` — no top-level OR,
|
|
|
683
683
|
|
|
684
684
|
### Stages 4–5: Compute combinations and call handler
|
|
685
685
|
|
|
686
|
-
Single style, three snapshots; the `color` handler emits `color` plus `--current-color
|
|
686
|
+
Single style, three snapshots; the `color` handler emits `color` plus a `--current-color` variable.
|
|
687
687
|
|
|
688
688
|
### Stage 6: Merge by value
|
|
689
689
|
|
|
@@ -697,20 +697,17 @@ Using `renderStyles(styles, '.t1')` (the class is doubled — `.t1.t1` — so Ta
|
|
|
697
697
|
.t1[data-hovered] {
|
|
698
698
|
color: var(--highlight-color);
|
|
699
699
|
--current-color: var(--highlight-color);
|
|
700
|
-
--current-color-oklch: var(--highlight-color-oklch);
|
|
701
700
|
}
|
|
702
701
|
@media (prefers-color-scheme: dark) {
|
|
703
702
|
.t1:not([data-hovered]) {
|
|
704
703
|
color: var(--dark-color);
|
|
705
704
|
--current-color: var(--dark-color);
|
|
706
|
-
--current-color-oklch: var(--dark-color-oklch);
|
|
707
705
|
}
|
|
708
706
|
}
|
|
709
707
|
@media (not (prefers-color-scheme: dark)) {
|
|
710
708
|
.t1:not([data-hovered]) {
|
|
711
709
|
color: var(--white-color);
|
|
712
710
|
--current-color: var(--white-color);
|
|
713
|
-
--current-color-oklch: var(--white-color-oklch);
|
|
714
711
|
}
|
|
715
712
|
}
|
|
716
713
|
```
|
package/docs/tasty/react-api.md
CHANGED
|
@@ -224,7 +224,7 @@ const ProgressBar = tasty({
|
|
|
224
224
|
|
|
225
225
|
<ProgressBar progress="75%" accentColor="#purple" />
|
|
226
226
|
// 'progress' → $progress → --progress
|
|
227
|
-
// 'accentColor' → #accent → --accent-color
|
|
227
|
+
// 'accentColor' → #accent → --accent-color
|
|
228
228
|
```
|
|
229
229
|
|
|
230
230
|
### Object form
|
package/docs/tasty/styles.md
CHANGED
|
@@ -290,7 +290,14 @@ Text color with design token support.
|
|
|
290
290
|
| `"light-dark(#dark, #light)"` | CSS color function — see [CSS Color Functions](dsl.md#css-color-functions) |
|
|
291
291
|
| `true` | `currentColor` |
|
|
292
292
|
|
|
293
|
-
|
|
293
|
+
Also sets `$current-color` to the same color, for anything that needs the
|
|
294
|
+
inherited color as a color rather than as the `currentcolor` keyword. Every color
|
|
295
|
+
publishes it, not just a named token, so a reader below always takes the nearest
|
|
296
|
+
`color` rather than the nearest *token* color. A value that already reads the
|
|
297
|
+
inherited color — `#current` itself, a `#current` fade, a bare `currentColor` —
|
|
298
|
+
is not republished: resolving it a second time one level down would fade it
|
|
299
|
+
twice, and the variable into itself is a self-reference. `#current` does not go
|
|
300
|
+
through it; it is the keyword.
|
|
294
301
|
|
|
295
302
|
### `svgFill`
|
|
296
303
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cube-dev/ui-kit",
|
|
3
|
-
"version": "0.0.0-canary-
|
|
3
|
+
"version": "0.0.0-canary-20121c0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "UIKit for Cube Projects",
|
|
6
6
|
"repository": {
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
"probe:browser": "PROBE_TIER=browser node scripts/probe.mjs",
|
|
48
48
|
"test-cover": "vitest run --coverage",
|
|
49
49
|
"test-watch": "vitest",
|
|
50
|
-
"prettier": "prettier --check \"src/**/*.{js,jsx,ts,tsx}\"",
|
|
51
|
-
"prettier:fix": "prettier --write \"src/**/*.{js,jsx,ts,tsx}\"",
|
|
50
|
+
"prettier": "prettier --check \"src/**/*.{js,jsx,ts,tsx}\" \"**/*.{md,mdx}\"",
|
|
51
|
+
"prettier:fix": "prettier --write \"src/**/*.{js,jsx,ts,tsx}\" \"**/*.{md,mdx}\"",
|
|
52
52
|
"oxlint": "oxlint src",
|
|
53
53
|
"oxlint:fix": "oxlint --fix src",
|
|
54
54
|
"lint": "npm-run-all -p oxlint prettier",
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"@tabler/icons-react": "^3.31.0",
|
|
94
94
|
"@tanstack/react-virtual": "^3.13.12",
|
|
95
95
|
"@tenphi/glaze": "2.0.0",
|
|
96
|
-
"@tenphi/tasty": "^3.1
|
|
96
|
+
"@tenphi/tasty": "^3.3.1",
|
|
97
97
|
"clipboard-copy": "^4.0.1",
|
|
98
98
|
"clsx": "^1.1.1",
|
|
99
99
|
"diff": "^8.0.3",
|