@cube-dev/ui-kit 0.152.0 → 0.154.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 (535) hide show
  1. package/README.md +17 -0
  2. package/dist/CHANGELOG.md +111 -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/MonthPicker.d.ts +12 -0
  122. package/dist/components/fields/DatePicker/MonthPicker.js +19 -0
  123. package/dist/components/fields/DatePicker/MonthPicker.js.map +1 -0
  124. package/dist/components/fields/DatePicker/PeriodPicker.d.ts +28 -0
  125. package/dist/components/fields/DatePicker/PeriodPicker.js +131 -0
  126. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -0
  127. package/dist/components/fields/DatePicker/QuarterPicker.d.ts +12 -0
  128. package/dist/components/fields/DatePicker/QuarterPicker.js +19 -0
  129. package/dist/components/fields/DatePicker/QuarterPicker.js.map +1 -0
  130. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  131. package/dist/components/fields/DatePicker/WeekPicker.d.ts +12 -0
  132. package/dist/components/fields/DatePicker/WeekPicker.js +19 -0
  133. package/dist/components/fields/DatePicker/WeekPicker.js.map +1 -0
  134. package/dist/components/fields/DatePicker/YearPicker.d.ts +12 -0
  135. package/dist/components/fields/DatePicker/YearPicker.js +19 -0
  136. package/dist/components/fields/DatePicker/YearPicker.js.map +1 -0
  137. package/dist/components/fields/DatePicker/index.d.ts +7 -1
  138. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  139. package/dist/components/fields/DatePicker/period.d.ts +35 -0
  140. package/dist/components/fields/DatePicker/period.js +58 -0
  141. package/dist/components/fields/DatePicker/period.js.map +1 -0
  142. package/dist/components/fields/DatePicker/props.js +1 -1
  143. package/dist/components/fields/DatePicker/utils.js +1 -1
  144. package/dist/components/fields/FileInput/FileInput.js +1 -1
  145. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  146. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  147. package/dist/components/fields/Input/Input.js +1 -1
  148. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  149. package/dist/components/fields/ListBox/ListBox.js +1 -1
  150. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  151. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  152. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  153. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  154. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  155. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  156. package/dist/components/fields/Picker/Picker.js +1 -1
  157. package/dist/components/fields/RadioGroup/Radio.js +2 -2
  158. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  159. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  160. package/dist/components/fields/RadioGroup/context.js +1 -1
  161. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  162. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  163. package/dist/components/fields/Select/Select.js +1 -1
  164. package/dist/components/fields/Slider/Gradation.js +1 -1
  165. package/dist/components/fields/Slider/HueSlider.js +1 -1
  166. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  167. package/dist/components/fields/Slider/Slider.js +1 -1
  168. package/dist/components/fields/Slider/SliderBase.js +1 -1
  169. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  170. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  171. package/dist/components/fields/Slider/elements.js +1 -1
  172. package/dist/components/fields/Slider/index.js +1 -1
  173. package/dist/components/fields/Switch/Switch.d.ts +2 -2
  174. package/dist/components/fields/Switch/Switch.js +1 -1
  175. package/dist/components/fields/Switch/Switch.js.map +1 -1
  176. package/dist/components/fields/TextArea/TextArea.js +1 -1
  177. package/dist/components/fields/TextInput/TextInput.js +1 -1
  178. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  179. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  180. package/dist/components/fields/index.d.ts +6 -0
  181. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  182. package/dist/components/form/Form/Field.js +1 -1
  183. package/dist/components/form/Form/Form.js +1 -1
  184. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  185. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  186. package/dist/components/form/Form/SubmitError.js +1 -1
  187. package/dist/components/form/Form/index.js +1 -1
  188. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  189. package/dist/components/form/Form/use-field/use-field.js +1 -1
  190. package/dist/components/form/Form/use-form.js +1 -1
  191. package/dist/components/form/Form/validation.js +1 -1
  192. package/dist/components/form/Label.js +1 -1
  193. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  194. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  195. package/dist/components/form/validation/use-validation-props.js +1 -1
  196. package/dist/components/form/wrapper.js +1 -1
  197. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  198. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  199. package/dist/components/layout/Board/Board.js +1 -1
  200. package/dist/components/layout/Board/BoardProvider.js +1 -1
  201. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  202. package/dist/components/layout/Board/Widget.js +1 -1
  203. package/dist/components/layout/Board/WidgetHost.js +1 -1
  204. package/dist/components/layout/Board/board-context.js +1 -1
  205. package/dist/components/layout/Board/board-store.js +1 -1
  206. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  207. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  208. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  209. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  210. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  211. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  212. package/dist/components/layout/Board/index.js +1 -1
  213. package/dist/components/layout/Board/responsive-utils.js +1 -1
  214. package/dist/components/layout/Board/use-board-layout.js +1 -1
  215. package/dist/components/layout/Board/use-board-registry.js +1 -1
  216. package/dist/components/layout/Flex.js +1 -1
  217. package/dist/components/layout/Flow.js +1 -1
  218. package/dist/components/layout/Grid.js +1 -1
  219. package/dist/components/layout/Panel.js +1 -1
  220. package/dist/components/layout/Prefix.js +1 -1
  221. package/dist/components/layout/ResizablePanel.js +1 -1
  222. package/dist/components/layout/Space.js +1 -1
  223. package/dist/components/layout/Suffix.js +1 -1
  224. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  225. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  226. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  227. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  228. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  229. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  230. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  231. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  232. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  233. package/dist/components/navigation/Tabs/styled.js +1 -1
  234. package/dist/components/navigation/Tabs/types.js +1 -1
  235. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  236. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  237. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  238. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  239. package/dist/components/other/Calendar/Calendar.js +12 -3
  240. package/dist/components/other/Calendar/Calendar.js.map +1 -1
  241. package/dist/components/other/Calendar/CalendarCell.js +4 -2
  242. package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
  243. package/dist/components/other/Calendar/CalendarGrid.js +35 -13
  244. package/dist/components/other/Calendar/CalendarGrid.js.map +1 -1
  245. package/dist/components/other/Calendar/PeriodCalendar.js +229 -0
  246. package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -0
  247. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  248. package/dist/components/other/CubeLogo/CubeLogo.d.ts +10 -3
  249. package/dist/components/other/CubeLogo/CubeLogo.js +31 -4
  250. package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
  251. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  252. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  253. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  254. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  255. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  256. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  257. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  258. package/dist/components/overlays/Dialog/context.js +1 -1
  259. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  260. package/dist/components/overlays/Modal/Modal.js +1 -1
  261. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  262. package/dist/components/overlays/Modal/Overlay.js +1 -1
  263. package/dist/components/overlays/Modal/Popover.js +1 -1
  264. package/dist/components/overlays/Modal/Tray.js +1 -1
  265. package/dist/components/overlays/Modal/Underlay.js +1 -1
  266. package/dist/components/overlays/Notifications/Notification.js +1 -1
  267. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  268. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  269. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  270. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  271. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  272. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  273. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  274. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  275. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  276. package/dist/components/overlays/Notifications/index.js +1 -1
  277. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  278. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  279. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  280. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  281. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  282. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  283. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  284. package/dist/components/overlays/Toast/index.js +1 -1
  285. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  286. package/dist/components/overlays/Toast/useToast.js +1 -1
  287. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  288. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  289. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  290. package/dist/components/overlays/Tooltip/context.js +1 -1
  291. package/dist/components/portal/Portal.js +1 -1
  292. package/dist/components/portal/PortalProvider.js +1 -1
  293. package/dist/components/portal/usePortal.js +1 -1
  294. package/dist/components/shared/DraggableCollection.js +1 -1
  295. package/dist/components/shared/InvalidIcon.js +1 -1
  296. package/dist/components/shared/ValidIcon.js +1 -1
  297. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  298. package/dist/components/status/Spin/Cube.js +1 -1
  299. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  300. package/dist/components/status/Spin/Spin.js +1 -1
  301. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  302. package/dist/data/item-themes.js +1 -1
  303. package/dist/data/themes.d.ts +5 -5
  304. package/dist/data/themes.js +6 -6
  305. package/dist/data/themes.js.map +1 -1
  306. package/dist/eslint-plugin/defaults.generated.js +1 -1
  307. package/dist/eslint-plugin/index.js +1 -1
  308. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  309. package/dist/i18n/I18nProvider.js +1 -1
  310. package/dist/i18n/createFormatter.js +1 -1
  311. package/dist/i18n/index.js +1 -1
  312. package/dist/i18n/instance.js +1 -1
  313. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  314. package/dist/i18n/locales/en-US/uikit.js +1 -1
  315. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  316. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  317. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  318. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  319. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  320. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  321. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  322. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  323. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  324. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  325. package/dist/i18n/locales.js +1 -1
  326. package/dist/i18n/useFormatter.js +1 -1
  327. package/dist/i18n/useI18n.js +1 -1
  328. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  329. package/dist/icons/AdjustmentsIcon.js +1 -1
  330. package/dist/icons/AiIcon.js +1 -1
  331. package/dist/icons/AreaChartIcon.js +1 -1
  332. package/dist/icons/BackwardIcon.js +1 -1
  333. package/dist/icons/BarChartIcon.js +1 -1
  334. package/dist/icons/BellFilledIcon.js +1 -1
  335. package/dist/icons/BellIcon.js +1 -1
  336. package/dist/icons/BooleanIcon.js +1 -1
  337. package/dist/icons/CalendarEditIcon.js +1 -1
  338. package/dist/icons/CalendarIcon.js +1 -1
  339. package/dist/icons/CaretDownIcon.js +1 -1
  340. package/dist/icons/CaretUpIcon.js +1 -1
  341. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  342. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  343. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  344. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  345. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  346. package/dist/icons/ChartBarLineIcon.js +1 -1
  347. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  348. package/dist/icons/ChartBarStackedIcon.js +1 -1
  349. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  350. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  351. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  352. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  353. package/dist/icons/ChartBubbleIcon.js +1 -1
  354. package/dist/icons/ChartDonut2Icon.js +1 -1
  355. package/dist/icons/ChartFunnelIcon.js +1 -1
  356. package/dist/icons/ChartHeatmapIcon.js +1 -1
  357. package/dist/icons/ChartKPIIcon.js +1 -1
  358. package/dist/icons/ChartPie2Icon.js +1 -1
  359. package/dist/icons/ChartScatterIcon.js +1 -1
  360. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  361. package/dist/icons/CheckCircleIcon.js +1 -1
  362. package/dist/icons/CheckIcon.js +1 -1
  363. package/dist/icons/CircleFilledIcon.js +1 -1
  364. package/dist/icons/ClearIcon.js +1 -1
  365. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  366. package/dist/icons/CloseCircleIcon.js +1 -1
  367. package/dist/icons/CloseIcon.js +1 -1
  368. package/dist/icons/CodeIcon.js +1 -1
  369. package/dist/icons/ColumnTotalIcon.js +1 -1
  370. package/dist/icons/CopyIcon.js +1 -1
  371. package/dist/icons/CountIcon.js +1 -1
  372. package/dist/icons/CubeIcon.js +1 -1
  373. package/dist/icons/CubePauseIcon.js +1 -1
  374. package/dist/icons/CubePlayIcon.js +1 -1
  375. package/dist/icons/CurrencyDollarIcon.js +1 -1
  376. package/dist/icons/DangerIcon.js +1 -1
  377. package/dist/icons/DashboardIcon.js +1 -1
  378. package/dist/icons/DatabaseIcon.js +1 -1
  379. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  380. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  381. package/dist/icons/DirectionIcon.js +1 -1
  382. package/dist/icons/DonutIcon.js +1 -1
  383. package/dist/icons/DownIcon.js +1 -1
  384. package/dist/icons/EditIcon.js +1 -1
  385. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  386. package/dist/icons/ExclamationCircleIcon.js +1 -1
  387. package/dist/icons/ExclamationIcon.js +1 -1
  388. package/dist/icons/EyeIcon.js +1 -1
  389. package/dist/icons/EyeInvisibleIcon.js +1 -1
  390. package/dist/icons/FilterIcon.js +1 -1
  391. package/dist/icons/FolderFilledIcon.js +1 -1
  392. package/dist/icons/FolderIcon.js +1 -1
  393. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  394. package/dist/icons/FolderOpenIcon.js +1 -1
  395. package/dist/icons/ForwardIcon.js +1 -1
  396. package/dist/icons/GripVerticalIcon.js +1 -1
  397. package/dist/icons/HierarchyIcon.js +1 -1
  398. package/dist/icons/HierarchyOpenIcon.js +1 -1
  399. package/dist/icons/Icon.js +1 -1
  400. package/dist/icons/InfoCircleIcon.js +1 -1
  401. package/dist/icons/InfoIcon.js +1 -1
  402. package/dist/icons/KeyIcon.js +1 -1
  403. package/dist/icons/LeftIcon.js +1 -1
  404. package/dist/icons/LineChartIcon.js +1 -1
  405. package/dist/icons/LoadingIcon.js +1 -1
  406. package/dist/icons/LockFilledIcon.js +1 -1
  407. package/dist/icons/LockIcon.js +1 -1
  408. package/dist/icons/MoreIcon.js +1 -1
  409. package/dist/icons/NotAllowedIcon.js +1 -1
  410. package/dist/icons/Number123Icon.js +1 -1
  411. package/dist/icons/NumberIcon.js +1 -1
  412. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  413. package/dist/icons/PauseCircleIcon.js +1 -1
  414. package/dist/icons/PauseIcon.js +1 -1
  415. package/dist/icons/PercentageIcon.js +1 -1
  416. package/dist/icons/PieChartIcon.js +1 -1
  417. package/dist/icons/PlayCircleIcon.js +1 -1
  418. package/dist/icons/PlayIcon.js +1 -1
  419. package/dist/icons/PlusIcon.js +1 -1
  420. package/dist/icons/ProgressBarIcon.js +1 -1
  421. package/dist/icons/ReloadIcon.js +1 -1
  422. package/dist/icons/ReportIcon.js +1 -1
  423. package/dist/icons/ReturnIcon.js +1 -1
  424. package/dist/icons/RightIcon.js +1 -1
  425. package/dist/icons/RowTotalsIcon.js +1 -1
  426. package/dist/icons/SchemeIcon.js +1 -1
  427. package/dist/icons/SearchIcon.js +1 -1
  428. package/dist/icons/SemanticQueryIcon.js +1 -1
  429. package/dist/icons/SettingsIcon.js +1 -1
  430. package/dist/icons/ShieldFilledIcon.js +1 -1
  431. package/dist/icons/ShieldIcon.js +1 -1
  432. package/dist/icons/SlashIcon.js +1 -1
  433. package/dist/icons/SparklesIcon.js +1 -1
  434. package/dist/icons/SqlIcon.js +1 -1
  435. package/dist/icons/StatsIcon.js +1 -1
  436. package/dist/icons/StopIcon.js +1 -1
  437. package/dist/icons/StringIcon.js +1 -1
  438. package/dist/icons/SubtotalsIcon.js +1 -1
  439. package/dist/icons/SwitchIcon.js +1 -1
  440. package/dist/icons/TableIcon.js +1 -1
  441. package/dist/icons/ThumbsDownIcon.js +1 -1
  442. package/dist/icons/ThumbsUpIcon.js +1 -1
  443. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  444. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  445. package/dist/icons/ThunderboltIcon.js +1 -1
  446. package/dist/icons/TimeIcon.js +1 -1
  447. package/dist/icons/TrashIcon.js +1 -1
  448. package/dist/icons/UnlockIcon.js +1 -1
  449. package/dist/icons/UpIcon.js +1 -1
  450. package/dist/icons/UserGroupIcon.js +1 -1
  451. package/dist/icons/UserIcon.js +1 -1
  452. package/dist/icons/UserLockIcon.js +1 -1
  453. package/dist/icons/ViewIcon.js +1 -1
  454. package/dist/icons/WarningFilledIcon.js +1 -1
  455. package/dist/icons/WarningIcon.js +1 -1
  456. package/dist/icons/wrap-icon.js +1 -1
  457. package/dist/index.d.ts +12 -5
  458. package/dist/index.js +12 -5
  459. package/dist/index.js.map +1 -1
  460. package/dist/provider.js +1 -1
  461. package/dist/providers/TrackingProvider.js +1 -1
  462. package/dist/providers/navigationAdapter.default.js +1 -1
  463. package/dist/shared/form.d.ts +27 -1
  464. package/dist/shared/index.d.ts +1 -1
  465. package/dist/tokens/base.js +1 -1
  466. package/dist/tokens/colors.d.ts +41 -2
  467. package/dist/tokens/colors.js +77 -9
  468. package/dist/tokens/colors.js.map +1 -1
  469. package/dist/tokens/index.d.ts +3 -2
  470. package/dist/tokens/index.js +23 -16
  471. package/dist/tokens/index.js.map +1 -1
  472. package/dist/tokens/layout.js +1 -1
  473. package/dist/tokens/lazy-styles.js +10 -6
  474. package/dist/tokens/lazy-styles.js.map +1 -1
  475. package/dist/tokens/palette-config.d.ts +222 -0
  476. package/dist/tokens/palette-config.js +309 -0
  477. package/dist/tokens/palette-config.js.map +1 -0
  478. package/dist/tokens/palette.d.ts +45 -5
  479. package/dist/tokens/palette.js +578 -405
  480. package/dist/tokens/palette.js.map +1 -1
  481. package/dist/tokens/shadows.js +1 -1
  482. package/dist/tokens/sizes.js +1 -1
  483. package/dist/tokens/spacing.js +1 -1
  484. package/dist/tokens/typography.js +1 -1
  485. package/dist/utils/ResizeSensor.js +1 -1
  486. package/dist/utils/is-dev-env.js +1 -1
  487. package/dist/utils/modules.js +1 -1
  488. package/dist/utils/promise.js +1 -1
  489. package/dist/utils/raf.js +1 -1
  490. package/dist/utils/random.js +1 -1
  491. package/dist/utils/range.js +1 -1
  492. package/dist/utils/react/RenderCache.js +1 -1
  493. package/dist/utils/react/Slots.js +1 -1
  494. package/dist/utils/react/chain.js +1 -1
  495. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  496. package/dist/utils/react/index.js +1 -1
  497. package/dist/utils/react/interactions.js +1 -1
  498. package/dist/utils/react/isTextOnly.js +1 -1
  499. package/dist/utils/react/mapProps.js +1 -1
  500. package/dist/utils/react/mergeProps.js +1 -1
  501. package/dist/utils/react/nullableValue.js +1 -1
  502. package/dist/utils/react/resolveIcon.js +1 -1
  503. package/dist/utils/react/sharedStore.js +1 -1
  504. package/dist/utils/react/useCombinedRefs.js +1 -1
  505. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  506. package/dist/utils/react/useEventBus.js +1 -1
  507. package/dist/utils/react/useId.js +1 -1
  508. package/dist/utils/react/useIsDarwin.js +1 -1
  509. package/dist/utils/react/useKeySymbols.js +1 -1
  510. package/dist/utils/react/useLayoutEffect.js +1 -1
  511. package/dist/utils/react/useLocalStorage.js +1 -1
  512. package/dist/utils/react/useMergeStyles.js +1 -1
  513. package/dist/utils/react/usePopoverSync.js +1 -1
  514. package/dist/utils/react/useQaProps.js +1 -1
  515. package/dist/utils/react/useViewportSize.js +1 -1
  516. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  517. package/dist/utils/selection.js +1 -1
  518. package/dist/utils/styles.js +1 -1
  519. package/dist/utils/tree.js +1 -1
  520. package/dist/utils/warnings.js +1 -1
  521. package/dist/version.js +3 -3
  522. package/docs/Colors.md +4 -0
  523. package/docs/Theming.md +375 -0
  524. package/docs/Usage.md +30 -3
  525. package/docs/components/Root.md +1 -0
  526. package/docs/components/fields/PeriodPicker.md +75 -0
  527. package/docs/components/other/CubeLogo.md +27 -1
  528. package/docs/glaze/api.md +156 -8
  529. package/docs/glaze/methodology.md +21 -1
  530. package/docs/glaze/okhst.md +13 -0
  531. package/docs/tasty/README.md +1 -0
  532. package/docs/tasty/ai-agents.md +206 -0
  533. package/docs/tasty/injector.md +15 -0
  534. package/docs/tasty/react-api.md +21 -2
  535. package/package.json +3 -3
@@ -1,6 +1,9 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.152.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.154.0 | Cube Dev Team */
2
+ import { getPaletteVersion } from "./palette-config.js";
3
+ import { BASE_TOKENS } from "./base.js";
2
4
  import { lazyStyles } from "./lazy-styles.js";
3
- import { getPaletteTokens } from "./palette.js";
5
+ import { getPaletteTokens, renderPaletteTokens } from "./palette.js";
6
+ import { SHADOW_TOKENS } from "./shadows.js";
4
7
 
5
8
  //#region src/tokens/colors.ts
6
9
  /**
@@ -91,22 +94,87 @@ const LEGACY_ALIASES = {
91
94
  /**
92
95
  * Combined color token map: Glaze-generated palette + legacy aliases.
93
96
  *
94
- * Deferred until first access so host apps can `glaze.configure(...)` after
95
- * importing the kit. Prefer {@link getColorTokens} in new code.
97
+ * Memoized against the palette config version, so a runtime `setPaletteConfig()`
98
+ * invalidates it while repeated reads stay free. Prefer {@link getColorTokens}
99
+ * in new code.
96
100
  *
97
101
  * `#white` and `#black` are intentionally omitted — they are built-in
98
102
  * tasty named colors and resolve automatically.
99
103
  */
100
104
  let colorTokensCache = null;
105
+ let cachedVersion = -1;
101
106
  function getColorTokens() {
102
- if (!colorTokensCache) colorTokensCache = {
103
- ...getPaletteTokens(),
104
- ...LEGACY_ALIASES
105
- };
107
+ const version = getPaletteVersion();
108
+ if (!colorTokensCache || cachedVersion !== version) {
109
+ colorTokensCache = {
110
+ ...getPaletteTokens(),
111
+ ...LEGACY_ALIASES
112
+ };
113
+ cachedVersion = version;
114
+ }
106
115
  return colorTokensCache;
107
116
  }
108
117
  const COLOR_TOKENS = lazyStyles(getColorTokens);
118
+ /**
119
+ * Tokens that live outside the palette but whose *values* reference a palette
120
+ * color, so a region preview has to re-declare them. Kept by reference, exactly
121
+ * as `<Root>` declares them — see {@link renderColorTokens}.
122
+ *
123
+ * Sourced from `./shadows` and the scrollbar block of `./base`; if either grows a
124
+ * new colour-referencing token, add it here too.
125
+ */
126
+ const COLOR_DEPENDENT_TOKENS = {
127
+ ...SHADOW_TOKENS,
128
+ "#scrollbar-thumb": BASE_TOKENS["#scrollbar-thumb"],
129
+ "#scrollbar-outline": BASE_TOKENS["#scrollbar-outline"],
130
+ "#scrollbar-bg": BASE_TOKENS["#scrollbar-bg"],
131
+ "#scrollbar-corner": BASE_TOKENS["#scrollbar-corner"]
132
+ };
133
+ /**
134
+ * Render every UI Kit color for one config and one scheme, as flat literal
135
+ * values ready to apply to a **region** via a tasty `tokens` prop.
136
+ *
137
+ * ```tsx
138
+ * const preview = useMemo(
139
+ * () => renderColorTokens({ hue: 210, scheme: 'dark' }),
140
+ * [],
141
+ * );
142
+ *
143
+ * <Block tokens={preview} fill="#surface" color="#surface-text">
144
+ * …renders in the previewed theme, inside a light page…
145
+ * </Block>
146
+ * ```
147
+ *
148
+ * Config fields merge over the *current* palette config, so
149
+ * `renderColorTokens({ scheme: 'dark' })` previews the active theme in dark
150
+ * without restating it. Nothing is applied globally — the live palette is
151
+ * untouched.
152
+ *
153
+ * The legacy aliases are included **by reference** (`'#dark': '#surface-text'`),
154
+ * not resolved: tasty re-declares them on the region, so each `var()` resolves
155
+ * against that region's own overridden value. Resolving them here would instead
156
+ * freeze them to the outer theme's colors.
157
+ *
158
+ * The shadow tokens and the scrollbar colors come along for the same reason: their
159
+ * values embed a palette color (`$card-shadow` → `#shadow-md`, `#scrollbar-thumb`
160
+ * → `#text.5`). They are declared on `<Root>`, so CSS has already substituted the
161
+ * outer theme's colors into them by the time a region inherits — re-declaring them
162
+ * here is what lets them re-resolve.
163
+ *
164
+ * Not included: typography, spacing, sizes and layout. Nothing in their values
165
+ * references a color, so a region inherits them from `<Root>` unchanged.
166
+ *
167
+ * The result is memoized for the last config rendered, but callers driving this
168
+ * from state should still `useMemo` — a rebuild resolves the whole palette.
169
+ */
170
+ function renderColorTokens(options) {
171
+ return {
172
+ ...renderPaletteTokens(options),
173
+ ...LEGACY_ALIASES,
174
+ ...COLOR_DEPENDENT_TOKENS
175
+ };
176
+ }
109
177
 
110
178
  //#endregion
111
- export { COLOR_TOKENS, getColorTokens };
179
+ export { COLOR_TOKENS, getColorTokens, renderColorTokens };
112
180
  //# sourceMappingURL=colors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"colors.js","names":[],"sources":["../../src/tokens/colors.ts"],"sourcesContent":["import { lazyStyles } from './lazy-styles';\nimport { getPaletteTokens } from './palette';\n\nimport type { Styles } from '@tenphi/tasty';\n\n/**\n * Color tokens with `#` prefix for tasty color definitions.\n *\n * The base values come from the Glaze-generated palette (`palette.ts`):\n * `#surface`, `#surface-text*`, `#border`, `#focus`, `#disabled`, `#pink`,\n * `#shadow-*`, `#overlay`, the unprefixed `#accent-*` family, and the per-theme\n * `#primary-*` / `#purple-*` / `#success-*` / `#danger-*` / `#warning-*` /\n * `#note-*` families.\n *\n * Each Glaze token is a state map (`{ '': '...', '@dark': '...', '@hc': '...' }`),\n * giving us light, dark, and high-contrast variants for free. The `@dark` /\n * `@hc` predefined states are wired up globally in `src/components/Root.tsx`.\n *\n * The aliases below preserve backward compatibility with every legacy\n * `#name` used across components, stories, and tests. Each alias resolves\n * to a current Glaze token via tasty's `#token` reference syntax.\n */\n\nconst LEGACY_ALIASES: Styles = {\n // ---- Neutral text scale (legacy `#dark*`) ----\n '#text': '#surface-text-soft',\n '#dark': '#surface-text',\n '#dark-01': '#surface-text',\n '#dark-02': '#surface-text-soft',\n '#dark-03': '#surface-text-soft-2',\n '#dark-04': '#placeholder',\n '#dark-05': '#border',\n\n // Fixed-mode counterpart to `#dark`. Resolves to the same L≈12 surface\n // but uses Glaze `mode: 'fixed'` so it does NOT invert in dark schemes.\n // Use this whenever the design intentionally pins a dark color regardless\n // of scheme. Points at `#special-surface` (`mode: 'fixed'`, L=12),\n // emitted by the standalone `specialTheme` in `palette.ts` — the canonical\n // source of fixed-mode color tokens for `special`-variant components.\n '#fixed-dark': '#special-surface',\n\n // Fixed-mode counterpart to `#primary-text`. `#primary-text` is anchored\n // to `surface` with `mode: 'auto'`, so it flips to a *light* purple in\n // dark schemes (correct on body content, which also inverts). When the\n // local fill is a fixed color instead (an always-white pill, etc.), the\n // adaptive text loses contrast (light purple on white) in dark mode.\n // Points at `#special-accent-text` (`mode: 'fixed'`, cr 6–8.5 vs fixed\n // white) — a dark purple readable on a white surface that stays put\n // across schemes.\n '#fixed-primary-text': '#special-accent-text',\n\n // ---- Misc neutral ----\n '#minor': '#surface-text-soft.65',\n '#shadow': '#shadow-md',\n '#light': '#surface-3',\n '#dark-bg': '#surface-2',\n '#clear': 'transparent',\n\n // Pink: independent hue, scheme-static (no Glaze adaptation). Kept as a raw\n // literal rather than folded into a theme — nothing in the palette emits this\n // hue as a standalone token, and it is a documented public alias (see\n // `Usage.docs.mdx`, `tasty.config.ts`, and the `pink` key in\n // `tasty-augment.d.ts`), so dropping it would silently break consumer styles\n // while the types still advertised it.\n '#pink': 'okhsl(5 100% 67%)',\n\n // ---- Disabled state aliases ----\n // `#disabled-surface` and `#disabled-surface-text` are emitted directly by\n // the Glaze palette (`palette.ts`) as scheme-symmetric, contrast-driven\n // tokens — no alias needed here. `#disabled` stays as a brand-tinted\n // backwards-compat anchor for the per-theme `#<theme>-disabled` aliases below.\n\n // ---- Primary / Purple legacy ----\n '#primary': '#primary-accent-surface',\n '#primary-text': '#primary-accent-text',\n '#primary-text-soft': '#primary-accent-text-soft',\n '#primary-bg': '#primary-surface',\n '#primary-icon': '#primary-accent-icon',\n '#primary-hover': '#primary-accent-surface-hover',\n '#primary-desaturated': '#primary-accent-surface-2',\n '#primary-disabled': '#disabled',\n\n '#purple': '#purple-accent-surface',\n '#purple-text': '#purple-accent-text',\n '#purple-text-soft': '#purple-accent-text-soft',\n '#purple-bg': '#purple-surface',\n '#purple-icon': '#purple-accent-icon',\n '#purple-hover': '#purple-accent-surface-hover',\n '#purple-disabled': '#disabled',\n\n // Purple scale (gradient/accent shades) — mapped to the accent-surface ramp.\n '#purple-01': '#purple-accent-surface',\n '#purple-02': '#purple-accent-surface-2',\n '#purple-03': '#purple-accent-surface-3',\n '#purple-04': '#purple-surface',\n\n // ---- Danger ----\n '#danger': '#danger-accent-surface',\n '#danger-text': '#danger-accent-text',\n '#danger-text-soft': '#danger-accent-text-soft',\n '#danger-bg': '#danger-surface',\n '#danger-icon': '#danger-accent-icon',\n '#danger-hover': '#danger-accent-surface-hover',\n '#danger-desaturated': '#danger-accent-surface-2',\n '#danger-disabled': '#disabled',\n\n // ---- Success ----\n '#success': '#success-accent-surface',\n '#success-text': '#success-accent-text',\n '#success-text-soft': '#success-accent-text-soft',\n '#success-bg': '#success-surface',\n '#success-icon': '#success-accent-icon',\n '#success-hover': '#success-accent-surface-hover',\n '#success-desaturated': '#success-accent-surface-2',\n '#success-disabled': '#disabled',\n\n // ---- Warning ----\n '#warning': '#warning-accent-surface',\n '#warning-text': '#warning-accent-text',\n '#warning-text-soft': '#warning-accent-text-soft',\n '#warning-bg': '#warning-surface',\n '#warning-icon': '#warning-accent-icon',\n '#warning-hover': '#warning-accent-surface-hover',\n '#warning-desaturated': '#warning-accent-surface-2',\n '#warning-disabled': '#disabled',\n\n // ---- Note ----\n '#note': '#note-accent-surface',\n '#note-text': '#note-accent-text',\n '#note-text-soft': '#note-accent-text-soft',\n '#note-bg': '#note-surface',\n '#note-icon': '#note-accent-icon',\n '#note-hover': '#note-accent-surface-hover',\n '#note-desaturated': '#note-accent-surface-2',\n '#note-disabled': '#disabled',\n};\n\n/**\n * Combined color token map: Glaze-generated palette + legacy aliases.\n *\n * Deferred until first access so host apps can `glaze.configure(...)` after\n * importing the kit. Prefer {@link getColorTokens} in new code.\n *\n * `#white` and `#black` are intentionally omitted — they are built-in\n * tasty named colors and resolve automatically.\n */\nlet colorTokensCache: Styles | null = null;\n\nexport function getColorTokens(): Styles {\n if (!colorTokensCache) {\n colorTokensCache = {\n ...getPaletteTokens(),\n ...LEGACY_ALIASES,\n };\n }\n return colorTokensCache;\n}\n\nexport const COLOR_TOKENS: Styles = lazyStyles(getColorTokens);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,iBAAyB;CAE7B,SAAS;CACT,SAAS;CACT,YAAY;CACZ,YAAY;CACZ,YAAY;CACZ,YAAY;CACZ,YAAY;CAQZ,eAAe;CAUf,uBAAuB;CAGvB,UAAU;CACV,WAAW;CACX,UAAU;CACV,YAAY;CACZ,UAAU;CAQV,SAAS;CAST,YAAY;CACZ,iBAAiB;CACjB,sBAAsB;CACtB,eAAe;CACf,iBAAiB;CACjB,kBAAkB;CAClB,wBAAwB;CACxB,qBAAqB;CAErB,WAAW;CACX,gBAAgB;CAChB,qBAAqB;CACrB,cAAc;CACd,gBAAgB;CAChB,iBAAiB;CACjB,oBAAoB;CAGpB,cAAc;CACd,cAAc;CACd,cAAc;CACd,cAAc;CAGd,WAAW;CACX,gBAAgB;CAChB,qBAAqB;CACrB,cAAc;CACd,gBAAgB;CAChB,iBAAiB;CACjB,uBAAuB;CACvB,oBAAoB;CAGpB,YAAY;CACZ,iBAAiB;CACjB,sBAAsB;CACtB,eAAe;CACf,iBAAiB;CACjB,kBAAkB;CAClB,wBAAwB;CACxB,qBAAqB;CAGrB,YAAY;CACZ,iBAAiB;CACjB,sBAAsB;CACtB,eAAe;CACf,iBAAiB;CACjB,kBAAkB;CAClB,wBAAwB;CACxB,qBAAqB;CAGrB,SAAS;CACT,cAAc;CACd,mBAAmB;CACnB,YAAY;CACZ,cAAc;CACd,eAAe;CACf,qBAAqB;CACrB,kBAAkB;CACnB;;;;;;;;;;AAWD,IAAI,mBAAkC;AAEtC,SAAgB,iBAAyB;AACvC,KAAI,CAAC,iBACH,oBAAmB;EACjB,GAAG,kBAAkB;EACrB,GAAG;EACJ;AAEH,QAAO;;AAGT,MAAa,eAAuB,WAAW,eAAe"}
1
+ {"version":3,"file":"colors.js","names":[],"sources":["../../src/tokens/colors.ts"],"sourcesContent":["import { BASE_TOKENS } from './base';\nimport { lazyStyles } from './lazy-styles';\nimport { getPaletteTokens, renderPaletteTokens } from './palette';\nimport { getPaletteVersion } from './palette-config';\nimport { SHADOW_TOKENS } from './shadows';\n\nimport type { Styles, Tokens } from '@tenphi/tasty';\nimport type { RenderPaletteOptions } from './palette';\n\n/**\n * Color tokens with `#` prefix for tasty color definitions.\n *\n * The base values come from the Glaze-generated palette (`palette.ts`):\n * `#surface`, `#surface-text*`, `#border`, `#focus`, `#disabled`, `#pink`,\n * `#shadow-*`, `#overlay`, the unprefixed `#accent-*` family, and the per-theme\n * `#primary-*` / `#purple-*` / `#success-*` / `#danger-*` / `#warning-*` /\n * `#note-*` families.\n *\n * Each Glaze token is a state map (`{ '': '...', '@dark': '...', '@hc': '...' }`),\n * giving us light, dark, and high-contrast variants for free. The `@dark` /\n * `@hc` predefined states are wired up globally in `src/components/Root.tsx`.\n *\n * The aliases below preserve backward compatibility with every legacy\n * `#name` used across components, stories, and tests. Each alias resolves\n * to a current Glaze token via tasty's `#token` reference syntax.\n */\n\nconst LEGACY_ALIASES: Styles = {\n // ---- Neutral text scale (legacy `#dark*`) ----\n '#text': '#surface-text-soft',\n '#dark': '#surface-text',\n '#dark-01': '#surface-text',\n '#dark-02': '#surface-text-soft',\n '#dark-03': '#surface-text-soft-2',\n '#dark-04': '#placeholder',\n '#dark-05': '#border',\n\n // Fixed-mode counterpart to `#dark`. Resolves to the same L≈12 surface\n // but uses Glaze `mode: 'fixed'` so it does NOT invert in dark schemes.\n // Use this whenever the design intentionally pins a dark color regardless\n // of scheme. Points at `#special-surface` (`mode: 'fixed'`, L=12),\n // emitted by the standalone `specialTheme` in `palette.ts` — the canonical\n // source of fixed-mode color tokens for `special`-variant components.\n '#fixed-dark': '#special-surface',\n\n // Fixed-mode counterpart to `#primary-text`. `#primary-text` is anchored\n // to `surface` with `mode: 'auto'`, so it flips to a *light* purple in\n // dark schemes (correct on body content, which also inverts). When the\n // local fill is a fixed color instead (an always-white pill, etc.), the\n // adaptive text loses contrast (light purple on white) in dark mode.\n // Points at `#special-accent-text` (`mode: 'fixed'`, cr 6–8.5 vs fixed\n // white) — a dark purple readable on a white surface that stays put\n // across schemes.\n '#fixed-primary-text': '#special-accent-text',\n\n // ---- Misc neutral ----\n '#minor': '#surface-text-soft.65',\n '#shadow': '#shadow-md',\n '#light': '#surface-3',\n '#dark-bg': '#surface-2',\n '#clear': 'transparent',\n\n // Pink: independent hue, scheme-static (no Glaze adaptation). Kept as a raw\n // literal rather than folded into a theme — nothing in the palette emits this\n // hue as a standalone token, and it is a documented public alias (see\n // `Usage.docs.mdx`, `tasty.config.ts`, and the `pink` key in\n // `tasty-augment.d.ts`), so dropping it would silently break consumer styles\n // while the types still advertised it.\n '#pink': 'okhsl(5 100% 67%)',\n\n // ---- Disabled state aliases ----\n // `#disabled-surface` and `#disabled-surface-text` are emitted directly by\n // the Glaze palette (`palette.ts`) as scheme-symmetric, contrast-driven\n // tokens — no alias needed here. `#disabled` stays as a brand-tinted\n // backwards-compat anchor for the per-theme `#<theme>-disabled` aliases below.\n\n // ---- Primary / Purple legacy ----\n '#primary': '#primary-accent-surface',\n '#primary-text': '#primary-accent-text',\n '#primary-text-soft': '#primary-accent-text-soft',\n '#primary-bg': '#primary-surface',\n '#primary-icon': '#primary-accent-icon',\n '#primary-hover': '#primary-accent-surface-hover',\n '#primary-desaturated': '#primary-accent-surface-2',\n '#primary-disabled': '#disabled',\n\n '#purple': '#purple-accent-surface',\n '#purple-text': '#purple-accent-text',\n '#purple-text-soft': '#purple-accent-text-soft',\n '#purple-bg': '#purple-surface',\n '#purple-icon': '#purple-accent-icon',\n '#purple-hover': '#purple-accent-surface-hover',\n '#purple-disabled': '#disabled',\n\n // Purple scale (gradient/accent shades) — mapped to the accent-surface ramp.\n '#purple-01': '#purple-accent-surface',\n '#purple-02': '#purple-accent-surface-2',\n '#purple-03': '#purple-accent-surface-3',\n '#purple-04': '#purple-surface',\n\n // ---- Danger ----\n '#danger': '#danger-accent-surface',\n '#danger-text': '#danger-accent-text',\n '#danger-text-soft': '#danger-accent-text-soft',\n '#danger-bg': '#danger-surface',\n '#danger-icon': '#danger-accent-icon',\n '#danger-hover': '#danger-accent-surface-hover',\n '#danger-desaturated': '#danger-accent-surface-2',\n '#danger-disabled': '#disabled',\n\n // ---- Success ----\n '#success': '#success-accent-surface',\n '#success-text': '#success-accent-text',\n '#success-text-soft': '#success-accent-text-soft',\n '#success-bg': '#success-surface',\n '#success-icon': '#success-accent-icon',\n '#success-hover': '#success-accent-surface-hover',\n '#success-desaturated': '#success-accent-surface-2',\n '#success-disabled': '#disabled',\n\n // ---- Warning ----\n '#warning': '#warning-accent-surface',\n '#warning-text': '#warning-accent-text',\n '#warning-text-soft': '#warning-accent-text-soft',\n '#warning-bg': '#warning-surface',\n '#warning-icon': '#warning-accent-icon',\n '#warning-hover': '#warning-accent-surface-hover',\n '#warning-desaturated': '#warning-accent-surface-2',\n '#warning-disabled': '#disabled',\n\n // ---- Note ----\n '#note': '#note-accent-surface',\n '#note-text': '#note-accent-text',\n '#note-text-soft': '#note-accent-text-soft',\n '#note-bg': '#note-surface',\n '#note-icon': '#note-accent-icon',\n '#note-hover': '#note-accent-surface-hover',\n '#note-desaturated': '#note-accent-surface-2',\n '#note-disabled': '#disabled',\n};\n\n/**\n * Combined color token map: Glaze-generated palette + legacy aliases.\n *\n * Memoized against the palette config version, so a runtime `setPaletteConfig()`\n * invalidates it while repeated reads stay free. Prefer {@link getColorTokens}\n * in new code.\n *\n * `#white` and `#black` are intentionally omitted — they are built-in\n * tasty named colors and resolve automatically.\n */\nlet colorTokensCache: Styles | null = null;\nlet cachedVersion = -1;\n\nexport function getColorTokens(): Styles {\n const version = getPaletteVersion();\n\n if (!colorTokensCache || cachedVersion !== version) {\n colorTokensCache = {\n ...getPaletteTokens(),\n ...LEGACY_ALIASES,\n };\n cachedVersion = version;\n }\n return colorTokensCache;\n}\n\nexport const COLOR_TOKENS: Styles = lazyStyles(getColorTokens);\n\n/**\n * Tokens that live outside the palette but whose *values* reference a palette\n * color, so a region preview has to re-declare them. Kept by reference, exactly\n * as `<Root>` declares them — see {@link renderColorTokens}.\n *\n * Sourced from `./shadows` and the scrollbar block of `./base`; if either grows a\n * new colour-referencing token, add it here too.\n */\nconst COLOR_DEPENDENT_TOKENS: Styles = {\n ...SHADOW_TOKENS,\n '#scrollbar-thumb': BASE_TOKENS['#scrollbar-thumb'],\n '#scrollbar-outline': BASE_TOKENS['#scrollbar-outline'],\n '#scrollbar-bg': BASE_TOKENS['#scrollbar-bg'],\n '#scrollbar-corner': BASE_TOKENS['#scrollbar-corner'],\n};\n\n/**\n * Render every UI Kit color for one config and one scheme, as flat literal\n * values ready to apply to a **region** via a tasty `tokens` prop.\n *\n * ```tsx\n * const preview = useMemo(\n * () => renderColorTokens({ hue: 210, scheme: 'dark' }),\n * [],\n * );\n *\n * <Block tokens={preview} fill=\"#surface\" color=\"#surface-text\">\n * …renders in the previewed theme, inside a light page…\n * </Block>\n * ```\n *\n * Config fields merge over the *current* palette config, so\n * `renderColorTokens({ scheme: 'dark' })` previews the active theme in dark\n * without restating it. Nothing is applied globally — the live palette is\n * untouched.\n *\n * The legacy aliases are included **by reference** (`'#dark': '#surface-text'`),\n * not resolved: tasty re-declares them on the region, so each `var()` resolves\n * against that region's own overridden value. Resolving them here would instead\n * freeze them to the outer theme's colors.\n *\n * The shadow tokens and the scrollbar colors come along for the same reason: their\n * values embed a palette color (`$card-shadow` → `#shadow-md`, `#scrollbar-thumb`\n * → `#text.5`). They are declared on `<Root>`, so CSS has already substituted the\n * outer theme's colors into them by the time a region inherits — re-declaring them\n * here is what lets them re-resolve.\n *\n * Not included: typography, spacing, sizes and layout. Nothing in their values\n * references a color, so a region inherits them from `<Root>` unchanged.\n *\n * The result is memoized for the last config rendered, but callers driving this\n * from state should still `useMemo` — a rebuild resolves the whole palette.\n */\nexport function renderColorTokens(options?: RenderPaletteOptions): Tokens {\n return {\n ...renderPaletteTokens(options),\n ...(LEGACY_ALIASES as Tokens),\n ...(COLOR_DEPENDENT_TOKENS as Tokens),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,MAAM,iBAAyB;CAE7B,SAAS;CACT,SAAS;CACT,YAAY;CACZ,YAAY;CACZ,YAAY;CACZ,YAAY;CACZ,YAAY;CAQZ,eAAe;CAUf,uBAAuB;CAGvB,UAAU;CACV,WAAW;CACX,UAAU;CACV,YAAY;CACZ,UAAU;CAQV,SAAS;CAST,YAAY;CACZ,iBAAiB;CACjB,sBAAsB;CACtB,eAAe;CACf,iBAAiB;CACjB,kBAAkB;CAClB,wBAAwB;CACxB,qBAAqB;CAErB,WAAW;CACX,gBAAgB;CAChB,qBAAqB;CACrB,cAAc;CACd,gBAAgB;CAChB,iBAAiB;CACjB,oBAAoB;CAGpB,cAAc;CACd,cAAc;CACd,cAAc;CACd,cAAc;CAGd,WAAW;CACX,gBAAgB;CAChB,qBAAqB;CACrB,cAAc;CACd,gBAAgB;CAChB,iBAAiB;CACjB,uBAAuB;CACvB,oBAAoB;CAGpB,YAAY;CACZ,iBAAiB;CACjB,sBAAsB;CACtB,eAAe;CACf,iBAAiB;CACjB,kBAAkB;CAClB,wBAAwB;CACxB,qBAAqB;CAGrB,YAAY;CACZ,iBAAiB;CACjB,sBAAsB;CACtB,eAAe;CACf,iBAAiB;CACjB,kBAAkB;CAClB,wBAAwB;CACxB,qBAAqB;CAGrB,SAAS;CACT,cAAc;CACd,mBAAmB;CACnB,YAAY;CACZ,cAAc;CACd,eAAe;CACf,qBAAqB;CACrB,kBAAkB;CACnB;;;;;;;;;;;AAYD,IAAI,mBAAkC;AACtC,IAAI,gBAAgB;AAEpB,SAAgB,iBAAyB;CACvC,MAAM,UAAU,mBAAmB;AAEnC,KAAI,CAAC,oBAAoB,kBAAkB,SAAS;AAClD,qBAAmB;GACjB,GAAG,kBAAkB;GACrB,GAAG;GACJ;AACD,kBAAgB;;AAElB,QAAO;;AAGT,MAAa,eAAuB,WAAW,eAAe;;;;;;;;;AAU9D,MAAM,yBAAiC;CACrC,GAAG;CACH,oBAAoB,YAAY;CAChC,sBAAsB,YAAY;CAClC,iBAAiB,YAAY;CAC7B,qBAAqB,YAAY;CAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCD,SAAgB,kBAAkB,SAAwC;AACxE,QAAO;EACL,GAAG,oBAAoB,QAAQ;EAC/B,GAAI;EACJ,GAAI;EACL"}
@@ -1,7 +1,8 @@
1
1
 
2
+ import { DEFAULT_PALETTE_CONFIG, PaletteCodeSeed, PaletteConfig, PaletteThemeName, PaletteThemeSeed, ResolvedPaletteConfig, getPaletteConfig, getPaletteConfigInput, invalidatePaletteTokens, resetPaletteConfig, resolvePaletteConfig, setPaletteConfig, subscribePaletteConfig, usePaletteConfig, usePaletteVersion } from "./palette-config.js";
2
3
  import { SIZES, SIZE_NAME_TO_KEY, SIZE_TOKENS, SizeKey, SizeName } from "./sizes.js";
3
- import { COLOR_TOKENS, getColorTokens } from "./colors.js";
4
- import { PALETTE_TOKENS, getPaletteTokens } from "./palette.js";
4
+ import { PALETTE_TOKENS, RenderPaletteOptions, getCodeTheme, getPalette, getPaletteTokens, renderPaletteTokens } from "./palette.js";
5
+ import { COLOR_TOKENS, getColorTokens, renderColorTokens } from "./colors.js";
5
6
  import { SPACE_TOKENS } from "./spacing.js";
6
7
  import { SHADOW_TOKENS } from "./shadows.js";
7
8
  import { LAYOUT_TOKENS } from "./layout.js";
@@ -1,10 +1,11 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.152.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.154.0 | Cube Dev Team */
2
+ import { DEFAULT_PALETTE_CONFIG, getPaletteConfig, getPaletteConfigInput, getPaletteVersion, invalidatePaletteTokens, resetPaletteConfig, resolvePaletteConfig, setPaletteConfig, subscribePaletteConfig, usePaletteConfig, usePaletteVersion } from "./palette-config.js";
2
3
  import { BASE_TOKENS } from "./base.js";
3
4
  import { lazyStyles } from "./lazy-styles.js";
4
- import { PALETTE_TOKENS, getPaletteTokens } from "./palette.js";
5
- import { COLOR_TOKENS, getColorTokens } from "./colors.js";
6
- import { LAYOUT_TOKENS } from "./layout.js";
5
+ import { PALETTE_TOKENS, getCodeTheme, getPalette, getPaletteTokens, renderPaletteTokens } from "./palette.js";
7
6
  import { SHADOW_TOKENS } from "./shadows.js";
7
+ import { COLOR_TOKENS, getColorTokens, renderColorTokens } from "./colors.js";
8
+ import { LAYOUT_TOKENS } from "./layout.js";
8
9
  import { SIZES, SIZE_NAME_TO_KEY, SIZE_TOKENS } from "./sizes.js";
9
10
  import { SPACE_TOKENS } from "./spacing.js";
10
11
  import { TYPOGRAPHY_PRESETS } from "./typography.js";
@@ -30,9 +31,10 @@ import { generateTypographyTokens } from "@tenphi/tasty";
30
31
  * All design tokens combined into a single Styles object.
31
32
  * Keys use $ prefix for CSS custom properties.
32
33
  *
33
- * Color tokens resolve against the live glaze config on first call (see
34
- * {@link getColorTokens}). Prefer this over the lazy {@link TOKENS} proxy
35
- * when applying styles from React (`GlobalStyles`).
34
+ * Color tokens resolve against the current palette config (see
35
+ * {@link getColorTokens}), and this map is memoized against that config's
36
+ * version so `setPaletteConfig()` invalidates it. Prefer this over the lazy
37
+ * {@link TOKENS} proxy when applying styles from React (`GlobalStyles`).
36
38
  *
37
39
  * Includes:
38
40
  * - Base tokens ($gap, $radius, etc.)
@@ -44,16 +46,21 @@ import { generateTypographyTokens } from "@tenphi/tasty";
44
46
  * - Color tokens ($purple-color, $purple-color-rgb, etc.)
45
47
  */
46
48
  let tokensCache = null;
49
+ let cachedVersion = -1;
47
50
  function getTokens() {
48
- if (!tokensCache) tokensCache = {
49
- ...BASE_TOKENS,
50
- ...SPACE_TOKENS,
51
- ...SIZE_TOKENS,
52
- ...SHADOW_TOKENS,
53
- ...LAYOUT_TOKENS,
54
- ...generateTypographyTokens(TYPOGRAPHY_PRESETS),
55
- ...getColorTokens()
56
- };
51
+ const version = getPaletteVersion();
52
+ if (!tokensCache || cachedVersion !== version) {
53
+ tokensCache = {
54
+ ...BASE_TOKENS,
55
+ ...SPACE_TOKENS,
56
+ ...SIZE_TOKENS,
57
+ ...SHADOW_TOKENS,
58
+ ...LAYOUT_TOKENS,
59
+ ...generateTypographyTokens(TYPOGRAPHY_PRESETS),
60
+ ...getColorTokens()
61
+ };
62
+ cachedVersion = version;
63
+ }
57
64
  return tokensCache;
58
65
  }
59
66
  /** Lazy proxy of {@link getTokens}. Prefer `getTokens()` in new code. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/tokens/index.ts"],"sourcesContent":["/**\n * Design tokens for the Cube UI Kit.\n *\n * This module exports all design tokens used throughout the design system.\n * All token keys use $ prefix for CSS custom properties.\n *\n * Categories:\n * - Colors: Base color palette with -color and -color-rgb variants\n * - Typography: Font presets for headings, text, paragraphs, etc.\n * - Sizes: Component size values (XS, SM, MD, LG, XL)\n * - Spacing: Space tokens using gap multipliers\n * - Shadows: Shadow definitions for elevation\n * - Layout: Common layout dimensions\n * - Base: Core design system values\n */\n\nimport { generateTypographyTokens } from '@tenphi/tasty';\n\nimport { BASE_TOKENS } from './base';\nimport { getColorTokens } from './colors';\nimport { LAYOUT_TOKENS } from './layout';\nimport { lazyStyles } from './lazy-styles';\nimport { SHADOW_TOKENS } from './shadows';\nimport { SIZE_TOKENS } from './sizes';\nimport { SPACE_TOKENS } from './spacing';\nimport { TYPOGRAPHY_PRESETS } from './typography';\n\nimport type { Styles } from '@tenphi/tasty';\nimport type { SizeKey, SizeName } from './sizes';\n\n/**\n * All design tokens combined into a single Styles object.\n * Keys use $ prefix for CSS custom properties.\n *\n * Color tokens resolve against the live glaze config on first call (see\n * {@link getColorTokens}). Prefer this over the lazy {@link TOKENS} proxy\n * when applying styles from React (`GlobalStyles`).\n *\n * Includes:\n * - Base tokens ($gap, $radius, etc.)\n * - Space tokens ($space-xs, $space-sm, etc.)\n * - Size tokens ($size-xs, $size-sm, etc.)\n * - Shadow tokens ($shadow, $item-shadow, etc.)\n * - Layout tokens ($max-content-width, $topbar-height, etc.)\n * - Typography tokens ($h1-font-size, $t3-line-height, etc.)\n * - Color tokens ($purple-color, $purple-color-rgb, etc.)\n */\nlet tokensCache: Styles | null = null;\n\nexport function getTokens(): Styles {\n if (!tokensCache) {\n tokensCache = {\n ...BASE_TOKENS,\n ...SPACE_TOKENS,\n ...SIZE_TOKENS,\n ...SHADOW_TOKENS,\n ...LAYOUT_TOKENS,\n ...generateTypographyTokens(TYPOGRAPHY_PRESETS),\n ...getColorTokens(),\n };\n }\n return tokensCache;\n}\n\n/** Lazy proxy of {@link getTokens}. Prefer `getTokens()` in new code. */\nexport const TOKENS: Styles = lazyStyles(getTokens);\n\n// Re-export category modules for direct access\nexport { COLOR_TOKENS, getColorTokens } from './colors';\nexport { getPaletteTokens, PALETTE_TOKENS } from './palette';\nexport { SIZES, SIZE_NAME_TO_KEY, SIZE_TOKENS } from './sizes';\nexport type { SizeKey, SizeName } from './sizes';\nexport { SPACE_TOKENS } from './spacing';\nexport { SHADOW_TOKENS } from './shadows';\nexport { LAYOUT_TOKENS } from './layout';\nexport { BASE_TOKENS } from './base';\nexport { TYPOGRAPHY_PRESETS } from './typography';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CA,IAAI,cAA6B;AAEjC,SAAgB,YAAoB;AAClC,KAAI,CAAC,YACH,eAAc;EACZ,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG;EACH,GAAG,yBAAyB,mBAAmB;EAC/C,GAAG,gBAAgB;EACpB;AAEH,QAAO;;;AAIT,MAAa,SAAiB,WAAW,UAAU"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/tokens/index.ts"],"sourcesContent":["/**\n * Design tokens for the Cube UI Kit.\n *\n * This module exports all design tokens used throughout the design system.\n * All token keys use $ prefix for CSS custom properties.\n *\n * Categories:\n * - Colors: Base color palette with -color and -color-rgb variants\n * - Typography: Font presets for headings, text, paragraphs, etc.\n * - Sizes: Component size values (XS, SM, MD, LG, XL)\n * - Spacing: Space tokens using gap multipliers\n * - Shadows: Shadow definitions for elevation\n * - Layout: Common layout dimensions\n * - Base: Core design system values\n */\n\nimport { generateTypographyTokens } from '@tenphi/tasty';\n\nimport { BASE_TOKENS } from './base';\nimport { getColorTokens } from './colors';\nimport { LAYOUT_TOKENS } from './layout';\nimport { lazyStyles } from './lazy-styles';\nimport { getPaletteVersion } from './palette-config';\nimport { SHADOW_TOKENS } from './shadows';\nimport { SIZE_TOKENS } from './sizes';\nimport { SPACE_TOKENS } from './spacing';\nimport { TYPOGRAPHY_PRESETS } from './typography';\n\nimport type { Styles } from '@tenphi/tasty';\nimport type { SizeKey, SizeName } from './sizes';\n\n/**\n * All design tokens combined into a single Styles object.\n * Keys use $ prefix for CSS custom properties.\n *\n * Color tokens resolve against the current palette config (see\n * {@link getColorTokens}), and this map is memoized against that config's\n * version so `setPaletteConfig()` invalidates it. Prefer this over the lazy\n * {@link TOKENS} proxy when applying styles from React (`GlobalStyles`).\n *\n * Includes:\n * - Base tokens ($gap, $radius, etc.)\n * - Space tokens ($space-xs, $space-sm, etc.)\n * - Size tokens ($size-xs, $size-sm, etc.)\n * - Shadow tokens ($shadow, $item-shadow, etc.)\n * - Layout tokens ($max-content-width, $topbar-height, etc.)\n * - Typography tokens ($h1-font-size, $t3-line-height, etc.)\n * - Color tokens ($purple-color, $purple-color-rgb, etc.)\n */\nlet tokensCache: Styles | null = null;\nlet cachedVersion = -1;\n\nexport function getTokens(): Styles {\n const version = getPaletteVersion();\n\n if (!tokensCache || cachedVersion !== version) {\n tokensCache = {\n ...BASE_TOKENS,\n ...SPACE_TOKENS,\n ...SIZE_TOKENS,\n ...SHADOW_TOKENS,\n ...LAYOUT_TOKENS,\n ...generateTypographyTokens(TYPOGRAPHY_PRESETS),\n ...getColorTokens(),\n };\n cachedVersion = version;\n }\n return tokensCache;\n}\n\n/** Lazy proxy of {@link getTokens}. Prefer `getTokens()` in new code. */\nexport const TOKENS: Styles = lazyStyles(getTokens);\n\n// Re-export category modules for direct access\nexport { COLOR_TOKENS, getColorTokens, renderColorTokens } from './colors';\nexport {\n getCodeTheme,\n getPalette,\n getPaletteTokens,\n PALETTE_TOKENS,\n renderPaletteTokens,\n} from './palette';\nexport type { RenderPaletteOptions } from './palette';\nexport {\n DEFAULT_PALETTE_CONFIG,\n getPaletteConfig,\n getPaletteConfigInput,\n invalidatePaletteTokens,\n resetPaletteConfig,\n resolvePaletteConfig,\n setPaletteConfig,\n subscribePaletteConfig,\n usePaletteConfig,\n usePaletteVersion,\n} from './palette-config';\nexport type {\n PaletteCodeSeed,\n PaletteConfig,\n PaletteThemeName,\n PaletteThemeSeed,\n ResolvedPaletteConfig,\n} from './palette-config';\nexport { SIZES, SIZE_NAME_TO_KEY, SIZE_TOKENS } from './sizes';\nexport type { SizeKey, SizeName } from './sizes';\nexport { SPACE_TOKENS } from './spacing';\nexport { SHADOW_TOKENS } from './shadows';\nexport { LAYOUT_TOKENS } from './layout';\nexport { BASE_TOKENS } from './base';\nexport { TYPOGRAPHY_PRESETS } from './typography';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDA,IAAI,cAA6B;AACjC,IAAI,gBAAgB;AAEpB,SAAgB,YAAoB;CAClC,MAAM,UAAU,mBAAmB;AAEnC,KAAI,CAAC,eAAe,kBAAkB,SAAS;AAC7C,gBAAc;GACZ,GAAG;GACH,GAAG;GACH,GAAG;GACH,GAAG;GACH,GAAG;GACH,GAAG,yBAAyB,mBAAmB;GAC/C,GAAG,gBAAgB;GACpB;AACD,kBAAgB;;AAElB,QAAO;;;AAIT,MAAa,SAAiB,WAAW,UAAU"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.152.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.154.0 | Cube Dev Team */
2
2
  //#region src/tokens/layout.ts
3
3
  /**
4
4
  * Layout-related tokens for common UI dimensions.
@@ -1,13 +1,17 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.152.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.154.0 | Cube Dev Team */
2
2
  //#region src/tokens/lazy-styles.ts
3
3
  /**
4
- * Proxy that materializes a `Styles` map on first property / enumeration
5
- * access. Used so token exports stay import-safe while resolution can wait
6
- * until after a host app calls `glaze.configure(...)`.
4
+ * Proxy that defers to `factory()` on every property / enumeration access.
5
+ * Used so token exports stay import-safe while resolution waits until after a
6
+ * host app calls `setPaletteConfig(...)` / `glaze.configure(...)`.
7
+ *
8
+ * The proxy holds no cache of its own — that is deliberate. Every factory here
9
+ * memoizes against the palette config version, so delegating on each access is
10
+ * what keeps these exports live when the palette is re-seeded at runtime. A
11
+ * factory passed in must memoize.
7
12
  */
8
13
  function lazyStyles(factory) {
9
- let cache;
10
- const resolve = () => cache ??= factory();
14
+ const resolve = () => factory();
11
15
  return new Proxy({}, {
12
16
  get(_target, prop) {
13
17
  if (prop === Symbol.toStringTag) return "Object";
@@ -1 +1 @@
1
- {"version":3,"file":"lazy-styles.js","names":[],"sources":["../../src/tokens/lazy-styles.ts"],"sourcesContent":["import type { Styles } from '@tenphi/tasty';\n\n/**\n * Proxy that materializes a `Styles` map on first property / enumeration\n * access. Used so token exports stay import-safe while resolution can wait\n * until after a host app calls `glaze.configure(...)`.\n */\nexport function lazyStyles(factory: () => Styles): Styles {\n let cache: Styles | undefined;\n const resolve = () => (cache ??= factory());\n return new Proxy({} as Styles, {\n get(_target, prop) {\n if (prop === Symbol.toStringTag) return 'Object';\n return Reflect.get(resolve(), prop);\n },\n ownKeys() {\n return Reflect.ownKeys(resolve());\n },\n getOwnPropertyDescriptor(_target, prop) {\n return Object.getOwnPropertyDescriptor(resolve(), prop);\n },\n has(_target, prop) {\n return Reflect.has(resolve(), prop);\n },\n getPrototypeOf() {\n return Object.prototype;\n },\n });\n}\n"],"mappings":";;;;;;;AAOA,SAAgB,WAAW,SAA+B;CACxD,IAAI;CACJ,MAAM,gBAAiB,UAAU,SAAS;AAC1C,QAAO,IAAI,MAAM,EAAE,EAAY;EAC7B,IAAI,SAAS,MAAM;AACjB,OAAI,SAAS,OAAO,YAAa,QAAO;AACxC,UAAO,QAAQ,IAAI,SAAS,EAAE,KAAK;;EAErC,UAAU;AACR,UAAO,QAAQ,QAAQ,SAAS,CAAC;;EAEnC,yBAAyB,SAAS,MAAM;AACtC,UAAO,OAAO,yBAAyB,SAAS,EAAE,KAAK;;EAEzD,IAAI,SAAS,MAAM;AACjB,UAAO,QAAQ,IAAI,SAAS,EAAE,KAAK;;EAErC,iBAAiB;AACf,UAAO,OAAO;;EAEjB,CAAC"}
1
+ {"version":3,"file":"lazy-styles.js","names":[],"sources":["../../src/tokens/lazy-styles.ts"],"sourcesContent":["import type { Styles } from '@tenphi/tasty';\n\n/**\n * Proxy that defers to `factory()` on every property / enumeration access.\n * Used so token exports stay import-safe while resolution waits until after a\n * host app calls `setPaletteConfig(...)` / `glaze.configure(...)`.\n *\n * The proxy holds no cache of its own — that is deliberate. Every factory here\n * memoizes against the palette config version, so delegating on each access is\n * what keeps these exports live when the palette is re-seeded at runtime. A\n * factory passed in must memoize.\n */\nexport function lazyStyles(factory: () => Styles): Styles {\n const resolve = () => factory();\n return new Proxy({} as Styles, {\n get(_target, prop) {\n if (prop === Symbol.toStringTag) return 'Object';\n return Reflect.get(resolve(), prop);\n },\n ownKeys() {\n return Reflect.ownKeys(resolve());\n },\n getOwnPropertyDescriptor(_target, prop) {\n return Object.getOwnPropertyDescriptor(resolve(), prop);\n },\n has(_target, prop) {\n return Reflect.has(resolve(), prop);\n },\n getPrototypeOf() {\n return Object.prototype;\n },\n });\n}\n"],"mappings":";;;;;;;;;;;;AAYA,SAAgB,WAAW,SAA+B;CACxD,MAAM,gBAAgB,SAAS;AAC/B,QAAO,IAAI,MAAM,EAAE,EAAY;EAC7B,IAAI,SAAS,MAAM;AACjB,OAAI,SAAS,OAAO,YAAa,QAAO;AACxC,UAAO,QAAQ,IAAI,SAAS,EAAE,KAAK;;EAErC,UAAU;AACR,UAAO,QAAQ,QAAQ,SAAS,CAAC;;EAEnC,yBAAyB,SAAS,MAAM;AACtC,UAAO,OAAO,yBAAyB,SAAS,EAAE,KAAK;;EAEzD,IAAI,SAAS,MAAM;AACjB,UAAO,QAAQ,IAAI,SAAS,EAAE,KAAK;;EAErC,iBAAiB;AACf,UAAO,OAAO;;EAEjB,CAAC"}
@@ -0,0 +1,222 @@
1
+
2
+ //#region src/tokens/palette-config.d.ts
3
+ /** Hue / saturation seed override for one colored theme. */
4
+ interface PaletteThemeSeed {
5
+ /** Hue in degrees (0–360). */
6
+ hue?: number;
7
+ /** Saturation (0–100). Defaults to the palette-level `saturation`. */
8
+ saturation?: number;
9
+ }
10
+ /**
11
+ * The `code-*` syntax family takes a saturation and nothing else.
12
+ *
13
+ * Its hues are absolute literals by design, so syntax colors never rotate with the
14
+ * brand — strings would collide with numbers the moment the brand went green. And
15
+ * unlike every other theme, its saturation does **not** inherit the palette-level
16
+ * one: the code palette is calibrated once and stays there, so re-seeding the app
17
+ * cannot quietly wash out a code block.
18
+ */
19
+ interface PaletteCodeSeed {
20
+ /** Saturation (0–100). Defaults to {@link DEFAULT_SATURATION}, not to `saturation`. */
21
+ saturation?: number;
22
+ }
23
+ /** Names of the themes whose seeds can be overridden individually. */
24
+ type PaletteThemeName = 'success' | 'danger' | 'warning' | 'note' | 'code';
25
+ /**
26
+ * Palette tuning. Every field is optional; omitted fields keep their default,
27
+ * and per-theme fields left unset inherit the palette-level value.
28
+ */
29
+ interface PaletteConfig {
30
+ /**
31
+ * Accent hue in degrees (0–360) — the brand.
32
+ *
33
+ * Drives the `accent-*` family on every theme, `primary` / `purple` / `special`,
34
+ * and the brand-tinted odds and ends (`focus`, the loading faces, the disabled
35
+ * chip). Also the default for {@link PaletteConfig.baseHue}.
36
+ */
37
+ hue?: number;
38
+ /**
39
+ * Hue of the **base** zone in degrees (0–360): the neutral chrome — `surface`
40
+ * and its ladder, the `surface-text*` ramp, `border`, `placeholder`. Defaults to
41
+ * `hue`, so the chrome carries a faint tint of the brand unless you say otherwise.
42
+ *
43
+ * Splitting it lets the chrome sit on a different hue from the accent — a warm
44
+ * grey UI with a cool blue brand, say. Only the `default` theme is affected: a
45
+ * colored theme's tinted `surface` deliberately follows *its own* hue, because a
46
+ * danger banner should read as red.
47
+ */
48
+ baseHue?: number;
49
+ /**
50
+ * Seed saturation (0–100), and the fallback for every theme that does not set
51
+ * its own.
52
+ *
53
+ * One scale for the whole theme, by design. Every color's own `saturation` is a
54
+ * 0–1 factor of this seed — `surface` at 0.12, `border` at 0.175, the text ramp
55
+ * at 0.2, the accent family at ~1.0 — so moving it rescales the palette while
56
+ * keeping those proportions. Unlike hue, which is configured separately for the
57
+ * brand and for each status theme, saturation is deliberately not split: the
58
+ * ratio between a subtle surface tint and a saturated accent is part of the
59
+ * design.
60
+ */
61
+ saturation?: number;
62
+ /**
63
+ * Global. Widens the usable chroma range by relaxing the sRGB-safe limit,
64
+ * producing a softer, more even palette across hues. Glaze treats `pastel` as
65
+ * instance-level, so it is threaded into every theme.
66
+ */
67
+ pastel?: boolean;
68
+ /**
69
+ * Global. `'auto'` (the default) keeps the two-tier model: normal colors plus
70
+ * a separate high-contrast tier driven by `<html data-contrast="high">` /
71
+ * `prefers-contrast: more`.
72
+ *
73
+ * A number (0–100) replaces that switch with a slider — and, because a manual
74
+ * level already carries the contrast preference, **drops the high-contrast
75
+ * tier entirely**. `0` reproduces the normal output and `100` the
76
+ * high-contrast output, bit for bit.
77
+ */
78
+ contrastLevel?: number | 'auto';
79
+ /** Per-theme seed overrides. */
80
+ themes?: {
81
+ success?: PaletteThemeSeed;
82
+ danger?: PaletteThemeSeed;
83
+ warning?: PaletteThemeSeed;
84
+ note?: PaletteThemeSeed;
85
+ code?: PaletteCodeSeed;
86
+ };
87
+ }
88
+ /** {@link PaletteConfig} with every field resolved to a concrete value. */
89
+ interface ResolvedPaletteConfig {
90
+ hue: number;
91
+ baseHue: number;
92
+ saturation: number;
93
+ pastel: boolean;
94
+ contrastLevel: number | 'auto';
95
+ themes: {
96
+ success: {
97
+ hue: number;
98
+ saturation: number;
99
+ };
100
+ danger: {
101
+ hue: number;
102
+ saturation: number;
103
+ };
104
+ warning: {
105
+ hue: number;
106
+ saturation: number;
107
+ };
108
+ note: {
109
+ hue: number;
110
+ saturation: number;
111
+ };
112
+ code: {
113
+ saturation: number;
114
+ };
115
+ };
116
+ }
117
+ /**
118
+ * The palette as it ships, with no tuning applied. Frozen — it is the baseline
119
+ * every resolution falls back to, so a stray write to it would move the defaults
120
+ * for the whole process.
121
+ */
122
+ declare const DEFAULT_PALETTE_CONFIG: ResolvedPaletteConfig;
123
+ /**
124
+ * Set the palette config.
125
+ *
126
+ * **Replaces**, like `useState` — the config you pass *is* the config, resolved
127
+ * against the shipped defaults. Nothing accumulates, so a field you leave out is a
128
+ * field you do not have: dropping a customization means dropping it from the
129
+ * object, and re-applying the same object twice is the same as applying it once.
130
+ *
131
+ * ```ts
132
+ * setPaletteConfig({ hue: 200, baseHue: 60 });
133
+ * setPaletteConfig({ hue: 200 }); // baseHue is gone — back to inheriting `hue`
134
+ * ```
135
+ *
136
+ * To adjust one field of the config already in place — a slider in a settings UI —
137
+ * pass an updater. It receives the config as written, sparse, so spreading it
138
+ * preserves which fields are pinned and which still inherit:
139
+ *
140
+ * ```ts
141
+ * setPaletteConfig((config) => ({ ...config, hue: 200 }));
142
+ * ```
143
+ *
144
+ * The palette is rebuilt lazily on the next token read, and any mounted `<Root>`
145
+ * re-injects the token block — no component re-render is involved, because every
146
+ * color in the kit resolves through a CSS custom property.
147
+ */
148
+ declare function setPaletteConfig(config: PaletteConfig | ((previous: PaletteConfig) => PaletteConfig)): void;
149
+ /**
150
+ * Drop all tuning and restore the palette the kit ships with. Identical to
151
+ * `setPaletteConfig({})`; it exists to be readable at a call site.
152
+ */
153
+ declare function resetPaletteConfig(): void;
154
+ /**
155
+ * Force every token to re-resolve without changing the palette config.
156
+ *
157
+ * Only needed if you drive Glaze directly — `glaze.configure({ darkTone })` and
158
+ * the like. Glaze invalidates its own caches, but the kit's token maps are
159
+ * memoized against *this* module's version, so they need telling. Calling it
160
+ * before the first paint is unnecessary; nothing has been resolved yet.
161
+ */
162
+ declare function invalidatePaletteTokens(): void;
163
+ /** The current config, with every field resolved to a concrete value. */
164
+ declare function getPaletteConfig(): ResolvedPaletteConfig;
165
+ /**
166
+ * The config **as set**, sparse — omitted fields are the ones still inheriting.
167
+ *
168
+ * {@link getPaletteConfig} resolves everything to concrete values, which loses the
169
+ * distinction between "explicitly 80" and "80 because it follows the brand". A
170
+ * settings UI needs that distinction to show an inherited value as inherited, and
171
+ * to offer a way back:
172
+ *
173
+ * ```ts
174
+ * const pinned = getPaletteConfigInput().baseHue !== undefined;
175
+ *
176
+ * // Re-link it to the brand by dropping the field.
177
+ * setPaletteConfig(({ baseHue, ...config }) => config);
178
+ * ```
179
+ *
180
+ * It is also the value handed to a {@link setPaletteConfig} updater.
181
+ */
182
+ declare function getPaletteConfigInput(): PaletteConfig;
183
+ /**
184
+ * Resolve a patch **over** the current config, without applying it.
185
+ *
186
+ * This one layers, unlike {@link setPaletteConfig}: a preview wants "the theme in
187
+ * use, but in dark", so the fields it does not mention have to come from the live
188
+ * config rather than from the defaults. The store is not touched and no listener
189
+ * fires.
190
+ */
191
+ declare function resolvePaletteConfig(config?: PaletteConfig): ResolvedPaletteConfig;
192
+ /** Subscribe to palette config changes. Returns an unsubscribe function. */
193
+ declare function subscribePaletteConfig(listener: () => void): () => void;
194
+ /**
195
+ * Re-render on palette config changes. Returns the version, not the config, so
196
+ * the snapshot is a primitive and React never warns about an uncached snapshot.
197
+ */
198
+ declare function usePaletteVersion(): number;
199
+ /**
200
+ * Read and tune the palette from React, `useState`-style — including the part
201
+ * where the setter *replaces*. A control that changes one field wants the updater
202
+ * form, or it will drop every other field:
203
+ *
204
+ * ```tsx
205
+ * const [palette, setPalette] = usePaletteConfig();
206
+ *
207
+ * <HueSlider
208
+ * value={palette.hue}
209
+ * onChange={(hue) => setPalette((config) => ({ ...config, hue }))}
210
+ * />
211
+ * ```
212
+ *
213
+ * The first element is the *resolved* config, so `palette.hue` is always a number.
214
+ * The updater's argument is the sparse one — see {@link getPaletteConfigInput}.
215
+ *
216
+ * The config is global process state, so every consumer of this hook — and every
217
+ * mounted `<Root>` — sees the same palette.
218
+ */
219
+ declare function usePaletteConfig(): readonly [ResolvedPaletteConfig, typeof setPaletteConfig];
220
+ //#endregion
221
+ export { DEFAULT_PALETTE_CONFIG, PaletteCodeSeed, PaletteConfig, PaletteThemeName, PaletteThemeSeed, ResolvedPaletteConfig, getPaletteConfig, getPaletteConfigInput, invalidatePaletteTokens, resetPaletteConfig, resolvePaletteConfig, setPaletteConfig, subscribePaletteConfig, usePaletteConfig, usePaletteVersion };
222
+ //# sourceMappingURL=palette-config.d.ts.map