@cube-dev/ui-kit 0.184.0 → 0.185.1

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 (615) hide show
  1. package/README.md +1 -1
  2. package/dist/CHANGELOG.md +40 -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 +1 -1
  24. package/dist/components/actions/ButtonSplit/context.js +1 -1
  25. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  26. package/dist/components/actions/CommandMenu/styled.js +1 -1
  27. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  28. package/dist/components/actions/ItemActionContext.js +1 -1
  29. package/dist/components/actions/ItemActionsWrapper.js +107 -93
  30. package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
  31. package/dist/components/actions/ItemButton/ItemButton.js +6 -3
  32. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  33. package/dist/components/actions/Link/Link.js +1 -1
  34. package/dist/components/actions/Menu/Menu.js +1 -1
  35. package/dist/components/actions/Menu/MenuItem.js +1 -1
  36. package/dist/components/actions/Menu/MenuSection.js +1 -1
  37. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  38. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  39. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  40. package/dist/components/actions/Menu/context.js +1 -1
  41. package/dist/components/actions/Menu/styled.js +1 -1
  42. package/dist/components/actions/actions-run.js +1 -1
  43. package/dist/components/actions/index.js +1 -1
  44. package/dist/components/actions/use-action.js +3 -5
  45. package/dist/components/actions/use-action.js.map +1 -1
  46. package/dist/components/actions/use-anchored-menu.js +1 -1
  47. package/dist/components/actions/use-context-menu.js +1 -1
  48. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  49. package/dist/components/content/Alert/Alert.js +1 -1
  50. package/dist/components/content/Alert/use-alert.js +1 -1
  51. package/dist/components/content/Avatar/Avatar.js +1 -1
  52. package/dist/components/content/Badge/Badge.js +1 -1
  53. package/dist/components/content/Card/Card.js +1 -1
  54. package/dist/components/content/Content.js +1 -1
  55. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  56. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  57. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  58. package/dist/components/content/Divider.js +1 -1
  59. package/dist/components/content/Footer.js +1 -1
  60. package/dist/components/content/Header.js +1 -1
  61. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  62. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  63. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  64. package/dist/components/content/Item/Item.d.ts +7 -0
  65. package/dist/components/content/Item/Item.js +244 -237
  66. package/dist/components/content/Item/Item.js.map +1 -1
  67. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  68. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  69. package/dist/components/content/Layout/GridLayout.js +1 -1
  70. package/dist/components/content/Layout/Layout.js +1 -1
  71. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  72. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  73. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  74. package/dist/components/content/Layout/LayoutContent.js +1 -1
  75. package/dist/components/content/Layout/LayoutContext.js +1 -1
  76. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  77. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  78. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  79. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  80. package/dist/components/content/Layout/LayoutPane.js +1 -1
  81. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  82. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  83. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  84. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  85. package/dist/components/content/Layout/index.js +1 -1
  86. package/dist/components/content/Layout/utils.js +1 -1
  87. package/dist/components/content/Paragraph.js +1 -1
  88. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  89. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  90. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  91. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  92. package/dist/components/content/Result/Result.js +1 -1
  93. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  94. package/dist/components/content/Tag/Tag.js +1 -1
  95. package/dist/components/content/Text.d.ts +14 -14
  96. package/dist/components/content/Text.js +1 -1
  97. package/dist/components/content/TextItem/TextItem.js +1 -1
  98. package/dist/components/content/Title.js +1 -1
  99. package/dist/components/content/Tree/Tree.js +1 -1
  100. package/dist/components/content/Tree/TreeNode.js +1 -1
  101. package/dist/components/content/Tree/styled.js +1 -1
  102. package/dist/components/content/Tree/tree-index.js +1 -1
  103. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  104. package/dist/components/content/Tree/use-load-data.js +1 -1
  105. package/dist/components/content/highlightText.js +1 -1
  106. package/dist/components/content/use-auto-tooltip.js +139 -125
  107. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  108. package/dist/components/data/DataTable/DataTable.js +1 -1
  109. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  110. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  111. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  112. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  113. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  114. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  115. package/dist/components/data/TableBase/RowCollection.js +1 -1
  116. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  117. package/dist/components/data/TableBase/TableRow.js +1 -1
  118. package/dist/components/data/TableBase/TableView.js +1 -1
  119. package/dist/components/data/TableBase/column-menu.js +1 -1
  120. package/dist/components/data/TableBase/column-tint.js +1 -1
  121. package/dist/components/data/TableBase/row-menu.js +1 -1
  122. package/dist/components/data/TableBase/styled.js +1 -1
  123. package/dist/components/data/TableBase/table-tree.js +1 -1
  124. package/dist/components/data/TableBase/types.js +1 -1
  125. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  126. package/dist/components/data/TableBase/use-column-order.js +1 -1
  127. package/dist/components/data/TableBase/use-container-width.js +1 -1
  128. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  129. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  130. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  131. package/dist/components/data/TableBase/use-table-search.js +1 -1
  132. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  133. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  134. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  135. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  136. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  137. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  138. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  139. package/dist/components/fields/Checkbox/context.js +1 -1
  140. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  141. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  142. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  143. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  144. package/dist/components/fields/ComboBox/ComboBox.js +90 -43
  145. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  146. package/dist/components/fields/CommandTextArea/CommandTextArea.js +3 -2
  147. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  148. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  149. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  150. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  151. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  152. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  153. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  154. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  155. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  156. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  157. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  158. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  159. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  160. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  161. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  162. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  163. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  164. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  165. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  166. package/dist/components/fields/DatePicker/period.js +1 -1
  167. package/dist/components/fields/DatePicker/props.js +1 -1
  168. package/dist/components/fields/DatePicker/utils.js +1 -1
  169. package/dist/components/fields/FileInput/FileInput.js +1 -1
  170. package/dist/components/fields/FilterListBox/FilterListBox.js +28 -18
  171. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  172. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  173. package/dist/components/fields/Input/Input.js +1 -1
  174. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  175. package/dist/components/fields/ListBox/ListBox.d.ts +2 -2
  176. package/dist/components/fields/ListBox/ListBox.js +1 -2
  177. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  178. package/dist/components/fields/ListBox/optionId.js +16 -0
  179. package/dist/components/fields/ListBox/optionId.js.map +1 -0
  180. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +120 -110
  181. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  182. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  183. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +44 -22
  184. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
  185. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  186. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  187. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  188. package/dist/components/fields/Picker/Picker.js +1 -1
  189. package/dist/components/fields/RadioGroup/Radio.d.ts +2 -2
  190. package/dist/components/fields/RadioGroup/Radio.js +3 -3
  191. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  192. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  193. package/dist/components/fields/RadioGroup/context.js +1 -1
  194. package/dist/components/fields/SearchComboBox/SearchComboBox.js +3 -2
  195. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  196. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  197. package/dist/components/fields/Select/Select.js +3 -2
  198. package/dist/components/fields/Select/Select.js.map +1 -1
  199. package/dist/components/fields/Slider/Gradation.js +1 -1
  200. package/dist/components/fields/Slider/HueSlider.js +1 -1
  201. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  202. package/dist/components/fields/Slider/Slider.js +1 -1
  203. package/dist/components/fields/Slider/SliderBase.js +1 -1
  204. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  205. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  206. package/dist/components/fields/Slider/elements.js +1 -1
  207. package/dist/components/fields/Slider/index.js +1 -1
  208. package/dist/components/fields/Switch/Switch.js +1 -1
  209. package/dist/components/fields/TagInput/TagInput.d.ts +182 -0
  210. package/dist/components/fields/TagInput/TagInput.js +1856 -0
  211. package/dist/components/fields/TagInput/TagInput.js.map +1 -0
  212. package/dist/components/fields/TagInput/TagList.js +355 -0
  213. package/dist/components/fields/TagInput/TagList.js.map +1 -0
  214. package/dist/components/fields/TagInput/index.d.ts +2 -0
  215. package/dist/components/fields/TextArea/TextArea.js +1 -1
  216. package/dist/components/fields/TextInput/TextInput.js +1 -1
  217. package/dist/components/fields/TextInput/TextInputBase.d.ts +6 -0
  218. package/dist/components/fields/TextInput/TextInputBase.js +8 -6
  219. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  220. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  221. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  222. package/dist/components/fields/TriggerActions.js +1 -1
  223. package/dist/components/fields/color/ColorPanel.js +1 -1
  224. package/dist/components/fields/color/channels.js +1 -1
  225. package/dist/components/fields/color/color.js +1 -1
  226. package/dist/components/fields/color/context.js +1 -1
  227. package/dist/components/fields/index.d.ts +2 -0
  228. package/dist/components/form/FieldWrapper/FieldWrapper.js +13 -2
  229. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  230. package/dist/components/form/Form/Field.js +1 -1
  231. package/dist/components/form/Form/Form.js +1 -1
  232. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  233. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  234. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  235. package/dist/components/form/Form/SubmitError.js +1 -1
  236. package/dist/components/form/Form/backend.js +1 -1
  237. package/dist/components/form/Form/index.js +1 -1
  238. package/dist/components/form/Form/modern/actions.js +1 -1
  239. package/dist/components/form/Form/modern/context.js +1 -1
  240. package/dist/components/form/Form/modern/controller.js +1 -1
  241. package/dist/components/form/Form/modern/field-binding.js +1 -1
  242. package/dist/components/form/Form/modern/field.js +1 -1
  243. package/dist/components/form/Form/modern/react.js +1 -1
  244. package/dist/components/form/Form/modern/store.js +1 -1
  245. package/dist/components/form/Form/modern/validation.js +1 -1
  246. package/dist/components/form/Form/modern/values.js +1 -1
  247. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  248. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  249. package/dist/components/form/Form/use-field/use-field.js +1 -1
  250. package/dist/components/form/Form/use-form.js +1 -1
  251. package/dist/components/form/Form/validation.js +1 -1
  252. package/dist/components/form/Label.js +1 -1
  253. package/dist/components/form/legacy-tooltip.js +1 -1
  254. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  255. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  256. package/dist/components/form/validation/use-validation-props.js +1 -1
  257. package/dist/components/form/wrapper.js +1 -1
  258. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  259. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  260. package/dist/components/layout/Board/Board.js +1 -1
  261. package/dist/components/layout/Board/BoardProvider.js +1 -1
  262. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  263. package/dist/components/layout/Board/Widget.js +1 -1
  264. package/dist/components/layout/Board/WidgetHost.js +1 -1
  265. package/dist/components/layout/Board/board-context.js +1 -1
  266. package/dist/components/layout/Board/board-store.js +1 -1
  267. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  268. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  269. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  270. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  271. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  272. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  273. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  274. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  275. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  276. package/dist/components/layout/Board/index.js +1 -1
  277. package/dist/components/layout/Board/responsive-utils.js +1 -1
  278. package/dist/components/layout/Board/use-board-layout.js +1 -1
  279. package/dist/components/layout/Board/use-board-registry.js +1 -1
  280. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  281. package/dist/components/layout/Board/use-board-selection.js +1 -1
  282. package/dist/components/layout/Flex.js +1 -1
  283. package/dist/components/layout/Flow.js +1 -1
  284. package/dist/components/layout/Grid.js +1 -1
  285. package/dist/components/layout/Panel.js +1 -1
  286. package/dist/components/layout/Prefix.js +1 -1
  287. package/dist/components/layout/ResizablePanel.js +1 -1
  288. package/dist/components/layout/Space.js +1 -1
  289. package/dist/components/layout/Suffix.js +1 -1
  290. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  291. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  292. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  293. package/dist/components/navigation/Tabs/TabButton.js +3 -2
  294. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  295. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  296. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  297. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  298. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  299. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  300. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  301. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  302. package/dist/components/navigation/Tabs/styled.js +1 -1
  303. package/dist/components/navigation/Tabs/types.d.ts +1 -1
  304. package/dist/components/navigation/Tabs/types.js +1 -1
  305. package/dist/components/navigation/Tabs/types.js.map +1 -1
  306. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  307. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  308. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  309. package/dist/components/other/Calendar/Calendar.js +1 -1
  310. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  311. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  312. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  313. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  314. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  315. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  316. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  317. package/dist/components/other/Calendar/styled.js +1 -1
  318. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  319. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  320. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  321. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  322. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  323. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  324. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  325. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  326. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  327. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  328. package/dist/components/overlays/Dialog/context.js +1 -1
  329. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  330. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  331. package/dist/components/overlays/Modal/Modal.js +1 -1
  332. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  333. package/dist/components/overlays/Modal/Overlay.js +1 -1
  334. package/dist/components/overlays/Modal/Popover.js +1 -1
  335. package/dist/components/overlays/Modal/Tray.js +1 -1
  336. package/dist/components/overlays/Modal/Underlay.js +1 -1
  337. package/dist/components/overlays/Notifications/Notification.js +1 -1
  338. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  339. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  340. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  341. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  342. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  343. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  344. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  345. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  346. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  347. package/dist/components/overlays/Notifications/index.js +1 -1
  348. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  349. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  350. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  351. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  352. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  353. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  354. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  355. package/dist/components/overlays/Toast/index.js +1 -1
  356. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  357. package/dist/components/overlays/Toast/useToast.js +1 -1
  358. package/dist/components/overlays/Tooltip/Tooltip.js +14 -12
  359. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  360. package/dist/components/overlays/Tooltip/TooltipProvider.d.ts +6 -0
  361. package/dist/components/overlays/Tooltip/TooltipProvider.js +43 -38
  362. package/dist/components/overlays/Tooltip/TooltipProvider.js.map +1 -1
  363. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  364. package/dist/components/overlays/Tooltip/context.js +1 -1
  365. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  366. package/dist/components/portal/Portal.js +1 -1
  367. package/dist/components/portal/PortalProvider.js +1 -1
  368. package/dist/components/portal/usePortal.js +1 -1
  369. package/dist/components/shared/DraggableCollection.js +1 -1
  370. package/dist/components/shared/InvalidIcon.js +1 -1
  371. package/dist/components/shared/ValidIcon.js +1 -1
  372. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  373. package/dist/components/status/Spin/Cube.js +1 -1
  374. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  375. package/dist/components/status/Spin/Spin.js +1 -1
  376. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  377. package/dist/data/item-themes.js +1 -1
  378. package/dist/data/themes.js +1 -1
  379. package/dist/eslint-plugin/defaults.generated.js +47 -1
  380. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  381. package/dist/eslint-plugin/index.js +1 -1
  382. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  383. package/dist/i18n/I18nProvider.js +1 -1
  384. package/dist/i18n/createFormatter.js +1 -1
  385. package/dist/i18n/index.js +1 -1
  386. package/dist/i18n/instance.js +1 -1
  387. package/dist/i18n/locales/de-DE/uikit.js +18 -1
  388. package/dist/i18n/locales/en-US/uikit.js +18 -1
  389. package/dist/i18n/locales/en-US/uikit.json.d.ts +22 -2
  390. package/dist/i18n/locales/es-ES/uikit.js +18 -1
  391. package/dist/i18n/locales/es-MX/uikit.js +18 -1
  392. package/dist/i18n/locales/fr-FR/uikit.js +18 -1
  393. package/dist/i18n/locales/it-IT/uikit.js +18 -1
  394. package/dist/i18n/locales/ja-JP/uikit.js +18 -1
  395. package/dist/i18n/locales/nb-NO/uikit.js +18 -1
  396. package/dist/i18n/locales/pt-BR/uikit.js +18 -1
  397. package/dist/i18n/locales/pt-PT/uikit.js +18 -1
  398. package/dist/i18n/locales/sv-SE/uikit.js +18 -1
  399. package/dist/i18n/locales/vi-VN/uikit.js +18 -1
  400. package/dist/i18n/locales.js +1 -1
  401. package/dist/i18n/useFormatter.js +1 -1
  402. package/dist/i18n/useI18n.js +1 -1
  403. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  404. package/dist/icons/AdjustmentsIcon.js +1 -1
  405. package/dist/icons/AiIcon.js +1 -1
  406. package/dist/icons/AreaChartIcon.js +1 -1
  407. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  408. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  409. package/dist/icons/BackwardIcon.js +1 -1
  410. package/dist/icons/BarChartIcon.js +1 -1
  411. package/dist/icons/BellFilledIcon.js +1 -1
  412. package/dist/icons/BellIcon.js +1 -1
  413. package/dist/icons/BooleanIcon.js +1 -1
  414. package/dist/icons/CalendarEditIcon.js +1 -1
  415. package/dist/icons/CalendarIcon.js +1 -1
  416. package/dist/icons/CaretDownIcon.js +1 -1
  417. package/dist/icons/CaretUpIcon.js +1 -1
  418. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  419. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  420. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  421. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  422. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  423. package/dist/icons/ChartBarLineIcon.js +1 -1
  424. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  425. package/dist/icons/ChartBarStackedIcon.js +1 -1
  426. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  427. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  428. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  429. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  430. package/dist/icons/ChartBubbleIcon.js +1 -1
  431. package/dist/icons/ChartDonut2Icon.js +1 -1
  432. package/dist/icons/ChartFunnelIcon.js +1 -1
  433. package/dist/icons/ChartHeatmapIcon.js +1 -1
  434. package/dist/icons/ChartKPIIcon.js +1 -1
  435. package/dist/icons/ChartPie2Icon.js +1 -1
  436. package/dist/icons/ChartScatterIcon.js +1 -1
  437. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  438. package/dist/icons/CheckCircleIcon.js +1 -1
  439. package/dist/icons/CheckIcon.js +1 -1
  440. package/dist/icons/CircleFilledIcon.js +1 -1
  441. package/dist/icons/ClearIcon.js +1 -1
  442. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  443. package/dist/icons/CloseCircleIcon.js +1 -1
  444. package/dist/icons/CloseIcon.js +1 -1
  445. package/dist/icons/CodeIcon.js +1 -1
  446. package/dist/icons/ColumnTotalIcon.js +1 -1
  447. package/dist/icons/CopyIcon.js +1 -1
  448. package/dist/icons/CountIcon.js +1 -1
  449. package/dist/icons/CubeIcon.js +1 -1
  450. package/dist/icons/CubePauseIcon.js +1 -1
  451. package/dist/icons/CubePlayIcon.js +1 -1
  452. package/dist/icons/CurrencyDollarIcon.js +1 -1
  453. package/dist/icons/DangerIcon.js +1 -1
  454. package/dist/icons/DashboardIcon.js +1 -1
  455. package/dist/icons/DatabaseIcon.js +1 -1
  456. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  457. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  458. package/dist/icons/DirectionIcon.js +1 -1
  459. package/dist/icons/DonutIcon.js +1 -1
  460. package/dist/icons/DownIcon.js +1 -1
  461. package/dist/icons/EditIcon.js +1 -1
  462. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  463. package/dist/icons/ExclamationCircleIcon.js +1 -1
  464. package/dist/icons/ExclamationIcon.js +1 -1
  465. package/dist/icons/EyeIcon.js +1 -1
  466. package/dist/icons/EyeInvisibleIcon.js +1 -1
  467. package/dist/icons/FilterIcon.js +1 -1
  468. package/dist/icons/FolderFilledIcon.js +1 -1
  469. package/dist/icons/FolderIcon.js +1 -1
  470. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  471. package/dist/icons/FolderOpenIcon.js +1 -1
  472. package/dist/icons/ForwardIcon.js +1 -1
  473. package/dist/icons/GripVerticalIcon.js +1 -1
  474. package/dist/icons/HierarchyIcon.js +1 -1
  475. package/dist/icons/HierarchyOpenIcon.js +1 -1
  476. package/dist/icons/Icon.js +1 -1
  477. package/dist/icons/InfoCircleIcon.js +1 -1
  478. package/dist/icons/InfoIcon.js +1 -1
  479. package/dist/icons/KeyIcon.js +1 -1
  480. package/dist/icons/LeftIcon.js +1 -1
  481. package/dist/icons/LineChartIcon.js +1 -1
  482. package/dist/icons/LoadingIcon.js +1 -1
  483. package/dist/icons/LockFilledIcon.js +1 -1
  484. package/dist/icons/LockIcon.js +1 -1
  485. package/dist/icons/MoreIcon.js +1 -1
  486. package/dist/icons/NotAllowedIcon.js +1 -1
  487. package/dist/icons/Number123Icon.js +1 -1
  488. package/dist/icons/NumberIcon.js +1 -1
  489. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  490. package/dist/icons/PauseCircleIcon.js +1 -1
  491. package/dist/icons/PauseIcon.js +1 -1
  492. package/dist/icons/PercentageIcon.js +1 -1
  493. package/dist/icons/PieChartIcon.js +1 -1
  494. package/dist/icons/PipetteIcon.js +1 -1
  495. package/dist/icons/PlayCircleIcon.js +1 -1
  496. package/dist/icons/PlayIcon.js +1 -1
  497. package/dist/icons/PlusIcon.js +1 -1
  498. package/dist/icons/ProgressBarIcon.js +1 -1
  499. package/dist/icons/ReloadIcon.js +1 -1
  500. package/dist/icons/ReportIcon.js +1 -1
  501. package/dist/icons/ReturnIcon.js +1 -1
  502. package/dist/icons/RightIcon.js +1 -1
  503. package/dist/icons/RowTotalsIcon.js +1 -1
  504. package/dist/icons/SchemeIcon.js +1 -1
  505. package/dist/icons/SearchIcon.js +1 -1
  506. package/dist/icons/SemanticQueryIcon.js +1 -1
  507. package/dist/icons/SettingsIcon.js +1 -1
  508. package/dist/icons/ShieldFilledIcon.js +1 -1
  509. package/dist/icons/ShieldIcon.js +1 -1
  510. package/dist/icons/SlashIcon.js +1 -1
  511. package/dist/icons/SparklesIcon.js +1 -1
  512. package/dist/icons/SqlIcon.js +1 -1
  513. package/dist/icons/StatsIcon.js +1 -1
  514. package/dist/icons/StopIcon.js +1 -1
  515. package/dist/icons/StringIcon.js +1 -1
  516. package/dist/icons/SubtotalsIcon.js +1 -1
  517. package/dist/icons/SwitchIcon.js +1 -1
  518. package/dist/icons/TableIcon.js +1 -1
  519. package/dist/icons/ThumbsDownIcon.js +1 -1
  520. package/dist/icons/ThumbsUpIcon.js +1 -1
  521. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  522. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  523. package/dist/icons/ThunderboltIcon.js +1 -1
  524. package/dist/icons/TimeIcon.js +1 -1
  525. package/dist/icons/TrashIcon.js +1 -1
  526. package/dist/icons/UnlockIcon.js +1 -1
  527. package/dist/icons/UpIcon.js +1 -1
  528. package/dist/icons/UserGroupIcon.js +1 -1
  529. package/dist/icons/UserIcon.js +1 -1
  530. package/dist/icons/UserLockIcon.js +1 -1
  531. package/dist/icons/ViewIcon.js +1 -1
  532. package/dist/icons/WarningFilledIcon.js +1 -1
  533. package/dist/icons/WarningIcon.js +1 -1
  534. package/dist/icons/wrap-icon.js +1 -1
  535. package/dist/index.d.ts +2 -1
  536. package/dist/index.js +3 -2
  537. package/dist/index.js.map +1 -1
  538. package/dist/probe/canonicalize.js +1 -1
  539. package/dist/probe/css.js +1 -1
  540. package/dist/probe/index.js +1 -1
  541. package/dist/provider.js +1 -1
  542. package/dist/providers/TrackingProvider.js +1 -1
  543. package/dist/providers/navigationAdapter.default.js +1 -1
  544. package/dist/tokens/all-tokens.js +1 -1
  545. package/dist/tokens/base.js +1 -1
  546. package/dist/tokens/color-seed.js +1 -1
  547. package/dist/tokens/color-theme.js +4 -5
  548. package/dist/tokens/color-theme.js.map +1 -1
  549. package/dist/tokens/colors.js +1 -1
  550. package/dist/tokens/layout.js +1 -1
  551. package/dist/tokens/lazy-styles.js +1 -1
  552. package/dist/tokens/legacy-color.js +1 -1
  553. package/dist/tokens/palette-config.d.ts +5 -0
  554. package/dist/tokens/palette-config.js +30 -7
  555. package/dist/tokens/palette-config.js.map +1 -1
  556. package/dist/tokens/palette.js +1 -1
  557. package/dist/tokens/resolve.js +1 -1
  558. package/dist/tokens/shadows.js +1 -1
  559. package/dist/tokens/sizes.js +1 -1
  560. package/dist/tokens/spacing.js +1 -1
  561. package/dist/tokens/typography.d.ts +1 -0
  562. package/dist/tokens/typography.js +10 -1
  563. package/dist/tokens/typography.js.map +1 -1
  564. package/dist/utils/ResizeSensor.js +1 -1
  565. package/dist/utils/colors.js +1 -1
  566. package/dist/utils/dotize.js +1 -1
  567. package/dist/utils/is-dev-env.js +1 -1
  568. package/dist/utils/modules.js +1 -1
  569. package/dist/utils/promise.js +1 -1
  570. package/dist/utils/raf.js +1 -1
  571. package/dist/utils/random.js +1 -1
  572. package/dist/utils/range.js +1 -1
  573. package/dist/utils/react/RenderCache.js +1 -1
  574. package/dist/utils/react/Slots.js +1 -1
  575. package/dist/utils/react/chain.js +1 -1
  576. package/dist/utils/react/disabledProps.js +1 -1
  577. package/dist/utils/react/escapePropagation.js +1 -1
  578. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  579. package/dist/utils/react/index.js +1 -1
  580. package/dist/utils/react/interactions.js +1 -1
  581. package/dist/utils/react/isTextOnly.js +1 -1
  582. package/dist/utils/react/mapProps.js +1 -1
  583. package/dist/utils/react/mergeProps.js +1 -1
  584. package/dist/utils/react/nullableValue.js +1 -1
  585. package/dist/utils/react/programmaticFocus.js +1 -1
  586. package/dist/utils/react/resolveIcon.js +1 -1
  587. package/dist/utils/react/sharedStore.js +1 -1
  588. package/dist/utils/react/useBufferedValue.js +1 -1
  589. package/dist/utils/react/useCombinedRefs.js +1 -1
  590. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  591. package/dist/utils/react/useEventBus.js +1 -1
  592. package/dist/utils/react/useId.js +1 -1
  593. package/dist/utils/react/useIsDarwin.js +1 -1
  594. package/dist/utils/react/useKeySymbols.js +1 -1
  595. package/dist/utils/react/useLayoutEffect.js +1 -1
  596. package/dist/utils/react/useLocalStorage.js +1 -1
  597. package/dist/utils/react/useMergeStyles.js +1 -1
  598. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  599. package/dist/utils/react/usePopoverSync.js +1 -1
  600. package/dist/utils/react/useQaProps.js +1 -1
  601. package/dist/utils/react/useScheme.js +1 -1
  602. package/dist/utils/react/useViewportSize.js +1 -1
  603. package/dist/utils/react/wrapNodeIfPlain.js +3 -4
  604. package/dist/utils/react/wrapNodeIfPlain.js.map +1 -1
  605. package/dist/utils/selection.js +1 -1
  606. package/dist/utils/styles.js +1 -1
  607. package/dist/utils/tree.js +1 -1
  608. package/dist/utils/warnings.js +1 -1
  609. package/dist/version.js +2 -2
  610. package/docs/Usage.md +10 -9
  611. package/docs/components/actions/ItemButton.md +2 -2
  612. package/docs/components/fields/TagInput.md +429 -0
  613. package/docs/components/overlays/TooltipProvider.md +1 -0
  614. package/package.json +1 -1
  615. package/tasty.config.ts +2 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { isDevEnvOrTest } from "../../../utils/is-dev-env.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { _Text } from "./Text.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,16 +1,41 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { TooltipProvider } from "../overlays/Tooltip/TooltipProvider.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { useEffect, useRef, useState } from "react";
5
5
  import { jsx } from "react/jsx-runtime";
6
+ import { flushSync } from "react-dom";
6
7
 
7
8
  //#region src/components/content/use-auto-tooltip.tsx
8
9
  function assignRef(ref, element) {
9
10
  if (typeof ref === "function") ref(element);
10
11
  else if (ref) ref.current = element;
11
12
  }
13
+ /** Overflow checks queued for the end of the current task, from every label. */
14
+ const pendingOverflowChecks = /* @__PURE__ */ new Set();
15
+ /**
16
+ * Runs every queued check in one pass and commits the verdicts that changed in
17
+ * one synchronous render.
18
+ *
19
+ * All reads happen before React touches the DOM again, so they share one
20
+ * layout. `flushSync` applies the verdicts, and the `TooltipProvider` remounts
21
+ * they cause, before paint and before any other task, so code that looks the
22
+ * label up after this task gets the node the verdict leaves in place, not one
23
+ * about to be replaced. Outside a React commit this is an ordinary sync
24
+ * render, not a nested update.
25
+ */
26
+ function runOverflowChecks() {
27
+ const checks = Array.from(pendingOverflowChecks);
28
+ pendingOverflowChecks.clear();
29
+ flushSync(() => {
30
+ for (const check of checks) check();
31
+ });
32
+ }
33
+ function queueOverflowCheck(check) {
34
+ if (!pendingOverflowChecks.size) queueMicrotask(runOverflowChecks);
35
+ pendingOverflowChecks.add(check);
36
+ }
12
37
  function useAutoTooltip(t0) {
13
- const $ = c(37);
38
+ const $ = c(36);
14
39
  const { tooltip, children, labelProps, isDynamicLabel: t1, labelRef: labelRefOption } = t0;
15
40
  const isDynamicLabel = t1 === void 0 ? false : t1;
16
41
  let t2;
@@ -38,52 +63,61 @@ function useAutoTooltip(t0) {
38
63
  const [isLabelOverflowed, setIsLabelOverflowed] = useState(false);
39
64
  const elementRef = useRef(null);
40
65
  const resizeObserverRef = useRef(null);
41
- const measurePendingRef = useRef(false);
66
+ const verdictRef = useRef(false);
42
67
  let t3;
43
68
  if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
44
- t3 = () => {
45
- const label = elementRef.current;
46
- if (!label) return;
47
- setIsLabelOverflowed(label.scrollWidth > label.clientWidth);
69
+ t3 = (value) => {
70
+ if (verdictRef.current === value) return;
71
+ verdictRef.current = value;
72
+ setIsLabelOverflowed(value);
48
73
  };
49
74
  $[0] = t3;
50
75
  } else t3 = $[0];
51
- const checkLabelOverflow = t3;
76
+ const setVerdict = t3;
52
77
  let t4;
53
78
  if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
54
79
  t4 = () => {
55
- if (measurePendingRef.current) return;
56
- measurePendingRef.current = true;
57
- queueMicrotask(() => {
58
- measurePendingRef.current = false;
59
- checkLabelOverflow();
60
- });
80
+ const label = elementRef.current;
81
+ if (!label) return;
82
+ setVerdict(label.scrollWidth > label.clientWidth);
61
83
  };
62
84
  $[1] = t4;
63
85
  } else t4 = $[1];
64
- const scheduleLabelOverflowCheck = t4;
86
+ const checkLabelOverflow = t4;
65
87
  let t5;
66
- let t6;
67
- if ($[2] !== isAutoTooltipEnabled) {
88
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
68
89
  t5 = () => {
90
+ queueOverflowCheck(checkLabelOverflow);
91
+ };
92
+ $[2] = t5;
93
+ } else t5 = $[2];
94
+ const scheduleLabelOverflowCheck = t5;
95
+ let t6;
96
+ let t7;
97
+ if ($[3] !== isAutoTooltipEnabled) {
98
+ t6 = () => {
69
99
  if (isAutoTooltipEnabled) {
70
- checkLabelOverflow();
100
+ scheduleLabelOverflowCheck();
71
101
  return;
72
102
  }
73
- setIsLabelOverflowed(false);
103
+ setVerdict(false);
74
104
  };
75
- t6 = [isAutoTooltipEnabled, checkLabelOverflow];
76
- $[2] = isAutoTooltipEnabled;
77
- $[3] = t5;
105
+ t7 = [
106
+ isAutoTooltipEnabled,
107
+ scheduleLabelOverflowCheck,
108
+ setVerdict
109
+ ];
110
+ $[3] = isAutoTooltipEnabled;
78
111
  $[4] = t6;
112
+ $[5] = t7;
79
113
  } else {
80
- t5 = $[3];
81
114
  t6 = $[4];
115
+ t7 = $[5];
82
116
  }
83
- useEffect(t5, t6);
84
- let t7;
85
- if ($[5] !== externalLabelRef || $[6] !== isAutoTooltipEnabled || $[7] !== labelRefOption) {
86
- t7 = (element) => {
117
+ useEffect(t6, t7);
118
+ let t8;
119
+ if ($[6] !== externalLabelRef || $[7] !== isAutoTooltipEnabled || $[8] !== labelRefOption) {
120
+ t8 = (element) => {
87
121
  assignRef(externalLabelRef, element);
88
122
  assignRef(labelRefOption, element);
89
123
  if (resizeObserverRef.current) {
@@ -94,7 +128,7 @@ function useAutoTooltip(t0) {
94
128
  }
95
129
  elementRef.current = element;
96
130
  if (!isAutoTooltipEnabled) {
97
- setIsLabelOverflowed(false);
131
+ setVerdict(false);
98
132
  return;
99
133
  }
100
134
  if (!element) return;
@@ -105,122 +139,102 @@ function useAutoTooltip(t0) {
105
139
  resizeObserverRef.current = obs;
106
140
  obs.observe(element);
107
141
  };
108
- $[5] = externalLabelRef;
109
- $[6] = isAutoTooltipEnabled;
110
- $[7] = labelRefOption;
111
- $[8] = t7;
112
- } else t7 = $[8];
113
- const handleLabelElementRef = t7;
114
- let t8;
115
- let t9;
116
- if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
117
- t8 = () => () => {
118
- if (resizeObserverRef.current) {
119
- try {
120
- resizeObserverRef.current.disconnect();
121
- } catch {}
122
- resizeObserverRef.current = null;
123
- }
124
- elementRef.current = null;
125
- };
126
- t9 = [];
142
+ $[6] = externalLabelRef;
143
+ $[7] = isAutoTooltipEnabled;
144
+ $[8] = labelRefOption;
127
145
  $[9] = t8;
128
- $[10] = t9;
129
- } else {
130
- t8 = $[9];
131
- t9 = $[10];
132
- }
133
- useEffect(t8, t9);
134
- let t10;
135
- if ($[11] !== labelProps) {
136
- t10 = labelProps || {};
137
- $[11] = labelProps;
138
- $[12] = t10;
139
- } else t10 = $[12];
146
+ } else t8 = $[9];
147
+ const handleLabelElementRef = t8;
148
+ let t9;
149
+ if ($[10] !== labelProps) {
150
+ t9 = labelProps || {};
151
+ $[10] = labelProps;
152
+ $[11] = t9;
153
+ } else t9 = $[11];
140
154
  let props;
141
- if ($[13] !== t10) {
142
- props = { ...t10 };
155
+ if ($[12] !== t9) {
156
+ props = { ...t9 };
143
157
  delete props.ref;
144
- $[13] = t10;
145
- $[14] = props;
146
- } else props = $[14];
158
+ $[12] = t9;
159
+ $[13] = props;
160
+ } else props = $[13];
147
161
  const finalLabelProps = props;
148
- let t11;
162
+ let t10;
149
163
  bb1: {
150
164
  if (!tooltip) {
151
- t11 = null;
165
+ t10 = null;
152
166
  break bb1;
153
167
  }
154
168
  if (typeof tooltip === "string") {
155
- let t12;
156
- if ($[15] !== tooltip) {
157
- t12 = { title: tooltip };
158
- $[15] = tooltip;
159
- $[16] = t12;
160
- } else t12 = $[16];
161
- t11 = t12;
169
+ let t11;
170
+ if ($[14] !== tooltip) {
171
+ t11 = { title: tooltip };
172
+ $[14] = tooltip;
173
+ $[15] = t11;
174
+ } else t11 = $[15];
175
+ t10 = t11;
162
176
  break bb1;
163
177
  }
164
178
  const hasAutoContent = !!(children || labelProps) && (isLabelOverflowed || isDynamicLabel);
165
179
  if (tooltip === true) {
166
180
  if (!hasAutoContent) {
167
- t11 = null;
181
+ t10 = null;
168
182
  break bb1;
169
183
  }
170
- const t12 = !isLabelOverflowed && isDynamicLabel;
171
- let t13;
172
- if ($[17] !== children || $[18] !== t12) {
173
- t13 = {
184
+ const t11 = !isLabelOverflowed && isDynamicLabel;
185
+ let t12;
186
+ if ($[16] !== children || $[17] !== t11) {
187
+ t12 = {
174
188
  title: children,
175
- isDisabled: t12
189
+ isDisabled: t11
176
190
  };
177
- $[17] = children;
191
+ $[16] = children;
192
+ $[17] = t11;
178
193
  $[18] = t12;
179
- $[19] = t13;
180
- } else t13 = $[19];
181
- t11 = t13;
194
+ } else t12 = $[18];
195
+ t10 = t12;
182
196
  break bb1;
183
197
  }
184
198
  let auto;
185
199
  let tooltipProps;
186
- if ($[20] !== tooltip) {
200
+ if ($[19] !== tooltip) {
187
201
  ({auto, ...tooltipProps} = tooltip);
188
- $[20] = tooltip;
189
- $[21] = auto;
190
- $[22] = tooltipProps;
202
+ $[19] = tooltip;
203
+ $[20] = auto;
204
+ $[21] = tooltipProps;
191
205
  } else {
192
- auto = $[21];
193
- tooltipProps = $[22];
206
+ auto = $[20];
207
+ tooltipProps = $[21];
194
208
  }
195
209
  if (tooltipProps.title && auto !== true) {
196
- t11 = tooltipProps;
210
+ t10 = tooltipProps;
197
211
  break bb1;
198
212
  }
199
213
  if (!hasAutoContent) {
200
- t11 = null;
214
+ t10 = null;
201
215
  break bb1;
202
216
  }
203
- const t12 = tooltipProps.title ?? children;
204
- const t13 = !isLabelOverflowed && isDynamicLabel && tooltipProps.isDisabled !== true;
205
- let t14;
206
- if ($[23] !== t12 || $[24] !== t13 || $[25] !== tooltipProps) {
207
- t14 = {
208
- title: t12,
209
- isDisabled: t13,
217
+ const t11 = tooltipProps.title ?? children;
218
+ const t12 = !isLabelOverflowed && isDynamicLabel && tooltipProps.isDisabled !== true;
219
+ let t13;
220
+ if ($[22] !== t11 || $[23] !== t12 || $[24] !== tooltipProps) {
221
+ t13 = {
222
+ title: t11,
223
+ isDisabled: t12,
210
224
  ...tooltipProps
211
225
  };
226
+ $[22] = t11;
212
227
  $[23] = t12;
213
- $[24] = t13;
214
- $[25] = tooltipProps;
215
- $[26] = t14;
216
- } else t14 = $[26];
217
- t11 = t14;
228
+ $[24] = tooltipProps;
229
+ $[25] = t13;
230
+ } else t13 = $[25];
231
+ t10 = t13;
218
232
  }
219
- const resolvedTooltip = t11;
233
+ const resolvedTooltip = t10;
220
234
  const isTooltipActive = !!resolvedTooltip && resolvedTooltip.isDisabled !== true;
221
- let t12;
222
- if ($[27] !== resolvedTooltip) {
223
- t12 = (renderElement, defaultTooltipPlacement) => {
235
+ let t11;
236
+ if ($[26] !== resolvedTooltip) {
237
+ t11 = (renderElement, defaultTooltipPlacement) => {
224
238
  if (!resolvedTooltip) return renderElement();
225
239
  return /* @__PURE__ */ jsx(TooltipProvider, {
226
240
  placement: defaultTooltipPlacement,
@@ -228,32 +242,32 @@ function useAutoTooltip(t0) {
228
242
  children: (triggerProps, ref) => renderElement(triggerProps, ref)
229
243
  });
230
244
  };
231
- $[27] = resolvedTooltip;
232
- $[28] = t12;
233
- } else t12 = $[28];
234
- const renderWithTooltip = t12;
235
- const t13 = !!tooltip;
236
- let t14;
237
- if ($[29] !== finalLabelProps || $[30] !== handleLabelElementRef || $[31] !== isAutoTooltipEnabled || $[32] !== isLabelOverflowed || $[33] !== isTooltipActive || $[34] !== renderWithTooltip || $[35] !== t13) {
238
- t14 = {
245
+ $[26] = resolvedTooltip;
246
+ $[27] = t11;
247
+ } else t11 = $[27];
248
+ const renderWithTooltip = t11;
249
+ const t12 = !!tooltip;
250
+ let t13;
251
+ if ($[28] !== finalLabelProps || $[29] !== handleLabelElementRef || $[30] !== isAutoTooltipEnabled || $[31] !== isLabelOverflowed || $[32] !== isTooltipActive || $[33] !== renderWithTooltip || $[34] !== t12) {
252
+ t13 = {
239
253
  labelRef: handleLabelElementRef,
240
254
  labelProps: finalLabelProps,
241
255
  isLabelOverflowed,
242
256
  isAutoTooltipEnabled,
243
- hasTooltip: t13,
257
+ hasTooltip: t12,
244
258
  isTooltipActive,
245
259
  renderWithTooltip
246
260
  };
247
- $[29] = finalLabelProps;
248
- $[30] = handleLabelElementRef;
249
- $[31] = isAutoTooltipEnabled;
250
- $[32] = isLabelOverflowed;
251
- $[33] = isTooltipActive;
252
- $[34] = renderWithTooltip;
261
+ $[28] = finalLabelProps;
262
+ $[29] = handleLabelElementRef;
263
+ $[30] = isAutoTooltipEnabled;
264
+ $[31] = isLabelOverflowed;
265
+ $[32] = isTooltipActive;
266
+ $[33] = renderWithTooltip;
267
+ $[34] = t12;
253
268
  $[35] = t13;
254
- $[36] = t14;
255
- } else t14 = $[36];
256
- return t14;
269
+ } else t13 = $[35];
270
+ return t13;
257
271
  }
258
272
 
259
273
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"use-auto-tooltip.js","names":["HTMLAttributes","ReactNode","Ref","RefObject","useCallback","useEffect","useMemo","useRef","useState","OverlayProps","CubeTooltipProviderProps","TooltipProvider","Props","AutoTooltipValue","Omit","auto","UseAutoTooltipOptions","tooltip","children","labelProps","isDynamicLabel","labelRef","HTMLElement","assignRef","ref","element","current","useAutoTooltip","t0","$","_c","t1","labelRefOption","undefined","t2","bb0","title","autoValue","isAutoTooltipEnabled","externalLabelRef","isLabelOverflowed","setIsLabelOverflowed","elementRef","resizeObserverRef","measurePendingRef","t3","Symbol","for","label","scrollWidth","clientWidth","checkLabelOverflow","t4","queueMicrotask","scheduleLabelOverflowCheck","t5","t6","t7","disconnect","obs","ResizeObserver","observe","handleLabelElementRef","t8","t9","t10","props","finalLabelProps","t11","bb1","t12","hasAutoContent","t13","isDisabled","tooltipProps","t14","resolvedTooltip","isTooltipActive","renderElement","defaultTooltipPlacement","triggerProps","renderWithTooltip","hasTooltip"],"sources":["../../../src/components/content/use-auto-tooltip.tsx"],"sourcesContent":["import {\n HTMLAttributes,\n ReactNode,\n Ref,\n RefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { OverlayProps } from 'react-aria';\n\nimport {\n CubeTooltipProviderProps,\n TooltipProvider,\n} from '../overlays/Tooltip/TooltipProvider';\n\nimport type { Props } from '../../props';\n\nexport type AutoTooltipValue =\n | string\n | boolean\n | (Omit<CubeTooltipProviderProps, 'children'> & { auto?: boolean });\n\nexport interface UseAutoTooltipOptions {\n tooltip: AutoTooltipValue | undefined;\n children: ReactNode;\n labelProps?: Props;\n isDynamicLabel?: boolean;\n /**\n * The caller's own ref to the label element. The hook owns the label's ref\n * (it measures the node), so a caller that also needs the node hands its ref\n * over here rather than attaching a second one.\n */\n labelRef?: Ref<HTMLElement>;\n}\n\nfunction assignRef(ref: unknown, element: HTMLElement | null) {\n if (typeof ref === 'function') {\n ref(element);\n } else if (ref) {\n (ref as { current: HTMLElement | null }).current = element;\n }\n}\n\nexport function useAutoTooltip({\n tooltip,\n children,\n labelProps,\n isDynamicLabel = false,\n labelRef: labelRefOption,\n}: UseAutoTooltipOptions) {\n // Determine if auto tooltip is enabled\n // Auto tooltip only works when children is a string (overflow detection needs text)\n const isAutoTooltipEnabled = useMemo(() => {\n if (typeof children !== 'string') return false;\n\n // Boolean true enables auto overflow detection\n if (tooltip === true) return true;\n if (typeof tooltip === 'object') {\n // If title is provided and auto is explicitly true, enable auto overflow detection\n if (tooltip.title) {\n return tooltip.auto === true;\n }\n\n // If no title is provided, default to auto=true unless explicitly disabled\n const autoValue = tooltip.auto !== undefined ? tooltip.auto : true;\n return !!autoValue;\n }\n return false;\n }, [tooltip, children]);\n\n // Track label overflow for auto tooltip (only when enabled)\n const externalLabelRef = (labelProps as any)?.ref;\n const [isLabelOverflowed, setIsLabelOverflowed] = useState(false);\n const elementRef = useRef<HTMLElement | null>(null);\n const resizeObserverRef = useRef<ResizeObserver | null>(null);\n\n const measurePendingRef = useRef(false);\n\n const checkLabelOverflow = useCallback(() => {\n const label = elementRef.current;\n\n if (!label) return;\n\n setIsLabelOverflowed(label.scrollWidth > label.clientWidth);\n }, []);\n\n /**\n * Measure once the current task has finished, not inside it.\n *\n * A microtask runs after React's whole commit — every mutation, layout effect\n * and ref attachment — and before paint. Every label on the page therefore\n * reads after all of them have written, so the reads collapse into one style\n * and layout flush instead of forcing one each, mid-commit. Reading straight\n * from the callback ref is what cost 122ms of `get scrollWidth` in one Cloud\n * profile, more than the entire style engine.\n *\n * A microtask rather than the observer's first delivery: observer callbacks\n * are part of the rendering steps, so a runner that is not producing frames —\n * a background tab, or a headless browser running many stories at once — can\n * delay them past the point something asks whether the tooltip is active.\n * Microtasks do not depend on a frame.\n */\n const scheduleLabelOverflowCheck = useCallback(() => {\n if (measurePendingRef.current) return;\n\n measurePendingRef.current = true;\n\n queueMicrotask(() => {\n measurePendingRef.current = false;\n checkLabelOverflow();\n });\n }, [checkLabelOverflow]);\n\n useEffect(() => {\n if (isAutoTooltipEnabled) {\n checkLabelOverflow();\n\n return;\n }\n\n // Clearing here rather than in the callback ref, which cannot be trusted\n // to do it. Flipping `isAutoTooltipEnabled` changes the ref's identity, so\n // React detaches with the PREVIOUS callback — the one that still believes\n // auto tooltips are on, and therefore keeps the last verdict — and only\n // attaches the new one if the label still exists. When `children` stops\n // being a string the label unmounts, so the new callback never runs and a\n // stale `true` would keep an auto tooltip mounted over content that is no\n // longer text. That is the default `Button` path, where `tooltip` is `true`.\n setIsLabelOverflowed(false);\n }, [isAutoTooltipEnabled, checkLabelOverflow]);\n\n // Attach ResizeObserver via callback ref to handle DOM node changes\n const handleLabelElementRef = useCallback(\n (element: HTMLElement | null) => {\n // Notify the external refs\n assignRef(externalLabelRef, element);\n assignRef(labelRefOption, element);\n\n // Disconnect previous observer\n if (resizeObserverRef.current) {\n try {\n resizeObserverRef.current.disconnect();\n } catch {\n // do nothing\n }\n resizeObserverRef.current = null;\n }\n\n elementRef.current = element;\n\n if (!isAutoTooltipEnabled) {\n setIsLabelOverflowed(false);\n\n return;\n }\n\n // No node to measure. Leave the previous verdict alone rather than\n // clearing it: turning the verdict on mounts `TooltipProvider`, which\n // remounts the label underneath it, so React detaches the old node and\n // attaches a new one within that commit. Clearing here would unmount the\n // provider, remount the label, measure it, mount the provider again — a\n // loop that never settles.\n if (!element) return;\n\n // Do NOT measure synchronously here — see `scheduleLabelOverflowCheck`.\n // This covers the node the ref just handed us, including the fresh one\n // React creates when `TooltipProvider` mounts and remounts the label.\n scheduleLabelOverflowCheck();\n\n // The observer covers every later size change.\n const obs = new ResizeObserver(() => {\n checkLabelOverflow();\n });\n\n resizeObserverRef.current = obs;\n\n obs.observe(element);\n },\n [\n externalLabelRef,\n labelRefOption,\n isAutoTooltipEnabled,\n checkLabelOverflow,\n scheduleLabelOverflowCheck,\n ],\n );\n\n // Cleanup on unmount\n useEffect(() => {\n return () => {\n if (resizeObserverRef.current) {\n try {\n resizeObserverRef.current.disconnect();\n } catch {\n // do nothing\n }\n resizeObserverRef.current = null;\n }\n elementRef.current = null;\n };\n }, []);\n\n const finalLabelProps = useMemo(() => {\n const props = {\n ...(labelProps || {}),\n };\n\n delete props.ref;\n\n return props;\n }, [labelProps]);\n\n /**\n * The `TooltipProvider` props this tooltip resolves to, or `null` when no\n * tooltip is rendered at all. Resolved once so that both the rendering below\n * and `isTooltipActive` speak about the same tooltip.\n */\n const resolvedTooltip = useMemo<Omit<\n CubeTooltipProviderProps,\n 'children'\n > | null>(() => {\n if (!tooltip) return null;\n\n // String tooltip - simple case\n if (typeof tooltip === 'string') {\n return { title: tooltip };\n }\n\n const hasAutoContent =\n !!(children || labelProps) && (isLabelOverflowed || isDynamicLabel);\n\n // Boolean tooltip - auto tooltip on overflow\n if (tooltip === true) {\n if (!hasAutoContent) return null;\n\n return {\n title: children,\n isDisabled: !isLabelOverflowed && isDynamicLabel,\n };\n }\n\n // Object tooltip - advanced configuration\n const { auto, ...tooltipProps } = tooltip;\n\n // If title is provided and auto is not explicitly true, always show the tooltip\n if (tooltipProps.title && auto !== true) {\n return tooltipProps;\n }\n\n // If title is provided with auto=true, OR no title but auto behavior enabled\n if (!hasAutoContent) return null;\n\n return {\n title: tooltipProps.title ?? children,\n isDisabled:\n !isLabelOverflowed &&\n isDynamicLabel &&\n tooltipProps.isDisabled !== true,\n ...tooltipProps,\n };\n }, [tooltip, children, labelProps, isLabelOverflowed, isDynamicLabel]);\n\n /** Whether a tooltip is rendered and able to open. */\n const isTooltipActive =\n !!resolvedTooltip && resolvedTooltip.isDisabled !== true;\n\n const renderWithTooltip = (\n renderElement: (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => ReactNode,\n defaultTooltipPlacement: OverlayProps['placement'],\n ) => {\n if (!resolvedTooltip) return renderElement();\n\n return (\n <TooltipProvider placement={defaultTooltipPlacement} {...resolvedTooltip}>\n {(triggerProps, ref) => renderElement(triggerProps, ref)}\n </TooltipProvider>\n );\n };\n\n return {\n labelRef: handleLabelElementRef,\n labelProps: finalLabelProps,\n isLabelOverflowed,\n isAutoTooltipEnabled,\n hasTooltip: !!tooltip,\n isTooltipActive,\n renderWithTooltip,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-auto-tooltip.js","names":["HTMLAttributes","ReactNode","Ref","RefObject","useCallback","useEffect","useMemo","useRef","useState","OverlayProps","flushSync","CubeTooltipProviderProps","TooltipProvider","Props","AutoTooltipValue","Omit","auto","UseAutoTooltipOptions","tooltip","children","labelProps","isDynamicLabel","labelRef","HTMLElement","assignRef","ref","element","current","pendingOverflowChecks","Set","runOverflowChecks","checks","Array","from","clear","check","queueOverflowCheck","size","queueMicrotask","add","useAutoTooltip","t0","$","_c","t1","labelRefOption","undefined","t2","bb0","title","autoValue","isAutoTooltipEnabled","externalLabelRef","isLabelOverflowed","setIsLabelOverflowed","elementRef","resizeObserverRef","verdictRef","t3","Symbol","for","value","setVerdict","t4","label","scrollWidth","clientWidth","checkLabelOverflow","t5","scheduleLabelOverflowCheck","t6","t7","t8","disconnect","obs","ResizeObserver","observe","handleLabelElementRef","t9","props","finalLabelProps","t10","bb1","t11","hasAutoContent","t12","isDisabled","tooltipProps","t13","resolvedTooltip","isTooltipActive","renderElement","defaultTooltipPlacement","triggerProps","renderWithTooltip","hasTooltip"],"sources":["../../../src/components/content/use-auto-tooltip.tsx"],"sourcesContent":["import {\n HTMLAttributes,\n ReactNode,\n Ref,\n RefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { OverlayProps } from 'react-aria';\nimport { flushSync } from 'react-dom';\n\nimport {\n CubeTooltipProviderProps,\n TooltipProvider,\n} from '../overlays/Tooltip/TooltipProvider';\n\nimport type { Props } from '../../props';\n\nexport type AutoTooltipValue =\n | string\n | boolean\n | (Omit<CubeTooltipProviderProps, 'children'> & { auto?: boolean });\n\nexport interface UseAutoTooltipOptions {\n tooltip: AutoTooltipValue | undefined;\n children: ReactNode;\n labelProps?: Props;\n isDynamicLabel?: boolean;\n /**\n * The caller's own ref to the label element. The hook owns the label's ref\n * (it measures the node), so a caller that also needs the node hands its ref\n * over here rather than attaching a second one.\n */\n labelRef?: Ref<HTMLElement>;\n}\n\nfunction assignRef(ref: unknown, element: HTMLElement | null) {\n if (typeof ref === 'function') {\n ref(element);\n } else if (ref) {\n (ref as { current: HTMLElement | null }).current = element;\n }\n}\n\n/** Overflow checks queued for the end of the current task, from every label. */\nconst pendingOverflowChecks = new Set<() => void>();\n\n/**\n * Runs every queued check in one pass and commits the verdicts that changed in\n * one synchronous render.\n *\n * All reads happen before React touches the DOM again, so they share one\n * layout. `flushSync` applies the verdicts, and the `TooltipProvider` remounts\n * they cause, before paint and before any other task, so code that looks the\n * label up after this task gets the node the verdict leaves in place, not one\n * about to be replaced. Outside a React commit this is an ordinary sync\n * render, not a nested update.\n */\nfunction runOverflowChecks() {\n const checks = Array.from(pendingOverflowChecks);\n\n pendingOverflowChecks.clear();\n\n flushSync(() => {\n for (const check of checks) check();\n });\n}\n\nfunction queueOverflowCheck(check: () => void) {\n if (!pendingOverflowChecks.size) queueMicrotask(runOverflowChecks);\n\n pendingOverflowChecks.add(check);\n}\n\nexport function useAutoTooltip({\n tooltip,\n children,\n labelProps,\n isDynamicLabel = false,\n labelRef: labelRefOption,\n}: UseAutoTooltipOptions) {\n // Determine if auto tooltip is enabled\n // Auto tooltip only works when children is a string (overflow detection needs text)\n const isAutoTooltipEnabled = useMemo(() => {\n if (typeof children !== 'string') return false;\n\n // Boolean true enables auto overflow detection\n if (tooltip === true) return true;\n if (typeof tooltip === 'object') {\n // If title is provided and auto is explicitly true, enable auto overflow detection\n if (tooltip.title) {\n return tooltip.auto === true;\n }\n\n // If no title is provided, default to auto=true unless explicitly disabled\n const autoValue = tooltip.auto !== undefined ? tooltip.auto : true;\n return !!autoValue;\n }\n return false;\n }, [tooltip, children]);\n\n // Track label overflow for auto tooltip (only when enabled)\n const externalLabelRef = (labelProps as any)?.ref;\n const [isLabelOverflowed, setIsLabelOverflowed] = useState(false);\n const elementRef = useRef<HTMLElement | null>(null);\n const resizeObserverRef = useRef<ResizeObserver | null>(null);\n\n const verdictRef = useRef(false);\n\n /**\n * Sets the verdict only when it changes. React skips an unchanged `setState`\n * only while the component has no other update queued; otherwise the no-op is\n * enqueued like any other update. From an effect flushed inside a sync commit\n * that is a pending update, and a nested one — see the mount effect below.\n * Mirroring the verdict makes every unchanged write free, whatever else the\n * component has queued.\n */\n const setVerdict = useCallback((value: boolean) => {\n if (verdictRef.current === value) return;\n\n verdictRef.current = value;\n setIsLabelOverflowed(value);\n }, []);\n\n const checkLabelOverflow = useCallback(() => {\n const label = elementRef.current;\n\n if (!label) return;\n\n setVerdict(label.scrollWidth > label.clientWidth);\n }, [setVerdict]);\n\n /**\n * Measure once the current task has finished, not inside it.\n *\n * A microtask runs after React's whole commit — every mutation, layout effect\n * and ref attachment — and before paint. Every label on the page therefore\n * reads after all of them have written, so the reads collapse into one style\n * and layout flush instead of forcing one each, mid-commit. Reading straight\n * from the callback ref is what cost 122ms of `get scrollWidth` in one Cloud\n * profile, more than the entire style engine.\n *\n * A microtask rather than the observer's first delivery: observer callbacks\n * are part of the rendering steps, so a runner that is not producing frames —\n * a background tab, or a headless browser running many stories at once — can\n * delay them past the point something asks whether the tooltip is active.\n * Microtasks do not depend on a frame. See `runOverflowChecks` for how the\n * verdicts are applied.\n */\n const scheduleLabelOverflowCheck = useCallback(() => {\n queueOverflowCheck(checkLabelOverflow);\n }, [checkLabelOverflow]);\n\n useEffect(() => {\n if (isAutoTooltipEnabled) {\n // Queued, not measured here. React 19 flushes a sync commit's passive\n // effects before the commit returns, so a verdict set from this effect\n // leaves that commit with an update pending — a nested update. A list\n // that commits each row on its own (ag-grid-react wraps every new row in\n // `flushSync`) then gains one per row, and React throws \"Maximum update\n // depth exceeded\" once the count passes 50. The queued check runs after\n // the commit and still before paint. The callback ref has usually queued\n // it already, so this call is absorbed. It matters when the flag flips on\n // for a label whose ref did not re-attach.\n scheduleLabelOverflowCheck();\n\n return;\n }\n\n // Clearing here rather than in the callback ref, which cannot be trusted\n // to do it. Flipping `isAutoTooltipEnabled` changes the ref's identity, so\n // React detaches with the PREVIOUS callback — the one that still believes\n // auto tooltips are on, and therefore keeps the last verdict — and only\n // attaches the new one if the label still exists. When `children` stops\n // being a string the label unmounts, so the new callback never runs and a\n // stale `true` would keep an auto tooltip mounted over content that is no\n // longer text. That is the default `Button` path, where `tooltip` is `true`.\n setVerdict(false);\n }, [isAutoTooltipEnabled, scheduleLabelOverflowCheck, setVerdict]);\n\n // Attach ResizeObserver via callback ref to handle DOM node changes. The ref\n // also owns teardown: React hands it `null` when the label goes away. An\n // unmount effect must not repeat that. React 18 Strict Mode replays effects\n // without re-attaching refs, so the replay would drop the node and observer\n // for good and strand the queued check.\n const handleLabelElementRef = useCallback(\n (element: HTMLElement | null) => {\n // Notify the external refs\n assignRef(externalLabelRef, element);\n assignRef(labelRefOption, element);\n\n // Disconnect previous observer\n if (resizeObserverRef.current) {\n try {\n resizeObserverRef.current.disconnect();\n } catch {\n // do nothing\n }\n resizeObserverRef.current = null;\n }\n\n elementRef.current = element;\n\n if (!isAutoTooltipEnabled) {\n setVerdict(false);\n\n return;\n }\n\n // No node to measure. Leave the previous verdict alone rather than\n // clearing it: turning the verdict on mounts `TooltipProvider`, which\n // remounts the label underneath it, so React detaches the old node and\n // attaches a new one within that commit. Clearing here would unmount the\n // provider, remount the label, measure it, mount the provider again — a\n // loop that never settles.\n if (!element) return;\n\n // Do NOT measure synchronously here — see `scheduleLabelOverflowCheck`.\n // This covers the node the ref just handed us, including the fresh one\n // React creates when `TooltipProvider` mounts and remounts the label.\n scheduleLabelOverflowCheck();\n\n // The observer covers every later size change.\n const obs = new ResizeObserver(() => {\n checkLabelOverflow();\n });\n\n resizeObserverRef.current = obs;\n\n obs.observe(element);\n },\n [\n externalLabelRef,\n labelRefOption,\n isAutoTooltipEnabled,\n checkLabelOverflow,\n scheduleLabelOverflowCheck,\n setVerdict,\n ],\n );\n\n const finalLabelProps = useMemo(() => {\n const props = {\n ...(labelProps || {}),\n };\n\n delete props.ref;\n\n return props;\n }, [labelProps]);\n\n /**\n * The `TooltipProvider` props this tooltip resolves to, or `null` when no\n * tooltip is rendered at all. Resolved once so that both the rendering below\n * and `isTooltipActive` speak about the same tooltip.\n */\n const resolvedTooltip = useMemo<Omit<\n CubeTooltipProviderProps,\n 'children'\n > | null>(() => {\n if (!tooltip) return null;\n\n // String tooltip - simple case\n if (typeof tooltip === 'string') {\n return { title: tooltip };\n }\n\n const hasAutoContent =\n !!(children || labelProps) && (isLabelOverflowed || isDynamicLabel);\n\n // Boolean tooltip - auto tooltip on overflow\n if (tooltip === true) {\n if (!hasAutoContent) return null;\n\n return {\n title: children,\n isDisabled: !isLabelOverflowed && isDynamicLabel,\n };\n }\n\n // Object tooltip - advanced configuration\n const { auto, ...tooltipProps } = tooltip;\n\n // If title is provided and auto is not explicitly true, always show the tooltip\n if (tooltipProps.title && auto !== true) {\n return tooltipProps;\n }\n\n // If title is provided with auto=true, OR no title but auto behavior enabled\n if (!hasAutoContent) return null;\n\n return {\n title: tooltipProps.title ?? children,\n isDisabled:\n !isLabelOverflowed &&\n isDynamicLabel &&\n tooltipProps.isDisabled !== true,\n ...tooltipProps,\n };\n }, [tooltip, children, labelProps, isLabelOverflowed, isDynamicLabel]);\n\n /** Whether a tooltip is rendered and able to open. */\n const isTooltipActive =\n !!resolvedTooltip && resolvedTooltip.isDisabled !== true;\n\n const renderWithTooltip = (\n renderElement: (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => ReactNode,\n defaultTooltipPlacement: OverlayProps['placement'],\n ) => {\n if (!resolvedTooltip) return renderElement();\n\n return (\n <TooltipProvider placement={defaultTooltipPlacement} {...resolvedTooltip}>\n {(triggerProps, ref) => renderElement(triggerProps, ref)}\n </TooltipProvider>\n );\n };\n\n return {\n labelRef: handleLabelElementRef,\n labelProps: finalLabelProps,\n isLabelOverflowed,\n isAutoTooltipEnabled,\n hasTooltip: !!tooltip,\n isTooltipActive,\n renderWithTooltip,\n };\n}\n"],"mappings":";;;;;;;;AAuCA,SAASwB,UAAUC,KAAcC,SAA6B;AAC5D,KAAI,OAAOD,QAAQ,WACjBA,KAAIC,QAAQ;UACHD,IACT,CAACA,IAAwCE,UAAUD;;;AAKvD,MAAME,wCAAwB,IAAIC,KAAiB;;;;;;;;;;;;AAanD,SAASC,oBAAoB;CAC3B,MAAMC,SAASC,MAAMC,KAAKL,sBAAsB;AAEhDA,uBAAsBM,OAAO;AAE7BxB,iBAAgB;AACd,OAAK,MAAMyB,SAASJ,OAAQI,QAAO;GACnC;;AAGJ,SAASC,mBAAmBD,OAAmB;AAC7C,KAAI,CAACP,sBAAsBS,KAAMC,gBAAeR,kBAAkB;AAElEF,uBAAsBW,IAAIJ,MAAM;;AAGlC,SAAOK,eAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAwB,MAAA,EAAAzB,SAAAC,UAAAC,YAAAC,gBAAAuB,IAAAtB,UAAAuB,mBAAAJ;CAI7B,MAAApB,iBAAAuB,OAAAE,SAAA,QAAAF;CAAsB,IAAAG;AAAAC,MAAA;AAMpB,MAAI,OAAO7B,aAAa,UAAQ;AAAE4B,QAAO;AAAP,SAAAC;;AAGlC,MAAI9B,YAAY,MAAI;AAAE6B,QAAO;AAAP,SAAAC;;AACtB,MAAI,OAAO9B,YAAY,UAAQ;AAE7B,OAAIA,QAAO+B,OAAM;AACfF,SAAO7B,QAAOF,SAAU;AAAxB,UAAAgC;;AAKFD,QAAO,CAAC,EADU7B,QAAOF,SAAU8B,SAAY5B,QAAOF,OAApC;AAClB,SAAAgC;;AAEFD,OAAO;;CAfT,MAAAI,uBAA6BJ;CAmB7B,MAAAK,mBAA0BhC,YAAuBK;CACjD,MAAA,CAAA4B,mBAAAC,wBAAkD9C,SAAS,MAAM;CACjE,MAAA+C,aAAmBhD,OAA2B,KAAK;CACnD,MAAAiD,oBAA0BjD,OAA8B,KAAK;CAE7D,MAAAkD,aAAmBlD,OAAO,MAAM;CAAC,IAAAmD;AAAA,KAAAhB,EAAA,OAAAiB,OAAAC,IAAA,4BAAA,EAAA;AAUFF,QAAAG,UAAA;AAC7B,OAAIJ,WAAU9B,YAAakC,MAAK;AAEhCJ,cAAU9B,UAAWkC;AACrBP,wBAAqBO,MAAM;;AAC5BnB,IAAA,KAAAgB;OAAAA,MAAAhB,EAAA;CALD,MAAAoB,aAAmBJ;CAKZ,IAAAK;AAAA,KAAArB,EAAA,OAAAiB,OAAAC,IAAA,4BAAA,EAAA;AAEgCG,aAAA;GACrC,MAAAC,QAAcT,WAAU5B;AAExB,OAAI,CAACqC,MAAK;AAEVF,cAAWE,MAAKC,cAAeD,MAAKE,YAAa;;AAClDxB,IAAA,KAAAqB;OAAAA,MAAArB,EAAA;CAND,MAAAyB,qBAA2BJ;CAMV,IAAAK;AAAA,KAAA1B,EAAA,OAAAiB,OAAAC,IAAA,4BAAA,EAAA;AAmB8BQ,aAAA;AAC7ChC,sBAAmB+B,mBAAmB;;AACvCzB,IAAA,KAAA0B;OAAAA,MAAA1B,EAAA;CAFD,MAAA2B,6BAAmCD;CAEV,IAAAE;CAAA,IAAAC;AAAA,KAAA7B,EAAA,OAAAS,sBAAA;AAEfmB,aAAA;AACR,OAAInB,sBAAoB;AAUtBkB,gCAA4B;AAAA;;AAa9BP,cAAW,MAAM;;AAChBS,OAAA;GAACpB;GAAsBkB;GAA4BP;GAAW;AAAApB,IAAA,KAAAS;AAAAT,IAAA,KAAA4B;AAAA5B,IAAA,KAAA6B;QAAA;AAAAD,OAAA5B,EAAA;AAAA6B,OAAA7B,EAAA;;AAzBjErC,WAAUiE,IAyBPC,GAA+D;CAAA,IAAAC;AAAA,KAAA9B,EAAA,OAAAU,oBAAAV,EAAA,OAAAS,wBAAAT,EAAA,OAAAG,gBAAA;AAQhE2B,QAAA9C,YAAA;AAEEF,aAAU4B,kBAAkB1B,QAAQ;AACpCF,aAAUqB,gBAAgBnB,QAAQ;AAGlC,OAAI8B,kBAAiB7B,SAAQ;AAC3B,QAAA;AACE6B,uBAAiB7B,QAAQ8C,YAAa;YAAA;AAIxCjB,sBAAiB7B,UAAW;;AAG9B4B,cAAU5B,UAAWD;AAErB,OAAI,CAACyB,sBAAoB;AACvBW,eAAW,MAAM;AAAA;;AAWnB,OAAI,CAACpC,QAAO;AAKZ2C,+BAA4B;GAG5B,MAAAK,MAAY,IAAIC,qBAAe;AAC7BR,wBAAoB;KACpB;AAEFX,qBAAiB7B,UAAW+C;AAE5BA,OAAGE,QAASlD,QAAQ;;AACrBgB,IAAA,KAAAU;AAAAV,IAAA,KAAAS;AAAAT,IAAA,KAAAG;AAAAH,IAAA,KAAA8B;OAAAA,MAAA9B,EAAA;CA7CH,MAAAmC,wBAA8BL;CAsD5B,IAAAM;AAAA,KAAApC,EAAA,QAAAtB,YAAA;AAIM0D,OAAA1D,cAAA,EAAgB;AAAAsB,IAAA,MAAAtB;AAAAsB,IAAA,MAAAoC;OAAAA,MAAApC,EAAA;CAAA,IAAAqC;AAAA,KAAArC,EAAA,QAAAoC,IAAA;AADtBC,UAAc,EAAA,GACRD,IACL;AAED,SAAOC,MAAKtD;AAAIiB,IAAA,MAAAoC;AAAApC,IAAA,MAAAqC;OAAAA,SAAArC,EAAA;CALlB,MAAAsC,kBAOED;CACe,IAAAE;AAAAC,MAAA;AAWf,MAAI,CAAChE,SAAO;AAAE+D,SAAO;AAAP,SAAAC;;AAGd,MAAI,OAAOhE,YAAY,UAAQ;GAAA,IAAAiE;AAAA,OAAAzC,EAAA,QAAAxB,SAAA;AACtBiE,UAAA,EAAAlC,OAAS/B,SAAS;AAAAwB,MAAA,MAAAxB;AAAAwB,MAAA,MAAAyC;SAAAA,OAAAzC,EAAA;AAAzBuC,SAAOE;AAAP,SAAAD;;EAGF,MAAAE,iBACE,CAAC,EAAEjE,YAAAC,gBAA4BiC,qBAAAhC;AAGjC,MAAIH,YAAY,MAAI;AAClB,OAAI,CAACkE,gBAAc;AAAEH,UAAO;AAAP,UAAAC;;GAIP,MAAAC,MAAA,CAAC9B,qBAADhC;GAAoC,IAAAgE;AAAA,OAAA3C,EAAA,QAAAvB,YAAAuB,EAAA,QAAAyC,KAAA;AAF3CE,UAAA;KAAApC,OACE9B;KAAQmE,YACHH;KACb;AAAAzC,MAAA,MAAAvB;AAAAuB,MAAA,MAAAyC;AAAAzC,MAAA,MAAA2C;SAAAA,OAAA3C,EAAA;AAHDuC,SAAOI;AAAP,SAAAH;;EAID,IAAAlE;EAAA,IAAAuE;AAAA,MAAA7C,EAAA,QAAAxB,SAAA;AAGD,IAAA,CAAAF,SAAAuE,gBAAkCrE;AAAQwB,KAAA,MAAAxB;AAAAwB,KAAA,MAAA1B;AAAA0B,KAAA,MAAA6C;SAAA;AAAAvE,UAAA0B,EAAA;AAAA6C,kBAAA7C,EAAA;;AAG1C,MAAI6C,aAAYtC,SAAUjC,SAAS,MAAI;AACrCiE,SAAOM;AAAP,SAAAL;;AAIF,MAAI,CAACE,gBAAc;AAAEH,SAAO;AAAP,SAAAC;;EAGZ,MAAAC,MAAAI,aAAYtC,SAAZ9B;EAEL,MAAAkE,MAAA,CAAChC,qBAADhC,kBAEAkE,aAAYD,eAAgB;EAAI,IAAAE;AAAA,MAAA9C,EAAA,QAAAyC,OAAAzC,EAAA,QAAA2C,OAAA3C,EAAA,QAAA6C,cAAA;AAL7BC,SAAA;IAAAvC,OACEkC;IAA8BG,YAEnCD;IAEgC,GAC/BE;IACJ;AAAA7C,KAAA,MAAAyC;AAAAzC,KAAA,MAAA2C;AAAA3C,KAAA,MAAA6C;AAAA7C,KAAA,MAAA8C;QAAAA,OAAA9C,EAAA;AAPDuC,QAAOO;;CAnCT,MAAAC,kBAAwBR;CA8CxB,MAAAS,kBACE,CAAC,CAACD,mBAAmBA,gBAAeH,eAAgB;CAAK,IAAAH;AAAA,KAAAzC,EAAA,QAAA+C,iBAAA;AAEjCN,SAAAQ,eAAAC,4BAAA;AAOxB,OAAI,CAACH,gBAAe,QAASE,eAAe;AAAC,UAG3C,oBAAC;IAA2BC,WAAAA;IAAuB,GAAMH;eACtDI,cAAApE,QAAuBkE,cAAcE,cAAcpE,IAAG;KACvC;;AAErBiB,IAAA,MAAA+C;AAAA/C,IAAA,MAAAyC;OAAAA,OAAAzC,EAAA;CAdD,MAAAoD,oBAA0BX;CAqBZ,MAAAE,MAAA,CAAC,CAACnE;CAAO,IAAAsE;AAAA,KAAA9C,EAAA,QAAAsC,mBAAAtC,EAAA,QAAAmC,yBAAAnC,EAAA,QAAAS,wBAAAT,EAAA,QAAAW,qBAAAX,EAAA,QAAAgD,mBAAAhD,EAAA,QAAAoD,qBAAApD,EAAA,QAAA2C,KAAA;AALhBG,QAAA;GAAAlE,UACKuD;GAAqBzD,YACnB4D;GAAe3B;GAAAF;GAAA4C,YAGfV;GAASK;GAAAI;GAGtB;AAAApD,IAAA,MAAAsC;AAAAtC,IAAA,MAAAmC;AAAAnC,IAAA,MAAAS;AAAAT,IAAA,MAAAW;AAAAX,IAAA,MAAAgD;AAAAhD,IAAA,MAAAoD;AAAApD,IAAA,MAAA2C;AAAA3C,IAAA,MAAA8C;OAAAA,OAAA9C,EAAA;AAAA,QARM8C"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { _Text } from "../../content/Text.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { _Text } from "../../content/Text.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { _Pagination } from "../../navigation/Pagination/Pagination.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { useI18n } from "../../../i18n/useI18n.js";
3
3
  import { Button } from "../../actions/index.js";
4
4
  import { ReloadIcon } from "../../../icons/ReloadIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  //#region src/components/data/TableBase/RowCollection.ts
3
3
  /**
4
4
  * A `Collection<Node<T>>` over a plain row array.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { useEffect, useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { TooltipProvider } from "../../overlays/Tooltip/TooltipProvider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { __Menu } from "../../actions/Menu/Menu.js";
3
3
  import { normalizeMenuAction } from "./row-menu.js";
4
4
  import { Children, cloneElement, isValidElement } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { getPaletteConfig } from "../../../tokens/palette-config.js";
3
3
  import { hashString } from "../../../tokens/color-theme.js";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { Children, Fragment, isValidElement } from "react";
3
3
 
4
4
  //#region src/components/data/TableBase/row-menu.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { _Item } from "../../content/Item/Item.js";
3
3
  import { Action } from "../../actions/Action/Action.js";
4
4
  import { keyframes, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  //#region src/components/data/TableBase/table-tree.ts
3
3
  /** Build identity and parent/child indexes without modifying consumer rows. */
4
4
  function buildTableTree(rows, getChildren, getKey) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  //#region src/components/data/TableBase/types.ts
3
3
  /**
4
4
  * `asc | desc` rather than React Aria's `ascending | descending`: we do not use
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { c } from "react-compiler-runtime";
3
3
  import { useLayoutEffect, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { c } from "react-compiler-runtime";
3
3
  import { useLayoutEffect, useRef } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.184.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.185.1 | Cube Dev Team */
2
2
  import { c } from "react-compiler-runtime";
3
3
  import { useLayoutEffect, useState } from "react";
4
4