@cube-dev/ui-kit 0.0.0-canary-2757f7b → 0.0.0-canary-8b6ee8a
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 +12 -0
- package/dist/README.md +12 -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 +3 -2
- 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.d.ts +10 -0
- package/dist/components/Root.js +7 -3
- 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.d.ts +1 -2
- package/dist/components/content/Item/Item.js +1 -1
- package/dist/components/content/Item/Item.js.map +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 +35 -28
- package/dist/components/content/Text.js +1 -1
- package/dist/components/content/Text.js.map +1 -1
- package/dist/components/content/TextItem/TextItem.js +1 -1
- package/dist/components/content/Title.d.ts +0 -6
- package/dist/components/content/Title.js +3 -2
- package/dist/components/content/Title.js.map +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/TreeNode.js.map +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.d.ts +1 -0
- package/dist/components/content/use-auto-tooltip.js +1 -1
- package/dist/components/content/use-auto-tooltip.js.map +1 -1
- package/dist/components/fields/Checkbox/Checkbox.d.ts +2 -2
- package/dist/components/fields/Checkbox/Checkbox.js +2 -2
- package/dist/components/fields/Checkbox/Checkbox.js.map +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 +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/DateInputBase.js.map +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/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.d.ts +1 -2
- package/dist/components/fields/FileInput/FileInput.js +1 -1
- package/dist/components/fields/FileInput/FileInput.js.map +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.d.ts +1 -2
- package/dist/components/fields/Select/Select.js +1 -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.d.ts +2 -2
- package/dist/components/fields/Switch/Switch.js +1 -1
- package/dist/components/fields/Switch/Switch.js.map +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.d.ts +1 -2
- package/dist/components/fields/TextInput/TextInputBase.js +1 -1
- package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
- package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
- package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +1 -2
- package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
- package/dist/components/form/FieldWrapper/types.d.ts +1 -2
- 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.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/layout.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/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 +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/RangeCalendar.js +1 -1
- package/dist/components/other/CubeLogo/CubeLogo.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/Modal.js.map +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/Overlay.js.map +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/Tray.js.map +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/overlays/Tooltip/context.js.map +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 +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/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.d.ts +6 -6
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/provider.d.ts +1 -1
- package/dist/provider.js +1 -1
- package/dist/provider.js.map +1 -1
- package/dist/providers/TrackingProvider.js +1 -1
- package/dist/providers/navigationAdapter.default.js +1 -1
- package/dist/shared/form.d.ts +28 -3
- package/dist/shared/index.d.ts +1 -1
- package/dist/tokens/base.js +1 -1
- package/dist/tokens/colors.d.ts +41 -2
- package/dist/tokens/colors.js +77 -9
- package/dist/tokens/colors.js.map +1 -1
- package/dist/tokens/index.d.ts +3 -2
- package/dist/tokens/index.js +23 -16
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/layout.js +1 -1
- package/dist/tokens/lazy-styles.js +10 -6
- package/dist/tokens/lazy-styles.js.map +1 -1
- package/dist/tokens/palette-config.d.ts +203 -0
- package/dist/tokens/palette-config.js +253 -0
- package/dist/tokens/palette-config.js.map +1 -0
- package/dist/tokens/palette.d.ts +45 -5
- package/dist/tokens/palette.js +567 -403
- package/dist/tokens/palette.js.map +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.d.ts +1 -1
- package/dist/utils/react/mergeProps.js +1 -1
- package/dist/utils/react/mergeProps.js.map +1 -1
- package/dist/utils/react/nullableValue.d.ts +1 -1
- package/dist/utils/react/nullableValue.js +1 -1
- package/dist/utils/react/nullableValue.js.map +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 +3 -3
- package/docs/Colors.md +4 -0
- package/docs/Theming.md +327 -0
- package/docs/Usage.md +30 -3
- package/docs/components/Root.md +1 -0
- package/docs/glaze/api.md +156 -8
- package/docs/glaze/methodology.md +21 -1
- package/docs/glaze/okhst.md +13 -0
- package/docs/tasty/README.md +1 -3
- package/docs/tasty/ai-agents.md +7 -21
- package/docs/tasty/configuration.md +30 -220
- package/docs/tasty/debug.md +7 -7
- package/docs/tasty/design-system.md +2 -2
- package/docs/tasty/dsl.md +8 -68
- package/docs/tasty/injector.md +4 -31
- package/docs/tasty/methodology.md +1 -1
- package/docs/tasty/pipeline.md +3 -3
- package/docs/tasty/react-api.md +1 -61
- package/docs/tasty/ssr.md +33 -40
- package/docs/tasty/styles.md +9 -27
- package/docs/tasty/tasty-static.md +6 -8
- package/package.json +4 -4
- package/dist/props.d.ts +0 -13
- package/docs/tasty/migration-v3.md +0 -285
- package/docs/tasty/plugins.md +0 -349
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
/** @license MIT | @cube-dev/ui-kit v0.0.0-canary-8b6ee8a | Cube Dev Team */
|
|
2
|
+
import { useSyncExternalStore } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/tokens/palette-config.ts
|
|
5
|
+
/**
|
|
6
|
+
* Runtime configuration for the Glaze-generated color palette.
|
|
7
|
+
*
|
|
8
|
+
* The palette recipe itself lives in `./palette.ts`; this module owns only the
|
|
9
|
+
* *seeds* it is built from, plus a version counter the token caches watch. It
|
|
10
|
+
* deliberately imports nothing else — not the token modules, not `glaze` — so
|
|
11
|
+
* there is no import cycle and no ordering hazard.
|
|
12
|
+
*
|
|
13
|
+
* Reading is free; writing rebuilds the palette on the next token read. See
|
|
14
|
+
* `Getting Started/Theming` in Storybook for the full contract.
|
|
15
|
+
*/
|
|
16
|
+
/** Brand hue. Drives the `default`, `primary`, `purple` and `special` themes. */
|
|
17
|
+
const DEFAULT_HUE = 280.3;
|
|
18
|
+
const DEFAULT_SUCCESS_HUE = 156.9;
|
|
19
|
+
const DEFAULT_DANGER_HUE = 23.1;
|
|
20
|
+
const DEFAULT_WARNING_HUE = 84.3;
|
|
21
|
+
const DEFAULT_NOTE_HUE = 302.3;
|
|
22
|
+
/** Seed saturation. Per-color `saturation` in the recipe is a 0–1 factor of it. */
|
|
23
|
+
const DEFAULT_SATURATION = 80;
|
|
24
|
+
const DEFAULT_THEME_HUES = {
|
|
25
|
+
success: DEFAULT_SUCCESS_HUE,
|
|
26
|
+
danger: DEFAULT_DANGER_HUE,
|
|
27
|
+
warning: DEFAULT_WARNING_HUE,
|
|
28
|
+
note: DEFAULT_NOTE_HUE
|
|
29
|
+
};
|
|
30
|
+
function resolveConfig(input) {
|
|
31
|
+
const saturation = input.saturation ?? DEFAULT_SATURATION;
|
|
32
|
+
const themes = input.themes ?? {};
|
|
33
|
+
const hue = input.hue ?? DEFAULT_HUE;
|
|
34
|
+
return {
|
|
35
|
+
hue,
|
|
36
|
+
baseHue: input.baseHue ?? hue,
|
|
37
|
+
saturation,
|
|
38
|
+
pastel: input.pastel ?? false,
|
|
39
|
+
contrastLevel: input.contrastLevel ?? "auto",
|
|
40
|
+
themes: {
|
|
41
|
+
success: {
|
|
42
|
+
hue: themes.success?.hue ?? DEFAULT_THEME_HUES.success,
|
|
43
|
+
saturation: themes.success?.saturation ?? saturation
|
|
44
|
+
},
|
|
45
|
+
danger: {
|
|
46
|
+
hue: themes.danger?.hue ?? DEFAULT_THEME_HUES.danger,
|
|
47
|
+
saturation: themes.danger?.saturation ?? saturation
|
|
48
|
+
},
|
|
49
|
+
warning: {
|
|
50
|
+
hue: themes.warning?.hue ?? DEFAULT_THEME_HUES.warning,
|
|
51
|
+
saturation: themes.warning?.saturation ?? saturation
|
|
52
|
+
},
|
|
53
|
+
note: {
|
|
54
|
+
hue: themes.note?.hue ?? DEFAULT_THEME_HUES.note,
|
|
55
|
+
saturation: themes.note?.saturation ?? saturation
|
|
56
|
+
},
|
|
57
|
+
code: { saturation: themes.code?.saturation ?? DEFAULT_SATURATION }
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/** The palette as it ships, with no tuning applied. */
|
|
62
|
+
const DEFAULT_PALETTE_CONFIG = resolveConfig({});
|
|
63
|
+
/**
|
|
64
|
+
* The accumulated *input*, not the resolved config. Keeping the sparse form is
|
|
65
|
+
* what makes inheritance live: a later `setPaletteConfig({ saturation })` still
|
|
66
|
+
* cascades into every theme that never set its own.
|
|
67
|
+
*/
|
|
68
|
+
let input = {};
|
|
69
|
+
let resolved = DEFAULT_PALETTE_CONFIG;
|
|
70
|
+
let version = 0;
|
|
71
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
72
|
+
function mergeSeed(base, patch) {
|
|
73
|
+
if (!base) return patch;
|
|
74
|
+
if (!patch) return base;
|
|
75
|
+
return {
|
|
76
|
+
...base,
|
|
77
|
+
...patch
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function mergeInput(base, patch) {
|
|
81
|
+
const next = {
|
|
82
|
+
...base,
|
|
83
|
+
...patch
|
|
84
|
+
};
|
|
85
|
+
if (base.themes || patch.themes) next.themes = {
|
|
86
|
+
success: mergeSeed(base.themes?.success, patch.themes?.success),
|
|
87
|
+
danger: mergeSeed(base.themes?.danger, patch.themes?.danger),
|
|
88
|
+
warning: mergeSeed(base.themes?.warning, patch.themes?.warning),
|
|
89
|
+
note: mergeSeed(base.themes?.note, patch.themes?.note),
|
|
90
|
+
code: mergeSeed(base.themes?.code, patch.themes?.code)
|
|
91
|
+
};
|
|
92
|
+
return next;
|
|
93
|
+
}
|
|
94
|
+
function isSameConfig(a, b) {
|
|
95
|
+
return a.hue === b.hue && a.baseHue === b.baseHue && a.saturation === b.saturation && a.pastel === b.pastel && a.contrastLevel === b.contrastLevel && a.themes.code.saturation === b.themes.code.saturation && [
|
|
96
|
+
"success",
|
|
97
|
+
"danger",
|
|
98
|
+
"warning",
|
|
99
|
+
"note"
|
|
100
|
+
].every((name) => a.themes[name].hue === b.themes[name].hue && a.themes[name].saturation === b.themes[name].saturation);
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Which fields are *explicitly set*, as an order-independent signature.
|
|
104
|
+
*
|
|
105
|
+
* Two configs can resolve to identical values yet differ in which of those values
|
|
106
|
+
* are pinned rather than inherited — pinning `primary.saturation` to the number it
|
|
107
|
+
* already inherited is the obvious case. That difference is invisible to
|
|
108
|
+
* {@link isSameConfig} but visible through {@link getPaletteConfigInput}, so it has
|
|
109
|
+
* to count as a change or a settings UI reading it would never re-render.
|
|
110
|
+
*/
|
|
111
|
+
function pinSignature(config) {
|
|
112
|
+
const set = (value) => value === void 0 ? "0" : "1";
|
|
113
|
+
return [
|
|
114
|
+
set(config.hue),
|
|
115
|
+
set(config.baseHue),
|
|
116
|
+
set(config.saturation),
|
|
117
|
+
set(config.pastel),
|
|
118
|
+
set(config.contrastLevel),
|
|
119
|
+
set(config.themes?.code?.saturation),
|
|
120
|
+
...[
|
|
121
|
+
"success",
|
|
122
|
+
"danger",
|
|
123
|
+
"warning",
|
|
124
|
+
"note"
|
|
125
|
+
].flatMap((name) => [set(config.themes?.[name]?.hue), set(config.themes?.[name]?.saturation)])
|
|
126
|
+
].join("");
|
|
127
|
+
}
|
|
128
|
+
function commit(nextInput) {
|
|
129
|
+
const nextResolved = resolveConfig(nextInput);
|
|
130
|
+
if (isSameConfig(resolved, nextResolved) && pinSignature(input) === pinSignature(nextInput)) return;
|
|
131
|
+
input = nextInput;
|
|
132
|
+
resolved = nextResolved;
|
|
133
|
+
version++;
|
|
134
|
+
listeners.forEach((listener) => listener());
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Merge tuning into the current palette config.
|
|
138
|
+
*
|
|
139
|
+
* Merges, like `glaze.configure()`: omitted fields keep their current value.
|
|
140
|
+
* The palette is rebuilt lazily on the next token read, and any mounted `<Root>`
|
|
141
|
+
* re-injects the token block — no component re-render is involved, because every
|
|
142
|
+
* color in the kit resolves through a CSS custom property.
|
|
143
|
+
*
|
|
144
|
+
* ```ts
|
|
145
|
+
* setPaletteConfig({ hue: 200, themes: { danger: { hue: 12 } } });
|
|
146
|
+
* ```
|
|
147
|
+
*
|
|
148
|
+
* Omitting a field keeps it; passing `undefined` **clears** it, so it goes back to
|
|
149
|
+
* inheriting (per-theme) or to the shipped default (top level):
|
|
150
|
+
*
|
|
151
|
+
* ```ts
|
|
152
|
+
* setPaletteConfig({ themes: { primary: { saturation: 90 } } }); // pin
|
|
153
|
+
* setPaletteConfig({ themes: { primary: { saturation: undefined } } }); // inherit again
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
function setPaletteConfig(config) {
|
|
157
|
+
commit(mergeInput(input, config));
|
|
158
|
+
}
|
|
159
|
+
/** Drop all tuning and restore the palette the kit ships with. */
|
|
160
|
+
function resetPaletteConfig() {
|
|
161
|
+
commit({});
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Force every token to re-resolve without changing the palette config.
|
|
165
|
+
*
|
|
166
|
+
* Only needed if you drive Glaze directly — `glaze.configure({ darkTone })` and
|
|
167
|
+
* the like. Glaze invalidates its own caches, but the kit's token maps are
|
|
168
|
+
* memoized against *this* module's version, so they need telling. Calling it
|
|
169
|
+
* before the first paint is unnecessary; nothing has been resolved yet.
|
|
170
|
+
*/
|
|
171
|
+
function invalidatePaletteTokens() {
|
|
172
|
+
version++;
|
|
173
|
+
listeners.forEach((listener) => listener());
|
|
174
|
+
}
|
|
175
|
+
/** The current config, with every field resolved to a concrete value. */
|
|
176
|
+
function getPaletteConfig() {
|
|
177
|
+
return resolved;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* The config **as set**, sparse — omitted fields are the ones still inheriting.
|
|
181
|
+
*
|
|
182
|
+
* {@link getPaletteConfig} resolves everything to concrete values, which loses the
|
|
183
|
+
* distinction between "explicitly 80" and "80 because it follows the brand". A
|
|
184
|
+
* settings UI needs that distinction to show an inherited value as inherited, and
|
|
185
|
+
* to offer a way back:
|
|
186
|
+
*
|
|
187
|
+
* ```ts
|
|
188
|
+
* const pinned = getPaletteConfigInput().themes?.primary?.saturation !== undefined;
|
|
189
|
+
*
|
|
190
|
+
* // Re-link it to the brand by clearing the field.
|
|
191
|
+
* setPaletteConfig({ themes: { primary: { saturation: undefined } } });
|
|
192
|
+
* ```
|
|
193
|
+
*/
|
|
194
|
+
function getPaletteConfigInput() {
|
|
195
|
+
return input;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Resolve a partial against the current config **without applying it**.
|
|
199
|
+
*
|
|
200
|
+
* Same merge semantics as {@link setPaletteConfig} — omitted fields keep their
|
|
201
|
+
* current value, unset per-theme fields keep inheriting — but the store is not
|
|
202
|
+
* touched and no listener fires. Used to render a palette the app is not
|
|
203
|
+
* actually using, e.g. for a theme preview.
|
|
204
|
+
*/
|
|
205
|
+
function resolvePaletteConfig(config) {
|
|
206
|
+
if (!config) return resolved;
|
|
207
|
+
return resolveConfig(mergeInput(input, config));
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Increments whenever the resolved config changes. The token caches in
|
|
211
|
+
* `./palette.ts`, `./colors.ts` and `./index.ts` compare against it instead of
|
|
212
|
+
* memoizing forever — the same idiom Glaze uses for its own config version.
|
|
213
|
+
*/
|
|
214
|
+
function getPaletteVersion() {
|
|
215
|
+
return version;
|
|
216
|
+
}
|
|
217
|
+
/** Subscribe to palette config changes. Returns an unsubscribe function. */
|
|
218
|
+
function subscribePaletteConfig(listener) {
|
|
219
|
+
listeners.add(listener);
|
|
220
|
+
return () => {
|
|
221
|
+
listeners.delete(listener);
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Re-render on palette config changes. Returns the version, not the config, so
|
|
226
|
+
* the snapshot is a primitive and React never warns about an uncached snapshot.
|
|
227
|
+
*/
|
|
228
|
+
function usePaletteVersion() {
|
|
229
|
+
return useSyncExternalStore(subscribePaletteConfig, getPaletteVersion, getPaletteVersion);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Read and tune the palette from React, `useState`-style.
|
|
233
|
+
*
|
|
234
|
+
* ```tsx
|
|
235
|
+
* const [palette, setPalette] = usePaletteConfig();
|
|
236
|
+
*
|
|
237
|
+
* <HueSlider
|
|
238
|
+
* value={palette.hue}
|
|
239
|
+
* onChange={(hue) => setPalette({ hue })}
|
|
240
|
+
* />
|
|
241
|
+
* ```
|
|
242
|
+
*
|
|
243
|
+
* The config is global process state, so every consumer of this hook — and every
|
|
244
|
+
* mounted `<Root>` — sees the same palette.
|
|
245
|
+
*/
|
|
246
|
+
function usePaletteConfig() {
|
|
247
|
+
usePaletteVersion();
|
|
248
|
+
return [getPaletteConfig(), setPaletteConfig];
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
//#endregion
|
|
252
|
+
export { DEFAULT_PALETTE_CONFIG, getPaletteConfig, getPaletteConfigInput, getPaletteVersion, invalidatePaletteTokens, resetPaletteConfig, resolvePaletteConfig, setPaletteConfig, subscribePaletteConfig, usePaletteConfig, usePaletteVersion };
|
|
253
|
+
//# sourceMappingURL=palette-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"palette-config.js","names":[],"sources":["../../src/tokens/palette-config.ts"],"sourcesContent":["import { useSyncExternalStore } from 'react';\n\n/**\n * Runtime configuration for the Glaze-generated color palette.\n *\n * The palette recipe itself lives in `./palette.ts`; this module owns only the\n * *seeds* it is built from, plus a version counter the token caches watch. It\n * deliberately imports nothing else — not the token modules, not `glaze` — so\n * there is no import cycle and no ordering hazard.\n *\n * Reading is free; writing rebuilds the palette on the next token read. See\n * `Getting Started/Theming` in Storybook for the full contract.\n */\n\n// ============================================================================\n// Default seeds\n// ============================================================================\n\n/** Brand hue. Drives the `default`, `primary`, `purple` and `special` themes. */\nexport const DEFAULT_HUE = 280.3;\nexport const DEFAULT_SUCCESS_HUE = 156.9;\nexport const DEFAULT_DANGER_HUE = 23.1;\nexport const DEFAULT_WARNING_HUE = 84.3;\nexport const DEFAULT_NOTE_HUE = 302.3;\n\n/** Seed saturation. Per-color `saturation` in the recipe is a 0–1 factor of it. */\nexport const DEFAULT_SATURATION = 80;\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/** Hue / saturation seed override for one colored theme. */\nexport interface PaletteThemeSeed {\n /** Hue in degrees (0–360). */\n hue?: number;\n /** Saturation (0–100). Defaults to the palette-level `saturation`. */\n saturation?: number;\n}\n\n/**\n * The `code-*` syntax family takes a saturation and nothing else.\n *\n * Its hues are absolute literals by design, so syntax colors never rotate with the\n * brand — strings would collide with numbers the moment the brand went green. And\n * unlike every other theme, its saturation does **not** inherit the palette-level\n * one: the code palette is calibrated once and stays there, so re-seeding the app\n * cannot quietly wash out a code block.\n */\nexport interface PaletteCodeSeed {\n /** Saturation (0–100). Defaults to {@link DEFAULT_SATURATION}, not to `saturation`. */\n saturation?: number;\n}\n\n/** Names of the themes whose seeds can be overridden individually. */\nexport type PaletteThemeName =\n | 'success'\n | 'danger'\n | 'warning'\n | 'note'\n | 'code';\n\n/**\n * Palette tuning. Every field is optional; omitted fields keep their default,\n * and per-theme fields left unset inherit the palette-level value.\n */\nexport interface PaletteConfig {\n /**\n * Accent hue in degrees (0–360) — the brand.\n *\n * Drives the `accent-*` family on every theme, `primary` / `purple` / `special`,\n * and the brand-tinted odds and ends (`focus`, the loading faces, the disabled\n * chip). Also the default for {@link PaletteConfig.baseHue}.\n */\n hue?: number;\n /**\n * Hue of the **base** zone in degrees (0–360): the neutral chrome — `surface`\n * and its ladder, the `surface-text*` ramp, `border`, `placeholder`. Defaults to\n * `hue`, so the chrome carries a faint tint of the brand unless you say otherwise.\n *\n * Splitting it lets the chrome sit on a different hue from the accent — a warm\n * grey UI with a cool blue brand, say. Only the `default` theme is affected: a\n * colored theme's tinted `surface` deliberately follows *its own* hue, because a\n * danger banner should read as red.\n */\n baseHue?: number;\n /**\n * Seed saturation (0–100), and the fallback for every theme that does not set\n * its own.\n *\n * One scale for the whole theme, by design. Every color's own `saturation` is a\n * 0–1 factor of this seed — `surface` at 0.12, `border` at 0.175, the text ramp\n * at 0.2, the accent family at ~1.0 — so moving it rescales the palette while\n * keeping those proportions. Unlike hue, which is configured separately for the\n * brand and for each status theme, saturation is deliberately not split: the\n * ratio between a subtle surface tint and a saturated accent is part of the\n * design.\n */\n saturation?: number;\n /**\n * Global. Widens the usable chroma range by relaxing the sRGB-safe limit,\n * producing a softer, more even palette across hues. Glaze treats `pastel` as\n * instance-level, so it is threaded into every theme.\n */\n pastel?: boolean;\n /**\n * Global. `'auto'` (the default) keeps the two-tier model: normal colors plus\n * a separate high-contrast tier driven by `<html data-contrast=\"high\">` /\n * `prefers-contrast: more`.\n *\n * A number (0–100) replaces that switch with a slider — and, because a manual\n * level already carries the contrast preference, **drops the high-contrast\n * tier entirely**. `0` reproduces the normal output and `100` the\n * high-contrast output, bit for bit.\n */\n contrastLevel?: number | 'auto';\n /** Per-theme seed overrides. */\n themes?: {\n success?: PaletteThemeSeed;\n danger?: PaletteThemeSeed;\n warning?: PaletteThemeSeed;\n note?: PaletteThemeSeed;\n code?: PaletteCodeSeed;\n };\n}\n\n/** {@link PaletteConfig} with every field resolved to a concrete value. */\nexport interface ResolvedPaletteConfig {\n hue: number;\n baseHue: number;\n saturation: number;\n pastel: boolean;\n contrastLevel: number | 'auto';\n themes: {\n success: { hue: number; saturation: number };\n danger: { hue: number; saturation: number };\n warning: { hue: number; saturation: number };\n note: { hue: number; saturation: number };\n code: { saturation: number };\n };\n}\n\n// ============================================================================\n// Resolution\n// ============================================================================\n\nconst DEFAULT_THEME_HUES = {\n success: DEFAULT_SUCCESS_HUE,\n danger: DEFAULT_DANGER_HUE,\n warning: DEFAULT_WARNING_HUE,\n note: DEFAULT_NOTE_HUE,\n} as const;\n\nfunction resolveConfig(input: PaletteConfig): ResolvedPaletteConfig {\n const saturation = input.saturation ?? DEFAULT_SATURATION;\n const themes = input.themes ?? {};\n\n const hue = input.hue ?? DEFAULT_HUE;\n\n return {\n hue,\n baseHue: input.baseHue ?? hue,\n saturation,\n pastel: input.pastel ?? false,\n contrastLevel: input.contrastLevel ?? 'auto',\n themes: {\n success: {\n hue: themes.success?.hue ?? DEFAULT_THEME_HUES.success,\n saturation: themes.success?.saturation ?? saturation,\n },\n danger: {\n hue: themes.danger?.hue ?? DEFAULT_THEME_HUES.danger,\n saturation: themes.danger?.saturation ?? saturation,\n },\n warning: {\n hue: themes.warning?.hue ?? DEFAULT_THEME_HUES.warning,\n saturation: themes.warning?.saturation ?? saturation,\n },\n note: {\n hue: themes.note?.hue ?? DEFAULT_THEME_HUES.note,\n saturation: themes.note?.saturation ?? saturation,\n },\n // Deliberately NOT `?? saturation`: the code palette is calibrated once and\n // does not follow the palette-level seed. See `PaletteCodeSeed`.\n code: { saturation: themes.code?.saturation ?? DEFAULT_SATURATION },\n },\n };\n}\n\n/** The palette as it ships, with no tuning applied. */\nexport const DEFAULT_PALETTE_CONFIG: ResolvedPaletteConfig = resolveConfig({});\n\n// ============================================================================\n// Store\n// ============================================================================\n\n/**\n * The accumulated *input*, not the resolved config. Keeping the sparse form is\n * what makes inheritance live: a later `setPaletteConfig({ saturation })` still\n * cascades into every theme that never set its own.\n */\nlet input: PaletteConfig = {};\nlet resolved: ResolvedPaletteConfig = DEFAULT_PALETTE_CONFIG;\nlet version = 0;\n\nconst listeners = new Set<() => void>();\n\nfunction mergeSeed<T extends PaletteThemeSeed | PaletteCodeSeed>(\n base: T | undefined,\n patch: T | undefined,\n): T | undefined {\n if (!base) return patch;\n if (!patch) return base;\n\n return { ...base, ...patch };\n}\n\nfunction mergeInput(base: PaletteConfig, patch: PaletteConfig): PaletteConfig {\n const next: PaletteConfig = { ...base, ...patch };\n\n if (base.themes || patch.themes) {\n next.themes = {\n success: mergeSeed(base.themes?.success, patch.themes?.success),\n danger: mergeSeed(base.themes?.danger, patch.themes?.danger),\n warning: mergeSeed(base.themes?.warning, patch.themes?.warning),\n note: mergeSeed(base.themes?.note, patch.themes?.note),\n code: mergeSeed(base.themes?.code, patch.themes?.code),\n };\n }\n\n return next;\n}\n\nfunction isSameConfig(a: ResolvedPaletteConfig, b: ResolvedPaletteConfig) {\n return (\n a.hue === b.hue &&\n a.baseHue === b.baseHue &&\n a.saturation === b.saturation &&\n a.pastel === b.pastel &&\n a.contrastLevel === b.contrastLevel &&\n a.themes.code.saturation === b.themes.code.saturation &&\n (['success', 'danger', 'warning', 'note'] as const).every(\n (name) =>\n a.themes[name].hue === b.themes[name].hue &&\n a.themes[name].saturation === b.themes[name].saturation,\n )\n );\n}\n\n/**\n * Which fields are *explicitly set*, as an order-independent signature.\n *\n * Two configs can resolve to identical values yet differ in which of those values\n * are pinned rather than inherited — pinning `primary.saturation` to the number it\n * already inherited is the obvious case. That difference is invisible to\n * {@link isSameConfig} but visible through {@link getPaletteConfigInput}, so it has\n * to count as a change or a settings UI reading it would never re-render.\n */\nfunction pinSignature(config: PaletteConfig): string {\n const set = (value: unknown) => (value === undefined ? '0' : '1');\n\n return [\n set(config.hue),\n set(config.baseHue),\n set(config.saturation),\n set(config.pastel),\n set(config.contrastLevel),\n set(config.themes?.code?.saturation),\n ...(['success', 'danger', 'warning', 'note'] as const).flatMap((name) => [\n set(config.themes?.[name]?.hue),\n set(config.themes?.[name]?.saturation),\n ]),\n ].join('');\n}\n\nfunction commit(nextInput: PaletteConfig) {\n const nextResolved = resolveConfig(nextInput);\n\n // Bail before bumping the version when nothing observable moved, so re-applying\n // the same config — an inline `<Root palette={{ … }}>` literal on every\n // render, a StrictMode double render — costs nothing.\n if (\n isSameConfig(resolved, nextResolved) &&\n pinSignature(input) === pinSignature(nextInput)\n ) {\n return;\n }\n\n input = nextInput;\n resolved = nextResolved;\n version++;\n\n listeners.forEach((listener) => listener());\n}\n\n/**\n * Merge tuning into the current palette config.\n *\n * Merges, like `glaze.configure()`: omitted fields keep their current value.\n * The palette is rebuilt lazily on the next token read, and any mounted `<Root>`\n * re-injects the token block — no component re-render is involved, because every\n * color in the kit resolves through a CSS custom property.\n *\n * ```ts\n * setPaletteConfig({ hue: 200, themes: { danger: { hue: 12 } } });\n * ```\n *\n * Omitting a field keeps it; passing `undefined` **clears** it, so it goes back to\n * inheriting (per-theme) or to the shipped default (top level):\n *\n * ```ts\n * setPaletteConfig({ themes: { primary: { saturation: 90 } } }); // pin\n * setPaletteConfig({ themes: { primary: { saturation: undefined } } }); // inherit again\n * ```\n */\nexport function setPaletteConfig(config: PaletteConfig): void {\n commit(mergeInput(input, config));\n}\n\n/** Drop all tuning and restore the palette the kit ships with. */\nexport function resetPaletteConfig(): void {\n commit({});\n}\n\n/**\n * Force every token to re-resolve without changing the palette config.\n *\n * Only needed if you drive Glaze directly — `glaze.configure({ darkTone })` and\n * the like. Glaze invalidates its own caches, but the kit's token maps are\n * memoized against *this* module's version, so they need telling. Calling it\n * before the first paint is unnecessary; nothing has been resolved yet.\n */\nexport function invalidatePaletteTokens(): void {\n version++;\n listeners.forEach((listener) => listener());\n}\n\n/** The current config, with every field resolved to a concrete value. */\nexport function getPaletteConfig(): ResolvedPaletteConfig {\n return resolved;\n}\n\n/**\n * The config **as set**, sparse — omitted fields are the ones still inheriting.\n *\n * {@link getPaletteConfig} resolves everything to concrete values, which loses the\n * distinction between \"explicitly 80\" and \"80 because it follows the brand\". A\n * settings UI needs that distinction to show an inherited value as inherited, and\n * to offer a way back:\n *\n * ```ts\n * const pinned = getPaletteConfigInput().themes?.primary?.saturation !== undefined;\n *\n * // Re-link it to the brand by clearing the field.\n * setPaletteConfig({ themes: { primary: { saturation: undefined } } });\n * ```\n */\nexport function getPaletteConfigInput(): PaletteConfig {\n return input;\n}\n\n/**\n * Resolve a partial against the current config **without applying it**.\n *\n * Same merge semantics as {@link setPaletteConfig} — omitted fields keep their\n * current value, unset per-theme fields keep inheriting — but the store is not\n * touched and no listener fires. Used to render a palette the app is not\n * actually using, e.g. for a theme preview.\n */\nexport function resolvePaletteConfig(\n config?: PaletteConfig,\n): ResolvedPaletteConfig {\n if (!config) return resolved;\n\n return resolveConfig(mergeInput(input, config));\n}\n\n/**\n * Increments whenever the resolved config changes. The token caches in\n * `./palette.ts`, `./colors.ts` and `./index.ts` compare against it instead of\n * memoizing forever — the same idiom Glaze uses for its own config version.\n */\nexport function getPaletteVersion(): number {\n return version;\n}\n\n/** Subscribe to palette config changes. Returns an unsubscribe function. */\nexport function subscribePaletteConfig(listener: () => void): () => void {\n listeners.add(listener);\n\n return () => {\n listeners.delete(listener);\n };\n}\n\n// ============================================================================\n// React bindings\n// ============================================================================\n\n/**\n * Re-render on palette config changes. Returns the version, not the config, so\n * the snapshot is a primitive and React never warns about an uncached snapshot.\n */\nexport function usePaletteVersion(): number {\n return useSyncExternalStore(\n subscribePaletteConfig,\n getPaletteVersion,\n getPaletteVersion,\n );\n}\n\n/**\n * Read and tune the palette from React, `useState`-style.\n *\n * ```tsx\n * const [palette, setPalette] = usePaletteConfig();\n *\n * <HueSlider\n * value={palette.hue}\n * onChange={(hue) => setPalette({ hue })}\n * />\n * ```\n *\n * The config is global process state, so every consumer of this hook — and every\n * mounted `<Root>` — sees the same palette.\n */\nexport function usePaletteConfig(): readonly [\n ResolvedPaletteConfig,\n (config: PaletteConfig) => void,\n] {\n usePaletteVersion();\n\n return [getPaletteConfig(), setPaletteConfig];\n}\n"],"mappings":"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"}
|
package/dist/tokens/palette.d.ts
CHANGED
|
@@ -1,15 +1,55 @@
|
|
|
1
1
|
|
|
2
|
-
import {
|
|
3
|
-
import "@tenphi/
|
|
2
|
+
import { PaletteConfig } from "./palette-config.js";
|
|
3
|
+
import { Styles, Tokens } from "@tenphi/tasty";
|
|
4
|
+
import { GlazePalette, GlazeTheme } from "@tenphi/glaze";
|
|
4
5
|
|
|
5
6
|
//#region src/tokens/palette.d.ts
|
|
7
|
+
/** Which resolved scheme variant {@link renderPaletteTokens} should return. */
|
|
8
|
+
interface RenderPaletteOptions extends PaletteConfig {
|
|
9
|
+
/** Color scheme to resolve. Default: `'light'`. */
|
|
10
|
+
scheme?: 'light' | 'dark';
|
|
11
|
+
/** Resolve the high-contrast variant of that scheme. Default: `false`. */
|
|
12
|
+
highContrast?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Resolve Glaze palette tokens against the current palette config.
|
|
16
|
+
*
|
|
17
|
+
* Memoized against the config version (see `./palette-config.ts`), so repeated
|
|
18
|
+
* reads are free and `setPaletteConfig()` invalidates them. Resolution is
|
|
19
|
+
* deferred rather than done at module import, so host apps can call
|
|
20
|
+
* `setPaletteConfig(...)` / `glaze.configure(...)` after importing
|
|
21
|
+
* `@cube-dev/ui-kit` and still affect the first paint.
|
|
22
|
+
*
|
|
23
|
+
* Keys use `#name` syntax; values are state maps:
|
|
24
|
+
* '#surface': { '': 'oklch(...)', '@dark': 'oklch(...)', '@hc': 'oklch(...)' }
|
|
25
|
+
*/
|
|
6
26
|
declare function getPaletteTokens(): Styles;
|
|
27
|
+
/** The live `GlazePalette`. Rebuilt whenever the palette config changes. */
|
|
28
|
+
declare function getPalette(): GlazePalette;
|
|
29
|
+
/**
|
|
30
|
+
* The live theme behind the `code-*` tokens. Separate from {@link getPalette}
|
|
31
|
+
* because it carries its own saturation seed — see {@link CODE_COLORS}.
|
|
32
|
+
*/
|
|
33
|
+
declare function getCodeTheme(): GlazeTheme;
|
|
34
|
+
/**
|
|
35
|
+
* Resolve one scheme variant of a palette to flat, literal color values.
|
|
36
|
+
*
|
|
37
|
+
* Unlike {@link getPaletteTokens}, which emits state maps (`@dark` / `@hc`) for
|
|
38
|
+
* the whole document, this collapses the palette to the single variant you ask
|
|
39
|
+
* for. That is what makes a **region** preview possible: applied through a tasty
|
|
40
|
+
* `tokens` prop, the values override the inherited ones for that subtree only, so
|
|
41
|
+
* a dark or high-contrast theme can be shown inside a light page.
|
|
42
|
+
*
|
|
43
|
+
* Prefer `renderColorTokens()` from `./colors` unless you specifically want the
|
|
44
|
+
* palette without the legacy aliases.
|
|
45
|
+
*/
|
|
46
|
+
declare function renderPaletteTokens(options?: RenderPaletteOptions): Tokens;
|
|
7
47
|
/**
|
|
8
48
|
* Lazy proxy of {@link getPaletteTokens}. Prefer `getPaletteTokens()` in new
|
|
9
|
-
* code.
|
|
10
|
-
* config
|
|
49
|
+
* code. Property / enumeration access always reflects the current palette
|
|
50
|
+
* config.
|
|
11
51
|
*/
|
|
12
52
|
declare const PALETTE_TOKENS: Styles;
|
|
13
53
|
//#endregion
|
|
14
|
-
export { PALETTE_TOKENS, getPaletteTokens };
|
|
54
|
+
export { PALETTE_TOKENS, RenderPaletteOptions, getCodeTheme, getPalette, getPaletteTokens, renderPaletteTokens };
|
|
15
55
|
//# sourceMappingURL=palette.d.ts.map
|