@cube-dev/ui-kit 0.182.0 → 0.183.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 (1124) hide show
  1. package/dist/CHANGELOG.md +10 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +48 -31
  3. package/dist/_internal/hooks/use-debounced-value.js.map +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +22 -7
  5. package/dist/_internal/hooks/use-deprecation-warning.js.map +1 -1
  6. package/dist/_internal/hooks/use-event.js +1 -1
  7. package/dist/_internal/hooks/use-event.js.map +1 -1
  8. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  9. package/dist/_internal/hooks/use-is-first-render.js.map +1 -1
  10. package/dist/_internal/hooks/use-sync-ref.js +12 -4
  11. package/dist/_internal/hooks/use-sync-ref.js.map +1 -1
  12. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  13. package/dist/_internal/hooks/use-timer/timer.js.map +1 -1
  14. package/dist/_internal/hooks/use-timer/use-timer.js +90 -20
  15. package/dist/_internal/hooks/use-timer/use-timer.js.map +1 -1
  16. package/dist/_internal/hooks/use-warn.js +4 -4
  17. package/dist/_internal/hooks/use-warn.js.map +1 -1
  18. package/dist/components/Block.js +29 -7
  19. package/dist/components/Block.js.map +1 -1
  20. package/dist/components/CollectionItem.js +1 -1
  21. package/dist/components/CollectionItem.js.map +1 -1
  22. package/dist/components/GlobalStyles.js +33 -9
  23. package/dist/components/GlobalStyles.js.map +1 -1
  24. package/dist/components/GridProvider.js +4 -4
  25. package/dist/components/GridProvider.js.map +1 -1
  26. package/dist/components/HiddenInput.js +1 -1
  27. package/dist/components/HiddenInput.js.map +1 -1
  28. package/dist/components/Root.js +137 -42
  29. package/dist/components/Root.js.map +1 -1
  30. package/dist/components/actions/Action/Action.js +20 -8
  31. package/dist/components/actions/Action/Action.js.map +1 -1
  32. package/dist/components/actions/Banner/Banner.js +91 -22
  33. package/dist/components/actions/Banner/Banner.js.map +1 -1
  34. package/dist/components/actions/Button/Button.js +5 -5
  35. package/dist/components/actions/Button/Button.js.map +1 -1
  36. package/dist/components/actions/ButtonGroup/ButtonGroup.js +15 -5
  37. package/dist/components/actions/ButtonGroup/ButtonGroup.js.map +1 -1
  38. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  39. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  40. package/dist/components/actions/ButtonSplit/context.js +1 -1
  41. package/dist/components/actions/ButtonSplit/context.js.map +1 -1
  42. package/dist/components/actions/CommandMenu/CommandMenu.js +76 -76
  43. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  44. package/dist/components/actions/CommandMenu/styled.js +1 -1
  45. package/dist/components/actions/CommandMenu/styled.js.map +1 -1
  46. package/dist/components/actions/ItemAction/ItemAction.js +205 -68
  47. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  48. package/dist/components/actions/ItemActionContext.js +26 -7
  49. package/dist/components/actions/ItemActionContext.js.map +1 -1
  50. package/dist/components/actions/ItemActionsWrapper.js +215 -84
  51. package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
  52. package/dist/components/actions/ItemButton/ItemButton.js +2 -2
  53. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  54. package/dist/components/actions/Link/Link.js +16 -7
  55. package/dist/components/actions/Link/Link.js.map +1 -1
  56. package/dist/components/actions/Menu/Menu.js +127 -72
  57. package/dist/components/actions/Menu/Menu.js.map +1 -1
  58. package/dist/components/actions/Menu/MenuItem.js +116 -43
  59. package/dist/components/actions/Menu/MenuItem.js.map +1 -1
  60. package/dist/components/actions/Menu/MenuSection.js +85 -30
  61. package/dist/components/actions/Menu/MenuSection.js.map +1 -1
  62. package/dist/components/actions/Menu/MenuTrigger.js +316 -112
  63. package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
  64. package/dist/components/actions/Menu/SubMenuTrigger.js +6 -6
  65. package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
  66. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  67. package/dist/components/actions/Menu/SubmenuTriggerContext.js.map +1 -1
  68. package/dist/components/actions/Menu/context.js +1 -1
  69. package/dist/components/actions/Menu/context.js.map +1 -1
  70. package/dist/components/actions/Menu/styled.js +1 -1
  71. package/dist/components/actions/Menu/styled.js.map +1 -1
  72. package/dist/components/actions/actions-run.js +1 -1
  73. package/dist/components/actions/actions-run.js.map +1 -1
  74. package/dist/components/actions/index.js +1 -1
  75. package/dist/components/actions/index.js.map +1 -1
  76. package/dist/components/actions/use-action.js +3 -3
  77. package/dist/components/actions/use-action.js.map +1 -1
  78. package/dist/components/actions/use-anchored-menu.js +6 -6
  79. package/dist/components/actions/use-anchored-menu.js.map +1 -1
  80. package/dist/components/actions/use-context-menu.js +12 -12
  81. package/dist/components/actions/use-context-menu.js.map +1 -1
  82. package/dist/components/content/ActiveZone/ActiveZone.js +84 -18
  83. package/dist/components/content/ActiveZone/ActiveZone.js.map +1 -1
  84. package/dist/components/content/Alert/Alert.js +18 -7
  85. package/dist/components/content/Alert/Alert.js.map +1 -1
  86. package/dist/components/content/Alert/use-alert.js +53 -15
  87. package/dist/components/content/Alert/use-alert.js.map +1 -1
  88. package/dist/components/content/Avatar/Avatar.js +51 -13
  89. package/dist/components/content/Avatar/Avatar.js.map +1 -1
  90. package/dist/components/content/Badge/Badge.js +43 -10
  91. package/dist/components/content/Badge/Badge.js.map +1 -1
  92. package/dist/components/content/Card/Card.js +29 -7
  93. package/dist/components/content/Card/Card.js.map +1 -1
  94. package/dist/components/content/Content.js +29 -7
  95. package/dist/components/content/Content.js.map +1 -1
  96. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +2 -2
  97. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
  98. package/dist/components/content/CopySnippet/CopySnippet.js +220 -60
  99. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  100. package/dist/components/content/Disclosure/Disclosure.js +453 -194
  101. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  102. package/dist/components/content/Divider.js +52 -14
  103. package/dist/components/content/Divider.js.map +1 -1
  104. package/dist/components/content/Footer.js +29 -7
  105. package/dist/components/content/Footer.js.map +1 -1
  106. package/dist/components/content/Header.js +29 -7
  107. package/dist/components/content/Header.js.map +1 -1
  108. package/dist/components/content/HotKeys/HotKeys.js +55 -27
  109. package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
  110. package/dist/components/content/InfoBadge/InfoBadge.js +8 -8
  111. package/dist/components/content/InfoBadge/InfoBadge.js.map +1 -1
  112. package/dist/components/content/InlineInput/InlineInput.js +429 -188
  113. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  114. package/dist/components/content/Item/Item.js +408 -151
  115. package/dist/components/content/Item/Item.js.map +1 -1
  116. package/dist/components/content/ItemBadge/ItemBadge.js +173 -59
  117. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  118. package/dist/components/content/ItemCard/ItemCard.js +34 -9
  119. package/dist/components/content/ItemCard/ItemCard.js.map +1 -1
  120. package/dist/components/content/Layout/GridLayout.js +38 -10
  121. package/dist/components/content/Layout/GridLayout.js.map +1 -1
  122. package/dist/components/content/Layout/Layout.js +30 -13
  123. package/dist/components/content/Layout/Layout.js.map +1 -1
  124. package/dist/components/content/Layout/LayoutBlock.js +33 -8
  125. package/dist/components/content/Layout/LayoutBlock.js.map +1 -1
  126. package/dist/components/content/Layout/LayoutCenter.js +48 -11
  127. package/dist/components/content/Layout/LayoutCenter.js.map +1 -1
  128. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  129. package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
  130. package/dist/components/content/Layout/LayoutContent.js +1 -1
  131. package/dist/components/content/Layout/LayoutContent.js.map +1 -1
  132. package/dist/components/content/Layout/LayoutContext.js +30 -21
  133. package/dist/components/content/Layout/LayoutContext.js.map +1 -1
  134. package/dist/components/content/Layout/LayoutFlex.js +33 -8
  135. package/dist/components/content/Layout/LayoutFlex.js.map +1 -1
  136. package/dist/components/content/Layout/LayoutFooter.js +53 -14
  137. package/dist/components/content/Layout/LayoutFooter.js.map +1 -1
  138. package/dist/components/content/Layout/LayoutGrid.js +48 -11
  139. package/dist/components/content/Layout/LayoutGrid.js.map +1 -1
  140. package/dist/components/content/Layout/LayoutHeader.js +211 -57
  141. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  142. package/dist/components/content/Layout/LayoutPane.js +60 -14
  143. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  144. package/dist/components/content/Layout/LayoutPanel.js +59 -17
  145. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  146. package/dist/components/content/Layout/LayoutPanelHeader.js +89 -27
  147. package/dist/components/content/Layout/LayoutPanelHeader.js.map +1 -1
  148. package/dist/components/content/Layout/LayoutToolbar.js +33 -8
  149. package/dist/components/content/Layout/LayoutToolbar.js.map +1 -1
  150. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +206 -119
  151. package/dist/components/content/Layout/hooks/useTinyScrollbar.js.map +1 -1
  152. package/dist/components/content/Layout/index.js +1 -1
  153. package/dist/components/content/Layout/index.js.map +1 -1
  154. package/dist/components/content/Layout/utils.js +1 -1
  155. package/dist/components/content/Layout/utils.js.map +1 -1
  156. package/dist/components/content/Paragraph.js +25 -9
  157. package/dist/components/content/Paragraph.js.map +1 -1
  158. package/dist/components/content/Placeholder/Placeholder.js +52 -14
  159. package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
  160. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  161. package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
  162. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  163. package/dist/components/content/PrismCode/prismSetup.js.map +1 -1
  164. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +52 -17
  165. package/dist/components/content/PrismDiffCode/PrismDiffCode.js.map +1 -1
  166. package/dist/components/content/Result/Result.js +117 -38
  167. package/dist/components/content/Result/Result.js.map +1 -1
  168. package/dist/components/content/Skeleton/Skeleton.js +26 -17
  169. package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
  170. package/dist/components/content/Tag/Tag.js +68 -13
  171. package/dist/components/content/Tag/Tag.js.map +1 -1
  172. package/dist/components/content/Text.d.ts +14 -14
  173. package/dist/components/content/Text.js +61 -14
  174. package/dist/components/content/Text.js.map +1 -1
  175. package/dist/components/content/TextItem/TextItem.js +37 -16
  176. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  177. package/dist/components/content/Title.js +98 -23
  178. package/dist/components/content/Title.js.map +1 -1
  179. package/dist/components/content/Tree/Tree.js +32 -32
  180. package/dist/components/content/Tree/Tree.js.map +1 -1
  181. package/dist/components/content/Tree/TreeNode.js +10 -10
  182. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  183. package/dist/components/content/Tree/styled.js +1 -1
  184. package/dist/components/content/Tree/styled.js.map +1 -1
  185. package/dist/components/content/Tree/tree-index.js +1 -1
  186. package/dist/components/content/Tree/tree-index.js.map +1 -1
  187. package/dist/components/content/Tree/use-checkbox-tree.js +123 -89
  188. package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -1
  189. package/dist/components/content/Tree/use-load-data.js +52 -21
  190. package/dist/components/content/Tree/use-load-data.js.map +1 -1
  191. package/dist/components/content/highlightText.js +1 -1
  192. package/dist/components/content/highlightText.js.map +1 -1
  193. package/dist/components/content/use-auto-tooltip.js +1 -1
  194. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  195. package/dist/components/data/DataTable/DataTable.js +31 -31
  196. package/dist/components/data/DataTable/DataTable.js.map +1 -1
  197. package/dist/components/data/ItemTable/ItemTable.js +41 -41
  198. package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
  199. package/dist/components/data/ItemTable/ItemTableBulkBar.js +11 -11
  200. package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +1 -1
  201. package/dist/components/data/ItemTable/ItemTableDragPreview.js +41 -4
  202. package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +1 -1
  203. package/dist/components/data/ItemTable/ItemTableFooter.js +67 -30
  204. package/dist/components/data/ItemTable/ItemTableFooter.js.map +1 -1
  205. package/dist/components/data/ItemTable/ItemTableToolbar.js +95 -28
  206. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  207. package/dist/components/data/TableBase/ColumnResizer.js +90 -41
  208. package/dist/components/data/TableBase/ColumnResizer.js.map +1 -1
  209. package/dist/components/data/TableBase/RowCollection.js +1 -1
  210. package/dist/components/data/TableBase/RowCollection.js.map +1 -1
  211. package/dist/components/data/TableBase/TableHeaderCell.js +154 -64
  212. package/dist/components/data/TableBase/TableHeaderCell.js.map +1 -1
  213. package/dist/components/data/TableBase/TableRow.js +211 -69
  214. package/dist/components/data/TableBase/TableRow.js.map +1 -1
  215. package/dist/components/data/TableBase/TableView.js +119 -80
  216. package/dist/components/data/TableBase/TableView.js.map +1 -1
  217. package/dist/components/data/TableBase/column-menu.js +1 -1
  218. package/dist/components/data/TableBase/column-menu.js.map +1 -1
  219. package/dist/components/data/TableBase/column-tint.js +1 -1
  220. package/dist/components/data/TableBase/column-tint.js.map +1 -1
  221. package/dist/components/data/TableBase/row-menu.js +1 -1
  222. package/dist/components/data/TableBase/row-menu.js.map +1 -1
  223. package/dist/components/data/TableBase/styled.js +1 -1
  224. package/dist/components/data/TableBase/styled.js.map +1 -1
  225. package/dist/components/data/TableBase/table-tree.js +1 -1
  226. package/dist/components/data/TableBase/table-tree.js.map +1 -1
  227. package/dist/components/data/TableBase/types.js +1 -1
  228. package/dist/components/data/TableBase/types.js.map +1 -1
  229. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  230. package/dist/components/data/TableBase/use-cell-selection.js.map +1 -1
  231. package/dist/components/data/TableBase/use-column-order.js +56 -12
  232. package/dist/components/data/TableBase/use-column-order.js.map +1 -1
  233. package/dist/components/data/TableBase/use-container-width.js +24 -10
  234. package/dist/components/data/TableBase/use-container-width.js.map +1 -1
  235. package/dist/components/data/TableBase/use-row-move-animation.js +68 -49
  236. package/dist/components/data/TableBase/use-row-move-animation.js.map +1 -1
  237. package/dist/components/data/TableBase/use-scrollability.js +32 -18
  238. package/dist/components/data/TableBase/use-scrollability.js.map +1 -1
  239. package/dist/components/data/TableBase/use-table-columns.js +130 -60
  240. package/dist/components/data/TableBase/use-table-columns.js.map +1 -1
  241. package/dist/components/data/TableBase/use-table-search.js +1 -1
  242. package/dist/components/data/TableBase/use-table-search.js.map +1 -1
  243. package/dist/components/data/TableBase/use-table-selection.js +39 -39
  244. package/dist/components/data/TableBase/use-table-selection.js.map +1 -1
  245. package/dist/components/data/TableBase/use-table-sort.js +132 -68
  246. package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
  247. package/dist/components/data/TableBase/use-table-sorts.js +168 -101
  248. package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
  249. package/dist/components/data/TableBase/use-table-storage.js +2 -2
  250. package/dist/components/data/TableBase/use-table-storage.js.map +1 -1
  251. package/dist/components/data/TableBase/use-table-tree-state.js +181 -86
  252. package/dist/components/data/TableBase/use-table-tree-state.js.map +1 -1
  253. package/dist/components/fields/Checkbox/Checkbox.js +2 -2
  254. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  255. package/dist/components/fields/Checkbox/CheckboxGroup.js +101 -33
  256. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  257. package/dist/components/fields/Checkbox/context.js +1 -1
  258. package/dist/components/fields/Checkbox/context.js.map +1 -1
  259. package/dist/components/fields/ColorInput/ColorInput.js +329 -150
  260. package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
  261. package/dist/components/fields/ColorPicker/ColorPicker.js +16 -16
  262. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  263. package/dist/components/fields/ColorSwatch/ColorSwatch.js +52 -13
  264. package/dist/components/fields/ColorSwatch/ColorSwatch.js.map +1 -1
  265. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +90 -28
  266. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  267. package/dist/components/fields/ComboBox/ComboBox.js +216 -134
  268. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  269. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  270. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  271. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  272. package/dist/components/fields/CommandTextArea/caretPosition.js.map +1 -1
  273. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +88 -49
  274. package/dist/components/fields/CommandTextArea/useCaretAnchor.js.map +1 -1
  275. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  276. package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
  277. package/dist/components/fields/DatePicker/DateInputBase.js +129 -34
  278. package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
  279. package/dist/components/fields/DatePicker/DatePicker.js +194 -69
  280. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  281. package/dist/components/fields/DatePicker/DatePickerButton.js +39 -8
  282. package/dist/components/fields/DatePicker/DatePickerButton.js.map +1 -1
  283. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  284. package/dist/components/fields/DatePicker/DatePickerElement.js.map +1 -1
  285. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  286. package/dist/components/fields/DatePicker/DatePickerInput.js.map +1 -1
  287. package/dist/components/fields/DatePicker/DatePickerSegment.js +109 -29
  288. package/dist/components/fields/DatePicker/DatePickerSegment.js.map +1 -1
  289. package/dist/components/fields/DatePicker/DateRangePicker.js +224 -88
  290. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  291. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +473 -180
  292. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  293. package/dist/components/fields/DatePicker/MonthPicker.js +15 -6
  294. package/dist/components/fields/DatePicker/MonthPicker.js.map +1 -1
  295. package/dist/components/fields/DatePicker/PeriodPicker.js +288 -91
  296. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  297. package/dist/components/fields/DatePicker/QuarterPicker.js +15 -6
  298. package/dist/components/fields/DatePicker/QuarterPicker.js.map +1 -1
  299. package/dist/components/fields/DatePicker/TimeInput.js +15 -7
  300. package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
  301. package/dist/components/fields/DatePicker/WeekPicker.js +15 -6
  302. package/dist/components/fields/DatePicker/WeekPicker.js.map +1 -1
  303. package/dist/components/fields/DatePicker/YearPicker.js +15 -6
  304. package/dist/components/fields/DatePicker/YearPicker.js.map +1 -1
  305. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  306. package/dist/components/fields/DatePicker/parseDate.js.map +1 -1
  307. package/dist/components/fields/DatePicker/period.js +1 -1
  308. package/dist/components/fields/DatePicker/period.js.map +1 -1
  309. package/dist/components/fields/DatePicker/props.js +1 -1
  310. package/dist/components/fields/DatePicker/props.js.map +1 -1
  311. package/dist/components/fields/DatePicker/utils.js +15 -8
  312. package/dist/components/fields/DatePicker/utils.js.map +1 -1
  313. package/dist/components/fields/FileInput/FileInput.js +3 -3
  314. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  315. package/dist/components/fields/FilterListBox/FilterListBox.js +87 -87
  316. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  317. package/dist/components/fields/FilterPicker/FilterPicker.js +22 -22
  318. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  319. package/dist/components/fields/Input/Input.js +1 -1
  320. package/dist/components/fields/Input/Input.js.map +1 -1
  321. package/dist/components/fields/ListBox/DraggableListBox.js +23 -10
  322. package/dist/components/fields/ListBox/DraggableListBox.js.map +1 -1
  323. package/dist/components/fields/ListBox/ListBox.js +138 -53
  324. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  325. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +156 -37
  326. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  327. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  328. package/dist/components/fields/ListBoxPopover/listNavigation.js.map +1 -1
  329. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +61 -33
  330. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
  331. package/dist/components/fields/NumberInput/NumberInput.js +123 -33
  332. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  333. package/dist/components/fields/NumberInput/StepButton.js +53 -15
  334. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  335. package/dist/components/fields/PasswordInput/PasswordInput.js +149 -45
  336. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  337. package/dist/components/fields/Picker/Picker.js +8 -8
  338. package/dist/components/fields/Picker/Picker.js.map +1 -1
  339. package/dist/components/fields/RadioGroup/Radio.js +273 -104
  340. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  341. package/dist/components/fields/RadioGroup/RadioGroup.js +149 -48
  342. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  343. package/dist/components/fields/RadioGroup/context.js +1 -1
  344. package/dist/components/fields/RadioGroup/context.js.map +1 -1
  345. package/dist/components/fields/SearchComboBox/SearchComboBox.js +80 -65
  346. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  347. package/dist/components/fields/SearchInput/SearchInput.js +91 -28
  348. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  349. package/dist/components/fields/Select/Select.js +369 -117
  350. package/dist/components/fields/Select/Select.js.map +1 -1
  351. package/dist/components/fields/Slider/Gradation.js +45 -10
  352. package/dist/components/fields/Slider/Gradation.js.map +1 -1
  353. package/dist/components/fields/Slider/HueSlider.js +121 -32
  354. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  355. package/dist/components/fields/Slider/RangeSlider.js +46 -10
  356. package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
  357. package/dist/components/fields/Slider/Slider.js +108 -23
  358. package/dist/components/fields/Slider/Slider.js.map +1 -1
  359. package/dist/components/fields/Slider/SliderBase.js +2 -2
  360. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  361. package/dist/components/fields/Slider/SliderThumb.js +96 -37
  362. package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
  363. package/dist/components/fields/Slider/SliderTrack.js +64 -23
  364. package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
  365. package/dist/components/fields/Slider/elements.js +1 -1
  366. package/dist/components/fields/Slider/elements.js.map +1 -1
  367. package/dist/components/fields/Slider/index.js +1 -1
  368. package/dist/components/fields/Switch/Switch.js +190 -66
  369. package/dist/components/fields/Switch/Switch.js.map +1 -1
  370. package/dist/components/fields/TextArea/TextArea.js +137 -47
  371. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  372. package/dist/components/fields/TextInput/TextInput.js +80 -27
  373. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  374. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  375. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  376. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  377. package/dist/components/fields/TextInput/useAutoSizeTextArea.js.map +1 -1
  378. package/dist/components/fields/TextInputMapper/TextInputMapper.js +156 -83
  379. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  380. package/dist/components/fields/TriggerActions.js +11 -2
  381. package/dist/components/fields/TriggerActions.js.map +1 -1
  382. package/dist/components/fields/color/ColorPanel.js +237 -59
  383. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  384. package/dist/components/fields/color/channels.js +1 -1
  385. package/dist/components/fields/color/channels.js.map +1 -1
  386. package/dist/components/fields/color/color.js +1 -1
  387. package/dist/components/fields/color/color.js.map +1 -1
  388. package/dist/components/fields/color/context.js +1 -1
  389. package/dist/components/fields/color/context.js.map +1 -1
  390. package/dist/components/form/FieldWrapper/FieldWrapper.js +195 -72
  391. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  392. package/dist/components/form/Form/Field.js +23 -9
  393. package/dist/components/form/Form/Field.js.map +1 -1
  394. package/dist/components/form/Form/Form.js +76 -30
  395. package/dist/components/form/Form/Form.js.map +1 -1
  396. package/dist/components/form/Form/ModernFormRoot.js +294 -81
  397. package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
  398. package/dist/components/form/Form/ResetButton/ResetButton.js +32 -10
  399. package/dist/components/form/Form/ResetButton/ResetButton.js.map +1 -1
  400. package/dist/components/form/Form/SubmitButton/SubmitButton.js +32 -10
  401. package/dist/components/form/Form/SubmitButton/SubmitButton.js.map +1 -1
  402. package/dist/components/form/Form/SubmitError.js +130 -32
  403. package/dist/components/form/Form/SubmitError.js.map +1 -1
  404. package/dist/components/form/Form/backend.js +1 -1
  405. package/dist/components/form/Form/backend.js.map +1 -1
  406. package/dist/components/form/Form/index.js +1 -1
  407. package/dist/components/form/Form/index.js.map +1 -1
  408. package/dist/components/form/Form/modern/actions.js +140 -45
  409. package/dist/components/form/Form/modern/actions.js.map +1 -1
  410. package/dist/components/form/Form/modern/context.js +1 -1
  411. package/dist/components/form/Form/modern/context.js.map +1 -1
  412. package/dist/components/form/Form/modern/controller.js +1 -1
  413. package/dist/components/form/Form/modern/controller.js.map +1 -1
  414. package/dist/components/form/Form/modern/field-binding.js +1 -1
  415. package/dist/components/form/Form/modern/field-binding.js.map +1 -1
  416. package/dist/components/form/Form/modern/field.js +1 -1
  417. package/dist/components/form/Form/modern/field.js.map +1 -1
  418. package/dist/components/form/Form/modern/react.js +102 -19
  419. package/dist/components/form/Form/modern/react.js.map +1 -1
  420. package/dist/components/form/Form/modern/store.js +13 -3
  421. package/dist/components/form/Form/modern/store.js.map +1 -1
  422. package/dist/components/form/Form/modern/types.d.ts +3 -1
  423. package/dist/components/form/Form/modern/validation.js +1 -1
  424. package/dist/components/form/Form/modern/validation.js.map +1 -1
  425. package/dist/components/form/Form/modern/values.js +1 -1
  426. package/dist/components/form/Form/modern/values.js.map +1 -1
  427. package/dist/components/form/Form/use-field/use-field-binding.js +236 -63
  428. package/dist/components/form/Form/use-field/use-field-binding.js.map +1 -1
  429. package/dist/components/form/Form/use-field/use-field-props.js +106 -61
  430. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  431. package/dist/components/form/Form/use-field/use-field.js +5 -4
  432. package/dist/components/form/Form/use-field/use-field.js.map +1 -1
  433. package/dist/components/form/Form/use-form.js +2 -1
  434. package/dist/components/form/Form/use-form.js.map +1 -1
  435. package/dist/components/form/Form/validation.js +1 -1
  436. package/dist/components/form/Form/validation.js.map +1 -1
  437. package/dist/components/form/Label.js +127 -37
  438. package/dist/components/form/Label.js.map +1 -1
  439. package/dist/components/form/validation/ValidationIndicator.js +20 -5
  440. package/dist/components/form/validation/ValidationIndicator.js.map +1 -1
  441. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  442. package/dist/components/form/validation/resolve-validation-props.js.map +1 -1
  443. package/dist/components/form/validation/use-validation-props.js +36 -10
  444. package/dist/components/form/validation/use-validation-props.js.map +1 -1
  445. package/dist/components/form/wrapper.js +1 -1
  446. package/dist/components/form/wrapper.js.map +1 -1
  447. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +49 -29
  448. package/dist/components/helpers/DisplayTransition/DisplayTransition.js.map +1 -1
  449. package/dist/components/helpers/IconSwitch/IconSwitch.js +8 -8
  450. package/dist/components/helpers/IconSwitch/IconSwitch.js.map +1 -1
  451. package/dist/components/layout/Board/Board.js +27 -9
  452. package/dist/components/layout/Board/Board.js.map +1 -1
  453. package/dist/components/layout/Board/BoardProvider.js +1 -1
  454. package/dist/components/layout/Board/BoardProvider.js.map +1 -1
  455. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  456. package/dist/components/layout/Board/BoardResponsive.js.map +1 -1
  457. package/dist/components/layout/Board/Widget.js +1 -1
  458. package/dist/components/layout/Board/Widget.js.map +1 -1
  459. package/dist/components/layout/Board/WidgetHost.js +159 -121
  460. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  461. package/dist/components/layout/Board/board-context.js +14 -5
  462. package/dist/components/layout/Board/board-context.js.map +1 -1
  463. package/dist/components/layout/Board/board-store.js +1 -1
  464. package/dist/components/layout/Board/board-store.js.map +1 -1
  465. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  466. package/dist/components/layout/Board/grid-core/calculate.js.map +1 -1
  467. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  468. package/dist/components/layout/Board/grid-core/collision-modes.js.map +1 -1
  469. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  470. package/dist/components/layout/Board/grid-core/collision.js.map +1 -1
  471. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  472. package/dist/components/layout/Board/grid-core/compactors.js.map +1 -1
  473. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  474. package/dist/components/layout/Board/grid-core/constraints.js.map +1 -1
  475. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  476. package/dist/components/layout/Board/grid-core/group-move.js.map +1 -1
  477. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  478. package/dist/components/layout/Board/grid-core/layout.js.map +1 -1
  479. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  480. package/dist/components/layout/Board/grid-core/placement.js.map +1 -1
  481. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  482. package/dist/components/layout/Board/grid-core/sort.js.map +1 -1
  483. package/dist/components/layout/Board/index.js +1 -1
  484. package/dist/components/layout/Board/index.js.map +1 -1
  485. package/dist/components/layout/Board/responsive-utils.js +1 -1
  486. package/dist/components/layout/Board/responsive-utils.js.map +1 -1
  487. package/dist/components/layout/Board/use-board-layout.js +8 -8
  488. package/dist/components/layout/Board/use-board-layout.js.map +1 -1
  489. package/dist/components/layout/Board/use-board-registry.js +257 -257
  490. package/dist/components/layout/Board/use-board-registry.js.map +1 -1
  491. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  492. package/dist/components/layout/Board/use-board-select-modifier-key.js.map +1 -1
  493. package/dist/components/layout/Board/use-board-selection.js +16 -16
  494. package/dist/components/layout/Board/use-board-selection.js.map +1 -1
  495. package/dist/components/layout/Flex.js +29 -7
  496. package/dist/components/layout/Flex.js.map +1 -1
  497. package/dist/components/layout/Flow.js +29 -7
  498. package/dist/components/layout/Flow.js.map +1 -1
  499. package/dist/components/layout/Grid.js +30 -7
  500. package/dist/components/layout/Grid.js.map +1 -1
  501. package/dist/components/layout/Panel.js +9 -9
  502. package/dist/components/layout/Panel.js.map +1 -1
  503. package/dist/components/layout/Prefix.js +59 -16
  504. package/dist/components/layout/Prefix.js.map +1 -1
  505. package/dist/components/layout/ResizablePanel.js +62 -32
  506. package/dist/components/layout/ResizablePanel.js.map +1 -1
  507. package/dist/components/layout/Space.js +55 -11
  508. package/dist/components/layout/Space.js.map +1 -1
  509. package/dist/components/layout/Suffix.js +59 -16
  510. package/dist/components/layout/Suffix.js.map +1 -1
  511. package/dist/components/navigation/Pagination/Pagination.js +394 -164
  512. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  513. package/dist/components/navigation/Pagination/use-pagination.js +69 -26
  514. package/dist/components/navigation/Pagination/use-pagination.js.map +1 -1
  515. package/dist/components/navigation/Tabs/DraggableTabList.js +25 -10
  516. package/dist/components/navigation/Tabs/DraggableTabList.js.map +1 -1
  517. package/dist/components/navigation/Tabs/TabButton.js +604 -235
  518. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  519. package/dist/components/navigation/Tabs/TabDropIndicator.js +65 -23
  520. package/dist/components/navigation/Tabs/TabDropIndicator.js.map +1 -1
  521. package/dist/components/navigation/Tabs/TabPanel.js +47 -19
  522. package/dist/components/navigation/Tabs/TabPanel.js.map +1 -1
  523. package/dist/components/navigation/Tabs/TabPicker.js +105 -33
  524. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  525. package/dist/components/navigation/Tabs/Tabs.js +45 -45
  526. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  527. package/dist/components/navigation/Tabs/TabsAction.js +53 -19
  528. package/dist/components/navigation/Tabs/TabsAction.js.map +1 -1
  529. package/dist/components/navigation/Tabs/TabsContext.js +16 -6
  530. package/dist/components/navigation/Tabs/TabsContext.js.map +1 -1
  531. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  532. package/dist/components/navigation/Tabs/popover-placement.js.map +1 -1
  533. package/dist/components/navigation/Tabs/styled.js +1 -1
  534. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  535. package/dist/components/navigation/Tabs/types.js +1 -1
  536. package/dist/components/navigation/Tabs/types.js.map +1 -1
  537. package/dist/components/navigation/Tabs/use-tab-editing.js +50 -13
  538. package/dist/components/navigation/Tabs/use-tab-editing.js.map +1 -1
  539. package/dist/components/navigation/Tabs/use-tab-indicator.js +111 -63
  540. package/dist/components/navigation/Tabs/use-tab-indicator.js.map +1 -1
  541. package/dist/components/organisms/StatsCard/StatsCard.js +54 -14
  542. package/dist/components/organisms/StatsCard/StatsCard.js.map +1 -1
  543. package/dist/components/other/Calendar/Calendar.js +79 -31
  544. package/dist/components/other/Calendar/Calendar.js.map +1 -1
  545. package/dist/components/other/Calendar/CalendarCell.js +66 -20
  546. package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
  547. package/dist/components/other/Calendar/CalendarGrid.js +90 -40
  548. package/dist/components/other/Calendar/CalendarGrid.js.map +1 -1
  549. package/dist/components/other/Calendar/CalendarHeader.js +80 -17
  550. package/dist/components/other/Calendar/CalendarHeader.js.map +1 -1
  551. package/dist/components/other/Calendar/CalendarPanel.js +568 -144
  552. package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
  553. package/dist/components/other/Calendar/PeriodCalendar.js +425 -134
  554. package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
  555. package/dist/components/other/Calendar/PeriodGrid.js +6 -6
  556. package/dist/components/other/Calendar/PeriodGrid.js.map +1 -1
  557. package/dist/components/other/Calendar/RangeCalendar.js +50 -24
  558. package/dist/components/other/Calendar/RangeCalendar.js.map +1 -1
  559. package/dist/components/other/Calendar/styled.js +1 -1
  560. package/dist/components/other/Calendar/styled.js.map +1 -1
  561. package/dist/components/other/CubeLogo/CubeLogo.js +95 -34
  562. package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
  563. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  564. package/dist/components/other/NoDataIcon/NoDataIcon.js.map +1 -1
  565. package/dist/components/overlays/AlertDialog/AlertDialog.js +153 -42
  566. package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
  567. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +76 -54
  568. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
  569. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +146 -39
  570. package/dist/components/overlays/AlertDialog/AlertDialogZone.js.map +1 -1
  571. package/dist/components/overlays/Dialog/Dialog.js +26 -10
  572. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  573. package/dist/components/overlays/Dialog/DialogContainer.js +13 -13
  574. package/dist/components/overlays/Dialog/DialogContainer.js.map +1 -1
  575. package/dist/components/overlays/Dialog/DialogForm.d.ts +12 -7
  576. package/dist/components/overlays/Dialog/DialogForm.js +18 -7
  577. package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
  578. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +1 -1
  579. package/dist/components/overlays/Dialog/DialogTrigger.js +214 -59
  580. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  581. package/dist/components/overlays/Dialog/ModernDialogForm.js +350 -0
  582. package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -0
  583. package/dist/components/overlays/Dialog/context.js +1 -1
  584. package/dist/components/overlays/Dialog/context.js.map +1 -1
  585. package/dist/components/overlays/Dialog/index.d.ts +1 -1
  586. package/dist/components/overlays/Dialog/use-dialog-container.js +6 -6
  587. package/dist/components/overlays/Dialog/use-dialog-container.js.map +1 -1
  588. package/dist/components/overlays/Modal/Modal.js +140 -27
  589. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  590. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  591. package/dist/components/overlays/Modal/OpenTransitionContext.js.map +1 -1
  592. package/dist/components/overlays/Modal/Overlay.js +4 -4
  593. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  594. package/dist/components/overlays/Modal/Popover.js +131 -29
  595. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  596. package/dist/components/overlays/Modal/Tray.js +142 -30
  597. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  598. package/dist/components/overlays/Modal/Underlay.js +36 -7
  599. package/dist/components/overlays/Modal/Underlay.js.map +1 -1
  600. package/dist/components/overlays/Notifications/Notification.js +69 -32
  601. package/dist/components/overlays/Notifications/Notification.js.map +1 -1
  602. package/dist/components/overlays/Notifications/NotificationAction.js +79 -26
  603. package/dist/components/overlays/Notifications/NotificationAction.js.map +1 -1
  604. package/dist/components/overlays/Notifications/NotificationCard.js +138 -33
  605. package/dist/components/overlays/Notifications/NotificationCard.js.map +1 -1
  606. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  607. package/dist/components/overlays/Notifications/NotificationContext.js.map +1 -1
  608. package/dist/components/overlays/Notifications/NotificationItem.js +63 -16
  609. package/dist/components/overlays/Notifications/NotificationItem.js.map +1 -1
  610. package/dist/components/overlays/Notifications/OverlayContainer.js +312 -151
  611. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  612. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  613. package/dist/components/overlays/Notifications/OverlayProvider.js.map +1 -1
  614. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +210 -58
  615. package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +1 -1
  616. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  617. package/dist/components/overlays/Notifications/dismissed-storage.js.map +1 -1
  618. package/dist/components/overlays/Notifications/format-relative-time.d.ts +1 -1
  619. package/dist/components/overlays/Notifications/format-relative-time.js +3 -3
  620. package/dist/components/overlays/Notifications/format-relative-time.js.map +1 -1
  621. package/dist/components/overlays/Notifications/index.js +1 -1
  622. package/dist/components/overlays/Notifications/index.js.map +1 -1
  623. package/dist/components/overlays/Notifications/use-notification-state.js +51 -51
  624. package/dist/components/overlays/Notifications/use-notification-state.js.map +1 -1
  625. package/dist/components/overlays/Notifications/use-notifications.js +12 -12
  626. package/dist/components/overlays/Notifications/use-notifications.js.map +1 -1
  627. package/dist/components/overlays/Notifications/use-overlay-timers.js +10 -10
  628. package/dist/components/overlays/Notifications/use-overlay-timers.js.map +1 -1
  629. package/dist/components/overlays/Notifications/use-persistent-notifications.js +24 -5
  630. package/dist/components/overlays/Notifications/use-persistent-notifications.js.map +1 -1
  631. package/dist/components/overlays/Notifications/use-persistent-state.js +145 -43
  632. package/dist/components/overlays/Notifications/use-persistent-state.js.map +1 -1
  633. package/dist/components/overlays/Notifications/use-toast-state.js +25 -25
  634. package/dist/components/overlays/Notifications/use-toast-state.js.map +1 -1
  635. package/dist/components/overlays/Toast/ToastItem.js +68 -15
  636. package/dist/components/overlays/Toast/ToastItem.js.map +1 -1
  637. package/dist/components/overlays/Toast/index.js +100 -34
  638. package/dist/components/overlays/Toast/index.js.map +1 -1
  639. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  640. package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
  641. package/dist/components/overlays/Toast/useToast.js +9 -9
  642. package/dist/components/overlays/Toast/useToast.js.map +1 -1
  643. package/dist/components/overlays/Tooltip/Tooltip.js +88 -31
  644. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  645. package/dist/components/overlays/Tooltip/TooltipProvider.js +75 -10
  646. package/dist/components/overlays/Tooltip/TooltipProvider.js.map +1 -1
  647. package/dist/components/overlays/Tooltip/TooltipTrigger.js +186 -77
  648. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  649. package/dist/components/overlays/Tooltip/context.js +1 -1
  650. package/dist/components/overlays/Tooltip/context.js.map +1 -1
  651. package/dist/components/portal/Portal.js +18 -3
  652. package/dist/components/portal/Portal.js.map +1 -1
  653. package/dist/components/portal/PortalProvider.js +11 -2
  654. package/dist/components/portal/PortalProvider.js.map +1 -1
  655. package/dist/components/portal/usePortal.js +1 -1
  656. package/dist/components/portal/usePortal.js.map +1 -1
  657. package/dist/components/shared/DraggableCollection.js +23 -23
  658. package/dist/components/shared/DraggableCollection.js.map +1 -1
  659. package/dist/components/shared/InvalidIcon.js +1 -1
  660. package/dist/components/shared/InvalidIcon.js.map +1 -1
  661. package/dist/components/shared/ValidIcon.js +1 -1
  662. package/dist/components/shared/ValidIcon.js.map +1 -1
  663. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +156 -48
  664. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  665. package/dist/components/status/Spin/Cube.js +12 -3
  666. package/dist/components/status/Spin/Cube.js.map +1 -1
  667. package/dist/components/status/Spin/InternalSpinner.js +21 -6
  668. package/dist/components/status/Spin/InternalSpinner.js.map +1 -1
  669. package/dist/components/status/Spin/Spin.js +31 -7
  670. package/dist/components/status/Spin/Spin.js.map +1 -1
  671. package/dist/components/status/Spin/SpinsContainer.js +23 -6
  672. package/dist/components/status/Spin/SpinsContainer.js.map +1 -1
  673. package/dist/data/item-themes.js +1 -1
  674. package/dist/data/item-themes.js.map +1 -1
  675. package/dist/data/themes.js +1 -1
  676. package/dist/data/themes.js.map +1 -1
  677. package/dist/eslint-plugin/defaults.generated.js +15 -5
  678. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  679. package/dist/eslint-plugin/index.js +1 -1
  680. package/dist/eslint-plugin/index.js.map +1 -1
  681. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  682. package/dist/eslint-plugin/rules/no-redundant-default-prop.js.map +1 -1
  683. package/dist/i18n/I18nProvider.js +54 -13
  684. package/dist/i18n/I18nProvider.js.map +1 -1
  685. package/dist/i18n/createFormatter.js +1 -1
  686. package/dist/i18n/createFormatter.js.map +1 -1
  687. package/dist/i18n/index.js +1 -1
  688. package/dist/i18n/index.js.map +1 -1
  689. package/dist/i18n/instance.js +1 -1
  690. package/dist/i18n/instance.js.map +1 -1
  691. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  692. package/dist/i18n/locales/en-US/uikit.js +1 -1
  693. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  694. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  695. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  696. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  697. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  698. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  699. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  700. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  701. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  702. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  703. package/dist/i18n/locales.js +1 -1
  704. package/dist/i18n/locales.js.map +1 -1
  705. package/dist/i18n/useFormatter.js +10 -3
  706. package/dist/i18n/useFormatter.js.map +1 -1
  707. package/dist/i18n/useI18n.js +1 -1
  708. package/dist/i18n/useI18n.js.map +1 -1
  709. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  710. package/dist/icons/AdjustmentsHorizontalIcon.js.map +1 -1
  711. package/dist/icons/AdjustmentsIcon.js +1 -1
  712. package/dist/icons/AdjustmentsIcon.js.map +1 -1
  713. package/dist/icons/AiIcon.js +1 -1
  714. package/dist/icons/AiIcon.js.map +1 -1
  715. package/dist/icons/AreaChartIcon.js +1 -1
  716. package/dist/icons/AreaChartIcon.js.map +1 -1
  717. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  718. package/dist/icons/ArrowNarrowDownIcon.js.map +1 -1
  719. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  720. package/dist/icons/ArrowNarrowUpIcon.js.map +1 -1
  721. package/dist/icons/BackwardIcon.js +1 -1
  722. package/dist/icons/BackwardIcon.js.map +1 -1
  723. package/dist/icons/BarChartIcon.js +1 -1
  724. package/dist/icons/BarChartIcon.js.map +1 -1
  725. package/dist/icons/BellFilledIcon.js +1 -1
  726. package/dist/icons/BellFilledIcon.js.map +1 -1
  727. package/dist/icons/BellIcon.js +1 -1
  728. package/dist/icons/BellIcon.js.map +1 -1
  729. package/dist/icons/BooleanIcon.js +1 -1
  730. package/dist/icons/BooleanIcon.js.map +1 -1
  731. package/dist/icons/CalendarEditIcon.js +1 -1
  732. package/dist/icons/CalendarEditIcon.js.map +1 -1
  733. package/dist/icons/CalendarIcon.js +1 -1
  734. package/dist/icons/CalendarIcon.js.map +1 -1
  735. package/dist/icons/CaretDownIcon.js +1 -1
  736. package/dist/icons/CaretDownIcon.js.map +1 -1
  737. package/dist/icons/CaretUpIcon.js +1 -1
  738. package/dist/icons/CaretUpIcon.js.map +1 -1
  739. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  740. package/dist/icons/ChartAreaStackedIcon.js.map +1 -1
  741. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  742. package/dist/icons/ChartAreaStackedPercentageIcon.js.map +1 -1
  743. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  744. package/dist/icons/ChartBarGroupedHorizontalIcon.js.map +1 -1
  745. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  746. package/dist/icons/ChartBarGroupedIcon.js.map +1 -1
  747. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  748. package/dist/icons/ChartBarHorizontalIcon.js.map +1 -1
  749. package/dist/icons/ChartBarLineIcon.js +1 -1
  750. package/dist/icons/ChartBarLineIcon.js.map +1 -1
  751. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  752. package/dist/icons/ChartBarStackedHorizontalIcon.js.map +1 -1
  753. package/dist/icons/ChartBarStackedIcon.js +1 -1
  754. package/dist/icons/ChartBarStackedIcon.js.map +1 -1
  755. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  756. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js.map +1 -1
  757. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  758. package/dist/icons/ChartBarStackedPercentageIcon.js.map +1 -1
  759. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  760. package/dist/icons/ChartBoxPlot2Icon.js.map +1 -1
  761. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  762. package/dist/icons/ChartBoxPlotIcon.js.map +1 -1
  763. package/dist/icons/ChartBubbleIcon.js +1 -1
  764. package/dist/icons/ChartBubbleIcon.js.map +1 -1
  765. package/dist/icons/ChartDonut2Icon.js +1 -1
  766. package/dist/icons/ChartDonut2Icon.js.map +1 -1
  767. package/dist/icons/ChartFunnelIcon.js +1 -1
  768. package/dist/icons/ChartFunnelIcon.js.map +1 -1
  769. package/dist/icons/ChartHeatmapIcon.js +1 -1
  770. package/dist/icons/ChartHeatmapIcon.js.map +1 -1
  771. package/dist/icons/ChartKPIIcon.js +1 -1
  772. package/dist/icons/ChartKPIIcon.js.map +1 -1
  773. package/dist/icons/ChartPie2Icon.js +1 -1
  774. package/dist/icons/ChartPie2Icon.js.map +1 -1
  775. package/dist/icons/ChartScatterIcon.js +1 -1
  776. package/dist/icons/ChartScatterIcon.js.map +1 -1
  777. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  778. package/dist/icons/CheckCircleFilledIcon.js.map +1 -1
  779. package/dist/icons/CheckCircleIcon.js +1 -1
  780. package/dist/icons/CheckCircleIcon.js.map +1 -1
  781. package/dist/icons/CheckIcon.js +1 -1
  782. package/dist/icons/CheckIcon.js.map +1 -1
  783. package/dist/icons/CircleFilledIcon.js +1 -1
  784. package/dist/icons/CircleFilledIcon.js.map +1 -1
  785. package/dist/icons/ClearIcon.js +1 -1
  786. package/dist/icons/ClearIcon.js.map +1 -1
  787. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  788. package/dist/icons/CloseCircleFilledIcon.js.map +1 -1
  789. package/dist/icons/CloseCircleIcon.js +1 -1
  790. package/dist/icons/CloseCircleIcon.js.map +1 -1
  791. package/dist/icons/CloseIcon.js +1 -1
  792. package/dist/icons/CloseIcon.js.map +1 -1
  793. package/dist/icons/CodeIcon.js +1 -1
  794. package/dist/icons/CodeIcon.js.map +1 -1
  795. package/dist/icons/ColumnTotalIcon.js +1 -1
  796. package/dist/icons/ColumnTotalIcon.js.map +1 -1
  797. package/dist/icons/CopyIcon.js +1 -1
  798. package/dist/icons/CopyIcon.js.map +1 -1
  799. package/dist/icons/CountIcon.js +1 -1
  800. package/dist/icons/CountIcon.js.map +1 -1
  801. package/dist/icons/CubeIcon.js +1 -1
  802. package/dist/icons/CubeIcon.js.map +1 -1
  803. package/dist/icons/CubePauseIcon.js +1 -1
  804. package/dist/icons/CubePauseIcon.js.map +1 -1
  805. package/dist/icons/CubePlayIcon.js +1 -1
  806. package/dist/icons/CubePlayIcon.js.map +1 -1
  807. package/dist/icons/CurrencyDollarIcon.js +1 -1
  808. package/dist/icons/CurrencyDollarIcon.js.map +1 -1
  809. package/dist/icons/DangerIcon.js +1 -1
  810. package/dist/icons/DangerIcon.js.map +1 -1
  811. package/dist/icons/DashboardIcon.js +1 -1
  812. package/dist/icons/DashboardIcon.js.map +1 -1
  813. package/dist/icons/DatabaseIcon.js +1 -1
  814. package/dist/icons/DatabaseIcon.js.map +1 -1
  815. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  816. package/dist/icons/DecimalDecreaseIcon.js.map +1 -1
  817. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  818. package/dist/icons/DecimalIncreaseIcon.js.map +1 -1
  819. package/dist/icons/DirectionIcon.js +67 -22
  820. package/dist/icons/DirectionIcon.js.map +1 -1
  821. package/dist/icons/DonutIcon.js +1 -1
  822. package/dist/icons/DonutIcon.js.map +1 -1
  823. package/dist/icons/DownIcon.js +1 -1
  824. package/dist/icons/DownIcon.js.map +1 -1
  825. package/dist/icons/EditIcon.js +1 -1
  826. package/dist/icons/EditIcon.js.map +1 -1
  827. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  828. package/dist/icons/ExclamationCircleFilledIcon.js.map +1 -1
  829. package/dist/icons/ExclamationCircleIcon.js +1 -1
  830. package/dist/icons/ExclamationCircleIcon.js.map +1 -1
  831. package/dist/icons/ExclamationIcon.js +1 -1
  832. package/dist/icons/ExclamationIcon.js.map +1 -1
  833. package/dist/icons/EyeIcon.js +1 -1
  834. package/dist/icons/EyeIcon.js.map +1 -1
  835. package/dist/icons/EyeInvisibleIcon.js +1 -1
  836. package/dist/icons/EyeInvisibleIcon.js.map +1 -1
  837. package/dist/icons/FilterIcon.js +1 -1
  838. package/dist/icons/FilterIcon.js.map +1 -1
  839. package/dist/icons/FolderFilledIcon.js +1 -1
  840. package/dist/icons/FolderFilledIcon.js.map +1 -1
  841. package/dist/icons/FolderIcon.js +1 -1
  842. package/dist/icons/FolderIcon.js.map +1 -1
  843. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  844. package/dist/icons/FolderOpenFilledIcon.js.map +1 -1
  845. package/dist/icons/FolderOpenIcon.js +1 -1
  846. package/dist/icons/FolderOpenIcon.js.map +1 -1
  847. package/dist/icons/ForwardIcon.js +1 -1
  848. package/dist/icons/ForwardIcon.js.map +1 -1
  849. package/dist/icons/GripVerticalIcon.js +1 -1
  850. package/dist/icons/GripVerticalIcon.js.map +1 -1
  851. package/dist/icons/HierarchyIcon.js +1 -1
  852. package/dist/icons/HierarchyIcon.js.map +1 -1
  853. package/dist/icons/HierarchyOpenIcon.js +1 -1
  854. package/dist/icons/HierarchyOpenIcon.js.map +1 -1
  855. package/dist/icons/Icon.js +60 -16
  856. package/dist/icons/Icon.js.map +1 -1
  857. package/dist/icons/InfoCircleIcon.js +1 -1
  858. package/dist/icons/InfoCircleIcon.js.map +1 -1
  859. package/dist/icons/InfoIcon.js +1 -1
  860. package/dist/icons/InfoIcon.js.map +1 -1
  861. package/dist/icons/KeyIcon.js +1 -1
  862. package/dist/icons/KeyIcon.js.map +1 -1
  863. package/dist/icons/LeftIcon.js +1 -1
  864. package/dist/icons/LeftIcon.js.map +1 -1
  865. package/dist/icons/LineChartIcon.js +1 -1
  866. package/dist/icons/LineChartIcon.js.map +1 -1
  867. package/dist/icons/LoadingIcon.js +1 -1
  868. package/dist/icons/LoadingIcon.js.map +1 -1
  869. package/dist/icons/LockFilledIcon.js +1 -1
  870. package/dist/icons/LockFilledIcon.js.map +1 -1
  871. package/dist/icons/LockIcon.js +1 -1
  872. package/dist/icons/LockIcon.js.map +1 -1
  873. package/dist/icons/MoreIcon.js +1 -1
  874. package/dist/icons/MoreIcon.js.map +1 -1
  875. package/dist/icons/NotAllowedIcon.js +1 -1
  876. package/dist/icons/NotAllowedIcon.js.map +1 -1
  877. package/dist/icons/Number123Icon.js +1 -1
  878. package/dist/icons/Number123Icon.js.map +1 -1
  879. package/dist/icons/NumberIcon.js +1 -1
  880. package/dist/icons/NumberIcon.js.map +1 -1
  881. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  882. package/dist/icons/PauseCircleFilledIcon.js.map +1 -1
  883. package/dist/icons/PauseCircleIcon.js +1 -1
  884. package/dist/icons/PauseCircleIcon.js.map +1 -1
  885. package/dist/icons/PauseIcon.js +1 -1
  886. package/dist/icons/PauseIcon.js.map +1 -1
  887. package/dist/icons/PercentageIcon.js +1 -1
  888. package/dist/icons/PercentageIcon.js.map +1 -1
  889. package/dist/icons/PieChartIcon.js +1 -1
  890. package/dist/icons/PieChartIcon.js.map +1 -1
  891. package/dist/icons/PipetteIcon.js +1 -1
  892. package/dist/icons/PipetteIcon.js.map +1 -1
  893. package/dist/icons/PlayCircleIcon.js +1 -1
  894. package/dist/icons/PlayCircleIcon.js.map +1 -1
  895. package/dist/icons/PlayIcon.js +1 -1
  896. package/dist/icons/PlayIcon.js.map +1 -1
  897. package/dist/icons/PlusIcon.js +1 -1
  898. package/dist/icons/PlusIcon.js.map +1 -1
  899. package/dist/icons/ProgressBarIcon.js +1 -1
  900. package/dist/icons/ProgressBarIcon.js.map +1 -1
  901. package/dist/icons/ReloadIcon.js +1 -1
  902. package/dist/icons/ReloadIcon.js.map +1 -1
  903. package/dist/icons/ReportIcon.js +1 -1
  904. package/dist/icons/ReportIcon.js.map +1 -1
  905. package/dist/icons/ReturnIcon.js +1 -1
  906. package/dist/icons/ReturnIcon.js.map +1 -1
  907. package/dist/icons/RightIcon.js +1 -1
  908. package/dist/icons/RightIcon.js.map +1 -1
  909. package/dist/icons/RowTotalsIcon.js +1 -1
  910. package/dist/icons/RowTotalsIcon.js.map +1 -1
  911. package/dist/icons/SchemeIcon.js +1 -1
  912. package/dist/icons/SchemeIcon.js.map +1 -1
  913. package/dist/icons/SearchIcon.js +1 -1
  914. package/dist/icons/SearchIcon.js.map +1 -1
  915. package/dist/icons/SemanticQueryIcon.js +1 -1
  916. package/dist/icons/SemanticQueryIcon.js.map +1 -1
  917. package/dist/icons/SettingsIcon.js +1 -1
  918. package/dist/icons/SettingsIcon.js.map +1 -1
  919. package/dist/icons/ShieldFilledIcon.js +1 -1
  920. package/dist/icons/ShieldFilledIcon.js.map +1 -1
  921. package/dist/icons/ShieldIcon.js +1 -1
  922. package/dist/icons/ShieldIcon.js.map +1 -1
  923. package/dist/icons/SlashIcon.js +1 -1
  924. package/dist/icons/SlashIcon.js.map +1 -1
  925. package/dist/icons/SparklesIcon.js +1 -1
  926. package/dist/icons/SparklesIcon.js.map +1 -1
  927. package/dist/icons/SqlIcon.js +1 -1
  928. package/dist/icons/SqlIcon.js.map +1 -1
  929. package/dist/icons/StatsIcon.js +1 -1
  930. package/dist/icons/StatsIcon.js.map +1 -1
  931. package/dist/icons/StopIcon.js +1 -1
  932. package/dist/icons/StopIcon.js.map +1 -1
  933. package/dist/icons/StringIcon.js +1 -1
  934. package/dist/icons/StringIcon.js.map +1 -1
  935. package/dist/icons/SubtotalsIcon.js +1 -1
  936. package/dist/icons/SubtotalsIcon.js.map +1 -1
  937. package/dist/icons/SwitchIcon.js +1 -1
  938. package/dist/icons/SwitchIcon.js.map +1 -1
  939. package/dist/icons/TableIcon.js +1 -1
  940. package/dist/icons/TableIcon.js.map +1 -1
  941. package/dist/icons/ThumbsDownIcon.js +1 -1
  942. package/dist/icons/ThumbsDownIcon.js.map +1 -1
  943. package/dist/icons/ThumbsUpIcon.js +1 -1
  944. package/dist/icons/ThumbsUpIcon.js.map +1 -1
  945. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  946. package/dist/icons/ThunderboltCrossedIcon.js.map +1 -1
  947. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  948. package/dist/icons/ThunderboltFilledIcon.js.map +1 -1
  949. package/dist/icons/ThunderboltIcon.js +1 -1
  950. package/dist/icons/ThunderboltIcon.js.map +1 -1
  951. package/dist/icons/TimeIcon.js +1 -1
  952. package/dist/icons/TimeIcon.js.map +1 -1
  953. package/dist/icons/TrashIcon.js +1 -1
  954. package/dist/icons/TrashIcon.js.map +1 -1
  955. package/dist/icons/UnlockIcon.js +1 -1
  956. package/dist/icons/UnlockIcon.js.map +1 -1
  957. package/dist/icons/UpIcon.js +1 -1
  958. package/dist/icons/UpIcon.js.map +1 -1
  959. package/dist/icons/UserGroupIcon.js +1 -1
  960. package/dist/icons/UserGroupIcon.js.map +1 -1
  961. package/dist/icons/UserIcon.js +1 -1
  962. package/dist/icons/UserIcon.js.map +1 -1
  963. package/dist/icons/UserLockIcon.js +1 -1
  964. package/dist/icons/UserLockIcon.js.map +1 -1
  965. package/dist/icons/ViewIcon.js +1 -1
  966. package/dist/icons/ViewIcon.js.map +1 -1
  967. package/dist/icons/WarningFilledIcon.js +1 -1
  968. package/dist/icons/WarningFilledIcon.js.map +1 -1
  969. package/dist/icons/WarningIcon.js +1 -1
  970. package/dist/icons/WarningIcon.js.map +1 -1
  971. package/dist/icons/wrap-icon.js +15 -7
  972. package/dist/icons/wrap-icon.js.map +1 -1
  973. package/dist/index.d.ts +22 -22
  974. package/dist/index.js +1 -1
  975. package/dist/index.js.map +1 -1
  976. package/dist/probe/canonicalize.js +2 -2
  977. package/dist/probe/canonicalize.js.map +1 -1
  978. package/dist/probe/css.js +1 -1
  979. package/dist/probe/css.js.map +1 -1
  980. package/dist/probe/index.js +1 -1
  981. package/dist/provider.js +17 -7
  982. package/dist/provider.js.map +1 -1
  983. package/dist/providers/TrackingProvider.js +33 -9
  984. package/dist/providers/TrackingProvider.js.map +1 -1
  985. package/dist/providers/navigationAdapter.default.js +1 -1
  986. package/dist/providers/navigationAdapter.default.js.map +1 -1
  987. package/dist/tokens/all-tokens.js +1 -1
  988. package/dist/tokens/all-tokens.js.map +1 -1
  989. package/dist/tokens/base.js +1 -1
  990. package/dist/tokens/base.js.map +1 -1
  991. package/dist/tokens/color-seed.js +1 -1
  992. package/dist/tokens/color-seed.js.map +1 -1
  993. package/dist/tokens/color-theme.js +18 -3
  994. package/dist/tokens/color-theme.js.map +1 -1
  995. package/dist/tokens/colors.js +1 -1
  996. package/dist/tokens/colors.js.map +1 -1
  997. package/dist/tokens/layout.js +1 -1
  998. package/dist/tokens/layout.js.map +1 -1
  999. package/dist/tokens/lazy-styles.js +1 -1
  1000. package/dist/tokens/lazy-styles.js.map +1 -1
  1001. package/dist/tokens/legacy-color.js +1 -1
  1002. package/dist/tokens/legacy-color.js.map +1 -1
  1003. package/dist/tokens/palette-config.js +9 -2
  1004. package/dist/tokens/palette-config.js.map +1 -1
  1005. package/dist/tokens/palette.js +1 -1
  1006. package/dist/tokens/palette.js.map +1 -1
  1007. package/dist/tokens/resolve.js +85 -21
  1008. package/dist/tokens/resolve.js.map +1 -1
  1009. package/dist/tokens/shadows.js +1 -1
  1010. package/dist/tokens/shadows.js.map +1 -1
  1011. package/dist/tokens/sizes.js +1 -1
  1012. package/dist/tokens/sizes.js.map +1 -1
  1013. package/dist/tokens/spacing.js +1 -1
  1014. package/dist/tokens/spacing.js.map +1 -1
  1015. package/dist/tokens/typography.js +1 -1
  1016. package/dist/tokens/typography.js.map +1 -1
  1017. package/dist/utils/ResizeSensor.js +1 -1
  1018. package/dist/utils/ResizeSensor.js.map +1 -1
  1019. package/dist/utils/colors.js +1 -1
  1020. package/dist/utils/colors.js.map +1 -1
  1021. package/dist/utils/dotize.js +1 -1
  1022. package/dist/utils/dotize.js.map +1 -1
  1023. package/dist/utils/is-dev-env.js +1 -1
  1024. package/dist/utils/is-dev-env.js.map +1 -1
  1025. package/dist/utils/modules.js +1 -1
  1026. package/dist/utils/modules.js.map +1 -1
  1027. package/dist/utils/promise.js +1 -1
  1028. package/dist/utils/promise.js.map +1 -1
  1029. package/dist/utils/raf.js +1 -1
  1030. package/dist/utils/raf.js.map +1 -1
  1031. package/dist/utils/random.js +1 -1
  1032. package/dist/utils/random.js.map +1 -1
  1033. package/dist/utils/range.js +1 -1
  1034. package/dist/utils/range.js.map +1 -1
  1035. package/dist/utils/react/RenderCache.js +2 -2
  1036. package/dist/utils/react/RenderCache.js.map +1 -1
  1037. package/dist/utils/react/Slots.js +67 -24
  1038. package/dist/utils/react/Slots.js.map +1 -1
  1039. package/dist/utils/react/chain.js +1 -1
  1040. package/dist/utils/react/chain.js.map +1 -1
  1041. package/dist/utils/react/disabledProps.js +1 -1
  1042. package/dist/utils/react/disabledProps.js.map +1 -1
  1043. package/dist/utils/react/escapePropagation.js +1 -1
  1044. package/dist/utils/react/escapePropagation.js.map +1 -1
  1045. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  1046. package/dist/utils/react/forwardRefWithGenerics.js.map +1 -1
  1047. package/dist/utils/react/index.js +1 -1
  1048. package/dist/utils/react/interactions.js +35 -12
  1049. package/dist/utils/react/interactions.js.map +1 -1
  1050. package/dist/utils/react/isTextOnly.js +1 -1
  1051. package/dist/utils/react/isTextOnly.js.map +1 -1
  1052. package/dist/utils/react/mapProps.js +1 -1
  1053. package/dist/utils/react/mapProps.js.map +1 -1
  1054. package/dist/utils/react/mergeProps.js +1 -1
  1055. package/dist/utils/react/mergeProps.js.map +1 -1
  1056. package/dist/utils/react/nullableValue.js +1 -1
  1057. package/dist/utils/react/nullableValue.js.map +1 -1
  1058. package/dist/utils/react/programmaticFocus.js +1 -1
  1059. package/dist/utils/react/programmaticFocus.js.map +1 -1
  1060. package/dist/utils/react/resolveIcon.js +1 -1
  1061. package/dist/utils/react/resolveIcon.js.map +1 -1
  1062. package/dist/utils/react/sharedStore.js +13 -2
  1063. package/dist/utils/react/sharedStore.js.map +1 -1
  1064. package/dist/utils/react/useBufferedValue.js +5 -5
  1065. package/dist/utils/react/useBufferedValue.js.map +1 -1
  1066. package/dist/utils/react/useCombinedRefs.js +20 -5
  1067. package/dist/utils/react/useCombinedRefs.js.map +1 -1
  1068. package/dist/utils/react/useControlledFocusVisible.js +53 -17
  1069. package/dist/utils/react/useControlledFocusVisible.js.map +1 -1
  1070. package/dist/utils/react/useEventBus.js +43 -18
  1071. package/dist/utils/react/useEventBus.js.map +1 -1
  1072. package/dist/utils/react/useId.js +2 -1
  1073. package/dist/utils/react/useId.js.map +1 -1
  1074. package/dist/utils/react/useIsDarwin.js +29 -16
  1075. package/dist/utils/react/useIsDarwin.js.map +1 -1
  1076. package/dist/utils/react/useKeySymbols.js +23 -9
  1077. package/dist/utils/react/useKeySymbols.js.map +1 -1
  1078. package/dist/utils/react/useLayoutEffect.js +1 -1
  1079. package/dist/utils/react/useLayoutEffect.js.map +1 -1
  1080. package/dist/utils/react/useLocalStorage.js +75 -30
  1081. package/dist/utils/react/useLocalStorage.js.map +1 -1
  1082. package/dist/utils/react/useMergeStyles.js +1 -1
  1083. package/dist/utils/react/useMergeStyles.js.map +1 -1
  1084. package/dist/utils/react/useOverlayEscapeGuard.js +25 -9
  1085. package/dist/utils/react/useOverlayEscapeGuard.js.map +1 -1
  1086. package/dist/utils/react/usePopoverSync.js +175 -73
  1087. package/dist/utils/react/usePopoverSync.js.map +1 -1
  1088. package/dist/utils/react/useQaProps.js +1 -1
  1089. package/dist/utils/react/useQaProps.js.map +1 -1
  1090. package/dist/utils/react/useScheme.js +1 -1
  1091. package/dist/utils/react/useScheme.js.map +1 -1
  1092. package/dist/utils/react/useViewportSize.js +43 -19
  1093. package/dist/utils/react/useViewportSize.js.map +1 -1
  1094. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  1095. package/dist/utils/react/wrapNodeIfPlain.js.map +1 -1
  1096. package/dist/utils/selection.js +1 -1
  1097. package/dist/utils/selection.js.map +1 -1
  1098. package/dist/utils/styles.js +1 -1
  1099. package/dist/utils/styles.js.map +1 -1
  1100. package/dist/utils/tree.js +1 -1
  1101. package/dist/utils/tree.js.map +1 -1
  1102. package/dist/utils/warnings.js +1 -1
  1103. package/dist/utils/warnings.js.map +1 -1
  1104. package/dist/version.js +2 -2
  1105. package/dist/version.js.map +1 -1
  1106. package/docs/Usage.md +9 -1
  1107. package/docs/components/content/InlineInput.md +1 -1
  1108. package/docs/components/fields/ColorInput.md +13 -8
  1109. package/docs/components/fields/ColorPicker.md +13 -8
  1110. package/docs/components/fields/ComboBox.md +16 -12
  1111. package/docs/components/fields/FilterListBox.md +24 -19
  1112. package/docs/components/fields/FilterPicker.md +24 -19
  1113. package/docs/components/fields/ListBox.md +36 -26
  1114. package/docs/components/fields/Picker.md +27 -21
  1115. package/docs/components/fields/Select.md +16 -12
  1116. package/docs/components/form/Field.md +2 -2
  1117. package/docs/components/form/Form.md +60 -579
  1118. package/docs/components/form/ModernForm.md +22 -1
  1119. package/docs/components/overlays/DialogForm.md +121 -263
  1120. package/docs/components/overlays/DialogTrigger.md +1 -1
  1121. package/docs/components/overlays/UseDialogContainer.md +11 -13
  1122. package/docs/modern-form-guide.md +22 -1
  1123. package/docs/modern-form-migration.md +1 -1
  1124. package/package.json +7 -2
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","names":[],"sources":["../src/provider.tsx"],"sourcesContent":["import {\n createContext,\n ForwardedRef,\n PropsWithChildren,\n ReactElement,\n useContext,\n useMemo,\n} from 'react';\n\nimport { NavigationAdapter } from './providers/navigation.types';\nimport { defaultNavigationAdapter } from './providers/navigationAdapter.default';\nimport { EventBusProvider } from './utils/react/useEventBus';\n\nimport type { Props } from './props';\n\nexport interface ProviderProps extends Props {\n insideForm?: boolean;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n isInvalid?: boolean;\n isValid?: boolean;\n navigation?: NavigationAdapter;\n ref?: ReactElement;\n root?: ForwardedRef<any>;\n}\n\nexport type ProviderInsideProps = Omit<ProviderProps, 'styles'>;\n\nexport const UIKitContext = createContext<ProviderInsideProps>({\n navigation: defaultNavigationAdapter,\n});\n\nexport function Provider(allProps: PropsWithChildren<ProviderProps>) {\n let {\n children,\n insideForm,\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n isValid,\n navigation,\n root,\n ref,\n } = allProps;\n\n const parentContext = useContext(UIKitContext);\n\n // Wrap with EventBusProvider for menu synchronization\n children = <EventBusProvider>{children}</EventBusProvider>;\n\n const props = useMemo(\n () => ({\n ref,\n insideForm,\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n isValid,\n navigation: navigation || defaultNavigationAdapter,\n root,\n }),\n [\n ref,\n insideForm,\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n isValid,\n navigation,\n root,\n ],\n );\n\n const newValue = useMemo(() => {\n let newValue = Object.assign({}, parentContext);\n\n Object.keys(props).forEach((key) => {\n if (props[key] != null) {\n newValue[key] = props[key];\n }\n });\n\n return newValue;\n }, [parentContext, props]);\n\n return (\n <UIKitContext.Provider value={newValue}>{children}</UIKitContext.Provider>\n );\n}\n\nexport function useProviderProps<T extends ProviderProps = Props>(props: T): T {\n const contextProps = useContext(UIKitContext);\n\n return { ...contextProps, ...props } as T;\n}\n"],"mappings":";;;;;;;AA6BA,MAAa,eAAe,cAAmC,EAC7D,YAAY,0BACb,CAAC;AAEF,SAAgB,SAAS,UAA4C;CACnE,IAAI,EACF,UACA,YACA,YACA,YACA,YACA,WACA,SACA,YACA,MACA,QACE;CAEJ,MAAM,gBAAgB,WAAW,aAAa;AAG9C,YAAW,oBAAC,oBAAkB,WAA4B;CAE1D,MAAM,QAAQ,eACL;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAAY,cAAc;EAC1B;EACD,GACD;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACD,CACF;CAED,MAAM,WAAW,cAAc;EAC7B,IAAI,WAAW,OAAO,OAAO,EAAE,EAAE,cAAc;AAE/C,SAAO,KAAK,MAAM,CAAC,SAAS,QAAQ;AAClC,OAAI,MAAM,QAAQ,KAChB,UAAS,OAAO,MAAM;IAExB;AAEF,SAAO;IACN,CAAC,eAAe,MAAM,CAAC;AAE1B,QACE,oBAAC,aAAa;EAAS,OAAO;EAAW;GAAiC;;AAI9E,SAAgB,iBAAkD,OAAa;AAG7E,QAAO;EAAE,GAFY,WAAW,aAAa;EAEnB,GAAG;EAAO"}
1
+ {"version":3,"file":"provider.js","names":["createContext","ForwardedRef","PropsWithChildren","ReactElement","useContext","useMemo","NavigationAdapter","defaultNavigationAdapter","EventBusProvider","Props","ProviderProps","insideForm","isDisabled","isReadOnly","isRequired","isInvalid","isValid","navigation","ref","root","ProviderInsideProps","Omit","UIKitContext","Provider","allProps","children","parentContext","props","newValue","Object","assign","keys","forEach","key","useProviderProps","$","_c","contextProps","t0","T"],"sources":["../src/provider.tsx"],"sourcesContent":["import {\n createContext,\n ForwardedRef,\n PropsWithChildren,\n ReactElement,\n useContext,\n useMemo,\n} from 'react';\n\nimport { NavigationAdapter } from './providers/navigation.types';\nimport { defaultNavigationAdapter } from './providers/navigationAdapter.default';\nimport { EventBusProvider } from './utils/react/useEventBus';\n\nimport type { Props } from './props';\n\nexport interface ProviderProps extends Props {\n insideForm?: boolean;\n isDisabled?: boolean;\n isReadOnly?: boolean;\n isRequired?: boolean;\n isInvalid?: boolean;\n isValid?: boolean;\n navigation?: NavigationAdapter;\n ref?: ReactElement;\n root?: ForwardedRef<any>;\n}\n\nexport type ProviderInsideProps = Omit<ProviderProps, 'styles'>;\n\nexport const UIKitContext = createContext<ProviderInsideProps>({\n navigation: defaultNavigationAdapter,\n});\n\nexport function Provider(allProps: PropsWithChildren<ProviderProps>) {\n let {\n children,\n insideForm,\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n isValid,\n navigation,\n root,\n ref,\n } = allProps;\n\n const parentContext = useContext(UIKitContext);\n\n // Wrap with EventBusProvider for menu synchronization\n children = <EventBusProvider>{children}</EventBusProvider>;\n\n const props = useMemo(\n () => ({\n ref,\n insideForm,\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n isValid,\n navigation: navigation || defaultNavigationAdapter,\n root,\n }),\n [\n ref,\n insideForm,\n isDisabled,\n isReadOnly,\n isRequired,\n isInvalid,\n isValid,\n navigation,\n root,\n ],\n );\n\n const newValue = useMemo(() => {\n let newValue = Object.assign({}, parentContext);\n\n Object.keys(props).forEach((key) => {\n if (props[key] != null) {\n newValue[key] = props[key];\n }\n });\n\n return newValue;\n }, [parentContext, props]);\n\n return (\n <UIKitContext.Provider value={newValue}>{children}</UIKitContext.Provider>\n );\n}\n\nexport function useProviderProps<T extends ProviderProps = Props>(props: T): T {\n const contextProps = useContext(UIKitContext);\n\n return { ...contextProps, ...props } as T;\n}\n"],"mappings":";;;;;;;;AA6BA,MAAasB,eAAetB,cAAmC,EAC7DiB,YAAYV,0BACb,CAAC;AAEF,SAAgBgB,SAASC,UAA4C;CACnE,IAAI,EACFC,UACAd,YACAC,YACAC,YACAC,YACAC,WACAC,SACAC,YACAE,MACAD,QACEM;CAEJ,MAAME,gBAAgBtB,WAAWkB,aAAa;AAG9CG,YAAW,oBAAC,oBAAkBA,WAA4B;CAE1D,MAAME,QAAQtB,eACL;EACLa;EACAP;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC,YAAYA,cAAcV;EAC1BY;EACD,GACD;EACED;EACAP;EACAC;EACAC;EACAC;EACAC;EACAC;EACAC;EACAE;EAEJ,CAAC;CAED,MAAMS,aAAWvB,cAAc;EAC7B,IAAIuB,WAAWC,OAAOC,OAAO,EAAE,EAAEJ,cAAc;AAE/CG,SAAOE,KAAKJ,MAAM,CAACK,SAASC,QAAQ;AAClC,OAAIN,MAAMM,QAAQ,KAChBL,UAASK,OAAON,MAAMM;IAExB;AAEF,SAAOL;IACN,CAACF,eAAeC,MAAM,CAAC;AAE1B,QACE,oBAAC,aAAa;EAAS,OAAOC;EAAWH;GAAiC;;AAI9E,SAAOS,iBAAAP,OAAA;CAAA,MAAAQ,IAAAC,EAAA,EAAA;CACL,MAAAC,eAAqBjC,WAAWkB,aAAa;CAAC,IAAAgB;AAAA,KAAAH,EAAA,OAAAE,gBAAAF,EAAA,OAAAR,OAAA;AAEvCW,OAAA;GAAA,GAAKD;GAAY,GAAKV;GAAO;AAAAQ,IAAA,KAAAE;AAAAF,IAAA,KAAAR;AAAAQ,IAAA,KAAAG;OAAAA,MAAAH,EAAA;AAAA,QAA7BG"}
@@ -1,16 +1,40 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
2
- import { createContext, useContext, useMemo } from "react";
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
+ import { c } from "react-compiler-runtime";
3
+ import { createContext, useContext } from "react";
3
4
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
4
5
 
5
6
  //#region src/providers/TrackingProvider.tsx
6
7
  const TrackingContext = createContext({ event() {} });
7
- function TrackingProvider({ children, event }) {
8
- const tracking = useMemo(() => ({ event }), [event]);
9
- if (!event) return /* @__PURE__ */ jsx(Fragment$1, { children });
10
- return /* @__PURE__ */ jsx(TrackingContext.Provider, {
11
- value: tracking,
12
- children
13
- });
8
+ function TrackingProvider(t0) {
9
+ const $ = c(7);
10
+ const { children, event } = t0;
11
+ let t1;
12
+ if ($[0] !== event) {
13
+ t1 = { event };
14
+ $[0] = event;
15
+ $[1] = t1;
16
+ } else t1 = $[1];
17
+ const tracking = t1;
18
+ if (!event) {
19
+ let t2;
20
+ if ($[2] !== children) {
21
+ t2 = /* @__PURE__ */ jsx(Fragment$1, { children });
22
+ $[2] = children;
23
+ $[3] = t2;
24
+ } else t2 = $[3];
25
+ return t2;
26
+ }
27
+ let t2;
28
+ if ($[4] !== children || $[5] !== tracking) {
29
+ t2 = /* @__PURE__ */ jsx(TrackingContext.Provider, {
30
+ value: tracking,
31
+ children
32
+ });
33
+ $[4] = children;
34
+ $[5] = tracking;
35
+ $[6] = t2;
36
+ } else t2 = $[6];
37
+ return t2;
14
38
  }
15
39
  function useTracking() {
16
40
  return useContext(TrackingContext);
@@ -1 +1 @@
1
- {"version":3,"file":"TrackingProvider.js","names":[],"sources":["../../src/providers/TrackingProvider.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext, useMemo } from 'react';\n\nexport interface TrackingProps {\n event?: (\n name: string,\n data?: Record<string, any>,\n element?: HTMLElement,\n ) => void;\n}\n\nexport const TrackingContext = createContext<TrackingProps>({\n event() {\n // noop\n },\n});\n\nexport interface CubeTrackingProviderProps extends TrackingProps {\n children?: ReactNode;\n}\n\nexport function TrackingProvider({\n children,\n event,\n}: CubeTrackingProviderProps) {\n const tracking = useMemo(() => ({ event }), [event]);\n\n if (!event) return <>{children}</>;\n\n return (\n <TrackingContext.Provider value={tracking}>\n {children}\n </TrackingContext.Provider>\n );\n}\n\nexport function useTracking() {\n const tracking = useContext(TrackingContext);\n\n return tracking;\n}\n"],"mappings":";;;;;AAUA,MAAa,kBAAkB,cAA6B,EAC1D,QAAQ,IAGT,CAAC;AAMF,SAAgB,iBAAiB,EAC/B,UACA,SAC4B;CAC5B,MAAM,WAAW,eAAe,EAAE,OAAO,GAAG,CAAC,MAAM,CAAC;AAEpD,KAAI,CAAC,MAAO,QAAO,kCAAG,WAAY;AAElC,QACE,oBAAC,gBAAgB;EAAS,OAAO;EAC9B;GACwB;;AAI/B,SAAgB,cAAc;AAG5B,QAFiB,WAAW,gBAAgB"}
1
+ {"version":3,"file":"TrackingProvider.js","names":["createContext","ReactNode","useContext","useMemo","TrackingProps","event","name","data","Record","element","HTMLElement","TrackingContext","CubeTrackingProviderProps","children","TrackingProvider","t0","$","_c","t1","tracking","t2","useTracking"],"sources":["../../src/providers/TrackingProvider.tsx"],"sourcesContent":["import { createContext, ReactNode, useContext, useMemo } from 'react';\n\nexport interface TrackingProps {\n event?: (\n name: string,\n data?: Record<string, any>,\n element?: HTMLElement,\n ) => void;\n}\n\nexport const TrackingContext = createContext<TrackingProps>({\n event() {\n // noop\n },\n});\n\nexport interface CubeTrackingProviderProps extends TrackingProps {\n children?: ReactNode;\n}\n\nexport function TrackingProvider({\n children,\n event,\n}: CubeTrackingProviderProps) {\n const tracking = useMemo(() => ({ event }), [event]);\n\n if (!event) return <>{children}</>;\n\n return (\n <TrackingContext.Provider value={tracking}>\n {children}\n </TrackingContext.Provider>\n );\n}\n\nexport function useTracking() {\n const tracking = useContext(TrackingContext);\n\n return tracking;\n}\n"],"mappings":";;;;;;AAUA,MAAaW,kBAAkBX,cAA6B,EAC1DK,QAAQ,IAGT,CAAC;AAMF,SAAOS,iBAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAA0B,MAAA,EAAAJ,UAAAR,UAAAU;CAGL,IAAAG;AAAA,KAAAF,EAAA,OAAAX,OAAA;AACMa,OAAA,EAAAb,OAAS;AAAAW,IAAA,KAAAX;AAAAW,IAAA,KAAAE;OAAAA,MAAAF,EAAA;CAAzC,MAAAG,WAAgCD;AAEhC,KAAI,CAACb,OAAK;EAAA,IAAAe;AAAA,MAAAJ,EAAA,OAAAH,UAAA;AAASO,QAAA,kCAAGP,WAAY;AAAAG,KAAA,KAAAH;AAAAG,KAAA,KAAAI;QAAAA,MAAAJ,EAAA;AAAA,SAAfI;;CAAgB,IAAAA;AAAA,KAAAJ,EAAA,OAAAH,YAAAG,EAAA,OAAAG,UAAA;AAGjCC,OAAA,oBAAA,gBAAA;GAAiCD,OAAAA;GAC9BN;IACwB;AAAAG,IAAA,KAAAH;AAAAG,IAAA,KAAAG;AAAAH,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAAA,QAF3BI;;AAMJ,SAAOC,cAAA;AACwC,QAA5BnB,WAAWS,gBAAgB"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  //#region src/providers/navigationAdapter.default.ts
3
3
  /**
4
4
  * Converts a Path object to a string URL
@@ -1 +1 @@
1
- {"version":3,"file":"navigationAdapter.default.js","names":[],"sources":["../../src/providers/navigationAdapter.default.ts"],"sourcesContent":["import {\n NavigateLike,\n NavigateOptions,\n NavigationAdapter,\n Path,\n To,\n} from './navigation.types';\n\n/**\n * Converts a Path object to a string URL\n */\nfunction pathToString(path: Path): string {\n let { pathname = '', search = '', hash = '' } = path;\n if (pathname && !pathname.startsWith('/')) pathname = `/${pathname}`;\n if (search && !search.startsWith('?')) search = `?${search}`;\n if (hash && !hash.startsWith('#')) hash = `#${hash}`;\n return `${pathname}${search}${hash}`;\n}\n\n/**\n * Default navigation adapter that provides native browser navigation\n * when no router is available. This ensures hooks are always callable.\n */\nexport const defaultNavigationAdapter: NavigationAdapter = {\n useHref: (to: To) => {\n // For strings, return as-is (SSR-safe, no window dependency)\n if (typeof to === 'string') {\n return to;\n }\n // For objects, normalize to string\n return pathToString(to);\n },\n\n useNavigate: () => {\n const navigate: NavigateLike = (to: any, options?: NavigateOptions) => {\n // Handle history navigation (numbers)\n if (typeof to === 'number') {\n if (typeof window !== 'undefined') {\n window.history.go(to);\n }\n return;\n }\n\n // Handle strings and objects - convert to string URL\n const url = typeof to === 'string' ? to : pathToString(to);\n\n if (typeof window !== 'undefined') {\n if (options?.replace) {\n window.location.replace(url);\n } else {\n window.location.assign(url);\n }\n }\n };\n return navigate;\n },\n};\n"],"mappings":";;;;;AAWA,SAAS,aAAa,MAAoB;CACxC,IAAI,EAAE,WAAW,IAAI,SAAS,IAAI,OAAO,OAAO;AAChD,KAAI,YAAY,CAAC,SAAS,WAAW,IAAI,CAAE,YAAW,IAAI;AAC1D,KAAI,UAAU,CAAC,OAAO,WAAW,IAAI,CAAE,UAAS,IAAI;AACpD,KAAI,QAAQ,CAAC,KAAK,WAAW,IAAI,CAAE,QAAO,IAAI;AAC9C,QAAO,GAAG,WAAW,SAAS;;;;;;AAOhC,MAAa,2BAA8C;CACzD,UAAU,OAAW;AAEnB,MAAI,OAAO,OAAO,SAChB,QAAO;AAGT,SAAO,aAAa,GAAG;;CAGzB,mBAAmB;EACjB,MAAM,YAA0B,IAAS,YAA8B;AAErE,OAAI,OAAO,OAAO,UAAU;AAC1B,QAAI,OAAO,WAAW,YACpB,QAAO,QAAQ,GAAG,GAAG;AAEvB;;GAIF,MAAM,MAAM,OAAO,OAAO,WAAW,KAAK,aAAa,GAAG;AAE1D,OAAI,OAAO,WAAW,YACpB,KAAI,SAAS,QACX,QAAO,SAAS,QAAQ,IAAI;OAE5B,QAAO,SAAS,OAAO,IAAI;;AAIjC,SAAO;;CAEV"}
1
+ {"version":3,"file":"navigationAdapter.default.js","names":["NavigateLike","NavigateOptions","NavigationAdapter","Path","To","pathToString","path","pathname","search","hash","startsWith","defaultNavigationAdapter","useHref","to","useNavigate","navigate","options","window","history","go","url","replace","location","assign"],"sources":["../../src/providers/navigationAdapter.default.ts"],"sourcesContent":["import {\n NavigateLike,\n NavigateOptions,\n NavigationAdapter,\n Path,\n To,\n} from './navigation.types';\n\n/**\n * Converts a Path object to a string URL\n */\nfunction pathToString(path: Path): string {\n let { pathname = '', search = '', hash = '' } = path;\n if (pathname && !pathname.startsWith('/')) pathname = `/${pathname}`;\n if (search && !search.startsWith('?')) search = `?${search}`;\n if (hash && !hash.startsWith('#')) hash = `#${hash}`;\n return `${pathname}${search}${hash}`;\n}\n\n/**\n * Default navigation adapter that provides native browser navigation\n * when no router is available. This ensures hooks are always callable.\n */\nexport const defaultNavigationAdapter: NavigationAdapter = {\n useHref: (to: To) => {\n // For strings, return as-is (SSR-safe, no window dependency)\n if (typeof to === 'string') {\n return to;\n }\n // For objects, normalize to string\n return pathToString(to);\n },\n\n useNavigate: () => {\n const navigate: NavigateLike = (to: any, options?: NavigateOptions) => {\n // Handle history navigation (numbers)\n if (typeof to === 'number') {\n if (typeof window !== 'undefined') {\n window.history.go(to);\n }\n return;\n }\n\n // Handle strings and objects - convert to string URL\n const url = typeof to === 'string' ? to : pathToString(to);\n\n if (typeof window !== 'undefined') {\n if (options?.replace) {\n window.location.replace(url);\n } else {\n window.location.assign(url);\n }\n }\n };\n return navigate;\n },\n};\n"],"mappings":";;;;;AAWA,SAASK,aAAaC,MAAoB;CACxC,IAAI,EAAEC,WAAW,IAAIC,SAAS,IAAIC,OAAO,OAAOH;AAChD,KAAIC,YAAY,CAACA,SAASG,WAAW,IAAI,CAAEH,YAAW,IAAIA;AAC1D,KAAIC,UAAU,CAACA,OAAOE,WAAW,IAAI,CAAEF,UAAS,IAAIA;AACpD,KAAIC,QAAQ,CAACA,KAAKC,WAAW,IAAI,CAAED,QAAO,IAAIA;AAC9C,QAAO,GAAGF,WAAWC,SAASC;;;;;;AAOhC,MAAaE,2BAA8C;CACzDC,UAAUC,OAAW;AAEnB,MAAI,OAAOA,OAAO,SAChB,QAAOA;AAGT,SAAOR,aAAaQ,GAAG;;CAGzBC,mBAAmB;EACjB,MAAMC,YAA0BF,IAASG,YAA8B;AAErE,OAAI,OAAOH,OAAO,UAAU;AAC1B,QAAI,OAAOI,WAAW,YACpBA,QAAOC,QAAQC,GAAGN,GAAG;AAEvB;;GAIF,MAAMO,MAAM,OAAOP,OAAO,WAAWA,KAAKR,aAAaQ,GAAG;AAE1D,OAAI,OAAOI,WAAW,YACpB,KAAID,SAASK,QACXJ,QAAOK,SAASD,QAAQD,IAAI;OAE5BH,QAAOK,SAASC,OAAOH,IAAI;;AAIjC,SAAOL;;CAEV"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { getPaletteVersion } from "./palette-config.js";
3
3
  import { BASE_TOKENS } from "./base.js";
4
4
  import { lazyStyles } from "./lazy-styles.js";
@@ -1 +1 @@
1
- {"version":3,"file":"all-tokens.js","names":[],"sources":["../../src/tokens/all-tokens.ts"],"sourcesContent":["import { 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';\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, $danger-color, 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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,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
+ {"version":3,"file":"all-tokens.js","names":["generateTypographyTokens","BASE_TOKENS","getColorTokens","LAYOUT_TOKENS","lazyStyles","getPaletteVersion","SHADOW_TOKENS","SIZE_TOKENS","SPACE_TOKENS","TYPOGRAPHY_PRESETS","Styles","tokensCache","cachedVersion","getTokens","version","TOKENS"],"sources":["../../src/tokens/all-tokens.ts"],"sourcesContent":["import { 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';\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, $danger-color, 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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,IAAIW,cAA6B;AACjC,IAAIC,gBAAgB;AAEpB,SAAgBC,YAAoB;CAClC,MAAMC,UAAUT,mBAAmB;AAEnC,KAAI,CAACM,eAAeC,kBAAkBE,SAAS;AAC7CH,gBAAc;GACZ,GAAGV;GACH,GAAGO;GACH,GAAGD;GACH,GAAGD;GACH,GAAGH;GACH,GAAGH,yBAAyBS,mBAAmB;GAC/C,GAAGP,gBAAe;GACnB;AACDU,kBAAgBE;;AAElB,QAAOH;;;AAIT,MAAaI,SAAiBX,WAAWS,UAAU"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  //#region src/tokens/base.ts
3
3
  /**
4
4
  * Base design system tokens.
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","names":[],"sources":["../../src/tokens/base.ts"],"sourcesContent":["import type { Styles } from '@tenphi/tasty';\n\n/**\n * Base design system tokens.\n * These define the fundamental units and values used throughout the system.\n *\n * Keys use $ prefix for CSS custom properties.\n */\nexport const BASE_TOKENS: Styles = {\n // Typography base\n /** @deprecated Use preset tokens instead */\n '$font-size': '14px',\n /** @deprecated Use preset tokens instead */\n '$line-height': '20px',\n\n // Input typography\n '$input-font-size': '14px',\n '$input-line-height': '20px',\n '$input-letter-spacing': '0.02em',\n\n // Opacity & dimensions\n /** Opacity for disabled elements */\n '$disabled-opacity': '.4',\n /** Base gap unit for spacing (used with `.5x`, `1x`, `2x` etc.) */\n $gap: '8px',\n /** Stroke width for icons */\n '$stroke-width': 1.5,\n /** Focus outline width */\n '$outline-width': 'calc(1rem / 16 * 3)',\n /** Border width for bordered elements */\n '$border-width': '1px',\n\n // Border radius\n /** Base border radius (used with `1r`, `2r` etc.) */\n $radius: '6px',\n /** Larger radius using tasty calc: 1r + 0.5x */\n '$large-radius': '(1r + .5x)',\n /** Card border radius */\n '$card-radius': '(1r + .5x)',\n /** Sharp corner for leaf shapes */\n '$sharp-radius': '0px',\n\n // Misc dimensions\n /**\n * Minimum dialog width (responsive).\n *\n * The viewport term must match the `100dvw - 8x` max-width that `Dialog`,\n * `Modal` and `Tray` set, because CSS resolves `min-width` *after*\n * `max-width`: if this floor can exceed that ceiling, the floor wins and the\n * dialog overflows its own viewport. It did, below ~352px — an Excel/Sheets\n * task pane is 300-350px, so every dialog there rendered 288px wide inside a\n * 236px box.\n */\n '$min-dialog-size': 'min(288px, calc(100dvw - (8 * var(--gap))))',\n\n // Transitions\n /** Default transition duration */\n $transition: '80ms',\n /** Transition for disclosure animations */\n '$disclosure-transition': '120ms',\n /** Transition for tab animations */\n '$tab-transition': '120ms',\n /** Transition for fade animations */\n '$fade-transition': '200ms',\n\n /**\n * Marks an element as carrying the token block. Not a design value — nothing\n * styles against it.\n *\n * `resolveTokenValue()` reads it to answer the one question a computed value\n * cannot: \"are the kit's tokens in effect here?\" Tasty registers `@property`\n * defaults with real initial values — `--gap` is `4px` off the block, not\n * `0px` — so a token read from outside `<Root>` comes back plausible and\n * wrong, and no amount of inspecting the value would reveal it. This is\n * declared alongside the tokens, so it is present exactly where they are.\n */\n '$tokens-applied': '1',\n\n // Scrollbar tokens\n '$scrollbar-width': '1.5x',\n '$scrollbar-outline-width': '1ow',\n '$scrollbar-radius': '1.5r',\n '#scrollbar-thumb': '#text.5',\n '#scrollbar-outline': '#clear',\n '#scrollbar-bg': '#surface-2',\n '#scrollbar-corner': '#clear',\n};\n"],"mappings":";;;;;;;;AAQA,MAAa,cAAsB;CAGjC,cAAc;CAEd,gBAAgB;CAGhB,oBAAoB;CACpB,sBAAsB;CACtB,yBAAyB;CAIzB,qBAAqB;CAErB,MAAM;CAEN,iBAAiB;CAEjB,kBAAkB;CAElB,iBAAiB;CAIjB,SAAS;CAET,iBAAiB;CAEjB,gBAAgB;CAEhB,iBAAiB;CAajB,oBAAoB;CAIpB,aAAa;CAEb,0BAA0B;CAE1B,mBAAmB;CAEnB,oBAAoB;CAapB,mBAAmB;CAGnB,oBAAoB;CACpB,4BAA4B;CAC5B,qBAAqB;CACrB,oBAAoB;CACpB,sBAAsB;CACtB,iBAAiB;CACjB,qBAAqB;CACtB"}
1
+ {"version":3,"file":"base.js","names":["Styles","BASE_TOKENS","$gap","$radius","$transition"],"sources":["../../src/tokens/base.ts"],"sourcesContent":["import type { Styles } from '@tenphi/tasty';\n\n/**\n * Base design system tokens.\n * These define the fundamental units and values used throughout the system.\n *\n * Keys use $ prefix for CSS custom properties.\n */\nexport const BASE_TOKENS: Styles = {\n // Typography base\n /** @deprecated Use preset tokens instead */\n '$font-size': '14px',\n /** @deprecated Use preset tokens instead */\n '$line-height': '20px',\n\n // Input typography\n '$input-font-size': '14px',\n '$input-line-height': '20px',\n '$input-letter-spacing': '0.02em',\n\n // Opacity & dimensions\n /** Opacity for disabled elements */\n '$disabled-opacity': '.4',\n /** Base gap unit for spacing (used with `.5x`, `1x`, `2x` etc.) */\n $gap: '8px',\n /** Stroke width for icons */\n '$stroke-width': 1.5,\n /** Focus outline width */\n '$outline-width': 'calc(1rem / 16 * 3)',\n /** Border width for bordered elements */\n '$border-width': '1px',\n\n // Border radius\n /** Base border radius (used with `1r`, `2r` etc.) */\n $radius: '6px',\n /** Larger radius using tasty calc: 1r + 0.5x */\n '$large-radius': '(1r + .5x)',\n /** Card border radius */\n '$card-radius': '(1r + .5x)',\n /** Sharp corner for leaf shapes */\n '$sharp-radius': '0px',\n\n // Misc dimensions\n /**\n * Minimum dialog width (responsive).\n *\n * The viewport term must match the `100dvw - 8x` max-width that `Dialog`,\n * `Modal` and `Tray` set, because CSS resolves `min-width` *after*\n * `max-width`: if this floor can exceed that ceiling, the floor wins and the\n * dialog overflows its own viewport. It did, below ~352px — an Excel/Sheets\n * task pane is 300-350px, so every dialog there rendered 288px wide inside a\n * 236px box.\n */\n '$min-dialog-size': 'min(288px, calc(100dvw - (8 * var(--gap))))',\n\n // Transitions\n /** Default transition duration */\n $transition: '80ms',\n /** Transition for disclosure animations */\n '$disclosure-transition': '120ms',\n /** Transition for tab animations */\n '$tab-transition': '120ms',\n /** Transition for fade animations */\n '$fade-transition': '200ms',\n\n /**\n * Marks an element as carrying the token block. Not a design value — nothing\n * styles against it.\n *\n * `resolveTokenValue()` reads it to answer the one question a computed value\n * cannot: \"are the kit's tokens in effect here?\" Tasty registers `@property`\n * defaults with real initial values — `--gap` is `4px` off the block, not\n * `0px` — so a token read from outside `<Root>` comes back plausible and\n * wrong, and no amount of inspecting the value would reveal it. This is\n * declared alongside the tokens, so it is present exactly where they are.\n */\n '$tokens-applied': '1',\n\n // Scrollbar tokens\n '$scrollbar-width': '1.5x',\n '$scrollbar-outline-width': '1ow',\n '$scrollbar-radius': '1.5r',\n '#scrollbar-thumb': '#text.5',\n '#scrollbar-outline': '#clear',\n '#scrollbar-bg': '#surface-2',\n '#scrollbar-corner': '#clear',\n};\n"],"mappings":";;;;;;;;AAQA,MAAaC,cAAsB;CAGjC,cAAc;CAEd,gBAAgB;CAGhB,oBAAoB;CACpB,sBAAsB;CACtB,yBAAyB;CAIzB,qBAAqB;CAErBC,MAAM;CAEN,iBAAiB;CAEjB,kBAAkB;CAElB,iBAAiB;CAIjBC,SAAS;CAET,iBAAiB;CAEjB,gBAAgB;CAEhB,iBAAiB;CAajB,oBAAoB;CAIpBC,aAAa;CAEb,0BAA0B;CAE1B,mBAAmB;CAEnB,oBAAoB;CAapB,mBAAmB;CAGnB,oBAAoB;CACpB,4BAA4B;CAC5B,qBAAqB;CACrB,oBAAoB;CACpB,sBAAsB;CACtB,iBAAiB;CACjB,qBAAqB;CACtB"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { glaze } from "@tenphi/glaze";
3
3
 
4
4
  //#region src/tokens/color-seed.ts
@@ -1 +1 @@
1
- {"version":3,"file":"color-seed.js","names":[],"sources":["../../src/tokens/color-seed.ts"],"sourcesContent":["import { glaze } from '@tenphi/glaze';\n\n/**\n * Turns a colour into the three numbers the palette is seeded from.\n *\n * A deliberate LEAF: it imports Glaze and nothing else. `./palette-config` reads it\n * from inside `resolveConfig`, and `./palette-config` is the one module the token\n * graph is not allowed to have a cycle through — so anything this file imported\n * would become a `palette-config` dependency too. Glaze has no edge back into the\n * token modules, so it is safe; `./palette` (which owns `TINT_RECIPE` and the global\n * `glaze.configure`) is not.\n *\n * There is no ordering hazard either, even though `./palette` runs\n * `glaze.configure()` at module scope and this file may be called before that\n * happens. A bare-string colour token defaults to `lightTone: false`, so its light\n * variant preserves the input tone exactly and its hue and saturation come straight\n * off the parse — all three readings are independent of the global config.\n */\n\n/** Hue, saturation and tone read off a colour, on the palette's own scales. */\nexport interface ColorSeed {\n /** 0–360. */\n hue: number;\n /** 0–100 — the palette's seed scale, not Glaze's 0–1 factor. */\n saturation: number;\n /** 0–100 on the OKHST tone axis. */\n tone: number;\n}\n\n/**\n * A colour picker being dragged emits a distinct string per frame, and\n * `resolveConfig` runs on every `setPaletteConfig` *and* every\n * `resolvePaletteConfig` preview. One resolve is only ~3µs, so this is insurance\n * against a drag rather than a hot path — hence a cap and a clear rather than an\n * LRU.\n */\nconst CACHE_LIMIT = 256;\nconst cache = new Map<string, ColorSeed | null>();\n\n/**\n * Read a colour's hue, saturation and tone.\n *\n * Accepts anything Glaze parses — hex, `rgb()`, `hsl()`, `okhsl()`, `okhst()`,\n * `oklch()`. CSS colour keywords (`rebeccapurple`) are **not** supported.\n *\n * Returns `null` on anything unparseable, having warned once, so a caller can fall\n * back to its numeric seed instead of throwing on a typo in a settings field.\n *\n * ```ts\n * colorSeed('#0ea5e9'); // → { hue: 237.32, saturation: 98.19, tone: 65.78 }\n * ```\n */\nexport function colorSeed(value: string): ColorSeed | null {\n const cached = cache.get(value);\n\n // `null` is a cached FAILURE, not a miss — which is also what dedupes the\n // warning, so a bad value in a re-rendered config does not fill the console.\n if (cached !== undefined) return cached;\n\n let seed: ColorSeed | null = null;\n\n try {\n const { h, s, t } = glaze.color(value).resolve().light;\n\n // Glaze reports saturation and tone as 0–1 factors; the palette's are 0–100.\n seed = { hue: h, saturation: s * 100, tone: t * 100 };\n } catch {\n console.warn(\n `[cube-ui-kit] could not parse palette colour ${JSON.stringify(value)}; ` +\n `keeping the numeric seed. Accepted: hex, rgb(), hsl(), okhsl(), okhst(), ` +\n `oklch() — CSS colour keywords are not supported.`,\n );\n }\n\n if (cache.size >= CACHE_LIMIT) cache.clear();\n cache.set(value, seed);\n\n return seed;\n}\n"],"mappings":";;;;;;;;;;;AAoCA,MAAM,cAAc;AACpB,MAAM,wBAAQ,IAAI,KAA+B;;;;;;;;;;;;;;AAejD,SAAgB,UAAU,OAAiC;CACzD,MAAM,SAAS,MAAM,IAAI,MAAM;AAI/B,KAAI,WAAW,OAAW,QAAO;CAEjC,IAAI,OAAyB;AAE7B,KAAI;EACF,MAAM,EAAE,GAAG,GAAG,MAAM,MAAM,MAAM,MAAM,CAAC,SAAS,CAAC;AAGjD,SAAO;GAAE,KAAK;GAAG,YAAY,IAAI;GAAK,MAAM,IAAI;GAAK;SAC/C;AACN,UAAQ,KACN,gDAAgD,KAAK,UAAU,MAAM,CAAC,6HAGvE;;AAGH,KAAI,MAAM,QAAQ,YAAa,OAAM,OAAO;AAC5C,OAAM,IAAI,OAAO,KAAK;AAEtB,QAAO"}
1
+ {"version":3,"file":"color-seed.js","names":["glaze","ColorSeed","hue","saturation","tone","CACHE_LIMIT","cache","Map","colorSeed","value","cached","get","undefined","seed","h","s","t","color","resolve","light","console","warn","JSON","stringify","size","clear","set"],"sources":["../../src/tokens/color-seed.ts"],"sourcesContent":["import { glaze } from '@tenphi/glaze';\n\n/**\n * Turns a colour into the three numbers the palette is seeded from.\n *\n * A deliberate LEAF: it imports Glaze and nothing else. `./palette-config` reads it\n * from inside `resolveConfig`, and `./palette-config` is the one module the token\n * graph is not allowed to have a cycle through — so anything this file imported\n * would become a `palette-config` dependency too. Glaze has no edge back into the\n * token modules, so it is safe; `./palette` (which owns `TINT_RECIPE` and the global\n * `glaze.configure`) is not.\n *\n * There is no ordering hazard either, even though `./palette` runs\n * `glaze.configure()` at module scope and this file may be called before that\n * happens. A bare-string colour token defaults to `lightTone: false`, so its light\n * variant preserves the input tone exactly and its hue and saturation come straight\n * off the parse — all three readings are independent of the global config.\n */\n\n/** Hue, saturation and tone read off a colour, on the palette's own scales. */\nexport interface ColorSeed {\n /** 0–360. */\n hue: number;\n /** 0–100 — the palette's seed scale, not Glaze's 0–1 factor. */\n saturation: number;\n /** 0–100 on the OKHST tone axis. */\n tone: number;\n}\n\n/**\n * A colour picker being dragged emits a distinct string per frame, and\n * `resolveConfig` runs on every `setPaletteConfig` *and* every\n * `resolvePaletteConfig` preview. One resolve is only ~3µs, so this is insurance\n * against a drag rather than a hot path — hence a cap and a clear rather than an\n * LRU.\n */\nconst CACHE_LIMIT = 256;\nconst cache = new Map<string, ColorSeed | null>();\n\n/**\n * Read a colour's hue, saturation and tone.\n *\n * Accepts anything Glaze parses — hex, `rgb()`, `hsl()`, `okhsl()`, `okhst()`,\n * `oklch()`. CSS colour keywords (`rebeccapurple`) are **not** supported.\n *\n * Returns `null` on anything unparseable, having warned once, so a caller can fall\n * back to its numeric seed instead of throwing on a typo in a settings field.\n *\n * ```ts\n * colorSeed('#0ea5e9'); // → { hue: 237.32, saturation: 98.19, tone: 65.78 }\n * ```\n */\nexport function colorSeed(value: string): ColorSeed | null {\n const cached = cache.get(value);\n\n // `null` is a cached FAILURE, not a miss — which is also what dedupes the\n // warning, so a bad value in a re-rendered config does not fill the console.\n if (cached !== undefined) return cached;\n\n let seed: ColorSeed | null = null;\n\n try {\n const { h, s, t } = glaze.color(value).resolve().light;\n\n // Glaze reports saturation and tone as 0–1 factors; the palette's are 0–100.\n seed = { hue: h, saturation: s * 100, tone: t * 100 };\n } catch {\n console.warn(\n `[cube-ui-kit] could not parse palette colour ${JSON.stringify(value)}; ` +\n `keeping the numeric seed. Accepted: hex, rgb(), hsl(), okhsl(), okhst(), ` +\n `oklch() — CSS colour keywords are not supported.`,\n );\n }\n\n if (cache.size >= CACHE_LIMIT) cache.clear();\n cache.set(value, seed);\n\n return seed;\n}\n"],"mappings":";;;;;;;;;;;AAoCA,MAAMK,cAAc;AACpB,MAAMC,wBAAQ,IAAIC,KAA+B;;;;;;;;;;;;;;AAejD,SAAgBC,UAAUC,OAAiC;CACzD,MAAMC,SAASJ,MAAMK,IAAIF,MAAM;AAI/B,KAAIC,WAAWE,OAAW,QAAOF;CAEjC,IAAIG,OAAyB;AAE7B,KAAI;EACF,MAAM,EAAEC,GAAGC,GAAGC,MAAMhB,MAAMiB,MAAMR,MAAM,CAACS,SAAS,CAACC;AAGjDN,SAAO;GAAEX,KAAKY;GAAGX,YAAYY,IAAI;GAAKX,MAAMY,IAAI;GAAK;SAC/C;AACNI,UAAQC,KACN,gDAAgDC,KAAKC,UAAUd,MAAM,CAAA,6HAGtE;;AAGH,KAAIH,MAAMkB,QAAQnB,YAAaC,OAAMmB,OAAO;AAC5CnB,OAAMoB,IAAIjB,OAAOI,KAAK;AAEtB,QAAOA"}
@@ -1,7 +1,8 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { colorSeed } from "./color-seed.js";
3
3
  import { DEFAULT_HUE, DEFAULT_SATURATION, getPaletteConfig, getPaletteVersion, usePaletteVersion } from "./palette-config.js";
4
4
  import { tintRecipe } from "./palette.js";
5
+ import { c } from "react-compiler-runtime";
5
6
  import { useGlobalStyles } from "@tenphi/tasty";
6
7
  import { glaze } from "@tenphi/glaze";
7
8
 
@@ -158,9 +159,23 @@ function getColorTheme(config) {
158
159
  * ```
159
160
  */
160
161
  function useColorTheme(config) {
162
+ const $ = c(4);
161
163
  usePaletteVersion();
162
- const theme = getColorTheme(config);
163
- useGlobalStyles("body", theme.tokens, { id: `cube-color-theme-${theme.name}` });
164
+ let t0;
165
+ if ($[0] !== config) {
166
+ t0 = getColorTheme(config);
167
+ $[0] = config;
168
+ $[1] = t0;
169
+ } else t0 = $[1];
170
+ const theme = t0;
171
+ const t1 = `cube-color-theme-${theme.name}`;
172
+ let t2;
173
+ if ($[2] !== t1) {
174
+ t2 = { id: t1 };
175
+ $[2] = t1;
176
+ $[3] = t2;
177
+ } else t2 = $[3];
178
+ useGlobalStyles("body", theme.tokens, t2);
164
179
  return theme;
165
180
  }
166
181
 
@@ -1 +1 @@
1
- {"version":3,"file":"color-theme.js","names":[],"sources":["../../src/tokens/color-theme.ts"],"sourcesContent":["import { glaze } from '@tenphi/glaze';\nimport { useGlobalStyles } from '@tenphi/tasty';\n\n// Imported for its SIDE EFFECT as much as for `tintRecipe`.\n//\n// `palette.ts` runs `glaze.configure({ states: { dark: '@dark', highContrast:\n// '@hc' }, modes: …, darkTone: … })` at module scope, and that global config is\n// what makes a theme emit `'@dark'` / `'@hc'` keys at all. Without this import\n// a runtime theme falls back to Glaze's defaults — `@media(prefers-color-scheme:\n// dark)` keys and NO high-contrast tier — which still renders, so the failure is\n// silent. `color-theme.test.ts` asserts the `'@hc'` key exists to catch it.\nimport { colorSeed } from './color-seed';\nimport { tintRecipe } from './palette';\nimport {\n DEFAULT_HUE,\n DEFAULT_SATURATION,\n getPaletteConfig,\n getPaletteVersion,\n usePaletteVersion,\n} from './palette-config';\n\nimport type { ColorMap, GlazeConfigOverride } from '@tenphi/glaze';\nimport type { Styles } from '@tenphi/tasty';\n\nexport interface ColorThemeConfig {\n /**\n * A hue in 0–360, or any colour Glaze parses — hex, `rgb()`, `hsl()`,\n * `okhsl()`, `okhst()`, `oklch()`.\n *\n * From a colour only the HUE and SATURATION are taken; the lightness is\n * discarded and re-derived per scheme. That is what makes the result adaptive\n * rather than a value that happens to work in one theme.\n */\n hue: number | string;\n /** 0–100. @default the palette's own saturation seed */\n saturation?: number;\n pastel?: boolean;\n /**\n * Extra colour definitions, merged over {@link tintRecipe}. Anything Glaze's\n * `theme.colors()` accepts, including `contrast` floors against a sibling.\n */\n colors?: ColorMap;\n}\n\nexport interface ColorTheme {\n /**\n * A hash of the config, and the token prefix — `'tint-1a2b3c'`.\n *\n * Content-addressed rather than positional so two components asking for the\n * same colour name the same theme, and therefore share one injection. Also\n * makes it safe to stamp on the DOM as an identifier.\n */\n name: string;\n /**\n * Tasty token declarations, one state map per colour:\n * `{ '#tint-1a2b3c-surface': { '': …, '@dark': …, '@hc': …, '@dark & @hc': … } }`\n */\n tokens: Styles;\n /** Token references by their unprefixed name — `{ surface: '#tint-1a2b3c-surface' }`. */\n colors: Record<string, string>;\n}\n\n/**\n * FNV-1a, base36. Short, stable and dependency-free.\n *\n * These hashes name CSS custom properties and land in DOM attributes, so they\n * have to be deterministic across processes (SSR and the client must agree) and\n * safe as identifiers — but not cryptographic.\n */\nexport function hashString(input: string): string {\n let hash = 0x811c9dc5;\n\n for (let i = 0; i < input.length; i++) {\n hash ^= input.charCodeAt(i);\n // >>> 0 keeps it an unsigned 32-bit int; `Math.imul` is the 32-bit multiply.\n hash = Math.imul(hash, 0x01000193) >>> 0;\n }\n\n return hash.toString(36);\n}\n\n/**\n * Hashes the RESOLVED seed, not the config as written.\n *\n * `{ hue: '#0ea5e9' }` and `{ hue: 237.32, saturation: 98.19 }` are the same\n * colour said two ways; hashing the input would give them two names, two\n * injections and two sets of generated rules. Rounded, because a seed that\n * differs in the twelfth decimal is the same colour to every eye and every\n * renderer — and an unrounded float would defeat the deduplication it is here to\n * provide.\n */\nfunction hashSeed(seed: ResolvedSeed): string {\n return `tint-${hashString(\n JSON.stringify([\n seed.hue.toFixed(4),\n seed.saturation.toFixed(4),\n seed.pastel,\n seed.colors ? stableStringify(seed.colors) : null,\n ]),\n )}`;\n}\n\ninterface ResolvedSeed {\n hue: number;\n saturation: number;\n pastel: boolean;\n colors?: ColorMap;\n}\n\n/** Key order must not change the hash, or two identical configs get two slots. */\nfunction stableStringify(value: unknown): string {\n if (value === null || typeof value !== 'object') return JSON.stringify(value);\n\n if (Array.isArray(value)) {\n return `[${value.map(stableStringify).join(',')}]`;\n }\n\n const entries = Object.entries(value as Record<string, unknown>).sort(\n ([a], [b]) => (a < b ? -1 : a > b ? 1 : 0),\n );\n\n return `{${entries\n .map(([key, item]) => `${JSON.stringify(key)}:${stableStringify(item)}`)\n .join(',')}}`;\n}\n\n/**\n * The hue and saturation of a colour, for use as a theme seed.\n *\n * ```ts\n * colorThemeSeed('#0ea5e9'); // → { hue: 237.32, saturation: 98.19 }\n * ```\n *\n * The tone {@link colorSeed} also reads is dropped here on purpose: a tint theme\n * re-derives its lightness per scheme, which is what makes it adaptive. The palette's\n * The palette's accent zone keeps the tone, because a brand fill has to *be* the\n * colour.\n *\n * An unparseable value falls back to the shipped seed rather than throwing — a hue\n * typed into a settings field should not take the render down.\n */\nexport function colorThemeSeed(value: string): {\n hue: number;\n saturation: number;\n} {\n const seed = colorSeed(value);\n\n if (!seed) return { hue: DEFAULT_HUE, saturation: DEFAULT_SATURATION };\n\n return { hue: seed.hue, saturation: seed.saturation };\n}\n\n/**\n * Cached by `${paletteVersion}:${name}`.\n *\n * The palette version is in the KEY rather than triggering a clear, so a stale\n * entry is simply unreachable. `lastVersion` still clears the map on a change,\n * or repeated `setPaletteConfig` calls would grow it without bound.\n */\nconst cache = new Map<string, ColorTheme>();\nlet lastVersion = -1;\n\n/**\n * Build (or reuse) an adaptive theme from a hue.\n *\n * Pure and memoized: the same config returns the same object identity until the\n * palette is re-seeded. Registering the tokens is {@link useColorTheme}'s job —\n * this only computes them, so it is safe to call while rendering or from a test.\n */\nexport function getColorTheme(config: ColorThemeConfig): ColorTheme {\n const version = getPaletteVersion();\n\n if (version !== lastVersion) {\n cache.clear();\n lastVersion = version;\n }\n\n const paletteConfig = getPaletteConfig();\n const parsed =\n typeof config.hue === 'string' ? colorThemeSeed(config.hue) : null;\n const seed: ResolvedSeed = {\n hue: parsed ? parsed.hue : (config.hue as number),\n saturation:\n config.saturation ??\n parsed?.saturation ??\n paletteConfig.saturation ??\n DEFAULT_SATURATION,\n pastel: config.pastel ?? paletteConfig.pastel ?? false,\n colors: config.colors,\n };\n\n const name = hashSeed(seed);\n const cached = cache.get(name);\n\n if (cached) return cached;\n\n const { hue, saturation } = seed;\n\n // `pastel` and `contrastLevel` are instance-level in Glaze, not settable\n // through `glaze.configure`, so a runtime theme has to carry them itself or it\n // would ignore a pastel palette. Omitted entirely when off, so the default\n // output is provably the same as passing nothing.\n const overrides: GlazeConfigOverride = {\n ...(paletteConfig.contrastLevel != null\n ? { contrastLevel: paletteConfig.contrastLevel }\n : null),\n ...(seed.pastel ? { pastel: true } : null),\n };\n\n const theme = glaze(\n hue,\n saturation,\n Object.keys(overrides).length ? overrides : undefined,\n );\n\n // The recipe follows the palette's `surfaceMode`, so a runtime tint sits the same\n // distance off the page as a built-in status theme does. Safe to read here rather\n // than hash into the seed: the cache is cleared on every palette version change,\n // and `surfaceMode` is one of the fields that bumps it.\n theme.colors({ ...tintRecipe(paletteConfig), ...config.colors });\n\n // `prefix` is a palette-only option, so the keys are renamed here. `oklch`\n // because that is what the palette emits; tasty converts to the configured\n // colour space on the way out either way.\n const raw = theme.tasty({ format: 'oklch' }) as Record<string, unknown>;\n const tokens: Styles = {};\n const colors: Record<string, string> = {};\n\n for (const [key, value] of Object.entries(raw)) {\n // Only the `#colour` entries are renamed; `splitHue` is off, so there are no\n // `$…-hue` companions to worry about, but a future one must not be mangled.\n if (!key.startsWith('#')) {\n (tokens as Record<string, unknown>)[key] = value;\n continue;\n }\n\n const bare = key.slice(1);\n const token = `#${name}-${bare}`;\n\n (tokens as Record<string, unknown>)[token] = value;\n colors[bare] = token;\n }\n\n const result: ColorTheme = { name, tokens, colors };\n\n cache.set(name, result);\n\n return result;\n}\n\n/**\n * Register an adaptive theme's tokens once per document, and get it back.\n *\n * The tokens land on `body` under a slot keyed by the theme's name, which is a\n * hash of the config — so every component asking for the same colour shares one\n * injection no matter how many of them there are. Tasty's global-style slots are\n * also permanent, which is what makes that safe: one component unmounting cannot\n * strip tokens another is still referencing.\n *\n * `body` rather than `:root`, which emits nothing at all — the same selector\n * `GlobalStyles` uses for the palette's own tokens. Custom properties inherit, so\n * anything rendered inside the document sees them; the one thing this cannot\n * reach is content portalled outside `<body>`, which nothing does.\n *\n * Because the slot id hashes the CONFIG rather than the resolved values,\n * re-seeding the palette replaces the same slot instead of leaking a new one.\n *\n * ```tsx\n * const theme = useColorTheme({ hue: '#0ea5e9' });\n * // theme.colors.surface → '#tint-1a2b3c-surface'\n * ```\n */\nexport function useColorTheme(config: ColorThemeConfig): ColorTheme {\n // Subscribes this component to a re-seed. `getColorTheme` reads the version\n // itself for its cache, so the value is unused here — the subscription is the\n // point, and it is what makes the tokens below re-inject.\n usePaletteVersion();\n\n const theme = getColorTheme(config);\n\n useGlobalStyles('body', theme.tokens, {\n id: `cube-color-theme-${theme.name}`,\n });\n\n return theme;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAqEA,SAAgB,WAAW,OAAuB;CAChD,IAAI,OAAO;AAEX,MAAK,IAAI,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACrC,UAAQ,MAAM,WAAW,EAAE;AAE3B,SAAO,KAAK,KAAK,MAAM,SAAW,KAAK;;AAGzC,QAAO,KAAK,SAAS,GAAG;;;;;;;;;;;;AAa1B,SAAS,SAAS,MAA4B;AAC5C,QAAO,QAAQ,WACb,KAAK,UAAU;EACb,KAAK,IAAI,QAAQ,EAAE;EACnB,KAAK,WAAW,QAAQ,EAAE;EAC1B,KAAK;EACL,KAAK,SAAS,gBAAgB,KAAK,OAAO,GAAG;EAC9C,CAAC,CACH;;;AAWH,SAAS,gBAAgB,OAAwB;AAC/C,KAAI,UAAU,QAAQ,OAAO,UAAU,SAAU,QAAO,KAAK,UAAU,MAAM;AAE7E,KAAI,MAAM,QAAQ,MAAM,CACtB,QAAO,IAAI,MAAM,IAAI,gBAAgB,CAAC,KAAK,IAAI,CAAC;AAOlD,QAAO,IAJS,OAAO,QAAQ,MAAiC,CAAC,MAC9D,CAAC,IAAI,CAAC,OAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,EACzC,CAGE,KAAK,CAAC,KAAK,UAAU,GAAG,KAAK,UAAU,IAAI,CAAC,GAAG,gBAAgB,KAAK,GAAG,CACvE,KAAK,IAAI,CAAC;;;;;;;;;;;;;;;;;AAkBf,SAAgB,eAAe,OAG7B;CACA,MAAM,OAAO,UAAU,MAAM;AAE7B,KAAI,CAAC,KAAM,QAAO;EAAE,KAAK;EAAa,YAAY;EAAoB;AAEtE,QAAO;EAAE,KAAK,KAAK;EAAK,YAAY,KAAK;EAAY;;;;;;;;;AAUvD,MAAM,wBAAQ,IAAI,KAAyB;AAC3C,IAAI,cAAc;;;;;;;;AASlB,SAAgB,cAAc,QAAsC;CAClE,MAAM,UAAU,mBAAmB;AAEnC,KAAI,YAAY,aAAa;AAC3B,QAAM,OAAO;AACb,gBAAc;;CAGhB,MAAM,gBAAgB,kBAAkB;CACxC,MAAM,SACJ,OAAO,OAAO,QAAQ,WAAW,eAAe,OAAO,IAAI,GAAG;CAChE,MAAM,OAAqB;EACzB,KAAK,SAAS,OAAO,MAAO,OAAO;EACnC,YACE,OAAO,cACP,QAAQ,cACR,cAAc,cACd;EACF,QAAQ,OAAO,UAAU,cAAc,UAAU;EACjD,QAAQ,OAAO;EAChB;CAED,MAAM,OAAO,SAAS,KAAK;CAC3B,MAAM,SAAS,MAAM,IAAI,KAAK;AAE9B,KAAI,OAAQ,QAAO;CAEnB,MAAM,EAAE,KAAK,eAAe;CAM5B,MAAM,YAAiC;EACrC,GAAI,cAAc,iBAAiB,OAC/B,EAAE,eAAe,cAAc,eAAe,GAC9C;EACJ,GAAI,KAAK,SAAS,EAAE,QAAQ,MAAM,GAAG;EACtC;CAED,MAAM,QAAQ,MACZ,KACA,YACA,OAAO,KAAK,UAAU,CAAC,SAAS,YAAY,OAC7C;AAMD,OAAM,OAAO;EAAE,GAAG,WAAW,cAAc;EAAE,GAAG,OAAO;EAAQ,CAAC;CAKhE,MAAM,MAAM,MAAM,MAAM,EAAE,QAAQ,SAAS,CAAC;CAC5C,MAAM,SAAiB,EAAE;CACzB,MAAM,SAAiC,EAAE;AAEzC,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,EAAE;AAG9C,MAAI,CAAC,IAAI,WAAW,IAAI,EAAE;AACxB,GAAC,OAAmC,OAAO;AAC3C;;EAGF,MAAM,OAAO,IAAI,MAAM,EAAE;EACzB,MAAM,QAAQ,IAAI,KAAK,GAAG;AAE1B,EAAC,OAAmC,SAAS;AAC7C,SAAO,QAAQ;;CAGjB,MAAM,SAAqB;EAAE;EAAM;EAAQ;EAAQ;AAEnD,OAAM,IAAI,MAAM,OAAO;AAEvB,QAAO;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,SAAgB,cAAc,QAAsC;AAIlE,oBAAmB;CAEnB,MAAM,QAAQ,cAAc,OAAO;AAEnC,iBAAgB,QAAQ,MAAM,QAAQ,EACpC,IAAI,oBAAoB,MAAM,QAC/B,CAAC;AAEF,QAAO"}
1
+ {"version":3,"file":"color-theme.js","names":["glaze","useGlobalStyles","colorSeed","tintRecipe","DEFAULT_HUE","DEFAULT_SATURATION","getPaletteConfig","getPaletteVersion","usePaletteVersion","ColorMap","GlazeConfigOverride","Styles","ColorThemeConfig","hue","saturation","pastel","colors","ColorTheme","name","tokens","Record","hashString","input","hash","i","length","charCodeAt","Math","imul","toString","hashSeed","seed","ResolvedSeed","JSON","stringify","toFixed","stableStringify","value","Array","isArray","map","join","entries","Object","sort","a","b","key","item","colorThemeSeed","cache","Map","lastVersion","getColorTheme","config","version","clear","paletteConfig","parsed","cached","get","overrides","contrastLevel","theme","keys","undefined","raw","tasty","format","startsWith","bare","slice","token","result","set","useColorTheme","$","_c","t0","t1","t2","id"],"sources":["../../src/tokens/color-theme.ts"],"sourcesContent":["import { glaze } from '@tenphi/glaze';\nimport { useGlobalStyles } from '@tenphi/tasty';\n\n// Imported for its SIDE EFFECT as much as for `tintRecipe`.\n//\n// `palette.ts` runs `glaze.configure({ states: { dark: '@dark', highContrast:\n// '@hc' }, modes: …, darkTone: … })` at module scope, and that global config is\n// what makes a theme emit `'@dark'` / `'@hc'` keys at all. Without this import\n// a runtime theme falls back to Glaze's defaults — `@media(prefers-color-scheme:\n// dark)` keys and NO high-contrast tier — which still renders, so the failure is\n// silent. `color-theme.test.ts` asserts the `'@hc'` key exists to catch it.\nimport { colorSeed } from './color-seed';\nimport { tintRecipe } from './palette';\nimport {\n DEFAULT_HUE,\n DEFAULT_SATURATION,\n getPaletteConfig,\n getPaletteVersion,\n usePaletteVersion,\n} from './palette-config';\n\nimport type { ColorMap, GlazeConfigOverride } from '@tenphi/glaze';\nimport type { Styles } from '@tenphi/tasty';\n\nexport interface ColorThemeConfig {\n /**\n * A hue in 0–360, or any colour Glaze parses — hex, `rgb()`, `hsl()`,\n * `okhsl()`, `okhst()`, `oklch()`.\n *\n * From a colour only the HUE and SATURATION are taken; the lightness is\n * discarded and re-derived per scheme. That is what makes the result adaptive\n * rather than a value that happens to work in one theme.\n */\n hue: number | string;\n /** 0–100. @default the palette's own saturation seed */\n saturation?: number;\n pastel?: boolean;\n /**\n * Extra colour definitions, merged over {@link tintRecipe}. Anything Glaze's\n * `theme.colors()` accepts, including `contrast` floors against a sibling.\n */\n colors?: ColorMap;\n}\n\nexport interface ColorTheme {\n /**\n * A hash of the config, and the token prefix — `'tint-1a2b3c'`.\n *\n * Content-addressed rather than positional so two components asking for the\n * same colour name the same theme, and therefore share one injection. Also\n * makes it safe to stamp on the DOM as an identifier.\n */\n name: string;\n /**\n * Tasty token declarations, one state map per colour:\n * `{ '#tint-1a2b3c-surface': { '': …, '@dark': …, '@hc': …, '@dark & @hc': … } }`\n */\n tokens: Styles;\n /** Token references by their unprefixed name — `{ surface: '#tint-1a2b3c-surface' }`. */\n colors: Record<string, string>;\n}\n\n/**\n * FNV-1a, base36. Short, stable and dependency-free.\n *\n * These hashes name CSS custom properties and land in DOM attributes, so they\n * have to be deterministic across processes (SSR and the client must agree) and\n * safe as identifiers — but not cryptographic.\n */\nexport function hashString(input: string): string {\n let hash = 0x811c9dc5;\n\n for (let i = 0; i < input.length; i++) {\n hash ^= input.charCodeAt(i);\n // >>> 0 keeps it an unsigned 32-bit int; `Math.imul` is the 32-bit multiply.\n hash = Math.imul(hash, 0x01000193) >>> 0;\n }\n\n return hash.toString(36);\n}\n\n/**\n * Hashes the RESOLVED seed, not the config as written.\n *\n * `{ hue: '#0ea5e9' }` and `{ hue: 237.32, saturation: 98.19 }` are the same\n * colour said two ways; hashing the input would give them two names, two\n * injections and two sets of generated rules. Rounded, because a seed that\n * differs in the twelfth decimal is the same colour to every eye and every\n * renderer — and an unrounded float would defeat the deduplication it is here to\n * provide.\n */\nfunction hashSeed(seed: ResolvedSeed): string {\n return `tint-${hashString(\n JSON.stringify([\n seed.hue.toFixed(4),\n seed.saturation.toFixed(4),\n seed.pastel,\n seed.colors ? stableStringify(seed.colors) : null,\n ]),\n )}`;\n}\n\ninterface ResolvedSeed {\n hue: number;\n saturation: number;\n pastel: boolean;\n colors?: ColorMap;\n}\n\n/** Key order must not change the hash, or two identical configs get two slots. */\nfunction stableStringify(value: unknown): string {\n if (value === null || typeof value !== 'object') return JSON.stringify(value);\n\n if (Array.isArray(value)) {\n return `[${value.map(stableStringify).join(',')}]`;\n }\n\n const entries = Object.entries(value as Record<string, unknown>).sort(\n ([a], [b]) => (a < b ? -1 : a > b ? 1 : 0),\n );\n\n return `{${entries\n .map(([key, item]) => `${JSON.stringify(key)}:${stableStringify(item)}`)\n .join(',')}}`;\n}\n\n/**\n * The hue and saturation of a colour, for use as a theme seed.\n *\n * ```ts\n * colorThemeSeed('#0ea5e9'); // → { hue: 237.32, saturation: 98.19 }\n * ```\n *\n * The tone {@link colorSeed} also reads is dropped here on purpose: a tint theme\n * re-derives its lightness per scheme, which is what makes it adaptive. The palette's\n * The palette's accent zone keeps the tone, because a brand fill has to *be* the\n * colour.\n *\n * An unparseable value falls back to the shipped seed rather than throwing — a hue\n * typed into a settings field should not take the render down.\n */\nexport function colorThemeSeed(value: string): {\n hue: number;\n saturation: number;\n} {\n const seed = colorSeed(value);\n\n if (!seed) return { hue: DEFAULT_HUE, saturation: DEFAULT_SATURATION };\n\n return { hue: seed.hue, saturation: seed.saturation };\n}\n\n/**\n * Cached by `${paletteVersion}:${name}`.\n *\n * The palette version is in the KEY rather than triggering a clear, so a stale\n * entry is simply unreachable. `lastVersion` still clears the map on a change,\n * or repeated `setPaletteConfig` calls would grow it without bound.\n */\nconst cache = new Map<string, ColorTheme>();\nlet lastVersion = -1;\n\n/**\n * Build (or reuse) an adaptive theme from a hue.\n *\n * Pure and memoized: the same config returns the same object identity until the\n * palette is re-seeded. Registering the tokens is {@link useColorTheme}'s job —\n * this only computes them, so it is safe to call while rendering or from a test.\n */\nexport function getColorTheme(config: ColorThemeConfig): ColorTheme {\n const version = getPaletteVersion();\n\n if (version !== lastVersion) {\n cache.clear();\n lastVersion = version;\n }\n\n const paletteConfig = getPaletteConfig();\n const parsed =\n typeof config.hue === 'string' ? colorThemeSeed(config.hue) : null;\n const seed: ResolvedSeed = {\n hue: parsed ? parsed.hue : (config.hue as number),\n saturation:\n config.saturation ??\n parsed?.saturation ??\n paletteConfig.saturation ??\n DEFAULT_SATURATION,\n pastel: config.pastel ?? paletteConfig.pastel ?? false,\n colors: config.colors,\n };\n\n const name = hashSeed(seed);\n const cached = cache.get(name);\n\n if (cached) return cached;\n\n const { hue, saturation } = seed;\n\n // `pastel` and `contrastLevel` are instance-level in Glaze, not settable\n // through `glaze.configure`, so a runtime theme has to carry them itself or it\n // would ignore a pastel palette. Omitted entirely when off, so the default\n // output is provably the same as passing nothing.\n const overrides: GlazeConfigOverride = {\n ...(paletteConfig.contrastLevel != null\n ? { contrastLevel: paletteConfig.contrastLevel }\n : null),\n ...(seed.pastel ? { pastel: true } : null),\n };\n\n const theme = glaze(\n hue,\n saturation,\n Object.keys(overrides).length ? overrides : undefined,\n );\n\n // The recipe follows the palette's `surfaceMode`, so a runtime tint sits the same\n // distance off the page as a built-in status theme does. Safe to read here rather\n // than hash into the seed: the cache is cleared on every palette version change,\n // and `surfaceMode` is one of the fields that bumps it.\n theme.colors({ ...tintRecipe(paletteConfig), ...config.colors });\n\n // `prefix` is a palette-only option, so the keys are renamed here. `oklch`\n // because that is what the palette emits; tasty converts to the configured\n // colour space on the way out either way.\n const raw = theme.tasty({ format: 'oklch' }) as Record<string, unknown>;\n const tokens: Styles = {};\n const colors: Record<string, string> = {};\n\n for (const [key, value] of Object.entries(raw)) {\n // Only the `#colour` entries are renamed; `splitHue` is off, so there are no\n // `$…-hue` companions to worry about, but a future one must not be mangled.\n if (!key.startsWith('#')) {\n (tokens as Record<string, unknown>)[key] = value;\n continue;\n }\n\n const bare = key.slice(1);\n const token = `#${name}-${bare}`;\n\n (tokens as Record<string, unknown>)[token] = value;\n colors[bare] = token;\n }\n\n const result: ColorTheme = { name, tokens, colors };\n\n cache.set(name, result);\n\n return result;\n}\n\n/**\n * Register an adaptive theme's tokens once per document, and get it back.\n *\n * The tokens land on `body` under a slot keyed by the theme's name, which is a\n * hash of the config — so every component asking for the same colour shares one\n * injection no matter how many of them there are. Tasty's global-style slots are\n * also permanent, which is what makes that safe: one component unmounting cannot\n * strip tokens another is still referencing.\n *\n * `body` rather than `:root`, which emits nothing at all — the same selector\n * `GlobalStyles` uses for the palette's own tokens. Custom properties inherit, so\n * anything rendered inside the document sees them; the one thing this cannot\n * reach is content portalled outside `<body>`, which nothing does.\n *\n * Because the slot id hashes the CONFIG rather than the resolved values,\n * re-seeding the palette replaces the same slot instead of leaking a new one.\n *\n * ```tsx\n * const theme = useColorTheme({ hue: '#0ea5e9' });\n * // theme.colors.surface → '#tint-1a2b3c-surface'\n * ```\n */\nexport function useColorTheme(config: ColorThemeConfig): ColorTheme {\n // Subscribes this component to a re-seed. `getColorTheme` reads the version\n // itself for its cache, so the value is unused here — the subscription is the\n // point, and it is what makes the tokens below re-inject.\n usePaletteVersion();\n\n const theme = getColorTheme(config);\n\n useGlobalStyles('body', theme.tokens, {\n id: `cube-color-theme-${theme.name}`,\n });\n\n return theme;\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAqEA,SAAgBqB,WAAWC,OAAuB;CAChD,IAAIC,OAAO;AAEX,MAAK,IAAIC,IAAI,GAAGA,IAAIF,MAAMG,QAAQD,KAAK;AACrCD,UAAQD,MAAMI,WAAWF,EAAE;AAE3BD,SAAOI,KAAKC,KAAKL,MAAM,SAAW,KAAK;;AAGzC,QAAOA,KAAKM,SAAS,GAAG;;;;;;;;;;;;AAa1B,SAASC,SAASC,MAA4B;AAC5C,QAAO,QAAQV,WACbY,KAAKC,UAAU;EACbH,KAAKlB,IAAIsB,QAAQ,EAAE;EACnBJ,KAAKjB,WAAWqB,QAAQ,EAAE;EAC1BJ,KAAKhB;EACLgB,KAAKf,SAASoB,gBAAgBL,KAAKf,OAAO,GAAG;EAC9C,CACH,CAAC;;;AAWH,SAASoB,gBAAgBC,OAAwB;AAC/C,KAAIA,UAAU,QAAQ,OAAOA,UAAU,SAAU,QAAOJ,KAAKC,UAAUG,MAAM;AAE7E,KAAIC,MAAMC,QAAQF,MAAM,CACtB,QAAO,IAAIA,MAAMG,IAAIJ,gBAAgB,CAACK,KAAK,IAAI,CAAA;AAOjD,QAAO,IAJSE,OAAOD,QAAQL,MAAiC,CAACO,MAC9D,CAACC,IAAI,CAACC,OAAQD,IAAIC,IAAI,KAAKD,IAAIC,IAAI,IAAI,EACzC,CAGEN,KAAK,CAACO,KAAKC,UAAU,GAAGf,KAAKC,UAAUa,IAAI,CAAA,GAAIX,gBAAgBY,KAAK,GAAG,CACvEP,KAAK,IAAI,CAAA;;;;;;;;;;;;;;;;;AAkBd,SAAgBQ,eAAeZ,OAG7B;CACA,MAAMN,OAAO7B,UAAUmC,MAAM;AAE7B,KAAI,CAACN,KAAM,QAAO;EAAElB,KAAKT;EAAaU,YAAYT;EAAoB;AAEtE,QAAO;EAAEQ,KAAKkB,KAAKlB;EAAKC,YAAYiB,KAAKjB;EAAY;;;;;;;;;AAUvD,MAAMoC,wBAAQ,IAAIC,KAAyB;AAC3C,IAAIC,cAAc;;;;;;;;AASlB,SAAgBC,cAAcC,QAAsC;CAClE,MAAMC,UAAUhD,mBAAmB;AAEnC,KAAIgD,YAAYH,aAAa;AAC3BF,QAAMM,OAAO;AACbJ,gBAAcG;;CAGhB,MAAME,gBAAgBnD,kBAAkB;CACxC,MAAMoD,SACJ,OAAOJ,OAAOzC,QAAQ,WAAWoC,eAAeK,OAAOzC,IAAI,GAAG;CAChE,MAAMkB,OAAqB;EACzBlB,KAAK6C,SAASA,OAAO7C,MAAOyC,OAAOzC;EACnCC,YACEwC,OAAOxC,cACP4C,QAAQ5C,cACR2C,cAAc3C,cACdT;EACFU,QAAQuC,OAAOvC,UAAU0C,cAAc1C,UAAU;EACjDC,QAAQsC,OAAOtC;EAChB;CAED,MAAME,OAAOY,SAASC,KAAK;CAC3B,MAAM4B,SAAST,MAAMU,IAAI1C,KAAK;AAE9B,KAAIyC,OAAQ,QAAOA;CAEnB,MAAM,EAAE9C,KAAKC,eAAeiB;CAM5B,MAAM8B,YAAiC;EACrC,GAAIJ,cAAcK,iBAAiB,OAC/B,EAAEA,eAAeL,cAAcK,eAAe,GAC9C;EACJ,GAAI/B,KAAKhB,SAAS,EAAEA,QAAQ,MAAM,GAAG;EACtC;CAED,MAAMgD,QAAQ/D,MACZa,KACAC,YACA6B,OAAOqB,KAAKH,UAAU,CAACpC,SAASoC,YAAYI,OAC7C;AAMDF,OAAM/C,OAAO;EAAE,GAAGb,WAAWsD,cAAc;EAAE,GAAGH,OAAOtC;EAAQ,CAAC;CAKhE,MAAMkD,MAAMH,MAAMI,MAAM,EAAEC,QAAQ,SAAS,CAAC;CAC5C,MAAMjD,SAAiB,EAAE;CACzB,MAAMH,SAAiC,EAAE;AAEzC,MAAK,MAAM,CAAC+B,KAAKV,UAAUM,OAAOD,QAAQwB,IAAI,EAAE;AAG9C,MAAI,CAACnB,IAAIsB,WAAW,IAAI,EAAE;AACxB,GAAClD,OAAmC4B,OAAOV;AAC3C;;EAGF,MAAMiC,OAAOvB,IAAIwB,MAAM,EAAE;EACzB,MAAMC,QAAQ,IAAItD,KAAI,GAAIoD;AAE1B,EAACnD,OAAmCqD,SAASnC;AAC7CrB,SAAOsD,QAAQE;;CAGjB,MAAMC,SAAqB;EAAEvD;EAAMC;EAAQH;EAAQ;AAEnDkC,OAAMwB,IAAIxD,MAAMuD,OAAO;AAEvB,QAAOA;;;;;;;;;;;;;;;;;;;;;;;;AAyBT,SAAOE,cAAArB,QAAA;CAAA,MAAAsB,IAAAC,EAAA,EAAA;AAILrE,oBAAmB;CAAA,IAAAsE;AAAA,KAAAF,EAAA,OAAAtB,QAAA;AAELwB,OAAAzB,cAAcC,OAAO;AAAAsB,IAAA,KAAAtB;AAAAsB,IAAA,KAAAE;OAAAA,MAAAF,EAAA;CAAnC,MAAAb,QAAce;CAGR,MAAAC,KAAA,oBAAoBhB,MAAK7C;CAAO,IAAA8D;AAAA,KAAAJ,EAAA,OAAAG,IAAA;AADAC,OAAA,EAAAC,IAChCF,IACL;AAAAH,IAAA,KAAAG;AAAAH,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;AAFD3E,iBAAgB,QAAQ8D,MAAK5C,QAAS6D,GAEpC;AAAA,QAEKjB"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { getPaletteVersion } from "./palette-config.js";
3
3
  import { BASE_TOKENS } from "./base.js";
4
4
  import { lazyStyles } from "./lazy-styles.js";
@@ -1 +1 @@
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 * Context hooks — tokens a CONTAINER sets to steer a component that cannot\n * resolve the color on its own.\n *\n * Declared with a default rather than read as `var(--x, fallback)` at every use\n * site, for two reasons: the default is stated once instead of repeated (and so\n * cannot drift), and a declared token gets its components companion for free —\n * which is the only way `#current-fill.5` can fade whatever the container\n * offered rather than the fallback.\n *\n * Included by reference in {@link renderColorTokens} alongside the legacy\n * aliases, so a region preview re-resolves the default against that region's own\n * `#surface` instead of freezing the outer theme's.\n */\nconst CONTEXT_TOKENS: Styles = {\n // The label color `current.primary` punches out of its `currentcolor` chip —\n // read by nothing else. That flavour fills with the color it INHERITS, so its\n // label has to contrast with an arbitrary color, and the page only manages\n // that while the inherited color sits away from the page. A container\n // whose own text color IS the page breaks it: a `Banner` labels itself\n // `#white`, and `#surface` is white in light mode, so label and chip collapse\n // to cr 1.00.\n //\n // Such a container sets this to a color that contrasts with its own fill —\n // usually its own surface — and the label, the rim and the icon slots all\n // follow. See `CURRENT_PRIMARY_STYLES` in `src/data/item-themes.ts`.\n '#current-fill': '#surface',\n};\n\n/**\n * Combined color token map: Glaze-generated palette + legacy aliases + context hooks.\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 ...CONTEXT_TOKENS,\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 ...(CONTEXT_TOKENS 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;;;;;;;;;;;;;;;AAgBD,MAAM,iBAAyB,EAY7B,iBAAiB,YAClB;;;;;;;;;;;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;GACH,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;EACJ,GAAI;EACL"}
1
+ {"version":3,"file":"colors.js","names":["BASE_TOKENS","lazyStyles","getPaletteTokens","renderPaletteTokens","getPaletteVersion","SHADOW_TOKENS","Styles","Tokens","RenderPaletteOptions","LEGACY_ALIASES","CONTEXT_TOKENS","colorTokensCache","cachedVersion","getColorTokens","version","COLOR_TOKENS","COLOR_DEPENDENT_TOKENS","renderColorTokens","options"],"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 * Context hooks — tokens a CONTAINER sets to steer a component that cannot\n * resolve the color on its own.\n *\n * Declared with a default rather than read as `var(--x, fallback)` at every use\n * site, for two reasons: the default is stated once instead of repeated (and so\n * cannot drift), and a declared token gets its components companion for free —\n * which is the only way `#current-fill.5` can fade whatever the container\n * offered rather than the fallback.\n *\n * Included by reference in {@link renderColorTokens} alongside the legacy\n * aliases, so a region preview re-resolves the default against that region's own\n * `#surface` instead of freezing the outer theme's.\n */\nconst CONTEXT_TOKENS: Styles = {\n // The label color `current.primary` punches out of its `currentcolor` chip —\n // read by nothing else. That flavour fills with the color it INHERITS, so its\n // label has to contrast with an arbitrary color, and the page only manages\n // that while the inherited color sits away from the page. A container\n // whose own text color IS the page breaks it: a `Banner` labels itself\n // `#white`, and `#surface` is white in light mode, so label and chip collapse\n // to cr 1.00.\n //\n // Such a container sets this to a color that contrasts with its own fill —\n // usually its own surface — and the label, the rim and the icon slots all\n // follow. See `CURRENT_PRIMARY_STYLES` in `src/data/item-themes.ts`.\n '#current-fill': '#surface',\n};\n\n/**\n * Combined color token map: Glaze-generated palette + legacy aliases + context hooks.\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 ...CONTEXT_TOKENS,\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 ...(CONTEXT_TOKENS as Tokens),\n ...(COLOR_DEPENDENT_TOKENS as Tokens),\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,MAAMS,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;;;;;;;;;;;;;;;AAgBD,MAAMC,iBAAyB,EAY7B,iBAAiB,YAClB;;;;;;;;;;;AAYD,IAAIC,mBAAkC;AACtC,IAAIC,gBAAgB;AAEpB,SAAgBC,iBAAyB;CACvC,MAAMC,UAAUV,mBAAmB;AAEnC,KAAI,CAACO,oBAAoBC,kBAAkBE,SAAS;AAClDH,qBAAmB;GACjB,GAAGT,kBAAkB;GACrB,GAAGO;GACH,GAAGC;GACJ;AACDE,kBAAgBE;;AAElB,QAAOH;;AAGT,MAAaI,eAAuBd,WAAWY,eAAe;;;;;;;;;AAU9D,MAAMG,yBAAiC;CACrC,GAAGX;CACH,oBAAoBL,YAAY;CAChC,sBAAsBA,YAAY;CAClC,iBAAiBA,YAAY;CAC7B,qBAAqBA,YAAY;CAClC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCD,SAAgBiB,kBAAkBC,SAAwC;AACxE,QAAO;EACL,GAAGf,oBAAoBe,QAAQ;EAC/B,GAAIT;EACJ,GAAIC;EACJ,GAAIM;EACL"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  //#region src/tokens/layout.ts
3
3
  /**
4
4
  * Layout-related tokens for common UI dimensions.
@@ -1 +1 @@
1
- {"version":3,"file":"layout.js","names":[],"sources":["../../src/tokens/layout.ts"],"sourcesContent":["import type { Styles } from '@tenphi/tasty';\n\n/**\n * Layout-related tokens for common UI dimensions.\n *\n * Keys use $ prefix for CSS custom properties.\n */\nexport const LAYOUT_TOKENS: Styles = {\n /** Maximum width for main content areas */\n '$max-content-width': '1440px',\n /** Height of the top navigation bar */\n '$topbar-height': '48px',\n /** Height of the development mode indicator bar */\n '$devmodebar-height': '54px',\n /** Width of the sidebar navigation */\n '$sidebar-width': '200px',\n /** Base border radius (legacy, prefer `radius`) */\n '$border-radius-base': '4px',\n};\n"],"mappings":";;;;;;;AAOA,MAAa,gBAAwB;CAEnC,sBAAsB;CAEtB,kBAAkB;CAElB,sBAAsB;CAEtB,kBAAkB;CAElB,uBAAuB;CACxB"}
1
+ {"version":3,"file":"layout.js","names":["Styles","LAYOUT_TOKENS"],"sources":["../../src/tokens/layout.ts"],"sourcesContent":["import type { Styles } from '@tenphi/tasty';\n\n/**\n * Layout-related tokens for common UI dimensions.\n *\n * Keys use $ prefix for CSS custom properties.\n */\nexport const LAYOUT_TOKENS: Styles = {\n /** Maximum width for main content areas */\n '$max-content-width': '1440px',\n /** Height of the top navigation bar */\n '$topbar-height': '48px',\n /** Height of the development mode indicator bar */\n '$devmodebar-height': '54px',\n /** Width of the sidebar navigation */\n '$sidebar-width': '200px',\n /** Base border radius (legacy, prefer `radius`) */\n '$border-radius-base': '4px',\n};\n"],"mappings":";;;;;;;AAOA,MAAaC,gBAAwB;CAEnC,sBAAsB;CAEtB,kBAAkB;CAElB,sBAAsB;CAEtB,kBAAkB;CAElB,uBAAuB;CACxB"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  //#region src/tokens/lazy-styles.ts
3
3
  /**
4
4
  * Proxy that defers to `factory()` on every property / enumeration access.
@@ -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 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"}
1
+ {"version":3,"file":"lazy-styles.js","names":["Styles","lazyStyles","factory","resolve","Proxy","get","_target","prop","Symbol","toStringTag","Reflect","ownKeys","getOwnPropertyDescriptor","Object","has","getPrototypeOf","prototype"],"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,SAAgBC,WAAWC,SAA+B;CACxD,MAAMC,gBAAgBD,SAAS;AAC/B,QAAO,IAAIE,MAAM,EAAE,EAAY;EAC7BC,IAAIC,SAASC,MAAM;AACjB,OAAIA,SAASC,OAAOC,YAAa,QAAO;AACxC,UAAOC,QAAQL,IAAIF,SAAS,EAAEI,KAAK;;EAErCI,UAAU;AACR,UAAOD,QAAQC,QAAQR,SAAS,CAAC;;EAEnCS,yBAAyBN,SAASC,MAAM;AACtC,UAAOM,OAAOD,yBAAyBT,SAAS,EAAEI,KAAK;;EAEzDO,IAAIR,SAASC,MAAM;AACjB,UAAOG,QAAQI,IAAIX,SAAS,EAAEI,KAAK;;EAErCQ,iBAAiB;AACf,UAAOF,OAAOG;;EAEjB,CAAC"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { parseSrgbColor } from "../utils/colors.js";
3
3
  import { srgbToHex } from "@tenphi/glaze";
4
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"legacy-color.js","names":[],"sources":["../../src/tokens/legacy-color.ts"],"sourcesContent":["import { srgbToHex } from '@tenphi/glaze';\n\nimport { parseSrgbColor } from '../utils/colors';\n\n/**\n * Converting a resolved color token into a form a third-party parser will\n * actually accept.\n *\n * Since Glaze every color token computes to `oklch(...)`, and a large class of\n * consumers validates colors against \"HEX, `rgb()`, or `hsl()`\" and *silently\n * drops* anything else — Stripe's Appearance API falls back to its own light\n * theme, `d3-color` (so Vega) throws, mapbox-gl's `csscolorparser` rejects even\n * an `#rrggbbaa` tail. A round trip through the DOM does not normalize it:\n * Chrome serializes `oklch` back as `oklch`.\n *\n * So the value `resolveTokenValue()` hands back is correct and unusable at the\n * same time, and this is the step between them.\n */\n\n/** Output form for a *translucent* color — see {@link ToLegacyColorOptions}. */\nexport type LegacyAlphaFormat = 'rgba' | 'hex';\n\nexport interface ToLegacyColorOptions {\n /**\n * How to carry alpha when the color is translucent. An opaque color is always\n * `#rrggbb`, which every consumer accepts.\n *\n * - `'rgba'` (default) — `rgba(97, 71, 214, 0.4)`. The widest form: Stripe\n * takes it, mapbox-gl takes it, CSS takes it.\n * - `'hex'` — `#rrggbbaa`. Shorter, and what Vega and plain CSS prefer, but\n * mapbox-gl's hex branch accepts only `#rgb` / `#rrggbb` and will drop it.\n *\n * When in doubt keep the default; pick `'hex'` only for a consumer known to\n * read the tail.\n */\n alpha?: LegacyAlphaFormat;\n /** Returned in place of `null` when the input is not a color we can read. */\n fallback?: string;\n}\n\n/**\n * Convert a color literal — most usefully the `oklch(...)` a color token\n * resolves to — into a hex or `rgba()` string.\n *\n * ```ts\n * toLegacyColor(resolveTokenValue('#purple')); // '#6147d6'\n * toLegacyColor('oklch(0.55 0.21 285 / 0.4)'); // 'rgba(97, 71, 214, 0.4)'\n * toLegacyColor('oklch(0.55 0.21 285 / 0.4)', { alpha: 'hex' }); // '#6147d666'\n * ```\n *\n * Takes `null` / `undefined` so it composes with `resolveTokenValue()` without\n * a null check, and reads every notation the kit emits or accepts: `oklch()`,\n * `okhsl()`, `okhst()`, `rgb()`, `hsl()`, hex (3/4/6/8 digits) and\n * `transparent`, in either the modern slash or the legacy comma alpha syntax.\n *\n * Returns `options.fallback ?? null` rather than the input when the value\n * cannot be read — a color that is not `oklch()` but still not legacy-safe is\n * the failure this helper exists to prevent, so handing it back would defeat\n * the purpose. Named colors other than `transparent`, `color-mix()` and\n * relative syntax (`oklch(from …)`) are all unreadable here, the last two\n * because their value only exists inside a CSS engine.\n */\nexport function toLegacyColor(\n value: string | null | undefined,\n options: ToLegacyColorOptions = {},\n): string | null {\n const { alpha: format = 'rgba', fallback = null } = options;\n\n if (typeof value !== 'string') return fallback;\n\n const parsed = parseSrgbColor(value);\n\n if (!parsed) return fallback;\n\n const hex = srgbToHex(parsed.rgb);\n\n if (parsed.alpha >= 1) return hex;\n\n if (format === 'hex') return `${hex}${toHexByte(parsed.alpha)}`;\n\n const [r, g, b] = parsed.rgb.map(toByte);\n\n return `rgba(${r}, ${g}, ${b}, ${round(parsed.alpha)})`;\n}\n\n/**\n * 8-bit channels rather than the fractional ones `formatRgb()` emits. The point\n * of this helper is a value a *legacy* parser accepts, and those commonly read\n * channels with an integer parse; the hex form is 8-bit regardless, so this also\n * keeps the two output forms describing the same color.\n */\nfunction toByte(channel: number): number {\n return Math.round(Math.min(Math.max(channel, 0), 1) * 255);\n}\n\nfunction toHexByte(alpha: number): string {\n return toByte(alpha).toString(16).padStart(2, '0');\n}\n\n/** Three decimals is finer than the 8-bit alpha the hex form can carry. */\nfunction round(alpha: number): number {\n return Math.round(alpha * 1000) / 1000;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,SAAgB,cACd,OACA,UAAgC,EAAE,EACnB;CACf,MAAM,EAAE,OAAO,SAAS,QAAQ,WAAW,SAAS;AAEpD,KAAI,OAAO,UAAU,SAAU,QAAO;CAEtC,MAAM,SAAS,eAAe,MAAM;AAEpC,KAAI,CAAC,OAAQ,QAAO;CAEpB,MAAM,MAAM,UAAU,OAAO,IAAI;AAEjC,KAAI,OAAO,SAAS,EAAG,QAAO;AAE9B,KAAI,WAAW,MAAO,QAAO,GAAG,MAAM,UAAU,OAAO,MAAM;CAE7D,MAAM,CAAC,GAAG,GAAG,KAAK,OAAO,IAAI,IAAI,OAAO;AAExC,QAAO,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,MAAM,OAAO,MAAM,CAAC;;;;;;;;AASvD,SAAS,OAAO,SAAyB;AACvC,QAAO,KAAK,MAAM,KAAK,IAAI,KAAK,IAAI,SAAS,EAAE,EAAE,EAAE,GAAG,IAAI;;AAG5D,SAAS,UAAU,OAAuB;AACxC,QAAO,OAAO,MAAM,CAAC,SAAS,GAAG,CAAC,SAAS,GAAG,IAAI;;;AAIpD,SAAS,MAAM,OAAuB;AACpC,QAAO,KAAK,MAAM,QAAQ,IAAK,GAAG"}
1
+ {"version":3,"file":"legacy-color.js","names":["srgbToHex","parseSrgbColor","LegacyAlphaFormat","ToLegacyColorOptions","alpha","fallback","toLegacyColor","value","options","format","parsed","hex","rgb","toHexByte","r","g","b","map","toByte","round","channel","Math","min","max","toString","padStart"],"sources":["../../src/tokens/legacy-color.ts"],"sourcesContent":["import { srgbToHex } from '@tenphi/glaze';\n\nimport { parseSrgbColor } from '../utils/colors';\n\n/**\n * Converting a resolved color token into a form a third-party parser will\n * actually accept.\n *\n * Since Glaze every color token computes to `oklch(...)`, and a large class of\n * consumers validates colors against \"HEX, `rgb()`, or `hsl()`\" and *silently\n * drops* anything else — Stripe's Appearance API falls back to its own light\n * theme, `d3-color` (so Vega) throws, mapbox-gl's `csscolorparser` rejects even\n * an `#rrggbbaa` tail. A round trip through the DOM does not normalize it:\n * Chrome serializes `oklch` back as `oklch`.\n *\n * So the value `resolveTokenValue()` hands back is correct and unusable at the\n * same time, and this is the step between them.\n */\n\n/** Output form for a *translucent* color — see {@link ToLegacyColorOptions}. */\nexport type LegacyAlphaFormat = 'rgba' | 'hex';\n\nexport interface ToLegacyColorOptions {\n /**\n * How to carry alpha when the color is translucent. An opaque color is always\n * `#rrggbb`, which every consumer accepts.\n *\n * - `'rgba'` (default) — `rgba(97, 71, 214, 0.4)`. The widest form: Stripe\n * takes it, mapbox-gl takes it, CSS takes it.\n * - `'hex'` — `#rrggbbaa`. Shorter, and what Vega and plain CSS prefer, but\n * mapbox-gl's hex branch accepts only `#rgb` / `#rrggbb` and will drop it.\n *\n * When in doubt keep the default; pick `'hex'` only for a consumer known to\n * read the tail.\n */\n alpha?: LegacyAlphaFormat;\n /** Returned in place of `null` when the input is not a color we can read. */\n fallback?: string;\n}\n\n/**\n * Convert a color literal — most usefully the `oklch(...)` a color token\n * resolves to — into a hex or `rgba()` string.\n *\n * ```ts\n * toLegacyColor(resolveTokenValue('#purple')); // '#6147d6'\n * toLegacyColor('oklch(0.55 0.21 285 / 0.4)'); // 'rgba(97, 71, 214, 0.4)'\n * toLegacyColor('oklch(0.55 0.21 285 / 0.4)', { alpha: 'hex' }); // '#6147d666'\n * ```\n *\n * Takes `null` / `undefined` so it composes with `resolveTokenValue()` without\n * a null check, and reads every notation the kit emits or accepts: `oklch()`,\n * `okhsl()`, `okhst()`, `rgb()`, `hsl()`, hex (3/4/6/8 digits) and\n * `transparent`, in either the modern slash or the legacy comma alpha syntax.\n *\n * Returns `options.fallback ?? null` rather than the input when the value\n * cannot be read — a color that is not `oklch()` but still not legacy-safe is\n * the failure this helper exists to prevent, so handing it back would defeat\n * the purpose. Named colors other than `transparent`, `color-mix()` and\n * relative syntax (`oklch(from …)`) are all unreadable here, the last two\n * because their value only exists inside a CSS engine.\n */\nexport function toLegacyColor(\n value: string | null | undefined,\n options: ToLegacyColorOptions = {},\n): string | null {\n const { alpha: format = 'rgba', fallback = null } = options;\n\n if (typeof value !== 'string') return fallback;\n\n const parsed = parseSrgbColor(value);\n\n if (!parsed) return fallback;\n\n const hex = srgbToHex(parsed.rgb);\n\n if (parsed.alpha >= 1) return hex;\n\n if (format === 'hex') return `${hex}${toHexByte(parsed.alpha)}`;\n\n const [r, g, b] = parsed.rgb.map(toByte);\n\n return `rgba(${r}, ${g}, ${b}, ${round(parsed.alpha)})`;\n}\n\n/**\n * 8-bit channels rather than the fractional ones `formatRgb()` emits. The point\n * of this helper is a value a *legacy* parser accepts, and those commonly read\n * channels with an integer parse; the hex form is 8-bit regardless, so this also\n * keeps the two output forms describing the same color.\n */\nfunction toByte(channel: number): number {\n return Math.round(Math.min(Math.max(channel, 0), 1) * 255);\n}\n\nfunction toHexByte(alpha: number): string {\n return toByte(alpha).toString(16).padStart(2, '0');\n}\n\n/** Three decimals is finer than the 8-bit alpha the hex form can carry. */\nfunction round(alpha: number): number {\n return Math.round(alpha * 1000) / 1000;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,SAAgBM,cACdC,OACAC,UAAgC,EAAE,EACnB;CACf,MAAM,EAAEJ,OAAOK,SAAS,QAAQJ,WAAW,SAASG;AAEpD,KAAI,OAAOD,UAAU,SAAU,QAAOF;CAEtC,MAAMK,SAAST,eAAeM,MAAM;AAEpC,KAAI,CAACG,OAAQ,QAAOL;CAEpB,MAAMM,MAAMX,UAAUU,OAAOE,IAAI;AAEjC,KAAIF,OAAON,SAAS,EAAG,QAAOO;AAE9B,KAAIF,WAAW,MAAO,QAAO,GAAGE,MAAME,UAAUH,OAAON,MAAM;CAE7D,MAAM,CAACU,GAAGC,GAAGC,KAAKN,OAAOE,IAAIK,IAAIC,OAAO;AAExC,QAAO,QAAQJ,EAAC,IAAKC,EAAC,IAAKC,EAAC,IAAKG,MAAMT,OAAON,MAAM,CAAA;;;;;;;;AAStD,SAASc,OAAOE,SAAyB;AACvC,QAAOC,KAAKF,MAAME,KAAKC,IAAID,KAAKE,IAAIH,SAAS,EAAE,EAAE,EAAE,GAAG,IAAI;;AAG5D,SAASP,UAAUT,OAAuB;AACxC,QAAOc,OAAOd,MAAM,CAACoB,SAAS,GAAG,CAACC,SAAS,GAAG,IAAI;;;AAIpD,SAASN,MAAMf,OAAuB;AACpC,QAAOiB,KAAKF,MAAMf,QAAQ,IAAK,GAAG"}
@@ -1,5 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { colorSeed } from "./color-seed.js";
3
+ import { c } from "react-compiler-runtime";
3
4
  import { useSyncExternalStore } from "react";
4
5
 
5
6
  //#region src/tokens/palette-config.ts
@@ -451,8 +452,14 @@ function usePaletteVersion() {
451
452
  * mounted `<Root>` — sees the same palette.
452
453
  */
453
454
  function usePaletteConfig() {
455
+ const $ = c(1);
454
456
  usePaletteVersion();
455
- return [getPaletteConfig(), setPaletteConfig];
457
+ let t0;
458
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
459
+ t0 = [getPaletteConfig(), setPaletteConfig];
460
+ $[0] = t0;
461
+ } else t0 = $[0];
462
+ return t0;
456
463
  }
457
464
 
458
465
  //#endregion