@cube-dev/ui-kit 0.131.0 → 0.133.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 (442) hide show
  1. package/dist/CHANGELOG.md +32 -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.js +60 -45
  88. package/dist/components/content/Tree/Tree.js.map +1 -1
  89. package/dist/components/content/Tree/TreeNode.js +90 -20
  90. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  91. package/dist/components/content/Tree/index.d.ts +1 -1
  92. package/dist/components/content/Tree/styled.js +26 -4
  93. package/dist/components/content/Tree/styled.js.map +1 -1
  94. package/dist/components/content/Tree/tree-index.js +1 -1
  95. package/dist/components/content/Tree/types.d.ts +67 -1
  96. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  97. package/dist/components/content/Tree/use-load-data.js +1 -1
  98. package/dist/components/content/highlightText.js +1 -1
  99. package/dist/components/content/use-auto-tooltip.js +1 -1
  100. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  101. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  102. package/dist/components/fields/Checkbox/context.js +1 -1
  103. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  104. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  105. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  106. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  107. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  108. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  109. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  110. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  111. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  112. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  113. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  114. package/dist/components/fields/DatePicker/intl.js +1 -1
  115. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  116. package/dist/components/fields/DatePicker/props.js +1 -1
  117. package/dist/components/fields/DatePicker/utils.js +1 -1
  118. package/dist/components/fields/FileInput/FileInput.js +1 -1
  119. package/dist/components/fields/FilterListBox/FilterListBox.js +5 -3
  120. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  121. package/dist/components/fields/FilterPicker/FilterPicker.js +4 -2
  122. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  123. package/dist/components/fields/Input/Input.js +1 -1
  124. package/dist/components/fields/ListBox/DraggableListBox.js +24 -0
  125. package/dist/components/fields/ListBox/DraggableListBox.js.map +1 -0
  126. package/dist/components/fields/ListBox/ListBox.d.ts +11 -0
  127. package/dist/components/fields/ListBox/ListBox.js +153 -38
  128. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  129. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  130. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  131. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  132. package/dist/components/fields/Picker/Picker.js +1 -1
  133. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  134. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  135. package/dist/components/fields/RadioGroup/context.js +1 -1
  136. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  137. package/dist/components/fields/Select/Select.js +1 -1
  138. package/dist/components/fields/Slider/Gradation.js +1 -1
  139. package/dist/components/fields/Slider/HueSlider.js +1 -1
  140. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  141. package/dist/components/fields/Slider/Slider.js +1 -1
  142. package/dist/components/fields/Slider/SliderBase.js +1 -1
  143. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  144. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  145. package/dist/components/fields/Slider/elements.js +1 -1
  146. package/dist/components/fields/Slider/index.js +1 -1
  147. package/dist/components/fields/Switch/Switch.js +1 -1
  148. package/dist/components/fields/TextArea/TextArea.js +1 -1
  149. package/dist/components/fields/TextInput/TextInput.js +1 -1
  150. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  151. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  152. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  153. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  154. package/dist/components/form/Form/Field.js +1 -1
  155. package/dist/components/form/Form/Form.js +1 -1
  156. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  157. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  158. package/dist/components/form/Form/SubmitError.js +1 -1
  159. package/dist/components/form/Form/index.js +1 -1
  160. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  161. package/dist/components/form/Form/use-field/use-field.js +1 -1
  162. package/dist/components/form/Form/use-form.js +1 -1
  163. package/dist/components/form/Form/validation.js +1 -1
  164. package/dist/components/form/Label.js +1 -1
  165. package/dist/components/form/wrapper.js +1 -1
  166. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  167. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  168. package/dist/components/layout/Flex.js +1 -1
  169. package/dist/components/layout/Flow.js +1 -1
  170. package/dist/components/layout/Grid.js +1 -1
  171. package/dist/components/layout/Panel.js +1 -1
  172. package/dist/components/layout/Prefix.js +1 -1
  173. package/dist/components/layout/ResizablePanel.js +1 -1
  174. package/dist/components/layout/Space.js +1 -1
  175. package/dist/components/layout/Suffix.js +1 -1
  176. package/dist/components/navigation/Tabs/DraggableTabList.js +11 -60
  177. package/dist/components/navigation/Tabs/DraggableTabList.js.map +1 -1
  178. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  179. package/dist/components/navigation/Tabs/TabButton.js +3 -10
  180. package/dist/components/navigation/Tabs/TabButton.js.map +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 +4 -2
  184. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  185. package/dist/components/navigation/Tabs/Tabs.js +4 -2
  186. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  187. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  188. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  189. package/dist/components/navigation/Tabs/styled.js +1 -1
  190. package/dist/components/navigation/Tabs/types.d.ts +2 -0
  191. package/dist/components/navigation/Tabs/types.js +1 -1
  192. package/dist/components/navigation/Tabs/types.js.map +1 -1
  193. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  194. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  195. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  196. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  197. package/dist/components/other/Calendar/Calendar.js +1 -1
  198. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  199. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  200. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  201. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  202. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  203. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  204. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  205. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  206. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  207. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  208. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  209. package/dist/components/overlays/Dialog/context.js +1 -1
  210. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  211. package/dist/components/overlays/Modal/Modal.js +1 -1
  212. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  213. package/dist/components/overlays/Modal/Overlay.js +1 -1
  214. package/dist/components/overlays/Modal/Popover.js +1 -1
  215. package/dist/components/overlays/Modal/Tray.js +1 -1
  216. package/dist/components/overlays/Modal/Underlay.js +1 -1
  217. package/dist/components/overlays/Notifications/Notification.js +1 -1
  218. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  219. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  220. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  221. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  222. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  223. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  224. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  225. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  226. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  227. package/dist/components/overlays/Notifications/index.js +1 -1
  228. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  229. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  230. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  231. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  232. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  233. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  234. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  235. package/dist/components/overlays/Toast/index.js +1 -1
  236. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  237. package/dist/components/overlays/Toast/useToast.js +1 -1
  238. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  239. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  240. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  241. package/dist/components/overlays/Tooltip/context.js +1 -1
  242. package/dist/components/portal/Portal.js +1 -1
  243. package/dist/components/portal/PortalProvider.js +1 -1
  244. package/dist/components/portal/usePortal.js +1 -1
  245. package/dist/components/shared/DraggableCollection.js +142 -0
  246. package/dist/components/shared/DraggableCollection.js.map +1 -0
  247. package/dist/components/shared/InvalidIcon.js +1 -1
  248. package/dist/components/shared/ValidIcon.js +1 -1
  249. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  250. package/dist/components/status/Spin/Cube.js +1 -1
  251. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  252. package/dist/components/status/Spin/Spin.js +1 -1
  253. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  254. package/dist/data/item-themes.js +1 -1
  255. package/dist/data/themes.js +1 -1
  256. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  257. package/dist/icons/AdjustmentsIcon.js +1 -1
  258. package/dist/icons/AiIcon.js +1 -1
  259. package/dist/icons/AreaChartIcon.js +1 -1
  260. package/dist/icons/BackwardIcon.js +1 -1
  261. package/dist/icons/BarChartIcon.js +1 -1
  262. package/dist/icons/BellFilledIcon.js +1 -1
  263. package/dist/icons/BellIcon.js +1 -1
  264. package/dist/icons/BooleanIcon.js +1 -1
  265. package/dist/icons/CalendarEditIcon.js +1 -1
  266. package/dist/icons/CalendarIcon.js +1 -1
  267. package/dist/icons/CaretDownIcon.js +1 -1
  268. package/dist/icons/CaretUpIcon.js +1 -1
  269. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  270. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  271. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  272. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  273. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  274. package/dist/icons/ChartBarLineIcon.js +1 -1
  275. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  276. package/dist/icons/ChartBarStackedIcon.js +1 -1
  277. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  278. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  279. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  280. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  281. package/dist/icons/ChartBubbleIcon.js +1 -1
  282. package/dist/icons/ChartDonut2Icon.js +1 -1
  283. package/dist/icons/ChartFunnelIcon.js +1 -1
  284. package/dist/icons/ChartHeatmapIcon.js +1 -1
  285. package/dist/icons/ChartKPIIcon.js +1 -1
  286. package/dist/icons/ChartPie2Icon.js +1 -1
  287. package/dist/icons/ChartScatterIcon.js +1 -1
  288. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  289. package/dist/icons/CheckCircleIcon.js +1 -1
  290. package/dist/icons/CheckIcon.js +1 -1
  291. package/dist/icons/CircleFilledIcon.js +1 -1
  292. package/dist/icons/ClearIcon.js +1 -1
  293. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  294. package/dist/icons/CloseCircleIcon.js +1 -1
  295. package/dist/icons/CloseIcon.js +1 -1
  296. package/dist/icons/CodeIcon.js +1 -1
  297. package/dist/icons/ColumnTotalIcon.js +1 -1
  298. package/dist/icons/CopyIcon.js +1 -1
  299. package/dist/icons/CountIcon.js +1 -1
  300. package/dist/icons/CubeIcon.js +1 -1
  301. package/dist/icons/CubePauseIcon.js +1 -1
  302. package/dist/icons/CubePlayIcon.js +1 -1
  303. package/dist/icons/CurrencyDollarIcon.js +1 -1
  304. package/dist/icons/DangerIcon.js +1 -1
  305. package/dist/icons/DashboardIcon.js +1 -1
  306. package/dist/icons/DatabaseIcon.js +1 -1
  307. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  308. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  309. package/dist/icons/DirectionIcon.js +1 -1
  310. package/dist/icons/DonutIcon.js +1 -1
  311. package/dist/icons/DownIcon.js +1 -1
  312. package/dist/icons/EditIcon.js +1 -1
  313. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  314. package/dist/icons/ExclamationCircleIcon.js +1 -1
  315. package/dist/icons/ExclamationIcon.js +1 -1
  316. package/dist/icons/EyeIcon.js +1 -1
  317. package/dist/icons/EyeInvisibleIcon.js +1 -1
  318. package/dist/icons/FilterIcon.js +1 -1
  319. package/dist/icons/FolderFilledIcon.js +1 -1
  320. package/dist/icons/FolderIcon.js +1 -1
  321. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  322. package/dist/icons/FolderOpenIcon.js +1 -1
  323. package/dist/icons/ForwardIcon.js +1 -1
  324. package/dist/icons/GripVerticalIcon.d.ts +12 -0
  325. package/dist/icons/GripVerticalIcon.js +11 -0
  326. package/dist/icons/GripVerticalIcon.js.map +1 -0
  327. package/dist/icons/HierarchyIcon.js +1 -1
  328. package/dist/icons/HierarchyOpenIcon.js +1 -1
  329. package/dist/icons/Icon.js +1 -1
  330. package/dist/icons/InfoCircleIcon.js +1 -1
  331. package/dist/icons/InfoIcon.js +1 -1
  332. package/dist/icons/KeyIcon.js +1 -1
  333. package/dist/icons/LeftIcon.js +1 -1
  334. package/dist/icons/LineChartIcon.js +1 -1
  335. package/dist/icons/LoadingIcon.js +1 -1
  336. package/dist/icons/LockFilledIcon.js +1 -1
  337. package/dist/icons/LockIcon.js +1 -1
  338. package/dist/icons/MoreIcon.js +1 -1
  339. package/dist/icons/NotAllowedIcon.js +1 -1
  340. package/dist/icons/Number123Icon.js +1 -1
  341. package/dist/icons/NumberIcon.js +1 -1
  342. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  343. package/dist/icons/PauseCircleIcon.js +1 -1
  344. package/dist/icons/PauseIcon.js +1 -1
  345. package/dist/icons/PercentageIcon.js +1 -1
  346. package/dist/icons/PieChartIcon.js +1 -1
  347. package/dist/icons/PlayCircleIcon.js +1 -1
  348. package/dist/icons/PlayIcon.js +1 -1
  349. package/dist/icons/PlusIcon.js +1 -1
  350. package/dist/icons/ProgressBarIcon.js +1 -1
  351. package/dist/icons/ReloadIcon.js +1 -1
  352. package/dist/icons/ReportIcon.js +1 -1
  353. package/dist/icons/ReturnIcon.js +1 -1
  354. package/dist/icons/RightIcon.js +1 -1
  355. package/dist/icons/RowTotalsIcon.js +1 -1
  356. package/dist/icons/SchemeIcon.js +1 -1
  357. package/dist/icons/SearchIcon.js +1 -1
  358. package/dist/icons/SemanticQueryIcon.js +1 -1
  359. package/dist/icons/SettingsIcon.js +1 -1
  360. package/dist/icons/ShieldFilledIcon.js +1 -1
  361. package/dist/icons/ShieldIcon.js +1 -1
  362. package/dist/icons/SlashIcon.js +1 -1
  363. package/dist/icons/SparklesIcon.js +1 -1
  364. package/dist/icons/SqlIcon.js +1 -1
  365. package/dist/icons/StatsIcon.js +1 -1
  366. package/dist/icons/StopIcon.js +1 -1
  367. package/dist/icons/StringIcon.js +1 -1
  368. package/dist/icons/SubtotalsIcon.js +1 -1
  369. package/dist/icons/SwitchIcon.js +1 -1
  370. package/dist/icons/TableIcon.js +1 -1
  371. package/dist/icons/ThumbsDownIcon.js +1 -1
  372. package/dist/icons/ThumbsUpIcon.js +1 -1
  373. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  374. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  375. package/dist/icons/ThunderboltIcon.js +1 -1
  376. package/dist/icons/TimeIcon.js +1 -1
  377. package/dist/icons/TrashIcon.js +1 -1
  378. package/dist/icons/UnlockIcon.js +1 -1
  379. package/dist/icons/UpIcon.js +1 -1
  380. package/dist/icons/UserGroupIcon.js +1 -1
  381. package/dist/icons/UserIcon.js +1 -1
  382. package/dist/icons/UserLockIcon.js +1 -1
  383. package/dist/icons/ViewIcon.js +1 -1
  384. package/dist/icons/WarningFilledIcon.js +1 -1
  385. package/dist/icons/WarningIcon.js +1 -1
  386. package/dist/icons/index.d.ts +1 -0
  387. package/dist/icons/wrap-icon.js +1 -1
  388. package/dist/index.d.ts +3 -2
  389. package/dist/index.js +3 -2
  390. package/dist/index.js.map +1 -1
  391. package/dist/provider.js +1 -1
  392. package/dist/providers/TrackingProvider.js +1 -1
  393. package/dist/providers/navigationAdapter.default.js +1 -1
  394. package/dist/tokens/base.js +1 -1
  395. package/dist/tokens/colors.js +1 -1
  396. package/dist/tokens/index.js +1 -1
  397. package/dist/tokens/layout.js +1 -1
  398. package/dist/tokens/shadows.js +1 -1
  399. package/dist/tokens/sizes.js +1 -1
  400. package/dist/tokens/spacing.js +1 -1
  401. package/dist/tokens/typography.js +1 -1
  402. package/dist/utils/ResizeSensor.js +1 -1
  403. package/dist/utils/is-dev-env.js +1 -1
  404. package/dist/utils/modules.js +1 -1
  405. package/dist/utils/promise.js +1 -1
  406. package/dist/utils/raf.js +1 -1
  407. package/dist/utils/random.js +1 -1
  408. package/dist/utils/range.js +1 -1
  409. package/dist/utils/react/RenderCache.js +1 -1
  410. package/dist/utils/react/Slots.js +1 -1
  411. package/dist/utils/react/chain.js +1 -1
  412. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  413. package/dist/utils/react/index.js +1 -1
  414. package/dist/utils/react/interactions.js +1 -1
  415. package/dist/utils/react/isTextOnly.js +1 -1
  416. package/dist/utils/react/mapProps.js +1 -1
  417. package/dist/utils/react/mergeProps.js +1 -1
  418. package/dist/utils/react/nullableValue.js +1 -1
  419. package/dist/utils/react/resolveIcon.js +1 -1
  420. package/dist/utils/react/sharedStore.js +1 -1
  421. package/dist/utils/react/useCombinedRefs.js +1 -1
  422. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  423. package/dist/utils/react/useEventBus.js +1 -1
  424. package/dist/utils/react/useId.js +1 -1
  425. package/dist/utils/react/useIsDarwin.js +1 -1
  426. package/dist/utils/react/useKeySymbols.js +1 -1
  427. package/dist/utils/react/useLayoutEffect.js +1 -1
  428. package/dist/utils/react/useLocalStorage.js +1 -1
  429. package/dist/utils/react/useMergeStyles.js +1 -1
  430. package/dist/utils/react/useQaProps.js +1 -1
  431. package/dist/utils/react/useViewportSize.js +1 -1
  432. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  433. package/dist/utils/selection.js +1 -1
  434. package/dist/utils/styles.js +1 -1
  435. package/dist/utils/tree.js +1 -1
  436. package/dist/utils/warnings.js +1 -1
  437. package/dist/version.js +2 -2
  438. package/docs/components/content/Tree.md +115 -32
  439. package/docs/components/fields/FilterPicker.md +27 -0
  440. package/docs/components/fields/ListBox.md +33 -0
  441. package/docs/components/navigation/Tabs.md +127 -51
  442. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.131.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.133.0 | Cube Dev Team */
2
2
  import { mergeStyles } from "@tenphi/tasty";
3
3
  import { useMemo } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.131.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.133.0 | Cube Dev Team */
2
2
  //#region src/utils/react/useQaProps.ts
3
3
  /**
4
4
  * Processes QA props.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.131.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.133.0 | Cube Dev Team */
2
2
  import { useEffect, useState } from "react";
3
3
 
4
4
  //#region src/utils/react/useViewportSize.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.131.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.133.0 | Cube Dev Team */
2
2
  import { isValidElement } from "react";
3
3
  import { isFragment } from "react-is";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.131.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.133.0 | Cube Dev Team */
2
2
  //#region src/utils/selection.ts
3
3
  /**
4
4
  * Deduplicate/toggle keys in a selection: if a key appears twice it is
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.131.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.133.0 | Cube Dev Team */
2
2
  //#region src/utils/styles.ts
3
3
  /**
4
4
  * Split properties into style and non-style properties.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.131.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.133.0 | Cube Dev Team */
2
2
  //#region src/utils/tree.ts
3
3
  function toFlatTree(tree, includingFolders) {
4
4
  return tree.reduce((result, node) => {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.131.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.133.0 | Cube Dev Team */
2
2
  //#region src/utils/warnings.ts
3
3
  const SUGGESTED_PROP_MAP = {
4
4
  disabled: "isDisabled",
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.131.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.133.0 | Cube Dev Team */
2
2
  //#region src/version.ts
3
- const VERSION = "0.131.0";
3
+ const VERSION = "0.133.0";
4
4
  if (typeof window !== "undefined") {
5
5
  const version = VERSION;
6
6
  window.CubeUIKit = window.CubeUIKit || { version };
@@ -58,6 +58,31 @@ consumers can be migrated with minimal churn.
58
58
  — Called when a node is checked or unchecked.
59
59
  - **`onSelect`** `(selectedKeys: Key[], info: TreeOnSelectInfo) => void` —
60
60
  Called when row selection changes.
61
+ - **`menu`** `ReactNode | ((data, state) => ReactNode | null)` — Default
62
+ `Menu.Item` children rendered on every row that doesn't override via
63
+ `data.menu`. Returning `null` from the callback hides the menu for
64
+ that specific row.
65
+ - **`contextMenu`** `boolean | 'context-only'` (default: `false`) — How
66
+ the row menu is exposed.
67
+
68
+ - `false` — no menu at all.
69
+ - `true` — render an overflow `⋮` trigger inside `actions` AND open
70
+ the same menu on right-click / Shift+F10.
71
+ - `'context-only'` — right-click / Shift+F10 only; no `⋮` trigger.
72
+
73
+ Per-node `data.contextMenu` wins when provided.
74
+
75
+ - **`onAction`** `(action: string, key: Key) => void` — Called when a
76
+ menu action is triggered on any row. Receives the action key (with
77
+ React's `.$` prefix stripped) and the row key. Per-node
78
+ `data.onAction` is called first.
79
+ - **`menuTriggerProps`** `Partial<CubeMenuTriggerProps>` — Forwarded to
80
+ every per-row `MenuTrigger`.
81
+ - **`menuProps`** `Partial<CubeMenuProps<object>>` — Forwarded to every
82
+ per-row `Menu` (both the overflow `⋮` menu and the right-click context
83
+ menu). If you pass `onAction` here, it is **chained with** the
84
+ tree-level `onAction`/per-node `data.onAction` callbacks (it does not
85
+ override them) and receives the same normalized action key.
61
86
  - **`rowStyles`** `Styles` — Override styles for `[data-element="Row"]`.
62
87
 
63
88
  #### `CubeTreeNodeData`
@@ -74,6 +99,13 @@ consumers can be migrated with minimal churn.
74
99
  row.
75
100
  - **`isCheckable`** `boolean` — Per-node override; `false` hides the
76
101
  checkbox for this row even when the tree is `isCheckable`.
102
+ - **`menu`** `ReactNode | null` — Per-node menu override. Wins over
103
+ the tree-level `menu`. Pass `null` to hide the menu for this row
104
+ when the tree provides a default.
105
+ - **`contextMenu`** `boolean | 'context-only'` — Per-node override of
106
+ the tree-level `contextMenu`.
107
+ - **`onAction`** `(action: string) => void` — Per-node action callback.
108
+ Called before the tree-level `onAction`.
77
109
 
78
110
  ### Base Properties
79
111
 
@@ -102,21 +134,30 @@ spacing, hover/selected colors, or cell layout without re-targeting via
102
134
  - `Checkbox` — The checkbox slot (visible only when `isCheckable`).
103
135
  - `Title` — The title label.
104
136
 
137
+ ### Style Properties
138
+
139
+ These properties allow direct style application without using the `styles` prop:
140
+
141
+ - **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`, `scrollMargin`
142
+ - **Dimension:** `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
143
+ - **Block:** `border`, `radius`, `shadow`, `outline`
144
+
105
145
  ### Modifiers
106
146
 
107
147
  The following row-level modifiers are emitted automatically. They are
108
148
  useful when overriding `rowStyles`:
109
149
 
110
- | Modifier | Type | Description |
111
- | --------------- | --------- | ------------------------------------------------------ |
112
- | `selected` | `boolean` | Row is selected. |
113
- | `checked` | `boolean` | Row is fully checked. |
114
- | `indeterminate` | `boolean` | Row is in the half-checked state. |
115
- | `expanded` | `boolean` | Row is expanded. |
116
- | `disabled` | `boolean` | Row is disabled. |
117
- | `loading` | `boolean` | The row's children are being fetched via `loadData`. |
118
- | `leaf` | `boolean` | Row has no children. |
119
- | `has-checkbox` | `boolean` | Row renders a checkbox. |
150
+ | Modifier | Type | Description |
151
+ | --------------- | --------- | ---------------------------------------------------- |
152
+ | `selected` | `boolean` | Row is selected. |
153
+ | `checked` | `boolean` | Row is fully checked. |
154
+ | `indeterminate` | `boolean` | Row is in the half-checked state. |
155
+ | `expanded` | `boolean` | Row is expanded. |
156
+ | `disabled` | `boolean` | Row is disabled. |
157
+ | `loading` | `boolean` | The row's children are being fetched via `loadData`. |
158
+ | `leaf` | `boolean` | Row has no children. |
159
+ | `has-checkbox` | `boolean` | Row renders a checkbox. |
160
+ | `has-menu` | `boolean` | Row resolves a non-empty menu. |
120
161
 
121
162
  ## Variants
122
163
 
@@ -133,13 +174,19 @@ useful when overriding `rowStyles`:
133
174
 
134
175
  ```jsx
135
176
  const data = [
136
- { key: 'fruits', title: 'Fruits', children: [
137
- { key: 'apple', title: 'Apple' },
138
- { key: 'banana', title: 'Banana' },
139
- ]},
140
- { key: 'vegetables', title: 'Vegetables', children: [
141
- { key: 'carrot', title: 'Carrot' },
142
- ]},
177
+ {
178
+ key: 'fruits',
179
+ title: 'Fruits',
180
+ children: [
181
+ { key: 'apple', title: 'Apple' },
182
+ { key: 'banana', title: 'Banana' },
183
+ ],
184
+ },
185
+ {
186
+ key: 'vegetables',
187
+ title: 'Vegetables',
188
+ children: [{ key: 'carrot', title: 'Carrot' }],
189
+ },
143
190
  ];
144
191
 
145
192
  <Tree treeData={data} defaultExpandedKeys={['fruits']} />;
@@ -171,14 +218,17 @@ To match AntD's object-shape API, pass `checkedKeys` as
171
218
  `{ checked, halfChecked }`. `onCheck` returns the same shape.
172
219
 
173
220
  ```jsx
174
- const [checkedKeys, setCheckedKeys] = useState({ checked: [], halfChecked: [] });
221
+ const [checkedKeys, setCheckedKeys] = useState({
222
+ checked: [],
223
+ halfChecked: [],
224
+ });
175
225
 
176
226
  <Tree
177
227
  treeData={data}
178
228
  isCheckable
179
229
  checkedKeys={checkedKeys}
180
230
  onCheck={(next) => setCheckedKeys(next)}
181
- />
231
+ />;
182
232
  ```
183
233
 
184
234
  ### Lazy Loading
@@ -194,7 +244,7 @@ const handleLoadData = (node) =>
194
244
  .then((r) => r.json())
195
245
  .then((children) => mergeIntoTreeData(node.key, children));
196
246
 
197
- <Tree treeData={data} loadData={handleLoadData} />
247
+ <Tree treeData={data} loadData={handleLoadData} />;
198
248
  ```
199
249
 
200
250
  ### Auto-expand Parent (Filtering)
@@ -203,11 +253,7 @@ Pass the matching keys via `expandedKeys` and set `autoExpandParent` to
203
253
  keep their ancestors expanded.
204
254
 
205
255
  ```jsx
206
- <Tree
207
- treeData={data}
208
- expandedKeys={matchedKeys}
209
- autoExpandParent
210
- />
256
+ <Tree treeData={data} expandedKeys={matchedKeys} autoExpandParent />
211
257
  ```
212
258
 
213
259
  ### Per-node Disabling
@@ -217,14 +263,18 @@ node-level flags.
217
263
 
218
264
  ```jsx
219
265
  const data = [
220
- { key: 'a', title: 'A', children: [
221
- { key: 'a-1', title: 'A-1', isDisabled: true },
222
- { key: 'a-2', title: 'A-2', isCheckboxDisabled: true },
223
- { key: 'a-3', title: 'A-3', isCheckable: false },
224
- ]},
266
+ {
267
+ key: 'a',
268
+ title: 'A',
269
+ children: [
270
+ { key: 'a-1', title: 'A-1', isDisabled: true },
271
+ { key: 'a-2', title: 'A-2', isCheckboxDisabled: true },
272
+ { key: 'a-3', title: 'A-3', isCheckable: false },
273
+ ],
274
+ },
225
275
  ];
226
276
 
227
- <Tree treeData={data} isCheckable defaultExpandedKeys={['a']} />
277
+ <Tree treeData={data} isCheckable defaultExpandedKeys={['a']} />;
228
278
  ```
229
279
 
230
280
  ### Fixed Height
@@ -233,6 +283,40 @@ const data = [
233
283
  <Tree treeData={data} height={300} />
234
284
  ```
235
285
 
286
+ ### Per-row Menu (Overflow + Right-Click)
287
+
288
+ Pass `menu` (a `ReactNode` of `Menu.Item`s, or a callback) plus
289
+ `contextMenu={true}` to render a built-in `⋮` overflow trigger AND
290
+ open the same menu on right-click / `Shift+F10`. Use
291
+ `onAction(action, key)` at the tree level to handle actions, or
292
+ `data.onAction` for per-node behavior.
293
+
294
+ ```jsx
295
+ <Tree
296
+ treeData={data}
297
+ contextMenu
298
+ menu={
299
+ <>
300
+ <Menu.Item key="rename">Rename</Menu.Item>
301
+ <Menu.Item key="duplicate">Duplicate</Menu.Item>
302
+ <Menu.Item key="delete">Delete</Menu.Item>
303
+ </>
304
+ }
305
+ onAction={(action, key) => console.log(action, 'on', key)}
306
+ />
307
+ ```
308
+
309
+ ### Right-Click Only
310
+
311
+ `contextMenu="context-only"` keeps the right-click / `Shift+F10`
312
+ behavior but hides the `⋮` trigger — handy for clean file-tree UIs.
313
+
314
+ ### Per-Node Menu Overrides
315
+
316
+ Set `data.menu` to override the tree-level menu for a specific row,
317
+ or `null` to hide it entirely. `data.contextMenu` and
318
+ `data.onAction` follow the same per-row override pattern.
319
+
236
320
  ## Accessibility
237
321
 
238
322
  Tree implements the
@@ -287,7 +371,6 @@ via `useTree` from React Aria.
287
371
 
288
372
  - Built-in virtualization for very large trees (10k+ rows).
289
373
  - Drag-and-drop reordering, mirroring AntD's `draggable` API.
290
- - An `onRightClick`/context menu hook.
291
374
  - Reveal-on-mount: scroll the focused row into view when expanded
292
375
  programmatically.
293
376
  - Optional inline title editing.
@@ -66,6 +66,8 @@ A versatile selection component that combines a trigger button with a searchable
66
66
  - **`onOptionClick`** `(key: Key) => void` — Callback when an option is clicked (non-checkbox area)
67
67
  - **`onClear`** `() => void` — Callback called when the clear button is pressed
68
68
  - **`onOpenChange`** `(isOpen: boolean) => void` — Callback called when the popover open state changes
69
+ - **`isReorderable`** `boolean` (default: `false`) — Enable drag-and-drop item reordering in the dropdown list
70
+ - **`onReorder`** `(newOrder: string[]) => void` — Callback when items are reordered via drag-and-drop or keyboard (Alt+Arrow)
69
71
 
70
72
  ### Base Properties
71
73
 
@@ -503,6 +505,30 @@ Use `isLoadingItems` to indicate that items are currently being fetched. Unlike
503
505
  </FilterPicker>
504
506
  ```
505
507
 
508
+ ### Reorderable
509
+
510
+ Enable drag-and-drop reordering inside the dropdown with `isReorderable`. Items display a grip handle and can be dragged to new positions. Use `Alt+Arrow` keys to reorder via keyboard.
511
+
512
+ ```jsx
513
+ const [keyOrder, setKeyOrder] = useState([
514
+ 'revenue', 'orders', 'customers', 'sessions',
515
+ 'page-views', 'bounce-rate', 'conversion', 'aov',
516
+ 'retention', 'churn', 'ltv', 'arpu',
517
+ ]);
518
+
519
+ <FilterPicker
520
+ isReorderable
521
+ selectionMode="multiple"
522
+ defaultSelectedKeys={['revenue', 'orders', 'customers']}
523
+ label="Metrics"
524
+ onReorder={(newOrder) => setKeyOrder(newOrder)}
525
+ >
526
+ {keyOrder.map((key) => (
527
+ <FilterPicker.Item key={key}>{key}</FilterPicker.Item>
528
+ ))}
529
+ </FilterPicker>
530
+ ```
531
+
506
532
  ## Accessibility
507
533
 
508
534
  ### Keyboard Navigation
@@ -512,6 +538,7 @@ Use `isLoadingItems` to indicate that items are currently being fetched. Unlike
512
538
  - `Arrow Up/Down` - Opens the popover (when closed) or navigates through options (when open)
513
539
  - `Escape` - Closes the popover or clears search
514
540
  - `Home/End` - Navigate to first/last option
541
+ - `Alt+ArrowUp` / `Alt+ArrowDown` - Reorder the focused item (when `isReorderable`)
515
542
 
516
543
  ### Screen Reader Support
517
544
 
@@ -46,6 +46,8 @@ A versatile list selection component that allows users to select one or more ite
46
46
  - **`onOptionClick`** `(key: Key) => void` — Callback when an option is clicked (non-checkbox area)
47
47
  - **`items`** `Iterable<T>` — Array of items for dynamic content with render function pattern
48
48
  - **`disableSelectionToggle`** `boolean` (default: `false`) — When true, clicking an already-selected item keeps it selected instead of toggling it off
49
+ - **`isReorderable`** `boolean` (default: `false`) — Enable drag-and-drop item reordering. Disables virtualization when active
50
+ - **`onReorder`** `(newOrder: string[]) => void` — Callback when items are reordered via drag-and-drop or keyboard (Alt+Arrow)
49
51
 
50
52
  ### Base Properties
51
53
 
@@ -116,6 +118,8 @@ The `mods` property accepts the following modifiers you can override:
116
118
  - **`header`** `boolean` — Applied when header prop is provided or `showSelectAll={true}`
117
119
  - **`footer`** `boolean` — Applied when footer prop is provided
118
120
  - **`selectAll`** `boolean` — Applied when `showSelectAll={true}` in multiple selection mode
121
+ - **`draggable`** `boolean` — Applied to options when `isReorderable={true}`
122
+ - **`dragging`** `boolean` — Applied to the option currently being dragged
119
123
 
120
124
  ## Key Properties
121
125
 
@@ -604,6 +608,34 @@ const [selectedKey, setSelectedKey] = useState('apple');
604
608
  </Form>
605
609
  ```
606
610
 
611
+ ### Reorderable
612
+
613
+ Enable drag-and-drop reordering with `isReorderable`. Items display a grip handle and can be dragged to new positions. Use `Alt+Arrow` keys to reorder via keyboard.
614
+
615
+ ```jsx
616
+ const [keyOrder, setKeyOrder] = useState([
617
+ 'revenue', 'orders', 'customers', 'sessions',
618
+ ]);
619
+
620
+ <ListBox
621
+ isReorderable
622
+ selectionMode="multiple"
623
+ label="Metrics"
624
+ onReorder={(newOrder) => setKeyOrder(newOrder)}
625
+ >
626
+ {keyOrder.map((key) => (
627
+ <ListBox.Item key={key}>{key}</ListBox.Item>
628
+ ))}
629
+ </ListBox>
630
+ ```
631
+
632
+ **Key features:**
633
+
634
+ - **Drag-and-drop**: Reorder items by dragging the grip handle
635
+ - **Keyboard reordering**: Use `Alt+ArrowUp` / `Alt+ArrowDown` to move the focused item
636
+ - **Callback**: `onReorder` is called with the new key order after a drop or keyboard move
637
+ - **Virtualization**: Automatically disabled when reordering is active
638
+
607
639
  ## Accessibility
608
640
 
609
641
  ### Keyboard Navigation
@@ -614,6 +646,7 @@ const [selectedKey, setSelectedKey] = useState('apple');
614
646
  - `Home/End` - Move to first/last option
615
647
  - `Page Up/Page Down` - Move up/down by multiple items
616
648
  - `Escape` - Deselect all items (if onEscape not provided)
649
+ - `Alt+ArrowUp` / `Alt+ArrowDown` - Reorder the focused item (when `isReorderable`)
617
650
 
618
651
  ### Screen Reader Support
619
652