@cube-dev/ui-kit 0.0.0-canary-d0e6744 → 0.0.0-canary-4ba0ca0

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 (440) hide show
  1. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +1 -1
  18. package/dist/components/actions/Button/Button.js +1 -1
  19. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  20. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  21. package/dist/components/actions/ButtonSplit/context.js +1 -1
  22. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  23. package/dist/components/actions/CommandMenu/styled.js +1 -1
  24. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  25. package/dist/components/actions/ItemActionContext.js +1 -1
  26. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  27. package/dist/components/actions/Link/Link.js +1 -1
  28. package/dist/components/actions/Menu/Menu.js +1 -1
  29. package/dist/components/actions/Menu/MenuItem.js +1 -1
  30. package/dist/components/actions/Menu/MenuSection.js +1 -1
  31. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  32. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  34. package/dist/components/actions/Menu/context.js +1 -1
  35. package/dist/components/actions/Menu/styled.js +1 -1
  36. package/dist/components/actions/index.js +1 -1
  37. package/dist/components/actions/use-action.js +1 -1
  38. package/dist/components/actions/use-anchored-menu.js +1 -1
  39. package/dist/components/actions/use-context-menu.js +1 -1
  40. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  41. package/dist/components/content/Alert/Alert.js +1 -1
  42. package/dist/components/content/Alert/use-alert.js +1 -1
  43. package/dist/components/content/Avatar/Avatar.js +1 -1
  44. package/dist/components/content/Badge/Badge.js +1 -1
  45. package/dist/components/content/Card/Card.js +1 -1
  46. package/dist/components/content/Content.js +1 -1
  47. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  48. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  49. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  50. package/dist/components/content/Divider.js +1 -1
  51. package/dist/components/content/Footer.js +1 -1
  52. package/dist/components/content/Header.js +1 -1
  53. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  54. package/dist/components/content/Item/Item.js +1 -1
  55. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  56. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  57. package/dist/components/content/Layout/GridLayout.js +1 -1
  58. package/dist/components/content/Layout/Layout.js +1 -1
  59. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  60. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  61. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  62. package/dist/components/content/Layout/LayoutContent.js +1 -1
  63. package/dist/components/content/Layout/LayoutContext.js +1 -1
  64. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  65. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  66. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  67. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  68. package/dist/components/content/Layout/LayoutPane.js +1 -1
  69. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  70. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  71. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  72. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  73. package/dist/components/content/Layout/index.js +1 -1
  74. package/dist/components/content/Layout/utils.js +1 -1
  75. package/dist/components/content/Paragraph.js +1 -1
  76. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  77. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  78. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  79. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  80. package/dist/components/content/Result/Result.js +1 -1
  81. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  82. package/dist/components/content/Tag/Tag.js +1 -1
  83. package/dist/components/content/Text.js +1 -1
  84. package/dist/components/content/TextItem/TextItem.js +1 -1
  85. package/dist/components/content/Title.js +1 -1
  86. package/dist/components/content/Tree/Tree.js +3 -9
  87. package/dist/components/content/Tree/Tree.js.map +1 -1
  88. package/dist/components/content/Tree/TreeNode.js +18 -107
  89. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  90. package/dist/components/content/Tree/index.d.ts +1 -1
  91. package/dist/components/content/Tree/styled.js +1 -1
  92. package/dist/components/content/Tree/tree-index.js +1 -1
  93. package/dist/components/content/Tree/types.d.ts +1 -68
  94. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  95. package/dist/components/content/Tree/use-load-data.js +1 -1
  96. package/dist/components/content/highlightText.js +1 -1
  97. package/dist/components/content/use-auto-tooltip.js +1 -1
  98. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  99. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  100. package/dist/components/fields/Checkbox/context.js +1 -1
  101. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  102. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  103. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  104. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  105. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  106. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  107. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  108. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  109. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  110. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  111. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  112. package/dist/components/fields/DatePicker/intl.js +1 -1
  113. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  114. package/dist/components/fields/DatePicker/props.js +1 -1
  115. package/dist/components/fields/DatePicker/utils.js +1 -1
  116. package/dist/components/fields/FileInput/FileInput.js +1 -1
  117. package/dist/components/fields/FilterListBox/FilterListBox.js +5 -3
  118. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  119. package/dist/components/fields/FilterPicker/FilterPicker.js +4 -2
  120. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  121. package/dist/components/fields/Input/Input.js +1 -1
  122. package/dist/components/fields/ListBox/DraggableListBox.js +24 -0
  123. package/dist/components/fields/ListBox/DraggableListBox.js.map +1 -0
  124. package/dist/components/fields/ListBox/ListBox.d.ts +11 -0
  125. package/dist/components/fields/ListBox/ListBox.js +153 -38
  126. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  127. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  128. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  129. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  130. package/dist/components/fields/Picker/Picker.js +1 -1
  131. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  132. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  133. package/dist/components/fields/RadioGroup/context.js +1 -1
  134. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  135. package/dist/components/fields/Select/Select.js +1 -1
  136. package/dist/components/fields/Slider/Gradation.js +1 -1
  137. package/dist/components/fields/Slider/HueSlider.js +1 -1
  138. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  139. package/dist/components/fields/Slider/Slider.js +1 -1
  140. package/dist/components/fields/Slider/SliderBase.js +1 -1
  141. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  142. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  143. package/dist/components/fields/Slider/elements.js +1 -1
  144. package/dist/components/fields/Slider/index.js +1 -1
  145. package/dist/components/fields/Switch/Switch.js +1 -1
  146. package/dist/components/fields/TextArea/TextArea.js +1 -1
  147. package/dist/components/fields/TextInput/TextInput.js +1 -1
  148. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  149. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  150. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  151. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  152. package/dist/components/form/Form/Field.js +1 -1
  153. package/dist/components/form/Form/Form.js +1 -1
  154. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  155. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  156. package/dist/components/form/Form/SubmitError.js +1 -1
  157. package/dist/components/form/Form/index.js +1 -1
  158. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  159. package/dist/components/form/Form/use-field/use-field.js +1 -1
  160. package/dist/components/form/Form/use-form.js +1 -1
  161. package/dist/components/form/Form/validation.js +1 -1
  162. package/dist/components/form/Label.js +1 -1
  163. package/dist/components/form/wrapper.js +1 -1
  164. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  165. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  166. package/dist/components/layout/Flex.js +1 -1
  167. package/dist/components/layout/Flow.js +1 -1
  168. package/dist/components/layout/Grid.js +1 -1
  169. package/dist/components/layout/Panel.js +1 -1
  170. package/dist/components/layout/Prefix.js +1 -1
  171. package/dist/components/layout/ResizablePanel.js +1 -1
  172. package/dist/components/layout/Space.js +1 -1
  173. package/dist/components/layout/Suffix.js +1 -1
  174. package/dist/components/navigation/Tabs/DraggableTabList.js +11 -60
  175. package/dist/components/navigation/Tabs/DraggableTabList.js.map +1 -1
  176. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  177. package/dist/components/navigation/Tabs/TabButton.js +3 -10
  178. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  179. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  180. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  181. package/dist/components/navigation/Tabs/TabPicker.js +4 -2
  182. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  183. package/dist/components/navigation/Tabs/Tabs.js +5 -3
  184. package/dist/components/navigation/Tabs/Tabs.js.map +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.d.ts +5 -0
  189. package/dist/components/navigation/Tabs/types.js +1 -1
  190. package/dist/components/navigation/Tabs/types.js.map +1 -1
  191. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  192. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  193. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  194. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  195. package/dist/components/other/Calendar/Calendar.js +1 -1
  196. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  197. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  198. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  199. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  200. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  201. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  202. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  203. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  204. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  205. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  206. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  207. package/dist/components/overlays/Dialog/context.js +1 -1
  208. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  209. package/dist/components/overlays/Modal/Modal.js +1 -1
  210. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  211. package/dist/components/overlays/Modal/Overlay.js +1 -1
  212. package/dist/components/overlays/Modal/Popover.js +1 -1
  213. package/dist/components/overlays/Modal/Tray.js +1 -1
  214. package/dist/components/overlays/Modal/Underlay.js +1 -1
  215. package/dist/components/overlays/Notifications/Notification.js +1 -1
  216. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  217. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  218. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  219. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  220. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  221. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  222. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  223. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  224. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  225. package/dist/components/overlays/Notifications/index.js +1 -1
  226. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  227. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  228. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  229. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  230. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  231. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  232. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  233. package/dist/components/overlays/Toast/index.js +1 -1
  234. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  235. package/dist/components/overlays/Toast/useToast.js +1 -1
  236. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  237. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  238. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  239. package/dist/components/overlays/Tooltip/context.js +1 -1
  240. package/dist/components/portal/Portal.js +1 -1
  241. package/dist/components/portal/PortalProvider.js +1 -1
  242. package/dist/components/portal/usePortal.js +1 -1
  243. package/dist/components/shared/DraggableCollection.js +134 -0
  244. package/dist/components/shared/DraggableCollection.js.map +1 -0
  245. package/dist/components/shared/InvalidIcon.js +1 -1
  246. package/dist/components/shared/ValidIcon.js +1 -1
  247. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  248. package/dist/components/status/Spin/Cube.js +1 -1
  249. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  250. package/dist/components/status/Spin/Spin.js +1 -1
  251. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  252. package/dist/data/item-themes.js +1 -1
  253. package/dist/data/themes.js +1 -1
  254. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  255. package/dist/icons/AdjustmentsIcon.js +1 -1
  256. package/dist/icons/AiIcon.js +1 -1
  257. package/dist/icons/AreaChartIcon.js +1 -1
  258. package/dist/icons/BackwardIcon.js +1 -1
  259. package/dist/icons/BarChartIcon.js +1 -1
  260. package/dist/icons/BellFilledIcon.js +1 -1
  261. package/dist/icons/BellIcon.js +1 -1
  262. package/dist/icons/BooleanIcon.js +1 -1
  263. package/dist/icons/CalendarEditIcon.js +1 -1
  264. package/dist/icons/CalendarIcon.js +1 -1
  265. package/dist/icons/CaretDownIcon.js +1 -1
  266. package/dist/icons/CaretUpIcon.js +1 -1
  267. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  268. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  269. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  270. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  271. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  272. package/dist/icons/ChartBarLineIcon.js +1 -1
  273. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  274. package/dist/icons/ChartBarStackedIcon.js +1 -1
  275. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  276. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  277. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  278. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  279. package/dist/icons/ChartBubbleIcon.js +1 -1
  280. package/dist/icons/ChartDonut2Icon.js +1 -1
  281. package/dist/icons/ChartFunnelIcon.js +1 -1
  282. package/dist/icons/ChartHeatmapIcon.js +1 -1
  283. package/dist/icons/ChartKPIIcon.js +1 -1
  284. package/dist/icons/ChartPie2Icon.js +1 -1
  285. package/dist/icons/ChartScatterIcon.js +1 -1
  286. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  287. package/dist/icons/CheckCircleIcon.js +1 -1
  288. package/dist/icons/CheckIcon.js +1 -1
  289. package/dist/icons/CircleFilledIcon.js +1 -1
  290. package/dist/icons/ClearIcon.js +1 -1
  291. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  292. package/dist/icons/CloseCircleIcon.js +1 -1
  293. package/dist/icons/CloseIcon.js +1 -1
  294. package/dist/icons/CodeIcon.js +1 -1
  295. package/dist/icons/ColumnTotalIcon.js +1 -1
  296. package/dist/icons/CopyIcon.js +1 -1
  297. package/dist/icons/CountIcon.js +1 -1
  298. package/dist/icons/CubeIcon.js +1 -1
  299. package/dist/icons/CubePauseIcon.js +1 -1
  300. package/dist/icons/CubePlayIcon.js +1 -1
  301. package/dist/icons/CurrencyDollarIcon.js +1 -1
  302. package/dist/icons/DangerIcon.js +1 -1
  303. package/dist/icons/DashboardIcon.js +1 -1
  304. package/dist/icons/DatabaseIcon.js +1 -1
  305. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  306. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  307. package/dist/icons/DirectionIcon.js +1 -1
  308. package/dist/icons/DonutIcon.js +1 -1
  309. package/dist/icons/DownIcon.js +1 -1
  310. package/dist/icons/EditIcon.js +1 -1
  311. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  312. package/dist/icons/ExclamationCircleIcon.js +1 -1
  313. package/dist/icons/ExclamationIcon.js +1 -1
  314. package/dist/icons/EyeIcon.js +1 -1
  315. package/dist/icons/EyeInvisibleIcon.js +1 -1
  316. package/dist/icons/FilterIcon.js +1 -1
  317. package/dist/icons/FolderFilledIcon.js +1 -1
  318. package/dist/icons/FolderIcon.js +1 -1
  319. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  320. package/dist/icons/FolderOpenIcon.js +1 -1
  321. package/dist/icons/ForwardIcon.js +1 -1
  322. package/dist/icons/GripVerticalIcon.d.ts +12 -0
  323. package/dist/icons/GripVerticalIcon.js +11 -0
  324. package/dist/icons/GripVerticalIcon.js.map +1 -0
  325. package/dist/icons/HierarchyIcon.js +1 -1
  326. package/dist/icons/HierarchyOpenIcon.js +1 -1
  327. package/dist/icons/Icon.js +1 -1
  328. package/dist/icons/InfoCircleIcon.js +1 -1
  329. package/dist/icons/InfoIcon.js +1 -1
  330. package/dist/icons/KeyIcon.js +1 -1
  331. package/dist/icons/LeftIcon.js +1 -1
  332. package/dist/icons/LineChartIcon.js +1 -1
  333. package/dist/icons/LoadingIcon.js +1 -1
  334. package/dist/icons/LockFilledIcon.js +1 -1
  335. package/dist/icons/LockIcon.js +1 -1
  336. package/dist/icons/MoreIcon.js +1 -1
  337. package/dist/icons/NotAllowedIcon.js +1 -1
  338. package/dist/icons/Number123Icon.js +1 -1
  339. package/dist/icons/NumberIcon.js +1 -1
  340. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  341. package/dist/icons/PauseCircleIcon.js +1 -1
  342. package/dist/icons/PauseIcon.js +1 -1
  343. package/dist/icons/PercentageIcon.js +1 -1
  344. package/dist/icons/PieChartIcon.js +1 -1
  345. package/dist/icons/PlayCircleIcon.js +1 -1
  346. package/dist/icons/PlayIcon.js +1 -1
  347. package/dist/icons/PlusIcon.js +1 -1
  348. package/dist/icons/ProgressBarIcon.js +1 -1
  349. package/dist/icons/ReloadIcon.js +1 -1
  350. package/dist/icons/ReportIcon.js +1 -1
  351. package/dist/icons/ReturnIcon.js +1 -1
  352. package/dist/icons/RightIcon.js +1 -1
  353. package/dist/icons/RowTotalsIcon.js +1 -1
  354. package/dist/icons/SchemeIcon.js +1 -1
  355. package/dist/icons/SearchIcon.js +1 -1
  356. package/dist/icons/SemanticQueryIcon.js +1 -1
  357. package/dist/icons/SettingsIcon.js +1 -1
  358. package/dist/icons/ShieldFilledIcon.js +1 -1
  359. package/dist/icons/ShieldIcon.js +1 -1
  360. package/dist/icons/SlashIcon.js +1 -1
  361. package/dist/icons/SparklesIcon.js +1 -1
  362. package/dist/icons/SqlIcon.js +1 -1
  363. package/dist/icons/StatsIcon.js +1 -1
  364. package/dist/icons/StopIcon.js +1 -1
  365. package/dist/icons/StringIcon.js +1 -1
  366. package/dist/icons/SubtotalsIcon.js +1 -1
  367. package/dist/icons/SwitchIcon.js +1 -1
  368. package/dist/icons/TableIcon.js +1 -1
  369. package/dist/icons/ThumbsDownIcon.js +1 -1
  370. package/dist/icons/ThumbsUpIcon.js +1 -1
  371. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  372. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  373. package/dist/icons/ThunderboltIcon.js +1 -1
  374. package/dist/icons/TimeIcon.js +1 -1
  375. package/dist/icons/TrashIcon.js +1 -1
  376. package/dist/icons/UnlockIcon.js +1 -1
  377. package/dist/icons/UpIcon.js +1 -1
  378. package/dist/icons/UserGroupIcon.js +1 -1
  379. package/dist/icons/UserIcon.js +1 -1
  380. package/dist/icons/UserLockIcon.js +1 -1
  381. package/dist/icons/ViewIcon.js +1 -1
  382. package/dist/icons/WarningFilledIcon.js +1 -1
  383. package/dist/icons/WarningIcon.js +1 -1
  384. package/dist/icons/index.d.ts +1 -0
  385. package/dist/icons/wrap-icon.js +1 -1
  386. package/dist/index.d.ts +3 -2
  387. package/dist/index.js +3 -2
  388. package/dist/index.js.map +1 -1
  389. package/dist/provider.js +1 -1
  390. package/dist/providers/TrackingProvider.js +1 -1
  391. package/dist/providers/navigationAdapter.default.js +1 -1
  392. package/dist/tokens/base.js +1 -1
  393. package/dist/tokens/colors.js +1 -1
  394. package/dist/tokens/index.js +1 -1
  395. package/dist/tokens/layout.js +1 -1
  396. package/dist/tokens/shadows.js +1 -1
  397. package/dist/tokens/sizes.js +1 -1
  398. package/dist/tokens/spacing.js +1 -1
  399. package/dist/tokens/typography.js +1 -1
  400. package/dist/utils/ResizeSensor.js +1 -1
  401. package/dist/utils/is-dev-env.js +1 -1
  402. package/dist/utils/modules.js +1 -1
  403. package/dist/utils/promise.js +1 -1
  404. package/dist/utils/raf.js +1 -1
  405. package/dist/utils/random.js +1 -1
  406. package/dist/utils/range.js +1 -1
  407. package/dist/utils/react/RenderCache.js +1 -1
  408. package/dist/utils/react/Slots.js +1 -1
  409. package/dist/utils/react/chain.js +1 -1
  410. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  411. package/dist/utils/react/index.js +1 -1
  412. package/dist/utils/react/interactions.js +1 -1
  413. package/dist/utils/react/isTextOnly.js +1 -1
  414. package/dist/utils/react/mapProps.js +1 -1
  415. package/dist/utils/react/mergeProps.js +1 -1
  416. package/dist/utils/react/nullableValue.js +1 -1
  417. package/dist/utils/react/resolveIcon.js +1 -1
  418. package/dist/utils/react/sharedStore.js +1 -1
  419. package/dist/utils/react/useCombinedRefs.js +1 -1
  420. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  421. package/dist/utils/react/useEventBus.js +1 -1
  422. package/dist/utils/react/useId.js +1 -1
  423. package/dist/utils/react/useIsDarwin.js +1 -1
  424. package/dist/utils/react/useKeySymbols.js +1 -1
  425. package/dist/utils/react/useLayoutEffect.js +1 -1
  426. package/dist/utils/react/useLocalStorage.js +1 -1
  427. package/dist/utils/react/useMergeStyles.js +1 -1
  428. package/dist/utils/react/useQaProps.js +1 -1
  429. package/dist/utils/react/useViewportSize.js +1 -1
  430. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  431. package/dist/utils/selection.js +1 -1
  432. package/dist/utils/styles.js +1 -1
  433. package/dist/utils/tree.js +1 -1
  434. package/dist/utils/warnings.js +1 -1
  435. package/dist/version.js +2 -2
  436. package/docs/components/content/Tree.md +1 -86
  437. package/docs/components/fields/FilterPicker.md +27 -0
  438. package/docs/components/fields/ListBox.md +33 -0
  439. package/docs/components/navigation/Tabs.md +128 -50
  440. package/package.json +1 -1
@@ -58,31 +58,6 @@ 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
- - **`expandOnFolderClick`** `boolean` (default: `false`) — When `true`,
62
- pressing a non-leaf row toggles its expansion instead of selecting
63
- it. The chevron and keyboard navigation continue to work
64
- independently. Useful for file-tree UX where only leaves are
65
- meaningful selection targets.
66
- - **`menu`** `ReactNode | ((data, state) => ReactNode | null)` — Default
67
- `Menu.Item` children rendered on every row that doesn't override via
68
- `data.menu`. Returning `null` from the callback hides the menu for
69
- that specific row.
70
- - **`contextMenu`** `boolean | 'context-only'` (default: `false`) — How
71
- the row menu is exposed.
72
- - `false` — no menu at all.
73
- - `true` — render an overflow `⋮` trigger inside `actions` AND open
74
- the same menu on right-click / Shift+F10.
75
- - `'context-only'` — right-click / Shift+F10 only; no `⋮` trigger.
76
-
77
- Per-node `data.contextMenu` wins when provided.
78
- - **`onAction`** `(action: string, key: Key) => void` — Called when a
79
- menu action is triggered on any row. Receives the action key (with
80
- React's `.$` prefix stripped) and the row key. Per-node
81
- `data.onAction` is called first.
82
- - **`menuTriggerProps`** `Partial<CubeMenuTriggerProps>` — Forwarded to
83
- every per-row `MenuTrigger`.
84
- - **`menuProps`** `Partial<CubeMenuProps<object>>` — Forwarded to every
85
- per-row `Menu`.
86
61
  - **`rowStyles`** `Styles` — Override styles for `[data-element="Row"]`.
87
62
 
88
63
  #### `CubeTreeNodeData`
@@ -99,13 +74,6 @@ consumers can be migrated with minimal churn.
99
74
  row.
100
75
  - **`isCheckable`** `boolean` — Per-node override; `false` hides the
101
76
  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`.
109
77
 
110
78
  ### Base Properties
111
79
 
@@ -134,14 +102,6 @@ spacing, hover/selected colors, or cell layout without re-targeting via
134
102
  - `Checkbox` — The checkbox slot (visible only when `isCheckable`).
135
103
  - `Title` — The title label.
136
104
 
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
-
145
105
  ### Modifiers
146
106
 
147
107
  The following row-level modifiers are emitted automatically. They are
@@ -157,7 +117,6 @@ useful when overriding `rowStyles`:
157
117
  | `loading` | `boolean` | The row's children are being fetched via `loadData`. |
158
118
  | `leaf` | `boolean` | Row has no children. |
159
119
  | `has-checkbox` | `boolean` | Row renders a checkbox. |
160
- | `has-menu` | `boolean` | Row resolves a non-empty menu. |
161
120
 
162
121
  ## Variants
163
122
 
@@ -274,51 +233,6 @@ const data = [
274
233
  <Tree treeData={data} height={300} />
275
234
  ```
276
235
 
277
- ### Per-row Menu (Overflow + Right-Click)
278
-
279
- Pass `menu` (a `ReactNode` of `Menu.Item`s, or a callback) plus
280
- `contextMenu={true}` to render a built-in `⋮` overflow trigger AND
281
- open the same menu on right-click / `Shift+F10`. Use
282
- `onAction(action, key)` at the tree level to handle actions, or
283
- `data.onAction` for per-node behavior.
284
-
285
- ```jsx
286
- <Tree
287
- treeData={data}
288
- contextMenu
289
- menu={
290
- <>
291
- <Menu.Item key="rename">Rename</Menu.Item>
292
- <Menu.Item key="duplicate">Duplicate</Menu.Item>
293
- <Menu.Item key="delete">Delete</Menu.Item>
294
- </>
295
- }
296
- onAction={(action, key) => console.log(action, 'on', key)}
297
- />
298
- ```
299
-
300
- ### Right-Click Only
301
-
302
- `contextMenu="context-only"` keeps the right-click / `Shift+F10`
303
- behavior but hides the `⋮` trigger — handy for clean file-tree UIs.
304
-
305
- ### Per-Node Menu Overrides
306
-
307
- Set `data.menu` to override the tree-level menu for a specific row,
308
- or `null` to hide it entirely. `data.contextMenu` and
309
- `data.onAction` follow the same per-row override pattern.
310
-
311
- ### Expand on Folder Click
312
-
313
- `expandOnFolderClick` makes folder rows toggle their expansion when
314
- pressed instead of triggering selection. Leaves still select normally,
315
- which mirrors typical file-tree UX. Folder rows remain focusable for
316
- keyboard navigation, and the chevron toggle keeps working.
317
-
318
- ```jsx
319
- <Tree treeData={data} expandOnFolderClick />
320
- ```
321
-
322
236
  ## Accessibility
323
237
 
324
238
  Tree implements the
@@ -373,6 +287,7 @@ via `useTree` from React Aria.
373
287
 
374
288
  - Built-in virtualization for very large trees (10k+ rows).
375
289
  - Drag-and-drop reordering, mirroring AntD's `draggable` API.
290
+ - An `onRightClick`/context menu hook.
376
291
  - Reveal-on-mount: scroll the focused row into view when expanded
377
292
  programmatically.
378
293
  - 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
 
@@ -38,6 +38,7 @@ An accessible tabbed interface for organizing content into multiple panels, show
38
38
  - **`renderPanel`** `(key: string) => ReactNode` — Render function for lazy panel content
39
39
  - **`panelCacheKeys`** `Record<string, any>` — Cache keys for `renderPanel` content
40
40
  - **`isReorderable`** `boolean` (default: `false`) — Enable drag-and-drop tab reordering
41
+ - **`isPickerReorderable`** `boolean` (default: `false`) — Enable drag-and-drop reordering in the tab picker dropdown
41
42
  - **`keyOrder`** `string[]` — Controlled tab display order
42
43
  - **`onReorder`** `(newOrder: string[]) => void` — Callback when tabs are reordered
43
44
  - **`showTabPicker`** `boolean | 'auto'` (default: `false`) — Show dropdown tab picker
@@ -169,9 +170,7 @@ Optional wrapper for tabs when using explicit panel placement.
169
170
  Explicit panel definition for advanced layout control.
170
171
 
171
172
  ```jsx
172
- <Tabs.Panel key="tab1">
173
- Panel 1 content
174
- </Tabs.Panel>
173
+ <Tabs.Panel key="tab1">Panel 1 content</Tabs.Panel>
175
174
  ```
176
175
 
177
176
  ### Tabs.Action
@@ -187,7 +186,9 @@ Action button designed for the Tabs prefix/suffix slots. Styled with sharp edges
187
186
  </>
188
187
  }
189
188
  >
190
- <Tab key="tab1" title="Tab 1">Content</Tab>
189
+ <Tab key="tab1" title="Tab 1">
190
+ Content
191
+ </Tab>
191
192
  </Tabs>
192
193
  ```
193
194
 
@@ -243,16 +244,22 @@ Control the active tab externally with `activeKey` and `onChange`.
243
244
  const [activeKey, setActiveKey] = useState('tab1');
244
245
 
245
246
  <Tabs activeKey={activeKey} onChange={setActiveKey}>
246
- <Tab key="tab1" title="Tab 1">Content 1</Tab>
247
- <Tab key="tab2" title="Tab 2">Content 2</Tab>
248
- </Tabs>
247
+ <Tab key="tab1" title="Tab 1">
248
+ Content 1
249
+ </Tab>
250
+ <Tab key="tab2" title="Tab 2">
251
+ Content 2
252
+ </Tab>
253
+ </Tabs>;
249
254
  ```
250
255
 
251
256
  ### Disabled Tab
252
257
 
253
258
  ```jsx
254
259
  <Tabs defaultActiveKey="tab1">
255
- <Tab key="tab1" title="Active Tab">Content</Tab>
260
+ <Tab key="tab1" title="Active Tab">
261
+ Content
262
+ </Tab>
256
263
  <Tab key="tab2" title="Disabled Tab" isDisabled>
257
264
  Inaccessible content
258
265
  </Tab>
@@ -269,8 +276,12 @@ Add buttons or other elements before or after the tab list.
269
276
  prefix={<Button size="small">Menu</Button>}
270
277
  suffix={<Button size="small">Add New</Button>}
271
278
  >
272
- <Tab key="items" title="Items">Item list</Tab>
273
- <Tab key="archived" title="Archived">Archived items</Tab>
279
+ <Tab key="items" title="Items">
280
+ Item list
281
+ </Tab>
282
+ <Tab key="archived" title="Archived">
283
+ Archived items
284
+ </Tab>
274
285
  </Tabs>
275
286
  ```
276
287
 
@@ -286,21 +297,17 @@ const [tabs, setTabs] = useState([
286
297
 
287
298
  <Tabs
288
299
  defaultActiveKey="tab1"
289
- onDelete={(key) => setTabs(tabs.filter(t => t.key !== key))}
300
+ onDelete={(key) => setTabs(tabs.filter((t) => t.key !== key))}
290
301
  suffix={
291
- <Tabs.Action
292
- icon={<PlusIcon />}
293
- aria-label="Add tab"
294
- onPress={handleAdd}
295
- />
302
+ <Tabs.Action icon={<PlusIcon />} aria-label="Add tab" onPress={handleAdd} />
296
303
  }
297
304
  >
298
- {tabs.map(tab => (
305
+ {tabs.map((tab) => (
299
306
  <Tab key={tab.key} title={tab.title}>
300
307
  Content for {tab.title}
301
308
  </Tab>
302
309
  ))}
303
- </Tabs>
310
+ </Tabs>;
304
311
  ```
305
312
 
306
313
  ### Tab Menus
@@ -321,7 +328,9 @@ Add dropdown menus to tabs using the `menu` prop. This replaces the need for man
321
328
  // 'delete' is handled automatically via onDelete
322
329
  }}
323
330
  >
324
- <Tab key="tab1" title="Tab 1">Content</Tab>
331
+ <Tab key="tab1" title="Tab 1">
332
+ Content
333
+ </Tab>
325
334
  </Tabs>
326
335
  ```
327
336
 
@@ -355,7 +364,9 @@ Combine editable tabs with a menu for rename, duplicate, and delete actions.
355
364
  // 'delete' triggers onDelete automatically
356
365
  }}
357
366
  >
358
- <Tab key="tab1" title="Tab 1">Content</Tab>
367
+ <Tab key="tab1" title="Tab 1">
368
+ Content
369
+ </Tab>
359
370
  </Tabs>
360
371
  ```
361
372
 
@@ -373,7 +384,9 @@ Enable right-click context menus with the `contextMenu` prop. Uses the same menu
373
384
  </>
374
385
  }
375
386
  >
376
- <Tab key="tab1" title="Tab 1">Content</Tab>
387
+ <Tab key="tab1" title="Tab 1">
388
+ Content
389
+ </Tab>
377
390
  </Tabs>
378
391
  ```
379
392
 
@@ -388,7 +401,9 @@ Enable right-click context menus with the `contextMenu` prop. Uses the same menu
388
401
  </>
389
402
  }
390
403
  >
391
- <Tab key="tab1" title="Tab 1">Content</Tab>
404
+ <Tab key="tab1" title="Tab 1">
405
+ Content
406
+ </Tab>
392
407
  </Tabs>
393
408
  ```
394
409
 
@@ -405,9 +420,11 @@ Override or disable menus on individual tabs.
405
420
  </>
406
421
  }
407
422
  >
408
- <Tab key="tab1" title="Uses Default Menu">Content</Tab>
409
- <Tab
410
- key="tab2"
423
+ <Tab key="tab1" title="Uses Default Menu">
424
+ Content
425
+ </Tab>
426
+ <Tab
427
+ key="tab2"
411
428
  title="Custom Menu"
412
429
  menu={
413
430
  <>
@@ -417,7 +434,9 @@ Override or disable menus on individual tabs.
417
434
  >
418
435
  Content
419
436
  </Tab>
420
- <Tab key="tab3" title="No Menu" menu={null}>Content</Tab>
437
+ <Tab key="tab3" title="No Menu" menu={null}>
438
+ Content
439
+ </Tab>
421
440
  </Tabs>
422
441
  ```
423
442
 
@@ -437,7 +456,9 @@ Use `Menu.Section` for organized menus.
437
456
  </>
438
457
  }
439
458
  >
440
- <Tab key="tab1" title="Tab 1">Content</Tab>
459
+ <Tab key="tab1" title="Tab 1">
460
+ Content
461
+ </Tab>
441
462
  </Tabs>
442
463
  ```
443
464
 
@@ -453,10 +474,16 @@ const [keyOrder, setKeyOrder] = useState(['tab1', 'tab2', 'tab3']);
453
474
  keyOrder={keyOrder}
454
475
  onReorder={(newOrder) => setKeyOrder(newOrder)}
455
476
  >
456
- <Tab key="tab1" title="Tab 1">Content 1</Tab>
457
- <Tab key="tab2" title="Tab 2">Content 2</Tab>
458
- <Tab key="tab3" title="Tab 3">Content 3</Tab>
459
- </Tabs>
477
+ <Tab key="tab1" title="Tab 1">
478
+ Content 1
479
+ </Tab>
480
+ <Tab key="tab2" title="Tab 2">
481
+ Content 2
482
+ </Tab>
483
+ <Tab key="tab3" title="Tab 3">
484
+ Content 3
485
+ </Tab>
486
+ </Tabs>;
460
487
  ```
461
488
 
462
489
  **Key features:**
@@ -494,6 +521,33 @@ const [keyOrder, setKeyOrder] = useState(['tab1', 'tab2', 'tab3']);
494
521
  </Tabs>
495
522
  ```
496
523
 
524
+ ### Reorderable Tab Picker
525
+
526
+ Use `isPickerReorderable` to enable drag-and-drop reordering in the tab picker dropdown. This is controlled independently from `isReorderable` (horizontal tabs). Items in the dropdown display a grip handle and can be dragged to reorder. The same `onReorder` callback is shared between the horizontal tab bar and the vertical tab picker.
527
+
528
+ ```jsx
529
+ const [keyOrder, setKeyOrder] = useState(['tab1', 'tab2', 'tab3']);
530
+
531
+ <Tabs
532
+ isReorderable
533
+ isPickerReorderable
534
+ showTabPicker
535
+ type="file"
536
+ keyOrder={keyOrder}
537
+ onReorder={(newOrder) => setKeyOrder(newOrder)}
538
+ >
539
+ <Tab key="tab1" title="Tab 1">
540
+ Content 1
541
+ </Tab>
542
+ <Tab key="tab2" title="Tab 2">
543
+ Content 2
544
+ </Tab>
545
+ <Tab key="tab3" title="Tab 3">
546
+ Content 3
547
+ </Tab>
548
+ </Tabs>;
549
+ ```
550
+
497
551
  ### Scroll Arrows
498
552
 
499
553
  Add left/right navigation arrows to scroll overflowed tabs. Use `showScrollArrows` with `true`, `false`, or `'auto'` (shows only when tabs overflow).
@@ -504,7 +558,7 @@ Add left/right navigation arrows to scroll overflowed tabs. Use `showScrollArrow
504
558
  showScrollArrows="auto"
505
559
  styles={{ width: '500px' }}
506
560
  >
507
- {tabs.map(tab => (
561
+ {tabs.map((tab) => (
508
562
  <Tab key={tab.id} title={tab.title}>
509
563
  {tab.content}
510
564
  </Tab>
@@ -521,7 +575,7 @@ Combine with `showTabPicker` for both scroll arrows and a dropdown picker:
521
575
  showTabPicker="auto"
522
576
  type="file"
523
577
  >
524
- {tabs.map(tab => (
578
+ {tabs.map((tab) => (
525
579
  <Tab key={tab.id} title={tab.title}>
526
580
  {tab.content}
527
581
  </Tab>
@@ -543,7 +597,7 @@ By default, scroll arrows and the tab picker appear in the suffix (after the tab
543
597
  type="file"
544
598
  styles={{ width: '500px' }}
545
599
  >
546
- {tabs.map(tab => (
600
+ {tabs.map((tab) => (
547
601
  <Tab key={tab.id} title={tab.title}>
548
602
  {tab.content}
549
603
  </Tab>
@@ -552,6 +606,7 @@ By default, scroll arrows and the tab picker appear in the suffix (after the tab
552
606
  ```
553
607
 
554
608
  When both are in the same slot:
609
+
555
610
  - In **prefix**: TabPicker appears first (left), then scroll arrows (right)
556
611
  - In **suffix**: Scroll arrows appear first (left), then TabPicker (right)
557
612
 
@@ -565,10 +620,14 @@ const [view, setView] = useState('overview');
565
620
  <Tabs activeKey={view} onChange={setView}>
566
621
  <Tab key="overview" title="Overview" />
567
622
  <Tab key="settings" title="Settings" />
568
- </Tabs>
569
-
570
- {view === 'overview' && <OverviewPage />}
571
- {view === 'settings' && <SettingsPage />}
623
+ </Tabs>;
624
+
625
+ {
626
+ view === 'overview' && <OverviewPage />;
627
+ }
628
+ {
629
+ view === 'settings' && <SettingsPage />;
630
+ }
572
631
  ```
573
632
 
574
633
  ### Explicit Panels
@@ -592,8 +651,12 @@ Render all panels immediately but keep inactive ones hidden.
592
651
 
593
652
  ```jsx
594
653
  <Tabs defaultActiveKey="tab1" prerender>
595
- <Tab key="tab1" title="Tab 1">Content 1</Tab>
596
- <Tab key="tab2" title="Tab 2">Content 2</Tab>
654
+ <Tab key="tab1" title="Tab 1">
655
+ Content 1
656
+ </Tab>
657
+ <Tab key="tab2" title="Tab 2">
658
+ Content 2
659
+ </Tab>
597
660
  </Tabs>
598
661
  ```
599
662
 
@@ -622,8 +685,12 @@ Override per-tab/panel:
622
685
 
623
686
  ```jsx
624
687
  <Tabs prerender>
625
- <Tab key="tab1" title="Prerendered">Always in DOM</Tab>
626
- <Tab key="tab2" title="Lazy" prerender={false}>Lazy loaded</Tab>
688
+ <Tab key="tab1" title="Prerendered">
689
+ Always in DOM
690
+ </Tab>
691
+ <Tab key="tab2" title="Lazy" prerender={false}>
692
+ Lazy loaded
693
+ </Tab>
627
694
  </Tabs>
628
695
  ```
629
696
 
@@ -638,10 +705,14 @@ content is computed, while inactive tabs use cached content.
638
705
  defaultActiveKey="tab1"
639
706
  renderPanel={(key) => {
640
707
  switch (key) {
641
- case 'tab1': return <ExpensiveChart data={chartData} />;
642
- case 'tab2': return <LargeTable rows={tableRows} />;
643
- case 'tab3': return <ComplexForm fields={formFields} />;
644
- default: return null;
708
+ case 'tab1':
709
+ return <ExpensiveChart data={chartData} />;
710
+ case 'tab2':
711
+ return <LargeTable rows={tableRows} />;
712
+ case 'tab3':
713
+ return <ComplexForm fields={formFields} />;
714
+ default:
715
+ return null;
645
716
  }
646
717
  }}
647
718
  >
@@ -662,8 +733,8 @@ content is computed, while inactive tabs use cached content.
662
733
  <Tabs
663
734
  renderPanel={(key) => <Panel data={data[key]} />}
664
735
  panelCacheKeys={{
665
- tab1: data.tab1.version, // Cached, re-renders when version changes
666
- tab2: data.tab2.version, // Cached, re-renders when version changes
736
+ tab1: data.tab1.version, // Cached, re-renders when version changes
737
+ tab2: data.tab2.version, // Cached, re-renders when version changes
667
738
  // tab3 has no cache key - re-renders on every Tabs render
668
739
  }}
669
740
  >
@@ -672,6 +743,7 @@ content is computed, while inactive tabs use cached content.
672
743
  ```
673
744
 
674
745
  This approach is ideal for:
746
+
675
747
  - Tabs with complex visualizations or charts
676
748
  - Large data tables that are expensive to render
677
749
  - Forms with many fields
@@ -706,6 +778,7 @@ Tabs work seamlessly inside Layout components. When placed in a `Layout` or `Lay
706
778
  ```
707
779
 
708
780
  **How it works:**
781
+
709
782
  - The tab bar has fixed height and doesn't grow
710
783
  - Tab panels use `display: contents`, allowing children to participate in parent flex layout
711
784
  - Nested Layout components with `flexGrow: 1` (default) stretch to fill remaining space
@@ -722,6 +795,7 @@ Tabs work seamlessly inside Layout components. When placed in a `Layout` or `Lay
722
795
  - `Shift+F10` - Open tab menu (when menu is present)
723
796
  - `Delete` - Delete focused tab (when deletable)
724
797
  - `F2` - Start editing tab title (when editable)
798
+ - `Alt+ArrowLeft` / `Alt+ArrowRight` - Reorder the focused tab (when `isReorderable`)
725
799
 
726
800
  ### Screen Reader Support
727
801
 
@@ -744,13 +818,17 @@ Tabs work seamlessly inside Layout components. When placed in a `Layout` or `Lay
744
818
  1. **Do**: Use clear, descriptive tab titles
745
819
 
746
820
  ```jsx
747
- <Tab key="billing" title="Billing & Payments">...</Tab>
821
+ <Tab key="billing" title="Billing & Payments">
822
+ ...
823
+ </Tab>
748
824
  ```
749
825
 
750
826
  2. **Don't**: Use vague or single-letter titles
751
827
 
752
828
  ```jsx
753
- <Tab key="b" title="B">...</Tab>
829
+ <Tab key="b" title="B">
830
+ ...
831
+ </Tab>
754
832
  ```
755
833
 
756
834
  3. **Do**: Provide meaningful accessible labels
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cube-dev/ui-kit",
3
- "version": "0.0.0-canary-d0e6744",
3
+ "version": "0.0.0-canary-4ba0ca0",
4
4
  "type": "module",
5
5
  "description": "UIKit for Cube Projects",
6
6
  "repository": {