@cube-dev/ui-kit 0.185.3 → 0.186.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 (627) hide show
  1. package/dist/CHANGELOG.md +16 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +23 -21
  13. package/dist/components/GlobalStyles.js.map +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Banner/Banner.js.map +1 -1
  20. package/dist/components/actions/Button/Button.js +1 -1
  21. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  22. package/dist/components/actions/ButtonSplit/ButtonSplit.js +128 -66
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  24. package/dist/components/actions/ButtonSplit/context.js +1 -1
  25. package/dist/components/actions/CommandMenu/CommandMenu.js +451 -280
  26. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  27. package/dist/components/actions/CommandMenu/styled.js +1 -1
  28. package/dist/components/actions/ItemAction/ItemAction.js +57 -93
  29. package/dist/components/actions/ItemAction/ItemAction.js.map +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/ItemActionsWrapper.js.map +1 -1
  33. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  34. package/dist/components/actions/Link/Link.js +1 -1
  35. package/dist/components/actions/Menu/Menu.js +49 -69
  36. package/dist/components/actions/Menu/Menu.js.map +1 -1
  37. package/dist/components/actions/Menu/MenuItem.js +1 -1
  38. package/dist/components/actions/Menu/MenuSection.js +1 -1
  39. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  40. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  41. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  42. package/dist/components/actions/Menu/context.js +1 -1
  43. package/dist/components/actions/Menu/styled.js +1 -1
  44. package/dist/components/actions/actions-run.js +1 -1
  45. package/dist/components/actions/index.js +1 -1
  46. package/dist/components/actions/use-action.js +1 -1
  47. package/dist/components/actions/use-anchored-menu.js +1 -1
  48. package/dist/components/actions/use-context-menu.js +1 -1
  49. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  50. package/dist/components/content/Alert/Alert.js +1 -1
  51. package/dist/components/content/Alert/use-alert.js +1 -1
  52. package/dist/components/content/Avatar/Avatar.js +1 -1
  53. package/dist/components/content/Badge/Badge.js +5 -2
  54. package/dist/components/content/Badge/Badge.js.map +1 -1
  55. package/dist/components/content/Card/Card.js +1 -1
  56. package/dist/components/content/Content.js +1 -1
  57. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  58. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  59. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  60. package/dist/components/content/Disclosure/Disclosure.js +44 -60
  61. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  62. package/dist/components/content/Divider.js +1 -1
  63. package/dist/components/content/Footer.js +1 -1
  64. package/dist/components/content/Header.js +1 -1
  65. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  66. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  67. package/dist/components/content/InlineInput/InlineInput.js +39 -65
  68. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  69. package/dist/components/content/Item/Item.js +208 -263
  70. package/dist/components/content/Item/Item.js.map +1 -1
  71. package/dist/components/content/ItemBadge/ItemBadge.js +70 -145
  72. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  73. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  74. package/dist/components/content/Layout/GridLayout.js +1 -1
  75. package/dist/components/content/Layout/Layout.js +1 -1
  76. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  77. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  78. package/dist/components/content/Layout/LayoutContainer.js +39 -18
  79. package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
  80. package/dist/components/content/Layout/LayoutContent.js +100 -48
  81. package/dist/components/content/Layout/LayoutContent.js.map +1 -1
  82. package/dist/components/content/Layout/LayoutContext.js +211 -95
  83. package/dist/components/content/Layout/LayoutContext.js.map +1 -1
  84. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  85. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  86. package/dist/components/content/Layout/LayoutFooter.js.map +1 -1
  87. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  88. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  89. package/dist/components/content/Layout/LayoutPane.js +240 -123
  90. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  91. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  92. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  93. package/dist/components/content/Layout/LayoutPanelHeader.js.map +1 -1
  94. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  95. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  96. package/dist/components/content/Layout/hooks/useTinyScrollbar.js.map +1 -1
  97. package/dist/components/content/Layout/index.js +1 -1
  98. package/dist/components/content/Layout/utils.js +1 -1
  99. package/dist/components/content/Paragraph.js +1 -1
  100. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  101. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  102. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  103. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  104. package/dist/components/content/Result/Result.js +28 -48
  105. package/dist/components/content/Result/Result.js.map +1 -1
  106. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  107. package/dist/components/content/Tag/Tag.js +1 -1
  108. package/dist/components/content/Text.d.ts +14 -14
  109. package/dist/components/content/Text.js +1 -1
  110. package/dist/components/content/TextItem/TextItem.js +9 -17
  111. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  112. package/dist/components/content/Title.js +1 -1
  113. package/dist/components/content/Tree/Tree.js +1 -1
  114. package/dist/components/content/Tree/TreeNode.js +1 -1
  115. package/dist/components/content/Tree/styled.js +1 -1
  116. package/dist/components/content/Tree/tree-index.js +1 -1
  117. package/dist/components/content/Tree/use-checkbox-tree.js +68 -105
  118. package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -1
  119. package/dist/components/content/Tree/use-load-data.js +1 -1
  120. package/dist/components/content/highlightText.js +1 -1
  121. package/dist/components/content/use-auto-tooltip.js +106 -138
  122. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  123. package/dist/components/data/DataTable/DataTable.js +1 -1
  124. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  125. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  126. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  127. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  128. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  129. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  130. package/dist/components/data/TableBase/RowCollection.js +1 -1
  131. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  132. package/dist/components/data/TableBase/TableRow.js +1 -1
  133. package/dist/components/data/TableBase/TableView.js +1 -1
  134. package/dist/components/data/TableBase/column-menu.js +1 -1
  135. package/dist/components/data/TableBase/column-tint.js +1 -1
  136. package/dist/components/data/TableBase/row-menu.js +1 -1
  137. package/dist/components/data/TableBase/styled.js +1 -1
  138. package/dist/components/data/TableBase/table-tree.js +1 -1
  139. package/dist/components/data/TableBase/types.js +1 -1
  140. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  141. package/dist/components/data/TableBase/use-column-order.js +30 -31
  142. package/dist/components/data/TableBase/use-column-order.js.map +1 -1
  143. package/dist/components/data/TableBase/use-container-width.js +1 -1
  144. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  145. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  146. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  147. package/dist/components/data/TableBase/use-table-search.js +1 -1
  148. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  149. package/dist/components/data/TableBase/use-table-sort.js +38 -42
  150. package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
  151. package/dist/components/data/TableBase/use-table-sorts.js +19 -57
  152. package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
  153. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  154. package/dist/components/data/TableBase/use-table-tree-state.js +55 -64
  155. package/dist/components/data/TableBase/use-table-tree-state.js.map +1 -1
  156. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  157. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  158. package/dist/components/fields/Checkbox/context.js +1 -1
  159. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  160. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  161. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  162. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  163. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  164. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  165. package/dist/components/fields/CommandTextArea/CommandTextArea.js +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.js +1 -1
  171. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  172. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  173. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  174. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  175. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  176. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  177. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  178. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  179. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  180. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  181. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  182. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  183. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  184. package/dist/components/fields/DatePicker/period.js +1 -1
  185. package/dist/components/fields/DatePicker/props.js +1 -1
  186. package/dist/components/fields/DatePicker/utils.js +1 -1
  187. package/dist/components/fields/FileInput/FileInput.js +1 -1
  188. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  189. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  190. package/dist/components/fields/Input/Input.js +1 -1
  191. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  192. package/dist/components/fields/ListBox/ListBox.js +1 -1
  193. package/dist/components/fields/ListBox/optionId.js +1 -1
  194. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +111 -108
  195. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  196. package/dist/components/fields/ListBoxPopover/listNavigation.js +4 -3
  197. package/dist/components/fields/ListBoxPopover/listNavigation.js.map +1 -1
  198. package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +1 -1
  199. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +109 -69
  200. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
  201. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  202. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  203. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  204. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  205. package/dist/components/fields/Picker/Picker.js +1 -1
  206. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  207. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  208. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  209. package/dist/components/fields/RadioGroup/context.js +1 -1
  210. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  211. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  212. package/dist/components/fields/Select/Select.js +1 -1
  213. package/dist/components/fields/Slider/Gradation.js +1 -1
  214. package/dist/components/fields/Slider/HueSlider.js +1 -1
  215. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  216. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  217. package/dist/components/fields/Slider/Slider.js +1 -1
  218. package/dist/components/fields/Slider/SliderBase.js +1 -1
  219. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  220. package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
  221. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  222. package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
  223. package/dist/components/fields/Slider/elements.js +1 -1
  224. package/dist/components/fields/Slider/index.js +1 -1
  225. package/dist/components/fields/Switch/Switch.js +1 -1
  226. package/dist/components/fields/TagInput/TagInput.d.ts +9 -2
  227. package/dist/components/fields/TagInput/TagInput.js +849 -1156
  228. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  229. package/dist/components/fields/TagInput/TagList.js +1 -1
  230. package/dist/components/fields/TextArea/TextArea.js +1 -1
  231. package/dist/components/fields/TextInput/TextInput.js +1 -1
  232. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  233. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  234. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  235. package/dist/components/fields/TriggerActions.js +1 -1
  236. package/dist/components/fields/color/ColorPanel.js +1 -1
  237. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  238. package/dist/components/fields/color/channels.js +1 -1
  239. package/dist/components/fields/color/color.js +1 -1
  240. package/dist/components/fields/color/context.js +1 -1
  241. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  242. package/dist/components/form/Form/Field.js +10 -15
  243. package/dist/components/form/Form/Field.js.map +1 -1
  244. package/dist/components/form/Form/Form.js +1 -1
  245. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  246. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  247. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  248. package/dist/components/form/Form/SubmitError.js +1 -1
  249. package/dist/components/form/Form/backend.js +1 -1
  250. package/dist/components/form/Form/index.js +1 -1
  251. package/dist/components/form/Form/modern/actions.js +1 -1
  252. package/dist/components/form/Form/modern/context.js +1 -1
  253. package/dist/components/form/Form/modern/controller.js +1 -1
  254. package/dist/components/form/Form/modern/field-binding.js +1 -1
  255. package/dist/components/form/Form/modern/field.js +1 -1
  256. package/dist/components/form/Form/modern/react.js +1 -1
  257. package/dist/components/form/Form/modern/react.js.map +1 -1
  258. package/dist/components/form/Form/modern/store.js +1 -1
  259. package/dist/components/form/Form/modern/validation.js +1 -1
  260. package/dist/components/form/Form/modern/values.js +1 -1
  261. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  262. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  263. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  264. package/dist/components/form/Form/use-field/use-field.js +1 -1
  265. package/dist/components/form/Form/use-form.js +1 -1
  266. package/dist/components/form/Form/validation.js +1 -1
  267. package/dist/components/form/Label.js +1 -1
  268. package/dist/components/form/legacy-tooltip.js +1 -1
  269. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  270. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  271. package/dist/components/form/validation/use-validation-props.js +1 -1
  272. package/dist/components/form/wrapper.js +1 -1
  273. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  274. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  275. package/dist/components/layout/Board/Board.js +1 -1
  276. package/dist/components/layout/Board/BoardProvider.js +1 -1
  277. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  278. package/dist/components/layout/Board/Widget.js +1 -1
  279. package/dist/components/layout/Board/WidgetHost.js +1 -1
  280. package/dist/components/layout/Board/board-context.js +1 -1
  281. package/dist/components/layout/Board/board-store.js +1 -1
  282. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  283. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  284. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  285. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  286. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  287. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  288. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  289. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  290. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  291. package/dist/components/layout/Board/index.js +1 -1
  292. package/dist/components/layout/Board/responsive-utils.js +1 -1
  293. package/dist/components/layout/Board/use-board-layout.js +1 -1
  294. package/dist/components/layout/Board/use-board-registry.js +1 -1
  295. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  296. package/dist/components/layout/Board/use-board-selection.js +1 -1
  297. package/dist/components/layout/Flex.js +1 -1
  298. package/dist/components/layout/Flow.js +1 -1
  299. package/dist/components/layout/Grid.js +1 -1
  300. package/dist/components/layout/Panel.js +129 -48
  301. package/dist/components/layout/Panel.js.map +1 -1
  302. package/dist/components/layout/Prefix.js +1 -1
  303. package/dist/components/layout/ResizablePanel.js +1 -1
  304. package/dist/components/layout/Space.js +1 -1
  305. package/dist/components/layout/Suffix.js +1 -1
  306. package/dist/components/navigation/Pagination/Pagination.js +227 -347
  307. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  308. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  309. package/dist/components/navigation/Pagination/use-pagination.js.map +1 -1
  310. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  311. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  312. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  313. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  314. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  315. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  316. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  317. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  318. package/dist/components/navigation/Tabs/TabsAction.js.map +1 -1
  319. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  320. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  321. package/dist/components/navigation/Tabs/styled.js +1 -1
  322. package/dist/components/navigation/Tabs/types.js +1 -1
  323. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  324. package/dist/components/navigation/Tabs/use-tab-editing.js.map +1 -1
  325. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  326. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  327. package/dist/components/other/Calendar/Calendar.js +1 -1
  328. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  329. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  330. package/dist/components/other/Calendar/CalendarGrid.js.map +1 -1
  331. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  332. package/dist/components/other/Calendar/CalendarPanel.js +497 -515
  333. package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
  334. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  335. package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
  336. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  337. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  338. package/dist/components/other/Calendar/styled.js +1 -1
  339. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  340. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  341. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  342. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  343. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  344. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  345. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  346. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  347. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  348. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  349. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  350. package/dist/components/overlays/Dialog/context.js +1 -1
  351. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  352. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  353. package/dist/components/overlays/Modal/Modal.js +1 -1
  354. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  355. package/dist/components/overlays/Modal/Overlay.js +1 -1
  356. package/dist/components/overlays/Modal/Popover.js +1 -1
  357. package/dist/components/overlays/Modal/Tray.js +1 -1
  358. package/dist/components/overlays/Modal/Underlay.js +1 -1
  359. package/dist/components/overlays/Notifications/Notification.js +1 -1
  360. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  361. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  362. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  363. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  364. package/dist/components/overlays/Notifications/OverlayContainer.js +266 -161
  365. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  366. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  367. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  368. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  369. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  370. package/dist/components/overlays/Notifications/index.js +1 -1
  371. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  372. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  373. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  374. package/dist/components/overlays/Notifications/use-persistent-notifications.js +18 -9
  375. package/dist/components/overlays/Notifications/use-persistent-notifications.js.map +1 -1
  376. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  377. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  378. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  379. package/dist/components/overlays/Toast/index.js +1 -1
  380. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  381. package/dist/components/overlays/Toast/useToast.js +1 -1
  382. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  383. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  384. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  385. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  386. package/dist/components/overlays/Tooltip/context.js +1 -1
  387. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  388. package/dist/components/portal/Portal.js +1 -1
  389. package/dist/components/portal/PortalProvider.js +1 -1
  390. package/dist/components/portal/usePortal.js +1 -1
  391. package/dist/components/shared/DraggableCollection.js +1 -1
  392. package/dist/components/shared/InvalidIcon.js +1 -1
  393. package/dist/components/shared/ValidIcon.js +1 -1
  394. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  395. package/dist/components/status/Spin/Cube.js +1 -1
  396. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  397. package/dist/components/status/Spin/Spin.js +1 -1
  398. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  399. package/dist/data/item-themes.js +1 -1
  400. package/dist/data/themes.js +1 -1
  401. package/dist/eslint-plugin/defaults.generated.js +1 -1
  402. package/dist/eslint-plugin/index.js +1 -1
  403. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  404. package/dist/i18n/I18nProvider.js +1 -1
  405. package/dist/i18n/createFormatter.js +1 -1
  406. package/dist/i18n/index.js +1 -1
  407. package/dist/i18n/instance.js +1 -1
  408. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  409. package/dist/i18n/locales/en-US/uikit.js +1 -1
  410. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  411. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  412. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  413. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  414. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  415. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  416. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  417. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  418. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  419. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  420. package/dist/i18n/locales.js +1 -1
  421. package/dist/i18n/useFormatter.js +1 -1
  422. package/dist/i18n/useFormatter.js.map +1 -1
  423. package/dist/i18n/useI18n.js +1 -1
  424. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  425. package/dist/icons/AdjustmentsIcon.js +1 -1
  426. package/dist/icons/AiIcon.js +1 -1
  427. package/dist/icons/AreaChartIcon.js +1 -1
  428. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  429. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  430. package/dist/icons/BackwardIcon.js +1 -1
  431. package/dist/icons/BarChartIcon.js +1 -1
  432. package/dist/icons/BellFilledIcon.js +1 -1
  433. package/dist/icons/BellIcon.js +1 -1
  434. package/dist/icons/BooleanIcon.js +1 -1
  435. package/dist/icons/CalendarEditIcon.js +1 -1
  436. package/dist/icons/CalendarIcon.js +1 -1
  437. package/dist/icons/CaretDownIcon.js +1 -1
  438. package/dist/icons/CaretUpIcon.js +1 -1
  439. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  440. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  441. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  442. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  443. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  444. package/dist/icons/ChartBarLineIcon.js +1 -1
  445. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  446. package/dist/icons/ChartBarStackedIcon.js +1 -1
  447. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  448. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  449. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  450. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  451. package/dist/icons/ChartBubbleIcon.js +1 -1
  452. package/dist/icons/ChartDonut2Icon.js +1 -1
  453. package/dist/icons/ChartFunnelIcon.js +1 -1
  454. package/dist/icons/ChartHeatmapIcon.js +1 -1
  455. package/dist/icons/ChartKPIIcon.js +1 -1
  456. package/dist/icons/ChartPie2Icon.js +1 -1
  457. package/dist/icons/ChartScatterIcon.js +1 -1
  458. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  459. package/dist/icons/CheckCircleIcon.js +1 -1
  460. package/dist/icons/CheckIcon.js +1 -1
  461. package/dist/icons/CircleFilledIcon.js +1 -1
  462. package/dist/icons/ClearIcon.js +1 -1
  463. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  464. package/dist/icons/CloseCircleIcon.js +1 -1
  465. package/dist/icons/CloseIcon.js +1 -1
  466. package/dist/icons/CodeIcon.js +1 -1
  467. package/dist/icons/ColumnTotalIcon.js +1 -1
  468. package/dist/icons/CopyIcon.js +1 -1
  469. package/dist/icons/CountIcon.js +1 -1
  470. package/dist/icons/CubeIcon.js +1 -1
  471. package/dist/icons/CubePauseIcon.js +1 -1
  472. package/dist/icons/CubePlayIcon.js +1 -1
  473. package/dist/icons/CurrencyDollarIcon.js +1 -1
  474. package/dist/icons/DangerIcon.js +1 -1
  475. package/dist/icons/DashboardIcon.js +1 -1
  476. package/dist/icons/DatabaseIcon.js +1 -1
  477. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  478. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  479. package/dist/icons/DirectionIcon.js +1 -1
  480. package/dist/icons/DonutIcon.js +1 -1
  481. package/dist/icons/DownIcon.js +1 -1
  482. package/dist/icons/EditIcon.js +1 -1
  483. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  484. package/dist/icons/ExclamationCircleIcon.js +1 -1
  485. package/dist/icons/ExclamationIcon.js +1 -1
  486. package/dist/icons/EyeIcon.js +1 -1
  487. package/dist/icons/EyeInvisibleIcon.js +1 -1
  488. package/dist/icons/FilterIcon.js +1 -1
  489. package/dist/icons/FolderFilledIcon.js +1 -1
  490. package/dist/icons/FolderIcon.js +1 -1
  491. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  492. package/dist/icons/FolderOpenIcon.js +1 -1
  493. package/dist/icons/ForwardIcon.js +1 -1
  494. package/dist/icons/GripVerticalIcon.js +1 -1
  495. package/dist/icons/HierarchyIcon.js +1 -1
  496. package/dist/icons/HierarchyOpenIcon.js +1 -1
  497. package/dist/icons/Icon.js +1 -1
  498. package/dist/icons/InfoCircleIcon.js +1 -1
  499. package/dist/icons/InfoIcon.js +1 -1
  500. package/dist/icons/KeyIcon.js +1 -1
  501. package/dist/icons/LeftIcon.js +1 -1
  502. package/dist/icons/LineChartIcon.js +1 -1
  503. package/dist/icons/LoadingIcon.js +1 -1
  504. package/dist/icons/LockFilledIcon.js +1 -1
  505. package/dist/icons/LockIcon.js +1 -1
  506. package/dist/icons/MoreIcon.js +1 -1
  507. package/dist/icons/NotAllowedIcon.js +1 -1
  508. package/dist/icons/Number123Icon.js +1 -1
  509. package/dist/icons/NumberIcon.js +1 -1
  510. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  511. package/dist/icons/PauseCircleIcon.js +1 -1
  512. package/dist/icons/PauseIcon.js +1 -1
  513. package/dist/icons/PercentageIcon.js +1 -1
  514. package/dist/icons/PieChartIcon.js +1 -1
  515. package/dist/icons/PipetteIcon.js +1 -1
  516. package/dist/icons/PlayCircleIcon.js +1 -1
  517. package/dist/icons/PlayIcon.js +1 -1
  518. package/dist/icons/PlusIcon.js +1 -1
  519. package/dist/icons/ProgressBarIcon.js +1 -1
  520. package/dist/icons/ReloadIcon.js +1 -1
  521. package/dist/icons/ReportIcon.js +1 -1
  522. package/dist/icons/ReturnIcon.js +1 -1
  523. package/dist/icons/RightIcon.js +1 -1
  524. package/dist/icons/RowTotalsIcon.js +1 -1
  525. package/dist/icons/SchemeIcon.js +1 -1
  526. package/dist/icons/SearchIcon.js +1 -1
  527. package/dist/icons/SemanticQueryIcon.js +1 -1
  528. package/dist/icons/SettingsIcon.js +1 -1
  529. package/dist/icons/ShieldFilledIcon.js +1 -1
  530. package/dist/icons/ShieldIcon.js +1 -1
  531. package/dist/icons/SlashIcon.js +1 -1
  532. package/dist/icons/SparklesIcon.js +1 -1
  533. package/dist/icons/SqlIcon.js +1 -1
  534. package/dist/icons/StatsIcon.js +1 -1
  535. package/dist/icons/StopIcon.js +1 -1
  536. package/dist/icons/StringIcon.js +1 -1
  537. package/dist/icons/SubtotalsIcon.js +1 -1
  538. package/dist/icons/SwitchIcon.js +1 -1
  539. package/dist/icons/TableIcon.js +1 -1
  540. package/dist/icons/ThumbsDownIcon.js +1 -1
  541. package/dist/icons/ThumbsUpIcon.js +1 -1
  542. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  543. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  544. package/dist/icons/ThunderboltIcon.js +1 -1
  545. package/dist/icons/TimeIcon.js +1 -1
  546. package/dist/icons/TrashIcon.js +1 -1
  547. package/dist/icons/UnlockIcon.js +1 -1
  548. package/dist/icons/UpIcon.js +1 -1
  549. package/dist/icons/UserGroupIcon.js +1 -1
  550. package/dist/icons/UserIcon.js +1 -1
  551. package/dist/icons/UserLockIcon.js +1 -1
  552. package/dist/icons/ViewIcon.js +1 -1
  553. package/dist/icons/WarningFilledIcon.js +1 -1
  554. package/dist/icons/WarningIcon.js +1 -1
  555. package/dist/icons/wrap-icon.js +1 -1
  556. package/dist/index.js +1 -1
  557. package/dist/probe/canonicalize.js +1 -1
  558. package/dist/probe/css.js +1 -1
  559. package/dist/probe/index.js +1 -1
  560. package/dist/provider.js +1 -1
  561. package/dist/providers/TrackingProvider.js +1 -1
  562. package/dist/providers/navigationAdapter.default.js +1 -1
  563. package/dist/tokens/all-tokens.js +1 -1
  564. package/dist/tokens/base.js +1 -1
  565. package/dist/tokens/color-seed.js +1 -1
  566. package/dist/tokens/color-theme.js +1 -1
  567. package/dist/tokens/colors.js +1 -1
  568. package/dist/tokens/layout.js +1 -1
  569. package/dist/tokens/lazy-styles.js +1 -1
  570. package/dist/tokens/legacy-color.js +1 -1
  571. package/dist/tokens/palette-config.js +1 -1
  572. package/dist/tokens/palette.js +1 -1
  573. package/dist/tokens/resolve.js +1 -1
  574. package/dist/tokens/shadows.js +1 -1
  575. package/dist/tokens/sizes.js +1 -1
  576. package/dist/tokens/spacing.js +1 -1
  577. package/dist/tokens/typography.js +1 -1
  578. package/dist/utils/ResizeSensor.js +1 -1
  579. package/dist/utils/colors.js +1 -1
  580. package/dist/utils/dotize.js +1 -1
  581. package/dist/utils/is-dev-env.js +1 -1
  582. package/dist/utils/modules.js +1 -1
  583. package/dist/utils/promise.js +1 -1
  584. package/dist/utils/raf.js +1 -1
  585. package/dist/utils/random.js +1 -1
  586. package/dist/utils/range.js +1 -1
  587. package/dist/utils/react/RenderCache.js +1 -1
  588. package/dist/utils/react/Slots.js +1 -1
  589. package/dist/utils/react/chain.js +1 -1
  590. package/dist/utils/react/disabledProps.js +1 -1
  591. package/dist/utils/react/escapePropagation.js +1 -1
  592. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  593. package/dist/utils/react/index.js +1 -1
  594. package/dist/utils/react/interactions.js +1 -1
  595. package/dist/utils/react/isTextOnly.js +1 -1
  596. package/dist/utils/react/mapProps.js +1 -1
  597. package/dist/utils/react/mergeProps.js +1 -1
  598. package/dist/utils/react/nullableValue.js +1 -1
  599. package/dist/utils/react/programmaticFocus.js +1 -1
  600. package/dist/utils/react/resolveIcon.js +1 -1
  601. package/dist/utils/react/sharedStore.js +1 -1
  602. package/dist/utils/react/useBufferedValue.js +1 -1
  603. package/dist/utils/react/useCombinedRefs.js +1 -1
  604. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  605. package/dist/utils/react/useEventBus.js +1 -1
  606. package/dist/utils/react/useId.js +1 -1
  607. package/dist/utils/react/useIsDarwin.js +1 -1
  608. package/dist/utils/react/useKeySymbols.js +1 -1
  609. package/dist/utils/react/useKeySymbols.js.map +1 -1
  610. package/dist/utils/react/useLayoutEffect.js +1 -1
  611. package/dist/utils/react/useLocalStorage.js +1 -1
  612. package/dist/utils/react/useMergeStyles.js +1 -1
  613. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  614. package/dist/utils/react/usePopoverSync.js +1 -1
  615. package/dist/utils/react/usePopoverSync.js.map +1 -1
  616. package/dist/utils/react/useQaProps.js +1 -1
  617. package/dist/utils/react/useScheme.js +1 -1
  618. package/dist/utils/react/useViewportSize.js +1 -1
  619. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  620. package/dist/utils/selection.js +1 -1
  621. package/dist/utils/styles.js +1 -1
  622. package/dist/utils/tree.js +1 -1
  623. package/dist/utils/warnings.js +1 -1
  624. package/dist/version.js +2 -2
  625. package/docs/CreateComponent.md +3 -1
  626. package/docs/components/fields/TagInput.md +8 -8
  627. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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";
@@ -34,30 +34,54 @@ function queueOverflowCheck(check) {
34
34
  if (!pendingOverflowChecks.size) queueMicrotask(runOverflowChecks);
35
35
  pendingOverflowChecks.add(check);
36
36
  }
37
+ /**
38
+ * Whether the tooltip detects label overflow on its own. Overflow detection
39
+ * measures text, so it needs a string label.
40
+ */
41
+ function isAutoTooltip(tooltip, children) {
42
+ if (typeof children !== "string") return false;
43
+ if (tooltip === true) return true;
44
+ if (typeof tooltip === "object") {
45
+ if (tooltip.title) return tooltip.auto === true;
46
+ return tooltip.auto !== void 0 ? !!tooltip.auto : true;
47
+ }
48
+ return false;
49
+ }
50
+ /**
51
+ * The `TooltipProvider` props a tooltip resolves to, or `null` when no tooltip
52
+ * is rendered at all.
53
+ */
54
+ function resolveTooltip({ tooltip, children, labelProps, isDynamicLabel, isLabelOverflowed }) {
55
+ if (!tooltip) return null;
56
+ if (typeof tooltip === "string") return { title: tooltip };
57
+ const hasAutoContent = !!(children || labelProps) && (isLabelOverflowed || isDynamicLabel);
58
+ if (tooltip === true) {
59
+ if (!hasAutoContent) return null;
60
+ return {
61
+ title: children,
62
+ isDisabled: !isLabelOverflowed && isDynamicLabel
63
+ };
64
+ }
65
+ const { auto, ...tooltipProps } = tooltip;
66
+ if (tooltipProps.title && auto !== true) return tooltipProps;
67
+ if (!hasAutoContent) return null;
68
+ return {
69
+ title: tooltipProps.title ?? children,
70
+ isDisabled: !isLabelOverflowed && isDynamicLabel && tooltipProps.isDisabled !== true,
71
+ ...tooltipProps
72
+ };
73
+ }
37
74
  function useAutoTooltip(t0) {
38
- const $ = c(36);
75
+ const $ = c(33);
39
76
  const { tooltip, children, labelProps, isDynamicLabel: t1, labelRef: labelRefOption } = t0;
40
77
  const isDynamicLabel = t1 === void 0 ? false : t1;
41
78
  let t2;
42
- bb0: {
43
- if (typeof children !== "string") {
44
- t2 = false;
45
- break bb0;
46
- }
47
- if (tooltip === true) {
48
- t2 = true;
49
- break bb0;
50
- }
51
- if (typeof tooltip === "object") {
52
- if (tooltip.title) {
53
- t2 = tooltip.auto === true;
54
- break bb0;
55
- }
56
- t2 = !!(tooltip.auto !== void 0 ? tooltip.auto : true);
57
- break bb0;
58
- }
59
- t2 = false;
60
- }
79
+ if ($[0] !== children || $[1] !== tooltip) {
80
+ t2 = isAutoTooltip(tooltip, children);
81
+ $[0] = children;
82
+ $[1] = tooltip;
83
+ $[2] = t2;
84
+ } else t2 = $[2];
61
85
  const isAutoTooltipEnabled = t2;
62
86
  const externalLabelRef = labelProps?.ref;
63
87
  const [isLabelOverflowed, setIsLabelOverflowed] = useState(false);
@@ -65,36 +89,36 @@ function useAutoTooltip(t0) {
65
89
  const resizeObserverRef = useRef(null);
66
90
  const verdictRef = useRef(false);
67
91
  let t3;
68
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
92
+ if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
69
93
  t3 = (value) => {
70
94
  if (verdictRef.current === value) return;
71
95
  verdictRef.current = value;
72
96
  setIsLabelOverflowed(value);
73
97
  };
74
- $[0] = t3;
75
- } else t3 = $[0];
98
+ $[3] = t3;
99
+ } else t3 = $[3];
76
100
  const setVerdict = t3;
77
101
  let t4;
78
- if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
102
+ if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
79
103
  t4 = () => {
80
104
  const label = elementRef.current;
81
105
  if (!label) return;
82
106
  setVerdict(label.scrollWidth > label.clientWidth);
83
107
  };
84
- $[1] = t4;
85
- } else t4 = $[1];
108
+ $[4] = t4;
109
+ } else t4 = $[4];
86
110
  const checkLabelOverflow = t4;
87
111
  let t5;
88
- if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
112
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
89
113
  t5 = () => {
90
114
  queueOverflowCheck(checkLabelOverflow);
91
115
  };
92
- $[2] = t5;
93
- } else t5 = $[2];
116
+ $[5] = t5;
117
+ } else t5 = $[5];
94
118
  const scheduleLabelOverflowCheck = t5;
95
119
  let t6;
96
120
  let t7;
97
- if ($[3] !== isAutoTooltipEnabled) {
121
+ if ($[6] !== isAutoTooltipEnabled) {
98
122
  t6 = () => {
99
123
  if (isAutoTooltipEnabled) {
100
124
  scheduleLabelOverflowCheck();
@@ -107,16 +131,16 @@ function useAutoTooltip(t0) {
107
131
  scheduleLabelOverflowCheck,
108
132
  setVerdict
109
133
  ];
110
- $[3] = isAutoTooltipEnabled;
111
- $[4] = t6;
112
- $[5] = t7;
134
+ $[6] = isAutoTooltipEnabled;
135
+ $[7] = t6;
136
+ $[8] = t7;
113
137
  } else {
114
- t6 = $[4];
115
- t7 = $[5];
138
+ t6 = $[7];
139
+ t7 = $[8];
116
140
  }
117
141
  useEffect(t6, t7);
118
142
  let t8;
119
- if ($[6] !== externalLabelRef || $[7] !== isAutoTooltipEnabled || $[8] !== labelRefOption) {
143
+ if ($[9] !== externalLabelRef || $[10] !== isAutoTooltipEnabled || $[11] !== labelRefOption) {
120
144
  t8 = (element) => {
121
145
  assignRef(externalLabelRef, element);
122
146
  assignRef(labelRefOption, element);
@@ -139,101 +163,45 @@ function useAutoTooltip(t0) {
139
163
  resizeObserverRef.current = obs;
140
164
  obs.observe(element);
141
165
  };
142
- $[6] = externalLabelRef;
143
- $[7] = isAutoTooltipEnabled;
144
- $[8] = labelRefOption;
145
- $[9] = t8;
146
- } else t8 = $[9];
166
+ $[9] = externalLabelRef;
167
+ $[10] = isAutoTooltipEnabled;
168
+ $[11] = labelRefOption;
169
+ $[12] = t8;
170
+ } else t8 = $[12];
147
171
  const handleLabelElementRef = t8;
148
172
  let t9;
149
- if ($[10] !== labelProps) {
173
+ if ($[13] !== labelProps) {
150
174
  t9 = labelProps || {};
151
- $[10] = labelProps;
152
- $[11] = t9;
153
- } else t9 = $[11];
154
- let props;
155
- if ($[12] !== t9) {
156
- props = { ...t9 };
157
- delete props.ref;
158
- $[12] = t9;
159
- $[13] = props;
160
- } else props = $[13];
161
- const finalLabelProps = props;
175
+ $[13] = labelProps;
176
+ $[14] = t9;
177
+ } else t9 = $[14];
178
+ let finalLabelProps;
179
+ if ($[15] !== t9) {
180
+ const { ref: _labelPropsRef, ...t10 } = t9;
181
+ finalLabelProps = t10;
182
+ $[15] = t9;
183
+ $[16] = finalLabelProps;
184
+ } else finalLabelProps = $[16];
162
185
  let t10;
163
- bb1: {
164
- if (!tooltip) {
165
- t10 = null;
166
- break bb1;
167
- }
168
- if (typeof tooltip === "string") {
169
- let t11;
170
- if ($[14] !== tooltip) {
171
- t11 = { title: tooltip };
172
- $[14] = tooltip;
173
- $[15] = t11;
174
- } else t11 = $[15];
175
- t10 = t11;
176
- break bb1;
177
- }
178
- const hasAutoContent = !!(children || labelProps) && (isLabelOverflowed || isDynamicLabel);
179
- if (tooltip === true) {
180
- if (!hasAutoContent) {
181
- t10 = null;
182
- break bb1;
183
- }
184
- const t11 = !isLabelOverflowed && isDynamicLabel;
185
- let t12;
186
- if ($[16] !== children || $[17] !== t11) {
187
- t12 = {
188
- title: children,
189
- isDisabled: t11
190
- };
191
- $[16] = children;
192
- $[17] = t11;
193
- $[18] = t12;
194
- } else t12 = $[18];
195
- t10 = t12;
196
- break bb1;
197
- }
198
- let auto;
199
- let tooltipProps;
200
- if ($[19] !== tooltip) {
201
- ({auto, ...tooltipProps} = tooltip);
202
- $[19] = tooltip;
203
- $[20] = auto;
204
- $[21] = tooltipProps;
205
- } else {
206
- auto = $[20];
207
- tooltipProps = $[21];
208
- }
209
- if (tooltipProps.title && auto !== true) {
210
- t10 = tooltipProps;
211
- break bb1;
212
- }
213
- if (!hasAutoContent) {
214
- t10 = null;
215
- break bb1;
216
- }
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,
224
- ...tooltipProps
225
- };
226
- $[22] = t11;
227
- $[23] = t12;
228
- $[24] = tooltipProps;
229
- $[25] = t13;
230
- } else t13 = $[25];
231
- t10 = t13;
232
- }
186
+ if ($[17] !== children || $[18] !== isDynamicLabel || $[19] !== isLabelOverflowed || $[20] !== labelProps || $[21] !== tooltip) {
187
+ t10 = resolveTooltip({
188
+ tooltip,
189
+ children,
190
+ labelProps,
191
+ isDynamicLabel,
192
+ isLabelOverflowed
193
+ });
194
+ $[17] = children;
195
+ $[18] = isDynamicLabel;
196
+ $[19] = isLabelOverflowed;
197
+ $[20] = labelProps;
198
+ $[21] = tooltip;
199
+ $[22] = t10;
200
+ } else t10 = $[22];
233
201
  const resolvedTooltip = t10;
234
202
  const isTooltipActive = !!resolvedTooltip && resolvedTooltip.isDisabled !== true;
235
203
  let t11;
236
- if ($[26] !== resolvedTooltip) {
204
+ if ($[23] !== resolvedTooltip) {
237
205
  t11 = (renderElement, defaultTooltipPlacement) => {
238
206
  if (!resolvedTooltip) return renderElement();
239
207
  return /* @__PURE__ */ jsx(TooltipProvider, {
@@ -242,13 +210,13 @@ function useAutoTooltip(t0) {
242
210
  children: (triggerProps, ref) => renderElement(triggerProps, ref)
243
211
  });
244
212
  };
245
- $[26] = resolvedTooltip;
246
- $[27] = t11;
247
- } else t11 = $[27];
213
+ $[23] = resolvedTooltip;
214
+ $[24] = t11;
215
+ } else t11 = $[24];
248
216
  const renderWithTooltip = t11;
249
217
  const t12 = !!tooltip;
250
218
  let t13;
251
- if ($[28] !== finalLabelProps || $[29] !== handleLabelElementRef || $[30] !== isAutoTooltipEnabled || $[31] !== isLabelOverflowed || $[32] !== isTooltipActive || $[33] !== renderWithTooltip || $[34] !== t12) {
219
+ if ($[25] !== finalLabelProps || $[26] !== handleLabelElementRef || $[27] !== isAutoTooltipEnabled || $[28] !== isLabelOverflowed || $[29] !== isTooltipActive || $[30] !== renderWithTooltip || $[31] !== t12) {
252
220
  t13 = {
253
221
  labelRef: handleLabelElementRef,
254
222
  labelProps: finalLabelProps,
@@ -258,15 +226,15 @@ function useAutoTooltip(t0) {
258
226
  isTooltipActive,
259
227
  renderWithTooltip
260
228
  };
261
- $[28] = finalLabelProps;
262
- $[29] = handleLabelElementRef;
263
- $[30] = isAutoTooltipEnabled;
264
- $[31] = isLabelOverflowed;
265
- $[32] = isTooltipActive;
266
- $[33] = renderWithTooltip;
267
- $[34] = t12;
268
- $[35] = t13;
269
- } else t13 = $[35];
229
+ $[25] = finalLabelProps;
230
+ $[26] = handleLabelElementRef;
231
+ $[27] = isAutoTooltipEnabled;
232
+ $[28] = isLabelOverflowed;
233
+ $[29] = isTooltipActive;
234
+ $[30] = renderWithTooltip;
235
+ $[31] = t12;
236
+ $[32] = t13;
237
+ } else t13 = $[32];
270
238
  return t13;
271
239
  }
272
240
 
@@ -1 +1 @@
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":"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"}
1
+ {"version":3,"file":"use-auto-tooltip.js","names":["HTMLAttributes","ReactNode","Ref","RefObject","useCallback","useEffect","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","isAutoTooltip","title","undefined","resolveTooltip","isLabelOverflowed","hasAutoContent","isDisabled","tooltipProps","useAutoTooltip","t0","$","_c","t1","labelRefOption","t2","isAutoTooltipEnabled","externalLabelRef","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","finalLabelProps","_labelPropsRef","t10","resolvedTooltip","isTooltipActive","t11","renderElement","defaultTooltipPlacement","triggerProps","renderWithTooltip","t12","t13","hasTooltip"],"sources":["../../../src/components/content/use-auto-tooltip.tsx"],"sourcesContent":["import {\n HTMLAttributes,\n ReactNode,\n Ref,\n RefObject,\n useCallback,\n useEffect,\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\n/**\n * Whether the tooltip detects label overflow on its own. Overflow detection\n * measures text, so it needs a string label.\n */\nfunction isAutoTooltip(\n tooltip: AutoTooltipValue | undefined,\n children: ReactNode,\n): boolean {\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 return tooltip.auto !== undefined ? !!tooltip.auto : true;\n }\n return false;\n}\n\n/**\n * The `TooltipProvider` props a tooltip resolves to, or `null` when no tooltip\n * is rendered at all.\n */\nfunction resolveTooltip({\n tooltip,\n children,\n labelProps,\n isDynamicLabel,\n isLabelOverflowed,\n}: Omit<UseAutoTooltipOptions, 'labelRef'> & {\n isLabelOverflowed: boolean;\n}): Omit<CubeTooltipProviderProps, 'children'> | 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 && isDynamicLabel && tooltipProps.isDisabled !== true,\n ...tooltipProps,\n };\n}\n\nexport function useAutoTooltip({\n tooltip,\n children,\n labelProps,\n isDynamicLabel = false,\n labelRef: labelRefOption,\n}: UseAutoTooltipOptions) {\n const isAutoTooltipEnabled = isAutoTooltip(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 { ref: _labelPropsRef, ...finalLabelProps } = labelProps || {};\n\n // Resolved once so that both the rendering below and `isTooltipActive` speak\n // about the same tooltip.\n const resolvedTooltip = resolveTooltip({\n tooltip,\n children,\n labelProps,\n isDynamicLabel,\n isLabelOverflowed,\n });\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,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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.185.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.186.0 | 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";
@@ -81,7 +81,7 @@ function projectReorder(fullOrder, nextDraggable) {
81
81
  }
82
82
  const EMPTY_ORDER = [];
83
83
  function useColumnOrder(t0) {
84
- const $ = c(17);
84
+ const $ = c(16);
85
85
  const { columns, columnOrder, defaultColumnOrder, onColumnOrderChange, storage } = t0;
86
86
  let t1;
87
87
  if ($[0] !== columnOrder || $[1] !== storage) {
@@ -92,48 +92,47 @@ function useColumnOrder(t0) {
92
92
  } else t1 = $[2];
93
93
  const [storedOrder] = useState(t1);
94
94
  const [order, setOrder] = useControlledState(columnOrder, defaultColumnOrder ?? storedOrder ?? EMPTY_ORDER, onColumnOrderChange);
95
+ let ordered;
95
96
  let t2;
96
97
  if ($[3] !== columns || $[4] !== order) {
97
- t2 = applyColumnOrder(columns, order);
98
+ ordered = applyColumnOrder(columns, order);
99
+ t2 = ordered.map(_temp);
98
100
  $[3] = columns;
99
101
  $[4] = order;
100
- $[5] = t2;
101
- } else t2 = $[5];
102
- const ordered = t2;
102
+ $[5] = ordered;
103
+ $[6] = t2;
104
+ } else {
105
+ ordered = $[5];
106
+ t2 = $[6];
107
+ }
108
+ const fullOrder = t2;
103
109
  let t3;
104
- if ($[6] !== ordered) {
105
- t3 = ordered.map(_temp);
106
- $[6] = ordered;
107
- $[7] = t3;
108
- } else t3 = $[7];
109
- const fullOrder = t3;
110
- let t4;
111
- if ($[8] !== columnOrder || $[9] !== fullOrder || $[10] !== setOrder || $[11] !== storage) {
112
- t4 = (nextDraggable) => {
110
+ if ($[7] !== columnOrder || $[8] !== fullOrder || $[9] !== setOrder || $[10] !== storage) {
111
+ t3 = (nextDraggable) => {
113
112
  const next = projectReorder(fullOrder, nextDraggable);
114
113
  setOrder(next);
115
114
  if (columnOrder === void 0) storage.write({ columnOrder: next });
116
115
  };
117
- $[8] = columnOrder;
118
- $[9] = fullOrder;
119
- $[10] = setOrder;
120
- $[11] = storage;
121
- $[12] = t4;
122
- } else t4 = $[12];
123
- const reorder = useEvent(t4);
124
- let t5;
125
- if ($[13] !== fullOrder || $[14] !== ordered || $[15] !== reorder) {
126
- t5 = {
116
+ $[7] = columnOrder;
117
+ $[8] = fullOrder;
118
+ $[9] = setOrder;
119
+ $[10] = storage;
120
+ $[11] = t3;
121
+ } else t3 = $[11];
122
+ const reorder = useEvent(t3);
123
+ let t4;
124
+ if ($[12] !== fullOrder || $[13] !== ordered || $[14] !== reorder) {
125
+ t4 = {
127
126
  columns: ordered,
128
127
  order: fullOrder,
129
128
  reorder
130
129
  };
131
- $[13] = fullOrder;
132
- $[14] = ordered;
133
- $[15] = reorder;
134
- $[16] = t5;
135
- } else t5 = $[16];
136
- return t5;
130
+ $[12] = fullOrder;
131
+ $[13] = ordered;
132
+ $[14] = reorder;
133
+ $[15] = t4;
134
+ } else t4 = $[15];
135
+ return t4;
137
136
  }
138
137
  function _temp(column) {
139
138
  return column.key;