@cube-dev/ui-kit 0.183.0 → 0.185.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 (681) hide show
  1. package/README.md +1 -1
  2. package/dist/CHANGELOG.md +64 -0
  3. package/dist/README.md +1 -1
  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 +19 -18
  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 +2 -1
  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 +1 -8
  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/ItemActionContext.js +1 -1
  31. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  32. package/dist/components/actions/ItemButton/ItemButton.js +3 -1
  33. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  34. package/dist/components/actions/Link/Link.js +1 -1
  35. package/dist/components/actions/Menu/Menu.js +1 -1
  36. package/dist/components/actions/Menu/Menu.js.map +1 -1
  37. package/dist/components/actions/Menu/MenuItem.js +19 -15
  38. package/dist/components/actions/Menu/MenuItem.js.map +1 -1
  39. package/dist/components/actions/Menu/MenuSection.js +1 -8
  40. package/dist/components/actions/Menu/MenuSection.js.map +1 -1
  41. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  42. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -7
  43. package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
  44. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  45. package/dist/components/actions/Menu/context.js +1 -1
  46. package/dist/components/actions/Menu/styled.js +1 -1
  47. package/dist/components/actions/actions-run.js +1 -1
  48. package/dist/components/actions/index.js +1 -1
  49. package/dist/components/actions/use-action.js +3 -5
  50. package/dist/components/actions/use-action.js.map +1 -1
  51. package/dist/components/actions/use-anchored-menu.js +1 -1
  52. package/dist/components/actions/use-context-menu.js +1 -1
  53. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  54. package/dist/components/content/Alert/Alert.js +1 -1
  55. package/dist/components/content/Alert/use-alert.js +1 -1
  56. package/dist/components/content/Avatar/Avatar.js +1 -1
  57. package/dist/components/content/Badge/Badge.js +1 -1
  58. package/dist/components/content/Card/Card.js +1 -1
  59. package/dist/components/content/Content.js +2 -1
  60. package/dist/components/content/Content.js.map +1 -1
  61. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  62. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  63. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  64. package/dist/components/content/Divider.js +1 -1
  65. package/dist/components/content/Footer.js +1 -1
  66. package/dist/components/content/Header.js +1 -1
  67. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  68. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  69. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  70. package/dist/components/content/Item/Item.d.ts +27 -2
  71. package/dist/components/content/Item/Item.js +242 -233
  72. package/dist/components/content/Item/Item.js.map +1 -1
  73. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  74. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  75. package/dist/components/content/Layout/GridLayout.js +1 -1
  76. package/dist/components/content/Layout/Layout.js +1 -1
  77. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  78. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  79. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  80. package/dist/components/content/Layout/LayoutContent.js +1 -1
  81. package/dist/components/content/Layout/LayoutContext.js +1 -1
  82. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  83. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  84. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  85. package/dist/components/content/Layout/LayoutHeader.js +123 -118
  86. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  87. package/dist/components/content/Layout/LayoutPane.js +1 -1
  88. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  89. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  90. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  91. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  92. package/dist/components/content/Layout/index.js +1 -1
  93. package/dist/components/content/Layout/utils.js +1 -1
  94. package/dist/components/content/Paragraph.js +1 -1
  95. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  96. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  97. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  98. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  99. package/dist/components/content/Result/Result.js +1 -1
  100. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  101. package/dist/components/content/Tag/Tag.d.ts +6 -1
  102. package/dist/components/content/Tag/Tag.js +1 -1
  103. package/dist/components/content/Tag/Tag.js.map +1 -1
  104. package/dist/components/content/Text.d.ts +14 -14
  105. package/dist/components/content/Text.js +1 -1
  106. package/dist/components/content/TextItem/TextItem.js +1 -1
  107. package/dist/components/content/Title.js +1 -1
  108. package/dist/components/content/Tree/Tree.js +1 -1
  109. package/dist/components/content/Tree/TreeNode.js +1 -1
  110. package/dist/components/content/Tree/styled.js +1 -1
  111. package/dist/components/content/Tree/tree-index.js +1 -1
  112. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  113. package/dist/components/content/Tree/use-load-data.js +1 -1
  114. package/dist/components/content/highlightText.js +1 -1
  115. package/dist/components/content/use-auto-tooltip.d.ts +1 -1
  116. package/dist/components/content/use-auto-tooltip.js +248 -128
  117. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  118. package/dist/components/data/DataTable/DataTable.js +1 -1
  119. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  120. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  121. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  122. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  123. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  124. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  125. package/dist/components/data/TableBase/RowCollection.js +1 -1
  126. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  127. package/dist/components/data/TableBase/TableRow.js +1 -1
  128. package/dist/components/data/TableBase/TableView.js +1 -1
  129. package/dist/components/data/TableBase/column-menu.js +1 -1
  130. package/dist/components/data/TableBase/column-tint.js +1 -1
  131. package/dist/components/data/TableBase/row-menu.js +1 -1
  132. package/dist/components/data/TableBase/styled.d.ts +1 -0
  133. package/dist/components/data/TableBase/styled.js +1 -1
  134. package/dist/components/data/TableBase/table-tree.js +1 -1
  135. package/dist/components/data/TableBase/types.js +1 -1
  136. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  137. package/dist/components/data/TableBase/use-column-order.js +1 -1
  138. package/dist/components/data/TableBase/use-container-width.js +1 -1
  139. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  140. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  141. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  142. package/dist/components/data/TableBase/use-table-search.js +1 -1
  143. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  144. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  145. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  146. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  147. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  148. package/dist/components/fields/Checkbox/Checkbox.d.ts +8 -0
  149. package/dist/components/fields/Checkbox/Checkbox.js +58 -39
  150. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  151. package/dist/components/fields/Checkbox/CheckboxGroup.js +2 -2
  152. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  153. package/dist/components/fields/Checkbox/context.js +1 -1
  154. package/dist/components/fields/ColorInput/ColorInput.d.ts +17 -1
  155. package/dist/components/fields/ColorInput/ColorInput.js +137 -134
  156. package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
  157. package/dist/components/fields/ColorPicker/ColorPicker.d.ts +18 -2
  158. package/dist/components/fields/ColorPicker/ColorPicker.js +4 -3
  159. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  160. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  161. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  162. package/dist/components/fields/ComboBox/ComboBox.js +90 -43
  163. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  164. package/dist/components/fields/CommandTextArea/CommandTextArea.js +3 -2
  165. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  166. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  167. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  168. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  169. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  170. package/dist/components/fields/DatePicker/DatePicker.d.ts +17 -1
  171. package/dist/components/fields/DatePicker/DatePicker.js +81 -77
  172. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  173. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  174. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  175. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  176. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  177. package/dist/components/fields/DatePicker/DateRangePicker.d.ts +17 -2
  178. package/dist/components/fields/DatePicker/DateRangePicker.js +109 -105
  179. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  180. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.d.ts +17 -2
  181. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +228 -220
  182. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  183. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  184. package/dist/components/fields/DatePicker/PeriodPicker.d.ts +17 -1
  185. package/dist/components/fields/DatePicker/PeriodPicker.js +89 -85
  186. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  187. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  188. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  189. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  190. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  191. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  192. package/dist/components/fields/DatePicker/period.js +1 -1
  193. package/dist/components/fields/DatePicker/props.js +1 -1
  194. package/dist/components/fields/DatePicker/utils.js +1 -1
  195. package/dist/components/fields/FileInput/FileInput.js +1 -1
  196. package/dist/components/fields/FilterListBox/FilterListBox.js +28 -18
  197. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  198. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +11 -2
  199. package/dist/components/fields/FilterPicker/FilterPicker.js +3 -2
  200. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  201. package/dist/components/fields/Input/Input.js +1 -1
  202. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  203. package/dist/components/fields/ListBox/ListBox.d.ts +2 -2
  204. package/dist/components/fields/ListBox/ListBox.js +1 -2
  205. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  206. package/dist/components/fields/ListBox/optionId.js +16 -0
  207. package/dist/components/fields/ListBox/optionId.js.map +1 -0
  208. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +120 -110
  209. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  210. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  211. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +44 -22
  212. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
  213. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  214. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  215. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  216. package/dist/components/fields/Picker/Picker.d.ts +20 -3
  217. package/dist/components/fields/Picker/Picker.js +4 -3
  218. package/dist/components/fields/Picker/Picker.js.map +1 -1
  219. package/dist/components/fields/RadioGroup/Radio.d.ts +10 -2
  220. package/dist/components/fields/RadioGroup/Radio.js +215 -213
  221. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  222. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  223. package/dist/components/fields/RadioGroup/context.js +1 -1
  224. package/dist/components/fields/SearchComboBox/SearchComboBox.js +3 -2
  225. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  226. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  227. package/dist/components/fields/Select/Select.d.ts +24 -3
  228. package/dist/components/fields/Select/Select.js +8 -5
  229. package/dist/components/fields/Select/Select.js.map +1 -1
  230. package/dist/components/fields/Slider/Gradation.js +1 -1
  231. package/dist/components/fields/Slider/HueSlider.js +1 -1
  232. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  233. package/dist/components/fields/Slider/Slider.js +1 -1
  234. package/dist/components/fields/Slider/SliderBase.js +1 -1
  235. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  236. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  237. package/dist/components/fields/Slider/elements.js +1 -1
  238. package/dist/components/fields/Slider/index.js +1 -1
  239. package/dist/components/fields/Switch/Switch.js +1 -1
  240. package/dist/components/fields/TagInput/TagInput.d.ts +182 -0
  241. package/dist/components/fields/TagInput/TagInput.js +1856 -0
  242. package/dist/components/fields/TagInput/TagInput.js.map +1 -0
  243. package/dist/components/fields/TagInput/TagList.js +355 -0
  244. package/dist/components/fields/TagInput/TagList.js.map +1 -0
  245. package/dist/components/fields/TagInput/index.d.ts +2 -0
  246. package/dist/components/fields/TextArea/TextArea.js +1 -1
  247. package/dist/components/fields/TextInput/TextInput.js +1 -1
  248. package/dist/components/fields/TextInput/TextInputBase.d.ts +6 -0
  249. package/dist/components/fields/TextInput/TextInputBase.js +8 -6
  250. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  251. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  252. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  253. package/dist/components/fields/TriggerActions.js +1 -1
  254. package/dist/components/fields/color/ColorPanel.js +1 -1
  255. package/dist/components/fields/color/channels.js +1 -1
  256. package/dist/components/fields/color/color.js +1 -1
  257. package/dist/components/fields/color/context.js +1 -1
  258. package/dist/components/fields/index.d.ts +2 -0
  259. package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +1 -1
  260. package/dist/components/form/FieldWrapper/FieldWrapper.js +23 -10
  261. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  262. package/dist/components/form/FieldWrapper/types.d.ts +1 -1
  263. package/dist/components/form/Form/Field.js +6 -4
  264. package/dist/components/form/Form/Field.js.map +1 -1
  265. package/dist/components/form/Form/Form.js +20 -5
  266. package/dist/components/form/Form/Form.js.map +1 -1
  267. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  268. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  269. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  270. package/dist/components/form/Form/SubmitError.js +1 -1
  271. package/dist/components/form/Form/backend.js +1 -1
  272. package/dist/components/form/Form/index.js +1 -1
  273. package/dist/components/form/Form/modern/actions.js +1 -1
  274. package/dist/components/form/Form/modern/context.js +1 -1
  275. package/dist/components/form/Form/modern/controller.js +1 -1
  276. package/dist/components/form/Form/modern/field-binding.js +1 -1
  277. package/dist/components/form/Form/modern/field.js +1 -1
  278. package/dist/components/form/Form/modern/react.js +1 -1
  279. package/dist/components/form/Form/modern/store.js +1 -1
  280. package/dist/components/form/Form/modern/validation.js +1 -1
  281. package/dist/components/form/Form/modern/values.js +1 -1
  282. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  283. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  284. package/dist/components/form/Form/use-field/use-field.js +1 -1
  285. package/dist/components/form/Form/use-form.js +1 -1
  286. package/dist/components/form/Form/validation.js +1 -1
  287. package/dist/components/form/Label.js +1 -1
  288. package/dist/components/form/legacy-tooltip.js +28 -0
  289. package/dist/components/form/legacy-tooltip.js.map +1 -0
  290. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  291. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  292. package/dist/components/form/validation/use-validation-props.js +1 -1
  293. package/dist/components/form/wrapper.js +5 -3
  294. package/dist/components/form/wrapper.js.map +1 -1
  295. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  296. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  297. package/dist/components/layout/Board/Board.js +1 -1
  298. package/dist/components/layout/Board/BoardProvider.js +1 -1
  299. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  300. package/dist/components/layout/Board/Widget.js +1 -1
  301. package/dist/components/layout/Board/WidgetHost.js +1 -1
  302. package/dist/components/layout/Board/board-context.js +1 -1
  303. package/dist/components/layout/Board/board-store.js +1 -1
  304. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  305. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  306. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  307. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  308. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  309. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  310. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  311. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  312. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  313. package/dist/components/layout/Board/index.js +1 -1
  314. package/dist/components/layout/Board/responsive-utils.js +1 -1
  315. package/dist/components/layout/Board/use-board-layout.js +1 -1
  316. package/dist/components/layout/Board/use-board-registry.js +1 -1
  317. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  318. package/dist/components/layout/Board/use-board-selection.js +1 -1
  319. package/dist/components/layout/Flex.js +1 -1
  320. package/dist/components/layout/Flow.js +1 -1
  321. package/dist/components/layout/Grid.js +1 -1
  322. package/dist/components/layout/Panel.js +1 -1
  323. package/dist/components/layout/Prefix.js +1 -1
  324. package/dist/components/layout/ResizablePanel.js +1 -1
  325. package/dist/components/layout/Space.js +1 -1
  326. package/dist/components/layout/Suffix.js +1 -1
  327. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  328. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  329. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  330. package/dist/components/navigation/Tabs/TabButton.js +131 -110
  331. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  332. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  333. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  334. package/dist/components/navigation/Tabs/TabPicker.js +2 -1
  335. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  336. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  337. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  338. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  339. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  340. package/dist/components/navigation/Tabs/styled.js +2 -2
  341. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  342. package/dist/components/navigation/Tabs/types.js +1 -1
  343. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  344. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  345. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  346. package/dist/components/other/Calendar/Calendar.js +1 -1
  347. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  348. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  349. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  350. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  351. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  352. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  353. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  354. package/dist/components/other/Calendar/styled.js +1 -1
  355. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  356. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  357. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  358. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  359. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  360. package/dist/components/overlays/Dialog/Dialog.js +18 -9
  361. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  362. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  363. package/dist/components/overlays/Dialog/DialogForm.js +6 -5
  364. package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
  365. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  366. package/dist/components/overlays/Dialog/ModernDialogForm.js +71 -64
  367. package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -1
  368. package/dist/components/overlays/Dialog/context.js +1 -1
  369. package/dist/components/overlays/Dialog/use-content-overflow.js +68 -0
  370. package/dist/components/overlays/Dialog/use-content-overflow.js.map +1 -0
  371. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  372. package/dist/components/overlays/Modal/Modal.js +1 -1
  373. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  374. package/dist/components/overlays/Modal/Overlay.js +1 -1
  375. package/dist/components/overlays/Modal/Popover.js +1 -1
  376. package/dist/components/overlays/Modal/Tray.js +1 -1
  377. package/dist/components/overlays/Modal/Underlay.js +1 -1
  378. package/dist/components/overlays/Notifications/Notification.js +1 -1
  379. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  380. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  381. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  382. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  383. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  384. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  385. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  386. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  387. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  388. package/dist/components/overlays/Notifications/index.js +1 -1
  389. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  390. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  391. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  392. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  393. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  394. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  395. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  396. package/dist/components/overlays/Toast/index.js +1 -1
  397. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  398. package/dist/components/overlays/Toast/useToast.js +1 -1
  399. package/dist/components/overlays/Tooltip/Tooltip.js +14 -12
  400. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  401. package/dist/components/overlays/Tooltip/TooltipProvider.d.ts +6 -0
  402. package/dist/components/overlays/Tooltip/TooltipProvider.js +43 -38
  403. package/dist/components/overlays/Tooltip/TooltipProvider.js.map +1 -1
  404. package/dist/components/overlays/Tooltip/TooltipTrigger.js +72 -69
  405. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  406. package/dist/components/overlays/Tooltip/context.js +1 -1
  407. package/dist/components/overlays/Tooltip/split-trigger-props.d.ts +16 -0
  408. package/dist/components/overlays/Tooltip/split-trigger-props.js +54 -0
  409. package/dist/components/overlays/Tooltip/split-trigger-props.js.map +1 -0
  410. package/dist/components/portal/Portal.js +1 -1
  411. package/dist/components/portal/PortalProvider.js +1 -1
  412. package/dist/components/portal/usePortal.js +1 -1
  413. package/dist/components/shared/DraggableCollection.js +1 -1
  414. package/dist/components/shared/InvalidIcon.js +1 -1
  415. package/dist/components/shared/ValidIcon.js +1 -1
  416. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  417. package/dist/components/status/Spin/Cube.js +1 -1
  418. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  419. package/dist/components/status/Spin/Spin.js +1 -1
  420. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  421. package/dist/data/item-themes.d.ts +1 -1
  422. package/dist/data/item-themes.js +7 -1
  423. package/dist/data/item-themes.js.map +1 -1
  424. package/dist/data/themes.js +1 -1
  425. package/dist/eslint-plugin/defaults.generated.js +47 -1
  426. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  427. package/dist/eslint-plugin/index.js +1 -1
  428. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  429. package/dist/i18n/I18nProvider.js +1 -1
  430. package/dist/i18n/createFormatter.js +1 -1
  431. package/dist/i18n/index.js +1 -1
  432. package/dist/i18n/instance.js +1 -1
  433. package/dist/i18n/locales/de-DE/uikit.js +18 -1
  434. package/dist/i18n/locales/en-US/uikit.js +18 -1
  435. package/dist/i18n/locales/en-US/uikit.json.d.ts +22 -2
  436. package/dist/i18n/locales/es-ES/uikit.js +18 -1
  437. package/dist/i18n/locales/es-MX/uikit.js +18 -1
  438. package/dist/i18n/locales/fr-FR/uikit.js +18 -1
  439. package/dist/i18n/locales/it-IT/uikit.js +18 -1
  440. package/dist/i18n/locales/ja-JP/uikit.js +18 -1
  441. package/dist/i18n/locales/nb-NO/uikit.js +18 -1
  442. package/dist/i18n/locales/pt-BR/uikit.js +18 -1
  443. package/dist/i18n/locales/pt-PT/uikit.js +18 -1
  444. package/dist/i18n/locales/sv-SE/uikit.js +18 -1
  445. package/dist/i18n/locales/vi-VN/uikit.js +18 -1
  446. package/dist/i18n/locales.js +1 -1
  447. package/dist/i18n/useFormatter.js +1 -1
  448. package/dist/i18n/useI18n.js +1 -1
  449. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  450. package/dist/icons/AdjustmentsIcon.js +1 -1
  451. package/dist/icons/AiIcon.js +1 -1
  452. package/dist/icons/AreaChartIcon.js +1 -1
  453. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  454. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  455. package/dist/icons/BackwardIcon.js +1 -1
  456. package/dist/icons/BarChartIcon.js +1 -1
  457. package/dist/icons/BellFilledIcon.js +1 -1
  458. package/dist/icons/BellIcon.js +1 -1
  459. package/dist/icons/BooleanIcon.js +1 -1
  460. package/dist/icons/CalendarEditIcon.js +1 -1
  461. package/dist/icons/CalendarIcon.js +1 -1
  462. package/dist/icons/CaretDownIcon.js +1 -1
  463. package/dist/icons/CaretUpIcon.js +1 -1
  464. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  465. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  466. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  467. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  468. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  469. package/dist/icons/ChartBarLineIcon.js +1 -1
  470. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  471. package/dist/icons/ChartBarStackedIcon.js +1 -1
  472. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  473. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  474. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  475. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  476. package/dist/icons/ChartBubbleIcon.js +1 -1
  477. package/dist/icons/ChartDonut2Icon.js +1 -1
  478. package/dist/icons/ChartFunnelIcon.js +1 -1
  479. package/dist/icons/ChartHeatmapIcon.js +1 -1
  480. package/dist/icons/ChartKPIIcon.js +1 -1
  481. package/dist/icons/ChartPie2Icon.js +1 -1
  482. package/dist/icons/ChartScatterIcon.js +1 -1
  483. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  484. package/dist/icons/CheckCircleIcon.js +1 -1
  485. package/dist/icons/CheckIcon.js +1 -1
  486. package/dist/icons/CircleFilledIcon.js +1 -1
  487. package/dist/icons/ClearIcon.js +1 -1
  488. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  489. package/dist/icons/CloseCircleIcon.js +1 -1
  490. package/dist/icons/CloseIcon.js +1 -1
  491. package/dist/icons/CodeIcon.js +1 -1
  492. package/dist/icons/ColumnTotalIcon.js +1 -1
  493. package/dist/icons/CopyIcon.js +1 -1
  494. package/dist/icons/CountIcon.js +1 -1
  495. package/dist/icons/CubeIcon.js +1 -1
  496. package/dist/icons/CubePauseIcon.js +1 -1
  497. package/dist/icons/CubePlayIcon.js +1 -1
  498. package/dist/icons/CurrencyDollarIcon.js +1 -1
  499. package/dist/icons/DangerIcon.js +1 -1
  500. package/dist/icons/DashboardIcon.js +1 -1
  501. package/dist/icons/DatabaseIcon.js +1 -1
  502. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  503. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  504. package/dist/icons/DirectionIcon.js +1 -1
  505. package/dist/icons/DonutIcon.js +1 -1
  506. package/dist/icons/DownIcon.js +1 -1
  507. package/dist/icons/EditIcon.js +1 -1
  508. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  509. package/dist/icons/ExclamationCircleIcon.js +1 -1
  510. package/dist/icons/ExclamationIcon.js +1 -1
  511. package/dist/icons/EyeIcon.js +1 -1
  512. package/dist/icons/EyeInvisibleIcon.js +1 -1
  513. package/dist/icons/FilterIcon.js +1 -1
  514. package/dist/icons/FolderFilledIcon.js +1 -1
  515. package/dist/icons/FolderIcon.js +1 -1
  516. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  517. package/dist/icons/FolderOpenIcon.js +1 -1
  518. package/dist/icons/ForwardIcon.js +1 -1
  519. package/dist/icons/GripVerticalIcon.js +1 -1
  520. package/dist/icons/HierarchyIcon.js +1 -1
  521. package/dist/icons/HierarchyOpenIcon.js +1 -1
  522. package/dist/icons/Icon.js +1 -1
  523. package/dist/icons/InfoCircleIcon.js +1 -1
  524. package/dist/icons/InfoIcon.js +1 -1
  525. package/dist/icons/KeyIcon.js +1 -1
  526. package/dist/icons/LeftIcon.js +1 -1
  527. package/dist/icons/LineChartIcon.js +1 -1
  528. package/dist/icons/LoadingIcon.js +1 -1
  529. package/dist/icons/LockFilledIcon.js +1 -1
  530. package/dist/icons/LockIcon.js +1 -1
  531. package/dist/icons/MoreIcon.js +1 -1
  532. package/dist/icons/NotAllowedIcon.js +1 -1
  533. package/dist/icons/Number123Icon.js +1 -1
  534. package/dist/icons/NumberIcon.js +1 -1
  535. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  536. package/dist/icons/PauseCircleIcon.js +1 -1
  537. package/dist/icons/PauseIcon.js +1 -1
  538. package/dist/icons/PercentageIcon.js +1 -1
  539. package/dist/icons/PieChartIcon.js +1 -1
  540. package/dist/icons/PipetteIcon.js +1 -1
  541. package/dist/icons/PlayCircleIcon.js +1 -1
  542. package/dist/icons/PlayIcon.js +1 -1
  543. package/dist/icons/PlusIcon.js +1 -1
  544. package/dist/icons/ProgressBarIcon.js +1 -1
  545. package/dist/icons/ReloadIcon.js +1 -1
  546. package/dist/icons/ReportIcon.js +1 -1
  547. package/dist/icons/ReturnIcon.js +1 -1
  548. package/dist/icons/RightIcon.js +1 -1
  549. package/dist/icons/RowTotalsIcon.js +1 -1
  550. package/dist/icons/SchemeIcon.js +1 -1
  551. package/dist/icons/SearchIcon.js +1 -1
  552. package/dist/icons/SemanticQueryIcon.js +1 -1
  553. package/dist/icons/SettingsIcon.js +1 -1
  554. package/dist/icons/ShieldFilledIcon.js +1 -1
  555. package/dist/icons/ShieldIcon.js +1 -1
  556. package/dist/icons/SlashIcon.js +1 -1
  557. package/dist/icons/SparklesIcon.js +1 -1
  558. package/dist/icons/SqlIcon.js +1 -1
  559. package/dist/icons/StatsIcon.js +1 -1
  560. package/dist/icons/StopIcon.js +1 -1
  561. package/dist/icons/StringIcon.js +1 -1
  562. package/dist/icons/SubtotalsIcon.js +1 -1
  563. package/dist/icons/SwitchIcon.js +1 -1
  564. package/dist/icons/TableIcon.js +1 -1
  565. package/dist/icons/ThumbsDownIcon.js +1 -1
  566. package/dist/icons/ThumbsUpIcon.js +1 -1
  567. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  568. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  569. package/dist/icons/ThunderboltIcon.js +1 -1
  570. package/dist/icons/TimeIcon.js +1 -1
  571. package/dist/icons/TrashIcon.js +1 -1
  572. package/dist/icons/UnlockIcon.js +1 -1
  573. package/dist/icons/UpIcon.js +1 -1
  574. package/dist/icons/UserGroupIcon.js +1 -1
  575. package/dist/icons/UserIcon.js +1 -1
  576. package/dist/icons/UserLockIcon.js +1 -1
  577. package/dist/icons/ViewIcon.js +1 -1
  578. package/dist/icons/WarningFilledIcon.js +1 -1
  579. package/dist/icons/WarningIcon.js +1 -1
  580. package/dist/icons/wrap-icon.js +1 -1
  581. package/dist/index.d.ts +2 -1
  582. package/dist/index.js +3 -2
  583. package/dist/index.js.map +1 -1
  584. package/dist/probe/canonicalize.js +1 -1
  585. package/dist/probe/css.js +1 -1
  586. package/dist/probe/index.js +1 -1
  587. package/dist/provider.js +1 -1
  588. package/dist/providers/TrackingProvider.js +1 -1
  589. package/dist/providers/navigationAdapter.default.js +1 -1
  590. package/dist/shared/form.d.ts +9 -2
  591. package/dist/tokens/all-tokens.js +1 -1
  592. package/dist/tokens/base.js +1 -1
  593. package/dist/tokens/color-seed.js +1 -1
  594. package/dist/tokens/color-theme.js +4 -5
  595. package/dist/tokens/color-theme.js.map +1 -1
  596. package/dist/tokens/colors.js +1 -1
  597. package/dist/tokens/layout.js +1 -1
  598. package/dist/tokens/lazy-styles.js +1 -1
  599. package/dist/tokens/legacy-color.js +1 -1
  600. package/dist/tokens/palette-config.d.ts +5 -0
  601. package/dist/tokens/palette-config.js +30 -7
  602. package/dist/tokens/palette-config.js.map +1 -1
  603. package/dist/tokens/palette.js +1 -1
  604. package/dist/tokens/resolve.js +1 -1
  605. package/dist/tokens/shadows.js +1 -1
  606. package/dist/tokens/sizes.js +1 -1
  607. package/dist/tokens/spacing.js +1 -1
  608. package/dist/tokens/typography.d.ts +1 -0
  609. package/dist/tokens/typography.js +10 -1
  610. package/dist/tokens/typography.js.map +1 -1
  611. package/dist/utils/ResizeSensor.js +1 -1
  612. package/dist/utils/colors.js +1 -1
  613. package/dist/utils/dotize.js +1 -1
  614. package/dist/utils/is-dev-env.js +1 -1
  615. package/dist/utils/modules.js +1 -1
  616. package/dist/utils/promise.js +1 -1
  617. package/dist/utils/raf.js +1 -1
  618. package/dist/utils/random.js +1 -1
  619. package/dist/utils/range.js +1 -1
  620. package/dist/utils/react/RenderCache.js +1 -1
  621. package/dist/utils/react/Slots.js +1 -1
  622. package/dist/utils/react/chain.js +1 -1
  623. package/dist/utils/react/disabledProps.js +1 -1
  624. package/dist/utils/react/escapePropagation.js +1 -1
  625. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  626. package/dist/utils/react/index.js +1 -1
  627. package/dist/utils/react/interactions.js +1 -1
  628. package/dist/utils/react/isTextOnly.js +1 -1
  629. package/dist/utils/react/mapProps.js +1 -1
  630. package/dist/utils/react/mergeProps.js +1 -1
  631. package/dist/utils/react/nullableValue.js +1 -1
  632. package/dist/utils/react/programmaticFocus.js +1 -1
  633. package/dist/utils/react/resolveIcon.js +1 -1
  634. package/dist/utils/react/sharedStore.js +1 -1
  635. package/dist/utils/react/useBufferedValue.js +1 -1
  636. package/dist/utils/react/useCombinedRefs.js +1 -1
  637. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  638. package/dist/utils/react/useEventBus.js +1 -1
  639. package/dist/utils/react/useId.js +1 -1
  640. package/dist/utils/react/useIsDarwin.js +1 -1
  641. package/dist/utils/react/useKeySymbols.js +1 -1
  642. package/dist/utils/react/useLayoutEffect.js +1 -1
  643. package/dist/utils/react/useLocalStorage.js +1 -1
  644. package/dist/utils/react/useMergeStyles.js +1 -1
  645. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  646. package/dist/utils/react/usePopoverSync.js +1 -1
  647. package/dist/utils/react/useQaProps.js +1 -1
  648. package/dist/utils/react/useScheme.js +1 -1
  649. package/dist/utils/react/useViewportSize.js +1 -1
  650. package/dist/utils/react/wrapNodeIfPlain.js +3 -4
  651. package/dist/utils/react/wrapNodeIfPlain.js.map +1 -1
  652. package/dist/utils/selection.js +1 -1
  653. package/dist/utils/styles.js +1 -1
  654. package/dist/utils/tree.js +1 -1
  655. package/dist/utils/warnings.js +1 -1
  656. package/dist/version.js +2 -2
  657. package/docs/FieldProperties.md +2 -2
  658. package/docs/Usage.md +10 -9
  659. package/docs/components/actions/ButtonSplit.md +2 -0
  660. package/docs/components/actions/ItemButton.md +2 -2
  661. package/docs/components/content/InfoBadge.md +1 -1
  662. package/docs/components/content/Layout.md +1 -1
  663. package/docs/components/content/Tag.md +10 -2
  664. package/docs/components/fields/Checkbox.md +11 -0
  665. package/docs/components/fields/ColorInput.md +2 -0
  666. package/docs/components/fields/ColorPicker.md +3 -1
  667. package/docs/components/fields/DatePicker.md +2 -0
  668. package/docs/components/fields/FilterPicker.md +3 -1
  669. package/docs/components/fields/PeriodPicker.md +2 -0
  670. package/docs/components/fields/Picker.md +3 -1
  671. package/docs/components/fields/RadioGroup.md +2 -2
  672. package/docs/components/fields/Select.md +5 -0
  673. package/docs/components/fields/TagInput.md +429 -0
  674. package/docs/components/form/Field.md +2 -2
  675. package/docs/components/form/Form.md +2 -0
  676. package/docs/components/navigation/Tabs.md +3 -3
  677. package/docs/components/overlays/Dialog.md +30 -3
  678. package/docs/components/overlays/DialogForm.md +1 -0
  679. package/docs/components/overlays/TooltipProvider.md +1 -0
  680. package/package.json +1 -1
  681. package/tasty.config.ts +2 -1
package/README.md CHANGED
@@ -72,7 +72,7 @@ setPaletteConfig((config) => ({ ...config, hue: 235 }));
72
72
  | **Layout** | Flex, Grid, Space, Flow, Panel, ResizablePanel, Prefix, Suffix |
73
73
  | **Actions** | Button, Button.Group, Button.Split, Link, Menu, CommandMenu |
74
74
  | **Content** | Text, Title, Paragraph, Card, Badge, Tag, Avatar, Alert, Skeleton, Placeholder, Disclosure, Divider, CopySnippet, PrismCode |
75
- | **Fields** | TextInput, NumberInput, PasswordInput, SearchInput, TextArea, Select, ComboBox, Checkbox, RadioGroup, Switch, Slider, DatePicker, FileInput, ListBox, FilterListBox, FilterPicker, Picker |
75
+ | **Fields** | TextInput, NumberInput, PasswordInput, SearchInput, TextArea, Select, ComboBox, Checkbox, RadioGroup, Switch, Slider, DatePicker, FileInput, ListBox, FilterListBox, FilterPicker, Picker, TagInput |
76
76
  | **Form** | Form, FieldWrapper, SubmitButton, ResetButton |
77
77
  | **Overlays** | Dialog, AlertDialog, Modal, Tooltip, Toast, Notifications |
78
78
  | **Navigation** | Tabs, FileTabs |
package/dist/CHANGELOG.md CHANGED
@@ -1,5 +1,69 @@
1
1
  # @cube-dev/ui-kit
2
2
 
3
+ ## 0.185.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#1427](https://github.com/cube-js/cube-ui-kit/pull/1427) [`997e22cc`](https://github.com/cube-js/cube-ui-kit/commit/997e22cc5e9eb5c727f2eb6dec90280e435e3435) Thanks [@tenphi](https://github.com/tenphi)! - Add the `t4n` typography preset: 12px text at normal (400) weight, with `t4`'s 18px line height. `t4` is 500 so small text keeps its presence next to 14px body text, and until now it had no lighter option — the only 12px/400 preset was the monospace `s4`, so secondary metadata such as timestamps and counts needed `preset: 't4'` plus a hand-set `fontWeight: 400`. Use `preset: 't4n'` instead.
8
+
9
+ - [#1428](https://github.com/cube-js/cube-ui-kit/pull/1428) [`4d7a65e6`](https://github.com/cube-js/cube-ui-kit/commit/4d7a65e63c1b8d555a4095c6de4cdcf9a91cf270) Thanks [@tenphi](https://github.com/tenphi)! - Add `TagInput`, a multi-value field whose values show as removable chips below a single-line input. Values are committed with Enter or a delimiter (a comma by default), and Enter never submits a surrounding form; pasted lists are split into chips, `validateTag` rejects a value with a message, `normalizeTag` rewrites typed values before they are checked, and `maxTags` caps the list. With `TagInput.Item` options it becomes a combobox that toggles several options in a row, and `allowsCustomValue` lets the user add values that are not in the list. Backspace in the empty input moves to the last chip and the next one removes it; Escape or typing on a chip goes back to the input. `isClearable` adds a button that clears the typed text, and `tagProps` sets per-chip props, including a label and `isDisabled` to lock a value. With `allowsCustomValue`, the custom values already added are listed with the options, so they can be unpicked there too. `inputMode` and `enterKeyHint` pick the virtual keyboard. The field value is a `string[]` and works with `Form` rules.
10
+
11
+ - [#1428](https://github.com/cube-js/cube-ui-kit/pull/1428) [`4d7a65e6`](https://github.com/cube-js/cube-ui-kit/commit/4d7a65e63c1b8d555a4095c6de4cdcf9a91cf270) Thanks [@tenphi](https://github.com/tenphi)! - `TextInputBase` takes an `actions` slot for controls that always sit last in the suffix, after the validation and loading icons and after `suffix` in either position, such as a popover trigger.
12
+
13
+ - [#1427](https://github.com/cube-js/cube-ui-kit/pull/1427) [`997e22cc`](https://github.com/cube-js/cube-ui-kit/commit/997e22cc5e9eb5c727f2eb6dec90280e435e3435) Thanks [@tenphi](https://github.com/tenphi)! - `TooltipProvider` takes a `qa` for the tooltip it renders, and so does every component's `tooltip` object: `<Button tooltip={{ title: 'Copy', qa: 'CopyTooltip' }}>`. Only `tooltipStyles` and `width` used to reach the tooltip, and `Tooltip` itself dropped the `qa` its props accept, so a test could only find a tooltip by `role="tooltip"` — which works while exactly one is open and never says whose it is.
14
+
15
+ ### Patch Changes
16
+
17
+ - [#1429](https://github.com/cube-js/cube-ui-kit/pull/1429) [`694068ba`](https://github.com/cube-js/cube-ui-kit/commit/694068ba678ae34a8efe05017583a7afa4f7933c) Thanks [@tenphi](https://github.com/tenphi)! - Stop `useAutoTooltip` from setting its overflow verdict inside the mount effect. React 19 flushes a sync commit's passive effects before the commit returns, so an overflowing `Button`, `Item`, `TextItem`, `LayoutHeader`, `InlineInput` or `Radio` label made a nested update of every commit it mounted in. ag-grid-react 33 wraps every new row in `flushSync`, so a long table crashed with "Maximum update depth exceeded" once about 50 such rows mounted in one task, for example when it jumped back to its top. Labels now queue their checks for one shared microtask. It reads every pending label, then commits the verdicts that changed in a single `flushSync`, after the commit but still before paint and before any other task. The teardown moved from an unmount effect to the label's callback ref, so React 18 Strict Mode, which replays effects with refs still attached, no longer loses the measurement. After a synchronous `render` in a test, the verdict lands in a microtask: `await act(async () => …)` first, then look the label up, since turning the tooltip on remounts it under `TooltipProvider`.
18
+
19
+ - [#1428](https://github.com/cube-js/cube-ui-kit/pull/1428) [`4d7a65e6`](https://github.com/cube-js/cube-ui-kit/commit/4d7a65e63c1b8d555a4095c6de4cdcf9a91cf270) Thanks [@tenphi](https://github.com/tenphi)! - Screen readers now announce the focused option while arrowing through `ComboBox`, `SearchComboBox`, `CommandTextArea` and `FilterListBox` options: `aria-activedescendant` pointed at an id no option had, and in `ComboBox` and `FilterListBox` it also stopped following the arrow keys. `FilterListBox`'s search input now names its list with `aria-controls`.
20
+
21
+ - [#1428](https://github.com/cube-js/cube-ui-kit/pull/1428) [`4d7a65e6`](https://github.com/cube-js/cube-ui-kit/commit/4d7a65e63c1b8d555a4095c6de4cdcf9a91cf270) Thanks [@tenphi](https://github.com/tenphi)! - `ComboBox`, `SearchComboBox` and `CommandTextArea` no longer miss a blur when focus enters and leaves them within one animation frame, as it does in a fast automated test. Commit-on-blur and `onBlur` now run in that case too.
22
+
23
+ - [#1427](https://github.com/cube-js/cube-ui-kit/pull/1427) [`997e22cc`](https://github.com/cube-js/cube-ui-kit/commit/997e22cc5e9eb5c727f2eb6dec90280e435e3435) Thanks [@tenphi](https://github.com/tenphi)! - A `Badge` or `Tag` in a field's `labelSuffix` no longer grows the label row by a pixel. The suffix was wrapped in a block, where an inline-level element sits in a line box whose strut added space under it, so the row measured 21px instead of 20px and the field below stepped out of line with its neighbours. A single-element suffix is now a flex item, centred on the row. Mixed content — text, a fragment, several elements — is wrapped in a `<span>` and keeps flowing inline, spaces included.
24
+
25
+ - [#1427](https://github.com/cube-js/cube-ui-kit/pull/1427) [`997e22cc`](https://github.com/cube-js/cube-ui-kit/commit/997e22cc5e9eb5c727f2eb6dec90280e435e3435) Thanks [@tenphi](https://github.com/tenphi)! - `ItemButton` announces `isSelected` as `aria-pressed`, as its documentation says, instead of `aria-selected`. `aria-selected` is not a state of role `button`, so screen readers ignored it and a toggle or multi-select built from `ItemButton isSelected` read as a plain button. `isSelected={false}` renders `aria-pressed="false"`, so an unpressed toggle announces as one. As on `Button`, it is skipped for a link (`to`) and for a call site's own `role` — a tab or option keeps `aria-selected` — and also for a trigger that reports `aria-expanded`, such as `Disclosure.Trigger`. An explicit `aria-pressed` still wins. A selector that found a selected toggle `ItemButton` by `[aria-selected="true"]` should use `[aria-pressed="true"]`.
26
+
27
+ - [#1427](https://github.com/cube-js/cube-ui-kit/pull/1427) [`997e22cc`](https://github.com/cube-js/cube-ui-kit/commit/997e22cc5e9eb5c727f2eb6dec90280e435e3435) Thanks [@tenphi](https://github.com/tenphi)! - `ListBox` and `FilterListBox` accept their documented style props in TypeScript: `height`, `width`, `flex`, `margin` and the rest of the base, outer and color groups. They were always applied at runtime, but the props type did not declare them, so `<ListBox height="20x">` failed to type-check and callers routed it through `styles` instead.
28
+
29
+ - [#1430](https://github.com/cube-js/cube-ui-kit/pull/1430) [`b4d48336`](https://github.com/cube-js/cube-ui-kit/commit/b4d48336a8f4559f649e5852ebcd10a42a3cce3d) Thanks [@tenphi](https://github.com/tenphi)! - Fix runtime palette changes that stopped recoloring the app in 0.183.0. In the published build, a `setPaletteConfig()` call, or a `<Root palette>` that changed after mount, updated the palette store, but the page kept the tokens of its first render, so the whole UI stayed on the palette it loaded with. `usePaletteConfig()` likewise kept returning its first render's config, and `useColorTheme()` kept injecting a theme's old tokens after the palette changed. All three follow every change again. The bug was in the React Compiler build only, so tests against the source did not show it.
30
+
31
+ - [#1427](https://github.com/cube-js/cube-ui-kit/pull/1427) [`997e22cc`](https://github.com/cube-js/cube-ui-kit/commit/997e22cc5e9eb5c727f2eb6dec90280e435e3435) Thanks [@tenphi](https://github.com/tenphi)! - Fix the caret of a `Select`, `Picker` or `FilterPicker` trigger not opening the dropdown. The trigger keeps an empty placeholder under its actions run to reserve that run's width, and the placeholder stopped every press that reached it. Once the run had been measured it sat right under the caret, so a press there only closed an open dropdown and never opened a closed one. The placeholder now lets presses through; real actions still keep a press on them from pressing the row. The same dead zone covered the padding and gaps of any `ItemButton`'s actions run.
32
+
33
+ - [#1427](https://github.com/cube-js/cube-ui-kit/pull/1427) [`997e22cc`](https://github.com/cube-js/cube-ui-kit/commit/997e22cc5e9eb5c727f2eb6dec90280e435e3435) Thanks [@tenphi](https://github.com/tenphi)! - `Link`, `Button`, `ItemButton` and every other `to`-driven action no longer resolve a `!` or `@` prefixed `to` through the router. The rendered `href` was already correct, but the raw value was resolved too, so `<Link to="!https://cube.dev">` — the documented way to open an external URL in a new tab — made a `HashRouter` warn on every render. Only the stripped path is resolved now.
34
+
35
+ - [#1427](https://github.com/cube-js/cube-ui-kit/pull/1427) [`997e22cc`](https://github.com/cube-js/cube-ui-kit/commit/997e22cc5e9eb5c727f2eb6dec90280e435e3435) Thanks [@tenphi](https://github.com/tenphi)! - Under React 19, a fragment passed as `Result`'s `title` or `subtitle`, or as a field's `description`, is wrapped like any other mixed content again: `Result` renders it in its heading styles instead of as bare text. The check that tells a fragment from a single element used `react-is@18`, which does not recognise React 19 elements, so every fragment was taken for a single element and left unwrapped.
36
+
37
+ ## 0.184.0
38
+
39
+ ### Minor Changes
40
+
41
+ - [#1425](https://github.com/cube-js/cube-ui-kit/pull/1425) [`86ea64d7`](https://github.com/cube-js/cube-ui-kit/commit/86ea64d7a98f836dd6a57076e505312087d6393a) Thanks [@tenphi](https://github.com/tenphi)! - Add `tooltip` to `Checkbox`: a tooltip shown on hover over the box and its inline label, standalone or inside a `Checkbox.Group`, and also while the checkbox is disabled — a place to say why an option is unavailable. It opens on keyboard focus too, and describes the input to screen readers. It takes a string or `TooltipProvider` props. It is separate from `labelTooltip`, the info badge next to a field label.
42
+
43
+ - [#1424](https://github.com/cube-js/cube-ui-kit/pull/1424) [`f0824b25`](https://github.com/cube-js/cube-ui-kit/commit/f0824b25c01c25148a4ca62a99baba2f99b58d73) Thanks [@tenphi](https://github.com/tenphi)! - `Dialog`'s `Footer` now draws a top border while the dialog's `Content` scrolls, and none while it fits. The footer carries a `content-overflow` modifier for as long as the body overflows, tracked through resizes and content changes, so the line separates the actions from a body that continues beneath them without cluttering a short dialog. Set `border` in the footer's own styles to keep the line always or never draw it. `Content` now renders `data-id="Content"`, which is how the dialog finds its body.
44
+
45
+ - [#1424](https://github.com/cube-js/cube-ui-kit/pull/1424) [`f0824b25`](https://github.com/cube-js/cube-ui-kit/commit/f0824b25c01c25148a4ca62a99baba2f99b58d73) Thanks [@tenphi](https://github.com/tenphi)! - `DialogForm` now renders its Submit and Cancel buttons in a pinned `Footer` beside the scrolling `Content`, instead of inside it. A long form scrolls its body while the actions stay visible; previously they scrolled away with the content and a dialog that needed pinned actions could not use `DialogForm` at all. The `<form>` now wraps both slots, so the buttons are still inside it and native submit is unchanged. The actions now sit as far below the last field as in any other dialog footer, 8px further than before.
46
+
47
+ A `Form` placed directly in a `Dialog` now lays itself out as the dialog's slot column, so a hand-composed `Dialog > Form > Content + Footer` scrolls and pins without restating `display: flex`, `flexGrow: 1`, `height: 'min 0'` and `gap: 0` on the form. This is the form's own state, so `styles` passed to the form still override it. A form nested deeper, or a plain `<form>` element, is left alone.
48
+
49
+ - [#1425](https://github.com/cube-js/cube-ui-kit/pull/1425) [`86ea64d7`](https://github.com/cube-js/cube-ui-kit/commit/86ea64d7a98f836dd6a57076e505312087d6393a) Thanks [@tenphi](https://github.com/tenphi)! - **Breaking:** the info badge next to a field's label is now `labelTooltip`, not `tooltip`. This applies to every field component (`TextInput`, `TextArea`, `CommandTextArea`, `NumberInput`, `PasswordInput`, `SearchInput`, `ColorInput`, `ComboBox`, `SearchComboBox`, `Select`, `Picker`, `FilterPicker`, `ListBox`, `FilterListBox`, `Checkbox`, `CheckboxGroup`, `Switch`, `RadioGroup`, `Slider` and its variants, the date and time pickers, `FileInput`, `ColorPicker`, `ColorSwatchGroup`, `TextInputMapper`), to the legacy `Field` / `Form.Item`, and to `FieldWrapper`. `tooltip` now means only the control's own tooltip, as it does on `Item` and `Button`. Previously a component that is both a field and a trigger had one prop meaning two things: a labelled `Select` rendered its `tooltip` on the trigger and again as a label badge, and `tooltip={true}` on a labelled `Picker` or `FilterPicker` rendered an empty badge.
50
+
51
+ Migrating: rename `tooltip` to `labelTooltip` wherever it described the label, whether on the field or on a legacy `Field` / `Form.Item` wrapping it. TypeScript flags the old spelling on every field except `Select` and `Checkbox`, where `tooltip` is valid as the control's own: the `Select` trigger's tooltip, and `Checkbox`'s new hover tooltip over the box and its inline label. Search for `Select` and `Checkbox` elements with both `label` and `tooltip` by hand and move the prop to `labelTooltip` if the label badge is what it was for (on `Select` it previously rendered in both places). JS callers, `as any` and untyped spreads are not flagged either; in development, the first labelled field — other than `Select` and `Checkbox` — that still receives `tooltip` logs a one-time console warning naming `labelTooltip`. The trigger tooltips of `Picker`, `FilterPicker` and `ColorPicker` remain `triggerTooltip`.
52
+
53
+ - [#1422](https://github.com/cube-js/cube-ui-kit/pull/1422) [`565dc93d`](https://github.com/cube-js/cube-ui-kit/commit/565dc93d8b71292218cebb2a96c70de4d7193518) Thanks [@tenphi](https://github.com/tenphi)! - Let popover fields anchor to an element other than their own trigger. `Select`, `Picker`, `FilterPicker`, `ColorPicker`, `ColorInput`, `DatePicker`, `DateRangePicker`, `DateRangeSeparatedPicker` and `PeriodPicker` now accept `targetRef`, matching the prop `DialogTrigger` already had, so adjacent controls of different widths can line their popovers up with one shared container. The same components (except `FilterPicker`, which already had it) also accept `placement`, since anchoring to a wider container is only useful alongside control over the alignment. Both default to the current behaviour, so existing callers are unaffected.
54
+
55
+ - [#1421](https://github.com/cube-js/cube-ui-kit/pull/1421) [`a8295d41`](https://github.com/cube-js/cube-ui-kit/commit/a8295d413cb6a25820937cb94af541e7b14c3079) Thanks [@tenphi](https://github.com/tenphi)! - Add a soft brand-purple `Tag` theme: `<Tag theme="primary">` renders the pale card — tinted border, strong colored text — at the primary hue, alongside the existing `default`, `danger`, `success`, `warning` and `note` cards. Previously the brand hue was reachable only through `theme="special"`, which is a solid fill, so designs calling for a soft purple chip had to borrow `note` one hue over. `special` is unchanged and still renders the solid fill.
56
+
57
+ ### Patch Changes
58
+
59
+ - [#1426](https://github.com/cube-js/cube-ui-kit/pull/1426) [`17416c42`](https://github.com/cube-js/cube-ui-kit/commit/17416c422d8c2f878be168938c132d88fb7dcd94) Thanks [@tenphi](https://github.com/tenphi)! - Fix `Menu` items running their action twice from the keyboard: Enter or Space on a focused item called the menu's `onAction`, and the item's own `onAction`, twice — in a standalone `Menu`, a `Menu.Section`, a `Menu.Trigger` popover and a submenu alike (clicks were unaffected). Enter on a `Menu.SubMenuTrigger` now only opens the submenu, instead of also calling the parent menu's `onAction` with the trigger's key, and a click on a submenu trigger after opening it from the keyboard opens it straight away rather than after the hover delay.
60
+
61
+ - [#1425](https://github.com/cube-js/cube-ui-kit/pull/1425) [`86ea64d7`](https://github.com/cube-js/cube-ui-kit/commit/86ea64d7a98f836dd6a57076e505312087d6393a) Thanks [@tenphi](https://github.com/tenphi)! - A `Radio`'s `tooltip` now opens when the option takes keyboard focus, not only on hover, and the focused input is described by it, so screen readers announce it. It follows arrow-key navigation between options, and any `aria-describedby` the radio already had is kept alongside it.
62
+
63
+ - [#1425](https://github.com/cube-js/cube-ui-kit/pull/1425) [`86ea64d7`](https://github.com/cube-js/cube-ui-kit/commit/86ea64d7a98f836dd6a57076e505312087d6393a) Thanks [@tenphi](https://github.com/tenphi)! - Fix `tooltip` props that were accepted but rendered nothing. A classic (`type="radio"`) `Radio` now shows its `tooltip`, including on a disabled option. A button or tabs `Radio` now truncates a label it has no room for and shows the auto tooltip the docs describe (`tooltip` defaults to `true`); with a `block` description the label keeps its full width, as before. A button `Radio` also supports `highlight` now, and an icon-only one renders as a square icon button matching `ItemButton` instead of carrying an empty, padded label (32px instead of 44px at the default size). Both previously broke because the radio's hidden input was treated as part of the label. `Tabs type="radio"` and `Layout.Header` now truncate a title they have no room for and show it in a tooltip, instead of letting it spill out; `Layout.Header` renders its title text directly in the heading, without the inner `<span>` it used to wrap it in. `labelRef` on `Item`, `ItemButton` and `Radio` (button or classic) now points at the label element instead of leaking to the DOM as a `labelref` attribute, and accepts a callback ref as well as a ref object.
64
+
65
+ - [#1425](https://github.com/cube-js/cube-ui-kit/pull/1425) [`86ea64d7`](https://github.com/cube-js/cube-ui-kit/commit/86ea64d7a98f836dd6a57076e505312087d6393a) Thanks [@tenphi](https://github.com/tenphi)! - Fix tooltips that were accepted but never showed, or showed and vanished. Items inside a `Menu.Section`, and every `CommandMenu` item, no longer get a second tooltip wrapped around their own: the two closed each other, so an object or `tooltip={true}` tooltip flashed and was gone, and the extra wrapper put a `<div>` inside the menu list. An editable `Tab` whose `title` is not a string now shows its `tooltip`. The `Tabs` picker (`showTabPicker`) shows each tab's `tooltip` on its entry. `Button.Split` shows the current action's `tooltip` on the action button, as it already did its `icon` and `label` (`actionProps.tooltip` overrides it). A disabled tooltip no longer opens unseen on hover and swallows `Escape` while the pointer rests on its trigger, which could keep a `Dialog` from closing while the pointer was over an item or tab with actions, or a button radio.
66
+
3
67
  ## 0.183.0
4
68
 
5
69
  ### Minor Changes
package/dist/README.md CHANGED
@@ -72,7 +72,7 @@ setPaletteConfig((config) => ({ ...config, hue: 235 }));
72
72
  | **Layout** | Flex, Grid, Space, Flow, Panel, ResizablePanel, Prefix, Suffix |
73
73
  | **Actions** | Button, Button.Group, Button.Split, Link, Menu, CommandMenu |
74
74
  | **Content** | Text, Title, Paragraph, Card, Badge, Tag, Avatar, Alert, Skeleton, Placeholder, Disclosure, Divider, CopySnippet, PrismCode |
75
- | **Fields** | TextInput, NumberInput, PasswordInput, SearchInput, TextArea, Select, ComboBox, Checkbox, RadioGroup, Switch, Slider, DatePicker, FileInput, ListBox, FilterListBox, FilterPicker, Picker |
75
+ | **Fields** | TextInput, NumberInput, PasswordInput, SearchInput, TextArea, Select, ComboBox, Checkbox, RadioGroup, Switch, Slider, DatePicker, FileInput, ListBox, FilterListBox, FilterPicker, Picker, TagInput |
76
76
  | **Form** | Form, FieldWrapper, SubmitButton, ResetButton |
77
77
  | **Overlays** | Dialog, AlertDialog, Modal, Tooltip, Toast, Notifications |
78
78
  | **Navigation** | Tabs, FileTabs |
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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,5 +1,5 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
- import { usePaletteVersion } from "../tokens/palette-config.js";
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
2
+ import { usePaletteValue } from "../tokens/palette-config.js";
3
3
  import { getTokens } from "../tokens/all-tokens.js";
4
4
  import { c } from "react-compiler-runtime";
5
5
  import { useGlobalStyles, useRawCSS } from "@tenphi/tasty";
@@ -264,27 +264,28 @@ const STATIC_CSS = `
264
264
  }
265
265
  `;
266
266
  function GlobalStyles(props) {
267
- const $ = c(7);
267
+ const $ = c(8);
268
268
  const { bodyStyles, font, monospaceFont } = props;
269
- usePaletteVersion();
269
+ const tokens = usePaletteValue(getTokens);
270
270
  let styles;
271
- if ($[0] !== bodyStyles) {
272
- styles = { ...getTokens() };
271
+ if ($[0] !== bodyStyles || $[1] !== tokens) {
272
+ styles = { ...tokens };
273
273
  Object.assign(styles, BODY_STYLES);
274
274
  if (bodyStyles) Object.assign(styles, bodyStyles);
275
275
  $[0] = bodyStyles;
276
- $[1] = styles;
277
- } else styles = $[1];
276
+ $[1] = tokens;
277
+ $[2] = styles;
278
+ } else styles = $[2];
278
279
  const bodyTokenStyles = styles;
279
280
  let t0;
280
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
281
+ if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
281
282
  t0 = { id: "cube-ui-kit-tokens" };
282
- $[2] = t0;
283
- } else t0 = $[2];
283
+ $[3] = t0;
284
+ } else t0 = $[3];
284
285
  useGlobalStyles("body", bodyTokenStyles, t0);
285
286
  let t1;
286
287
  let t2;
287
- if ($[3] !== font || $[4] !== monospaceFont) {
288
+ if ($[4] !== font || $[5] !== monospaceFont) {
288
289
  t1 = () => {
289
290
  return `
290
291
  html {
@@ -295,13 +296,13 @@ function GlobalStyles(props) {
295
296
  ${STATIC_CSS}`;
296
297
  };
297
298
  t2 = [font, monospaceFont];
298
- $[3] = font;
299
- $[4] = monospaceFont;
300
- $[5] = t1;
301
- $[6] = t2;
299
+ $[4] = font;
300
+ $[5] = monospaceFont;
301
+ $[6] = t1;
302
+ $[7] = t2;
302
303
  } else {
303
- t1 = $[5];
304
- t2 = $[6];
304
+ t1 = $[6];
305
+ t2 = $[7];
305
306
  }
306
307
  useRawCSS(t1, t2);
307
308
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalStyles.js","names":["useGlobalStyles","useRawCSS","useMemo","getTokens","usePaletteVersion","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","paletteVersion","styles","Object","assign","bodyTokenStyles","t0","Symbol","for","id","t1","t2","fontValue","monospaceFontValue"],"sources":["../../src/components/GlobalStyles.tsx"],"sourcesContent":["import { useGlobalStyles, useRawCSS } from '@tenphi/tasty';\nimport { useMemo } from 'react';\n\nimport { getTokens } from '../tokens';\nimport { usePaletteVersion } 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.\n const paletteVersion = usePaletteVersion();\n\n // Merge token styles with body styles. getTokens() resolves glaze colors\n // against the current palette config, memoized against its version.\n const bodyTokenStyles = useMemo((): Styles => {\n const styles: Styles = { ...getTokens() };\n\n // Add base body styles\n Object.assign(styles, BODY_STYLES);\n\n // Override with custom body styles if provided\n // Keys are passed through as-is (tasty handles both camelCase and kebab-case)\n if (bodyStyles) {\n Object.assign(styles, bodyStyles);\n }\n\n return styles;\n }, [bodyStyles, paletteVersion]);\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;AAMrBtB,oBAAmB;CAAC,IAAA0B;AAAA,KAAAH,EAAA,OAAApB,YAAA;AAKzCuB,WAAuB,EAAA,GAAK3B,WAAU,EAAG;AAGzC4B,SAAMC,OAAQF,QAAQf,YAAY;AAIlC,MAAIR,WACFwB,QAAMC,OAAQF,QAAQvB,WAAW;AAClCoB,IAAA,KAAApB;AAAAoB,IAAA,KAAAG;OAAAA,UAAAH,EAAA;CAVH,MAAAM,kBAYEH;CAC+B,IAAAI;AAAA,KAAAP,EAAA,OAAAQ,OAAAC,IAAA,4BAAA,EAAA;AAaQF,OAAA,EAAAG,IAAM,sBAAsB;AAAAV,IAAA,KAAAO;OAAAA,MAAAP,EAAA;AAArE3B,iBAAgB,QAAQiC,iBAAiBC,GAA6B;CAAA,IAAAI;CAAA,IAAAC;AAAA,KAAAZ,EAAA,OAAAf,QAAAe,EAAA,OAAAd,eAAA;AAG5DyB,aAAA;AAE6D,UAE9D;;;mBAHW1B,OAAA,GAAUA,KAAI,MAAd,GAMM;mBALGC,gBAAA,GAAmBA,cAAa,MAAhC,GAMM;;EAEnCW;;AACGe,OAAA,CAAC3B,MAAMC,cAAc;AAAAc,IAAA,KAAAf;AAAAe,IAAA,KAAAd;AAAAc,IAAA,KAAAW;AAAAX,IAAA,KAAAY;QAAA;AAAAD,OAAAX,EAAA;AAAAY,OAAAZ,EAAA;;AAXxB1B,WAAUqC,IAWPC,GAAsB;AAAA,QAElB"}
1
+ {"version":3,"file":"GlobalStyles.js","names":["useGlobalStyles","useRawCSS","useMemo","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","styles","Object","assign","bodyTokenStyles","t0","Symbol","for","id","t1","t2","fontValue","monospaceFontValue"],"sources":["../../src/components/GlobalStyles.tsx"],"sourcesContent":["import { useGlobalStyles, useRawCSS } from '@tenphi/tasty';\nimport { useMemo } from 'react';\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 body styles.\n const bodyTokenStyles = useMemo((): Styles => {\n const styles: Styles = { ...tokens };\n\n // Add base body styles\n Object.assign(styles, BODY_STYLES);\n\n // Override with custom body styles if provided\n // Keys are passed through as-is (tasty handles both camelCase and kebab-case)\n if (bodyStyles) {\n Object.assign(styles, bodyStyles);\n }\n\n return styles;\n }, [tokens, 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,SAAezB,gBAAgBD,UAAU;CAAC,IAAA2B;AAAA,KAAAH,EAAA,OAAApB,cAAAoB,EAAA,OAAAE,QAAA;AAIxCC,WAAuB,EAAA,GAAKD,QAAQ;AAGpCE,SAAMC,OAAQF,QAAQf,YAAY;AAIlC,MAAIR,WACFwB,QAAMC,OAAQF,QAAQvB,WAAW;AAClCoB,IAAA,KAAApB;AAAAoB,IAAA,KAAAE;AAAAF,IAAA,KAAAG;OAAAA,UAAAH,EAAA;CAVH,MAAAM,kBAYEH;CACuB,IAAAI;AAAA,KAAAP,EAAA,OAAAQ,OAAAC,IAAA,4BAAA,EAAA;AAagBF,OAAA,EAAAG,IAAM,sBAAsB;AAAAV,IAAA,KAAAO;OAAAA,MAAAP,EAAA;AAArE3B,iBAAgB,QAAQiC,iBAAiBC,GAA6B;CAAA,IAAAI;CAAA,IAAAC;AAAA,KAAAZ,EAAA,OAAAf,QAAAe,EAAA,OAAAd,eAAA;AAG5DyB,aAAA;AAE6D,UAE9D;;;mBAHW1B,OAAA,GAAUA,KAAI,MAAd,GAMM;mBALGC,gBAAA,GAAmBA,cAAa,MAAhC,GAMM;;EAEnCW;;AACGe,OAAA,CAAC3B,MAAMC,cAAc;AAAAc,IAAA,KAAAf;AAAAe,IAAA,KAAAd;AAAAc,IAAA,KAAAW;AAAAX,IAAA,KAAAY;QAAA;AAAAD,OAAAX,EAAA;AAAAY,OAAAZ,EAAA;;AAXxB1B,WAAUqC,IAWPC,GAAsB;AAAA,QAElB"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.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,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { ButtonSplitContext } from "./context.js";
@@ -74,6 +74,7 @@ const ButtonSplit = forwardRef(function ButtonSplit(props, ref) {
74
74
  size,
75
75
  isDisabled,
76
76
  icon: currentAction?.icon,
77
+ tooltip: currentAction?.tooltip,
77
78
  ...mergeProps(actionProps, { onPress: handleActionPress }),
78
79
  children: currentAction?.label
79
80
  }), /* @__PURE__ */ jsxs(__Menu.Trigger, {
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonSplit.js","names":["CONTAINER_STYLES","filterBaseProps","tasty","forwardRef","ReactNode","useCallback","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","controlledActionKey","role","rest","isControlled","undefined","uncontrolledKey","setUncontrolledKey","currentKey","currentAction","find","a","handleActionPress","handleSelectionChange","keys","newKey","containerStyles","mergedStyles","contextValue","isCustomMode","eventProps","icon","onPress","pressed","map","textValue","itemProps","displayName"],"sources":["../../../../src/components/actions/ButtonSplit/ButtonSplit.tsx"],"sourcesContent":["import { CONTAINER_STYLES, filterBaseProps, tasty } from '@tenphi/tasty';\nimport { forwardRef, ReactNode, useCallback, 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 = useMemo(\n () => actions?.find((a) => a.key === currentKey) ?? actions?.[0],\n [actions, currentKey],\n );\n\n const handleActionPress = useCallback(() => {\n if (currentKey) {\n onAction?.(currentKey);\n }\n }, [currentKey, onAction]);\n\n const handleSelectionChange = useCallback(\n (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 [isControlled, onActionChange],\n );\n\n const containerStyles = extractStyles(rest, STYLE_PROPS);\n\n const mergedStyles = useMemo<Styles>(\n () => ({\n ...containerStyles,\n ...styles,\n }),\n [containerStyles, 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 {...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,MAAMwC,cAAcxC;AAEpB,MAAMyC,qBAAqBvC,MAAM;CAC/BwC,IAAI;CACJC,IAAI;CACJL,QAAQ;EACNM,SAAS;EACTC,UAAU;EACVC,eAAe;EACjB;CACD,CAAC;AAEF,MAAaC,cAAc5C,WACzB,SAAS4C,YAAYE,OAAOC,KAAK;CAC/B,MAAM,EACJzB,SACAC,WAAWyB,qBACXxB,kBACAC,UACAC,gBACAC,MACAC,OACAC,MACAC,YACAC,aACAE,cACAC,WACAC,QACAC,UACAa,MACA,GAAGC,SACDJ;CAEJ,MAAMK,eAAeH,wBAAwBI;CAC7C,MAAM,CAACC,iBAAiBC,sBAAsBlD,eACtCoB,oBAAoBF,UAAU,IAAIH,IACzC;CAED,MAAMoC,aAAaJ,eAAeH,sBAAsBK;CAExD,MAAMG,gBAAgBrD,cACdmB,SAASmC,MAAMC,MAAMA,EAAEvC,QAAQoC,WAAW,IAAIjC,UAAU,IAC9D,CAACA,SAASiC,WACZ,CAAC;CAED,MAAMI,oBAAoBzD,kBAAkB;AAC1C,MAAIqD,WACF9B,YAAW8B,WAAW;IAEvB,CAACA,YAAY9B,SAAS,CAAC;CAE1B,MAAMmC,wBAAwB1D,aAC3B2D,SAAmB;EAClB,MAAMC,SAASD,KAAK;AAEpB,MAAIC,QAAQ;AACV,OAAI,CAACX,aACHG,oBAAmBQ,OAAO;AAG5BpC,oBAAiBoC,OAAO;;IAG5B,CAACX,cAAczB,eACjB,CAAC;CAED,MAAMqC,kBAAkBxD,cAAc2C,MAAMb,YAAY;CAExD,MAAM2B,eAAe7D,eACZ;EACL,GAAG4D;EACH,GAAG5B;EACJ,GACD,CAAC4B,iBAAiB5B,OACpB,CAAC;CAED,MAAM8B,eAAe9D,eACZ;EACLoD;EACA9B;EACAC;EACAC;EACAC;EACAC;EACAC;EACD,GACD;EAACyB;EAAY9B;EAAUC;EAAgBC;EAAMC;EAAOC;EAAMC;EAC5D,CAAC;CAED,MAAMoC,eAAe9B,YAAY;AAEjC,QACE,oBAAC,mBAAmB;EAAS,OAAO6B;YAClC,oBAAC;GACC,GAAInE,gBAAgBoD,MAAM,EAAEiB,YAAY,MAAM,CAAC;GAC1CpB;GACL;GACA,QAAQiB;GACR,IAAId,KAAKV;GAMT,MAAMS,SAASiB,eAAe,UAAUd;aAEvCc,eACC9B,WACEd,UACF,8CACE,oBAAC;IACOK;IACCC;IACDC;IACMC;IACZ,MAAM0B,eAAeY;IACrB,GAAI9D,WAAWyB,aAAa,EAAEsC,SAASV,mBAAmB,CAAC;cAE1DH,eAAepC;KACV,EACR,qBAAC,OAAK;IAAQ,WAAU;eACtB,oBAAC;KACOO;KACCC;KACDC;KACMC;KACZ,cAAW;KACX,OAAO,EAAEwC,cACP,oBAAC,iBAAc,IAAIA,UAAU,OAAO,SACrC;KACD,GAAIrC;MAAa,EAEnB,oBAAC;KACC,eAAc;KACd,cAAcsB,aAAa,CAACA,WAAW,GAAG,EAAE;KAC5C,mBAAmBK;KACnB,GAAI1B;eAEHZ,QAAQiD,KAAK,EAAEpD,KAAKC,OAAOoD,WAAW,GAAGC,gBACxC,oBAAC,OAAK;MAEJ,WACED,cAAc,OAAOpD,UAAU,WAAWA,QAAQD;MAEpD,GAAIsD;gBAEHrD;QANID,IAQR,CAAC;MACE;KACM,IACb,GACD;IACc;GACQ;EAGnC;AAEDyB,YAAY8B,cAAc"}
1
+ {"version":3,"file":"ButtonSplit.js","names":["CONTAINER_STYLES","filterBaseProps","tasty","forwardRef","ReactNode","useCallback","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","controlledActionKey","role","rest","isControlled","undefined","uncontrolledKey","setUncontrolledKey","currentKey","currentAction","find","a","handleActionPress","handleSelectionChange","keys","newKey","containerStyles","mergedStyles","contextValue","isCustomMode","eventProps","icon","tooltip","onPress","pressed","map","textValue","itemProps","displayName"],"sources":["../../../../src/components/actions/ButtonSplit/ButtonSplit.tsx"],"sourcesContent":["import { CONTAINER_STYLES, filterBaseProps, tasty } from '@tenphi/tasty';\nimport { forwardRef, ReactNode, useCallback, 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 = useMemo(\n () => actions?.find((a) => a.key === currentKey) ?? actions?.[0],\n [actions, currentKey],\n );\n\n const handleActionPress = useCallback(() => {\n if (currentKey) {\n onAction?.(currentKey);\n }\n }, [currentKey, onAction]);\n\n const handleSelectionChange = useCallback(\n (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 [isControlled, onActionChange],\n );\n\n const containerStyles = extractStyles(rest, STYLE_PROPS);\n\n const mergedStyles = useMemo<Styles>(\n () => ({\n ...containerStyles,\n ...styles,\n }),\n [containerStyles, 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,MAAMwC,cAAcxC;AAEpB,MAAMyC,qBAAqBvC,MAAM;CAC/BwC,IAAI;CACJC,IAAI;CACJL,QAAQ;EACNM,SAAS;EACTC,UAAU;EACVC,eAAe;EACjB;CACD,CAAC;AAEF,MAAaC,cAAc5C,WACzB,SAAS4C,YAAYE,OAAOC,KAAK;CAC/B,MAAM,EACJzB,SACAC,WAAWyB,qBACXxB,kBACAC,UACAC,gBACAC,MACAC,OACAC,MACAC,YACAC,aACAE,cACAC,WACAC,QACAC,UACAa,MACA,GAAGC,SACDJ;CAEJ,MAAMK,eAAeH,wBAAwBI;CAC7C,MAAM,CAACC,iBAAiBC,sBAAsBlD,eACtCoB,oBAAoBF,UAAU,IAAIH,IACzC;CAED,MAAMoC,aAAaJ,eAAeH,sBAAsBK;CAExD,MAAMG,gBAAgBrD,cACdmB,SAASmC,MAAMC,MAAMA,EAAEvC,QAAQoC,WAAW,IAAIjC,UAAU,IAC9D,CAACA,SAASiC,WACZ,CAAC;CAED,MAAMI,oBAAoBzD,kBAAkB;AAC1C,MAAIqD,WACF9B,YAAW8B,WAAW;IAEvB,CAACA,YAAY9B,SAAS,CAAC;CAE1B,MAAMmC,wBAAwB1D,aAC3B2D,SAAmB;EAClB,MAAMC,SAASD,KAAK;AAEpB,MAAIC,QAAQ;AACV,OAAI,CAACX,aACHG,oBAAmBQ,OAAO;AAG5BpC,oBAAiBoC,OAAO;;IAG5B,CAACX,cAAczB,eACjB,CAAC;CAED,MAAMqC,kBAAkBxD,cAAc2C,MAAMb,YAAY;CAExD,MAAM2B,eAAe7D,eACZ;EACL,GAAG4D;EACH,GAAG5B;EACJ,GACD,CAAC4B,iBAAiB5B,OACpB,CAAC;CAED,MAAM8B,eAAe9D,eACZ;EACLoD;EACA9B;EACAC;EACAC;EACAC;EACAC;EACAC;EACD,GACD;EAACyB;EAAY9B;EAAUC;EAAgBC;EAAMC;EAAOC;EAAMC;EAC5D,CAAC;CAED,MAAMoC,eAAe9B,YAAY;AAEjC,QACE,oBAAC,mBAAmB;EAAS,OAAO6B;YAClC,oBAAC;GACC,GAAInE,gBAAgBoD,MAAM,EAAEiB,YAAY,MAAM,CAAC;GAC1CpB;GACL;GACA,QAAQiB;GACR,IAAId,KAAKV;GAMT,MAAMS,SAASiB,eAAe,UAAUd;aAEvCc,eACC9B,WACEd,UACF,8CACE,oBAAC;IACOK;IACCC;IACDC;IACMC;IACZ,MAAM0B,eAAeY;IACrB,SAASZ,eAAea;IACxB,GAAI/D,WAAWyB,aAAa,EAAEuC,SAASX,mBAAmB,CAAC;cAE1DH,eAAepC;KACV,EACR,qBAAC,OAAK;IAAQ,WAAU;eACtB,oBAAC;KACOO;KACCC;KACDC;KACMC;KACZ,cAAW;KACX,OAAO,EAAEyC,cACP,oBAAC,iBAAc,IAAIA,UAAU,OAAO,SACrC;KACD,GAAItC;MAAa,EAEnB,oBAAC;KACC,eAAc;KACd,cAAcsB,aAAa,CAACA,WAAW,GAAG,EAAE;KAC5C,mBAAmBK;KACnB,GAAI1B;eAEHZ,QAAQkD,KAAK,EAAErD,KAAKC,OAAOqD,WAAW,GAAGC,gBACxC,oBAAC,OAAK;MAEJ,WACED,cAAc,OAAOrD,UAAU,WAAWA,QAAQD;MAEpD,GAAIuD;gBAEHtD;QANID,IAQR,CAAC;MACE;KACM,IACb,GACD;IACc;GACQ;EAGnC;AAEDyB,YAAY+B,cAAc"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/actions/ButtonSplit/context.ts
@@ -1,7 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
- import { TooltipProvider } from "../../overlays/Tooltip/TooltipProvider.js";
5
4
  import { LoadingIcon } from "../../../icons/LoadingIcon.js";
6
5
  import { _CollectionItem } from "../../CollectionItem.js";
7
6
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -148,12 +147,6 @@ function CommandMenu(props, ref) {
148
147
  size,
149
148
  onAction: item_3.onAction
150
149
  }, item_3.key);
151
- if (item_3.props.tooltip) menuItem = /* @__PURE__ */ jsx(TooltipProvider, {
152
- activeWrap: true,
153
- placement: "right",
154
- ...typeof item_3.props.tooltip === "string" ? { title: item_3.props.tooltip } : item_3.props.tooltip,
155
- children: menuItem
156
- }, item_3.key);
157
150
  if (item_3.props.wrapper) menuItem = item_3.props.wrapper(menuItem);
158
151
  items_1.push(React.cloneElement(menuItem, { key: item_3.key }));
159
152
  });