@cube-dev/ui-kit 0.127.2 → 0.128.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 (414) hide show
  1. package/dist/CHANGELOG.md +23 -0
  2. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  3. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/dist/_internal/hooks/use-event.js +1 -1
  6. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  7. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  8. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  9. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  10. package/dist/_internal/hooks/use-warn.js +1 -1
  11. package/dist/components/Block.js +1 -1
  12. package/dist/components/CollectionItem.js +1 -1
  13. package/dist/components/GlobalStyles.js +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Button/Button.js +1 -1
  20. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  21. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  22. package/dist/components/actions/ButtonSplit/context.js +1 -1
  23. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  24. package/dist/components/actions/CommandMenu/styled.js +1 -1
  25. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  26. package/dist/components/actions/ItemActionContext.js +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuSection.js +1 -1
  32. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  35. package/dist/components/actions/Menu/context.js +1 -1
  36. package/dist/components/actions/Menu/styled.js +1 -1
  37. package/dist/components/actions/index.js +1 -1
  38. package/dist/components/actions/use-action.js +1 -1
  39. package/dist/components/actions/use-anchored-menu.js +1 -1
  40. package/dist/components/actions/use-context-menu.js +1 -1
  41. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  42. package/dist/components/content/Alert/Alert.js +1 -1
  43. package/dist/components/content/Alert/use-alert.js +1 -1
  44. package/dist/components/content/Avatar/Avatar.js +1 -1
  45. package/dist/components/content/Badge/Badge.js +1 -1
  46. package/dist/components/content/Card/Card.js +1 -1
  47. package/dist/components/content/Content.js +1 -1
  48. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  49. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  50. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  51. package/dist/components/content/Divider.js +1 -1
  52. package/dist/components/content/Footer.js +1 -1
  53. package/dist/components/content/Header.js +1 -1
  54. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  55. package/dist/components/content/Item/Item.js +1 -1
  56. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  57. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  58. package/dist/components/content/Layout/GridLayout.js +1 -1
  59. package/dist/components/content/Layout/Layout.js +1 -1
  60. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  61. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  62. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  63. package/dist/components/content/Layout/LayoutContent.js +1 -1
  64. package/dist/components/content/Layout/LayoutContext.js +1 -1
  65. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  66. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  67. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  68. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  69. package/dist/components/content/Layout/LayoutPane.js +1 -1
  70. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  71. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  72. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  73. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  74. package/dist/components/content/Layout/index.js +1 -1
  75. package/dist/components/content/Layout/utils.js +1 -1
  76. package/dist/components/content/Paragraph.js +1 -1
  77. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  78. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  79. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  80. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  81. package/dist/components/content/Result/Result.js +1 -1
  82. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  83. package/dist/components/content/Tag/Tag.js +1 -1
  84. package/dist/components/content/Text.js +1 -1
  85. package/dist/components/content/TextItem/TextItem.js +1 -1
  86. package/dist/components/content/Title.js +1 -1
  87. package/dist/components/content/highlightText.js +1 -1
  88. package/dist/components/content/use-auto-tooltip.js +1 -1
  89. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  90. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  91. package/dist/components/fields/Checkbox/context.js +1 -1
  92. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  93. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  94. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  95. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  96. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  97. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  98. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  99. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  100. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  101. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  102. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  103. package/dist/components/fields/DatePicker/intl.js +1 -1
  104. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  105. package/dist/components/fields/DatePicker/props.js +1 -1
  106. package/dist/components/fields/DatePicker/utils.js +1 -1
  107. package/dist/components/fields/FileInput/FileInput.js +1 -1
  108. package/dist/components/fields/FilterListBox/FilterListBox.d.ts +3 -1
  109. package/dist/components/fields/FilterListBox/FilterListBox.js +115 -51
  110. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  111. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +6 -0
  112. package/dist/components/fields/FilterPicker/FilterPicker.js +3 -2
  113. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  114. package/dist/components/fields/Input/Input.js +1 -1
  115. package/dist/components/fields/ListBox/ListBox.js +1 -1
  116. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  117. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  118. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  119. package/dist/components/fields/Picker/Picker.js +1 -1
  120. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  121. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  122. package/dist/components/fields/RadioGroup/context.js +1 -1
  123. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  124. package/dist/components/fields/Select/Select.js +1 -1
  125. package/dist/components/fields/Slider/Gradation.js +1 -1
  126. package/dist/components/fields/Slider/HueSlider.js +1 -1
  127. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  128. package/dist/components/fields/Slider/Slider.js +1 -1
  129. package/dist/components/fields/Slider/SliderBase.js +1 -1
  130. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  131. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  132. package/dist/components/fields/Slider/elements.js +1 -1
  133. package/dist/components/fields/Slider/index.js +1 -1
  134. package/dist/components/fields/Switch/Switch.js +1 -1
  135. package/dist/components/fields/TextArea/TextArea.js +1 -1
  136. package/dist/components/fields/TextInput/TextInput.js +1 -1
  137. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  138. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  139. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  140. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  141. package/dist/components/form/Form/Field.js +1 -1
  142. package/dist/components/form/Form/Form.js +1 -1
  143. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  144. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  145. package/dist/components/form/Form/SubmitError.js +1 -1
  146. package/dist/components/form/Form/index.js +1 -1
  147. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  148. package/dist/components/form/Form/use-field/use-field.js +1 -1
  149. package/dist/components/form/Form/use-form.js +1 -1
  150. package/dist/components/form/Form/validation.js +1 -1
  151. package/dist/components/form/Label.js +1 -1
  152. package/dist/components/form/wrapper.js +1 -1
  153. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  154. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  155. package/dist/components/layout/Flex.js +1 -1
  156. package/dist/components/layout/Flow.js +1 -1
  157. package/dist/components/layout/Grid.js +1 -1
  158. package/dist/components/layout/Panel.js +1 -1
  159. package/dist/components/layout/Prefix.js +1 -1
  160. package/dist/components/layout/ResizablePanel.js +1 -1
  161. package/dist/components/layout/Space.js +1 -1
  162. package/dist/components/layout/Suffix.js +1 -1
  163. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  164. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  165. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  166. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  167. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  168. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  169. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  170. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  171. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  172. package/dist/components/navigation/Tabs/styled.js +1 -1
  173. package/dist/components/navigation/Tabs/types.js +1 -1
  174. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  175. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  176. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  177. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  178. package/dist/components/other/Calendar/Calendar.js +1 -1
  179. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  180. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  181. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  182. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  183. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  184. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  185. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  186. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  187. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  188. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  189. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  190. package/dist/components/overlays/Dialog/context.js +1 -1
  191. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  192. package/dist/components/overlays/Modal/Modal.js +1 -1
  193. package/dist/components/overlays/Modal/OpenTransition.js +1 -1
  194. package/dist/components/overlays/Modal/Overlay.js +1 -1
  195. package/dist/components/overlays/Modal/Popover.js +1 -1
  196. package/dist/components/overlays/Modal/Tray.js +1 -1
  197. package/dist/components/overlays/Modal/Underlay.js +1 -1
  198. package/dist/components/overlays/Notifications/Notification.js +1 -1
  199. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  200. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  201. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  202. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  203. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  204. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  205. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  206. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  207. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  208. package/dist/components/overlays/Notifications/index.js +1 -1
  209. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  210. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  211. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  212. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  213. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  214. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  215. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  216. package/dist/components/overlays/Toast/index.js +1 -1
  217. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  218. package/dist/components/overlays/Toast/useToast.js +1 -1
  219. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  220. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  221. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  222. package/dist/components/overlays/Tooltip/context.js +1 -1
  223. package/dist/components/portal/Portal.js +1 -1
  224. package/dist/components/portal/PortalProvider.js +1 -1
  225. package/dist/components/portal/usePortal.js +1 -1
  226. package/dist/components/shared/InvalidIcon.js +1 -1
  227. package/dist/components/shared/ValidIcon.js +1 -1
  228. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  229. package/dist/components/status/Spin/Cube.js +1 -1
  230. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  231. package/dist/components/status/Spin/Spin.js +1 -1
  232. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  233. package/dist/data/item-themes.js +1 -1
  234. package/dist/data/themes.js +1 -1
  235. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  236. package/dist/icons/AdjustmentsIcon.js +1 -1
  237. package/dist/icons/AiIcon.js +1 -1
  238. package/dist/icons/AreaChartIcon.js +1 -1
  239. package/dist/icons/BackwardIcon.js +1 -1
  240. package/dist/icons/BarChartIcon.js +1 -1
  241. package/dist/icons/BellFilledIcon.js +1 -1
  242. package/dist/icons/BellIcon.js +1 -1
  243. package/dist/icons/BooleanIcon.js +1 -1
  244. package/dist/icons/CalendarEditIcon.js +1 -1
  245. package/dist/icons/CalendarIcon.js +1 -1
  246. package/dist/icons/CaretDownIcon.js +1 -1
  247. package/dist/icons/CaretUpIcon.js +1 -1
  248. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  249. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  250. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  251. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  252. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  253. package/dist/icons/ChartBarLineIcon.js +1 -1
  254. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  255. package/dist/icons/ChartBarStackedIcon.js +1 -1
  256. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  257. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  258. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  259. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  260. package/dist/icons/ChartBubbleIcon.js +1 -1
  261. package/dist/icons/ChartDonut2Icon.js +1 -1
  262. package/dist/icons/ChartFunnelIcon.js +1 -1
  263. package/dist/icons/ChartHeatmapIcon.js +1 -1
  264. package/dist/icons/ChartKPIIcon.js +1 -1
  265. package/dist/icons/ChartPie2Icon.js +1 -1
  266. package/dist/icons/ChartScatterIcon.js +1 -1
  267. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  268. package/dist/icons/CheckCircleIcon.js +1 -1
  269. package/dist/icons/CheckIcon.js +1 -1
  270. package/dist/icons/CircleFilledIcon.js +1 -1
  271. package/dist/icons/ClearIcon.js +1 -1
  272. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  273. package/dist/icons/CloseCircleIcon.js +1 -1
  274. package/dist/icons/CloseIcon.js +1 -1
  275. package/dist/icons/CodeIcon.js +1 -1
  276. package/dist/icons/ColumnTotalIcon.js +1 -1
  277. package/dist/icons/CopyIcon.js +1 -1
  278. package/dist/icons/CountIcon.js +1 -1
  279. package/dist/icons/CubeIcon.js +1 -1
  280. package/dist/icons/CubePauseIcon.js +1 -1
  281. package/dist/icons/CubePlayIcon.js +1 -1
  282. package/dist/icons/CurrencyDollarIcon.js +1 -1
  283. package/dist/icons/DangerIcon.js +1 -1
  284. package/dist/icons/DashboardIcon.js +1 -1
  285. package/dist/icons/DatabaseIcon.js +1 -1
  286. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  287. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  288. package/dist/icons/DirectionIcon.js +1 -1
  289. package/dist/icons/DonutIcon.js +1 -1
  290. package/dist/icons/DownIcon.js +1 -1
  291. package/dist/icons/EditIcon.js +1 -1
  292. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  293. package/dist/icons/ExclamationCircleIcon.js +1 -1
  294. package/dist/icons/ExclamationIcon.js +1 -1
  295. package/dist/icons/EyeIcon.js +1 -1
  296. package/dist/icons/EyeInvisibleIcon.js +1 -1
  297. package/dist/icons/FilterIcon.js +1 -1
  298. package/dist/icons/FolderFilledIcon.js +1 -1
  299. package/dist/icons/FolderIcon.js +1 -1
  300. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  301. package/dist/icons/FolderOpenIcon.js +1 -1
  302. package/dist/icons/ForwardIcon.js +1 -1
  303. package/dist/icons/HierarchyIcon.js +1 -1
  304. package/dist/icons/HierarchyOpenIcon.js +1 -1
  305. package/dist/icons/Icon.js +1 -1
  306. package/dist/icons/InfoCircleIcon.js +1 -1
  307. package/dist/icons/InfoIcon.js +1 -1
  308. package/dist/icons/KeyIcon.js +1 -1
  309. package/dist/icons/LeftIcon.js +1 -1
  310. package/dist/icons/LineChartIcon.js +1 -1
  311. package/dist/icons/LoadingIcon.js +1 -1
  312. package/dist/icons/LockFilledIcon.js +1 -1
  313. package/dist/icons/LockIcon.js +1 -1
  314. package/dist/icons/MoreIcon.js +1 -1
  315. package/dist/icons/NotAllowedIcon.js +1 -1
  316. package/dist/icons/Number123Icon.js +1 -1
  317. package/dist/icons/NumberIcon.js +1 -1
  318. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  319. package/dist/icons/PauseCircleIcon.js +1 -1
  320. package/dist/icons/PauseIcon.js +1 -1
  321. package/dist/icons/PercentageIcon.js +1 -1
  322. package/dist/icons/PieChartIcon.js +1 -1
  323. package/dist/icons/PlayCircleIcon.js +1 -1
  324. package/dist/icons/PlayIcon.js +1 -1
  325. package/dist/icons/PlusIcon.js +1 -1
  326. package/dist/icons/ProgressBarIcon.js +1 -1
  327. package/dist/icons/ReloadIcon.js +1 -1
  328. package/dist/icons/ReportIcon.js +1 -1
  329. package/dist/icons/ReturnIcon.js +1 -1
  330. package/dist/icons/RightIcon.js +1 -1
  331. package/dist/icons/RowTotalsIcon.js +1 -1
  332. package/dist/icons/SchemeIcon.js +1 -1
  333. package/dist/icons/SearchIcon.js +1 -1
  334. package/dist/icons/SemanticQueryIcon.js +1 -1
  335. package/dist/icons/SettingsIcon.js +1 -1
  336. package/dist/icons/ShieldFilledIcon.js +1 -1
  337. package/dist/icons/ShieldIcon.js +1 -1
  338. package/dist/icons/SlashIcon.js +1 -1
  339. package/dist/icons/SparklesIcon.js +1 -1
  340. package/dist/icons/SqlIcon.js +1 -1
  341. package/dist/icons/StatsIcon.js +1 -1
  342. package/dist/icons/StopIcon.js +1 -1
  343. package/dist/icons/StringIcon.js +1 -1
  344. package/dist/icons/SubtotalsIcon.js +1 -1
  345. package/dist/icons/SwitchIcon.js +1 -1
  346. package/dist/icons/TableIcon.js +1 -1
  347. package/dist/icons/ThumbsDownIcon.js +1 -1
  348. package/dist/icons/ThumbsUpIcon.js +1 -1
  349. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  350. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  351. package/dist/icons/ThunderboltIcon.js +1 -1
  352. package/dist/icons/TimeIcon.js +1 -1
  353. package/dist/icons/TrashIcon.js +1 -1
  354. package/dist/icons/UnlockIcon.js +1 -1
  355. package/dist/icons/UpIcon.js +1 -1
  356. package/dist/icons/UserGroupIcon.js +1 -1
  357. package/dist/icons/UserIcon.js +1 -1
  358. package/dist/icons/UserLockIcon.js +1 -1
  359. package/dist/icons/ViewIcon.js +1 -1
  360. package/dist/icons/WarningFilledIcon.js +1 -1
  361. package/dist/icons/WarningIcon.js +1 -1
  362. package/dist/icons/wrap-icon.js +1 -1
  363. package/dist/index.js +1 -1
  364. package/dist/provider.js +1 -1
  365. package/dist/providers/TrackingProvider.js +1 -1
  366. package/dist/providers/navigationAdapter.default.js +1 -1
  367. package/dist/tokens/base.js +1 -1
  368. package/dist/tokens/colors.js +1 -1
  369. package/dist/tokens/index.js +1 -1
  370. package/dist/tokens/layout.js +1 -1
  371. package/dist/tokens/shadows.js +1 -1
  372. package/dist/tokens/sizes.js +1 -1
  373. package/dist/tokens/spacing.js +1 -1
  374. package/dist/tokens/typography.js +1 -1
  375. package/dist/utils/ResizeSensor.js +1 -1
  376. package/dist/utils/is-dev-env.js +1 -1
  377. package/dist/utils/modules.js +1 -1
  378. package/dist/utils/promise.js +1 -1
  379. package/dist/utils/raf.js +1 -1
  380. package/dist/utils/random.js +1 -1
  381. package/dist/utils/range.js +1 -1
  382. package/dist/utils/react/RenderCache.js +1 -1
  383. package/dist/utils/react/Slots.js +1 -1
  384. package/dist/utils/react/chain.js +1 -1
  385. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  386. package/dist/utils/react/index.js +1 -1
  387. package/dist/utils/react/interactions.js +1 -1
  388. package/dist/utils/react/isTextOnly.js +1 -1
  389. package/dist/utils/react/mapProps.js +1 -1
  390. package/dist/utils/react/mergeProps.js +1 -1
  391. package/dist/utils/react/nullableValue.js +1 -1
  392. package/dist/utils/react/resolveIcon.js +1 -1
  393. package/dist/utils/react/sharedStore.js +1 -1
  394. package/dist/utils/react/useCombinedRefs.js +1 -1
  395. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  396. package/dist/utils/react/useEventBus.js +1 -1
  397. package/dist/utils/react/useId.js +1 -1
  398. package/dist/utils/react/useIsDarwin.js +1 -1
  399. package/dist/utils/react/useKeySymbols.js +1 -1
  400. package/dist/utils/react/useLayoutEffect.js +1 -1
  401. package/dist/utils/react/useLocalStorage.js +1 -1
  402. package/dist/utils/react/useMergeStyles.js +1 -1
  403. package/dist/utils/react/useQaProps.js +1 -1
  404. package/dist/utils/react/useViewportSize.js +1 -1
  405. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  406. package/dist/utils/selection.js +1 -1
  407. package/dist/utils/styles.js +1 -1
  408. package/dist/utils/tree.js +1 -1
  409. package/dist/utils/warnings.js +1 -1
  410. package/dist/version.js +2 -2
  411. package/docs/components/fields/FilterListBox.md +27 -17
  412. package/docs/components/fields/FilterPicker.md +58 -59
  413. package/docs/tasty/injector.md +2 -2
  414. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { CONTAINER_STYLES, filterBaseProps, keyframes, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { RendererPrism, ensureYamlSqlExtensions } from "./prismSetup.js";
3
3
  import { CONTAINER_STYLES, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { Prism as RendererPrism } from "prism-react-renderer";
3
3
 
4
4
  //#region src/components/content/PrismCode/prismSetup.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { _PrismCode } from "../PrismCode/PrismCode.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import { diffLines } from "diff";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { wrapNodeIfPlain } from "../../../utils/react/wrapNodeIfPlain.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { Space } from "../../layout/Space.js";
3
3
  import { Grid } from "../../layout/Grid.js";
4
4
  import { Flow } from "../../layout/Flow.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { _Item } from "../Item/Item.js";
3
3
  import { CloseIcon } from "../../../icons/CloseIcon.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { BASE_STYLES, COLOR_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { TEXT_PROP_MAP, _Text } from "../Text.js";
4
4
  import { highlightText } from "../highlightText.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { TEXT_PROP_MAP } from "./Text.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { _Text } from "./Text.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { TooltipProvider } from "../overlays/Tooltip/TooltipProvider.js";
3
3
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { _Text } from "../../content/Text.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useProviderProps } from "../../../provider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { createContext } from "react";
3
3
 
4
4
  //#region src/components/fields/Checkbox/context.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
4
4
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useProviderProps } from "../../../provider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { InvalidIcon } from "../../shared/InvalidIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useProviderProps } from "../../../provider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
3
3
  import { CalendarIcon } from "../../../icons/CalendarIcon.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { Space } from "../../layout/Space.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { DatePickerSegment } from "./DatePickerSegment.js";
4
4
  import { formatSegments } from "./utils.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
  import { useRef } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useProviderProps } from "../../../provider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useProviderProps } from "../../../provider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useProviderProps } from "../../../provider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  //#region src/components/fields/DatePicker/intl.ts
3
3
  const dateMessages = {
4
4
  time: "Time",
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { parseAbsolute } from "@internationalized/date";
3
3
 
4
4
  //#region src/components/fields/DatePicker/parseDate.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  //#region src/components/fields/DatePicker/props.ts
3
3
  const DEFAULT_DATE_PROPS = {
4
4
  granularity: "day",
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { useImperativeHandle, useRef } from "react";
3
3
  import { createDOMRef } from "@react-spectrum/utils";
4
4
  import { createFocusManager } from "@react-aria/focus";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useProviderProps } from "../../../provider.js";
@@ -20,12 +20,14 @@ interface CubeFilterListBoxProps<T> extends Omit<CubeListBoxProps<T>, 'filter'>,
20
20
  * Pass `false` to disable internal filtering completely (useful for external filtering).
21
21
  */
22
22
  filter?: FilterFn | false;
23
- /** Custom label to display when no results are found after filtering */
23
+ /** Label shown when the list is empty. When provided, overrides both the "No results found" and "No items" defaults. */
24
24
  emptyLabel?: ReactNode;
25
25
  /** Custom styles for the search input */
26
26
  searchInputStyles?: Styles;
27
27
  /** Whether the FilterListBox is in loading state (shows loading icon in search input) */
28
28
  isLoading?: boolean;
29
+ /** Whether items are currently loading. Shows a loading icon in the search input suffix. */
30
+ isLoadingItems?: boolean;
29
31
  /** Ref for accessing the search input element */
30
32
  searchInputRef?: RefObject<HTMLInputElement | null>;
31
33
  /** Whether to allow entering custom values that are not present in the predefined options */
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.128.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -66,7 +66,9 @@ const SearchInputElement = tasty({
66
66
  fill: "#clear",
67
67
  padding: {
68
68
  "": ".5x 1.5x",
69
- prefix: "0 1.5x 0 .5x"
69
+ prefix: "0 1.5x 0 .5x",
70
+ suffix: ".5x .5x .5x 1.5x",
71
+ "prefix & suffix": "0 .5x 0 .5x"
70
72
  }
71
73
  }
72
74
  });
@@ -90,7 +92,7 @@ const FilterListBox = forwardRef(function FilterListBox(props, ref) {
90
92
  };
91
93
  return fieldProps;
92
94
  } });
93
- let { qa, label, extra, id, labelStyles, isRequired, necessityIndicator, validationState, isDisabled, isLoading, searchPlaceholder = "Search...", autoFocus, filter, mods: externalMods, emptyLabel, searchInputStyles, listStyles, optionStyles, sectionStyles, headingStyles, searchInputRef, listRef, message, description, styles, focusOnHover, shouldFocusWrap, labelSuffix, selectedKey, defaultSelectedKey, selectedKeys, defaultSelectedKeys, onSelectionChange: externalOnSelectionChange, allowsCustomValue = false, showSelectAll, selectAllLabel, header, footer, size = "medium", headerStyles, footerStyles, listBoxStyles, items, children: renderChildren, onEscape, isCheckable, onOptionClick, selectionMode = "single", allValueProps, customValueProps, newCustomValueProps, searchValue: controlledSearchValue, onSearchChange, _internalCollection, form, ...otherProps } = props;
95
+ let { qa, label, extra, id, labelStyles, isRequired, necessityIndicator, validationState, isDisabled, isLoading, isLoadingItems, searchPlaceholder = "Search...", autoFocus, filter, mods: externalMods, emptyLabel, searchInputStyles, listStyles, optionStyles, sectionStyles, headingStyles, searchInputRef, listRef, message, description, styles, focusOnHover, shouldFocusWrap, labelSuffix, selectedKey, defaultSelectedKey, selectedKeys, defaultSelectedKeys, onSelectionChange: externalOnSelectionChange, allowsCustomValue = false, showSelectAll, selectAllLabel, header, footer, size = "medium", headerStyles, footerStyles, listBoxStyles, items, children: renderChildren, onEscape, isCheckable, onOptionClick, selectionMode = "single", allValueProps, customValueProps, newCustomValueProps, searchValue: controlledSearchValue, onSearchChange, _internalCollection, form, ...otherProps } = props;
94
96
  let children = renderChildren;
95
97
  const renderFn = renderChildren;
96
98
  if (items && typeof renderFn === "function") try {
@@ -111,6 +113,10 @@ const FilterListBox = forwardRef(function FilterListBox(props, ref) {
111
113
  return keys;
112
114
  }, [localCollectionState.collection]);
113
115
  const [customKeys, setCustomKeys] = useState(/* @__PURE__ */ new Set());
116
+ const [internalSearchValue, setInternalSearchValue] = useState("");
117
+ const isSearchControlled = controlledSearchValue !== void 0;
118
+ const searchValue = isSearchControlled ? controlledSearchValue : internalSearchValue;
119
+ const { contains } = useFilter({ sensitivity: "base" });
114
120
  useEffect(() => {
115
121
  if (!allowsCustomValue) return;
116
122
  const currentSelectedKeys = selectedKeys ? selectedKeys === "all" ? [] : Array.from(selectedKeys).map(String) : selectedKey != null ? [String(selectedKey)] : [];
@@ -125,7 +131,9 @@ const FilterListBox = forwardRef(function FilterListBox(props, ref) {
125
131
  ]);
126
132
  const mergedChildren = useMemo(() => {
127
133
  if (!children && customKeys.size === 0) return children;
128
- const customArray = Array.from(customKeys).map((key) => /* @__PURE__ */ jsx(Item, {
134
+ const term = searchValue.trim();
135
+ const localFilter = typeof filter === "function" ? filter : contains;
136
+ const customArray = Array.from(customKeys).filter((key) => !term || localFilter(key, term)).map((key) => /* @__PURE__ */ jsx(Item, {
129
137
  textValue: key,
130
138
  ...customValueProps,
131
139
  children: key
@@ -151,19 +159,27 @@ const FilterListBox = forwardRef(function FilterListBox(props, ref) {
151
159
  customKeys,
152
160
  selectionMode,
153
161
  selectedKey,
154
- selectedKeys
162
+ selectedKeys,
163
+ searchValue,
164
+ filter,
165
+ contains,
166
+ customValueProps
155
167
  ]);
156
168
  const innerAriaLabel = props["aria-label"] || (typeof label === "string" ? label : void 0);
157
- const [internalSearchValue, setInternalSearchValue] = useState("");
158
- const isSearchControlled = controlledSearchValue !== void 0;
159
- const searchValue = isSearchControlled ? controlledSearchValue : internalSearchValue;
160
169
  const handleSearchChange = useCallback((value) => {
161
170
  if (!isSearchControlled) setInternalSearchValue(value);
162
171
  onSearchChange?.(value);
163
172
  }, [isSearchControlled, onSearchChange]);
164
- const { contains } = useFilter({ sensitivity: "base" });
165
- const textFilterFn = useMemo(() => filter === false ? () => true : filter || contains, [filter, contains]);
173
+ const textFilterFn = useMemo(() => {
174
+ if (filter === false) return isLoadingItems ? contains : () => true;
175
+ return filter || contains;
176
+ }, [
177
+ filter,
178
+ contains,
179
+ isLoadingItems
180
+ ]);
166
181
  const filterFn = useCallback((nodes) => {
182
+ if (filter === false && !isLoadingItems) return nodes;
167
183
  const term = searchValue.trim();
168
184
  if (!term) return nodes;
169
185
  return [...nodes].map((node) => {
@@ -178,7 +194,12 @@ const FilterListBox = forwardRef(function FilterListBox(props, ref) {
178
194
  }
179
195
  return textFilterFn(node.textValue || "", term) ? node : null;
180
196
  }).filter(Boolean);
181
- }, [searchValue, textFilterFn]);
197
+ }, [
198
+ filter,
199
+ searchValue,
200
+ textFilterFn,
201
+ isLoadingItems
202
+ ]);
182
203
  const enhancedChildren = useMemo(() => {
183
204
  let childrenToProcess = mergedChildren;
184
205
  if (!allowsCustomValue) return childrenToProcess;
@@ -192,13 +213,14 @@ const FilterListBox = forwardRef(function FilterListBox(props, ref) {
192
213
  return false;
193
214
  };
194
215
  if (doesTermExist(term)) return childrenToProcess;
216
+ const localFilter = typeof filter === "function" ? filter : contains;
195
217
  const hasVisibleFilteredItems = (() => {
196
218
  for (const item of localCollectionState.collection) if (item.type === "item") {
197
219
  if (textFilterFn(item.textValue || String(item.rendered || ""), term)) return true;
198
220
  } else if (item.type === "section" && item.childNodes) {
199
221
  for (const child of item.childNodes) if (textFilterFn(child.textValue || String(child.rendered || ""), term)) return true;
200
222
  }
201
- for (const customKey of customKeys) if (textFilterFn(customKey, term)) return true;
223
+ for (const customKey of customKeys) if (localFilter(customKey, term)) return true;
202
224
  return false;
203
225
  })();
204
226
  const customOption = /* @__PURE__ */ jsx(Item, {
@@ -232,7 +254,9 @@ const FilterListBox = forwardRef(function FilterListBox(props, ref) {
232
254
  localCollectionState.collection,
233
255
  customValueProps,
234
256
  newCustomValueProps,
235
- textFilterFn
257
+ textFilterFn,
258
+ filter,
259
+ contains
236
260
  ]);
237
261
  styles = extractStyles(otherProps, PROP_STYLES, styles);
238
262
  ref = useCombinedRefs(ref);
@@ -246,18 +270,44 @@ const FilterListBox = forwardRef(function FilterListBox(props, ref) {
246
270
  const listState = listStateRef.current;
247
271
  if (!listState) return;
248
272
  const { selectionManager, collection } = listState;
249
- const collectVisibleKeys = (nodes, out) => {
250
- for (const node of nodes) if (node.type === "item") out.push(node.key);
251
- else if (node.childNodes) collectVisibleKeys(node.childNodes, out);
273
+ const term = searchValue.trim();
274
+ let newCustomValueKey = null;
275
+ let customValueHasMatches = false;
276
+ const collectVisibleKeys = (nodes, out, inCustomSection = false) => {
277
+ for (const node of nodes) if (node.type === "item") {
278
+ out.push(node.key);
279
+ if (inCustomSection) {
280
+ newCustomValueKey = node.key;
281
+ customValueHasMatches = true;
282
+ }
283
+ } else if (node.childNodes) {
284
+ const isCustomSection = inCustomSection || node.key === "__custom_value__";
285
+ collectVisibleKeys(node.childNodes, out, isCustomSection);
286
+ }
252
287
  };
253
288
  const visibleKeys = [];
254
289
  collectVisibleKeys(collection, visibleKeys);
290
+ if (newCustomValueKey == null && allowsCustomValue && term) {
291
+ for (const node of collection) if (node.type === "item" && String(node.key) === term) {
292
+ newCustomValueKey = node.key;
293
+ customValueHasMatches = false;
294
+ break;
295
+ }
296
+ }
255
297
  if (visibleKeys.length === 0) {
256
298
  selectionManager.setFocusedKey(null);
257
299
  return;
258
300
  }
301
+ const customValueShouldBeFocused = newCustomValueKey != null && !customValueHasMatches;
259
302
  const currentFocused = selectionManager.focusedKey;
260
- if (currentFocused != null && visibleKeys.includes(currentFocused)) return;
303
+ if (currentFocused != null && visibleKeys.includes(currentFocused)) {
304
+ const currentIsNewCustomValue = newCustomValueKey != null && currentFocused === newCustomValueKey;
305
+ if (customValueShouldBeFocused) {
306
+ if (currentIsNewCustomValue) return;
307
+ } else if (newCustomValueKey != null) {
308
+ if (!currentIsNewCustomValue) return;
309
+ } else return;
310
+ }
261
311
  const findFirstVisibleSelectedKey = () => {
262
312
  if (selectionMode === "single") {
263
313
  if (selectedKey != null) {
@@ -273,9 +323,11 @@ const FilterListBox = forwardRef(function FilterListBox(props, ref) {
273
323
  return null;
274
324
  };
275
325
  let keyToFocus = null;
276
- if (currentFocused == null) keyToFocus = findFirstVisibleSelectedKey();
277
- else keyToFocus = findFirstVisibleSelectedKey();
278
- if (keyToFocus == null) keyToFocus = visibleKeys[0];
326
+ if (customValueShouldBeFocused) keyToFocus = newCustomValueKey;
327
+ else {
328
+ keyToFocus = findFirstVisibleSelectedKey();
329
+ if (keyToFocus == null) keyToFocus = visibleKeys.find((k) => k !== newCustomValueKey) ?? visibleKeys[0];
330
+ }
279
331
  if (listState.lastFocusSourceRef) listState.lastFocusSourceRef.current = "keyboard";
280
332
  selectionManager.setFocusedKey(keyToFocus);
281
333
  }, [
@@ -283,7 +335,8 @@ const FilterListBox = forwardRef(function FilterListBox(props, ref) {
283
335
  enhancedChildren,
284
336
  selectionMode,
285
337
  selectedKey,
286
- selectedKeys
338
+ selectedKeys,
339
+ allowsCustomValue
287
340
  ]);
288
341
  const { keyboardProps } = useKeyboard({ onKeyDown: (e) => {
289
342
  if (e.key === "ArrowDown" || e.key === "ArrowUp") {
@@ -355,8 +408,10 @@ const FilterListBox = forwardRef(function FilterListBox(props, ref) {
355
408
  disabled: !!isDisabled,
356
409
  focused: isFocused,
357
410
  loading: !!isLoading,
411
+ "loading-items": !!isLoadingItems,
358
412
  searchable: true,
359
413
  prefix: !!isLoading,
414
+ suffix: !!isLoadingItems,
360
415
  ...externalMods
361
416
  }), [
362
417
  isInvalid,
@@ -364,6 +419,7 @@ const FilterListBox = forwardRef(function FilterListBox(props, ref) {
364
419
  isDisabled,
365
420
  isFocused,
366
421
  isLoading,
422
+ isLoadingItems,
367
423
  externalMods
368
424
  ]);
369
425
  const handleSelectionChange = (selection) => {
@@ -388,36 +444,44 @@ const FilterListBox = forwardRef(function FilterListBox(props, ref) {
388
444
  const searchInput = /* @__PURE__ */ jsxs(SearchWrapperElement, {
389
445
  mods,
390
446
  "data-size": size,
391
- children: [isLoading && /* @__PURE__ */ jsx("div", {
392
- "data-element": "Prefix",
393
- children: /* @__PURE__ */ jsx("div", {
394
- "data-element": "InputIcon",
395
- children: isLoading ? /* @__PURE__ */ jsx(LoadingIcon, {}) : null
447
+ children: [
448
+ isLoading && /* @__PURE__ */ jsx("div", {
449
+ "data-element": "Prefix",
450
+ children: /* @__PURE__ */ jsx("div", {
451
+ "data-element": "InputIcon",
452
+ children: isLoading ? /* @__PURE__ */ jsx(LoadingIcon, {}) : null
453
+ })
454
+ }),
455
+ /* @__PURE__ */ jsx(SearchInputElement, {
456
+ ref: searchInputRef,
457
+ qa: qa || "FilterListBox",
458
+ id,
459
+ "data-prefix": isLoading ? "" : void 0,
460
+ "data-suffix": isLoadingItems ? "" : void 0,
461
+ type: "search",
462
+ placeholder: searchPlaceholder,
463
+ value: searchValue,
464
+ disabled: isDisabled,
465
+ autoFocus,
466
+ "data-autofocus": autoFocus ? "" : void 0,
467
+ styles: searchInputStyles,
468
+ "data-size": size,
469
+ "data-input-type": "filterlistbox",
470
+ role: "combobox",
471
+ "aria-expanded": "true",
472
+ "aria-haspopup": "listbox",
473
+ "aria-activedescendant": listStateRef.current?.selectionManager.focusedKey != null ? `ListBoxItem-${listStateRef.current?.selectionManager.focusedKey}` : void 0,
474
+ onChange: (e) => {
475
+ handleSearchChange(e.target.value);
476
+ },
477
+ ...keyboardProps,
478
+ ...modAttrs(mods)
479
+ }),
480
+ isLoadingItems && /* @__PURE__ */ jsx("div", {
481
+ "data-element": "Suffix",
482
+ children: /* @__PURE__ */ jsx(LoadingIcon, { "data-element": "InputIcon" })
396
483
  })
397
- }), /* @__PURE__ */ jsx(SearchInputElement, {
398
- ref: searchInputRef,
399
- qa: qa || "FilterListBox",
400
- id,
401
- "data-prefix": isLoading ? "" : void 0,
402
- type: "search",
403
- placeholder: searchPlaceholder,
404
- value: searchValue,
405
- disabled: isDisabled,
406
- autoFocus,
407
- "data-autofocus": autoFocus ? "" : void 0,
408
- styles: searchInputStyles,
409
- "data-size": size,
410
- "data-input-type": "filterlistbox",
411
- role: "combobox",
412
- "aria-expanded": "true",
413
- "aria-haspopup": "listbox",
414
- "aria-activedescendant": listStateRef.current?.selectionManager.focusedKey != null ? `ListBoxItem-${listStateRef.current?.selectionManager.focusedKey}` : void 0,
415
- onChange: (e) => {
416
- handleSearchChange(e.target.value);
417
- },
418
- ...keyboardProps,
419
- ...modAttrs(mods)
420
- })]
484
+ ]
421
485
  });
422
486
  return wrapWithField(/* @__PURE__ */ jsxs(FilterListBoxWrapperElement, {
423
487
  ref,
@@ -464,7 +528,7 @@ const FilterListBox = forwardRef(function FilterListBox(props, ref) {
464
528
  items,
465
529
  allValueProps,
466
530
  filter: filterFn,
467
- emptyLabel: searchValue.trim() ? emptyLabel !== void 0 ? emptyLabel : "No results found" : "No items",
531
+ emptyLabel: emptyLabel !== void 0 ? emptyLabel : searchValue.trim() ? "No results found" : "No items",
468
532
  onSelectionChange: handleSelectionChange,
469
533
  onEscape,
470
534
  onOptionClick: handleOptionClick,