@cube-dev/ui-kit 0.166.0 → 0.167.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 (651) hide show
  1. package/README.md +4 -7
  2. package/dist/CHANGELOG.md +33 -0
  3. package/dist/README.md +4 -7
  4. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  5. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  6. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  7. package/dist/_internal/hooks/use-event.js +1 -1
  8. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  9. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  10. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  11. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  12. package/dist/_internal/hooks/use-warn.js +1 -1
  13. package/dist/components/Block.js +1 -1
  14. package/dist/components/CollectionItem.js +1 -1
  15. package/dist/components/GlobalStyles.js +4 -4
  16. package/dist/components/GlobalStyles.js.map +1 -1
  17. package/dist/components/GridProvider.js +1 -1
  18. package/dist/components/HiddenInput.js +1 -1
  19. package/dist/components/Root.js +1 -2
  20. package/dist/components/Root.js.map +1 -1
  21. package/dist/components/actions/Action/Action.js +1 -1
  22. package/dist/components/actions/Banner/Banner.js +1 -1
  23. package/dist/components/actions/Button/Button.js +1 -1
  24. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  25. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  26. package/dist/components/actions/ButtonSplit/context.js +1 -1
  27. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  28. package/dist/components/actions/CommandMenu/styled.js +1 -1
  29. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  30. package/dist/components/actions/ItemActionContext.js +1 -1
  31. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  32. package/dist/components/actions/Link/Link.js +1 -1
  33. package/dist/components/actions/Menu/Menu.js +1 -1
  34. package/dist/components/actions/Menu/MenuItem.js +1 -1
  35. package/dist/components/actions/Menu/MenuSection.js +1 -1
  36. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  37. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  38. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  39. package/dist/components/actions/Menu/context.js +1 -1
  40. package/dist/components/actions/Menu/styled.js +1 -1
  41. package/dist/components/actions/index.js +1 -1
  42. package/dist/components/actions/use-action.js +1 -1
  43. package/dist/components/actions/use-anchored-menu.d.ts +7 -3
  44. package/dist/components/actions/use-anchored-menu.js +17 -12
  45. package/dist/components/actions/use-anchored-menu.js.map +1 -1
  46. package/dist/components/actions/use-context-menu.d.ts +6 -3
  47. package/dist/components/actions/use-context-menu.js +25 -13
  48. package/dist/components/actions/use-context-menu.js.map +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 +1 -1
  54. package/dist/components/content/Card/Card.js +1 -1
  55. package/dist/components/content/Content.js +1 -1
  56. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  57. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  58. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  59. package/dist/components/content/Divider.js +1 -1
  60. package/dist/components/content/Footer.js +1 -1
  61. package/dist/components/content/Header.js +1 -1
  62. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  63. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  64. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  65. package/dist/components/content/Item/Item.js +1 -1
  66. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  67. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  68. package/dist/components/content/Layout/GridLayout.js +1 -1
  69. package/dist/components/content/Layout/Layout.js +1 -1
  70. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  71. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  72. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  73. package/dist/components/content/Layout/LayoutContent.js +1 -1
  74. package/dist/components/content/Layout/LayoutContext.js +1 -1
  75. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  76. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  77. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  78. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  79. package/dist/components/content/Layout/LayoutPane.js +1 -1
  80. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  81. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  82. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  83. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  84. package/dist/components/content/Layout/index.js +1 -1
  85. package/dist/components/content/Layout/utils.js +1 -1
  86. package/dist/components/content/Paragraph.js +1 -1
  87. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  88. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  89. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  90. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  91. package/dist/components/content/Result/Result.js +1 -1
  92. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  93. package/dist/components/content/Tag/Tag.js +1 -1
  94. package/dist/components/content/Text.d.ts +14 -14
  95. package/dist/components/content/Text.js +1 -1
  96. package/dist/components/content/TextItem/TextItem.js +1 -1
  97. package/dist/components/content/Title.js +1 -1
  98. package/dist/components/content/Tree/Tree.js +1 -1
  99. package/dist/components/content/Tree/TreeNode.js +1 -1
  100. package/dist/components/content/Tree/styled.js +1 -1
  101. package/dist/components/content/Tree/tree-index.js +1 -1
  102. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  103. package/dist/components/content/Tree/use-load-data.js +1 -1
  104. package/dist/components/content/highlightText.js +1 -1
  105. package/dist/components/content/use-auto-tooltip.js +1 -1
  106. package/dist/components/data/DataTable/DataTable.js +1 -1
  107. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  108. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  109. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  110. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  111. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  112. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  113. package/dist/components/data/TableBase/RowCollection.js +1 -1
  114. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  115. package/dist/components/data/TableBase/TableRow.js +1 -1
  116. package/dist/components/data/TableBase/TableView.js +1 -1
  117. package/dist/components/data/TableBase/column-menu.js +1 -1
  118. package/dist/components/data/TableBase/column-tint.js +1 -1
  119. package/dist/components/data/TableBase/row-menu.js +1 -1
  120. package/dist/components/data/TableBase/styled.js +1 -1
  121. package/dist/components/data/TableBase/table-tree.js +1 -1
  122. package/dist/components/data/TableBase/types.js +1 -1
  123. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  124. package/dist/components/data/TableBase/use-column-order.js +1 -1
  125. package/dist/components/data/TableBase/use-container-width.js +1 -1
  126. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  127. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  128. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  129. package/dist/components/data/TableBase/use-table-search.js +1 -1
  130. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  131. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  132. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  133. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  134. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  135. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  136. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  137. package/dist/components/fields/Checkbox/context.js +1 -1
  138. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  139. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  140. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  141. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  142. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  143. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  144. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  145. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  146. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  147. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  148. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  149. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  150. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  151. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  152. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  153. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  154. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  155. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  156. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  157. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  158. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  159. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  160. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  161. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  162. package/dist/components/fields/DatePicker/period.js +1 -1
  163. package/dist/components/fields/DatePicker/props.js +1 -1
  164. package/dist/components/fields/DatePicker/utils.js +1 -1
  165. package/dist/components/fields/FileInput/FileInput.js +1 -1
  166. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  167. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  168. package/dist/components/fields/Input/Input.js +1 -1
  169. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  170. package/dist/components/fields/ListBox/ListBox.js +1 -1
  171. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  172. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  173. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  174. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  175. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  176. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  177. package/dist/components/fields/Picker/Picker.js +1 -1
  178. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  179. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  180. package/dist/components/fields/RadioGroup/context.js +1 -1
  181. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  182. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  183. package/dist/components/fields/Select/Select.js +1 -1
  184. package/dist/components/fields/Slider/Gradation.js +1 -1
  185. package/dist/components/fields/Slider/HueSlider.js +1 -1
  186. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  187. package/dist/components/fields/Slider/Slider.js +1 -1
  188. package/dist/components/fields/Slider/SliderBase.js +1 -1
  189. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  190. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  191. package/dist/components/fields/Slider/elements.js +1 -1
  192. package/dist/components/fields/Slider/index.js +1 -1
  193. package/dist/components/fields/Switch/Switch.js +1 -1
  194. package/dist/components/fields/TextArea/TextArea.js +1 -1
  195. package/dist/components/fields/TextInput/TextInput.js +1 -1
  196. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  197. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  198. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  199. package/dist/components/fields/color/ColorPanel.js +1 -1
  200. package/dist/components/fields/color/channels.js +1 -1
  201. package/dist/components/fields/color/color.js +1 -1
  202. package/dist/components/fields/color/context.js +1 -1
  203. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  204. package/dist/components/form/Form/Field.js +1 -1
  205. package/dist/components/form/Form/Form.js +1 -1
  206. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  207. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  208. package/dist/components/form/Form/SubmitError.js +1 -1
  209. package/dist/components/form/Form/index.js +1 -1
  210. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  211. package/dist/components/form/Form/use-field/use-field.js +1 -1
  212. package/dist/components/form/Form/use-form.js +1 -1
  213. package/dist/components/form/Form/validation.js +1 -1
  214. package/dist/components/form/Label.js +1 -1
  215. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  216. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  217. package/dist/components/form/validation/use-validation-props.js +1 -1
  218. package/dist/components/form/wrapper.js +1 -1
  219. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  220. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  221. package/dist/components/layout/Board/Board.d.ts +11 -5
  222. package/dist/components/layout/Board/Board.js +15 -7
  223. package/dist/components/layout/Board/Board.js.map +1 -1
  224. package/dist/components/layout/Board/BoardProvider.js +1 -1
  225. package/dist/components/layout/Board/BoardResponsive.d.ts +6 -3
  226. package/dist/components/layout/Board/BoardResponsive.js +3 -3
  227. package/dist/components/layout/Board/BoardResponsive.js.map +1 -1
  228. package/dist/components/layout/Board/Widget.d.ts +29 -1
  229. package/dist/components/layout/Board/Widget.js +5 -2
  230. package/dist/components/layout/Board/Widget.js.map +1 -1
  231. package/dist/components/layout/Board/WidgetHost.js +67 -17
  232. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  233. package/dist/components/layout/Board/board-context.js +1 -1
  234. package/dist/components/layout/Board/board-context.js.map +1 -1
  235. package/dist/components/layout/Board/board-store.js +2 -2
  236. package/dist/components/layout/Board/board-store.js.map +1 -1
  237. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  238. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  239. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  240. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  241. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  242. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  243. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  244. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  245. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  246. package/dist/components/layout/Board/index.d.ts +2 -1
  247. package/dist/components/layout/Board/index.js +1 -1
  248. package/dist/components/layout/Board/index.js.map +1 -1
  249. package/dist/components/layout/Board/responsive-utils.js +1 -1
  250. package/dist/components/layout/Board/use-board-layout.d.ts +26 -0
  251. package/dist/components/layout/Board/use-board-layout.js +4 -4
  252. package/dist/components/layout/Board/use-board-layout.js.map +1 -1
  253. package/dist/components/layout/Board/use-board-registry.js +4 -4
  254. package/dist/components/layout/Board/use-board-registry.js.map +1 -1
  255. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  256. package/dist/components/layout/Board/use-board-selection.js +1 -1
  257. package/dist/components/layout/Flex.js +1 -1
  258. package/dist/components/layout/Flow.js +1 -1
  259. package/dist/components/layout/Grid.js +1 -1
  260. package/dist/components/layout/Panel.js +1 -1
  261. package/dist/components/layout/Prefix.js +1 -1
  262. package/dist/components/layout/ResizablePanel.js +1 -1
  263. package/dist/components/layout/Space.js +1 -1
  264. package/dist/components/layout/Suffix.js +1 -1
  265. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  266. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  267. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  268. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  269. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  270. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  271. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  272. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  273. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  274. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  275. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  276. package/dist/components/navigation/Tabs/styled.js +1 -1
  277. package/dist/components/navigation/Tabs/types.js +1 -1
  278. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  279. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  280. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  281. package/dist/components/other/Calendar/Calendar.js +1 -1
  282. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  283. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  284. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  285. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  286. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  287. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  288. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  289. package/dist/components/other/Calendar/styled.js +1 -1
  290. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  291. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  292. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  293. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  294. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  295. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  296. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  297. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  298. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  299. package/dist/components/overlays/Dialog/context.js +1 -1
  300. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  301. package/dist/components/overlays/Modal/Modal.js +1 -1
  302. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  303. package/dist/components/overlays/Modal/Overlay.js +1 -1
  304. package/dist/components/overlays/Modal/Popover.js +1 -1
  305. package/dist/components/overlays/Modal/Tray.js +1 -1
  306. package/dist/components/overlays/Modal/Underlay.js +1 -1
  307. package/dist/components/overlays/Notifications/Notification.js +1 -1
  308. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  309. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  310. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  311. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  312. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  313. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  314. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  315. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  316. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  317. package/dist/components/overlays/Notifications/index.js +1 -1
  318. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  319. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  320. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  321. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  322. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  323. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  324. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  325. package/dist/components/overlays/Toast/index.js +1 -1
  326. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  327. package/dist/components/overlays/Toast/useToast.js +1 -1
  328. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  329. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  330. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  331. package/dist/components/overlays/Tooltip/context.js +1 -1
  332. package/dist/components/portal/Portal.js +1 -1
  333. package/dist/components/portal/PortalProvider.js +1 -1
  334. package/dist/components/portal/usePortal.js +1 -1
  335. package/dist/components/shared/DraggableCollection.js +1 -1
  336. package/dist/components/shared/InvalidIcon.js +1 -1
  337. package/dist/components/shared/ValidIcon.js +1 -1
  338. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  339. package/dist/components/status/Spin/Cube.js +1 -1
  340. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  341. package/dist/components/status/Spin/Spin.js +1 -1
  342. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  343. package/dist/data/item-themes.js +1 -1
  344. package/dist/data/themes.js +1 -1
  345. package/dist/eslint-plugin/defaults.generated.js +21 -1
  346. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  347. package/dist/eslint-plugin/index.js +1 -1
  348. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  349. package/dist/i18n/I18nProvider.js +1 -1
  350. package/dist/i18n/createFormatter.js +1 -1
  351. package/dist/i18n/index.js +1 -1
  352. package/dist/i18n/instance.js +1 -1
  353. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  354. package/dist/i18n/locales/en-US/uikit.js +1 -1
  355. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  356. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  357. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  358. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  359. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  360. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  361. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  362. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  363. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  364. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  365. package/dist/i18n/locales.js +1 -1
  366. package/dist/i18n/useFormatter.js +1 -1
  367. package/dist/i18n/useI18n.js +1 -1
  368. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  369. package/dist/icons/AdjustmentsIcon.js +1 -1
  370. package/dist/icons/AiIcon.js +1 -1
  371. package/dist/icons/AreaChartIcon.js +1 -1
  372. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  373. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  374. package/dist/icons/BackwardIcon.js +1 -1
  375. package/dist/icons/BarChartIcon.js +1 -1
  376. package/dist/icons/BellFilledIcon.js +1 -1
  377. package/dist/icons/BellIcon.js +1 -1
  378. package/dist/icons/BooleanIcon.js +1 -1
  379. package/dist/icons/CalendarEditIcon.js +1 -1
  380. package/dist/icons/CalendarIcon.js +1 -1
  381. package/dist/icons/CaretDownIcon.js +1 -1
  382. package/dist/icons/CaretUpIcon.js +1 -1
  383. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  384. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  385. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  386. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  387. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  388. package/dist/icons/ChartBarLineIcon.js +1 -1
  389. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  390. package/dist/icons/ChartBarStackedIcon.js +1 -1
  391. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  392. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  393. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  394. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  395. package/dist/icons/ChartBubbleIcon.js +1 -1
  396. package/dist/icons/ChartDonut2Icon.js +1 -1
  397. package/dist/icons/ChartFunnelIcon.js +1 -1
  398. package/dist/icons/ChartHeatmapIcon.js +1 -1
  399. package/dist/icons/ChartKPIIcon.js +1 -1
  400. package/dist/icons/ChartPie2Icon.js +1 -1
  401. package/dist/icons/ChartScatterIcon.js +1 -1
  402. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  403. package/dist/icons/CheckCircleIcon.js +1 -1
  404. package/dist/icons/CheckIcon.js +1 -1
  405. package/dist/icons/CircleFilledIcon.js +1 -1
  406. package/dist/icons/ClearIcon.js +1 -1
  407. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  408. package/dist/icons/CloseCircleIcon.js +1 -1
  409. package/dist/icons/CloseIcon.js +1 -1
  410. package/dist/icons/CodeIcon.js +1 -1
  411. package/dist/icons/ColumnTotalIcon.js +1 -1
  412. package/dist/icons/CopyIcon.js +1 -1
  413. package/dist/icons/CountIcon.js +1 -1
  414. package/dist/icons/CubeIcon.js +1 -1
  415. package/dist/icons/CubePauseIcon.js +1 -1
  416. package/dist/icons/CubePlayIcon.js +1 -1
  417. package/dist/icons/CurrencyDollarIcon.js +1 -1
  418. package/dist/icons/DangerIcon.js +1 -1
  419. package/dist/icons/DashboardIcon.js +1 -1
  420. package/dist/icons/DatabaseIcon.js +1 -1
  421. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  422. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  423. package/dist/icons/DirectionIcon.js +1 -1
  424. package/dist/icons/DonutIcon.js +1 -1
  425. package/dist/icons/DownIcon.js +1 -1
  426. package/dist/icons/EditIcon.js +1 -1
  427. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  428. package/dist/icons/ExclamationCircleIcon.js +1 -1
  429. package/dist/icons/ExclamationIcon.js +1 -1
  430. package/dist/icons/EyeIcon.js +1 -1
  431. package/dist/icons/EyeInvisibleIcon.js +1 -1
  432. package/dist/icons/FilterIcon.js +1 -1
  433. package/dist/icons/FolderFilledIcon.js +1 -1
  434. package/dist/icons/FolderIcon.js +1 -1
  435. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  436. package/dist/icons/FolderOpenIcon.js +1 -1
  437. package/dist/icons/ForwardIcon.js +1 -1
  438. package/dist/icons/GripVerticalIcon.js +1 -1
  439. package/dist/icons/HierarchyIcon.js +1 -1
  440. package/dist/icons/HierarchyOpenIcon.js +1 -1
  441. package/dist/icons/Icon.js +1 -1
  442. package/dist/icons/InfoCircleIcon.js +1 -1
  443. package/dist/icons/InfoIcon.js +1 -1
  444. package/dist/icons/KeyIcon.js +1 -1
  445. package/dist/icons/LeftIcon.js +1 -1
  446. package/dist/icons/LineChartIcon.js +1 -1
  447. package/dist/icons/LoadingIcon.js +1 -1
  448. package/dist/icons/LockFilledIcon.js +1 -1
  449. package/dist/icons/LockIcon.js +1 -1
  450. package/dist/icons/MoreIcon.js +1 -1
  451. package/dist/icons/NotAllowedIcon.js +1 -1
  452. package/dist/icons/Number123Icon.js +1 -1
  453. package/dist/icons/NumberIcon.js +1 -1
  454. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  455. package/dist/icons/PauseCircleIcon.js +1 -1
  456. package/dist/icons/PauseIcon.js +1 -1
  457. package/dist/icons/PercentageIcon.js +1 -1
  458. package/dist/icons/PieChartIcon.js +1 -1
  459. package/dist/icons/PipetteIcon.js +1 -1
  460. package/dist/icons/PlayCircleIcon.js +1 -1
  461. package/dist/icons/PlayIcon.js +1 -1
  462. package/dist/icons/PlusIcon.js +1 -1
  463. package/dist/icons/ProgressBarIcon.js +1 -1
  464. package/dist/icons/ReloadIcon.js +1 -1
  465. package/dist/icons/ReportIcon.js +1 -1
  466. package/dist/icons/ReturnIcon.js +1 -1
  467. package/dist/icons/RightIcon.js +1 -1
  468. package/dist/icons/RowTotalsIcon.js +1 -1
  469. package/dist/icons/SchemeIcon.js +1 -1
  470. package/dist/icons/SearchIcon.js +1 -1
  471. package/dist/icons/SemanticQueryIcon.js +1 -1
  472. package/dist/icons/SettingsIcon.js +1 -1
  473. package/dist/icons/ShieldFilledIcon.js +1 -1
  474. package/dist/icons/ShieldIcon.js +1 -1
  475. package/dist/icons/SlashIcon.js +1 -1
  476. package/dist/icons/SparklesIcon.js +1 -1
  477. package/dist/icons/SqlIcon.js +1 -1
  478. package/dist/icons/StatsIcon.js +1 -1
  479. package/dist/icons/StopIcon.js +1 -1
  480. package/dist/icons/StringIcon.js +1 -1
  481. package/dist/icons/SubtotalsIcon.js +1 -1
  482. package/dist/icons/SwitchIcon.js +1 -1
  483. package/dist/icons/TableIcon.js +1 -1
  484. package/dist/icons/ThumbsDownIcon.js +1 -1
  485. package/dist/icons/ThumbsUpIcon.js +1 -1
  486. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  487. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  488. package/dist/icons/ThunderboltIcon.js +1 -1
  489. package/dist/icons/TimeIcon.js +1 -1
  490. package/dist/icons/TrashIcon.js +1 -1
  491. package/dist/icons/UnlockIcon.js +1 -1
  492. package/dist/icons/UpIcon.js +1 -1
  493. package/dist/icons/UserGroupIcon.js +1 -1
  494. package/dist/icons/UserIcon.js +1 -1
  495. package/dist/icons/UserLockIcon.js +1 -1
  496. package/dist/icons/ViewIcon.js +1 -1
  497. package/dist/icons/WarningFilledIcon.js +1 -1
  498. package/dist/icons/WarningIcon.js +1 -1
  499. package/dist/icons/wrap-icon.js +1 -1
  500. package/dist/index.d.ts +6 -3
  501. package/dist/index.js +4 -3
  502. package/dist/index.js.map +1 -1
  503. package/dist/probe/canonicalize.js +1 -1
  504. package/dist/probe/css.js +1 -1
  505. package/dist/probe/index.js +1 -1
  506. package/dist/provider.js +1 -1
  507. package/dist/providers/TrackingProvider.js +1 -1
  508. package/dist/providers/navigationAdapter.default.js +1 -1
  509. package/dist/tokens/all-tokens.d.ts +10 -0
  510. package/dist/tokens/{index.js → all-tokens.js} +7 -25
  511. package/dist/tokens/all-tokens.js.map +1 -0
  512. package/dist/tokens/base.js +2 -1
  513. package/dist/tokens/base.js.map +1 -1
  514. package/dist/tokens/color-seed.js +1 -1
  515. package/dist/tokens/color-theme.js +1 -1
  516. package/dist/tokens/colors.js +1 -1
  517. package/dist/tokens/index.d.ts +3 -10
  518. package/dist/tokens/layout.js +1 -1
  519. package/dist/tokens/lazy-styles.js +1 -1
  520. package/dist/tokens/palette-config.js +1 -1
  521. package/dist/tokens/palette.js +1 -1
  522. package/dist/tokens/resolve.d.ts +113 -0
  523. package/dist/tokens/resolve.js +403 -0
  524. package/dist/tokens/resolve.js.map +1 -0
  525. package/dist/tokens/shadows.js +1 -1
  526. package/dist/tokens/sizes.js +1 -1
  527. package/dist/tokens/spacing.js +1 -1
  528. package/dist/tokens/typography.js +1 -1
  529. package/dist/utils/ResizeSensor.js +1 -1
  530. package/dist/utils/is-dev-env.js +1 -1
  531. package/dist/utils/modules.js +1 -1
  532. package/dist/utils/promise.js +1 -1
  533. package/dist/utils/raf.js +1 -1
  534. package/dist/utils/random.js +1 -1
  535. package/dist/utils/range.js +1 -1
  536. package/dist/utils/react/RenderCache.js +1 -1
  537. package/dist/utils/react/Slots.js +1 -1
  538. package/dist/utils/react/chain.js +1 -1
  539. package/dist/utils/react/disabledProps.js +1 -1
  540. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  541. package/dist/utils/react/index.js +1 -1
  542. package/dist/utils/react/interactions.js +1 -1
  543. package/dist/utils/react/isTextOnly.js +1 -1
  544. package/dist/utils/react/mapProps.js +1 -1
  545. package/dist/utils/react/mergeProps.js +1 -1
  546. package/dist/utils/react/nullableValue.js +1 -1
  547. package/dist/utils/react/resolveIcon.js +1 -1
  548. package/dist/utils/react/sharedStore.js +1 -1
  549. package/dist/utils/react/useBufferedValue.js +1 -1
  550. package/dist/utils/react/useCombinedRefs.js +1 -1
  551. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  552. package/dist/utils/react/useEventBus.js +1 -1
  553. package/dist/utils/react/useId.js +1 -1
  554. package/dist/utils/react/useIsDarwin.js +1 -1
  555. package/dist/utils/react/useKeySymbols.js +1 -1
  556. package/dist/utils/react/useLayoutEffect.d.ts +1 -1
  557. package/dist/utils/react/useLayoutEffect.js +1 -1
  558. package/dist/utils/react/useLocalStorage.js +1 -1
  559. package/dist/utils/react/useMergeStyles.js +1 -1
  560. package/dist/utils/react/usePopoverSync.js +1 -1
  561. package/dist/utils/react/useQaProps.js +1 -1
  562. package/dist/utils/react/useViewportSize.js +1 -1
  563. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  564. package/dist/utils/selection.js +1 -1
  565. package/dist/utils/styles.js +1 -1
  566. package/dist/utils/tree.js +1 -1
  567. package/dist/utils/warnings.js +1 -1
  568. package/dist/version.js +3 -3
  569. package/docs/Colors.md +16 -40
  570. package/docs/ComplexLayout.md +8 -0
  571. package/docs/CreateComponent.md +15 -8
  572. package/docs/Introduction.md +15 -36
  573. package/docs/RenderCache.md +8 -6
  574. package/docs/Theming.md +164 -497
  575. package/docs/Usage.md +129 -138
  576. package/docs/Utilities.md +2 -2
  577. package/docs/components/CollectionItem.md +1 -0
  578. package/docs/components/actions/Banner.md +1 -0
  579. package/docs/components/actions/Button.md +8 -36
  580. package/docs/components/actions/ButtonSplit.md +2 -0
  581. package/docs/components/actions/CommandMenu.md +8 -8
  582. package/docs/components/actions/ItemButton.md +6 -20
  583. package/docs/components/actions/Link.md +10 -5
  584. package/docs/components/actions/Menu.md +24 -11
  585. package/docs/components/actions/MenuTrigger.md +3 -12
  586. package/docs/components/actions/use-anchored-menu.md +5 -5
  587. package/docs/components/actions/use-context-menu.md +11 -7
  588. package/docs/components/content/Badge.md +3 -0
  589. package/docs/components/content/HotKeys.md +21 -14
  590. package/docs/components/content/InlineInput.md +14 -14
  591. package/docs/components/content/Item.md +25 -17
  592. package/docs/components/content/ItemCard.md +1 -0
  593. package/docs/components/content/Layout.md +12 -1
  594. package/docs/components/content/PrismCode.md +13 -18
  595. package/docs/components/content/Tag.md +1 -1
  596. package/docs/components/content/TextItem.md +5 -3
  597. package/docs/components/content/Tree.md +69 -154
  598. package/docs/components/data/DataTable.md +56 -168
  599. package/docs/components/data/ItemTable.md +182 -485
  600. package/docs/components/fields/Checkbox.md +2 -0
  601. package/docs/components/fields/ColorInput.md +38 -79
  602. package/docs/components/fields/ColorPicker.md +17 -39
  603. package/docs/components/fields/ColorSwatch.md +11 -30
  604. package/docs/components/fields/ColorSwatchGroup.md +18 -42
  605. package/docs/components/fields/ComboBox.md +13 -1
  606. package/docs/components/fields/CommandTextArea.md +10 -37
  607. package/docs/components/fields/DatePicker.md +3 -0
  608. package/docs/components/fields/FileInput.md +3 -0
  609. package/docs/components/fields/FilterListBox.md +34 -14
  610. package/docs/components/fields/FilterPicker.md +33 -16
  611. package/docs/components/fields/HueSlider.md +5 -5
  612. package/docs/components/fields/ListBox.md +35 -9
  613. package/docs/components/fields/NumberInput.md +3 -0
  614. package/docs/components/fields/PasswordInput.md +3 -0
  615. package/docs/components/fields/PeriodPicker.md +7 -17
  616. package/docs/components/fields/Picker.md +54 -29
  617. package/docs/components/fields/RadioGroup.md +13 -5
  618. package/docs/components/fields/SearchComboBox.md +3 -0
  619. package/docs/components/fields/SearchInput.md +4 -2
  620. package/docs/components/fields/Select.md +23 -13
  621. package/docs/components/fields/Switch.md +3 -0
  622. package/docs/components/fields/TextInput.md +3 -0
  623. package/docs/components/fields/TextInputMapper.md +1 -2
  624. package/docs/components/form/Field.md +5 -2
  625. package/docs/components/form/Form.md +5 -0
  626. package/docs/components/form/FormInstance.md +1 -1
  627. package/docs/components/helpers/DisplayTransition.md +10 -6
  628. package/docs/components/helpers/IconSwitch.md +1 -0
  629. package/docs/components/layout/Board.md +79 -213
  630. package/docs/components/navigation/Pagination.md +36 -75
  631. package/docs/components/navigation/Tabs.md +3 -15
  632. package/docs/components/other/Calendar.md +22 -39
  633. package/docs/components/other/CubeLogo.md +1 -1
  634. package/docs/components/overlays/Dialog.md +3 -0
  635. package/docs/components/overlays/DialogContainer.md +2 -0
  636. package/docs/components/overlays/DialogForm.md +6 -2
  637. package/docs/components/overlays/DialogTrigger.md +4 -2
  638. package/docs/components/overlays/Notifications.md +7 -0
  639. package/docs/components/overlays/Toast.md +12 -8
  640. package/docs/components/overlays/Tooltip.md +7 -3
  641. package/docs/components/overlays/UseDialogContainer.md +16 -10
  642. package/docs/components/status/LoadingAnimation.md +3 -9
  643. package/docs/tasty/configuration.md +195 -15
  644. package/docs/tasty/dsl.md +40 -5
  645. package/docs/tasty/injector.md +11 -0
  646. package/docs/tasty/methodology.md +1 -1
  647. package/docs/tasty/pipeline.md +1 -4
  648. package/docs/tasty/react-api.md +1 -1
  649. package/docs/tasty/styles.md +8 -1
  650. package/package.json +4 -4
  651. package/dist/tokens/index.js.map +0 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
3
3
  import { usePopoverSync } from "../../utils/react/usePopoverSync.js";
4
4
  import { useEvent } from "../../_internal/hooks/use-event.js";
@@ -22,7 +22,13 @@ import { Pressable } from "@react-aria/interactions";
22
22
  function useAnchoredMenu(Component, defaultTriggerProps, defaultMenuProps) {
23
23
  const { t } = useI18n();
24
24
  const [isOpen, setIsOpen] = useState(false);
25
- const [componentProps, setComponentProps] = useState(null);
25
+ /**
26
+ * The props the CALLER passed to `open()`/`update()`, on their own — never
27
+ * pre-merged with `defaultMenuProps`. Merging at open time snapshotted the
28
+ * defaults, which froze the content of a menu whose items live in those
29
+ * defaults; merging on render keeps them current. Runtime props still win.
30
+ */
31
+ const [runtimeProps, setRuntimeProps] = useState(null);
26
32
  const [triggerProps, setTriggerProps] = useState(null);
27
33
  const anchorRef = useRef(null);
28
34
  const popoverRef = useRef(null);
@@ -48,26 +54,24 @@ function useAnchoredMenu(Component, defaultTriggerProps, defaultMenuProps) {
48
54
  }
49
55
  const open = useEvent((props = {}, triggerProps) => {
50
56
  setupCheck();
51
- setComponentProps(defaultMenuProps ? {
52
- ...defaultMenuProps,
53
- ...props
54
- } : props);
57
+ setRuntimeProps(props);
55
58
  setTriggerProps(triggerProps ?? null);
56
59
  setIsOpen(true);
57
60
  });
58
61
  const update = useEvent((props, triggerProps) => {
59
62
  setupCheck();
60
- setComponentProps(defaultMenuProps ? {
61
- ...defaultMenuProps,
62
- ...props
63
- } : props);
63
+ setRuntimeProps(props);
64
64
  setTriggerProps(triggerProps ?? null);
65
65
  });
66
66
  const close = useEvent(() => {
67
67
  setIsOpen(false);
68
68
  });
69
69
  const renderedMenu = useMemo(() => {
70
- if (!componentProps) return null;
70
+ if (!runtimeProps) return null;
71
+ const componentProps = defaultMenuProps ? {
72
+ ...defaultMenuProps,
73
+ ...runtimeProps
74
+ } : runtimeProps;
71
75
  return /* @__PURE__ */ jsxs(_MenuTrigger, {
72
76
  ...mergeProps$1(defaultTriggerProps, triggerProps || void 0),
73
77
  isDummy: true,
@@ -78,7 +82,8 @@ function useAnchoredMenu(Component, defaultTriggerProps, defaultMenuProps) {
78
82
  children: [/* @__PURE__ */ jsx(VisuallyHidden, { children: /* @__PURE__ */ jsx(Pressable, { children: /* @__PURE__ */ jsx("button", { "aria-label": t("contextMenu.contextMenu", "context-menu") }) }) }), /* @__PURE__ */ jsx(Component, { ...componentProps })]
79
83
  });
80
84
  }, [
81
- componentProps,
85
+ runtimeProps,
86
+ defaultMenuProps,
82
87
  triggerProps,
83
88
  isOpen,
84
89
  defaultTriggerProps,
@@ -1 +1 @@
1
- {"version":3,"file":"use-anchored-menu.js","names":["MenuTrigger","mergeProps"],"sources":["../../../src/components/actions/use-anchored-menu.tsx"],"sourcesContent":["import { Pressable } from '@react-aria/interactions';\nimport {\n ComponentProps,\n ComponentType,\n ReactElement,\n RefObject,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { VisuallyHidden } from 'react-aria';\n\nimport { useEvent } from '../../_internal';\nimport { useI18n } from '../../i18n';\nimport { generateRandomId } from '../../utils/random';\nimport { mergeProps } from '../../utils/react';\nimport { usePopoverSync } from '../../utils/react/usePopoverSync';\n\nimport { MenuTrigger } from './Menu';\n\nexport interface UseAnchoredMenuReturn<P, T> {\n /** Ref to attach to the anchor element for positioning the menu. */\n anchorRef: RefObject<HTMLElement | null>;\n\n /**\n * Programmatically opens the menu with the provided props.\n * @param props - Props to pass to the menu component\n * @param triggerProps - Additional props for MenuTrigger (merged with defaultTriggerProps)\n */\n open(props?: P, triggerProps?: T): void;\n\n /**\n * Updates the props of the currently open menu.\n * Props are merged if defaults are provided.\n */\n update(props: P, triggerProps?: T): void;\n\n /** Closes the menu programmatically. */\n close(): void;\n\n /** Current open/closed state of the menu. */\n isOpen: boolean;\n\n /**\n * JSX element that must be rendered in your component tree.\n * Contains the MenuTrigger and positioning logic.\n */\n get rendered(): ReactElement | null;\n}\n\n/**\n * Generic hook to manage an anchored menu component.\n *\n * @param Component - A React component that represents the menu content (Menu or CommandMenu).\n * @param defaultTriggerProps - Default props to pass to the MenuTrigger.\n * @param defaultMenuProps - Default props to pass to the Menu component.\n * @returns An object with `anchorRef` to position the menu, `open` function to open the menu with provided props, `close` function to close the menu, and `rendered` JSX element to include in your component tree.\n */\nexport function useAnchoredMenu<P, T = ComponentProps<typeof MenuTrigger>>(\n Component: ComponentType<P>,\n defaultTriggerProps?: Omit<\n ComponentProps<typeof MenuTrigger>,\n 'children' | 'isOpen' | 'onOpenChange' | 'targetRef'\n >,\n defaultMenuProps?: P,\n): UseAnchoredMenuReturn<P, T> {\n const { t } = useI18n();\n const [isOpen, setIsOpen] = useState(false);\n const [componentProps, setComponentProps] = useState<P | null>(null);\n const [triggerProps, setTriggerProps] = useState<T | null>(null);\n const anchorRef = useRef<HTMLElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n const setupRef = useRef(false);\n\n useEffect(() => {\n const el = anchorRef.current;\n if (el) {\n el.dataset.popoverTrigger = '';\n return () => {\n delete el.dataset.popoverTrigger;\n };\n }\n }, []);\n\n // Generate a unique ID for this menu instance\n const menuId = useMemo(() => generateRandomId(), []);\n\n // Feed both the anchor (`triggerRef`) and the popover container\n // (`containerRef`) into the sync. The container ref is shared with the\n // rendered `MenuTrigger` via its `popoverRef` prop — the dummy `MenuTrigger`\n // opts out of `usePopoverSync` (`enabled: !isDummy`), so without this the\n // nested-popover guard would have no container to match against and a\n // `SubMenuTrigger` opened inside this menu would close the whole menu.\n usePopoverSync({\n menuId,\n isOpen,\n onClose: () => setIsOpen(false),\n triggerRef: anchorRef,\n containerRef: popoverRef,\n });\n\n function setupCheck() {\n if (!setupRef.current) {\n throw new Error(\n 'useAnchoredMenu: MenuTrigger must be rendered. Use `rendered` property to include it in your component tree.',\n );\n }\n }\n\n // 'open' accepts props required by the Component and opens the menu\n const open = useEvent((props: P = {} as P, triggerProps?: T) => {\n setupCheck();\n\n // Merge defaultMenuProps with provided props\n const finalProps = defaultMenuProps\n ? { ...defaultMenuProps, ...props }\n : props;\n\n setComponentProps(finalProps);\n setTriggerProps(triggerProps ?? null);\n setIsOpen(true);\n });\n\n const update = useEvent((props: P, triggerProps?: T) => {\n setupCheck();\n\n // Merge defaultMenuProps with provided props\n const finalProps = defaultMenuProps\n ? { ...defaultMenuProps, ...props }\n : props;\n\n setComponentProps(finalProps);\n setTriggerProps(triggerProps ?? null);\n });\n\n const close = useEvent(() => {\n setIsOpen(false);\n });\n\n // Render the menu only when componentProps is set\n const renderedMenu = useMemo(() => {\n if (!componentProps) return null;\n\n return (\n <MenuTrigger\n {...mergeProps(defaultTriggerProps, triggerProps || undefined)}\n isDummy\n isOpen={isOpen}\n targetRef={anchorRef}\n popoverRef={popoverRef}\n onOpenChange={setIsOpen}\n >\n <VisuallyHidden>\n <Pressable>\n <button aria-label={t('contextMenu.contextMenu', 'context-menu')} />\n </Pressable>\n </VisuallyHidden>\n <Component {...componentProps} />\n </MenuTrigger>\n );\n }, [componentProps, triggerProps, isOpen, defaultTriggerProps, t]);\n\n return {\n anchorRef,\n open,\n update,\n close,\n isOpen,\n get rendered() {\n setupRef.current = true;\n\n return renderedMenu;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA2DA,SAAgB,gBACd,WACA,qBAIA,kBAC6B;CAC7B,MAAM,EAAE,MAAM,SAAS;CACvB,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM;CAC3C,MAAM,CAAC,gBAAgB,qBAAqB,SAAmB,KAAK;CACpE,MAAM,CAAC,cAAc,mBAAmB,SAAmB,KAAK;CAChE,MAAM,YAAY,OAAoB,KAAK;CAC3C,MAAM,aAAa,OAAuB,KAAK;CAC/C,MAAM,WAAW,OAAO,MAAM;AAE9B,iBAAgB;EACd,MAAM,KAAK,UAAU;AACrB,MAAI,IAAI;AACN,MAAG,QAAQ,iBAAiB;AAC5B,gBAAa;AACX,WAAO,GAAG,QAAQ;;;IAGrB,EAAE,CAAC;AAWN,gBAAe;EACb,QATa,cAAc,kBAAkB,EAAE,EAAE,CAAC;EAUlD;EACA,eAAe,UAAU,MAAM;EAC/B,YAAY;EACZ,cAAc;EACf,CAAC;CAEF,SAAS,aAAa;AACpB,MAAI,CAAC,SAAS,QACZ,OAAM,IAAI,MACR,+GACD;;CAKL,MAAM,OAAO,UAAU,QAAW,EAAE,EAAO,iBAAqB;AAC9D,cAAY;AAOZ,oBAJmB,mBACf;GAAE,GAAG;GAAkB,GAAG;GAAO,GACjC,MAEyB;AAC7B,kBAAgB,gBAAgB,KAAK;AACrC,YAAU,KAAK;GACf;CAEF,MAAM,SAAS,UAAU,OAAU,iBAAqB;AACtD,cAAY;AAOZ,oBAJmB,mBACf;GAAE,GAAG;GAAkB,GAAG;GAAO,GACjC,MAEyB;AAC7B,kBAAgB,gBAAgB,KAAK;GACrC;CAEF,MAAM,QAAQ,eAAe;AAC3B,YAAU,MAAM;GAChB;CAGF,MAAM,eAAe,cAAc;AACjC,MAAI,CAAC,eAAgB,QAAO;AAE5B,SACE,qBAACA;GACC,GAAIC,aAAW,qBAAqB,gBAAgB,OAAU;GAC9D;GACQ;GACR,WAAW;GACC;GACZ,cAAc;cAEd,oBAAC,4BACC,oBAAC,uBACC,oBAAC,YAAO,cAAY,EAAE,2BAA2B,eAAe,GAAI,GAC1D,GACG,EACjB,oBAAC,aAAU,GAAI,iBAAkB;IACrB;IAEf;EAAC;EAAgB;EAAc;EAAQ;EAAqB;EAAE,CAAC;AAElE,QAAO;EACL;EACA;EACA;EACA;EACA;EACA,IAAI,WAAW;AACb,YAAS,UAAU;AAEnB,UAAO;;EAEV"}
1
+ {"version":3,"file":"use-anchored-menu.js","names":["MenuTrigger","mergeProps"],"sources":["../../../src/components/actions/use-anchored-menu.tsx"],"sourcesContent":["import { Pressable } from '@react-aria/interactions';\nimport {\n ComponentProps,\n ComponentType,\n ReactElement,\n RefObject,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { VisuallyHidden } from 'react-aria';\n\nimport { useEvent } from '../../_internal';\nimport { useI18n } from '../../i18n';\nimport { generateRandomId } from '../../utils/random';\nimport { mergeProps } from '../../utils/react';\nimport { usePopoverSync } from '../../utils/react/usePopoverSync';\n\nimport { MenuTrigger } from './Menu';\n\nexport interface UseAnchoredMenuReturn<P, T> {\n /** Ref to attach to the anchor element for positioning the menu. */\n anchorRef: RefObject<HTMLElement | null>;\n\n /**\n * Programmatically opens the menu with the provided props. They are merged\n * over the CURRENT `defaultMenuProps` on every render, so defaults that change\n * while the menu is open reach it without an `update()` call.\n *\n * @param props - Props to pass to the menu component\n * @param triggerProps - Additional props for MenuTrigger (merged with defaultTriggerProps)\n */\n open(props?: P, triggerProps?: T): void;\n\n /**\n * Updates the RUNTIME props of the currently open menu. Props are merged over\n * the current `defaultMenuProps`. Only needed for props the caller owns —\n * `defaultMenuProps` is re-read on every render.\n */\n update(props: P, triggerProps?: T): void;\n\n /** Closes the menu programmatically. */\n close(): void;\n\n /** Current open/closed state of the menu. */\n isOpen: boolean;\n\n /**\n * JSX element that must be rendered in your component tree.\n * Contains the MenuTrigger and positioning logic.\n */\n get rendered(): ReactElement | null;\n}\n\n/**\n * Generic hook to manage an anchored menu component.\n *\n * @param Component - A React component that represents the menu content (Menu or CommandMenu).\n * @param defaultTriggerProps - Default props to pass to the MenuTrigger.\n * @param defaultMenuProps - Default props to pass to the Menu component.\n * @returns An object with `anchorRef` to position the menu, `open` function to open the menu with provided props, `close` function to close the menu, and `rendered` JSX element to include in your component tree.\n */\nexport function useAnchoredMenu<P, T = ComponentProps<typeof MenuTrigger>>(\n Component: ComponentType<P>,\n defaultTriggerProps?: Omit<\n ComponentProps<typeof MenuTrigger>,\n 'children' | 'isOpen' | 'onOpenChange' | 'targetRef'\n >,\n defaultMenuProps?: P,\n): UseAnchoredMenuReturn<P, T> {\n const { t } = useI18n();\n const [isOpen, setIsOpen] = useState(false);\n /**\n * The props the CALLER passed to `open()`/`update()`, on their own — never\n * pre-merged with `defaultMenuProps`. Merging at open time snapshotted the\n * defaults, which froze the content of a menu whose items live in those\n * defaults; merging on render keeps them current. Runtime props still win.\n */\n const [runtimeProps, setRuntimeProps] = useState<P | null>(null);\n const [triggerProps, setTriggerProps] = useState<T | null>(null);\n const anchorRef = useRef<HTMLElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n const setupRef = useRef(false);\n\n useEffect(() => {\n const el = anchorRef.current;\n if (el) {\n el.dataset.popoverTrigger = '';\n return () => {\n delete el.dataset.popoverTrigger;\n };\n }\n }, []);\n\n // Generate a unique ID for this menu instance\n const menuId = useMemo(() => generateRandomId(), []);\n\n // Feed both the anchor (`triggerRef`) and the popover container\n // (`containerRef`) into the sync. The container ref is shared with the\n // rendered `MenuTrigger` via its `popoverRef` prop — the dummy `MenuTrigger`\n // opts out of `usePopoverSync` (`enabled: !isDummy`), so without this the\n // nested-popover guard would have no container to match against and a\n // `SubMenuTrigger` opened inside this menu would close the whole menu.\n usePopoverSync({\n menuId,\n isOpen,\n onClose: () => setIsOpen(false),\n triggerRef: anchorRef,\n containerRef: popoverRef,\n });\n\n function setupCheck() {\n if (!setupRef.current) {\n throw new Error(\n 'useAnchoredMenu: MenuTrigger must be rendered. Use `rendered` property to include it in your component tree.',\n );\n }\n }\n\n // 'open' accepts props required by the Component and opens the menu\n const open = useEvent((props: P = {} as P, triggerProps?: T) => {\n setupCheck();\n\n // Overrides only `defaultMenuProps` is merged in on render.\n setRuntimeProps(props);\n setTriggerProps(triggerProps ?? null);\n setIsOpen(true);\n });\n\n const update = useEvent((props: P, triggerProps?: T) => {\n setupCheck();\n\n setRuntimeProps(props);\n setTriggerProps(triggerProps ?? null);\n });\n\n const close = useEvent(() => {\n setIsOpen(false);\n });\n\n // Render the menu only when it has been opened at least once\n const renderedMenu = useMemo(() => {\n if (!runtimeProps) return null;\n\n // Merged here rather than at open time, so the defaults an open menu\n // renders are the CURRENT ones. Runtime props still take precedence.\n const componentProps = defaultMenuProps\n ? { ...defaultMenuProps, ...runtimeProps }\n : runtimeProps;\n\n return (\n <MenuTrigger\n {...mergeProps(defaultTriggerProps, triggerProps || undefined)}\n isDummy\n isOpen={isOpen}\n targetRef={anchorRef}\n popoverRef={popoverRef}\n onOpenChange={setIsOpen}\n >\n <VisuallyHidden>\n <Pressable>\n <button aria-label={t('contextMenu.contextMenu', 'context-menu')} />\n </Pressable>\n </VisuallyHidden>\n <Component {...componentProps} />\n </MenuTrigger>\n );\n }, [\n runtimeProps,\n defaultMenuProps,\n triggerProps,\n isOpen,\n defaultTriggerProps,\n t,\n ]);\n\n return {\n anchorRef,\n open,\n update,\n close,\n isOpen,\n get rendered() {\n setupRef.current = true;\n\n return renderedMenu;\n },\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA+DA,SAAgB,gBACd,WACA,qBAIA,kBAC6B;CAC7B,MAAM,EAAE,MAAM,SAAS;CACvB,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM;;;;;;;CAO3C,MAAM,CAAC,cAAc,mBAAmB,SAAmB,KAAK;CAChE,MAAM,CAAC,cAAc,mBAAmB,SAAmB,KAAK;CAChE,MAAM,YAAY,OAAoB,KAAK;CAC3C,MAAM,aAAa,OAAuB,KAAK;CAC/C,MAAM,WAAW,OAAO,MAAM;AAE9B,iBAAgB;EACd,MAAM,KAAK,UAAU;AACrB,MAAI,IAAI;AACN,MAAG,QAAQ,iBAAiB;AAC5B,gBAAa;AACX,WAAO,GAAG,QAAQ;;;IAGrB,EAAE,CAAC;AAWN,gBAAe;EACb,QATa,cAAc,kBAAkB,EAAE,EAAE,CAAC;EAUlD;EACA,eAAe,UAAU,MAAM;EAC/B,YAAY;EACZ,cAAc;EACf,CAAC;CAEF,SAAS,aAAa;AACpB,MAAI,CAAC,SAAS,QACZ,OAAM,IAAI,MACR,+GACD;;CAKL,MAAM,OAAO,UAAU,QAAW,EAAE,EAAO,iBAAqB;AAC9D,cAAY;AAGZ,kBAAgB,MAAM;AACtB,kBAAgB,gBAAgB,KAAK;AACrC,YAAU,KAAK;GACf;CAEF,MAAM,SAAS,UAAU,OAAU,iBAAqB;AACtD,cAAY;AAEZ,kBAAgB,MAAM;AACtB,kBAAgB,gBAAgB,KAAK;GACrC;CAEF,MAAM,QAAQ,eAAe;AAC3B,YAAU,MAAM;GAChB;CAGF,MAAM,eAAe,cAAc;AACjC,MAAI,CAAC,aAAc,QAAO;EAI1B,MAAM,iBAAiB,mBACnB;GAAE,GAAG;GAAkB,GAAG;GAAc,GACxC;AAEJ,SACE,qBAACA;GACC,GAAIC,aAAW,qBAAqB,gBAAgB,OAAU;GAC9D;GACQ;GACR,WAAW;GACC;GACZ,cAAc;cAEd,oBAAC,4BACC,oBAAC,uBACC,oBAAC,YAAO,cAAY,EAAE,2BAA2B,eAAe,GAAI,GAC1D,GACG,EACjB,oBAAC,aAAU,GAAI,iBAAkB;IACrB;IAEf;EACD;EACA;EACA;EACA;EACA;EACA;EACD,CAAC;AAEF,QAAO;EACL;EACA;EACA;EACA;EACA;EACA,IAAI,WAAW;AACb,YAAS,UAAU;AAEnB,UAAO;;EAEV"}
@@ -11,7 +11,9 @@ interface UseContextMenuReturn<E extends HTMLElement = HTMLElement, P extends ob
11
11
  targetRef: RefObject<E | null>;
12
12
  /**
13
13
  * Programmatically opens the menu at the specified coordinates or element center.
14
- * Runtime props are merged with defaultMenuProps (runtime props take precedence).
14
+ * Runtime props are merged with the CURRENT `defaultMenuProps` on every render
15
+ * (runtime props take precedence), so defaults that change while the menu is
16
+ * open reach it without an `update()` call.
15
17
  *
16
18
  * @param props - Props to pass to the menu component (optional, defaults to defaultMenuProps)
17
19
  * @param triggerProps - Additional props for MenuTrigger (merged with defaultTriggerProps)
@@ -19,8 +21,9 @@ interface UseContextMenuReturn<E extends HTMLElement = HTMLElement, P extends ob
19
21
  */
20
22
  open(props?: P, triggerProps?: T, event?: NativeMouseEvent | NativePointerEvent | MouseEvent | PointerEvent): void;
21
23
  /**
22
- * Updates the props of the currently open menu without repositioning.
23
- * Props are merged with defaultMenuProps.
24
+ * Updates the RUNTIME props of the currently open menu without repositioning.
25
+ * Props are merged over the current `defaultMenuProps`. Only needed for props
26
+ * the caller owns — `defaultMenuProps` is re-read on every render.
24
27
  */
25
28
  update(props: P, triggerProps?: T): void;
26
29
  /** Closes the menu programmatically. */
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
3
3
  import { usePopoverSync } from "../../utils/react/usePopoverSync.js";
4
4
  import { useEvent } from "../../_internal/hooks/use-event.js";
@@ -23,7 +23,20 @@ import { Pressable } from "@react-aria/interactions";
23
23
  function useContextMenu(Component, defaultTriggerProps, defaultMenuProps) {
24
24
  const { t } = useI18n();
25
25
  const [isOpen, setIsOpen] = useState(false);
26
- const [componentProps, setComponentProps] = useState(null);
26
+ /**
27
+ * The props the CALLER passed to `open()`/`update()`, on their own — never
28
+ * pre-merged with `defaultMenuProps`.
29
+ *
30
+ * Merging at open time snapshotted the defaults, so a consumer that keeps its
31
+ * menu content IN the defaults (`Tree`'s row menu does: `children` is part of
32
+ * the third argument) had a menu that was frozen the moment it opened. Items
33
+ * appearing, disappearing or flipping `isDisabled` while it was open stayed
34
+ * invisible until it was closed and reopened, and the only workaround was to
35
+ * mirror every render into an `update()` call. Keeping the overrides alone
36
+ * lets the merge happen at RENDER time, against the current defaults, while
37
+ * runtime props still win.
38
+ */
39
+ const [runtimeProps, setRuntimeProps] = useState(null);
27
40
  const [triggerProps, setTriggerProps] = useState(null);
28
41
  const [anchorPosition, setAnchorPosition] = useState(null);
29
42
  const targetRef = useRef(null);
@@ -92,19 +105,13 @@ function useContextMenu(Component, defaultTriggerProps, defaultMenuProps) {
92
105
  x,
93
106
  y
94
107
  });
95
- setComponentProps(defaultMenuProps ? {
96
- ...defaultMenuProps,
97
- ...props
98
- } : props);
108
+ setRuntimeProps(props);
99
109
  setTriggerProps(triggerProps ?? null);
100
110
  setIsOpen(true);
101
111
  });
102
112
  const update = useEvent((props, triggerProps) => {
103
113
  setupCheck();
104
- setComponentProps(defaultMenuProps ? {
105
- ...defaultMenuProps,
106
- ...props
107
- } : props);
114
+ setRuntimeProps(props);
108
115
  setTriggerProps(triggerProps ?? null);
109
116
  });
110
117
  const close = useEvent(() => {
@@ -114,7 +121,7 @@ function useContextMenu(Component, defaultTriggerProps, defaultMenuProps) {
114
121
  const onContextMenu = useEvent((event) => {
115
122
  event.preventDefault();
116
123
  if (isOpen) setAnchorPosition(calculatePosition(event));
117
- else open(defaultMenuProps, void 0, event);
124
+ else open(void 0, void 0, event);
118
125
  });
119
126
  useEffect(() => {
120
127
  const element = targetRef.current;
@@ -125,7 +132,11 @@ function useContextMenu(Component, defaultTriggerProps, defaultMenuProps) {
125
132
  };
126
133
  }, [onContextMenu]);
127
134
  const renderedMenu = useMemo(() => {
128
- if (!componentProps || !anchorPosition) return null;
135
+ if (!runtimeProps || !anchorPosition) return null;
136
+ const componentProps = defaultMenuProps ? {
137
+ ...defaultMenuProps,
138
+ ...runtimeProps
139
+ } : runtimeProps;
129
140
  return /* @__PURE__ */ jsxs(Fragment$1, { children: [createPortal(/* @__PURE__ */ jsx("div", {
130
141
  style: {
131
142
  position: "fixed",
@@ -159,7 +170,8 @@ function useContextMenu(Component, defaultTriggerProps, defaultMenuProps) {
159
170
  children: [/* @__PURE__ */ jsx(VisuallyHidden, { children: /* @__PURE__ */ jsx(Pressable, { children: /* @__PURE__ */ jsx("button", { "aria-label": t("contextMenu.openContextMenu", "Open context menu") }) }) }), /* @__PURE__ */ jsx(Component, { ...componentProps })]
160
171
  })] });
161
172
  }, [
162
- componentProps,
173
+ runtimeProps,
174
+ defaultMenuProps,
163
175
  triggerProps,
164
176
  isOpen,
165
177
  defaultTriggerProps,
@@ -1 +1 @@
1
- {"version":3,"file":"use-context-menu.js","names":["MenuTrigger","mergeProps"],"sources":["../../../src/components/actions/use-context-menu.tsx"],"sourcesContent":["import { Pressable } from '@react-aria/interactions';\nimport {\n ComponentProps,\n ComponentType,\n MouseEvent,\n PointerEvent,\n ReactElement,\n RefObject,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { VisuallyHidden } from 'react-aria';\nimport { createPortal } from 'react-dom';\n\nimport { useEvent } from '../../_internal';\nimport { useI18n } from '../../i18n';\nimport { generateRandomId } from '../../utils/random';\nimport { mergeProps } from '../../utils/react';\nimport { usePopoverSync } from '../../utils/react/usePopoverSync';\n\nimport { MenuTrigger } from './Menu';\n\ntype NativeMouseEvent = globalThis.MouseEvent;\ntype NativePointerEvent = globalThis.PointerEvent;\n\nexport interface UseContextMenuReturn<\n E extends HTMLElement = HTMLElement,\n P extends object = {},\n T = ComponentProps<typeof MenuTrigger>,\n> {\n /** Container element that receives context menu events. Attach this ref to your target element. */\n targetRef: RefObject<E | null>;\n\n /**\n * Programmatically opens the menu at the specified coordinates or element center.\n * Runtime props are merged with defaultMenuProps (runtime props take precedence).\n *\n * @param props - Props to pass to the menu component (optional, defaults to defaultMenuProps)\n * @param triggerProps - Additional props for MenuTrigger (merged with defaultTriggerProps)\n * @param event - The pointer/mouse event containing coordinates for positioning (optional, centers on element if not provided)\n */\n open(\n props?: P,\n triggerProps?: T,\n event?: NativeMouseEvent | NativePointerEvent | MouseEvent | PointerEvent,\n ): void;\n\n /**\n * Updates the props of the currently open menu without repositioning.\n * Props are merged with defaultMenuProps.\n */\n update(props: P, triggerProps?: T): void;\n\n /** Closes the menu programmatically. */\n close(): void;\n\n /** Current open/closed state of the menu. */\n isOpen: boolean;\n\n /**\n * JSX element that must be rendered in your component tree.\n * Contains the MenuTrigger and positioning logic.\n * IMPORTANT: Must be placed directly inside the target container (the element with targetRef).\n */\n get rendered(): ReactElement | null;\n}\n\n/**\n * Generic hook to manage a context menu component that opens at pointer coordinates.\n *\n * @param Component - A React component that represents the menu content (Menu or CommandMenu).\n * @param defaultTriggerProps - Default props to pass to the MenuTrigger.\n * @param defaultMenuProps - Default props to pass to the Menu component.\n * @returns An object with `targetRef` to attach to the container element, `open` function to open the menu at event coordinates, `close` function to close the menu, and `rendered` JSX element to include in your component tree.\n */\nexport function useContextMenu<\n E extends HTMLElement = HTMLElement,\n P extends object = {},\n T = ComponentProps<typeof MenuTrigger>,\n>(\n Component: ComponentType<P>,\n defaultTriggerProps?: Omit<\n ComponentProps<typeof MenuTrigger>,\n 'children' | 'isOpen' | 'onOpenChange' | 'targetRef'\n >,\n defaultMenuProps?: P,\n): UseContextMenuReturn<E, P, T> {\n const { t } = useI18n();\n const [isOpen, setIsOpen] = useState(false);\n const [componentProps, setComponentProps] = useState<P | null>(null);\n const [triggerProps, setTriggerProps] = useState<T | null>(null);\n const [anchorPosition, setAnchorPosition] = useState<{\n x: number;\n y: number;\n } | null>(null);\n const targetRef = useRef<E>(null);\n const invisibleAnchorRef = useRef<HTMLSpanElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n const setupRef = useRef(false);\n\n // Mark the container as a popover trigger so that other open menus' close-on-\n // outside predicates treat clicks inside it (including programmatic\n // open buttons rendered alongside a context-menu target) as a legitimate\n // trigger interaction instead of a generic outside click. This mirrors the\n // pattern in `useAnchoredMenu`.\n useEffect(() => {\n const el = targetRef.current;\n if (el) {\n el.dataset.popoverTrigger = '';\n return () => {\n delete el.dataset.popoverTrigger;\n };\n }\n }, []);\n\n // Generate a unique ID for this menu instance\n const menuId = useMemo(() => generateRandomId(), []);\n\n // Feed both the context-menu target (`triggerRef`) and the popover\n // container (`containerRef`) into the sync. The container ref is shared with\n // the rendered `MenuTrigger` via its `popoverRef` prop — the dummy\n // `MenuTrigger` opts out of `usePopoverSync` (`enabled: !isDummy`), so\n // without this the nested-popover guard would have no container to match\n // against and a `SubMenuTrigger` opened inside this menu would close the\n // whole menu.\n usePopoverSync({\n menuId,\n isOpen,\n onClose: () => {\n setIsOpen(false);\n setAnchorPosition(null);\n },\n triggerRef: targetRef as RefObject<HTMLElement | null>,\n containerRef: popoverRef,\n });\n\n function setupCheck() {\n if (!setupRef.current) {\n throw new Error(\n 'useContextMenu: MenuTrigger must be rendered. Use `rendered` property to include it in your component tree.',\n );\n }\n }\n\n /**\n * Where to put the invisible anchor, in **viewport** coordinates.\n *\n * Viewport rather than container-relative on purpose. The anchor is rendered\n * into a fixed-position host pinned to the viewport origin (see\n * `renderedMenu`), so the two agree by construction. Computing coordinates\n * against the target element while the anchor's containing block was\n * whichever positioned ancestor happened to enclose `rendered` is what used\n * to open the menu one ancestor-origin away from the pointer.\n */\n const calculatePosition = (\n event?: NativeMouseEvent | NativePointerEvent | MouseEvent | PointerEvent,\n ) => {\n if (event) {\n const { clientX = 0, clientY = 0 } = event;\n\n return { x: clientX, y: clientY };\n }\n\n // No event — a keyboard opening, which has no coordinates. Anchor on the\n // target element's centre instead.\n const container = targetRef.current;\n\n if (!container) return { x: 0, y: 0 };\n\n const rect = container.getBoundingClientRect();\n\n return { x: rect.left + rect.width / 2, y: rect.top + rect.height / 2 };\n };\n\n // 'open' accepts props, trigger props, and optional event for positioning, then opens the menu\n const open = useEvent(\n (\n props: P = {} as P,\n triggerProps?: T,\n event?: NativeMouseEvent | NativePointerEvent | MouseEvent | PointerEvent,\n ) => {\n setupCheck();\n\n // Ensure the target element can serve as a positioning context for the\n // invisible target element. If the consumer hasn't explicitly set\n // `position: relative | absolute | fixed | sticky` we switch it to\n // `relative` so that absolutely-positioned children are laid out correctly.\n if (targetRef.current) {\n const computedStyle = window.getComputedStyle(targetRef.current);\n\n if (computedStyle.position === 'static') {\n targetRef.current.style.position = 'relative';\n }\n }\n\n // Prevent default context menu if it's a context menu event\n if (\n event &&\n 'preventDefault' in event &&\n typeof event.preventDefault === 'function'\n ) {\n event.preventDefault();\n }\n\n const { x, y } = calculatePosition(event);\n setAnchorPosition({ x, y });\n\n // Merge defaultMenuProps with provided props\n const finalProps = defaultMenuProps\n ? { ...defaultMenuProps, ...props }\n : props;\n\n setComponentProps(finalProps);\n setTriggerProps(triggerProps ?? null);\n setIsOpen(true);\n },\n );\n\n const update = useEvent((props: P, triggerProps?: T) => {\n setupCheck();\n\n // Merge defaultMenuProps with provided props\n const finalProps = defaultMenuProps\n ? { ...defaultMenuProps, ...props }\n : props;\n\n setComponentProps(finalProps as P);\n setTriggerProps(triggerProps ?? null);\n });\n\n const close = useEvent(() => {\n setIsOpen(false);\n setAnchorPosition(null);\n });\n\n // Context menu event handler\n const onContextMenu = useEvent(\n (event: MouseEvent | PointerEvent | MouseEvent | PointerEvent) => {\n event.preventDefault();\n if (isOpen) {\n const pos = calculatePosition(event);\n setAnchorPosition(pos);\n } else {\n open(defaultMenuProps, undefined, event);\n }\n },\n );\n\n // Bind the onContextMenu event to targetRef\n useEffect(() => {\n const element = targetRef.current;\n if (!element) return;\n\n element.addEventListener('contextmenu', onContextMenu as any);\n\n return () => {\n element.removeEventListener('contextmenu', onContextMenu as any);\n };\n }, [onContextMenu]);\n\n // Render the menu only when componentProps is set\n const renderedMenu = useMemo(() => {\n if (!componentProps || !anchorPosition) return null;\n\n return (\n <>\n {/*\n Invisible anchor at the click coordinates.\n\n Two things make those coordinates mean what they say:\n\n 1. A `fixed` host, so the containing block's origin is the viewport\n rather than whichever positioned ancestor encloses `rendered` — the\n table root, the tree row — which is what used to open the menu one\n ancestor-origin away from the pointer.\n 2. A portal to `body`, because `position: fixed` is captured by any\n ancestor carrying a transform, filter or `will-change`. A\n virtualized row is usually translated, so the `fixed` host alone\n would still be anchored to the row.\n */}\n {createPortal(\n <div\n style={{\n position: 'fixed',\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n }}\n >\n <span\n ref={invisibleAnchorRef}\n style={{\n position: 'absolute',\n left: `${anchorPosition.x}px`,\n top: `${anchorPosition.y}px`,\n width: '0px',\n height: '0px',\n lineHeight: '0',\n pointerEvents: 'none',\n visibility: 'hidden',\n }}\n />\n </div>,\n document.body,\n )}\n <MenuTrigger\n offset={0}\n placement={\n (triggerProps as ComponentProps<typeof MenuTrigger>)?.placement ||\n defaultTriggerProps?.placement ||\n 'bottom start'\n }\n {...mergeProps(defaultTriggerProps, triggerProps || undefined)}\n isDummy\n isOpen={isOpen}\n targetRef={invisibleAnchorRef}\n popoverRef={popoverRef}\n onOpenChange={setIsOpen}\n >\n <VisuallyHidden>\n <Pressable>\n <button\n aria-label={t(\n 'contextMenu.openContextMenu',\n 'Open context menu',\n )}\n />\n </Pressable>\n </VisuallyHidden>\n <Component {...componentProps} />\n </MenuTrigger>\n </>\n );\n }, [\n componentProps,\n triggerProps,\n isOpen,\n defaultTriggerProps,\n anchorPosition,\n t,\n ]);\n\n return {\n targetRef,\n open,\n update,\n close,\n isOpen,\n get rendered() {\n setupRef.current = true;\n\n return renderedMenu;\n },\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-context-menu.js","names":["MenuTrigger","mergeProps"],"sources":["../../../src/components/actions/use-context-menu.tsx"],"sourcesContent":["import { Pressable } from '@react-aria/interactions';\nimport {\n ComponentProps,\n ComponentType,\n MouseEvent,\n PointerEvent,\n ReactElement,\n RefObject,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { VisuallyHidden } from 'react-aria';\nimport { createPortal } from 'react-dom';\n\nimport { useEvent } from '../../_internal';\nimport { useI18n } from '../../i18n';\nimport { generateRandomId } from '../../utils/random';\nimport { mergeProps } from '../../utils/react';\nimport { usePopoverSync } from '../../utils/react/usePopoverSync';\n\nimport { MenuTrigger } from './Menu';\n\ntype NativeMouseEvent = globalThis.MouseEvent;\ntype NativePointerEvent = globalThis.PointerEvent;\n\nexport interface UseContextMenuReturn<\n E extends HTMLElement = HTMLElement,\n P extends object = {},\n T = ComponentProps<typeof MenuTrigger>,\n> {\n /** Container element that receives context menu events. Attach this ref to your target element. */\n targetRef: RefObject<E | null>;\n\n /**\n * Programmatically opens the menu at the specified coordinates or element center.\n * Runtime props are merged with the CURRENT `defaultMenuProps` on every render\n * (runtime props take precedence), so defaults that change while the menu is\n * open reach it without an `update()` call.\n *\n * @param props - Props to pass to the menu component (optional, defaults to defaultMenuProps)\n * @param triggerProps - Additional props for MenuTrigger (merged with defaultTriggerProps)\n * @param event - The pointer/mouse event containing coordinates for positioning (optional, centers on element if not provided)\n */\n open(\n props?: P,\n triggerProps?: T,\n event?: NativeMouseEvent | NativePointerEvent | MouseEvent | PointerEvent,\n ): void;\n\n /**\n * Updates the RUNTIME props of the currently open menu without repositioning.\n * Props are merged over the current `defaultMenuProps`. Only needed for props\n * the caller owns — `defaultMenuProps` is re-read on every render.\n */\n update(props: P, triggerProps?: T): void;\n\n /** Closes the menu programmatically. */\n close(): void;\n\n /** Current open/closed state of the menu. */\n isOpen: boolean;\n\n /**\n * JSX element that must be rendered in your component tree.\n * Contains the MenuTrigger and positioning logic.\n * IMPORTANT: Must be placed directly inside the target container (the element with targetRef).\n */\n get rendered(): ReactElement | null;\n}\n\n/**\n * Generic hook to manage a context menu component that opens at pointer coordinates.\n *\n * @param Component - A React component that represents the menu content (Menu or CommandMenu).\n * @param defaultTriggerProps - Default props to pass to the MenuTrigger.\n * @param defaultMenuProps - Default props to pass to the Menu component.\n * @returns An object with `targetRef` to attach to the container element, `open` function to open the menu at event coordinates, `close` function to close the menu, and `rendered` JSX element to include in your component tree.\n */\nexport function useContextMenu<\n E extends HTMLElement = HTMLElement,\n P extends object = {},\n T = ComponentProps<typeof MenuTrigger>,\n>(\n Component: ComponentType<P>,\n defaultTriggerProps?: Omit<\n ComponentProps<typeof MenuTrigger>,\n 'children' | 'isOpen' | 'onOpenChange' | 'targetRef'\n >,\n defaultMenuProps?: P,\n): UseContextMenuReturn<E, P, T> {\n const { t } = useI18n();\n const [isOpen, setIsOpen] = useState(false);\n /**\n * The props the CALLER passed to `open()`/`update()`, on their own — never\n * pre-merged with `defaultMenuProps`.\n *\n * Merging at open time snapshotted the defaults, so a consumer that keeps its\n * menu content IN the defaults (`Tree`'s row menu does: `children` is part of\n * the third argument) had a menu that was frozen the moment it opened. Items\n * appearing, disappearing or flipping `isDisabled` while it was open stayed\n * invisible until it was closed and reopened, and the only workaround was to\n * mirror every render into an `update()` call. Keeping the overrides alone\n * lets the merge happen at RENDER time, against the current defaults, while\n * runtime props still win.\n */\n const [runtimeProps, setRuntimeProps] = useState<P | null>(null);\n const [triggerProps, setTriggerProps] = useState<T | null>(null);\n const [anchorPosition, setAnchorPosition] = useState<{\n x: number;\n y: number;\n } | null>(null);\n const targetRef = useRef<E>(null);\n const invisibleAnchorRef = useRef<HTMLSpanElement>(null);\n const popoverRef = useRef<HTMLDivElement>(null);\n const setupRef = useRef(false);\n\n // Mark the container as a popover trigger so that other open menus' close-on-\n // outside predicates treat clicks inside it (including programmatic\n // open buttons rendered alongside a context-menu target) as a legitimate\n // trigger interaction instead of a generic outside click. This mirrors the\n // pattern in `useAnchoredMenu`.\n useEffect(() => {\n const el = targetRef.current;\n if (el) {\n el.dataset.popoverTrigger = '';\n return () => {\n delete el.dataset.popoverTrigger;\n };\n }\n }, []);\n\n // Generate a unique ID for this menu instance\n const menuId = useMemo(() => generateRandomId(), []);\n\n // Feed both the context-menu target (`triggerRef`) and the popover\n // container (`containerRef`) into the sync. The container ref is shared with\n // the rendered `MenuTrigger` via its `popoverRef` prop — the dummy\n // `MenuTrigger` opts out of `usePopoverSync` (`enabled: !isDummy`), so\n // without this the nested-popover guard would have no container to match\n // against and a `SubMenuTrigger` opened inside this menu would close the\n // whole menu.\n usePopoverSync({\n menuId,\n isOpen,\n onClose: () => {\n setIsOpen(false);\n setAnchorPosition(null);\n },\n triggerRef: targetRef as RefObject<HTMLElement | null>,\n containerRef: popoverRef,\n });\n\n function setupCheck() {\n if (!setupRef.current) {\n throw new Error(\n 'useContextMenu: MenuTrigger must be rendered. Use `rendered` property to include it in your component tree.',\n );\n }\n }\n\n /**\n * Where to put the invisible anchor, in **viewport** coordinates.\n *\n * Viewport rather than container-relative on purpose. The anchor is rendered\n * into a fixed-position host pinned to the viewport origin (see\n * `renderedMenu`), so the two agree by construction. Computing coordinates\n * against the target element while the anchor's containing block was\n * whichever positioned ancestor happened to enclose `rendered` is what used\n * to open the menu one ancestor-origin away from the pointer.\n */\n const calculatePosition = (\n event?: NativeMouseEvent | NativePointerEvent | MouseEvent | PointerEvent,\n ) => {\n if (event) {\n const { clientX = 0, clientY = 0 } = event;\n\n return { x: clientX, y: clientY };\n }\n\n // No event — a keyboard opening, which has no coordinates. Anchor on the\n // target element's centre instead.\n const container = targetRef.current;\n\n if (!container) return { x: 0, y: 0 };\n\n const rect = container.getBoundingClientRect();\n\n return { x: rect.left + rect.width / 2, y: rect.top + rect.height / 2 };\n };\n\n // 'open' accepts props, trigger props, and optional event for positioning, then opens the menu\n const open = useEvent(\n (\n props: P = {} as P,\n triggerProps?: T,\n event?: NativeMouseEvent | NativePointerEvent | MouseEvent | PointerEvent,\n ) => {\n setupCheck();\n\n // Ensure the target element can serve as a positioning context for the\n // invisible target element. If the consumer hasn't explicitly set\n // `position: relative | absolute | fixed | sticky` we switch it to\n // `relative` so that absolutely-positioned children are laid out correctly.\n if (targetRef.current) {\n const computedStyle = window.getComputedStyle(targetRef.current);\n\n if (computedStyle.position === 'static') {\n targetRef.current.style.position = 'relative';\n }\n }\n\n // Prevent default context menu if it's a context menu event\n if (\n event &&\n 'preventDefault' in event &&\n typeof event.preventDefault === 'function'\n ) {\n event.preventDefault();\n }\n\n const { x, y } = calculatePosition(event);\n setAnchorPosition({ x, y });\n\n // Overrides only — `defaultMenuProps` is merged in on render.\n setRuntimeProps(props);\n setTriggerProps(triggerProps ?? null);\n setIsOpen(true);\n },\n );\n\n const update = useEvent((props: P, triggerProps?: T) => {\n setupCheck();\n\n setRuntimeProps(props);\n setTriggerProps(triggerProps ?? null);\n });\n\n const close = useEvent(() => {\n setIsOpen(false);\n setAnchorPosition(null);\n });\n\n // Context menu event handler\n const onContextMenu = useEvent(\n (event: MouseEvent | PointerEvent | MouseEvent | PointerEvent) => {\n event.preventDefault();\n if (isOpen) {\n const pos = calculatePosition(event);\n setAnchorPosition(pos);\n } else {\n // No overrides: the defaults are merged in on every render, so\n // passing them here would freeze the version this right-click saw.\n open(undefined, undefined, event);\n }\n },\n );\n\n // Bind the onContextMenu event to targetRef\n useEffect(() => {\n const element = targetRef.current;\n if (!element) return;\n\n element.addEventListener('contextmenu', onContextMenu as any);\n\n return () => {\n element.removeEventListener('contextmenu', onContextMenu as any);\n };\n }, [onContextMenu]);\n\n // Render the menu only when it has been opened at least once\n const renderedMenu = useMemo(() => {\n if (!runtimeProps || !anchorPosition) return null;\n\n // Merged here rather than at open time, so the defaults an open menu\n // renders are the CURRENT ones. Runtime props still take precedence.\n const componentProps = defaultMenuProps\n ? { ...defaultMenuProps, ...runtimeProps }\n : runtimeProps;\n\n return (\n <>\n {/*\n Invisible anchor at the click coordinates.\n\n Two things make those coordinates mean what they say:\n\n 1. A `fixed` host, so the containing block's origin is the viewport\n rather than whichever positioned ancestor encloses `rendered` — the\n table root, the tree row — which is what used to open the menu one\n ancestor-origin away from the pointer.\n 2. A portal to `body`, because `position: fixed` is captured by any\n ancestor carrying a transform, filter or `will-change`. A\n virtualized row is usually translated, so the `fixed` host alone\n would still be anchored to the row.\n */}\n {createPortal(\n <div\n style={{\n position: 'fixed',\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n }}\n >\n <span\n ref={invisibleAnchorRef}\n style={{\n position: 'absolute',\n left: `${anchorPosition.x}px`,\n top: `${anchorPosition.y}px`,\n width: '0px',\n height: '0px',\n lineHeight: '0',\n pointerEvents: 'none',\n visibility: 'hidden',\n }}\n />\n </div>,\n document.body,\n )}\n <MenuTrigger\n offset={0}\n placement={\n (triggerProps as ComponentProps<typeof MenuTrigger>)?.placement ||\n defaultTriggerProps?.placement ||\n 'bottom start'\n }\n {...mergeProps(defaultTriggerProps, triggerProps || undefined)}\n isDummy\n isOpen={isOpen}\n targetRef={invisibleAnchorRef}\n popoverRef={popoverRef}\n onOpenChange={setIsOpen}\n >\n <VisuallyHidden>\n <Pressable>\n <button\n aria-label={t(\n 'contextMenu.openContextMenu',\n 'Open context menu',\n )}\n />\n </Pressable>\n </VisuallyHidden>\n <Component {...componentProps} />\n </MenuTrigger>\n </>\n );\n }, [\n runtimeProps,\n defaultMenuProps,\n triggerProps,\n isOpen,\n defaultTriggerProps,\n anchorPosition,\n t,\n ]);\n\n return {\n targetRef,\n open,\n update,\n close,\n isOpen,\n get rendered() {\n setupRef.current = true;\n\n return renderedMenu;\n },\n };\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useFocus as useFocus$1 } from "../../../utils/react/interactions.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import themes_default from "../../../data/themes.js";
3
3
  import { useAlert } from "./use-alert.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useDeprecationWarning } from "../../../_internal/hooks/use-deprecation-warning.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { CONTAINER_STYLES, Element, filterBaseProps } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { _Item } from "../Item/Item.js";
3
3
  import themes_default from "../../../data/themes.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useTimer } from "../../../_internal/hooks/use-timer/use-timer.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { _Tooltip } from "../../overlays/Tooltip/Tooltip.js";
3
3
  import { TooltipTrigger } from "../../overlays/Tooltip/TooltipTrigger.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { useSlotProps } from "../../utils/react/Slots.js";
3
3
  import { useCombinedRefs } from "../../utils/react/useCombinedRefs.js";
4
4
  import { BASE_STYLES, COLOR_STYLES, OUTER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { _Text } from "../Text.js";
4
4
  import { useKeySymbols } from "../../../utils/react/useKeySymbols.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
3
3
  import { ItemBadge } from "../ItemBadge/ItemBadge.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { getDisabledElementProps, omitActivationEventProps } from "../../../utils/react/disabledProps.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { resolveIcon } from "../../../utils/react/resolveIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { TooltipProvider } from "../../overlays/Tooltip/TooltipProvider.js";
4
4
  import { CURRENT_CLEAR_STYLES, CURRENT_OUTLINE_STYLES, CURRENT_PRIMARY_STYLES, DANGER_CLEAR_STYLES, DANGER_OUTLINE_STYLES, DANGER_PRIMARY_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_OUTLINE_STYLES, DEFAULT_PRIMARY_STYLES, ITEM_ACTION_BASE_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_OUTLINE_STYLES, SPECIAL_PRIMARY_STYLES, SUCCESS_CLEAR_STYLES, SUCCESS_OUTLINE_STYLES, SUCCESS_PRIMARY_STYLES } from "../../../data/item-themes.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
3
3
  import { _Item } from "../Item/Item.js";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { _Layout } from "./Layout.js";
3
3
  import { _LayoutContent } from "./LayoutContent.js";
4
4
  import { _LayoutBlock } from "./LayoutBlock.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { Alert } from "../Alert/Alert.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { _LayoutContent } from "./LayoutContent.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { _LayoutContainer } from "./LayoutContainer.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { LayoutContextReset } from "./LayoutContext.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { LayoutContextReset } from "./LayoutContext.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { createContext, useContext, useMemo, useRef, useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { _LayoutContent } from "./LayoutContent.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { _LayoutContent } from "./LayoutContent.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { forwardRef, useMemo } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { _LayoutContent } from "./LayoutContent.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { useAutoTooltip } from "../use-auto-tooltip.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { SlashIcon } from "../../../icons/SlashIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
4
4
  import { _Item } from "../Item/Item.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { _LayoutContent } from "./LayoutContent.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { useCallback, useEffect, useRef, useState } from "react";
3
3
 
4
4
  //#region src/components/content/Layout/hooks/useTinyScrollbar.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { LayoutActionsContext, LayoutContextReset, LayoutPanelContext, LayoutRefsContext, LayoutStateContext, useLayoutActionsContext, useLayoutPanelContext, useLayoutRefsContext, useLayoutStateContext } from "./LayoutContext.js";
3
3
  import { _Layout } from "./Layout.js";
4
4
  import { _LayoutContent } from "./LayoutContent.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  //#region src/components/content/Layout/utils.ts
3
3
  /**
4
4
  * Clamps a size value within min/max constraints.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { _Text } from "./Text.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { CONTAINER_STYLES, filterBaseProps, keyframes, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { RendererPrism, ensureYamlSqlExtensions } from "./prismSetup.js";
3
3
  import { CONTAINER_STYLES, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { Prism as RendererPrism } from "prism-react-renderer";
3
3
 
4
4
  //#region src/components/content/PrismCode/prismSetup.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { _PrismCode } from "../PrismCode/PrismCode.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import { diffLines } from "diff";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.166.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.167.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { wrapNodeIfPlain } from "../../../utils/react/wrapNodeIfPlain.js";