@cube-dev/ui-kit 0.0.0-canary-e056095 → 0.0.0-canary-31f7f8e

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 (619) hide show
  1. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  2. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  3. package/dist/_internal/hooks/use-event.js +1 -1
  4. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  5. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  6. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  7. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  8. package/dist/_internal/hooks/use-warn.js +1 -1
  9. package/dist/components/Block.js +1 -1
  10. package/dist/components/CollectionItem.js +1 -1
  11. package/dist/components/GlobalStyles.js +1 -1
  12. package/dist/components/GridProvider.js +1 -1
  13. package/dist/components/HiddenInput.js +1 -1
  14. package/dist/components/Root.js +1 -1
  15. package/dist/components/actions/Action/Action.js +1 -1
  16. package/dist/components/actions/Banner/Banner.js +1 -1
  17. package/dist/components/actions/Button/Button.d.ts +0 -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/InfoBadge/InfoBadge.js +1 -1
  55. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  56. package/dist/components/content/Item/Item.js +1 -1
  57. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  58. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  59. package/dist/components/content/Layout/GridLayout.js +1 -1
  60. package/dist/components/content/Layout/Layout.js +2 -2
  61. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  62. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  63. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  64. package/dist/components/content/Layout/LayoutContent.js +2 -2
  65. package/dist/components/content/Layout/LayoutContext.js +1 -1
  66. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  67. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  68. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  69. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  70. package/dist/components/content/Layout/LayoutPane.js +2 -2
  71. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  72. package/dist/components/content/Layout/LayoutPanelHeader.js +2 -2
  73. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  74. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  75. package/dist/components/content/Layout/index.js +1 -1
  76. package/dist/components/content/Layout/utils.js +1 -1
  77. package/dist/components/content/Paragraph.js +1 -1
  78. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  79. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  80. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  81. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  82. package/dist/components/content/Result/Result.js +1 -1
  83. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  84. package/dist/components/content/Tag/Tag.js +1 -1
  85. package/dist/components/content/Text.d.ts +28 -28
  86. package/dist/components/content/Text.js +1 -1
  87. package/dist/components/content/TextItem/TextItem.js +1 -1
  88. package/dist/components/content/Title.js +1 -1
  89. package/dist/components/content/Tree/Tree.js +1 -1
  90. package/dist/components/content/Tree/TreeNode.js +2 -2
  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/use-checkbox-tree.js +1 -1
  94. package/dist/components/content/Tree/use-load-data.js +1 -1
  95. package/dist/components/content/highlightText.js +1 -1
  96. package/dist/components/content/use-auto-tooltip.js +1 -1
  97. package/dist/components/data/DataTable/DataTable.js +1 -1
  98. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  99. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  100. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  101. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  102. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  103. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  104. package/dist/components/data/TableBase/RowCollection.js +1 -1
  105. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  106. package/dist/components/data/TableBase/TableRow.js +1 -1
  107. package/dist/components/data/TableBase/TableView.js +2 -2
  108. package/dist/components/data/TableBase/column-menu.js +1 -1
  109. package/dist/components/data/TableBase/column-tint.js +1 -1
  110. package/dist/components/data/TableBase/row-menu.js +1 -1
  111. package/dist/components/data/TableBase/styled.d.ts +1 -2
  112. package/dist/components/data/TableBase/styled.js +1 -1
  113. package/dist/components/data/TableBase/table-tree.js +1 -1
  114. package/dist/components/data/TableBase/types.js +1 -1
  115. package/dist/components/data/TableBase/use-cell-selection.d.ts +0 -1
  116. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  117. package/dist/components/data/TableBase/use-column-order.js +1 -1
  118. package/dist/components/data/TableBase/use-container-width.js +1 -1
  119. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  120. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  121. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  122. package/dist/components/data/TableBase/use-table-search.js +1 -1
  123. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  124. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  125. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  126. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  127. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  128. package/dist/components/fields/Checkbox/Checkbox.js +2 -2
  129. package/dist/components/fields/Checkbox/CheckboxGroup.js +2 -2
  130. package/dist/components/fields/Checkbox/context.js +1 -1
  131. package/dist/components/fields/ColorInput/ColorInput.js +2 -2
  132. package/dist/components/fields/ColorPicker/ColorPicker.js +2 -2
  133. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  134. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  135. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  136. package/dist/components/fields/CommandTextArea/CommandTextArea.js +2 -2
  137. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  138. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  139. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  140. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  141. package/dist/components/fields/DatePicker/DatePicker.js +2 -2
  142. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  143. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  144. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  145. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  146. package/dist/components/fields/DatePicker/DateRangePicker.js +2 -2
  147. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +2 -2
  148. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  149. package/dist/components/fields/DatePicker/PeriodPicker.js +2 -2
  150. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  151. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  152. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  153. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  154. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  155. package/dist/components/fields/DatePicker/period.js +1 -1
  156. package/dist/components/fields/DatePicker/props.js +1 -1
  157. package/dist/components/fields/DatePicker/utils.js +1 -1
  158. package/dist/components/fields/FileInput/FileInput.js +1 -1
  159. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  160. package/dist/components/fields/FilterPicker/FilterPicker.js +3 -3
  161. package/dist/components/fields/Input/Input.js +1 -1
  162. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  163. package/dist/components/fields/ListBox/ListBox.js +4 -4
  164. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  165. package/dist/components/fields/ListBoxPopover/index.d.ts +0 -1
  166. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  167. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  168. package/dist/components/fields/NumberInput/NumberInput.js +2 -2
  169. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  170. package/dist/components/fields/PasswordInput/PasswordInput.js +2 -2
  171. package/dist/components/fields/Picker/Picker.js +3 -3
  172. package/dist/components/fields/RadioGroup/Radio.js +2 -2
  173. package/dist/components/fields/RadioGroup/RadioGroup.js +2 -2
  174. package/dist/components/fields/RadioGroup/context.js +1 -1
  175. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  176. package/dist/components/fields/SearchInput/SearchInput.js +2 -2
  177. package/dist/components/fields/Select/Select.js +1 -1
  178. package/dist/components/fields/Slider/Gradation.js +1 -1
  179. package/dist/components/fields/Slider/HueSlider.js +1 -1
  180. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  181. package/dist/components/fields/Slider/Slider.js +1 -1
  182. package/dist/components/fields/Slider/SliderBase.js +1 -1
  183. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  184. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  185. package/dist/components/fields/Slider/elements.js +1 -1
  186. package/dist/components/fields/Slider/index.js +1 -1
  187. package/dist/components/fields/Switch/Switch.js +2 -2
  188. package/dist/components/fields/TextArea/TextArea.js +2 -2
  189. package/dist/components/fields/TextInput/TextInput.js +2 -2
  190. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  191. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  192. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  193. package/dist/components/fields/color/ColorPanel.js +1 -1
  194. package/dist/components/fields/color/channels.js +7 -6
  195. package/dist/components/fields/color/channels.js.map +1 -1
  196. package/dist/components/fields/color/color.d.ts +1 -0
  197. package/dist/components/fields/color/color.js +22 -100
  198. package/dist/components/fields/color/color.js.map +1 -1
  199. package/dist/components/fields/color/context.js +1 -1
  200. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  201. package/dist/components/form/Form/Field.js +1 -1
  202. package/dist/components/form/Form/Form.js +1 -1
  203. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  204. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  205. package/dist/components/form/Form/SubmitError.js +1 -1
  206. package/dist/components/form/Form/index.js +1 -1
  207. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  208. package/dist/components/form/Form/use-field/use-field.js +1 -1
  209. package/dist/components/form/Form/use-form.js +1 -1
  210. package/dist/components/form/Form/validation.js +1 -1
  211. package/dist/components/form/Label.js +1 -1
  212. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  213. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  214. package/dist/components/form/validation/use-validation-props.js +1 -1
  215. package/dist/components/form/wrapper.js +1 -1
  216. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  217. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  218. package/dist/components/layout/Board/Board.js +1 -1
  219. package/dist/components/layout/Board/BoardProvider.js +1 -1
  220. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  221. package/dist/components/layout/Board/Widget.js +1 -1
  222. package/dist/components/layout/Board/WidgetHost.js +1 -1
  223. package/dist/components/layout/Board/board-context.js +1 -1
  224. package/dist/components/layout/Board/board-store.js +1 -1
  225. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  226. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  227. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  228. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  229. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  230. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  231. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  232. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  233. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  234. package/dist/components/layout/Board/index.js +1 -1
  235. package/dist/components/layout/Board/responsive-utils.js +1 -1
  236. package/dist/components/layout/Board/use-board-layout.js +1 -1
  237. package/dist/components/layout/Board/use-board-registry.js +1 -1
  238. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  239. package/dist/components/layout/Board/use-board-selection.js +1 -1
  240. package/dist/components/layout/Flex.js +1 -1
  241. package/dist/components/layout/Flow.js +1 -1
  242. package/dist/components/layout/Grid.js +1 -1
  243. package/dist/components/layout/Panel.js +1 -1
  244. package/dist/components/layout/Prefix.js +1 -1
  245. package/dist/components/layout/ResizablePanel.js +1 -1
  246. package/dist/components/layout/Space.js +1 -1
  247. package/dist/components/layout/Suffix.js +1 -1
  248. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  249. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  250. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  251. package/dist/components/navigation/Tabs/TabButton.js +3 -3
  252. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  253. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  254. package/dist/components/navigation/Tabs/TabPicker.js +2 -2
  255. package/dist/components/navigation/Tabs/Tabs.js +2 -2
  256. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  257. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  258. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  259. package/dist/components/navigation/Tabs/styled.js +1 -1
  260. package/dist/components/navigation/Tabs/types.js +1 -1
  261. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  262. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  263. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  264. package/dist/components/other/Calendar/Calendar.js +1 -1
  265. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  266. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  267. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  268. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  269. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  270. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  271. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  272. package/dist/components/other/Calendar/styled.js +1 -1
  273. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  274. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  275. package/dist/components/overlays/AlertDialog/AlertDialog.js +2 -2
  276. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  277. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  278. package/dist/components/overlays/Dialog/Dialog.js +2 -2
  279. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  280. package/dist/components/overlays/Dialog/DialogForm.js +4 -4
  281. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  282. package/dist/components/overlays/Dialog/context.js +1 -1
  283. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  284. package/dist/components/overlays/Modal/Modal.d.ts +1 -2
  285. package/dist/components/overlays/Modal/Modal.js +1 -1
  286. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  287. package/dist/components/overlays/Modal/Overlay.d.ts +0 -1
  288. package/dist/components/overlays/Modal/Overlay.js +1 -1
  289. package/dist/components/overlays/Modal/Popover.js +1 -1
  290. package/dist/components/overlays/Modal/Tray.js +1 -1
  291. package/dist/components/overlays/Modal/Underlay.js +1 -1
  292. package/dist/components/overlays/Modal/types.d.ts +0 -1
  293. package/dist/components/overlays/Notifications/Notification.js +1 -1
  294. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  295. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  296. package/dist/components/overlays/Notifications/NotificationContext.d.ts +0 -2
  297. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  298. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  299. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  300. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  301. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  302. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  303. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  304. package/dist/components/overlays/Notifications/index.js +1 -1
  305. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  306. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  307. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  308. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  309. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  310. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  311. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  312. package/dist/components/overlays/Toast/index.js +1 -1
  313. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  314. package/dist/components/overlays/Toast/useToast.js +1 -1
  315. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  316. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  317. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  318. package/dist/components/overlays/Tooltip/context.js +1 -1
  319. package/dist/components/portal/Portal.js +1 -1
  320. package/dist/components/portal/PortalProvider.js +1 -1
  321. package/dist/components/portal/index.d.ts +0 -1
  322. package/dist/components/portal/usePortal.js +1 -1
  323. package/dist/components/shared/DraggableCollection.js +1 -1
  324. package/dist/components/shared/InvalidIcon.js +1 -1
  325. package/dist/components/shared/ValidIcon.js +1 -1
  326. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  327. package/dist/components/status/Spin/Cube.js +1 -1
  328. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  329. package/dist/components/status/Spin/Spin.js +1 -1
  330. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  331. package/dist/data/item-themes.js +1 -1
  332. package/dist/data/themes.js +1 -1
  333. package/dist/eslint-plugin/defaults.generated.js +1 -1
  334. package/dist/eslint-plugin/index.js +1 -1
  335. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  336. package/dist/i18n/I18nProvider.js +1 -1
  337. package/dist/i18n/createFormatter.js +1 -1
  338. package/dist/i18n/index.js +1 -1
  339. package/dist/i18n/instance.js +1 -1
  340. package/dist/i18n/locales/de-DE/uikit.js +1 -25
  341. package/dist/i18n/locales/en-US/uikit.js +1 -25
  342. package/dist/i18n/locales/en-US/uikit.json.d.ts +1 -27
  343. package/dist/i18n/locales/es-ES/uikit.js +1 -25
  344. package/dist/i18n/locales/es-MX/uikit.js +1 -25
  345. package/dist/i18n/locales/fr-FR/uikit.js +1 -25
  346. package/dist/i18n/locales/it-IT/uikit.js +1 -25
  347. package/dist/i18n/locales/ja-JP/uikit.js +1 -25
  348. package/dist/i18n/locales/nb-NO/uikit.js +1 -25
  349. package/dist/i18n/locales/pt-BR/uikit.js +1 -25
  350. package/dist/i18n/locales/pt-PT/uikit.js +1 -25
  351. package/dist/i18n/locales/sv-SE/uikit.js +1 -25
  352. package/dist/i18n/locales/vi-VN/uikit.js +1 -25
  353. package/dist/i18n/locales.js +1 -1
  354. package/dist/i18n/useFormatter.js +1 -1
  355. package/dist/i18n/useI18n.js +1 -1
  356. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  357. package/dist/icons/AdjustmentsIcon.js +1 -1
  358. package/dist/icons/AiIcon.js +1 -1
  359. package/dist/icons/AreaChartIcon.js +1 -1
  360. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  361. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  362. package/dist/icons/BackwardIcon.js +1 -1
  363. package/dist/icons/BarChartIcon.js +1 -1
  364. package/dist/icons/BellFilledIcon.js +1 -1
  365. package/dist/icons/BellIcon.js +1 -1
  366. package/dist/icons/BooleanIcon.js +1 -1
  367. package/dist/icons/CalendarEditIcon.js +1 -1
  368. package/dist/icons/CalendarIcon.js +1 -1
  369. package/dist/icons/CaretDownIcon.js +1 -1
  370. package/dist/icons/CaretUpIcon.js +1 -1
  371. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  372. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  373. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  374. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  375. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  376. package/dist/icons/ChartBarLineIcon.js +1 -1
  377. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  378. package/dist/icons/ChartBarStackedIcon.js +1 -1
  379. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  380. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  381. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  382. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  383. package/dist/icons/ChartBubbleIcon.js +1 -1
  384. package/dist/icons/ChartDonut2Icon.js +1 -1
  385. package/dist/icons/ChartFunnelIcon.js +1 -1
  386. package/dist/icons/ChartHeatmapIcon.js +1 -1
  387. package/dist/icons/ChartKPIIcon.js +1 -1
  388. package/dist/icons/ChartPie2Icon.js +1 -1
  389. package/dist/icons/ChartScatterIcon.js +1 -1
  390. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  391. package/dist/icons/CheckCircleIcon.js +1 -1
  392. package/dist/icons/CheckIcon.js +1 -1
  393. package/dist/icons/CircleFilledIcon.js +1 -1
  394. package/dist/icons/ClearIcon.js +1 -1
  395. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  396. package/dist/icons/CloseCircleIcon.js +1 -1
  397. package/dist/icons/CloseIcon.js +1 -1
  398. package/dist/icons/CodeIcon.js +1 -1
  399. package/dist/icons/ColumnTotalIcon.js +1 -1
  400. package/dist/icons/CopyIcon.js +1 -1
  401. package/dist/icons/CountIcon.js +1 -1
  402. package/dist/icons/CubeIcon.js +1 -1
  403. package/dist/icons/CubePauseIcon.js +1 -1
  404. package/dist/icons/CubePlayIcon.js +1 -1
  405. package/dist/icons/CurrencyDollarIcon.js +1 -1
  406. package/dist/icons/DangerIcon.js +1 -1
  407. package/dist/icons/DashboardIcon.js +1 -1
  408. package/dist/icons/DatabaseIcon.js +1 -1
  409. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  410. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  411. package/dist/icons/DirectionIcon.js +1 -1
  412. package/dist/icons/DonutIcon.js +1 -1
  413. package/dist/icons/DownIcon.js +1 -1
  414. package/dist/icons/EditIcon.js +1 -1
  415. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  416. package/dist/icons/ExclamationCircleIcon.js +1 -1
  417. package/dist/icons/ExclamationIcon.js +1 -1
  418. package/dist/icons/EyeIcon.js +1 -1
  419. package/dist/icons/EyeInvisibleIcon.js +1 -1
  420. package/dist/icons/FilterIcon.js +1 -1
  421. package/dist/icons/FolderFilledIcon.js +1 -1
  422. package/dist/icons/FolderIcon.js +1 -1
  423. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  424. package/dist/icons/FolderOpenIcon.js +1 -1
  425. package/dist/icons/ForwardIcon.js +1 -1
  426. package/dist/icons/GripVerticalIcon.js +1 -1
  427. package/dist/icons/HierarchyIcon.js +1 -1
  428. package/dist/icons/HierarchyOpenIcon.js +1 -1
  429. package/dist/icons/Icon.js +1 -1
  430. package/dist/icons/InfoCircleIcon.js +1 -1
  431. package/dist/icons/InfoIcon.js +1 -1
  432. package/dist/icons/KeyIcon.js +1 -1
  433. package/dist/icons/LeftIcon.js +1 -1
  434. package/dist/icons/LineChartIcon.js +1 -1
  435. package/dist/icons/LoadingIcon.js +1 -1
  436. package/dist/icons/LockFilledIcon.js +1 -1
  437. package/dist/icons/LockIcon.js +1 -1
  438. package/dist/icons/MoreIcon.js +1 -1
  439. package/dist/icons/NotAllowedIcon.js +1 -1
  440. package/dist/icons/Number123Icon.js +1 -1
  441. package/dist/icons/NumberIcon.js +1 -1
  442. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  443. package/dist/icons/PauseCircleIcon.js +1 -1
  444. package/dist/icons/PauseIcon.js +1 -1
  445. package/dist/icons/PercentageIcon.js +1 -1
  446. package/dist/icons/PieChartIcon.js +1 -1
  447. package/dist/icons/PipetteIcon.js +1 -1
  448. package/dist/icons/PlayCircleIcon.js +1 -1
  449. package/dist/icons/PlayIcon.js +1 -1
  450. package/dist/icons/PlusIcon.js +1 -1
  451. package/dist/icons/ProgressBarIcon.js +1 -1
  452. package/dist/icons/ReloadIcon.js +1 -1
  453. package/dist/icons/ReportIcon.js +1 -1
  454. package/dist/icons/ReturnIcon.js +1 -1
  455. package/dist/icons/RightIcon.js +1 -1
  456. package/dist/icons/RowTotalsIcon.js +1 -1
  457. package/dist/icons/SchemeIcon.js +1 -1
  458. package/dist/icons/SearchIcon.js +1 -1
  459. package/dist/icons/SemanticQueryIcon.js +1 -1
  460. package/dist/icons/SettingsIcon.js +1 -1
  461. package/dist/icons/ShieldFilledIcon.js +1 -1
  462. package/dist/icons/ShieldIcon.js +1 -1
  463. package/dist/icons/SlashIcon.js +1 -1
  464. package/dist/icons/SparklesIcon.js +1 -1
  465. package/dist/icons/SqlIcon.js +1 -1
  466. package/dist/icons/StatsIcon.js +1 -1
  467. package/dist/icons/StopIcon.js +1 -1
  468. package/dist/icons/StringIcon.js +1 -1
  469. package/dist/icons/SubtotalsIcon.js +1 -1
  470. package/dist/icons/SwitchIcon.js +1 -1
  471. package/dist/icons/TableIcon.js +1 -1
  472. package/dist/icons/ThumbsDownIcon.js +1 -1
  473. package/dist/icons/ThumbsUpIcon.js +1 -1
  474. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  475. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  476. package/dist/icons/ThunderboltIcon.js +1 -1
  477. package/dist/icons/TimeIcon.js +1 -1
  478. package/dist/icons/TrashIcon.js +1 -1
  479. package/dist/icons/UnlockIcon.js +1 -1
  480. package/dist/icons/UpIcon.js +1 -1
  481. package/dist/icons/UserGroupIcon.js +1 -1
  482. package/dist/icons/UserIcon.js +1 -1
  483. package/dist/icons/UserLockIcon.js +1 -1
  484. package/dist/icons/ViewIcon.js +1 -1
  485. package/dist/icons/WarningFilledIcon.js +1 -1
  486. package/dist/icons/WarningIcon.js +1 -1
  487. package/dist/icons/index.d.ts +0 -8
  488. package/dist/icons/wrap-icon.js +1 -1
  489. package/dist/index.d.ts +2 -15
  490. package/dist/index.js +50 -61
  491. package/dist/index.js.map +1 -1
  492. package/dist/probe/canonicalize.js +1 -1
  493. package/dist/probe/css.js +1 -1
  494. package/dist/probe/index.js +1 -1
  495. package/dist/provider.js +1 -1
  496. package/dist/providers/TrackingProvider.js +1 -1
  497. package/dist/providers/navigationAdapter.default.js +1 -1
  498. package/dist/tokens/all-tokens.js +2 -2
  499. package/dist/tokens/base.js +1 -1
  500. package/dist/tokens/color-seed.js +1 -1
  501. package/dist/tokens/color-theme.js +1 -1
  502. package/dist/tokens/colors.js +2 -2
  503. package/dist/tokens/index.d.ts +1 -0
  504. package/dist/tokens/layout.js +1 -1
  505. package/dist/tokens/lazy-styles.js +1 -1
  506. package/dist/tokens/legacy-color.d.ts +61 -0
  507. package/dist/tokens/legacy-color.js +58 -0
  508. package/dist/tokens/legacy-color.js.map +1 -0
  509. package/dist/tokens/palette-config.js +1 -1
  510. package/dist/tokens/palette.js +2 -2
  511. package/dist/tokens/resolve.js +1 -1
  512. package/dist/tokens/shadows.js +1 -1
  513. package/dist/tokens/sizes.js +1 -1
  514. package/dist/tokens/spacing.js +1 -1
  515. package/dist/tokens/typography.js +1 -1
  516. package/dist/utils/ResizeSensor.js +1 -1
  517. package/dist/utils/colors.d.ts +2 -0
  518. package/dist/utils/colors.js +247 -0
  519. package/dist/utils/colors.js.map +1 -0
  520. package/dist/utils/is-dev-env.js +1 -1
  521. package/dist/utils/modules.js +1 -1
  522. package/dist/utils/promise.js +1 -1
  523. package/dist/utils/raf.js +1 -1
  524. package/dist/utils/random.js +1 -1
  525. package/dist/utils/range.js +1 -1
  526. package/dist/utils/react/RenderCache.js +1 -1
  527. package/dist/utils/react/Slots.js +1 -1
  528. package/dist/utils/react/chain.js +1 -1
  529. package/dist/utils/react/disabledProps.js +1 -1
  530. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  531. package/dist/utils/react/index.js +1 -1
  532. package/dist/utils/react/interactions.js +1 -1
  533. package/dist/utils/react/isTextOnly.js +1 -1
  534. package/dist/utils/react/mapProps.js +1 -1
  535. package/dist/utils/react/mergeProps.js +1 -1
  536. package/dist/utils/react/nullableValue.js +1 -1
  537. package/dist/utils/react/resolveIcon.js +1 -1
  538. package/dist/utils/react/sharedStore.js +1 -1
  539. package/dist/utils/react/useBufferedValue.js +1 -1
  540. package/dist/utils/react/useCombinedRefs.js +1 -1
  541. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  542. package/dist/utils/react/useEventBus.js +1 -1
  543. package/dist/utils/react/useId.js +1 -1
  544. package/dist/utils/react/useIsDarwin.js +1 -1
  545. package/dist/utils/react/useKeySymbols.js +1 -1
  546. package/dist/utils/react/useLayoutEffect.js +1 -1
  547. package/dist/utils/react/useLocalStorage.js +1 -1
  548. package/dist/utils/react/useMergeStyles.js +1 -1
  549. package/dist/utils/react/usePopoverSync.js +1 -1
  550. package/dist/utils/react/useQaProps.js +1 -1
  551. package/dist/utils/react/useScheme.js +1 -1
  552. package/dist/utils/react/useViewportSize.js +1 -1
  553. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  554. package/dist/utils/selection.js +1 -1
  555. package/dist/utils/styles.js +1 -1
  556. package/dist/utils/tree.js +1 -1
  557. package/dist/utils/warnings.js +1 -1
  558. package/dist/version.js +2 -2
  559. package/docs/Usage.md +18 -0
  560. package/package.json +1 -1
  561. package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +0 -2
  562. package/dist/components/layout/Dashboard/Dashboard.d.ts +0 -19
  563. package/dist/components/layout/Dashboard/Dashboard.js +0 -188
  564. package/dist/components/layout/Dashboard/Dashboard.js.map +0 -1
  565. package/dist/components/layout/Dashboard/DashboardContainer.d.ts +0 -13
  566. package/dist/components/layout/Dashboard/DashboardContainer.js +0 -272
  567. package/dist/components/layout/Dashboard/DashboardContainer.js.map +0 -1
  568. package/dist/components/layout/Dashboard/DashboardContainerContent.js +0 -405
  569. package/dist/components/layout/Dashboard/DashboardContainerContent.js.map +0 -1
  570. package/dist/components/layout/Dashboard/DashboardNodeActions.js +0 -228
  571. package/dist/components/layout/Dashboard/DashboardNodeActions.js.map +0 -1
  572. package/dist/components/layout/Dashboard/DashboardTabs.d.ts +0 -14
  573. package/dist/components/layout/Dashboard/DashboardTabs.js +0 -85
  574. package/dist/components/layout/Dashboard/DashboardTabs.js.map +0 -1
  575. package/dist/components/layout/Dashboard/DashboardWidget.d.ts +0 -9
  576. package/dist/components/layout/Dashboard/DashboardWidget.js +0 -196
  577. package/dist/components/layout/Dashboard/DashboardWidget.js.map +0 -1
  578. package/dist/components/layout/Dashboard/context.js +0 -37
  579. package/dist/components/layout/Dashboard/context.js.map +0 -1
  580. package/dist/components/layout/Dashboard/drag.js +0 -481
  581. package/dist/components/layout/Dashboard/drag.js.map +0 -1
  582. package/dist/components/layout/Dashboard/index.d.ts +0 -6
  583. package/dist/components/layout/Dashboard/occupancy.js +0 -240
  584. package/dist/components/layout/Dashboard/occupancy.js.map +0 -1
  585. package/dist/components/layout/Dashboard/placement.js +0 -94
  586. package/dist/components/layout/Dashboard/placement.js.map +0 -1
  587. package/dist/components/layout/Dashboard/styles.js +0 -344
  588. package/dist/components/layout/Dashboard/styles.js.map +0 -1
  589. package/dist/components/layout/Dashboard/types.d.ts +0 -220
  590. package/dist/components/layout/Dashboard/use-dashboard-gestures.js +0 -321
  591. package/dist/components/layout/Dashboard/use-dashboard-gestures.js.map +0 -1
  592. package/dist/components/layout/Dashboard/use-dashboard-node.js +0 -93
  593. package/dist/components/layout/Dashboard/use-dashboard-node.js.map +0 -1
  594. package/dist/components/portal/PortalProvider.d.ts +0 -2
  595. package/dist/icons/ArrowsHorizontalIcon.d.ts +0 -12
  596. package/dist/icons/ArrowsHorizontalIcon.js +0 -11
  597. package/dist/icons/ArrowsHorizontalIcon.js.map +0 -1
  598. package/dist/icons/ArrowsInHorizontalIcon.d.ts +0 -20
  599. package/dist/icons/ArrowsInHorizontalIcon.js +0 -31
  600. package/dist/icons/ArrowsInHorizontalIcon.js.map +0 -1
  601. package/dist/icons/ArrowsInVerticalIcon.d.ts +0 -13
  602. package/dist/icons/ArrowsInVerticalIcon.js +0 -24
  603. package/dist/icons/ArrowsInVerticalIcon.js.map +0 -1
  604. package/dist/icons/ArrowsMaximizeIcon.d.ts +0 -12
  605. package/dist/icons/ArrowsMaximizeIcon.js +0 -11
  606. package/dist/icons/ArrowsMaximizeIcon.js.map +0 -1
  607. package/dist/icons/ArrowsMinimizeIcon.d.ts +0 -12
  608. package/dist/icons/ArrowsMinimizeIcon.js +0 -11
  609. package/dist/icons/ArrowsMinimizeIcon.js.map +0 -1
  610. package/dist/icons/ArrowsVerticalIcon.d.ts +0 -12
  611. package/dist/icons/ArrowsVerticalIcon.js +0 -11
  612. package/dist/icons/ArrowsVerticalIcon.js.map +0 -1
  613. package/dist/icons/CirclePlusIcon.d.ts +0 -12
  614. package/dist/icons/CirclePlusIcon.js +0 -11
  615. package/dist/icons/CirclePlusIcon.js.map +0 -1
  616. package/dist/icons/MaximizeIcon.d.ts +0 -12
  617. package/dist/icons/MaximizeIcon.js +0 -11
  618. package/dist/icons/MaximizeIcon.js.map +0 -1
  619. package/docs/components/layout/Dashboard.md +0 -409
@@ -1,37 +0,0 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e056095 | Cube Dev Team */
2
- import { createContext } from "react";
3
-
4
- //#region src/components/layout/Dashboard/context.ts
5
- const DashboardMetricsContext = createContext({
6
- rowHeight: 80,
7
- columnGap: 16,
8
- rowGap: 16
9
- });
10
- const DashboardTreeContext = createContext({
11
- containerDepth: 0,
12
- parentKind: "root",
13
- parentId: null,
14
- layoutParentId: null,
15
- parentColumns: 12,
16
- parentRows: 1,
17
- ancestorIds: []
18
- });
19
- const DashboardSelectionContext = createContext({
20
- selectionMode: "none",
21
- selectedKeys: /* @__PURE__ */ new Set(),
22
- register: () => () => {},
23
- select: () => {}
24
- });
25
- const DashboardEditingContext = createContext({
26
- isEditing: false,
27
- movingId: null,
28
- arrivingIds: /* @__PURE__ */ new Set(),
29
- markArriving: () => {},
30
- startMoving: () => {},
31
- stopMoving: () => {}
32
- });
33
- const DashboardAuthoringContext = createContext({ addItems: [] });
34
-
35
- //#endregion
36
- export { DashboardAuthoringContext, DashboardEditingContext, DashboardMetricsContext, DashboardSelectionContext, DashboardTreeContext };
37
- //# sourceMappingURL=context.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context.js","names":[],"sources":["../../../../src/components/layout/Dashboard/context.ts"],"sourcesContent":["import { createContext } from 'react';\n\nimport type {\n DashboardAuthoringContextValue,\n DashboardEditingContextValue,\n DashboardMetrics,\n DashboardSelectionContextValue,\n DashboardTreeContextValue,\n} from './types';\n\nexport const DashboardMetricsContext = createContext<DashboardMetrics>({\n rowHeight: 80,\n columnGap: 16,\n rowGap: 16,\n});\n\nexport const DashboardTreeContext = createContext<DashboardTreeContextValue>({\n containerDepth: 0,\n parentKind: 'root',\n parentId: null,\n layoutParentId: null,\n parentColumns: 12,\n parentRows: 1,\n ancestorIds: [],\n});\n\nexport const DashboardSelectionContext =\n createContext<DashboardSelectionContextValue>({\n selectionMode: 'none',\n selectedKeys: new Set(),\n register: () => () => {},\n select: () => {},\n });\n\nexport const DashboardEditingContext =\n createContext<DashboardEditingContextValue>({\n isEditing: false,\n movingId: null,\n arrivingIds: new Set(),\n markArriving: () => {},\n startMoving: () => {},\n stopMoving: () => {},\n });\n\nexport const DashboardAuthoringContext =\n createContext<DashboardAuthoringContextValue>({\n addItems: [],\n });\n"],"mappings":";;;;AAUA,MAAa,0BAA0B,cAAgC;CACrE,WAAW;CACX,WAAW;CACX,QAAQ;CACT,CAAC;AAEF,MAAa,uBAAuB,cAAyC;CAC3E,gBAAgB;CAChB,YAAY;CACZ,UAAU;CACV,gBAAgB;CAChB,eAAe;CACf,YAAY;CACZ,aAAa,EAAE;CAChB,CAAC;AAEF,MAAa,4BACX,cAA8C;CAC5C,eAAe;CACf,8BAAc,IAAI,KAAK;CACvB,sBAAsB;CACtB,cAAc;CACf,CAAC;AAEJ,MAAa,0BACX,cAA4C;CAC1C,WAAW;CACX,UAAU;CACV,6BAAa,IAAI,KAAK;CACtB,oBAAoB;CACpB,mBAAmB;CACnB,kBAAkB;CACnB,CAAC;AAEJ,MAAa,4BACX,cAA8C,EAC5C,UAAU,EAAE,EACb,CAAC"}
@@ -1,481 +0,0 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-e056095 | Cube Dev Team */
2
- import { useEvent } from "../../../_internal/hooks/use-event.js";
3
- import { DASHBOARD_ROOT_GAP, clamp, placementsOverlap, pointToCell } from "./placement.js";
4
- import { DropPlaceholderElement } from "./styles.js";
5
- import { CloseCircleIcon } from "../../../icons/CloseCircleIcon.js";
6
- import { useState } from "react";
7
- import { jsx } from "react/jsx-runtime";
8
- import { createPortal } from "react-dom";
9
-
10
- //#region src/components/layout/Dashboard/drag.tsx
11
- function parseDashboardAncestorIds(element) {
12
- const value = element.dataset.dashboardAncestorIds;
13
- if (!value) return [];
14
- try {
15
- const parsed = JSON.parse(value);
16
- return Array.isArray(parsed) ? parsed.filter((id) => typeof id === "string") : [];
17
- } catch {
18
- return [];
19
- }
20
- }
21
- /**
22
- * Every destination under the pointer, best first.
23
- *
24
- * Returning a list rather than a winner is load-bearing. The best candidate is
25
- * the deepest one, and the deepest one is also the most likely to refuse — a
26
- * nested container is small, so a node that does not fit it is common. When the
27
- * caller only had the winner, a refusal ended the frame with no proposal at all
28
- * and the gesture froze; releasing there discarded the whole drag even though an
29
- * ancestor under the same pointer would have taken it. The caller now walks the
30
- * list and keeps the first destination that actually yields a placement.
31
- */
32
- function findDashboardDropTargets(node, clientX, clientY, movingId, isContainer, maximumContainerParentDepth = 2, frozen) {
33
- const root = node.closest("[data-dashboard-root]");
34
- if (!root) return [];
35
- return collectDashboardDropElements(root).flatMap((element) => {
36
- const rect = readFrozenRect(frozen, element) ?? element.getBoundingClientRect();
37
- if (rect.width <= 0 || rect.height <= 0 || clientX < rect.left || clientX > rect.right || clientY < rect.top || clientY > rect.bottom) return [];
38
- const parentId = element.dataset.dashboardParentId || null;
39
- const kind = element.dataset.dashboardContainerKind ?? "root";
40
- const depth = Number(element.dataset.dashboardDepth ?? 0);
41
- const ancestorIds = parseDashboardAncestorIds(element);
42
- if (!isContainer && kind === "root") return [];
43
- if (isContainer && (depth > maximumContainerParentDepth || parentId === movingId || ancestorIds.includes(movingId))) return [];
44
- return [{
45
- parentId,
46
- kind,
47
- columns: Math.max(1, Number(element.dataset.dashboardColumns ?? 12)),
48
- rows: Math.max(1, Number(element.dataset.dashboardRows ?? 1)),
49
- depth,
50
- rect,
51
- element
52
- }];
53
- }).sort((first, second) => second.depth - first.depth || first.rect.width * first.rect.height - second.rect.width * second.rect.height);
54
- }
55
- /**
56
- * The drop targets belonging to one Dashboard.
57
- *
58
- * `querySelectorAll` alone is wrong twice over: the root carries the drop-target
59
- * attribute itself, so passing it explicitly *and* matching it lists it twice;
60
- * and a second Dashboard rendered inside a widget of this one contributes its
61
- * own content grids, whose depths restart at 1. Those win the depth sort and
62
- * hand the outer consumer a `destinationParentId` from a tree it does not own.
63
- */
64
- function collectDashboardDropElements(root) {
65
- return Array.from(root.querySelectorAll("[data-dashboard-drop-target]")).filter((element) => element.closest("[data-dashboard-root]") === root).concat(root);
66
- }
67
- /**
68
- * The node's own parent, as a drop target.
69
- *
70
- * Keyboard movement never leaves the parent and has no pointer to hit-test, but
71
- * it still lands on occupied cells — before this it skipped occupancy entirely
72
- * and committed overlaps with no danger signal at all.
73
- */
74
- function getOwnDashboardDropTarget(node) {
75
- const element = node.parentElement;
76
- if (!element || element.dataset.dashboardDropTarget === void 0) return null;
77
- return {
78
- parentId: element.dataset.dashboardParentId || null,
79
- kind: element.dataset.dashboardContainerKind ?? "root",
80
- columns: Math.max(1, Number(element.dataset.dashboardColumns ?? 12)),
81
- rows: Math.max(1, Number(element.dataset.dashboardRows ?? 1)),
82
- depth: Number(element.dataset.dashboardDepth ?? 0),
83
- rect: element.getBoundingClientRect(),
84
- element
85
- };
86
- }
87
- function freezeDashboardTargetGeometry(node) {
88
- const root = node.closest("[data-dashboard-root]");
89
- const frozen = {
90
- rects: /* @__PURE__ */ new Map(),
91
- scrollX: window.scrollX,
92
- scrollY: window.scrollY
93
- };
94
- if (!root) return frozen;
95
- for (const element of collectDashboardDropElements(root)) frozen.rects.set(element, element.getBoundingClientRect());
96
- return frozen;
97
- }
98
- /** A frozen rectangle brought back into the current client coordinate space. */
99
- function readFrozenRect(frozen, element) {
100
- const rect = frozen?.rects.get(element);
101
- if (!rect || !frozen) return void 0;
102
- const shiftX = frozen.scrollX - window.scrollX;
103
- const shiftY = frozen.scrollY - window.scrollY;
104
- if (shiftX === 0 && shiftY === 0) return rect;
105
- return new DOMRect(rect.left + shiftX, rect.top + shiftY, rect.width, rect.height);
106
- }
107
- function getCrossParentPlacement(target, gesture, minColumns, minRows, isContainer, metrics) {
108
- if (target.kind === "root") {
109
- if (!isContainer) return null;
110
- const siblingMidpoints = Array.from(target.element.children).filter((child) => child instanceof HTMLElement && child.dataset.dashboardNode === "container" && child.dataset.dashboardNodeId !== void 0).map((child) => {
111
- const rect = child.getBoundingClientRect();
112
- return rect.top + rect.height / 2;
113
- }).filter((midpoint) => Number.isFinite(midpoint));
114
- const pointerY = gesture.clientY;
115
- return {
116
- column: 0,
117
- row: siblingMidpoints.filter((midpoint) => midpoint < pointerY).length,
118
- columns: 12,
119
- rows: gesture.origin.rows
120
- };
121
- }
122
- const grabbedItem = gesture.items[0];
123
- const columns = Math.min(target.kind === "vertical-stack" ? grabbedItem.maxColumns : gesture.origin.columns, target.columns);
124
- const rows = Math.min(target.kind === "horizontal-stack" ? grabbedItem.maxRows : gesture.origin.rows, target.rows);
125
- if (columns < minColumns || rows < minRows) return null;
126
- const corner = pointToCell({
127
- x: gesture.clientX - gesture.grabOffsetX,
128
- y: gesture.clientY - gesture.grabOffsetY
129
- }, target.rect, target.columns, target.rows, metrics, "nearest");
130
- return {
131
- column: target.kind === "vertical-stack" ? 0 : Math.min(corner.column, target.columns - columns),
132
- row: target.kind === "horizontal-stack" ? 0 : Math.min(corner.row, target.rows - rows),
133
- columns,
134
- rows
135
- };
136
- }
137
- function readDashboardNodePlacement(element) {
138
- const column = Number(element.dataset.dashboardColumn);
139
- const row = Number(element.dataset.dashboardRow);
140
- const columns = Number(element.dataset.dashboardColumns);
141
- const rows = Number(element.dataset.dashboardRows);
142
- if (![
143
- column,
144
- row,
145
- columns,
146
- rows
147
- ].every(Number.isFinite)) return null;
148
- return {
149
- column,
150
- row,
151
- columns,
152
- rows
153
- };
154
- }
155
- function getDashboardGestureItem(id, origin, element) {
156
- const readConstraint = (value, fallback) => {
157
- const parsed = Number(value);
158
- return Number.isFinite(parsed) ? parsed : fallback;
159
- };
160
- return {
161
- id,
162
- origin,
163
- element,
164
- minColumns: readConstraint(element.dataset.dashboardMinColumns, origin.columns),
165
- maxColumns: readConstraint(element.dataset.dashboardMaxColumns, origin.columns),
166
- minRows: readConstraint(element.dataset.dashboardMinRows, origin.rows),
167
- maxRows: readConstraint(element.dataset.dashboardMaxRows, origin.rows)
168
- };
169
- }
170
- /** The stationary nodes a landing has to coexist with, read from the DOM. */
171
- function getDashboardDropSiblings(target, movingIds) {
172
- return Array.from(target.element.children).flatMap((child) => {
173
- if (!(child instanceof HTMLElement)) return [];
174
- if (!child.dataset.dashboardNode) return [];
175
- const id = child.dataset.dashboardNodeId ?? "";
176
- if (movingIds.has(id)) return [];
177
- if (child.dataset.dashboardAddSlot !== void 0) return [];
178
- const placement = readDashboardNodePlacement(child);
179
- return placement ? [{
180
- id,
181
- placement
182
- }] : [];
183
- });
184
- }
185
- const REJECTED = {
186
- status: "danger",
187
- displaced: []
188
- };
189
- /**
190
- * Where a single blocker can go inside the box the moving node is vacating.
191
- *
192
- * Deliberately narrow. Relocating a blocker anywhere in the grid is easy to
193
- * implement and unpleasant to use: dropping one widget can shove an unrelated
194
- * section across the dashboard. Restricting the search to the vacated box makes
195
- * the operation a swap — the only rearrangement a user can predict from the
196
- * gesture — and anything that does not fit there is refused instead.
197
- */
198
- function findSwapPlacement(target, blocker, vacated, occupied) {
199
- const candidates = [];
200
- for (let row = vacated.row; row <= vacated.row + vacated.rows - blocker.rows; row += 1) for (let column = vacated.column; column <= vacated.column + vacated.columns - blocker.columns; column += 1) {
201
- const candidate = {
202
- column,
203
- row,
204
- columns: blocker.columns,
205
- rows: blocker.rows
206
- };
207
- if (candidate.column + candidate.columns > target.columns || candidate.row + candidate.rows > target.rows) continue;
208
- if (occupied.some((placement) => placementsOverlap(candidate, placement))) continue;
209
- candidates.push(candidate);
210
- }
211
- const distance = (candidate) => Math.abs(candidate.column - blocker.column) + Math.abs(candidate.row - blocker.row);
212
- return candidates.sort((first, second) => distance(first) - distance(second))[0] ?? null;
213
- }
214
- /**
215
- * Resolve a grid landing, swapping one occupant into the vacated box.
216
- *
217
- * Returns the siblings that have to move, or `null` when the landing cannot be
218
- * arranged — which the caller reports as a danger placeholder rather than
219
- * silently applying half of it.
220
- */
221
- function resolveGridOccupancy(target, items, siblings, vacated) {
222
- const landings = items.map((item) => item.placement);
223
- const blockers = siblings.filter((sibling) => landings.some((landing) => placementsOverlap(sibling.placement, landing)));
224
- if (!blockers.length) return [];
225
- if (!vacated || blockers.length !== 1 || items.length !== 1) return null;
226
- const stationary = siblings.filter((sibling) => sibling !== blockers[0]).map((sibling) => sibling.placement);
227
- const spot = findSwapPlacement(target, blockers[0].placement, vacated, [...landings, ...stationary]);
228
- return spot ? [{
229
- id: blockers[0].id,
230
- placement: spot
231
- }] : null;
232
- }
233
- /**
234
- * Resolve a stack landing by reordering the sequence.
235
- *
236
- * A stack has no coordinates the consumer can trust — `getPlacementStyle` emits
237
- * `span N` and auto-flow decides the rest — so the useful answer is the order,
238
- * expressed as fresh sequential placements for every affected child.
239
- */
240
- function resolveStackOccupancy(target, items, siblings, isSameParent) {
241
- const isHorizontal = target.kind === "horizontal-stack";
242
- const axisSpan = (placement) => isHorizontal ? placement.columns : placement.rows;
243
- const capacity = isHorizontal ? target.columns : target.rows;
244
- if (siblings.reduce((total, sibling) => total + axisSpan(sibling.placement), 0) + items.reduce((total, item) => total + axisSpan(item.placement), 0) > capacity) return null;
245
- if (isHorizontal && items.some((item) => item.placement.rows > target.rows)) return null;
246
- const start = isHorizontal ? items[0].placement.column : items[0].placement.row;
247
- let offset = 0;
248
- let index = siblings.length;
249
- for (const [position, sibling] of siblings.entries()) {
250
- const span = axisSpan(sibling.placement);
251
- if (start < offset + span / 2) {
252
- index = position;
253
- break;
254
- }
255
- offset += span;
256
- }
257
- const ordered = [
258
- ...siblings.slice(0, index).map((sibling) => ({
259
- id: sibling.id,
260
- placement: sibling.placement,
261
- moving: false
262
- })),
263
- ...items.map((item) => ({
264
- id: item.id,
265
- placement: item.placement,
266
- moving: true
267
- })),
268
- ...siblings.slice(index).map((sibling) => ({
269
- id: sibling.id,
270
- placement: sibling.placement,
271
- moving: false
272
- }))
273
- ];
274
- let cursor = 0;
275
- const resolvedItems = [];
276
- const displaced = [];
277
- for (const entry of ordered) {
278
- const placement = {
279
- ...entry.placement,
280
- column: isHorizontal ? cursor : 0,
281
- row: isHorizontal ? 0 : cursor
282
- };
283
- cursor += axisSpan(entry.placement);
284
- if (entry.moving) resolvedItems.push({
285
- id: entry.id,
286
- placement
287
- });
288
- else if (placement.column !== entry.placement.column || placement.row !== entry.placement.row) displaced.push({
289
- id: entry.id,
290
- placement
291
- });
292
- }
293
- if (!isSameParent || displaced.length || resolvedItems.length) return {
294
- items: resolvedItems,
295
- displaced
296
- };
297
- return {
298
- items,
299
- displaced: []
300
- };
301
- }
302
- /**
303
- * What this destination would do with the landing.
304
- *
305
- * Dashboard used to only *judge* a landing — `valid` or `danger` — and leave the
306
- * arrangement to the consumer, which meant every consumer reimplemented the
307
- * swap and reflow policy the Playground demonstrated. Resolving it here means
308
- * the reported `info.items` already describes the whole arrangement, and the
309
- * consumer only writes placements.
310
- */
311
- function resolveDashboardDrop(target, items, movingIds, sourceParentId, movingOrigins) {
312
- if (target.kind === "root") return {
313
- status: "valid",
314
- items,
315
- displaced: []
316
- };
317
- const siblings = getDashboardDropSiblings(target, movingIds);
318
- const isSameParent = target.parentId === sourceParentId;
319
- if (target.kind === "horizontal-stack" || target.kind === "vertical-stack") {
320
- const resolved = resolveStackOccupancy(target, items, siblings, isSameParent);
321
- return resolved ? {
322
- status: "valid",
323
- ...resolved
324
- } : {
325
- ...REJECTED,
326
- items
327
- };
328
- }
329
- const displaced = resolveGridOccupancy(target, items, siblings, isSameParent && movingOrigins.length === 1 ? movingOrigins[0] : void 0);
330
- return displaced ? {
331
- status: "valid",
332
- items,
333
- displaced
334
- } : {
335
- ...REJECTED,
336
- items
337
- };
338
- }
339
- function getDashboardDropPreviewStyle(target, placement, movingElement, metrics, movingIds) {
340
- if (target.kind === "root") {
341
- const rootRect = target.element.getBoundingClientRect();
342
- const siblings = Array.from(target.element.children).filter((child) => child instanceof HTMLElement && child.dataset.dashboardNode === "container" && !movingIds.has(child.dataset.dashboardNodeId ?? ""));
343
- const index = clamp(placement.row, 0, siblings.length);
344
- const previousRect = siblings[index - 1]?.getBoundingClientRect();
345
- const nextRect = siblings[index]?.getBoundingClientRect();
346
- return {
347
- left: 0,
348
- top: nextRect ? nextRect.top - rootRect.top : previousRect ? previousRect.bottom - rootRect.top + DASHBOARD_ROOT_GAP : 0,
349
- width: rootRect.width,
350
- height: movingElement.getBoundingClientRect().height
351
- };
352
- }
353
- return {
354
- inset: 0,
355
- gridColumn: target.kind === "vertical-stack" ? "1 / -1" : `${placement.column + 1} / span ${placement.columns}`,
356
- gridRow: target.kind === "horizontal-stack" ? `1 / span ${placement.rows}` : `${placement.row + 1} / span ${placement.rows}`
357
- };
358
- }
359
- function getDashboardGestureItems(movingElement, movingId, movingOrigin, isSelected) {
360
- const ownItem = getDashboardGestureItem(movingId, movingOrigin, movingElement);
361
- if (!isSelected || !movingElement.parentElement) return [ownItem];
362
- return [ownItem, ...Array.from(movingElement.parentElement.children).flatMap((child) => {
363
- if (!(child instanceof HTMLElement)) return [];
364
- const id = child.dataset.dashboardNodeId;
365
- if (!id || id === movingId || child.dataset.selected === void 0) return [];
366
- const origin = readDashboardNodePlacement(child);
367
- return origin ? [getDashboardGestureItem(id, origin, child)] : [];
368
- })];
369
- }
370
- function getDashboardGesturePlacements(target, gesture, grabbedPlacement) {
371
- if (gesture.items.length === 1) return [{
372
- id: gesture.items[0].id,
373
- placement: grabbedPlacement
374
- }];
375
- if (target.kind === "root") {
376
- if (gesture.items.some((item) => item.element.dataset.dashboardNode !== "container")) return null;
377
- return gesture.items.map((item, index) => ({
378
- id: item.id,
379
- placement: {
380
- ...item.origin,
381
- column: 0,
382
- row: grabbedPlacement.row + index,
383
- columns: 12
384
- }
385
- }));
386
- }
387
- const columnDelta = grabbedPlacement.column - gesture.origin.column;
388
- const rowDelta = grabbedPlacement.row - gesture.origin.row;
389
- const placements = gesture.items.map((item) => ({
390
- id: item.id,
391
- placement: {
392
- ...item.origin,
393
- column: target.kind === "vertical-stack" ? 0 : item.origin.column + columnDelta,
394
- row: target.kind === "horizontal-stack" ? 0 : item.origin.row + rowDelta,
395
- columns: Math.min(target.kind === "vertical-stack" ? item.maxColumns : item.origin.columns, target.columns),
396
- rows: Math.min(target.kind === "horizontal-stack" ? item.maxRows : item.origin.rows, target.rows)
397
- }
398
- }));
399
- if (placements.some((item, index) => {
400
- const constraints = gesture.items[index];
401
- return item.placement.columns < constraints.minColumns || item.placement.rows < constraints.minRows;
402
- })) return null;
403
- const minimumColumn = Math.min(...placements.map((item) => item.placement.column));
404
- const minimumRow = Math.min(...placements.map((item) => item.placement.row));
405
- const maximumColumn = Math.max(...placements.map((item) => item.placement.column + item.placement.columns));
406
- const maximumRow = Math.max(...placements.map((item) => item.placement.row + item.placement.rows));
407
- const groupColumns = maximumColumn - minimumColumn;
408
- const groupRows = maximumRow - minimumRow;
409
- if (groupColumns > target.columns || groupRows > target.rows) return null;
410
- const shiftColumn = minimumColumn < 0 ? -minimumColumn : maximumColumn > target.columns ? target.columns - maximumColumn : 0;
411
- const shiftRow = minimumRow < 0 ? -minimumRow : maximumRow > target.rows ? target.rows - maximumRow : 0;
412
- return placements.map((item) => ({
413
- ...item,
414
- placement: {
415
- ...item.placement,
416
- column: item.placement.column + shiftColumn,
417
- row: item.placement.row + shiftRow
418
- }
419
- }));
420
- }
421
- /**
422
- * One placeholder per moving item. The status is resolved by the caller, which
423
- * needs the displaced siblings anyway and should not resolve the same landing
424
- * twice.
425
- */
426
- function createDashboardDropPreviews(target, items, gestureItems, metrics, status) {
427
- const movingIds = new Set(gestureItems.map((item) => item.id));
428
- let rootOffset = 0;
429
- const addSlotPlacement = Array.from(target.element.children).flatMap((child) => {
430
- if (!(child instanceof HTMLElement)) return [];
431
- if (child.dataset.dashboardAddSlot === void 0) return [];
432
- const placement = readDashboardNodePlacement(child);
433
- return placement ? [placement] : [];
434
- })[0];
435
- return items.map((item) => {
436
- const gestureItem = gestureItems.find((candidate) => candidate.id === item.id);
437
- const style = getDashboardDropPreviewStyle(target, item.placement, gestureItem?.element ?? gestureItems[0].element, metrics, movingIds);
438
- if (target.kind === "root") {
439
- style.top = Number(style.top ?? 0) + rootOffset;
440
- rootOffset += Number(style.height ?? 0) + DASHBOARD_ROOT_GAP;
441
- }
442
- return {
443
- id: item.id,
444
- target: target.element,
445
- placement: item.placement,
446
- status,
447
- coversAddSlot: addSlotPlacement !== void 0 && placementsOverlap(item.placement, addSlotPlacement),
448
- style
449
- };
450
- });
451
- }
452
- function useDashboardDropPreview() {
453
- const [preview, setPreview] = useState([]);
454
- return [preview, useEvent((next) => {
455
- setPreview(next ?? []);
456
- })];
457
- }
458
- function renderDashboardDropPreview(previews, blockedLabel) {
459
- return previews.map((preview) => {
460
- const isBlocked = preview.status === "danger";
461
- return createPortal(/* @__PURE__ */ jsx(DropPlaceholderElement, {
462
- "aria-hidden": isBlocked ? void 0 : "true",
463
- "data-dashboard-drop-status": preview.status,
464
- "data-dashboard-drop-item-id": preview.id,
465
- "data-dashboard-drop-covers-add-slot": preview.coversAddSlot || void 0,
466
- mods: { danger: isBlocked },
467
- style: preview.style,
468
- children: /* @__PURE__ */ jsx("div", {
469
- "data-element": "Icon",
470
- role: isBlocked ? "img" : void 0,
471
- "aria-label": isBlocked ? blockedLabel : void 0,
472
- "aria-hidden": isBlocked ? void 0 : "true",
473
- children: /* @__PURE__ */ jsx(CloseCircleIcon, {})
474
- })
475
- }, preview.id), preview.target, preview.id);
476
- });
477
- }
478
-
479
- //#endregion
480
- export { createDashboardDropPreviews, findDashboardDropTargets, freezeDashboardTargetGeometry, getCrossParentPlacement, getDashboardGestureItem, getDashboardGestureItems, getDashboardGesturePlacements, getOwnDashboardDropTarget, renderDashboardDropPreview, resolveDashboardDrop, useDashboardDropPreview };
481
- //# sourceMappingURL=drag.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drag.js","names":[],"sources":["../../../../src/components/layout/Dashboard/drag.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { CloseCircleIcon } from '../../../icons/CloseCircleIcon';\n\nimport {\n clamp,\n DASHBOARD_ROOT_GAP,\n placementsOverlap,\n pointToCell,\n} from './placement';\nimport { DropPlaceholderElement } from './styles';\n\nimport type { CSSProperties } from 'react';\nimport type {\n DashboardMetrics,\n DashboardParentKind,\n DashboardPlacement,\n DashboardPlacementChangeInput,\n DashboardPlacementChangeItem,\n DashboardPlacementChangeReason,\n} from './types';\n\nexport interface DashboardPlacementGesture {\n origin: DashboardPlacement;\n current: DashboardPlacement;\n currentItems: DashboardPlacementChangeItem[];\n /** Siblings the current landing pushes aside; reported alongside the group. */\n currentDisplaced?: DashboardPlacementChangeItem[];\n sourceParentId: string | null;\n destinationParentId: string | null;\n /** Accumulated page-space movement, used for quantized same-parent steps. */\n deltaX: number;\n deltaY: number;\n /**\n * The live pointer position in client space.\n *\n * Not `pointerStart + delta`: `useMove` reports page-space deltas, while every\n * rectangle hit testing compares against is client-space, so scrolling during\n * a drag put the two coordinate systems a scroll-offset apart and the pointer\n * appeared to be somewhere it was not.\n */\n clientX: number;\n clientY: number;\n grabOffsetX: number;\n grabOffsetY: number;\n /** Destination rectangles measured once, at gesture start. */\n frozen?: DashboardTargetGeometry;\n /** Set by Escape or `pointercancel`; suppresses the commit. */\n cancelled?: boolean;\n keyboardColumns: number;\n keyboardRows: number;\n columnStep: number;\n rowStep: number;\n input: DashboardPlacementChangeInput;\n canCommit: boolean;\n items: DashboardGestureItem[];\n}\n\nexport interface DashboardGestureItem {\n id: string;\n origin: DashboardPlacement;\n element: HTMLElement;\n minColumns: number;\n maxColumns: number;\n minRows: number;\n maxRows: number;\n}\n\nexport interface DashboardDropTarget {\n parentId: string | null;\n kind: DashboardParentKind;\n columns: number;\n rows: number;\n depth: number;\n rect: DOMRect;\n element: HTMLElement;\n}\n\nexport type DashboardDropStatus = 'valid' | 'danger';\n\nexport interface DashboardDropPreview {\n id: string;\n target: HTMLElement;\n placement: DashboardPlacement;\n status: DashboardDropStatus;\n coversAddSlot: boolean;\n style: CSSProperties;\n}\n\nexport function parseDashboardAncestorIds(element: HTMLElement): string[] {\n const value = element.dataset.dashboardAncestorIds;\n if (!value) return [];\n\n try {\n const parsed: unknown = JSON.parse(value);\n return Array.isArray(parsed)\n ? parsed.filter((id): id is string => typeof id === 'string')\n : [];\n } catch {\n return [];\n }\n}\n\n/**\n * Every destination under the pointer, best first.\n *\n * Returning a list rather than a winner is load-bearing. The best candidate is\n * the deepest one, and the deepest one is also the most likely to refuse — a\n * nested container is small, so a node that does not fit it is common. When the\n * caller only had the winner, a refusal ended the frame with no proposal at all\n * and the gesture froze; releasing there discarded the whole drag even though an\n * ancestor under the same pointer would have taken it. The caller now walks the\n * list and keeps the first destination that actually yields a placement.\n */\nexport function findDashboardDropTargets(\n node: HTMLElement,\n clientX: number,\n clientY: number,\n movingId: string,\n isContainer: boolean,\n maximumContainerParentDepth = 2,\n frozen?: DashboardTargetGeometry,\n): DashboardDropTarget[] {\n const root = node.closest<HTMLElement>('[data-dashboard-root]');\n if (!root) return [];\n\n const candidates = collectDashboardDropElements(root)\n .flatMap((element) => {\n const rect =\n readFrozenRect(frozen, element) ?? element.getBoundingClientRect();\n if (\n rect.width <= 0 ||\n rect.height <= 0 ||\n clientX < rect.left ||\n clientX > rect.right ||\n clientY < rect.top ||\n clientY > rect.bottom\n ) {\n return [];\n }\n\n const parentId = element.dataset.dashboardParentId || null;\n const kind = (element.dataset.dashboardContainerKind ??\n 'root') as DashboardParentKind;\n const depth = Number(element.dataset.dashboardDepth ?? 0);\n const ancestorIds = parseDashboardAncestorIds(element);\n\n if (!isContainer && kind === 'root') return [];\n if (\n isContainer &&\n (depth > maximumContainerParentDepth ||\n parentId === movingId ||\n ancestorIds.includes(movingId))\n ) {\n return [];\n }\n\n return [\n {\n parentId,\n kind,\n columns: Math.max(1, Number(element.dataset.dashboardColumns ?? 12)),\n rows: Math.max(1, Number(element.dataset.dashboardRows ?? 1)),\n depth,\n rect,\n element,\n },\n ];\n })\n .sort(\n (first, second) =>\n second.depth - first.depth ||\n first.rect.width * first.rect.height -\n second.rect.width * second.rect.height,\n );\n\n return candidates;\n}\n\n/**\n * The drop targets belonging to one Dashboard.\n *\n * `querySelectorAll` alone is wrong twice over: the root carries the drop-target\n * attribute itself, so passing it explicitly *and* matching it lists it twice;\n * and a second Dashboard rendered inside a widget of this one contributes its\n * own content grids, whose depths restart at 1. Those win the depth sort and\n * hand the outer consumer a `destinationParentId` from a tree it does not own.\n */\nfunction collectDashboardDropElements(root: HTMLElement): HTMLElement[] {\n return Array.from(\n root.querySelectorAll<HTMLElement>('[data-dashboard-drop-target]'),\n )\n .filter((element) => element.closest('[data-dashboard-root]') === root)\n .concat(root);\n}\n\n/**\n * The node's own parent, as a drop target.\n *\n * Keyboard movement never leaves the parent and has no pointer to hit-test, but\n * it still lands on occupied cells — before this it skipped occupancy entirely\n * and committed overlaps with no danger signal at all.\n */\nexport function getOwnDashboardDropTarget(\n node: HTMLElement,\n): DashboardDropTarget | null {\n const element = node.parentElement;\n if (!element || element.dataset.dashboardDropTarget === undefined) {\n return null;\n }\n\n return {\n parentId: element.dataset.dashboardParentId || null,\n kind: (element.dataset.dashboardContainerKind ??\n 'root') as DashboardParentKind,\n columns: Math.max(1, Number(element.dataset.dashboardColumns ?? 12)),\n rows: Math.max(1, Number(element.dataset.dashboardRows ?? 1)),\n depth: Number(element.dataset.dashboardDepth ?? 0),\n rect: element.getBoundingClientRect(),\n element,\n };\n}\n\n/**\n * Destination rectangles, measured once at the start of a gesture.\n *\n * Hit testing cannot read live geometry here. The consumer owns the layout and\n * applies every `preview` placement, so the node moves as the pointer moves —\n * which moves the rectangles the next frame's hit test depends on, and the\n * result oscillates between two destinations. Freezing at gesture start makes\n * the pointer the only thing that varies. `Board` reaches the same conclusion\n * for the same reason (see `use-board-registry.ts`).\n *\n * The scroll offset is frozen alongside the rectangles. A client-space rectangle\n * is only valid at the scroll position it was measured at, so reading one back\n * has to undo whatever scrolling has happened since — otherwise scrolling during\n * a drag silently moves every destination out from under the pointer.\n */\nexport interface DashboardTargetGeometry {\n rects: Map<HTMLElement, DOMRect>;\n scrollX: number;\n scrollY: number;\n}\n\nexport function freezeDashboardTargetGeometry(\n node: HTMLElement,\n): DashboardTargetGeometry {\n const root = node.closest<HTMLElement>('[data-dashboard-root]');\n const frozen: DashboardTargetGeometry = {\n rects: new Map(),\n scrollX: window.scrollX,\n scrollY: window.scrollY,\n };\n if (!root) return frozen;\n\n for (const element of collectDashboardDropElements(root)) {\n frozen.rects.set(element, element.getBoundingClientRect());\n }\n\n return frozen;\n}\n\n/** A frozen rectangle brought back into the current client coordinate space. */\nfunction readFrozenRect(\n frozen: DashboardTargetGeometry | undefined,\n element: HTMLElement,\n): DOMRect | undefined {\n const rect = frozen?.rects.get(element);\n if (!rect || !frozen) return undefined;\n\n const shiftX = frozen.scrollX - window.scrollX;\n const shiftY = frozen.scrollY - window.scrollY;\n if (shiftX === 0 && shiftY === 0) return rect;\n\n return new DOMRect(\n rect.left + shiftX,\n rect.top + shiftY,\n rect.width,\n rect.height,\n );\n}\n\nexport function getCrossParentPlacement(\n target: DashboardDropTarget,\n gesture: DashboardPlacementGesture,\n minColumns: number,\n minRows: number,\n isContainer: boolean,\n metrics: DashboardMetrics,\n): DashboardPlacement | null {\n if (target.kind === 'root') {\n if (!isContainer) return null;\n\n const siblingMidpoints = Array.from(target.element.children)\n .filter(\n (child): child is HTMLElement =>\n child instanceof HTMLElement &&\n child.dataset.dashboardNode === 'container' &&\n child.dataset.dashboardNodeId !== undefined,\n )\n .map((child) => {\n const rect = child.getBoundingClientRect();\n return rect.top + rect.height / 2;\n })\n .filter((midpoint) => Number.isFinite(midpoint));\n const pointerY = gesture.clientY;\n\n return {\n column: 0,\n row: siblingMidpoints.filter((midpoint) => midpoint < pointerY).length,\n columns: 12,\n rows: gesture.origin.rows,\n };\n }\n\n const grabbedItem = gesture.items[0];\n const columns = Math.min(\n target.kind === 'vertical-stack'\n ? grabbedItem.maxColumns\n : gesture.origin.columns,\n target.columns,\n );\n const rows = Math.min(\n target.kind === 'horizontal-stack'\n ? grabbedItem.maxRows\n : gesture.origin.rows,\n target.rows,\n );\n if (columns < minColumns || rows < minRows) return null;\n\n const corner = pointToCell(\n {\n x: gesture.clientX - gesture.grabOffsetX,\n y: gesture.clientY - gesture.grabOffsetY,\n },\n target.rect,\n target.columns,\n target.rows,\n metrics,\n 'nearest',\n );\n\n return {\n column:\n target.kind === 'vertical-stack'\n ? 0\n : Math.min(corner.column, target.columns - columns),\n row:\n target.kind === 'horizontal-stack'\n ? 0\n : Math.min(corner.row, target.rows - rows),\n columns,\n rows,\n };\n}\n\nexport function readDashboardNodePlacement(\n element: HTMLElement,\n): DashboardPlacement | null {\n const column = Number(element.dataset.dashboardColumn);\n const row = Number(element.dataset.dashboardRow);\n const columns = Number(element.dataset.dashboardColumns);\n const rows = Number(element.dataset.dashboardRows);\n\n if (![column, row, columns, rows].every(Number.isFinite)) return null;\n\n return { column, row, columns, rows };\n}\n\nexport function getDashboardGestureItem(\n id: string,\n origin: DashboardPlacement,\n element: HTMLElement,\n): DashboardGestureItem {\n const readConstraint = (\n value: string | undefined,\n fallback: number,\n ): number => {\n const parsed = Number(value);\n\n return Number.isFinite(parsed) ? parsed : fallback;\n };\n\n return {\n id,\n origin,\n element,\n minColumns: readConstraint(\n element.dataset.dashboardMinColumns,\n origin.columns,\n ),\n maxColumns: readConstraint(\n element.dataset.dashboardMaxColumns,\n origin.columns,\n ),\n minRows: readConstraint(element.dataset.dashboardMinRows, origin.rows),\n maxRows: readConstraint(element.dataset.dashboardMaxRows, origin.rows),\n };\n}\n\nexport interface DashboardSibling {\n id: string;\n placement: DashboardPlacement;\n}\n\n/** The stationary nodes a landing has to coexist with, read from the DOM. */\nexport function getDashboardDropSiblings(\n target: DashboardDropTarget,\n movingIds: ReadonlySet<string>,\n): DashboardSibling[] {\n return Array.from(target.element.children).flatMap((child) => {\n if (!(child instanceof HTMLElement)) return [];\n if (!child.dataset.dashboardNode) return [];\n const id = child.dataset.dashboardNodeId ?? '';\n if (movingIds.has(id)) return [];\n if (child.dataset.dashboardAddSlot !== undefined) return [];\n\n const placement = readDashboardNodePlacement(child);\n\n return placement ? [{ id, placement }] : [];\n });\n}\n\n/** What a destination will accept, and what has to move out of the way for it. */\nexport interface DashboardDropResolution {\n status: DashboardDropStatus;\n /** The moving group, normalized for the destination's layout. */\n items: DashboardPlacementChangeItem[];\n /** Stationary siblings this landing pushes to a new placement. */\n displaced: DashboardPlacementChangeItem[];\n}\n\nconst REJECTED: Omit<DashboardDropResolution, 'items'> = {\n status: 'danger',\n displaced: [],\n};\n\n/**\n * Where a single blocker can go inside the box the moving node is vacating.\n *\n * Deliberately narrow. Relocating a blocker anywhere in the grid is easy to\n * implement and unpleasant to use: dropping one widget can shove an unrelated\n * section across the dashboard. Restricting the search to the vacated box makes\n * the operation a swap — the only rearrangement a user can predict from the\n * gesture — and anything that does not fit there is refused instead.\n */\nfunction findSwapPlacement(\n target: DashboardDropTarget,\n blocker: DashboardPlacement,\n vacated: DashboardPlacement,\n occupied: DashboardPlacement[],\n): DashboardPlacement | null {\n const candidates: DashboardPlacement[] = [];\n\n for (\n let row = vacated.row;\n row <= vacated.row + vacated.rows - blocker.rows;\n row += 1\n ) {\n for (\n let column = vacated.column;\n column <= vacated.column + vacated.columns - blocker.columns;\n column += 1\n ) {\n const candidate = {\n column,\n row,\n columns: blocker.columns,\n rows: blocker.rows,\n };\n\n if (\n candidate.column + candidate.columns > target.columns ||\n candidate.row + candidate.rows > target.rows\n ) {\n continue;\n }\n if (\n occupied.some((placement) => placementsOverlap(candidate, placement))\n ) {\n continue;\n }\n candidates.push(candidate);\n }\n }\n\n const distance = (candidate: DashboardPlacement) =>\n Math.abs(candidate.column - blocker.column) +\n Math.abs(candidate.row - blocker.row);\n\n return (\n candidates.sort((first, second) => distance(first) - distance(second))[0] ??\n null\n );\n}\n\n/**\n * Resolve a grid landing, swapping one occupant into the vacated box.\n *\n * Returns the siblings that have to move, or `null` when the landing cannot be\n * arranged — which the caller reports as a danger placeholder rather than\n * silently applying half of it.\n */\nfunction resolveGridOccupancy(\n target: DashboardDropTarget,\n items: DashboardPlacementChangeItem[],\n siblings: DashboardSibling[],\n vacated?: DashboardPlacement,\n): DashboardPlacementChangeItem[] | null {\n const landings = items.map((item) => item.placement);\n const blockers = siblings.filter((sibling) =>\n landings.some((landing) => placementsOverlap(sibling.placement, landing)),\n );\n if (!blockers.length) return [];\n // A swap needs one thing coming in and one thing going out, and somewhere\n // known for it to go.\n if (!vacated || blockers.length !== 1 || items.length !== 1) return null;\n\n const stationary = siblings\n .filter((sibling) => sibling !== blockers[0])\n .map((sibling) => sibling.placement);\n const spot = findSwapPlacement(target, blockers[0].placement, vacated, [\n ...landings,\n ...stationary,\n ]);\n\n return spot ? [{ id: blockers[0].id, placement: spot }] : null;\n}\n\n/**\n * Resolve a stack landing by reordering the sequence.\n *\n * A stack has no coordinates the consumer can trust — `getPlacementStyle` emits\n * `span N` and auto-flow decides the rest — so the useful answer is the order,\n * expressed as fresh sequential placements for every affected child.\n */\nfunction resolveStackOccupancy(\n target: DashboardDropTarget,\n items: DashboardPlacementChangeItem[],\n siblings: DashboardSibling[],\n isSameParent: boolean,\n): Omit<DashboardDropResolution, 'status'> | null {\n const isHorizontal = target.kind === 'horizontal-stack';\n const axisSpan = (placement: DashboardPlacement) =>\n isHorizontal ? placement.columns : placement.rows;\n const capacity = isHorizontal ? target.columns : target.rows;\n const used = siblings.reduce(\n (total, sibling) => total + axisSpan(sibling.placement),\n 0,\n );\n const incoming = items.reduce(\n (total, item) => total + axisSpan(item.placement),\n 0,\n );\n\n if (used + incoming > capacity) return null;\n if (isHorizontal && items.some((item) => item.placement.rows > target.rows)) {\n return null;\n }\n\n // Where the pointer put the grabbed item, in sequence terms: before the first\n // sibling whose midpoint it has passed.\n const start = isHorizontal\n ? items[0].placement.column\n : items[0].placement.row;\n let offset = 0;\n let index = siblings.length;\n\n for (const [position, sibling] of siblings.entries()) {\n const span = axisSpan(sibling.placement);\n if (start < offset + span / 2) {\n index = position;\n break;\n }\n offset += span;\n }\n\n const ordered = [\n ...siblings.slice(0, index).map((sibling) => ({\n id: sibling.id,\n placement: sibling.placement,\n moving: false,\n })),\n ...items.map((item) => ({\n id: item.id,\n placement: item.placement,\n moving: true,\n })),\n ...siblings.slice(index).map((sibling) => ({\n id: sibling.id,\n placement: sibling.placement,\n moving: false,\n })),\n ];\n\n let cursor = 0;\n const resolvedItems: DashboardPlacementChangeItem[] = [];\n const displaced: DashboardPlacementChangeItem[] = [];\n\n for (const entry of ordered) {\n const placement = {\n ...entry.placement,\n column: isHorizontal ? cursor : 0,\n row: isHorizontal ? 0 : cursor,\n };\n cursor += axisSpan(entry.placement);\n\n if (entry.moving) {\n resolvedItems.push({ id: entry.id, placement });\n } else if (\n placement.column !== entry.placement.column ||\n placement.row !== entry.placement.row\n ) {\n displaced.push({ id: entry.id, placement });\n }\n }\n\n // A same-parent reorder that changes nothing is not a move; let the caller's\n // own \"did anything change\" check see the original placements.\n if (!isSameParent || displaced.length || resolvedItems.length) {\n return { items: resolvedItems, displaced };\n }\n\n return { items, displaced: [] };\n}\n\n/**\n * What this destination would do with the landing.\n *\n * Dashboard used to only *judge* a landing — `valid` or `danger` — and leave the\n * arrangement to the consumer, which meant every consumer reimplemented the\n * swap and reflow policy the Playground demonstrated. Resolving it here means\n * the reported `info.items` already describes the whole arrangement, and the\n * consumer only writes placements.\n */\nexport function resolveDashboardDrop(\n target: DashboardDropTarget,\n items: DashboardPlacementChangeItem[],\n movingIds: ReadonlySet<string>,\n sourceParentId: string | null,\n movingOrigins: DashboardPlacement[],\n): DashboardDropResolution {\n if (target.kind === 'root') return { status: 'valid', items, displaced: [] };\n\n const siblings = getDashboardDropSiblings(target, movingIds);\n const isSameParent = target.parentId === sourceParentId;\n\n if (target.kind === 'horizontal-stack' || target.kind === 'vertical-stack') {\n const resolved = resolveStackOccupancy(\n target,\n items,\n siblings,\n isSameParent,\n );\n\n return resolved ? { status: 'valid', ...resolved } : { ...REJECTED, items };\n }\n\n const displaced = resolveGridOccupancy(\n target,\n items,\n siblings,\n isSameParent && movingOrigins.length === 1 ? movingOrigins[0] : undefined,\n );\n\n return displaced\n ? { status: 'valid', items, displaced }\n : { ...REJECTED, items };\n}\n\nexport function getDashboardDropPreviewStyle(\n target: DashboardDropTarget,\n placement: DashboardPlacement,\n movingElement: HTMLElement,\n metrics: DashboardMetrics,\n movingIds: ReadonlySet<string>,\n): CSSProperties {\n if (target.kind === 'root') {\n const rootRect = target.element.getBoundingClientRect();\n const siblings = Array.from(target.element.children).filter(\n (child): child is HTMLElement =>\n child instanceof HTMLElement &&\n child.dataset.dashboardNode === 'container' &&\n !movingIds.has(child.dataset.dashboardNodeId ?? ''),\n );\n const index = clamp(placement.row, 0, siblings.length);\n const previousRect = siblings[index - 1]?.getBoundingClientRect();\n const nextRect = siblings[index]?.getBoundingClientRect();\n const top = nextRect\n ? nextRect.top - rootRect.top\n : previousRect\n ? previousRect.bottom - rootRect.top + DASHBOARD_ROOT_GAP\n : 0;\n\n return {\n left: 0,\n top,\n width: rootRect.width,\n height: movingElement.getBoundingClientRect().height,\n };\n }\n\n return {\n inset: 0,\n gridColumn:\n target.kind === 'vertical-stack'\n ? '1 / -1'\n : `${placement.column + 1} / span ${placement.columns}`,\n gridRow:\n target.kind === 'horizontal-stack'\n ? `1 / span ${placement.rows}`\n : `${placement.row + 1} / span ${placement.rows}`,\n };\n}\n\nexport function getDashboardGestureItems(\n movingElement: HTMLElement,\n movingId: string,\n movingOrigin: DashboardPlacement,\n isSelected: boolean,\n): DashboardGestureItem[] {\n const ownItem = getDashboardGestureItem(\n movingId,\n movingOrigin,\n movingElement,\n );\n if (!isSelected || !movingElement.parentElement) return [ownItem];\n\n const selectedSiblings = Array.from(\n movingElement.parentElement.children,\n ).flatMap((child) => {\n if (!(child instanceof HTMLElement)) return [];\n const id = child.dataset.dashboardNodeId;\n if (!id || id === movingId || child.dataset.selected === undefined) {\n return [];\n }\n\n const origin = readDashboardNodePlacement(child);\n\n return origin ? [getDashboardGestureItem(id, origin, child)] : [];\n });\n\n return [ownItem, ...selectedSiblings];\n}\n\nexport function getDashboardGesturePlacements(\n target: DashboardDropTarget,\n gesture: DashboardPlacementGesture,\n grabbedPlacement: DashboardPlacement,\n): DashboardPlacementChangeItem[] | null {\n if (gesture.items.length === 1) {\n return [{ id: gesture.items[0].id, placement: grabbedPlacement }];\n }\n\n if (target.kind === 'root') {\n if (\n gesture.items.some(\n (item) => item.element.dataset.dashboardNode !== 'container',\n )\n ) {\n return null;\n }\n\n return gesture.items.map((item, index) => ({\n id: item.id,\n placement: {\n ...item.origin,\n column: 0,\n row: grabbedPlacement.row + index,\n columns: 12,\n },\n }));\n }\n\n const columnDelta = grabbedPlacement.column - gesture.origin.column;\n const rowDelta = grabbedPlacement.row - gesture.origin.row;\n const placements = gesture.items.map((item) => ({\n id: item.id,\n placement: {\n ...item.origin,\n column:\n target.kind === 'vertical-stack' ? 0 : item.origin.column + columnDelta,\n row: target.kind === 'horizontal-stack' ? 0 : item.origin.row + rowDelta,\n columns: Math.min(\n target.kind === 'vertical-stack'\n ? item.maxColumns\n : item.origin.columns,\n target.columns,\n ),\n rows: Math.min(\n target.kind === 'horizontal-stack' ? item.maxRows : item.origin.rows,\n target.rows,\n ),\n },\n }));\n if (\n placements.some((item, index) => {\n const constraints = gesture.items[index];\n\n return (\n item.placement.columns < constraints.minColumns ||\n item.placement.rows < constraints.minRows\n );\n })\n ) {\n return null;\n }\n const minimumColumn = Math.min(\n ...placements.map((item) => item.placement.column),\n );\n const minimumRow = Math.min(...placements.map((item) => item.placement.row));\n const maximumColumn = Math.max(\n ...placements.map((item) => item.placement.column + item.placement.columns),\n );\n const maximumRow = Math.max(\n ...placements.map((item) => item.placement.row + item.placement.rows),\n );\n const groupColumns = maximumColumn - minimumColumn;\n const groupRows = maximumRow - minimumRow;\n\n if (groupColumns > target.columns || groupRows > target.rows) return null;\n\n const shiftColumn =\n minimumColumn < 0\n ? -minimumColumn\n : maximumColumn > target.columns\n ? target.columns - maximumColumn\n : 0;\n const shiftRow =\n minimumRow < 0\n ? -minimumRow\n : maximumRow > target.rows\n ? target.rows - maximumRow\n : 0;\n\n return placements.map((item) => ({\n ...item,\n placement: {\n ...item.placement,\n column: item.placement.column + shiftColumn,\n row: item.placement.row + shiftRow,\n },\n }));\n}\n\n/**\n * One placeholder per moving item. The status is resolved by the caller, which\n * needs the displaced siblings anyway and should not resolve the same landing\n * twice.\n */\nexport function createDashboardDropPreviews(\n target: DashboardDropTarget,\n items: DashboardPlacementChangeItem[],\n gestureItems: DashboardGestureItem[],\n metrics: DashboardMetrics,\n status: DashboardDropStatus,\n): DashboardDropPreview[] {\n const movingIds = new Set(gestureItems.map((item) => item.id));\n let rootOffset = 0;\n const addSlotPlacement = Array.from(target.element.children).flatMap(\n (child) => {\n if (!(child instanceof HTMLElement)) return [];\n if (child.dataset.dashboardAddSlot === undefined) return [];\n\n const placement = readDashboardNodePlacement(child);\n\n return placement ? [placement] : [];\n },\n )[0];\n\n return items.map((item) => {\n const gestureItem = gestureItems.find(\n (candidate) => candidate.id === item.id,\n );\n const style = getDashboardDropPreviewStyle(\n target,\n item.placement,\n gestureItem?.element ?? gestureItems[0].element,\n metrics,\n movingIds,\n );\n\n if (target.kind === 'root') {\n style.top = Number(style.top ?? 0) + rootOffset;\n rootOffset += Number(style.height ?? 0) + DASHBOARD_ROOT_GAP;\n }\n\n return {\n id: item.id,\n target: target.element,\n placement: item.placement,\n status,\n coversAddSlot:\n addSlotPlacement !== undefined &&\n placementsOverlap(item.placement, addSlotPlacement),\n style,\n };\n });\n}\n\nexport function useDashboardDropPreview() {\n const [preview, setPreview] = useState<DashboardDropPreview[]>([]);\n const updatePreview = useEvent((next: DashboardDropPreview[] | null) => {\n setPreview(next ?? []);\n });\n\n return [preview, updatePreview] as const;\n}\n\nexport function renderDashboardDropPreview(\n previews: DashboardDropPreview[],\n blockedLabel: string,\n) {\n return previews.map((preview) => {\n const isBlocked = preview.status === 'danger';\n\n return createPortal(\n <DropPlaceholderElement\n key={preview.id}\n aria-hidden={isBlocked ? undefined : 'true'}\n data-dashboard-drop-status={preview.status}\n data-dashboard-drop-item-id={preview.id}\n data-dashboard-drop-covers-add-slot={preview.coversAddSlot || undefined}\n mods={{ danger: isBlocked }}\n style={preview.style}\n >\n <div\n data-element=\"Icon\"\n role={isBlocked ? 'img' : undefined}\n aria-label={isBlocked ? blockedLabel : undefined}\n aria-hidden={isBlocked ? undefined : 'true'}\n >\n <CloseCircleIcon />\n </div>\n </DropPlaceholderElement>,\n preview.target,\n preview.id,\n );\n });\n}\n"],"mappings":"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"}
@@ -1,6 +0,0 @@
1
-
2
- import { CubeDashboardContainerProps, CubeDashboardProps, CubeDashboardTabProps, CubeDashboardTabsProps, CubeDashboardWidgetProps, DashboardAddItemDefinition, DashboardAddItemInfo, DashboardAddItemKind, DashboardContainerKind, DashboardNodeAction, DashboardParentKind, DashboardPlacement, DashboardPlacementChangeInfo, DashboardPlacementChangeInput, DashboardPlacementChangeItem, DashboardPlacementChangePhase, DashboardPlacementChangeReason, DashboardPlacementProps, DashboardSelectionMode } from "./types.js";
3
- import { DashboardTab, DashboardTabs } from "./DashboardTabs.js";
4
- import { DashboardGrid, DashboardHorizontalStack, DashboardVerticalStack } from "./DashboardContainer.js";
5
- import { DashboardWidget } from "./DashboardWidget.js";
6
- import { Dashboard } from "./Dashboard.js";