@cube-dev/ui-kit 0.0.0-canary-4c90a81 → 0.0.0-canary-c26fe9d

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 (476) hide show
  1. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +1 -1
  18. package/dist/components/actions/Button/Button.js +1 -1
  19. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  20. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  21. package/dist/components/actions/ButtonSplit/context.js +1 -1
  22. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  23. package/dist/components/actions/CommandMenu/styled.js +1 -1
  24. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  25. package/dist/components/actions/ItemActionContext.js +1 -1
  26. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  27. package/dist/components/actions/Link/Link.js +1 -1
  28. package/dist/components/actions/Menu/Menu.js +1 -1
  29. package/dist/components/actions/Menu/MenuItem.js +1 -1
  30. package/dist/components/actions/Menu/MenuSection.js +1 -1
  31. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  32. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  34. package/dist/components/actions/Menu/context.js +1 -1
  35. package/dist/components/actions/Menu/styled.js +1 -1
  36. package/dist/components/actions/index.js +1 -1
  37. package/dist/components/actions/use-action.js +1 -1
  38. package/dist/components/actions/use-anchored-menu.js +1 -1
  39. package/dist/components/actions/use-context-menu.js +1 -1
  40. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  41. package/dist/components/content/Alert/Alert.js +1 -1
  42. package/dist/components/content/Alert/use-alert.js +1 -1
  43. package/dist/components/content/Avatar/Avatar.js +1 -1
  44. package/dist/components/content/Badge/Badge.js +1 -1
  45. package/dist/components/content/Card/Card.js +1 -1
  46. package/dist/components/content/Content.js +1 -1
  47. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  48. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  49. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  50. package/dist/components/content/Divider.js +1 -1
  51. package/dist/components/content/Footer.js +1 -1
  52. package/dist/components/content/Header.js +1 -1
  53. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  54. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  55. package/dist/components/content/Item/Item.js +1 -1
  56. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  57. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  58. package/dist/components/content/Layout/GridLayout.js +1 -1
  59. package/dist/components/content/Layout/Layout.js +1 -1
  60. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  61. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  62. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  63. package/dist/components/content/Layout/LayoutContent.js +1 -1
  64. package/dist/components/content/Layout/LayoutContext.js +1 -1
  65. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  66. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  67. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  68. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  69. package/dist/components/content/Layout/LayoutPane.js +1 -1
  70. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  71. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  72. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  73. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  74. package/dist/components/content/Layout/index.js +1 -1
  75. package/dist/components/content/Layout/utils.js +1 -1
  76. package/dist/components/content/Paragraph.js +1 -1
  77. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  78. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  79. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  80. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  81. package/dist/components/content/Result/Result.js +1 -1
  82. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  83. package/dist/components/content/Tag/Tag.js +1 -1
  84. package/dist/components/content/Text.js +1 -1
  85. package/dist/components/content/TextItem/TextItem.js +1 -1
  86. package/dist/components/content/Title.js +1 -1
  87. package/dist/components/content/Tree/Tree.js +1 -1
  88. package/dist/components/content/Tree/TreeNode.js +1 -1
  89. package/dist/components/content/Tree/styled.js +1 -1
  90. package/dist/components/content/Tree/tree-index.js +1 -1
  91. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  92. package/dist/components/content/Tree/use-load-data.js +1 -1
  93. package/dist/components/content/highlightText.js +1 -1
  94. package/dist/components/content/use-auto-tooltip.js +1 -1
  95. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  96. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  97. package/dist/components/fields/Checkbox/context.js +1 -1
  98. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  99. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  100. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  101. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  102. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  103. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  104. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  105. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  106. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  107. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  108. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  109. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  110. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  111. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  112. package/dist/components/fields/DatePicker/intl.js +1 -1
  113. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  114. package/dist/components/fields/DatePicker/props.js +1 -1
  115. package/dist/components/fields/DatePicker/utils.js +1 -1
  116. package/dist/components/fields/FileInput/FileInput.js +1 -1
  117. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  118. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  119. package/dist/components/fields/Input/Input.js +1 -1
  120. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  121. package/dist/components/fields/ListBox/ListBox.js +1 -1
  122. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  123. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  124. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  125. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  126. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  127. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  128. package/dist/components/fields/Picker/Picker.js +1 -1
  129. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  130. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  131. package/dist/components/fields/RadioGroup/context.js +1 -1
  132. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  133. package/dist/components/fields/Select/Select.js +1 -1
  134. package/dist/components/fields/Slider/Gradation.js +1 -1
  135. package/dist/components/fields/Slider/HueSlider.js +1 -1
  136. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  137. package/dist/components/fields/Slider/Slider.js +1 -1
  138. package/dist/components/fields/Slider/SliderBase.js +1 -1
  139. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  140. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  141. package/dist/components/fields/Slider/elements.js +1 -1
  142. package/dist/components/fields/Slider/index.js +1 -1
  143. package/dist/components/fields/Switch/Switch.js +1 -1
  144. package/dist/components/fields/TextArea/TextArea.js +1 -1
  145. package/dist/components/fields/TextInput/TextInput.js +1 -1
  146. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  147. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  148. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  149. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  150. package/dist/components/form/Form/Field.js +1 -1
  151. package/dist/components/form/Form/Form.js +1 -1
  152. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  153. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  154. package/dist/components/form/Form/SubmitError.js +1 -1
  155. package/dist/components/form/Form/index.js +1 -1
  156. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  157. package/dist/components/form/Form/use-field/use-field.js +1 -1
  158. package/dist/components/form/Form/use-form.js +1 -1
  159. package/dist/components/form/Form/validation.js +1 -1
  160. package/dist/components/form/Label.js +1 -1
  161. package/dist/components/form/wrapper.js +1 -1
  162. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  163. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  164. package/dist/components/layout/Board/Board.d.ts +110 -0
  165. package/dist/components/layout/Board/Board.js +447 -0
  166. package/dist/components/layout/Board/Board.js.map +1 -0
  167. package/dist/components/layout/Board/BoardProvider.d.ts +28 -0
  168. package/dist/components/layout/Board/BoardProvider.js +47 -0
  169. package/dist/components/layout/Board/BoardProvider.js.map +1 -0
  170. package/dist/components/layout/Board/BoardResponsive.d.ts +45 -0
  171. package/dist/components/layout/Board/BoardResponsive.js +94 -0
  172. package/dist/components/layout/Board/BoardResponsive.js.map +1 -0
  173. package/dist/components/layout/Board/Widget.d.ts +49 -0
  174. package/dist/components/layout/Board/Widget.js +42 -0
  175. package/dist/components/layout/Board/Widget.js.map +1 -0
  176. package/dist/components/layout/Board/WidgetHost.js +341 -0
  177. package/dist/components/layout/Board/WidgetHost.js.map +1 -0
  178. package/dist/components/layout/Board/board-context.d.ts +16 -0
  179. package/dist/components/layout/Board/board-context.js +32 -0
  180. package/dist/components/layout/Board/board-context.js.map +1 -0
  181. package/dist/components/layout/Board/board-store.d.ts +3 -0
  182. package/dist/components/layout/Board/board-store.js +49 -0
  183. package/dist/components/layout/Board/board-store.js.map +1 -0
  184. package/dist/components/layout/Board/grid-core/calculate.js +90 -0
  185. package/dist/components/layout/Board/grid-core/calculate.js.map +1 -0
  186. package/dist/components/layout/Board/grid-core/collision.js +35 -0
  187. package/dist/components/layout/Board/grid-core/collision.js.map +1 -0
  188. package/dist/components/layout/Board/grid-core/compactors.d.ts +23 -0
  189. package/dist/components/layout/Board/grid-core/compactors.js +166 -0
  190. package/dist/components/layout/Board/grid-core/compactors.js.map +1 -0
  191. package/dist/components/layout/Board/grid-core/constraints.d.ts +35 -0
  192. package/dist/components/layout/Board/grid-core/constraints.js +155 -0
  193. package/dist/components/layout/Board/grid-core/constraints.js.map +1 -0
  194. package/dist/components/layout/Board/grid-core/layout.js +176 -0
  195. package/dist/components/layout/Board/grid-core/layout.js.map +1 -0
  196. package/dist/components/layout/Board/grid-core/sort.js +37 -0
  197. package/dist/components/layout/Board/grid-core/sort.js.map +1 -0
  198. package/dist/components/layout/Board/grid-core/types.d.ts +168 -0
  199. package/dist/components/layout/Board/index.d.ts +21 -0
  200. package/dist/components/layout/Board/index.js +18 -0
  201. package/dist/components/layout/Board/index.js.map +1 -0
  202. package/dist/components/layout/Board/responsive-utils.d.ts +13 -0
  203. package/dist/components/layout/Board/responsive-utils.js +55 -0
  204. package/dist/components/layout/Board/responsive-utils.js.map +1 -0
  205. package/dist/components/layout/Board/use-board-layout.js +52 -0
  206. package/dist/components/layout/Board/use-board-layout.js.map +1 -0
  207. package/dist/components/layout/Board/use-board-registry.js +372 -0
  208. package/dist/components/layout/Board/use-board-registry.js.map +1 -0
  209. package/dist/components/layout/Flex.js +1 -1
  210. package/dist/components/layout/Flow.js +1 -1
  211. package/dist/components/layout/Grid.js +1 -1
  212. package/dist/components/layout/Panel.js +1 -1
  213. package/dist/components/layout/Prefix.js +1 -1
  214. package/dist/components/layout/ResizablePanel.js +1 -1
  215. package/dist/components/layout/Space.js +1 -1
  216. package/dist/components/layout/Suffix.js +1 -1
  217. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  218. package/dist/components/navigation/Tabs/TabButton.js +36 -4
  219. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  220. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  221. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  222. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  223. package/dist/components/navigation/Tabs/Tabs.js +6 -3
  224. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  225. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  226. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  227. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  228. package/dist/components/navigation/Tabs/styled.js +3 -2
  229. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  230. package/dist/components/navigation/Tabs/types.js +1 -1
  231. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  232. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  233. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  234. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  235. package/dist/components/other/Calendar/Calendar.js +1 -1
  236. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  237. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  238. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  239. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  240. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  241. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  242. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  243. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  244. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  245. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  246. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  247. package/dist/components/overlays/Dialog/context.js +1 -1
  248. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  249. package/dist/components/overlays/Modal/Modal.js +1 -1
  250. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  251. package/dist/components/overlays/Modal/Overlay.js +1 -1
  252. package/dist/components/overlays/Modal/Popover.js +1 -1
  253. package/dist/components/overlays/Modal/Tray.js +1 -1
  254. package/dist/components/overlays/Modal/Underlay.js +1 -1
  255. package/dist/components/overlays/Notifications/Notification.js +1 -1
  256. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  257. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  258. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  259. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  260. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  261. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  262. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  263. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  264. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  265. package/dist/components/overlays/Notifications/index.js +1 -1
  266. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  267. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  268. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  269. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  270. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  271. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  272. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  273. package/dist/components/overlays/Toast/index.js +1 -1
  274. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  275. package/dist/components/overlays/Toast/useToast.js +1 -1
  276. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  277. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  278. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  279. package/dist/components/overlays/Tooltip/context.js +1 -1
  280. package/dist/components/portal/Portal.js +1 -1
  281. package/dist/components/portal/PortalProvider.js +1 -1
  282. package/dist/components/portal/usePortal.js +1 -1
  283. package/dist/components/shared/DraggableCollection.js +1 -1
  284. package/dist/components/shared/InvalidIcon.js +1 -1
  285. package/dist/components/shared/ValidIcon.js +1 -1
  286. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  287. package/dist/components/status/Spin/Cube.js +1 -1
  288. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  289. package/dist/components/status/Spin/Spin.js +1 -1
  290. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  291. package/dist/data/item-themes.js +1 -1
  292. package/dist/data/themes.js +1 -1
  293. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  294. package/dist/icons/AdjustmentsIcon.js +1 -1
  295. package/dist/icons/AiIcon.js +1 -1
  296. package/dist/icons/AreaChartIcon.js +1 -1
  297. package/dist/icons/BackwardIcon.js +1 -1
  298. package/dist/icons/BarChartIcon.js +1 -1
  299. package/dist/icons/BellFilledIcon.js +1 -1
  300. package/dist/icons/BellIcon.js +1 -1
  301. package/dist/icons/BooleanIcon.js +1 -1
  302. package/dist/icons/CalendarEditIcon.js +1 -1
  303. package/dist/icons/CalendarIcon.js +1 -1
  304. package/dist/icons/CaretDownIcon.js +1 -1
  305. package/dist/icons/CaretUpIcon.js +1 -1
  306. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  307. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  308. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  309. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  310. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  311. package/dist/icons/ChartBarLineIcon.js +1 -1
  312. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  313. package/dist/icons/ChartBarStackedIcon.js +1 -1
  314. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  315. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  316. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  317. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  318. package/dist/icons/ChartBubbleIcon.js +1 -1
  319. package/dist/icons/ChartDonut2Icon.js +1 -1
  320. package/dist/icons/ChartFunnelIcon.js +1 -1
  321. package/dist/icons/ChartHeatmapIcon.js +1 -1
  322. package/dist/icons/ChartKPIIcon.js +1 -1
  323. package/dist/icons/ChartPie2Icon.js +1 -1
  324. package/dist/icons/ChartScatterIcon.js +1 -1
  325. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  326. package/dist/icons/CheckCircleIcon.js +1 -1
  327. package/dist/icons/CheckIcon.js +1 -1
  328. package/dist/icons/CircleFilledIcon.js +1 -1
  329. package/dist/icons/ClearIcon.js +1 -1
  330. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  331. package/dist/icons/CloseCircleIcon.js +1 -1
  332. package/dist/icons/CloseIcon.js +1 -1
  333. package/dist/icons/CodeIcon.js +1 -1
  334. package/dist/icons/ColumnTotalIcon.js +1 -1
  335. package/dist/icons/CopyIcon.js +1 -1
  336. package/dist/icons/CountIcon.js +1 -1
  337. package/dist/icons/CubeIcon.js +1 -1
  338. package/dist/icons/CubePauseIcon.js +1 -1
  339. package/dist/icons/CubePlayIcon.js +1 -1
  340. package/dist/icons/CurrencyDollarIcon.js +1 -1
  341. package/dist/icons/DangerIcon.js +1 -1
  342. package/dist/icons/DashboardIcon.js +1 -1
  343. package/dist/icons/DatabaseIcon.js +1 -1
  344. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  345. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  346. package/dist/icons/DirectionIcon.js +1 -1
  347. package/dist/icons/DonutIcon.js +1 -1
  348. package/dist/icons/DownIcon.js +1 -1
  349. package/dist/icons/EditIcon.js +1 -1
  350. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  351. package/dist/icons/ExclamationCircleIcon.js +1 -1
  352. package/dist/icons/ExclamationIcon.js +1 -1
  353. package/dist/icons/EyeIcon.js +1 -1
  354. package/dist/icons/EyeInvisibleIcon.js +1 -1
  355. package/dist/icons/FilterIcon.js +1 -1
  356. package/dist/icons/FolderFilledIcon.js +1 -1
  357. package/dist/icons/FolderIcon.js +1 -1
  358. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  359. package/dist/icons/FolderOpenIcon.js +1 -1
  360. package/dist/icons/ForwardIcon.js +1 -1
  361. package/dist/icons/GripVerticalIcon.js +1 -1
  362. package/dist/icons/HierarchyIcon.js +1 -1
  363. package/dist/icons/HierarchyOpenIcon.js +1 -1
  364. package/dist/icons/Icon.js +1 -1
  365. package/dist/icons/InfoCircleIcon.js +1 -1
  366. package/dist/icons/InfoIcon.js +1 -1
  367. package/dist/icons/KeyIcon.js +1 -1
  368. package/dist/icons/LeftIcon.js +1 -1
  369. package/dist/icons/LineChartIcon.js +1 -1
  370. package/dist/icons/LoadingIcon.js +1 -1
  371. package/dist/icons/LockFilledIcon.js +1 -1
  372. package/dist/icons/LockIcon.js +1 -1
  373. package/dist/icons/MoreIcon.js +1 -1
  374. package/dist/icons/NotAllowedIcon.js +1 -1
  375. package/dist/icons/Number123Icon.js +1 -1
  376. package/dist/icons/NumberIcon.js +1 -1
  377. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  378. package/dist/icons/PauseCircleIcon.js +1 -1
  379. package/dist/icons/PauseIcon.js +1 -1
  380. package/dist/icons/PercentageIcon.js +1 -1
  381. package/dist/icons/PieChartIcon.js +1 -1
  382. package/dist/icons/PlayCircleIcon.js +1 -1
  383. package/dist/icons/PlayIcon.js +1 -1
  384. package/dist/icons/PlusIcon.js +1 -1
  385. package/dist/icons/ProgressBarIcon.js +1 -1
  386. package/dist/icons/ReloadIcon.js +1 -1
  387. package/dist/icons/ReportIcon.js +1 -1
  388. package/dist/icons/ReturnIcon.js +1 -1
  389. package/dist/icons/RightIcon.js +1 -1
  390. package/dist/icons/RowTotalsIcon.js +1 -1
  391. package/dist/icons/SchemeIcon.js +1 -1
  392. package/dist/icons/SearchIcon.js +1 -1
  393. package/dist/icons/SemanticQueryIcon.js +1 -1
  394. package/dist/icons/SettingsIcon.js +1 -1
  395. package/dist/icons/ShieldFilledIcon.js +1 -1
  396. package/dist/icons/ShieldIcon.js +1 -1
  397. package/dist/icons/SlashIcon.js +1 -1
  398. package/dist/icons/SparklesIcon.js +1 -1
  399. package/dist/icons/SqlIcon.js +1 -1
  400. package/dist/icons/StatsIcon.js +1 -1
  401. package/dist/icons/StopIcon.js +1 -1
  402. package/dist/icons/StringIcon.js +1 -1
  403. package/dist/icons/SubtotalsIcon.js +1 -1
  404. package/dist/icons/SwitchIcon.js +1 -1
  405. package/dist/icons/TableIcon.js +1 -1
  406. package/dist/icons/ThumbsDownIcon.js +1 -1
  407. package/dist/icons/ThumbsUpIcon.js +1 -1
  408. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  409. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  410. package/dist/icons/ThunderboltIcon.js +1 -1
  411. package/dist/icons/TimeIcon.js +1 -1
  412. package/dist/icons/TrashIcon.js +1 -1
  413. package/dist/icons/UnlockIcon.js +1 -1
  414. package/dist/icons/UpIcon.js +1 -1
  415. package/dist/icons/UserGroupIcon.js +1 -1
  416. package/dist/icons/UserIcon.js +1 -1
  417. package/dist/icons/UserLockIcon.js +1 -1
  418. package/dist/icons/ViewIcon.js +1 -1
  419. package/dist/icons/WarningFilledIcon.js +1 -1
  420. package/dist/icons/WarningIcon.js +1 -1
  421. package/dist/icons/wrap-icon.js +1 -1
  422. package/dist/index.d.ts +12 -2
  423. package/dist/index.js +8 -2
  424. package/dist/index.js.map +1 -1
  425. package/dist/provider.js +1 -1
  426. package/dist/providers/TrackingProvider.js +1 -1
  427. package/dist/providers/navigationAdapter.default.js +1 -1
  428. package/dist/tokens/base.js +1 -1
  429. package/dist/tokens/colors.js +1 -1
  430. package/dist/tokens/index.js +1 -1
  431. package/dist/tokens/layout.js +1 -1
  432. package/dist/tokens/palette.js +1 -1
  433. package/dist/tokens/shadows.js +1 -1
  434. package/dist/tokens/sizes.js +1 -1
  435. package/dist/tokens/spacing.js +1 -1
  436. package/dist/tokens/typography.js +1 -1
  437. package/dist/utils/ResizeSensor.js +1 -1
  438. package/dist/utils/is-dev-env.js +1 -1
  439. package/dist/utils/modules.js +1 -1
  440. package/dist/utils/promise.js +1 -1
  441. package/dist/utils/raf.js +1 -1
  442. package/dist/utils/random.js +1 -1
  443. package/dist/utils/range.js +1 -1
  444. package/dist/utils/react/RenderCache.js +1 -1
  445. package/dist/utils/react/Slots.js +1 -1
  446. package/dist/utils/react/chain.js +1 -1
  447. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  448. package/dist/utils/react/index.js +1 -1
  449. package/dist/utils/react/interactions.js +1 -1
  450. package/dist/utils/react/isTextOnly.js +1 -1
  451. package/dist/utils/react/mapProps.js +1 -1
  452. package/dist/utils/react/mergeProps.js +1 -1
  453. package/dist/utils/react/nullableValue.js +1 -1
  454. package/dist/utils/react/resolveIcon.js +1 -1
  455. package/dist/utils/react/sharedStore.js +1 -1
  456. package/dist/utils/react/useCombinedRefs.js +1 -1
  457. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  458. package/dist/utils/react/useEventBus.js +1 -1
  459. package/dist/utils/react/useId.js +1 -1
  460. package/dist/utils/react/useIsDarwin.js +1 -1
  461. package/dist/utils/react/useKeySymbols.js +1 -1
  462. package/dist/utils/react/useLayoutEffect.js +1 -1
  463. package/dist/utils/react/useLocalStorage.js +1 -1
  464. package/dist/utils/react/useMergeStyles.js +1 -1
  465. package/dist/utils/react/usePopoverSync.js +1 -1
  466. package/dist/utils/react/useQaProps.js +1 -1
  467. package/dist/utils/react/useViewportSize.js +1 -1
  468. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  469. package/dist/utils/selection.js +1 -1
  470. package/dist/utils/styles.js +1 -1
  471. package/dist/utils/tree.js +1 -1
  472. package/dist/utils/warnings.js +1 -1
  473. package/dist/version.js +2 -2
  474. package/docs/components/layout/Board.md +212 -0
  475. package/docs/components/navigation/Tabs.md +18 -2
  476. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4c90a81 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c26fe9d | Cube Dev Team */
2
2
  import { validate } from "email-validator";
3
3
  import validUrl from "valid-url";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4c90a81 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c26fe9d | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useProviderProps } from "../../provider.js";
4
4
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4c90a81 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c26fe9d | Cube Dev Team */
2
2
  import { mergeProps } from "../../utils/react/mergeProps.js";
3
3
  import { FieldWrapper } from "./FieldWrapper/FieldWrapper.js";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4c90a81 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c26fe9d | Cube Dev Team */
2
2
  import { useCallback, useLayoutEffect, useRef, useState } from "react";
3
3
 
4
4
  //#region src/components/helpers/DisplayTransition/DisplayTransition.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4c90a81 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c26fe9d | Cube Dev Team */
2
2
  import { DisplayTransition } from "../DisplayTransition/DisplayTransition.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { isValidElement, useCallback, useLayoutEffect, useRef, useState } from "react";
@@ -0,0 +1,110 @@
1
+
2
+ import { LayoutConstraint, LayoutItem, ResizeHandleAxis } from "./grid-core/types.js";
3
+ import { AllBaseProps, ContainerStyleProps } from "@tenphi/tasty";
4
+ import { ReactNode } from "react";
5
+
6
+ //#region src/components/layout/Board/Board.d.ts
7
+ type BoardCompactType = 'vertical' | 'horizontal' | 'free' | null;
8
+ /**
9
+ * Payload passed to the drag/resize lifecycle callbacks. `layout` is the board's
10
+ * current layout at the moment the callback fires, `item` is the affected item
11
+ * (falls back to `oldItem` if the item just left this board via a cross-board
12
+ * transfer), `oldItem` is that item as it was when the gesture started, and
13
+ * `placeholder` is the current drop-slot preview (if any).
14
+ */
15
+ interface BoardInteractionInfo {
16
+ layout: LayoutItem[];
17
+ item: LayoutItem;
18
+ oldItem: LayoutItem;
19
+ placeholder: LayoutItem | null;
20
+ }
21
+ /** Visibility of the internal grid-line overlay. */
22
+ type BoardGridLines = boolean | 'drag';
23
+ interface CubeBoardProps extends Omit<AllBaseProps, 'children' | 'onDragStart' | 'onDrag' | 'onResize'>, Omit<ContainerStyleProps, 'margin'> {
24
+ /** Stable board id (used for cross-board drag). Auto-generated if omitted. */
25
+ id?: string;
26
+ /** Controlled layout. */
27
+ layout?: LayoutItem[];
28
+ /** Initial layout for uncontrolled usage. */
29
+ defaultLayout?: LayoutItem[];
30
+ onLayoutChange?: (layout: LayoutItem[]) => void;
31
+ /** Called when a drag gesture starts. */
32
+ onDragStart?: (info: BoardInteractionInfo) => void;
33
+ /** Called on every step of a drag gesture. */
34
+ onDrag?: (info: BoardInteractionInfo) => void;
35
+ /** Called when a drag gesture ends (after the layout is committed). */
36
+ onDragStop?: (info: BoardInteractionInfo) => void;
37
+ /** Called when a resize gesture starts. */
38
+ onResizeStart?: (info: BoardInteractionInfo) => void;
39
+ /** Called on every step of a resize gesture. */
40
+ onResize?: (info: BoardInteractionInfo) => void;
41
+ /** Called when a resize gesture ends (after the layout is committed). */
42
+ onResizeStop?: (info: BoardInteractionInfo) => void;
43
+ /** Number of columns. @default 12 */
44
+ cols?: number;
45
+ /** Row height in pixels. @default 100 */
46
+ rowHeight?: number;
47
+ /** [horizontal, vertical] margin between widgets in pixels. @default [8, 8] */
48
+ margin?: [number, number];
49
+ /** [horizontal, vertical] padding inside the board. Defaults to `margin`. */
50
+ containerPadding?: [number, number];
51
+ /** Maximum number of rows. @default Infinity */
52
+ maxRows?: number;
53
+ /**
54
+ * Compaction behavior. `'vertical'` / `'horizontal'` reflow widgets to remove
55
+ * gaps; `'free'` places each widget exactly where dropped and never pushes its
56
+ * neighbours (pair with `allowOverlap` to let widgets stack, otherwise moving
57
+ * onto an occupied cell is blocked); `null` disables compaction but still
58
+ * resolves collisions the legacy react-grid-layout way. @default 'vertical'
59
+ */
60
+ compact?: BoardCompactType;
61
+ /** Allow widgets to overlap. @default false */
62
+ allowOverlap?: boolean;
63
+ /** Block movement into occupied cells instead of pushing. @default false */
64
+ preventCollision?: boolean;
65
+ /** Enable dragging for all widgets. @default true */
66
+ isDraggable?: boolean;
67
+ /** Enable resizing for all widgets. @default true */
68
+ isResizable?: boolean;
69
+ /** Whether this board accepts widgets dropped from other boards. @default true */
70
+ isDroppable?: boolean;
71
+ /** Which resize handles to show. @default ['se'] */
72
+ resizeHandles?: ResizeHandleAxis[];
73
+ /**
74
+ * CSS selector for elements that must not start a pointer drag (e.g. form
75
+ * controls inside a widget: `"input,textarea,button,a,.no-drag"`). Keyboard
76
+ * moves are unaffected. Can be overridden per widget on `Board.Widget`.
77
+ */
78
+ dragCancel?: string;
79
+ /**
80
+ * CSS selector for the only elements from which a pointer drag may start.
81
+ * Can be overridden per widget on `Board.Widget`.
82
+ */
83
+ dragHandle?: string;
84
+ /**
85
+ * Show grid lines behind the widgets. `true` always shows them, `'drag'`
86
+ * shows them only while a widget is being dragged or resized, `false` never.
87
+ * @default false
88
+ */
89
+ showGridLines?: BoardGridLines;
90
+ /**
91
+ * Align this board's grid with an ancestor `Board`'s layout. Only takes
92
+ * effect when the board is nested inside another `Board`'s widget. When set,
93
+ * the board inherits the parent's column pitch (deriving its own column count
94
+ * from its measured width so cells stay parent-sized) and inherits the
95
+ * parent's row height as a target, shrinking rows slightly when needed to fit
96
+ * the height the container widget grants it. @default false
97
+ */
98
+ isAligned?: boolean;
99
+ /** Grid/item layout constraints. */
100
+ constraints?: LayoutConstraint[];
101
+ /**
102
+ * Explicit container width in pixels. When provided, disables automatic width
103
+ * measurement (useful for SSR and tests).
104
+ */
105
+ width?: number;
106
+ children?: ReactNode;
107
+ }
108
+ //#endregion
109
+ export { BoardCompactType, BoardGridLines, BoardInteractionInfo, CubeBoardProps };
110
+ //# sourceMappingURL=Board.d.ts.map
@@ -0,0 +1,447 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c26fe9d | Cube Dev Team */
2
+ import { extractStyles } from "../../../utils/styles.js";
3
+ import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
+ import { useEvent } from "../../../_internal/hooks/use-event.js";
5
+ import { BoardMetricsContext, useBoardHost, useBoardMetrics, useBoardRegistry } from "./board-context.js";
6
+ import { bottom, cloneLayout, correctBounds, getLayoutItem, modifyLayout } from "./grid-core/layout.js";
7
+ import { getCompactor } from "./grid-core/compactors.js";
8
+ import { calcGridColWidth, calcGridItemPosition, calcWH, clamp } from "./grid-core/calculate.js";
9
+ import { applySizeConstraints, defaultConstraints } from "./grid-core/constraints.js";
10
+ import { BoardProvider } from "./BoardProvider.js";
11
+ import { useBoardLayout } from "./use-board-layout.js";
12
+ import { WidgetHost } from "./WidgetHost.js";
13
+ import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
14
+ import { forwardRef, useEffect, useId, useMemo, useRef, useState, useSyncExternalStore } from "react";
15
+ import { jsx, jsxs } from "react/jsx-runtime";
16
+ import { useResizeObserver } from "@react-aria/utils";
17
+
18
+ //#region src/components/layout/Board/Board.tsx
19
+ const BoardElement = tasty({
20
+ qa: "Board",
21
+ styles: {
22
+ position: "relative",
23
+ display: "block",
24
+ width: "100%",
25
+ flexGrow: 1,
26
+ minHeight: "0",
27
+ fill: "#clear",
28
+ boxSizing: "border-box"
29
+ }
30
+ });
31
+ const ContentLayer = tasty({ styles: {
32
+ position: "absolute",
33
+ inset: 0
34
+ } });
35
+ const PlaceholderElement = tasty({
36
+ qa: "BoardPlaceholder",
37
+ styles: {
38
+ position: "absolute",
39
+ top: 0,
40
+ left: 0,
41
+ fill: "#purple.10",
42
+ radius: "1cr",
43
+ border: "#purple.40",
44
+ zIndex: 2,
45
+ pointerEvents: "none",
46
+ transition: "transform 80ms linear, width 80ms linear, height 80ms linear",
47
+ boxSizing: "border-box"
48
+ }
49
+ });
50
+ const GridOverlayElement = tasty({
51
+ qa: "BoardGridOverlay",
52
+ styles: {
53
+ position: "absolute",
54
+ zIndex: 0,
55
+ pointerEvents: "none",
56
+ boxSizing: "border-box",
57
+ opacity: ".5"
58
+ }
59
+ });
60
+ /**
61
+ * Lower bound for the reduced row height used by an aligned nested board, so a
62
+ * very short container can never collapse its rows to zero.
63
+ */
64
+ const MIN_ALIGNED_ROW_HEIGHT = 24;
65
+ function compactTypeToCore(compact) {
66
+ if (compact === "free") return null;
67
+ return compact;
68
+ }
69
+ function BoardInner(props, ref) {
70
+ const { id: providedId, layout: controlledLayout, defaultLayout, onLayoutChange, onDragStart, onDrag, onDragStop, onResizeStart, onResize: onResizeProp, onResizeStop, cols = 12, rowHeight = 100, margin = [8, 8], containerPadding, maxRows = Infinity, compact = "vertical", allowOverlap = false, preventCollision = false, isDraggable = true, isResizable = true, isDroppable = true, resizeHandles = ["se"], dragCancel, dragHandle, showGridLines = false, isAligned = false, constraints, width: providedWidth, children, ...otherProps } = props;
71
+ const registry = useBoardRegistry();
72
+ const parentMetrics = useBoardMetrics();
73
+ const host = useBoardHost();
74
+ const aligned = isAligned && !!parentMetrics;
75
+ const generatedId = useId();
76
+ const boardId = providedId ?? generatedId;
77
+ const containerRef = useCombinedRefs(ref);
78
+ const contentRef = useRef(null);
79
+ const [measuredWidth, setMeasuredWidth] = useState(0);
80
+ const [measuredHeight, setMeasuredHeight] = useState(0);
81
+ const width = providedWidth ?? measuredWidth;
82
+ const onResizeContainer = useEvent(() => {
83
+ const el = containerRef.current;
84
+ if (!el) return;
85
+ const nextWidth = el.offsetWidth;
86
+ const nextHeight = el.offsetHeight;
87
+ if (nextWidth > 0) setMeasuredWidth(nextWidth);
88
+ if (nextHeight > 0) setMeasuredHeight(nextHeight);
89
+ });
90
+ useResizeObserver({
91
+ ref: containerRef,
92
+ onResize: onResizeContainer
93
+ });
94
+ useEffect(() => {
95
+ if (providedWidth == null) onResizeContainer();
96
+ }, [providedWidth]);
97
+ const { layout, layoutRef, placeholder, placeholderRef, setPlaceholder, applyLayout } = useBoardLayout({
98
+ layout: controlledLayout,
99
+ defaultLayout,
100
+ onLayoutChange
101
+ });
102
+ useSyncExternalStore(registry.store.subscribe, registry.store.getVersion);
103
+ const effectiveMargin = aligned ? parentMetrics.margin : margin;
104
+ const resolvedPadding = containerPadding ?? effectiveMargin;
105
+ const rows = Math.max(bottom(layout), placeholder ? placeholder.y + placeholder.h : 0);
106
+ const parentColWidth = aligned ? parentMetrics.colWidth : 0;
107
+ const alignedCols = aligned && width > 0 ? Math.max(1, Math.floor((width - resolvedPadding[0] * 2 + effectiveMargin[0]) / (parentColWidth + effectiveMargin[0]))) : cols;
108
+ const effectiveCols = aligned ? alignedCols : cols;
109
+ const effectiveContainerWidth = aligned ? parentColWidth * effectiveCols + effectiveMargin[0] * Math.max(0, effectiveCols - 1) + resolvedPadding[0] * 2 : width;
110
+ const parentRowHeight = aligned ? parentMetrics.rowHeight : rowHeight;
111
+ const effectiveRowHeight = aligned && rows > 0 && measuredHeight > 0 ? clamp((measuredHeight - Math.max(0, rows - 1) * effectiveMargin[1] - resolvedPadding[1] * 2) / rows, MIN_ALIGNED_ROW_HEIGHT, parentRowHeight) : parentRowHeight;
112
+ const positionParams = useMemo(() => ({
113
+ margin: effectiveMargin,
114
+ containerPadding: resolvedPadding,
115
+ containerWidth: effectiveContainerWidth,
116
+ cols: effectiveCols,
117
+ rowHeight: effectiveRowHeight,
118
+ maxRows
119
+ }), [
120
+ effectiveMargin[0],
121
+ effectiveMargin[1],
122
+ resolvedPadding[0],
123
+ resolvedPadding[1],
124
+ effectiveContainerWidth,
125
+ effectiveCols,
126
+ effectiveRowHeight,
127
+ maxRows
128
+ ]);
129
+ const compactor = useMemo(() => getCompactor(compactTypeToCore(compact), allowOverlap, compact === "free" ? !allowOverlap : preventCollision), [
130
+ compact,
131
+ allowOverlap,
132
+ preventCollision
133
+ ]);
134
+ const resolvedConstraints = constraints ?? defaultConstraints;
135
+ const computedHeight = rows > 0 ? rows * effectiveRowHeight + Math.max(0, rows - 1) * effectiveMargin[1] + resolvedPadding[1] * 2 : effectiveRowHeight;
136
+ const containerHeight = aligned && measuredHeight > 0 ? measuredHeight : computedHeight;
137
+ const liveRef = useRef({
138
+ positionParams,
139
+ compactor,
140
+ constraints: resolvedConstraints,
141
+ maxRows,
142
+ containerHeight,
143
+ isDroppable
144
+ });
145
+ liveRef.current = {
146
+ positionParams,
147
+ compactor,
148
+ constraints: resolvedConstraints,
149
+ maxRows,
150
+ containerHeight,
151
+ isDroppable
152
+ };
153
+ const applyLayoutEvent = useEvent(applyLayout);
154
+ const setPlaceholderEvent = useEvent(setPlaceholder);
155
+ const entryRef = useRef(null);
156
+ if (!entryRef.current) entryRef.current = {
157
+ id: boardId,
158
+ getContentRect: () => contentRef.current?.getBoundingClientRect() ?? null,
159
+ getContentNode: () => contentRef.current,
160
+ getPositionParams: () => liveRef.current.positionParams,
161
+ getConstraints: () => liveRef.current.constraints,
162
+ getCompactor: () => liveRef.current.compactor,
163
+ getMaxRows: () => liveRef.current.maxRows,
164
+ getContainerHeight: () => liveRef.current.containerHeight,
165
+ getLayout: () => layoutRef.current,
166
+ applyLayout: (next, commit) => applyLayoutEvent(next, commit),
167
+ setPlaceholder: (item) => setPlaceholderEvent(item),
168
+ isDroppable: () => liveRef.current.isDroppable
169
+ };
170
+ useEffect(() => {
171
+ const entry = entryRef.current;
172
+ entry.id = boardId;
173
+ return registry.registerBoard(entry);
174
+ }, [boardId]);
175
+ const recompactForCols = useEvent((nextCols) => {
176
+ const corrected = correctBounds(cloneLayout(layoutRef.current), { cols: nextCols });
177
+ applyLayoutEvent([...liveRef.current.compactor.compact(corrected, nextCols)], true);
178
+ });
179
+ const prevAlignedColsRef = useRef(null);
180
+ useEffect(() => {
181
+ if (!aligned) {
182
+ prevAlignedColsRef.current = null;
183
+ return;
184
+ }
185
+ if (width <= 0) return;
186
+ if (prevAlignedColsRef.current === null) {
187
+ prevAlignedColsRef.current = effectiveCols;
188
+ return;
189
+ }
190
+ if (prevAlignedColsRef.current === effectiveCols) return;
191
+ prevAlignedColsRef.current = effectiveCols;
192
+ recompactForCols(effectiveCols);
193
+ }, [
194
+ aligned,
195
+ width,
196
+ effectiveCols,
197
+ recompactForCols
198
+ ]);
199
+ const naturalHeight = rows > 0 ? rows * parentRowHeight + Math.max(0, rows - 1) * effectiveMargin[1] + resolvedPadding[1] * 2 : parentRowHeight;
200
+ const requestHeightDeficit = host?.requestHeightDeficit;
201
+ useEffect(() => {
202
+ if (!aligned || !host?.isAutoHeight || !requestHeightDeficit) return;
203
+ if (measuredHeight <= 0) return;
204
+ requestHeightDeficit(naturalHeight - measuredHeight);
205
+ }, [
206
+ aligned,
207
+ host?.isAutoHeight,
208
+ requestHeightDeficit,
209
+ naturalHeight,
210
+ measuredHeight
211
+ ]);
212
+ const resizeStateRef = useRef(null);
213
+ const autoHeightMinRowsRef = useRef({});
214
+ const handleResize = useEvent((id, axis, phase, dx, dy) => {
215
+ const pp = liveRef.current.positionParams;
216
+ if (phase === "start") {
217
+ const rawItem = getLayoutItem(layoutRef.current, id);
218
+ if (!rawItem) return;
219
+ const item = {
220
+ ...rawItem,
221
+ constraints: rawItem.constraints ?? registry.store.get(id)?.constraints
222
+ };
223
+ resizeStateRef.current = {
224
+ id,
225
+ axis,
226
+ item: { ...item },
227
+ origin: calcGridItemPosition(pp, item.x, item.y, item.w, item.h),
228
+ accX: 0,
229
+ accY: 0
230
+ };
231
+ setPlaceholder({ ...item });
232
+ onResizeStart?.({
233
+ layout: layoutRef.current,
234
+ item: { ...item },
235
+ oldItem: { ...item },
236
+ placeholder: { ...item }
237
+ });
238
+ return;
239
+ }
240
+ const rs = resizeStateRef.current;
241
+ if (!rs) return;
242
+ if (phase === "end") {
243
+ const finalLayout = [...layoutRef.current];
244
+ applyLayout(finalLayout, true);
245
+ setPlaceholder(null);
246
+ onResizeStop?.({
247
+ layout: finalLayout,
248
+ item: getLayoutItem(finalLayout, id) ?? rs.item,
249
+ oldItem: rs.item,
250
+ placeholder: null
251
+ });
252
+ resizeStateRef.current = null;
253
+ return;
254
+ }
255
+ rs.accX += dx;
256
+ rs.accY += dy;
257
+ const { origin, item, axis: handle } = rs;
258
+ let newW = origin.width;
259
+ let newH = origin.height;
260
+ if (handle.includes("e")) newW = origin.width + rs.accX;
261
+ if (handle.includes("w")) newW = origin.width - rs.accX;
262
+ if (handle.includes("s")) newH = origin.height + rs.accY;
263
+ if (handle.includes("n")) newH = origin.height - rs.accY;
264
+ newW = Math.max(newW, 8);
265
+ newH = Math.max(newH, 8);
266
+ const raw = calcWH(pp, newW, newH, item.x, item.y, handle);
267
+ const constrained = applySizeConstraints(liveRef.current.constraints, item, raw.w, raw.h, handle, {
268
+ cols: pp.cols,
269
+ maxRows: liveRef.current.maxRows,
270
+ containerWidth: pp.containerWidth,
271
+ containerHeight: liveRef.current.containerHeight,
272
+ rowHeight: pp.rowHeight,
273
+ margin: pp.margin,
274
+ layout: layoutRef.current
275
+ });
276
+ const floorRows = autoHeightMinRowsRef.current[id] ?? 0;
277
+ const finalW = constrained.w;
278
+ const finalH = Math.max(constrained.h, floorRows);
279
+ let x = item.x;
280
+ let y = item.y;
281
+ if (handle.includes("w")) x = item.x + item.w - finalW;
282
+ if (handle.includes("n")) y = item.y + item.h - finalH;
283
+ x = Math.max(0, x);
284
+ y = Math.max(0, y);
285
+ const newItem = {
286
+ ...item,
287
+ x,
288
+ y,
289
+ w: finalW,
290
+ h: finalH
291
+ };
292
+ const working = modifyLayout(layoutRef.current, newItem);
293
+ const compacted = [...liveRef.current.compactor.compact(working, pp.cols)];
294
+ applyLayout(compacted, false);
295
+ const nextPlaceholder = getLayoutItem(compacted, id) ?? newItem;
296
+ setPlaceholder(nextPlaceholder);
297
+ onResizeProp?.({
298
+ layout: compacted,
299
+ item: getLayoutItem(compacted, id) ?? newItem,
300
+ oldItem: rs.item,
301
+ placeholder: nextPlaceholder
302
+ });
303
+ });
304
+ const handleAutoHeight = useEvent((id, neededRows) => {
305
+ autoHeightMinRowsRef.current[id] = neededRows;
306
+ const current = getLayoutItem(layoutRef.current, id);
307
+ if (!current || neededRows <= current.h) return;
308
+ if (registry.dragState || resizeStateRef.current) return;
309
+ const pp = liveRef.current.positionParams;
310
+ const working = modifyLayout(layoutRef.current, {
311
+ ...current,
312
+ h: neededRows
313
+ });
314
+ applyLayout([...liveRef.current.compactor.compact(working, pp.cols)], true);
315
+ });
316
+ const dragOldItemRef = useRef(null);
317
+ const handleDragLifecycle = useEvent((id, phase) => {
318
+ const currentLayout = layoutRef.current;
319
+ const liveItem = getLayoutItem(currentLayout, id);
320
+ if (phase === "start") dragOldItemRef.current = liveItem ? { ...liveItem } : null;
321
+ const oldItem = dragOldItemRef.current ?? liveItem;
322
+ if (!oldItem) return;
323
+ const info = {
324
+ layout: currentLayout,
325
+ item: liveItem ?? oldItem,
326
+ oldItem,
327
+ placeholder: placeholderRef.current
328
+ };
329
+ if (phase === "start") onDragStart?.(info);
330
+ else if (phase === "move") onDrag?.(info);
331
+ else {
332
+ onDragStop?.(info);
333
+ dragOldItemRef.current = null;
334
+ }
335
+ });
336
+ const styles = extractStyles(otherProps, CONTAINER_STYLES);
337
+ const dragState = registry.dragState;
338
+ const ready = width > 0;
339
+ const placeholderStyle = placeholder ? (() => {
340
+ const pos = calcGridItemPosition(positionParams, placeholder.x, placeholder.y, placeholder.w, placeholder.h);
341
+ return {
342
+ transform: `translate(${pos.left}px, ${pos.top}px)`,
343
+ width: `${pos.width}px`,
344
+ height: `${pos.height}px`
345
+ };
346
+ })() : null;
347
+ const showPlaceholder = placeholder && placeholderStyle;
348
+ const gridOverlayStyle = showGridLines === true || showGridLines === "drag" && (!!dragState || !!placeholder) ? (() => {
349
+ const colWidth = calcGridColWidth(positionParams);
350
+ const rowHeightPx = positionParams.rowHeight;
351
+ const pitchX = colWidth + effectiveMargin[0];
352
+ const pitchY = rowHeightPx + effectiveMargin[1];
353
+ const padX = resolvedPadding[0];
354
+ const padY = resolvedPadding[1];
355
+ const gridWidth = Math.max(0, effectiveContainerWidth - padX * 2);
356
+ const gridHeight = rows > 0 ? rows * rowHeightPx + (rows - 1) * effectiveMargin[1] : 0;
357
+ const fill = "var(--border-color)";
358
+ const columns = `repeating-linear-gradient(to right, ${fill} 0, ${fill} ${colWidth}px, transparent ${colWidth}px, transparent ${pitchX}px)`;
359
+ const rowsGrad = `repeating-linear-gradient(to bottom, #000 0, #000 ${rowHeightPx}px, transparent ${rowHeightPx}px, transparent ${pitchY}px)`;
360
+ return {
361
+ left: `${padX}px`,
362
+ top: `${padY}px`,
363
+ width: `${gridWidth}px`,
364
+ height: `${gridHeight}px`,
365
+ backgroundImage: columns,
366
+ backgroundPosition: "0 0",
367
+ backgroundRepeat: "repeat",
368
+ maskImage: rowsGrad,
369
+ WebkitMaskImage: rowsGrad,
370
+ maskPosition: "0 0",
371
+ WebkitMaskPosition: "0 0",
372
+ maskRepeat: "repeat",
373
+ WebkitMaskRepeat: "repeat"
374
+ };
375
+ })() : null;
376
+ const boardMetrics = useMemo(() => ({
377
+ colWidth: calcGridColWidth(positionParams),
378
+ rowHeight: positionParams.rowHeight,
379
+ margin: positionParams.margin,
380
+ containerPadding: positionParams.containerPadding
381
+ }), [positionParams]);
382
+ return /* @__PURE__ */ jsx(BoardMetricsContext.Provider, {
383
+ value: boardMetrics,
384
+ children: /* @__PURE__ */ jsxs(BoardElement, {
385
+ ...filterBaseProps(otherProps, { eventProps: true }),
386
+ ref: containerRef,
387
+ styles,
388
+ style: aligned ? void 0 : { minHeight: `${containerHeight}px` },
389
+ mods: {
390
+ dragging: !!dragState,
391
+ "drop-target": dragState?.currentBoardId === boardId
392
+ },
393
+ children: [/* @__PURE__ */ jsxs(ContentLayer, {
394
+ ref: contentRef,
395
+ children: [
396
+ ready && gridOverlayStyle ? /* @__PURE__ */ jsx(GridOverlayElement, {
397
+ "aria-hidden": "true",
398
+ style: gridOverlayStyle
399
+ }) : null,
400
+ ready ? layout.map((item) => {
401
+ const registration = registry.store.get(item.i);
402
+ return /* @__PURE__ */ jsx(WidgetHost, {
403
+ boardId,
404
+ item,
405
+ positionParams,
406
+ registration,
407
+ isDraggable: isDraggable && registration?.isDraggable !== false && item.isDraggable !== false && !item.static,
408
+ isResizable: isResizable && registration?.isResizable !== false && item.isResizable !== false && !item.static,
409
+ resizeHandles: item.resizeHandles ?? registration?.resizeHandles ?? resizeHandles,
410
+ dragCancel: registration?.dragCancel ?? dragCancel,
411
+ dragHandle: registration?.dragHandle ?? dragHandle,
412
+ registry,
413
+ dragState,
414
+ onResize: handleResize,
415
+ onAutoHeight: handleAutoHeight,
416
+ onDragLifecycle: handleDragLifecycle
417
+ }, item.i);
418
+ }) : null,
419
+ showPlaceholder ? /* @__PURE__ */ jsx(PlaceholderElement, {
420
+ "aria-hidden": "true",
421
+ style: placeholderStyle
422
+ }) : null
423
+ ]
424
+ }), children]
425
+ })
426
+ });
427
+ }
428
+ const BoardInnerForwarded = forwardRef(BoardInner);
429
+ /**
430
+ * A draggable and resizable widget grid. Widgets are declared with
431
+ * `Board.Widget` and positioned via a `layout`. Wrap multiple boards in a
432
+ * `BoardProvider` to enable dragging widgets between them.
433
+ */
434
+ const Board = forwardRef(function Board(props, ref) {
435
+ if (useBoardRegistry()) return /* @__PURE__ */ jsx(BoardInnerForwarded, {
436
+ ...props,
437
+ ref
438
+ });
439
+ return /* @__PURE__ */ jsx(BoardProvider, { children: /* @__PURE__ */ jsx(BoardInnerForwarded, {
440
+ ...props,
441
+ ref
442
+ }) });
443
+ });
444
+
445
+ //#endregion
446
+ export { Board };
447
+ //# sourceMappingURL=Board.js.map