@cube-dev/ui-kit 0.77.2 → 0.77.4

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 (506) hide show
  1. package/CHANGELOG.md +26 -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/Item.js +1 -1
  21. package/es/components/OpenTrasition.js +1 -1
  22. package/es/components/Root.js +1 -1
  23. package/es/components/actions/Action/Action.js +1 -1
  24. package/es/components/actions/Button/Button.js +1 -1
  25. package/es/components/actions/Button/index.js +1 -1
  26. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  27. package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
  28. package/es/components/actions/CommandMenu/index.js +1 -1
  29. package/es/components/actions/CommandMenu/styled.js +1 -1
  30. package/es/components/actions/ItemAction/ItemAction.js +19 -0
  31. package/es/components/actions/ItemAction/index.js +10 -0
  32. package/es/components/actions/ItemButton/ItemButton.js +1 -1
  33. package/es/components/actions/ItemButton/index.js +1 -1
  34. package/es/components/actions/Menu/Menu.js +1 -1
  35. package/es/components/actions/Menu/MenuItem.js +1 -1
  36. package/es/components/actions/Menu/MenuSection.js +1 -1
  37. package/es/components/actions/Menu/MenuTrigger.js +1 -1
  38. package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
  39. package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  40. package/es/components/actions/Menu/context.js +1 -1
  41. package/es/components/actions/Menu/index.js +1 -1
  42. package/es/components/actions/Menu/styled.js +1 -1
  43. package/es/components/actions/index.js +2 -1
  44. package/es/components/actions/use-action.js +1 -1
  45. package/es/components/actions/use-anchored-menu.js +1 -1
  46. package/es/components/actions/use-context-menu.js +1 -1
  47. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  48. package/es/components/content/Alert/Alert.js +1 -1
  49. package/es/components/content/Alert/index.js +1 -1
  50. package/es/components/content/Alert/types.js +1 -1
  51. package/es/components/content/Alert/use-alert.js +1 -1
  52. package/es/components/content/Avatar/Avatar.js +1 -1
  53. package/es/components/content/Badge/Badge.js +1 -1
  54. package/es/components/content/Card/Card.js +1 -1
  55. package/es/components/content/Content.js +1 -1
  56. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  57. package/es/components/content/CopyPasteBlock/index.js +1 -1
  58. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  59. package/es/components/content/CopySnippet/index.js +1 -1
  60. package/es/components/content/Divider.js +1 -1
  61. package/es/components/content/Footer.js +1 -1
  62. package/es/components/content/Header.js +1 -1
  63. package/es/components/content/HotKeys/HotKeys.js +1 -1
  64. package/es/components/content/HotKeys/index.js +1 -1
  65. package/es/components/content/ItemBase/ItemBase.js +3 -1
  66. package/es/components/content/ItemBase/index.js +1 -1
  67. package/es/components/content/List/SectionHeading.js +1 -1
  68. package/es/components/content/List/index.js +1 -1
  69. package/es/components/content/Paragraph.js +1 -1
  70. package/es/components/content/Placeholder/Placeholder.js +1 -1
  71. package/es/components/content/PrismCode/PrismCode.js +1 -1
  72. package/es/components/content/PrismCode/prismSetup.js +1 -1
  73. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  74. package/es/components/content/Result/Result.js +1 -1
  75. package/es/components/content/Skeleton/Skeleton.js +1 -1
  76. package/es/components/content/Tag/Tag.js +1 -1
  77. package/es/components/content/Text.js +1 -1
  78. package/es/components/content/Title.js +1 -1
  79. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  80. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  81. package/es/components/fields/Checkbox/context.js +1 -1
  82. package/es/components/fields/Checkbox/index.js +1 -1
  83. package/es/components/fields/ComboBox/ComboBox.js +32 -4
  84. package/es/components/fields/ComboBox/index.js +1 -1
  85. package/es/components/fields/DatePicker/DateInput.js +1 -1
  86. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  87. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  88. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  89. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  90. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  91. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  92. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  93. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  94. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  95. package/es/components/fields/DatePicker/index.js +1 -1
  96. package/es/components/fields/DatePicker/intl.js +1 -1
  97. package/es/components/fields/DatePicker/parseDate.js +1 -1
  98. package/es/components/fields/DatePicker/props.js +1 -1
  99. package/es/components/fields/DatePicker/types.js +1 -1
  100. package/es/components/fields/DatePicker/utils.js +1 -1
  101. package/es/components/fields/FileInput/FileInput.js +1 -1
  102. package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
  103. package/es/components/fields/FilterListBox/index.js +1 -1
  104. package/es/components/fields/FilterPicker/FilterPicker.js +45 -13
  105. package/es/components/fields/FilterPicker/index.js +1 -1
  106. package/es/components/fields/Input/Input.js +1 -1
  107. package/es/components/fields/Input/index.js +1 -1
  108. package/es/components/fields/ListBox/ListBox.js +1 -1
  109. package/es/components/fields/ListBox/index.js +1 -1
  110. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  111. package/es/components/fields/NumberInput/StepButton.js +1 -1
  112. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  113. package/es/components/fields/RadioGroup/Radio.js +1 -1
  114. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  115. package/es/components/fields/RadioGroup/context.js +1 -1
  116. package/es/components/fields/RadioGroup/index.js +1 -1
  117. package/es/components/fields/SearchInput/SearchInput.js +9 -17
  118. package/es/components/fields/SearchInput/index.js +1 -1
  119. package/es/components/fields/Select/Select.js +21 -4
  120. package/es/components/fields/Select/index.js +1 -1
  121. package/es/components/fields/Slider/Gradation.js +1 -1
  122. package/es/components/fields/Slider/Header.js +1 -1
  123. package/es/components/fields/Slider/RangeSlider.js +1 -1
  124. package/es/components/fields/Slider/Slider.js +1 -1
  125. package/es/components/fields/Slider/SliderBase.js +1 -1
  126. package/es/components/fields/Slider/SliderInput.js +1 -1
  127. package/es/components/fields/Slider/SliderThumb.js +1 -1
  128. package/es/components/fields/Slider/SliderTrack.js +1 -1
  129. package/es/components/fields/Slider/elements.js +1 -1
  130. package/es/components/fields/Slider/index.js +1 -1
  131. package/es/components/fields/Slider/types.js +1 -1
  132. package/es/components/fields/Switch/Switch.js +1 -1
  133. package/es/components/fields/Switch/index.js +1 -1
  134. package/es/components/fields/TextArea/TextArea.js +1 -1
  135. package/es/components/fields/TextArea/index.js +1 -1
  136. package/es/components/fields/TextInput/TextInput.js +1 -1
  137. package/es/components/fields/TextInput/TextInputBase.js +9 -9
  138. package/es/components/fields/TextInput/index.js +1 -1
  139. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  140. package/es/components/fields/TextInputMapper/index.js +1 -1
  141. package/es/components/fields/index.js +1 -1
  142. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  143. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  144. package/es/components/form/FieldWrapper/index.js +1 -1
  145. package/es/components/form/FieldWrapper/types.js +1 -1
  146. package/es/components/form/Form/Field.js +1 -1
  147. package/es/components/form/Form/Form.js +1 -1
  148. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  149. package/es/components/form/Form/ResetButton/index.js +1 -1
  150. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  151. package/es/components/form/Form/SubmitButton/index.js +1 -1
  152. package/es/components/form/Form/SubmitError.js +1 -1
  153. package/es/components/form/Form/index.js +1 -1
  154. package/es/components/form/Form/types.js +1 -1
  155. package/es/components/form/Form/use-field/index.js +1 -1
  156. package/es/components/form/Form/use-field/types.js +1 -1
  157. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  158. package/es/components/form/Form/use-field/use-field.js +1 -1
  159. package/es/components/form/Form/use-form.js +1 -1
  160. package/es/components/form/Form/validation.js +1 -1
  161. package/es/components/form/Label.js +1 -1
  162. package/es/components/form/index.js +1 -1
  163. package/es/components/form/wrapper.js +1 -1
  164. package/es/components/layout/Flex.js +1 -1
  165. package/es/components/layout/Flow.js +1 -1
  166. package/es/components/layout/Grid.js +1 -1
  167. package/es/components/layout/Panel.js +2 -1
  168. package/es/components/layout/Prefix.js +1 -1
  169. package/es/components/layout/ResizablePanel.js +1 -1
  170. package/es/components/layout/Space.js +1 -1
  171. package/es/components/layout/Suffix.js +1 -1
  172. package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
  173. package/es/components/navigation/Link/Link.js +1 -1
  174. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  175. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  176. package/es/components/other/Base64Upload/Base64Upload.js +1 -1
  177. package/es/components/other/Calendar/Calendar.js +1 -1
  178. package/es/components/other/Calendar/CalendarCell.js +1 -1
  179. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  180. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  181. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  182. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  183. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  184. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  185. package/es/components/overlays/AlertDialog/index.js +1 -1
  186. package/es/components/overlays/AlertDialog/types.js +1 -1
  187. package/es/components/overlays/Dialog/Dialog.js +1 -1
  188. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  189. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  190. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  191. package/es/components/overlays/Dialog/context.js +1 -1
  192. package/es/components/overlays/Dialog/index.js +1 -1
  193. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  194. package/es/components/overlays/Modal/Modal.js +1 -1
  195. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  196. package/es/components/overlays/Modal/Overlay.js +1 -1
  197. package/es/components/overlays/Modal/Popover.js +1 -1
  198. package/es/components/overlays/Modal/Tray.js +1 -1
  199. package/es/components/overlays/Modal/Underlay.js +1 -1
  200. package/es/components/overlays/Modal/index.js +1 -1
  201. package/es/components/overlays/Modal/types.js +1 -1
  202. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +2 -2
  203. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  204. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  205. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  206. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +19 -0
  207. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +3 -2
  208. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  209. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  210. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  211. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  212. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  213. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +5 -3
  214. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  215. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  216. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  217. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +18 -2
  218. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  219. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  220. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  221. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  222. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  223. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  224. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  225. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  226. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  227. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  228. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  229. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  230. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  231. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  232. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  233. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  234. package/es/components/overlays/NewNotifications/index.js +1 -1
  235. package/es/components/overlays/NewNotifications/types.js +1 -1
  236. package/es/components/overlays/Notification/Notification.js +1 -1
  237. package/es/components/overlays/OverlayWrapper.js +1 -1
  238. package/es/components/overlays/Toasts/Toast.js +1 -1
  239. package/es/components/overlays/Toasts/index.js +1 -1
  240. package/es/components/overlays/Toasts/types.js +1 -1
  241. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  242. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  243. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  244. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  245. package/es/components/overlays/Tooltip/context.js +1 -1
  246. package/es/components/overlays/Tooltip/index.js +1 -1
  247. package/es/components/portal/Portal.js +1 -1
  248. package/es/components/portal/PortalProvider.js +1 -1
  249. package/es/components/portal/index.js +1 -1
  250. package/es/components/portal/types.js +1 -1
  251. package/es/components/portal/usePortal.js +1 -1
  252. package/es/components/shared/InvalidIcon.js +1 -1
  253. package/es/components/shared/ValidIcon.js +1 -1
  254. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  255. package/es/components/status/LoadingAnimation/index.js +1 -1
  256. package/es/components/status/Spin/Cube.js +1 -1
  257. package/es/components/status/Spin/InternalSpinner.js +1 -1
  258. package/es/components/status/Spin/Spin.js +1 -1
  259. package/es/components/status/Spin/SpinsContainer.js +1 -1
  260. package/es/components/status/Spin/index.js +1 -1
  261. package/es/components/status/Spin/types.js +1 -1
  262. package/es/components/status/index.js +1 -1
  263. package/es/data/item-themes.js +1 -1
  264. package/es/data/themes.js +1 -1
  265. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  266. package/es/icons/AdjustmentsIcon.js +1 -1
  267. package/es/icons/AiIcon.js +1 -1
  268. package/es/icons/AreaChartIcon.js +1 -1
  269. package/es/icons/BackwardIcon.js +1 -1
  270. package/es/icons/BarChartIcon.js +1 -1
  271. package/es/icons/BellFilledIcon.js +1 -1
  272. package/es/icons/BellIcon.js +1 -1
  273. package/es/icons/BooleanIcon.js +1 -1
  274. package/es/icons/CalendarEditIcon.js +1 -1
  275. package/es/icons/CalendarIcon.js +1 -1
  276. package/es/icons/CaretDownIcon.js +1 -1
  277. package/es/icons/CaretUpIcon.js +1 -1
  278. package/es/icons/ChartAreaStackedIcon.js +1 -1
  279. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  280. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  281. package/es/icons/ChartBarGroupedIcon.js +1 -1
  282. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  283. package/es/icons/ChartBarLineIcon.js +1 -1
  284. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  285. package/es/icons/ChartBarStackedIcon.js +1 -1
  286. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  287. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  288. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  289. package/es/icons/ChartBoxPlotIcon.js +1 -1
  290. package/es/icons/ChartBubbleIcon.js +1 -1
  291. package/es/icons/ChartDonut2Icon.js +1 -1
  292. package/es/icons/ChartFunnelIcon.js +1 -1
  293. package/es/icons/ChartKPIIcon.js +1 -1
  294. package/es/icons/ChartPie2Icon.js +1 -1
  295. package/es/icons/ChartScatterIcon.js +1 -1
  296. package/es/icons/CheckCircleFilledIcon.js +1 -1
  297. package/es/icons/CheckCircleIcon.js +1 -1
  298. package/es/icons/CheckIcon.js +1 -1
  299. package/es/icons/CircleFilledIcon.js +1 -1
  300. package/es/icons/ClearIcon.js +1 -1
  301. package/es/icons/CloseCircleFilledIcon.js +1 -1
  302. package/es/icons/CloseCircleIcon.js +1 -1
  303. package/es/icons/CloseIcon.js +1 -1
  304. package/es/icons/CodeIcon.js +1 -1
  305. package/es/icons/CopyIcon.js +1 -1
  306. package/es/icons/CountIcon.js +1 -1
  307. package/es/icons/CubeIcon.js +1 -1
  308. package/es/icons/DangerIcon.js +1 -1
  309. package/es/icons/DashboardIcon.js +1 -1
  310. package/es/icons/DatabaseIcon.js +1 -1
  311. package/es/icons/DecimalDecreaseIcon.js +12 -0
  312. package/es/icons/DecimalIncreaseIcon.js +12 -0
  313. package/es/icons/DirectionIcon.js +1 -1
  314. package/es/icons/DonutIcon.js +1 -1
  315. package/es/icons/DownIcon.js +1 -1
  316. package/es/icons/EditIcon.js +1 -1
  317. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  318. package/es/icons/ExclamationCircleIcon.js +1 -1
  319. package/es/icons/ExclamationIcon.js +1 -1
  320. package/es/icons/EyeIcon.js +1 -1
  321. package/es/icons/EyeInvisibleIcon.js +1 -1
  322. package/es/icons/FilterIcon.js +1 -1
  323. package/es/icons/FolderFilledIcon.js +1 -1
  324. package/es/icons/FolderIcon.js +1 -1
  325. package/es/icons/FolderOpenFilledIcon.js +1 -1
  326. package/es/icons/FolderOpenIcon.js +1 -1
  327. package/es/icons/ForwardIcon.js +1 -1
  328. package/es/icons/HierarchyIcon.js +1 -1
  329. package/es/icons/Icon.js +1 -1
  330. package/es/icons/InfoCircleIcon.js +1 -1
  331. package/es/icons/InfoIcon.js +1 -1
  332. package/es/icons/KeyIcon.js +1 -1
  333. package/es/icons/LeftIcon.js +1 -1
  334. package/es/icons/LineChartIcon.js +1 -1
  335. package/es/icons/LoadingIcon.js +1 -1
  336. package/es/icons/LockFilledIcon.js +1 -1
  337. package/es/icons/LockIcon.js +1 -1
  338. package/es/icons/MoreIcon.js +1 -1
  339. package/es/icons/NotAllowedIcon.js +1 -1
  340. package/es/icons/NumberIcon.js +1 -1
  341. package/es/icons/PauseCircleFilledIcon.js +1 -1
  342. package/es/icons/PauseCircleIcon.js +1 -1
  343. package/es/icons/PauseIcon.js +1 -1
  344. package/es/icons/PieChartIcon.js +1 -1
  345. package/es/icons/PlayCircleIcon.js +1 -1
  346. package/es/icons/PlayIcon.js +1 -1
  347. package/es/icons/PlusIcon.js +1 -1
  348. package/es/icons/ReloadIcon.js +1 -1
  349. package/es/icons/ReportIcon.js +1 -1
  350. package/es/icons/ReturnIcon.js +1 -1
  351. package/es/icons/RightIcon.js +1 -1
  352. package/es/icons/SchemeIcon.js +1 -1
  353. package/es/icons/SearchIcon.js +1 -1
  354. package/es/icons/SettingsIcon.js +1 -1
  355. package/es/icons/ShieldFilledIcon.js +1 -1
  356. package/es/icons/ShieldIcon.js +1 -1
  357. package/es/icons/SlashIcon.js +1 -1
  358. package/es/icons/SparklesIcon.js +1 -1
  359. package/es/icons/SqlIcon.js +1 -1
  360. package/es/icons/StatsIcon.js +1 -1
  361. package/es/icons/StopIcon.js +1 -1
  362. package/es/icons/StringIcon.js +1 -1
  363. package/es/icons/SwitchIcon.js +1 -1
  364. package/es/icons/TableIcon.js +1 -1
  365. package/es/icons/ThumbsDownIcon.js +1 -1
  366. package/es/icons/ThumbsUpIcon.js +1 -1
  367. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  368. package/es/icons/ThunderboltFilledIcon.js +1 -1
  369. package/es/icons/ThunderboltIcon.js +1 -1
  370. package/es/icons/TimeIcon.js +1 -1
  371. package/es/icons/UnlockIcon.js +1 -1
  372. package/es/icons/UpIcon.js +1 -1
  373. package/es/icons/UserGroupIcon.js +1 -1
  374. package/es/icons/UserIcon.js +1 -1
  375. package/es/icons/UserLockIcon.js +1 -1
  376. package/es/icons/ViewIcon.js +1 -1
  377. package/es/icons/WarningFilledIcon.js +1 -1
  378. package/es/icons/WarningIcon.js +1 -1
  379. package/es/icons/add-new-icon.js +1 -1
  380. package/es/icons/index.js +3 -1
  381. package/es/icons/wrap-icon.js +1 -1
  382. package/es/index.js +1 -1
  383. package/es/provider.js +1 -1
  384. package/es/providers/TrackingProvider.js +1 -1
  385. package/es/services/notification.js +1 -1
  386. package/es/shared/form.js +1 -1
  387. package/es/shared/index.js +1 -1
  388. package/es/stories/Form.legacy-stories.js +1 -1
  389. package/es/stories/FormFieldArgs.js +1 -1
  390. package/es/stories/Layout.stories.js +1 -1
  391. package/es/stories/Tasty.stories.js +1 -1
  392. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  393. package/es/stories/components/DialogFormApp.js +1 -1
  394. package/es/stories/components/StyledButton.js +1 -1
  395. package/es/stories/lists/baseProps.js +1 -1
  396. package/es/tasty/debug.js +1 -1
  397. package/es/tasty/index.js +1 -1
  398. package/es/tasty/injector/index.js +1 -1
  399. package/es/tasty/injector/injector.js +1 -1
  400. package/es/tasty/injector/sheet-manager.js +1 -1
  401. package/es/tasty/injector/types.js +1 -1
  402. package/es/tasty/parser/classify.js +1 -1
  403. package/es/tasty/parser/const.js +1 -1
  404. package/es/tasty/parser/lru.js +1 -1
  405. package/es/tasty/parser/parser.js +1 -1
  406. package/es/tasty/parser/tokenizer.js +1 -1
  407. package/es/tasty/parser/types.js +1 -1
  408. package/es/tasty/providers/BreakpointsProvider.js +1 -1
  409. package/es/tasty/styles/align.js +1 -1
  410. package/es/tasty/styles/border.js +1 -1
  411. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  412. package/es/tasty/styles/color.js +1 -1
  413. package/es/tasty/styles/createStyle.js +1 -1
  414. package/es/tasty/styles/dimension.js +1 -1
  415. package/es/tasty/styles/display.js +1 -1
  416. package/es/tasty/styles/fade.js +1 -1
  417. package/es/tasty/styles/fill.js +1 -1
  418. package/es/tasty/styles/flow.js +1 -1
  419. package/es/tasty/styles/font.js +1 -1
  420. package/es/tasty/styles/fontStyle.js +1 -1
  421. package/es/tasty/styles/gap.js +1 -1
  422. package/es/tasty/styles/groupRadius.js +1 -1
  423. package/es/tasty/styles/height.js +1 -1
  424. package/es/tasty/styles/index.js +1 -1
  425. package/es/tasty/styles/inset.js +1 -1
  426. package/es/tasty/styles/justify.js +1 -1
  427. package/es/tasty/styles/list.js +1 -1
  428. package/es/tasty/styles/margin.js +1 -1
  429. package/es/tasty/styles/marginBlock.js +1 -1
  430. package/es/tasty/styles/marginInline.js +1 -1
  431. package/es/tasty/styles/outline.js +1 -1
  432. package/es/tasty/styles/padding.js +1 -1
  433. package/es/tasty/styles/paddingBlock.js +1 -1
  434. package/es/tasty/styles/paddingInline.js +1 -1
  435. package/es/tasty/styles/place.js +1 -1
  436. package/es/tasty/styles/predefined.js +1 -1
  437. package/es/tasty/styles/preset.js +1 -1
  438. package/es/tasty/styles/radius.js +1 -1
  439. package/es/tasty/styles/reset.js +1 -1
  440. package/es/tasty/styles/scrollbar.js +1 -1
  441. package/es/tasty/styles/shadow.js +1 -1
  442. package/es/tasty/styles/styledScrollbar.js +1 -1
  443. package/es/tasty/styles/transition.js +1 -1
  444. package/es/tasty/styles/types.js +1 -1
  445. package/es/tasty/styles/width.js +1 -1
  446. package/es/tasty/tasty.js +1 -1
  447. package/es/tasty/types.js +1 -1
  448. package/es/tasty/utils/cache-wrapper.js +1 -1
  449. package/es/tasty/utils/case-converter.js +1 -1
  450. package/es/tasty/utils/colors.js +1 -1
  451. package/es/tasty/utils/dotize.js +1 -1
  452. package/es/tasty/utils/filterBaseProps.js +1 -1
  453. package/es/tasty/utils/getDisplayName.js +1 -1
  454. package/es/tasty/utils/getModCombinations.js +1 -1
  455. package/es/tasty/utils/isDevEnv.js +1 -1
  456. package/es/tasty/utils/mergeStyles.js +1 -1
  457. package/es/tasty/utils/modAttrs.js +1 -1
  458. package/es/tasty/utils/renderStyles.js +1 -1
  459. package/es/tasty/utils/responsive.js +1 -1
  460. package/es/tasty/utils/string.js +1 -1
  461. package/es/tasty/utils/styles.js +1 -1
  462. package/es/tasty/utils/warnings.js +1 -1
  463. package/es/tokens.js +1 -1
  464. package/es/type-checks.js +1 -1
  465. package/es/utils/ResizeSensor.js +1 -1
  466. package/es/utils/modules.js +1 -1
  467. package/es/utils/promise.js +1 -1
  468. package/es/utils/random.js +1 -1
  469. package/es/utils/range.js +1 -1
  470. package/es/utils/react/Slots.js +1 -1
  471. package/es/utils/react/chain.js +1 -1
  472. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  473. package/es/utils/react/index.js +1 -1
  474. package/es/utils/react/interactions.js +1 -1
  475. package/es/utils/react/isTextOnly.js +1 -1
  476. package/es/utils/react/mapProps.js +1 -1
  477. package/es/utils/react/mergeProps.js +1 -1
  478. package/es/utils/react/nullableValue.js +1 -1
  479. package/es/utils/react/sharedStore.js +1 -1
  480. package/es/utils/react/useCombinedRefs.js +1 -1
  481. package/es/utils/react/useControlledFocusVisible.js +1 -1
  482. package/es/utils/react/useEventBus.js +1 -1
  483. package/es/utils/react/useId.js +1 -1
  484. package/es/utils/react/useIsDarwin.js +1 -1
  485. package/es/utils/react/useKeySymbols.js +1 -1
  486. package/es/utils/react/useLayoutEffect.js +1 -1
  487. package/es/utils/react/useQaProps.js +1 -1
  488. package/es/utils/react/useViewportSize.js +1 -1
  489. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  490. package/es/utils/transitions.js +1 -1
  491. package/es/utils/tree.js +1 -1
  492. package/es/utils/warnings.js +1 -1
  493. package/es/version.js +2 -2
  494. package/package.json +1 -1
  495. package/types/components/Item.d.ts +3 -11
  496. package/types/components/actions/ItemAction/ItemAction.d.ts +8 -0
  497. package/types/components/actions/ItemAction/index.d.ts +2 -0
  498. package/types/components/actions/index.d.ts +1 -0
  499. package/types/components/fields/ComboBox/ComboBox.d.ts +4 -0
  500. package/types/components/fields/FilterPicker/FilterPicker.d.ts +7 -2
  501. package/types/components/fields/SearchInput/SearchInput.d.ts +2 -0
  502. package/types/components/fields/Select/Select.d.ts +4 -0
  503. package/types/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.d.ts +9 -0
  504. package/types/icons/DecimalDecreaseIcon.d.ts +4 -0
  505. package/types/icons/DecimalIncreaseIcon.d.ts +4 -0
  506. package/types/icons/index.d.ts +2 -0
@@ -1,22 +1,23 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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 { Children, cloneElement, forwardRef, useCallback, useEffect, useMemo, useRef, useState, } from 'react';
10
10
  import { FocusScope, useKeyboard } from 'react-aria';
11
- import { Section as BaseSection, Item } from 'react-stately';
11
+ import { Section as BaseSection, Item as ReactAriaItem, } from 'react-stately';
12
+ import { useEvent } from '../../../_internal';
12
13
  import { useWarn } from '../../../_internal/hooks/use-warn';
13
- import { DirectionIcon, LoadingIcon } from '../../../icons';
14
+ import { CloseIcon, DirectionIcon, LoadingIcon } from '../../../icons';
14
15
  import { useProviderProps } from '../../../provider';
15
16
  import { BASE_STYLES, COLOR_STYLES, extractStyles, filterBaseProps, OUTER_STYLES, tasty, } from '../../../tasty';
16
17
  import { generateRandomId } from '../../../utils/random';
17
18
  import { mergeProps } from '../../../utils/react';
18
19
  import { useEventBus } from '../../../utils/react/useEventBus';
19
- import { ItemButton } from '../../actions';
20
+ import { ItemAction, ItemButton } from '../../actions';
20
21
  import { Text } from '../../content/Text';
21
22
  import { useFieldProps, useFormProps, wrapWithField } from '../../form';
22
23
  import { Dialog, DialogTrigger } from '../../overlays/Dialog';
@@ -62,7 +63,7 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
62
63
  return fieldProps;
63
64
  },
64
65
  });
65
- let { qa, label, extra, icon, rightIcon, prefix, suffix, hotkeys, triggerTooltip, triggerDescription, labelStyles, isRequired, necessityIndicator, validationState, isDisabled, isLoading, message, mods: externalMods, description, descriptionPlacement, placeholder, size = 'medium', styles, listBoxStyles, popoverStyles, type = 'outline', theme = 'default', labelSuffix, shouldFocusWrap, children, shouldFlip = true, selectedKey, defaultSelectedKey, selectedKeys, defaultSelectedKeys, disabledKeys, onSelectionChange, selectionMode = 'single', listStateRef, focusOnHover, showSelectAll, selectAllLabel = 'All', items, header, footer, headerStyles, footerStyles, triggerStyles, allowsCustomValue, renderSummary, isCheckable, allValueProps, customValueProps, newCustomValueProps, searchPlaceholder, autoFocus, filter, emptyLabel, searchInputStyles, searchInputRef, listStyles, optionStyles, sectionStyles, headingStyles, listRef, disallowEmptySelection, shouldUseVirtualFocus, onEscape, onOptionClick, ...otherProps } = props;
66
+ let { qa, label, extra, icon, rightIcon, prefix, suffix, hotkeys, triggerTooltip, triggerDescription, labelStyles, isRequired, necessityIndicator, validationState, isDisabled, isLoading, message, mods: externalMods, description, descriptionPlacement, placeholder, size = 'medium', styles, listBoxStyles, popoverStyles, type = 'outline', theme = 'default', labelSuffix, shouldFocusWrap, children, shouldFlip = true, selectedKey, defaultSelectedKey, selectedKeys, defaultSelectedKeys, disabledKeys, onSelectionChange, selectionMode = 'single', listStateRef, focusOnHover, showSelectAll, selectAllLabel = 'All', items, header, footer, headerStyles, footerStyles, triggerStyles, allowsCustomValue, renderSummary, isCheckable, allValueProps, customValueProps, newCustomValueProps, searchPlaceholder, autoFocus, filter, emptyLabel, searchInputStyles, searchInputRef, listStyles, optionStyles, sectionStyles, headingStyles, listRef, disallowEmptySelection, shouldUseVirtualFocus, onEscape, onOptionClick, isClearable, ...otherProps } = props;
66
67
  styles = extractStyles(otherProps, PROP_STYLES, styles);
67
68
  // Generate a unique ID for this FilterPicker instance
68
69
  const filterPickerId = useMemo(() => generateRandomId(), []);
@@ -232,7 +233,7 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
232
233
  if (!child || typeof child !== 'object')
233
234
  return;
234
235
  const element = child;
235
- if (element.type === Item) {
236
+ if (element.type === ReactAriaItem) {
236
237
  const props = element.props;
237
238
  const label = props.textValue ||
238
239
  (typeof props.children === 'string' ? props.children : '') ||
@@ -300,7 +301,7 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
300
301
  if (!child || typeof child !== 'object')
301
302
  return;
302
303
  const element = child;
303
- if (element.type === Item) {
304
+ if (element.type === ReactAriaItem) {
304
305
  const childKey = String(element.key);
305
306
  if (selectedSet.has(normalizeKeyValue(childKey))) {
306
307
  const props = element.props;
@@ -430,7 +431,7 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
430
431
  sectionChildren.forEach((sectionChild) => {
431
432
  if (sectionChild && typeof sectionChild === 'object') {
432
433
  const sectionElement = sectionChild;
433
- if (sectionElement.type === Item ||
434
+ if (sectionElement.type === ReactAriaItem ||
434
435
  sectionElement.type?.displayName === 'Item') {
435
436
  const clonedItem = cloneWithNormalizedKey(sectionElement);
436
437
  if (isItemSelected(sectionElement)) {
@@ -603,7 +604,7 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
603
604
  }
604
605
  return (_jsx(Text, { ellipsis: true, style: { opacity: hasSelection ? 1 : 'var(--disabled-opacity)' }, children: content }));
605
606
  };
606
- const [shouldUpdatePosition, setShouldUpdatePosition] = useState(false);
607
+ const [shouldUpdatePosition, setShouldUpdatePosition] = useState(true);
607
608
  // The trigger is rendered as a function so we can access the dialog state
608
609
  const renderTrigger = (state) => {
609
610
  // Listen for other menus opening and close this one if needed
@@ -645,16 +646,47 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
645
646
  },
646
647
  });
647
648
  useEffect(() => {
648
- // Disable the update of the position while the popover is open (with a delay) to avoid jumping
649
- setShouldUpdatePosition(!state.isOpen);
649
+ // Allow initial positioning & flipping when opening, then lock placement after transition
650
+ // Popover transition is ~120ms, give it a bit more time to finalize placement
651
+ if (state.isOpen) {
652
+ setShouldUpdatePosition(true);
653
+ const id = window.setTimeout(() => setShouldUpdatePosition(false), 160);
654
+ return () => window.clearTimeout(id);
655
+ }
656
+ else {
657
+ setShouldUpdatePosition(true);
658
+ }
650
659
  }, [state.isOpen]);
660
+ // Clear button logic
661
+ let showClearButton = isClearable && hasSelection && !isDisabled && !props.isReadOnly;
662
+ // Clear function
663
+ let clearValue = useEvent(() => {
664
+ if (selectionMode === 'multiple') {
665
+ if (!isControlledMultiple) {
666
+ setInternalSelectedKeys([]);
667
+ }
668
+ onSelectionChange?.([]);
669
+ }
670
+ else {
671
+ if (!isControlledSingle) {
672
+ setInternalSelectedKey(null);
673
+ }
674
+ onSelectionChange?.(null);
675
+ }
676
+ if (state.isOpen) {
677
+ state.close();
678
+ }
679
+ triggerRef?.current?.focus?.();
680
+ props.onClear?.();
681
+ return false;
682
+ });
651
683
  return (_jsx(ItemButton, { ref: triggerRef, "data-popover-trigger": true, type: type, theme: validationState === 'invalid' ? 'danger' : theme, size: size, isDisabled: isDisabled || isLoading, mods: {
652
684
  placeholder: !hasSelection,
653
685
  selected: hasSelection,
654
686
  ...externalMods,
655
- }, icon: icon, rightIcon: isLoading ? (_jsx(LoadingIcon, {})) : rightIcon !== undefined ? (rightIcon) : (_jsx(DirectionIcon, { to: state.isOpen ? 'top' : 'bottom' })), prefix: prefix, suffix: suffix, hotkeys: hotkeys, tooltip: triggerTooltip, description: triggerDescription, descriptionPlacement: descriptionPlacement, styles: styles, ...keyboardProps, "aria-label": `${props['aria-label'] ?? props.label ?? ''}`, children: renderTriggerContent() }));
687
+ }, icon: icon, rightIcon: isLoading ? (_jsx(LoadingIcon, {})) : rightIcon !== undefined ? (rightIcon) : showClearButton ? (_jsx(ItemAction, { icon: _jsx(CloseIcon, {}), size: size, theme: validationState === 'invalid' ? 'danger' : undefined, qa: "FilterPickerClearButton", mods: { pressed: false }, onPress: clearValue })) : (_jsx(DirectionIcon, { to: state.isOpen ? 'top' : 'bottom' })), prefix: prefix, suffix: suffix, hotkeys: hotkeys, tooltip: triggerTooltip, description: triggerDescription, descriptionPlacement: descriptionPlacement, styles: styles, ...keyboardProps, "aria-label": `${props['aria-label'] ?? props.label ?? ''}`, children: renderTriggerContent() }));
656
688
  };
657
- const filterPickerField = (_jsx(FilterPickerWrapper, { qa: props.qa || 'FilterPicker', styles: styles, ...filterBaseProps(otherProps, { eventProps: true }), children: _jsxs(DialogTrigger, { type: "popover", placement: "bottom start", styles: triggerStyles, shouldUpdatePosition: shouldUpdatePosition, shouldFlip: shouldFlip, isDismissable: true, shouldCloseOnInteractOutside: (el) => {
689
+ const filterPickerField = (_jsx(FilterPickerWrapper, { qa: props.qa || 'FilterPicker', styles: styles, ...filterBaseProps(otherProps, { eventProps: true }), children: _jsxs(DialogTrigger, { type: "popover", placement: "bottom start", styles: triggerStyles, shouldUpdatePosition: shouldUpdatePosition, shouldFlip: shouldFlip && shouldUpdatePosition, isDismissable: true, shouldCloseOnInteractOutside: (el) => {
658
690
  const menuTriggerEl = el.closest('[data-popover-trigger]');
659
691
  // If no menu trigger was clicked, allow closing
660
692
  if (!menuTriggerEl)
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -11,33 +11,25 @@ import { useSearchField } from 'react-aria';
11
11
  import { useSearchFieldState } from 'react-stately';
12
12
  import { CloseIcon, SearchIcon } from '../../../icons';
13
13
  import { useProviderProps } from '../../../provider';
14
- import { tasty } from '../../../tasty';
15
14
  import { ariaToCubeButtonProps } from '../../../utils/react/mapProps';
16
15
  import { castNullableStringValue, } from '../../../utils/react/nullableValue';
17
- import { Button } from '../../actions';
16
+ import { ItemAction } from '../../actions';
18
17
  import { TextInputBase } from '../TextInput';
19
18
  export { useSearchFieldState, useSearchField };
20
- const ClearButton = tasty(Button, {
21
- icon: _jsx(CloseIcon, {}),
22
- styles: {
23
- radius: 'right (1r - 1bw)',
24
- width: {
25
- '': '3x',
26
- '[data-size="large"]': '4x',
27
- },
28
- height: 'auto',
29
- placeSelf: 'stretch',
30
- },
31
- });
32
19
  export const SearchInput = forwardRef(function SearchInput(props, ref) {
33
20
  props = castNullableStringValue(props);
34
21
  props = useProviderProps(props);
35
- let { isClearable, validationState } = props;
22
+ let { isClearable, validationState, onClear } = props;
36
23
  let inputRef = useRef(null);
37
24
  let state = useSearchFieldState(props);
38
25
  let { inputProps, clearButtonProps } = useSearchField(props, state, inputRef);
39
26
  let showClearButton = isClearable && state.value !== '' && !props.isReadOnly;
40
- return (_jsx(TextInputBase, { ref: ref, inputProps: inputProps, inputRef: inputRef, type: "search", icon: _jsx(SearchIcon, {}), suffixPosition: "after", ...props, suffix: props.suffix || showClearButton ? (_jsxs(_Fragment, { children: [props.suffix, showClearButton && (_jsx(ClearButton, { size: props.size, type: validationState === 'invalid' ? 'clear' : 'neutral', theme: validationState === 'invalid' ? 'danger' : undefined, ...ariaToCubeButtonProps(clearButtonProps) }))] })) : undefined }));
27
+ return (_jsx(TextInputBase, { ref: ref, inputProps: inputProps, inputRef: inputRef, type: "search", icon: _jsx(SearchIcon, {}), suffixPosition: "after", ...props, suffix: props.suffix || showClearButton ? (_jsxs(_Fragment, { children: [props.suffix, showClearButton && (_jsx(ItemAction, { icon: _jsx(CloseIcon, {}), size: props.size, type: validationState === 'invalid' ? 'clear' : 'neutral', theme: validationState === 'invalid' ? 'danger' : undefined, ...ariaToCubeButtonProps(clearButtonProps), onPress: (e) => {
28
+ // Call the original clear functionality
29
+ clearButtonProps.onPress?.();
30
+ // Call the onClear callback
31
+ onClear?.();
32
+ } }))] })) : undefined }));
41
33
  });
42
34
 
43
35
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -10,7 +10,8 @@ import { cloneElement, 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, useSelectState } from 'react-stately';
12
12
  import styled from 'styled-components';
13
- import { DirectionIcon, LoadingIcon } from '../../../icons/index';
13
+ import { useEvent } from '../../../_internal';
14
+ import { CloseIcon, DirectionIcon, LoadingIcon } from '../../../icons/index';
14
15
  import { useProviderProps } from '../../../provider';
15
16
  import { BASE_STYLES, COLOR_STYLES, extractStyles, OUTER_STYLES, tasty, } from '../../../tasty/index';
16
17
  import { generateRandomId } from '../../../utils/random';
@@ -18,6 +19,7 @@ import { forwardRefWithGenerics, mergeProps, useCombinedRefs, } from '../../../u
18
19
  import { useFocus } from '../../../utils/react/interactions';
19
20
  import { useEventBus } from '../../../utils/react/useEventBus';
20
21
  import { getOverlayTransitionCSS } from '../../../utils/transitions';
22
+ import { ItemAction } from '../../actions';
21
23
  import { StyledDivider as ListDivider, StyledSectionHeading as ListSectionHeading, StyledSection as ListSectionWrapper, } from '../../actions/Menu/styled';
22
24
  import { ItemBase } from '../../content/ItemBase';
23
25
  import { useFieldProps, useFormProps, wrapWithField } from '../../form';
@@ -116,7 +118,7 @@ function Select(props, ref) {
116
118
  onSelectionChange: onChange,
117
119
  }),
118
120
  });
119
- let { qa, label, extra, icon, rightIcon, labelStyles, isRequired, necessityIndicator, validationState, prefix, isDisabled, autoFocus, inputProps, triggerRef, popoverRef, listBoxRef, isLoading, loadingIndicator, overlayOffset = 8, inputStyles, triggerStyles, optionStyles, wrapperStyles, listBoxStyles, overlayStyles, suffix, message, description, descriptionPlacement, hotkeys, direction = 'bottom', shouldFlip = true, placeholder, tooltip, size = 'medium', styles, type = 'outline', theme = 'default', labelSuffix, suffixPosition = 'before', ...otherProps } = props;
121
+ let { qa, label, extra, icon, rightIcon, labelStyles, isRequired, necessityIndicator, validationState, prefix, isDisabled, autoFocus, inputProps, triggerRef, popoverRef, listBoxRef, isLoading, loadingIndicator, overlayOffset = 8, inputStyles, triggerStyles, optionStyles, wrapperStyles, listBoxStyles, overlayStyles, suffix, message, description, descriptionPlacement, hotkeys, direction = 'bottom', shouldFlip = true, placeholder, tooltip, size = 'medium', styles, type = 'outline', theme = 'default', labelSuffix, suffixPosition = 'before', isClearable, ...otherProps } = props;
120
122
  let state = useSelectState(props);
121
123
  // Generate a unique ID for this select instance
122
124
  const selectId = useMemo(() => generateRandomId(), []);
@@ -161,6 +163,21 @@ function Select(props, ref) {
161
163
  let isInvalid = validationState === 'invalid';
162
164
  let validationIcon = isInvalid ? InvalidIcon : ValidIcon;
163
165
  let validation = cloneElement(validationIcon);
166
+ // Clear button logic
167
+ let hasSelection = state.selectedItem != null;
168
+ let showClearButton = isClearable && hasSelection && !isDisabled && !props.isReadOnly;
169
+ // Clear function
170
+ let clearValue = useEvent(() => {
171
+ props.onSelectionChange?.(null);
172
+ state.setSelectedKey(null);
173
+ // Close the popup if it's open
174
+ if (state.isOpen) {
175
+ state.close();
176
+ }
177
+ // Return focus to the trigger for better UX
178
+ triggerRef.current?.focus?.();
179
+ props.onClear?.();
180
+ });
164
181
  let triggerWidth = triggerRef?.current?.offsetWidth;
165
182
  const showPlaceholder = !!placeholder?.trim() && !state.selectedItem;
166
183
  const modifiers = useMemo(() => ({
@@ -192,7 +209,7 @@ function Select(props, ref) {
192
209
  // Ensure this button never submits a surrounding form in tests or runtime
193
210
  htmlType: "button",
194
211
  // Preserve visual variant via data attribute instead of conflicting with HTML attribute
195
- type: type, mods: modifiers, prefix: prefix, suffix: suffix, icon: icon, rightIcon: rightIcon !== undefined ? (rightIcon) : isLoading ? (_jsx(LoadingIcon, {})) : (_jsx(DirectionIcon, { to: state.isOpen ? 'up' : 'down' })), description: description, descriptionPlacement: descriptionPlacement, hotkeys: hotkeys, tooltip: tooltip, labelProps: valueProps, children: state.selectedItem
212
+ type: type, mods: modifiers, prefix: prefix, suffix: suffix, icon: icon, rightIcon: rightIcon !== undefined ? (rightIcon) : showClearButton ? (_jsx(ItemAction, { icon: _jsx(CloseIcon, {}), size: size, theme: validationState === 'invalid' ? 'danger' : undefined, qa: "SelectClearButton", mods: { pressed: false }, onPress: clearValue })) : isLoading ? (_jsx(LoadingIcon, {})) : (_jsx(DirectionIcon, { to: state.isOpen ? 'up' : 'down' })), description: description, descriptionPlacement: descriptionPlacement, hotkeys: hotkeys, tooltip: tooltip, labelProps: valueProps, children: state.selectedItem
196
213
  ? state.selectedItem.rendered
197
214
  : placeholder || _jsx(_Fragment, { children: "\u00A0" }) }), _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 }) })] }));
198
215
  return wrapWithField(selectField, ref, mergeProps({
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -73,14 +73,14 @@ export const INPUT_WRAPPER_STYLES = {
73
73
  transition: 'theme',
74
74
  backgroundClip: 'content-box',
75
75
  height: {
76
- '': '$size-md $size-md',
77
- '[data-size="small"]': '$size-sm $size-sm',
78
- '[data-size="medium"]': '$size-md $size-md',
79
- '[data-size="large"]': '$size-lg $size-lg',
80
- multiline: 'min $size-md',
81
- '[data-size="small"] & multiline': 'min $size-sm',
82
- '[data-size="medium"] & multiline': 'min $size-md',
83
- '[data-size="large"] & multiline': 'min $size-lg',
76
+ '': '$size $size',
77
+ multiline: 'min $size',
78
+ },
79
+ $size: {
80
+ '': '$size-md',
81
+ '[data-size="small"]': '$size-sm',
82
+ '[data-size="medium"]': '$size-md',
83
+ '[data-size="large"]': '$size-lg',
84
84
  },
85
85
  Prefix: ADD_STYLES,
86
86
  Suffix: ADD_STYLES,
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
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.77.2
4
+ * @cube-dev/ui-kit v0.77.4
5
5
  * Released under the MIT license.
6
6
  */
7
7