@cube-dev/ui-kit 0.181.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 (1133) hide show
  1. package/dist/CHANGELOG.md +34 -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 +7 -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 +6 -4
  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 +414 -155
  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 +13 -6
  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.d.ts +21 -1
  270. package/dist/components/fields/CommandTextArea/CommandTextArea.js +26 -7
  271. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  272. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  273. package/dist/components/fields/CommandTextArea/caretPosition.js.map +1 -1
  274. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +88 -49
  275. package/dist/components/fields/CommandTextArea/useCaretAnchor.js.map +1 -1
  276. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  277. package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
  278. package/dist/components/fields/DatePicker/DateInputBase.js +129 -34
  279. package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
  280. package/dist/components/fields/DatePicker/DatePicker.js +194 -66
  281. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  282. package/dist/components/fields/DatePicker/DatePickerButton.js +39 -8
  283. package/dist/components/fields/DatePicker/DatePickerButton.js.map +1 -1
  284. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  285. package/dist/components/fields/DatePicker/DatePickerElement.js.map +1 -1
  286. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  287. package/dist/components/fields/DatePicker/DatePickerInput.js.map +1 -1
  288. package/dist/components/fields/DatePicker/DatePickerSegment.js +109 -29
  289. package/dist/components/fields/DatePicker/DatePickerSegment.js.map +1 -1
  290. package/dist/components/fields/DatePicker/DateRangePicker.js +224 -85
  291. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  292. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +473 -177
  293. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  294. package/dist/components/fields/DatePicker/MonthPicker.js +15 -6
  295. package/dist/components/fields/DatePicker/MonthPicker.js.map +1 -1
  296. package/dist/components/fields/DatePicker/PeriodPicker.js +288 -91
  297. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  298. package/dist/components/fields/DatePicker/QuarterPicker.js +15 -6
  299. package/dist/components/fields/DatePicker/QuarterPicker.js.map +1 -1
  300. package/dist/components/fields/DatePicker/TimeInput.js +15 -7
  301. package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
  302. package/dist/components/fields/DatePicker/WeekPicker.js +15 -6
  303. package/dist/components/fields/DatePicker/WeekPicker.js.map +1 -1
  304. package/dist/components/fields/DatePicker/YearPicker.js +15 -6
  305. package/dist/components/fields/DatePicker/YearPicker.js.map +1 -1
  306. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  307. package/dist/components/fields/DatePicker/parseDate.js.map +1 -1
  308. package/dist/components/fields/DatePicker/period.js +1 -1
  309. package/dist/components/fields/DatePicker/period.js.map +1 -1
  310. package/dist/components/fields/DatePicker/props.js +1 -1
  311. package/dist/components/fields/DatePicker/props.js.map +1 -1
  312. package/dist/components/fields/DatePicker/utils.js +15 -8
  313. package/dist/components/fields/DatePicker/utils.js.map +1 -1
  314. package/dist/components/fields/FileInput/FileInput.js +3 -3
  315. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  316. package/dist/components/fields/FilterListBox/FilterListBox.js +87 -87
  317. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  318. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +2 -0
  319. package/dist/components/fields/FilterPicker/FilterPicker.js +24 -23
  320. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  321. package/dist/components/fields/Input/Input.js +1 -1
  322. package/dist/components/fields/Input/Input.js.map +1 -1
  323. package/dist/components/fields/ListBox/DraggableListBox.js +23 -10
  324. package/dist/components/fields/ListBox/DraggableListBox.js.map +1 -1
  325. package/dist/components/fields/ListBox/ListBox.js +138 -53
  326. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  327. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +156 -37
  328. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  329. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  330. package/dist/components/fields/ListBoxPopover/listNavigation.js.map +1 -1
  331. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +61 -33
  332. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
  333. package/dist/components/fields/NumberInput/NumberInput.js +123 -33
  334. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  335. package/dist/components/fields/NumberInput/StepButton.js +53 -15
  336. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  337. package/dist/components/fields/PasswordInput/PasswordInput.js +149 -45
  338. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  339. package/dist/components/fields/Picker/Picker.d.ts +2 -0
  340. package/dist/components/fields/Picker/Picker.js +10 -9
  341. package/dist/components/fields/Picker/Picker.js.map +1 -1
  342. package/dist/components/fields/RadioGroup/Radio.js +273 -104
  343. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  344. package/dist/components/fields/RadioGroup/RadioGroup.js +149 -48
  345. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  346. package/dist/components/fields/RadioGroup/context.js +1 -1
  347. package/dist/components/fields/RadioGroup/context.js.map +1 -1
  348. package/dist/components/fields/SearchComboBox/SearchComboBox.js +80 -65
  349. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  350. package/dist/components/fields/SearchInput/SearchInput.js +91 -28
  351. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  352. package/dist/components/fields/Select/Select.d.ts +2 -0
  353. package/dist/components/fields/Select/Select.js +373 -118
  354. package/dist/components/fields/Select/Select.js.map +1 -1
  355. package/dist/components/fields/Slider/Gradation.js +45 -10
  356. package/dist/components/fields/Slider/Gradation.js.map +1 -1
  357. package/dist/components/fields/Slider/HueSlider.js +121 -32
  358. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  359. package/dist/components/fields/Slider/RangeSlider.js +46 -10
  360. package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
  361. package/dist/components/fields/Slider/Slider.js +108 -23
  362. package/dist/components/fields/Slider/Slider.js.map +1 -1
  363. package/dist/components/fields/Slider/SliderBase.js +2 -2
  364. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  365. package/dist/components/fields/Slider/SliderThumb.js +96 -37
  366. package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
  367. package/dist/components/fields/Slider/SliderTrack.js +64 -23
  368. package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
  369. package/dist/components/fields/Slider/elements.js +1 -1
  370. package/dist/components/fields/Slider/elements.js.map +1 -1
  371. package/dist/components/fields/Slider/index.js +1 -1
  372. package/dist/components/fields/Switch/Switch.js +190 -66
  373. package/dist/components/fields/Switch/Switch.js.map +1 -1
  374. package/dist/components/fields/TextArea/TextArea.js +137 -47
  375. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  376. package/dist/components/fields/TextInput/TextInput.js +80 -27
  377. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  378. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  379. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  380. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  381. package/dist/components/fields/TextInput/useAutoSizeTextArea.js.map +1 -1
  382. package/dist/components/fields/TextInputMapper/TextInputMapper.js +156 -83
  383. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  384. package/dist/components/fields/TriggerActions.js +11 -2
  385. package/dist/components/fields/TriggerActions.js.map +1 -1
  386. package/dist/components/fields/color/ColorPanel.js +237 -59
  387. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  388. package/dist/components/fields/color/channels.js +1 -1
  389. package/dist/components/fields/color/channels.js.map +1 -1
  390. package/dist/components/fields/color/color.js +1 -1
  391. package/dist/components/fields/color/color.js.map +1 -1
  392. package/dist/components/fields/color/context.js +1 -1
  393. package/dist/components/fields/color/context.js.map +1 -1
  394. package/dist/components/form/FieldWrapper/FieldWrapper.js +195 -72
  395. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  396. package/dist/components/form/Form/Field.js +23 -9
  397. package/dist/components/form/Form/Field.js.map +1 -1
  398. package/dist/components/form/Form/Form.js +76 -30
  399. package/dist/components/form/Form/Form.js.map +1 -1
  400. package/dist/components/form/Form/ModernFormRoot.js +294 -81
  401. package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
  402. package/dist/components/form/Form/ResetButton/ResetButton.js +32 -10
  403. package/dist/components/form/Form/ResetButton/ResetButton.js.map +1 -1
  404. package/dist/components/form/Form/SubmitButton/SubmitButton.js +32 -10
  405. package/dist/components/form/Form/SubmitButton/SubmitButton.js.map +1 -1
  406. package/dist/components/form/Form/SubmitError.js +130 -32
  407. package/dist/components/form/Form/SubmitError.js.map +1 -1
  408. package/dist/components/form/Form/backend.js +1 -1
  409. package/dist/components/form/Form/backend.js.map +1 -1
  410. package/dist/components/form/Form/index.js +1 -1
  411. package/dist/components/form/Form/index.js.map +1 -1
  412. package/dist/components/form/Form/modern/actions.js +140 -45
  413. package/dist/components/form/Form/modern/actions.js.map +1 -1
  414. package/dist/components/form/Form/modern/context.js +1 -1
  415. package/dist/components/form/Form/modern/context.js.map +1 -1
  416. package/dist/components/form/Form/modern/controller.js +1 -1
  417. package/dist/components/form/Form/modern/controller.js.map +1 -1
  418. package/dist/components/form/Form/modern/field-binding.js +1 -1
  419. package/dist/components/form/Form/modern/field-binding.js.map +1 -1
  420. package/dist/components/form/Form/modern/field.js +1 -1
  421. package/dist/components/form/Form/modern/field.js.map +1 -1
  422. package/dist/components/form/Form/modern/react.js +102 -19
  423. package/dist/components/form/Form/modern/react.js.map +1 -1
  424. package/dist/components/form/Form/modern/store.js +13 -3
  425. package/dist/components/form/Form/modern/store.js.map +1 -1
  426. package/dist/components/form/Form/modern/types.d.ts +3 -1
  427. package/dist/components/form/Form/modern/validation.js +1 -1
  428. package/dist/components/form/Form/modern/validation.js.map +1 -1
  429. package/dist/components/form/Form/modern/values.js +1 -1
  430. package/dist/components/form/Form/modern/values.js.map +1 -1
  431. package/dist/components/form/Form/use-field/use-field-binding.js +236 -63
  432. package/dist/components/form/Form/use-field/use-field-binding.js.map +1 -1
  433. package/dist/components/form/Form/use-field/use-field-props.js +106 -61
  434. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  435. package/dist/components/form/Form/use-field/use-field.js +5 -4
  436. package/dist/components/form/Form/use-field/use-field.js.map +1 -1
  437. package/dist/components/form/Form/use-form.js +2 -1
  438. package/dist/components/form/Form/use-form.js.map +1 -1
  439. package/dist/components/form/Form/validation.js +1 -1
  440. package/dist/components/form/Form/validation.js.map +1 -1
  441. package/dist/components/form/Label.js +127 -37
  442. package/dist/components/form/Label.js.map +1 -1
  443. package/dist/components/form/validation/ValidationIndicator.js +20 -5
  444. package/dist/components/form/validation/ValidationIndicator.js.map +1 -1
  445. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  446. package/dist/components/form/validation/resolve-validation-props.js.map +1 -1
  447. package/dist/components/form/validation/use-validation-props.js +36 -10
  448. package/dist/components/form/validation/use-validation-props.js.map +1 -1
  449. package/dist/components/form/wrapper.js +1 -1
  450. package/dist/components/form/wrapper.js.map +1 -1
  451. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +49 -29
  452. package/dist/components/helpers/DisplayTransition/DisplayTransition.js.map +1 -1
  453. package/dist/components/helpers/IconSwitch/IconSwitch.js +8 -8
  454. package/dist/components/helpers/IconSwitch/IconSwitch.js.map +1 -1
  455. package/dist/components/layout/Board/Board.js +27 -9
  456. package/dist/components/layout/Board/Board.js.map +1 -1
  457. package/dist/components/layout/Board/BoardProvider.js +1 -1
  458. package/dist/components/layout/Board/BoardProvider.js.map +1 -1
  459. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  460. package/dist/components/layout/Board/BoardResponsive.js.map +1 -1
  461. package/dist/components/layout/Board/Widget.js +1 -1
  462. package/dist/components/layout/Board/Widget.js.map +1 -1
  463. package/dist/components/layout/Board/WidgetHost.js +159 -121
  464. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  465. package/dist/components/layout/Board/board-context.js +14 -5
  466. package/dist/components/layout/Board/board-context.js.map +1 -1
  467. package/dist/components/layout/Board/board-store.js +1 -1
  468. package/dist/components/layout/Board/board-store.js.map +1 -1
  469. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  470. package/dist/components/layout/Board/grid-core/calculate.js.map +1 -1
  471. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  472. package/dist/components/layout/Board/grid-core/collision-modes.js.map +1 -1
  473. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  474. package/dist/components/layout/Board/grid-core/collision.js.map +1 -1
  475. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  476. package/dist/components/layout/Board/grid-core/compactors.js.map +1 -1
  477. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  478. package/dist/components/layout/Board/grid-core/constraints.js.map +1 -1
  479. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  480. package/dist/components/layout/Board/grid-core/group-move.js.map +1 -1
  481. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  482. package/dist/components/layout/Board/grid-core/layout.js.map +1 -1
  483. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  484. package/dist/components/layout/Board/grid-core/placement.js.map +1 -1
  485. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  486. package/dist/components/layout/Board/grid-core/sort.js.map +1 -1
  487. package/dist/components/layout/Board/index.js +1 -1
  488. package/dist/components/layout/Board/index.js.map +1 -1
  489. package/dist/components/layout/Board/responsive-utils.js +1 -1
  490. package/dist/components/layout/Board/responsive-utils.js.map +1 -1
  491. package/dist/components/layout/Board/use-board-layout.js +8 -8
  492. package/dist/components/layout/Board/use-board-layout.js.map +1 -1
  493. package/dist/components/layout/Board/use-board-registry.js +257 -257
  494. package/dist/components/layout/Board/use-board-registry.js.map +1 -1
  495. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  496. package/dist/components/layout/Board/use-board-select-modifier-key.js.map +1 -1
  497. package/dist/components/layout/Board/use-board-selection.js +16 -16
  498. package/dist/components/layout/Board/use-board-selection.js.map +1 -1
  499. package/dist/components/layout/Flex.js +29 -7
  500. package/dist/components/layout/Flex.js.map +1 -1
  501. package/dist/components/layout/Flow.js +29 -7
  502. package/dist/components/layout/Flow.js.map +1 -1
  503. package/dist/components/layout/Grid.js +30 -7
  504. package/dist/components/layout/Grid.js.map +1 -1
  505. package/dist/components/layout/Panel.js +9 -9
  506. package/dist/components/layout/Panel.js.map +1 -1
  507. package/dist/components/layout/Prefix.js +59 -16
  508. package/dist/components/layout/Prefix.js.map +1 -1
  509. package/dist/components/layout/ResizablePanel.js +62 -32
  510. package/dist/components/layout/ResizablePanel.js.map +1 -1
  511. package/dist/components/layout/Space.js +55 -11
  512. package/dist/components/layout/Space.js.map +1 -1
  513. package/dist/components/layout/Suffix.js +59 -16
  514. package/dist/components/layout/Suffix.js.map +1 -1
  515. package/dist/components/navigation/Pagination/Pagination.js +394 -164
  516. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  517. package/dist/components/navigation/Pagination/use-pagination.js +69 -26
  518. package/dist/components/navigation/Pagination/use-pagination.js.map +1 -1
  519. package/dist/components/navigation/Tabs/DraggableTabList.js +25 -10
  520. package/dist/components/navigation/Tabs/DraggableTabList.js.map +1 -1
  521. package/dist/components/navigation/Tabs/TabButton.js +604 -235
  522. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  523. package/dist/components/navigation/Tabs/TabDropIndicator.js +65 -23
  524. package/dist/components/navigation/Tabs/TabDropIndicator.js.map +1 -1
  525. package/dist/components/navigation/Tabs/TabPanel.js +47 -19
  526. package/dist/components/navigation/Tabs/TabPanel.js.map +1 -1
  527. package/dist/components/navigation/Tabs/TabPicker.js +105 -33
  528. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  529. package/dist/components/navigation/Tabs/Tabs.js +45 -45
  530. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  531. package/dist/components/navigation/Tabs/TabsAction.js +53 -19
  532. package/dist/components/navigation/Tabs/TabsAction.js.map +1 -1
  533. package/dist/components/navigation/Tabs/TabsContext.js +16 -6
  534. package/dist/components/navigation/Tabs/TabsContext.js.map +1 -1
  535. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  536. package/dist/components/navigation/Tabs/popover-placement.js.map +1 -1
  537. package/dist/components/navigation/Tabs/styled.js +1 -1
  538. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  539. package/dist/components/navigation/Tabs/types.js +1 -1
  540. package/dist/components/navigation/Tabs/types.js.map +1 -1
  541. package/dist/components/navigation/Tabs/use-tab-editing.js +50 -13
  542. package/dist/components/navigation/Tabs/use-tab-editing.js.map +1 -1
  543. package/dist/components/navigation/Tabs/use-tab-indicator.js +111 -63
  544. package/dist/components/navigation/Tabs/use-tab-indicator.js.map +1 -1
  545. package/dist/components/organisms/StatsCard/StatsCard.js +54 -14
  546. package/dist/components/organisms/StatsCard/StatsCard.js.map +1 -1
  547. package/dist/components/other/Calendar/Calendar.js +79 -31
  548. package/dist/components/other/Calendar/Calendar.js.map +1 -1
  549. package/dist/components/other/Calendar/CalendarCell.js +66 -20
  550. package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
  551. package/dist/components/other/Calendar/CalendarGrid.js +90 -40
  552. package/dist/components/other/Calendar/CalendarGrid.js.map +1 -1
  553. package/dist/components/other/Calendar/CalendarHeader.js +80 -17
  554. package/dist/components/other/Calendar/CalendarHeader.js.map +1 -1
  555. package/dist/components/other/Calendar/CalendarPanel.js +568 -144
  556. package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
  557. package/dist/components/other/Calendar/PeriodCalendar.js +425 -134
  558. package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
  559. package/dist/components/other/Calendar/PeriodGrid.js +6 -6
  560. package/dist/components/other/Calendar/PeriodGrid.js.map +1 -1
  561. package/dist/components/other/Calendar/RangeCalendar.js +50 -24
  562. package/dist/components/other/Calendar/RangeCalendar.js.map +1 -1
  563. package/dist/components/other/Calendar/styled.js +1 -1
  564. package/dist/components/other/Calendar/styled.js.map +1 -1
  565. package/dist/components/other/CubeLogo/CubeLogo.js +95 -34
  566. package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
  567. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  568. package/dist/components/other/NoDataIcon/NoDataIcon.js.map +1 -1
  569. package/dist/components/overlays/AlertDialog/AlertDialog.js +153 -42
  570. package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
  571. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +76 -54
  572. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
  573. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +146 -39
  574. package/dist/components/overlays/AlertDialog/AlertDialogZone.js.map +1 -1
  575. package/dist/components/overlays/Dialog/Dialog.js +26 -10
  576. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  577. package/dist/components/overlays/Dialog/DialogContainer.js +13 -13
  578. package/dist/components/overlays/Dialog/DialogContainer.js.map +1 -1
  579. package/dist/components/overlays/Dialog/DialogForm.d.ts +12 -7
  580. package/dist/components/overlays/Dialog/DialogForm.js +18 -7
  581. package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
  582. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +1 -1
  583. package/dist/components/overlays/Dialog/DialogTrigger.js +214 -59
  584. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  585. package/dist/components/overlays/Dialog/ModernDialogForm.js +350 -0
  586. package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -0
  587. package/dist/components/overlays/Dialog/context.js +1 -1
  588. package/dist/components/overlays/Dialog/context.js.map +1 -1
  589. package/dist/components/overlays/Dialog/index.d.ts +1 -1
  590. package/dist/components/overlays/Dialog/use-dialog-container.js +6 -6
  591. package/dist/components/overlays/Dialog/use-dialog-container.js.map +1 -1
  592. package/dist/components/overlays/Modal/Modal.js +140 -27
  593. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  594. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  595. package/dist/components/overlays/Modal/OpenTransitionContext.js.map +1 -1
  596. package/dist/components/overlays/Modal/Overlay.js +4 -4
  597. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  598. package/dist/components/overlays/Modal/Popover.js +131 -29
  599. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  600. package/dist/components/overlays/Modal/Tray.js +142 -30
  601. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  602. package/dist/components/overlays/Modal/Underlay.js +36 -7
  603. package/dist/components/overlays/Modal/Underlay.js.map +1 -1
  604. package/dist/components/overlays/Notifications/Notification.js +69 -32
  605. package/dist/components/overlays/Notifications/Notification.js.map +1 -1
  606. package/dist/components/overlays/Notifications/NotificationAction.js +79 -26
  607. package/dist/components/overlays/Notifications/NotificationAction.js.map +1 -1
  608. package/dist/components/overlays/Notifications/NotificationCard.js +138 -33
  609. package/dist/components/overlays/Notifications/NotificationCard.js.map +1 -1
  610. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  611. package/dist/components/overlays/Notifications/NotificationContext.js.map +1 -1
  612. package/dist/components/overlays/Notifications/NotificationItem.js +63 -16
  613. package/dist/components/overlays/Notifications/NotificationItem.js.map +1 -1
  614. package/dist/components/overlays/Notifications/OverlayContainer.js +312 -151
  615. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  616. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  617. package/dist/components/overlays/Notifications/OverlayProvider.js.map +1 -1
  618. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +210 -58
  619. package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +1 -1
  620. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  621. package/dist/components/overlays/Notifications/dismissed-storage.js.map +1 -1
  622. package/dist/components/overlays/Notifications/format-relative-time.d.ts +1 -1
  623. package/dist/components/overlays/Notifications/format-relative-time.js +3 -3
  624. package/dist/components/overlays/Notifications/format-relative-time.js.map +1 -1
  625. package/dist/components/overlays/Notifications/index.js +1 -1
  626. package/dist/components/overlays/Notifications/index.js.map +1 -1
  627. package/dist/components/overlays/Notifications/use-notification-state.js +51 -51
  628. package/dist/components/overlays/Notifications/use-notification-state.js.map +1 -1
  629. package/dist/components/overlays/Notifications/use-notifications.js +12 -12
  630. package/dist/components/overlays/Notifications/use-notifications.js.map +1 -1
  631. package/dist/components/overlays/Notifications/use-overlay-timers.js +10 -10
  632. package/dist/components/overlays/Notifications/use-overlay-timers.js.map +1 -1
  633. package/dist/components/overlays/Notifications/use-persistent-notifications.js +24 -5
  634. package/dist/components/overlays/Notifications/use-persistent-notifications.js.map +1 -1
  635. package/dist/components/overlays/Notifications/use-persistent-state.js +145 -43
  636. package/dist/components/overlays/Notifications/use-persistent-state.js.map +1 -1
  637. package/dist/components/overlays/Notifications/use-toast-state.js +25 -25
  638. package/dist/components/overlays/Notifications/use-toast-state.js.map +1 -1
  639. package/dist/components/overlays/Toast/ToastItem.js +68 -15
  640. package/dist/components/overlays/Toast/ToastItem.js.map +1 -1
  641. package/dist/components/overlays/Toast/index.js +100 -34
  642. package/dist/components/overlays/Toast/index.js.map +1 -1
  643. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  644. package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
  645. package/dist/components/overlays/Toast/useToast.js +9 -9
  646. package/dist/components/overlays/Toast/useToast.js.map +1 -1
  647. package/dist/components/overlays/Tooltip/Tooltip.js +88 -31
  648. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  649. package/dist/components/overlays/Tooltip/TooltipProvider.js +75 -10
  650. package/dist/components/overlays/Tooltip/TooltipProvider.js.map +1 -1
  651. package/dist/components/overlays/Tooltip/TooltipTrigger.js +186 -77
  652. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  653. package/dist/components/overlays/Tooltip/context.js +1 -1
  654. package/dist/components/overlays/Tooltip/context.js.map +1 -1
  655. package/dist/components/portal/Portal.js +18 -3
  656. package/dist/components/portal/Portal.js.map +1 -1
  657. package/dist/components/portal/PortalProvider.js +11 -2
  658. package/dist/components/portal/PortalProvider.js.map +1 -1
  659. package/dist/components/portal/usePortal.js +1 -1
  660. package/dist/components/portal/usePortal.js.map +1 -1
  661. package/dist/components/shared/DraggableCollection.js +23 -23
  662. package/dist/components/shared/DraggableCollection.js.map +1 -1
  663. package/dist/components/shared/InvalidIcon.js +1 -1
  664. package/dist/components/shared/InvalidIcon.js.map +1 -1
  665. package/dist/components/shared/ValidIcon.js +1 -1
  666. package/dist/components/shared/ValidIcon.js.map +1 -1
  667. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +156 -48
  668. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  669. package/dist/components/status/Spin/Cube.js +12 -3
  670. package/dist/components/status/Spin/Cube.js.map +1 -1
  671. package/dist/components/status/Spin/InternalSpinner.js +21 -6
  672. package/dist/components/status/Spin/InternalSpinner.js.map +1 -1
  673. package/dist/components/status/Spin/Spin.js +31 -7
  674. package/dist/components/status/Spin/Spin.js.map +1 -1
  675. package/dist/components/status/Spin/SpinsContainer.js +23 -6
  676. package/dist/components/status/Spin/SpinsContainer.js.map +1 -1
  677. package/dist/data/item-themes.js +1 -1
  678. package/dist/data/item-themes.js.map +1 -1
  679. package/dist/data/themes.js +1 -1
  680. package/dist/data/themes.js.map +1 -1
  681. package/dist/eslint-plugin/defaults.generated.js +18 -7
  682. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  683. package/dist/eslint-plugin/index.js +1 -1
  684. package/dist/eslint-plugin/index.js.map +1 -1
  685. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  686. package/dist/eslint-plugin/rules/no-redundant-default-prop.js.map +1 -1
  687. package/dist/i18n/I18nProvider.js +54 -13
  688. package/dist/i18n/I18nProvider.js.map +1 -1
  689. package/dist/i18n/createFormatter.js +1 -1
  690. package/dist/i18n/createFormatter.js.map +1 -1
  691. package/dist/i18n/index.js +1 -1
  692. package/dist/i18n/index.js.map +1 -1
  693. package/dist/i18n/instance.js +1 -1
  694. package/dist/i18n/instance.js.map +1 -1
  695. package/dist/i18n/locales/de-DE/uikit.js +5 -2
  696. package/dist/i18n/locales/en-US/uikit.js +5 -2
  697. package/dist/i18n/locales/en-US/uikit.json.d.ts +15 -5
  698. package/dist/i18n/locales/es-ES/uikit.js +5 -2
  699. package/dist/i18n/locales/es-MX/uikit.js +5 -2
  700. package/dist/i18n/locales/fr-FR/uikit.js +5 -2
  701. package/dist/i18n/locales/it-IT/uikit.js +5 -2
  702. package/dist/i18n/locales/ja-JP/uikit.js +5 -2
  703. package/dist/i18n/locales/nb-NO/uikit.js +5 -2
  704. package/dist/i18n/locales/pt-BR/uikit.js +5 -2
  705. package/dist/i18n/locales/pt-PT/uikit.js +5 -2
  706. package/dist/i18n/locales/sv-SE/uikit.js +5 -2
  707. package/dist/i18n/locales/vi-VN/uikit.js +5 -2
  708. package/dist/i18n/locales.js +1 -1
  709. package/dist/i18n/locales.js.map +1 -1
  710. package/dist/i18n/useFormatter.js +10 -3
  711. package/dist/i18n/useFormatter.js.map +1 -1
  712. package/dist/i18n/useI18n.js +1 -1
  713. package/dist/i18n/useI18n.js.map +1 -1
  714. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  715. package/dist/icons/AdjustmentsHorizontalIcon.js.map +1 -1
  716. package/dist/icons/AdjustmentsIcon.js +1 -1
  717. package/dist/icons/AdjustmentsIcon.js.map +1 -1
  718. package/dist/icons/AiIcon.js +1 -1
  719. package/dist/icons/AiIcon.js.map +1 -1
  720. package/dist/icons/AreaChartIcon.js +1 -1
  721. package/dist/icons/AreaChartIcon.js.map +1 -1
  722. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  723. package/dist/icons/ArrowNarrowDownIcon.js.map +1 -1
  724. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  725. package/dist/icons/ArrowNarrowUpIcon.js.map +1 -1
  726. package/dist/icons/BackwardIcon.js +1 -1
  727. package/dist/icons/BackwardIcon.js.map +1 -1
  728. package/dist/icons/BarChartIcon.js +1 -1
  729. package/dist/icons/BarChartIcon.js.map +1 -1
  730. package/dist/icons/BellFilledIcon.js +1 -1
  731. package/dist/icons/BellFilledIcon.js.map +1 -1
  732. package/dist/icons/BellIcon.js +1 -1
  733. package/dist/icons/BellIcon.js.map +1 -1
  734. package/dist/icons/BooleanIcon.js +1 -1
  735. package/dist/icons/BooleanIcon.js.map +1 -1
  736. package/dist/icons/CalendarEditIcon.js +1 -1
  737. package/dist/icons/CalendarEditIcon.js.map +1 -1
  738. package/dist/icons/CalendarIcon.js +1 -1
  739. package/dist/icons/CalendarIcon.js.map +1 -1
  740. package/dist/icons/CaretDownIcon.js +1 -1
  741. package/dist/icons/CaretDownIcon.js.map +1 -1
  742. package/dist/icons/CaretUpIcon.js +1 -1
  743. package/dist/icons/CaretUpIcon.js.map +1 -1
  744. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  745. package/dist/icons/ChartAreaStackedIcon.js.map +1 -1
  746. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  747. package/dist/icons/ChartAreaStackedPercentageIcon.js.map +1 -1
  748. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  749. package/dist/icons/ChartBarGroupedHorizontalIcon.js.map +1 -1
  750. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  751. package/dist/icons/ChartBarGroupedIcon.js.map +1 -1
  752. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  753. package/dist/icons/ChartBarHorizontalIcon.js.map +1 -1
  754. package/dist/icons/ChartBarLineIcon.js +1 -1
  755. package/dist/icons/ChartBarLineIcon.js.map +1 -1
  756. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  757. package/dist/icons/ChartBarStackedHorizontalIcon.js.map +1 -1
  758. package/dist/icons/ChartBarStackedIcon.js +1 -1
  759. package/dist/icons/ChartBarStackedIcon.js.map +1 -1
  760. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  761. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js.map +1 -1
  762. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  763. package/dist/icons/ChartBarStackedPercentageIcon.js.map +1 -1
  764. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  765. package/dist/icons/ChartBoxPlot2Icon.js.map +1 -1
  766. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  767. package/dist/icons/ChartBoxPlotIcon.js.map +1 -1
  768. package/dist/icons/ChartBubbleIcon.js +1 -1
  769. package/dist/icons/ChartBubbleIcon.js.map +1 -1
  770. package/dist/icons/ChartDonut2Icon.js +1 -1
  771. package/dist/icons/ChartDonut2Icon.js.map +1 -1
  772. package/dist/icons/ChartFunnelIcon.js +1 -1
  773. package/dist/icons/ChartFunnelIcon.js.map +1 -1
  774. package/dist/icons/ChartHeatmapIcon.js +1 -1
  775. package/dist/icons/ChartHeatmapIcon.js.map +1 -1
  776. package/dist/icons/ChartKPIIcon.js +1 -1
  777. package/dist/icons/ChartKPIIcon.js.map +1 -1
  778. package/dist/icons/ChartPie2Icon.js +1 -1
  779. package/dist/icons/ChartPie2Icon.js.map +1 -1
  780. package/dist/icons/ChartScatterIcon.js +1 -1
  781. package/dist/icons/ChartScatterIcon.js.map +1 -1
  782. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  783. package/dist/icons/CheckCircleFilledIcon.js.map +1 -1
  784. package/dist/icons/CheckCircleIcon.js +1 -1
  785. package/dist/icons/CheckCircleIcon.js.map +1 -1
  786. package/dist/icons/CheckIcon.js +1 -1
  787. package/dist/icons/CheckIcon.js.map +1 -1
  788. package/dist/icons/CircleFilledIcon.js +1 -1
  789. package/dist/icons/CircleFilledIcon.js.map +1 -1
  790. package/dist/icons/ClearIcon.js +1 -1
  791. package/dist/icons/ClearIcon.js.map +1 -1
  792. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  793. package/dist/icons/CloseCircleFilledIcon.js.map +1 -1
  794. package/dist/icons/CloseCircleIcon.js +1 -1
  795. package/dist/icons/CloseCircleIcon.js.map +1 -1
  796. package/dist/icons/CloseIcon.js +1 -1
  797. package/dist/icons/CloseIcon.js.map +1 -1
  798. package/dist/icons/CodeIcon.js +1 -1
  799. package/dist/icons/CodeIcon.js.map +1 -1
  800. package/dist/icons/ColumnTotalIcon.js +1 -1
  801. package/dist/icons/ColumnTotalIcon.js.map +1 -1
  802. package/dist/icons/CopyIcon.js +1 -1
  803. package/dist/icons/CopyIcon.js.map +1 -1
  804. package/dist/icons/CountIcon.js +1 -1
  805. package/dist/icons/CountIcon.js.map +1 -1
  806. package/dist/icons/CubeIcon.js +1 -1
  807. package/dist/icons/CubeIcon.js.map +1 -1
  808. package/dist/icons/CubePauseIcon.js +1 -1
  809. package/dist/icons/CubePauseIcon.js.map +1 -1
  810. package/dist/icons/CubePlayIcon.js +1 -1
  811. package/dist/icons/CubePlayIcon.js.map +1 -1
  812. package/dist/icons/CurrencyDollarIcon.js +1 -1
  813. package/dist/icons/CurrencyDollarIcon.js.map +1 -1
  814. package/dist/icons/DangerIcon.js +1 -1
  815. package/dist/icons/DangerIcon.js.map +1 -1
  816. package/dist/icons/DashboardIcon.js +1 -1
  817. package/dist/icons/DashboardIcon.js.map +1 -1
  818. package/dist/icons/DatabaseIcon.js +1 -1
  819. package/dist/icons/DatabaseIcon.js.map +1 -1
  820. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  821. package/dist/icons/DecimalDecreaseIcon.js.map +1 -1
  822. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  823. package/dist/icons/DecimalIncreaseIcon.js.map +1 -1
  824. package/dist/icons/DirectionIcon.js +67 -22
  825. package/dist/icons/DirectionIcon.js.map +1 -1
  826. package/dist/icons/DonutIcon.js +1 -1
  827. package/dist/icons/DonutIcon.js.map +1 -1
  828. package/dist/icons/DownIcon.js +1 -1
  829. package/dist/icons/DownIcon.js.map +1 -1
  830. package/dist/icons/EditIcon.js +1 -1
  831. package/dist/icons/EditIcon.js.map +1 -1
  832. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  833. package/dist/icons/ExclamationCircleFilledIcon.js.map +1 -1
  834. package/dist/icons/ExclamationCircleIcon.js +1 -1
  835. package/dist/icons/ExclamationCircleIcon.js.map +1 -1
  836. package/dist/icons/ExclamationIcon.js +1 -1
  837. package/dist/icons/ExclamationIcon.js.map +1 -1
  838. package/dist/icons/EyeIcon.js +1 -1
  839. package/dist/icons/EyeIcon.js.map +1 -1
  840. package/dist/icons/EyeInvisibleIcon.js +1 -1
  841. package/dist/icons/EyeInvisibleIcon.js.map +1 -1
  842. package/dist/icons/FilterIcon.js +1 -1
  843. package/dist/icons/FilterIcon.js.map +1 -1
  844. package/dist/icons/FolderFilledIcon.js +1 -1
  845. package/dist/icons/FolderFilledIcon.js.map +1 -1
  846. package/dist/icons/FolderIcon.js +1 -1
  847. package/dist/icons/FolderIcon.js.map +1 -1
  848. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  849. package/dist/icons/FolderOpenFilledIcon.js.map +1 -1
  850. package/dist/icons/FolderOpenIcon.js +1 -1
  851. package/dist/icons/FolderOpenIcon.js.map +1 -1
  852. package/dist/icons/ForwardIcon.js +1 -1
  853. package/dist/icons/ForwardIcon.js.map +1 -1
  854. package/dist/icons/GripVerticalIcon.js +1 -1
  855. package/dist/icons/GripVerticalIcon.js.map +1 -1
  856. package/dist/icons/HierarchyIcon.js +1 -1
  857. package/dist/icons/HierarchyIcon.js.map +1 -1
  858. package/dist/icons/HierarchyOpenIcon.js +1 -1
  859. package/dist/icons/HierarchyOpenIcon.js.map +1 -1
  860. package/dist/icons/Icon.js +60 -16
  861. package/dist/icons/Icon.js.map +1 -1
  862. package/dist/icons/InfoCircleIcon.js +1 -1
  863. package/dist/icons/InfoCircleIcon.js.map +1 -1
  864. package/dist/icons/InfoIcon.js +1 -1
  865. package/dist/icons/InfoIcon.js.map +1 -1
  866. package/dist/icons/KeyIcon.js +1 -1
  867. package/dist/icons/KeyIcon.js.map +1 -1
  868. package/dist/icons/LeftIcon.js +1 -1
  869. package/dist/icons/LeftIcon.js.map +1 -1
  870. package/dist/icons/LineChartIcon.js +1 -1
  871. package/dist/icons/LineChartIcon.js.map +1 -1
  872. package/dist/icons/LoadingIcon.js +1 -1
  873. package/dist/icons/LoadingIcon.js.map +1 -1
  874. package/dist/icons/LockFilledIcon.js +1 -1
  875. package/dist/icons/LockFilledIcon.js.map +1 -1
  876. package/dist/icons/LockIcon.js +1 -1
  877. package/dist/icons/LockIcon.js.map +1 -1
  878. package/dist/icons/MoreIcon.js +1 -1
  879. package/dist/icons/MoreIcon.js.map +1 -1
  880. package/dist/icons/NotAllowedIcon.js +1 -1
  881. package/dist/icons/NotAllowedIcon.js.map +1 -1
  882. package/dist/icons/Number123Icon.js +1 -1
  883. package/dist/icons/Number123Icon.js.map +1 -1
  884. package/dist/icons/NumberIcon.js +1 -1
  885. package/dist/icons/NumberIcon.js.map +1 -1
  886. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  887. package/dist/icons/PauseCircleFilledIcon.js.map +1 -1
  888. package/dist/icons/PauseCircleIcon.js +1 -1
  889. package/dist/icons/PauseCircleIcon.js.map +1 -1
  890. package/dist/icons/PauseIcon.js +1 -1
  891. package/dist/icons/PauseIcon.js.map +1 -1
  892. package/dist/icons/PercentageIcon.js +1 -1
  893. package/dist/icons/PercentageIcon.js.map +1 -1
  894. package/dist/icons/PieChartIcon.js +1 -1
  895. package/dist/icons/PieChartIcon.js.map +1 -1
  896. package/dist/icons/PipetteIcon.js +1 -1
  897. package/dist/icons/PipetteIcon.js.map +1 -1
  898. package/dist/icons/PlayCircleIcon.js +1 -1
  899. package/dist/icons/PlayCircleIcon.js.map +1 -1
  900. package/dist/icons/PlayIcon.js +1 -1
  901. package/dist/icons/PlayIcon.js.map +1 -1
  902. package/dist/icons/PlusIcon.js +1 -1
  903. package/dist/icons/PlusIcon.js.map +1 -1
  904. package/dist/icons/ProgressBarIcon.js +1 -1
  905. package/dist/icons/ProgressBarIcon.js.map +1 -1
  906. package/dist/icons/ReloadIcon.js +1 -1
  907. package/dist/icons/ReloadIcon.js.map +1 -1
  908. package/dist/icons/ReportIcon.js +1 -1
  909. package/dist/icons/ReportIcon.js.map +1 -1
  910. package/dist/icons/ReturnIcon.js +1 -1
  911. package/dist/icons/ReturnIcon.js.map +1 -1
  912. package/dist/icons/RightIcon.js +1 -1
  913. package/dist/icons/RightIcon.js.map +1 -1
  914. package/dist/icons/RowTotalsIcon.js +1 -1
  915. package/dist/icons/RowTotalsIcon.js.map +1 -1
  916. package/dist/icons/SchemeIcon.js +1 -1
  917. package/dist/icons/SchemeIcon.js.map +1 -1
  918. package/dist/icons/SearchIcon.js +1 -1
  919. package/dist/icons/SearchIcon.js.map +1 -1
  920. package/dist/icons/SemanticQueryIcon.js +1 -1
  921. package/dist/icons/SemanticQueryIcon.js.map +1 -1
  922. package/dist/icons/SettingsIcon.js +1 -1
  923. package/dist/icons/SettingsIcon.js.map +1 -1
  924. package/dist/icons/ShieldFilledIcon.js +1 -1
  925. package/dist/icons/ShieldFilledIcon.js.map +1 -1
  926. package/dist/icons/ShieldIcon.js +1 -1
  927. package/dist/icons/ShieldIcon.js.map +1 -1
  928. package/dist/icons/SlashIcon.js +1 -1
  929. package/dist/icons/SlashIcon.js.map +1 -1
  930. package/dist/icons/SparklesIcon.js +1 -1
  931. package/dist/icons/SparklesIcon.js.map +1 -1
  932. package/dist/icons/SqlIcon.js +1 -1
  933. package/dist/icons/SqlIcon.js.map +1 -1
  934. package/dist/icons/StatsIcon.js +1 -1
  935. package/dist/icons/StatsIcon.js.map +1 -1
  936. package/dist/icons/StopIcon.js +1 -1
  937. package/dist/icons/StopIcon.js.map +1 -1
  938. package/dist/icons/StringIcon.js +1 -1
  939. package/dist/icons/StringIcon.js.map +1 -1
  940. package/dist/icons/SubtotalsIcon.js +1 -1
  941. package/dist/icons/SubtotalsIcon.js.map +1 -1
  942. package/dist/icons/SwitchIcon.js +1 -1
  943. package/dist/icons/SwitchIcon.js.map +1 -1
  944. package/dist/icons/TableIcon.js +1 -1
  945. package/dist/icons/TableIcon.js.map +1 -1
  946. package/dist/icons/ThumbsDownIcon.js +1 -1
  947. package/dist/icons/ThumbsDownIcon.js.map +1 -1
  948. package/dist/icons/ThumbsUpIcon.js +1 -1
  949. package/dist/icons/ThumbsUpIcon.js.map +1 -1
  950. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  951. package/dist/icons/ThunderboltCrossedIcon.js.map +1 -1
  952. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  953. package/dist/icons/ThunderboltFilledIcon.js.map +1 -1
  954. package/dist/icons/ThunderboltIcon.js +1 -1
  955. package/dist/icons/ThunderboltIcon.js.map +1 -1
  956. package/dist/icons/TimeIcon.js +1 -1
  957. package/dist/icons/TimeIcon.js.map +1 -1
  958. package/dist/icons/TrashIcon.js +1 -1
  959. package/dist/icons/TrashIcon.js.map +1 -1
  960. package/dist/icons/UnlockIcon.js +1 -1
  961. package/dist/icons/UnlockIcon.js.map +1 -1
  962. package/dist/icons/UpIcon.js +1 -1
  963. package/dist/icons/UpIcon.js.map +1 -1
  964. package/dist/icons/UserGroupIcon.js +1 -1
  965. package/dist/icons/UserGroupIcon.js.map +1 -1
  966. package/dist/icons/UserIcon.js +1 -1
  967. package/dist/icons/UserIcon.js.map +1 -1
  968. package/dist/icons/UserLockIcon.js +1 -1
  969. package/dist/icons/UserLockIcon.js.map +1 -1
  970. package/dist/icons/ViewIcon.js +1 -1
  971. package/dist/icons/ViewIcon.js.map +1 -1
  972. package/dist/icons/WarningFilledIcon.js +1 -1
  973. package/dist/icons/WarningFilledIcon.js.map +1 -1
  974. package/dist/icons/WarningIcon.js +1 -1
  975. package/dist/icons/WarningIcon.js.map +1 -1
  976. package/dist/icons/wrap-icon.js +15 -7
  977. package/dist/icons/wrap-icon.js.map +1 -1
  978. package/dist/index.d.ts +22 -22
  979. package/dist/index.js +1 -1
  980. package/dist/index.js.map +1 -1
  981. package/dist/probe/canonicalize.js +2 -2
  982. package/dist/probe/canonicalize.js.map +1 -1
  983. package/dist/probe/css.js +1 -1
  984. package/dist/probe/css.js.map +1 -1
  985. package/dist/probe/index.js +1 -1
  986. package/dist/provider.js +17 -7
  987. package/dist/provider.js.map +1 -1
  988. package/dist/providers/TrackingProvider.js +33 -9
  989. package/dist/providers/TrackingProvider.js.map +1 -1
  990. package/dist/providers/navigationAdapter.default.js +1 -1
  991. package/dist/providers/navigationAdapter.default.js.map +1 -1
  992. package/dist/tokens/all-tokens.js +1 -1
  993. package/dist/tokens/all-tokens.js.map +1 -1
  994. package/dist/tokens/base.js +2 -2
  995. package/dist/tokens/base.js.map +1 -1
  996. package/dist/tokens/color-seed.js +1 -1
  997. package/dist/tokens/color-seed.js.map +1 -1
  998. package/dist/tokens/color-theme.js +18 -3
  999. package/dist/tokens/color-theme.js.map +1 -1
  1000. package/dist/tokens/colors.js +1 -1
  1001. package/dist/tokens/colors.js.map +1 -1
  1002. package/dist/tokens/layout.js +1 -1
  1003. package/dist/tokens/layout.js.map +1 -1
  1004. package/dist/tokens/lazy-styles.js +1 -1
  1005. package/dist/tokens/lazy-styles.js.map +1 -1
  1006. package/dist/tokens/legacy-color.js +1 -1
  1007. package/dist/tokens/legacy-color.js.map +1 -1
  1008. package/dist/tokens/palette-config.js +9 -2
  1009. package/dist/tokens/palette-config.js.map +1 -1
  1010. package/dist/tokens/palette.js +1 -1
  1011. package/dist/tokens/palette.js.map +1 -1
  1012. package/dist/tokens/resolve.js +85 -21
  1013. package/dist/tokens/resolve.js.map +1 -1
  1014. package/dist/tokens/shadows.js +1 -1
  1015. package/dist/tokens/shadows.js.map +1 -1
  1016. package/dist/tokens/sizes.js +1 -1
  1017. package/dist/tokens/sizes.js.map +1 -1
  1018. package/dist/tokens/spacing.js +1 -1
  1019. package/dist/tokens/spacing.js.map +1 -1
  1020. package/dist/tokens/typography.js +1 -1
  1021. package/dist/tokens/typography.js.map +1 -1
  1022. package/dist/utils/ResizeSensor.js +1 -1
  1023. package/dist/utils/ResizeSensor.js.map +1 -1
  1024. package/dist/utils/colors.js +1 -1
  1025. package/dist/utils/colors.js.map +1 -1
  1026. package/dist/utils/dotize.js +1 -1
  1027. package/dist/utils/dotize.js.map +1 -1
  1028. package/dist/utils/is-dev-env.js +1 -1
  1029. package/dist/utils/is-dev-env.js.map +1 -1
  1030. package/dist/utils/modules.js +1 -1
  1031. package/dist/utils/modules.js.map +1 -1
  1032. package/dist/utils/promise.js +1 -1
  1033. package/dist/utils/promise.js.map +1 -1
  1034. package/dist/utils/raf.js +1 -1
  1035. package/dist/utils/raf.js.map +1 -1
  1036. package/dist/utils/random.js +1 -1
  1037. package/dist/utils/random.js.map +1 -1
  1038. package/dist/utils/range.js +1 -1
  1039. package/dist/utils/range.js.map +1 -1
  1040. package/dist/utils/react/RenderCache.js +2 -2
  1041. package/dist/utils/react/RenderCache.js.map +1 -1
  1042. package/dist/utils/react/Slots.js +67 -24
  1043. package/dist/utils/react/Slots.js.map +1 -1
  1044. package/dist/utils/react/chain.js +1 -1
  1045. package/dist/utils/react/chain.js.map +1 -1
  1046. package/dist/utils/react/disabledProps.js +1 -1
  1047. package/dist/utils/react/disabledProps.js.map +1 -1
  1048. package/dist/utils/react/escapePropagation.js +1 -1
  1049. package/dist/utils/react/escapePropagation.js.map +1 -1
  1050. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  1051. package/dist/utils/react/forwardRefWithGenerics.js.map +1 -1
  1052. package/dist/utils/react/index.js +1 -1
  1053. package/dist/utils/react/interactions.js +35 -12
  1054. package/dist/utils/react/interactions.js.map +1 -1
  1055. package/dist/utils/react/isTextOnly.js +1 -1
  1056. package/dist/utils/react/isTextOnly.js.map +1 -1
  1057. package/dist/utils/react/mapProps.js +1 -1
  1058. package/dist/utils/react/mapProps.js.map +1 -1
  1059. package/dist/utils/react/mergeProps.js +1 -1
  1060. package/dist/utils/react/mergeProps.js.map +1 -1
  1061. package/dist/utils/react/nullableValue.js +1 -1
  1062. package/dist/utils/react/nullableValue.js.map +1 -1
  1063. package/dist/utils/react/programmaticFocus.js +1 -1
  1064. package/dist/utils/react/programmaticFocus.js.map +1 -1
  1065. package/dist/utils/react/resolveIcon.js +1 -1
  1066. package/dist/utils/react/resolveIcon.js.map +1 -1
  1067. package/dist/utils/react/sharedStore.js +13 -2
  1068. package/dist/utils/react/sharedStore.js.map +1 -1
  1069. package/dist/utils/react/useBufferedValue.js +5 -5
  1070. package/dist/utils/react/useBufferedValue.js.map +1 -1
  1071. package/dist/utils/react/useCombinedRefs.js +20 -5
  1072. package/dist/utils/react/useCombinedRefs.js.map +1 -1
  1073. package/dist/utils/react/useControlledFocusVisible.js +53 -17
  1074. package/dist/utils/react/useControlledFocusVisible.js.map +1 -1
  1075. package/dist/utils/react/useEventBus.js +43 -18
  1076. package/dist/utils/react/useEventBus.js.map +1 -1
  1077. package/dist/utils/react/useId.js +2 -1
  1078. package/dist/utils/react/useId.js.map +1 -1
  1079. package/dist/utils/react/useIsDarwin.js +29 -16
  1080. package/dist/utils/react/useIsDarwin.js.map +1 -1
  1081. package/dist/utils/react/useKeySymbols.js +23 -9
  1082. package/dist/utils/react/useKeySymbols.js.map +1 -1
  1083. package/dist/utils/react/useLayoutEffect.js +1 -1
  1084. package/dist/utils/react/useLayoutEffect.js.map +1 -1
  1085. package/dist/utils/react/useLocalStorage.js +75 -30
  1086. package/dist/utils/react/useLocalStorage.js.map +1 -1
  1087. package/dist/utils/react/useMergeStyles.js +1 -1
  1088. package/dist/utils/react/useMergeStyles.js.map +1 -1
  1089. package/dist/utils/react/useOverlayEscapeGuard.js +25 -9
  1090. package/dist/utils/react/useOverlayEscapeGuard.js.map +1 -1
  1091. package/dist/utils/react/usePopoverSync.js +175 -73
  1092. package/dist/utils/react/usePopoverSync.js.map +1 -1
  1093. package/dist/utils/react/useQaProps.js +1 -1
  1094. package/dist/utils/react/useQaProps.js.map +1 -1
  1095. package/dist/utils/react/useScheme.js +1 -1
  1096. package/dist/utils/react/useScheme.js.map +1 -1
  1097. package/dist/utils/react/useViewportSize.js +43 -19
  1098. package/dist/utils/react/useViewportSize.js.map +1 -1
  1099. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  1100. package/dist/utils/react/wrapNodeIfPlain.js.map +1 -1
  1101. package/dist/utils/selection.js +1 -1
  1102. package/dist/utils/selection.js.map +1 -1
  1103. package/dist/utils/styles.js +1 -1
  1104. package/dist/utils/styles.js.map +1 -1
  1105. package/dist/utils/tree.js +1 -1
  1106. package/dist/utils/tree.js.map +1 -1
  1107. package/dist/utils/warnings.js +1 -1
  1108. package/dist/utils/warnings.js.map +1 -1
  1109. package/dist/version.js +2 -2
  1110. package/dist/version.js.map +1 -1
  1111. package/docs/Usage.md +9 -1
  1112. package/docs/components/actions/Button.md +1 -1
  1113. package/docs/components/content/InlineInput.md +1 -1
  1114. package/docs/components/content/Item.md +19 -0
  1115. package/docs/components/fields/ColorInput.md +13 -8
  1116. package/docs/components/fields/ColorPicker.md +13 -8
  1117. package/docs/components/fields/ComboBox.md +16 -12
  1118. package/docs/components/fields/CommandTextArea.md +3 -1
  1119. package/docs/components/fields/FilterListBox.md +24 -19
  1120. package/docs/components/fields/FilterPicker.md +25 -19
  1121. package/docs/components/fields/ListBox.md +36 -26
  1122. package/docs/components/fields/Picker.md +28 -21
  1123. package/docs/components/fields/Select.md +17 -12
  1124. package/docs/components/form/Field.md +2 -2
  1125. package/docs/components/form/Form.md +60 -579
  1126. package/docs/components/form/ModernForm.md +22 -1
  1127. package/docs/components/overlays/Dialog.md +26 -0
  1128. package/docs/components/overlays/DialogForm.md +121 -263
  1129. package/docs/components/overlays/DialogTrigger.md +1 -1
  1130. package/docs/components/overlays/UseDialogContainer.md +11 -13
  1131. package/docs/modern-form-guide.md +22 -1
  1132. package/docs/modern-form-migration.md +1 -1
  1133. package/package.json +7 -2
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Text"],"sources":["../src/index.ts"],"sourcesContent":["import { CubeParagraphProps, Paragraph } from './components/content/Paragraph';\nimport { CubeTextProps, Text } from './components/content/Text';\nimport { CubeTextItemProps, TextItem } from './components/content/TextItem';\nimport { CubeTitleProps, Title } from './components/content/Title';\n\nimport './version';\n\nexport { Section } from 'react-stately';\nexport type { MenuTriggerState } from 'react-stately';\n\nexport * from '@internationalized/date';\n\n// generic components\nexport { CollectionItem } from './components/CollectionItem';\nexport { Block } from './components/Block';\nexport type { CubeBlockProps } from './components/Block';\nexport { Item } from './components/content/Item/Item';\nexport type { CubeItemProps } from './components/content/Item/Item';\n// @deprecated Use `Item` instead\nexport { ItemBase } from './components/content/Item/Item';\n// @deprecated Use `CubeItemProps` instead\nexport type { CubeItemBaseProps } from './components/content/Item/Item';\nexport { ItemCard } from './components/content/ItemCard/ItemCard';\nexport type { CubeItemCardProps } from './components/content/ItemCard/ItemCard';\nexport { ItemBadge } from './components/content/ItemBadge/ItemBadge';\nexport type { CubeItemBadgeProps } from './components/content/ItemBadge/ItemBadge';\nexport { InfoBadge } from './components/content/InfoBadge/InfoBadge';\nexport type {\n CubeInfoBadgeProps,\n CubeInfoBadgeTooltipConfig,\n} from './components/content/InfoBadge/InfoBadge';\nexport { ActiveZone } from './components/content/ActiveZone/ActiveZone';\nexport type { CubeActiveZoneProps } from './components/content/ActiveZone/ActiveZone';\nexport { InlineInput } from './components/content/InlineInput';\nexport type {\n CubeInlineInputProps,\n CubeInlineInputRef,\n CubeInlineInputEditTrigger,\n} from './components/content/InlineInput';\nexport * from './components/content/CopySnippet';\nexport * from './components/content/CopyPasteBlock';\nexport { Grid } from './components/layout/Grid';\nexport type { CubeGridProps } from './components/layout/Grid';\nexport { Flex } from './components/layout/Flex';\nexport type { CubeFlexProps } from './components/layout/Flex';\nexport { Link } from './components/actions/Link/Link';\nexport { Space } from './components/layout/Space';\nexport type { CubeSpaceProps } from './components/layout/Space';\nexport { Flow } from './components/layout/Flow';\nexport type { CubeFlowProps } from './components/layout/Flow';\nexport { Panel } from './components/layout/Panel';\nexport type { CubePanelProps } from './components/layout/Panel';\nexport { ResizablePanel } from './components/layout/ResizablePanel';\nexport type { CubeResizablePanelProps } from './components/layout/ResizablePanel';\nexport {\n Board,\n BoardDragActiveProvider,\n BoardProvider,\n BoardResponsive,\n BoardWidget,\n verticalCompactor,\n horizontalCompactor,\n noCompactor,\n getCompactor,\n gridBounds,\n minMaxSize,\n containerBounds,\n boundedX,\n boundedY,\n aspectRatio,\n snapToGrid,\n minSize,\n maxSize,\n placeInFreeSlot,\n distributeEvenly,\n BOARD_SELECTION_CANCEL,\n} from './components/layout/Board';\nexport type {\n CubeBoardProps,\n BoardSelectionMode,\n CubeBoardWidgetProps,\n CubeBoardDragActiveProviderProps,\n CubeBoardProviderProps,\n CubeBoardResponsiveProps,\n BoardCompactType,\n BoardGridLines,\n BoardInteractionInfo,\n BoardBreakpoints,\n BoardBreakpointCols,\n BoardResponsiveLayouts,\n Layout as BoardLayout,\n LayoutItem as BoardLayoutItem,\n ResizeHandleAxis as BoardResizeHandleAxis,\n BoardResizeGripPlacement,\n BoardCornerPlacement,\n BoardLayoutChangeInfo,\n BoardLayoutChangeReason,\n CollisionMode as BoardCollisionMode,\n Compactor as BoardCompactor,\n LayoutConstraint as BoardLayoutConstraint,\n WidgetTransferInfo as BoardWidgetTransferInfo,\n} from './components/layout/Board';\nexport { Root } from './components/Root';\nexport type { CubeRootProps } from './components/Root';\nexport { DisplayTransition } from './components/helpers/DisplayTransition/DisplayTransition';\nexport type { DisplayTransitionProps } from './components/helpers/DisplayTransition/DisplayTransition';\nexport { IconSwitch } from './components/helpers/IconSwitch/IconSwitch';\nexport type { CubeIconSwitchProps } from './components/helpers/IconSwitch/IconSwitch';\n\n// Navigation types and helpers\nexport type {\n NavigationAdapter,\n NavigateLike,\n Path,\n To,\n NavigateArg,\n NavigateOptions,\n RelativeRoutingType,\n} from './providers/navigation.types';\nexport { defaultNavigationAdapter } from './providers/navigationAdapter.default';\nexport { PrismCode } from './components/content/PrismCode/PrismCode';\nexport type { CubePrismCodeProps } from './components/content/PrismCode/PrismCode';\nexport { PrismDiffCode } from './components/content/PrismDiffCode/PrismDiffCode';\nexport type { CubePrismDiffCodeProps } from './components/content/PrismDiffCode/PrismDiffCode';\nexport { Prefix } from './components/layout/Prefix';\nexport type { CubePrefixProps } from './components/layout/Prefix';\nexport { Suffix } from './components/layout/Suffix';\nexport type { CubeSuffixProps } from './components/layout/Suffix';\nexport { Divider } from './components/content/Divider';\nexport type { CubeDividerProps } from './components/content/Divider';\nexport { Disclosure } from './components/content/Disclosure';\nexport type {\n CubeDisclosureProps,\n CubeDisclosureTriggerProps,\n CubeDisclosureContentProps,\n CubeDisclosureGroupProps,\n CubeDisclosureItemProps,\n DisclosureStateContext,\n} from './components/content/Disclosure';\nexport { Tree } from './components/content/Tree';\nexport type {\n CubeTreeProps,\n CubeTreeNodeData,\n TreeOnCheckInfo,\n TreeOnExpandInfo,\n TreeOnSelectInfo,\n TreeLoadDataNode,\n TreeSelectionMode,\n TreeContextMenu,\n TreeNodeState,\n} from './components/content/Tree';\nexport { GridProvider } from './components/GridProvider';\nexport type { CubeGridProviderProps } from './components/GridProvider';\nexport { Content } from './components/content/Content';\nexport type { CubeContentProps } from './components/content/Content';\nexport { Header } from './components/content/Header';\nexport type { CubeHeaderProps } from './components/content/Header';\nexport { Footer } from './components/content/Footer';\nexport type { CubeFooterProps } from './components/content/Footer';\nexport { Result } from './components/content/Result/Result';\nexport type {\n CubeResultProps,\n CubeResultStatus,\n} from './components/content/Result/Result';\nexport { Layout, GridLayout } from './components/content/Layout';\nexport type {\n CubeLayoutProps,\n CubeGridLayoutProps,\n CubeLayoutToolbarProps,\n CubeLayoutHeaderProps,\n CubeLayoutFooterProps,\n CubeLayoutContentProps,\n CubeLayoutPaneProps,\n CubeLayoutPanelProps,\n CubeLayoutPanelHeaderProps,\n ScrollbarType,\n} from './components/content/Layout';\n\n// atoms\nexport * from './components/status';\nexport { Card } from './components/content/Card/Card';\nexport type { CubeCardProps } from './components/content/Card/Card';\nexport * from './components/actions';\nexport { Placeholder } from './components/content/Placeholder/Placeholder';\nexport type { CubePlaceholderProps } from './components/content/Placeholder/Placeholder';\nexport { Skeleton } from './components/content/Skeleton/Skeleton';\nexport type { CubeSkeletonProps } from './components/content/Skeleton/Skeleton';\nexport { CubeLogo, CubeFullLogo } from './components/other/CubeLogo/CubeLogo';\nexport type { CubeLogoProps } from './components/other/CubeLogo/CubeLogo';\nexport { NoDataIcon } from './components/other/NoDataIcon';\nexport { Badge } from './components/content/Badge/Badge';\nexport type { CubeBadgeProps } from './components/content/Badge/Badge';\nexport { Tag } from './components/content/Tag/Tag';\nexport type { CubeTagProps } from './components/content/Tag/Tag';\nexport * from './components/content/HotKeys';\nexport type { CubeSearchInputProps } from './components/fields/SearchInput/SearchInput';\nexport type { CubeListBoxProps } from './components/fields/ListBox';\nexport { ListBox } from './components/fields/ListBox';\nexport { Menu } from './components/actions/Menu/Menu';\nexport type { CubeMenuProps } from './components/actions/Menu/Menu';\nexport { MenuTrigger } from './components/actions/Menu/MenuTrigger';\nexport { SubMenuTrigger } from './components/actions/Menu/SubMenuTrigger';\nexport type { CubeMenuTriggerProps } from './components/actions/Menu/MenuTrigger';\nexport { CommandMenu } from './components/actions/CommandMenu';\nexport type {\n CubeCommandMenuProps,\n CommandMenuItem,\n} from './components/actions/CommandMenu';\nexport { Select, ListBoxPopup } from './components/fields/Select/Select';\nexport type {\n CubeSelectProps,\n CubeSelectBaseProps,\n} from './components/fields/Select/Select';\n\nexport { Avatar } from './components/content/Avatar/Avatar';\nexport type { CubeAvatarProps } from './components/content/Avatar/Avatar';\nexport {\n Dialog,\n DialogTrigger,\n DialogContainer,\n DialogForm,\n useDialogContainer,\n} from './components/overlays/Dialog';\nexport type {\n CubeDialogTriggerProps,\n CubeDialogContainerProps,\n CubeDialogProps,\n CubeDialogFormRef,\n CubeDialogFormProps,\n} from './components/overlays/Dialog';\nexport { Tooltip } from './components/overlays/Tooltip/Tooltip';\nexport type { CubeTooltipProps } from './components/overlays/Tooltip/Tooltip';\nexport { TooltipTrigger } from './components/overlays/Tooltip/TooltipTrigger';\nexport type { CubeTooltipTriggerProps } from './components/overlays/Tooltip/TooltipTrigger';\nexport { TooltipProvider } from './components/overlays/Tooltip/TooltipProvider';\nexport type { CubeTooltipProviderProps } from './components/overlays/Tooltip/TooltipProvider';\n\nexport * from './components/content/Alert';\n\n// navigation\nexport * from './components/navigation';\n\n// data\nexport * from './components/data';\n\n// molecules\nexport { StatsCard } from './components/organisms/StatsCard/StatsCard';\nexport type { CubeStatsCard } from './components/organisms/StatsCard/StatsCard';\nexport {\n AlertDialog,\n useAlertDialogAPI,\n} from './components/overlays/AlertDialog';\nexport type { CubeAlertDialogProps } from './components/overlays/AlertDialog';\n\nexport * from '@tenphi/tasty';\nexport * from '@tenphi/glaze';\n\nexport const Typography = {\n Text: Text,\n Title,\n Paragraph,\n};\n\nexport { Text, TextItem, Title, Paragraph };\nexport type {\n CubeTextProps,\n CubeTextItemProps,\n CubeTitleProps,\n CubeParagraphProps,\n};\n\nexport { Provider, useProviderProps } from './provider';\nexport type { ProviderProps } from './provider';\nexport { Portal } from './components/portal';\nexport type { PortalProps } from './components/portal';\nexport * from './components/fields';\n\nexport type {\n TagName,\n AllBaseProps,\n BaseProps,\n BaseStyleProps,\n DimensionStyleProps,\n ColorStyleProps,\n OuterStyleProps,\n PositionStyleProps,\n TextStyleProps,\n BlockStyleProps,\n ContainerStyleProps,\n BasePropsWithoutChildren,\n FlowStyleProps,\n ShortGridStyles,\n} from '@tenphi/tasty';\nexport type { Props } from './props';\n\n// i18n — the UI Kit owns the i18next + react-i18next libraries and the single\n// shared instance. Consumers (e.g. Cube Cloud) import ALL i18n symbols from\n// here so there is exactly one physical copy / one version / one instance.\nexport {\n useTranslation,\n Trans,\n Translation,\n I18nextProvider,\n initReactI18next,\n withTranslation,\n useSSR as useI18nSSR,\n} from 'react-i18next';\nexport type {\n TransProps,\n UseTranslationOptions,\n UseTranslationResponse,\n WithTranslation,\n} from 'react-i18next';\nexport { default as i18next, createInstance } from 'i18next';\nexport type {\n i18n as I18n,\n TFunction,\n Resource,\n ResourceKey,\n ResourceLanguage,\n InitOptions,\n} from 'i18next';\nexport {\n createUIKitI18n,\n getI18n,\n UIKIT_I18N_NAMESPACE,\n addUIKitLocale,\n I18nProvider,\n createFormatter,\n useFormatter,\n SUPPORTED_LOCALES,\n LOCALE_LABELS,\n isSupportedLocale,\n} from './i18n';\nexport type {\n SupportedLocale,\n UIKitResources,\n I18nProviderProps,\n Formatter,\n FormatDateInput,\n RelativeTimeOptions,\n CurrencyOptions,\n BytesOptions,\n} from './i18n';\n// React Aria's `useLocale`, re-exported so consumers read the same locale\n// context the UI Kit's `I18nProvider` populates from i18next.\nexport { useLocale } from 'react-aria';\n\nexport * from './utils';\nexport { default as copy } from 'clipboard-copy';\nexport * from '@react-aria/ssr';\nexport * from './components/overlays/Toast';\nexport * from './components/overlays/Notifications';\nexport * from './shared';\nexport * from './icons';\nexport * from './components/form';\nexport * from './tokens';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiQA,MAAa,aAAa;CACxB,MAAMA;CACN;CACA;CACD"}
1
+ {"version":3,"file":"index.js","names":["CubeParagraphProps","Paragraph","CubeTextProps","Text","CubeTextItemProps","TextItem","CubeTitleProps","Title","Section","MenuTriggerState","CollectionItem","Block","CubeBlockProps","Item","CubeItemProps","ItemBase","CubeItemBaseProps","ItemCard","CubeItemCardProps","ItemBadge","CubeItemBadgeProps","InfoBadge","CubeInfoBadgeProps","CubeInfoBadgeTooltipConfig","ActiveZone","CubeActiveZoneProps","InlineInput","CubeInlineInputProps","CubeInlineInputRef","CubeInlineInputEditTrigger","Grid","CubeGridProps","Flex","CubeFlexProps","Link","Space","CubeSpaceProps","Flow","CubeFlowProps","Panel","CubePanelProps","ResizablePanel","CubeResizablePanelProps","Board","BoardDragActiveProvider","BoardProvider","BoardResponsive","BoardWidget","verticalCompactor","horizontalCompactor","noCompactor","getCompactor","gridBounds","minMaxSize","containerBounds","boundedX","boundedY","aspectRatio","snapToGrid","minSize","maxSize","placeInFreeSlot","distributeEvenly","BOARD_SELECTION_CANCEL","CubeBoardProps","BoardSelectionMode","CubeBoardWidgetProps","CubeBoardDragActiveProviderProps","CubeBoardProviderProps","CubeBoardResponsiveProps","BoardCompactType","BoardGridLines","BoardInteractionInfo","BoardBreakpoints","BoardBreakpointCols","BoardResponsiveLayouts","Layout","BoardLayout","LayoutItem","BoardLayoutItem","ResizeHandleAxis","BoardResizeHandleAxis","BoardResizeGripPlacement","BoardCornerPlacement","BoardLayoutChangeInfo","BoardLayoutChangeReason","CollisionMode","BoardCollisionMode","Compactor","BoardCompactor","LayoutConstraint","BoardLayoutConstraint","WidgetTransferInfo","BoardWidgetTransferInfo","Root","CubeRootProps","DisplayTransition","DisplayTransitionProps","IconSwitch","CubeIconSwitchProps","NavigationAdapter","NavigateLike","Path","To","NavigateArg","NavigateOptions","RelativeRoutingType","defaultNavigationAdapter","PrismCode","CubePrismCodeProps","PrismDiffCode","CubePrismDiffCodeProps","Prefix","CubePrefixProps","Suffix","CubeSuffixProps","Divider","CubeDividerProps","Disclosure","CubeDisclosureProps","CubeDisclosureTriggerProps","CubeDisclosureContentProps","CubeDisclosureGroupProps","CubeDisclosureItemProps","DisclosureStateContext","Tree","CubeTreeProps","CubeTreeNodeData","TreeOnCheckInfo","TreeOnExpandInfo","TreeOnSelectInfo","TreeLoadDataNode","TreeSelectionMode","TreeContextMenu","TreeNodeState","GridProvider","CubeGridProviderProps","Content","CubeContentProps","Header","CubeHeaderProps","Footer","CubeFooterProps","Result","CubeResultProps","CubeResultStatus","GridLayout","CubeLayoutProps","CubeGridLayoutProps","CubeLayoutToolbarProps","CubeLayoutHeaderProps","CubeLayoutFooterProps","CubeLayoutContentProps","CubeLayoutPaneProps","CubeLayoutPanelProps","CubeLayoutPanelHeaderProps","ScrollbarType","Card","CubeCardProps","Placeholder","CubePlaceholderProps","Skeleton","CubeSkeletonProps","CubeLogo","CubeFullLogo","CubeLogoProps","NoDataIcon","Badge","CubeBadgeProps","Tag","CubeTagProps","CubeSearchInputProps","CubeListBoxProps","ListBox","Menu","CubeMenuProps","MenuTrigger","SubMenuTrigger","CubeMenuTriggerProps","CommandMenu","CubeCommandMenuProps","CommandMenuItem","Select","ListBoxPopup","CubeSelectProps","CubeSelectBaseProps","Avatar","CubeAvatarProps","Dialog","DialogTrigger","DialogContainer","DialogForm","useDialogContainer","CubeDialogTriggerProps","CubeDialogContainerProps","CubeDialogProps","CubeDialogFormRef","CubeDialogFormProps","ModernDialogFormProps","Tooltip","CubeTooltipProps","TooltipTrigger","CubeTooltipTriggerProps","TooltipProvider","CubeTooltipProviderProps","StatsCard","CubeStatsCard","AlertDialog","useAlertDialogAPI","CubeAlertDialogProps","Typography","Provider","useProviderProps","ProviderProps","Portal","PortalProps","TagName","AllBaseProps","BaseProps","BaseStyleProps","DimensionStyleProps","ColorStyleProps","OuterStyleProps","PositionStyleProps","TextStyleProps","BlockStyleProps","ContainerStyleProps","BasePropsWithoutChildren","FlowStyleProps","ShortGridStyles","Props","useTranslation","Trans","Translation","I18nextProvider","initReactI18next","withTranslation","useSSR","useI18nSSR","TransProps","UseTranslationOptions","UseTranslationResponse","WithTranslation","default","i18next","createInstance","i18n","I18n","TFunction","Resource","ResourceKey","ResourceLanguage","InitOptions","createUIKitI18n","getI18n","UIKIT_I18N_NAMESPACE","addUIKitLocale","I18nProvider","createFormatter","useFormatter","SUPPORTED_LOCALES","LOCALE_LABELS","isSupportedLocale","SupportedLocale","UIKitResources","I18nProviderProps","Formatter","FormatDateInput","RelativeTimeOptions","CurrencyOptions","BytesOptions","useLocale","copy"],"sources":["../src/index.ts"],"sourcesContent":["import { CubeParagraphProps, Paragraph } from './components/content/Paragraph';\nimport { CubeTextProps, Text } from './components/content/Text';\nimport { CubeTextItemProps, TextItem } from './components/content/TextItem';\nimport { CubeTitleProps, Title } from './components/content/Title';\n\nimport './version';\n\nexport { Section } from 'react-stately';\nexport type { MenuTriggerState } from 'react-stately';\n\nexport * from '@internationalized/date';\n\n// generic components\nexport { CollectionItem } from './components/CollectionItem';\nexport { Block } from './components/Block';\nexport type { CubeBlockProps } from './components/Block';\nexport { Item } from './components/content/Item/Item';\nexport type { CubeItemProps } from './components/content/Item/Item';\n// @deprecated Use `Item` instead\nexport { ItemBase } from './components/content/Item/Item';\n// @deprecated Use `CubeItemProps` instead\nexport type { CubeItemBaseProps } from './components/content/Item/Item';\nexport { ItemCard } from './components/content/ItemCard/ItemCard';\nexport type { CubeItemCardProps } from './components/content/ItemCard/ItemCard';\nexport { ItemBadge } from './components/content/ItemBadge/ItemBadge';\nexport type { CubeItemBadgeProps } from './components/content/ItemBadge/ItemBadge';\nexport { InfoBadge } from './components/content/InfoBadge/InfoBadge';\nexport type {\n CubeInfoBadgeProps,\n CubeInfoBadgeTooltipConfig,\n} from './components/content/InfoBadge/InfoBadge';\nexport { ActiveZone } from './components/content/ActiveZone/ActiveZone';\nexport type { CubeActiveZoneProps } from './components/content/ActiveZone/ActiveZone';\nexport { InlineInput } from './components/content/InlineInput';\nexport type {\n CubeInlineInputProps,\n CubeInlineInputRef,\n CubeInlineInputEditTrigger,\n} from './components/content/InlineInput';\nexport * from './components/content/CopySnippet';\nexport * from './components/content/CopyPasteBlock';\nexport { Grid } from './components/layout/Grid';\nexport type { CubeGridProps } from './components/layout/Grid';\nexport { Flex } from './components/layout/Flex';\nexport type { CubeFlexProps } from './components/layout/Flex';\nexport { Link } from './components/actions/Link/Link';\nexport { Space } from './components/layout/Space';\nexport type { CubeSpaceProps } from './components/layout/Space';\nexport { Flow } from './components/layout/Flow';\nexport type { CubeFlowProps } from './components/layout/Flow';\nexport { Panel } from './components/layout/Panel';\nexport type { CubePanelProps } from './components/layout/Panel';\nexport { ResizablePanel } from './components/layout/ResizablePanel';\nexport type { CubeResizablePanelProps } from './components/layout/ResizablePanel';\nexport {\n Board,\n BoardDragActiveProvider,\n BoardProvider,\n BoardResponsive,\n BoardWidget,\n verticalCompactor,\n horizontalCompactor,\n noCompactor,\n getCompactor,\n gridBounds,\n minMaxSize,\n containerBounds,\n boundedX,\n boundedY,\n aspectRatio,\n snapToGrid,\n minSize,\n maxSize,\n placeInFreeSlot,\n distributeEvenly,\n BOARD_SELECTION_CANCEL,\n} from './components/layout/Board';\nexport type {\n CubeBoardProps,\n BoardSelectionMode,\n CubeBoardWidgetProps,\n CubeBoardDragActiveProviderProps,\n CubeBoardProviderProps,\n CubeBoardResponsiveProps,\n BoardCompactType,\n BoardGridLines,\n BoardInteractionInfo,\n BoardBreakpoints,\n BoardBreakpointCols,\n BoardResponsiveLayouts,\n Layout as BoardLayout,\n LayoutItem as BoardLayoutItem,\n ResizeHandleAxis as BoardResizeHandleAxis,\n BoardResizeGripPlacement,\n BoardCornerPlacement,\n BoardLayoutChangeInfo,\n BoardLayoutChangeReason,\n CollisionMode as BoardCollisionMode,\n Compactor as BoardCompactor,\n LayoutConstraint as BoardLayoutConstraint,\n WidgetTransferInfo as BoardWidgetTransferInfo,\n} from './components/layout/Board';\nexport { Root } from './components/Root';\nexport type { CubeRootProps } from './components/Root';\nexport { DisplayTransition } from './components/helpers/DisplayTransition/DisplayTransition';\nexport type { DisplayTransitionProps } from './components/helpers/DisplayTransition/DisplayTransition';\nexport { IconSwitch } from './components/helpers/IconSwitch/IconSwitch';\nexport type { CubeIconSwitchProps } from './components/helpers/IconSwitch/IconSwitch';\n\n// Navigation types and helpers\nexport type {\n NavigationAdapter,\n NavigateLike,\n Path,\n To,\n NavigateArg,\n NavigateOptions,\n RelativeRoutingType,\n} from './providers/navigation.types';\nexport { defaultNavigationAdapter } from './providers/navigationAdapter.default';\nexport { PrismCode } from './components/content/PrismCode/PrismCode';\nexport type { CubePrismCodeProps } from './components/content/PrismCode/PrismCode';\nexport { PrismDiffCode } from './components/content/PrismDiffCode/PrismDiffCode';\nexport type { CubePrismDiffCodeProps } from './components/content/PrismDiffCode/PrismDiffCode';\nexport { Prefix } from './components/layout/Prefix';\nexport type { CubePrefixProps } from './components/layout/Prefix';\nexport { Suffix } from './components/layout/Suffix';\nexport type { CubeSuffixProps } from './components/layout/Suffix';\nexport { Divider } from './components/content/Divider';\nexport type { CubeDividerProps } from './components/content/Divider';\nexport { Disclosure } from './components/content/Disclosure';\nexport type {\n CubeDisclosureProps,\n CubeDisclosureTriggerProps,\n CubeDisclosureContentProps,\n CubeDisclosureGroupProps,\n CubeDisclosureItemProps,\n DisclosureStateContext,\n} from './components/content/Disclosure';\nexport { Tree } from './components/content/Tree';\nexport type {\n CubeTreeProps,\n CubeTreeNodeData,\n TreeOnCheckInfo,\n TreeOnExpandInfo,\n TreeOnSelectInfo,\n TreeLoadDataNode,\n TreeSelectionMode,\n TreeContextMenu,\n TreeNodeState,\n} from './components/content/Tree';\nexport { GridProvider } from './components/GridProvider';\nexport type { CubeGridProviderProps } from './components/GridProvider';\nexport { Content } from './components/content/Content';\nexport type { CubeContentProps } from './components/content/Content';\nexport { Header } from './components/content/Header';\nexport type { CubeHeaderProps } from './components/content/Header';\nexport { Footer } from './components/content/Footer';\nexport type { CubeFooterProps } from './components/content/Footer';\nexport { Result } from './components/content/Result/Result';\nexport type {\n CubeResultProps,\n CubeResultStatus,\n} from './components/content/Result/Result';\nexport { Layout, GridLayout } from './components/content/Layout';\nexport type {\n CubeLayoutProps,\n CubeGridLayoutProps,\n CubeLayoutToolbarProps,\n CubeLayoutHeaderProps,\n CubeLayoutFooterProps,\n CubeLayoutContentProps,\n CubeLayoutPaneProps,\n CubeLayoutPanelProps,\n CubeLayoutPanelHeaderProps,\n ScrollbarType,\n} from './components/content/Layout';\n\n// atoms\nexport * from './components/status';\nexport { Card } from './components/content/Card/Card';\nexport type { CubeCardProps } from './components/content/Card/Card';\nexport * from './components/actions';\nexport { Placeholder } from './components/content/Placeholder/Placeholder';\nexport type { CubePlaceholderProps } from './components/content/Placeholder/Placeholder';\nexport { Skeleton } from './components/content/Skeleton/Skeleton';\nexport type { CubeSkeletonProps } from './components/content/Skeleton/Skeleton';\nexport { CubeLogo, CubeFullLogo } from './components/other/CubeLogo/CubeLogo';\nexport type { CubeLogoProps } from './components/other/CubeLogo/CubeLogo';\nexport { NoDataIcon } from './components/other/NoDataIcon';\nexport { Badge } from './components/content/Badge/Badge';\nexport type { CubeBadgeProps } from './components/content/Badge/Badge';\nexport { Tag } from './components/content/Tag/Tag';\nexport type { CubeTagProps } from './components/content/Tag/Tag';\nexport * from './components/content/HotKeys';\nexport type { CubeSearchInputProps } from './components/fields/SearchInput/SearchInput';\nexport type { CubeListBoxProps } from './components/fields/ListBox';\nexport { ListBox } from './components/fields/ListBox';\nexport { Menu } from './components/actions/Menu/Menu';\nexport type { CubeMenuProps } from './components/actions/Menu/Menu';\nexport { MenuTrigger } from './components/actions/Menu/MenuTrigger';\nexport { SubMenuTrigger } from './components/actions/Menu/SubMenuTrigger';\nexport type { CubeMenuTriggerProps } from './components/actions/Menu/MenuTrigger';\nexport { CommandMenu } from './components/actions/CommandMenu';\nexport type {\n CubeCommandMenuProps,\n CommandMenuItem,\n} from './components/actions/CommandMenu';\nexport { Select, ListBoxPopup } from './components/fields/Select/Select';\nexport type {\n CubeSelectProps,\n CubeSelectBaseProps,\n} from './components/fields/Select/Select';\n\nexport { Avatar } from './components/content/Avatar/Avatar';\nexport type { CubeAvatarProps } from './components/content/Avatar/Avatar';\nexport {\n Dialog,\n DialogTrigger,\n DialogContainer,\n DialogForm,\n useDialogContainer,\n} from './components/overlays/Dialog';\nexport type {\n CubeDialogTriggerProps,\n CubeDialogContainerProps,\n CubeDialogProps,\n CubeDialogFormRef,\n CubeDialogFormProps,\n ModernDialogFormProps,\n} from './components/overlays/Dialog';\nexport { Tooltip } from './components/overlays/Tooltip/Tooltip';\nexport type { CubeTooltipProps } from './components/overlays/Tooltip/Tooltip';\nexport { TooltipTrigger } from './components/overlays/Tooltip/TooltipTrigger';\nexport type { CubeTooltipTriggerProps } from './components/overlays/Tooltip/TooltipTrigger';\nexport { TooltipProvider } from './components/overlays/Tooltip/TooltipProvider';\nexport type { CubeTooltipProviderProps } from './components/overlays/Tooltip/TooltipProvider';\n\nexport * from './components/content/Alert';\n\n// navigation\nexport * from './components/navigation';\n\n// data\nexport * from './components/data';\n\n// molecules\nexport { StatsCard } from './components/organisms/StatsCard/StatsCard';\nexport type { CubeStatsCard } from './components/organisms/StatsCard/StatsCard';\nexport {\n AlertDialog,\n useAlertDialogAPI,\n} from './components/overlays/AlertDialog';\nexport type { CubeAlertDialogProps } from './components/overlays/AlertDialog';\n\nexport * from '@tenphi/tasty';\nexport * from '@tenphi/glaze';\n\nexport const Typography = {\n Text: Text,\n Title,\n Paragraph,\n};\n\nexport { Text, TextItem, Title, Paragraph };\nexport type {\n CubeTextProps,\n CubeTextItemProps,\n CubeTitleProps,\n CubeParagraphProps,\n};\n\nexport { Provider, useProviderProps } from './provider';\nexport type { ProviderProps } from './provider';\nexport { Portal } from './components/portal';\nexport type { PortalProps } from './components/portal';\nexport * from './components/fields';\n\nexport type {\n TagName,\n AllBaseProps,\n BaseProps,\n BaseStyleProps,\n DimensionStyleProps,\n ColorStyleProps,\n OuterStyleProps,\n PositionStyleProps,\n TextStyleProps,\n BlockStyleProps,\n ContainerStyleProps,\n BasePropsWithoutChildren,\n FlowStyleProps,\n ShortGridStyles,\n} from '@tenphi/tasty';\nexport type { Props } from './props';\n\n// i18n — the UI Kit owns the i18next + react-i18next libraries and the single\n// shared instance. Consumers (e.g. Cube Cloud) import ALL i18n symbols from\n// here so there is exactly one physical copy / one version / one instance.\nexport {\n useTranslation,\n Trans,\n Translation,\n I18nextProvider,\n initReactI18next,\n withTranslation,\n useSSR as useI18nSSR,\n} from 'react-i18next';\nexport type {\n TransProps,\n UseTranslationOptions,\n UseTranslationResponse,\n WithTranslation,\n} from 'react-i18next';\nexport { default as i18next, createInstance } from 'i18next';\nexport type {\n i18n as I18n,\n TFunction,\n Resource,\n ResourceKey,\n ResourceLanguage,\n InitOptions,\n} from 'i18next';\nexport {\n createUIKitI18n,\n getI18n,\n UIKIT_I18N_NAMESPACE,\n addUIKitLocale,\n I18nProvider,\n createFormatter,\n useFormatter,\n SUPPORTED_LOCALES,\n LOCALE_LABELS,\n isSupportedLocale,\n} from './i18n';\nexport type {\n SupportedLocale,\n UIKitResources,\n I18nProviderProps,\n Formatter,\n FormatDateInput,\n RelativeTimeOptions,\n CurrencyOptions,\n BytesOptions,\n} from './i18n';\n// React Aria's `useLocale`, re-exported so consumers read the same locale\n// context the UI Kit's `I18nProvider` populates from i18next.\nexport { useLocale } from 'react-aria';\n\nexport * from './utils';\nexport { default as copy } from 'clipboard-copy';\nexport * from '@react-aria/ssr';\nexport * from './components/overlays/Toast';\nexport * from './components/overlays/Notifications';\nexport * from './shared';\nexport * from './icons';\nexport * from './components/form';\nexport * from './tokens';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkQA,MAAakN,aAAa;CACxB/M,MAAMA;CACNI;CACAN;CACD"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.181.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  //#region src/probe/canonicalize.ts
3
3
  /**
4
4
  * Normalising generated identifiers out of rendered output.
@@ -32,7 +32,7 @@ function canonicalizeIds(text) {
32
32
  }
33
33
  return placeholder;
34
34
  };
35
- return text.replace(/«[^«»]*»/g, replace).replace(/\breact-aria[\w-]*?\d+\b/g, replace);
35
+ return text.replace(/«[^«»]*»/g, replace).replace(/:[rR][0-9a-v]+(?:H[0-9a-v]+)?:/g, replace).replace(/\breact-aria[\w-]*?\d+\b/g, replace);
36
36
  }
37
37
  /**
38
38
  * Replace tasty's generated class names with positional placeholders.
@@ -1 +1 @@
1
- {"version":3,"file":"canonicalize.js","names":[],"sources":["../../src/probe/canonicalize.ts"],"sourcesContent":["/**\n * Normalising generated identifiers out of rendered output.\n *\n * Moved here from `src/eslint-plugin/probe.tsx` so consumers can reach them:\n * that file is not part of the `./eslint-plugin` entry, so nothing outside this\n * repo could import it. `probe.tsx` re-exports them, so its own callers and the\n * defaults registry are unaffected.\n *\n * Both functions exist for the same reason — comparing two renders byte-for-byte\n * requires dropping values that are arbitrary per render but structurally\n * meaningful in aggregate.\n */\n\n/**\n * Replace generated element IDs with positional placeholders.\n *\n * React's `useId` draws from a global counter, so the same tree rendered twice\n * yields `«r0»` then `«r2»` and a byte comparison would fail for every\n * component that labels an input. Rewriting each distinct ID to `«idN»` in\n * order of first appearance keeps the `id` <-> `aria-labelledby` / `for`\n * relationships meaningful — a structural change still shows up as a\n * difference — while dropping the counter's absolute value.\n */\nexport function canonicalizeIds(text: string): string {\n const seen = new Map<string, string>();\n\n const replace = (match: string) => {\n let placeholder = seen.get(match);\n\n if (!placeholder) {\n placeholder = `«id${seen.size}»`;\n seen.set(match, placeholder);\n }\n\n return placeholder;\n };\n\n return (\n text\n // `[^«»]`, not `[^»]`: excluding the OPENING delimiter too keeps this\n // linear. With `[^»]*` an unterminated run of `«` makes the engine scan\n // to the end of the input from every one of them — quadratic, and\n // reachable now that this is published API called on caller-supplied\n // markup rather than only on our own renders (CodeQL js/polynomial-redos).\n // It is also the tighter reading: an unterminated `«r0` should not\n // swallow the next ID.\n .replace(/«[^«»]*»/g, replace)\n // react-aria mints its own counter-based IDs in several shapes:\n // `react-aria1`, `react-aria-1`, and `react-aria-description-0`.\n .replace(/\\breact-aria[\\w-]*?\\d+\\b/g, replace)\n );\n}\n\n/**\n * Replace tasty's generated class names with positional placeholders.\n *\n * The hash is derived from the *input* style object, not the CSS it produces, so\n * two inputs that normalise to identical CSS still get different class names.\n * `<Space>` sets `gap: true` and `<Space gap=\"1x\">` resolves to the same\n * `gap: var(--gap)` — the emitted rules are byte-identical and only the hash\n * differs.\n *\n * Placeholders are assigned in order of first appearance, so this cannot hide a\n * genuine difference: an extra, missing or reordered class shifts the sequence\n * and still compares unequal. Only the arbitrary hash value is normalised away.\n *\n * The pattern requires a digit so it matches `t1iuxaru` / `tp3unhd` without\n * touching all-letter CSS keywords that happen to start with `t` (`translate`,\n * `transform`).\n */\nexport function canonicalizeClassNames(text: string): string {\n const seen = new Map<string, string>();\n\n return text.replace(\n /\\bt(?=[a-z0-9]{6,8}\\b)(?![a-z]+\\b)[a-z0-9]{6,8}\\b/g,\n (match) => {\n let placeholder = seen.get(match);\n\n if (!placeholder) {\n placeholder = `tcls${seen.size}`;\n seen.set(match, placeholder);\n }\n\n return placeholder;\n },\n );\n}\n\n/** Both normalisations, in the order a probe applies them. */\nexport function canonicalize(text: string): string {\n return canonicalizeClassNames(canonicalizeIds(text));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAuBA,SAAgB,gBAAgB,MAAsB;CACpD,MAAM,uBAAO,IAAI,KAAqB;CAEtC,MAAM,WAAW,UAAkB;EACjC,IAAI,cAAc,KAAK,IAAI,MAAM;AAEjC,MAAI,CAAC,aAAa;AAChB,iBAAc,MAAM,KAAK,KAAK;AAC9B,QAAK,IAAI,OAAO,YAAY;;AAG9B,SAAO;;AAGT,QACE,KAQG,QAAQ,aAAa,QAAQ,CAG7B,QAAQ,6BAA6B,QAAQ;;;;;;;;;;;;;;;;;;;AAqBpD,SAAgB,uBAAuB,MAAsB;CAC3D,MAAM,uBAAO,IAAI,KAAqB;AAEtC,QAAO,KAAK,QACV,uDACC,UAAU;EACT,IAAI,cAAc,KAAK,IAAI,MAAM;AAEjC,MAAI,CAAC,aAAa;AAChB,iBAAc,OAAO,KAAK;AAC1B,QAAK,IAAI,OAAO,YAAY;;AAG9B,SAAO;GAEV;;;AAIH,SAAgB,aAAa,MAAsB;AACjD,QAAO,uBAAuB,gBAAgB,KAAK,CAAC"}
1
+ {"version":3,"file":"canonicalize.js","names":["canonicalizeIds","text","seen","Map","replace","match","placeholder","get","size","set","canonicalizeClassNames","canonicalize"],"sources":["../../src/probe/canonicalize.ts"],"sourcesContent":["/**\n * Normalising generated identifiers out of rendered output.\n *\n * Moved here from `src/eslint-plugin/probe.tsx` so consumers can reach them:\n * that file is not part of the `./eslint-plugin` entry, so nothing outside this\n * repo could import it. `probe.tsx` re-exports them, so its own callers and the\n * defaults registry are unaffected.\n *\n * Both functions exist for the same reason — comparing two renders byte-for-byte\n * requires dropping values that are arbitrary per render but structurally\n * meaningful in aggregate.\n */\n\n/**\n * Replace generated element IDs with positional placeholders.\n *\n * React's `useId` draws from a global counter, so the same tree rendered twice\n * yields `«r0»` then `«r2»` and a byte comparison would fail for every\n * component that labels an input. Rewriting each distinct ID to `«idN»` in\n * order of first appearance keeps the `id` <-> `aria-labelledby` / `for`\n * relationships meaningful — a structural change still shows up as a\n * difference — while dropping the counter's absolute value.\n */\nexport function canonicalizeIds(text: string): string {\n const seen = new Map<string, string>();\n\n const replace = (match: string) => {\n let placeholder = seen.get(match);\n\n if (!placeholder) {\n placeholder = `«id${seen.size}»`;\n seen.set(match, placeholder);\n }\n\n return placeholder;\n };\n\n return (\n text\n // `[^«»]`, not `[^»]`: excluding the OPENING delimiter too keeps this\n // linear. With `[^»]*` an unterminated run of `«` makes the engine scan\n // to the end of the input from every one of them — quadratic, and\n // reachable now that this is published API called on caller-supplied\n // markup rather than only on our own renders (CodeQL js/polynomial-redos).\n // It is also the tighter reading: an unterminated `«r0` should not\n // swallow the next ID.\n .replace(/«[^«»]*»/g, replace)\n // React 18 uses colon-delimited client and server IDs, including\n // server hook suffixes such as :R1H2:. Keep the same reference mapping.\n .replace(/:[rR][0-9a-v]+(?:H[0-9a-v]+)?:/g, replace)\n // react-aria mints its own counter-based IDs in several shapes:\n // `react-aria1`, `react-aria-1`, and `react-aria-description-0`.\n .replace(/\\breact-aria[\\w-]*?\\d+\\b/g, replace)\n );\n}\n\n/**\n * Replace tasty's generated class names with positional placeholders.\n *\n * The hash is derived from the *input* style object, not the CSS it produces, so\n * two inputs that normalise to identical CSS still get different class names.\n * `<Space>` sets `gap: true` and `<Space gap=\"1x\">` resolves to the same\n * `gap: var(--gap)` — the emitted rules are byte-identical and only the hash\n * differs.\n *\n * Placeholders are assigned in order of first appearance, so this cannot hide a\n * genuine difference: an extra, missing or reordered class shifts the sequence\n * and still compares unequal. Only the arbitrary hash value is normalised away.\n *\n * The pattern requires a digit so it matches `t1iuxaru` / `tp3unhd` without\n * touching all-letter CSS keywords that happen to start with `t` (`translate`,\n * `transform`).\n */\nexport function canonicalizeClassNames(text: string): string {\n const seen = new Map<string, string>();\n\n return text.replace(\n /\\bt(?=[a-z0-9]{6,8}\\b)(?![a-z]+\\b)[a-z0-9]{6,8}\\b/g,\n (match) => {\n let placeholder = seen.get(match);\n\n if (!placeholder) {\n placeholder = `tcls${seen.size}`;\n seen.set(match, placeholder);\n }\n\n return placeholder;\n },\n );\n}\n\n/** Both normalisations, in the order a probe applies them. */\nexport function canonicalize(text: string): string {\n return canonicalizeClassNames(canonicalizeIds(text));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAuBA,SAAgBA,gBAAgBC,MAAsB;CACpD,MAAMC,uBAAO,IAAIC,KAAqB;CAEtC,MAAMC,WAAWC,UAAkB;EACjC,IAAIC,cAAcJ,KAAKK,IAAIF,MAAM;AAEjC,MAAI,CAACC,aAAa;AAChBA,iBAAc,MAAMJ,KAAKM,KAAI;AAC7BN,QAAKO,IAAIJ,OAAOC,YAAY;;AAG9B,SAAOA;;AAGT,QACEL,KAQGG,QAAQ,aAAaA,QAAO,CAG5BA,QAAQ,mCAAmCA,QAAO,CAGlDA,QAAQ,6BAA6BA,QAAQ;;;;;;;;;;;;;;;;;;;AAqBpD,SAAgBM,uBAAuBT,MAAsB;CAC3D,MAAMC,uBAAO,IAAIC,KAAqB;AAEtC,QAAOF,KAAKG,QACV,uDACCC,UAAU;EACT,IAAIC,cAAcJ,KAAKK,IAAIF,MAAM;AAEjC,MAAI,CAACC,aAAa;AAChBA,iBAAc,OAAOJ,KAAKM;AAC1BN,QAAKO,IAAIJ,OAAOC,YAAY;;AAG9B,SAAOA;GAEV;;;AAIH,SAAgBK,aAAaV,MAAsB;AACjD,QAAOS,uBAAuBV,gBAAgBC,KAAK,CAAC"}
package/dist/probe/css.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.181.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { getCSSTextForNode } from "@tenphi/tasty";
3
3
 
4
4
  //#region src/probe/css.ts
@@ -1 +1 @@
1
- {"version":3,"file":"css.js","names":[],"sources":["../../src/probe/css.ts"],"sourcesContent":["/**\n * Extracting the CSS a rendered subtree actually caused.\n *\n * The naive approach — read `getCSSTextForNode` for the node you care about —\n * does not work under a `<Root>`, for two independent reasons:\n *\n * 1. `<Root>` declares the whole design-system token block, so the dump is\n * dominated by rules the subtree did not cause (~119KB of ~135KB in Cube\n * Cloud's console-ui).\n * 2. Scoping the query to an inner wrapper looks like the fix and is not:\n * `<Root>` is the `PortalProvider` target, so Dialog / Menu / Tooltip /\n * Select popups mount as *siblings* of that wrapper. Their CSS — and their\n * markup — silently vanish from the result.\n *\n * So measure the whole region twice and subtract: capture the empty harness,\n * mount the subject, capture again, and diff. Portals are inside the measured\n * region in both passes, so they survive.\n */\nimport { getCSSTextForNode } from '@tenphi/tasty';\n\n/** One captured pass: the raw CSS text plus any rules the engine rejected. */\nexport interface CssCapture {\n text: string;\n warnings: string[];\n}\n\n/**\n * Split a `getCSSTextForNode` dump into individual rules.\n *\n * The dump is one rule per line, including at-rules whose block is inlined onto\n * the same line, so lines are the natural unit.\n */\nexport function splitRules(text: string): string[] {\n return text\n .split('\\n')\n .map((line) => line.trim())\n .filter(Boolean);\n}\n\n/**\n * Rules present in `full` but not in `baseline`, in their original order.\n *\n * Set-based rather than positional: the injector is free to reorder or coalesce\n * chunks between passes, and a positional diff would report the whole tail as\n * new the first time that happens.\n */\nexport function diffRules(baseline: string, full: string): string[] {\n const seen = new Set(splitRules(baseline));\n\n return splitRules(full).filter((rule) => !seen.has(rule));\n}\n\n/**\n * Capture the CSS for a node, collecting the rules the CSS engine refused.\n *\n * jsdom does not merely fail to *resolve* `@container style()` and `@property`\n * rules — it discards them, so a jsdom-derived dump is incomplete rather than\n * unresolved for any component that uses them. tasty reports each rejection\n * through `console.warn`, so collect them rather than suppressing: a caller\n * needs to know when its answer is partial.\n *\n * Matched case-insensitively — tasty emits `[Tasty]` with a capital T, and this\n * repo's own jsdom setup filtered for `[tasty]` for a long time without ever\n * matching.\n */\nexport function captureCss(node: ParentNode): CssCapture {\n const warnings: string[] = [];\n const original = console.warn;\n\n console.warn = (...args: unknown[]) => {\n const first = args[0];\n\n if (\n typeof first === 'string' &&\n first.toLowerCase().includes('browser rejected css rule')\n ) {\n warnings.push(args.slice(1).map(String).join(' '));\n\n return;\n }\n\n original(...args);\n };\n\n try {\n return { text: getCSSTextForNode(node), warnings };\n } finally {\n console.warn = original;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,SAAgB,WAAW,MAAwB;AACjD,QAAO,KACJ,MAAM,KAAK,CACX,KAAK,SAAS,KAAK,MAAM,CAAC,CAC1B,OAAO,QAAQ;;;;;;;;;AAUpB,SAAgB,UAAU,UAAkB,MAAwB;CAClE,MAAM,OAAO,IAAI,IAAI,WAAW,SAAS,CAAC;AAE1C,QAAO,WAAW,KAAK,CAAC,QAAQ,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC;;;;;;;;;;;;;;;AAgB3D,SAAgB,WAAW,MAA8B;CACvD,MAAM,WAAqB,EAAE;CAC7B,MAAM,WAAW,QAAQ;AAEzB,SAAQ,QAAQ,GAAG,SAAoB;EACrC,MAAM,QAAQ,KAAK;AAEnB,MACE,OAAO,UAAU,YACjB,MAAM,aAAa,CAAC,SAAS,4BAA4B,EACzD;AACA,YAAS,KAAK,KAAK,MAAM,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,IAAI,CAAC;AAElD;;AAGF,WAAS,GAAG,KAAK;;AAGnB,KAAI;AACF,SAAO;GAAE,MAAM,kBAAkB,KAAK;GAAE;GAAU;WAC1C;AACR,UAAQ,OAAO"}
1
+ {"version":3,"file":"css.js","names":["getCSSTextForNode","CssCapture","text","warnings","splitRules","split","map","line","trim","filter","Boolean","diffRules","baseline","full","seen","Set","rule","has","captureCss","node","ParentNode","original","console","warn","args","first","toLowerCase","includes","push","slice","String","join"],"sources":["../../src/probe/css.ts"],"sourcesContent":["/**\n * Extracting the CSS a rendered subtree actually caused.\n *\n * The naive approach — read `getCSSTextForNode` for the node you care about —\n * does not work under a `<Root>`, for two independent reasons:\n *\n * 1. `<Root>` declares the whole design-system token block, so the dump is\n * dominated by rules the subtree did not cause (~119KB of ~135KB in Cube\n * Cloud's console-ui).\n * 2. Scoping the query to an inner wrapper looks like the fix and is not:\n * `<Root>` is the `PortalProvider` target, so Dialog / Menu / Tooltip /\n * Select popups mount as *siblings* of that wrapper. Their CSS — and their\n * markup — silently vanish from the result.\n *\n * So measure the whole region twice and subtract: capture the empty harness,\n * mount the subject, capture again, and diff. Portals are inside the measured\n * region in both passes, so they survive.\n */\nimport { getCSSTextForNode } from '@tenphi/tasty';\n\n/** One captured pass: the raw CSS text plus any rules the engine rejected. */\nexport interface CssCapture {\n text: string;\n warnings: string[];\n}\n\n/**\n * Split a `getCSSTextForNode` dump into individual rules.\n *\n * The dump is one rule per line, including at-rules whose block is inlined onto\n * the same line, so lines are the natural unit.\n */\nexport function splitRules(text: string): string[] {\n return text\n .split('\\n')\n .map((line) => line.trim())\n .filter(Boolean);\n}\n\n/**\n * Rules present in `full` but not in `baseline`, in their original order.\n *\n * Set-based rather than positional: the injector is free to reorder or coalesce\n * chunks between passes, and a positional diff would report the whole tail as\n * new the first time that happens.\n */\nexport function diffRules(baseline: string, full: string): string[] {\n const seen = new Set(splitRules(baseline));\n\n return splitRules(full).filter((rule) => !seen.has(rule));\n}\n\n/**\n * Capture the CSS for a node, collecting the rules the CSS engine refused.\n *\n * jsdom does not merely fail to *resolve* `@container style()` and `@property`\n * rules — it discards them, so a jsdom-derived dump is incomplete rather than\n * unresolved for any component that uses them. tasty reports each rejection\n * through `console.warn`, so collect them rather than suppressing: a caller\n * needs to know when its answer is partial.\n *\n * Matched case-insensitively — tasty emits `[Tasty]` with a capital T, and this\n * repo's own jsdom setup filtered for `[tasty]` for a long time without ever\n * matching.\n */\nexport function captureCss(node: ParentNode): CssCapture {\n const warnings: string[] = [];\n const original = console.warn;\n\n console.warn = (...args: unknown[]) => {\n const first = args[0];\n\n if (\n typeof first === 'string' &&\n first.toLowerCase().includes('browser rejected css rule')\n ) {\n warnings.push(args.slice(1).map(String).join(' '));\n\n return;\n }\n\n original(...args);\n };\n\n try {\n return { text: getCSSTextForNode(node), warnings };\n } finally {\n console.warn = original;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgCA,SAAgBI,WAAWF,MAAwB;AACjD,QAAOA,KACJG,MAAM,KAAK,CACXC,KAAKC,SAASA,KAAKC,MAAM,CAAC,CAC1BC,OAAOC,QAAQ;;;;;;;;;AAUpB,SAAgBC,UAAUC,UAAkBC,MAAwB;CAClE,MAAMC,OAAO,IAAIC,IAAIX,WAAWQ,SAAS,CAAC;AAE1C,QAAOR,WAAWS,KAAK,CAACJ,QAAQO,SAAS,CAACF,KAAKG,IAAID,KAAK,CAAC;;;;;;;;;;;;;;;AAgB3D,SAAgBE,WAAWC,MAA8B;CACvD,MAAMhB,WAAqB,EAAE;CAC7B,MAAMkB,WAAWC,QAAQC;AAEzBD,SAAQC,QAAQ,GAAGC,SAAoB;EACrC,MAAMC,QAAQD,KAAK;AAEnB,MACE,OAAOC,UAAU,YACjBA,MAAMC,aAAa,CAACC,SAAS,4BAA4B,EACzD;AACAxB,YAASyB,KAAKJ,KAAKK,MAAM,EAAE,CAACvB,IAAIwB,OAAO,CAACC,KAAK,IAAI,CAAC;AAElD;;AAGFV,WAAS,GAAGG,KAAK;;AAGnB,KAAI;AACF,SAAO;GAAEtB,MAAMF,kBAAkBmB,KAAK;GAAEhB;GAAU;WAC1C;AACRmB,UAAQC,OAAOF"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.181.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { canonicalize, canonicalizeClassNames, canonicalizeIds } from "./canonicalize.js";
3
3
  import { captureCss, diffRules, splitRules } from "./css.js";
4
4
 
package/dist/provider.js CHANGED
@@ -1,6 +1,7 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.181.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { EventBusProvider } from "./utils/react/useEventBus.js";
3
3
  import { defaultNavigationAdapter } from "./providers/navigationAdapter.default.js";
4
+ import { c } from "react-compiler-runtime";
4
5
  import { createContext, useContext, useMemo } from "react";
5
6
  import { jsx } from "react/jsx-runtime";
6
7
 
@@ -31,7 +32,7 @@ function Provider(allProps) {
31
32
  navigation,
32
33
  root
33
34
  ]);
34
- const newValue = useMemo(() => {
35
+ const newValue_0 = useMemo(() => {
35
36
  let newValue = Object.assign({}, parentContext);
36
37
  Object.keys(props).forEach((key) => {
37
38
  if (props[key] != null) newValue[key] = props[key];
@@ -39,15 +40,24 @@ function Provider(allProps) {
39
40
  return newValue;
40
41
  }, [parentContext, props]);
41
42
  return /* @__PURE__ */ jsx(UIKitContext.Provider, {
42
- value: newValue,
43
+ value: newValue_0,
43
44
  children
44
45
  });
45
46
  }
46
47
  function useProviderProps(props) {
47
- return {
48
- ...useContext(UIKitContext),
49
- ...props
50
- };
48
+ const $ = c(3);
49
+ const contextProps = useContext(UIKitContext);
50
+ let t0;
51
+ if ($[0] !== contextProps || $[1] !== props) {
52
+ t0 = {
53
+ ...contextProps,
54
+ ...props
55
+ };
56
+ $[0] = contextProps;
57
+ $[1] = props;
58
+ $[2] = t0;
59
+ } else t0 = $[2];
60
+ return t0;
51
61
  }
52
62
 
53
63
  //#endregion
@@ -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.181.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.181.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.181.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.181.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.
@@ -21,7 +21,7 @@ const BASE_TOKENS = {
21
21
  "$large-radius": "(1r + .5x)",
22
22
  "$card-radius": "(1r + .5x)",
23
23
  "$sharp-radius": "0px",
24
- "$min-dialog-size": "min(288px, calc(100vw - (2 * var(--gap))))",
24
+ "$min-dialog-size": "min(288px, calc(100dvw - (8 * var(--gap))))",
25
25
  $transition: "80ms",
26
26
  "$disclosure-transition": "120ms",
27
27
  "$tab-transition": "120ms",
@@ -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 /** Minimum dialog width (responsive) */\n '$min-dialog-size': 'min(288px, calc(100vw - (2 * 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;CAIjB,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.181.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.181.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.181.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";