@cube-dev/ui-kit 0.66.0 → 0.67.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 (478) hide show
  1. package/CHANGELOG.md +16 -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 +3 -2
  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 +60 -53
  27. package/es/components/actions/CommandMenu/index.js +1 -1
  28. package/es/components/actions/CommandMenu/styled.js +1 -2
  29. package/es/components/actions/Menu/Menu.js +1 -1
  30. package/es/components/actions/Menu/MenuItem.js +1 -1
  31. package/es/components/actions/Menu/MenuSection.js +1 -1
  32. package/es/components/actions/Menu/MenuTrigger.js +48 -21
  33. package/es/components/actions/Menu/context.js +1 -1
  34. package/es/components/actions/Menu/index.js +1 -1
  35. package/es/components/actions/Menu/styled.js +1 -1
  36. package/es/components/actions/index.js +3 -1
  37. package/es/components/actions/use-action.js +1 -1
  38. package/es/components/actions/use-anchored-menu.js +98 -0
  39. package/es/components/actions/use-context-menu.js +206 -0
  40. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  41. package/es/components/content/Alert/Alert.js +1 -1
  42. package/es/components/content/Alert/index.js +1 -1
  43. package/es/components/content/Alert/types.js +1 -1
  44. package/es/components/content/Alert/use-alert.js +1 -1
  45. package/es/components/content/Avatar/Avatar.js +1 -1
  46. package/es/components/content/Badge/Badge.js +1 -1
  47. package/es/components/content/Card/Card.js +1 -1
  48. package/es/components/content/Content.js +1 -1
  49. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  50. package/es/components/content/CopyPasteBlock/index.js +1 -1
  51. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  52. package/es/components/content/CopySnippet/index.js +1 -1
  53. package/es/components/content/Divider.js +1 -1
  54. package/es/components/content/Footer.js +1 -1
  55. package/es/components/content/Header.js +1 -1
  56. package/es/components/content/HotKeys/HotKeys.js +1 -1
  57. package/es/components/content/HotKeys/index.js +1 -1
  58. package/es/components/content/Paragraph.js +1 -1
  59. package/es/components/content/Placeholder/Placeholder.js +1 -1
  60. package/es/components/content/PrismCode/PrismCode.js +1 -1
  61. package/es/components/content/PrismCode/prismSetup.js +1 -1
  62. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  63. package/es/components/content/Result/Result.js +1 -1
  64. package/es/components/content/Skeleton/Skeleton.js +1 -1
  65. package/es/components/content/Tag/Tag.js +1 -1
  66. package/es/components/content/Text.js +1 -1
  67. package/es/components/content/Title.js +1 -1
  68. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  69. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  70. package/es/components/fields/Checkbox/context.js +1 -1
  71. package/es/components/fields/Checkbox/index.js +1 -1
  72. package/es/components/fields/ComboBox/ComboBox.js +25 -3
  73. package/es/components/fields/ComboBox/index.js +1 -1
  74. package/es/components/fields/DatePicker/DateInput.js +1 -1
  75. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  76. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  77. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  78. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  79. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  80. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  81. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  82. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  83. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  84. package/es/components/fields/DatePicker/index.js +1 -1
  85. package/es/components/fields/DatePicker/intl.js +1 -1
  86. package/es/components/fields/DatePicker/parseDate.js +1 -1
  87. package/es/components/fields/DatePicker/props.js +1 -1
  88. package/es/components/fields/DatePicker/types.js +1 -1
  89. package/es/components/fields/DatePicker/utils.js +1 -1
  90. package/es/components/fields/FileInput/FileInput.js +1 -1
  91. package/es/components/fields/Input/Input.js +1 -1
  92. package/es/components/fields/Input/index.js +1 -1
  93. package/es/components/fields/ListBox/ListBox.js +1 -1
  94. package/es/components/fields/ListBox/index.js +1 -1
  95. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  96. package/es/components/fields/NumberInput/StepButton.js +1 -1
  97. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  98. package/es/components/fields/RadioGroup/Radio.js +1 -1
  99. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  100. package/es/components/fields/RadioGroup/context.js +1 -1
  101. package/es/components/fields/RadioGroup/index.js +1 -1
  102. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  103. package/es/components/fields/SearchInput/index.js +1 -1
  104. package/es/components/fields/Select/Select.js +38 -5
  105. package/es/components/fields/Select/index.js +1 -1
  106. package/es/components/fields/Slider/Gradation.js +1 -1
  107. package/es/components/fields/Slider/Header.js +1 -1
  108. package/es/components/fields/Slider/RangeSlider.js +1 -1
  109. package/es/components/fields/Slider/Slider.js +1 -1
  110. package/es/components/fields/Slider/SliderBase.js +1 -1
  111. package/es/components/fields/Slider/SliderInput.js +1 -1
  112. package/es/components/fields/Slider/SliderThumb.js +1 -1
  113. package/es/components/fields/Slider/SliderTrack.js +1 -1
  114. package/es/components/fields/Slider/elements.js +1 -1
  115. package/es/components/fields/Slider/index.js +1 -1
  116. package/es/components/fields/Slider/types.js +1 -1
  117. package/es/components/fields/Switch/Switch.js +1 -1
  118. package/es/components/fields/Switch/index.js +1 -1
  119. package/es/components/fields/TextArea/TextArea.js +1 -1
  120. package/es/components/fields/TextArea/index.js +1 -1
  121. package/es/components/fields/TextInput/TextInput.js +1 -1
  122. package/es/components/fields/TextInput/TextInputBase.js +1 -1
  123. package/es/components/fields/TextInput/index.js +1 -1
  124. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  125. package/es/components/fields/TextInputMapper/index.js +1 -1
  126. package/es/components/fields/index.js +1 -1
  127. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  128. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  129. package/es/components/form/FieldWrapper/index.js +1 -1
  130. package/es/components/form/FieldWrapper/types.js +1 -1
  131. package/es/components/form/Form/Field.js +1 -1
  132. package/es/components/form/Form/Form.js +1 -1
  133. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  134. package/es/components/form/Form/ResetButton/index.js +1 -1
  135. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  136. package/es/components/form/Form/SubmitButton/index.js +1 -1
  137. package/es/components/form/Form/SubmitError.js +1 -1
  138. package/es/components/form/Form/index.js +1 -1
  139. package/es/components/form/Form/types.js +1 -1
  140. package/es/components/form/Form/use-field/index.js +1 -1
  141. package/es/components/form/Form/use-field/types.js +1 -1
  142. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  143. package/es/components/form/Form/use-field/use-field.js +1 -1
  144. package/es/components/form/Form/use-form.js +1 -1
  145. package/es/components/form/Form/validation.js +1 -1
  146. package/es/components/form/Label.js +1 -1
  147. package/es/components/form/index.js +1 -1
  148. package/es/components/form/wrapper.js +1 -1
  149. package/es/components/layout/Flex.js +1 -1
  150. package/es/components/layout/Flow.js +1 -1
  151. package/es/components/layout/Grid.js +1 -1
  152. package/es/components/layout/Panel.js +1 -1
  153. package/es/components/layout/Prefix.js +1 -1
  154. package/es/components/layout/ResizablePanel.js +1 -1
  155. package/es/components/layout/Space.js +1 -1
  156. package/es/components/layout/Suffix.js +1 -1
  157. package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
  158. package/es/components/navigation/Link/Link.js +1 -1
  159. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  160. package/es/components/organisms/Modal/Modal.js +1 -1
  161. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  162. package/es/components/other/Base64Upload/Base64Upload.js +1 -1
  163. package/es/components/other/Calendar/Calendar.js +1 -1
  164. package/es/components/other/Calendar/CalendarCell.js +1 -1
  165. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  166. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  167. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  168. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  169. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  170. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  171. package/es/components/overlays/AlertDialog/index.js +1 -1
  172. package/es/components/overlays/AlertDialog/types.js +1 -1
  173. package/es/components/overlays/Dialog/Dialog.js +1 -1
  174. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  175. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  176. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  177. package/es/components/overlays/Dialog/context.js +1 -1
  178. package/es/components/overlays/Dialog/index.js +2 -2
  179. package/es/components/overlays/Dialog/{dialog-container.js → use-dialog-container.js} +3 -3
  180. package/es/components/overlays/Modal/Modal.js +1 -1
  181. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  182. package/es/components/overlays/Modal/Overlay.js +1 -1
  183. package/es/components/overlays/Modal/Popover.js +1 -1
  184. package/es/components/overlays/Modal/Tray.js +1 -1
  185. package/es/components/overlays/Modal/Underlay.js +1 -1
  186. package/es/components/overlays/Modal/index.js +1 -1
  187. package/es/components/overlays/Modal/types.js +1 -1
  188. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  189. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  190. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  191. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  192. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  193. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  194. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  195. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  196. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  197. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  198. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  199. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  200. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  201. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  202. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  203. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  204. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  205. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  206. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  207. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  208. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  209. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  210. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  211. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  212. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  213. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  214. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  215. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  216. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  217. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  218. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  219. package/es/components/overlays/NewNotifications/index.js +1 -1
  220. package/es/components/overlays/NewNotifications/types.js +1 -1
  221. package/es/components/overlays/Notification/Notification.js +1 -1
  222. package/es/components/overlays/OverlayWrapper.js +1 -1
  223. package/es/components/overlays/Toasts/Toast.js +1 -1
  224. package/es/components/overlays/Toasts/index.js +1 -1
  225. package/es/components/overlays/Toasts/types.js +1 -1
  226. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  227. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  228. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  229. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  230. package/es/components/overlays/Tooltip/context.js +1 -1
  231. package/es/components/overlays/Tooltip/index.js +1 -1
  232. package/es/components/portal/Portal.js +1 -1
  233. package/es/components/portal/PortalProvider.js +1 -1
  234. package/es/components/portal/index.js +1 -1
  235. package/es/components/portal/storybook/templates/CustomRoot.js +1 -1
  236. package/es/components/portal/storybook/templates/PortalOrder.js +1 -1
  237. package/es/components/portal/storybook/templates/basic.js +1 -1
  238. package/es/components/portal/storybook/templates/index.js +1 -1
  239. package/es/components/portal/types.js +1 -1
  240. package/es/components/portal/usePortal.js +1 -1
  241. package/es/components/shared/InvalidIcon.js +1 -1
  242. package/es/components/shared/ValidIcon.js +1 -1
  243. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  244. package/es/components/status/LoadingAnimation/index.js +1 -1
  245. package/es/components/status/Spin/Cube.js +1 -1
  246. package/es/components/status/Spin/InternalSpinner.js +1 -1
  247. package/es/components/status/Spin/Spin.js +1 -1
  248. package/es/components/status/Spin/SpinsContainer.js +1 -1
  249. package/es/components/status/Spin/index.js +1 -1
  250. package/es/components/status/Spin/types.js +1 -1
  251. package/es/components/status/index.js +1 -1
  252. package/es/data/themes.js +1 -1
  253. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  254. package/es/icons/AdjustmentsIcon.js +1 -1
  255. package/es/icons/AiIcon.js +1 -1
  256. package/es/icons/AreaChartIcon.js +1 -1
  257. package/es/icons/BackwardIcon.js +1 -1
  258. package/es/icons/BarChartIcon.js +1 -1
  259. package/es/icons/BellFilledIcon.js +1 -1
  260. package/es/icons/BellIcon.js +1 -1
  261. package/es/icons/BooleanIcon.js +1 -1
  262. package/es/icons/CalendarEditIcon.js +1 -1
  263. package/es/icons/CalendarIcon.js +1 -1
  264. package/es/icons/CaretDownIcon.js +1 -1
  265. package/es/icons/CaretUpIcon.js +1 -1
  266. package/es/icons/ChartAreaStackedIcon.js +1 -1
  267. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  268. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  269. package/es/icons/ChartBarGroupedIcon.js +1 -1
  270. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  271. package/es/icons/ChartBarLineIcon.js +1 -1
  272. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  273. package/es/icons/ChartBarStackedIcon.js +1 -1
  274. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  275. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  276. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  277. package/es/icons/ChartBoxPlotIcon.js +1 -1
  278. package/es/icons/ChartBubbleIcon.js +1 -1
  279. package/es/icons/ChartDonut2Icon.js +1 -1
  280. package/es/icons/ChartFunnelIcon.js +1 -1
  281. package/es/icons/ChartPie2Icon.js +1 -1
  282. package/es/icons/ChartScatterIcon.js +1 -1
  283. package/es/icons/CheckCircleFilledIcon.js +1 -1
  284. package/es/icons/CheckCircleIcon.js +1 -1
  285. package/es/icons/CheckIcon.js +1 -1
  286. package/es/icons/CircleFilledIcon.js +1 -1
  287. package/es/icons/ClearIcon.js +1 -1
  288. package/es/icons/CloseCircleFilledIcon.js +1 -1
  289. package/es/icons/CloseCircleIcon.js +1 -1
  290. package/es/icons/CloseIcon.js +1 -1
  291. package/es/icons/CodeIcon.js +1 -1
  292. package/es/icons/CopyIcon.js +1 -1
  293. package/es/icons/CountIcon.js +1 -1
  294. package/es/icons/CubeIcon.js +1 -1
  295. package/es/icons/DangerIcon.js +1 -1
  296. package/es/icons/DashboardIcon.js +1 -1
  297. package/es/icons/DatabaseIcon.js +1 -1
  298. package/es/icons/DirectionIcon.js +1 -1
  299. package/es/icons/DonutIcon.js +1 -1
  300. package/es/icons/DownIcon.js +1 -1
  301. package/es/icons/EditIcon.js +1 -1
  302. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  303. package/es/icons/ExclamationCircleIcon.js +1 -1
  304. package/es/icons/ExclamationIcon.js +1 -1
  305. package/es/icons/EyeIcon.js +1 -1
  306. package/es/icons/EyeInvisibleIcon.js +1 -1
  307. package/es/icons/FilterIcon.js +1 -1
  308. package/es/icons/FolderFilledIcon.js +1 -1
  309. package/es/icons/FolderIcon.js +1 -1
  310. package/es/icons/FolderOpenFilledIcon.js +1 -1
  311. package/es/icons/FolderOpenIcon.js +1 -1
  312. package/es/icons/ForwardIcon.js +1 -1
  313. package/es/icons/HierarchyIcon.js +1 -1
  314. package/es/icons/Icon.js +1 -1
  315. package/es/icons/InfoCircleIcon.js +1 -1
  316. package/es/icons/InfoIcon.js +1 -1
  317. package/es/icons/KeyIcon.js +1 -1
  318. package/es/icons/LeftIcon.js +1 -1
  319. package/es/icons/LineChartIcon.js +1 -1
  320. package/es/icons/LoadingIcon.js +1 -1
  321. package/es/icons/LockFilledIcon.js +1 -1
  322. package/es/icons/LockIcon.js +1 -1
  323. package/es/icons/MoreIcon.js +1 -1
  324. package/es/icons/NotAllowedIcon.js +1 -1
  325. package/es/icons/NumberIcon.js +1 -1
  326. package/es/icons/PauseCircleFilledIcon.js +1 -1
  327. package/es/icons/PauseCircleIcon.js +1 -1
  328. package/es/icons/PauseIcon.js +1 -1
  329. package/es/icons/PieChartIcon.js +1 -1
  330. package/es/icons/PlayCircleIcon.js +1 -1
  331. package/es/icons/PlayIcon.js +1 -1
  332. package/es/icons/PlusIcon.js +1 -1
  333. package/es/icons/ReloadIcon.js +1 -1
  334. package/es/icons/ReportIcon.js +1 -1
  335. package/es/icons/ReturnIcon.js +1 -1
  336. package/es/icons/RightIcon.js +1 -1
  337. package/es/icons/SchemeIcon.js +1 -1
  338. package/es/icons/SearchIcon.js +1 -1
  339. package/es/icons/SettingsIcon.js +1 -1
  340. package/es/icons/ShieldFilledIcon.js +1 -1
  341. package/es/icons/ShieldIcon.js +1 -1
  342. package/es/icons/SlashIcon.js +1 -1
  343. package/es/icons/SparklesIcon.js +1 -1
  344. package/es/icons/SqlIcon.js +1 -1
  345. package/es/icons/StatsIcon.js +1 -1
  346. package/es/icons/StopIcon.js +1 -1
  347. package/es/icons/StringIcon.js +1 -1
  348. package/es/icons/SwitchIcon.js +1 -1
  349. package/es/icons/TableIcon.js +1 -1
  350. package/es/icons/ThumbsDownIcon.js +1 -1
  351. package/es/icons/ThumbsUpIcon.js +1 -1
  352. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  353. package/es/icons/ThunderboltFilledIcon.js +1 -1
  354. package/es/icons/ThunderboltIcon.js +1 -1
  355. package/es/icons/TimeIcon.js +1 -1
  356. package/es/icons/UnlockIcon.js +1 -1
  357. package/es/icons/UpIcon.js +1 -1
  358. package/es/icons/UserGroupIcon.js +1 -1
  359. package/es/icons/UserIcon.js +1 -1
  360. package/es/icons/UserLockIcon.js +1 -1
  361. package/es/icons/ViewIcon.js +1 -1
  362. package/es/icons/WarningFilledIcon.js +1 -1
  363. package/es/icons/WarningIcon.js +1 -1
  364. package/es/icons/add-new-icon.js +1 -1
  365. package/es/icons/index.js +1 -1
  366. package/es/icons/wrap-icon.js +1 -1
  367. package/es/index.js +1 -1
  368. package/es/provider.js +4 -1
  369. package/es/providers/TrackingProvider.js +1 -1
  370. package/es/services/notification.js +1 -1
  371. package/es/shared/form.js +1 -1
  372. package/es/shared/index.js +1 -1
  373. package/es/stories/Form.legacy-stories.js +1 -1
  374. package/es/stories/FormFieldArgs.js +1 -1
  375. package/es/stories/Layout.stories.js +1 -1
  376. package/es/stories/Tasty.stories.js +1 -1
  377. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  378. package/es/stories/components/DialogFormApp.js +1 -1
  379. package/es/stories/components/StyledButton.js +1 -1
  380. package/es/stories/lists/baseProps.js +1 -1
  381. package/es/tasty/index.js +1 -1
  382. package/es/tasty/providers/BreakpointsProvider.js +1 -1
  383. package/es/tasty/styles/align.js +1 -1
  384. package/es/tasty/styles/border.js +1 -1
  385. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  386. package/es/tasty/styles/color.js +1 -1
  387. package/es/tasty/styles/createStyle.js +1 -1
  388. package/es/tasty/styles/dimension.js +1 -1
  389. package/es/tasty/styles/display.js +1 -1
  390. package/es/tasty/styles/fade.js +1 -1
  391. package/es/tasty/styles/fill.js +1 -1
  392. package/es/tasty/styles/flow.js +1 -1
  393. package/es/tasty/styles/font.js +1 -1
  394. package/es/tasty/styles/fontStyle.js +1 -1
  395. package/es/tasty/styles/gap.js +1 -1
  396. package/es/tasty/styles/groupRadius.js +1 -1
  397. package/es/tasty/styles/height.js +1 -1
  398. package/es/tasty/styles/index.js +1 -1
  399. package/es/tasty/styles/inset.js +1 -1
  400. package/es/tasty/styles/justify.js +1 -1
  401. package/es/tasty/styles/list.js +1 -1
  402. package/es/tasty/styles/margin.js +1 -1
  403. package/es/tasty/styles/marginBlock.js +1 -1
  404. package/es/tasty/styles/marginInline.js +1 -1
  405. package/es/tasty/styles/outline.js +1 -1
  406. package/es/tasty/styles/padding.js +1 -1
  407. package/es/tasty/styles/paddingBlock.js +1 -1
  408. package/es/tasty/styles/paddingInline.js +1 -1
  409. package/es/tasty/styles/place.js +1 -1
  410. package/es/tasty/styles/predefined.js +1 -1
  411. package/es/tasty/styles/preset.js +1 -1
  412. package/es/tasty/styles/radius.js +1 -1
  413. package/es/tasty/styles/reset.js +1 -1
  414. package/es/tasty/styles/scrollbar.js +1 -1
  415. package/es/tasty/styles/shadow.js +1 -1
  416. package/es/tasty/styles/styledScrollbar.js +1 -1
  417. package/es/tasty/styles/transition.js +1 -1
  418. package/es/tasty/styles/types.js +1 -1
  419. package/es/tasty/styles/width.js +1 -1
  420. package/es/tasty/tasty.js +1 -1
  421. package/es/tasty/types.js +1 -1
  422. package/es/tasty/utils/cache-wrapper.js +1 -1
  423. package/es/tasty/utils/case-converter.js +1 -1
  424. package/es/tasty/utils/colors.js +1 -1
  425. package/es/tasty/utils/dotize.js +1 -1
  426. package/es/tasty/utils/filterBaseProps.js +1 -1
  427. package/es/tasty/utils/getDisplayName.js +1 -1
  428. package/es/tasty/utils/getModCombinations.js +1 -1
  429. package/es/tasty/utils/mergeStyles.js +1 -1
  430. package/es/tasty/utils/modAttrs.js +1 -1
  431. package/es/tasty/utils/renderStyles.js +1 -1
  432. package/es/tasty/utils/responsive.js +1 -1
  433. package/es/tasty/utils/string.js +1 -1
  434. package/es/tasty/utils/styles.js +1 -1
  435. package/es/tasty/utils/warnings.js +1 -1
  436. package/es/tokens.js +1 -1
  437. package/es/type-checks.js +1 -1
  438. package/es/utils/ResizeSensor.js +1 -1
  439. package/es/utils/modules.js +1 -1
  440. package/es/utils/promise.js +1 -1
  441. package/es/utils/random.js +7 -1
  442. package/es/utils/range.js +1 -1
  443. package/es/utils/react/Slots.js +1 -1
  444. package/es/utils/react/chain.js +1 -1
  445. package/es/utils/react/index.js +2 -1
  446. package/es/utils/react/interactions.js +1 -1
  447. package/es/utils/react/isTextOnly.js +1 -1
  448. package/es/utils/react/mapProps.js +1 -1
  449. package/es/utils/react/mergeProps.js +1 -1
  450. package/es/utils/react/nullableValue.js +1 -1
  451. package/es/utils/react/sharedStore.js +51 -0
  452. package/es/utils/react/useCombinedRefs.js +1 -1
  453. package/es/utils/react/useEventBus.js +124 -0
  454. package/es/utils/react/useId.js +1 -1
  455. package/es/utils/react/useIsDarwin.js +1 -1
  456. package/es/utils/react/useKeySymbols.js +1 -1
  457. package/es/utils/react/useLayoutEffect.js +1 -1
  458. package/es/utils/react/useQaProps.js +1 -1
  459. package/es/utils/react/useViewportSize.js +1 -1
  460. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  461. package/es/utils/transitions.js +1 -1
  462. package/es/utils/tree.js +1 -1
  463. package/es/utils/warnings.js +1 -1
  464. package/es/version.js +2 -2
  465. package/package.json +1 -1
  466. package/types/components/actions/Menu/MenuTrigger.d.ts +2 -3
  467. package/types/components/actions/index.d.ts +2 -0
  468. package/types/components/actions/use-anchored-menu.d.ts +34 -0
  469. package/types/components/actions/use-context-menu.d.ts +42 -0
  470. package/types/components/content/Card/Card.d.ts +2 -2
  471. package/types/components/content/CopyPasteBlock/CopyPasteBlock.d.ts +1 -1
  472. package/types/components/fields/Select/Select.d.ts +2 -1
  473. package/types/components/overlays/Dialog/index.d.ts +1 -1
  474. package/types/utils/random.d.ts +4 -0
  475. package/types/utils/react/index.d.ts +2 -0
  476. package/types/utils/react/sharedStore.d.ts +11 -0
  477. package/types/utils/react/useEventBus.d.ts +74 -0
  478. /package/types/components/overlays/Dialog/{dialog-container.d.ts → use-dialog-container.d.ts} +0 -0
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -13,8 +13,10 @@ import { useEvent } from '../../../_internal/index';
13
13
  import { DownIcon, LoadingIcon } from '../../../icons';
14
14
  import { useProviderProps } from '../../../provider';
15
15
  import { BASE_STYLES, COLOR_STYLES, extractStyles, OUTER_STYLES, tasty, } from '../../../tasty';
16
+ import { generateRandomId } from '../../../utils/random';
16
17
  import { mergeProps, modAttrs, useCombinedRefs, useLayoutEffect, } from '../../../utils/react';
17
18
  import { useFocus } from '../../../utils/react/interactions';
19
+ import { useEventBus } from '../../../utils/react/useEventBus';
18
20
  import { useFieldProps, useFormProps, wrapWithField } from '../../form';
19
21
  import { OverlayWrapper } from '../../overlays/OverlayWrapper';
20
22
  import { InvalidIcon } from '../../shared/InvalidIcon';
@@ -95,6 +97,26 @@ export const ComboBox = forwardRef(function ComboBox(props, ref) {
95
97
  menuTrigger,
96
98
  };
97
99
  let state = useComboBoxState(comboBoxStateProps);
100
+ // Generate a unique ID for this combobox instance
101
+ const comboBoxId = useMemo(() => generateRandomId(), []);
102
+ // Get event bus for menu synchronization
103
+ const { emit, on } = useEventBus();
104
+ // Listen for other menus opening and close this one if needed
105
+ useEffect(() => {
106
+ const unsubscribe = on('menu:open', (data) => {
107
+ // If another menu is opening and this combobox is open, close this one
108
+ if (data.menuId !== comboBoxId && state.isOpen) {
109
+ state.close();
110
+ }
111
+ });
112
+ return unsubscribe;
113
+ }, [on, comboBoxId, state]);
114
+ // Emit event when this combobox opens
115
+ useEffect(() => {
116
+ if (state.isOpen) {
117
+ emit('menu:open', { menuId: comboBoxId });
118
+ }
119
+ }, [state.isOpen, emit, comboBoxId]);
98
120
  styles = extractStyles(otherProps, PROP_STYLES, styles);
99
121
  ref = useCombinedRefs(ref);
100
122
  wrapperRef = useCombinedRefs(wrapperRef);
@@ -220,13 +242,13 @@ export const ComboBox = forwardRef(function ComboBox(props, ref) {
220
242
  let allInputProps = useMemo(() => mergeProps(inputProps, hoverProps, focusProps), [inputProps, hoverProps, focusProps]);
221
243
  let comboBoxField = (_jsxs(ComboBoxWrapperElement, { ref: wrapperRef, qa: qa || 'ComboBox', ...modAttrs(mods), styles: wrapperStyles, style: {
222
244
  zIndex: isFocused ? 1 : 'initial',
223
- }, "data-size": size, children: [_jsx(InputElement, { ref: inputRef, qa: "Input", autoFocus: autoFocus, "data-autofocus": autoFocus ? '' : undefined, ...allInputProps, autoComplete: autoComplete, styles: inputStyles, ...modAttrs(mods), "data-size": size }), prefix ? _jsx("div", { "data-element": "Prefix", children: prefix }) : null, _jsxs("div", { "data-element": "Suffix", children: [suffixPosition === 'before' ? suffix : null, validationState || isLoading ? (_jsxs(_Fragment, { children: [validationState && !isLoading ? validation : null, isLoading ? _jsx(LoadingIcon, {}) : null] })) : null, suffixPosition === 'after' ? suffix : null, !hideTrigger ? (_jsx(TriggerElement, { qa: "ComboBoxTrigger", ...mergeProps(buttonProps, triggerFocusProps, triggerHoverProps), ...modAttrs({
245
+ }, "data-size": size, children: [_jsx(InputElement, { ref: inputRef, qa: "Input", autoFocus: autoFocus, "data-autofocus": autoFocus ? '' : undefined, ...allInputProps, autoComplete: autoComplete, styles: inputStyles, ...modAttrs(mods), "data-size": size }), prefix ? _jsx("div", { "data-element": "Prefix", children: prefix }) : null, _jsxs("div", { "data-element": "Suffix", children: [suffixPosition === 'before' ? suffix : null, validationState || isLoading ? (_jsxs(_Fragment, { children: [validationState && !isLoading ? validation : null, isLoading ? _jsx(LoadingIcon, {}) : null] })) : null, suffixPosition === 'after' ? suffix : null, !hideTrigger ? (_jsx(TriggerElement, { "data-menu-trigger": true, qa: "ComboBoxTrigger", ...mergeProps(buttonProps, triggerFocusProps, triggerHoverProps), ...modAttrs({
224
246
  pressed: isTriggerPressed,
225
247
  focused: isTriggerFocused,
226
248
  hovered: isTriggerHovered,
227
249
  disabled: isDisabled,
228
250
  loading: isLoading,
229
- }), ref: triggerRef, "data-size": size, isDisabled: isDisabled, styles: triggerStyles, children: _jsx(DownIcon, {}) })) : null] }), _jsx(OverlayWrapper, { isOpen: state.isOpen && !isDisabled, children: _jsx(ListBoxPopup, { ...listBoxProps, shouldUseVirtualFocus: true, listBoxRef: listBoxRef, popoverRef: popoverRef, overlayProps: overlayProps, placement: placement, state: state, listBoxStyles: listBoxStyles, overlayStyles: overlayStyles, optionStyles: optionStyles, minWidth: comboBoxWidth }) })] }));
251
+ }), ref: triggerRef, "data-size": size, isDisabled: isDisabled, styles: triggerStyles, children: _jsx(DownIcon, {}) })) : null] }), _jsx(OverlayWrapper, { isOpen: state.isOpen && !isDisabled, children: _jsx(ListBoxPopup, { ...listBoxProps, shouldUseVirtualFocus: true, listBoxRef: listBoxRef, popoverRef: popoverRef, overlayProps: overlayProps, placement: placement, state: state, listBoxStyles: listBoxStyles, overlayStyles: overlayStyles, optionStyles: optionStyles, minWidth: comboBoxWidth, triggerRef: triggerRef }) })] }));
230
252
  return wrapWithField(comboBoxField, ref, mergeProps({ ...props, styles }, { labelProps }));
231
253
  });
232
254
  const ComboBoxSectionComponent = Object.assign(BaseSection, {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,20 +1,22 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.66.0
4
+ * @cube-dev/ui-kit v0.67.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
8
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
9
- import { cloneElement, forwardRef, useMemo, useRef, } from 'react';
9
+ import { cloneElement, forwardRef, useEffect, useMemo, useRef, } from 'react';
10
10
  import { DismissButton, FocusScope, HiddenSelect, useButton, useHover, useListBox, useListBoxSection, useOption, useOverlay, useOverlayPosition, useSelect, } from 'react-aria';
11
11
  import { Section as BaseSection, Item, useSelectState } from 'react-stately';
12
12
  import styled from 'styled-components';
13
13
  import { DownIcon, LoadingIcon } from '../../../icons/index';
14
14
  import { useProviderProps } from '../../../provider';
15
15
  import { BASE_STYLES, COLOR_STYLES, extractStyles, OUTER_STYLES, tasty, } from '../../../tasty/index';
16
+ import { generateRandomId } from '../../../utils/random';
16
17
  import { mergeProps, useCombinedRefs } from '../../../utils/react/index';
17
18
  import { useFocus } from '../../../utils/react/interactions';
19
+ import { useEventBus } from '../../../utils/react/useEventBus';
18
20
  import { getOverlayTransitionCSS } from '../../../utils/transitions';
19
21
  import { DEFAULT_BUTTON_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_LINK_STYLES, DEFAULT_NEUTRAL_STYLES, DEFAULT_OUTLINE_STYLES, DEFAULT_PRIMARY_STYLES, DEFAULT_SECONDARY_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_LINK_STYLES, SPECIAL_NEUTRAL_STYLES, SPECIAL_OUTLINE_STYLES, SPECIAL_PRIMARY_STYLES, SPECIAL_SECONDARY_STYLES, } from '../../actions/index';
20
22
  import { StyledDivider as ListDivider, StyledSectionHeading as ListSectionHeading, StyledSection as ListSectionWrapper, } from '../../actions/Menu/styled';
@@ -211,6 +213,26 @@ function Select(props, ref) {
211
213
  });
212
214
  let { qa, label, extra, icon, labelStyles, isRequired, necessityIndicator, validationState, prefix, isDisabled, autoFocus, inputProps, triggerRef, popoverRef, listBoxRef, isLoading, loadingIndicator, overlayOffset = 8, inputStyles, optionStyles, wrapperStyles, listBoxStyles, overlayStyles, suffix, message, description, direction = 'bottom', shouldFlip = true, placeholder, tooltip, size = 'medium', styles, type = 'outline', theme = 'default', labelSuffix, suffixPosition = 'before', ...otherProps } = props;
213
215
  let state = useSelectState(props);
216
+ // Generate a unique ID for this select instance
217
+ const selectId = useMemo(() => generateRandomId(), []);
218
+ // Get event bus for menu synchronization
219
+ const { emit, on } = useEventBus();
220
+ // Listen for other menus opening and close this one if needed
221
+ useEffect(() => {
222
+ const unsubscribe = on('menu:open', (data) => {
223
+ // If another menu is opening and this select is open, close this one
224
+ if (data.menuId !== selectId && state.isOpen) {
225
+ state.close();
226
+ }
227
+ });
228
+ return unsubscribe;
229
+ }, [on, selectId, state]);
230
+ // Emit event when this select opens
231
+ useEffect(() => {
232
+ if (state.isOpen) {
233
+ emit('menu:open', { menuId: selectId });
234
+ }
235
+ }, [state.isOpen, emit, selectId]);
214
236
  styles = extractStyles(otherProps, PROP_STYLES, styles);
215
237
  ref = useCombinedRefs(ref);
216
238
  triggerRef = useCombinedRefs(triggerRef);
@@ -264,15 +286,15 @@ function Select(props, ref) {
264
286
  showPlaceholder,
265
287
  prefix,
266
288
  ]);
267
- let selectField = (_jsxs(SelectWrapperElement, { qa: qa || 'Select', mods: modifiers, styles: wrapperStyles, "data-size": size, "data-type": type, "data-theme": theme, children: [_jsx(HiddenSelect, { state: state, triggerRef: triggerRef, label: props.label, name: props.name }), _jsxs(SelectElement, { ...mergeProps(buttonProps, hoverProps, focusProps), ref: triggerRef, styles: inputStyles, variant: `${theme}.${type}`, "data-theme": theme, "data-size": size, "data-type": type, mods: modifiers, children: [prefix ? _jsx("div", { "data-element": "Prefix", children: prefix }) : null, _jsx("span", { "data-element": "Value", ...valueProps, children: state.selectedItem
289
+ let selectField = (_jsxs(SelectWrapperElement, { qa: qa || 'Select', mods: modifiers, styles: wrapperStyles, "data-size": size, "data-type": type, "data-theme": theme, children: [_jsx(HiddenSelect, { state: state, triggerRef: triggerRef, label: props.label, name: props.name }), _jsxs(SelectElement, { ...mergeProps(buttonProps, hoverProps, focusProps), ref: triggerRef, "data-menu-trigger": true, styles: inputStyles, variant: `${theme}.${type}`, "data-theme": theme, "data-size": size, "data-type": type, mods: modifiers, children: [prefix ? _jsx("div", { "data-element": "Prefix", children: prefix }) : null, _jsx("span", { "data-element": "Value", ...valueProps, children: state.selectedItem
268
290
  ? state.selectedItem.rendered
269
- : placeholder || _jsx(_Fragment, { children: "\u00A0" }) }), _jsxs("div", { "data-element": "Suffix", children: [suffixPosition === 'before' ? suffix : null, validationState && !isLoading ? validation : null, isLoading && _jsx(LoadingIcon, {}), suffixPosition === 'after' ? suffix : null, _jsx("div", { "data-element": "CaretIcon", children: _jsx(DownIcon, {}) })] })] }), _jsx(OverlayWrapper, { isOpen: state.isOpen && !isDisabled, children: _jsx(ListBoxPopup, { ...menuProps, popoverRef: popoverRef, listBoxRef: listBoxRef, overlayProps: overlayProps, placement: placement, state: state, listBoxStyles: listBoxStyles, overlayStyles: overlayStyles, optionStyles: optionStyles, minWidth: triggerWidth }) })] }));
291
+ : placeholder || _jsx(_Fragment, { children: "\u00A0" }) }), _jsxs("div", { "data-element": "Suffix", children: [suffixPosition === 'before' ? suffix : null, validationState && !isLoading ? validation : null, isLoading && _jsx(LoadingIcon, {}), suffixPosition === 'after' ? suffix : null, _jsx("div", { "data-element": "CaretIcon", children: _jsx(DownIcon, {}) })] })] }), _jsx(OverlayWrapper, { isOpen: state.isOpen && !isDisabled, children: _jsx(ListBoxPopup, { ...menuProps, popoverRef: popoverRef, listBoxRef: listBoxRef, overlayProps: overlayProps, placement: placement, state: state, listBoxStyles: listBoxStyles, overlayStyles: overlayStyles, optionStyles: optionStyles, minWidth: triggerWidth, triggerRef: triggerRef }) })] }));
270
292
  return wrapWithField(selectField, ref, mergeProps({
271
293
  ...props,
272
294
  styles,
273
295
  }, { labelProps }));
274
296
  }
275
- export function ListBoxPopup({ state, popoverRef, listBoxRef, listBoxStyles, overlayStyles, optionStyles, overlayProps: parentOverlayProps, shouldUseVirtualFocus = false, placement, minWidth, size = 'small', ...otherProps }) {
297
+ export function ListBoxPopup({ state, popoverRef, listBoxRef, listBoxStyles, overlayStyles, optionStyles, overlayProps: parentOverlayProps, shouldUseVirtualFocus = false, placement, minWidth, size = 'small', triggerRef, ...otherProps }) {
276
298
  // Get props for the listbox
277
299
  let { listBoxProps } = useListBox({
278
300
  autoFocus: state.focusStrategy || true,
@@ -286,6 +308,17 @@ export function ListBoxPopup({ state, popoverRef, listBoxRef, listBoxStyles, ove
286
308
  shouldCloseOnBlur: true,
287
309
  isOpen: state.isOpen,
288
310
  isDismissable: true,
311
+ shouldCloseOnInteractOutside: (el) => {
312
+ const menuTriggerEl = el.closest('[data-menu-trigger]');
313
+ // If no menu trigger was clicked, allow closing
314
+ if (!menuTriggerEl)
315
+ return true;
316
+ // If the same trigger that opened this select was clicked, allow closing
317
+ if (menuTriggerEl === triggerRef?.current)
318
+ return true;
319
+ // Otherwise, don't close (let event mechanism handle it)
320
+ return false;
321
+ },
289
322
  }, popoverRef);
290
323
  // Wrap in <FocusScope> so that focus is restored back to the
291
324
  // trigger when the popup is closed. In addition, add hidden
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
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.66.0
4
+ * @cube-dev/ui-kit v0.67.0
5
5
  * Released under the MIT license.
6
6
  */
7
7