@cube-dev/ui-kit 0.188.0 → 0.189.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 (621) hide show
  1. package/README.md +4 -0
  2. package/dist/CHANGELOG.md +14 -0
  3. package/dist/README.md +4 -0
  4. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  5. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  6. package/dist/_internal/hooks/use-event.js +1 -1
  7. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  8. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  9. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  10. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  11. package/dist/_internal/hooks/use-warn.js +1 -1
  12. package/dist/components/Block.js +1 -1
  13. package/dist/components/CollectionItem.js +1 -1
  14. package/dist/components/GlobalStyles.js +3 -6
  15. package/dist/components/GlobalStyles.js.map +1 -1
  16. package/dist/components/GridProvider.js +1 -1
  17. package/dist/components/HiddenInput.js +1 -1
  18. package/dist/components/Root.js +1 -1
  19. package/dist/components/actions/Action/Action.js +1 -1
  20. package/dist/components/actions/Banner/Banner.js +1 -1
  21. package/dist/components/actions/Button/Button.js +1 -1
  22. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.js +40 -19
  24. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  25. package/dist/components/actions/ButtonSplit/context.js +1 -1
  26. package/dist/components/actions/CommandMenu/CommandMenu.js +4 -7
  27. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  28. package/dist/components/actions/CommandMenu/styled.js +1 -1
  29. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  30. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  31. package/dist/components/actions/ItemActionContext.js +1 -1
  32. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  33. package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
  34. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  35. package/dist/components/actions/Link/Link.js +1 -1
  36. package/dist/components/actions/Menu/Menu.js +1 -1
  37. package/dist/components/actions/Menu/MenuItem.js +1 -1
  38. package/dist/components/actions/Menu/MenuSection.js +1 -1
  39. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  40. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  41. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  42. package/dist/components/actions/Menu/context.js +1 -1
  43. package/dist/components/actions/Menu/styled.js +4 -6
  44. package/dist/components/actions/Menu/styled.js.map +1 -1
  45. package/dist/components/actions/actions-run.js +1 -1
  46. package/dist/components/actions/index.js +1 -1
  47. package/dist/components/actions/use-action.js +1 -1
  48. package/dist/components/actions/use-anchored-menu.js +1 -1
  49. package/dist/components/actions/use-context-menu.js +1 -1
  50. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  51. package/dist/components/content/Alert/Alert.js +1 -1
  52. package/dist/components/content/Alert/Alert.js.map +1 -1
  53. package/dist/components/content/Alert/use-alert.js +1 -1
  54. package/dist/components/content/Avatar/Avatar.js +1 -1
  55. package/dist/components/content/Badge/Badge.js +1 -1
  56. package/dist/components/content/Badge/Badge.js.map +1 -1
  57. package/dist/components/content/Card/Card.js +1 -1
  58. package/dist/components/content/Content.js +1 -1
  59. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  60. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  61. package/dist/components/content/Disclosure/Disclosure.js +53 -78
  62. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  63. package/dist/components/content/Divider.js +1 -1
  64. package/dist/components/content/Footer.js +1 -1
  65. package/dist/components/content/Header.js +1 -1
  66. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  67. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  68. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  69. package/dist/components/content/Item/Item.js +11 -10
  70. package/dist/components/content/Item/Item.js.map +1 -1
  71. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  72. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  73. package/dist/components/content/Layout/GridLayout.js +1 -1
  74. package/dist/components/content/Layout/Layout.js +1 -1
  75. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  76. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  77. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  78. package/dist/components/content/Layout/LayoutContent.js +1 -1
  79. package/dist/components/content/Layout/LayoutContext.js +1 -1
  80. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  81. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  82. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  83. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  84. package/dist/components/content/Layout/LayoutPane.js +1 -1
  85. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  86. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  87. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  88. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  89. package/dist/components/content/Layout/index.js +1 -1
  90. package/dist/components/content/Layout/utils.js +1 -1
  91. package/dist/components/content/Paragraph.js +1 -1
  92. package/dist/components/content/Placeholder/Placeholder.js +13 -22
  93. package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
  94. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  95. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  96. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  97. package/dist/components/content/Result/Result.d.ts +34 -4
  98. package/dist/components/content/Result/Result.js +199 -95
  99. package/dist/components/content/Result/Result.js.map +1 -1
  100. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  101. package/dist/components/content/Tag/Tag.js +3 -5
  102. package/dist/components/content/Tag/Tag.js.map +1 -1
  103. package/dist/components/content/Text.d.ts +14 -14
  104. package/dist/components/content/Text.js +1 -1
  105. package/dist/components/content/TextItem/TextItem.js +1 -1
  106. package/dist/components/content/Title.d.ts +2 -0
  107. package/dist/components/content/Title.js +1 -1
  108. package/dist/components/content/Title.js.map +1 -1
  109. package/dist/components/content/Tree/Tree.js +1 -1
  110. package/dist/components/content/Tree/TreeNode.js +1 -1
  111. package/dist/components/content/Tree/styled.js +1 -1
  112. package/dist/components/content/Tree/styled.js.map +1 -1
  113. package/dist/components/content/Tree/tree-index.js +1 -1
  114. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  115. package/dist/components/content/Tree/use-load-data.js +1 -1
  116. package/dist/components/content/highlightText.js +1 -1
  117. package/dist/components/content/use-auto-tooltip.js +1 -1
  118. package/dist/components/data/DataTable/DataTable.js +3 -6
  119. package/dist/components/data/DataTable/DataTable.js.map +1 -1
  120. package/dist/components/data/ItemTable/ItemTable.js +3 -6
  121. package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
  122. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  123. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  124. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  125. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  126. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  127. package/dist/components/data/TableBase/RowCollection.js +1 -1
  128. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  129. package/dist/components/data/TableBase/TableRow.js +1 -1
  130. package/dist/components/data/TableBase/TableView.js +1 -1
  131. package/dist/components/data/TableBase/column-menu.js +1 -1
  132. package/dist/components/data/TableBase/column-styles.js +1 -1
  133. package/dist/components/data/TableBase/column-tint.js +1 -1
  134. package/dist/components/data/TableBase/row-menu.js +1 -1
  135. package/dist/components/data/TableBase/styled.js +8 -10
  136. package/dist/components/data/TableBase/styled.js.map +1 -1
  137. package/dist/components/data/TableBase/table-tree.js +1 -1
  138. package/dist/components/data/TableBase/types.js +1 -1
  139. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  140. package/dist/components/data/TableBase/use-column-order.js +1 -1
  141. package/dist/components/data/TableBase/use-container-width.js +1 -1
  142. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  143. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  144. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  145. package/dist/components/data/TableBase/use-table-search.js +1 -1
  146. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  147. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  148. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  149. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  150. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  151. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  152. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  153. package/dist/components/fields/Checkbox/context.js +1 -1
  154. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  155. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  156. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  157. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  158. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  159. package/dist/components/fields/CommandTextArea/CommandTextArea.js +3 -5
  160. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  161. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  162. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  163. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  164. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  165. package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
  166. package/dist/components/fields/DatePicker/DatePicker.js +119 -129
  167. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  168. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  169. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  170. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  171. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  172. package/dist/components/fields/DatePicker/DateRangePicker.js +128 -138
  173. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  174. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +321 -331
  175. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  176. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  177. package/dist/components/fields/DatePicker/PeriodPicker.js +163 -179
  178. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  179. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  180. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  181. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  182. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  183. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  184. package/dist/components/fields/DatePicker/period.js +1 -1
  185. package/dist/components/fields/DatePicker/props.js +1 -1
  186. package/dist/components/fields/DatePicker/utils.js +1 -1
  187. package/dist/components/fields/FileInput/FileInput.js +1 -1
  188. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  189. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  190. package/dist/components/fields/FilterPicker/FilterPicker.js +5 -6
  191. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  192. package/dist/components/fields/Input/Input.js +1 -1
  193. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  194. package/dist/components/fields/ListBox/ListBox.js +1 -1
  195. package/dist/components/fields/ListBox/optionId.js +1 -1
  196. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  197. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  198. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  199. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  200. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  201. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  202. package/dist/components/fields/Picker/Picker.js +5 -6
  203. package/dist/components/fields/Picker/Picker.js.map +1 -1
  204. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  205. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  206. package/dist/components/fields/RadioGroup/context.js +1 -1
  207. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  208. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  209. package/dist/components/fields/Select/Select.js +68 -66
  210. package/dist/components/fields/Select/Select.js.map +1 -1
  211. package/dist/components/fields/Slider/Gradation.js +1 -1
  212. package/dist/components/fields/Slider/HueSlider.js +33 -43
  213. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  214. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  215. package/dist/components/fields/Slider/Slider.js +1 -1
  216. package/dist/components/fields/Slider/SliderBase.js +1 -1
  217. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  218. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  219. package/dist/components/fields/Slider/elements.js +1 -1
  220. package/dist/components/fields/Slider/index.js +1 -1
  221. package/dist/components/fields/Switch/Switch.js +1 -1
  222. package/dist/components/fields/TagInput/TagInput.js +1 -1
  223. package/dist/components/fields/TagInput/TagList.js +1 -1
  224. package/dist/components/fields/TextArea/TextArea.js +1 -1
  225. package/dist/components/fields/TextInput/TextInput.js +1 -1
  226. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  227. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  228. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  229. package/dist/components/fields/TriggerActions.js +1 -1
  230. package/dist/components/fields/color/ColorPanel.js +1 -1
  231. package/dist/components/fields/color/channels.js +1 -1
  232. package/dist/components/fields/color/color.js +1 -1
  233. package/dist/components/fields/color/context.js +1 -1
  234. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  235. package/dist/components/form/Form/Field.js +1 -1
  236. package/dist/components/form/Form/Form.js +1 -1
  237. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  238. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  239. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  240. package/dist/components/form/Form/SubmitError.js +1 -1
  241. package/dist/components/form/Form/backend.js +1 -1
  242. package/dist/components/form/Form/index.js +1 -1
  243. package/dist/components/form/Form/modern/actions.js +1 -1
  244. package/dist/components/form/Form/modern/context.js +1 -1
  245. package/dist/components/form/Form/modern/controller.js +1 -1
  246. package/dist/components/form/Form/modern/field-binding.js +1 -1
  247. package/dist/components/form/Form/modern/field.js +1 -1
  248. package/dist/components/form/Form/modern/react.js +1 -1
  249. package/dist/components/form/Form/modern/store.js +1 -1
  250. package/dist/components/form/Form/modern/validation.js +1 -1
  251. package/dist/components/form/Form/modern/values.js +1 -1
  252. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  253. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  254. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  255. package/dist/components/form/Form/use-field/use-field.js +1 -1
  256. package/dist/components/form/Form/use-form.js +1 -1
  257. package/dist/components/form/Form/validation.js +1 -1
  258. package/dist/components/form/Label.js +1 -1
  259. package/dist/components/form/legacy-tooltip.js +1 -1
  260. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  261. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  262. package/dist/components/form/validation/use-validation-props.js +1 -1
  263. package/dist/components/form/wrapper.js +1 -1
  264. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  265. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  266. package/dist/components/layout/Board/Board.js +2 -2
  267. package/dist/components/layout/Board/Board.js.map +1 -1
  268. package/dist/components/layout/Board/BoardProvider.js +1 -1
  269. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  270. package/dist/components/layout/Board/Widget.js +1 -1
  271. package/dist/components/layout/Board/WidgetHost.js +4 -4
  272. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  273. package/dist/components/layout/Board/board-context.js +1 -1
  274. package/dist/components/layout/Board/board-store.js +1 -1
  275. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  276. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  277. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  278. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  279. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  280. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  281. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  282. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  283. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  284. package/dist/components/layout/Board/index.js +1 -1
  285. package/dist/components/layout/Board/responsive-utils.js +1 -1
  286. package/dist/components/layout/Board/use-board-layout.js +1 -1
  287. package/dist/components/layout/Board/use-board-registry.js +1 -1
  288. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  289. package/dist/components/layout/Board/use-board-selection.js +1 -1
  290. package/dist/components/layout/Flex.js +1 -1
  291. package/dist/components/layout/Flow.js +1 -1
  292. package/dist/components/layout/Grid.js +1 -1
  293. package/dist/components/layout/Panel.js +1 -1
  294. package/dist/components/layout/Prefix.js +1 -1
  295. package/dist/components/layout/ResizablePanel.js +1 -1
  296. package/dist/components/layout/Space.js +1 -1
  297. package/dist/components/layout/Suffix.js +1 -1
  298. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  299. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  300. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  301. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  302. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  303. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  304. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  305. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  306. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  307. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  308. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  309. package/dist/components/navigation/Tabs/styled.js +1 -1
  310. package/dist/components/navigation/Tabs/types.js +1 -1
  311. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  312. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  313. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  314. package/dist/components/other/Calendar/Calendar.js +1 -1
  315. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  316. package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
  317. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  318. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  319. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  320. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  321. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  322. package/dist/components/other/Calendar/PeriodGrid.js.map +1 -1
  323. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  324. package/dist/components/other/Calendar/styled.js +1 -1
  325. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  326. package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
  327. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  328. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  329. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.d.ts +57 -50
  330. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +52 -48
  331. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
  332. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +99 -104
  333. package/dist/components/overlays/AlertDialog/AlertDialogZone.js.map +1 -1
  334. package/dist/components/overlays/AlertDialog/index.d.ts +2 -1
  335. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  336. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  337. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  338. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  339. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  340. package/dist/components/overlays/Dialog/context.js +1 -1
  341. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  342. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  343. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  344. package/dist/components/overlays/Modal/Modal.js +1 -1
  345. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  346. package/dist/components/overlays/Modal/Overlay.js +1 -1
  347. package/dist/components/overlays/Modal/Popover.js +2 -2
  348. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  349. package/dist/components/overlays/Modal/Tray.js +1 -1
  350. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  351. package/dist/components/overlays/Modal/Underlay.js +1 -1
  352. package/dist/components/overlays/Notifications/Notification.js +1 -1
  353. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  354. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  355. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  356. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  357. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  358. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  359. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  360. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  361. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  362. package/dist/components/overlays/Notifications/index.js +1 -1
  363. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  364. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  365. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  366. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  367. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  368. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  369. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  370. package/dist/components/overlays/Toast/index.js +1 -1
  371. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  372. package/dist/components/overlays/Toast/useToast.js +1 -1
  373. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  374. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  375. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  376. package/dist/components/overlays/Tooltip/context.js +1 -1
  377. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  378. package/dist/components/portal/Portal.js +1 -1
  379. package/dist/components/portal/PortalProvider.js +1 -1
  380. package/dist/components/portal/usePortal.js +1 -1
  381. package/dist/components/shared/DraggableCollection.js +1 -1
  382. package/dist/components/shared/InvalidIcon.js +1 -1
  383. package/dist/components/shared/ValidIcon.js +1 -1
  384. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  385. package/dist/components/status/Spin/Cube.js +1 -1
  386. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  387. package/dist/components/status/Spin/Spin.js +1 -1
  388. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  389. package/dist/data/item-themes.js +1 -1
  390. package/dist/data/themes.js +1 -1
  391. package/dist/eslint-plugin/defaults.generated.js +17 -1
  392. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  393. package/dist/eslint-plugin/index.js +1 -1
  394. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  395. package/dist/i18n/I18nProvider.js +1 -1
  396. package/dist/i18n/createFormatter.js +1 -1
  397. package/dist/i18n/index.js +1 -1
  398. package/dist/i18n/instance.js +1 -1
  399. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  400. package/dist/i18n/locales/en-US/uikit.js +1 -1
  401. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  402. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  403. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  404. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  405. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  406. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  407. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  408. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  409. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  410. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  411. package/dist/i18n/locales.js +1 -1
  412. package/dist/i18n/useFormatter.js +1 -1
  413. package/dist/i18n/useI18n.js +1 -1
  414. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  415. package/dist/icons/AdjustmentsIcon.js +1 -1
  416. package/dist/icons/AiIcon.js +1 -1
  417. package/dist/icons/AreaChartIcon.js +1 -1
  418. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  419. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  420. package/dist/icons/BackwardIcon.js +1 -1
  421. package/dist/icons/BarChartIcon.js +1 -1
  422. package/dist/icons/BellFilledIcon.js +1 -1
  423. package/dist/icons/BellIcon.js +1 -1
  424. package/dist/icons/BooleanIcon.js +1 -1
  425. package/dist/icons/CalendarEditIcon.js +1 -1
  426. package/dist/icons/CalendarIcon.js +1 -1
  427. package/dist/icons/CaretDownIcon.js +1 -1
  428. package/dist/icons/CaretUpIcon.js +1 -1
  429. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  430. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  431. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  432. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  433. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  434. package/dist/icons/ChartBarLineIcon.js +1 -1
  435. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  436. package/dist/icons/ChartBarStackedIcon.js +1 -1
  437. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  438. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  439. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  440. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  441. package/dist/icons/ChartBubbleIcon.js +1 -1
  442. package/dist/icons/ChartDonut2Icon.js +1 -1
  443. package/dist/icons/ChartFunnelIcon.js +1 -1
  444. package/dist/icons/ChartHeatmapIcon.js +1 -1
  445. package/dist/icons/ChartKPIIcon.js +1 -1
  446. package/dist/icons/ChartPie2Icon.js +1 -1
  447. package/dist/icons/ChartScatterIcon.js +1 -1
  448. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  449. package/dist/icons/CheckCircleIcon.js +1 -1
  450. package/dist/icons/CheckIcon.js +1 -1
  451. package/dist/icons/CircleFilledIcon.js +1 -1
  452. package/dist/icons/ClearIcon.js +1 -1
  453. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  454. package/dist/icons/CloseCircleIcon.js +1 -1
  455. package/dist/icons/CloseIcon.js +1 -1
  456. package/dist/icons/CodeIcon.js +1 -1
  457. package/dist/icons/ColumnTotalIcon.js +1 -1
  458. package/dist/icons/CopyIcon.js +1 -1
  459. package/dist/icons/CountIcon.js +1 -1
  460. package/dist/icons/CubeIcon.js +1 -1
  461. package/dist/icons/CubePauseIcon.js +1 -1
  462. package/dist/icons/CubePlayIcon.js +1 -1
  463. package/dist/icons/CurrencyDollarIcon.js +1 -1
  464. package/dist/icons/DangerIcon.js +1 -1
  465. package/dist/icons/DashboardIcon.js +1 -1
  466. package/dist/icons/DatabaseIcon.js +1 -1
  467. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  468. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  469. package/dist/icons/DirectionIcon.js +1 -1
  470. package/dist/icons/DonutIcon.js +1 -1
  471. package/dist/icons/DownIcon.js +1 -1
  472. package/dist/icons/EditIcon.js +1 -1
  473. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  474. package/dist/icons/ExclamationCircleIcon.js +1 -1
  475. package/dist/icons/ExclamationIcon.js +1 -1
  476. package/dist/icons/EyeIcon.js +1 -1
  477. package/dist/icons/EyeInvisibleIcon.js +1 -1
  478. package/dist/icons/FilterIcon.js +1 -1
  479. package/dist/icons/FolderFilledIcon.js +1 -1
  480. package/dist/icons/FolderIcon.js +1 -1
  481. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  482. package/dist/icons/FolderOpenIcon.js +1 -1
  483. package/dist/icons/ForwardIcon.js +1 -1
  484. package/dist/icons/GripVerticalIcon.js +1 -1
  485. package/dist/icons/HierarchyIcon.js +1 -1
  486. package/dist/icons/HierarchyOpenIcon.js +1 -1
  487. package/dist/icons/Icon.js +1 -1
  488. package/dist/icons/InfoCircleIcon.js +1 -1
  489. package/dist/icons/InfoIcon.js +1 -1
  490. package/dist/icons/KeyIcon.js +1 -1
  491. package/dist/icons/LeftIcon.js +1 -1
  492. package/dist/icons/LineChartIcon.js +1 -1
  493. package/dist/icons/LoadingIcon.js +1 -1
  494. package/dist/icons/LockFilledIcon.js +1 -1
  495. package/dist/icons/LockIcon.js +1 -1
  496. package/dist/icons/MoreIcon.js +1 -1
  497. package/dist/icons/NotAllowedIcon.js +1 -1
  498. package/dist/icons/Number123Icon.js +1 -1
  499. package/dist/icons/NumberIcon.js +1 -1
  500. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  501. package/dist/icons/PauseCircleIcon.js +1 -1
  502. package/dist/icons/PauseIcon.js +1 -1
  503. package/dist/icons/PercentageIcon.js +1 -1
  504. package/dist/icons/PieChartIcon.js +1 -1
  505. package/dist/icons/PipetteIcon.js +1 -1
  506. package/dist/icons/PlayCircleIcon.js +1 -1
  507. package/dist/icons/PlayIcon.js +1 -1
  508. package/dist/icons/PlusIcon.js +1 -1
  509. package/dist/icons/ProgressBarIcon.js +1 -1
  510. package/dist/icons/ReloadIcon.js +1 -1
  511. package/dist/icons/ReportIcon.js +1 -1
  512. package/dist/icons/ReturnIcon.js +1 -1
  513. package/dist/icons/RightIcon.js +1 -1
  514. package/dist/icons/RowTotalsIcon.js +1 -1
  515. package/dist/icons/SchemeIcon.js +1 -1
  516. package/dist/icons/SearchIcon.js +1 -1
  517. package/dist/icons/SemanticQueryIcon.js +1 -1
  518. package/dist/icons/SettingsIcon.js +1 -1
  519. package/dist/icons/ShieldFilledIcon.js +1 -1
  520. package/dist/icons/ShieldIcon.js +1 -1
  521. package/dist/icons/SlashIcon.js +1 -1
  522. package/dist/icons/SparklesIcon.js +1 -1
  523. package/dist/icons/SqlIcon.js +1 -1
  524. package/dist/icons/StatsIcon.js +1 -1
  525. package/dist/icons/StopIcon.js +1 -1
  526. package/dist/icons/StringIcon.js +1 -1
  527. package/dist/icons/SubtotalsIcon.js +1 -1
  528. package/dist/icons/SwitchIcon.js +1 -1
  529. package/dist/icons/TableIcon.js +1 -1
  530. package/dist/icons/ThumbsDownIcon.js +1 -1
  531. package/dist/icons/ThumbsUpIcon.js +1 -1
  532. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  533. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  534. package/dist/icons/ThunderboltIcon.js +1 -1
  535. package/dist/icons/TimeIcon.js +1 -1
  536. package/dist/icons/TrashIcon.js +1 -1
  537. package/dist/icons/UnlockIcon.js +1 -1
  538. package/dist/icons/UpIcon.js +1 -1
  539. package/dist/icons/UserGroupIcon.js +1 -1
  540. package/dist/icons/UserIcon.js +1 -1
  541. package/dist/icons/UserLockIcon.js +1 -1
  542. package/dist/icons/ViewIcon.js +1 -1
  543. package/dist/icons/WarningFilledIcon.js +1 -1
  544. package/dist/icons/WarningIcon.js +1 -1
  545. package/dist/icons/wrap-icon.js +1 -1
  546. package/dist/index.d.ts +4 -3
  547. package/dist/index.js +3 -3
  548. package/dist/index.js.map +1 -1
  549. package/dist/probe/canonicalize.js +1 -1
  550. package/dist/probe/css.js +1 -1
  551. package/dist/probe/index.js +1 -1
  552. package/dist/provider.js +1 -1
  553. package/dist/providers/TrackingProvider.js +1 -1
  554. package/dist/providers/navigationAdapter.default.js +1 -1
  555. package/dist/tokens/all-tokens.js +1 -1
  556. package/dist/tokens/base.js +1 -1
  557. package/dist/tokens/color-seed.js +1 -1
  558. package/dist/tokens/color-theme.js +1 -1
  559. package/dist/tokens/colors.js +1 -1
  560. package/dist/tokens/layout.js +1 -1
  561. package/dist/tokens/lazy-styles.js +1 -1
  562. package/dist/tokens/legacy-color.js +1 -1
  563. package/dist/tokens/palette-config.js +1 -1
  564. package/dist/tokens/palette.js +1 -1
  565. package/dist/tokens/resolve.js +1 -1
  566. package/dist/tokens/shadows.js +1 -1
  567. package/dist/tokens/sizes.js +1 -1
  568. package/dist/tokens/spacing.js +1 -1
  569. package/dist/tokens/typography.js +1 -1
  570. package/dist/utils/ResizeSensor.js +1 -1
  571. package/dist/utils/colors.js +1 -1
  572. package/dist/utils/dotize.js +1 -1
  573. package/dist/utils/is-dev-env.js +1 -1
  574. package/dist/utils/modules.js +1 -1
  575. package/dist/utils/promise.js +1 -1
  576. package/dist/utils/raf.js +1 -1
  577. package/dist/utils/random.js +1 -1
  578. package/dist/utils/range.js +1 -1
  579. package/dist/utils/react/RenderCache.js +1 -1
  580. package/dist/utils/react/Slots.js +1 -1
  581. package/dist/utils/react/chain.js +1 -1
  582. package/dist/utils/react/disabledProps.js +1 -1
  583. package/dist/utils/react/escapePropagation.js +1 -1
  584. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  585. package/dist/utils/react/index.js +1 -1
  586. package/dist/utils/react/interactions.js +1 -1
  587. package/dist/utils/react/isTextOnly.js +1 -1
  588. package/dist/utils/react/mapProps.js +1 -1
  589. package/dist/utils/react/mergeProps.js +1 -1
  590. package/dist/utils/react/nullableValue.js +1 -1
  591. package/dist/utils/react/programmaticFocus.js +1 -1
  592. package/dist/utils/react/resolveIcon.js +1 -1
  593. package/dist/utils/react/sharedStore.js +1 -1
  594. package/dist/utils/react/useBufferedValue.js +1 -1
  595. package/dist/utils/react/useCombinedRefs.js +1 -1
  596. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  597. package/dist/utils/react/useEventBus.js +1 -1
  598. package/dist/utils/react/useId.js +1 -1
  599. package/dist/utils/react/useIsDarwin.js +1 -1
  600. package/dist/utils/react/useKeySymbols.js +1 -1
  601. package/dist/utils/react/useLayoutEffect.js +1 -1
  602. package/dist/utils/react/useLocalStorage.js +1 -1
  603. package/dist/utils/react/useMergeStyles.js +1 -1
  604. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  605. package/dist/utils/react/usePopoverSync.js +1 -1
  606. package/dist/utils/react/useQaProps.js +1 -1
  607. package/dist/utils/react/useScheme.js +1 -1
  608. package/dist/utils/react/useViewportSize.js +1 -1
  609. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  610. package/dist/utils/selection.js +1 -1
  611. package/dist/utils/styles.js +51 -6
  612. package/dist/utils/styles.js.map +1 -1
  613. package/dist/utils/tree.js +1 -1
  614. package/dist/utils/warnings.js +1 -1
  615. package/dist/version.js +3 -3
  616. package/docs/components/content/Result.md +202 -12
  617. package/docs/components/content/Title.md +1 -0
  618. package/docs/components/overlays/AlertDialog.md +97 -0
  619. package/docs/tasty/dsl.md +28 -6
  620. package/docs/tasty/styles.md +20 -0
  621. package/package.json +3 -3
package/README.md CHANGED
@@ -141,6 +141,10 @@ pnpm size # Check bundle size limits
141
141
  pnpm chromatic # Run visual regression tests
142
142
  ```
143
143
 
144
+ ### Agent reviews
145
+
146
+ Local agent reviews follow the [UI Kit review rules](docs/rules/review.md), including [Entropy review](docs/rules/entropy.md#entropy-review). Use `$ui-review` in Codex or `/ui-review` in Claude for a full review, and `$entropy-review` or `/entropy-review` respectively for a focused complexity assessment.
147
+
144
148
  ### Project Structure
145
149
 
146
150
  ```
package/dist/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @cube-dev/ui-kit
2
2
 
3
+ ## 0.189.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#1432](https://github.com/cube-js/cube-ui-kit/pull/1432) [`6f038456`](https://github.com/cube-js/cube-ui-kit/commit/6f038456c906db2e8b72fd09c44b00877a592d8e) Thanks [@solarrust](https://github.com/solarrust)! - `Result` gains what a confirmation or result dialog needs: an `actions` slot for `Result.Action` buttons, which take their size from the Result, a `size="large"` scale with a bigger icon and text, and a `layout="stacked"` arrangement that fills the container and stacks the actions to the full width. Size and layout are independent, so a large result can keep its centered row of actions and a medium one can stack them. `isCompact` keeps its own scale and arrangement and ignores both. The status icon now has `3x` of room on every side (a quarter of `--icon-size` once that is larger, above a `12x` icon) in every non-compact Result including the default medium one, a custom `icon` gets the same room (sized by the Result's `--icon-size`, so size a custom icon through it rather than on the icon), and that room is the whole distance to the title, so the title keeps its `3x` from the icon in both sizes. Outside `isCompact` the content and the actions now keep their `3x` with a top margin instead of the container `gap`, so a `gap` passed to such a Result adds to it. A status without an icon (`404`, `403`, `500`) renders no icon slot. The stacked layout keeps a `1.5x` padding of its own, and none inside a `Dialog`, whose `Content` already pads it.
8
+
9
+ ### Patch Changes
10
+
11
+ - [#1463](https://github.com/cube-js/cube-ui-kit/pull/1463) [`d1215d22`](https://github.com/cube-js/cube-ui-kit/commit/d1215d2205b2cf9e9558529bcdf9996d3b6eb678) Thanks [@tenphi](https://github.com/tenphi)! - Fix three bugs in `useAlertDialogAPI().open()`. A `cancelToken` aborted before or while the dialog is open now rejects the promise with `undefined`, as Cancel does, instead of leaving it pending forever; a caller that aborts without handling that rejection now gets an unhandled rejection where its `await` used to hang. The default Ok button, shown when `actions.confirm` is omitted, now resolves `'confirm'` instead of rejecting like a dismissal. And a dialog opened while the previous one is still animating out now replaces it instead of being rejected as "Another dialog is already opened", so follow-up dialogs and dialogs opened from a mount effect under StrictMode show. The `AlertDialogApi`, `AlertDialogApiParams` and `AlertDialogResolveStatus` types are now exported, and the AlertDialog docs describe the imperative API.
12
+
13
+ - [#1461](https://github.com/cube-js/cube-ui-kit/pull/1461) [`12a62900`](https://github.com/cube-js/cube-ui-kit/commit/12a62900901687ee14d5f75bf8bf33343df86e5e) Thanks [@tenphi](https://github.com/tenphi)! - Update `@tenphi/tasty` to 3.9.6. It fixes a crash when `flow` or `gap` meets an unset `display` branch (including a `null` default in a state map), accepts `chain` in the overscroll-behavior longhands, and lets a `transition` entry that names one property keep its own timing when a group such as `theme` that covers it comes later. That gives a board widget's outside resize grip its intended 120 ms ease-in-out fade instead of `theme`'s default timing. `Board` widget chrome and `Popover` transitions now also read the kit's duration tokens instead of hardcoded values, with the same timing.
14
+
15
+ - [#1461](https://github.com/cube-js/cube-ui-kit/pull/1461) [`12a62900`](https://github.com/cube-js/cube-ui-kit/commit/12a62900901687ee14d5f75bf8bf33343df86e5e) Thanks [@tenphi](https://github.com/tenphi)! - Style overrides that a component layers over its own defaults now merge the way tasty's `styles` prop does, instead of replacing whole keys. This covers `styles` on `Disclosure` (and its group's `contentStyles`), `ButtonSplit`, `DataTable`, `ItemTable`, `Placeholder`, `Paragraph`, `Avatar`, `ActiveZone` and `DateInput`, plus `wrapperStyles` on the date pickers, `inputStyles` on `PeriodPicker`, `styles` and `headerStyles` on `CommandMenu`, `popoverStyles` on `Picker` and `FilterPicker`, `overlayStyles` on `CommandTextArea`, `closeButtonStyles` on `Tag`, `thumbStyles` and `trackStyles` on `HueSlider`, and `triggerStyles`, `optionStyles` and `headingStyles` on `Select`. A state map without a `''` key now adds states to the default map instead of discarding it, and a sub-element override keeps the default's other properties. A `null` still resets the component's own value, as before. Renders without such an override are unchanged.
16
+
3
17
  ## 0.188.0
4
18
 
5
19
  ### Minor Changes
package/dist/README.md CHANGED
@@ -141,6 +141,10 @@ pnpm size # Check bundle size limits
141
141
  pnpm chromatic # Run visual regression tests
142
142
  ```
143
143
 
144
+ ### Agent reviews
145
+
146
+ Local agent reviews follow the [UI Kit review rules](docs/rules/review.md), including [Entropy review](docs/rules/entropy.md#entropy-review). Use `$ui-review` in Codex or `/ui-review` in Claude for a full review, and `$entropy-review` or `/entropy-review` respectively for a focused complexity assessment.
147
+
144
148
  ### Project Structure
145
149
 
146
150
  ```
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { c } from "react-compiler-runtime";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { deprecationWarning } from "../../utils/warnings.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import React, { useEffect } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { useSyncRef } from "./use-sync-ref.js";
3
3
  import { useCallback } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { useRef } from "react";
3
3
 
4
4
  //#region src/_internal/hooks/use-is-first-render.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../../utils/react/useLayoutEffect.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { useRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  //#region src/_internal/hooks/use-timer/timer.ts
3
3
  var Timer = class {
4
4
  callback;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { useEvent } from "../use-event.js";
3
3
  import { Timer } from "./timer.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { useEvent } from "./use-event.js";
3
3
  import { warn } from "../../utils/warnings.js";
4
4
  import { useRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../utils/styles.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { ItemAction } from "./actions/ItemAction/ItemAction.js";
3
3
  import { ItemBadge } from "./content/ItemBadge/ItemBadge.js";
4
4
  import { Item } from "react-stately";
@@ -1,4 +1,5 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
+ import { mergeStyleLayers } from "../utils/styles.js";
2
3
  import { usePaletteValue } from "../tokens/palette-config.js";
3
4
  import { getTokens } from "../tokens/all-tokens.js";
4
5
  import { c } from "react-compiler-runtime";
@@ -269,11 +270,7 @@ function GlobalStyles(props) {
269
270
  const tokens = usePaletteValue(getTokens);
270
271
  let t0;
271
272
  if ($[0] !== bodyStyles || $[1] !== tokens) {
272
- t0 = {
273
- ...tokens,
274
- ...BODY_STYLES,
275
- ...bodyStyles
276
- };
273
+ t0 = mergeStyleLayers(tokens, BODY_STYLES, bodyStyles);
277
274
  $[0] = bodyStyles;
278
275
  $[1] = tokens;
279
276
  $[2] = t0;
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalStyles.js","names":["useGlobalStyles","useRawCSS","getTokens","usePaletteValue","Styles","GlobalStylesProps","bodyStyles","key","fonts","fontDisplay","publicUrl","font","monospaceFont","applyLegacyTokens","BODY_STYLES","overscrollBehaviorY","fill","fontFamily","margin","padding","color","preset","letterSpacing","STATIC_CSS","GlobalStyles","props","$","_c","tokens","t0","bodyTokenStyles","t1","Symbol","for","id","t2","t3","fontValue","monospaceFontValue"],"sources":["../../src/components/GlobalStyles.tsx"],"sourcesContent":["import { useGlobalStyles, useRawCSS } from '@tenphi/tasty';\n\nimport { getTokens } from '../tokens';\nimport { usePaletteValue } from '../tokens/palette-config';\n\nimport type { Styles } from '@tenphi/tasty';\n\ninterface GlobalStylesProps {\n bodyStyles?: { [key: string]: string };\n fonts?: boolean;\n fontDisplay?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';\n publicUrl?: string;\n font?: string;\n monospaceFont?: string;\n /** @deprecated Tokens are now always applied via useGlobalStyles */\n applyLegacyTokens?: boolean;\n}\n\n/**\n * Body styles applied via useGlobalStyles.\n *\n * `fill` and `color` use scheme-aware Glaze tokens so the whole page flips\n * automatically when `<html data-scheme=\"dark\">` (or `prefers-color-scheme: dark`)\n * is active — see `src/tokens/palette.ts` and `src/components/Root.tsx`.\n */\nconst BODY_STYLES: Styles = {\n overscrollBehaviorY: 'none',\n fill: '#surface',\n fontFamily: 'var(--font-sans)',\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n margin: 0,\n padding: 0,\n color: '#surface-text-soft',\n preset: 't3',\n letterSpacing: '0.02em',\n};\n\n// Static CSS that doesn't depend on props\nconst STATIC_CSS = `\n @font-face {\n font-family: text-security-disc;\n src: url(data:font/woff2;base64,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) format('woff2');\n }\n\n kbd {\n font-family: var(--c2-font-family);\n font-weight: var(--c2-font-weight);\n font-size: var(--c2-font-size);\n border: var(--border-width) solid var(--dark-04-color);\n background-color: var(--surface-color);\n color: var(--dark-color);\n border-radius: var(--radius);\n padding: 0 var(--outline-width);\n }\n\n :not([data-qa$=\"Icon\"]) > .tabler-icon {\n font-size: var(--icon-size);\n width: 1em;\n height: 1em;\n min-width: 1em;\n min-height: 1em;\n max-height: 1em;\n stroke-width: var(--stroke-width);\n }\n\n .cube-animation-spin {\n animation: cube-animation-spin 1s linear infinite;\n }\n\n @keyframes cube-animation-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n b, strong {\n font-weight: var(--bold-font-weight, 700);\n }\n\n [type=reset], [type=submit], button, html [type=button] {\n -webkit-appearance: none;\n }\n\n code {\n font-family: var(--font-mono);\n }\n\n /*\n * Prism syntax highlighting.\n *\n * All token colors come from the scheme-aware Glaze \\`code-*\\` palette\n * (defined in src/tokens/palette.ts). Each \\`code-*\\` token has \\`mode: 'auto'\\`\n * with a numeric contrast floor of 4.5 against \\`#surface\\` so every token\n * reads at WCAG AA in light AND dark schemes (AAA in high-contrast).\n * Diff insertion / deletion re-use the adaptive \\`success-*\\` and \\`danger-*\\`\n * ramps for both the line bg and the token color.\n */\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n color: var(--surface-text-color);\n background: none;\n font-family: var(--s3-font-family, var(--font-mono));\n text-align: left;\n font-weight: var(--s3-font-weight, 400);\n font-size: var(--s3-font-size, 14px);\n line-height: var(--s3-line-height, 20px);\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n border-radius: 6px;\n border: none;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n pre[class*=\"language-\"]::-moz-selection, pre[class*=\"language-\"] ::-moz-selection,\n code[class*=\"language-\"]::-moz-selection, code[class*=\"language-\"] ::-moz-selection {\n text-shadow: none;\n background: oklch(from var(--primary-color) l c h / .2);\n }\n\n pre[class*=\"language-\"]::selection, pre[class*=\"language-\"] ::selection,\n code[class*=\"language-\"]::selection, code[class*=\"language-\"] ::selection {\n text-shadow: none;\n background: oklch(from var(--primary-color) l c h / .2);\n }\n\n @media print {\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n text-shadow: none;\n }\n }\n\n /* Code blocks */\n pre[class*=\"language-\"] {\n overflow: auto;\n }\n\n :not(pre) > code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n background: transparent;\n }\n\n /* Inline code */\n :not(pre) > code[class*=\"language-\"] {\n border-radius: .3em;\n white-space: normal;\n }\n\n /* Diff (re-uses success/danger ramps; both bg and text adapt to scheme) */\n .token.inserted-sign {\n background-color: var(--success-bg-color);\n color: var(--success-text-color);\n }\n\n .token.inserted {\n color: var(--success-text-color);\n }\n\n .token.deleted-sign {\n background-color: var(--danger-bg-color);\n color: var(--danger-text-color);\n }\n\n .token.deleted {\n color: var(--danger-text-color);\n }\n\n /* Comments — subdued gray-ish, AA floor */\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: var(--code-comment-color);\n }\n\n /* Operators / punctuation — subdued purple, AA floor */\n .token.operator,\n .token.punctuation {\n color: var(--code-punctuation-color);\n }\n\n .namespace {\n opacity: .7;\n }\n\n /* Keywords / language constructs — violet */\n .token.boolean,\n .token.constant,\n .token.keyword,\n .token.atrule {\n color: var(--code-keyword-color);\n font-weight: 500;\n }\n\n /* Numbers / numeric entities — orange */\n .token.entity,\n .token.number {\n color: var(--code-number-color);\n }\n\n /* Strings / character literals / URLs — green */\n .token.string,\n .token.char,\n .token.attr-value,\n .token.url,\n .language-css .token.string,\n .style .token.string {\n color: var(--code-string-color);\n }\n\n /* Names: functions, class names, regex, variables — pink/coral */\n .token.function,\n .token.class-name,\n .token.regex,\n .token.important,\n .token.variable {\n color: var(--code-function-color);\n }\n\n /* HTML/XML tag names — same hue as keywords (see Colors / CodeSyntax) */\n .token.tag {\n color: var(--code-keyword-color);\n }\n\n /* Attributes / properties / selectors / built-ins — cyan */\n .token.attr-name,\n .token.property,\n .token.symbol,\n .token.key,\n .token.builtin,\n .token.selector {\n color: var(--code-attribute-color);\n }\n\n /*\n * prism-react-renderer flattens nested markup tokens and prefixes parent\n * types onto each leaf (e.g. \\`token tag attr-value\\`). Re-assert leaf\n * colors so the bare \\`.token.tag\\` rule does not wash the whole tag.\n */\n .token.tag.attr-name {\n color: var(--code-attribute-color);\n }\n\n .token.tag.attr-value {\n color: var(--code-string-color);\n }\n\n .token.tag.punctuation {\n color: var(--code-punctuation-color);\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n`;\n\nexport function GlobalStyles(props: GlobalStylesProps) {\n const { bodyStyles, font, monospaceFont } = props;\n\n // Re-resolve the tokens whenever the palette is re-seeded at runtime (see\n // `src/tokens/palette-config.ts`). Nothing else has to re-render: every color\n // in the kit compiles to `var(--<name>-color)`, so replacing this one rule\n // recolors the whole UI. `getTokens()` returns a new map only when the palette\n // changes, and taking it as the store value makes it the memo's dependency —\n // a version listed in the deps but never read is dropped by React Compiler.\n const tokens = usePaletteValue(getTokens);\n\n // Merge token styles with the base body styles, then the custom ones. Keys\n // are passed through as-is (tasty handles both camelCase and kebab-case).\n const bodyTokenStyles: Styles = { ...tokens, ...BODY_STYLES, ...bodyStyles };\n\n // Apply tokens and body styles via useGlobalStyles.\n //\n // Replacement does not depend on the `id`: tasty keys its injection slot on\n // `id ?? selector`, so `'body'` on its own already disposes the previous block\n // before writing the new one — which is what removes stale `@hc` rules when the\n // palette is re-seeded, rather than shadowing them. The `id` buys two other\n // things. It gives the token block its own slot, so a host app calling\n // `useGlobalStyles('body', …)` for its own body styles cannot evict ours (and\n // vice versa) — they would otherwise share the `'body'` slot and dispose each\n // other on every change. And under SSR it makes the collector key stable and\n // last-write-wins, instead of content-hashed and first-write-wins.\n useGlobalStyles('body', bodyTokenStyles, { id: 'cube-ui-kit-tokens' });\n\n // Apply static CSS and font definitions via useRawCSS\n useRawCSS(() => {\n const fontValue = font ? `${font}, ` : '';\n const monospaceFontValue = monospaceFont ? `${monospaceFont}, ` : '';\n\n return `\n html {\n overscroll-behavior-y: none;\n --font-sans: ${fontValue}system-ui, -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", sans-serif;\n --font-mono: ${monospaceFontValue}ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n }\n${STATIC_CSS}`;\n }, [font, monospaceFont]);\n\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;;AAyBA,MAAMc,cAAsB;CAC1BC,qBAAqB;CACrBC,MAAM;CACNC,YAAY;CACZ,0BAA0B;CAC1B,2BAA2B;CAC3BC,QAAQ;CACRC,SAAS;CACTC,OAAO;CACPC,QAAQ;CACRC,eAAe;CAChB;AAGD,MAAMC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgPnB,SAAOC,aAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAA,EAAArB,YAAAK,MAAAC,kBAA4Ca;CAQ5C,MAAAG,SAAezB,gBAAgBD,UAAU;CAAC,IAAA2B;AAAA,KAAAH,EAAA,OAAApB,cAAAoB,EAAA,OAAAE,QAAA;AAIVC,OAAA;GAAA,GAAKD;GAAM,GAAKd;GAAW,GAAKR;GAAY;AAAAoB,IAAA,KAAApB;AAAAoB,IAAA,KAAAE;AAAAF,IAAA,KAAAG;OAAAA,MAAAH,EAAA;CAA5E,MAAAI,kBAAgCD;CAA6C,IAAAE;AAAA,KAAAL,EAAA,OAAAM,OAAAC,IAAA,4BAAA,EAAA;AAapCF,OAAA,EAAAG,IAAM,sBAAsB;AAAAR,IAAA,KAAAK;OAAAA,MAAAL,EAAA;AAArE1B,iBAAgB,QAAQ8B,iBAAiBC,GAA6B;CAAA,IAAAI;CAAA,IAAAC;AAAA,KAAAV,EAAA,OAAAf,QAAAe,EAAA,OAAAd,eAAA;AAG5DuB,aAAA;AAE6D,UAE9D;;;mBAHWxB,OAAA,GAAUA,KAAI,MAAd,GAMM;mBALGC,gBAAA,GAAmBA,cAAa,MAAhC,GAMM;;EAEnCW;;AACGa,OAAA,CAACzB,MAAMC,cAAc;AAAAc,IAAA,KAAAf;AAAAe,IAAA,KAAAd;AAAAc,IAAA,KAAAS;AAAAT,IAAA,KAAAU;QAAA;AAAAD,OAAAT,EAAA;AAAAU,OAAAV,EAAA;;AAXxBzB,WAAUkC,IAWPC,GAAsB;AAAA,QAElB"}
1
+ {"version":3,"file":"GlobalStyles.js","names":["useGlobalStyles","useRawCSS","getTokens","usePaletteValue","mergeStyleLayers","Styles","GlobalStylesProps","bodyStyles","key","fonts","fontDisplay","publicUrl","font","monospaceFont","applyLegacyTokens","BODY_STYLES","overscrollBehaviorY","fill","fontFamily","margin","padding","color","preset","letterSpacing","STATIC_CSS","GlobalStyles","props","$","_c","tokens","t0","bodyTokenStyles","t1","Symbol","for","id","t2","t3","fontValue","monospaceFontValue"],"sources":["../../src/components/GlobalStyles.tsx"],"sourcesContent":["import { useGlobalStyles, useRawCSS } from '@tenphi/tasty';\n\nimport { getTokens } from '../tokens';\nimport { usePaletteValue } from '../tokens/palette-config';\nimport { mergeStyleLayers } from '../utils/styles';\n\nimport type { Styles } from '@tenphi/tasty';\n\ninterface GlobalStylesProps {\n bodyStyles?: { [key: string]: string };\n fonts?: boolean;\n fontDisplay?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional';\n publicUrl?: string;\n font?: string;\n monospaceFont?: string;\n /** @deprecated Tokens are now always applied via useGlobalStyles */\n applyLegacyTokens?: boolean;\n}\n\n/**\n * Body styles applied via useGlobalStyles.\n *\n * `fill` and `color` use scheme-aware Glaze tokens so the whole page flips\n * automatically when `<html data-scheme=\"dark\">` (or `prefers-color-scheme: dark`)\n * is active — see `src/tokens/palette.ts` and `src/components/Root.tsx`.\n */\nconst BODY_STYLES: Styles = {\n overscrollBehaviorY: 'none',\n fill: '#surface',\n fontFamily: 'var(--font-sans)',\n '-webkit-font-smoothing': 'antialiased',\n '-moz-osx-font-smoothing': 'grayscale',\n margin: 0,\n padding: 0,\n color: '#surface-text-soft',\n preset: 't3',\n letterSpacing: '0.02em',\n};\n\n// Static CSS that doesn't depend on props\nconst STATIC_CSS = `\n @font-face {\n font-family: text-security-disc;\n src: url(data:font/woff2;base64,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) format('woff2');\n }\n\n kbd {\n font-family: var(--c2-font-family);\n font-weight: var(--c2-font-weight);\n font-size: var(--c2-font-size);\n border: var(--border-width) solid var(--dark-04-color);\n background-color: var(--surface-color);\n color: var(--dark-color);\n border-radius: var(--radius);\n padding: 0 var(--outline-width);\n }\n\n :not([data-qa$=\"Icon\"]) > .tabler-icon {\n font-size: var(--icon-size);\n width: 1em;\n height: 1em;\n min-width: 1em;\n min-height: 1em;\n max-height: 1em;\n stroke-width: var(--stroke-width);\n }\n\n .cube-animation-spin {\n animation: cube-animation-spin 1s linear infinite;\n }\n\n @keyframes cube-animation-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n b, strong {\n font-weight: var(--bold-font-weight, 700);\n }\n\n [type=reset], [type=submit], button, html [type=button] {\n -webkit-appearance: none;\n }\n\n code {\n font-family: var(--font-mono);\n }\n\n /*\n * Prism syntax highlighting.\n *\n * All token colors come from the scheme-aware Glaze \\`code-*\\` palette\n * (defined in src/tokens/palette.ts). Each \\`code-*\\` token has \\`mode: 'auto'\\`\n * with a numeric contrast floor of 4.5 against \\`#surface\\` so every token\n * reads at WCAG AA in light AND dark schemes (AAA in high-contrast).\n * Diff insertion / deletion re-use the adaptive \\`success-*\\` and \\`danger-*\\`\n * ramps for both the line bg and the token color.\n */\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n color: var(--surface-text-color);\n background: none;\n font-family: var(--s3-font-family, var(--font-mono));\n text-align: left;\n font-weight: var(--s3-font-weight, 400);\n font-size: var(--s3-font-size, 14px);\n line-height: var(--s3-line-height, 20px);\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n border-radius: 6px;\n border: none;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n pre[class*=\"language-\"]::-moz-selection, pre[class*=\"language-\"] ::-moz-selection,\n code[class*=\"language-\"]::-moz-selection, code[class*=\"language-\"] ::-moz-selection {\n text-shadow: none;\n background: oklch(from var(--primary-color) l c h / .2);\n }\n\n pre[class*=\"language-\"]::selection, pre[class*=\"language-\"] ::selection,\n code[class*=\"language-\"]::selection, code[class*=\"language-\"] ::selection {\n text-shadow: none;\n background: oklch(from var(--primary-color) l c h / .2);\n }\n\n @media print {\n code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n text-shadow: none;\n }\n }\n\n /* Code blocks */\n pre[class*=\"language-\"] {\n overflow: auto;\n }\n\n :not(pre) > code[class*=\"language-\"],\n pre[class*=\"language-\"] {\n background: transparent;\n }\n\n /* Inline code */\n :not(pre) > code[class*=\"language-\"] {\n border-radius: .3em;\n white-space: normal;\n }\n\n /* Diff (re-uses success/danger ramps; both bg and text adapt to scheme) */\n .token.inserted-sign {\n background-color: var(--success-bg-color);\n color: var(--success-text-color);\n }\n\n .token.inserted {\n color: var(--success-text-color);\n }\n\n .token.deleted-sign {\n background-color: var(--danger-bg-color);\n color: var(--danger-text-color);\n }\n\n .token.deleted {\n color: var(--danger-text-color);\n }\n\n /* Comments — subdued gray-ish, AA floor */\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: var(--code-comment-color);\n }\n\n /* Operators / punctuation — subdued purple, AA floor */\n .token.operator,\n .token.punctuation {\n color: var(--code-punctuation-color);\n }\n\n .namespace {\n opacity: .7;\n }\n\n /* Keywords / language constructs — violet */\n .token.boolean,\n .token.constant,\n .token.keyword,\n .token.atrule {\n color: var(--code-keyword-color);\n font-weight: 500;\n }\n\n /* Numbers / numeric entities — orange */\n .token.entity,\n .token.number {\n color: var(--code-number-color);\n }\n\n /* Strings / character literals / URLs — green */\n .token.string,\n .token.char,\n .token.attr-value,\n .token.url,\n .language-css .token.string,\n .style .token.string {\n color: var(--code-string-color);\n }\n\n /* Names: functions, class names, regex, variables — pink/coral */\n .token.function,\n .token.class-name,\n .token.regex,\n .token.important,\n .token.variable {\n color: var(--code-function-color);\n }\n\n /* HTML/XML tag names — same hue as keywords (see Colors / CodeSyntax) */\n .token.tag {\n color: var(--code-keyword-color);\n }\n\n /* Attributes / properties / selectors / built-ins — cyan */\n .token.attr-name,\n .token.property,\n .token.symbol,\n .token.key,\n .token.builtin,\n .token.selector {\n color: var(--code-attribute-color);\n }\n\n /*\n * prism-react-renderer flattens nested markup tokens and prefixes parent\n * types onto each leaf (e.g. \\`token tag attr-value\\`). Re-assert leaf\n * colors so the bare \\`.token.tag\\` rule does not wash the whole tag.\n */\n .token.tag.attr-name {\n color: var(--code-attribute-color);\n }\n\n .token.tag.attr-value {\n color: var(--code-string-color);\n }\n\n .token.tag.punctuation {\n color: var(--code-punctuation-color);\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n`;\n\nexport function GlobalStyles(props: GlobalStylesProps) {\n const { bodyStyles, font, monospaceFont } = props;\n\n // Re-resolve the tokens whenever the palette is re-seeded at runtime (see\n // `src/tokens/palette-config.ts`). Nothing else has to re-render: every color\n // in the kit compiles to `var(--<name>-color)`, so replacing this one rule\n // recolors the whole UI. `getTokens()` returns a new map only when the palette\n // changes, and taking it as the store value makes it the memo's dependency —\n // a version listed in the deps but never read is dropped by React Compiler.\n const tokens = usePaletteValue(getTokens);\n\n // Merge token styles with the base body styles, then the custom ones. Keys\n // are passed through as-is (tasty handles both camelCase and kebab-case).\n const bodyTokenStyles = mergeStyleLayers(tokens, BODY_STYLES, bodyStyles);\n\n // Apply tokens and body styles via useGlobalStyles.\n //\n // Replacement does not depend on the `id`: tasty keys its injection slot on\n // `id ?? selector`, so `'body'` on its own already disposes the previous block\n // before writing the new one — which is what removes stale `@hc` rules when the\n // palette is re-seeded, rather than shadowing them. The `id` buys two other\n // things. It gives the token block its own slot, so a host app calling\n // `useGlobalStyles('body', …)` for its own body styles cannot evict ours (and\n // vice versa) — they would otherwise share the `'body'` slot and dispose each\n // other on every change. And under SSR it makes the collector key stable and\n // last-write-wins, instead of content-hashed and first-write-wins.\n useGlobalStyles('body', bodyTokenStyles, { id: 'cube-ui-kit-tokens' });\n\n // Apply static CSS and font definitions via useRawCSS\n useRawCSS(() => {\n const fontValue = font ? `${font}, ` : '';\n const monospaceFontValue = monospaceFont ? `${monospaceFont}, ` : '';\n\n return `\n html {\n overscroll-behavior-y: none;\n --font-sans: ${fontValue}system-ui, -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, \"Apple Color Emoji\", \"Segoe UI Emoji\", sans-serif;\n --font-mono: ${monospaceFontValue}ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n }\n${STATIC_CSS}`;\n }, [font, monospaceFont]);\n\n return null;\n}\n"],"mappings":";;;;;;;;;;;;;;;AA0BA,MAAMe,cAAsB;CAC1BC,qBAAqB;CACrBC,MAAM;CACNC,YAAY;CACZ,0BAA0B;CAC1B,2BAA2B;CAC3BC,QAAQ;CACRC,SAAS;CACTC,OAAO;CACPC,QAAQ;CACRC,eAAe;CAChB;AAGD,MAAMC,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgPnB,SAAOC,aAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAA,EAAArB,YAAAK,MAAAC,kBAA4Ca;CAQ5C,MAAAG,SAAe1B,gBAAgBD,UAAU;CAAC,IAAA4B;AAAA,KAAAH,EAAA,OAAApB,cAAAoB,EAAA,OAAAE,QAAA;AAIlBC,OAAA1B,iBAAiByB,QAAQd,aAAaR,WAAW;AAAAoB,IAAA,KAAApB;AAAAoB,IAAA,KAAAE;AAAAF,IAAA,KAAAG;OAAAA,MAAAH,EAAA;CAAzE,MAAAI,kBAAwBD;CAAkD,IAAAE;AAAA,KAAAL,EAAA,OAAAM,OAAAC,IAAA,4BAAA,EAAA;AAajCF,OAAA,EAAAG,IAAM,sBAAsB;AAAAR,IAAA,KAAAK;OAAAA,MAAAL,EAAA;AAArE3B,iBAAgB,QAAQ+B,iBAAiBC,GAA6B;CAAA,IAAAI;CAAA,IAAAC;AAAA,KAAAV,EAAA,OAAAf,QAAAe,EAAA,OAAAd,eAAA;AAG5DuB,aAAA;AAE6D,UAE9D;;;mBAHWxB,OAAA,GAAUA,KAAI,MAAd,GAMM;mBALGC,gBAAA,GAAmBA,cAAa,MAAhC,GAMM;;EAEnCW;;AACGa,OAAA,CAACzB,MAAMC,cAAc;AAAAc,IAAA,KAAAf;AAAAe,IAAA,KAAAd;AAAAc,IAAA,KAAAS;AAAAT,IAAA,KAAAU;QAAA;AAAAD,OAAAT,EAAA;AAAAU,OAAAV,EAAA;;AAXxB1B,WAAUmC,IAWPC,GAAsB;AAAA,QAElB"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { useCombinedRefs } from "../utils/react/useCombinedRefs.js";
3
3
  import { filterBaseProps, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef, useCallback, useEffect, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
 
4
4
  //#region src/components/HiddenInput.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../utils/styles.js";
3
3
  import { AMBIENT_PREDEFINED_STATES } from "../utils/react/useScheme.js";
4
4
  import { EventBusProvider } from "../utils/react/useEventBus.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useAction } from "../use-action.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { _Item } from "../../content/Item/Item.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { getDisabledElementProps } from "../../../utils/react/disabledProps.js";
4
4
  import { mergeProps } from "../../../utils/react/mergeProps.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { useSlotProps } from "../../../utils/react/Slots.js";
3
3
  import { Space } from "../../layout/Space.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,5 +1,5 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
2
- import { extractStyles } from "../../../utils/styles.js";
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
+ import { extractStyles, mergeStyleLayers } from "../../../utils/styles.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { ButtonSplitContext } from "./context.js";
5
5
  import { Button } from "../Button/Button.js";
@@ -22,7 +22,7 @@ const ButtonSplitElement = tasty({
22
22
  }
23
23
  });
24
24
  const ButtonSplit = forwardRef(function ButtonSplit(props, ref) {
25
- const $ = c(37);
25
+ const $ = c(49);
26
26
  const { actions, actionKey: controlledActionKey, defaultActionKey, onAction, onActionChange, type, theme, size, isDisabled, actionProps, triggerProps, menuProps, styles, children, role, ...rest } = props;
27
27
  const isControlled = controlledActionKey !== void 0;
28
28
  let t0;
@@ -66,10 +66,7 @@ const ButtonSplit = forwardRef(function ButtonSplit(props, ref) {
66
66
  $[11] = t3;
67
67
  } else t3 = $[11];
68
68
  const handleSelectionChange = t3;
69
- const mergedStyles = {
70
- ...extractStyles(rest, STYLE_PROPS),
71
- ...styles
72
- };
69
+ const mergedStyles = mergeStyleLayers(extractStyles(rest, STYLE_PROPS), styles);
73
70
  let t4;
74
71
  if ($[12] !== currentKey || $[13] !== isDisabled || $[14] !== onAction || $[15] !== onActionChange || $[16] !== size || $[17] !== theme || $[18] !== type) {
75
72
  t4 = {
@@ -92,9 +89,13 @@ const ButtonSplit = forwardRef(function ButtonSplit(props, ref) {
92
89
  } else t4 = $[19];
93
90
  const contextValue = t4;
94
91
  const isCustomMode = children != null;
95
- let t5;
92
+ const t5 = ButtonSplitContext;
93
+ const T0 = ButtonSplitElement;
94
+ const t6 = filterBaseProps(rest, { eventProps: true });
95
+ const t7 = role ?? (isCustomMode ? "group" : void 0);
96
+ let t8;
96
97
  if ($[20] !== actionProps || $[21] !== actions || $[22] !== children || $[23] !== currentAction?.icon || $[24] !== currentAction?.label || $[25] !== currentAction?.tooltip || $[26] !== currentKey || $[27] !== handleActionPress || $[28] !== handleSelectionChange || $[29] !== isCustomMode || $[30] !== isDisabled || $[31] !== menuProps || $[32] !== size || $[33] !== theme || $[34] !== triggerProps || $[35] !== type) {
97
- t5 = isCustomMode ? children : actions ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Button, {
98
+ t8 = isCustomMode ? children : actions ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Button, {
98
99
  type,
99
100
  theme,
100
101
  size,
@@ -137,20 +138,40 @@ const ButtonSplit = forwardRef(function ButtonSplit(props, ref) {
137
138
  $[33] = theme;
138
139
  $[34] = triggerProps;
139
140
  $[35] = type;
140
- $[36] = t5;
141
- } else t5 = $[36];
142
- return /* @__PURE__ */ jsx(ButtonSplitContext.Provider, {
143
- value: contextValue,
144
- children: /* @__PURE__ */ jsx(ButtonSplitElement, {
145
- ...filterBaseProps(rest, { eventProps: true }),
141
+ $[36] = t8;
142
+ } else t8 = $[36];
143
+ let t9;
144
+ if ($[37] !== T0 || $[38] !== mergedStyles || $[39] !== ref || $[40] !== rest.qa || $[41] !== t6 || $[42] !== t7 || $[43] !== t8) {
145
+ t9 = /* @__PURE__ */ jsx(T0, {
146
+ ...t6,
146
147
  ref,
147
148
  "data-button-split": true,
148
149
  styles: mergedStyles,
149
150
  qa: rest.qa,
150
- role: role ?? (isCustomMode ? "group" : void 0),
151
- children: t5
152
- })
153
- });
151
+ role: t7,
152
+ children: t8
153
+ });
154
+ $[37] = T0;
155
+ $[38] = mergedStyles;
156
+ $[39] = ref;
157
+ $[40] = rest.qa;
158
+ $[41] = t6;
159
+ $[42] = t7;
160
+ $[43] = t8;
161
+ $[44] = t9;
162
+ } else t9 = $[44];
163
+ let t10;
164
+ if ($[45] !== contextValue || $[46] !== t5.Provider || $[47] !== t9) {
165
+ t10 = /* @__PURE__ */ jsx(t5.Provider, {
166
+ value: contextValue,
167
+ children: t9
168
+ });
169
+ $[45] = contextValue;
170
+ $[46] = t5.Provider;
171
+ $[47] = t9;
172
+ $[48] = t10;
173
+ } else t10 = $[48];
174
+ return t10;
154
175
  });
155
176
  ButtonSplit.displayName = "ButtonSplit";
156
177
  function _temp(t0) {
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonSplit.js","names":["CONTAINER_STYLES","filterBaseProps","tasty","forwardRef","ReactNode","useMemo","useState","DirectionIcon","mergeProps","extractStyles","Button","Menu","ButtonSplitContext","BaseProps","ContainerStyleProps","Styles","CubeCollectionItemProps","CubeButtonProps","CubeMenuProps","ButtonSplitAction","Omit","key","label","CubeButtonSplitProps","actions","actionKey","defaultActionKey","onAction","onActionChange","type","theme","size","isDisabled","actionProps","Partial","triggerProps","menuProps","styles","children","STYLE_PROPS","ButtonSplitElement","as","qa","display","position","verticalAlign","ButtonSplit","HTMLDivElement","props","ref","$","_c","controlledActionKey","role","rest","isControlled","undefined","t0","uncontrolledKey","setUncontrolledKey","currentKey","t1","find","a","currentAction","t2","handleActionPress","t3","keys","newKey","handleSelectionChange","containerStyles","mergedStyles","t4","contextValue","isCustomMode","t5","icon","tooltip","onPress","_temp","map","_temp2","eventProps","displayName","pressed","textValue","itemProps"],"sources":["../../../../src/components/actions/ButtonSplit/ButtonSplit.tsx"],"sourcesContent":["import { CONTAINER_STYLES, filterBaseProps, tasty } from '@tenphi/tasty';\nimport { forwardRef, ReactNode, useMemo, useState } from 'react';\n\nimport { DirectionIcon } from '../../../icons/DirectionIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { Button } from '../Button/Button';\nimport { Menu } from '../Menu/Menu';\n\nimport { ButtonSplitContext } from './context';\n\nimport type { BaseProps, ContainerStyleProps, Styles } from '@tenphi/tasty';\nimport type { CubeCollectionItemProps } from '../../CollectionItem';\nimport type { CubeButtonProps } from '../Button/Button';\nimport type { CubeMenuProps } from '../Menu/Menu';\n\nexport interface ButtonSplitAction\n extends Omit<\n CubeCollectionItemProps<object>,\n 'children' | 'onAction' | 'wrapper'\n > {\n key: string;\n label: ReactNode;\n}\n\nexport interface CubeButtonSplitProps extends BaseProps, ContainerStyleProps {\n /** Actions for strict mode. When provided, renders action + trigger buttons automatically. */\n actions?: ButtonSplitAction[];\n /** Currently selected action key (controlled). */\n actionKey?: string;\n /** Initially selected action key (uncontrolled). */\n defaultActionKey?: string;\n /** Called when the action button is pressed. Receives the current action key. */\n onAction?: (key: string) => void;\n /** Called when the selected action changes via the trigger menu. */\n onActionChange?: (key: string) => void;\n\n /** Button type applied to both action and trigger buttons in strict mode. */\n type?: CubeButtonProps['type'];\n /** Button theme applied to both action and trigger buttons in strict mode. */\n theme?: CubeButtonProps['theme'];\n /** Button size applied to both action and trigger buttons in strict mode. */\n size?: CubeButtonProps['size'];\n /** Disables both buttons in strict mode. */\n isDisabled?: boolean;\n\n /** Additional props for the action button in strict mode. */\n actionProps?: Partial<CubeButtonProps>;\n /** Additional props for the trigger button in strict mode. */\n triggerProps?: Partial<CubeButtonProps>;\n /** Additional props for the dropdown menu in strict mode. */\n menuProps?: Partial<CubeMenuProps<object>>;\n\n /** Custom styles for the wrapper element. */\n styles?: Styles;\n\n /** Custom mode: render arbitrary Button children. */\n children?: ReactNode;\n}\n\nconst STYLE_PROPS = CONTAINER_STYLES;\n\nconst ButtonSplitElement = tasty({\n as: 'div',\n qa: 'ButtonSplit',\n styles: {\n display: 'inline-flex',\n position: 'relative',\n verticalAlign: 'bottom',\n },\n});\n\nexport const ButtonSplit = forwardRef<HTMLDivElement, CubeButtonSplitProps>(\n function ButtonSplit(props, ref) {\n const {\n actions,\n actionKey: controlledActionKey,\n defaultActionKey,\n onAction,\n onActionChange,\n type,\n theme,\n size,\n isDisabled,\n actionProps,\n triggerProps,\n menuProps,\n styles,\n children,\n role,\n ...rest\n } = props;\n\n const isControlled = controlledActionKey !== undefined;\n const [uncontrolledKey, setUncontrolledKey] = useState(\n () => defaultActionKey ?? actions?.[0]?.key,\n );\n\n const currentKey = isControlled ? controlledActionKey : uncontrolledKey;\n\n const currentAction =\n actions?.find((a) => a.key === currentKey) ?? actions?.[0];\n\n const handleActionPress = () => {\n if (currentKey) {\n onAction?.(currentKey);\n }\n };\n\n const handleSelectionChange = (keys: string[]) => {\n const newKey = keys[0];\n\n if (newKey) {\n if (!isControlled) {\n setUncontrolledKey(newKey);\n }\n\n onActionChange?.(newKey);\n }\n };\n\n const containerStyles = extractStyles(rest, STYLE_PROPS);\n\n const mergedStyles: Styles = {\n ...containerStyles,\n ...styles,\n };\n\n const contextValue = useMemo(\n () => ({\n currentKey,\n onAction,\n onActionChange,\n type,\n theme,\n size,\n isDisabled,\n }),\n [currentKey, onAction, onActionChange, type, theme, size, isDisabled],\n );\n\n const isCustomMode = children != null;\n\n return (\n <ButtonSplitContext.Provider value={contextValue}>\n <ButtonSplitElement\n {...filterBaseProps(rest, { eventProps: true })}\n ref={ref}\n data-button-split\n styles={mergedStyles}\n qa={rest.qa}\n // Custom mode renders peer buttons with no visible group label, which\n // is exactly when a caller needs `aria-label` to land on something the\n // AT will announce. `role` comes from `BaseProps`, so a caller that\n // wants something else — including `presentation` to opt out — just\n // passes it. Strict mode keeps its previous shape.\n role={role ?? (isCustomMode ? 'group' : undefined)}\n >\n {isCustomMode ? (\n children\n ) : actions ? (\n <>\n <Button\n type={type}\n theme={theme}\n size={size}\n isDisabled={isDisabled}\n icon={currentAction?.icon}\n tooltip={currentAction?.tooltip}\n {...mergeProps(actionProps, { onPress: handleActionPress })}\n >\n {currentAction?.label}\n </Button>\n <Menu.Trigger placement=\"bottom end\">\n <Button\n type={type}\n theme={theme}\n size={size}\n isDisabled={isDisabled}\n aria-label=\"More options\"\n icon={({ pressed }) => (\n <DirectionIcon to={pressed ? 'up' : 'down'} />\n )}\n {...triggerProps}\n />\n <Menu\n selectionMode=\"single\"\n selectedKeys={currentKey ? [currentKey] : []}\n onSelectionChange={handleSelectionChange}\n {...menuProps}\n >\n {actions.map(({ key, label, textValue, ...itemProps }) => (\n <Menu.Item\n key={key}\n textValue={\n textValue ?? (typeof label === 'string' ? label : key)\n }\n {...itemProps}\n >\n {label}\n </Menu.Item>\n ))}\n </Menu>\n </Menu.Trigger>\n </>\n ) : null}\n </ButtonSplitElement>\n </ButtonSplitContext.Provider>\n );\n },\n);\n\nButtonSplit.displayName = 'ButtonSplit';\n"],"mappings":";;;;;;;;;;;;;AA4DA,MAAMuC,cAAcvC;AAEpB,MAAMwC,qBAAqBtC,MAAM;CAC/BuC,IAAI;CACJC,IAAI;CACJL,QAAQ;EACNM,SAAS;EACTC,UAAU;EACVC,eAAe;EACjB;CACD,CAAC;AAEF,MAAaC,cAAc3C,WACzB,SAAA2C,YAAAE,OAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CACE,MAAA,EAAA3B,SAAAC,WAAA2B,qBAAA1B,kBAAAC,UAAAC,gBAAAC,MAAAC,OAAAC,MAAAC,YAAAC,aAAAE,cAAAC,WAAAC,QAAAC,UAAAe,MAAA,GAAAC,SAiBIN;CAEJ,MAAAO,eAAqBH,wBAAwBI;CAAU,IAAAC;AAAA,KAAAP,EAAA,OAAA1B,UAAA,IAAAH,OAAA6B,EAAA,OAAAxB,kBAAA;AAErD+B,aAAM/B,oBAAoBF,UAAO,IAAUH;AAAA6B,IAAA,KAAA1B,UAAA,IAAAH;AAAA6B,IAAA,KAAAxB;AAAAwB,IAAA,KAAAO;OAAAA,MAAAP,EAAA;CAD7C,MAAA,CAAAQ,iBAAAC,sBAA8CrD,SAC5CmD,GACD;CAED,MAAAG,aAAmBL,eAAAH,sBAAAM;CAAqD,IAAAG;AAAA,KAAAX,EAAA,OAAA1B,WAAA0B,EAAA,OAAAU,YAAA;AAGtEC,OAAArC,SAAOsC,MAAOC,MAAOA,EAAC1C,QAASuC,WAA2B,IAAZpC,UAAO;AAAK0B,IAAA,KAAA1B;AAAA0B,IAAA,KAAAU;AAAAV,IAAA,KAAAW;OAAAA,MAAAX,EAAA;CAD5D,MAAAc,gBACEH;CAA2D,IAAAI;AAAA,KAAAf,EAAA,OAAAU,cAAAV,EAAA,OAAAvB,UAAA;AAEnCsC,aAAA;AACxB,OAAIL,WACFjC,YAAWiC,WAAW;;AAEzBV,IAAA,KAAAU;AAAAV,IAAA,KAAAvB;AAAAuB,IAAA,KAAAe;OAAAA,MAAAf,EAAA;CAJD,MAAAgB,oBAA0BD;CAIxB,IAAAE;AAAA,KAAAjB,EAAA,OAAAK,gBAAAL,EAAA,QAAAtB,gBAAA;AAE4BuC,QAAAC,SAAA;GAC5B,MAAAC,SAAeD,KAAI;AAEnB,OAAIC,QAAM;AACR,QAAI,CAACd,aACHI,oBAAmBU,OAAO;AAG5BzC,qBAAiByC,OAAO;;;AAE3BnB,IAAA,KAAAK;AAAAL,IAAA,MAAAtB;AAAAsB,IAAA,MAAAiB;OAAAA,MAAAjB,EAAA;CAVD,MAAAoB,wBAA8BH;CAc9B,MAAAK,eAA6B;EAAA,GAFL/D,cAAc6C,MAAMf,YAAY;EAGpC,GACfF;EACJ;CAAC,IAAAoC;AAAA,KAAAvB,EAAA,QAAAU,cAAAV,EAAA,QAAAlB,cAAAkB,EAAA,QAAAvB,YAAAuB,EAAA,QAAAtB,kBAAAsB,EAAA,QAAAnB,QAAAmB,EAAA,QAAApB,SAAAoB,EAAA,QAAArB,MAAA;AAGO4C,OAAA;GAAAb;GAAAjC;GAAAC;GAAAC;GAAAC;GAAAC;GAAAC;GAQN;AAAAkB,IAAA,MAAAU;AAAAV,IAAA,MAAAlB;AAAAkB,IAAA,MAAAvB;AAAAuB,IAAA,MAAAtB;AAAAsB,IAAA,MAAAnB;AAAAmB,IAAA,MAAApB;AAAAoB,IAAA,MAAArB;AAAAqB,IAAA,MAAAuB;OAAAA,MAAAvB,EAAA;CATH,MAAAwB,eACSD;CAYT,MAAAE,eAAqBrC,YAAY;CAAK,IAAAsC;AAAA,KAAA1B,EAAA,QAAAjB,eAAAiB,EAAA,QAAA1B,WAAA0B,EAAA,QAAAZ,YAAAY,EAAA,QAAAc,eAAAa,QAAA3B,EAAA,QAAAc,eAAA1C,SAAA4B,EAAA,QAAAc,eAAAc,WAAA5B,EAAA,QAAAU,cAAAV,EAAA,QAAAgB,qBAAAhB,EAAA,QAAAoB,yBAAApB,EAAA,QAAAyB,gBAAAzB,EAAA,QAAAlB,cAAAkB,EAAA,QAAAd,aAAAc,EAAA,QAAAnB,QAAAmB,EAAA,QAAApB,SAAAoB,EAAA,QAAAf,gBAAAe,EAAA,QAAArB,MAAA;AAiB/B+C,OAAAD,eAAArC,WAEGd,UAAA,8CAEA,oBAAC;GACOK;GACCC;GACDC;GACMC;GACN,MAAAgC,eAAaa;GACV,SAAAb,eAAac;GAAS,GAC3BtE,WAAWyB,aAAa,EAAA8C,SAAWb,mBAAmB,CAAC;aAE1DF,eAAa1C;IAEhB,uBAAA,OAAA;GAAwB,WAAA;cACtB,oBAAC;IACOO;IACCC;IACDC;IACMC;IACD,cAAA;IACL,MAAAgD;IAEL,GACG7C;KAEN,sBAAC;IACe,eAAA;IACA,cAAAyB,aAAA,CAAcA,WAAgB,GAA9B,EAA6B;IACxBU,mBAAAA;IAAqB,GACpClC;cAEHZ,QAAOyD,IAAKC,OAUZ;KAEL;IAAe,IAEX,GA7CJ;AA6CIhC,IAAA,MAAAjB;AAAAiB,IAAA,MAAA1B;AAAA0B,IAAA,MAAAZ;AAAAY,IAAA,MAAAc,eAAAa;AAAA3B,IAAA,MAAAc,eAAA1C;AAAA4B,IAAA,MAAAc,eAAAc;AAAA5B,IAAA,MAAAU;AAAAV,IAAA,MAAAgB;AAAAhB,IAAA,MAAAoB;AAAApB,IAAA,MAAAyB;AAAAzB,IAAA,MAAAlB;AAAAkB,IAAA,MAAAd;AAAAc,IAAA,MAAAnB;AAAAmB,IAAA,MAAApB;AAAAoB,IAAA,MAAAf;AAAAe,IAAA,MAAArB;AAAAqB,IAAA,MAAA0B;OAAAA,MAAA1B,EAAA;AAAA,QA7DZ,oBAAA,mBAAA;EAAoCwB,OAAAA;YAClC,oBAAC;GAAkB,GACbzE,gBAAgBqD,MAAM,EAAA6B,YAAc,MAAM,CAAC;GAC1ClC;GACL,qBAAA;GACQuB,QAAAA;GACJ,IAAAlB,KAAIZ;GAMF,MAAAW,SAASsB,eAAA,UAAAnB;aAEdoB;IAiDL;GAA8B;EAGnC;AAED9B,YAAYsC,cAAc;AA3IxB,SAAAJ,MAAAvB,IAAA;CA2GuB,MAAA,EAAA4B,YAAA5B;AAAW,QAChB,oBAAC,iBAAkB,IAAA4B,UAAA,OAAA,SAA2B;;AA5GhE,SAAAH,OAAAzB,IAAA;CAsH8B,MAAA,EAAApC,KAAAC,OAAAgE,WAAA,GAAAC,cAAA9B;AAAuC,QACnD,oBAAA,OAAA;EAGI,WAAA6B,cAAc,OAAOhE,UAAU,WAAjBA,QAAAD;EAAwC,GAEpDkE;YAEHjE;IANID,IAOK"}
1
+ {"version":3,"file":"ButtonSplit.js","names":["CONTAINER_STYLES","filterBaseProps","tasty","forwardRef","ReactNode","useMemo","useState","DirectionIcon","mergeProps","extractStyles","mergeStyleLayers","Button","Menu","ButtonSplitContext","BaseProps","ContainerStyleProps","Styles","CubeCollectionItemProps","CubeButtonProps","CubeMenuProps","ButtonSplitAction","Omit","key","label","CubeButtonSplitProps","actions","actionKey","defaultActionKey","onAction","onActionChange","type","theme","size","isDisabled","actionProps","Partial","triggerProps","menuProps","styles","children","STYLE_PROPS","ButtonSplitElement","as","qa","display","position","verticalAlign","ButtonSplit","HTMLDivElement","props","ref","$","_c","controlledActionKey","role","rest","isControlled","undefined","t0","uncontrolledKey","setUncontrolledKey","currentKey","t1","find","a","currentAction","t2","handleActionPress","t3","keys","newKey","handleSelectionChange","containerStyles","mergedStyles","t4","contextValue","isCustomMode","t5","T0","t6","eventProps","t7","t8","icon","tooltip","onPress","_temp","map","_temp2","t9","t10","Provider","displayName","pressed","textValue","itemProps"],"sources":["../../../../src/components/actions/ButtonSplit/ButtonSplit.tsx"],"sourcesContent":["import { CONTAINER_STYLES, filterBaseProps, tasty } from '@tenphi/tasty';\nimport { forwardRef, ReactNode, useMemo, useState } from 'react';\n\nimport { DirectionIcon } from '../../../icons/DirectionIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { extractStyles, mergeStyleLayers } from '../../../utils/styles';\nimport { Button } from '../Button/Button';\nimport { Menu } from '../Menu/Menu';\n\nimport { ButtonSplitContext } from './context';\n\nimport type { BaseProps, ContainerStyleProps, Styles } from '@tenphi/tasty';\nimport type { CubeCollectionItemProps } from '../../CollectionItem';\nimport type { CubeButtonProps } from '../Button/Button';\nimport type { CubeMenuProps } from '../Menu/Menu';\n\nexport interface ButtonSplitAction\n extends Omit<\n CubeCollectionItemProps<object>,\n 'children' | 'onAction' | 'wrapper'\n > {\n key: string;\n label: ReactNode;\n}\n\nexport interface CubeButtonSplitProps extends BaseProps, ContainerStyleProps {\n /** Actions for strict mode. When provided, renders action + trigger buttons automatically. */\n actions?: ButtonSplitAction[];\n /** Currently selected action key (controlled). */\n actionKey?: string;\n /** Initially selected action key (uncontrolled). */\n defaultActionKey?: string;\n /** Called when the action button is pressed. Receives the current action key. */\n onAction?: (key: string) => void;\n /** Called when the selected action changes via the trigger menu. */\n onActionChange?: (key: string) => void;\n\n /** Button type applied to both action and trigger buttons in strict mode. */\n type?: CubeButtonProps['type'];\n /** Button theme applied to both action and trigger buttons in strict mode. */\n theme?: CubeButtonProps['theme'];\n /** Button size applied to both action and trigger buttons in strict mode. */\n size?: CubeButtonProps['size'];\n /** Disables both buttons in strict mode. */\n isDisabled?: boolean;\n\n /** Additional props for the action button in strict mode. */\n actionProps?: Partial<CubeButtonProps>;\n /** Additional props for the trigger button in strict mode. */\n triggerProps?: Partial<CubeButtonProps>;\n /** Additional props for the dropdown menu in strict mode. */\n menuProps?: Partial<CubeMenuProps<object>>;\n\n /** Custom styles for the wrapper element. */\n styles?: Styles;\n\n /** Custom mode: render arbitrary Button children. */\n children?: ReactNode;\n}\n\nconst STYLE_PROPS = CONTAINER_STYLES;\n\nconst ButtonSplitElement = tasty({\n as: 'div',\n qa: 'ButtonSplit',\n styles: {\n display: 'inline-flex',\n position: 'relative',\n verticalAlign: 'bottom',\n },\n});\n\nexport const ButtonSplit = forwardRef<HTMLDivElement, CubeButtonSplitProps>(\n function ButtonSplit(props, ref) {\n const {\n actions,\n actionKey: controlledActionKey,\n defaultActionKey,\n onAction,\n onActionChange,\n type,\n theme,\n size,\n isDisabled,\n actionProps,\n triggerProps,\n menuProps,\n styles,\n children,\n role,\n ...rest\n } = props;\n\n const isControlled = controlledActionKey !== undefined;\n const [uncontrolledKey, setUncontrolledKey] = useState(\n () => defaultActionKey ?? actions?.[0]?.key,\n );\n\n const currentKey = isControlled ? controlledActionKey : uncontrolledKey;\n\n const currentAction =\n actions?.find((a) => a.key === currentKey) ?? actions?.[0];\n\n const handleActionPress = () => {\n if (currentKey) {\n onAction?.(currentKey);\n }\n };\n\n const handleSelectionChange = (keys: string[]) => {\n const newKey = keys[0];\n\n if (newKey) {\n if (!isControlled) {\n setUncontrolledKey(newKey);\n }\n\n onActionChange?.(newKey);\n }\n };\n\n const containerStyles = extractStyles(rest, STYLE_PROPS);\n\n const mergedStyles = mergeStyleLayers(containerStyles, styles);\n\n const contextValue = useMemo(\n () => ({\n currentKey,\n onAction,\n onActionChange,\n type,\n theme,\n size,\n isDisabled,\n }),\n [currentKey, onAction, onActionChange, type, theme, size, isDisabled],\n );\n\n const isCustomMode = children != null;\n\n return (\n <ButtonSplitContext.Provider value={contextValue}>\n <ButtonSplitElement\n {...filterBaseProps(rest, { eventProps: true })}\n ref={ref}\n data-button-split\n styles={mergedStyles}\n qa={rest.qa}\n // Custom mode renders peer buttons with no visible group label, which\n // is exactly when a caller needs `aria-label` to land on something the\n // AT will announce. `role` comes from `BaseProps`, so a caller that\n // wants something else — including `presentation` to opt out — just\n // passes it. Strict mode keeps its previous shape.\n role={role ?? (isCustomMode ? 'group' : undefined)}\n >\n {isCustomMode ? (\n children\n ) : actions ? (\n <>\n <Button\n type={type}\n theme={theme}\n size={size}\n isDisabled={isDisabled}\n icon={currentAction?.icon}\n tooltip={currentAction?.tooltip}\n {...mergeProps(actionProps, { onPress: handleActionPress })}\n >\n {currentAction?.label}\n </Button>\n <Menu.Trigger placement=\"bottom end\">\n <Button\n type={type}\n theme={theme}\n size={size}\n isDisabled={isDisabled}\n aria-label=\"More options\"\n icon={({ pressed }) => (\n <DirectionIcon to={pressed ? 'up' : 'down'} />\n )}\n {...triggerProps}\n />\n <Menu\n selectionMode=\"single\"\n selectedKeys={currentKey ? [currentKey] : []}\n onSelectionChange={handleSelectionChange}\n {...menuProps}\n >\n {actions.map(({ key, label, textValue, ...itemProps }) => (\n <Menu.Item\n key={key}\n textValue={\n textValue ?? (typeof label === 'string' ? label : key)\n }\n {...itemProps}\n >\n {label}\n </Menu.Item>\n ))}\n </Menu>\n </Menu.Trigger>\n </>\n ) : null}\n </ButtonSplitElement>\n </ButtonSplitContext.Provider>\n );\n },\n);\n\nButtonSplit.displayName = 'ButtonSplit';\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/actions/ButtonSplit/context.ts
@@ -1,5 +1,5 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
2
- import { extractStyles } from "../../../utils/styles.js";
1
+ /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
2
+ import { extractStyles, mergeStyleLayers } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { LoadingIcon } from "../../../icons/LoadingIcon.js";
5
5
  import { _CollectionItem } from "../../CollectionItem.js";
@@ -292,16 +292,13 @@ function CommandMenu(props, ref) {
292
292
  } else t24 = $[41];
293
293
  const t25 = t24;
294
294
  const t26 = qa || "CommandMenu";
295
- const t27 = mergeProps$1(extractedStyles, styles);
295
+ const t27 = mergeStyleLayers(extractedStyles, styles);
296
296
  let t28;
297
297
  if ($[42] !== header || $[43] !== headerStyles || $[44] !== size) {
298
298
  t28 = header && /* @__PURE__ */ jsx(StyledHeader, {
299
299
  role: "presentation",
300
300
  "data-size": size,
301
- styles: {
302
- border: "none",
303
- ...headerStyles
304
- },
301
+ styles: mergeStyleLayers({ border: "none" }, headerStyles),
305
302
  children: header
306
303
  });
307
304
  $[42] = header;