@cube-dev/ui-kit 0.127.3 → 0.129.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 (432) hide show
  1. package/dist/CHANGELOG.md +40 -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/Tree/Tree.d.ts +27 -0
  88. package/dist/components/content/Tree/Tree.js +265 -0
  89. package/dist/components/content/Tree/Tree.js.map +1 -0
  90. package/dist/components/content/Tree/TreeNode.js +107 -0
  91. package/dist/components/content/Tree/TreeNode.js.map +1 -0
  92. package/dist/components/content/Tree/index.d.ts +3 -0
  93. package/dist/components/content/Tree/styled.js +146 -0
  94. package/dist/components/content/Tree/styled.js.map +1 -0
  95. package/dist/components/content/Tree/tree-index.js +26 -0
  96. package/dist/components/content/Tree/tree-index.js.map +1 -0
  97. package/dist/components/content/Tree/types.d.ts +145 -0
  98. package/dist/components/content/Tree/use-checkbox-tree.js +231 -0
  99. package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -0
  100. package/dist/components/content/Tree/use-load-data.js +75 -0
  101. package/dist/components/content/Tree/use-load-data.js.map +1 -0
  102. package/dist/components/content/highlightText.js +1 -1
  103. package/dist/components/content/use-auto-tooltip.js +1 -1
  104. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  105. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  106. package/dist/components/fields/Checkbox/context.js +1 -1
  107. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  108. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  109. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  110. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  111. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  112. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  113. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  114. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  115. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  116. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  117. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  118. package/dist/components/fields/DatePicker/intl.js +1 -1
  119. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  120. package/dist/components/fields/DatePicker/props.js +1 -1
  121. package/dist/components/fields/DatePicker/utils.js +1 -1
  122. package/dist/components/fields/FileInput/FileInput.js +1 -1
  123. package/dist/components/fields/FilterListBox/FilterListBox.d.ts +3 -1
  124. package/dist/components/fields/FilterListBox/FilterListBox.js +115 -51
  125. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  126. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +6 -0
  127. package/dist/components/fields/FilterPicker/FilterPicker.js +4 -2
  128. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  129. package/dist/components/fields/Input/Input.js +1 -1
  130. package/dist/components/fields/ListBox/ListBox.js +1 -1
  131. package/dist/components/fields/NumberInput/NumberInput.js +2 -2
  132. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  133. package/dist/components/fields/PasswordInput/PasswordInput.js +2 -2
  134. package/dist/components/fields/Picker/Picker.js +1 -1
  135. package/dist/components/fields/RadioGroup/Radio.js +2 -2
  136. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  137. package/dist/components/fields/RadioGroup/context.js +1 -1
  138. package/dist/components/fields/SearchInput/SearchInput.js +2 -2
  139. package/dist/components/fields/Select/Select.js +1 -1
  140. package/dist/components/fields/Slider/Gradation.js +1 -1
  141. package/dist/components/fields/Slider/HueSlider.js +1 -1
  142. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  143. package/dist/components/fields/Slider/Slider.js +1 -1
  144. package/dist/components/fields/Slider/SliderBase.js +1 -1
  145. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  146. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  147. package/dist/components/fields/Slider/elements.js +1 -1
  148. package/dist/components/fields/Slider/index.js +1 -1
  149. package/dist/components/fields/Switch/Switch.js +1 -1
  150. package/dist/components/fields/TextArea/TextArea.js +2 -2
  151. package/dist/components/fields/TextInput/TextInput.js +2 -2
  152. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  153. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  154. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  155. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  156. package/dist/components/form/Form/Field.js +1 -1
  157. package/dist/components/form/Form/Form.js +1 -1
  158. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  159. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  160. package/dist/components/form/Form/SubmitError.js +1 -1
  161. package/dist/components/form/Form/index.js +1 -1
  162. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  163. package/dist/components/form/Form/use-field/use-field.js +1 -1
  164. package/dist/components/form/Form/use-form.js +1 -1
  165. package/dist/components/form/Form/validation.js +1 -1
  166. package/dist/components/form/Label.js +1 -1
  167. package/dist/components/form/wrapper.js +1 -1
  168. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  169. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  170. package/dist/components/layout/Flex.js +1 -1
  171. package/dist/components/layout/Flow.js +1 -1
  172. package/dist/components/layout/Grid.js +1 -1
  173. package/dist/components/layout/Panel.js +1 -1
  174. package/dist/components/layout/Prefix.js +1 -1
  175. package/dist/components/layout/ResizablePanel.js +1 -1
  176. package/dist/components/layout/Space.js +1 -1
  177. package/dist/components/layout/Suffix.js +1 -1
  178. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  179. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  180. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  181. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  182. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  183. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  184. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  185. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  186. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  187. package/dist/components/navigation/Tabs/styled.js +1 -1
  188. package/dist/components/navigation/Tabs/types.js +1 -1
  189. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  190. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  191. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  192. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  193. package/dist/components/other/Calendar/Calendar.js +1 -1
  194. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  195. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  196. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  197. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  198. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  199. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  200. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  201. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  202. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  203. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  204. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  205. package/dist/components/overlays/Dialog/context.js +1 -1
  206. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  207. package/dist/components/overlays/Modal/Modal.js +1 -1
  208. package/dist/components/overlays/Modal/OpenTransition.js +1 -1
  209. package/dist/components/overlays/Modal/Overlay.js +1 -1
  210. package/dist/components/overlays/Modal/Popover.js +1 -1
  211. package/dist/components/overlays/Modal/Tray.js +1 -1
  212. package/dist/components/overlays/Modal/Underlay.js +1 -1
  213. package/dist/components/overlays/Notifications/Notification.js +1 -1
  214. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  215. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  216. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  217. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  218. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  219. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  220. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  221. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  222. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  223. package/dist/components/overlays/Notifications/index.js +1 -1
  224. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  225. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  226. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  227. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  228. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  229. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  230. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  231. package/dist/components/overlays/Toast/index.js +1 -1
  232. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  233. package/dist/components/overlays/Toast/useToast.js +1 -1
  234. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  235. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  236. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  237. package/dist/components/overlays/Tooltip/context.js +1 -1
  238. package/dist/components/portal/Portal.js +1 -1
  239. package/dist/components/portal/PortalProvider.js +1 -1
  240. package/dist/components/portal/usePortal.js +1 -1
  241. package/dist/components/shared/InvalidIcon.js +1 -1
  242. package/dist/components/shared/ValidIcon.js +1 -1
  243. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  244. package/dist/components/status/Spin/Cube.js +1 -1
  245. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  246. package/dist/components/status/Spin/Spin.js +1 -1
  247. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  248. package/dist/data/item-themes.js +1 -1
  249. package/dist/data/themes.js +1 -1
  250. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  251. package/dist/icons/AdjustmentsIcon.js +1 -1
  252. package/dist/icons/AiIcon.js +1 -1
  253. package/dist/icons/AreaChartIcon.js +1 -1
  254. package/dist/icons/BackwardIcon.js +1 -1
  255. package/dist/icons/BarChartIcon.js +1 -1
  256. package/dist/icons/BellFilledIcon.js +1 -1
  257. package/dist/icons/BellIcon.js +1 -1
  258. package/dist/icons/BooleanIcon.js +1 -1
  259. package/dist/icons/CalendarEditIcon.js +1 -1
  260. package/dist/icons/CalendarIcon.js +1 -1
  261. package/dist/icons/CaretDownIcon.js +1 -1
  262. package/dist/icons/CaretUpIcon.js +1 -1
  263. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  264. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  265. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  266. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  267. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  268. package/dist/icons/ChartBarLineIcon.js +1 -1
  269. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  270. package/dist/icons/ChartBarStackedIcon.js +1 -1
  271. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  272. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  273. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  274. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  275. package/dist/icons/ChartBubbleIcon.js +1 -1
  276. package/dist/icons/ChartDonut2Icon.js +1 -1
  277. package/dist/icons/ChartFunnelIcon.js +1 -1
  278. package/dist/icons/ChartHeatmapIcon.js +1 -1
  279. package/dist/icons/ChartKPIIcon.js +1 -1
  280. package/dist/icons/ChartPie2Icon.js +1 -1
  281. package/dist/icons/ChartScatterIcon.js +1 -1
  282. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  283. package/dist/icons/CheckCircleIcon.js +1 -1
  284. package/dist/icons/CheckIcon.js +1 -1
  285. package/dist/icons/CircleFilledIcon.js +1 -1
  286. package/dist/icons/ClearIcon.js +1 -1
  287. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  288. package/dist/icons/CloseCircleIcon.js +1 -1
  289. package/dist/icons/CloseIcon.js +1 -1
  290. package/dist/icons/CodeIcon.js +1 -1
  291. package/dist/icons/ColumnTotalIcon.js +1 -1
  292. package/dist/icons/CopyIcon.js +1 -1
  293. package/dist/icons/CountIcon.js +1 -1
  294. package/dist/icons/CubeIcon.js +1 -1
  295. package/dist/icons/CubePauseIcon.js +1 -1
  296. package/dist/icons/CubePlayIcon.js +1 -1
  297. package/dist/icons/CurrencyDollarIcon.js +1 -1
  298. package/dist/icons/DangerIcon.js +1 -1
  299. package/dist/icons/DashboardIcon.js +1 -1
  300. package/dist/icons/DatabaseIcon.js +1 -1
  301. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  302. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  303. package/dist/icons/DirectionIcon.js +1 -1
  304. package/dist/icons/DonutIcon.js +1 -1
  305. package/dist/icons/DownIcon.js +1 -1
  306. package/dist/icons/EditIcon.js +1 -1
  307. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  308. package/dist/icons/ExclamationCircleIcon.js +1 -1
  309. package/dist/icons/ExclamationIcon.js +1 -1
  310. package/dist/icons/EyeIcon.js +1 -1
  311. package/dist/icons/EyeInvisibleIcon.js +1 -1
  312. package/dist/icons/FilterIcon.js +1 -1
  313. package/dist/icons/FolderFilledIcon.js +1 -1
  314. package/dist/icons/FolderIcon.js +1 -1
  315. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  316. package/dist/icons/FolderOpenIcon.js +1 -1
  317. package/dist/icons/ForwardIcon.js +1 -1
  318. package/dist/icons/HierarchyIcon.js +1 -1
  319. package/dist/icons/HierarchyOpenIcon.js +1 -1
  320. package/dist/icons/Icon.js +1 -1
  321. package/dist/icons/InfoCircleIcon.js +1 -1
  322. package/dist/icons/InfoIcon.js +1 -1
  323. package/dist/icons/KeyIcon.js +1 -1
  324. package/dist/icons/LeftIcon.js +1 -1
  325. package/dist/icons/LineChartIcon.js +1 -1
  326. package/dist/icons/LoadingIcon.js +1 -1
  327. package/dist/icons/LockFilledIcon.js +1 -1
  328. package/dist/icons/LockIcon.js +1 -1
  329. package/dist/icons/MoreIcon.js +1 -1
  330. package/dist/icons/NotAllowedIcon.js +1 -1
  331. package/dist/icons/Number123Icon.js +1 -1
  332. package/dist/icons/NumberIcon.js +1 -1
  333. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  334. package/dist/icons/PauseCircleIcon.js +1 -1
  335. package/dist/icons/PauseIcon.js +1 -1
  336. package/dist/icons/PercentageIcon.js +1 -1
  337. package/dist/icons/PieChartIcon.js +1 -1
  338. package/dist/icons/PlayCircleIcon.js +1 -1
  339. package/dist/icons/PlayIcon.js +1 -1
  340. package/dist/icons/PlusIcon.js +1 -1
  341. package/dist/icons/ProgressBarIcon.js +1 -1
  342. package/dist/icons/ReloadIcon.js +1 -1
  343. package/dist/icons/ReportIcon.js +1 -1
  344. package/dist/icons/ReturnIcon.js +1 -1
  345. package/dist/icons/RightIcon.js +1 -1
  346. package/dist/icons/RowTotalsIcon.js +1 -1
  347. package/dist/icons/SchemeIcon.js +1 -1
  348. package/dist/icons/SearchIcon.js +1 -1
  349. package/dist/icons/SemanticQueryIcon.js +1 -1
  350. package/dist/icons/SettingsIcon.js +1 -1
  351. package/dist/icons/ShieldFilledIcon.js +1 -1
  352. package/dist/icons/ShieldIcon.js +1 -1
  353. package/dist/icons/SlashIcon.js +1 -1
  354. package/dist/icons/SparklesIcon.js +1 -1
  355. package/dist/icons/SqlIcon.js +1 -1
  356. package/dist/icons/StatsIcon.js +1 -1
  357. package/dist/icons/StopIcon.js +1 -1
  358. package/dist/icons/StringIcon.js +1 -1
  359. package/dist/icons/SubtotalsIcon.js +1 -1
  360. package/dist/icons/SwitchIcon.js +1 -1
  361. package/dist/icons/TableIcon.js +1 -1
  362. package/dist/icons/ThumbsDownIcon.js +1 -1
  363. package/dist/icons/ThumbsUpIcon.js +1 -1
  364. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  365. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  366. package/dist/icons/ThunderboltIcon.js +1 -1
  367. package/dist/icons/TimeIcon.js +1 -1
  368. package/dist/icons/TrashIcon.js +1 -1
  369. package/dist/icons/UnlockIcon.js +1 -1
  370. package/dist/icons/UpIcon.js +1 -1
  371. package/dist/icons/UserGroupIcon.js +1 -1
  372. package/dist/icons/UserIcon.js +1 -1
  373. package/dist/icons/UserLockIcon.js +1 -1
  374. package/dist/icons/ViewIcon.js +1 -1
  375. package/dist/icons/WarningFilledIcon.js +1 -1
  376. package/dist/icons/WarningIcon.js +1 -1
  377. package/dist/icons/wrap-icon.js +1 -1
  378. package/dist/index.d.ts +4 -1
  379. package/dist/index.js +5 -4
  380. package/dist/index.js.map +1 -1
  381. package/dist/provider.js +1 -1
  382. package/dist/providers/TrackingProvider.js +1 -1
  383. package/dist/providers/navigationAdapter.default.js +1 -1
  384. package/dist/tokens/base.js +1 -1
  385. package/dist/tokens/colors.js +1 -1
  386. package/dist/tokens/index.js +1 -1
  387. package/dist/tokens/layout.js +1 -1
  388. package/dist/tokens/shadows.js +1 -1
  389. package/dist/tokens/sizes.js +1 -1
  390. package/dist/tokens/spacing.js +1 -1
  391. package/dist/tokens/typography.js +1 -1
  392. package/dist/utils/ResizeSensor.js +1 -1
  393. package/dist/utils/is-dev-env.js +1 -1
  394. package/dist/utils/modules.js +1 -1
  395. package/dist/utils/promise.js +1 -1
  396. package/dist/utils/raf.js +1 -1
  397. package/dist/utils/random.js +1 -1
  398. package/dist/utils/range.js +1 -1
  399. package/dist/utils/react/RenderCache.js +1 -1
  400. package/dist/utils/react/Slots.js +1 -1
  401. package/dist/utils/react/chain.js +1 -1
  402. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  403. package/dist/utils/react/index.js +1 -1
  404. package/dist/utils/react/interactions.js +1 -1
  405. package/dist/utils/react/isTextOnly.js +1 -1
  406. package/dist/utils/react/mapProps.js +1 -1
  407. package/dist/utils/react/mergeProps.js +1 -1
  408. package/dist/utils/react/nullableValue.js +1 -1
  409. package/dist/utils/react/resolveIcon.js +1 -1
  410. package/dist/utils/react/sharedStore.js +1 -1
  411. package/dist/utils/react/useCombinedRefs.js +1 -1
  412. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  413. package/dist/utils/react/useEventBus.js +1 -1
  414. package/dist/utils/react/useId.js +1 -1
  415. package/dist/utils/react/useIsDarwin.js +1 -1
  416. package/dist/utils/react/useKeySymbols.js +1 -1
  417. package/dist/utils/react/useLayoutEffect.js +1 -1
  418. package/dist/utils/react/useLocalStorage.js +1 -1
  419. package/dist/utils/react/useMergeStyles.js +1 -1
  420. package/dist/utils/react/useQaProps.js +1 -1
  421. package/dist/utils/react/useViewportSize.js +1 -1
  422. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  423. package/dist/utils/selection.js +1 -1
  424. package/dist/utils/styles.js +1 -1
  425. package/dist/utils/tree.js +1 -1
  426. package/dist/utils/warnings.js +1 -1
  427. package/dist/version.js +2 -2
  428. package/docs/components/content/Tree.md +299 -0
  429. package/docs/components/fields/FilterListBox.md +27 -17
  430. package/docs/components/fields/FilterPicker.md +58 -59
  431. package/docs/tasty/dsl.md +1 -0
  432. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-load-data.js","names":[],"sources":["../../../../src/components/content/Tree/use-load-data.ts"],"sourcesContent":["import { useRef, useState } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\n\nimport type { Key } from '@react-types/shared';\nimport type { CubeTreeNodeData, TreeLoadDataNode } from './types';\n\nexport interface UseLoadDataOptions {\n /**\n * Map of `key -> node` built from the consumer's `treeData`. Used to\n * find the node being expanded when `loadData` fires.\n */\n nodesByKey: Map<string, CubeTreeNodeData>;\n loadData?: (node: TreeLoadDataNode) => Promise<void>;\n /**\n * Keys that are expanded at mount time (controlled or default).\n * Seeds `previousExpandedRef` so the first `onExpandedChanged` call\n * doesn't misidentify them as user-triggered expansions.\n */\n initialExpandedKeys?: Iterable<string>;\n}\n\nexport interface LoadDataController {\n /** Set of keys that are currently waiting on `loadData`. */\n loadingKeys: Set<string>;\n /**\n * Called by `Tree.tsx` whenever the underlying React Stately state's\n * `expandedKeys` change. We diff against the previous set, and for\n * each newly-expanded key we trigger `loadData` if appropriate.\n */\n onExpandedChanged: (expandedKeys: Iterable<Key>) => void;\n}\n\n/**\n * Tracks which rows are currently fetching their children via `loadData`\n * and exposes a setter for the Tree to call after every expand change.\n *\n * `loadData` is fired exactly once per key per \"first expand\" event:\n *\n * - Skipped if there is no `loadData` callback.\n * - Skipped for leaf nodes (`isLeaf === true`).\n * - Skipped if the node already has `children` (already loaded).\n * - Skipped if a previous fetch for the same key is still in flight.\n *\n * The promise's resolution is awaited only to clear the `loading` mod;\n * the consumer is expected to commit the new children to the controlled\n * `treeData` themselves (matching AntD's pattern).\n */\nexport function useLoadData(opts: UseLoadDataOptions): LoadDataController {\n const { nodesByKey, loadData, initialExpandedKeys } = opts;\n const [loadingKeys, setLoadingKeys] = useState<Set<string>>(() => new Set());\n const previousExpandedRef = useRef<Set<string>>(new Set(initialExpandedKeys));\n const inFlightRef = useRef<Set<string>>(new Set());\n\n const onExpandedChanged = useEvent((expandedKeys: Iterable<Key>) => {\n const next = new Set<string>();\n for (const k of expandedKeys) next.add(String(k));\n\n const prev = previousExpandedRef.current;\n const newlyExpanded: string[] = [];\n for (const k of next) {\n if (!prev.has(k)) newlyExpanded.push(k);\n }\n previousExpandedRef.current = next;\n\n if (!loadData || newlyExpanded.length === 0) return;\n\n const toLoad: string[] = [];\n for (const key of newlyExpanded) {\n const node = nodesByKey.get(key);\n if (!node) continue;\n if (node.isLeaf) continue;\n if (node.children && node.children.length > 0) continue;\n if (inFlightRef.current.has(key)) continue;\n inFlightRef.current.add(key);\n toLoad.push(key);\n }\n\n if (toLoad.length === 0) return;\n\n setLoadingKeys((current) => {\n const updated = new Set(current);\n for (const k of toLoad) updated.add(k);\n return updated;\n });\n\n for (const key of toLoad) {\n const loadNode = nodesByKey.get(key);\n Promise.resolve(loadData({ key, children: loadNode?.children }))\n .catch((err) => {\n if (process.env.NODE_ENV !== 'production') {\n console.error(`[Tree] loadData failed for key \"${key}\":`, err);\n }\n })\n .finally(() => {\n inFlightRef.current.delete(key);\n setLoadingKeys((current) => {\n if (!current.has(key)) return current;\n const updated = new Set(current);\n updated.delete(key);\n return updated;\n });\n });\n }\n });\n\n return { loadingKeys, onExpandedChanged };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAgDA,SAAgB,YAAY,MAA8C;CACxE,MAAM,EAAE,YAAY,UAAU,wBAAwB;CACtD,MAAM,CAAC,aAAa,kBAAkB,+BAA4B,IAAI,KAAK,CAAC;CAC5E,MAAM,sBAAsB,OAAoB,IAAI,IAAI,oBAAoB,CAAC;CAC7E,MAAM,cAAc,uBAAoB,IAAI,KAAK,CAAC;AAsDlD,QAAO;EAAE;EAAa,mBApDI,UAAU,iBAAgC;GAClE,MAAM,uBAAO,IAAI,KAAa;AAC9B,QAAK,MAAM,KAAK,aAAc,MAAK,IAAI,OAAO,EAAE,CAAC;GAEjD,MAAM,OAAO,oBAAoB;GACjC,MAAM,gBAA0B,EAAE;AAClC,QAAK,MAAM,KAAK,KACd,KAAI,CAAC,KAAK,IAAI,EAAE,CAAE,eAAc,KAAK,EAAE;AAEzC,uBAAoB,UAAU;AAE9B,OAAI,CAAC,YAAY,cAAc,WAAW,EAAG;GAE7C,MAAM,SAAmB,EAAE;AAC3B,QAAK,MAAM,OAAO,eAAe;IAC/B,MAAM,OAAO,WAAW,IAAI,IAAI;AAChC,QAAI,CAAC,KAAM;AACX,QAAI,KAAK,OAAQ;AACjB,QAAI,KAAK,YAAY,KAAK,SAAS,SAAS,EAAG;AAC/C,QAAI,YAAY,QAAQ,IAAI,IAAI,CAAE;AAClC,gBAAY,QAAQ,IAAI,IAAI;AAC5B,WAAO,KAAK,IAAI;;AAGlB,OAAI,OAAO,WAAW,EAAG;AAEzB,mBAAgB,YAAY;IAC1B,MAAM,UAAU,IAAI,IAAI,QAAQ;AAChC,SAAK,MAAM,KAAK,OAAQ,SAAQ,IAAI,EAAE;AACtC,WAAO;KACP;AAEF,QAAK,MAAM,OAAO,QAAQ;IACxB,MAAM,WAAW,WAAW,IAAI,IAAI;AACpC,YAAQ,QAAQ,SAAS;KAAE;KAAK,UAAU,UAAU;KAAU,CAAC,CAAC,CAC7D,OAAO,QAAQ;AAEZ,aAAQ,MAAM,mCAAmC,IAAI,KAAK,IAAI;MAEhE,CACD,cAAc;AACb,iBAAY,QAAQ,OAAO,IAAI;AAC/B,qBAAgB,YAAY;AAC1B,UAAI,CAAC,QAAQ,IAAI,IAAI,CAAE,QAAO;MAC9B,MAAM,UAAU,IAAI,IAAI,QAAQ;AAChC,cAAQ,OAAO,IAAI;AACnB,aAAO;OACP;MACF;;IAEN;EAEuC"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.127.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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.3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.129.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,