@cube-dev/ui-kit 0.142.4 → 0.142.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CHANGELOG.md +14 -0
- 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 +1 -1
- package/dist/components/GridProvider.js +1 -1
- package/dist/components/HiddenInput.js +1 -1
- package/dist/components/Root.js +1 -1
- package/dist/components/actions/Action/Action.js +1 -1
- package/dist/components/actions/Banner/Banner.js +1 -1
- package/dist/components/actions/Button/Button.js +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 +2 -1
- package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js +2 -1
- package/dist/components/actions/Menu/SubMenuTrigger.js.map +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/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/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/ComboBox/ComboBox.js +2 -1
- package/dist/components/fields/ComboBox/ComboBox.js.map +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/TimeInput.js +1 -1
- package/dist/components/fields/DatePicker/intl.js +1 -1
- package/dist/components/fields/DatePicker/parseDate.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/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/SearchInput/SearchInput.js +1 -1
- package/dist/components/fields/Select/Select.js +2 -1
- package/dist/components/fields/Select/Select.js.map +1 -1
- package/dist/components/fields/Slider/Gradation.js +1 -1
- package/dist/components/fields/Slider/HueSlider.js +1 -1
- package/dist/components/fields/Slider/RangeSlider.js +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/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/FieldWrapper/extract-field-wrapper-props.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/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/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/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/FileTabs/FileTabs.js +1 -1
- package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
- package/dist/components/other/Calendar/Calendar.js +3 -1
- package/dist/components/other/Calendar/Calendar.js.map +1 -1
- package/dist/components/other/Calendar/CalendarCell.js +31 -28
- package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
- package/dist/components/other/Calendar/CalendarGrid.js +1 -1
- package/dist/components/other/Calendar/RangeCalendar.js +3 -1
- package/dist/components/other/Calendar/RangeCalendar.js.map +1 -1
- package/dist/components/other/CloudLogo/CloudLogo.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 +2 -1
- package/dist/components/overlays/Dialog/DialogTrigger.js.map +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.js +1 -1
- package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
- 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/Notifications/Notification.js +1 -1
- package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
- package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
- package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
- package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
- package/dist/components/overlays/Notifications/OverlayContainer.js +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.js +1 -1
- package/dist/components/portal/usePortal.js +1 -1
- package/dist/components/shared/DraggableCollection.js +1 -1
- package/dist/components/shared/InvalidIcon.js +1 -1
- package/dist/components/shared/ValidIcon.js +1 -1
- package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
- package/dist/components/status/Spin/Cube.js +1 -1
- package/dist/components/status/Spin/InternalSpinner.js +1 -1
- package/dist/components/status/Spin/Spin.js +1 -1
- package/dist/components/status/Spin/SpinsContainer.js +1 -1
- package/dist/data/item-themes.js +1 -1
- package/dist/data/themes.js +1 -1
- package/dist/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/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/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/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/colors.js +1 -1
- package/dist/tokens/index.js +1 -1
- package/dist/tokens/layout.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/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/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 +2 -2
- package/docs/glaze/api.md +143 -71
- package/docs/glaze/methodology.md +12 -6
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.142.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.142.6 | 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.142.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.142.6 | 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.142.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.142.6 | 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";
|
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,6 +1,6 @@
|
|
|
1
|
-
/** @license MIT | @cube-dev/ui-kit v0.142.
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.142.6 | Cube Dev Team */
|
|
2
2
|
//#region src/version.ts
|
|
3
|
-
const VERSION = "0.142.
|
|
3
|
+
const VERSION = "0.142.6";
|
|
4
4
|
const TASTY_VERSION = "2.6.4";
|
|
5
5
|
if (typeof window !== "undefined") {
|
|
6
6
|
const version = VERSION;
|
package/docs/glaze/api.md
CHANGED
|
@@ -25,8 +25,8 @@ Full reference for every public method, option, and type exported by `@tenphi/gl
|
|
|
25
25
|
|
|
26
26
|
| Method | Description |
|
|
27
27
|
|---|---|
|
|
28
|
-
| `glaze(hue, saturation?)` | Create a theme from hue (0–360) and saturation (0–100).
|
|
29
|
-
| `glaze({ hue, saturation })` | Create a theme from an options object. |
|
|
28
|
+
| `glaze(hue, saturation?, config?)` | Create a theme from hue (0–360) and saturation (0–100). Optional `config` overrides the global config for this theme. |
|
|
29
|
+
| `glaze({ hue, saturation }, config?)` | Create a theme from an options object, with optional per-theme config override. |
|
|
30
30
|
| `glaze.from(data)` | Create a theme from an exported configuration (`theme.export()` snapshot). |
|
|
31
31
|
| `glaze.fromHex(hex)` | Create a theme from a hex color (`#rgb` or `#rrggbb`). Extracts hue and saturation. |
|
|
32
32
|
| `glaze.fromRgb(r, g, b)` | Create a theme from RGB values (0–255). Extracts hue and saturation. |
|
|
@@ -37,8 +37,13 @@ const b = glaze({ hue: 280, saturation: 80 });
|
|
|
37
37
|
const c = glaze.fromHex('#7a4dbf');
|
|
38
38
|
const d = glaze.fromRgb(122, 77, 191);
|
|
39
39
|
const e = glaze.from(a.export());
|
|
40
|
+
|
|
41
|
+
// Per-theme config override:
|
|
42
|
+
const rawTheme = glaze(280, 80, { lightLightness: false, darkLightness: false });
|
|
40
43
|
```
|
|
41
44
|
|
|
45
|
+
The optional `config` parameter is a `GlazeConfigOverride` — see [Per-instance config override](#per-instance-config-override).
|
|
46
|
+
|
|
42
47
|
---
|
|
43
48
|
|
|
44
49
|
## Theme methods
|
|
@@ -81,13 +86,16 @@ const def = theme.color('surface'); // get
|
|
|
81
86
|
|
|
82
87
|
### `theme.extend(options)`
|
|
83
88
|
|
|
84
|
-
Creates a new theme inheriting all color definitions, optionally replacing the hue / saturation seed
|
|
89
|
+
Creates a new theme inheriting all color definitions, optionally replacing the hue / saturation seed, color overrides, and config:
|
|
85
90
|
|
|
86
91
|
```ts
|
|
87
92
|
const danger = primary.extend({
|
|
88
93
|
hue: 23,
|
|
89
94
|
colors: { 'accent-fill': { lightness: 48, mode: 'fixed' } },
|
|
90
95
|
});
|
|
96
|
+
|
|
97
|
+
// Inherit parent's config override and tighten the dark window further:
|
|
98
|
+
const highSat = base.extend({ config: { darkLightness: [10, 100] } });
|
|
91
99
|
```
|
|
92
100
|
|
|
93
101
|
`GlazeExtendOptions`:
|
|
@@ -97,6 +105,7 @@ const danger = primary.extend({
|
|
|
97
105
|
| `hue` | `number` | Replace the hue seed. Defaults to the parent's hue. |
|
|
98
106
|
| `saturation` | `number` | Replace the saturation seed. Defaults to the parent's saturation. |
|
|
99
107
|
| `colors` | `ColorMap` | Per-theme overrides (additive merge over the inherited map). |
|
|
108
|
+
| `config` | `GlazeConfigOverride` | Config override for the child. Shallow-merged with the parent's override — child fields win. |
|
|
100
109
|
|
|
101
110
|
Colors marked with `inherit: false` on the parent are **not** copied into the child.
|
|
102
111
|
|
|
@@ -240,6 +249,8 @@ type MinContrast = number | 'AA' | 'AAA' | 'AA-large' | 'AAA-large';
|
|
|
240
249
|
|
|
241
250
|
You can also pass any numeric ratio directly (e.g., `contrast: 4.5`, `contrast: 11`). The constraint is applied independently for each scheme — if the `lightness` already satisfies the floor it's kept, otherwise the solver adjusts lightness until the target is met.
|
|
242
251
|
|
|
252
|
+
By default, `autoFlip` lets the solver cross to the opposite side of the base color when the requested lightness direction cannot satisfy contrast. Set `glaze.configure({ autoFlip: false })` to keep strict directionality: unmet colors pin to that direction's 0 or 100 lightness extreme instead of falling back to the original requested value.
|
|
253
|
+
|
|
243
254
|
**Full lightness spectrum in HC mode:** in high-contrast variants the `lightLightness` and `darkLightness` window constraints are bypassed entirely. Colors can reach the full 0–100 range, maximizing perceivable contrast.
|
|
244
255
|
|
|
245
256
|
#### Per-color hue override
|
|
@@ -287,28 +298,39 @@ See [Mix colors](#mix-colors) below.
|
|
|
287
298
|
|
|
288
299
|
## Standalone color tokens
|
|
289
300
|
|
|
290
|
-
`glaze.color()` creates a single color token without a full theme.
|
|
301
|
+
`glaze.color()` creates a single color token without a full theme.
|
|
291
302
|
|
|
292
303
|
```ts
|
|
293
|
-
|
|
294
|
-
|
|
304
|
+
// arg1: the color (four shapes — see below)
|
|
305
|
+
// arg2: optional config override (GlazeConfigOverride — see below)
|
|
306
|
+
glaze.color(color: GlazeFromInput | GlazeColorInput | GlazeColorValue, config?: GlazeConfigOverride): GlazeColorToken;
|
|
295
307
|
```
|
|
296
308
|
|
|
297
309
|
### Input forms
|
|
298
310
|
|
|
299
|
-
`
|
|
311
|
+
`glaze.color()` accepts **four input shapes**, discriminated by structure:
|
|
312
|
+
|
|
313
|
+
| Shape | Example | Notes |
|
|
314
|
+
|---|---|---|
|
|
315
|
+
| **Bare string** | `'#26fcb2'` | Hex or CSS color function (`rgb()`, `hsl()`, `okhsl()`, `oklch()`). |
|
|
316
|
+
| **Value object** | `{ h: 152, s: 0.95, l: 0.74 }` | OKHSL, `{ r, g, b }` (sRGB 0–255), or `{ l, c, h }` (OKLCh). |
|
|
317
|
+
| **`{ from, ...overrides }`** | `{ from: '#1a1a2e', base: bg, contrast: 'AA' }` | Value + color overrides in one object. |
|
|
318
|
+
| **Structured** | `{ hue: 152, saturation: 95, lightness: 74 }` | Full theme-style token (hue/saturation/lightness all in 0–100). |
|
|
319
|
+
|
|
320
|
+
`GlazeColorValue` (bare string or value-object forms) accepts:
|
|
300
321
|
|
|
301
322
|
| Form | Example | Notes |
|
|
302
323
|
|---|---|---|
|
|
303
|
-
| Hex | `'#26fcb2'`, `'#26fcb2ff'`, `'#abc'` | 3, 6, or 8 digits. Alpha
|
|
324
|
+
| Hex | `'#26fcb2'`, `'#26fcb2ff'`, `'#abc'` | 3, 6, or 8 digits. Alpha is dropped with a `console.warn` — use `opacity` instead. |
|
|
304
325
|
| `rgb()` | `'rgb(38 252 178)'`, `'rgb(38 252 178 / 0.8)'` | Modern space syntax. Alpha dropped with warning. |
|
|
305
326
|
| `hsl()` | `'hsl(152 97% 57%)'` | Modern space syntax. Alpha dropped with warning. |
|
|
306
327
|
| `okhsl()` | `'okhsl(152 95% 74%)'` | Glaze's own emit format. Alpha dropped with warning. |
|
|
307
328
|
| `oklch()` | `'oklch(0.85 0.18 152)'` | Glaze's own emit format. Alpha dropped with warning. |
|
|
308
329
|
| `OkhslColor` object | `{ h: 152, s: 0.95, l: 0.74 }` | Glaze's native shape (h: 0–360, s/l: 0–1). Passing 0–100 for `s`/`l` throws with a hint to use the structured form. |
|
|
309
|
-
|
|
|
330
|
+
| `RgbColor` object | `{ r: 38, g: 252, b: 178 }` | sRGB 0–255. RGB tuple `[r, g, b]` is not supported — use this object form. |
|
|
331
|
+
| `OklchColor` object | `{ l: 0.85, c: 0.18, h: 152 }` | OKLCh (L/C: 0–1, H: degrees), same semantics as `oklch()` strings. |
|
|
310
332
|
|
|
311
|
-
`GlazeColorInput` (
|
|
333
|
+
`GlazeColorInput` (structured form) is `{ hue, saturation, lightness, ... }`:
|
|
312
334
|
|
|
313
335
|
| Field | Type | Description |
|
|
314
336
|
|---|---|---|
|
|
@@ -319,63 +341,49 @@ glaze.color(value: GlazeColorValue, overrides?: GlazeColorOverrides, scaling?: G
|
|
|
319
341
|
| `mode` | `AdaptationMode` | Default: `'auto'`. |
|
|
320
342
|
| `opacity` | `number` | Fixed alpha 0–1. |
|
|
321
343
|
| `base` | `GlazeColorToken \| GlazeColorValue` | Optional dependency. See [Pairing colors](#pairing-colors). |
|
|
322
|
-
| `contrast` | `HCPair<MinContrast>` | WCAG floor against `base
|
|
344
|
+
| `contrast` | `HCPair<MinContrast>` | WCAG floor against `base`. Without `base`, anchored to the literal seed. |
|
|
323
345
|
| `name` | `string` | Debug label for warnings; doesn't change output keys. Reserved names (`'value'`, `'seed'`, `'externalBase'`) are rejected. |
|
|
324
346
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
### Defaults
|
|
328
|
-
|
|
329
|
-
Every input form defaults to `mode: 'auto'` so the resolved token adapts between light and dark like an ordinary theme color. The *scaling* snapshot taken at create time differs by input form:
|
|
330
|
-
|
|
331
|
-
- **String value-shorthand** (`'#000'`, `'rgb(...)'`, etc.):
|
|
332
|
-
- Light variant preserves the input lightness exactly (`lightLightness: false`).
|
|
333
|
-
- Dark variant is Möbius-inverted into `[globalConfig.darkLightness[0], 100]`, so `glaze.color('#000')` renders as `#fff` in dark mode and `glaze.color('#fff')` falls to the dark `lo` floor (default `0.15`).
|
|
334
|
-
- **Object / tuple / structured inputs**:
|
|
335
|
-
- Both light and dark variants are mapped through `globalConfig.lightLightness` / `globalConfig.darkLightness` (defaults `[10, 100]` / `[15, 95]`) — the same windows a theme color uses.
|
|
336
|
-
- All windows are **snapshotted at color-creation time** so later `glaze.configure()` calls don't retroactively change exported tokens. `token.export()` round-trips byte-for-byte.
|
|
337
|
-
|
|
338
|
-
To opt back into the legacy fixed-linear default (no Möbius inversion), pass `{ mode: 'fixed' }` as the second arg, or supply an explicit `scaling` (see [`GlazeColorScaling`](#glazecolorscaling)).
|
|
339
|
-
|
|
340
|
-
### `GlazeColorOverrides`
|
|
347
|
+
`GlazeFromInput` (from form) is `{ from: GlazeColorValue, ...colorOverrides }`:
|
|
341
348
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
| Option | Notes |
|
|
349
|
+
| Field | Notes |
|
|
345
350
|
|---|---|
|
|
346
|
-
| `
|
|
351
|
+
| `from` | **Required.** The source color value — same forms as `GlazeColorValue`. |
|
|
352
|
+
| `hue` | Number (absolute 0–360) or `'+N'`/`'-N'` (relative to seed, never to `base`). |
|
|
347
353
|
| `saturation` | Override seed saturation (0–100). |
|
|
348
|
-
| `lightness` | Number (absolute 0–100) or `'+N'`/`'-N'`. Without `base`, relative
|
|
349
|
-
| `saturationFactor` | Multiplier on the seed (0–1).
|
|
350
|
-
| `mode` | `'auto'` (default
|
|
351
|
-
| `contrast` | WCAG floor. Without `base`, anchored to the literal seed; with `base`, solved per scheme
|
|
352
|
-
| `base` | `GlazeColorToken`
|
|
353
|
-
| `opacity` | Fixed alpha 0–1
|
|
354
|
-
| `name` | Debug label only — surfaces in
|
|
354
|
+
| `lightness` | Number (absolute 0–100) or `'+N'`/`'-N'`. Without `base`, relative anchors to the seed; with `base`, anchors to `base`'s lightness per scheme. |
|
|
355
|
+
| `saturationFactor` | Multiplier on the seed (0–1). |
|
|
356
|
+
| `mode` | `'auto'` (default) / `'fixed'` / `'static'`. |
|
|
357
|
+
| `contrast` | WCAG floor. Without `base`, anchored to the literal seed; with `base`, solved per scheme. |
|
|
358
|
+
| `base` | `GlazeColorToken` or raw `GlazeColorValue`. See [Pairing colors](#pairing-colors). |
|
|
359
|
+
| `opacity` | Fixed alpha 0–1. Combining with `contrast` is not recommended — `console.warn` is emitted. |
|
|
360
|
+
| `name` | Debug label only — surfaces in warnings/errors. Does not change output keys. |
|
|
355
361
|
|
|
356
|
-
|
|
362
|
+
Named CSS colors (`'red'`, `'blueviolet'`) are not supported.
|
|
357
363
|
|
|
358
|
-
|
|
364
|
+
### Defaults
|
|
359
365
|
|
|
360
|
-
|
|
361
|
-
|---|---|---|---|
|
|
362
|
-
| `lightLightness` | `false` | `globalConfig.lightLightness` (snapshotted) | `false` = preserve input. Pass `[lo, hi]` to opt into a remap window. |
|
|
363
|
-
| `darkLightness` | `[globalConfig.darkLightness[0], 100]` (snapshotted) | `globalConfig.darkLightness` (snapshotted) | `false` = preserve input in dark too. Pass `[lo, hi]` to override the window. |
|
|
366
|
+
Every input form defaults to `mode: 'auto'` so the resolved token adapts between light and dark like an ordinary theme color. The config snapshot taken at create time differs by input form:
|
|
364
367
|
|
|
365
|
-
|
|
368
|
+
- **Value-shorthand** (bare strings, value objects, and `{ from, ...overrides }`):
|
|
369
|
+
- Light variant preserves the input lightness exactly (`lightLightness: false`).
|
|
370
|
+
- All other config fields (`darkLightness`, `darkDesaturation`, `darkCurve`, `autoFlip`) snapshot from `globalConfig` at create time.
|
|
371
|
+
- **Structured input** (`{ hue, saturation, lightness, ... }`):
|
|
372
|
+
- Both lightness windows snapshot from `globalConfig` at create time (same as a theme color).
|
|
373
|
+
- All fields are **snapshotted at color-creation time** — later `glaze.configure()` calls don't retroactively change existing tokens.
|
|
366
374
|
|
|
367
375
|
```ts
|
|
368
|
-
//
|
|
369
|
-
glaze.color('#26fcb2'
|
|
376
|
+
// Bare string — adapts automatically
|
|
377
|
+
glaze.color('#26fcb2')
|
|
370
378
|
|
|
371
|
-
//
|
|
372
|
-
glaze.color(
|
|
373
|
-
lightLightness: [10, 100],
|
|
374
|
-
darkLightness: [15, 95],
|
|
375
|
-
});
|
|
379
|
+
// Value-object — same behavior
|
|
380
|
+
glaze.color({ h: 152, s: 0.95, l: 0.74 })
|
|
376
381
|
|
|
377
|
-
//
|
|
378
|
-
glaze.color({
|
|
382
|
+
// From form — value + color overrides
|
|
383
|
+
glaze.color({ from: '#1a1a2e', hue: '+20', contrast: 'AA' })
|
|
384
|
+
|
|
385
|
+
// Structured form — explicit hue/saturation/lightness (0–100)
|
|
386
|
+
glaze.color({ hue: 152, saturation: 95, lightness: 74 })
|
|
379
387
|
```
|
|
380
388
|
|
|
381
389
|
### Token methods
|
|
@@ -391,12 +399,71 @@ A `GlazeColorToken` exposes:
|
|
|
391
399
|
| `token.css({ name, format?, suffix? })` | CSS custom property declarations grouped by scheme variant. `name` is **required** and becomes the variable identifier (`'brand'` → `--brand-color`). Defaults: `format: 'rgb'`, `suffix: '-color'` (matches `theme.css`). |
|
|
392
400
|
| `token.export()` | JSON-safe snapshot — pass to `glaze.colorFrom(...)` to rehydrate. |
|
|
393
401
|
|
|
402
|
+
### Per-instance config override
|
|
403
|
+
|
|
404
|
+
The optional `config` second argument (`GlazeConfigOverride`) overrides the resolve-relevant global config fields for a single token or theme. Fields that are omitted fall through to the live global config at create time (and are snapshotted). Pass `false` for a lightness window to disable clamping entirely — equivalent to `[0, 100]`.
|
|
405
|
+
|
|
406
|
+
`GlazeConfigOverride`:
|
|
407
|
+
|
|
408
|
+
| Field | Default (from global) | Description |
|
|
409
|
+
|---|---|---|
|
|
410
|
+
| `lightLightness` | `[10, 100]` | Light window `[lo, hi]` or `false` (disable clamping = `[0, 100]`). |
|
|
411
|
+
| `darkLightness` | `[15, 95]` | Dark window `[lo, hi]` or `false` (disable clamping). |
|
|
412
|
+
| `darkDesaturation` | `0.1` | Saturation reduction in dark scheme (0–1). |
|
|
413
|
+
| `darkCurve` | `0.5` | Möbius beta for dark `auto`-inversion (0–1). Accepts `[normal, hc]` pair. |
|
|
414
|
+
| `autoFlip` | `true` | When solving `contrast`, allow the solver to switch lightness direction if the requested side can't meet the target. |
|
|
415
|
+
| `shadowTuning` | `undefined` | Default shadow tuning (meaningful for themes; harmless on color tokens). |
|
|
416
|
+
|
|
417
|
+
Config overrides apply to both `glaze.color()` tokens and `glaze()` themes:
|
|
418
|
+
|
|
419
|
+
```ts
|
|
420
|
+
// Standalone color — preserve raw lightness in both schemes
|
|
421
|
+
glaze.color('#26fcb2', { darkLightness: false })
|
|
422
|
+
|
|
423
|
+
// Restore the #000 → white dark flip (full dark range)
|
|
424
|
+
glaze.color('#000000', {
|
|
425
|
+
lightLightness: false,
|
|
426
|
+
darkLightness: [15, 100],
|
|
427
|
+
})
|
|
428
|
+
|
|
429
|
+
// Structured form with config override
|
|
430
|
+
glaze.color({ hue: 152, saturation: 95, lightness: 74 }, { darkLightness: false })
|
|
431
|
+
|
|
432
|
+
// Theme with config override
|
|
433
|
+
const rawTheme = glaze(280, 80, { lightLightness: false })
|
|
434
|
+
```
|
|
435
|
+
|
|
436
|
+
The override is **snapshotted at create time** so later `glaze.configure()` calls don't change already-created tokens or themes (for non-overridden fields, the snapshot captured the global value at creation time; for themes, non-overridden fields are re-read from the live global at resolve time — see [Theme config override](#theme-config-override)).
|
|
437
|
+
|
|
438
|
+
### Theme config override
|
|
439
|
+
|
|
440
|
+
When a theme is created with a `GlazeConfigOverride`, the override is **merged over the live global config at resolve time**. This means:
|
|
441
|
+
|
|
442
|
+
- Fields you overrode are fixed — `glaze.configure()` can't change them for this theme.
|
|
443
|
+
- Fields you didn't override still react to later `glaze.configure()` calls.
|
|
444
|
+
|
|
445
|
+
```ts
|
|
446
|
+
const t = glaze(280, 80, { lightLightness: [0, 50] });
|
|
447
|
+
t.colors({ text: { lightness: 50, saturation: 1 } });
|
|
448
|
+
// text.light.l ≈ 0.25 — always, regardless of global lightLightness changes.
|
|
449
|
+
// text.dark.s reacts to glaze.configure({ darkDesaturation }) since it's not overridden.
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
`extend` inherits the parent's override and shallow-merges the child's:
|
|
453
|
+
|
|
454
|
+
```ts
|
|
455
|
+
const child = t.extend({ config: { darkLightness: false } });
|
|
456
|
+
// child: lightLightness: [0, 50] (inherited) + darkLightness: false (added)
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
`theme.export()` includes `config`; `glaze.from(data)` restores it.
|
|
460
|
+
|
|
394
461
|
### `glaze.colorFrom(data)`
|
|
395
462
|
|
|
396
|
-
Inverse of `token.export()`.
|
|
463
|
+
Inverse of `token.export()`. The exported snapshot includes the original input, all overrides (with any `base` token recursively serialized), and the full effective config — so later `glaze.configure()` calls don't change rehydrated tokens.
|
|
397
464
|
|
|
398
465
|
```ts
|
|
399
|
-
const text = glaze.color('#1a1a1a',
|
|
466
|
+
const text = glaze.color({ from: '#1a1a1a', contrast: 'AA' });
|
|
400
467
|
const data = text.export();
|
|
401
468
|
const restored = glaze.colorFrom(data);
|
|
402
469
|
// restored.resolve() === text.resolve() byte-for-byte
|
|
@@ -412,17 +479,17 @@ Set `base` to anchor a standalone color to another standalone color or raw value
|
|
|
412
479
|
const bg = glaze.color('#1a1a2e');
|
|
413
480
|
|
|
414
481
|
// Text guaranteed AA against `bg` in every scheme.
|
|
415
|
-
const text = glaze.color('#ffffff',
|
|
482
|
+
const text = glaze.color({ from: '#ffffff', base: bg, contrast: 'AA' });
|
|
416
483
|
|
|
417
484
|
// Border 8 lightness units lighter than `bg` in each scheme.
|
|
418
|
-
const border = glaze.color('#000000',
|
|
485
|
+
const border = glaze.color({ from: '#000000',
|
|
419
486
|
base: bg,
|
|
420
487
|
lightness: '+8',
|
|
421
488
|
mode: 'fixed',
|
|
422
489
|
});
|
|
423
490
|
|
|
424
491
|
// Raw-value base — Glaze auto-wraps it via `glaze.color(value)`.
|
|
425
|
-
const text2 = glaze.color('#ffffff',
|
|
492
|
+
const text2 = glaze.color({ from: '#ffffff', base: '#1a1a2e', contrast: 'AA' });
|
|
426
493
|
```
|
|
427
494
|
|
|
428
495
|
Behavior with `base`:
|
|
@@ -432,15 +499,15 @@ Behavior with `base`:
|
|
|
432
499
|
- Relative `hue: '+N'` / `'-N'` still anchors to the **seed** (the value passed to `glaze.color()`), not the base.
|
|
433
500
|
- `mode` works as a per-pair knob.
|
|
434
501
|
- The base token's `.resolve()` is called lazily on the first resolve of the dependent and the result is captured by reference; later mutations to the base don't apply.
|
|
435
|
-
-
|
|
502
|
+
- **Structured bases are resolved at full range for linking math**: when a value/`from` color links to a base created via the structured form, the contrast/lightness anchor uses the raw input lightness (not the windowed output). This ensures the anchor matches what you intended, not what the light window remapped it to. The base's own `.resolve()` output is unaffected.
|
|
436
503
|
- When the contrast target is physically unreachable, `glaze` emits a single `console.warn` per `(name, scheme, target)` triple and returns the closest passing variant. Use the `name` override to make the warning identifiable.
|
|
437
504
|
|
|
438
505
|
Chains compose:
|
|
439
506
|
|
|
440
507
|
```ts
|
|
441
508
|
const bg = glaze.color('#000000');
|
|
442
|
-
const surface = glaze.color('#222222',
|
|
443
|
-
const text = glaze.color('#ffffff',
|
|
509
|
+
const surface = glaze.color({ from: '#222222', base: bg, contrast: 'AAA' });
|
|
510
|
+
const text = glaze.color({ from: '#ffffff', base: surface, contrast: 'AA' });
|
|
444
511
|
```
|
|
445
512
|
|
|
446
513
|
### `name` is a debug label
|
|
@@ -899,10 +966,10 @@ S_dark = S_light * (1 - darkDesaturation) // default: 0.1
|
|
|
899
966
|
|
|
900
967
|
```ts
|
|
901
968
|
glaze.configure({
|
|
902
|
-
lightLightness: [10, 100],
|
|
903
|
-
darkLightness: [15, 95],
|
|
969
|
+
lightLightness: [10, 100], // or false to disable clamping
|
|
970
|
+
darkLightness: [15, 95], // or false to disable clamping
|
|
904
971
|
darkDesaturation: 0.1,
|
|
905
|
-
darkCurve: 0.5,
|
|
972
|
+
darkCurve: 0.5, // or [normal, hc] pair
|
|
906
973
|
states: {
|
|
907
974
|
dark: '@dark',
|
|
908
975
|
highContrast: '@high-contrast',
|
|
@@ -922,8 +989,8 @@ glaze.configure({
|
|
|
922
989
|
|
|
923
990
|
| Field | Default | Description |
|
|
924
991
|
|---|---|---|
|
|
925
|
-
| `lightLightness` | `[10, 100]` | Light scheme lightness window `[lo, hi]
|
|
926
|
-
| `darkLightness` | `[15, 95]` | Dark scheme lightness window. Bypassed in HC. |
|
|
992
|
+
| `lightLightness` | `[10, 100]` | Light scheme lightness window `[lo, hi]`, or `false` to disable clamping (equivalent to `[0, 100]`). Bypassed in HC. |
|
|
993
|
+
| `darkLightness` | `[15, 95]` | Dark scheme lightness window, or `false` to disable clamping. Bypassed in HC. |
|
|
927
994
|
| `darkDesaturation` | `0.1` | Saturation reduction in dark scheme (0–1). |
|
|
928
995
|
| `darkCurve` | `0.5` | Möbius beta for dark `auto`-inversion (0–1). Accepts `[normal, hc]` pair. |
|
|
929
996
|
| `states.dark` | `'@dark'` | State alias for dark mode tokens (Tasty export). |
|
|
@@ -931,6 +998,7 @@ glaze.configure({
|
|
|
931
998
|
| `modes.dark` | `true` | Include dark variants in exports. |
|
|
932
999
|
| `modes.highContrast` | `false` | Include HC variants. |
|
|
933
1000
|
| `shadowTuning` | `undefined` | Default tuning for all shadow colors. Per-color tuning merges field-by-field. |
|
|
1001
|
+
| `autoFlip` | `true` | When solving `contrast`, allow the solver to switch away from the requested lightness direction if that side can't meet the target. With `false`, only the requested direction is considered; unmet contrasts pin the lightness to that direction's extreme (and emit a warning). |
|
|
934
1002
|
|
|
935
1003
|
| Method | Description |
|
|
936
1004
|
|---|---|
|
|
@@ -938,7 +1006,7 @@ glaze.configure({
|
|
|
938
1006
|
| `glaze.getConfig()` | Snapshot the current resolved config (shallow copy). |
|
|
939
1007
|
| `glaze.resetConfig()` | Reset to defaults (also bumps the version counter). |
|
|
940
1008
|
|
|
941
|
-
Standalone `glaze.color()` tokens snapshot the relevant fields at create time, so later `configure()` calls don't change already-created tokens.
|
|
1009
|
+
Standalone `glaze.color()` tokens snapshot the resolve-relevant fields at create time, so later `configure()` calls don't change already-created tokens. Themes merge the live global at resolve time for fields not overridden via `GlazeConfigOverride`.
|
|
942
1010
|
|
|
943
1011
|
---
|
|
944
1012
|
|
|
@@ -970,8 +1038,10 @@ Resolution priority (highest first):
|
|
|
970
1038
|
|
|
971
1039
|
| Condition | Behavior |
|
|
972
1040
|
|---|---|
|
|
973
|
-
| `contrast` without `base` | Validation error |
|
|
974
|
-
| Relative `lightness` without `base` | Validation error |
|
|
1041
|
+
| `contrast` without `base` in a **theme** color | Validation error |
|
|
1042
|
+
| Relative `lightness` without `base` in a **theme** color | Validation error |
|
|
1043
|
+
| `contrast` without `base` in `glaze.color()` | Anchors against the literal seed (no error) |
|
|
1044
|
+
| Relative `lightness` without `base` in `glaze.color()` | Anchors against the literal seed (no error) |
|
|
975
1045
|
| `lightness` resolves outside 0–100 | Clamp silently |
|
|
976
1046
|
| `saturation` outside 0–1 | Clamp silently |
|
|
977
1047
|
| Circular `base` references | Validation error |
|
|
@@ -1070,5 +1140,7 @@ import {
|
|
|
1070
1140
|
| `lightnessRange` | `[0, 1]` | Search bounds. |
|
|
1071
1141
|
| `epsilon` | `1e-4` | Convergence threshold. |
|
|
1072
1142
|
| `maxIterations` | `14` | Max binary-search iterations per branch. |
|
|
1143
|
+
| `initialDirection` | higher-contrast side | Direction to search first (`'lighter'` or `'darker'`). Theme resolution sets this from the requested lightness relative to the base color. |
|
|
1144
|
+
| `flip` | `false` | When `true`, try the opposite direction if the initial one doesn't meet the target. When `false`, only the initial direction is searched — unmet contrasts pin the result to that direction's extreme. |
|
|
1073
1145
|
|
|
1074
|
-
Result: `{ lightness, contrast, met, branch: 'lighter' | 'darker' | 'preferred' }`.
|
|
1146
|
+
Result: `{ lightness, contrast, met, branch: 'lighter' | 'darker' | 'preferred', flipped? }`. `flipped: true` indicates the initial direction failed and the opposite direction satisfied the target.
|
|
@@ -10,6 +10,8 @@ The default theme is what most components consume — its tokens are emitted unp
|
|
|
10
10
|
|
|
11
11
|
You design the default theme once, and `extend()` propagates that design across every status hue.
|
|
12
12
|
|
|
13
|
+
Every color definition has an **`inherit`** flag (default: `true`) controlling whether it flows into child themes via `extend()`. Set `inherit: false` to scope a color to its parent theme only — this is how sibling themes stay lean, carrying only the tokens they actually need.
|
|
14
|
+
|
|
13
15
|
## Hue / saturation seeds
|
|
14
16
|
|
|
15
17
|
Declare hues as named constants up top, plus a single shared seed saturation:
|
|
@@ -123,15 +125,15 @@ The disabled chip + label pair uses `mode: 'auto'` and **explicit numeric contra
|
|
|
123
125
|
```ts
|
|
124
126
|
'disabled-surface': {
|
|
125
127
|
base: 'surface', lightness: '-1', saturation: 0.2,
|
|
126
|
-
contrast: [1.
|
|
128
|
+
contrast: [1.5, 2], inherit: false,
|
|
127
129
|
},
|
|
128
130
|
'disabled-surface-text': {
|
|
129
|
-
base: 'surface', lightness: '
|
|
130
|
-
contrast:
|
|
131
|
+
base: 'disabled-surface', lightness: '+1', saturation: 0.3,
|
|
132
|
+
contrast: 3, inherit: false,
|
|
131
133
|
},
|
|
132
134
|
```
|
|
133
135
|
|
|
134
|
-
|
|
136
|
+
Each token anchors to its immediate parent surface — `*-surface` contrasts against the root `surface`, while `*-surface-text` contrasts against its own chip (`disabled-surface`). This keeps the disabled state self-contained and resolves to consistent ratios in light, dark, and HC (chip ≈ 1.5–2× vs surface, label ≈ 3× on chip). An alpha-tinted overlay would have asymmetric behavior — composited alpha against a near-white light surface produces a much weaker chip than the same overlay against a near-dark dark surface, and the disabled state would stop *looking* disabled in one of the schemes.
|
|
135
137
|
|
|
136
138
|
The general rule: when a color needs to *feel the same across schemes*, anchor it with `mode: 'auto'` + a numeric contrast against a surface, not with a preset.
|
|
137
139
|
|
|
@@ -143,7 +145,9 @@ The general rule: when a color needs to *feel the same across schemes*, anchor i
|
|
|
143
145
|
},
|
|
144
146
|
```
|
|
145
147
|
|
|
146
|
-
`mode: 'fixed'` skips the dark-scheme Möbius inversion and only does a linear window mapping, so `surface-inverse` reads as a dark surface in *every* scheme — light, dark, and HC.
|
|
148
|
+
`mode: 'fixed'` skips the dark-scheme Möbius inversion and only does a linear window mapping, so `surface-inverse` reads as a dark surface in *every* scheme — light, dark, and HC. In high-contrast variants the window is bypassed entirely (identity), so the color stays at its raw lightness across all four schemes.
|
|
149
|
+
|
|
150
|
+
Use it for tooltips, code blocks, popovers with their own dark theme. Pair with `#white` for foreground text.
|
|
147
151
|
|
|
148
152
|
This is the canonical "I want this color to stay recognizable" pattern. The other `mode: 'fixed'` use is the entire accent system below.
|
|
149
153
|
|
|
@@ -197,6 +201,8 @@ Mirrors the neutral disabled pair from above but with higher saturation so the c
|
|
|
197
201
|
},
|
|
198
202
|
```
|
|
199
203
|
|
|
204
|
+
The HC pair `[1.4, 1.3]` is intentionally *lower* in high-contrast mode — the tinted chip naturally gains more contrast against `surface` when the lightness window bypasses (identity mapping), so we loosen the constraint to leave room for stronger text-on-chip contrast. The text token uses `contrast: 1.51`, which is the maximum value that stays below Glaze's auto-flip threshold (the solver would otherwise invert the color past the midpoint, producing a result on the wrong side of its base). This keeps the label legible without flipping into an unexpected hue.
|
|
205
|
+
|
|
200
206
|
These are inherited (no `inherit: false`), so each colored sibling theme automatically emits `<theme>-accent-disabled-surface` and `<theme>-accent-disabled-surface-text`. PRIMARY-style disabled buttons stay tinted with the active theme's hue (danger-tinted danger button, success-tinted success button), preserving brand identity even in the disabled state.
|
|
201
207
|
|
|
202
208
|
## Per-color hue overrides (code highlighting)
|
|
@@ -206,7 +212,7 @@ The `code-*` tokens use **absolute `hue` numbers** regardless of the seed. Each
|
|
|
206
212
|
```ts
|
|
207
213
|
'code-comment': { base: 'surface', hue: 280, saturation: 0.1, lightness: '-1', contrast: [4.5, 7], inherit: false },
|
|
208
214
|
'code-keyword': { base: 'surface', hue: 348, saturation: 1, lightness: '-1', contrast: [5, 7.5], inherit: false },
|
|
209
|
-
'code-string': { base: 'surface', hue:
|
|
215
|
+
'code-string': { base: 'surface', hue: SUCCESS_HUE, saturation: 1, lightness: '-1', contrast: [4.5, 7], inherit: false },
|
|
210
216
|
// …code-punctuation, code-number, code-function, code-attribute follow the same shape
|
|
211
217
|
```
|
|
212
218
|
|