@cube-dev/ui-kit 0.0.0-canary-a3aca12 → 0.0.0-canary-0b8a096

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 (486) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/es/_internal/hooks/index.js +1 -1
  3. package/es/_internal/hooks/use-chained-callback.js +1 -1
  4. package/es/_internal/hooks/use-debounced-value.js +1 -1
  5. package/es/_internal/hooks/use-deprecation-warning.js +1 -1
  6. package/es/_internal/hooks/use-effect-once.js +1 -1
  7. package/es/_internal/hooks/use-event.js +1 -1
  8. package/es/_internal/hooks/use-is-first-render.js +1 -1
  9. package/es/_internal/hooks/use-sync-ref.js +1 -1
  10. package/es/_internal/hooks/use-timer/index.js +1 -1
  11. package/es/_internal/hooks/use-timer/timer.js +1 -1
  12. package/es/_internal/hooks/use-timer/use-timer.js +1 -1
  13. package/es/_internal/hooks/use-update-effect.js +1 -1
  14. package/es/_internal/hooks/use-warn.js +1 -1
  15. package/es/_internal/index.js +1 -1
  16. package/es/components/Block.js +1 -1
  17. package/es/components/GlobalStyles.js +1 -1
  18. package/es/components/GridProvider.js +1 -1
  19. package/es/components/HiddenInput.js +1 -1
  20. package/es/components/OpenTrasition.js +1 -1
  21. package/es/components/Root.js +1 -1
  22. package/es/components/actions/Action/Action.js +1 -1
  23. package/es/components/actions/Button/Button.js +1 -1
  24. package/es/components/actions/Button/index.js +1 -1
  25. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  26. package/es/components/actions/CommandMenu/CommandMenu.js +27 -9
  27. package/es/components/actions/CommandMenu/index.js +1 -1
  28. package/es/components/actions/CommandMenu/styled.js +1 -1
  29. package/es/components/actions/Menu/Menu.js +10 -2
  30. package/es/components/actions/Menu/MenuItem.js +24 -10
  31. package/es/components/actions/Menu/MenuSection.js +1 -1
  32. package/es/components/actions/Menu/MenuTrigger.js +3 -2
  33. package/es/components/actions/Menu/SubMenuTrigger.js +255 -0
  34. package/es/components/actions/Menu/SubmenuTriggerContext.js +18 -0
  35. package/es/components/actions/Menu/context.js +1 -1
  36. package/es/components/actions/Menu/index.js +3 -1
  37. package/es/components/actions/Menu/styled.js +1 -1
  38. package/es/components/actions/index.js +1 -1
  39. package/es/components/actions/use-action.js +1 -1
  40. package/es/components/actions/use-anchored-menu.js +1 -1
  41. package/es/components/actions/use-context-menu.js +1 -1
  42. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  43. package/es/components/content/Alert/Alert.js +1 -1
  44. package/es/components/content/Alert/index.js +1 -1
  45. package/es/components/content/Alert/types.js +1 -1
  46. package/es/components/content/Alert/use-alert.js +1 -1
  47. package/es/components/content/Avatar/Avatar.js +1 -1
  48. package/es/components/content/Badge/Badge.js +1 -1
  49. package/es/components/content/Card/Card.js +1 -1
  50. package/es/components/content/Content.js +1 -1
  51. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  52. package/es/components/content/CopyPasteBlock/index.js +1 -1
  53. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  54. package/es/components/content/CopySnippet/index.js +1 -1
  55. package/es/components/content/Divider.js +1 -1
  56. package/es/components/content/Footer.js +1 -1
  57. package/es/components/content/Header.js +1 -1
  58. package/es/components/content/HotKeys/HotKeys.js +1 -1
  59. package/es/components/content/HotKeys/index.js +1 -1
  60. package/es/components/content/Paragraph.js +1 -1
  61. package/es/components/content/Placeholder/Placeholder.js +1 -1
  62. package/es/components/content/PrismCode/PrismCode.js +1 -1
  63. package/es/components/content/PrismCode/prismSetup.js +1 -1
  64. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  65. package/es/components/content/Result/Result.js +1 -1
  66. package/es/components/content/Skeleton/Skeleton.js +1 -1
  67. package/es/components/content/Tag/Tag.js +1 -1
  68. package/es/components/content/Text.js +1 -1
  69. package/es/components/content/Title.js +1 -1
  70. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  71. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  72. package/es/components/fields/Checkbox/context.js +1 -1
  73. package/es/components/fields/Checkbox/index.js +1 -1
  74. package/es/components/fields/ComboBox/ComboBox.js +1 -1
  75. package/es/components/fields/ComboBox/index.js +1 -1
  76. package/es/components/fields/DatePicker/DateInput.js +1 -1
  77. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  78. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  79. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  80. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  81. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  82. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  83. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  84. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  85. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  86. package/es/components/fields/DatePicker/index.js +1 -1
  87. package/es/components/fields/DatePicker/intl.js +1 -1
  88. package/es/components/fields/DatePicker/parseDate.js +1 -1
  89. package/es/components/fields/DatePicker/props.js +1 -1
  90. package/es/components/fields/DatePicker/types.js +1 -1
  91. package/es/components/fields/DatePicker/utils.js +1 -1
  92. package/es/components/fields/FileInput/FileInput.js +1 -1
  93. package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
  94. package/es/components/fields/FilterListBox/index.js +1 -1
  95. package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
  96. package/es/components/fields/FilterPicker/index.js +1 -1
  97. package/es/components/fields/Input/Input.js +1 -1
  98. package/es/components/fields/Input/index.js +1 -1
  99. package/es/components/fields/ListBox/ListBox.js +1 -1
  100. package/es/components/fields/ListBox/index.js +1 -1
  101. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  102. package/es/components/fields/NumberInput/StepButton.js +1 -1
  103. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  104. package/es/components/fields/RadioGroup/Radio.js +1 -1
  105. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  106. package/es/components/fields/RadioGroup/context.js +1 -1
  107. package/es/components/fields/RadioGroup/index.js +1 -1
  108. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  109. package/es/components/fields/SearchInput/index.js +1 -1
  110. package/es/components/fields/Select/Select.js +1 -1
  111. package/es/components/fields/Select/index.js +1 -1
  112. package/es/components/fields/Slider/Gradation.js +1 -1
  113. package/es/components/fields/Slider/Header.js +1 -1
  114. package/es/components/fields/Slider/RangeSlider.js +1 -1
  115. package/es/components/fields/Slider/Slider.js +1 -1
  116. package/es/components/fields/Slider/SliderBase.js +1 -1
  117. package/es/components/fields/Slider/SliderInput.js +1 -1
  118. package/es/components/fields/Slider/SliderThumb.js +1 -1
  119. package/es/components/fields/Slider/SliderTrack.js +1 -1
  120. package/es/components/fields/Slider/elements.js +1 -1
  121. package/es/components/fields/Slider/index.js +1 -1
  122. package/es/components/fields/Slider/types.js +1 -1
  123. package/es/components/fields/Switch/Switch.js +1 -1
  124. package/es/components/fields/Switch/index.js +1 -1
  125. package/es/components/fields/TextArea/TextArea.js +1 -1
  126. package/es/components/fields/TextArea/index.js +1 -1
  127. package/es/components/fields/TextInput/TextInput.js +1 -1
  128. package/es/components/fields/TextInput/TextInputBase.js +1 -1
  129. package/es/components/fields/TextInput/index.js +1 -1
  130. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  131. package/es/components/fields/TextInputMapper/index.js +1 -1
  132. package/es/components/fields/index.js +1 -1
  133. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  134. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  135. package/es/components/form/FieldWrapper/index.js +1 -1
  136. package/es/components/form/FieldWrapper/types.js +1 -1
  137. package/es/components/form/Form/Field.js +1 -1
  138. package/es/components/form/Form/Form.js +1 -1
  139. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  140. package/es/components/form/Form/ResetButton/index.js +1 -1
  141. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  142. package/es/components/form/Form/SubmitButton/index.js +1 -1
  143. package/es/components/form/Form/SubmitError.js +1 -1
  144. package/es/components/form/Form/index.js +1 -1
  145. package/es/components/form/Form/types.js +1 -1
  146. package/es/components/form/Form/use-field/index.js +1 -1
  147. package/es/components/form/Form/use-field/types.js +1 -1
  148. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  149. package/es/components/form/Form/use-field/use-field.js +1 -1
  150. package/es/components/form/Form/use-form.js +1 -1
  151. package/es/components/form/Form/validation.js +1 -1
  152. package/es/components/form/Label.js +1 -1
  153. package/es/components/form/index.js +1 -1
  154. package/es/components/form/wrapper.js +1 -1
  155. package/es/components/layout/Flex.js +1 -1
  156. package/es/components/layout/Flow.js +1 -1
  157. package/es/components/layout/Grid.js +1 -1
  158. package/es/components/layout/Panel.js +1 -1
  159. package/es/components/layout/Prefix.js +1 -1
  160. package/es/components/layout/ResizablePanel.js +1 -1
  161. package/es/components/layout/Space.js +1 -1
  162. package/es/components/layout/Suffix.js +1 -1
  163. package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
  164. package/es/components/navigation/Link/Link.js +1 -1
  165. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  166. package/es/components/organisms/Modal/Modal.js +1 -1
  167. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  168. package/es/components/other/Base64Upload/Base64Upload.js +1 -1
  169. package/es/components/other/Calendar/Calendar.js +1 -1
  170. package/es/components/other/Calendar/CalendarCell.js +1 -1
  171. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  172. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  173. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  174. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  175. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  176. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  177. package/es/components/overlays/AlertDialog/index.js +1 -1
  178. package/es/components/overlays/AlertDialog/types.js +1 -1
  179. package/es/components/overlays/Dialog/Dialog.js +1 -1
  180. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  181. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  182. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  183. package/es/components/overlays/Dialog/context.js +1 -1
  184. package/es/components/overlays/Dialog/index.js +1 -1
  185. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  186. package/es/components/overlays/Modal/Modal.js +1 -1
  187. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  188. package/es/components/overlays/Modal/Overlay.js +1 -1
  189. package/es/components/overlays/Modal/Popover.js +1 -1
  190. package/es/components/overlays/Modal/Tray.js +1 -1
  191. package/es/components/overlays/Modal/Underlay.js +1 -1
  192. package/es/components/overlays/Modal/index.js +1 -1
  193. package/es/components/overlays/Modal/types.js +1 -1
  194. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  195. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  196. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  197. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  198. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  199. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  200. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  201. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  202. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  203. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  204. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  205. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  206. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  207. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  208. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  209. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  210. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  211. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  212. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  213. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  214. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  215. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  216. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  217. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  218. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  219. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  220. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  221. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  222. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  223. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  224. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  225. package/es/components/overlays/NewNotifications/index.js +1 -1
  226. package/es/components/overlays/NewNotifications/types.js +1 -1
  227. package/es/components/overlays/Notification/Notification.js +1 -1
  228. package/es/components/overlays/OverlayWrapper.js +1 -1
  229. package/es/components/overlays/Toasts/Toast.js +1 -1
  230. package/es/components/overlays/Toasts/index.js +1 -1
  231. package/es/components/overlays/Toasts/types.js +1 -1
  232. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  233. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  234. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  235. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  236. package/es/components/overlays/Tooltip/context.js +1 -1
  237. package/es/components/overlays/Tooltip/index.js +1 -1
  238. package/es/components/portal/Portal.js +1 -1
  239. package/es/components/portal/PortalProvider.js +1 -1
  240. package/es/components/portal/index.js +1 -1
  241. package/es/components/portal/storybook/templates/CustomRoot.js +1 -1
  242. package/es/components/portal/storybook/templates/PortalOrder.js +1 -1
  243. package/es/components/portal/storybook/templates/basic.js +1 -1
  244. package/es/components/portal/storybook/templates/index.js +1 -1
  245. package/es/components/portal/types.js +1 -1
  246. package/es/components/portal/usePortal.js +1 -1
  247. package/es/components/shared/InvalidIcon.js +1 -1
  248. package/es/components/shared/ValidIcon.js +1 -1
  249. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  250. package/es/components/status/LoadingAnimation/index.js +1 -1
  251. package/es/components/status/Spin/Cube.js +1 -1
  252. package/es/components/status/Spin/InternalSpinner.js +1 -1
  253. package/es/components/status/Spin/Spin.js +1 -1
  254. package/es/components/status/Spin/SpinsContainer.js +1 -1
  255. package/es/components/status/Spin/index.js +1 -1
  256. package/es/components/status/Spin/types.js +1 -1
  257. package/es/components/status/index.js +1 -1
  258. package/es/data/themes.js +1 -1
  259. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  260. package/es/icons/AdjustmentsIcon.js +1 -1
  261. package/es/icons/AiIcon.js +1 -1
  262. package/es/icons/AreaChartIcon.js +1 -1
  263. package/es/icons/BackwardIcon.js +1 -1
  264. package/es/icons/BarChartIcon.js +1 -1
  265. package/es/icons/BellFilledIcon.js +1 -1
  266. package/es/icons/BellIcon.js +1 -1
  267. package/es/icons/BooleanIcon.js +1 -1
  268. package/es/icons/CalendarEditIcon.js +1 -1
  269. package/es/icons/CalendarIcon.js +1 -1
  270. package/es/icons/CaretDownIcon.js +1 -1
  271. package/es/icons/CaretUpIcon.js +1 -1
  272. package/es/icons/ChartAreaStackedIcon.js +1 -1
  273. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  274. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  275. package/es/icons/ChartBarGroupedIcon.js +1 -1
  276. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  277. package/es/icons/ChartBarLineIcon.js +1 -1
  278. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  279. package/es/icons/ChartBarStackedIcon.js +1 -1
  280. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  281. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  282. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  283. package/es/icons/ChartBoxPlotIcon.js +1 -1
  284. package/es/icons/ChartBubbleIcon.js +1 -1
  285. package/es/icons/ChartDonut2Icon.js +1 -1
  286. package/es/icons/ChartFunnelIcon.js +1 -1
  287. package/es/icons/ChartKPIIcon.js +1 -1
  288. package/es/icons/ChartPie2Icon.js +1 -1
  289. package/es/icons/ChartScatterIcon.js +1 -1
  290. package/es/icons/CheckCircleFilledIcon.js +1 -1
  291. package/es/icons/CheckCircleIcon.js +1 -1
  292. package/es/icons/CheckIcon.js +1 -1
  293. package/es/icons/CircleFilledIcon.js +1 -1
  294. package/es/icons/ClearIcon.js +1 -1
  295. package/es/icons/CloseCircleFilledIcon.js +1 -1
  296. package/es/icons/CloseCircleIcon.js +1 -1
  297. package/es/icons/CloseIcon.js +1 -1
  298. package/es/icons/CodeIcon.js +1 -1
  299. package/es/icons/CopyIcon.js +1 -1
  300. package/es/icons/CountIcon.js +1 -1
  301. package/es/icons/CubeIcon.js +1 -1
  302. package/es/icons/DangerIcon.js +1 -1
  303. package/es/icons/DashboardIcon.js +1 -1
  304. package/es/icons/DatabaseIcon.js +1 -1
  305. package/es/icons/DirectionIcon.js +1 -1
  306. package/es/icons/DonutIcon.js +1 -1
  307. package/es/icons/DownIcon.js +1 -1
  308. package/es/icons/EditIcon.js +1 -1
  309. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  310. package/es/icons/ExclamationCircleIcon.js +1 -1
  311. package/es/icons/ExclamationIcon.js +1 -1
  312. package/es/icons/EyeIcon.js +1 -1
  313. package/es/icons/EyeInvisibleIcon.js +1 -1
  314. package/es/icons/FilterIcon.js +1 -1
  315. package/es/icons/FolderFilledIcon.js +1 -1
  316. package/es/icons/FolderIcon.js +1 -1
  317. package/es/icons/FolderOpenFilledIcon.js +1 -1
  318. package/es/icons/FolderOpenIcon.js +1 -1
  319. package/es/icons/ForwardIcon.js +1 -1
  320. package/es/icons/HierarchyIcon.js +1 -1
  321. package/es/icons/Icon.js +1 -1
  322. package/es/icons/InfoCircleIcon.js +1 -1
  323. package/es/icons/InfoIcon.js +1 -1
  324. package/es/icons/KeyIcon.js +1 -1
  325. package/es/icons/LeftIcon.js +1 -1
  326. package/es/icons/LineChartIcon.js +1 -1
  327. package/es/icons/LoadingIcon.js +1 -1
  328. package/es/icons/LockFilledIcon.js +1 -1
  329. package/es/icons/LockIcon.js +1 -1
  330. package/es/icons/MoreIcon.js +1 -1
  331. package/es/icons/NotAllowedIcon.js +1 -1
  332. package/es/icons/NumberIcon.js +1 -1
  333. package/es/icons/PauseCircleFilledIcon.js +1 -1
  334. package/es/icons/PauseCircleIcon.js +1 -1
  335. package/es/icons/PauseIcon.js +1 -1
  336. package/es/icons/PieChartIcon.js +1 -1
  337. package/es/icons/PlayCircleIcon.js +1 -1
  338. package/es/icons/PlayIcon.js +1 -1
  339. package/es/icons/PlusIcon.js +1 -1
  340. package/es/icons/ReloadIcon.js +1 -1
  341. package/es/icons/ReportIcon.js +1 -1
  342. package/es/icons/ReturnIcon.js +1 -1
  343. package/es/icons/RightIcon.js +1 -1
  344. package/es/icons/SchemeIcon.js +1 -1
  345. package/es/icons/SearchIcon.js +1 -1
  346. package/es/icons/SettingsIcon.js +1 -1
  347. package/es/icons/ShieldFilledIcon.js +1 -1
  348. package/es/icons/ShieldIcon.js +1 -1
  349. package/es/icons/SlashIcon.js +1 -1
  350. package/es/icons/SparklesIcon.js +1 -1
  351. package/es/icons/SqlIcon.js +1 -1
  352. package/es/icons/StatsIcon.js +1 -1
  353. package/es/icons/StopIcon.js +1 -1
  354. package/es/icons/StringIcon.js +1 -1
  355. package/es/icons/SwitchIcon.js +1 -1
  356. package/es/icons/TableIcon.js +1 -1
  357. package/es/icons/ThumbsDownIcon.js +1 -1
  358. package/es/icons/ThumbsUpIcon.js +1 -1
  359. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  360. package/es/icons/ThunderboltFilledIcon.js +1 -1
  361. package/es/icons/ThunderboltIcon.js +1 -1
  362. package/es/icons/TimeIcon.js +1 -1
  363. package/es/icons/UnlockIcon.js +1 -1
  364. package/es/icons/UpIcon.js +1 -1
  365. package/es/icons/UserGroupIcon.js +1 -1
  366. package/es/icons/UserIcon.js +1 -1
  367. package/es/icons/UserLockIcon.js +1 -1
  368. package/es/icons/ViewIcon.js +1 -1
  369. package/es/icons/WarningFilledIcon.js +1 -1
  370. package/es/icons/WarningIcon.js +1 -1
  371. package/es/icons/add-new-icon.js +1 -1
  372. package/es/icons/index.js +1 -1
  373. package/es/icons/wrap-icon.js +1 -1
  374. package/es/index.js +2 -1
  375. package/es/provider.js +1 -1
  376. package/es/providers/TrackingProvider.js +1 -1
  377. package/es/services/notification.js +1 -1
  378. package/es/shared/form.js +1 -1
  379. package/es/shared/index.js +1 -1
  380. package/es/stories/Form.legacy-stories.js +1 -1
  381. package/es/stories/FormFieldArgs.js +1 -1
  382. package/es/stories/Layout.stories.js +1 -1
  383. package/es/stories/Tasty.stories.js +1 -1
  384. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  385. package/es/stories/components/DialogFormApp.js +1 -1
  386. package/es/stories/components/StyledButton.js +1 -1
  387. package/es/stories/lists/baseProps.js +1 -1
  388. package/es/tasty/index.js +1 -1
  389. package/es/tasty/parser/classify.js +1 -1
  390. package/es/tasty/parser/const.js +1 -1
  391. package/es/tasty/parser/lru.js +1 -1
  392. package/es/tasty/parser/parser.js +1 -1
  393. package/es/tasty/parser/tokenizer.js +1 -1
  394. package/es/tasty/parser/types.js +1 -1
  395. package/es/tasty/providers/BreakpointsProvider.js +1 -1
  396. package/es/tasty/styles/align.js +1 -1
  397. package/es/tasty/styles/border.js +1 -1
  398. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  399. package/es/tasty/styles/color.js +1 -1
  400. package/es/tasty/styles/createStyle.js +1 -1
  401. package/es/tasty/styles/dimension.js +1 -1
  402. package/es/tasty/styles/display.js +1 -1
  403. package/es/tasty/styles/fade.js +1 -1
  404. package/es/tasty/styles/fill.js +1 -1
  405. package/es/tasty/styles/flow.js +1 -1
  406. package/es/tasty/styles/font.js +1 -1
  407. package/es/tasty/styles/fontStyle.js +1 -1
  408. package/es/tasty/styles/gap.js +1 -1
  409. package/es/tasty/styles/groupRadius.js +1 -1
  410. package/es/tasty/styles/height.js +1 -1
  411. package/es/tasty/styles/index.js +1 -1
  412. package/es/tasty/styles/inset.js +1 -1
  413. package/es/tasty/styles/justify.js +1 -1
  414. package/es/tasty/styles/list.js +1 -1
  415. package/es/tasty/styles/margin.js +1 -1
  416. package/es/tasty/styles/marginBlock.js +1 -1
  417. package/es/tasty/styles/marginInline.js +1 -1
  418. package/es/tasty/styles/outline.js +1 -1
  419. package/es/tasty/styles/padding.js +1 -1
  420. package/es/tasty/styles/paddingBlock.js +1 -1
  421. package/es/tasty/styles/paddingInline.js +1 -1
  422. package/es/tasty/styles/place.js +1 -1
  423. package/es/tasty/styles/predefined.js +1 -1
  424. package/es/tasty/styles/preset.js +1 -1
  425. package/es/tasty/styles/radius.js +1 -1
  426. package/es/tasty/styles/reset.js +1 -1
  427. package/es/tasty/styles/scrollbar.js +1 -1
  428. package/es/tasty/styles/shadow.js +1 -1
  429. package/es/tasty/styles/styledScrollbar.js +1 -1
  430. package/es/tasty/styles/transition.js +1 -1
  431. package/es/tasty/styles/types.js +1 -1
  432. package/es/tasty/styles/width.js +1 -1
  433. package/es/tasty/tasty.js +1 -1
  434. package/es/tasty/types.js +1 -1
  435. package/es/tasty/utils/cache-wrapper.js +1 -1
  436. package/es/tasty/utils/case-converter.js +1 -1
  437. package/es/tasty/utils/colors.js +1 -1
  438. package/es/tasty/utils/dotize.js +1 -1
  439. package/es/tasty/utils/filterBaseProps.js +1 -1
  440. package/es/tasty/utils/getDisplayName.js +1 -1
  441. package/es/tasty/utils/getModCombinations.js +1 -1
  442. package/es/tasty/utils/mergeStyles.js +1 -1
  443. package/es/tasty/utils/modAttrs.js +1 -1
  444. package/es/tasty/utils/renderStyles.js +1 -1
  445. package/es/tasty/utils/responsive.js +1 -1
  446. package/es/tasty/utils/string.js +1 -1
  447. package/es/tasty/utils/styles.js +1 -1
  448. package/es/tasty/utils/warnings.js +1 -1
  449. package/es/tokens.js +1 -1
  450. package/es/type-checks.js +1 -1
  451. package/es/utils/ResizeSensor.js +1 -1
  452. package/es/utils/modules.js +1 -1
  453. package/es/utils/promise.js +1 -1
  454. package/es/utils/random.js +1 -1
  455. package/es/utils/range.js +1 -1
  456. package/es/utils/react/Slots.js +1 -1
  457. package/es/utils/react/chain.js +1 -1
  458. package/es/utils/react/index.js +1 -1
  459. package/es/utils/react/interactions.js +1 -1
  460. package/es/utils/react/isTextOnly.js +1 -1
  461. package/es/utils/react/mapProps.js +1 -1
  462. package/es/utils/react/mergeProps.js +1 -1
  463. package/es/utils/react/nullableValue.js +1 -1
  464. package/es/utils/react/sharedStore.js +1 -1
  465. package/es/utils/react/useCombinedRefs.js +1 -1
  466. package/es/utils/react/useControlledFocusVisible.js +1 -1
  467. package/es/utils/react/useEventBus.js +1 -1
  468. package/es/utils/react/useId.js +1 -1
  469. package/es/utils/react/useIsDarwin.js +1 -1
  470. package/es/utils/react/useKeySymbols.js +1 -1
  471. package/es/utils/react/useLayoutEffect.js +1 -1
  472. package/es/utils/react/useQaProps.js +1 -1
  473. package/es/utils/react/useViewportSize.js +1 -1
  474. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  475. package/es/utils/transitions.js +1 -1
  476. package/es/utils/tree.js +1 -1
  477. package/es/utils/warnings.js +1 -1
  478. package/es/version.js +2 -2
  479. package/package.json +1 -1
  480. package/types/components/actions/CommandMenu/CommandMenu.d.ts +2 -0
  481. package/types/components/actions/Menu/Menu.d.ts +6 -0
  482. package/types/components/actions/Menu/SubMenuTrigger.d.ts +34 -0
  483. package/types/components/actions/Menu/SubmenuTriggerContext.d.ts +12 -0
  484. package/types/components/actions/Menu/context.d.ts +1 -0
  485. package/types/components/actions/Menu/index.d.ts +2 -0
  486. package/types/index.d.ts +1 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @cube-dev/ui-kit
2
2
 
3
+ ## 0.71.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#742](https://github.com/cube-js/cube-ui-kit/pull/742) [`c383d295`](https://github.com/cube-js/cube-ui-kit/commit/c383d295c9a5d30c2931ccbb628d27d4b22715e3) Thanks [@tenphi](https://github.com/tenphi)! - Fix the FilterPicker sorting behavior in controlled mode.
8
+
3
9
  ## 0.71.0
4
10
 
5
11
  ### Minor Changes
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -16,11 +16,12 @@ import { LoadingIcon } from '../../../icons';
16
16
  import { CONTAINER_STYLES, extractStyles, filterBaseProps, } from '../../../tasty';
17
17
  import { mergeProps } from '../../../utils/react';
18
18
  import { TooltipProvider } from '../../overlays/Tooltip/TooltipProvider';
19
- import { useMenuContext } from '../Menu';
19
+ import { MenuContext, useMenuContext } from '../Menu';
20
20
  import { MenuItem } from '../Menu/MenuItem';
21
21
  import { MenuSection } from '../Menu/MenuSection';
22
22
  import { MenuTrigger } from '../Menu/MenuTrigger';
23
23
  import { StyledDivider, StyledFooter, StyledHeader, StyledMenu, } from '../Menu/styled';
24
+ import { SubMenuTrigger } from '../Menu/SubMenuTrigger';
24
25
  import { StyledCommandMenu, StyledEmptyState, StyledLoadingWrapper, StyledSearchInput, } from './styled';
25
26
  function CommandMenu(props, ref) {
26
27
  const { searchPlaceholder = 'Search commands...', searchValue: controlledSearchValue, onSearchChange, filter: customFilter, emptyLabel = 'No commands found', searchInputStyles, headerStyles, footerStyles, isLoading = false, shouldFilter = true, autoFocus = true, size = 'medium', qa, styles, selectedKeys, defaultSelectedKeys, onSelectionChange, header, footer, ...restMenuProps } = props;
@@ -230,9 +231,13 @@ function CommandMenu(props, ref) {
230
231
  menuItem = (_jsx(TooltipProvider, { activeWrap: true, placement: "right", ...tooltipProps, children: menuItem }, item.key));
231
232
  }
232
233
  // Apply custom wrapper if provided
233
- if (item.props.wrapper) {
234
+ if (item.props?.wrapper) {
234
235
  menuItem = item.props.wrapper(menuItem);
235
236
  }
237
+ else if (item.wrapper) {
238
+ // Handle wrapper from collection nodes (e.g., SubMenuTrigger)
239
+ menuItem = item.wrapper(menuItem);
240
+ }
236
241
  // Ensure every child has a stable key, even if the wrapper component didn't set one.
237
242
  items.push(React.cloneElement(menuItem, { key: item.key }));
238
243
  });
@@ -303,6 +308,18 @@ function CommandMenu(props, ref) {
303
308
  const showEmptyState = hasSearchTerm && !hasFilteredItems && !isLoading;
304
309
  // Sync refs
305
310
  useSyncRef(contextProps, menuRef);
311
+ // Create menu context for submenus
312
+ const commandMenuContext = useMemo(() => ({
313
+ ref: menuRef,
314
+ onClose: contextProps.onClose,
315
+ closeOnSelect: true,
316
+ autoFocus: false, // Search input should maintain focus
317
+ mods: {
318
+ popover: !!contextProps.mods?.popover,
319
+ tray: !!contextProps.mods?.tray,
320
+ },
321
+ isClosing: false, // CommandMenu doesn't have its own closing state
322
+ }), [contextProps, menuRef]);
306
323
  const mods = useMemo(() => {
307
324
  // Determine mods based on menu context
308
325
  let popoverMod = completeProps.mods?.popover;
@@ -432,12 +449,12 @@ function CommandMenu(props, ref) {
432
449
  handleSearchChange('');
433
450
  }
434
451
  }
435
- } }), isLoading && (_jsx(StyledLoadingWrapper, { children: _jsx(LoadingIcon, { role: "progressbar", "aria-label": "Loading commands", "aria-hidden": false }) })), !isLoading && !showEmptyState && (_jsx(StyledMenu, { ...menuProps, ref: menuRef, id: `${qa || 'CommandMenu'}-menu`, "aria-label": "Command menu", qa: "Menu", "data-size": size, mods: mods, styles: {
436
- border: 'none',
437
- boxShadow: 'none',
438
- radius: 0,
439
- padding: '0.5x',
440
- }, children: renderedItems })), !isLoading && showEmptyState && (_jsx(StyledEmptyState, { children: emptyLabel })), footer && (_jsx(StyledFooter, { role: "presentation", "data-size": size, styles: footerStyles, children: footer }))] }));
452
+ } }), isLoading && (_jsx(StyledLoadingWrapper, { children: _jsx(LoadingIcon, { role: "progressbar", "aria-label": "Loading commands", "aria-hidden": false }) })), !isLoading && !showEmptyState && (_jsx(MenuContext.Provider, { value: commandMenuContext, children: _jsx(StyledMenu, { ...menuProps, ref: menuRef, id: `${qa || 'CommandMenu'}-menu`, "aria-label": "Command menu", qa: "Menu", "data-size": size, mods: mods, styles: {
453
+ border: 'none',
454
+ boxShadow: 'none',
455
+ radius: 0,
456
+ padding: '0.5x',
457
+ }, children: renderedItems }) })), !isLoading && showEmptyState && (_jsx(StyledEmptyState, { children: emptyLabel })), footer && (_jsx(StyledFooter, { role: "presentation", "data-size": size, styles: footerStyles, children: footer }))] }));
441
458
  }
442
459
  // forwardRef doesn't support generic parameters, so cast the result to the correct type
443
460
  const _CommandMenu = React.forwardRef(CommandMenu);
@@ -445,6 +462,7 @@ const _CommandMenu = React.forwardRef(CommandMenu);
445
462
  // Also attach Item and Section for compound component pattern
446
463
  const __CommandMenu = Object.assign(_CommandMenu, {
447
464
  Trigger: MenuTrigger,
465
+ SubMenuTrigger,
448
466
  Item,
449
467
  Section,
450
468
  displayName: 'CommandMenu',
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -17,7 +17,9 @@ import { TooltipProvider, } from '../../overlays/Tooltip/TooltipProvider';
17
17
  import { useMenuContext } from './context';
18
18
  import { MenuItem } from './MenuItem';
19
19
  import { MenuSection } from './MenuSection';
20
+ import { MenuTrigger } from './MenuTrigger';
20
21
  import { StyledDivider, StyledFooter, StyledHeader, StyledMenu, StyledMenuWrapper, } from './styled';
22
+ import { SubMenuTrigger } from './SubMenuTrigger';
21
23
  function Menu(props, ref) {
22
24
  const { header, footer, menuStyles, headerStyles, footerStyles, itemStyles, sectionStyles, sectionHeadingStyles, selectionIcon, size = 'medium', qa, selectedKeys, defaultSelectedKeys, onSelectionChange, ...rest } = props;
23
25
  const domRef = useDOMRef(ref);
@@ -91,9 +93,13 @@ function Menu(props, ref) {
91
93
  menuItem = (_jsx(TooltipProvider, { activeWrap: true, placement: "right", ...tooltipProps, children: menuItem }, item.key));
92
94
  }
93
95
  // Apply custom wrapper if provided
94
- if (item.props.wrapper) {
96
+ if (item.props?.wrapper) {
95
97
  menuItem = item.props.wrapper(menuItem);
96
98
  }
99
+ else if (item.wrapper) {
100
+ // Handle wrapper from collection nodes (e.g., SubMenuTrigger)
101
+ menuItem = item.wrapper(menuItem);
102
+ }
97
103
  // Ensure every child has a stable key, even if the wrapper component didn't set one.
98
104
  items.push(React.cloneElement(menuItem, { key: item.key }));
99
105
  });
@@ -124,6 +130,8 @@ const Section = Object.assign(BaseSection, {
124
130
  const __Menu = Object.assign(_Menu, {
125
131
  Item: Item,
126
132
  Section,
133
+ SubMenuTrigger,
134
+ Trigger: MenuTrigger,
127
135
  displayName: 'Menu',
128
136
  });
129
137
  __Menu.displayName = 'Menu';
@@ -1,22 +1,23 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  import { IconPointFilled } from '@tabler/icons-react';
10
- import { useRef } from 'react';
10
+ import React, { useRef } from 'react';
11
11
  import { FocusRing, useMenuItem } from 'react-aria';
12
12
  import { useHotkeys } from 'react-hotkeys-hook';
13
- import { CheckIcon } from '../../../icons';
13
+ import { CheckIcon, RightIcon } from '../../../icons';
14
14
  import { ClearSlots, mergeProps, SlotProvider } from '../../../utils/react';
15
15
  import { HotKeys } from '../../content/HotKeys';
16
16
  import { Text } from '../../content/Text';
17
17
  import { Space } from '../../layout/Space';
18
18
  import { useMenuContext } from './context';
19
19
  import { StyledItem } from './styled';
20
+ import { SubmenuTriggerContext } from './SubmenuTriggerContext';
20
21
  // Returns icon corresponding to selection type
21
22
  const getSelectionTypeIcon = (selectionIcon) => {
22
23
  switch (selectionIcon) {
@@ -36,11 +37,15 @@ export function MenuItem(props) {
36
37
  const { item, state, styles, selectionIcon, isVirtualized, onAction, size } = props;
37
38
  const { onClose, closeOnSelect } = useMenuContext();
38
39
  const { rendered, key, props: itemProps } = item;
40
+ // Check if this item is wrapped in a SubmenuTriggerContext
41
+ const submenuContext = React.useContext(SubmenuTriggerContext);
39
42
  // Extract optional keyboard shortcut and CommandMenu-specific props from item props so they are not passed down to DOM elements.
40
43
  const { hotkeys, wrapper, keywords, forceMount, ...cleanItemProps } = (itemProps || {});
41
44
  const isSelectable = state.selectionManager.selectionMode !== 'none';
42
45
  const isDisabledKey = state.disabledKeys.has(key);
43
46
  const ref = useRef(null);
47
+ // Use the triggerRef from submenu context if present
48
+ const elementRef = (submenuContext?.triggerRef ?? ref);
44
49
  const { menuItemProps, labelProps, descriptionProps, keyboardShortcutProps, isFocused, isSelected, isPressed, isDisabled, } = useMenuItem({
45
50
  isSelected: state.selectionManager.isSelected(key),
46
51
  isDisabled: isDisabledKey,
@@ -49,12 +54,14 @@ export function MenuItem(props) {
49
54
  onClose,
50
55
  closeOnSelect,
51
56
  isVirtualized,
52
- onAction,
53
- }, state, ref);
57
+ onAction: submenuContext?.onAction || onAction,
58
+ }, state, elementRef);
54
59
  // Destructure presentation-related props from cleanItemProps so they are not spread onto DOM element
55
60
  const { postfix, description, icon, mods: itemMods, qa: itemQa, textValue, ...restCleanProps } = cleanItemProps;
56
- // Build final postfix: custom postfix or HotKeys hint if provided and no explicit postfix
57
- const finalPostfix = postfix ?? (hotkeys ? _jsx(HotKeys, { children: hotkeys }) : undefined);
61
+ // Build final postfix: submenu icon, custom postfix or HotKeys hint
62
+ const finalPostfix = submenuContext
63
+ ? postfix ?? _jsx(RightIcon, {})
64
+ : postfix ?? (hotkeys ? _jsx(HotKeys, { children: hotkeys }) : undefined);
58
65
  const checkIcon = isSelectable && isSelected
59
66
  ? getSelectionTypeIcon(selectionIcon)
60
67
  : undefined;
@@ -67,6 +74,7 @@ export function MenuItem(props) {
67
74
  selectable: isSelectable,
68
75
  selected: isSelected,
69
76
  disabled: isDisabled,
77
+ submenu: !!submenuContext,
70
78
  };
71
79
  // Register global hotkey if provided
72
80
  useHotkeys(typeof hotkeys === 'string' ? hotkeys.toLowerCase() : '', () => {
@@ -75,8 +83,8 @@ export function MenuItem(props) {
75
83
  if (isDisabledKey || isDisabled)
76
84
  return;
77
85
  // Simulate a click on the menu item so all existing handlers run
78
- if (ref.current) {
79
- ref.current.click();
86
+ if (elementRef.current) {
87
+ elementRef.current.click();
80
88
  }
81
89
  }, {
82
90
  enableOnContentEditable: true,
@@ -90,7 +98,13 @@ export function MenuItem(props) {
90
98
  styles,
91
99
  'aria-disabled': isDisabled || undefined,
92
100
  'data-size': size,
93
- }), ref: ref, children: _jsx(ClearSlots, { children: _jsxs(SlotProvider, { slots: {
101
+ 'aria-haspopup': submenuContext ? 'menu' : undefined,
102
+ 'aria-expanded': submenuContext?.isOpen,
103
+ 'data-has-submenu': submenuContext ? true : undefined,
104
+ onKeyDown: submenuContext?.onKeyDown || menuItemProps.onKeyDown,
105
+ onMouseEnter: submenuContext?.onMouseEnter || menuItemProps.onMouseEnter,
106
+ onMouseLeave: submenuContext?.onMouseLeave || menuItemProps.onMouseLeave,
107
+ }), ref: elementRef, children: _jsx(ClearSlots, { children: _jsxs(SlotProvider, { slots: {
94
108
  text: { className: 'itemLabel', ...labelProps },
95
109
  end: { className: 'end', ...descriptionProps },
96
110
  icon: { className: 'icon' },
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-a3aca12
4
+ * @cube-dev/ui-kit v0.0.0-canary-0b8a096
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -71,7 +71,7 @@ function MenuTrigger(props, ref) {
71
71
  ref: menuRef,
72
72
  onClose: state.close,
73
73
  closeOnSelect,
74
- autoFocus: state.focusStrategy || true,
74
+ autoFocus: state.focusStrategy ?? 'first',
75
75
  style: isMobile
76
76
  ? {
77
77
  width: '100%',
@@ -82,6 +82,7 @@ function MenuTrigger(props, ref) {
82
82
  popover: !isMobile,
83
83
  tray: isMobile,
84
84
  },
85
+ isClosing: !state.isOpen,
85
86
  };
86
87
  const contents = (_jsxs(_Fragment, { children: [_jsx(DismissButton, { onDismiss: state.close }), menu, _jsx(DismissButton, { onDismiss: state.close })] }));
87
88
  // On small screen devices, the menu is rendered in a tray, otherwise a popover.