@cube-dev/ui-kit 0.155.0 → 0.157.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 (652) hide show
  1. package/dist/CHANGELOG.md +284 -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.d.ts +10 -1
  24. package/dist/components/actions/CommandMenu/CommandMenu.js +4 -3
  25. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  26. package/dist/components/actions/CommandMenu/styled.js +1 -1
  27. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  28. package/dist/components/actions/ItemActionContext.js +1 -1
  29. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  30. package/dist/components/actions/Link/Link.js +1 -1
  31. package/dist/components/actions/Menu/Menu.js +1 -1
  32. package/dist/components/actions/Menu/MenuItem.js +1 -1
  33. package/dist/components/actions/Menu/MenuSection.js +1 -1
  34. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  36. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  37. package/dist/components/actions/Menu/context.js +1 -1
  38. package/dist/components/actions/Menu/styled.js +1 -1
  39. package/dist/components/actions/index.js +1 -1
  40. package/dist/components/actions/use-action.js +1 -1
  41. package/dist/components/actions/use-anchored-menu.js +1 -1
  42. package/dist/components/actions/use-context-menu.js +42 -44
  43. package/dist/components/actions/use-context-menu.js.map +1 -1
  44. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  45. package/dist/components/content/Alert/Alert.js +1 -1
  46. package/dist/components/content/Alert/use-alert.js +1 -1
  47. package/dist/components/content/Avatar/Avatar.js +1 -1
  48. package/dist/components/content/Badge/Badge.js +1 -1
  49. package/dist/components/content/Card/Card.js +1 -1
  50. package/dist/components/content/Content.js +1 -1
  51. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  52. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  53. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  54. package/dist/components/content/Divider.js +1 -1
  55. package/dist/components/content/Footer.js +1 -1
  56. package/dist/components/content/Header.js +1 -1
  57. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  58. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  59. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  60. package/dist/components/content/Item/Item.js +1 -1
  61. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  62. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  63. package/dist/components/content/Layout/GridLayout.js +1 -1
  64. package/dist/components/content/Layout/Layout.js +1 -1
  65. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  66. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  67. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  68. package/dist/components/content/Layout/LayoutContent.js +1 -1
  69. package/dist/components/content/Layout/LayoutContext.js +1 -1
  70. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  71. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  72. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  73. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  74. package/dist/components/content/Layout/LayoutPane.js +1 -1
  75. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  76. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  77. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  78. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  79. package/dist/components/content/Layout/index.js +1 -1
  80. package/dist/components/content/Layout/utils.js +1 -1
  81. package/dist/components/content/Paragraph.js +1 -1
  82. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  83. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  84. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  85. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  86. package/dist/components/content/Result/Result.js +1 -1
  87. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  88. package/dist/components/content/Tag/Tag.js +2 -2
  89. package/dist/components/content/Tag/Tag.js.map +1 -1
  90. package/dist/components/content/Text.d.ts +14 -14
  91. package/dist/components/content/Text.js +1 -1
  92. package/dist/components/content/TextItem/TextItem.js +1 -1
  93. package/dist/components/content/Title.js +1 -1
  94. package/dist/components/content/Tree/Tree.js +1 -1
  95. package/dist/components/content/Tree/TreeNode.js +1 -1
  96. package/dist/components/content/Tree/styled.js +1 -1
  97. package/dist/components/content/Tree/tree-index.js +1 -1
  98. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  99. package/dist/components/content/Tree/use-load-data.js +1 -1
  100. package/dist/components/content/highlightText.js +1 -1
  101. package/dist/components/content/use-auto-tooltip.js +1 -1
  102. package/dist/components/data/DataTable/DataTable.d.ts +13 -0
  103. package/dist/components/data/DataTable/DataTable.js +246 -0
  104. package/dist/components/data/DataTable/DataTable.js.map +1 -0
  105. package/dist/components/data/DataTable/index.d.ts +3 -0
  106. package/dist/components/data/DataTable/types.d.ts +145 -0
  107. package/dist/components/data/ItemTable/ItemTable.d.ts +19 -0
  108. package/dist/components/data/ItemTable/ItemTable.js +350 -0
  109. package/dist/components/data/ItemTable/ItemTable.js.map +1 -0
  110. package/dist/components/data/ItemTable/ItemTableBulkBar.d.ts +23 -0
  111. package/dist/components/data/ItemTable/ItemTableBulkBar.js +131 -0
  112. package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +1 -0
  113. package/dist/components/data/ItemTable/ItemTableDragPreview.js +46 -0
  114. package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +1 -0
  115. package/dist/components/data/ItemTable/ItemTableFooter.js +79 -0
  116. package/dist/components/data/ItemTable/ItemTableFooter.js.map +1 -0
  117. package/dist/components/data/ItemTable/ItemTableToolbar.d.ts +34 -0
  118. package/dist/components/data/ItemTable/ItemTableToolbar.js +91 -0
  119. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -0
  120. package/dist/components/data/ItemTable/index.d.ts +4 -0
  121. package/dist/components/data/ItemTable/types.d.ts +327 -0
  122. package/dist/components/data/TableBase/ColumnResizer.js +70 -0
  123. package/dist/components/data/TableBase/ColumnResizer.js.map +1 -0
  124. package/dist/components/data/TableBase/RowCollection.js +99 -0
  125. package/dist/components/data/TableBase/RowCollection.js.map +1 -0
  126. package/dist/components/data/TableBase/TableRow.js +89 -0
  127. package/dist/components/data/TableBase/TableRow.js.map +1 -0
  128. package/dist/components/data/TableBase/TableView.d.ts +22 -0
  129. package/dist/components/data/TableBase/TableView.js +921 -0
  130. package/dist/components/data/TableBase/TableView.js.map +1 -0
  131. package/dist/components/data/TableBase/index.d.ts +5 -0
  132. package/dist/components/data/TableBase/row-menu.js +40 -0
  133. package/dist/components/data/TableBase/row-menu.js.map +1 -0
  134. package/dist/components/data/TableBase/styled.d.ts +5 -0
  135. package/dist/components/data/TableBase/styled.js +532 -0
  136. package/dist/components/data/TableBase/styled.js.map +1 -0
  137. package/dist/components/data/TableBase/types.d.ts +160 -0
  138. package/dist/components/data/TableBase/types.js +31 -0
  139. package/dist/components/data/TableBase/types.js.map +1 -0
  140. package/dist/components/data/TableBase/use-cell-selection.d.ts +3 -0
  141. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  142. package/dist/components/data/TableBase/use-cell-selection.js.map +1 -0
  143. package/dist/components/data/TableBase/use-container-width.js +35 -0
  144. package/dist/components/data/TableBase/use-container-width.js.map +1 -0
  145. package/dist/components/data/TableBase/use-row-move-animation.js +90 -0
  146. package/dist/components/data/TableBase/use-row-move-animation.js.map +1 -0
  147. package/dist/components/data/TableBase/use-scrollability.js +49 -0
  148. package/dist/components/data/TableBase/use-scrollability.js.map +1 -0
  149. package/dist/components/data/TableBase/use-table-columns.d.ts +2 -0
  150. package/dist/components/data/TableBase/use-table-columns.js +166 -0
  151. package/dist/components/data/TableBase/use-table-columns.js.map +1 -0
  152. package/dist/components/data/TableBase/use-table-search.js +64 -0
  153. package/dist/components/data/TableBase/use-table-search.js.map +1 -0
  154. package/dist/components/data/TableBase/use-table-selection.d.ts +4 -0
  155. package/dist/components/data/TableBase/use-table-selection.js +233 -0
  156. package/dist/components/data/TableBase/use-table-selection.js.map +1 -0
  157. package/dist/components/data/TableBase/use-table-sort.js +91 -0
  158. package/dist/components/data/TableBase/use-table-sort.js.map +1 -0
  159. package/dist/components/data/TableBase/use-table-sorts.js +97 -0
  160. package/dist/components/data/TableBase/use-table-sorts.js.map +1 -0
  161. package/dist/components/data/TableBase/use-table-storage.d.ts +8 -0
  162. package/dist/components/data/TableBase/use-table-storage.js +58 -0
  163. package/dist/components/data/TableBase/use-table-storage.js.map +1 -0
  164. package/dist/components/data/index.d.ts +10 -0
  165. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  166. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  167. package/dist/components/fields/Checkbox/context.js +1 -1
  168. package/dist/components/fields/ColorInput/ColorInput.d.ts +67 -0
  169. package/dist/components/fields/ColorInput/ColorInput.js +230 -0
  170. package/dist/components/fields/ColorInput/ColorInput.js.map +1 -0
  171. package/dist/components/fields/ColorInput/index.d.ts +2 -0
  172. package/dist/components/fields/ColorPicker/ColorPicker.d.ts +64 -0
  173. package/dist/components/fields/ColorPicker/ColorPicker.js +189 -0
  174. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -0
  175. package/dist/components/fields/ColorPicker/index.d.ts +2 -0
  176. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.d.ts +50 -0
  177. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +269 -0
  178. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -0
  179. package/dist/components/fields/ColorSwatchGroup/index.d.ts +2 -0
  180. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  181. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  182. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  183. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  184. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  185. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  186. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  187. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  188. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  189. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  190. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  191. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  192. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  193. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  194. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  195. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  196. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  197. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  198. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  199. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  200. package/dist/components/fields/DatePicker/period.js +1 -1
  201. package/dist/components/fields/DatePicker/props.js +1 -1
  202. package/dist/components/fields/DatePicker/utils.js +1 -1
  203. package/dist/components/fields/FileInput/FileInput.js +1 -1
  204. package/dist/components/fields/FilterListBox/FilterListBox.d.ts +3 -3
  205. package/dist/components/fields/FilterListBox/FilterListBox.js +8 -6
  206. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  207. package/dist/components/fields/FilterPicker/FilterPicker.js +6 -1
  208. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  209. package/dist/components/fields/Input/Input.js +2 -2
  210. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  211. package/dist/components/fields/ListBox/ListBox.d.ts +7 -0
  212. package/dist/components/fields/ListBox/ListBox.js +4 -3
  213. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  214. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  215. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  216. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  217. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  218. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  219. package/dist/components/fields/PasswordInput/PasswordInput.d.ts +2 -2
  220. package/dist/components/fields/PasswordInput/PasswordInput.js +12 -2
  221. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  222. package/dist/components/fields/Picker/Picker.js +6 -1
  223. package/dist/components/fields/Picker/Picker.js.map +1 -1
  224. package/dist/components/fields/RadioGroup/Radio.d.ts +2 -2
  225. package/dist/components/fields/RadioGroup/Radio.js +4 -4
  226. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  227. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  228. package/dist/components/fields/RadioGroup/context.js +1 -1
  229. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  230. package/dist/components/fields/SearchInput/SearchInput.d.ts +2 -2
  231. package/dist/components/fields/SearchInput/SearchInput.js +17 -4
  232. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  233. package/dist/components/fields/Select/Select.js +1 -1
  234. package/dist/components/fields/Slider/Gradation.js +1 -1
  235. package/dist/components/fields/Slider/HueSlider.js +1 -1
  236. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  237. package/dist/components/fields/Slider/Slider.js +1 -1
  238. package/dist/components/fields/Slider/SliderBase.js +1 -1
  239. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  240. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  241. package/dist/components/fields/Slider/elements.js +1 -1
  242. package/dist/components/fields/Slider/index.js +1 -1
  243. package/dist/components/fields/Switch/Switch.js +1 -1
  244. package/dist/components/fields/TextArea/TextArea.d.ts +2 -2
  245. package/dist/components/fields/TextArea/TextArea.js +12 -5
  246. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  247. package/dist/components/fields/TextInput/TextInput.d.ts +2 -2
  248. package/dist/components/fields/TextInput/TextInput.js +15 -3
  249. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  250. package/dist/components/fields/TextInput/TextInputBase.d.ts +17 -1
  251. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  252. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  253. package/dist/components/fields/TextInput/index.d.ts +1 -1
  254. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  255. package/dist/components/fields/color/ColorPanel.js +152 -0
  256. package/dist/components/fields/color/ColorPanel.js.map +1 -0
  257. package/dist/components/fields/color/ColorSwatch.d.ts +22 -0
  258. package/dist/components/fields/color/ColorSwatch.js +58 -0
  259. package/dist/components/fields/color/ColorSwatch.js.map +1 -0
  260. package/dist/components/fields/color/channels.d.ts +13 -0
  261. package/dist/components/fields/color/channels.js +194 -0
  262. package/dist/components/fields/color/channels.js.map +1 -0
  263. package/dist/components/fields/color/color.d.ts +21 -0
  264. package/dist/components/fields/color/color.js +282 -0
  265. package/dist/components/fields/color/color.js.map +1 -0
  266. package/dist/components/fields/color/context.js +20 -0
  267. package/dist/components/fields/color/context.js.map +1 -0
  268. package/dist/components/fields/color/index.d.ts +4 -0
  269. package/dist/components/fields/index.d.ts +11 -1
  270. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  271. package/dist/components/form/Form/Field.js +1 -1
  272. package/dist/components/form/Form/Form.js +1 -1
  273. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  274. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  275. package/dist/components/form/Form/SubmitError.js +1 -1
  276. package/dist/components/form/Form/index.js +1 -1
  277. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  278. package/dist/components/form/Form/use-field/use-field.js +1 -1
  279. package/dist/components/form/Form/use-form.js +1 -1
  280. package/dist/components/form/Form/validation.js +1 -1
  281. package/dist/components/form/Label.js +1 -1
  282. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  283. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  284. package/dist/components/form/validation/use-validation-props.js +1 -1
  285. package/dist/components/form/wrapper.js +1 -1
  286. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  287. package/dist/components/helpers/IconSwitch/IconSwitch.d.ts +26 -0
  288. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  289. package/dist/components/layout/Board/Board.d.ts +55 -1
  290. package/dist/components/layout/Board/Board.js +278 -75
  291. package/dist/components/layout/Board/Board.js.map +1 -1
  292. package/dist/components/layout/Board/BoardProvider.js +1 -1
  293. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  294. package/dist/components/layout/Board/Widget.d.ts +16 -0
  295. package/dist/components/layout/Board/Widget.js +6 -3
  296. package/dist/components/layout/Board/Widget.js.map +1 -1
  297. package/dist/components/layout/Board/WidgetHost.js +81 -14
  298. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  299. package/dist/components/layout/Board/board-context.js +1 -1
  300. package/dist/components/layout/Board/board-context.js.map +1 -1
  301. package/dist/components/layout/Board/board-store.js +2 -2
  302. package/dist/components/layout/Board/board-store.js.map +1 -1
  303. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  304. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  305. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  306. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  307. package/dist/components/layout/Board/grid-core/group-move.js +132 -0
  308. package/dist/components/layout/Board/grid-core/group-move.js.map +1 -0
  309. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  310. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  311. package/dist/components/layout/Board/index.d.ts +2 -1
  312. package/dist/components/layout/Board/index.js +2 -2
  313. package/dist/components/layout/Board/index.js.map +1 -1
  314. package/dist/components/layout/Board/responsive-utils.js +1 -1
  315. package/dist/components/layout/Board/use-board-layout.js +17 -12
  316. package/dist/components/layout/Board/use-board-layout.js.map +1 -1
  317. package/dist/components/layout/Board/use-board-registry.js +139 -20
  318. package/dist/components/layout/Board/use-board-registry.js.map +1 -1
  319. package/dist/components/layout/Board/use-board-select-modifier-key.js +24 -0
  320. package/dist/components/layout/Board/use-board-select-modifier-key.js.map +1 -0
  321. package/dist/components/layout/Board/use-board-selection.d.ts +8 -0
  322. package/dist/components/layout/Board/use-board-selection.js +113 -0
  323. package/dist/components/layout/Board/use-board-selection.js.map +1 -0
  324. package/dist/components/layout/Flex.js +1 -1
  325. package/dist/components/layout/Flow.js +1 -1
  326. package/dist/components/layout/Grid.js +1 -1
  327. package/dist/components/layout/Panel.js +1 -1
  328. package/dist/components/layout/Prefix.js +1 -1
  329. package/dist/components/layout/ResizablePanel.js +1 -1
  330. package/dist/components/layout/Space.js +1 -1
  331. package/dist/components/layout/Suffix.js +1 -1
  332. package/dist/components/navigation/Pagination/Pagination.d.ts +9 -0
  333. package/dist/components/navigation/Pagination/Pagination.js +258 -0
  334. package/dist/components/navigation/Pagination/Pagination.js.map +1 -0
  335. package/dist/components/navigation/Pagination/index.d.ts +4 -0
  336. package/dist/components/navigation/Pagination/types.d.ts +81 -0
  337. package/dist/components/navigation/Pagination/use-pagination.d.ts +52 -0
  338. package/dist/components/navigation/Pagination/use-pagination.js +83 -0
  339. package/dist/components/navigation/Pagination/use-pagination.js.map +1 -0
  340. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  341. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  342. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  343. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  344. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  345. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  346. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  347. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  348. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  349. package/dist/components/navigation/Tabs/styled.js +1 -1
  350. package/dist/components/navigation/Tabs/types.js +1 -1
  351. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  352. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  353. package/dist/components/navigation/index.d.ts +5 -1
  354. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  355. package/dist/components/other/Calendar/Calendar.js +1 -1
  356. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  357. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  358. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  359. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  360. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  361. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  362. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  363. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  364. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  365. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  366. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  367. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  368. package/dist/components/overlays/Dialog/context.js +1 -1
  369. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  370. package/dist/components/overlays/Modal/Modal.js +1 -1
  371. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  372. package/dist/components/overlays/Modal/Overlay.js +1 -1
  373. package/dist/components/overlays/Modal/Popover.js +1 -1
  374. package/dist/components/overlays/Modal/Tray.js +1 -1
  375. package/dist/components/overlays/Modal/Underlay.js +1 -1
  376. package/dist/components/overlays/Notifications/Notification.js +1 -1
  377. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  378. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  379. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  380. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  381. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  382. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  383. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  384. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  385. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  386. package/dist/components/overlays/Notifications/index.js +1 -1
  387. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  388. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  389. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  390. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  391. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  392. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  393. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  394. package/dist/components/overlays/Toast/index.js +1 -1
  395. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  396. package/dist/components/overlays/Toast/useToast.js +1 -1
  397. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  398. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  399. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  400. package/dist/components/overlays/Tooltip/context.js +1 -1
  401. package/dist/components/portal/Portal.js +1 -1
  402. package/dist/components/portal/PortalProvider.js +1 -1
  403. package/dist/components/portal/usePortal.js +1 -1
  404. package/dist/components/shared/DraggableCollection.js +24 -8
  405. package/dist/components/shared/DraggableCollection.js.map +1 -1
  406. package/dist/components/shared/InvalidIcon.js +1 -1
  407. package/dist/components/shared/ValidIcon.js +1 -1
  408. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  409. package/dist/components/status/Spin/Cube.js +1 -1
  410. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  411. package/dist/components/status/Spin/Spin.js +1 -1
  412. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  413. package/dist/data/item-themes.js +1 -1
  414. package/dist/data/themes.js +1 -1
  415. package/dist/eslint-plugin/defaults.generated.js +227 -5
  416. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  417. package/dist/eslint-plugin/index.js +1 -1
  418. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  419. package/dist/i18n/I18nProvider.js +1 -1
  420. package/dist/i18n/createFormatter.js +1 -1
  421. package/dist/i18n/index.js +1 -1
  422. package/dist/i18n/instance.js +1 -1
  423. package/dist/i18n/locales/de-DE/uikit.js +44 -1
  424. package/dist/i18n/locales/en-US/uikit.js +44 -1
  425. package/dist/i18n/locales/en-US/uikit.json.d.ts +49 -1
  426. package/dist/i18n/locales/es-ES/uikit.js +44 -1
  427. package/dist/i18n/locales/es-MX/uikit.js +44 -1
  428. package/dist/i18n/locales/fr-FR/uikit.js +44 -1
  429. package/dist/i18n/locales/it-IT/uikit.js +44 -1
  430. package/dist/i18n/locales/ja-JP/uikit.js +44 -1
  431. package/dist/i18n/locales/nb-NO/uikit.js +44 -1
  432. package/dist/i18n/locales/pt-BR/uikit.js +44 -1
  433. package/dist/i18n/locales/pt-PT/uikit.js +44 -1
  434. package/dist/i18n/locales/sv-SE/uikit.js +44 -1
  435. package/dist/i18n/locales/vi-VN/uikit.js +44 -1
  436. package/dist/i18n/locales.js +1 -1
  437. package/dist/i18n/useFormatter.js +1 -1
  438. package/dist/i18n/useI18n.js +1 -1
  439. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  440. package/dist/icons/AdjustmentsIcon.js +1 -1
  441. package/dist/icons/AiIcon.js +1 -1
  442. package/dist/icons/AreaChartIcon.js +1 -1
  443. package/dist/icons/BackwardIcon.js +1 -1
  444. package/dist/icons/BarChartIcon.js +1 -1
  445. package/dist/icons/BellFilledIcon.js +1 -1
  446. package/dist/icons/BellIcon.js +1 -1
  447. package/dist/icons/BooleanIcon.js +1 -1
  448. package/dist/icons/CalendarEditIcon.js +1 -1
  449. package/dist/icons/CalendarIcon.js +1 -1
  450. package/dist/icons/CaretDownIcon.js +1 -1
  451. package/dist/icons/CaretUpIcon.js +1 -1
  452. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  453. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  454. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  455. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  456. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  457. package/dist/icons/ChartBarLineIcon.js +1 -1
  458. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  459. package/dist/icons/ChartBarStackedIcon.js +1 -1
  460. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  461. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  462. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  463. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  464. package/dist/icons/ChartBubbleIcon.js +1 -1
  465. package/dist/icons/ChartDonut2Icon.js +1 -1
  466. package/dist/icons/ChartFunnelIcon.js +1 -1
  467. package/dist/icons/ChartHeatmapIcon.js +1 -1
  468. package/dist/icons/ChartKPIIcon.js +1 -1
  469. package/dist/icons/ChartPie2Icon.js +1 -1
  470. package/dist/icons/ChartScatterIcon.js +1 -1
  471. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  472. package/dist/icons/CheckCircleIcon.js +1 -1
  473. package/dist/icons/CheckIcon.js +1 -1
  474. package/dist/icons/CircleFilledIcon.js +1 -1
  475. package/dist/icons/ClearIcon.js +1 -1
  476. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  477. package/dist/icons/CloseCircleIcon.js +1 -1
  478. package/dist/icons/CloseIcon.js +1 -1
  479. package/dist/icons/CodeIcon.js +1 -1
  480. package/dist/icons/ColumnTotalIcon.js +1 -1
  481. package/dist/icons/CopyIcon.js +1 -1
  482. package/dist/icons/CountIcon.js +1 -1
  483. package/dist/icons/CubeIcon.js +1 -1
  484. package/dist/icons/CubePauseIcon.js +1 -1
  485. package/dist/icons/CubePlayIcon.js +1 -1
  486. package/dist/icons/CurrencyDollarIcon.js +1 -1
  487. package/dist/icons/DangerIcon.js +1 -1
  488. package/dist/icons/DashboardIcon.js +1 -1
  489. package/dist/icons/DatabaseIcon.js +1 -1
  490. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  491. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  492. package/dist/icons/DirectionIcon.js +1 -1
  493. package/dist/icons/DonutIcon.js +1 -1
  494. package/dist/icons/DownIcon.js +1 -1
  495. package/dist/icons/EditIcon.js +1 -1
  496. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  497. package/dist/icons/ExclamationCircleIcon.js +1 -1
  498. package/dist/icons/ExclamationIcon.js +1 -1
  499. package/dist/icons/EyeIcon.js +1 -1
  500. package/dist/icons/EyeInvisibleIcon.js +1 -1
  501. package/dist/icons/FilterIcon.js +1 -1
  502. package/dist/icons/FolderFilledIcon.js +1 -1
  503. package/dist/icons/FolderIcon.js +1 -1
  504. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  505. package/dist/icons/FolderOpenIcon.js +1 -1
  506. package/dist/icons/ForwardIcon.js +1 -1
  507. package/dist/icons/GripVerticalIcon.js +1 -1
  508. package/dist/icons/HierarchyIcon.js +1 -1
  509. package/dist/icons/HierarchyOpenIcon.js +1 -1
  510. package/dist/icons/Icon.js +1 -1
  511. package/dist/icons/InfoCircleIcon.js +1 -1
  512. package/dist/icons/InfoIcon.js +1 -1
  513. package/dist/icons/KeyIcon.js +1 -1
  514. package/dist/icons/LeftIcon.js +1 -1
  515. package/dist/icons/LineChartIcon.js +1 -1
  516. package/dist/icons/LoadingIcon.js +1 -1
  517. package/dist/icons/LockFilledIcon.js +1 -1
  518. package/dist/icons/LockIcon.js +1 -1
  519. package/dist/icons/MoreIcon.js +1 -1
  520. package/dist/icons/NotAllowedIcon.js +1 -1
  521. package/dist/icons/Number123Icon.js +1 -1
  522. package/dist/icons/NumberIcon.js +1 -1
  523. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  524. package/dist/icons/PauseCircleIcon.js +1 -1
  525. package/dist/icons/PauseIcon.js +1 -1
  526. package/dist/icons/PercentageIcon.js +1 -1
  527. package/dist/icons/PieChartIcon.js +1 -1
  528. package/dist/icons/PipetteIcon.d.ts +12 -0
  529. package/dist/icons/PipetteIcon.js +11 -0
  530. package/dist/icons/PipetteIcon.js.map +1 -0
  531. package/dist/icons/PlayCircleIcon.js +1 -1
  532. package/dist/icons/PlayIcon.js +1 -1
  533. package/dist/icons/PlusIcon.js +1 -1
  534. package/dist/icons/ProgressBarIcon.js +1 -1
  535. package/dist/icons/ReloadIcon.js +1 -1
  536. package/dist/icons/ReportIcon.js +1 -1
  537. package/dist/icons/ReturnIcon.js +1 -1
  538. package/dist/icons/RightIcon.js +1 -1
  539. package/dist/icons/RowTotalsIcon.js +1 -1
  540. package/dist/icons/SchemeIcon.js +1 -1
  541. package/dist/icons/SearchIcon.js +1 -1
  542. package/dist/icons/SemanticQueryIcon.js +1 -1
  543. package/dist/icons/SettingsIcon.js +1 -1
  544. package/dist/icons/ShieldFilledIcon.js +1 -1
  545. package/dist/icons/ShieldIcon.js +1 -1
  546. package/dist/icons/SlashIcon.js +1 -1
  547. package/dist/icons/SparklesIcon.js +1 -1
  548. package/dist/icons/SqlIcon.js +1 -1
  549. package/dist/icons/StatsIcon.js +1 -1
  550. package/dist/icons/StopIcon.js +1 -1
  551. package/dist/icons/StringIcon.js +1 -1
  552. package/dist/icons/SubtotalsIcon.js +1 -1
  553. package/dist/icons/SwitchIcon.js +1 -1
  554. package/dist/icons/TableIcon.js +1 -1
  555. package/dist/icons/ThumbsDownIcon.js +1 -1
  556. package/dist/icons/ThumbsUpIcon.js +1 -1
  557. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  558. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  559. package/dist/icons/ThunderboltIcon.js +1 -1
  560. package/dist/icons/TimeIcon.js +1 -1
  561. package/dist/icons/TrashIcon.js +1 -1
  562. package/dist/icons/UnlockIcon.js +1 -1
  563. package/dist/icons/UpIcon.js +1 -1
  564. package/dist/icons/UserGroupIcon.js +1 -1
  565. package/dist/icons/UserIcon.js +1 -1
  566. package/dist/icons/UserLockIcon.js +1 -1
  567. package/dist/icons/ViewIcon.js +1 -1
  568. package/dist/icons/WarningFilledIcon.js +1 -1
  569. package/dist/icons/WarningIcon.js +1 -1
  570. package/dist/icons/index.d.ts +1 -0
  571. package/dist/icons/wrap-icon.js +1 -1
  572. package/dist/index.d.ts +31 -12
  573. package/dist/index.js +24 -11
  574. package/dist/index.js.map +1 -1
  575. package/dist/provider.js +1 -1
  576. package/dist/providers/TrackingProvider.js +1 -1
  577. package/dist/providers/navigationAdapter.default.js +1 -1
  578. package/dist/tokens/base.js +1 -1
  579. package/dist/tokens/colors.js +1 -1
  580. package/dist/tokens/index.js +1 -1
  581. package/dist/tokens/layout.js +1 -1
  582. package/dist/tokens/lazy-styles.js +1 -1
  583. package/dist/tokens/palette-config.js +1 -1
  584. package/dist/tokens/palette.js +1 -1
  585. package/dist/tokens/shadows.js +1 -1
  586. package/dist/tokens/sizes.js +1 -1
  587. package/dist/tokens/spacing.js +1 -1
  588. package/dist/tokens/typography.d.ts +1 -1
  589. package/dist/tokens/typography.js +11 -2
  590. package/dist/tokens/typography.js.map +1 -1
  591. package/dist/utils/ResizeSensor.js +1 -1
  592. package/dist/utils/index.d.ts +1 -0
  593. package/dist/utils/is-dev-env.js +1 -1
  594. package/dist/utils/modules.js +1 -1
  595. package/dist/utils/promise.js +1 -1
  596. package/dist/utils/raf.js +1 -1
  597. package/dist/utils/random.js +1 -1
  598. package/dist/utils/range.js +1 -1
  599. package/dist/utils/react/RenderCache.js +1 -1
  600. package/dist/utils/react/Slots.js +1 -1
  601. package/dist/utils/react/chain.js +1 -1
  602. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  603. package/dist/utils/react/index.d.ts +1 -0
  604. package/dist/utils/react/index.js +2 -1
  605. package/dist/utils/react/interactions.js +1 -1
  606. package/dist/utils/react/isTextOnly.js +1 -1
  607. package/dist/utils/react/mapProps.js +1 -1
  608. package/dist/utils/react/mergeProps.js +1 -1
  609. package/dist/utils/react/nullableValue.js +1 -1
  610. package/dist/utils/react/resolveIcon.js +1 -1
  611. package/dist/utils/react/sharedStore.js +1 -1
  612. package/dist/utils/react/useBufferedValue.d.ts +56 -0
  613. package/dist/utils/react/useBufferedValue.js +86 -0
  614. package/dist/utils/react/useBufferedValue.js.map +1 -0
  615. package/dist/utils/react/useCombinedRefs.js +1 -1
  616. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  617. package/dist/utils/react/useEventBus.js +1 -1
  618. package/dist/utils/react/useId.js +1 -1
  619. package/dist/utils/react/useIsDarwin.js +1 -1
  620. package/dist/utils/react/useKeySymbols.js +1 -1
  621. package/dist/utils/react/useLayoutEffect.js +1 -1
  622. package/dist/utils/react/useLocalStorage.js +1 -1
  623. package/dist/utils/react/useMergeStyles.js +1 -1
  624. package/dist/utils/react/usePopoverSync.js +1 -1
  625. package/dist/utils/react/useQaProps.js +1 -1
  626. package/dist/utils/react/useViewportSize.js +1 -1
  627. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  628. package/dist/utils/selection.js +1 -1
  629. package/dist/utils/styles.js +1 -1
  630. package/dist/utils/tree.js +1 -1
  631. package/dist/utils/warnings.js +1 -1
  632. package/dist/version.js +2 -2
  633. package/docs/components/actions/ButtonGroup.md +1 -1
  634. package/docs/components/data/DataTable.md +298 -0
  635. package/docs/components/data/ItemTable.md +984 -0
  636. package/docs/components/fields/ColorInput.md +284 -0
  637. package/docs/components/fields/ColorPicker.md +212 -0
  638. package/docs/components/fields/ColorSwatchGroup.md +206 -0
  639. package/docs/components/fields/FilterPicker.md +1 -1
  640. package/docs/components/fields/ListBox.md +4 -0
  641. package/docs/components/fields/PasswordInput.md +1 -0
  642. package/docs/components/fields/Picker.md +1 -1
  643. package/docs/components/fields/SearchInput.md +1 -0
  644. package/docs/components/fields/TextArea.md +1 -0
  645. package/docs/components/fields/TextInput.md +1 -0
  646. package/docs/components/layout/Board.md +154 -6
  647. package/docs/components/navigation/Pagination.md +245 -0
  648. package/package.json +8 -3
  649. package/dist/components/organisms/FileTabs/FileTabs.d.ts +0 -54
  650. package/dist/components/organisms/FileTabs/FileTabs.js +0 -282
  651. package/dist/components/organisms/FileTabs/FileTabs.js.map +0 -1
  652. package/docs/components/organisms/FileTabs.md +0 -51
@@ -1,7 +1,8 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.155.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { useCallback, useEffect, useMemo, useRef } from "react";
4
- import { ListDropTargetDelegate, ListKeyboardDelegate, mergeProps, useDraggableCollection, useDroppableCollection } from "react-aria";
4
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
5
+ import { DragPreview, ListDropTargetDelegate, ListKeyboardDelegate, mergeProps, useDraggableCollection, useDroppableCollection } from "react-aria";
5
6
  import { useDraggableCollectionState, useDroppableCollectionState } from "react-stately";
6
7
 
7
8
  //#region src/components/shared/DraggableCollection.tsx
@@ -32,7 +33,7 @@ function createMockDragState(collection, selectionManager) {
32
33
  * Encapsulates all drag/drop hook calls so they are only invoked when
33
34
  * reordering is actually enabled.
34
35
  */
35
- function DraggableCollection({ state, listRef, orderedKeys, orientation, onReorder, children }) {
36
+ function DraggableCollection({ state, listRef, orderedKeys, orientation, onReorder, onItemDrop, shouldAcceptItemDrop, renderPreview, children }) {
36
37
  const handleReorder = useEvent((e) => {
37
38
  if (!onReorder) return;
38
39
  const { target, keys: movableKeys } = e;
@@ -55,6 +56,7 @@ function DraggableCollection({ state, listRef, orderedKeys, orientation, onReord
55
56
  }, []) : orderedKeys);
56
57
  });
57
58
  const getItems = useCallback((keys) => {
59
+ dragKeysRef.current = [...keys];
58
60
  return [...keys].map((key) => {
59
61
  const item = state.collection.getItem(key);
60
62
  return { "text/plain": item?.textValue || String(key) };
@@ -66,20 +68,30 @@ function DraggableCollection({ state, listRef, orderedKeys, orientation, onReord
66
68
  const value = Reflect.get(target, prop);
67
69
  return typeof value === "function" ? value.bind(target) : value;
68
70
  } }), [state.selectionManager]);
71
+ const previewRef = useRef(null);
69
72
  const dragState = useDraggableCollectionState({
70
73
  collection: state.collection,
71
74
  selectionManager: dragSelectionManager,
72
75
  getItems,
73
- getAllowedDropOperations
76
+ getAllowedDropOperations,
77
+ preview: renderPreview ? previewRef : void 0
74
78
  });
75
79
  useDraggableCollection({
76
80
  getItems,
77
81
  getAllowedDropOperations
78
82
  }, dragState, listRef);
83
+ const handleItemDrop = useEvent((e) => {
84
+ if (!onItemDrop) return;
85
+ const keys = [...e.dropOperation === "cancel" ? [] : dragKeysRef.current];
86
+ onItemDrop(e.target.key, keys);
87
+ });
88
+ const dragKeysRef = useRef([]);
79
89
  const dropState = useDroppableCollectionState({
80
90
  collection: state.collection,
81
91
  selectionManager: state.selectionManager,
82
- onReorder: handleReorder
92
+ onReorder: onReorder ? handleReorder : void 0,
93
+ onItemDrop: onItemDrop ? handleItemDrop : void 0,
94
+ shouldAcceptItemDrop: shouldAcceptItemDrop ? (target) => shouldAcceptItemDrop(target.key) : void 0
83
95
  });
84
96
  const { collectionProps } = useDroppableCollection({
85
97
  keyboardDelegate: useMemo(() => new ListKeyboardDelegate({
@@ -98,7 +110,8 @@ function DraggableCollection({ state, listRef, orderedKeys, orientation, onReord
98
110
  listRef,
99
111
  orientation
100
112
  ]),
101
- onReorder: handleReorder
113
+ onReorder: onReorder ? handleReorder : void 0,
114
+ onItemDrop: onItemDrop ? handleItemDrop : void 0
102
115
  }, dropState, listRef);
103
116
  const isDragActive = dragState.draggingKeys.size > 0;
104
117
  const endDragRef = useRef(dragState.endDrag);
@@ -117,7 +130,7 @@ function DraggableCollection({ state, listRef, orderedKeys, orientation, onReord
117
130
  document.addEventListener("keydown", handleEscape, true);
118
131
  return () => document.removeEventListener("keydown", handleEscape, true);
119
132
  }, [isDragActive]);
120
- return children(dragState, dropState, mergeProps(collectionProps, { onKeyDownCapture: useEvent((e) => {
133
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [children(dragState, dropState, mergeProps(collectionProps, { onKeyDownCapture: useEvent((e) => {
121
134
  if (!e.altKey || !onReorder) return;
122
135
  const target = e.target;
123
136
  if (target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement || target.isContentEditable) return;
@@ -140,7 +153,10 @@ function DraggableCollection({ state, listRef, orderedKeys, orientation, onReord
140
153
  const newKeys = [...orderedKeys];
141
154
  [newKeys[idx], newKeys[targetIdx]] = [newKeys[targetIdx], newKeys[idx]];
142
155
  onReorder(newKeys);
143
- }) }));
156
+ }) })), renderPreview ? /* @__PURE__ */ jsx(DragPreview, {
157
+ ref: previewRef,
158
+ children: () => renderPreview(dragKeysRef.current)
159
+ }) : null] });
144
160
  }
145
161
 
146
162
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"DraggableCollection.js","names":[],"sources":["../../../src/components/shared/DraggableCollection.tsx"],"sourcesContent":["import {\n KeyboardEvent,\n ReactNode,\n RefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport {\n DragItem,\n DroppableCollectionReorderEvent,\n ListDropTargetDelegate,\n ListKeyboardDelegate,\n mergeProps,\n useDraggableCollection,\n useDroppableCollection,\n} from 'react-aria';\nimport {\n DraggableCollectionState,\n DroppableCollectionState,\n useDraggableCollectionState,\n useDroppableCollectionState,\n} from 'react-stately';\n\nimport { useEvent } from '../../_internal/hooks';\n\nimport type { Collection, DropOperation, Key, Node } from '@react-types/shared';\n\nconst getAllowedDropOperations = (): DropOperation[] => ['move'];\n\n/**\n * Creates a no-op mock of DraggableCollectionState.\n * Used to satisfy useDraggableItem when drag is disabled (Rules of Hooks).\n */\nexport function createMockDragState(\n collection: Collection<Node<any>>,\n selectionManager: Record<string, any>,\n): DraggableCollectionState {\n return {\n collection,\n selectionManager,\n isDragging: () => false,\n getKeysForDrag: () => new Set<Key>(),\n draggedKey: null,\n draggingKeys: new Set<Key>(),\n getAllowedDropOperations: () => [],\n preview: null,\n isDisabled: false,\n startDrag: () => {},\n endDrag: () => {},\n } as DraggableCollectionState;\n}\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport interface DraggableCollectionProps {\n state: {\n collection: Collection<Node<any>>;\n selectionManager: { selectedKeys: Set<Key> } & Record<string, any>;\n disabledKeys: Set<Key>;\n };\n listRef: RefObject<HTMLElement | null>;\n orderedKeys: string[];\n orientation: 'horizontal' | 'vertical';\n onReorder?: (newOrder: string[]) => void;\n /** Render function receiving drag/drop states and merged collection+keyboard props */\n children: (\n dragState: DraggableCollectionState,\n dropState: DroppableCollectionState,\n collectionProps: Record<string, unknown>,\n ) => ReactNode;\n}\n\n// =============================================================================\n// Component\n// =============================================================================\n\n/**\n * Generic wrapper that enables drag-and-drop reordering for a collection.\n *\n * Used by both DraggableTabList (horizontal) and DraggableListBox (vertical).\n * Encapsulates all drag/drop hook calls so they are only invoked when\n * reordering is actually enabled.\n */\nexport function DraggableCollection({\n state,\n listRef,\n orderedKeys,\n orientation,\n onReorder,\n children,\n}: DraggableCollectionProps) {\n const handleReorder = useEvent((e: DroppableCollectionReorderEvent) => {\n if (!onReorder) return;\n\n const { target, keys: movableKeys } = e;\n const { dropPosition, key: targetKey } = target;\n const movableKey = [...movableKeys][0] as string;\n\n const movableIndex = orderedKeys.indexOf(movableKey);\n const targetIndex = orderedKeys.indexOf(String(targetKey));\n\n if (movableIndex === -1 || targetIndex === -1) return;\n\n const newKeys =\n movableIndex !== targetIndex\n ? orderedKeys.reduce((arr, key, i) => {\n if (i === movableIndex) {\n return arr;\n }\n\n if (i === targetIndex) {\n if (dropPosition === 'before') {\n arr.push(movableKey);\n arr.push(key);\n } else {\n arr.push(key);\n arr.push(movableKey);\n }\n } else {\n arr.push(key);\n }\n\n return arr;\n }, [] as string[])\n : orderedKeys;\n\n onReorder(newKeys);\n });\n\n const getItems = useCallback(\n (keys: Set<Key>): DragItem[] => {\n return [...keys].map((key) => {\n const item = state.collection.getItem(key);\n return {\n 'text/plain': item?.textValue || String(key),\n };\n });\n },\n [state.collection],\n );\n\n // Proxy selectionManager to hide selection from react-aria's drag logic.\n // Without this, react-aria drags ALL selected items when any selected item\n // is grabbed (hardcoded in useDraggableCollectionState → internal getKeys).\n // The proxy intercepts `selectedKeys` and `isSelected` so every item looks\n // unselected for drag, while all other methods (isDisabled, setFocusedKey, …)\n // delegate to the real manager. `bind(target)` preserves `this` for methods\n // that live on the prototype chain.\n const dragSelectionManager = useMemo(\n () =>\n new Proxy(state.selectionManager, {\n get(target, prop) {\n if (prop === 'selectedKeys') return new Set<Key>();\n if (prop === 'isSelected') return () => false;\n const value = Reflect.get(target, prop);\n return typeof value === 'function' ? value.bind(target) : value;\n },\n }),\n [state.selectionManager],\n );\n\n const dragState = useDraggableCollectionState({\n collection: state.collection,\n selectionManager: dragSelectionManager,\n getItems,\n getAllowedDropOperations,\n });\n\n useDraggableCollection(\n {\n getItems,\n getAllowedDropOperations,\n },\n dragState,\n listRef,\n );\n\n const dropState = useDroppableCollectionState({\n collection: state.collection,\n selectionManager: state.selectionManager,\n onReorder: handleReorder,\n });\n\n const keyboardDelegate = useMemo(\n () =>\n new ListKeyboardDelegate({\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n ref: listRef,\n orientation,\n }),\n [state.collection, state.disabledKeys, listRef, orientation],\n );\n\n const dropTargetDelegate = useMemo(\n () =>\n new ListDropTargetDelegate(state.collection, listRef, {\n orientation,\n }),\n [state.collection, listRef, orientation],\n );\n\n const { collectionProps } = useDroppableCollection(\n {\n keyboardDelegate,\n dropTargetDelegate,\n onReorder: handleReorder,\n },\n dropState,\n listRef,\n );\n\n // Force-cancel drag on Escape. Native HTML5 drag cancels visually, but some\n // browsers (Safari) don't fire `dragend` synchronously, leaving react-aria's\n // `isDragging` stale until a second keypress.\n const isDragActive = dragState.draggingKeys.size > 0;\n const endDragRef = useRef(dragState.endDrag);\n endDragRef.current = dragState.endDrag;\n\n useEffect(() => {\n if (!isDragActive) return;\n\n const handleEscape = (e: globalThis.KeyboardEvent) => {\n if (e.key === 'Escape') {\n endDragRef.current({\n type: 'cancel',\n x: 0,\n y: 0,\n dropOperation: 'cancel',\n isInternal: false,\n });\n }\n };\n\n document.addEventListener('keydown', handleEscape, true);\n\n return () => document.removeEventListener('keydown', handleEscape, true);\n }, [isDragActive]);\n\n // Alt+Arrow keyboard shortcut for reordering.\n // Uses capture phase so we read focusedKey BEFORE react-aria moves focus.\n // Skip when the event originates from a text input — Alt+Arrow is\n // word-by-word cursor navigation on macOS.\n const handleKeyDownCapture = useEvent((e: KeyboardEvent) => {\n if (!e.altKey || !onReorder) return;\n\n const target = e.target as HTMLElement;\n\n if (\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target.isContentEditable\n ) {\n return;\n }\n\n const moveKeys =\n orientation === 'vertical'\n ? { backward: 'ArrowUp', forward: 'ArrowDown' }\n : { backward: 'ArrowLeft', forward: 'ArrowRight' };\n\n const direction =\n e.key === moveKeys.backward ? -1 : e.key === moveKeys.forward ? 1 : 0;\n\n if (direction === 0) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n const focusedKey = String(state.selectionManager.focusedKey);\n const idx = orderedKeys.indexOf(focusedKey);\n\n if (idx === -1) return;\n\n const targetIdx = idx + direction;\n\n if (targetIdx < 0 || targetIdx >= orderedKeys.length) return;\n\n const newKeys = [...orderedKeys];\n [newKeys[idx], newKeys[targetIdx]] = [newKeys[targetIdx], newKeys[idx]];\n onReorder(newKeys);\n });\n\n return children(\n dragState,\n dropState,\n mergeProps(collectionProps, { onKeyDownCapture: handleKeyDownCapture }),\n );\n}\n"],"mappings":";;;;;;;AA6BA,MAAM,iCAAkD,CAAC,OAAO;;;;;AAMhE,SAAgB,oBACd,YACA,kBAC0B;AAC1B,QAAO;EACL;EACA;EACA,kBAAkB;EAClB,sCAAsB,IAAI,KAAU;EACpC,YAAY;EACZ,8BAAc,IAAI,KAAU;EAC5B,gCAAgC,EAAE;EAClC,SAAS;EACT,YAAY;EACZ,iBAAiB;EACjB,eAAe;EAChB;;;;;;;;;AAoCH,SAAgB,oBAAoB,EAClC,OACA,SACA,aACA,aACA,WACA,YAC2B;CAC3B,MAAM,gBAAgB,UAAU,MAAuC;AACrE,MAAI,CAAC,UAAW;EAEhB,MAAM,EAAE,QAAQ,MAAM,gBAAgB;EACtC,MAAM,EAAE,cAAc,KAAK,cAAc;EACzC,MAAM,aAAa,CAAC,GAAG,YAAY,CAAC;EAEpC,MAAM,eAAe,YAAY,QAAQ,WAAW;EACpD,MAAM,cAAc,YAAY,QAAQ,OAAO,UAAU,CAAC;AAE1D,MAAI,iBAAiB,MAAM,gBAAgB,GAAI;AAyB/C,YAtBE,iBAAiB,cACb,YAAY,QAAQ,KAAK,KAAK,MAAM;AAClC,OAAI,MAAM,aACR,QAAO;AAGT,OAAI,MAAM,YACR,KAAI,iBAAiB,UAAU;AAC7B,QAAI,KAAK,WAAW;AACpB,QAAI,KAAK,IAAI;UACR;AACL,QAAI,KAAK,IAAI;AACb,QAAI,KAAK,WAAW;;OAGtB,KAAI,KAAK,IAAI;AAGf,UAAO;KACN,EAAE,CAAa,GAClB,YAEY;GAClB;CAEF,MAAM,WAAW,aACd,SAA+B;AAC9B,SAAO,CAAC,GAAG,KAAK,CAAC,KAAK,QAAQ;GAC5B,MAAM,OAAO,MAAM,WAAW,QAAQ,IAAI;AAC1C,UAAO,EACL,cAAc,MAAM,aAAa,OAAO,IAAI,EAC7C;IACD;IAEJ,CAAC,MAAM,WAAW,CACnB;CASD,MAAM,uBAAuB,cAEzB,IAAI,MAAM,MAAM,kBAAkB,EAChC,IAAI,QAAQ,MAAM;AAChB,MAAI,SAAS,eAAgB,wBAAO,IAAI,KAAU;AAClD,MAAI,SAAS,aAAc,cAAa;EACxC,MAAM,QAAQ,QAAQ,IAAI,QAAQ,KAAK;AACvC,SAAO,OAAO,UAAU,aAAa,MAAM,KAAK,OAAO,GAAG;IAE7D,CAAC,EACJ,CAAC,MAAM,iBAAiB,CACzB;CAED,MAAM,YAAY,4BAA4B;EAC5C,YAAY,MAAM;EAClB,kBAAkB;EAClB;EACA;EACD,CAAC;AAEF,wBACE;EACE;EACA;EACD,EACD,WACA,QACD;CAED,MAAM,YAAY,4BAA4B;EAC5C,YAAY,MAAM;EAClB,kBAAkB,MAAM;EACxB,WAAW;EACZ,CAAC;CAqBF,MAAM,EAAE,oBAAoB,uBAC1B;EACE,kBArBqB,cAErB,IAAI,qBAAqB;GACvB,YAAY,MAAM;GAClB,cAAc,MAAM;GACpB,KAAK;GACL;GACD,CAAC,EACJ;GAAC,MAAM;GAAY,MAAM;GAAc;GAAS;GAAY,CAC7D;EAaG,oBAXuB,cAEvB,IAAI,uBAAuB,MAAM,YAAY,SAAS,EACpD,aACD,CAAC,EACJ;GAAC,MAAM;GAAY;GAAS;GAAY,CACzC;EAMG,WAAW;EACZ,EACD,WACA,QACD;CAKD,MAAM,eAAe,UAAU,aAAa,OAAO;CACnD,MAAM,aAAa,OAAO,UAAU,QAAQ;AAC5C,YAAW,UAAU,UAAU;AAE/B,iBAAgB;AACd,MAAI,CAAC,aAAc;EAEnB,MAAM,gBAAgB,MAAgC;AACpD,OAAI,EAAE,QAAQ,SACZ,YAAW,QAAQ;IACjB,MAAM;IACN,GAAG;IACH,GAAG;IACH,eAAe;IACf,YAAY;IACb,CAAC;;AAIN,WAAS,iBAAiB,WAAW,cAAc,KAAK;AAExD,eAAa,SAAS,oBAAoB,WAAW,cAAc,KAAK;IACvE,CAAC,aAAa,CAAC;AA8ClB,QAAO,SACL,WACA,WACA,WAAW,iBAAiB,EAAE,kBA3CH,UAAU,MAAqB;AAC1D,MAAI,CAAC,EAAE,UAAU,CAAC,UAAW;EAE7B,MAAM,SAAS,EAAE;AAEjB,MACE,kBAAkB,oBAClB,kBAAkB,uBAClB,OAAO,kBAEP;EAGF,MAAM,WACJ,gBAAgB,aACZ;GAAE,UAAU;GAAW,SAAS;GAAa,GAC7C;GAAE,UAAU;GAAa,SAAS;GAAc;EAEtD,MAAM,YACJ,EAAE,QAAQ,SAAS,WAAW,KAAK,EAAE,QAAQ,SAAS,UAAU,IAAI;AAEtE,MAAI,cAAc,EAAG;AAErB,IAAE,gBAAgB;AAClB,IAAE,iBAAiB;EAEnB,MAAM,aAAa,OAAO,MAAM,iBAAiB,WAAW;EAC5D,MAAM,MAAM,YAAY,QAAQ,WAAW;AAE3C,MAAI,QAAQ,GAAI;EAEhB,MAAM,YAAY,MAAM;AAExB,MAAI,YAAY,KAAK,aAAa,YAAY,OAAQ;EAEtD,MAAM,UAAU,CAAC,GAAG,YAAY;AAChC,GAAC,QAAQ,MAAM,QAAQ,cAAc,CAAC,QAAQ,YAAY,QAAQ,KAAK;AACvE,YAAU,QAAQ;GAClB,EAKsE,CAAC,CACxE"}
1
+ {"version":3,"file":"DraggableCollection.js","names":[],"sources":["../../../src/components/shared/DraggableCollection.tsx"],"sourcesContent":["import {\n KeyboardEvent,\n ReactNode,\n RefObject,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from 'react';\nimport {\n DragItem,\n DragPreview,\n DragPreviewRenderer,\n DroppableCollectionReorderEvent,\n ListDropTargetDelegate,\n ListKeyboardDelegate,\n mergeProps,\n useDraggableCollection,\n useDroppableCollection,\n} from 'react-aria';\nimport {\n DraggableCollectionState,\n DroppableCollectionState,\n useDraggableCollectionState,\n useDroppableCollectionState,\n} from 'react-stately';\n\nimport { useEvent } from '../../_internal/hooks';\n\nimport type { Collection, DropOperation, Key, Node } from '@react-types/shared';\n\nconst getAllowedDropOperations = (): DropOperation[] => ['move'];\n\n/**\n * Creates a no-op mock of DraggableCollectionState.\n * Used to satisfy useDraggableItem when drag is disabled (Rules of Hooks).\n */\nexport function createMockDragState(\n collection: Collection<Node<any>>,\n selectionManager: Record<string, any>,\n): DraggableCollectionState {\n return {\n collection,\n selectionManager,\n isDragging: () => false,\n getKeysForDrag: () => new Set<Key>(),\n draggedKey: null,\n draggingKeys: new Set<Key>(),\n getAllowedDropOperations: () => [],\n preview: null,\n isDisabled: false,\n startDrag: () => {},\n endDrag: () => {},\n } as DraggableCollectionState;\n}\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport interface DraggableCollectionProps {\n state: {\n collection: Collection<Node<any>>;\n selectionManager: { selectedKeys: Set<Key> } & Record<string, any>;\n disabledKeys: Set<Key>;\n };\n listRef: RefObject<HTMLElement | null>;\n orderedKeys: string[];\n orientation: 'horizontal' | 'vertical';\n onReorder?: (newOrder: string[]) => void;\n /**\n * Dropping *onto* an item rather than between items — a row that is a folder,\n * a tab that is a group. Mutually exclusive with reordering in practice: a\n * collection that accepts item drops usually has a meaningful order already.\n */\n onItemDrop?: (targetKey: Key, draggedKeys: Key[]) => void;\n /** Which items may receive a drop. Without it, none may. */\n shouldAcceptItemDrop?: (targetKey: Key) => boolean;\n /**\n * The image dragged under the cursor. Receives the keys being dragged rather\n * than React Aria's serialized `DragItem`s, because a caller that wants to\n * render an icon needs the record, not its `text/plain` form.\n *\n * Without one the browser drags a screenshot of the source element, which for\n * a full-width table row is a page-wide slab.\n */\n renderPreview?: (keys: Key[]) => ReactNode;\n /** Render function receiving drag/drop states and merged collection+keyboard props */\n children: (\n dragState: DraggableCollectionState,\n dropState: DroppableCollectionState,\n collectionProps: Record<string, unknown>,\n ) => ReactNode;\n}\n\n// =============================================================================\n// Component\n// =============================================================================\n\n/**\n * Generic wrapper that enables drag-and-drop reordering for a collection.\n *\n * Used by both DraggableTabList (horizontal) and DraggableListBox (vertical).\n * Encapsulates all drag/drop hook calls so they are only invoked when\n * reordering is actually enabled.\n */\nexport function DraggableCollection({\n state,\n listRef,\n orderedKeys,\n orientation,\n onReorder,\n onItemDrop,\n shouldAcceptItemDrop,\n renderPreview,\n children,\n}: DraggableCollectionProps) {\n const handleReorder = useEvent((e: DroppableCollectionReorderEvent) => {\n if (!onReorder) return;\n\n const { target, keys: movableKeys } = e;\n const { dropPosition, key: targetKey } = target;\n const movableKey = [...movableKeys][0] as string;\n\n const movableIndex = orderedKeys.indexOf(movableKey);\n const targetIndex = orderedKeys.indexOf(String(targetKey));\n\n if (movableIndex === -1 || targetIndex === -1) return;\n\n const newKeys =\n movableIndex !== targetIndex\n ? orderedKeys.reduce((arr, key, i) => {\n if (i === movableIndex) {\n return arr;\n }\n\n if (i === targetIndex) {\n if (dropPosition === 'before') {\n arr.push(movableKey);\n arr.push(key);\n } else {\n arr.push(key);\n arr.push(movableKey);\n }\n } else {\n arr.push(key);\n }\n\n return arr;\n }, [] as string[])\n : orderedKeys;\n\n onReorder(newKeys);\n });\n\n const getItems = useCallback(\n (keys: Set<Key>): DragItem[] => {\n dragKeysRef.current = [...keys];\n\n return [...keys].map((key) => {\n const item = state.collection.getItem(key);\n return {\n 'text/plain': item?.textValue || String(key),\n };\n });\n },\n [state.collection],\n );\n\n // Proxy selectionManager to hide selection from react-aria's drag logic.\n // Without this, react-aria drags ALL selected items when any selected item\n // is grabbed (hardcoded in useDraggableCollectionState → internal getKeys).\n // The proxy intercepts `selectedKeys` and `isSelected` so every item looks\n // unselected for drag, while all other methods (isDisabled, setFocusedKey, …)\n // delegate to the real manager. `bind(target)` preserves `this` for methods\n // that live on the prototype chain.\n const dragSelectionManager = useMemo(\n () =>\n new Proxy(state.selectionManager, {\n get(target, prop) {\n if (prop === 'selectedKeys') return new Set<Key>();\n if (prop === 'isSelected') return () => false;\n const value = Reflect.get(target, prop);\n return typeof value === 'function' ? value.bind(target) : value;\n },\n }),\n [state.selectionManager],\n );\n\n const previewRef = useRef<DragPreviewRenderer>(null);\n\n const dragState = useDraggableCollectionState({\n collection: state.collection,\n selectionManager: dragSelectionManager,\n getItems,\n getAllowedDropOperations,\n preview: renderPreview ? previewRef : undefined,\n });\n\n useDraggableCollection(\n {\n getItems,\n getAllowedDropOperations,\n },\n dragState,\n listRef,\n );\n\n const handleItemDrop = useEvent((e: any) => {\n if (!onItemDrop) return;\n\n const keys = [...(e.dropOperation === 'cancel' ? [] : dragKeysRef.current)];\n\n onItemDrop(e.target.key, keys);\n });\n\n // The keys being dragged, captured at drag start: by the time the drop lands\n // React Aria has already cleared them from the drag state.\n const dragKeysRef = useRef<Key[]>([]);\n\n const dropState = useDroppableCollectionState({\n collection: state.collection,\n selectionManager: state.selectionManager,\n onReorder: onReorder ? handleReorder : undefined,\n onItemDrop: onItemDrop ? handleItemDrop : undefined,\n // `'on'` is only offered for items that accept it; everything else falls\n // back to reordering, or to nothing.\n shouldAcceptItemDrop: shouldAcceptItemDrop\n ? (target: any) => shouldAcceptItemDrop(target.key)\n : undefined,\n });\n\n const keyboardDelegate = useMemo(\n () =>\n new ListKeyboardDelegate({\n collection: state.collection,\n disabledKeys: state.disabledKeys,\n ref: listRef,\n orientation,\n }),\n [state.collection, state.disabledKeys, listRef, orientation],\n );\n\n const dropTargetDelegate = useMemo(\n () =>\n new ListDropTargetDelegate(state.collection, listRef, {\n orientation,\n }),\n [state.collection, listRef, orientation],\n );\n\n const { collectionProps } = useDroppableCollection(\n {\n keyboardDelegate,\n dropTargetDelegate,\n onReorder: onReorder ? handleReorder : undefined,\n onItemDrop: onItemDrop ? handleItemDrop : undefined,\n },\n dropState,\n listRef,\n );\n\n // Force-cancel drag on Escape. Native HTML5 drag cancels visually, but some\n // browsers (Safari) don't fire `dragend` synchronously, leaving react-aria's\n // `isDragging` stale until a second keypress.\n const isDragActive = dragState.draggingKeys.size > 0;\n const endDragRef = useRef(dragState.endDrag);\n endDragRef.current = dragState.endDrag;\n\n useEffect(() => {\n if (!isDragActive) return;\n\n const handleEscape = (e: globalThis.KeyboardEvent) => {\n if (e.key === 'Escape') {\n endDragRef.current({\n type: 'cancel',\n x: 0,\n y: 0,\n dropOperation: 'cancel',\n isInternal: false,\n });\n }\n };\n\n document.addEventListener('keydown', handleEscape, true);\n\n return () => document.removeEventListener('keydown', handleEscape, true);\n }, [isDragActive]);\n\n // Alt+Arrow keyboard shortcut for reordering.\n // Uses capture phase so we read focusedKey BEFORE react-aria moves focus.\n // Skip when the event originates from a text input — Alt+Arrow is\n // word-by-word cursor navigation on macOS.\n const handleKeyDownCapture = useEvent((e: KeyboardEvent) => {\n if (!e.altKey || !onReorder) return;\n\n const target = e.target as HTMLElement;\n\n if (\n target instanceof HTMLInputElement ||\n target instanceof HTMLTextAreaElement ||\n target.isContentEditable\n ) {\n return;\n }\n\n const moveKeys =\n orientation === 'vertical'\n ? { backward: 'ArrowUp', forward: 'ArrowDown' }\n : { backward: 'ArrowLeft', forward: 'ArrowRight' };\n\n const direction =\n e.key === moveKeys.backward ? -1 : e.key === moveKeys.forward ? 1 : 0;\n\n if (direction === 0) return;\n\n e.preventDefault();\n e.stopPropagation();\n\n const focusedKey = String(state.selectionManager.focusedKey);\n const idx = orderedKeys.indexOf(focusedKey);\n\n if (idx === -1) return;\n\n const targetIdx = idx + direction;\n\n if (targetIdx < 0 || targetIdx >= orderedKeys.length) return;\n\n const newKeys = [...orderedKeys];\n [newKeys[idx], newKeys[targetIdx]] = [newKeys[targetIdx], newKeys[idx]];\n onReorder(newKeys);\n });\n\n return (\n <>\n {children(\n dragState,\n dropState,\n mergeProps(collectionProps, { onKeyDownCapture: handleKeyDownCapture }),\n )}\n {renderPreview ? (\n // Rendered off-screen by React Aria and snapshotted at drag start. The\n // keys come from the ref rather than the `DragItem`s the render\n // function is handed, which only carry `text/plain`.\n <DragPreview ref={previewRef}>\n {() => renderPreview(dragKeysRef.current)}\n </DragPreview>\n ) : null}\n </>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.155.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.0 | Cube Dev Team */
2
2
  import { WarningIcon } from "../../icons/WarningIcon.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.155.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.0 | Cube Dev Team */
2
2
  import { CheckIcon } from "../../icons/CheckIcon.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.155.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.0 | Cube Dev Team */
2
2
  import { Block } from "../../Block.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.155.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.0 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
  import { memo } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.155.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.0 | Cube Dev Team */
2
2
  import { Cube } from "./Cube.js";
3
3
  import { SpinsContainer } from "./SpinsContainer.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.155.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.0 | Cube Dev Team */
2
2
  import { Block } from "../../Block.js";
3
3
  import { InternalSpinner } from "./InternalSpinner.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.155.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.0 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.155.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.0 | Cube Dev Team */
2
2
  //#region src/data/item-themes.ts
3
3
  const VALIDATION_STYLES = { border: {
4
4
  invalid: "#danger-accent-text",
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.155.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.0 | Cube Dev Team */
2
2
  //#region src/data/themes.ts
3
3
  var themes_default = {
4
4
  special: {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.155.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.157.0 | Cube Dev Team */
2
2
  //#region src/eslint-plugin/defaults.generated.ts
3
3
  const DEFAULTS = { components: {
4
4
  Alert: { props: {
@@ -150,6 +150,14 @@ const DEFAULTS = { components: {
150
150
  kind: "default",
151
151
  value: 100
152
152
  },
153
+ selectionCancel: {
154
+ kind: "default",
155
+ value: "BOARD_SELECTION_CANCEL"
156
+ },
157
+ selectionMode: {
158
+ kind: "default",
159
+ value: "none"
160
+ },
153
161
  showGridLines: {
154
162
  kind: "default",
155
163
  value: false
@@ -350,6 +358,68 @@ const DEFAULTS = { components: {
350
358
  value: "Code example"
351
359
  }
352
360
  } },
361
+ DataTable: { props: {
362
+ autoHidePagination: {
363
+ kind: "default",
364
+ value: true
365
+ },
366
+ cellSelectionMode: {
367
+ kind: "default",
368
+ value: "range"
369
+ },
370
+ defaultPageSize: {
371
+ kind: "default",
372
+ value: 100
373
+ },
374
+ isHeaderSticky: {
375
+ kind: "default",
376
+ value: true
377
+ },
378
+ isResizable: {
379
+ kind: "default",
380
+ value: true
381
+ },
382
+ isRowMoveAnimated: {
383
+ kind: "default",
384
+ value: true
385
+ },
386
+ isStriped: {
387
+ kind: "default",
388
+ value: true
389
+ },
390
+ isVirtualized: {
391
+ kind: "default",
392
+ value: "auto"
393
+ },
394
+ loadingIndicator: {
395
+ kind: "default",
396
+ value: "overlay"
397
+ },
398
+ paginationMode: {
399
+ kind: "default",
400
+ value: "client"
401
+ },
402
+ rowKey: {
403
+ kind: "default",
404
+ value: "id"
405
+ },
406
+ shape: {
407
+ kind: "default",
408
+ value: "plain"
409
+ },
410
+ showRowNumbers: {
411
+ kind: "default",
412
+ value: false
413
+ },
414
+ size: {
415
+ kind: "default",
416
+ value: "small"
417
+ },
418
+ skeletonRowCount: {
419
+ kind: "default",
420
+ value: 6
421
+ }
422
+ } },
353
423
  DatePicker: { props: {
354
424
  granularity: {
355
425
  kind: "default",
@@ -497,10 +567,6 @@ const DEFAULTS = { components: {
497
567
  value: "file"
498
568
  }
499
569
  } },
500
- FileTabs: { props: { isClosable: {
501
- kind: "default",
502
- value: true
503
- } } },
504
570
  FilterListBox: { props: {
505
571
  allowsCustomValue: {
506
572
  kind: "default",
@@ -895,6 +961,116 @@ const DEFAULTS = { components: {
895
961
  value: true
896
962
  }
897
963
  } },
964
+ ItemTable: { props: {
965
+ autoHidePagination: {
966
+ kind: "default",
967
+ value: true
968
+ },
969
+ bulkBarPlacement: {
970
+ kind: "default",
971
+ value: "floating"
972
+ },
973
+ defaultPage: {
974
+ kind: "default",
975
+ value: 1
976
+ },
977
+ defaultPageSize: {
978
+ kind: "default",
979
+ value: 50
980
+ },
981
+ headerPreset: {
982
+ kind: "default",
983
+ value: "c3"
984
+ },
985
+ isHeaderHidden: {
986
+ kind: "default",
987
+ value: false
988
+ },
989
+ isHeaderSticky: {
990
+ kind: "default",
991
+ value: true
992
+ },
993
+ isLoading: {
994
+ kind: "default",
995
+ value: false
996
+ },
997
+ isReorderable: {
998
+ kind: "default",
999
+ value: false
1000
+ },
1001
+ isResizable: {
1002
+ kind: "default",
1003
+ value: false
1004
+ },
1005
+ isRowMoveAnimated: {
1006
+ kind: "default",
1007
+ value: true
1008
+ },
1009
+ isSearchable: {
1010
+ kind: "default",
1011
+ value: false
1012
+ },
1013
+ isStriped: {
1014
+ kind: "default",
1015
+ value: false
1016
+ },
1017
+ isVirtualized: {
1018
+ kind: "default",
1019
+ value: "auto"
1020
+ },
1021
+ loadingIndicator: {
1022
+ kind: "default",
1023
+ value: "overlay"
1024
+ },
1025
+ overscan: {
1026
+ kind: "default",
1027
+ value: 12
1028
+ },
1029
+ paginationMode: {
1030
+ kind: "default",
1031
+ value: "client"
1032
+ },
1033
+ rowContextMenu: {
1034
+ kind: "default",
1035
+ value: false
1036
+ },
1037
+ rowKey: {
1038
+ kind: "default",
1039
+ value: "id"
1040
+ },
1041
+ searchDelay: {
1042
+ kind: "default",
1043
+ value: 500
1044
+ },
1045
+ searchMode: {
1046
+ kind: "default",
1047
+ value: "client"
1048
+ },
1049
+ selectAllMode: {
1050
+ kind: "default",
1051
+ value: "page"
1052
+ },
1053
+ selectionMode: {
1054
+ kind: "default",
1055
+ value: "none"
1056
+ },
1057
+ shape: {
1058
+ kind: "default",
1059
+ value: "plain"
1060
+ },
1061
+ skeletonRowCount: {
1062
+ kind: "default",
1063
+ value: 6
1064
+ },
1065
+ sortMode: {
1066
+ kind: "default",
1067
+ value: "client"
1068
+ },
1069
+ virtualizeThreshold: {
1070
+ kind: "default",
1071
+ value: 50
1072
+ }
1073
+ } },
898
1074
  Layout: { props: {
899
1075
  contentPadding: {
900
1076
  kind: "default",
@@ -1017,7 +1193,41 @@ const DEFAULTS = { components: {
1017
1193
  value: "before"
1018
1194
  }
1019
1195
  } },
1196
+ Pagination: { props: {
1197
+ boundaryCount: {
1198
+ kind: "default",
1199
+ value: 1
1200
+ },
1201
+ defaultPage: {
1202
+ kind: "default",
1203
+ value: 1
1204
+ },
1205
+ defaultPageSize: {
1206
+ kind: "default",
1207
+ value: 50
1208
+ },
1209
+ isCompact: {
1210
+ kind: "default",
1211
+ value: false
1212
+ },
1213
+ siblingCount: {
1214
+ kind: "default",
1215
+ value: 1
1216
+ },
1217
+ size: {
1218
+ kind: "default",
1219
+ value: "small"
1220
+ },
1221
+ type: {
1222
+ kind: "default",
1223
+ value: "numbers"
1224
+ }
1225
+ } },
1020
1226
  PasswordInput: { props: {
1227
+ isBuffered: {
1228
+ kind: "default",
1229
+ value: true
1230
+ },
1021
1231
  size: {
1022
1232
  kind: "default",
1023
1233
  value: "medium"
@@ -1155,6 +1365,10 @@ const DEFAULTS = { components: {
1155
1365
  }
1156
1366
  } },
1157
1367
  SearchInput: { props: {
1368
+ isBuffered: {
1369
+ kind: "default",
1370
+ value: true
1371
+ },
1158
1372
  isClearable: {
1159
1373
  kind: "default",
1160
1374
  value: false
@@ -1413,6 +1627,10 @@ const DEFAULTS = { components: {
1413
1627
  kind: "default",
1414
1628
  value: false
1415
1629
  },
1630
+ isBuffered: {
1631
+ kind: "default",
1632
+ value: true
1633
+ },
1416
1634
  maxRows: {
1417
1635
  kind: "default",
1418
1636
  value: 10
@@ -1431,6 +1649,10 @@ const DEFAULTS = { components: {
1431
1649
  }
1432
1650
  } },
1433
1651
  TextInput: { props: {
1652
+ isBuffered: {
1653
+ kind: "default",
1654
+ value: true
1655
+ },
1434
1656
  multiLine: {
1435
1657
  kind: "default",
1436
1658
  value: false