@cube-dev/ui-kit 0.107.0 → 0.108.1

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 (624) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/es/_internal/hooks/index.js +1 -1
  3. package/es/_internal/hooks/use-chained-callback.js +1 -1
  4. package/es/_internal/hooks/use-debounced-value.js +1 -1
  5. package/es/_internal/hooks/use-deprecation-warning.js +1 -1
  6. package/es/_internal/hooks/use-effect-once.js +1 -1
  7. package/es/_internal/hooks/use-event.js +1 -1
  8. package/es/_internal/hooks/use-is-first-render.js +1 -1
  9. package/es/_internal/hooks/use-sync-ref.js +1 -1
  10. package/es/_internal/hooks/use-timer/index.js +1 -1
  11. package/es/_internal/hooks/use-timer/timer.js +1 -1
  12. package/es/_internal/hooks/use-timer/use-timer.js +1 -1
  13. package/es/_internal/hooks/use-update-effect.js +1 -1
  14. package/es/_internal/hooks/use-warn.js +1 -1
  15. package/es/_internal/index.js +1 -1
  16. package/es/components/Block.js +1 -1
  17. package/es/components/CollectionItem.js +1 -1
  18. package/es/components/GlobalStyles.js +1 -1
  19. package/es/components/GridProvider.js +1 -1
  20. package/es/components/HiddenInput.js +1 -1
  21. package/es/components/OpenTrasition.js +1 -1
  22. package/es/components/Root.js +1 -1
  23. package/es/components/actions/Action/Action.js +1 -1
  24. package/es/components/actions/Button/Button.js +1 -1
  25. package/es/components/actions/Button/index.js +1 -1
  26. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  27. package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
  28. package/es/components/actions/CommandMenu/index.js +1 -1
  29. package/es/components/actions/CommandMenu/styled.js +1 -1
  30. package/es/components/actions/ItemAction/ItemAction.js +1 -1
  31. package/es/components/actions/ItemAction/index.js +1 -1
  32. package/es/components/actions/ItemActionContext.js +1 -1
  33. package/es/components/actions/ItemButton/ItemButton.js +16 -13
  34. package/es/components/actions/ItemButton/index.js +1 -1
  35. package/es/components/actions/Link/Link.js +1 -1
  36. package/es/components/actions/Menu/Menu.js +1 -1
  37. package/es/components/actions/Menu/MenuItem.js +1 -1
  38. package/es/components/actions/Menu/MenuSection.js +1 -1
  39. package/es/components/actions/Menu/MenuTrigger.js +1 -1
  40. package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
  41. package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  42. package/es/components/actions/Menu/context.js +1 -1
  43. package/es/components/actions/Menu/index.js +1 -1
  44. package/es/components/actions/Menu/styled.js +1 -1
  45. package/es/components/actions/index.js +1 -1
  46. package/es/components/actions/use-action.js +1 -1
  47. package/es/components/actions/use-anchored-menu.js +1 -1
  48. package/es/components/actions/use-context-menu.js +1 -1
  49. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  50. package/es/components/content/Alert/Alert.js +1 -1
  51. package/es/components/content/Alert/index.js +1 -1
  52. package/es/components/content/Alert/types.js +1 -1
  53. package/es/components/content/Alert/use-alert.js +1 -1
  54. package/es/components/content/Avatar/Avatar.js +1 -1
  55. package/es/components/content/Badge/Badge.js +1 -1
  56. package/es/components/content/Card/Card.js +1 -1
  57. package/es/components/content/Content.js +1 -1
  58. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  59. package/es/components/content/CopyPasteBlock/index.js +1 -1
  60. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  61. package/es/components/content/CopySnippet/index.js +1 -1
  62. package/es/components/content/Disclosure/Disclosure.js +1 -1
  63. package/es/components/content/Disclosure/index.js +1 -1
  64. package/es/components/content/Divider.js +1 -1
  65. package/es/components/content/Footer.js +1 -1
  66. package/es/components/content/Header.js +1 -1
  67. package/es/components/content/HotKeys/HotKeys.js +1 -1
  68. package/es/components/content/HotKeys/index.js +1 -1
  69. package/es/components/content/Item/Item.js +21 -12
  70. package/es/components/content/Item/index.js +1 -1
  71. package/es/components/content/ItemBadge/ItemBadge.js +1 -1
  72. package/es/components/content/ItemBadge/index.js +1 -1
  73. package/es/components/content/Layout/GridLayout.js +1 -1
  74. package/es/components/content/Layout/Layout.js +14 -31
  75. package/es/components/content/Layout/LayoutBlock.js +1 -1
  76. package/es/components/content/Layout/LayoutCenter.js +1 -1
  77. package/es/components/content/Layout/LayoutContainer.js +1 -1
  78. package/es/components/content/Layout/LayoutContent.js +3 -1
  79. package/es/components/content/Layout/LayoutContext.js +71 -53
  80. package/es/components/content/Layout/LayoutFlex.js +1 -1
  81. package/es/components/content/Layout/LayoutFooter.js +1 -1
  82. package/es/components/content/Layout/LayoutGrid.js +1 -1
  83. package/es/components/content/Layout/LayoutHeader.js +1 -1
  84. package/es/components/content/Layout/LayoutPane.js +2 -1
  85. package/es/components/content/Layout/LayoutPanel.js +26 -16
  86. package/es/components/content/Layout/LayoutPanelHeader.js +1 -1
  87. package/es/components/content/Layout/LayoutToolbar.js +1 -1
  88. package/es/components/content/Layout/hooks/useTinyScrollbar.js +42 -16
  89. package/es/components/content/Layout/index.js +2 -2
  90. package/es/components/content/Layout/utils.js +1 -1
  91. package/es/components/content/List/SectionHeading.js +1 -1
  92. package/es/components/content/List/index.js +1 -1
  93. package/es/components/content/Paragraph.js +1 -1
  94. package/es/components/content/Placeholder/Placeholder.js +1 -1
  95. package/es/components/content/PrismCode/PrismCode.js +1 -1
  96. package/es/components/content/PrismCode/prismSetup.js +1 -1
  97. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  98. package/es/components/content/Result/Result.js +1 -1
  99. package/es/components/content/Skeleton/Skeleton.js +1 -1
  100. package/es/components/content/Tag/Tag.js +1 -1
  101. package/es/components/content/Text.js +1 -1
  102. package/es/components/content/TextItem/TextItem.js +1 -1
  103. package/es/components/content/TextItem/index.js +1 -1
  104. package/es/components/content/Title.js +1 -1
  105. package/es/components/content/highlightText.js +1 -1
  106. package/es/components/content/use-auto-tooltip.js +1 -1
  107. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  108. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  109. package/es/components/fields/Checkbox/context.js +1 -1
  110. package/es/components/fields/Checkbox/index.js +1 -1
  111. package/es/components/fields/ComboBox/ComboBox.js +1 -1
  112. package/es/components/fields/ComboBox/index.js +1 -1
  113. package/es/components/fields/DatePicker/DateInput.js +1 -1
  114. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  115. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  116. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  117. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  118. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  119. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  120. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  121. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  122. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  123. package/es/components/fields/DatePicker/index.js +1 -1
  124. package/es/components/fields/DatePicker/intl.js +1 -1
  125. package/es/components/fields/DatePicker/parseDate.js +1 -1
  126. package/es/components/fields/DatePicker/props.js +1 -1
  127. package/es/components/fields/DatePicker/types.js +1 -1
  128. package/es/components/fields/DatePicker/utils.js +1 -1
  129. package/es/components/fields/FileInput/FileInput.js +1 -1
  130. package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
  131. package/es/components/fields/FilterListBox/index.js +1 -1
  132. package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
  133. package/es/components/fields/FilterPicker/index.js +1 -1
  134. package/es/components/fields/Input/Input.js +1 -1
  135. package/es/components/fields/Input/index.js +1 -1
  136. package/es/components/fields/ListBox/ListBox.js +1 -1
  137. package/es/components/fields/ListBox/index.js +1 -1
  138. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  139. package/es/components/fields/NumberInput/StepButton.js +1 -1
  140. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  141. package/es/components/fields/Picker/Picker.js +1 -1
  142. package/es/components/fields/Picker/index.js +1 -1
  143. package/es/components/fields/RadioGroup/Radio.js +1 -1
  144. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  145. package/es/components/fields/RadioGroup/context.js +1 -1
  146. package/es/components/fields/RadioGroup/index.js +1 -1
  147. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  148. package/es/components/fields/SearchInput/index.js +1 -1
  149. package/es/components/fields/Select/Select.js +1 -1
  150. package/es/components/fields/Select/index.js +1 -1
  151. package/es/components/fields/Slider/Gradation.js +1 -1
  152. package/es/components/fields/Slider/Header.js +1 -1
  153. package/es/components/fields/Slider/HueSlider.js +65 -0
  154. package/es/components/fields/Slider/RangeSlider.js +1 -1
  155. package/es/components/fields/Slider/Slider.js +3 -3
  156. package/es/components/fields/Slider/SliderBase.js +1 -1
  157. package/es/components/fields/Slider/SliderInput.js +1 -1
  158. package/es/components/fields/Slider/SliderThumb.js +3 -3
  159. package/es/components/fields/Slider/SliderTrack.js +3 -3
  160. package/es/components/fields/Slider/elements.js +7 -6
  161. package/es/components/fields/Slider/index.js +2 -1
  162. package/es/components/fields/Slider/types.js +1 -1
  163. package/es/components/fields/Switch/Switch.js +1 -1
  164. package/es/components/fields/Switch/index.js +1 -1
  165. package/es/components/fields/TextArea/TextArea.js +1 -1
  166. package/es/components/fields/TextArea/index.js +1 -1
  167. package/es/components/fields/TextInput/TextInput.js +1 -1
  168. package/es/components/fields/TextInput/TextInputBase.js +1 -1
  169. package/es/components/fields/TextInput/index.js +1 -1
  170. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  171. package/es/components/fields/TextInputMapper/index.js +1 -1
  172. package/es/components/fields/index.js +1 -1
  173. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  174. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  175. package/es/components/form/FieldWrapper/index.js +1 -1
  176. package/es/components/form/FieldWrapper/types.js +1 -1
  177. package/es/components/form/Form/Field.js +1 -1
  178. package/es/components/form/Form/Form.js +1 -1
  179. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  180. package/es/components/form/Form/ResetButton/index.js +1 -1
  181. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  182. package/es/components/form/Form/SubmitButton/index.js +1 -1
  183. package/es/components/form/Form/SubmitError.js +1 -1
  184. package/es/components/form/Form/index.js +1 -1
  185. package/es/components/form/Form/types.js +1 -1
  186. package/es/components/form/Form/use-field/index.js +1 -1
  187. package/es/components/form/Form/use-field/types.js +1 -1
  188. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  189. package/es/components/form/Form/use-field/use-field.js +1 -1
  190. package/es/components/form/Form/use-form.js +1 -1
  191. package/es/components/form/Form/validation.js +1 -1
  192. package/es/components/form/Label.js +1 -1
  193. package/es/components/form/index.js +1 -1
  194. package/es/components/form/wrapper.js +1 -1
  195. package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  196. package/es/components/helpers/DisplayTransition/index.js +1 -1
  197. package/es/components/helpers/IconSwitch/IconSwitch.js +1 -1
  198. package/es/components/helpers/index.js +1 -1
  199. package/es/components/layout/Flex.js +1 -1
  200. package/es/components/layout/Flow.js +1 -1
  201. package/es/components/layout/Grid.js +1 -1
  202. package/es/components/layout/Panel.js +1 -1
  203. package/es/components/layout/Prefix.js +1 -1
  204. package/es/components/layout/ResizablePanel.js +1 -1
  205. package/es/components/layout/Space.js +1 -1
  206. package/es/components/layout/Suffix.js +1 -1
  207. package/es/components/navigation/Tabs/DraggableTabList.js +5 -3
  208. package/es/components/navigation/Tabs/EditableTitle.js +1 -1
  209. package/es/components/navigation/Tabs/TabButton.js +18 -20
  210. package/es/components/navigation/Tabs/TabDropIndicator.js +1 -1
  211. package/es/components/navigation/Tabs/TabPanel.js +2 -4
  212. package/es/components/navigation/Tabs/TabPicker.js +4 -4
  213. package/es/components/navigation/Tabs/Tabs.js +22 -11
  214. package/es/components/navigation/Tabs/TabsAction.js +1 -1
  215. package/es/components/navigation/Tabs/TabsContext.js +1 -1
  216. package/es/components/navigation/Tabs/index.js +1 -1
  217. package/es/components/navigation/Tabs/styled.js +26 -13
  218. package/es/components/navigation/Tabs/types.js +1 -1
  219. package/es/components/navigation/Tabs/use-tab-editing.js +1 -1
  220. package/es/components/navigation/Tabs/use-tab-indicator.js +1 -1
  221. package/es/components/navigation/index.js +1 -1
  222. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  223. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  224. package/es/components/other/Calendar/Calendar.js +1 -1
  225. package/es/components/other/Calendar/CalendarCell.js +1 -1
  226. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  227. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  228. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  229. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  230. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  231. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  232. package/es/components/overlays/AlertDialog/index.js +1 -1
  233. package/es/components/overlays/AlertDialog/types.js +1 -1
  234. package/es/components/overlays/Dialog/Dialog.js +1 -1
  235. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  236. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  237. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  238. package/es/components/overlays/Dialog/context.js +1 -1
  239. package/es/components/overlays/Dialog/index.js +1 -1
  240. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  241. package/es/components/overlays/Modal/Modal.js +1 -1
  242. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  243. package/es/components/overlays/Modal/Overlay.js +1 -1
  244. package/es/components/overlays/Modal/Popover.js +1 -1
  245. package/es/components/overlays/Modal/Tray.js +1 -1
  246. package/es/components/overlays/Modal/Underlay.js +1 -1
  247. package/es/components/overlays/Modal/index.js +1 -1
  248. package/es/components/overlays/Modal/types.js +1 -1
  249. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  250. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  251. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  252. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  253. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
  254. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  255. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  256. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  257. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  258. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  259. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  260. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  261. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  262. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  263. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  264. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  265. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  266. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  267. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  268. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  269. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  270. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  271. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  272. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  273. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  274. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  275. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  276. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  277. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  278. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  279. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  280. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  281. package/es/components/overlays/NewNotifications/index.js +1 -1
  282. package/es/components/overlays/NewNotifications/types.js +1 -1
  283. package/es/components/overlays/Notification/Notification.js +1 -1
  284. package/es/components/overlays/OverlayWrapper.js +1 -1
  285. package/es/components/overlays/Toast/ToastItem.js +1 -1
  286. package/es/components/overlays/Toast/ToastProvider.js +1 -1
  287. package/es/components/overlays/Toast/index.js +1 -1
  288. package/es/components/overlays/Toast/types.js +1 -1
  289. package/es/components/overlays/Toast/useProgressToast.js +1 -1
  290. package/es/components/overlays/Toast/useToast.js +1 -1
  291. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  292. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  293. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  294. package/es/components/overlays/Tooltip/context.js +1 -1
  295. package/es/components/overlays/Tooltip/index.js +1 -1
  296. package/es/components/portal/Portal.js +1 -1
  297. package/es/components/portal/PortalProvider.js +1 -1
  298. package/es/components/portal/index.js +1 -1
  299. package/es/components/portal/types.js +1 -1
  300. package/es/components/portal/usePortal.js +1 -1
  301. package/es/components/shared/InvalidIcon.js +1 -1
  302. package/es/components/shared/ValidIcon.js +1 -1
  303. package/es/components/status/LoadingAnimation/LoadingAnimation.js +15 -15
  304. package/es/components/status/LoadingAnimation/index.js +1 -1
  305. package/es/components/status/Spin/Cube.js +40 -40
  306. package/es/components/status/Spin/InternalSpinner.js +1 -1
  307. package/es/components/status/Spin/Spin.js +1 -1
  308. package/es/components/status/Spin/SpinsContainer.js +1 -1
  309. package/es/components/status/Spin/index.js +1 -1
  310. package/es/components/status/Spin/types.js +1 -1
  311. package/es/components/status/index.js +1 -1
  312. package/es/data/item-themes.js +2 -2
  313. package/es/data/themes.js +1 -1
  314. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  315. package/es/icons/AdjustmentsIcon.js +1 -1
  316. package/es/icons/AiIcon.js +1 -1
  317. package/es/icons/AreaChartIcon.js +1 -1
  318. package/es/icons/BackwardIcon.js +1 -1
  319. package/es/icons/BarChartIcon.js +1 -1
  320. package/es/icons/BellFilledIcon.js +1 -1
  321. package/es/icons/BellIcon.js +1 -1
  322. package/es/icons/BooleanIcon.js +1 -1
  323. package/es/icons/CalendarEditIcon.js +1 -1
  324. package/es/icons/CalendarIcon.js +1 -1
  325. package/es/icons/CaretDownIcon.js +1 -1
  326. package/es/icons/CaretUpIcon.js +1 -1
  327. package/es/icons/ChartAreaStackedIcon.js +1 -1
  328. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  329. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  330. package/es/icons/ChartBarGroupedIcon.js +1 -1
  331. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  332. package/es/icons/ChartBarLineIcon.js +1 -1
  333. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  334. package/es/icons/ChartBarStackedIcon.js +1 -1
  335. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  336. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  337. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  338. package/es/icons/ChartBoxPlotIcon.js +1 -1
  339. package/es/icons/ChartBubbleIcon.js +1 -1
  340. package/es/icons/ChartDonut2Icon.js +1 -1
  341. package/es/icons/ChartFunnelIcon.js +1 -1
  342. package/es/icons/ChartHeatmapIcon.js +1 -1
  343. package/es/icons/ChartKPIIcon.js +1 -1
  344. package/es/icons/ChartPie2Icon.js +1 -1
  345. package/es/icons/ChartScatterIcon.js +1 -1
  346. package/es/icons/CheckCircleFilledIcon.js +1 -1
  347. package/es/icons/CheckCircleIcon.js +1 -1
  348. package/es/icons/CheckIcon.js +1 -1
  349. package/es/icons/CircleFilledIcon.js +1 -1
  350. package/es/icons/ClearIcon.js +1 -1
  351. package/es/icons/CloseCircleFilledIcon.js +1 -1
  352. package/es/icons/CloseCircleIcon.js +1 -1
  353. package/es/icons/CloseIcon.js +1 -1
  354. package/es/icons/CodeIcon.js +1 -1
  355. package/es/icons/ColumnTotalIcon.js +1 -1
  356. package/es/icons/CopyIcon.js +1 -1
  357. package/es/icons/CountIcon.js +1 -1
  358. package/es/icons/CubeIcon.js +1 -1
  359. package/es/icons/CubePauseIcon.js +1 -1
  360. package/es/icons/CubePlayIcon.js +1 -1
  361. package/es/icons/CurrencyDollarIcon.js +1 -1
  362. package/es/icons/DangerIcon.js +1 -1
  363. package/es/icons/DashboardIcon.js +1 -1
  364. package/es/icons/DatabaseIcon.js +1 -1
  365. package/es/icons/DecimalDecreaseIcon.js +1 -1
  366. package/es/icons/DecimalIncreaseIcon.js +1 -1
  367. package/es/icons/DirectionIcon.js +1 -1
  368. package/es/icons/DonutIcon.js +1 -1
  369. package/es/icons/DownIcon.js +1 -1
  370. package/es/icons/EditIcon.js +1 -1
  371. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  372. package/es/icons/ExclamationCircleIcon.js +1 -1
  373. package/es/icons/ExclamationIcon.js +1 -1
  374. package/es/icons/EyeIcon.js +1 -1
  375. package/es/icons/EyeInvisibleIcon.js +1 -1
  376. package/es/icons/FilterIcon.js +1 -1
  377. package/es/icons/FolderFilledIcon.js +1 -1
  378. package/es/icons/FolderIcon.js +1 -1
  379. package/es/icons/FolderOpenFilledIcon.js +1 -1
  380. package/es/icons/FolderOpenIcon.js +1 -1
  381. package/es/icons/ForwardIcon.js +1 -1
  382. package/es/icons/HierarchyIcon.js +1 -1
  383. package/es/icons/HierarchyOpenIcon.js +1 -1
  384. package/es/icons/Icon.js +1 -1
  385. package/es/icons/InfoCircleIcon.js +1 -1
  386. package/es/icons/InfoIcon.js +1 -1
  387. package/es/icons/KeyIcon.js +1 -1
  388. package/es/icons/LeftIcon.js +1 -1
  389. package/es/icons/LineChartIcon.js +1 -1
  390. package/es/icons/LoadingIcon.js +1 -1
  391. package/es/icons/LockFilledIcon.js +1 -1
  392. package/es/icons/LockIcon.js +1 -1
  393. package/es/icons/MoreIcon.js +1 -1
  394. package/es/icons/NotAllowedIcon.js +1 -1
  395. package/es/icons/Number123Icon.js +1 -1
  396. package/es/icons/NumberIcon.js +1 -1
  397. package/es/icons/PauseCircleFilledIcon.js +1 -1
  398. package/es/icons/PauseCircleIcon.js +1 -1
  399. package/es/icons/PauseIcon.js +1 -1
  400. package/es/icons/PercentageIcon.js +1 -1
  401. package/es/icons/PieChartIcon.js +1 -1
  402. package/es/icons/PlayCircleIcon.js +1 -1
  403. package/es/icons/PlayIcon.js +1 -1
  404. package/es/icons/PlusIcon.js +1 -1
  405. package/es/icons/ProgressBarIcon.js +1 -1
  406. package/es/icons/ReloadIcon.js +1 -1
  407. package/es/icons/ReportIcon.js +1 -1
  408. package/es/icons/ReturnIcon.js +1 -1
  409. package/es/icons/RightIcon.js +1 -1
  410. package/es/icons/RowTotalsIcon.js +1 -1
  411. package/es/icons/SchemeIcon.js +1 -1
  412. package/es/icons/SearchIcon.js +1 -1
  413. package/es/icons/SemanticQueryIcon.js +1 -1
  414. package/es/icons/SettingsIcon.js +1 -1
  415. package/es/icons/ShieldFilledIcon.js +1 -1
  416. package/es/icons/ShieldIcon.js +1 -1
  417. package/es/icons/SlashIcon.js +1 -1
  418. package/es/icons/SparklesIcon.js +1 -1
  419. package/es/icons/SqlIcon.js +1 -1
  420. package/es/icons/StatsIcon.js +1 -1
  421. package/es/icons/StopIcon.js +1 -1
  422. package/es/icons/StringIcon.js +1 -1
  423. package/es/icons/SubtotalsIcon.js +1 -1
  424. package/es/icons/SwitchIcon.js +1 -1
  425. package/es/icons/TableIcon.js +1 -1
  426. package/es/icons/ThumbsDownIcon.js +1 -1
  427. package/es/icons/ThumbsUpIcon.js +1 -1
  428. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  429. package/es/icons/ThunderboltFilledIcon.js +1 -1
  430. package/es/icons/ThunderboltIcon.js +1 -1
  431. package/es/icons/TimeIcon.js +1 -1
  432. package/es/icons/TrashIcon.js +1 -1
  433. package/es/icons/UnlockIcon.js +1 -1
  434. package/es/icons/UpIcon.js +1 -1
  435. package/es/icons/UserGroupIcon.js +1 -1
  436. package/es/icons/UserIcon.js +1 -1
  437. package/es/icons/UserLockIcon.js +1 -1
  438. package/es/icons/ViewIcon.js +1 -1
  439. package/es/icons/WarningFilledIcon.js +1 -1
  440. package/es/icons/WarningIcon.js +1 -1
  441. package/es/icons/index.js +1 -1
  442. package/es/icons/wrap-icon.js +1 -1
  443. package/es/index.js +1 -1
  444. package/es/provider.js +1 -1
  445. package/es/providers/TrackingProvider.js +1 -1
  446. package/es/providers/navigation.types.js +1 -1
  447. package/es/providers/navigationAdapter.default.js +1 -1
  448. package/es/services/notification.js +1 -1
  449. package/es/shared/form.js +1 -1
  450. package/es/shared/index.js +1 -1
  451. package/es/stories/Form.legacy-stories.js +1 -1
  452. package/es/stories/FormFieldArgs.js +1 -1
  453. package/es/stories/SimpleLayout.stories.js +1 -1
  454. package/es/stories/Tasty.stories.js +1 -1
  455. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  456. package/es/stories/components/DialogFormApp.js +1 -1
  457. package/es/stories/components/StyledButton.js +1 -1
  458. package/es/stories/lists/baseProps.js +1 -1
  459. package/es/stories/playground/PlaygroundEditor.js +1 -1
  460. package/es/stories/playground/PlaygroundLayout.js +1 -1
  461. package/es/stories/playground/PlaygroundOutput.js +1 -1
  462. package/es/stories/playground/PlaygroundPreview.js +1 -1
  463. package/es/stories/playground/components/Button.js +1 -1
  464. package/es/stories/playground/components/Card.js +1 -1
  465. package/es/stories/playground/components/ScrollProgress.js +1 -1
  466. package/es/stories/playground/examples.js +1 -1
  467. package/es/tasty/chunks/cacheKey.js +1 -1
  468. package/es/tasty/chunks/definitions.js +1 -1
  469. package/es/tasty/chunks/index.js +1 -1
  470. package/es/tasty/chunks/renderChunk.js +1 -1
  471. package/es/tasty/config.js +16 -3
  472. package/es/tasty/debug.js +1 -1
  473. package/es/tasty/hooks/index.js +1 -1
  474. package/es/tasty/hooks/useGlobalStyles.js +1 -1
  475. package/es/tasty/hooks/useKeyframes.js +1 -1
  476. package/es/tasty/hooks/useProperty.js +1 -1
  477. package/es/tasty/hooks/useRawCSS.js +1 -1
  478. package/es/tasty/hooks/useStyles.js +1 -1
  479. package/es/tasty/index.js +1 -1
  480. package/es/tasty/injector/index.js +1 -1
  481. package/es/tasty/injector/injector.js +1 -1
  482. package/es/tasty/injector/sheet-manager.js +1 -1
  483. package/es/tasty/injector/types.js +1 -1
  484. package/es/tasty/keyframes/index.js +1 -1
  485. package/es/tasty/parser/classify.js +1 -1
  486. package/es/tasty/parser/const.js +1 -1
  487. package/es/tasty/parser/lru.js +1 -1
  488. package/es/tasty/parser/parser.js +1 -1
  489. package/es/tasty/parser/tokenizer.js +1 -1
  490. package/es/tasty/parser/types.js +1 -1
  491. package/es/tasty/pipeline/conditions.js +1 -1
  492. package/es/tasty/pipeline/exclusive.js +1 -1
  493. package/es/tasty/pipeline/index.js +1 -1
  494. package/es/tasty/pipeline/materialize.js +1 -1
  495. package/es/tasty/pipeline/parseStateKey.js +1 -1
  496. package/es/tasty/pipeline/simplify.js +1 -1
  497. package/es/tasty/plugins/index.js +1 -1
  498. package/es/tasty/plugins/okhsl-plugin.js +1 -1
  499. package/es/tasty/plugins/types.js +1 -1
  500. package/es/tasty/properties/index.js +1 -1
  501. package/es/tasty/states/index.js +1 -1
  502. package/es/tasty/static/index.js +1 -1
  503. package/es/tasty/static/tastyStatic.js +1 -1
  504. package/es/tasty/static/types.js +1 -1
  505. package/es/tasty/styles/align.js +1 -1
  506. package/es/tasty/styles/border.js +1 -1
  507. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  508. package/es/tasty/styles/color.js +1 -1
  509. package/es/tasty/styles/createStyle.js +11 -5
  510. package/es/tasty/styles/dimension.js +1 -1
  511. package/es/tasty/styles/display.js +1 -1
  512. package/es/tasty/styles/fade.js +1 -1
  513. package/es/tasty/styles/fill.js +1 -1
  514. package/es/tasty/styles/flow.js +1 -1
  515. package/es/tasty/styles/gap.js +1 -1
  516. package/es/tasty/styles/height.js +1 -1
  517. package/es/tasty/styles/index.js +1 -1
  518. package/es/tasty/styles/inset.js +1 -1
  519. package/es/tasty/styles/justify.js +1 -1
  520. package/es/tasty/styles/list.js +1 -1
  521. package/es/tasty/styles/margin.js +1 -1
  522. package/es/tasty/styles/outline.js +1 -1
  523. package/es/tasty/styles/padding.js +1 -1
  524. package/es/tasty/styles/place.js +1 -1
  525. package/es/tasty/styles/predefined.js +1 -1
  526. package/es/tasty/styles/preset.js +1 -1
  527. package/es/tasty/styles/radius.js +1 -1
  528. package/es/tasty/styles/reset.js +1 -1
  529. package/es/tasty/styles/scrollbar.js +1 -1
  530. package/es/tasty/styles/shadow.js +1 -1
  531. package/es/tasty/styles/styledScrollbar.js +1 -1
  532. package/es/tasty/styles/transition.js +1 -1
  533. package/es/tasty/styles/types.js +1 -1
  534. package/es/tasty/styles/width.js +1 -1
  535. package/es/tasty/tasty.js +1 -1
  536. package/es/tasty/types.js +1 -1
  537. package/es/tasty/utils/cache-wrapper.js +1 -1
  538. package/es/tasty/utils/case-converter.js +1 -1
  539. package/es/tasty/utils/colors.js +1 -1
  540. package/es/tasty/utils/dotize.js +1 -1
  541. package/es/tasty/utils/filter-base-props.js +1 -1
  542. package/es/tasty/utils/get-display-name.js +1 -1
  543. package/es/tasty/utils/hsl-to-rgb.js +1 -1
  544. package/es/tasty/utils/is-dev-env.js +1 -1
  545. package/es/tasty/utils/merge-styles.js +10 -2
  546. package/es/tasty/utils/mod-attrs.js +1 -1
  547. package/es/tasty/utils/okhsl-to-rgb.js +1 -1
  548. package/es/tasty/utils/process-tokens.js +20 -8
  549. package/es/tasty/utils/rgb-to-okhsl.js +1 -1
  550. package/es/tasty/utils/string.js +1 -1
  551. package/es/tasty/utils/styles.js +19 -1
  552. package/es/tasty/utils/typography.js +1 -1
  553. package/es/tasty/utils/warnings.js +1 -1
  554. package/es/tasty/zero/babel.js +1 -1
  555. package/es/tasty/zero/css-writer.js +1 -1
  556. package/es/tasty/zero/extractor.js +1 -1
  557. package/es/tasty/zero/index.js +1 -1
  558. package/es/tasty/zero/next.js +1 -1
  559. package/es/tokens/base.js +1 -1
  560. package/es/tokens/colors.js +1 -1
  561. package/es/tokens/index.js +1 -1
  562. package/es/tokens/layout.js +1 -1
  563. package/es/tokens/shadows.js +1 -1
  564. package/es/tokens/sizes.js +1 -1
  565. package/es/tokens/spacing.js +1 -1
  566. package/es/tokens/typography.js +1 -1
  567. package/es/utils/ResizeSensor.js +1 -1
  568. package/es/utils/index.js +1 -1
  569. package/es/utils/modules.js +1 -1
  570. package/es/utils/promise.js +1 -1
  571. package/es/utils/raf.js +1 -1
  572. package/es/utils/random.js +1 -1
  573. package/es/utils/range.js +1 -1
  574. package/es/utils/react/RenderCache.js +1 -1
  575. package/es/utils/react/Slots.js +1 -1
  576. package/es/utils/react/chain.js +1 -1
  577. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  578. package/es/utils/react/index.js +2 -1
  579. package/es/utils/react/interactions.js +1 -1
  580. package/es/utils/react/isTextOnly.js +1 -1
  581. package/es/utils/react/mapProps.js +1 -1
  582. package/es/utils/react/mergeProps.js +1 -1
  583. package/es/utils/react/nullableValue.js +1 -1
  584. package/es/utils/react/resolveIcon.js +1 -1
  585. package/es/utils/react/sharedStore.js +1 -1
  586. package/es/utils/react/useCombinedRefs.js +1 -1
  587. package/es/utils/react/useControlledFocusVisible.js +1 -1
  588. package/es/utils/react/useEventBus.js +1 -1
  589. package/es/utils/react/useId.js +1 -1
  590. package/es/utils/react/useIsDarwin.js +1 -1
  591. package/es/utils/react/useKeySymbols.js +1 -1
  592. package/es/utils/react/useLayoutEffect.js +1 -1
  593. package/es/utils/react/useLocalStorage.js +1 -1
  594. package/es/utils/react/useMergeStyles.js +49 -0
  595. package/es/utils/react/useQaProps.js +1 -1
  596. package/es/utils/react/useViewportSize.js +1 -1
  597. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  598. package/es/utils/tree.js +1 -1
  599. package/es/utils/warnings.js +1 -1
  600. package/es/version.js +2 -2
  601. package/package.json +3 -2
  602. package/tasty.config.ts +311 -0
  603. package/types/components/content/Item/Item.d.ts +13 -3
  604. package/types/components/content/Layout/LayoutContext.d.ts +45 -9
  605. package/types/components/content/Layout/index.d.ts +2 -2
  606. package/types/components/fields/Slider/HueSlider.d.ts +12 -0
  607. package/types/components/fields/Slider/Slider.d.ts +7 -0
  608. package/types/components/fields/Slider/SliderThumb.d.ts +3 -0
  609. package/types/components/fields/Slider/SliderTrack.d.ts +2 -0
  610. package/types/components/fields/Slider/index.d.ts +1 -0
  611. package/types/components/navigation/Tabs/DraggableTabList.d.ts +1 -2
  612. package/types/components/navigation/Tabs/TabPanel.d.ts +1 -2
  613. package/types/components/navigation/Tabs/TabPicker.d.ts +3 -4
  614. package/types/components/navigation/Tabs/TabsContext.d.ts +7 -8
  615. package/types/components/navigation/Tabs/styled.d.ts +3 -1
  616. package/types/components/navigation/Tabs/types.d.ts +24 -14
  617. package/types/components/navigation/Tabs/use-tab-editing.d.ts +5 -6
  618. package/types/tasty/config.d.ts +7 -1
  619. package/types/tasty/index.d.ts +1 -1
  620. package/types/tasty/styles/types.d.ts +2 -2
  621. package/types/tasty/types.d.ts +82 -2
  622. package/types/tasty/utils/styles.d.ts +10 -0
  623. package/types/utils/react/index.d.ts +1 -0
  624. package/types/utils/react/useMergeStyles.d.ts +25 -0
@@ -1,19 +1,49 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
- import { createContext, useCallback, useContext, useMemo, useRef, useState, } from 'react';
10
- export const LayoutContext = createContext(null);
9
+ import { createContext, useContext, useMemo, useRef, useState, } from 'react';
10
+ import { useEvent } from '../../../_internal/hooks/index.js';
11
+ export const LayoutRefsContext = createContext(null);
12
+ export function useLayoutRefsContext() {
13
+ return useContext(LayoutRefsContext);
14
+ }
15
+ export const LayoutActionsContext = createContext(null);
16
+ export const LayoutStateContext = createContext(null);
17
+ export function useLayoutActionsContext() {
18
+ return useContext(LayoutActionsContext);
19
+ }
20
+ export function useLayoutStateContext() {
21
+ return useContext(LayoutStateContext);
22
+ }
23
+ /**
24
+ * Combined hook that returns all layout context values.
25
+ * Convenience wrapper around the individual context hooks.
26
+ * Returns null if used outside of a Layout component.
27
+ */
11
28
  export function useLayoutContext() {
12
- return useContext(LayoutContext);
29
+ const actions = useLayoutActionsContext();
30
+ const state = useLayoutStateContext();
31
+ const refs = useLayoutRefsContext();
32
+ if (!actions || !state || !refs) {
33
+ return null;
34
+ }
35
+ return { ...actions, ...state, ...refs };
13
36
  }
14
37
  export function LayoutProvider({ children, hasTransition = false, }) {
15
38
  const registeredPanels = useRef(new Set());
16
39
  const overlayPanelCallbacks = useRef(new Set());
40
+ const panelContainerRef = useRef(null);
41
+ const [isPanelContainerReady, setIsPanelContainerReady] = useState(false);
42
+ // Callback ref for panel container - triggers re-render when container mounts
43
+ const setPanelContainer = useEvent((element) => {
44
+ panelContainerRef.current = element;
45
+ setIsPanelContainerReady(element !== null);
46
+ });
17
47
  const [panelSizes, setPanelSizes] = useState({
18
48
  left: 0,
19
49
  top: 0,
@@ -23,7 +53,14 @@ export function LayoutProvider({ children, hasTransition = false, }) {
23
53
  const [isDragging, setIsDragging] = useState(false);
24
54
  const [isReady, setIsReady] = useState(false);
25
55
  const [hasOverlayPanels, setHasOverlayPanels] = useState(false);
26
- const registerPanel = useCallback((side, size) => {
56
+ const updatePanelSize = useEvent((side, size) => {
57
+ setPanelSizes((prev) => {
58
+ if (prev[side] === size)
59
+ return prev;
60
+ return { ...prev, [side]: size };
61
+ });
62
+ });
63
+ const registerPanel = useEvent((side, size) => {
27
64
  if (registeredPanels.current.has(side)) {
28
65
  throw new Error(`Layout: Only one panel per side is allowed. ` +
29
66
  `A panel is already registered on the "${side}" side.`);
@@ -41,36 +78,19 @@ export function LayoutProvider({ children, hasTransition = false, }) {
41
78
  }
42
79
  }
43
80
  registeredPanels.current.add(side);
44
- setPanelSizes((prev) => {
45
- if (prev[side] === size)
46
- return prev;
47
- return { ...prev, [side]: size };
48
- });
49
- }, []);
50
- const unregisterPanel = useCallback((side) => {
81
+ updatePanelSize(side, size);
82
+ });
83
+ const unregisterPanel = useEvent((side) => {
51
84
  registeredPanels.current.delete(side);
52
- setPanelSizes((prev) => {
53
- if (prev[side] === 0)
54
- return prev;
55
- return { ...prev, [side]: 0 };
56
- });
57
- }, []);
58
- const updatePanelSize = useCallback((side, size) => {
59
- setPanelSizes((prev) => {
60
- // Only update if the size actually changed
61
- if (prev[side] === size)
62
- return prev;
63
- return { ...prev, [side]: size };
64
- });
65
- }, []);
66
- const setDragging = useCallback((dragging) => {
85
+ updatePanelSize(side, 0);
86
+ });
87
+ const setDragging = useEvent((dragging) => {
67
88
  setIsDragging(dragging);
68
- }, []);
69
- const markReady = useCallback(() => {
89
+ });
90
+ const markReady = useEvent(() => {
70
91
  setIsReady(true);
71
- }, []);
72
- // Register an overlay panel's dismiss callback
73
- const registerOverlayPanel = useCallback((dismiss) => {
92
+ });
93
+ const registerOverlayPanel = useEvent((dismiss) => {
74
94
  overlayPanelCallbacks.current.add(dismiss);
75
95
  setHasOverlayPanels(true);
76
96
  // Return unregister function
@@ -78,46 +98,44 @@ export function LayoutProvider({ children, hasTransition = false, }) {
78
98
  overlayPanelCallbacks.current.delete(dismiss);
79
99
  setHasOverlayPanels(overlayPanelCallbacks.current.size > 0);
80
100
  };
81
- }, []);
82
- // Dismiss all overlay panels
83
- const dismissOverlayPanels = useCallback(() => {
101
+ });
102
+ const dismissOverlayPanels = useEvent(() => {
84
103
  overlayPanelCallbacks.current.forEach((dismiss) => dismiss());
85
- }, []);
86
- const value = useMemo(() => ({
104
+ });
105
+ // Actions context - stable because all callbacks use useEvent
106
+ const actionsValue = useMemo(() => ({
87
107
  registerPanel,
88
108
  unregisterPanel,
89
109
  updatePanelSize,
90
110
  setDragging,
91
111
  markReady,
92
- panelSizes,
93
- isDragging,
94
- isReady,
95
112
  hasTransition,
96
113
  registerOverlayPanel,
97
114
  dismissOverlayPanels,
98
- hasOverlayPanels,
99
- }), [
100
- registerPanel,
101
- unregisterPanel,
102
- updatePanelSize,
103
- setDragging,
104
- markReady,
115
+ }),
116
+ // Only hasTransition can change - all other values are stable useEvent callbacks
117
+ [hasTransition]);
118
+ // State context - changes when state updates
119
+ const stateValue = useMemo(() => ({
105
120
  panelSizes,
106
121
  isDragging,
107
122
  isReady,
108
- hasTransition,
109
- registerOverlayPanel,
110
- dismissOverlayPanels,
111
123
  hasOverlayPanels,
112
- ]);
113
- return (_jsx(LayoutContext.Provider, { value: value, children: children }));
124
+ }), [panelSizes, isDragging, isReady, hasOverlayPanels]);
125
+ // Refs context - includes container ready state
126
+ const refsValue = useMemo(() => ({
127
+ panelContainerRef,
128
+ isPanelContainerReady,
129
+ setPanelContainer,
130
+ }), [isPanelContainerReady]);
131
+ return (_jsx(LayoutRefsContext.Provider, { value: refsValue, children: _jsx(LayoutActionsContext.Provider, { value: actionsValue, children: _jsx(LayoutStateContext.Provider, { value: stateValue, children: children }) }) }));
114
132
  }
115
133
  /**
116
134
  * Provider that resets the layout context for sub-components.
117
135
  * Used to prevent panels in nested Layouts from affecting parent layouts.
118
136
  */
119
137
  export function LayoutContextReset({ children }) {
120
- return (_jsx(LayoutContext.Provider, { value: null, children: children }));
138
+ return (_jsx(LayoutRefsContext.Provider, { value: null, children: _jsx(LayoutActionsContext.Provider, { value: null, children: _jsx(LayoutStateContext.Provider, { value: null, children: children }) }) }));
121
139
  }
122
140
  export const LayoutPanelContext = createContext(null);
123
141
  export function useLayoutPanelContext() {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -86,6 +86,7 @@ const PaneElement = tasty({
86
86
  pointerEvents: 'none',
87
87
  },
88
88
  ScrollbarH: {
89
+ $: '>',
89
90
  position: 'absolute',
90
91
  bottom: {
91
92
  '': '1px',
@@ -1,20 +1,21 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
8
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
9
9
  import { forwardRef, useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState, } from 'react';
10
10
  import { useFocusRing, useHover, useMove } from 'react-aria';
11
+ import { createPortal } from 'react-dom';
11
12
  import { useDebouncedValue } from '../../../_internal/hooks/index.js';
12
13
  import { CONTAINER_STYLES, extractStyles, filterBaseProps, mergeStyles, tasty, } from '../../../tasty/index.js';
13
14
  import { mergeProps, useCombinedRefs, useLocalStorage, } from '../../../utils/react/index.js';
14
15
  import { DisplayTransition } from '../../helpers/DisplayTransition/DisplayTransition.js';
15
16
  import { Dialog } from '../../overlays/Dialog/index.js';
16
17
  import { DialogContainer, } from '../../overlays/Dialog/DialogContainer.js';
17
- import { LayoutContextReset, LayoutPanelContext, useLayoutContext, } from './LayoutContext.js';
18
+ import { LayoutContextReset, LayoutPanelContext, useLayoutActionsContext, useLayoutRefsContext, useLayoutStateContext, } from './LayoutContext.js';
18
19
  import { clampSize } from './utils.js';
19
20
  // Resize handler dimensions
20
21
  const HANDLER_WIDTH = 9;
@@ -28,7 +29,7 @@ const PanelElement = tasty({
28
29
  styles: {
29
30
  container: 'panel / inline-size',
30
31
  position: 'absolute',
31
- zIndex: 10,
32
+ zIndex: 3,
32
33
  display: 'flex',
33
34
  flow: 'column',
34
35
  overflow: 'hidden',
@@ -222,7 +223,7 @@ const OverlayBackdrop = tasty({
222
223
  styles: {
223
224
  position: 'absolute',
224
225
  inset: 0,
225
- zIndex: 9, // Below panel (10) but above content
226
+ zIndex: 2, // Below panel (10) but above content
226
227
  // fill: '#white.2',
227
228
  backdropFilter: 'invert(.15)',
228
229
  cursor: 'pointer',
@@ -261,9 +262,12 @@ function ResizeHandler(props) {
261
262
  }), children: [_jsx("div", { "data-element": "Track" }), !isDisabled && (_jsxs("div", { "data-element": "Drag", children: [_jsx("div", { "data-element": "DragPart" }), _jsx("div", { "data-element": "DragPart" }), _jsx("div", { "data-element": "DragPart" }), _jsx("div", { "data-element": "DragPart" }), _jsx("div", { "data-element": "DragPart" })] }))] }));
262
263
  }
263
264
  function LayoutPanel(props, ref) {
264
- const layoutContext = useLayoutContext();
265
- if (!layoutContext) {
266
- throw new Error('Layout.Panel must be a direct child of Layout component.');
265
+ const layoutActions = useLayoutActionsContext();
266
+ const layoutState = useLayoutStateContext();
267
+ const layoutRefs = useLayoutRefsContext();
268
+ if (!layoutActions || !layoutState || !layoutRefs) {
269
+ throw new Error('Layout.Panel must be used within a Layout component. ' +
270
+ 'Ensure your panel is rendered inside a <Layout> parent.');
267
271
  }
268
272
  const { side = 'left', mode: modeProp, size: providedSize, defaultSize = 280, minSize = 200, maxSize, isResizable = false, onSizeChange, isOpen: providedIsOpen, defaultIsOpen = true, onOpenChange, hasTransition: hasTransitionProp, isDismissable = true, overlayStyles,
269
273
  // Deprecated prop - use mode="dialog" instead
@@ -274,7 +278,7 @@ function LayoutPanel(props, ref) {
274
278
  const isOverlayMode = mode === 'overlay';
275
279
  const isStickyMode = mode === 'sticky';
276
280
  // Use prop value if provided, otherwise fall back to context value
277
- const hasTransition = hasTransitionProp ?? layoutContext.hasTransition;
281
+ const hasTransition = hasTransitionProp ?? layoutActions.hasTransition;
278
282
  const combinedRef = useCombinedRefs(ref);
279
283
  const prevProvidedSizeRef = useRef(providedSize);
280
284
  const isHorizontal = side === 'left' || side === 'right';
@@ -303,7 +307,7 @@ function LayoutPanel(props, ref) {
303
307
  const finalStyles = useMemo(() => mergeStyles(styles, contentPadding != null ? { '$content-padding': contentPadding } : null, extractedStyles), [extractedStyles, contentPadding, styles]);
304
308
  // Clamp size to min/max constraints
305
309
  const clampValue = useCallback((value) => clampSize(value, minSize, maxSize), [minSize, maxSize]);
306
- const setContextDragging = layoutContext.setDragging;
310
+ const setContextDragging = layoutActions.setDragging;
307
311
  const { moveProps } = useMove({
308
312
  onMoveStart() {
309
313
  if (!isResizable)
@@ -361,7 +365,8 @@ function LayoutPanel(props, ref) {
361
365
  const effectivePanelSize = isOpen && mode === 'default' ? size : 0;
362
366
  const effectiveInsetSize = Math.round(effectivePanelSize +
363
367
  (isResizable && effectivePanelSize > 0 ? RESIZABLE_INSET_OFFSET : 0));
364
- const { registerPanel, unregisterPanel, updatePanelSize, isReady } = layoutContext;
368
+ const { registerPanel, unregisterPanel, updatePanelSize } = layoutActions;
369
+ const { isReady } = layoutState;
365
370
  // Track the last reported size to prevent unnecessary updates
366
371
  const lastSizeRef = useRef(effectiveInsetSize);
367
372
  // Register on mount, unregister on unmount
@@ -391,7 +396,7 @@ function LayoutPanel(props, ref) {
391
396
  }
392
397
  }, [isDismissable, handleOpenChange]);
393
398
  // Register overlay panel with Layout context for coordinated dismissal
394
- const { registerOverlayPanel } = layoutContext;
399
+ const { registerOverlayPanel } = layoutActions;
395
400
  useEffect(() => {
396
401
  // Only register if in overlay mode, open, and dismissable
397
402
  if (isOverlayMode && isOpen && isDismissable) {
@@ -459,18 +464,23 @@ function LayoutPanel(props, ref) {
459
464
  'has-transition': hasTransition && isReady,
460
465
  }, moveProps: moveProps, style: panelStyle, onDoubleClick: handleResetSize }))] }));
461
466
  };
462
- // Dialog mode
467
+ // Dialog mode - uses its own portal via DialogContainer
463
468
  if (isDialogMode) {
464
469
  return (_jsx(DialogContainer, { isOpen: dialogOpen, isDismissable: isDismissable, onDismiss: () => handleDialogOpenChange(false), ...dialogProps, children: _jsx(Dialog, { isDismissable: false, children: _jsx(LayoutPanelContext.Provider, { value: dialogPanelContextValue, children: _jsx(LayoutContextReset, { children: children }) }) }) }));
465
470
  }
466
- // Panel with transition
471
+ // Wait for portal container to be ready before rendering
472
+ if (!layoutRefs.isPanelContainerReady) {
473
+ return null;
474
+ }
475
+ const portalContainer = layoutRefs.panelContainerRef.current;
476
+ // Panel with transition - portal to panel container
467
477
  if (hasTransition) {
468
- return (_jsx(DisplayTransition, { isShown: isOpen, animateOnMount: false, children: ({ isShown, ref: transitionRef }) => renderPanelContent(!isShown, transitionRef) }));
478
+ return createPortal(_jsx(DisplayTransition, { isShown: isOpen, animateOnMount: false, children: ({ isShown, ref: transitionRef }) => renderPanelContent(!isShown, transitionRef) }), portalContainer);
469
479
  }
470
- // Simple panel (no transition)
480
+ // Simple panel (no transition) - portal to panel container
471
481
  if (!isOpen)
472
482
  return null;
473
- return renderPanelContent(false);
483
+ return createPortal(renderPanelContent(false), portalContainer);
474
484
  }
475
485
  const _LayoutPanel = forwardRef(LayoutPanel);
476
486
  _LayoutPanel.displayName = 'Layout.Panel';
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,13 +1,15 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
8
  import { useCallback, useEffect, useRef, useState, } from 'react';
9
9
  const MIN_HANDLE_SIZE = 20;
10
10
  const SCROLL_VISIBILITY_DURATION = 1000;
11
+ // Threshold to prevent overflow oscillation at boundary
12
+ const OVERFLOW_THRESHOLD = 2;
11
13
  export function useTinyScrollbar(ref, enabled) {
12
14
  const [scrollState, setScrollState] = useState({
13
15
  hasOverflowY: false,
@@ -21,20 +23,37 @@ export function useTinyScrollbar(ref, enabled) {
21
23
  });
22
24
  const [isScrolling, setIsScrolling] = useState(false);
23
25
  const scrollTimeoutRef = useRef(null);
26
+ const resizeFrameRef = useRef(null);
24
27
  const updateScrollState = useCallback(() => {
25
28
  const element = ref.current;
26
29
  if (!element)
27
30
  return;
28
31
  const { scrollTop, scrollLeft, scrollHeight, scrollWidth, clientHeight, clientWidth, } = element;
29
- setScrollState({
30
- hasOverflowY: scrollHeight > clientHeight,
31
- hasOverflowX: scrollWidth > clientWidth,
32
- scrollTop,
33
- scrollLeft,
34
- scrollHeight,
35
- scrollWidth,
36
- clientHeight,
37
- clientWidth,
32
+ // Use threshold to prevent oscillation at overflow boundary
33
+ const hasOverflowY = scrollHeight > clientHeight + OVERFLOW_THRESHOLD;
34
+ const hasOverflowX = scrollWidth > clientWidth + OVERFLOW_THRESHOLD;
35
+ setScrollState((prev) => {
36
+ // Only update if values actually changed to prevent unnecessary re-renders
37
+ if (prev.hasOverflowY === hasOverflowY &&
38
+ prev.hasOverflowX === hasOverflowX &&
39
+ prev.scrollTop === scrollTop &&
40
+ prev.scrollLeft === scrollLeft &&
41
+ prev.scrollHeight === scrollHeight &&
42
+ prev.scrollWidth === scrollWidth &&
43
+ prev.clientHeight === clientHeight &&
44
+ prev.clientWidth === clientWidth) {
45
+ return prev; // Return same reference to skip re-render
46
+ }
47
+ return {
48
+ hasOverflowY,
49
+ hasOverflowX,
50
+ scrollTop,
51
+ scrollLeft,
52
+ scrollHeight,
53
+ scrollWidth,
54
+ clientHeight,
55
+ clientWidth,
56
+ };
38
57
  });
39
58
  }, [ref]);
40
59
  useEffect(() => {
@@ -69,15 +88,19 @@ export function useTinyScrollbar(ref, enabled) {
69
88
  element.addEventListener('scroll', handleScroll, { passive: true });
70
89
  element.addEventListener('mouseenter', handleMouseEnter);
71
90
  // ResizeObserver for content size changes
91
+ // Uses requestAnimationFrame to coalesce updates and prevent cascading events
72
92
  const resizeObserver = new ResizeObserver(() => {
73
- updateScrollState();
74
- showScrollbarBriefly();
93
+ if (resizeFrameRef.current) {
94
+ cancelAnimationFrame(resizeFrameRef.current);
95
+ }
96
+ resizeFrameRef.current = requestAnimationFrame(() => {
97
+ updateScrollState();
98
+ showScrollbarBriefly();
99
+ });
75
100
  });
76
101
  resizeObserver.observe(element);
77
- // Observe children for size changes
78
- Array.from(element.children).forEach((child) => {
79
- resizeObserver.observe(child);
80
- });
102
+ // Note: We intentionally don't observe children to prevent
103
+ // cascading resize events in nested layouts
81
104
  return () => {
82
105
  element.removeEventListener('scroll', handleScroll);
83
106
  element.removeEventListener('mouseenter', handleMouseEnter);
@@ -85,6 +108,9 @@ export function useTinyScrollbar(ref, enabled) {
85
108
  if (scrollTimeoutRef.current) {
86
109
  clearTimeout(scrollTimeoutRef.current);
87
110
  }
111
+ if (resizeFrameRef.current) {
112
+ cancelAnimationFrame(resizeFrameRef.current);
113
+ }
88
114
  };
89
115
  }, [enabled, ref, updateScrollState]);
90
116
  // Calculate vertical handle position and size
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -19,7 +19,7 @@ import { LayoutPanel } from './LayoutPanel.js';
19
19
  import { LayoutPanelHeader } from './LayoutPanelHeader.js';
20
20
  import { LayoutToolbar } from './LayoutToolbar.js';
21
21
  export { GridLayout } from './GridLayout.js';
22
- export { LayoutContext, LayoutPanelContext, useLayoutContext, useLayoutPanelContext, } from './LayoutContext.js';
22
+ export { LayoutActionsContext, LayoutStateContext, LayoutRefsContext, LayoutPanelContext, LayoutContextReset, useLayoutActionsContext, useLayoutStateContext, useLayoutRefsContext, useLayoutPanelContext, useLayoutContext, } from './LayoutContext.js';
23
23
  const Layout = Object.assign(LayoutBase, {
24
24
  Toolbar: LayoutToolbar,
25
25
  Header: LayoutHeader,
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.107.0
4
+ * @cube-dev/ui-kit v0.108.1
5
5
  * Released under the MIT license.
6
6
  */
7
7