@cube-dev/ui-kit 0.143.0 → 0.144.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (480) hide show
  1. package/README.md +1 -1
  2. package/dist/CHANGELOG.md +12 -0
  3. package/dist/README.md +1 -1
  4. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  5. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  6. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  7. package/dist/_internal/hooks/use-event.js +1 -1
  8. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  9. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  10. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  11. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  12. package/dist/_internal/hooks/use-warn.js +1 -1
  13. package/dist/components/Block.js +1 -1
  14. package/dist/components/CollectionItem.js +1 -1
  15. package/dist/components/GlobalStyles.js +1 -1
  16. package/dist/components/GridProvider.js +1 -1
  17. package/dist/components/HiddenInput.js +1 -1
  18. package/dist/components/Root.js +1 -1
  19. package/dist/components/actions/Action/Action.js +1 -1
  20. package/dist/components/actions/Banner/Banner.js +1 -1
  21. package/dist/components/actions/Button/Button.js +1 -1
  22. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  24. package/dist/components/actions/ButtonSplit/context.js +1 -1
  25. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  26. package/dist/components/actions/CommandMenu/styled.js +1 -1
  27. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  28. package/dist/components/actions/ItemActionContext.js +1 -1
  29. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  30. package/dist/components/actions/Link/Link.js +1 -1
  31. package/dist/components/actions/Menu/Menu.js +1 -1
  32. package/dist/components/actions/Menu/MenuItem.js +1 -1
  33. package/dist/components/actions/Menu/MenuSection.js +1 -1
  34. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  36. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  37. package/dist/components/actions/Menu/context.js +1 -1
  38. package/dist/components/actions/Menu/styled.js +1 -1
  39. package/dist/components/actions/index.js +1 -1
  40. package/dist/components/actions/use-action.js +1 -1
  41. package/dist/components/actions/use-anchored-menu.js +1 -1
  42. package/dist/components/actions/use-context-menu.js +1 -1
  43. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  44. package/dist/components/content/Alert/Alert.js +1 -1
  45. package/dist/components/content/Alert/use-alert.js +1 -1
  46. package/dist/components/content/Avatar/Avatar.js +1 -1
  47. package/dist/components/content/Badge/Badge.js +1 -1
  48. package/dist/components/content/Card/Card.js +1 -1
  49. package/dist/components/content/Content.js +1 -1
  50. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  51. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  52. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  53. package/dist/components/content/Divider.js +1 -1
  54. package/dist/components/content/Footer.js +1 -1
  55. package/dist/components/content/Header.js +1 -1
  56. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  57. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  58. package/dist/components/content/Item/Item.js +1 -1
  59. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  60. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  61. package/dist/components/content/Layout/GridLayout.js +1 -1
  62. package/dist/components/content/Layout/Layout.js +1 -1
  63. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  64. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  65. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  66. package/dist/components/content/Layout/LayoutContent.js +1 -1
  67. package/dist/components/content/Layout/LayoutContext.js +1 -1
  68. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  69. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  70. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  71. package/dist/components/content/Layout/LayoutHeader.js +9 -8
  72. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  73. package/dist/components/content/Layout/LayoutPane.js +1 -1
  74. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  75. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  76. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  77. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  78. package/dist/components/content/Layout/index.js +1 -1
  79. package/dist/components/content/Layout/utils.js +1 -1
  80. package/dist/components/content/Paragraph.js +1 -1
  81. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  82. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  83. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  84. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  85. package/dist/components/content/Result/Result.js +1 -1
  86. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  87. package/dist/components/content/Tag/Tag.js +1 -1
  88. package/dist/components/content/Text.js +1 -1
  89. package/dist/components/content/TextItem/TextItem.js +1 -1
  90. package/dist/components/content/Title.js +1 -1
  91. package/dist/components/content/Tree/Tree.js +1 -1
  92. package/dist/components/content/Tree/TreeNode.js +1 -1
  93. package/dist/components/content/Tree/styled.js +1 -1
  94. package/dist/components/content/Tree/tree-index.js +1 -1
  95. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  96. package/dist/components/content/Tree/use-load-data.js +1 -1
  97. package/dist/components/content/highlightText.js +1 -1
  98. package/dist/components/content/use-auto-tooltip.js +1 -1
  99. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  100. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  101. package/dist/components/fields/Checkbox/context.js +1 -1
  102. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  103. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  104. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  105. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  106. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  107. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  108. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  109. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  110. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  111. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  112. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  113. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  114. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  115. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  116. package/dist/components/fields/DatePicker/intl.js +1 -1
  117. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  118. package/dist/components/fields/DatePicker/props.js +1 -1
  119. package/dist/components/fields/DatePicker/utils.js +1 -1
  120. package/dist/components/fields/FileInput/FileInput.js +1 -1
  121. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  122. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  123. package/dist/components/fields/Input/Input.js +1 -1
  124. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  125. package/dist/components/fields/ListBox/ListBox.js +1 -1
  126. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  127. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  128. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  129. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  130. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  131. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  132. package/dist/components/fields/Picker/Picker.js +1 -1
  133. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  134. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  135. package/dist/components/fields/RadioGroup/context.js +1 -1
  136. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  137. package/dist/components/fields/Select/Select.js +1 -1
  138. package/dist/components/fields/Slider/Gradation.js +1 -1
  139. package/dist/components/fields/Slider/HueSlider.js +1 -1
  140. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  141. package/dist/components/fields/Slider/Slider.js +1 -1
  142. package/dist/components/fields/Slider/SliderBase.js +1 -1
  143. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  144. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  145. package/dist/components/fields/Slider/elements.js +1 -1
  146. package/dist/components/fields/Slider/index.js +1 -1
  147. package/dist/components/fields/Switch/Switch.js +1 -1
  148. package/dist/components/fields/TextArea/TextArea.js +1 -1
  149. package/dist/components/fields/TextInput/TextInput.js +1 -1
  150. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  151. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  152. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  153. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  154. package/dist/components/form/Form/Field.js +1 -1
  155. package/dist/components/form/Form/Form.js +1 -1
  156. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  157. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  158. package/dist/components/form/Form/SubmitError.js +1 -1
  159. package/dist/components/form/Form/index.js +1 -1
  160. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  161. package/dist/components/form/Form/use-field/use-field.js +1 -1
  162. package/dist/components/form/Form/use-form.js +1 -1
  163. package/dist/components/form/Form/validation.js +1 -1
  164. package/dist/components/form/Label.js +1 -1
  165. package/dist/components/form/wrapper.js +1 -1
  166. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  167. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  168. package/dist/components/layout/Board/Board.d.ts +110 -0
  169. package/dist/components/layout/Board/Board.js +455 -0
  170. package/dist/components/layout/Board/Board.js.map +1 -0
  171. package/dist/components/layout/Board/BoardProvider.d.ts +28 -0
  172. package/dist/components/layout/Board/BoardProvider.js +47 -0
  173. package/dist/components/layout/Board/BoardProvider.js.map +1 -0
  174. package/dist/components/layout/Board/BoardResponsive.d.ts +52 -0
  175. package/dist/components/layout/Board/BoardResponsive.js +101 -0
  176. package/dist/components/layout/Board/BoardResponsive.js.map +1 -0
  177. package/dist/components/layout/Board/Widget.d.ts +49 -0
  178. package/dist/components/layout/Board/Widget.js +42 -0
  179. package/dist/components/layout/Board/Widget.js.map +1 -0
  180. package/dist/components/layout/Board/WidgetHost.js +423 -0
  181. package/dist/components/layout/Board/WidgetHost.js.map +1 -0
  182. package/dist/components/layout/Board/board-context.d.ts +16 -0
  183. package/dist/components/layout/Board/board-context.js +32 -0
  184. package/dist/components/layout/Board/board-context.js.map +1 -0
  185. package/dist/components/layout/Board/board-store.d.ts +3 -0
  186. package/dist/components/layout/Board/board-store.js +49 -0
  187. package/dist/components/layout/Board/board-store.js.map +1 -0
  188. package/dist/components/layout/Board/grid-core/calculate.js +90 -0
  189. package/dist/components/layout/Board/grid-core/calculate.js.map +1 -0
  190. package/dist/components/layout/Board/grid-core/collision.js +35 -0
  191. package/dist/components/layout/Board/grid-core/collision.js.map +1 -0
  192. package/dist/components/layout/Board/grid-core/compactors.d.ts +23 -0
  193. package/dist/components/layout/Board/grid-core/compactors.js +166 -0
  194. package/dist/components/layout/Board/grid-core/compactors.js.map +1 -0
  195. package/dist/components/layout/Board/grid-core/constraints.d.ts +35 -0
  196. package/dist/components/layout/Board/grid-core/constraints.js +155 -0
  197. package/dist/components/layout/Board/grid-core/constraints.js.map +1 -0
  198. package/dist/components/layout/Board/grid-core/layout.js +176 -0
  199. package/dist/components/layout/Board/grid-core/layout.js.map +1 -0
  200. package/dist/components/layout/Board/grid-core/sort.js +37 -0
  201. package/dist/components/layout/Board/grid-core/sort.js.map +1 -0
  202. package/dist/components/layout/Board/grid-core/types.d.ts +168 -0
  203. package/dist/components/layout/Board/index.d.ts +21 -0
  204. package/dist/components/layout/Board/index.js +18 -0
  205. package/dist/components/layout/Board/index.js.map +1 -0
  206. package/dist/components/layout/Board/responsive-utils.d.ts +13 -0
  207. package/dist/components/layout/Board/responsive-utils.js +55 -0
  208. package/dist/components/layout/Board/responsive-utils.js.map +1 -0
  209. package/dist/components/layout/Board/use-board-layout.js +52 -0
  210. package/dist/components/layout/Board/use-board-layout.js.map +1 -0
  211. package/dist/components/layout/Board/use-board-registry.js +372 -0
  212. package/dist/components/layout/Board/use-board-registry.js.map +1 -0
  213. package/dist/components/layout/Flex.js +1 -1
  214. package/dist/components/layout/Flow.js +1 -1
  215. package/dist/components/layout/Grid.js +1 -1
  216. package/dist/components/layout/Panel.js +1 -1
  217. package/dist/components/layout/Prefix.js +1 -1
  218. package/dist/components/layout/ResizablePanel.js +1 -1
  219. package/dist/components/layout/Space.js +1 -1
  220. package/dist/components/layout/Suffix.js +1 -1
  221. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  222. package/dist/components/navigation/Tabs/TabButton.js +36 -4
  223. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  224. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  225. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  226. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  227. package/dist/components/navigation/Tabs/Tabs.js +6 -3
  228. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  229. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  230. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  231. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  232. package/dist/components/navigation/Tabs/styled.js +3 -2
  233. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  234. package/dist/components/navigation/Tabs/types.js +1 -1
  235. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  236. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  237. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  238. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  239. package/dist/components/other/Calendar/Calendar.js +1 -1
  240. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  241. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  242. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  243. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  244. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  245. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  246. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  247. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  248. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  249. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  250. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  251. package/dist/components/overlays/Dialog/context.js +1 -1
  252. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  253. package/dist/components/overlays/Modal/Modal.js +1 -1
  254. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  255. package/dist/components/overlays/Modal/Overlay.js +1 -1
  256. package/dist/components/overlays/Modal/Popover.js +1 -1
  257. package/dist/components/overlays/Modal/Tray.js +1 -1
  258. package/dist/components/overlays/Modal/Underlay.js +1 -1
  259. package/dist/components/overlays/Notifications/Notification.js +1 -1
  260. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  261. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  262. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  263. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  264. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  265. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  266. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  267. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  268. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  269. package/dist/components/overlays/Notifications/index.js +1 -1
  270. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  271. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  272. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  273. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  274. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  275. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  276. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  277. package/dist/components/overlays/Toast/index.js +1 -1
  278. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  279. package/dist/components/overlays/Toast/useToast.js +1 -1
  280. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  281. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  282. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  283. package/dist/components/overlays/Tooltip/context.js +1 -1
  284. package/dist/components/portal/Portal.js +1 -1
  285. package/dist/components/portal/PortalProvider.js +1 -1
  286. package/dist/components/portal/usePortal.js +1 -1
  287. package/dist/components/shared/DraggableCollection.js +1 -1
  288. package/dist/components/shared/InvalidIcon.js +1 -1
  289. package/dist/components/shared/ValidIcon.js +1 -1
  290. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  291. package/dist/components/status/Spin/Cube.js +1 -1
  292. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  293. package/dist/components/status/Spin/Spin.js +1 -1
  294. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  295. package/dist/data/item-themes.js +1 -1
  296. package/dist/data/themes.js +1 -1
  297. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  298. package/dist/icons/AdjustmentsIcon.js +1 -1
  299. package/dist/icons/AiIcon.js +1 -1
  300. package/dist/icons/AreaChartIcon.js +1 -1
  301. package/dist/icons/BackwardIcon.js +1 -1
  302. package/dist/icons/BarChartIcon.js +1 -1
  303. package/dist/icons/BellFilledIcon.js +1 -1
  304. package/dist/icons/BellIcon.js +1 -1
  305. package/dist/icons/BooleanIcon.js +1 -1
  306. package/dist/icons/CalendarEditIcon.js +1 -1
  307. package/dist/icons/CalendarIcon.js +1 -1
  308. package/dist/icons/CaretDownIcon.js +1 -1
  309. package/dist/icons/CaretUpIcon.js +1 -1
  310. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  311. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  312. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  313. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  314. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  315. package/dist/icons/ChartBarLineIcon.js +1 -1
  316. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  317. package/dist/icons/ChartBarStackedIcon.js +1 -1
  318. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  319. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  320. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  321. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  322. package/dist/icons/ChartBubbleIcon.js +1 -1
  323. package/dist/icons/ChartDonut2Icon.js +1 -1
  324. package/dist/icons/ChartFunnelIcon.js +1 -1
  325. package/dist/icons/ChartHeatmapIcon.js +1 -1
  326. package/dist/icons/ChartKPIIcon.js +1 -1
  327. package/dist/icons/ChartPie2Icon.js +1 -1
  328. package/dist/icons/ChartScatterIcon.js +1 -1
  329. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  330. package/dist/icons/CheckCircleIcon.js +1 -1
  331. package/dist/icons/CheckIcon.js +1 -1
  332. package/dist/icons/CircleFilledIcon.js +1 -1
  333. package/dist/icons/ClearIcon.js +1 -1
  334. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  335. package/dist/icons/CloseCircleIcon.js +1 -1
  336. package/dist/icons/CloseIcon.js +1 -1
  337. package/dist/icons/CodeIcon.js +1 -1
  338. package/dist/icons/ColumnTotalIcon.js +1 -1
  339. package/dist/icons/CopyIcon.js +1 -1
  340. package/dist/icons/CountIcon.js +1 -1
  341. package/dist/icons/CubeIcon.js +1 -1
  342. package/dist/icons/CubePauseIcon.js +1 -1
  343. package/dist/icons/CubePlayIcon.js +1 -1
  344. package/dist/icons/CurrencyDollarIcon.js +1 -1
  345. package/dist/icons/DangerIcon.js +1 -1
  346. package/dist/icons/DashboardIcon.js +1 -1
  347. package/dist/icons/DatabaseIcon.js +1 -1
  348. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  349. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  350. package/dist/icons/DirectionIcon.js +1 -1
  351. package/dist/icons/DonutIcon.js +1 -1
  352. package/dist/icons/DownIcon.js +1 -1
  353. package/dist/icons/EditIcon.js +1 -1
  354. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  355. package/dist/icons/ExclamationCircleIcon.js +1 -1
  356. package/dist/icons/ExclamationIcon.js +1 -1
  357. package/dist/icons/EyeIcon.js +1 -1
  358. package/dist/icons/EyeInvisibleIcon.js +1 -1
  359. package/dist/icons/FilterIcon.js +1 -1
  360. package/dist/icons/FolderFilledIcon.js +1 -1
  361. package/dist/icons/FolderIcon.js +1 -1
  362. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  363. package/dist/icons/FolderOpenIcon.js +1 -1
  364. package/dist/icons/ForwardIcon.js +1 -1
  365. package/dist/icons/GripVerticalIcon.js +1 -1
  366. package/dist/icons/HierarchyIcon.js +1 -1
  367. package/dist/icons/HierarchyOpenIcon.js +1 -1
  368. package/dist/icons/Icon.js +1 -1
  369. package/dist/icons/InfoCircleIcon.js +1 -1
  370. package/dist/icons/InfoIcon.js +1 -1
  371. package/dist/icons/KeyIcon.js +1 -1
  372. package/dist/icons/LeftIcon.js +1 -1
  373. package/dist/icons/LineChartIcon.js +1 -1
  374. package/dist/icons/LoadingIcon.js +1 -1
  375. package/dist/icons/LockFilledIcon.js +1 -1
  376. package/dist/icons/LockIcon.js +1 -1
  377. package/dist/icons/MoreIcon.js +1 -1
  378. package/dist/icons/NotAllowedIcon.js +1 -1
  379. package/dist/icons/Number123Icon.js +1 -1
  380. package/dist/icons/NumberIcon.js +1 -1
  381. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  382. package/dist/icons/PauseCircleIcon.js +1 -1
  383. package/dist/icons/PauseIcon.js +1 -1
  384. package/dist/icons/PercentageIcon.js +1 -1
  385. package/dist/icons/PieChartIcon.js +1 -1
  386. package/dist/icons/PlayCircleIcon.js +1 -1
  387. package/dist/icons/PlayIcon.js +1 -1
  388. package/dist/icons/PlusIcon.js +1 -1
  389. package/dist/icons/ProgressBarIcon.js +1 -1
  390. package/dist/icons/ReloadIcon.js +1 -1
  391. package/dist/icons/ReportIcon.js +1 -1
  392. package/dist/icons/ReturnIcon.js +1 -1
  393. package/dist/icons/RightIcon.js +1 -1
  394. package/dist/icons/RowTotalsIcon.js +1 -1
  395. package/dist/icons/SchemeIcon.js +1 -1
  396. package/dist/icons/SearchIcon.js +1 -1
  397. package/dist/icons/SemanticQueryIcon.js +1 -1
  398. package/dist/icons/SettingsIcon.js +1 -1
  399. package/dist/icons/ShieldFilledIcon.js +1 -1
  400. package/dist/icons/ShieldIcon.js +1 -1
  401. package/dist/icons/SlashIcon.js +1 -1
  402. package/dist/icons/SparklesIcon.js +1 -1
  403. package/dist/icons/SqlIcon.js +1 -1
  404. package/dist/icons/StatsIcon.js +1 -1
  405. package/dist/icons/StopIcon.js +1 -1
  406. package/dist/icons/StringIcon.js +1 -1
  407. package/dist/icons/SubtotalsIcon.js +1 -1
  408. package/dist/icons/SwitchIcon.js +1 -1
  409. package/dist/icons/TableIcon.js +1 -1
  410. package/dist/icons/ThumbsDownIcon.js +1 -1
  411. package/dist/icons/ThumbsUpIcon.js +1 -1
  412. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  413. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  414. package/dist/icons/ThunderboltIcon.js +1 -1
  415. package/dist/icons/TimeIcon.js +1 -1
  416. package/dist/icons/TrashIcon.js +1 -1
  417. package/dist/icons/UnlockIcon.js +1 -1
  418. package/dist/icons/UpIcon.js +1 -1
  419. package/dist/icons/UserGroupIcon.js +1 -1
  420. package/dist/icons/UserIcon.js +1 -1
  421. package/dist/icons/UserLockIcon.js +1 -1
  422. package/dist/icons/ViewIcon.js +1 -1
  423. package/dist/icons/WarningFilledIcon.js +1 -1
  424. package/dist/icons/WarningIcon.js +1 -1
  425. package/dist/icons/wrap-icon.js +1 -1
  426. package/dist/index.d.ts +12 -2
  427. package/dist/index.js +8 -2
  428. package/dist/index.js.map +1 -1
  429. package/dist/provider.js +1 -1
  430. package/dist/providers/TrackingProvider.js +1 -1
  431. package/dist/providers/navigationAdapter.default.js +1 -1
  432. package/dist/tokens/base.js +1 -1
  433. package/dist/tokens/colors.js +1 -1
  434. package/dist/tokens/index.js +1 -1
  435. package/dist/tokens/layout.js +1 -1
  436. package/dist/tokens/palette.js +1 -1
  437. package/dist/tokens/shadows.js +1 -1
  438. package/dist/tokens/sizes.js +1 -1
  439. package/dist/tokens/spacing.js +1 -1
  440. package/dist/tokens/typography.js +1 -1
  441. package/dist/utils/ResizeSensor.js +1 -1
  442. package/dist/utils/is-dev-env.js +1 -1
  443. package/dist/utils/modules.js +1 -1
  444. package/dist/utils/promise.js +1 -1
  445. package/dist/utils/raf.js +1 -1
  446. package/dist/utils/random.js +1 -1
  447. package/dist/utils/range.js +1 -1
  448. package/dist/utils/react/RenderCache.js +1 -1
  449. package/dist/utils/react/Slots.js +1 -1
  450. package/dist/utils/react/chain.js +1 -1
  451. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  452. package/dist/utils/react/index.js +1 -1
  453. package/dist/utils/react/interactions.js +1 -1
  454. package/dist/utils/react/isTextOnly.js +1 -1
  455. package/dist/utils/react/mapProps.js +1 -1
  456. package/dist/utils/react/mergeProps.js +1 -1
  457. package/dist/utils/react/nullableValue.js +1 -1
  458. package/dist/utils/react/resolveIcon.js +1 -1
  459. package/dist/utils/react/sharedStore.js +1 -1
  460. package/dist/utils/react/useCombinedRefs.js +1 -1
  461. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  462. package/dist/utils/react/useEventBus.js +1 -1
  463. package/dist/utils/react/useId.js +1 -1
  464. package/dist/utils/react/useIsDarwin.js +1 -1
  465. package/dist/utils/react/useKeySymbols.js +1 -1
  466. package/dist/utils/react/useLayoutEffect.js +1 -1
  467. package/dist/utils/react/useLocalStorage.js +1 -1
  468. package/dist/utils/react/useMergeStyles.js +1 -1
  469. package/dist/utils/react/usePopoverSync.js +1 -1
  470. package/dist/utils/react/useQaProps.js +1 -1
  471. package/dist/utils/react/useViewportSize.js +1 -1
  472. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  473. package/dist/utils/selection.js +1 -1
  474. package/dist/utils/styles.js +1 -1
  475. package/dist/utils/tree.js +1 -1
  476. package/dist/utils/warnings.js +1 -1
  477. package/dist/version.js +2 -2
  478. package/docs/components/layout/Board.md +224 -0
  479. package/docs/components/navigation/Tabs.md +18 -2
  480. package/package.json +3 -3
@@ -0,0 +1,52 @@
1
+
2
+ import { LayoutItem } from "./grid-core/types.js";
3
+ import { CubeBoardProps } from "./Board.js";
4
+ import { BreakpointCols, Breakpoints, ResponsiveLayouts } from "./responsive-utils.js";
5
+ import * as react from "react";
6
+
7
+ //#region src/components/layout/Board/BoardResponsive.d.ts
8
+ interface CubeBoardResponsiveProps extends Omit<CubeBoardProps, 'layout' | 'defaultLayout' | 'cols' | 'onLayoutChange' | 'width' | 'breakpoints'> {
9
+ /** Map of breakpoint name -> minimum container width in pixels. */
10
+ breakpoints: Breakpoints;
11
+ /** Map of breakpoint name -> column count. */
12
+ cols: BreakpointCols;
13
+ /** Controlled per-breakpoint layouts. */
14
+ layouts?: ResponsiveLayouts;
15
+ /** Initial per-breakpoint layouts for uncontrolled usage. */
16
+ defaultLayouts?: ResponsiveLayouts;
17
+ /**
18
+ * Called when a drag or resize is committed. Receives the active breakpoint's
19
+ * layout and the full map of all breakpoint layouts.
20
+ */
21
+ onLayoutChange?: (currentLayout: LayoutItem[], allLayouts: ResponsiveLayouts) => void;
22
+ /** Called when the active breakpoint changes. */
23
+ onBreakpointChange?: (breakpoint: string, cols: number) => void;
24
+ /**
25
+ * Called when the measured container width changes, with the current column
26
+ * count for the active breakpoint. Mirrors react-grid-layout's
27
+ * `WidthProvider` `onWidthChange`. Not fired while width is unmeasured (0) or
28
+ * when an explicit `width` is provided.
29
+ */
30
+ onWidthChange?: (width: number, cols: number) => void;
31
+ /**
32
+ * Force a specific breakpoint regardless of the measured width (e.g. for a
33
+ * fixed-size screenshot or PDF export).
34
+ */
35
+ breakpoint?: string;
36
+ /**
37
+ * Explicit container width in pixels. When provided, disables automatic width
38
+ * measurement (useful for SSR, tests, and forced-size exports).
39
+ */
40
+ width?: number;
41
+ }
42
+ /**
43
+ * A responsive wrapper around `Board` that selects a layout and column count
44
+ * based on the container's width (or a forced breakpoint). Mirrors the model of
45
+ * react-grid-layout's `Responsive` + `WidthProvider`: per-breakpoint `layouts`
46
+ * and `cols`, with `onLayoutChange` reporting both the active layout and the
47
+ * full map.
48
+ */
49
+ declare const BoardResponsive: react.ForwardRefExoticComponent<CubeBoardResponsiveProps & react.RefAttributes<HTMLDivElement>>;
50
+ //#endregion
51
+ export { BoardResponsive, CubeBoardResponsiveProps };
52
+ //# sourceMappingURL=BoardResponsive.d.ts.map
@@ -0,0 +1,101 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.144.0 | Cube Dev Team */
2
+ import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
3
+ import { useEvent } from "../../../_internal/hooks/use-event.js";
4
+ import { getCompactor } from "./grid-core/compactors.js";
5
+ import { Board } from "./Board.js";
6
+ import { findOrGenerateResponsiveLayout, getBreakpointFromWidth, getColsFromBreakpoint } from "./responsive-utils.js";
7
+ import { forwardRef, useEffect, useMemo, useRef, useState } from "react";
8
+ import { jsx } from "react/jsx-runtime";
9
+ import { useResizeObserver } from "@react-aria/utils";
10
+
11
+ //#region src/components/layout/Board/BoardResponsive.tsx
12
+ function compactTypeToCore(compact) {
13
+ if (compact === "free") return null;
14
+ return compact;
15
+ }
16
+ function BoardResponsiveInner(props, ref) {
17
+ const { breakpoints, cols, layouts: controlledLayouts, defaultLayouts, onLayoutChange, onBreakpointChange, onWidthChange, breakpoint: forcedBreakpoint, width: providedWidth, compact = "vertical", allowOverlap = false, preventCollision = false, ...boardProps } = props;
18
+ const boardRef = useRef(null);
19
+ const combinedRef = useCombinedRefs(ref, boardRef);
20
+ const [measuredWidth, setMeasuredWidth] = useState(0);
21
+ useResizeObserver({
22
+ ref: boardRef,
23
+ onResize: useEvent(() => {
24
+ const next = boardRef.current?.offsetWidth ?? 0;
25
+ if (next > 0) setMeasuredWidth((prev) => prev === next ? prev : next);
26
+ })
27
+ });
28
+ const isControlled = controlledLayouts !== void 0;
29
+ const [internalLayouts, setInternalLayouts] = useState(() => controlledLayouts ?? defaultLayouts ?? {});
30
+ const currentLayouts = isControlled ? controlledLayouts : internalLayouts;
31
+ const layoutsRef = useRef(currentLayouts);
32
+ layoutsRef.current = currentLayouts;
33
+ const widthForBreakpoint = providedWidth ?? measuredWidth;
34
+ const activeBreakpoint = forcedBreakpoint ?? getBreakpointFromWidth(breakpoints, widthForBreakpoint);
35
+ const activeCols = getColsFromBreakpoint(activeBreakpoint, cols);
36
+ const lastBreakpointRef = useRef(activeBreakpoint);
37
+ const compactor = useMemo(() => getCompactor(compactTypeToCore(compact), allowOverlap, preventCollision), [
38
+ compact,
39
+ allowOverlap,
40
+ preventCollision
41
+ ]);
42
+ const currentLayout = useMemo(() => {
43
+ const existing = currentLayouts[activeBreakpoint];
44
+ if (existing) return existing;
45
+ return findOrGenerateResponsiveLayout(currentLayouts, breakpoints, activeBreakpoint, lastBreakpointRef.current, activeCols, compactor);
46
+ }, [
47
+ currentLayouts,
48
+ breakpoints,
49
+ activeBreakpoint,
50
+ activeCols,
51
+ compactor
52
+ ]);
53
+ const onBreakpointChangeEvent = useEvent(() => onBreakpointChange?.(activeBreakpoint, activeCols));
54
+ const bpInitializedRef = useRef(false);
55
+ useEffect(() => {
56
+ if (!bpInitializedRef.current) {
57
+ bpInitializedRef.current = true;
58
+ lastBreakpointRef.current = activeBreakpoint;
59
+ return;
60
+ }
61
+ onBreakpointChangeEvent();
62
+ lastBreakpointRef.current = activeBreakpoint;
63
+ }, [activeBreakpoint]);
64
+ const onWidthChangeEvent = useEvent(() => onWidthChange?.(widthForBreakpoint, activeCols));
65
+ useEffect(() => {
66
+ if (providedWidth != null) return;
67
+ if (measuredWidth <= 0) return;
68
+ onWidthChangeEvent();
69
+ }, [measuredWidth, activeCols]);
70
+ return /* @__PURE__ */ jsx(Board, {
71
+ ref: combinedRef,
72
+ layout: currentLayout,
73
+ cols: activeCols,
74
+ width: providedWidth,
75
+ compact,
76
+ allowOverlap,
77
+ preventCollision,
78
+ onLayoutChange: useEvent((next) => {
79
+ const merged = {
80
+ ...layoutsRef.current,
81
+ [activeBreakpoint]: next
82
+ };
83
+ layoutsRef.current = merged;
84
+ if (!isControlled) setInternalLayouts(merged);
85
+ onLayoutChange?.(next, merged);
86
+ }),
87
+ ...boardProps
88
+ });
89
+ }
90
+ /**
91
+ * A responsive wrapper around `Board` that selects a layout and column count
92
+ * based on the container's width (or a forced breakpoint). Mirrors the model of
93
+ * react-grid-layout's `Responsive` + `WidthProvider`: per-breakpoint `layouts`
94
+ * and `cols`, with `onLayoutChange` reporting both the active layout and the
95
+ * full map.
96
+ */
97
+ const BoardResponsive = forwardRef(BoardResponsiveInner);
98
+
99
+ //#endregion
100
+ export { BoardResponsive };
101
+ //# sourceMappingURL=BoardResponsive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoardResponsive.js","names":[],"sources":["../../../../src/components/layout/Board/BoardResponsive.tsx"],"sourcesContent":["import { useResizeObserver } from '@react-aria/utils';\nimport { forwardRef, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { useCombinedRefs } from '../../../utils/react';\n\nimport { Board } from './Board';\nimport { Compactor, CompactType, getCompactor, LayoutItem } from './grid-core';\nimport {\n BreakpointCols,\n Breakpoints,\n findOrGenerateResponsiveLayout,\n getBreakpointFromWidth,\n getColsFromBreakpoint,\n ResponsiveLayouts,\n} from './responsive-utils';\n\nimport type { BoardCompactType, CubeBoardProps } from './Board';\n\nexport interface CubeBoardResponsiveProps\n extends Omit<\n CubeBoardProps,\n | 'layout'\n | 'defaultLayout'\n | 'cols'\n | 'onLayoutChange'\n | 'width'\n | 'breakpoints'\n > {\n /** Map of breakpoint name -> minimum container width in pixels. */\n breakpoints: Breakpoints;\n /** Map of breakpoint name -> column count. */\n cols: BreakpointCols;\n /** Controlled per-breakpoint layouts. */\n layouts?: ResponsiveLayouts;\n /** Initial per-breakpoint layouts for uncontrolled usage. */\n defaultLayouts?: ResponsiveLayouts;\n /**\n * Called when a drag or resize is committed. Receives the active breakpoint's\n * layout and the full map of all breakpoint layouts.\n */\n onLayoutChange?: (\n currentLayout: LayoutItem[],\n allLayouts: ResponsiveLayouts,\n ) => void;\n /** Called when the active breakpoint changes. */\n onBreakpointChange?: (breakpoint: string, cols: number) => void;\n /**\n * Called when the measured container width changes, with the current column\n * count for the active breakpoint. Mirrors react-grid-layout's\n * `WidthProvider` `onWidthChange`. Not fired while width is unmeasured (0) or\n * when an explicit `width` is provided.\n */\n onWidthChange?: (width: number, cols: number) => void;\n /**\n * Force a specific breakpoint regardless of the measured width (e.g. for a\n * fixed-size screenshot or PDF export).\n */\n breakpoint?: string;\n /**\n * Explicit container width in pixels. When provided, disables automatic width\n * measurement (useful for SSR, tests, and forced-size exports).\n */\n width?: number;\n}\n\nfunction compactTypeToCore(compact: BoardCompactType): CompactType {\n if (compact === 'free') return null;\n return compact;\n}\n\nfunction BoardResponsiveInner(\n props: CubeBoardResponsiveProps,\n ref: React.ForwardedRef<HTMLDivElement>,\n) {\n const {\n breakpoints,\n cols,\n layouts: controlledLayouts,\n defaultLayouts,\n onLayoutChange,\n onBreakpointChange,\n onWidthChange,\n breakpoint: forcedBreakpoint,\n width: providedWidth,\n compact = 'vertical',\n allowOverlap = false,\n preventCollision = false,\n ...boardProps\n } = props;\n\n const boardRef = useRef<HTMLDivElement | null>(null);\n const combinedRef = useCombinedRefs(ref, boardRef);\n const [measuredWidth, setMeasuredWidth] = useState(0);\n\n const onResizeElement = useEvent(() => {\n const next = boardRef.current?.offsetWidth ?? 0;\n if (next > 0) setMeasuredWidth((prev) => (prev === next ? prev : next));\n });\n useResizeObserver({ ref: boardRef, onResize: onResizeElement });\n\n const isControlled = controlledLayouts !== undefined;\n const [internalLayouts, setInternalLayouts] = useState<ResponsiveLayouts>(\n () => controlledLayouts ?? defaultLayouts ?? {},\n );\n const currentLayouts = isControlled ? controlledLayouts! : internalLayouts;\n const layoutsRef = useRef(currentLayouts);\n layoutsRef.current = currentLayouts;\n\n const widthForBreakpoint = providedWidth ?? measuredWidth;\n const activeBreakpoint =\n forcedBreakpoint ?? getBreakpointFromWidth(breakpoints, widthForBreakpoint);\n const activeCols = getColsFromBreakpoint(activeBreakpoint, cols);\n\n // Previous breakpoint, used as the preferred source when synthesizing a layout\n // for a breakpoint that has none yet.\n const lastBreakpointRef = useRef(activeBreakpoint);\n\n // This compactor is only used to synthesize a layout for a breakpoint that has\n // none yet (compaction/bounds correction), so `preventCollision` has no effect\n // here - the drag-time behavior comes from the child `Board`'s own compactor\n // (see the free-mode note in `Board.tsx`).\n const compactor = useMemo<Compactor>(\n () =>\n getCompactor(compactTypeToCore(compact), allowOverlap, preventCollision),\n [compact, allowOverlap, preventCollision],\n );\n\n // Keep a stable reference for an existing breakpoint's layout so the child\n // `Board` (which syncs controlled layout by reference) is not reset every\n // render or mid-drag. Only a genuinely missing breakpoint is synthesized.\n const currentLayout = useMemo(() => {\n const existing = currentLayouts[activeBreakpoint];\n if (existing) return existing;\n return findOrGenerateResponsiveLayout(\n currentLayouts,\n breakpoints,\n activeBreakpoint,\n lastBreakpointRef.current,\n activeCols,\n compactor,\n );\n }, [currentLayouts, breakpoints, activeBreakpoint, activeCols, compactor]);\n\n // Remember the last breakpoint (for synthesizing a missing one) and emit\n // breakpoint changes after commit, skipping the initial mount.\n const onBreakpointChangeEvent = useEvent(() =>\n onBreakpointChange?.(activeBreakpoint, activeCols),\n );\n const bpInitializedRef = useRef(false);\n useEffect(() => {\n if (!bpInitializedRef.current) {\n bpInitializedRef.current = true;\n lastBreakpointRef.current = activeBreakpoint;\n return;\n }\n onBreakpointChangeEvent();\n lastBreakpointRef.current = activeBreakpoint;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [activeBreakpoint]);\n\n // Report width changes (measured widths only; an explicit `width` disables\n // measurement, and an unmeasured board reports 0 which we skip).\n const onWidthChangeEvent = useEvent(() =>\n onWidthChange?.(widthForBreakpoint, activeCols),\n );\n useEffect(() => {\n if (providedWidth != null) return;\n if (measuredWidth <= 0) return;\n onWidthChangeEvent();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [measuredWidth, activeCols]);\n\n const handleLayoutChange = useEvent((next: LayoutItem[]) => {\n const merged = { ...layoutsRef.current, [activeBreakpoint]: next };\n layoutsRef.current = merged;\n if (!isControlled) setInternalLayouts(merged);\n onLayoutChange?.(next, merged);\n });\n\n return (\n <Board\n ref={combinedRef}\n layout={currentLayout}\n cols={activeCols}\n width={providedWidth}\n compact={compact}\n allowOverlap={allowOverlap}\n preventCollision={preventCollision}\n onLayoutChange={handleLayoutChange}\n {...boardProps}\n />\n );\n}\n\n/**\n * A responsive wrapper around `Board` that selects a layout and column count\n * based on the container's width (or a forced breakpoint). Mirrors the model of\n * react-grid-layout's `Responsive` + `WidthProvider`: per-breakpoint `layouts`\n * and `cols`, with `onLayoutChange` reporting both the active layout and the\n * full map.\n */\nexport const BoardResponsive = forwardRef(BoardResponsiveInner);\n"],"mappings":";;;;;;;;;;;AAkEA,SAAS,kBAAkB,SAAwC;AACjE,KAAI,YAAY,OAAQ,QAAO;AAC/B,QAAO;;AAGT,SAAS,qBACP,OACA,KACA;CACA,MAAM,EACJ,aACA,MACA,SAAS,mBACT,gBACA,gBACA,oBACA,eACA,YAAY,kBACZ,OAAO,eACP,UAAU,YACV,eAAe,OACf,mBAAmB,OACnB,GAAG,eACD;CAEJ,MAAM,WAAW,OAA8B,KAAK;CACpD,MAAM,cAAc,gBAAgB,KAAK,SAAS;CAClD,MAAM,CAAC,eAAe,oBAAoB,SAAS,EAAE;AAMrD,mBAAkB;EAAE,KAAK;EAAU,UAJX,eAAe;GACrC,MAAM,OAAO,SAAS,SAAS,eAAe;AAC9C,OAAI,OAAO,EAAG,mBAAkB,SAAU,SAAS,OAAO,OAAO,KAAM;IACvE;EAC4D,CAAC;CAE/D,MAAM,eAAe,sBAAsB;CAC3C,MAAM,CAAC,iBAAiB,sBAAsB,eACtC,qBAAqB,kBAAkB,EAAE,CAChD;CACD,MAAM,iBAAiB,eAAe,oBAAqB;CAC3D,MAAM,aAAa,OAAO,eAAe;AACzC,YAAW,UAAU;CAErB,MAAM,qBAAqB,iBAAiB;CAC5C,MAAM,mBACJ,oBAAoB,uBAAuB,aAAa,mBAAmB;CAC7E,MAAM,aAAa,sBAAsB,kBAAkB,KAAK;CAIhE,MAAM,oBAAoB,OAAO,iBAAiB;CAMlD,MAAM,YAAY,cAEd,aAAa,kBAAkB,QAAQ,EAAE,cAAc,iBAAiB,EAC1E;EAAC;EAAS;EAAc;EAAiB,CAC1C;CAKD,MAAM,gBAAgB,cAAc;EAClC,MAAM,WAAW,eAAe;AAChC,MAAI,SAAU,QAAO;AACrB,SAAO,+BACL,gBACA,aACA,kBACA,kBAAkB,SAClB,YACA,UACD;IACA;EAAC;EAAgB;EAAa;EAAkB;EAAY;EAAU,CAAC;CAI1E,MAAM,0BAA0B,eAC9B,qBAAqB,kBAAkB,WAAW,CACnD;CACD,MAAM,mBAAmB,OAAO,MAAM;AACtC,iBAAgB;AACd,MAAI,CAAC,iBAAiB,SAAS;AAC7B,oBAAiB,UAAU;AAC3B,qBAAkB,UAAU;AAC5B;;AAEF,2BAAyB;AACzB,oBAAkB,UAAU;IAE3B,CAAC,iBAAiB,CAAC;CAItB,MAAM,qBAAqB,eACzB,gBAAgB,oBAAoB,WAAW,CAChD;AACD,iBAAgB;AACd,MAAI,iBAAiB,KAAM;AAC3B,MAAI,iBAAiB,EAAG;AACxB,sBAAoB;IAEnB,CAAC,eAAe,WAAW,CAAC;AAS/B,QACE,oBAAC;EACC,KAAK;EACL,QAAQ;EACR,MAAM;EACN,OAAO;EACE;EACK;EACI;EAClB,gBAhBuB,UAAU,SAAuB;GAC1D,MAAM,SAAS;IAAE,GAAG,WAAW;KAAU,mBAAmB;IAAM;AAClE,cAAW,UAAU;AACrB,OAAI,CAAC,aAAc,oBAAmB,OAAO;AAC7C,oBAAiB,MAAM,OAAO;IAC9B;EAYE,GAAI;GACJ;;;;;;;;;AAWN,MAAa,kBAAkB,WAAW,qBAAqB"}
@@ -0,0 +1,49 @@
1
+
2
+ import { LayoutConstraint, ResizeHandleAxis } from "./grid-core/types.js";
3
+ import { Styles } from "@tenphi/tasty";
4
+ import { ReactNode } from "react";
5
+
6
+ //#region src/components/layout/Board/Widget.d.ts
7
+ interface CubeBoardWidgetProps {
8
+ /** Unique id, must match the `i` of a layout item in a `Board`. */
9
+ id: string;
10
+ /** Widget content. */
11
+ children?: ReactNode;
12
+ /** Disable dragging for this widget. */
13
+ isDraggable?: boolean;
14
+ /** Disable resizing for this widget. */
15
+ isResizable?: boolean;
16
+ /** Which resize handles to show (overrides the board default). */
17
+ resizeHandles?: ResizeHandleAxis[];
18
+ /** Per-widget layout constraints. */
19
+ constraints?: LayoutConstraint[];
20
+ /** Test id applied to the rendered widget element. */
21
+ qa?: string;
22
+ /** Style overrides applied to the rendered widget element. */
23
+ styles?: Styles;
24
+ /**
25
+ * Grow this widget's height in its board to fit its content (only ever
26
+ * increases). Pair with a nested `Board isAligned` to make the container
27
+ * expand until the inner board's rows fit at the parent's row height.
28
+ */
29
+ isAutoHeight?: boolean;
30
+ /**
31
+ * CSS selector for elements that must not start a pointer drag inside this
32
+ * widget (overrides the board's `dragCancel`).
33
+ */
34
+ dragCancel?: string;
35
+ /**
36
+ * CSS selector for the only elements from which a pointer drag may start
37
+ * inside this widget (overrides the board's `dragHandle`).
38
+ */
39
+ dragHandle?: string;
40
+ }
41
+ /**
42
+ * Declares a widget's content and per-widget options. Rendering and positioning
43
+ * are performed by the owning `Board` (the component itself renders nothing),
44
+ * which is what allows a widget to be transferred between boards.
45
+ */
46
+ declare function Widget(props: CubeBoardWidgetProps): null;
47
+ //#endregion
48
+ export { CubeBoardWidgetProps, Widget };
49
+ //# sourceMappingURL=Widget.d.ts.map
@@ -0,0 +1,42 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.144.0 | Cube Dev Team */
2
+ import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
3
+ import { useBoardRegistry } from "./board-context.js";
4
+ import { useEffect, useRef } from "react";
5
+
6
+ //#region src/components/layout/Board/Widget.tsx
7
+ /**
8
+ * Declares a widget's content and per-widget options. Rendering and positioning
9
+ * are performed by the owning `Board` (the component itself renders nothing),
10
+ * which is what allows a widget to be transferred between boards.
11
+ */
12
+ function Widget(props) {
13
+ const { id, children, isDraggable, isResizable, resizeHandles, constraints, qa, styles, isAutoHeight, dragCancel, dragHandle } = props;
14
+ const registry = useBoardRegistry();
15
+ const ownerRef = useRef({});
16
+ useLayoutEffect$1(() => {
17
+ registry?.store.register({
18
+ id,
19
+ content: children,
20
+ isDraggable,
21
+ isResizable,
22
+ resizeHandles,
23
+ constraints,
24
+ qa,
25
+ styles,
26
+ isAutoHeight,
27
+ dragCancel,
28
+ dragHandle
29
+ }, ownerRef.current);
30
+ });
31
+ useEffect(() => {
32
+ const owner = ownerRef.current;
33
+ return () => {
34
+ registry?.store.unregister(id, owner);
35
+ };
36
+ }, [id]);
37
+ return null;
38
+ }
39
+
40
+ //#endregion
41
+ export { Widget };
42
+ //# sourceMappingURL=Widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Widget.js","names":[],"sources":["../../../../src/components/layout/Board/Widget.tsx"],"sourcesContent":["import { Styles } from '@tenphi/tasty';\nimport { ReactNode, useEffect, useRef } from 'react';\n\nimport { useLayoutEffect } from '../../../utils/react';\n\nimport { useBoardRegistry } from './board-context';\nimport { LayoutConstraint, ResizeHandleAxis } from './grid-core';\n\nexport interface CubeBoardWidgetProps {\n /** Unique id, must match the `i` of a layout item in a `Board`. */\n id: string;\n /** Widget content. */\n children?: ReactNode;\n /** Disable dragging for this widget. */\n isDraggable?: boolean;\n /** Disable resizing for this widget. */\n isResizable?: boolean;\n /** Which resize handles to show (overrides the board default). */\n resizeHandles?: ResizeHandleAxis[];\n /** Per-widget layout constraints. */\n constraints?: LayoutConstraint[];\n /** Test id applied to the rendered widget element. */\n qa?: string;\n /** Style overrides applied to the rendered widget element. */\n styles?: Styles;\n /**\n * Grow this widget's height in its board to fit its content (only ever\n * increases). Pair with a nested `Board isAligned` to make the container\n * expand until the inner board's rows fit at the parent's row height.\n */\n isAutoHeight?: boolean;\n /**\n * CSS selector for elements that must not start a pointer drag inside this\n * widget (overrides the board's `dragCancel`).\n */\n dragCancel?: string;\n /**\n * CSS selector for the only elements from which a pointer drag may start\n * inside this widget (overrides the board's `dragHandle`).\n */\n dragHandle?: string;\n}\n\n/**\n * Declares a widget's content and per-widget options. Rendering and positioning\n * are performed by the owning `Board` (the component itself renders nothing),\n * which is what allows a widget to be transferred between boards.\n */\nexport function Widget(props: CubeBoardWidgetProps) {\n const {\n id,\n children,\n isDraggable,\n isResizable,\n resizeHandles,\n constraints,\n qa,\n styles,\n isAutoHeight,\n dragCancel,\n dragHandle,\n } = props;\n const registry = useBoardRegistry();\n\n // Stable per-instance token so a stale unregister (from an unmounting copy of\n // this widget) can't wipe out a newer instance's registration.\n const ownerRef = useRef({});\n\n // Register/update content on every render so content stays fresh in the store.\n useLayoutEffect(() => {\n registry?.store.register(\n {\n id,\n content: children,\n isDraggable,\n isResizable,\n resizeHandles,\n constraints,\n qa,\n styles,\n isAutoHeight,\n dragCancel,\n dragHandle,\n },\n ownerRef.current,\n );\n });\n\n // Remove from the store on unmount.\n useEffect(() => {\n const owner = ownerRef.current;\n return () => {\n registry?.store.unregister(id, owner);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [id]);\n\n return null;\n}\n"],"mappings":";;;;;;;;;;;AAgDA,SAAgB,OAAO,OAA6B;CAClD,MAAM,EACJ,IACA,UACA,aACA,aACA,eACA,aACA,IACA,QACA,cACA,YACA,eACE;CACJ,MAAM,WAAW,kBAAkB;CAInC,MAAM,WAAW,OAAO,EAAE,CAAC;AAG3B,yBAAsB;AACpB,YAAU,MAAM,SACd;GACE;GACA,SAAS;GACT;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACD,EACD,SAAS,QACV;GACD;AAGF,iBAAgB;EACd,MAAM,QAAQ,SAAS;AACvB,eAAa;AACX,aAAU,MAAM,WAAW,IAAI,MAAM;;IAGtC,CAAC,GAAG,CAAC;AAER,QAAO"}