@cube-dev/ui-kit 0.152.0 → 0.153.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (509) hide show
  1. package/README.md +17 -0
  2. package/dist/CHANGELOG.md +94 -0
  3. package/dist/README.md +17 -0
  4. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  5. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  6. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  7. package/dist/_internal/hooks/use-event.js +1 -1
  8. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  9. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  10. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  11. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  12. package/dist/_internal/hooks/use-warn.js +1 -1
  13. package/dist/components/Block.js +1 -1
  14. package/dist/components/CollectionItem.js +1 -1
  15. package/dist/components/GlobalStyles.js +3 -2
  16. package/dist/components/GlobalStyles.js.map +1 -1
  17. package/dist/components/GridProvider.js +1 -1
  18. package/dist/components/HiddenInput.js +1 -1
  19. package/dist/components/Root.d.ts +16 -0
  20. package/dist/components/Root.js +7 -3
  21. package/dist/components/Root.js.map +1 -1
  22. package/dist/components/actions/Action/Action.js +1 -1
  23. package/dist/components/actions/Banner/Banner.js +1 -1
  24. package/dist/components/actions/Button/Button.js +1 -1
  25. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  26. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  27. package/dist/components/actions/ButtonSplit/context.js +1 -1
  28. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  29. package/dist/components/actions/CommandMenu/styled.js +1 -1
  30. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  31. package/dist/components/actions/ItemActionContext.js +1 -1
  32. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  33. package/dist/components/actions/Link/Link.js +1 -1
  34. package/dist/components/actions/Menu/Menu.js +1 -1
  35. package/dist/components/actions/Menu/MenuItem.js +1 -1
  36. package/dist/components/actions/Menu/MenuSection.js +1 -1
  37. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  38. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  39. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  40. package/dist/components/actions/Menu/context.js +1 -1
  41. package/dist/components/actions/Menu/styled.js +1 -1
  42. package/dist/components/actions/index.js +1 -1
  43. package/dist/components/actions/use-action.js +1 -1
  44. package/dist/components/actions/use-anchored-menu.js +1 -1
  45. package/dist/components/actions/use-context-menu.js +1 -1
  46. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  47. package/dist/components/content/Alert/Alert.js +1 -1
  48. package/dist/components/content/Alert/use-alert.js +1 -1
  49. package/dist/components/content/Avatar/Avatar.js +1 -1
  50. package/dist/components/content/Badge/Badge.js +1 -1
  51. package/dist/components/content/Card/Card.js +1 -1
  52. package/dist/components/content/Content.js +1 -1
  53. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  54. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  55. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  56. package/dist/components/content/Divider.js +1 -1
  57. package/dist/components/content/Footer.js +1 -1
  58. package/dist/components/content/Header.js +1 -1
  59. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  60. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  61. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  62. package/dist/components/content/Item/Item.js +1 -1
  63. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  64. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  65. package/dist/components/content/Layout/GridLayout.js +1 -1
  66. package/dist/components/content/Layout/Layout.js +1 -1
  67. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  68. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  69. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  70. package/dist/components/content/Layout/LayoutContent.js +1 -1
  71. package/dist/components/content/Layout/LayoutContext.js +1 -1
  72. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  73. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  74. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  75. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  76. package/dist/components/content/Layout/LayoutPane.js +1 -1
  77. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  78. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  79. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  80. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  81. package/dist/components/content/Layout/index.js +1 -1
  82. package/dist/components/content/Layout/utils.js +1 -1
  83. package/dist/components/content/Paragraph.js +1 -1
  84. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  85. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  86. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  87. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  88. package/dist/components/content/Result/Result.js +1 -1
  89. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  90. package/dist/components/content/Tag/Tag.js +1 -1
  91. package/dist/components/content/Text.js +1 -1
  92. package/dist/components/content/TextItem/TextItem.js +1 -1
  93. package/dist/components/content/Title.js +1 -1
  94. package/dist/components/content/Tree/Tree.js +1 -1
  95. package/dist/components/content/Tree/TreeNode.js +1 -1
  96. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  97. package/dist/components/content/Tree/styled.js +1 -1
  98. package/dist/components/content/Tree/tree-index.js +1 -1
  99. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  100. package/dist/components/content/Tree/use-load-data.js +1 -1
  101. package/dist/components/content/highlightText.js +1 -1
  102. package/dist/components/content/use-auto-tooltip.js +1 -1
  103. package/dist/components/fields/Checkbox/Checkbox.d.ts +2 -2
  104. package/dist/components/fields/Checkbox/Checkbox.js +2 -2
  105. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  106. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  107. package/dist/components/fields/Checkbox/context.js +1 -1
  108. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  109. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  110. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  111. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  112. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  113. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  114. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  115. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  116. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  117. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  118. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  119. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  120. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  121. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  122. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  123. package/dist/components/fields/DatePicker/props.js +1 -1
  124. package/dist/components/fields/DatePicker/utils.js +1 -1
  125. package/dist/components/fields/FileInput/FileInput.js +1 -1
  126. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  127. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  128. package/dist/components/fields/Input/Input.js +1 -1
  129. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  130. package/dist/components/fields/ListBox/ListBox.js +1 -1
  131. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  132. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  133. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  134. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  135. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  136. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  137. package/dist/components/fields/Picker/Picker.js +1 -1
  138. package/dist/components/fields/RadioGroup/Radio.js +2 -2
  139. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  140. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  141. package/dist/components/fields/RadioGroup/context.js +1 -1
  142. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  143. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  144. package/dist/components/fields/Select/Select.js +1 -1
  145. package/dist/components/fields/Slider/Gradation.js +1 -1
  146. package/dist/components/fields/Slider/HueSlider.js +1 -1
  147. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  148. package/dist/components/fields/Slider/Slider.js +1 -1
  149. package/dist/components/fields/Slider/SliderBase.js +1 -1
  150. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  151. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  152. package/dist/components/fields/Slider/elements.js +1 -1
  153. package/dist/components/fields/Slider/index.js +1 -1
  154. package/dist/components/fields/Switch/Switch.d.ts +2 -2
  155. package/dist/components/fields/Switch/Switch.js +1 -1
  156. package/dist/components/fields/Switch/Switch.js.map +1 -1
  157. package/dist/components/fields/TextArea/TextArea.js +1 -1
  158. package/dist/components/fields/TextInput/TextInput.js +1 -1
  159. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  160. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  161. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  162. package/dist/components/form/Form/Field.js +1 -1
  163. package/dist/components/form/Form/Form.js +1 -1
  164. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  165. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  166. package/dist/components/form/Form/SubmitError.js +1 -1
  167. package/dist/components/form/Form/index.js +1 -1
  168. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  169. package/dist/components/form/Form/use-field/use-field.js +1 -1
  170. package/dist/components/form/Form/use-form.js +1 -1
  171. package/dist/components/form/Form/validation.js +1 -1
  172. package/dist/components/form/Label.js +1 -1
  173. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  174. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  175. package/dist/components/form/validation/use-validation-props.js +1 -1
  176. package/dist/components/form/wrapper.js +1 -1
  177. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  178. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  179. package/dist/components/layout/Board/Board.js +1 -1
  180. package/dist/components/layout/Board/BoardProvider.js +1 -1
  181. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  182. package/dist/components/layout/Board/Widget.js +1 -1
  183. package/dist/components/layout/Board/WidgetHost.js +1 -1
  184. package/dist/components/layout/Board/board-context.js +1 -1
  185. package/dist/components/layout/Board/board-store.js +1 -1
  186. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  187. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  188. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  189. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  190. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  191. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  192. package/dist/components/layout/Board/index.js +1 -1
  193. package/dist/components/layout/Board/responsive-utils.js +1 -1
  194. package/dist/components/layout/Board/use-board-layout.js +1 -1
  195. package/dist/components/layout/Board/use-board-registry.js +1 -1
  196. package/dist/components/layout/Flex.js +1 -1
  197. package/dist/components/layout/Flow.js +1 -1
  198. package/dist/components/layout/Grid.js +1 -1
  199. package/dist/components/layout/Panel.js +1 -1
  200. package/dist/components/layout/Prefix.js +1 -1
  201. package/dist/components/layout/ResizablePanel.js +1 -1
  202. package/dist/components/layout/Space.js +1 -1
  203. package/dist/components/layout/Suffix.js +1 -1
  204. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  205. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  206. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  207. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  208. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  209. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  210. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  211. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  212. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  213. package/dist/components/navigation/Tabs/styled.js +1 -1
  214. package/dist/components/navigation/Tabs/types.js +1 -1
  215. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  216. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  217. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  218. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  219. package/dist/components/other/Calendar/Calendar.js +1 -1
  220. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  221. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  222. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  223. package/dist/components/other/CubeLogo/CubeLogo.d.ts +10 -3
  224. package/dist/components/other/CubeLogo/CubeLogo.js +31 -4
  225. package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
  226. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  227. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  228. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  229. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  230. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  231. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  232. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  233. package/dist/components/overlays/Dialog/context.js +1 -1
  234. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  235. package/dist/components/overlays/Modal/Modal.js +1 -1
  236. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  237. package/dist/components/overlays/Modal/Overlay.js +1 -1
  238. package/dist/components/overlays/Modal/Popover.js +1 -1
  239. package/dist/components/overlays/Modal/Tray.js +1 -1
  240. package/dist/components/overlays/Modal/Underlay.js +1 -1
  241. package/dist/components/overlays/Notifications/Notification.js +1 -1
  242. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  243. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  244. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  245. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  246. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  247. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  248. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  249. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  250. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  251. package/dist/components/overlays/Notifications/index.js +1 -1
  252. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  253. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  254. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  255. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  256. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  257. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  258. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  259. package/dist/components/overlays/Toast/index.js +1 -1
  260. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  261. package/dist/components/overlays/Toast/useToast.js +1 -1
  262. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  263. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  264. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  265. package/dist/components/overlays/Tooltip/context.js +1 -1
  266. package/dist/components/portal/Portal.js +1 -1
  267. package/dist/components/portal/PortalProvider.js +1 -1
  268. package/dist/components/portal/usePortal.js +1 -1
  269. package/dist/components/shared/DraggableCollection.js +1 -1
  270. package/dist/components/shared/InvalidIcon.js +1 -1
  271. package/dist/components/shared/ValidIcon.js +1 -1
  272. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  273. package/dist/components/status/Spin/Cube.js +1 -1
  274. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  275. package/dist/components/status/Spin/Spin.js +1 -1
  276. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  277. package/dist/data/item-themes.js +1 -1
  278. package/dist/data/themes.d.ts +5 -5
  279. package/dist/data/themes.js +6 -6
  280. package/dist/data/themes.js.map +1 -1
  281. package/dist/eslint-plugin/defaults.generated.js +1 -1
  282. package/dist/eslint-plugin/index.js +1 -1
  283. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  284. package/dist/i18n/I18nProvider.js +1 -1
  285. package/dist/i18n/createFormatter.js +1 -1
  286. package/dist/i18n/index.js +1 -1
  287. package/dist/i18n/instance.js +1 -1
  288. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  289. package/dist/i18n/locales/en-US/uikit.js +1 -1
  290. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  291. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  292. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  293. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  294. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  295. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  296. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  297. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  298. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  299. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  300. package/dist/i18n/locales.js +1 -1
  301. package/dist/i18n/useFormatter.js +1 -1
  302. package/dist/i18n/useI18n.js +1 -1
  303. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  304. package/dist/icons/AdjustmentsIcon.js +1 -1
  305. package/dist/icons/AiIcon.js +1 -1
  306. package/dist/icons/AreaChartIcon.js +1 -1
  307. package/dist/icons/BackwardIcon.js +1 -1
  308. package/dist/icons/BarChartIcon.js +1 -1
  309. package/dist/icons/BellFilledIcon.js +1 -1
  310. package/dist/icons/BellIcon.js +1 -1
  311. package/dist/icons/BooleanIcon.js +1 -1
  312. package/dist/icons/CalendarEditIcon.js +1 -1
  313. package/dist/icons/CalendarIcon.js +1 -1
  314. package/dist/icons/CaretDownIcon.js +1 -1
  315. package/dist/icons/CaretUpIcon.js +1 -1
  316. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  317. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  318. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  319. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  320. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  321. package/dist/icons/ChartBarLineIcon.js +1 -1
  322. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  323. package/dist/icons/ChartBarStackedIcon.js +1 -1
  324. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  325. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  326. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  327. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  328. package/dist/icons/ChartBubbleIcon.js +1 -1
  329. package/dist/icons/ChartDonut2Icon.js +1 -1
  330. package/dist/icons/ChartFunnelIcon.js +1 -1
  331. package/dist/icons/ChartHeatmapIcon.js +1 -1
  332. package/dist/icons/ChartKPIIcon.js +1 -1
  333. package/dist/icons/ChartPie2Icon.js +1 -1
  334. package/dist/icons/ChartScatterIcon.js +1 -1
  335. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  336. package/dist/icons/CheckCircleIcon.js +1 -1
  337. package/dist/icons/CheckIcon.js +1 -1
  338. package/dist/icons/CircleFilledIcon.js +1 -1
  339. package/dist/icons/ClearIcon.js +1 -1
  340. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  341. package/dist/icons/CloseCircleIcon.js +1 -1
  342. package/dist/icons/CloseIcon.js +1 -1
  343. package/dist/icons/CodeIcon.js +1 -1
  344. package/dist/icons/ColumnTotalIcon.js +1 -1
  345. package/dist/icons/CopyIcon.js +1 -1
  346. package/dist/icons/CountIcon.js +1 -1
  347. package/dist/icons/CubeIcon.js +1 -1
  348. package/dist/icons/CubePauseIcon.js +1 -1
  349. package/dist/icons/CubePlayIcon.js +1 -1
  350. package/dist/icons/CurrencyDollarIcon.js +1 -1
  351. package/dist/icons/DangerIcon.js +1 -1
  352. package/dist/icons/DashboardIcon.js +1 -1
  353. package/dist/icons/DatabaseIcon.js +1 -1
  354. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  355. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  356. package/dist/icons/DirectionIcon.js +1 -1
  357. package/dist/icons/DonutIcon.js +1 -1
  358. package/dist/icons/DownIcon.js +1 -1
  359. package/dist/icons/EditIcon.js +1 -1
  360. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  361. package/dist/icons/ExclamationCircleIcon.js +1 -1
  362. package/dist/icons/ExclamationIcon.js +1 -1
  363. package/dist/icons/EyeIcon.js +1 -1
  364. package/dist/icons/EyeInvisibleIcon.js +1 -1
  365. package/dist/icons/FilterIcon.js +1 -1
  366. package/dist/icons/FolderFilledIcon.js +1 -1
  367. package/dist/icons/FolderIcon.js +1 -1
  368. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  369. package/dist/icons/FolderOpenIcon.js +1 -1
  370. package/dist/icons/ForwardIcon.js +1 -1
  371. package/dist/icons/GripVerticalIcon.js +1 -1
  372. package/dist/icons/HierarchyIcon.js +1 -1
  373. package/dist/icons/HierarchyOpenIcon.js +1 -1
  374. package/dist/icons/Icon.js +1 -1
  375. package/dist/icons/InfoCircleIcon.js +1 -1
  376. package/dist/icons/InfoIcon.js +1 -1
  377. package/dist/icons/KeyIcon.js +1 -1
  378. package/dist/icons/LeftIcon.js +1 -1
  379. package/dist/icons/LineChartIcon.js +1 -1
  380. package/dist/icons/LoadingIcon.js +1 -1
  381. package/dist/icons/LockFilledIcon.js +1 -1
  382. package/dist/icons/LockIcon.js +1 -1
  383. package/dist/icons/MoreIcon.js +1 -1
  384. package/dist/icons/NotAllowedIcon.js +1 -1
  385. package/dist/icons/Number123Icon.js +1 -1
  386. package/dist/icons/NumberIcon.js +1 -1
  387. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  388. package/dist/icons/PauseCircleIcon.js +1 -1
  389. package/dist/icons/PauseIcon.js +1 -1
  390. package/dist/icons/PercentageIcon.js +1 -1
  391. package/dist/icons/PieChartIcon.js +1 -1
  392. package/dist/icons/PlayCircleIcon.js +1 -1
  393. package/dist/icons/PlayIcon.js +1 -1
  394. package/dist/icons/PlusIcon.js +1 -1
  395. package/dist/icons/ProgressBarIcon.js +1 -1
  396. package/dist/icons/ReloadIcon.js +1 -1
  397. package/dist/icons/ReportIcon.js +1 -1
  398. package/dist/icons/ReturnIcon.js +1 -1
  399. package/dist/icons/RightIcon.js +1 -1
  400. package/dist/icons/RowTotalsIcon.js +1 -1
  401. package/dist/icons/SchemeIcon.js +1 -1
  402. package/dist/icons/SearchIcon.js +1 -1
  403. package/dist/icons/SemanticQueryIcon.js +1 -1
  404. package/dist/icons/SettingsIcon.js +1 -1
  405. package/dist/icons/ShieldFilledIcon.js +1 -1
  406. package/dist/icons/ShieldIcon.js +1 -1
  407. package/dist/icons/SlashIcon.js +1 -1
  408. package/dist/icons/SparklesIcon.js +1 -1
  409. package/dist/icons/SqlIcon.js +1 -1
  410. package/dist/icons/StatsIcon.js +1 -1
  411. package/dist/icons/StopIcon.js +1 -1
  412. package/dist/icons/StringIcon.js +1 -1
  413. package/dist/icons/SubtotalsIcon.js +1 -1
  414. package/dist/icons/SwitchIcon.js +1 -1
  415. package/dist/icons/TableIcon.js +1 -1
  416. package/dist/icons/ThumbsDownIcon.js +1 -1
  417. package/dist/icons/ThumbsUpIcon.js +1 -1
  418. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  419. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  420. package/dist/icons/ThunderboltIcon.js +1 -1
  421. package/dist/icons/TimeIcon.js +1 -1
  422. package/dist/icons/TrashIcon.js +1 -1
  423. package/dist/icons/UnlockIcon.js +1 -1
  424. package/dist/icons/UpIcon.js +1 -1
  425. package/dist/icons/UserGroupIcon.js +1 -1
  426. package/dist/icons/UserIcon.js +1 -1
  427. package/dist/icons/UserLockIcon.js +1 -1
  428. package/dist/icons/ViewIcon.js +1 -1
  429. package/dist/icons/WarningFilledIcon.js +1 -1
  430. package/dist/icons/WarningIcon.js +1 -1
  431. package/dist/icons/wrap-icon.js +1 -1
  432. package/dist/index.d.ts +6 -5
  433. package/dist/index.js +6 -5
  434. package/dist/index.js.map +1 -1
  435. package/dist/provider.js +1 -1
  436. package/dist/providers/TrackingProvider.js +1 -1
  437. package/dist/providers/navigationAdapter.default.js +1 -1
  438. package/dist/shared/form.d.ts +27 -1
  439. package/dist/shared/index.d.ts +1 -1
  440. package/dist/tokens/base.js +1 -1
  441. package/dist/tokens/colors.d.ts +41 -2
  442. package/dist/tokens/colors.js +77 -9
  443. package/dist/tokens/colors.js.map +1 -1
  444. package/dist/tokens/index.d.ts +3 -2
  445. package/dist/tokens/index.js +23 -16
  446. package/dist/tokens/index.js.map +1 -1
  447. package/dist/tokens/layout.js +1 -1
  448. package/dist/tokens/lazy-styles.js +10 -6
  449. package/dist/tokens/lazy-styles.js.map +1 -1
  450. package/dist/tokens/palette-config.d.ts +222 -0
  451. package/dist/tokens/palette-config.js +309 -0
  452. package/dist/tokens/palette-config.js.map +1 -0
  453. package/dist/tokens/palette.d.ts +45 -5
  454. package/dist/tokens/palette.js +578 -405
  455. package/dist/tokens/palette.js.map +1 -1
  456. package/dist/tokens/shadows.js +1 -1
  457. package/dist/tokens/sizes.js +1 -1
  458. package/dist/tokens/spacing.js +1 -1
  459. package/dist/tokens/typography.js +1 -1
  460. package/dist/utils/ResizeSensor.js +1 -1
  461. package/dist/utils/is-dev-env.js +1 -1
  462. package/dist/utils/modules.js +1 -1
  463. package/dist/utils/promise.js +1 -1
  464. package/dist/utils/raf.js +1 -1
  465. package/dist/utils/random.js +1 -1
  466. package/dist/utils/range.js +1 -1
  467. package/dist/utils/react/RenderCache.js +1 -1
  468. package/dist/utils/react/Slots.js +1 -1
  469. package/dist/utils/react/chain.js +1 -1
  470. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  471. package/dist/utils/react/index.js +1 -1
  472. package/dist/utils/react/interactions.js +1 -1
  473. package/dist/utils/react/isTextOnly.js +1 -1
  474. package/dist/utils/react/mapProps.js +1 -1
  475. package/dist/utils/react/mergeProps.js +1 -1
  476. package/dist/utils/react/nullableValue.js +1 -1
  477. package/dist/utils/react/resolveIcon.js +1 -1
  478. package/dist/utils/react/sharedStore.js +1 -1
  479. package/dist/utils/react/useCombinedRefs.js +1 -1
  480. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  481. package/dist/utils/react/useEventBus.js +1 -1
  482. package/dist/utils/react/useId.js +1 -1
  483. package/dist/utils/react/useIsDarwin.js +1 -1
  484. package/dist/utils/react/useKeySymbols.js +1 -1
  485. package/dist/utils/react/useLayoutEffect.js +1 -1
  486. package/dist/utils/react/useLocalStorage.js +1 -1
  487. package/dist/utils/react/useMergeStyles.js +1 -1
  488. package/dist/utils/react/usePopoverSync.js +1 -1
  489. package/dist/utils/react/useQaProps.js +1 -1
  490. package/dist/utils/react/useViewportSize.js +1 -1
  491. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  492. package/dist/utils/selection.js +1 -1
  493. package/dist/utils/styles.js +1 -1
  494. package/dist/utils/tree.js +1 -1
  495. package/dist/utils/warnings.js +1 -1
  496. package/dist/version.js +3 -3
  497. package/docs/Colors.md +4 -0
  498. package/docs/Theming.md +375 -0
  499. package/docs/Usage.md +30 -3
  500. package/docs/components/Root.md +1 -0
  501. package/docs/components/other/CubeLogo.md +27 -1
  502. package/docs/glaze/api.md +156 -8
  503. package/docs/glaze/methodology.md +21 -1
  504. package/docs/glaze/okhst.md +13 -0
  505. package/docs/tasty/README.md +1 -0
  506. package/docs/tasty/ai-agents.md +206 -0
  507. package/docs/tasty/injector.md +15 -0
  508. package/docs/tasty/react-api.md +21 -2
  509. package/package.json +3 -3
@@ -1,4 +1,5 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.152.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.153.0 | Cube Dev Team */
2
+ import { getPaletteConfig, getPaletteVersion, resolvePaletteConfig } from "./palette-config.js";
2
3
  import { lazyStyles } from "./lazy-styles.js";
3
4
  import { glaze } from "@tenphi/glaze";
4
5
 
@@ -13,317 +14,144 @@ import { glaze } from "@tenphi/glaze";
13
14
  *
14
15
  * The `@dark` and `@hc` state aliases are wired up globally in
15
16
  * `src/components/Root.tsx` (see `setGlobalPredefinedStates`).
17
+ *
18
+ * This module owns the *recipe* — which colors exist and how each one is
19
+ * positioned relative to its base. The *seeds* it is built from (hue,
20
+ * saturation, pastel, contrast level) live in `./palette-config.ts` and are
21
+ * tunable at runtime; `buildPalette()` below is a pure function of them.
16
22
  */
17
- const PURPLE_HUE = 280.3;
18
- const SUCCESS_HUE = 156.9;
19
- const DANGER_HUE = 23.1;
20
- const WARNING_HUE = 84.3;
21
- const NOTE_HUE = 302.3;
22
- /** Seed saturation; per-color saturation factors below are 0–1 of this seed. */
23
- const SEED_SATURATION = 80;
24
23
  const TEXT_TONE = -98;
25
24
  const TEXT_SOFT_TONE = -72;
26
25
  const TEXT_SOFT2_TONE = -52;
27
26
  const SURFACE_2_TEXT_OFFSET = 2;
28
27
  const SURFACE_3_TEXT_OFFSET = 4;
29
- glaze.configure({
30
- states: {
31
- dark: "@dark",
32
- highContrast: "@hc"
33
- },
34
- modes: {
35
- dark: true,
36
- highContrast: true
37
- },
38
- darkTone: [14, 95],
39
- darkDesaturation: 0
40
- });
41
- const defaultTheme = glaze(PURPLE_HUE, SEED_SATURATION);
42
- defaultTheme.colors({
43
- surface: {
44
- tone: 100,
45
- saturation: .12
46
- },
47
- "surface-2": {
48
- base: "surface",
49
- tone: "-2",
50
- saturation: .1,
51
- inherit: false
52
- },
53
- "surface-3": {
54
- base: "surface",
55
- tone: "-4",
56
- saturation: .1,
57
- inherit: false
58
- },
59
- "surface-4": {
60
- base: "surface",
61
- tone: "-6",
62
- saturation: .1,
63
- inherit: false
64
- },
65
- "surface-text": {
66
- base: "surface",
67
- tone: `${TEXT_TONE - 2}`,
68
- saturation: .2,
69
- contrast: ["AA", "AAA"]
70
- },
71
- "surface-text-soft": {
72
- base: "surface",
73
- tone: `${TEXT_SOFT_TONE - 2}`,
74
- saturation: .2,
75
- contrast: ["AA", "AAA"],
76
- inherit: false
77
- },
78
- "surface-text-soft-2": {
79
- base: "surface",
80
- tone: `${TEXT_SOFT2_TONE - 2}`,
81
- saturation: .2,
82
- contrast: ["AA", "AAA"],
83
- inherit: false
84
- },
85
- "surface-2-text": {
86
- base: "surface-2",
87
- tone: `${TEXT_TONE + SURFACE_2_TEXT_OFFSET}`,
88
- saturation: .2,
89
- contrast: ["AA", "AAA"],
90
- inherit: false
91
- },
92
- "surface-2-text-soft": {
93
- base: "surface-2",
94
- tone: `${TEXT_SOFT_TONE + SURFACE_2_TEXT_OFFSET}`,
95
- saturation: .2,
96
- contrast: ["AA", "AAA"],
97
- inherit: false
98
- },
99
- "surface-3-text": {
100
- base: "surface-3",
101
- tone: `${TEXT_TONE + SURFACE_3_TEXT_OFFSET}`,
102
- saturation: .2,
103
- contrast: ["AA", "AAA"],
104
- inherit: false
105
- },
106
- "surface-3-text-soft": {
107
- base: "surface-3",
108
- tone: `${TEXT_SOFT_TONE + SURFACE_3_TEXT_OFFSET}`,
109
- saturation: .2,
110
- contrast: ["AA", "AAA"],
111
- inherit: false
112
- },
113
- border: {
114
- base: "surface",
115
- tone: ["-10", "-20"],
116
- saturation: .175
117
- },
118
- placeholder: {
119
- base: "surface",
120
- tone: "-33",
121
- saturation: .175,
122
- inherit: false
123
- },
124
- focus: {
125
- base: "surface",
126
- tone: "-29",
127
- saturation: .8625,
128
- inherit: false
129
- },
130
- disabled: {
131
- tone: 80.8,
132
- saturation: .4,
133
- inherit: false
134
- },
135
- "disabled-surface": {
136
- base: "surface",
137
- tone: "-3.5",
138
- saturation: .2,
139
- inherit: false
140
- },
141
- "disabled-surface-text": {
142
- base: "surface",
143
- tone: "-23",
144
- saturation: .3,
145
- inherit: false
146
- },
147
- "surface-inverse": {
148
- tone: 12,
149
- saturation: .475,
150
- mode: "fixed",
151
- inherit: false
152
- },
153
- "accent-surface-text": {
154
- tone: 100,
155
- mode: "fixed"
156
- },
157
- "accent-surface": {
158
- base: "accent-surface-text",
159
- tone: "-49",
160
- contrast: ["AA", "AAA"],
161
- mode: "fixed"
162
- },
163
- "accent-surface-2": {
164
- base: "accent-surface-text",
165
- tone: "-52",
166
- contrast: ["AA", "AAA"],
167
- mode: "fixed"
168
- },
169
- "accent-surface-3": {
170
- base: "accent-surface-text",
171
- tone: "-55",
172
- contrast: ["AA", "AAA"],
173
- mode: "fixed"
174
- },
175
- "accent-surface-hover": {
176
- base: "accent-surface-text",
177
- tone: "-58",
178
- contrast: ["AA", "AAA"],
179
- mode: "fixed"
180
- },
181
- "accent-surface-border": {
182
- base: "accent-surface",
183
- tone: "+13",
184
- mode: "fixed"
185
- },
186
- "accent-selected-fill": {
187
- type: "mix",
188
- base: "surface",
189
- target: "accent-surface",
190
- value: 9,
191
- space: "srgb"
192
- },
193
- "accent-text": {
194
- base: "accent-selected-fill",
195
- tone: "-49",
196
- saturation: 1,
197
- contrast: [6, 11]
198
- },
199
- "accent-text-soft": {
200
- base: "accent-selected-fill",
201
- tone: "-49",
202
- saturation: 1,
203
- contrast: ["AA", "AAA"]
204
- },
205
- "accent-icon": {
206
- base: "surface",
207
- tone: "-38",
208
- saturation: .9375
209
- },
210
- "accent-disabled-surface": {
211
- base: "surface",
212
- tone: "-13",
213
- saturation: .5,
214
- mode: "fixed"
215
- },
216
- "accent-disabled-surface-text": {
217
- base: "accent-disabled-surface",
218
- tone: "max",
219
- saturation: .4,
220
- mode: "fixed"
221
- },
28
+ const CODE_STRING_HUE = 280.3;
29
+ /**
30
+ * Saturation factor of the neutral `surface`.
31
+ *
32
+ * Shared with the code theme, which mirrors `surface` to solve its contrast floors
33
+ * against the real page background — the two must not drift apart.
34
+ */
35
+ const SURFACE_SATURATION = .12;
36
+ const TINTED_SURFACE_SATURATION = .2;
37
+ const TINTED_SURFACE_TONE_OFFSET = 2;
38
+ /**
39
+ * Syntax highlighting for `PrismCode`, as its own theme.
40
+ *
41
+ * A small palette of *adaptive* colored tokens. Each one is anchored to `surface`
42
+ * with a relative tone plus an `['AA','AAA']` readability floor, so it stays legible
43
+ * in light, dark and high contrast. Hues mirror the long-standing PrismCode
44
+ * reference (pink keywords / pink functions / purple strings / green numbers / gray
45
+ * comments); `code-attribute` keeps cyan for HTML attribute names, CSS properties
46
+ * and selectors, while HTML/XML tag names reuse `code-keyword`. Diff insertion and
47
+ * deletion reuse the `success-*` / `danger-*` ramps instead.
48
+ *
49
+ * Two things are deliberately static here. Every hue is an absolute literal, so a
50
+ * re-seeded brand cannot rotate the syntax palette — a green brand would otherwise
51
+ * collide `code-string` with `code-number` (156°). And these factors are relative to
52
+ * the *code* theme's own seed (`themes.code.saturation`), not the palette-level one,
53
+ * so tuning the app's saturation cannot wash out a code block.
54
+ *
55
+ * That separate seed is the only reason these live outside the default theme: a
56
+ * theme colour can never exceed its own seed, and four of these sit at factor `1.0`,
57
+ * so they could not hold their chroma inside a default theme seeded below 80.
58
+ */
59
+ const CODE_COLORS = {
222
60
  "code-comment": {
223
61
  base: "surface",
224
62
  hue: 280,
225
63
  saturation: .1,
226
64
  tone: "-50",
227
- contrast: ["AA", "AAA"],
228
- inherit: false
65
+ contrast: ["AA", "AAA"]
229
66
  },
230
67
  "code-punctuation": {
231
68
  base: "surface",
232
69
  hue: 348,
233
70
  saturation: .4,
234
71
  tone: "-50",
235
- contrast: ["AA", "AAA"],
236
- inherit: false
72
+ contrast: ["AA", "AAA"]
237
73
  },
238
74
  "code-keyword": {
239
75
  base: "surface",
240
76
  hue: 348,
241
77
  saturation: 1,
242
78
  tone: "-54",
243
- contrast: ["AA", "AAA"],
244
- inherit: false
79
+ contrast: ["AA", "AAA"]
245
80
  },
246
81
  "code-string": {
247
82
  base: "surface",
248
- hue: PURPLE_HUE,
83
+ hue: CODE_STRING_HUE,
249
84
  saturation: 1,
250
85
  tone: "-50",
251
- contrast: ["AA", "AAA"],
252
- inherit: false
86
+ contrast: ["AA", "AAA"]
253
87
  },
254
88
  "code-number": {
255
89
  base: "surface",
256
90
  hue: 156,
257
91
  saturation: .9,
258
92
  tone: "-50",
259
- contrast: ["AA", "AAA"],
260
- inherit: false
93
+ contrast: ["AA", "AAA"]
261
94
  },
262
95
  "code-function": {
263
96
  base: "surface",
264
97
  hue: 348,
265
98
  saturation: 1,
266
99
  tone: "-54",
267
- contrast: ["AA", "AAA"],
268
- inherit: false
100
+ contrast: ["AA", "AAA"]
269
101
  },
270
102
  "code-attribute": {
271
103
  base: "surface",
272
104
  hue: 200,
273
105
  saturation: 1,
274
106
  tone: "-50",
275
- contrast: ["AA", "AAA"],
276
- inherit: false
277
- },
278
- "loading-face-1": {
279
- base: "surface",
280
- tone: "-2",
281
- saturation: .3,
282
- inherit: false
283
- },
284
- "loading-face-2": {
285
- base: "surface",
286
- tone: "-9",
287
- saturation: .62,
288
- inherit: false
289
- },
290
- "loading-face-3": {
291
- base: "surface",
292
- tone: "-21",
293
- saturation: .66,
294
- inherit: false
295
- },
296
- "shadow-sm": {
297
- type: "shadow",
298
- bg: "surface",
299
- fg: "surface-text",
300
- intensity: 5,
301
- inherit: false
302
- },
303
- "shadow-md": {
304
- type: "shadow",
305
- bg: "surface",
306
- fg: "surface-text",
307
- intensity: 10,
308
- inherit: false
107
+ contrast: ["AA", "AAA"]
108
+ }
109
+ };
110
+ /**
111
+ * Build the standalone theme the `code-*` tokens live in.
112
+ *
113
+ * Its seed is the code saturation, so {@link CODE_COLORS} keeps its authored factors
114
+ * verbatim and resolves identically at any palette saturation. The mirrored `surface`
115
+ * is an implementation detail — it exists only as the contrast base, and is filtered
116
+ * out of the emitted tokens by {@link pickCodeTokens}.
117
+ */
118
+ function buildCodeTheme(config, instanceConfig) {
119
+ const codeSaturation = config.themes.code.saturation;
120
+ const theme = glaze(config.hue, codeSaturation, instanceConfig);
121
+ let mirrorFactor = SURFACE_SATURATION * (config.saturation / codeSaturation);
122
+ if (mirrorFactor > 1) {
123
+ console.warn(`[cube-ui-kit] themes.code.saturation (${codeSaturation}) is too low for saturation ${config.saturation}: the mirrored code surface would need a factor of ${mirrorFactor.toFixed(3)}. Clamped to 1; raise the code saturation to keep syntax contrast accurate.`);
124
+ mirrorFactor = 1;
125
+ }
126
+ theme.colors({
127
+ surface: {
128
+ tone: 100,
129
+ saturation: mirrorFactor
130
+ },
131
+ ...CODE_COLORS
132
+ });
133
+ return theme;
134
+ }
135
+ /** Drop the mirrored `surface`, keeping only the `code-*` tokens. */
136
+ function pickCodeTokens(tokens) {
137
+ const out = {};
138
+ for (const name of Object.keys(tokens)) if (name.startsWith("code-") || name.startsWith("#code-")) out[name] = tokens[name];
139
+ return out;
140
+ }
141
+ glaze.configure({
142
+ states: {
143
+ dark: "@dark",
144
+ highContrast: "@hc"
309
145
  },
310
- "shadow-lg": {
311
- type: "shadow",
312
- bg: "surface",
313
- fg: "surface-text",
314
- intensity: 15,
315
- inherit: false
146
+ modes: {
147
+ dark: true,
148
+ highContrast: true
316
149
  },
317
- overlay: {
318
- tone: 10,
319
- opacity: .5,
320
- inherit: false
321
- }
150
+ darkTone: [14, 95],
151
+ darkDesaturation: 0
322
152
  });
323
- const TINTED_SURFACE_SATURATION = .2;
324
- const TINTED_SURFACE_TONE_OFFSET = 2;
325
153
  /**
326
- * Per-colored-theme overrides on top of `defaultTheme`:
154
+ * Per-colored-theme overrides on top of the default theme:
327
155
  * - `surface` — bumped saturation so the banner bg is visibly tinted.
328
156
  * - `border` — bumped saturation so OUTLINE-variant borders pick up the
329
157
  * theme hue (used by `#<theme>-border` in `item-themes.ts`). Mirrors the
@@ -333,13 +161,13 @@ const TINTED_SURFACE_TONE_OFFSET = 2;
333
161
  */
334
162
  const TINTED_SURFACE_OVERRIDE = {
335
163
  surface: {
336
- tone: 100 - TINTED_SURFACE_TONE_OFFSET,
164
+ tone: [100 - TINTED_SURFACE_TONE_OFFSET, 100 - TINTED_SURFACE_TONE_OFFSET * 2],
337
165
  saturation: TINTED_SURFACE_SATURATION
338
166
  },
339
167
  border: {
340
168
  base: "surface",
341
- tone: ["-10", "-20"],
342
- saturation: .5
169
+ tone: ["-10", "-30"],
170
+ saturation: .3
343
171
  },
344
172
  "surface-text": {
345
173
  base: "surface",
@@ -360,166 +188,511 @@ const TINTED_SURFACE_OVERRIDE = {
360
188
  contrast: ["AA", "AAA"]
361
189
  }
362
190
  };
363
- const primaryTheme = defaultTheme.extend({ colors: TINTED_SURFACE_OVERRIDE });
364
- const successTheme = defaultTheme.extend({
365
- hue: SUCCESS_HUE,
366
- colors: TINTED_SURFACE_OVERRIDE
367
- });
368
- const dangerTheme = defaultTheme.extend({
369
- hue: DANGER_HUE,
370
- colors: TINTED_SURFACE_OVERRIDE
371
- });
372
- const warningTheme = defaultTheme.extend({
373
- hue: WARNING_HUE,
374
- colors: TINTED_SURFACE_OVERRIDE
375
- });
376
- const noteTheme = defaultTheme.extend({
377
- hue: NOTE_HUE,
378
- colors: TINTED_SURFACE_OVERRIDE
379
- });
380
191
  /**
381
- * Standalone theme for `special`-variant components (hero CTAs, banners, etc.)
382
- * that intentionally sit on a dark surface regardless of the active scheme.
383
- *
384
- * Every token here is `mode: 'fixed'` so the resolved value is identical in
385
- * light, dark, and high-contrast. The shape is purpose-built (not a full
386
- * mirror of `defaultTheme`) — only what `SPECIAL_*_STYLES` in
387
- * `src/data/item-themes.ts` consumes is emitted.
192
+ * Build the full palette from a resolved config.
388
193
  *
389
- * Token rundown:
390
- * - `surface` dark L≈12 backdrop (same value as `#surface-inverse`).
391
- * - `accent-surface` / `accent-surface-2` / `accent-surface-3` —
392
- * brand-purple PRIMARY fill ramp (default hover pressed). Mirrors
393
- * the `#primary-accent-surface` / `-2` / `-3` ramp on the colored
394
- * themes so `SPECIAL_PRIMARY_STYLES.fill` can use the same shape.
395
- * - `accent-surface-hover` — legacy alias kept around for the
396
- * `#special-hover` color shortcut in `src/tokens/colors.ts`. Item
397
- * themes themselves no longer reference it.
398
- * - `accent-surface-text` — fixed white (= built-in `#white`), exposed
399
- * for explicit references.
400
- * - `accent-text` — dark-purple foreground readable on white. Used as
401
- * CLEAR-variant text on the always-white pill, and as the
402
- * pressed/focused border on the brand-purple primary fill. Matches the
403
- * legacy `#fixed-primary-text` alias (= `#primary-accent-surface-hover`).
404
- * - `accent-disabled-surface` / `accent-disabled-surface-text` —
405
- * brand-tinted disabled chip + label, positioned with relative tone
406
- * deltas against the fixed dark `surface` so the disabled state is
407
- * scheme-symmetric.
194
+ * Pure: it reads nothing but its argument (and the global Glaze config, which
195
+ * the caller sets first), so re-running it with the same config yields the same
196
+ * tokens. Theme instances are immutable with respect to their hue / saturation
197
+ * seed and a `GlazePalette` has no mutation API, so re-seeding means rebuilding.
408
198
  */
409
- const specialTheme = glaze(PURPLE_HUE, SEED_SATURATION);
410
- specialTheme.colors({
411
- surface: {
412
- tone: 12,
413
- saturation: .475,
414
- mode: "fixed"
415
- },
416
- "accent-surface-text": {
417
- tone: 100,
418
- mode: "fixed"
419
- },
420
- "accent-surface": {
421
- base: "accent-surface-text",
422
- tone: "-49",
423
- contrast: ["AA", "AAA"],
424
- mode: "fixed"
425
- },
426
- "accent-surface-2": {
427
- base: "accent-surface-text",
428
- tone: "-52",
429
- contrast: ["AA", "AAA"],
430
- mode: "fixed"
431
- },
432
- "accent-surface-3": {
433
- base: "accent-surface-text",
434
- tone: "-55",
435
- contrast: ["AA", "AAA"],
436
- mode: "fixed"
437
- },
438
- "accent-surface-border": {
439
- base: "accent-surface",
440
- tone: "+13",
441
- mode: "fixed"
442
- },
443
- "accent-surface-hover": {
444
- base: "accent-surface-text",
445
- tone: "-58",
446
- contrast: ["AA", "AAA"],
447
- mode: "fixed"
448
- },
449
- "accent-text": {
450
- base: "accent-surface-text",
451
- tone: "-58",
452
- contrast: ["AA", "AAA"],
453
- mode: "fixed"
454
- },
455
- "accent-disabled-surface": {
456
- base: "surface",
457
- tone: "+4",
458
- saturation: .5,
459
- mode: "fixed"
460
- },
461
- "accent-disabled-surface-text": {
462
- base: "accent-disabled-surface",
463
- tone: "+18",
464
- saturation: .4,
465
- mode: "fixed"
466
- }
467
- });
199
+ function buildPalette(config, options = {}) {
200
+ const { hue, baseHue, saturation, pastel, themes, contrastLevel } = config;
201
+ const overrides = {
202
+ ...pastel ? { pastel: true } : null,
203
+ ...options.isolateContrastLevel ? { contrastLevel } : null
204
+ };
205
+ const instanceConfig = Object.keys(overrides).length ? overrides : void 0;
206
+ const defaultTheme = glaze(hue, saturation, instanceConfig);
207
+ defaultTheme.colors({
208
+ surface: {
209
+ tone: 100,
210
+ saturation: SURFACE_SATURATION,
211
+ hue: baseHue
212
+ },
213
+ "surface-2": {
214
+ hue: baseHue,
215
+ base: "surface",
216
+ tone: ["-2", "-4"],
217
+ saturation: .1,
218
+ inherit: false
219
+ },
220
+ "surface-3": {
221
+ hue: baseHue,
222
+ base: "surface",
223
+ tone: ["-4", "-8"],
224
+ saturation: .1,
225
+ inherit: false
226
+ },
227
+ "surface-4": {
228
+ hue: baseHue,
229
+ base: "surface",
230
+ tone: ["-6", "-12"],
231
+ saturation: .1,
232
+ inherit: false
233
+ },
234
+ "surface-text": {
235
+ hue: baseHue,
236
+ base: "surface",
237
+ tone: `${TEXT_TONE - 2}`,
238
+ saturation: .2,
239
+ contrast: ["AA", "AAA"]
240
+ },
241
+ "surface-text-soft": {
242
+ hue: baseHue,
243
+ base: "surface",
244
+ tone: `${TEXT_SOFT_TONE - 2}`,
245
+ saturation: .2,
246
+ contrast: ["AA", "AAA"],
247
+ inherit: false
248
+ },
249
+ "surface-text-soft-2": {
250
+ hue: baseHue,
251
+ base: "surface",
252
+ tone: `${TEXT_SOFT2_TONE - 2}`,
253
+ saturation: .2,
254
+ contrast: ["AA", "AAA"],
255
+ inherit: false
256
+ },
257
+ "surface-2-text": {
258
+ hue: baseHue,
259
+ base: "surface-2",
260
+ tone: `${TEXT_TONE + SURFACE_2_TEXT_OFFSET}`,
261
+ saturation: .2,
262
+ contrast: ["AA", "AAA"],
263
+ inherit: false
264
+ },
265
+ "surface-2-text-soft": {
266
+ hue: baseHue,
267
+ base: "surface-2",
268
+ tone: `${TEXT_SOFT_TONE + SURFACE_2_TEXT_OFFSET}`,
269
+ saturation: .2,
270
+ contrast: ["AA", "AAA"],
271
+ inherit: false
272
+ },
273
+ "surface-3-text": {
274
+ hue: baseHue,
275
+ base: "surface-3",
276
+ tone: `${TEXT_TONE + SURFACE_3_TEXT_OFFSET}`,
277
+ saturation: .2,
278
+ contrast: ["AA", "AAA"],
279
+ inherit: false
280
+ },
281
+ "surface-3-text-soft": {
282
+ hue: baseHue,
283
+ base: "surface-3",
284
+ tone: `${TEXT_SOFT_TONE + SURFACE_3_TEXT_OFFSET}`,
285
+ saturation: .2,
286
+ contrast: ["AA", "AAA"],
287
+ inherit: false
288
+ },
289
+ border: {
290
+ hue: baseHue,
291
+ base: "surface",
292
+ tone: ["-10", "-30"],
293
+ saturation: .175
294
+ },
295
+ placeholder: {
296
+ hue: baseHue,
297
+ base: "surface",
298
+ tone: "-33",
299
+ saturation: .175,
300
+ inherit: false
301
+ },
302
+ focus: {
303
+ base: "surface",
304
+ tone: "-29",
305
+ saturation: .8625,
306
+ inherit: false
307
+ },
308
+ disabled: {
309
+ tone: 80.8,
310
+ saturation: .4,
311
+ inherit: false
312
+ },
313
+ "disabled-surface": {
314
+ hue: baseHue,
315
+ base: "surface",
316
+ tone: "-3.5",
317
+ saturation: .2,
318
+ inherit: false
319
+ },
320
+ "disabled-surface-text": {
321
+ base: "surface",
322
+ tone: "-23",
323
+ saturation: .3,
324
+ inherit: false
325
+ },
326
+ "surface-inverse": {
327
+ hue: baseHue,
328
+ tone: 12,
329
+ saturation: .475,
330
+ mode: "fixed",
331
+ inherit: false
332
+ },
333
+ "accent-surface-text": {
334
+ tone: 100,
335
+ mode: "fixed"
336
+ },
337
+ "accent-surface": {
338
+ base: "accent-surface-text",
339
+ tone: "-49",
340
+ contrast: ["AA", "AAA"],
341
+ mode: "fixed"
342
+ },
343
+ "accent-surface-2": {
344
+ base: "accent-surface-text",
345
+ tone: "-52",
346
+ contrast: ["AA", "AAA"],
347
+ mode: "fixed"
348
+ },
349
+ "accent-surface-3": {
350
+ base: "accent-surface-text",
351
+ tone: "-55",
352
+ contrast: ["AA", "AAA"],
353
+ mode: "fixed"
354
+ },
355
+ "accent-surface-hover": {
356
+ base: "accent-surface-text",
357
+ tone: "-58",
358
+ contrast: ["AA", "AAA"],
359
+ mode: "fixed"
360
+ },
361
+ "accent-surface-border": {
362
+ base: "accent-surface",
363
+ tone: "+13",
364
+ mode: "fixed"
365
+ },
366
+ "accent-selected-fill": {
367
+ type: "mix",
368
+ base: "surface",
369
+ target: "accent-surface",
370
+ value: 9,
371
+ space: "srgb"
372
+ },
373
+ "accent-text": {
374
+ base: "accent-selected-fill",
375
+ tone: "-49",
376
+ saturation: 1,
377
+ contrast: [6, 11]
378
+ },
379
+ "accent-text-soft": {
380
+ base: "accent-selected-fill",
381
+ tone: "-49",
382
+ saturation: 1,
383
+ contrast: ["AA", "AAA"]
384
+ },
385
+ "accent-icon": {
386
+ base: "surface",
387
+ tone: "-38",
388
+ saturation: .9375
389
+ },
390
+ "accent-disabled-surface": {
391
+ base: "surface",
392
+ tone: "-13",
393
+ saturation: .5,
394
+ mode: "fixed"
395
+ },
396
+ "accent-disabled-surface-text": {
397
+ base: "accent-disabled-surface",
398
+ tone: "max",
399
+ saturation: .4,
400
+ mode: "fixed"
401
+ },
402
+ "loading-face-1": {
403
+ base: "surface",
404
+ tone: "-2",
405
+ saturation: .3,
406
+ inherit: false
407
+ },
408
+ "loading-face-2": {
409
+ base: "surface",
410
+ tone: "-9",
411
+ saturation: .62,
412
+ inherit: false
413
+ },
414
+ "loading-face-3": {
415
+ base: "surface",
416
+ tone: "-21",
417
+ saturation: .66,
418
+ inherit: false
419
+ },
420
+ "shadow-sm": {
421
+ type: "shadow",
422
+ bg: "surface",
423
+ fg: "surface-text",
424
+ intensity: 5,
425
+ inherit: false
426
+ },
427
+ "shadow-md": {
428
+ type: "shadow",
429
+ bg: "surface",
430
+ fg: "surface-text",
431
+ intensity: 10,
432
+ inherit: false
433
+ },
434
+ "shadow-lg": {
435
+ type: "shadow",
436
+ bg: "surface",
437
+ fg: "surface-text",
438
+ intensity: 15,
439
+ inherit: false
440
+ },
441
+ overlay: {
442
+ tone: 10,
443
+ opacity: .5,
444
+ inherit: false,
445
+ hue: baseHue
446
+ }
447
+ });
448
+ const primaryTheme = defaultTheme.extend({ colors: TINTED_SURFACE_OVERRIDE });
449
+ const successTheme = defaultTheme.extend({
450
+ hue: themes.success.hue,
451
+ saturation: themes.success.saturation,
452
+ colors: TINTED_SURFACE_OVERRIDE
453
+ });
454
+ const dangerTheme = defaultTheme.extend({
455
+ hue: themes.danger.hue,
456
+ saturation: themes.danger.saturation,
457
+ colors: TINTED_SURFACE_OVERRIDE
458
+ });
459
+ const warningTheme = defaultTheme.extend({
460
+ hue: themes.warning.hue,
461
+ saturation: themes.warning.saturation,
462
+ colors: TINTED_SURFACE_OVERRIDE
463
+ });
464
+ const noteTheme = defaultTheme.extend({
465
+ hue: themes.note.hue,
466
+ saturation: themes.note.saturation,
467
+ colors: TINTED_SURFACE_OVERRIDE
468
+ });
469
+ const specialTheme = glaze(hue, saturation, instanceConfig);
470
+ specialTheme.colors({
471
+ surface: {
472
+ tone: 12,
473
+ saturation: .475,
474
+ mode: "fixed"
475
+ },
476
+ "accent-surface-text": {
477
+ tone: 100,
478
+ mode: "fixed"
479
+ },
480
+ "accent-surface": {
481
+ base: "accent-surface-text",
482
+ tone: "-49",
483
+ contrast: ["AA", "AAA"],
484
+ mode: "fixed"
485
+ },
486
+ "accent-surface-2": {
487
+ base: "accent-surface-text",
488
+ tone: "-52",
489
+ contrast: ["AA", "AAA"],
490
+ mode: "fixed"
491
+ },
492
+ "accent-surface-3": {
493
+ base: "accent-surface-text",
494
+ tone: "-55",
495
+ contrast: ["AA", "AAA"],
496
+ mode: "fixed"
497
+ },
498
+ "accent-surface-border": {
499
+ base: "accent-surface",
500
+ tone: "+13",
501
+ mode: "fixed"
502
+ },
503
+ "accent-surface-hover": {
504
+ base: "accent-surface-text",
505
+ tone: "-58",
506
+ contrast: ["AA", "AAA"],
507
+ mode: "fixed"
508
+ },
509
+ "accent-text": {
510
+ base: "accent-surface-text",
511
+ tone: "-58",
512
+ contrast: ["AA", "AAA"],
513
+ mode: "fixed"
514
+ },
515
+ "accent-disabled-surface": {
516
+ base: "surface",
517
+ tone: "+4",
518
+ saturation: .5,
519
+ mode: "fixed"
520
+ },
521
+ "accent-disabled-surface-text": {
522
+ base: "accent-disabled-surface",
523
+ tone: "+18",
524
+ saturation: .4,
525
+ mode: "fixed"
526
+ }
527
+ });
528
+ return {
529
+ palette: glaze.palette({
530
+ default: defaultTheme,
531
+ primary: primaryTheme,
532
+ purple: primaryTheme,
533
+ success: successTheme,
534
+ danger: dangerTheme,
535
+ warning: warningTheme,
536
+ note: noteTheme,
537
+ special: specialTheme
538
+ }),
539
+ codeTheme: buildCodeTheme(config, instanceConfig)
540
+ };
541
+ }
542
+ const TOKEN_PREFIXES = {
543
+ default: "",
544
+ primary: "primary-",
545
+ purple: "purple-",
546
+ success: "success-",
547
+ danger: "danger-",
548
+ warning: "warning-",
549
+ note: "note-",
550
+ special: "special-"
551
+ };
552
+ let paletteCache = null;
553
+ let codeThemeCache = null;
554
+ let paletteTokensCache = null;
555
+ let cachedVersion = -1;
468
556
  /**
469
- * Theme map for the palette.
557
+ * Whether *we* are the ones holding a manual level in Glaze's global config.
470
558
  *
471
- * `purple` is the legacy alias for `primary` and resolves to identical tokens
472
- * (same theme instance, different prefix no token-value collision).
559
+ * `contrastLevel` is the one palette option that has to be global: a global
560
+ * level pins `modes.highContrast: false` so no high-contrast tier is emitted at
561
+ * all (which is the point — a manual level already carries the preference),
562
+ * whereas a per-instance level would leave the tier in place and report its own
563
+ * values there. `palette.tasty({ modes })` cannot override that either.
473
564
  *
474
- * `default` is emitted with an empty prefix (custom map below), so its tokens
475
- * appear unprefixed (`#surface`, `#border`, …). All other themes are prefixed
476
- * with `<themeName>-`.
565
+ * Being global means it is shared with the host app, so we only write it when
566
+ * asked. A host that sets its own `glaze.configure({ contrastLevel })` and never
567
+ * touches `setPaletteConfig({ contrastLevel })` keeps its level — without this
568
+ * flag we would silently reset it to `'auto'` on the first token read.
477
569
  */
478
- const palette = glaze.palette({
479
- default: defaultTheme,
480
- primary: primaryTheme,
481
- purple: primaryTheme,
482
- success: successTheme,
483
- danger: dangerTheme,
484
- warning: warningTheme,
485
- note: noteTheme,
486
- special: specialTheme
487
- });
570
+ let ownsContrastLevel = false;
571
+ function applyContrastLevel(contrastLevel) {
572
+ if (contrastLevel === "auto" && !ownsContrastLevel) return;
573
+ glaze.configure({ contrastLevel });
574
+ ownsContrastLevel = contrastLevel !== "auto";
575
+ }
576
+ function refresh() {
577
+ const version = getPaletteVersion();
578
+ if (paletteTokensCache && cachedVersion === version) return;
579
+ const config = getPaletteConfig();
580
+ applyContrastLevel(config.contrastLevel);
581
+ const built = buildPalette(config);
582
+ paletteCache = built.palette;
583
+ paletteTokensCache = {
584
+ ...built.palette.tasty({
585
+ prefix: TOKEN_PREFIXES,
586
+ format: "oklch"
587
+ }),
588
+ ...pickCodeTokens(built.codeTheme.tasty({ format: "oklch" }))
589
+ };
590
+ codeThemeCache = built.codeTheme;
591
+ cachedVersion = version;
592
+ }
488
593
  /**
489
- * Resolve Glaze palette tokens against the **live** `glaze` global config.
594
+ * Resolve Glaze palette tokens against the current palette config.
490
595
  *
491
- * Memoized on first call so subsequent reads are free. Resolution is deferred
492
- * (not done at module import) so host apps can call `glaze.configure(...)`
493
- * after importing `@cube-dev/ui-kit` and still affect these tokens as long as
494
- * configure runs before the first `getPaletteTokens()` / `<Root>` paint.
596
+ * Memoized against the config version (see `./palette-config.ts`), so repeated
597
+ * reads are free and `setPaletteConfig()` invalidates them. Resolution is
598
+ * deferred rather than done at module import, so host apps can call
599
+ * `setPaletteConfig(...)` / `glaze.configure(...)` after importing
600
+ * `@cube-dev/ui-kit` and still affect the first paint.
495
601
  *
496
602
  * Keys use `#name` syntax; values are state maps:
497
603
  * '#surface': { '': 'oklch(...)', '@dark': 'oklch(...)', '@hc': 'oklch(...)' }
498
604
  */
499
- let paletteTokensCache = null;
500
605
  function getPaletteTokens() {
501
- if (!paletteTokensCache) paletteTokensCache = palette.tasty({
502
- prefix: {
503
- default: "",
504
- primary: "primary-",
505
- purple: "purple-",
506
- success: "success-",
507
- danger: "danger-",
508
- warning: "warning-",
509
- note: "note-",
510
- special: "special-"
511
- },
512
- format: "oklch"
513
- });
606
+ refresh();
514
607
  return paletteTokensCache;
515
608
  }
609
+ /** The live `GlazePalette`. Rebuilt whenever the palette config changes. */
610
+ function getPalette() {
611
+ refresh();
612
+ return paletteCache;
613
+ }
614
+ /**
615
+ * The live theme behind the `code-*` tokens. Separate from {@link getPalette}
616
+ * because it carries its own saturation seed — see {@link CODE_COLORS}.
617
+ */
618
+ function getCodeTheme() {
619
+ refresh();
620
+ return codeThemeCache;
621
+ }
622
+ const VARIANT_KEY = {
623
+ "light:false": "light",
624
+ "light:true": "lightContrast",
625
+ "dark:false": "dark",
626
+ "dark:true": "darkContrast"
627
+ };
628
+ /**
629
+ * Single-entry memo: all four variants of the last config rendered.
630
+ *
631
+ * Keyed on the palette version as well as the config, because the config is not
632
+ * the only input — `buildPalette` also reads Glaze's own global config
633
+ * (`darkTone`, `darkDesaturation`, the state map). A host that drives Glaze
634
+ * directly and then calls `invalidatePaletteTokens()` bumps the version without
635
+ * touching the config, and the region previews have to follow the document.
636
+ */
637
+ let renderKey = null;
638
+ let renderVariants = {};
639
+ /**
640
+ * Resolve one scheme variant of a palette to flat, literal color values.
641
+ *
642
+ * Unlike {@link getPaletteTokens}, which emits state maps (`@dark` / `@hc`) for
643
+ * the whole document, this collapses the palette to the single variant you ask
644
+ * for. That is what makes a **region** preview possible: applied through a tasty
645
+ * `tokens` prop, the values override the inherited ones for that subtree only, so
646
+ * a dark or high-contrast theme can be shown inside a light page.
647
+ *
648
+ * Prefer `renderColorTokens()` from `./colors` unless you specifically want the
649
+ * palette without the legacy aliases.
650
+ */
651
+ function renderPaletteTokens(options = {}) {
652
+ const { scheme = "light", highContrast = false, ...config } = options;
653
+ const resolved = resolvePaletteConfig(config);
654
+ const key = `${getPaletteVersion()}:${JSON.stringify(resolved)}`;
655
+ if (renderKey !== key) {
656
+ const previousLevel = glaze.getConfig().contrastLevel;
657
+ try {
658
+ glaze.configure({ contrastLevel: "auto" });
659
+ const built = buildPalette(resolved, { isolateContrastLevel: true });
660
+ const modes = {
661
+ dark: true,
662
+ highContrast: true
663
+ };
664
+ const themed = built.palette.tokens({
665
+ prefix: TOKEN_PREFIXES,
666
+ format: "oklch",
667
+ modes
668
+ });
669
+ const code = built.codeTheme.tokens({
670
+ format: "oklch",
671
+ modes
672
+ });
673
+ const variants = {};
674
+ for (const name of Object.keys(themed)) variants[name] = {
675
+ ...themed[name],
676
+ ...pickCodeTokens(code[name] ?? {})
677
+ };
678
+ renderVariants = variants;
679
+ renderKey = key;
680
+ } finally {
681
+ glaze.configure({ contrastLevel: previousLevel });
682
+ }
683
+ }
684
+ const flat = renderVariants[VARIANT_KEY[`${scheme}:${highContrast}`]] ?? renderVariants[scheme];
685
+ const out = {};
686
+ for (const name of Object.keys(flat)) out[`#${name}`] = flat[name];
687
+ return out;
688
+ }
516
689
  /**
517
690
  * Lazy proxy of {@link getPaletteTokens}. Prefer `getPaletteTokens()` in new
518
- * code. First property / enumeration access resolves against the live glaze
519
- * config (same memo as the getter).
691
+ * code. Property / enumeration access always reflects the current palette
692
+ * config.
520
693
  */
521
694
  const PALETTE_TOKENS = lazyStyles(getPaletteTokens);
522
695
 
523
696
  //#endregion
524
- export { PALETTE_TOKENS, getPaletteTokens };
697
+ export { PALETTE_TOKENS, getCodeTheme, getPalette, getPaletteTokens, renderPaletteTokens };
525
698
  //# sourceMappingURL=palette.js.map