@cube-dev/ui-kit 0.194.0 → 0.195.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 (602) hide show
  1. package/dist/CHANGELOG.md +28 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +1 -1
  18. package/dist/components/actions/Button/Button.js +2 -2
  19. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  20. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  21. package/dist/components/actions/ButtonSplit/context.js +1 -1
  22. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  23. package/dist/components/actions/CommandMenu/styled.js +1 -1
  24. package/dist/components/actions/ItemAction/ItemAction.js +2 -2
  25. package/dist/components/actions/ItemActionContext.js +1 -1
  26. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuItem.js +1 -1
  32. package/dist/components/actions/Menu/MenuSection.js +1 -1
  33. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  36. package/dist/components/actions/Menu/context.js +1 -1
  37. package/dist/components/actions/Menu/styled.js +1 -1
  38. package/dist/components/actions/actions-run.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 +2 -2
  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.d.ts +30 -30
  52. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  53. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  54. package/dist/components/content/Divider.js +1 -1
  55. package/dist/components/content/Footer.js +1 -1
  56. package/dist/components/content/Header.js +1 -1
  57. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  58. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  59. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  60. package/dist/components/content/Item/Item.js +3 -3
  61. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  62. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  63. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  64. package/dist/components/content/Layout/GridLayout.js +1 -1
  65. package/dist/components/content/Layout/Layout.js +1 -1
  66. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  67. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  68. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  69. package/dist/components/content/Layout/LayoutContent.js +1 -1
  70. package/dist/components/content/Layout/LayoutContext.js +1 -1
  71. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  72. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  73. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  74. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  75. package/dist/components/content/Layout/LayoutPane.d.ts +5 -1
  76. package/dist/components/content/Layout/LayoutPane.js +325 -148
  77. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  78. package/dist/components/content/Layout/LayoutPanel.js +4 -3
  79. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  80. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  81. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  82. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  83. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  84. package/dist/components/content/Layout/index.js +1 -1
  85. package/dist/components/content/Layout/utils.js +1 -1
  86. package/dist/components/content/Paragraph.js +1 -1
  87. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  88. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  89. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  90. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  91. package/dist/components/content/Result/Result.js +1 -1
  92. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  93. package/dist/components/content/Tag/Tag.js +1 -1
  94. package/dist/components/content/Text.d.ts +57 -57
  95. package/dist/components/content/Text.js +61 -77
  96. package/dist/components/content/Text.js.map +1 -1
  97. package/dist/components/content/TextItem/TextItem.js +158 -29
  98. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  99. package/dist/components/content/Title.js +1 -1
  100. package/dist/components/content/Tree/Tree.js +1 -1
  101. package/dist/components/content/Tree/TreeNode.js +1 -1
  102. package/dist/components/content/Tree/styled.js +1 -1
  103. package/dist/components/content/Tree/tree-index.js +1 -1
  104. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  105. package/dist/components/content/Tree/use-load-data.js +1 -1
  106. package/dist/components/content/highlightText.js +1 -1
  107. package/dist/components/content/use-auto-tooltip.js +3 -2
  108. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  109. package/dist/components/data/DataTable/DataTable.js +1 -1
  110. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  111. package/dist/components/data/ItemTable/ItemTableBulkBar.js +2 -2
  112. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  113. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  114. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  115. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  116. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  117. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  118. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  119. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  120. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  121. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  122. package/dist/components/data/TableBase/RowCollection.js +1 -1
  123. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  124. package/dist/components/data/TableBase/TableRow.js +1 -1
  125. package/dist/components/data/TableBase/TableView.js +1 -1
  126. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  127. package/dist/components/data/TableBase/column-header.js +89 -25
  128. package/dist/components/data/TableBase/column-header.js.map +1 -1
  129. package/dist/components/data/TableBase/column-menu.js +1 -1
  130. package/dist/components/data/TableBase/column-styles.js +1 -1
  131. package/dist/components/data/TableBase/column-tint.js +1 -1
  132. package/dist/components/data/TableBase/row-menu.js +1 -1
  133. package/dist/components/data/TableBase/styled.js +1 -1
  134. package/dist/components/data/TableBase/table-tree.js +1 -1
  135. package/dist/components/data/TableBase/types.js +1 -1
  136. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  137. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  138. package/dist/components/data/TableBase/use-column-order.js +1 -1
  139. package/dist/components/data/TableBase/use-column-window.js +1 -1
  140. package/dist/components/data/TableBase/use-container-width.js +1 -1
  141. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  142. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  143. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  144. package/dist/components/data/TableBase/use-table-search.js +1 -1
  145. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  146. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  147. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  148. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  149. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  150. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  151. package/dist/components/fields/Checkbox/Checkbox.js +27 -16
  152. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  153. package/dist/components/fields/Checkbox/CheckboxGroup.d.ts +1 -1
  154. package/dist/components/fields/Checkbox/CheckboxGroup.js +2 -2
  155. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  156. package/dist/components/fields/Checkbox/context.js +1 -1
  157. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  158. package/dist/components/fields/ColorPicker/ColorPicker.js +2 -2
  159. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  160. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  161. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  162. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  163. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  164. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  165. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  166. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  167. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  168. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  169. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  170. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  171. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  172. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  173. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  174. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  175. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  176. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  177. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  178. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  179. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  180. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  181. package/dist/components/fields/DatePicker/period.js +1 -1
  182. package/dist/components/fields/DatePicker/props.js +1 -1
  183. package/dist/components/fields/DatePicker/utils.js +1 -1
  184. package/dist/components/fields/FileInput/FileInput.js +1 -1
  185. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  186. package/dist/components/fields/FilterPicker/FilterPicker.js +2 -2
  187. package/dist/components/fields/Input/Input.js +1 -1
  188. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  189. package/dist/components/fields/ListBox/ListBox.js +1 -1
  190. package/dist/components/fields/ListBox/optionId.js +1 -1
  191. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  192. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  193. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  194. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  195. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  196. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  197. package/dist/components/fields/Picker/Picker.js +2 -2
  198. package/dist/components/fields/RadioGroup/Radio.d.ts +36 -32
  199. package/dist/components/fields/RadioGroup/Radio.js +2 -2
  200. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  201. package/dist/components/fields/RadioGroup/context.js +1 -1
  202. package/dist/components/fields/SearchComboBox/SearchComboBox.js +6 -1
  203. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  204. package/dist/components/fields/SearchInput/SearchInput.js +6 -1
  205. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  206. package/dist/components/fields/Select/Select.js +2 -2
  207. package/dist/components/fields/Slider/Gradation.js +1 -1
  208. package/dist/components/fields/Slider/HueSlider.js +1 -1
  209. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  210. package/dist/components/fields/Slider/Slider.js +1 -1
  211. package/dist/components/fields/Slider/SliderBase.js +1 -1
  212. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  213. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  214. package/dist/components/fields/Slider/elements.js +1 -1
  215. package/dist/components/fields/Slider/index.js +1 -1
  216. package/dist/components/fields/Switch/Switch.js +101 -101
  217. package/dist/components/fields/Switch/Switch.js.map +1 -1
  218. package/dist/components/fields/TagInput/TagInput.js +335 -329
  219. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  220. package/dist/components/fields/TagInput/TagList.js +1 -1
  221. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  222. package/dist/components/fields/TagInput/useTagError.js +1 -1
  223. package/dist/components/fields/TextArea/TextArea.js +1 -1
  224. package/dist/components/fields/TextInput/TextInput.js +1 -1
  225. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  226. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  227. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  228. package/dist/components/fields/TriggerActions.js +1 -1
  229. package/dist/components/fields/color/ColorPanel.js +1 -1
  230. package/dist/components/fields/color/channels.js +1 -1
  231. package/dist/components/fields/color/color.js +1 -1
  232. package/dist/components/fields/color/context.js +1 -1
  233. package/dist/components/form/FieldWrapper/FieldWrapper.js +10 -9
  234. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  235. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  236. package/dist/components/form/Form/Field.js +1 -1
  237. package/dist/components/form/Form/Form.js +1 -1
  238. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  239. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  240. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  241. package/dist/components/form/Form/SubmitError.js +1 -1
  242. package/dist/components/form/Form/backend.js +1 -1
  243. package/dist/components/form/Form/index.js +1 -1
  244. package/dist/components/form/Form/modern/actions.js +1 -1
  245. package/dist/components/form/Form/modern/context.js +1 -1
  246. package/dist/components/form/Form/modern/controller.js +1 -1
  247. package/dist/components/form/Form/modern/field-binding.js +1 -1
  248. package/dist/components/form/Form/modern/field.js +1 -1
  249. package/dist/components/form/Form/modern/react.js +1 -1
  250. package/dist/components/form/Form/modern/store.js +1 -1
  251. package/dist/components/form/Form/modern/validation.js +1 -1
  252. package/dist/components/form/Form/modern/values.js +1 -1
  253. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  254. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  255. package/dist/components/form/Form/use-field/use-field-props.js +47 -23
  256. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  257. package/dist/components/form/Form/use-field/use-field.js +1 -1
  258. package/dist/components/form/Form/use-form.js +1 -1
  259. package/dist/components/form/Form/validation.js +1 -1
  260. package/dist/components/form/Label.js +1 -1
  261. package/dist/components/form/field-chrome.js +45 -0
  262. package/dist/components/form/field-chrome.js.map +1 -0
  263. package/dist/components/form/index.d.ts +1 -1
  264. package/dist/components/form/legacy-tooltip.js +1 -1
  265. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  266. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  267. package/dist/components/form/validation/use-validation-props.js +1 -1
  268. package/dist/components/form/wrapper.d.ts +15 -3
  269. package/dist/components/form/wrapper.js +16 -5
  270. package/dist/components/form/wrapper.js.map +1 -1
  271. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  272. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  273. package/dist/components/layout/Flex.js +1 -1
  274. package/dist/components/layout/Flow.js +1 -1
  275. package/dist/components/layout/Grid.js +1 -1
  276. package/dist/components/layout/Panel.js +1 -1
  277. package/dist/components/layout/Prefix.js +1 -1
  278. package/dist/components/layout/ResizablePanel.js +1 -1
  279. package/dist/components/layout/Space.js +1 -1
  280. package/dist/components/layout/Suffix.js +1 -1
  281. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  282. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  283. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  284. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  285. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  286. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  287. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  288. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  289. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  290. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  291. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  292. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  293. package/dist/components/navigation/Tabs/styled.js +1 -1
  294. package/dist/components/navigation/Tabs/types.js +1 -1
  295. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  296. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  297. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  298. package/dist/components/other/Calendar/Calendar.js +1 -1
  299. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  300. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  301. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  302. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  303. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  304. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  305. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  306. package/dist/components/other/Calendar/styled.js +1 -1
  307. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  308. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  309. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  310. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.d.ts +15 -4
  311. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +83 -14
  312. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
  313. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  314. package/dist/components/overlays/AlertDialog/types.d.ts +2 -1
  315. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  316. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  317. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  318. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  319. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  320. package/dist/components/overlays/Dialog/context.js +1 -1
  321. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  322. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  323. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  324. package/dist/components/overlays/Modal/Modal.js +1 -1
  325. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  326. package/dist/components/overlays/Modal/Overlay.js +1 -1
  327. package/dist/components/overlays/Modal/Popover.js +1 -1
  328. package/dist/components/overlays/Modal/Tray.js +1 -1
  329. package/dist/components/overlays/Modal/Underlay.js +1 -1
  330. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  331. package/dist/components/overlays/Notifications/Notification.js +1 -1
  332. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  333. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  334. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  335. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  336. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  337. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  338. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +2 -2
  339. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  340. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  341. package/dist/components/overlays/Notifications/index.js +1 -1
  342. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  343. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  344. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  345. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  346. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  347. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  348. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  349. package/dist/components/overlays/Toast/index.js +1 -1
  350. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  351. package/dist/components/overlays/Toast/useToast.js +1 -1
  352. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  353. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  354. package/dist/components/overlays/Tooltip/TooltipTrigger.js +95 -100
  355. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  356. package/dist/components/overlays/Tooltip/context.js +1 -1
  357. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  358. package/dist/components/portal/Portal.js +1 -1
  359. package/dist/components/portal/PortalProvider.js +1 -1
  360. package/dist/components/portal/usePortal.js +1 -1
  361. package/dist/components/shared/DraggableCollection.js +1 -1
  362. package/dist/components/shared/InvalidIcon.js +1 -1
  363. package/dist/components/shared/ValidIcon.js +1 -1
  364. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  365. package/dist/components/status/Spin/Cube.js +1 -1
  366. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  367. package/dist/components/status/Spin/Spin.js +1 -1
  368. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  369. package/dist/data/item-themes.js +1 -1
  370. package/dist/data/themes.js +1 -1
  371. package/dist/eslint-plugin/defaults.generated.js +1 -1
  372. package/dist/eslint-plugin/index.js +1 -1
  373. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  374. package/dist/i18n/I18nProvider.js +1 -1
  375. package/dist/i18n/createFormatter.js +1 -1
  376. package/dist/i18n/index.js +1 -1
  377. package/dist/i18n/instance.js +1 -1
  378. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  379. package/dist/i18n/locales/en-US/uikit.js +1 -1
  380. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  381. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  382. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  383. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  384. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  385. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  386. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  387. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  388. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  389. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  390. package/dist/i18n/locales.js +1 -1
  391. package/dist/i18n/namespace.js +1 -1
  392. package/dist/i18n/useFormatter.js +1 -1
  393. package/dist/i18n/useI18n.js +1 -1
  394. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  395. package/dist/icons/AdjustmentsIcon.js +1 -1
  396. package/dist/icons/AiIcon.js +1 -1
  397. package/dist/icons/AreaChartIcon.js +1 -1
  398. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  399. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  400. package/dist/icons/BackwardIcon.js +1 -1
  401. package/dist/icons/BarChartIcon.js +1 -1
  402. package/dist/icons/BellFilledIcon.js +1 -1
  403. package/dist/icons/BellIcon.js +1 -1
  404. package/dist/icons/BooleanIcon.js +1 -1
  405. package/dist/icons/CalendarEditIcon.js +1 -1
  406. package/dist/icons/CalendarIcon.js +1 -1
  407. package/dist/icons/CaretDownIcon.js +1 -1
  408. package/dist/icons/CaretUpIcon.js +1 -1
  409. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  410. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  411. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  412. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  413. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  414. package/dist/icons/ChartBarLineIcon.js +1 -1
  415. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  416. package/dist/icons/ChartBarStackedIcon.js +1 -1
  417. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  418. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  419. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  420. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  421. package/dist/icons/ChartBubbleIcon.js +1 -1
  422. package/dist/icons/ChartDonut2Icon.js +1 -1
  423. package/dist/icons/ChartFunnelIcon.js +1 -1
  424. package/dist/icons/ChartHeatmapIcon.js +1 -1
  425. package/dist/icons/ChartKPIIcon.js +1 -1
  426. package/dist/icons/ChartPie2Icon.js +1 -1
  427. package/dist/icons/ChartScatterIcon.js +1 -1
  428. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  429. package/dist/icons/CheckCircleIcon.js +1 -1
  430. package/dist/icons/CheckIcon.js +1 -1
  431. package/dist/icons/CircleFilledIcon.js +1 -1
  432. package/dist/icons/ClearIcon.js +1 -1
  433. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  434. package/dist/icons/CloseCircleIcon.js +1 -1
  435. package/dist/icons/CloseIcon.js +1 -1
  436. package/dist/icons/CodeIcon.js +1 -1
  437. package/dist/icons/ColumnTotalIcon.js +1 -1
  438. package/dist/icons/CopyIcon.js +1 -1
  439. package/dist/icons/CountIcon.js +1 -1
  440. package/dist/icons/CubeIcon.js +1 -1
  441. package/dist/icons/CubePauseIcon.js +1 -1
  442. package/dist/icons/CubePlayIcon.js +1 -1
  443. package/dist/icons/CurrencyDollarIcon.js +1 -1
  444. package/dist/icons/DangerIcon.js +1 -1
  445. package/dist/icons/DashboardIcon.js +1 -1
  446. package/dist/icons/DatabaseIcon.js +1 -1
  447. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  448. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  449. package/dist/icons/DirectionIcon.js +1 -1
  450. package/dist/icons/DonutIcon.js +1 -1
  451. package/dist/icons/DownIcon.js +1 -1
  452. package/dist/icons/EditIcon.js +1 -1
  453. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  454. package/dist/icons/ExclamationCircleIcon.js +1 -1
  455. package/dist/icons/ExclamationIcon.js +1 -1
  456. package/dist/icons/EyeIcon.js +1 -1
  457. package/dist/icons/EyeInvisibleIcon.js +1 -1
  458. package/dist/icons/FilterIcon.js +1 -1
  459. package/dist/icons/FolderFilledIcon.js +1 -1
  460. package/dist/icons/FolderIcon.js +1 -1
  461. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  462. package/dist/icons/FolderOpenIcon.js +1 -1
  463. package/dist/icons/ForwardIcon.js +1 -1
  464. package/dist/icons/GripVerticalIcon.js +1 -1
  465. package/dist/icons/HierarchyIcon.js +1 -1
  466. package/dist/icons/HierarchyOpenIcon.js +1 -1
  467. package/dist/icons/Icon.js +1 -1
  468. package/dist/icons/InfoCircleIcon.js +1 -1
  469. package/dist/icons/InfoIcon.js +1 -1
  470. package/dist/icons/KeyIcon.js +1 -1
  471. package/dist/icons/LeftIcon.js +1 -1
  472. package/dist/icons/LineChartIcon.js +1 -1
  473. package/dist/icons/LoadingIcon.js +1 -1
  474. package/dist/icons/LockFilledIcon.js +1 -1
  475. package/dist/icons/LockIcon.js +1 -1
  476. package/dist/icons/MoreIcon.js +1 -1
  477. package/dist/icons/NotAllowedIcon.js +1 -1
  478. package/dist/icons/Number123Icon.js +1 -1
  479. package/dist/icons/NumberIcon.js +1 -1
  480. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  481. package/dist/icons/PauseCircleIcon.js +1 -1
  482. package/dist/icons/PauseIcon.js +1 -1
  483. package/dist/icons/PercentageIcon.js +1 -1
  484. package/dist/icons/PieChartIcon.js +1 -1
  485. package/dist/icons/PipetteIcon.js +1 -1
  486. package/dist/icons/PlayCircleIcon.js +1 -1
  487. package/dist/icons/PlayIcon.js +1 -1
  488. package/dist/icons/PlusIcon.js +1 -1
  489. package/dist/icons/ProgressBarIcon.js +1 -1
  490. package/dist/icons/ReloadIcon.js +1 -1
  491. package/dist/icons/ReportIcon.js +1 -1
  492. package/dist/icons/ReturnIcon.js +1 -1
  493. package/dist/icons/RightIcon.js +1 -1
  494. package/dist/icons/RowTotalsIcon.js +1 -1
  495. package/dist/icons/SchemeIcon.js +1 -1
  496. package/dist/icons/SearchIcon.js +1 -1
  497. package/dist/icons/SemanticQueryIcon.js +1 -1
  498. package/dist/icons/SettingsIcon.js +1 -1
  499. package/dist/icons/ShieldFilledIcon.js +1 -1
  500. package/dist/icons/ShieldIcon.js +1 -1
  501. package/dist/icons/SlashIcon.js +1 -1
  502. package/dist/icons/SparklesIcon.js +1 -1
  503. package/dist/icons/SqlIcon.js +1 -1
  504. package/dist/icons/StatsIcon.js +1 -1
  505. package/dist/icons/StopIcon.js +1 -1
  506. package/dist/icons/StringIcon.js +1 -1
  507. package/dist/icons/SubtotalsIcon.js +1 -1
  508. package/dist/icons/SwitchIcon.js +1 -1
  509. package/dist/icons/TableIcon.js +1 -1
  510. package/dist/icons/ThumbsDownIcon.js +1 -1
  511. package/dist/icons/ThumbsUpIcon.js +1 -1
  512. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  513. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  514. package/dist/icons/ThunderboltIcon.js +1 -1
  515. package/dist/icons/TimeIcon.js +1 -1
  516. package/dist/icons/TrashIcon.js +1 -1
  517. package/dist/icons/UnlockIcon.js +1 -1
  518. package/dist/icons/UpIcon.js +1 -1
  519. package/dist/icons/UserGroupIcon.js +1 -1
  520. package/dist/icons/UserIcon.js +1 -1
  521. package/dist/icons/UserLockIcon.js +1 -1
  522. package/dist/icons/ViewIcon.js +1 -1
  523. package/dist/icons/WarningFilledIcon.js +1 -1
  524. package/dist/icons/WarningIcon.js +1 -1
  525. package/dist/icons/wrap-icon.js +1 -1
  526. package/dist/index.d.ts +2 -2
  527. package/dist/index.js +8 -8
  528. package/dist/probe/canonicalize.js +1 -1
  529. package/dist/probe/css.js +1 -1
  530. package/dist/probe/index.js +1 -1
  531. package/dist/provider.js +1 -1
  532. package/dist/providers/TrackingProvider.js +1 -1
  533. package/dist/providers/navigation-url.js +1 -1
  534. package/dist/providers/navigationAdapter.default.js +1 -1
  535. package/dist/providers/use-navigation.js +1 -1
  536. package/dist/shared/form.d.ts +16 -2
  537. package/dist/tokens/all-tokens.js +1 -1
  538. package/dist/tokens/base.js +1 -1
  539. package/dist/tokens/color-seed.js +1 -1
  540. package/dist/tokens/color-theme.js +1 -1
  541. package/dist/tokens/colors.js +1 -1
  542. package/dist/tokens/layout.js +1 -1
  543. package/dist/tokens/lazy-styles.js +1 -1
  544. package/dist/tokens/legacy-color.js +1 -1
  545. package/dist/tokens/palette-config.js +1 -1
  546. package/dist/tokens/palette.js +1 -1
  547. package/dist/tokens/resolve.js +1 -1
  548. package/dist/tokens/shadows.js +1 -1
  549. package/dist/tokens/sizes.js +1 -1
  550. package/dist/tokens/spacing.js +1 -1
  551. package/dist/tokens/typography.js +1 -1
  552. package/dist/utils/ResizeSensor.js +1 -1
  553. package/dist/utils/colors.js +1 -1
  554. package/dist/utils/dotize.js +1 -1
  555. package/dist/utils/is-dev-env.js +1 -1
  556. package/dist/utils/modules.js +1 -1
  557. package/dist/utils/promise.js +1 -1
  558. package/dist/utils/raf.js +1 -1
  559. package/dist/utils/random.js +1 -1
  560. package/dist/utils/range.js +1 -1
  561. package/dist/utils/react/RenderCache.js +1 -1
  562. package/dist/utils/react/Slots.js +1 -1
  563. package/dist/utils/react/chain.js +1 -1
  564. package/dist/utils/react/disabledProps.js +1 -1
  565. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  566. package/dist/utils/react/index.js +4 -4
  567. package/dist/utils/react/interactions.js +1 -1
  568. package/dist/utils/react/isTextOnly.js +1 -1
  569. package/dist/utils/react/mapProps.js +1 -1
  570. package/dist/utils/react/mergeProps.js +1 -1
  571. package/dist/utils/react/nullableValue.js +1 -1
  572. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  573. package/dist/utils/react/programmaticFocus.js +1 -1
  574. package/dist/utils/react/resolveIcon.js +1 -1
  575. package/dist/utils/react/sharedStore.js +1 -1
  576. package/dist/utils/react/useBufferedValue.js +1 -1
  577. package/dist/utils/react/useCombinedRefs.js +1 -1
  578. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  579. package/dist/utils/react/useEventBus.js +1 -1
  580. package/dist/utils/react/useId.js +1 -1
  581. package/dist/utils/react/useIsDarwin.js +1 -1
  582. package/dist/utils/react/useKeySymbols.js +1 -1
  583. package/dist/utils/react/useLayoutEffect.js +1 -1
  584. package/dist/utils/react/useLocalStorage.js +1 -1
  585. package/dist/utils/react/useMergeStyles.js +1 -1
  586. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  587. package/dist/utils/react/usePopoverSync.js +1 -1
  588. package/dist/utils/react/useQaProps.js +1 -1
  589. package/dist/utils/react/useScheme.js +1 -1
  590. package/dist/utils/react/useViewportSize.js +1 -1
  591. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  592. package/dist/utils/selection.js +1 -1
  593. package/dist/utils/styles.js +1 -1
  594. package/dist/utils/tree.js +1 -1
  595. package/dist/utils/warnings.js +1 -1
  596. package/dist/version.js +2 -2
  597. package/docs/FieldProperties.md +4 -2
  598. package/docs/components/content/Layout.md +32 -2
  599. package/docs/components/fields/Checkbox.md +4 -3
  600. package/docs/components/fields/Switch.md +4 -3
  601. package/docs/components/overlays/AlertDialog.md +38 -4
  602. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutPane.js","names":["BaseProps","ContainerStyleProps","filterBaseProps","INNER_STYLES","mergeStyles","OUTER_STYLES","Styles","tasty","ForwardedRef","forwardRef","HTMLAttributes","ReactNode","useCallback","useEffect","useRef","useState","useFocusRing","useHover","useMove","useDebouncedValue","useI18n","mergeProps","useCombinedRefs","extractStyles","useTinyScrollbar","ScrollbarType","LayoutContextReset","clampSize","HANDLER_WIDTH","HANDLER_RESERVED","PaneElement","as","qa","styles","container","position","display","gridColumns","gridRows","placeContent","placeItems","placeSelf","flexShrink","flexGrow","width","height","boxSizing","Inner","$","flow","padding","paddingRight","paddingBottom","overflow","scrollbar","ScrollbarV","right","top","radius","fill","opacity","transition","pointerEvents","ScrollbarH","bottom","left","ResizeHandler","cursor","disabled","outline","Drag","gap","border","transform","outlineOffset","DragPart","ResizeEdge","CubeLayoutPaneProps","resizeEdge","isResizable","size","defaultSize","minSize","maxSize","onSizeChange","children","innerRef","HTMLDivElement","innerProps","PaneResizeHandlerProps","edge","isDisabled","moveProps","ReturnType","onDoubleClick","onHoverChange","isHovered","onFocusChange","isFocused","PaneResizeHandler","props","_c","t","t0","hoverProps","focusProps","isFocusVisible","isHorizontal","t1","t2","t3","tabIndex","undefined","role","t4","t5","LayoutPane","ref","providedSize","mods","innerRefProp","otherProps","combinedRef","internalInnerRef","combinedInnerRef","prevProvidedSizeRef","isDragging","setIsDragging","isHandlerHovered","setIsHandlerHovered","isHandlerFocused","setIsHandlerFocused","debouncedHandlerHovered","initialSize","setSize","outerStyles","innerStyles","isTinyScrollbar","Symbol","for","handleVStyle","handleHStyle","hasOverflowY","hasOverflowX","isScrolling","t6","value","clampValue","t7","onMoveStart","onMove","e","delta","pointerType","step","shiftKey","rawDelta","deltaX","deltaY","currentSize","onMoveEnd","currentSize_0","finalSize","Math","round","t8","t9","current","t10","resetSize","parseInt","clampedSize","handleResetSize","t11","scrollbarStyle","t12","t13","hovered","scrolling","handlerHovered","focused","drag","paneMods","finalStyles","t14","t15","t16","t17","paneStyle","T0","t18","eventProps","t19","t20","t21","t22","t23","t24","_LayoutPane","displayName"],"sources":["../../../../src/components/content/Layout/LayoutPane.tsx"],"sourcesContent":["import {\n BaseProps,\n ContainerStyleProps,\n filterBaseProps,\n INNER_STYLES,\n mergeStyles,\n OUTER_STYLES,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { useFocusRing, useHover, useMove } from 'react-aria';\n\nimport { useDebouncedValue } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { mergeProps, useCombinedRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { useTinyScrollbar } from './hooks/useTinyScrollbar';\nimport { ScrollbarType } from './LayoutContent';\nimport { LayoutContextReset } from './LayoutContext';\nimport { clampSize } from './utils';\n\n// Handler dimensions\nconst HANDLER_WIDTH = 9; // Interactive area\nconst HANDLER_RESERVED = 5; // Space reserved in Inner padding\n\nconst PaneElement = tasty({\n as: 'div',\n qa: 'LayoutPane',\n styles: {\n container: 'pane / inline-size',\n position: 'relative',\n display: 'grid',\n gridColumns: '1sf',\n gridRows: '1sf',\n placeContent: 'stretch',\n placeItems: 'stretch',\n placeSelf: 'stretch',\n flexShrink: 0,\n flexGrow: 0,\n // Size is set via CSS custom property for performance during drag\n width: {\n '': 'auto',\n 'edge=right': '2x $pane-size $pane-size',\n },\n height: {\n '': '2x $pane-size $pane-size',\n 'edge=right': 'auto',\n },\n boxSizing: 'content-box',\n\n Inner: {\n $: '>',\n display: 'flex',\n flow: 'column',\n padding: '($content-padding, 1x)',\n // Reserve space for handler on resize edge\n paddingRight: {\n '': '($content-padding, 1x)',\n 'edge=right': `calc(($content-padding, 1x) + ${HANDLER_RESERVED}px)`,\n },\n paddingBottom: {\n '': '($content-padding, 1x)',\n 'edge=bottom': `calc(($content-padding, 1x) + ${HANDLER_RESERVED}px)`,\n },\n overflow: {\n '': 'auto',\n 'scrollbar=none': 'clip',\n },\n placeSelf: 'stretch',\n scrollbar: {\n '': 'thin',\n 'scrollbar=tiny | scrollbar=none': 'none',\n },\n\n '$layout-border-size': '0',\n },\n\n // Custom scrollbar handles (when scrollbar=\"tiny\")\n ScrollbarV: {\n position: 'absolute',\n right: {\n '': '1px',\n 'edge=right': `${HANDLER_RESERVED + 1}px`,\n },\n top: '$scrollbar-v-top',\n width: '1ow',\n height: '$scrollbar-v-height',\n radius: 'round',\n fill: '#dark.35',\n opacity: {\n '': 0,\n '(focused | scrolling) & scrollbar=tiny': 1,\n },\n transition: 'opacity 0.15s',\n pointerEvents: 'none',\n },\n\n ScrollbarH: {\n $: '>',\n position: 'absolute',\n bottom: {\n '': '1px',\n 'edge=bottom': `${HANDLER_RESERVED + 1}px`,\n },\n left: '$scrollbar-h-left',\n height: '1ow',\n width: '$scrollbar-h-width',\n radius: 'round',\n fill: '#dark.35',\n opacity: {\n '': 0,\n '(focused | scrolling) & scrollbar=tiny': 1,\n },\n transition: 'opacity 0.15s',\n pointerEvents: 'none',\n },\n\n // Compact resize handler - only drag dots\n ResizeHandler: {\n position: 'absolute',\n // Size: 9px interactive area\n width: {\n '': '100%',\n 'edge=right': `${HANDLER_WIDTH}px`,\n },\n height: {\n '': `${HANDLER_WIDTH}px`,\n 'edge=right': '100%',\n },\n // Position at edge, centered on the reserved space boundary\n right: {\n '': 'initial',\n 'edge=right': `${(HANDLER_RESERVED - HANDLER_WIDTH) / 2}px`,\n },\n bottom: {\n '': `${(HANDLER_RESERVED - HANDLER_WIDTH) / 2}px`,\n 'edge=right': 'initial',\n },\n top: {\n '': 'initial',\n 'edge=right': 0,\n },\n left: {\n '': 0,\n 'edge=right': 'initial',\n },\n cursor: {\n '': 'row-resize',\n 'edge=right': 'col-resize',\n disabled: 'not-allowed',\n },\n padding: 0,\n outline: 0,\n boxSizing: 'border-box',\n transition: 'theme',\n },\n\n Drag: {\n display: 'grid',\n gap: '2bw',\n border: 0,\n flow: {\n '': 'row',\n 'edge=right': 'column',\n },\n gridColumns: {\n '': '3px 3px 3px 3px 3px',\n 'edge=right': 'auto',\n },\n gridRows: {\n '': 'auto',\n 'edge=right': '3px 3px 3px 3px 3px',\n },\n width: {\n '': 'auto',\n 'edge=right': '3px',\n },\n height: {\n '': '3px',\n 'edge=right': 'auto',\n },\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n transition: 'theme',\n radius: 'round',\n outline: {\n '': '0',\n 'focused | drag': '1bw #primary-text',\n },\n outlineOffset: 1,\n },\n\n DragPart: {\n radius: true,\n fill: {\n '': '#dark-03',\n 'handlerHovered | drag | focused': '#primary-text',\n disabled: '#disabled-surface-text',\n },\n },\n },\n});\n\nexport type ResizeEdge = 'right' | 'bottom';\n\nexport interface CubeLayoutPaneProps extends BaseProps, ContainerStyleProps {\n /** Edge where resize handler appears */\n resizeEdge?: ResizeEdge;\n /** Enable resize functionality */\n isResizable?: boolean;\n /** Controlled size (width for right edge, height for bottom edge) */\n size?: number | string;\n /** Default size for uncontrolled state */\n defaultSize?: number | string;\n /** Minimum size constraint */\n minSize?: number | string;\n /** Maximum size constraint */\n maxSize?: number | string;\n /** Size change callback */\n onSizeChange?: (size: number) => void;\n /** Scrollbar style */\n scrollbar?: ScrollbarType;\n /** Custom styles */\n styles?: Styles;\n children?: ReactNode;\n /** Ref for the inner content element */\n innerRef?: ForwardedRef<HTMLDivElement>;\n /** Props to spread on the Inner sub-element */\n innerProps?: HTMLAttributes<HTMLDivElement>;\n}\n\ninterface PaneResizeHandlerProps {\n edge: ResizeEdge;\n isDisabled?: boolean;\n moveProps: ReturnType<typeof useMove>['moveProps'];\n onDoubleClick?: () => void;\n onHoverChange?: (isHovered: boolean) => void;\n onFocusChange?: (isFocused: boolean) => void;\n}\n\nfunction PaneResizeHandler(props: PaneResizeHandlerProps) {\n const {\n edge,\n isDisabled,\n moveProps,\n onDoubleClick,\n onHoverChange,\n onFocusChange,\n } = props;\n const { t } = useI18n();\n const { hoverProps, isHovered } = useHover({\n onHoverChange,\n });\n const { focusProps, isFocusVisible } = useFocusRing();\n const isHorizontal = edge === 'right';\n\n // Notify parent of focus changes\n useEffect(() => {\n onFocusChange?.(isFocusVisible);\n }, [isFocusVisible, onFocusChange]);\n\n return (\n <div\n data-element=\"ResizeHandler\"\n {...mergeProps(hoverProps, focusProps, isDisabled ? {} : moveProps, {\n tabIndex: isDisabled ? undefined : 0,\n role: 'separator',\n 'aria-orientation': isHorizontal ? 'vertical' : 'horizontal',\n 'aria-label':\n edge === 'right'\n ? t('layout.resizePaneRight', 'Resize pane right')\n : t('layout.resizePaneBottom', 'Resize pane bottom'),\n onDoubleClick: isDisabled ? undefined : onDoubleClick,\n })}\n >\n {!isDisabled && (\n <div data-element=\"Drag\">\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n </div>\n )}\n </div>\n );\n}\n\nfunction LayoutPane(\n props: CubeLayoutPaneProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n resizeEdge = 'right',\n isResizable = false,\n size: providedSize,\n defaultSize = 200,\n minSize,\n maxSize,\n onSizeChange,\n scrollbar = 'thin',\n styles,\n mods,\n children,\n innerRef: innerRefProp,\n innerProps,\n ...otherProps\n } = props;\n\n const combinedRef = useCombinedRefs(ref);\n const internalInnerRef = useRef<HTMLDivElement>(null);\n const combinedInnerRef = useCombinedRefs(innerRefProp, internalInnerRef);\n const prevProvidedSizeRef = useRef(providedSize);\n const isHorizontal = resizeEdge === 'right';\n\n // Resize state\n const [isDragging, setIsDragging] = useState(false);\n const [isHandlerHovered, setIsHandlerHovered] = useState(false);\n const [isHandlerFocused, setIsHandlerFocused] = useState(false);\n const debouncedHandlerHovered = useDebouncedValue(isHandlerHovered, 150);\n const [size, setSize] = useState<number>(() => {\n const initialSize =\n typeof providedSize === 'number'\n ? providedSize\n : typeof defaultSize === 'number'\n ? defaultSize\n : 200;\n\n return clampSize(initialSize, minSize, maxSize);\n });\n\n // Extract outer wrapper styles and inner content styles\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n const innerStyles = extractStyles(otherProps, INNER_STYLES);\n\n const isTinyScrollbar = scrollbar === 'tiny';\n const { hoverProps, isHovered } = useHover({});\n\n const {\n handleVStyle,\n handleHStyle,\n hasOverflowY,\n hasOverflowX,\n isScrolling,\n } = useTinyScrollbar(internalInnerRef, isTinyScrollbar);\n\n // Clamp size to min/max constraints\n const clampValue = useCallback(\n (value: number) => clampSize(value, minSize, maxSize),\n [minSize, maxSize],\n );\n\n const { moveProps } = useMove({\n onMoveStart() {\n if (!isResizable) return;\n setIsDragging(true);\n },\n onMove(e) {\n if (!isResizable) return;\n\n let delta: number;\n\n if (e.pointerType === 'keyboard') {\n // Keyboard resize: 10px per step, 50px with Shift\n const step = e.shiftKey ? 50 : 10;\n const rawDelta = isHorizontal ? e.deltaX : e.deltaY;\n delta = rawDelta * step;\n } else {\n // Pointer resize: use exact delta values\n delta = isHorizontal ? e.deltaX : e.deltaY;\n }\n\n setSize((currentSize) => clampValue(currentSize + delta));\n },\n onMoveEnd() {\n setIsDragging(false);\n // Round to integer on release and notify parent\n setSize((currentSize) => {\n const finalSize = Math.round(clampValue(currentSize));\n onSizeChange?.(finalSize);\n return finalSize;\n });\n },\n });\n\n // Sync provided size with internal state (only when providedSize actually changes)\n // This prevents resetting size when only isDragging changes (which would cause a flash)\n useEffect(() => {\n if (prevProvidedSizeRef.current !== providedSize) {\n prevProvidedSizeRef.current = providedSize;\n if (typeof providedSize === 'number' && !isDragging) {\n setSize(clampValue(providedSize));\n }\n }\n }, [providedSize, isDragging, clampValue]);\n\n // Reset to default size on double-click\n const handleResetSize = () => {\n const resetSize =\n typeof defaultSize === 'number' ? defaultSize : parseInt(defaultSize, 10);\n const clampedSize = clampValue(resetSize || 200);\n setSize(clampedSize);\n onSizeChange?.(clampedSize);\n };\n\n const scrollbarStyle = isTinyScrollbar\n ? { ...handleVStyle, ...handleHStyle }\n : {};\n\n const paneMods = {\n scrollbar,\n hovered: isHovered,\n scrolling: isScrolling,\n handlerHovered: debouncedHandlerHovered,\n focused: isHandlerFocused,\n disabled: !isResizable,\n edge: resizeEdge,\n drag: isDragging,\n ...mods,\n };\n\n // Merge styles: outer styles to root, inner styles to Inner element\n // Size is NOT included here - it's set via CSS custom property in paneStyle for performance\n const finalStyles = mergeStyles(\n styles,\n outerStyles,\n innerStyles ? { Inner: innerStyles } : null,\n );\n\n // Size is set via CSS custom property for performance during drag\n // This avoids expensive style recalculation on every mouse move\n const paneStyle = {\n ...scrollbarStyle,\n '--pane-size': `${size}px`,\n '--min-size': typeof minSize === 'number' ? `${minSize}px` : minSize,\n '--max-size': typeof maxSize === 'number' ? `${maxSize}px` : maxSize,\n };\n\n return (\n <PaneElement\n ref={combinedRef}\n {...filterBaseProps(otherProps, { eventProps: true })}\n {...hoverProps}\n mods={paneMods}\n styles={finalStyles}\n style={paneStyle}\n >\n <div ref={combinedInnerRef} data-element=\"Inner\" {...innerProps}>\n <LayoutContextReset>{children}</LayoutContextReset>\n </div>\n {isTinyScrollbar && hasOverflowY && <div data-element=\"ScrollbarV\" />}\n {isTinyScrollbar && hasOverflowX && <div data-element=\"ScrollbarH\" />}\n {isResizable && (\n <PaneResizeHandler\n edge={resizeEdge}\n isDisabled={!isResizable}\n moveProps={moveProps}\n onDoubleClick={handleResetSize}\n onHoverChange={setIsHandlerHovered}\n onFocusChange={setIsHandlerFocused}\n />\n )}\n </PaneElement>\n );\n}\n\nconst _LayoutPane = forwardRef(LayoutPane);\n\n_LayoutPane.displayName = 'Layout.Pane';\n\nexport { _LayoutPane as LayoutPane };\n"],"mappings":"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"}
1
+ {"version":3,"file":"LayoutPane.js","names":["BaseProps","ContainerStyleProps","filterBaseProps","INNER_STYLES","mergeStyles","OUTER_STYLES","Styles","tasty","ForwardedRef","forwardRef","HTMLAttributes","ReactNode","useCallback","useEffect","useEffectEvent","useRef","useState","useFocusRing","useHover","useMove","useDebouncedValue","useI18n","mergeProps","useCombinedRefs","extractStyles","useTinyScrollbar","ScrollbarType","LayoutContextReset","clampSize","HANDLER_WIDTH","HANDLER_RESERVED","mountedPanes","WeakMap","Element","isHorizontal","adoptSize","drawn","setPaneSize","pane","HTMLElement","size","style","setProperty","getDrawnSize","element","getClientRects","length","NaN","getComputedStyle","parseFloat","width","height","givesWay","flexShrink","getOverflow","container","rect","getBoundingClientRect","scale","offsetWidth","offsetHeight","available","clientWidth","paddingLeft","paddingRight","clientHeight","paddingTop","paddingBottom","used","count","item","Array","from","children","itemStyle","display","position","itemRect","marginLeft","marginRight","marginTop","marginBottom","gap","columnGap","rowGap","Math","max","getPanesBeside","parentElement","flexDirection","startsWith","flexWrap","HTMLCollectionOf","filter","get","Number","isFinite","PaneMove","target","start","ownSize","pointerType","beside","besideSizes","held","maxOverflow","undoMove","move","forEach","index","removeProperty","PaneElement","as","qa","styles","gridColumns","gridRows","placeContent","placeItems","placeSelf","flexGrow","boxSizing","Inner","$","flow","padding","overflow","scrollbar","ScrollbarV","right","top","radius","fill","opacity","transition","pointerEvents","ScrollbarH","bottom","left","ResizeHandler","cursor","disabled","outline","Drag","border","transform","outlineOffset","DragPart","ResizeEdge","CubeLayoutPaneProps","resizeEdge","isResizable","defaultSize","minSize","maxSize","onSizeChange","innerRef","HTMLDivElement","innerProps","PaneResizeHandlerProps","edge","isDisabled","moveProps","ReturnType","onDoubleClick","onHoverChange","isHovered","onFocusChange","isFocused","PaneResizeHandler","props","_c","t","t0","hoverProps","focusProps","isFocusVisible","t1","t2","t3","tabIndex","undefined","role","t4","t5","LayoutPane","ref","providedSize","mods","innerRefProp","otherProps","combinedRef","internalInnerRef","combinedInnerRef","prevProvidedSizeRef","isDragging","setIsDragging","isHandlerHovered","setIsHandlerHovered","isHandlerFocused","setIsHandlerFocused","debouncedHandlerHovered","initialSize","setSize","outerStyles","innerStyles","isTinyScrollbar","Symbol","for","handleVStyle","handleHStyle","hasOverflowY","hasOverflowX","isScrolling","t6","value","clampValue","moveRef","t7","rounded","round","abs","getPropertyValue","map","_temp","side","paneStart","sizes","item_0","item_1","item_2","_temp2","beginMove","t8","move_0","finalSize","pane_0","current","sizes_0","item_4","item_5","index_0","endMove","t9","onMoveStart","onMove","e","delta","step","shiftKey","rawDelta","deltaX","deltaY","pane_1","move_1","next","excess","onMoveEnd","e_0","move_2","t10","drawn_0","t11","pane_2","set","drawn_1","delete","t12","t13","t14","t15","resetSize","parseInt","clampedSize","handleResetSize","t16","scrollbarStyle","t17","t18","hovered","scrolling","handlerHovered","focused","drag","paneMods","finalStyles","t19","t20","t21","paneStyle","T0","t22","eventProps","t23","t24","t25","t26","t27","t28","item_3","_LayoutPane","displayName"],"sources":["../../../../src/components/content/Layout/LayoutPane.tsx"],"sourcesContent":["import {\n BaseProps,\n ContainerStyleProps,\n filterBaseProps,\n INNER_STYLES,\n mergeStyles,\n OUTER_STYLES,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n useCallback,\n useEffect,\n useEffectEvent,\n useRef,\n useState,\n} from 'react';\nimport { useFocusRing, useHover, useMove } from 'react-aria';\n\nimport { useDebouncedValue } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { mergeProps, useCombinedRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { useTinyScrollbar } from './hooks/useTinyScrollbar';\nimport { ScrollbarType } from './LayoutContent';\nimport { LayoutContextReset } from './LayoutContext';\nimport { clampSize } from './utils';\n\n// Handler dimensions\nconst HANDLER_WIDTH = 9; // Interactive area\nconst HANDLER_RESERVED = 5; // Space reserved in Inner padding\n\n/** Mounted panes by element: the axis each resizes along, and how it takes a size. */\nconst mountedPanes = new WeakMap<\n Element,\n { isHorizontal: boolean; adoptSize: (drawn: number) => void }\n>();\n\nfunction setPaneSize(pane: HTMLElement, size: number) {\n pane.style.setProperty('--pane-size', `${size}px`);\n}\n\n/** The size an element is drawn at, or `NaN` when it is not drawn. */\nfunction getDrawnSize(element: HTMLElement, isHorizontal: boolean) {\n // Hidden, an element reports the size it is set to.\n if (!element.getClientRects().length) return NaN;\n\n const style = getComputedStyle(element);\n\n return parseFloat(isHorizontal ? style.width : style.height);\n}\n\nfunction givesWay(element: Element) {\n return parseFloat(getComputedStyle(element).flexShrink) > 0;\n}\n\n/** How far a flex container's items run past its content box. */\nfunction getOverflow(container: HTMLElement, isHorizontal: boolean) {\n const style = getComputedStyle(container);\n const rect = container.getBoundingClientRect();\n // Items are measured as drawn, which a zoomed or scaled ancestor makes\n // differ from the container's own layout size.\n const scale =\n (isHorizontal\n ? rect.width / container.offsetWidth\n : rect.height / container.offsetHeight) || 1;\n const available = isHorizontal\n ? container.clientWidth -\n parseFloat(style.paddingLeft) -\n parseFloat(style.paddingRight)\n : container.clientHeight -\n parseFloat(style.paddingTop) -\n parseFloat(style.paddingBottom);\n let used = 0;\n let count = 0;\n\n for (const item of Array.from(container.children)) {\n const itemStyle = getComputedStyle(item);\n\n if (\n itemStyle.display === 'none' ||\n itemStyle.position === 'absolute' ||\n itemStyle.position === 'fixed'\n ) {\n continue;\n }\n\n const itemRect = item.getBoundingClientRect();\n\n used += isHorizontal\n ? itemRect.width / scale +\n parseFloat(itemStyle.marginLeft) +\n parseFloat(itemStyle.marginRight)\n : itemRect.height / scale +\n parseFloat(itemStyle.marginTop) +\n parseFloat(itemStyle.marginBottom);\n count += 1;\n }\n\n const gap = parseFloat(isHorizontal ? style.columnGap : style.rowGap) || 0;\n\n return used + gap * Math.max(count - 1, 0) - available;\n}\n\n/**\n * The other drawn panes that give way along the same axis, when this one gives\n * way in a non-wrapping flex container along it.\n */\nfunction getPanesBeside(pane: HTMLElement, isHorizontal: boolean) {\n const container = pane.parentElement;\n\n if (!container || !givesWay(pane)) return [];\n\n const style = getComputedStyle(container);\n\n if (\n (style.display !== 'flex' && style.display !== 'inline-flex') ||\n style.flexDirection.startsWith('row') !== isHorizontal ||\n style.flexWrap !== 'nowrap'\n ) {\n return [];\n }\n\n return Array.from(container.children as HTMLCollectionOf<HTMLElement>).filter(\n (item) =>\n item !== pane &&\n mountedPanes.get(item)?.isHorizontal === isHorizontal &&\n givesWay(item) &&\n Number.isFinite(getDrawnSize(item, isHorizontal)),\n );\n}\n\ninterface PaneMove {\n /** Where the pointer or keys ask the pane to be. */\n target: number;\n /** The size so far, ahead of the rendered one. */\n size: number;\n /** The size the move begins at. */\n start: number;\n /** The pane's own size before the move. */\n ownSize: string;\n /** What began the move: a pointer or the keyboard. */\n pointerType: string;\n /** The flex container the pane gives way in beside other panes, or `null`. */\n container: HTMLElement | null;\n /** The panes beside it, sized as drawn for the move. */\n beside: HTMLElement[];\n /** Their own sizes before the move. */\n besideSizes: string[];\n /** The panes that hold their size until the move ends. */\n held: HTMLElement[];\n /** How far the container's items may run past it, as they did at the start. */\n maxOverflow: number;\n}\n\n/**\n * Gives the panes beside a move back their own sizes and lets go of every\n * held pane.\n */\nfunction undoMove(move: PaneMove) {\n move.beside.forEach((item, index) =>\n item.style.setProperty('--pane-size', move.besideSizes[index]),\n );\n move.held.forEach((item) => item.style.removeProperty('flex-shrink'));\n}\n\nconst PaneElement = tasty({\n as: 'div',\n qa: 'LayoutPane',\n styles: {\n container: 'pane / inline-size',\n position: 'relative',\n display: 'grid',\n gridColumns: '1sf',\n gridRows: '1sf',\n placeContent: 'stretch',\n placeItems: 'stretch',\n placeSelf: 'stretch',\n // Holds its size. With `flexShrink={1}` it gives way down to its minimum\n // when a flex container runs short.\n flexShrink: 0,\n flexGrow: 0,\n // Size is set via CSS custom property for performance during drag\n width: {\n '': 'auto',\n 'edge=right': '($pane-min-size, 2x) $pane-size $pane-size',\n },\n height: {\n '': '($pane-min-size, 2x) $pane-size $pane-size',\n 'edge=right': 'auto',\n },\n boxSizing: 'content-box',\n\n Inner: {\n $: '>',\n display: 'flex',\n flow: 'column',\n padding: '($content-padding, 1x)',\n // Reserve space for handler on resize edge\n paddingRight: {\n '': '($content-padding, 1x)',\n 'edge=right': `calc(($content-padding, 1x) + ${HANDLER_RESERVED}px)`,\n },\n paddingBottom: {\n '': '($content-padding, 1x)',\n 'edge=bottom': `calc(($content-padding, 1x) + ${HANDLER_RESERVED}px)`,\n },\n overflow: {\n '': 'auto',\n 'scrollbar=none': 'clip',\n },\n placeSelf: 'stretch',\n scrollbar: {\n '': 'thin',\n 'scrollbar=tiny | scrollbar=none': 'none',\n },\n\n '$layout-border-size': '0',\n },\n\n // Custom scrollbar handles (when scrollbar=\"tiny\")\n ScrollbarV: {\n position: 'absolute',\n right: {\n '': '1px',\n 'edge=right': `${HANDLER_RESERVED + 1}px`,\n },\n top: '$scrollbar-v-top',\n width: '1ow',\n height: '$scrollbar-v-height',\n radius: 'round',\n fill: '#dark.35',\n opacity: {\n '': 0,\n '(focused | scrolling) & scrollbar=tiny': 1,\n },\n transition: 'opacity 0.15s',\n pointerEvents: 'none',\n },\n\n ScrollbarH: {\n $: '>',\n position: 'absolute',\n bottom: {\n '': '1px',\n 'edge=bottom': `${HANDLER_RESERVED + 1}px`,\n },\n left: '$scrollbar-h-left',\n height: '1ow',\n width: '$scrollbar-h-width',\n radius: 'round',\n fill: '#dark.35',\n opacity: {\n '': 0,\n '(focused | scrolling) & scrollbar=tiny': 1,\n },\n transition: 'opacity 0.15s',\n pointerEvents: 'none',\n },\n\n // Compact resize handler - only drag dots\n ResizeHandler: {\n position: 'absolute',\n // Size: 9px interactive area\n width: {\n '': '100%',\n 'edge=right': `${HANDLER_WIDTH}px`,\n },\n height: {\n '': `${HANDLER_WIDTH}px`,\n 'edge=right': '100%',\n },\n // Position at edge, centered on the reserved space boundary\n right: {\n '': 'initial',\n 'edge=right': `${(HANDLER_RESERVED - HANDLER_WIDTH) / 2}px`,\n },\n bottom: {\n '': `${(HANDLER_RESERVED - HANDLER_WIDTH) / 2}px`,\n 'edge=right': 'initial',\n },\n top: {\n '': 'initial',\n 'edge=right': 0,\n },\n left: {\n '': 0,\n 'edge=right': 'initial',\n },\n cursor: {\n '': 'row-resize',\n 'edge=right': 'col-resize',\n disabled: 'not-allowed',\n },\n padding: 0,\n outline: 0,\n boxSizing: 'border-box',\n transition: 'theme',\n },\n\n Drag: {\n display: 'grid',\n gap: '2bw',\n border: 0,\n flow: {\n '': 'row',\n 'edge=right': 'column',\n },\n gridColumns: {\n '': '3px 3px 3px 3px 3px',\n 'edge=right': 'auto',\n },\n gridRows: {\n '': 'auto',\n 'edge=right': '3px 3px 3px 3px 3px',\n },\n width: {\n '': 'auto',\n 'edge=right': '3px',\n },\n height: {\n '': '3px',\n 'edge=right': 'auto',\n },\n position: 'absolute',\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n transition: 'theme',\n radius: 'round',\n outline: {\n '': '0',\n 'focused | drag': '1bw #primary-text',\n },\n outlineOffset: 1,\n },\n\n DragPart: {\n radius: true,\n fill: {\n '': '#dark-03',\n 'handlerHovered | drag | focused': '#primary-text',\n disabled: '#disabled-surface-text',\n },\n },\n },\n});\n\nexport type ResizeEdge = 'right' | 'bottom';\n\nexport interface CubeLayoutPaneProps extends BaseProps, ContainerStyleProps {\n /** Edge where resize handler appears */\n resizeEdge?: ResizeEdge;\n /** Enable resize functionality */\n isResizable?: boolean;\n /** Controlled size (width for right edge, height for bottom edge) */\n size?: number | string;\n /** Default size for uncontrolled state */\n defaultSize?: number | string;\n /** Minimum size constraint */\n minSize?: number | string;\n /** Maximum size constraint */\n maxSize?: number | string;\n /**\n * Size change callback. With `flexShrink={1}`, also called when another\n * such pane beside it is resized and this pane keeps the size it is drawn\n * at.\n */\n onSizeChange?: (size: number) => void;\n /** Scrollbar style */\n scrollbar?: ScrollbarType;\n /** Custom styles */\n styles?: Styles;\n children?: ReactNode;\n /** Ref for the inner content element */\n innerRef?: ForwardedRef<HTMLDivElement>;\n /** Props to spread on the Inner sub-element */\n innerProps?: HTMLAttributes<HTMLDivElement>;\n}\n\ninterface PaneResizeHandlerProps {\n edge: ResizeEdge;\n isDisabled?: boolean;\n moveProps: ReturnType<typeof useMove>['moveProps'];\n onDoubleClick?: () => void;\n onHoverChange?: (isHovered: boolean) => void;\n onFocusChange?: (isFocused: boolean) => void;\n}\n\nfunction PaneResizeHandler(props: PaneResizeHandlerProps) {\n const {\n edge,\n isDisabled,\n moveProps,\n onDoubleClick,\n onHoverChange,\n onFocusChange,\n } = props;\n const { t } = useI18n();\n const { hoverProps, isHovered } = useHover({\n onHoverChange,\n });\n const { focusProps, isFocusVisible } = useFocusRing();\n const isHorizontal = edge === 'right';\n\n // Notify parent of focus changes\n useEffect(() => {\n onFocusChange?.(isFocusVisible);\n }, [isFocusVisible, onFocusChange]);\n\n return (\n <div\n data-element=\"ResizeHandler\"\n {...mergeProps(hoverProps, focusProps, isDisabled ? {} : moveProps, {\n tabIndex: isDisabled ? undefined : 0,\n role: 'separator',\n 'aria-orientation': isHorizontal ? 'vertical' : 'horizontal',\n 'aria-label':\n edge === 'right'\n ? t('layout.resizePaneRight', 'Resize pane right')\n : t('layout.resizePaneBottom', 'Resize pane bottom'),\n onDoubleClick: isDisabled ? undefined : onDoubleClick,\n })}\n >\n {!isDisabled && (\n <div data-element=\"Drag\">\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n </div>\n )}\n </div>\n );\n}\n\nfunction LayoutPane(\n props: CubeLayoutPaneProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n resizeEdge = 'right',\n isResizable = false,\n size: providedSize,\n defaultSize = 200,\n minSize,\n maxSize,\n onSizeChange,\n scrollbar = 'thin',\n styles,\n mods,\n children,\n innerRef: innerRefProp,\n innerProps,\n ...otherProps\n } = props;\n\n const combinedRef = useCombinedRefs(ref);\n const internalInnerRef = useRef<HTMLDivElement>(null);\n const combinedInnerRef = useCombinedRefs(innerRefProp, internalInnerRef);\n const prevProvidedSizeRef = useRef(providedSize);\n const isHorizontal = resizeEdge === 'right';\n\n // Resize state\n const [isDragging, setIsDragging] = useState(false);\n const [isHandlerHovered, setIsHandlerHovered] = useState(false);\n const [isHandlerFocused, setIsHandlerFocused] = useState(false);\n const debouncedHandlerHovered = useDebouncedValue(isHandlerHovered, 150);\n const [size, setSize] = useState<number>(() => {\n const initialSize =\n typeof providedSize === 'number'\n ? providedSize\n : typeof defaultSize === 'number'\n ? defaultSize\n : 200;\n\n return clampSize(initialSize, minSize, maxSize);\n });\n\n // Extract outer wrapper styles and inner content styles\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n const innerStyles = extractStyles(otherProps, INNER_STYLES);\n\n const isTinyScrollbar = scrollbar === 'tiny';\n const { hoverProps, isHovered } = useHover({});\n\n const {\n handleVStyle,\n handleHStyle,\n hasOverflowY,\n hasOverflowX,\n isScrolling,\n } = useTinyScrollbar(internalInnerRef, isTinyScrollbar);\n\n // Clamp size to min/max constraints\n const clampValue = useCallback(\n (value: number) => clampSize(value, minSize, maxSize),\n [minSize, maxSize],\n );\n\n const moveRef = useRef<PaneMove | null>(null);\n\n const beginMove = (pane: HTMLElement, pointerType: string): PaneMove => {\n const drawn = getDrawnSize(pane, isHorizontal);\n const beside = getPanesBeside(pane, isHorizontal);\n const rounded = Math.round(drawn);\n // Flex shrinking or a CSS minimum can draw the pane at another size than\n // `size`; resize from the one on screen, or the first moves do nothing.\n // Beside other panes the move begins exactly there, so nothing shifts.\n const start = beside.length\n ? drawn\n : Math.abs(rounded - size) >= 1\n ? rounded\n : size;\n const move: PaneMove = {\n target: start,\n size: start,\n start,\n ownSize: pane.style.getPropertyValue('--pane-size'),\n pointerType,\n container: beside.length ? pane.parentElement : null,\n beside,\n besideSizes: beside.map((item) =>\n item.style.getPropertyValue('--pane-size'),\n ),\n held: [],\n maxOverflow: 0,\n };\n\n // Beside other panes that give way, this one would hand them part of every\n // move: flex shares the room by size, and theirs are larger than drawn. So\n // they take the sizes they are drawn at, and this pane holds its size until\n // the move ends, as do the panes before its grip: the room comes from\n // beyond the grip. Keyboard moves start and end within one event, so this\n // goes to the DOM, not through a render. Every size is read before one is\n // written, as each write reflows the rest.\n if (move.container) {\n const side = isHorizontal ? 'left' : 'top';\n const paneStart = pane.getBoundingClientRect()[side];\n const sizes = beside.map((item) => getDrawnSize(item, isHorizontal));\n\n move.maxOverflow = Math.max(getOverflow(move.container, isHorizontal), 0);\n move.held = [\n pane,\n ...beside.filter(\n (item) => item.getBoundingClientRect()[side] < paneStart,\n ),\n ];\n beside.forEach((item, index) => setPaneSize(item, sizes[index]));\n move.held.forEach((item) => item.style.setProperty('flex-shrink', '0'));\n }\n\n return move;\n };\n\n const endMove = (move: PaneMove) => {\n // Round to integer when the move ends and notify parent\n const finalSize = Math.round(clampValue(move.size));\n const pane = combinedRef.current;\n\n if (move.container) {\n // A move that ends where it began, as a key pressed at a stop does,\n // leaves every pane as it found them.\n if (finalSize === Math.round(move.start)) {\n undoMove(move);\n pane.style.setProperty('--pane-size', move.ownSize);\n setSize(parseFloat(move.ownSize));\n\n return;\n }\n\n setPaneSize(pane, finalSize);\n\n // The panes beside it keep the sizes they are left at, read while the\n // panes still hold, before one is written. A pane left at its own size,\n // or hidden meanwhile, keeps its own.\n const sizes = move.beside.map((item) =>\n Math.round(getDrawnSize(item, isHorizontal)),\n );\n\n undoMove(move);\n move.beside.forEach((item, index) => {\n if (\n Number.isFinite(sizes[index]) &&\n sizes[index] !== Math.round(parseFloat(move.besideSizes[index]))\n ) {\n mountedPanes.get(item)?.adoptSize(sizes[index]);\n }\n });\n }\n\n setSize(finalSize);\n onSizeChange?.(finalSize);\n };\n\n const { moveProps } = useMove({\n onMoveStart() {\n if (!isResizable) return;\n setIsDragging(true);\n },\n onMove(e) {\n if (!isResizable) return;\n\n let delta: number;\n\n if (e.pointerType === 'keyboard') {\n // Keyboard resize: 10px per step, 50px with Shift\n const step = e.shiftKey ? 50 : 10;\n const rawDelta = isHorizontal ? e.deltaX : e.deltaY;\n delta = rawDelta * step;\n } else {\n // Pointer resize: use exact delta values\n delta = isHorizontal ? e.deltaX : e.deltaY;\n }\n\n // A move across the resize axis changes nothing.\n if (!delta) return;\n\n const pane = combinedRef.current;\n // An arrow key pressed during a drag joins it.\n const move = moveRef.current ?? beginMove(pane, e.pointerType);\n\n moveRef.current = move;\n move.target += delta;\n\n let next = clampValue(move.target);\n\n if (!move.container) {\n // On its own, the pane keeps no travel past its limits.\n move.target = next;\n } else {\n setPaneSize(pane, next);\n\n // Holding its size, the pane would push the items beyond its grip out\n // of the container once none of them can give way. It grows only into\n // the room it would have taken while giving way, and the target keeps\n // the travel past that, as flex did.\n if (next > move.size) {\n const excess =\n getOverflow(move.container, isHorizontal) - move.maxOverflow;\n\n if (excess > 0) {\n next = Math.max(next - excess, move.size);\n setPaneSize(pane, next);\n }\n }\n }\n\n move.size = next;\n setSize(next);\n },\n onMoveEnd(e) {\n const move = moveRef.current;\n\n // Beside other panes, a key pressed during a drag leaves the move to the\n // pointer. On its own, the pane reports at the key's end, and the drag\n // goes on as a new move, as before.\n if (move?.container && move.pointerType !== e.pointerType) return;\n\n moveRef.current = null;\n setIsDragging(false);\n\n if (move) endMove(move);\n },\n });\n\n const adoptSize = useEffectEvent((drawn: number) => {\n setPaneSize(combinedRef.current, drawn);\n setSize(drawn);\n onSizeChange?.(drawn);\n });\n\n useEffect(() => {\n const pane = combinedRef.current;\n\n mountedPanes.set(pane, {\n isHorizontal,\n adoptSize: (drawn) => adoptSize(drawn),\n });\n\n return () => {\n mountedPanes.delete(pane);\n\n // Unmounted or turned to the other axis mid-move, the pane gives the\n // panes beside it back.\n if (moveRef.current) undoMove(moveRef.current);\n\n moveRef.current = null;\n };\n }, [combinedRef, isHorizontal]);\n\n // Sync provided size with internal state (only when providedSize actually changes)\n // This prevents resetting size when only isDragging changes (which would cause a flash)\n useEffect(() => {\n if (prevProvidedSizeRef.current !== providedSize) {\n prevProvidedSizeRef.current = providedSize;\n if (typeof providedSize === 'number' && !isDragging) {\n setSize(clampValue(providedSize));\n }\n }\n }, [providedSize, isDragging, clampValue]);\n\n // Reset to default size on double-click\n const handleResetSize = () => {\n const resetSize =\n typeof defaultSize === 'number' ? defaultSize : parseInt(defaultSize, 10);\n const clampedSize = clampValue(resetSize || 200);\n setSize(clampedSize);\n onSizeChange?.(clampedSize);\n };\n\n const scrollbarStyle = isTinyScrollbar\n ? { ...handleVStyle, ...handleHStyle }\n : {};\n\n const paneMods = {\n scrollbar,\n hovered: isHovered,\n scrolling: isScrolling,\n handlerHovered: debouncedHandlerHovered,\n focused: isHandlerFocused,\n disabled: !isResizable,\n edge: resizeEdge,\n drag: isDragging,\n ...mods,\n };\n\n // Merge styles: outer styles to root, inner styles to Inner element\n // Size is NOT included here - it's set via CSS custom property in paneStyle for performance\n const finalStyles = mergeStyles(\n styles,\n outerStyles,\n innerStyles ? { Inner: innerStyles } : null,\n );\n\n // Size is set via CSS custom property for performance during drag\n // This avoids expensive style recalculation on every mouse move\n const paneStyle = {\n ...scrollbarStyle,\n '--pane-size': `${size}px`,\n // Reset rather than left unset: a custom property inherits, and an\n // enclosing pane's minimum is not this one's.\n '--pane-min-size':\n minSize == null\n ? 'initial'\n : typeof minSize === 'number'\n ? `${minSize}px`\n : minSize,\n };\n\n return (\n <PaneElement\n ref={combinedRef}\n {...filterBaseProps(otherProps, { eventProps: true })}\n {...hoverProps}\n mods={paneMods}\n styles={finalStyles}\n style={paneStyle}\n >\n <div ref={combinedInnerRef} data-element=\"Inner\" {...innerProps}>\n <LayoutContextReset>{children}</LayoutContextReset>\n </div>\n {isTinyScrollbar && hasOverflowY && <div data-element=\"ScrollbarV\" />}\n {isTinyScrollbar && hasOverflowX && <div data-element=\"ScrollbarH\" />}\n {isResizable && (\n <PaneResizeHandler\n edge={resizeEdge}\n isDisabled={!isResizable}\n moveProps={moveProps}\n onDoubleClick={handleResetSize}\n onHoverChange={setIsHandlerHovered}\n onFocusChange={setIsHandlerFocused}\n />\n )}\n </PaneElement>\n );\n}\n\nconst _LayoutPane = forwardRef(LayoutPane);\n\n_LayoutPane.displayName = 'Layout.Pane';\n\nexport { _LayoutPane as LayoutPane };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -15,8 +15,8 @@ import { c } from "react/compiler-runtime";
15
15
  import { CONTAINER_STYLES, filterBaseProps, mergeStyles, tasty } from "@tenphi/tasty";
16
16
  import { forwardRef, useCallback, useEffect, useEffectEvent, useLayoutEffect, useMemo, useRef, useState } from "react";
17
17
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
18
- import { useFocusRing, useHover, useMove } from "react-aria";
19
18
  import { createPortal } from "react-dom";
19
+ import { useFocusRing, useHover, useMove } from "react-aria";
20
20
 
21
21
  //#region src/components/content/Layout/LayoutPanel.tsx
22
22
  const HANDLER_WIDTH = 9;
@@ -66,8 +66,9 @@ const PanelElement = tasty({
66
66
  "side=bottom": "top"
67
67
  },
68
68
  fill: "#surface",
69
+ isolation: "isolate",
69
70
  transform: {
70
- "": "translateX(0) translateY(0)",
71
+ "": "none",
71
72
  "offscreen & side=left": "translateX(-100%)",
72
73
  "offscreen & side=right": "translateX(100%)",
73
74
  "offscreen & side=top": "translateY(-100%)",
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutPanel.js","names":["BaseProps","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","mergeStyles","Styles","tasty","ForwardedRef","forwardRef","HTMLAttributes","ReactNode","RefCallback","useCallback","useEffect","useEffectEvent","useLayoutEffect","useMemo","useRef","useState","useFocusRing","useHover","useMove","createPortal","useDebouncedValue","useI18n","mergeProps","useCombinedRefs","useLocalStorage","extractStyles","DisplayTransition","Dialog","CubeDialogContainerProps","DialogContainer","LayoutContextReset","LayoutPanelContext","Side","useLayoutActionsContext","useLayoutRefsContext","useLayoutStateContext","LayoutPanelTransition","clampSize","getOppositeSide","resolveCssSize","HANDLER_WIDTH","HANDLER_OFFSET","RESIZABLE_INSET_OFFSET","PanelElement","as","qa","styles","container","position","display","flow","overflow","boxSizing","top","right","bottom","left","width","height","border","fill","transform","transition","ResizeHandlerElement","horizontal","cursor","disabled","touchAction","padding","outline","Track","inset","outlineOffset","Drag","gap","gridColumns","gridRows","DragPart","radius","OverlayBackdrop","backdropFilter","opacity","visible","pointerEvents","ResizeHandlerProps","side","isDisabled","mods","Record","moveProps","ReturnType","style","onDoubleClick","ResizeHandler","props","$","_c","t","label","t0","Symbol","for","hoverProps","isHovered","focusProps","isFocusVisible","isHorizontal","localIsHovered","T0","t1","hovered","focused","tabIndex","undefined","role","t2","t3","t4","LayoutPanelMode","CubeLayoutPanelProps","mode","size","defaultSize","minSize","maxSize","isResizable","onSizeChange","isOpen","defaultIsOpen","onOpenChange","hasTransition","isDismissable","overlayStyles","isDialog","isDialogOpen","defaultIsDialogOpen","onDialogOpenChange","dialogProps","Omit","contentPadding","sizeStorageKey","children","matchesContainerSize","HTMLElement","dimension","offsetWidth","offsetHeight","LayoutPanel","ref","HTMLDivElement","layoutActions","layoutState","layoutRefs","Error","modeProp","providedSize","providedIsOpen","hasTransitionProp","providedIsDialogOpen","otherProps","isDialogMode","isOverlayMode","isStickyMode","combinedRef","prevProvidedSizeRef","containerWidth","containerHeight","minContentSize","containerDimension","oppositeSide","oppositePanelSize","panelSizes","ownInsetOffset","naturalMax","Math","max","Infinity","internalIsOpen","setInternalIsOpen","isTransitionActive","isPanelContainerReady","visualState","setVisualState","isShown","isPanelShown","internalIsDialogOpen","setInternalIsDialogOpen","dialogOpen","storedSize","setStoredSize","isDragging","setIsDragging","setSize","initialSize","extractedStyles","finalStyles","resolvedMax","trim","endsWith","effectiveMax","values","push","Number","isFinite","length","min","clampValue","value","setContextDragging","setDragging","onMoveStart","onMove","e","delta","pointerType","step","shiftKey","rawDelta","deltaX","deltaY","direction","currentSize","onMoveEnd","finalSize","round","current","panelContainerRef","parentElement","applyInlineBounds","prev","clamped","frame","requestAnimationFrame","cancelAnimationFrame","effectivePanelSize","effectiveInsetSize","registerPanel","unregisterPanel","updatePanelSize","isReady","lastSizeRef","handleOpenChange","newIsOpen","handleDismiss","registerOverlayPanel","unregister","handleDialogOpenChange","panelContextValue","dialogPanelContextValue","panelMods","drag","maxSizeCss","parts","join","panelStyle","panelRefCallback","node","transitionRef","handleResetSize","resetSize","parseInt","clampedSize","renderPanelContent","offscreen","showOverlay","eventProps","portalContainer","isExiting","_LayoutPanel","displayName"],"sources":["../../../../src/components/content/Layout/LayoutPanel.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n mergeStyles,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n RefCallback,\n useCallback,\n useEffect,\n useEffectEvent,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useFocusRing, useHover, useMove } from 'react-aria';\nimport { createPortal } from 'react-dom';\n\nimport { useDebouncedValue } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport {\n mergeProps,\n useCombinedRefs,\n useLocalStorage,\n} from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { DisplayTransition } from '../../helpers/DisplayTransition/DisplayTransition';\nimport { Dialog } from '../../overlays/Dialog';\nimport {\n CubeDialogContainerProps,\n DialogContainer,\n} from '../../overlays/Dialog/DialogContainer';\n\nimport {\n LayoutContextReset,\n LayoutPanelContext,\n Side,\n useLayoutActionsContext,\n useLayoutRefsContext,\n useLayoutStateContext,\n} from './LayoutContext';\nimport { LayoutPanelTransition } from './LayoutPanelTransition';\nimport { clampSize, getOppositeSide, resolveCssSize } from './utils';\n\n// Resize handler dimensions\nconst HANDLER_WIDTH = 9;\n// How far from panel edge to position handler's inner edge (centers the 3px track on the edge)\nconst HANDLER_OFFSET = 4;\n// Extra inset added for resizable panels (to accommodate handler grab area)\nconst RESIZABLE_INSET_OFFSET = 2;\n\nconst PanelElement = tasty({\n as: 'div',\n qa: 'LayoutPanel',\n styles: {\n container: 'panel / inline-size',\n position: 'absolute',\n display: 'flex',\n flow: 'column',\n overflow: 'hidden',\n boxSizing: 'border-box',\n\n '$content-padding': '1x',\n // Auto-border size for sub-components (panels are always vertical)\n '$layout-border-size': '1bw',\n\n // Position based on side prop\n top: {\n '': 0,\n 'side=bottom': 'initial',\n },\n right: {\n '': 0,\n 'side=left': 'initial',\n },\n bottom: {\n '': 0,\n 'side=top': 'initial',\n },\n left: {\n '': 0,\n 'side=right': 'initial',\n },\n\n // Size handling with CSS-level min/max clamping\n width: {\n '': '$min-size $panel-size $max-size',\n 'side=top | side=bottom': '100%',\n },\n height: {\n '': '100%',\n 'side=top | side=bottom': '$min-size $panel-size $max-size',\n },\n\n // Visual styling\n border: {\n '': false,\n 'side=left': 'right',\n 'side=right': 'left',\n 'side=top': 'bottom',\n 'side=bottom': 'top',\n },\n fill: '#surface',\n\n // Transition styles - offscreen mod controls slide animation\n transform: {\n '': 'translateX(0) translateY(0)',\n 'offscreen & side=left': 'translateX(-100%)',\n 'offscreen & side=right': 'translateX(100%)',\n 'offscreen & side=top': 'translateY(-100%)',\n 'offscreen & side=bottom': 'translateY(100%)',\n },\n transition: {\n '': 'none',\n 'has-transition': 'transform $transition ease-out',\n },\n },\n});\n\n// Handler is positioned as sibling to panel (in Fragment), relative to Layout\nconst ResizeHandlerElement = tasty({\n qa: 'PanelResizeHandler',\n styles: {\n position: 'absolute',\n\n // Handler size\n width: {\n '': '100%',\n horizontal: `${HANDLER_WIDTH}px`,\n 'disabled & horizontal': '1bw',\n },\n height: {\n '': `${HANDLER_WIDTH}px`,\n horizontal: '100%',\n 'disabled & !horizontal': '1bw',\n },\n\n // Position handler with direct offset (no centering needed)\n top: {\n '': 0,\n 'side=top': `calc($panel-size - ${HANDLER_OFFSET}px)`,\n 'side=bottom': 'initial',\n },\n bottom: {\n '': 0,\n 'side=bottom': `calc($panel-size - ${HANDLER_OFFSET}px)`,\n 'side=top': 'initial',\n },\n left: {\n '': 0,\n 'side=left': `calc($panel-size - ${HANDLER_OFFSET}px)`,\n 'side=right': 'initial',\n },\n right: {\n '': 0,\n 'side=right': `calc($panel-size - ${HANDLER_OFFSET}px)`,\n 'side=left': 'initial',\n },\n\n // Offscreen transforms only (no centering needed with direct offset positioning)\n transform: {\n '': 'translateX(0)',\n 'offscreen & side=left': `translateX(calc(-1 * $panel-size - ${HANDLER_WIDTH - HANDLER_OFFSET}px))`,\n 'offscreen & side=right': `translateX(calc($panel-size + ${HANDLER_WIDTH - HANDLER_OFFSET}px))`,\n 'offscreen & side=top': `translateY(calc(-1 * $panel-size - ${HANDLER_WIDTH - HANDLER_OFFSET}px))`,\n 'offscreen & side=bottom': `translateY(calc($panel-size + ${HANDLER_WIDTH - HANDLER_OFFSET}px))`,\n },\n\n cursor: {\n '': 'row-resize',\n horizontal: 'col-resize',\n disabled: 'not-allowed',\n },\n touchAction: {\n '': 'none',\n disabled: 'auto',\n },\n padding: 0,\n outline: 0,\n boxSizing: 'border-box',\n\n // Transition must match panel for synchronized animation\n transition: {\n '': 'theme',\n 'has-transition': 'transform $transition ease-out, theme',\n },\n\n Track: {\n width: {\n '': 'initial',\n horizontal: '3px',\n 'disabled & horizontal': '1px',\n },\n height: {\n '': '3px',\n horizontal: 'initial',\n 'disabled & !horizontal': '1px',\n },\n position: 'absolute',\n inset: {\n '': '3px 0',\n horizontal: '0 3px',\n disabled: '0 0',\n },\n fill: {\n '': '#border',\n '(hovered | drag | focused) & !disabled': '#purple-03',\n },\n border: 0,\n transition: 'theme',\n outline: {\n '': '1bw #primary-text.0',\n 'drag | focused': '1bw #primary-text',\n },\n outlineOffset: 1,\n },\n\n Drag: {\n display: 'grid',\n gap: '2bw',\n border: 0,\n flow: {\n '': 'row',\n horizontal: 'column',\n },\n gridColumns: {\n '': '3px 3px 3px 3px 3px',\n horizontal: 'auto',\n },\n gridRows: {\n '': 'auto',\n horizontal: '3px 3px 3px 3px 3px',\n },\n width: {\n '': 'auto',\n horizontal: '1px',\n },\n height: {\n '': '1px',\n horizontal: 'auto',\n },\n inset: {\n '': '4px 50% auto auto',\n horizontal: '50% 4px auto auto',\n },\n transform: {\n '': 'translate(-50%, 0)',\n horizontal: 'translate(0, -50%)',\n },\n position: 'absolute',\n transition: 'theme',\n },\n\n DragPart: {\n radius: true,\n fill: {\n '': '#dark-03',\n 'hovered | drag | focused': '#primary-text',\n disabled: '#disabled-surface-text',\n },\n },\n },\n});\n\n// Overlay backdrop for overlay mode - covers the content area behind the panel\nconst OverlayBackdrop = tasty({\n qa: 'PanelOverlay',\n styles: {\n position: 'absolute',\n inset: 0,\n // fill: '#white.2',\n backdropFilter: 'invert(.15)',\n cursor: 'pointer',\n opacity: {\n '': 0,\n visible: 1,\n },\n pointerEvents: {\n '': 'none',\n visible: 'auto',\n },\n transition: 'opacity .15s ease-out',\n },\n});\n\ninterface ResizeHandlerProps {\n side: Side;\n isDisabled?: boolean;\n mods?: Record<string, boolean>;\n moveProps: ReturnType<typeof useMove>['moveProps'];\n style?: Record<string, string | number | null | undefined>;\n onDoubleClick?: () => void;\n}\n\nfunction ResizeHandler(props: ResizeHandlerProps) {\n const { side, isDisabled, mods, moveProps, style, onDoubleClick } = props;\n const { t } = useI18n();\n // One key per side: a translated sentence can't take the side as a word.\n const label = {\n left: t('layout.resizeLeftPanel', 'Resize left panel'),\n top: t('layout.resizeTopPanel', 'Resize top panel'),\n right: t('layout.resizeRightPanel', 'Resize right panel'),\n bottom: t('layout.resizeBottomPanel', 'Resize bottom panel'),\n }[side];\n const { hoverProps, isHovered } = useHover({});\n const { focusProps, isFocusVisible } = useFocusRing();\n const isHorizontal = side === 'left' || side === 'right';\n const localIsHovered = useDebouncedValue(isHovered, 150);\n\n return (\n <ResizeHandlerElement\n {...mergeProps(hoverProps, focusProps, moveProps, {\n mods: {\n hovered: localIsHovered,\n horizontal: isHorizontal,\n disabled: isDisabled,\n focused: isFocusVisible,\n side,\n ...mods,\n },\n style,\n tabIndex: isDisabled ? undefined : 0,\n role: 'separator',\n 'aria-orientation': isHorizontal ? 'vertical' : 'horizontal',\n 'aria-label': label,\n onDoubleClick: isDisabled ? undefined : onDoubleClick,\n })}\n >\n <div data-element=\"Track\" />\n {!isDisabled && (\n <div data-element=\"Drag\">\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n </div>\n )}\n </ResizeHandlerElement>\n );\n}\n\n/** Panel rendering mode */\nexport type LayoutPanelMode = 'default' | 'sticky' | 'overlay' | 'dialog';\n\nexport interface CubeLayoutPanelProps extends BaseProps, ContainerStyleProps {\n /** Side of the layout where panel is positioned */\n side: Side;\n /**\n * Panel rendering mode:\n * - `default`: Standard panel that pushes content aside\n * - `sticky`: Panel floats over content without pushing it\n * - `overlay`: Panel with dismissable backdrop overlay\n * - `dialog`: Panel renders as a modal dialog\n */\n mode?: LayoutPanelMode;\n /** Panel size (width for left/right, height for top/bottom) - controlled */\n size?: number | string;\n /** Default panel size for uncontrolled state */\n defaultSize?: number | string;\n /** Minimum panel size */\n minSize?: number | string;\n /** Maximum panel size */\n maxSize?: number | string;\n /** Enable resize functionality */\n isResizable?: boolean;\n /** Size change callback */\n onSizeChange?: (size: number) => void;\n /** Controlled open state */\n isOpen?: boolean;\n /** Default open state */\n defaultIsOpen?: boolean;\n /** Open state change callback */\n onOpenChange?: (isOpen: boolean) => void;\n /** Enable slide transition on open/close */\n hasTransition?: boolean;\n /**\n * Whether the panel can be dismissed by clicking the overlay (overlay mode) or pressing Escape.\n * Only applies to `overlay` and `dialog` modes. Default: true\n */\n isDismissable?: boolean;\n /** Styles for the overlay backdrop in overlay mode */\n overlayStyles?: Styles;\n /**\n * @deprecated Use `mode=\"dialog\"` instead. Switch to dialog mode (renders panel inside Dialog)\n */\n isDialog?: boolean;\n /** Controlled dialog open state (used with mode=\"dialog\") */\n isDialogOpen?: boolean;\n /** Default dialog open state */\n defaultIsDialogOpen?: boolean;\n /** Dialog open state change callback */\n onDialogOpenChange?: (isOpen: boolean) => void;\n /** Props passed to Dialog component when in dialog mode */\n dialogProps?: Omit<\n CubeDialogContainerProps,\n 'isDismissable' | 'onDismiss' | 'isOpen'\n >;\n /** Padding for content areas inside the panel. Default: '1x' */\n contentPadding?: Styles['padding'];\n /** localStorage key for persisting panel size. When provided, size is stored and restored across instances. */\n sizeStorageKey?: string;\n /** Styles for the panel */\n styles?: Styles;\n children?: ReactNode;\n}\n\nfunction matchesContainerSize(\n container: HTMLElement | null | undefined,\n isHorizontal: boolean,\n dimension: number,\n) {\n return (\n (isHorizontal ? container?.offsetWidth : container?.offsetHeight) ===\n dimension\n );\n}\n\nfunction LayoutPanel(\n props: CubeLayoutPanelProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const layoutActions = useLayoutActionsContext();\n const layoutState = useLayoutStateContext();\n const layoutRefs = useLayoutRefsContext();\n\n if (!layoutActions || !layoutState || !layoutRefs) {\n throw new Error(\n 'Layout.Panel must be used within a Layout component. ' +\n 'Ensure your panel is rendered inside a <Layout> parent.',\n );\n }\n\n const {\n side = 'left',\n mode: modeProp,\n size: providedSize,\n defaultSize = 280,\n minSize = 200,\n maxSize,\n isResizable = false,\n onSizeChange,\n isOpen: providedIsOpen,\n defaultIsOpen = true,\n onOpenChange,\n hasTransition: hasTransitionProp,\n isDismissable = true,\n overlayStyles,\n // Deprecated prop - use mode=\"dialog\" instead\n isDialog = false,\n isDialogOpen: providedIsDialogOpen,\n defaultIsDialogOpen = false,\n onDialogOpenChange,\n dialogProps,\n contentPadding,\n sizeStorageKey,\n children,\n styles,\n mods,\n ...otherProps\n } = props;\n\n // Resolve mode from prop or deprecated isDialog\n const mode: LayoutPanelMode = modeProp ?? (isDialog ? 'dialog' : 'default');\n const isDialogMode = mode === 'dialog';\n const isOverlayMode = mode === 'overlay';\n const isStickyMode = mode === 'sticky';\n\n // Use prop value if provided, otherwise fall back to context value\n const hasTransition = hasTransitionProp ?? layoutActions.hasTransition;\n\n const combinedRef = useCombinedRefs(ref);\n const prevProvidedSizeRef = useRef(providedSize);\n const isHorizontal = side === 'left' || side === 'right';\n\n // Natural boundary computation\n const { containerWidth, containerHeight } = layoutState;\n const { minContentSize } = layoutActions;\n const containerDimension = isHorizontal ? containerWidth : containerHeight;\n const oppositeSide = getOppositeSide(side);\n const oppositePanelSize = layoutState.panelSizes[oppositeSide];\n const ownInsetOffset = isResizable ? RESIZABLE_INSET_OFFSET : 0;\n const naturalMax = useMemo(\n () =>\n !isDialogMode && containerDimension > 0\n ? Math.max(\n 0,\n containerDimension -\n oppositePanelSize -\n minContentSize -\n ownInsetOffset,\n )\n : Infinity,\n [\n isDialogMode,\n containerDimension,\n oppositePanelSize,\n minContentSize,\n ownInsetOffset,\n ],\n );\n\n // Panel open state\n const [internalIsOpen, setInternalIsOpen] = useState(defaultIsOpen);\n const isOpen = providedIsOpen ?? internalIsOpen;\n const isTransitionActive =\n hasTransition && !isDialogMode && layoutRefs.isPanelContainerReady;\n const [visualState, setVisualState] = useState({\n isShown: isOpen,\n isTransitionActive,\n });\n\n // A newly mounted DisplayTransition starts at the requested visibility.\n if (visualState.isTransitionActive !== isTransitionActive) {\n setVisualState({ isShown: isOpen, isTransitionActive });\n }\n const isPanelShown = isTransitionActive ? visualState.isShown : isOpen;\n\n // Dialog open state\n const [internalIsDialogOpen, setInternalIsDialogOpen] =\n useState(defaultIsDialogOpen);\n const dialogOpen = providedIsDialogOpen ?? internalIsDialogOpen;\n\n // Persistent size storage\n const [storedSize, setStoredSize] = useLocalStorage<number | null>(\n sizeStorageKey ?? null,\n null,\n );\n\n // Resize state\n const [isDragging, setIsDragging] = useState(false);\n const [size, setSize] = useState<number>(() => {\n const initialSize =\n typeof providedSize === 'number'\n ? providedSize\n : storedSize != null\n ? storedSize\n : typeof defaultSize === 'number'\n ? defaultSize\n : 280;\n\n return clampSize(initialSize, minSize, maxSize);\n });\n\n const extractedStyles = extractStyles(otherProps, CONTAINER_STYLES);\n\n // Merge styles with contentPadding support\n const finalStyles = useMemo(\n () =>\n mergeStyles(\n styles,\n contentPadding != null ? { '$content-padding': contentPadding } : null,\n extractedStyles,\n ),\n [extractedStyles, contentPadding, styles],\n );\n\n // Resolve user's maxSize to pixels for JS-level clamping.\n // Percentage bounds belong to the inline host, not the dialog's host.\n const resolvedMax = useMemo(() => {\n if (typeof maxSize === 'number') return maxSize;\n if (\n typeof maxSize === 'string' &&\n containerDimension > 0 &&\n (!isDialogMode || !maxSize.trim().endsWith('%'))\n ) {\n return resolveCssSize(maxSize, containerDimension);\n }\n return undefined;\n }, [maxSize, containerDimension, isDialogMode]);\n\n // Effective max combines user's maxSize with natural boundary\n const effectiveMax = useMemo(() => {\n const values: number[] = [];\n if (resolvedMax != null) values.push(resolvedMax);\n if (Number.isFinite(naturalMax)) values.push(naturalMax);\n return values.length > 0 ? Math.min(...values) : undefined;\n }, [resolvedMax, naturalMax]);\n\n // Clamp size to min/max constraints (including natural boundaries)\n const clampValue = useCallback(\n (value: number) => clampSize(value, minSize, undefined, effectiveMax),\n [minSize, effectiveMax],\n );\n\n const setContextDragging = layoutActions.setDragging;\n\n const { moveProps } = useMove({\n onMoveStart() {\n if (!isResizable || isDialogMode) return;\n setIsDragging(true);\n setContextDragging(true);\n },\n onMove(e) {\n if (!isResizable || isDialogMode) return;\n\n let delta: number;\n\n if (e.pointerType === 'keyboard') {\n // Keyboard resize: 10px per step, 50px with Shift\n const step = e.shiftKey ? 50 : 10;\n // For keyboard, deltaX/deltaY are direction indicators (-1, 0, 1)\n const rawDelta = isHorizontal ? e.deltaX : e.deltaY;\n const direction = side === 'right' || side === 'bottom' ? -1 : 1;\n delta = rawDelta * step * direction;\n } else {\n // Pointer resize: use exact delta values\n delta = isHorizontal\n ? e.deltaX * (side === 'right' ? -1 : 1)\n : e.deltaY * (side === 'bottom' ? -1 : 1);\n }\n\n setSize((currentSize) => clampValue(currentSize + delta));\n },\n onMoveEnd() {\n setIsDragging(false);\n setContextDragging(false);\n if (isDialogMode && !isDragging) return;\n // Round to integer on release and notify parent\n setSize((currentSize) => {\n const finalSize = Math.round(clampValue(currentSize));\n // Call onSizeChange synchronously to ensure parent state is updated\n onSizeChange?.(finalSize);\n // Persist to localStorage if key is provided\n setStoredSize(finalSize);\n return finalSize;\n });\n },\n });\n\n // Sync provided size with internal state (only when providedSize actually changes)\n // This prevents resetting size when only isDragging changes (which would cause a flash)\n useEffect(() => {\n if (prevProvidedSizeRef.current !== providedSize) {\n if (\n !isDialogMode &&\n !matchesContainerSize(\n layoutRefs.panelContainerRef.current?.parentElement,\n isHorizontal,\n containerDimension,\n )\n ) {\n return;\n }\n\n prevProvidedSizeRef.current = providedSize;\n if (typeof providedSize === 'number' && !isDragging) {\n setSize(clampValue(providedSize));\n }\n }\n }, [\n providedSize,\n isDragging,\n clampValue,\n isDialogMode,\n isHorizontal,\n containerDimension,\n layoutRefs.panelContainerRef,\n ]);\n\n // Dialogs retain inline size; only inline panels follow the host's bounds.\n const applyInlineBounds = useEffectEvent(() => {\n if (\n !matchesContainerSize(\n layoutRefs.panelContainerRef.current?.parentElement,\n isHorizontal,\n containerDimension,\n )\n ) {\n return;\n }\n\n setSize((prev) => {\n const clamped = clampValue(prev);\n\n if (clamped !== prev) {\n onSizeChange?.(Math.round(clamped));\n setStoredSize(Math.round(clamped));\n }\n\n return clamped;\n });\n });\n\n useEffect(() => {\n if (!isDialogMode && !isDragging && containerDimension > 0) {\n // In an iframe ResizeObserver can precede responsive mode delivery.\n // Let that mode settle before shrinking and persisting the inline size.\n const frame = requestAnimationFrame(() => applyInlineBounds());\n return () => cancelAnimationFrame(frame);\n }\n }, [\n isDialogMode,\n isDragging,\n clampValue,\n containerDimension,\n isHorizontal,\n layoutRefs.panelContainerRef,\n ]);\n\n // Register panel with layout context\n // Include handler outside portion (minus border overlap) for proper content inset\n // In sticky, overlay, and dialog modes, panel doesn't push content, so size is 0\n // NOTE: We intentionally use `size` (not `clampValue(size)`) here to avoid a feedback\n // loop. `clampValue` depends on the opposite panel's context size, so clamping here\n // would create a period-2 oscillation through shared context. CSS --max-size handles\n // visual clamping immediately; the auto-shrink effect converges `size` state.\n const effectivePanelSize = isPanelShown && mode === 'default' ? size : 0;\n const effectiveInsetSize = Math.round(\n effectivePanelSize +\n (isResizable && effectivePanelSize > 0 ? RESIZABLE_INSET_OFFSET : 0),\n );\n\n const { registerPanel, unregisterPanel, updatePanelSize } = layoutActions;\n const { isReady } = layoutState;\n\n // Track the last reported size to prevent unnecessary updates\n const lastSizeRef = useRef<number>(effectiveInsetSize);\n\n // Register on mount, unregister on unmount\n // Using useLayoutEffect ensures registration happens before browser paint\n useLayoutEffect(() => {\n registerPanel(side, lastSizeRef.current);\n\n return () => {\n unregisterPanel(side);\n };\n }, [side, registerPanel, unregisterPanel]);\n\n // Update size when it changes (after initial mount)\n // Using useLayoutEffect ensures size updates happen before browser paint\n useLayoutEffect(() => {\n if (lastSizeRef.current !== effectiveInsetSize) {\n lastSizeRef.current = effectiveInsetSize;\n updatePanelSize(side, effectiveInsetSize);\n }\n }, [side, effectiveInsetSize, updatePanelSize]);\n\n const handleOpenChange = useCallback(\n (newIsOpen: boolean) => {\n setInternalIsOpen(newIsOpen);\n onOpenChange?.(newIsOpen);\n },\n [onOpenChange],\n );\n\n // Dismiss handler for overlay mode (click on overlay)\n const handleDismiss = useCallback(() => {\n if (isDismissable) {\n handleOpenChange(false);\n }\n }, [isDismissable, handleOpenChange]);\n\n // Register overlay panel with Layout context for coordinated dismissal\n const { registerOverlayPanel } = layoutActions;\n\n useEffect(() => {\n // Only register if in overlay mode, open, and dismissable\n if (isOverlayMode && isOpen && isDismissable) {\n const unregister = registerOverlayPanel(() => handleOpenChange(false));\n return unregister;\n }\n }, [\n isOverlayMode,\n isOpen,\n isDismissable,\n registerOverlayPanel,\n handleOpenChange,\n ]);\n\n const handleDialogOpenChange = useCallback(\n (newIsOpen: boolean) => {\n setInternalIsDialogOpen(newIsOpen);\n onDialogOpenChange?.(newIsOpen);\n },\n [onDialogOpenChange],\n );\n\n // Panel context value for child components (like LayoutPanelHeader)\n const panelContextValue = useMemo(\n () => ({\n onOpenChange: handleOpenChange,\n isOpen,\n }),\n [handleOpenChange, isOpen],\n );\n\n // Dialog mode context value - uses dialog state instead of panel state\n const dialogPanelContextValue = useMemo(\n () => ({\n onOpenChange: handleDialogOpenChange,\n isOpen: dialogOpen,\n }),\n [handleDialogOpenChange, dialogOpen],\n );\n\n const panelMods = useMemo(\n () => ({\n side,\n drag: isDragging,\n horizontal: isHorizontal,\n // Only enable transition after layout is ready to prevent initial animation\n 'has-transition': hasTransition && isReady,\n ...mods,\n }),\n [side, isDragging, isHorizontal, hasTransition, isReady, mods],\n );\n\n // Build --max-size CSS variable combining user maxSize and natural boundary\n const maxSizeCss = useMemo(() => {\n const parts: string[] = [];\n\n if (maxSize != null) {\n parts.push(typeof maxSize === 'number' ? `${maxSize}px` : maxSize);\n }\n\n if (containerDimension > 0 && Number.isFinite(naturalMax)) {\n parts.push(`${naturalMax}px`);\n }\n\n if (parts.length === 0) return undefined;\n return parts.length === 1 ? parts[0] : `min(${parts.join(', ')})`;\n }, [maxSize, naturalMax, containerDimension]);\n\n const panelStyle = useMemo(\n () => ({\n '--panel-size': `${size}px`,\n '--min-size': typeof minSize === 'number' ? `${minSize}px` : minSize,\n '--max-size': maxSizeCss,\n }),\n [size, minSize, maxSizeCss],\n );\n\n // Combine refs for panel element\n const panelRefCallback = useCallback(\n (node: HTMLDivElement | null, transitionRef?: RefCallback<HTMLElement>) => {\n // Update the combined ref\n (combinedRef as { current: HTMLDivElement | null }).current = node;\n // Call transition ref if provided\n transitionRef?.(node);\n },\n [combinedRef],\n );\n\n // Reset to default size on double-click\n const handleResetSize = useCallback(() => {\n const resetSize =\n typeof defaultSize === 'number' ? defaultSize : parseInt(defaultSize, 10);\n const clampedSize = clampValue(resetSize || 280);\n setSize(clampedSize);\n onSizeChange?.(clampedSize);\n setStoredSize(clampedSize);\n }, [defaultSize, clampValue, onSizeChange, setStoredSize]);\n\n const renderPanelContent = (\n offscreen = false,\n transitionRef?: RefCallback<HTMLElement>,\n ) => {\n const showOverlay = isOverlayMode && !offscreen;\n\n return (\n <>\n {/* Overlay backdrop for overlay mode */}\n {isOverlayMode && (\n <OverlayBackdrop\n mods={{ visible: showOverlay }}\n styles={overlayStyles}\n aria-hidden=\"true\"\n onClick={handleDismiss}\n />\n )}\n <PanelElement\n ref={(node: HTMLDivElement | null) =>\n panelRefCallback(node, transitionRef)\n }\n {...filterBaseProps(otherProps, { eventProps: true })}\n mods={{ ...panelMods, offscreen }}\n styles={finalStyles}\n style={panelStyle}\n data-side={side}\n >\n <LayoutPanelContext.Provider value={panelContextValue}>\n <LayoutContextReset>{children}</LayoutContextReset>\n </LayoutPanelContext.Provider>\n </PanelElement>\n {isResizable && (\n <ResizeHandler\n side={side}\n isDisabled={!isResizable}\n mods={{\n drag: isDragging,\n offscreen,\n 'has-transition': hasTransition && isReady,\n }}\n moveProps={moveProps}\n style={panelStyle}\n onDoubleClick={handleResetSize}\n />\n )}\n </>\n );\n };\n\n // Dialog mode - uses its own portal via DialogContainer\n if (isDialogMode) {\n return (\n <DialogContainer\n isOpen={dialogOpen}\n isDismissable={isDismissable}\n onDismiss={() => handleDialogOpenChange(false)}\n {...dialogProps}\n >\n <Dialog isDismissable={false}>\n <LayoutPanelContext.Provider value={dialogPanelContextValue}>\n <LayoutContextReset>{children}</LayoutContextReset>\n </LayoutPanelContext.Provider>\n </Dialog>\n </DialogContainer>\n );\n }\n\n // Wait for portal container to be ready before rendering\n if (!layoutRefs.isPanelContainerReady) {\n return null;\n }\n\n const portalContainer = layoutRefs.panelContainerRef.current!;\n\n // Panel with transition - portal to panel container\n if (hasTransition) {\n return createPortal(\n <DisplayTransition\n isShown={isOpen}\n animateOnMount={false}\n onToggle={(isShown) => setVisualState({ isShown, isTransitionActive })}\n >\n {({ isShown, isExiting, ref: transitionRef }) => (\n <LayoutPanelTransition isShown={isShown} isExiting={isExiting}>\n {renderPanelContent(!isShown, transitionRef)}\n </LayoutPanelTransition>\n )}\n </DisplayTransition>,\n portalContainer,\n );\n }\n\n // Simple panel (no transition) - portal to panel container\n if (!isOpen) return null;\n\n return createPortal(renderPanelContent(false), portalContainer);\n}\n\nconst _LayoutPanel = forwardRef(LayoutPanel);\n\n_LayoutPanel.displayName = 'Layout.Panel';\n\nexport { _LayoutPanel as LayoutPanel };\n"],"mappings":"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"}
1
+ {"version":3,"file":"LayoutPanel.js","names":["BaseProps","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","mergeStyles","Styles","tasty","ForwardedRef","forwardRef","HTMLAttributes","ReactNode","RefCallback","useCallback","useEffect","useEffectEvent","useLayoutEffect","useMemo","useRef","useState","useFocusRing","useHover","useMove","createPortal","useDebouncedValue","useI18n","mergeProps","useCombinedRefs","useLocalStorage","extractStyles","DisplayTransition","Dialog","CubeDialogContainerProps","DialogContainer","LayoutContextReset","LayoutPanelContext","Side","useLayoutActionsContext","useLayoutRefsContext","useLayoutStateContext","LayoutPanelTransition","clampSize","getOppositeSide","resolveCssSize","HANDLER_WIDTH","HANDLER_OFFSET","RESIZABLE_INSET_OFFSET","PanelElement","as","qa","styles","container","position","display","flow","overflow","boxSizing","top","right","bottom","left","width","height","border","fill","isolation","transform","transition","ResizeHandlerElement","horizontal","cursor","disabled","touchAction","padding","outline","Track","inset","outlineOffset","Drag","gap","gridColumns","gridRows","DragPart","radius","OverlayBackdrop","backdropFilter","opacity","visible","pointerEvents","ResizeHandlerProps","side","isDisabled","mods","Record","moveProps","ReturnType","style","onDoubleClick","ResizeHandler","props","$","_c","t","label","t0","Symbol","for","hoverProps","isHovered","focusProps","isFocusVisible","isHorizontal","localIsHovered","T0","t1","hovered","focused","tabIndex","undefined","role","t2","t3","t4","LayoutPanelMode","CubeLayoutPanelProps","mode","size","defaultSize","minSize","maxSize","isResizable","onSizeChange","isOpen","defaultIsOpen","onOpenChange","hasTransition","isDismissable","overlayStyles","isDialog","isDialogOpen","defaultIsDialogOpen","onDialogOpenChange","dialogProps","Omit","contentPadding","sizeStorageKey","children","matchesContainerSize","HTMLElement","dimension","offsetWidth","offsetHeight","LayoutPanel","ref","HTMLDivElement","layoutActions","layoutState","layoutRefs","Error","modeProp","providedSize","providedIsOpen","hasTransitionProp","providedIsDialogOpen","otherProps","isDialogMode","isOverlayMode","isStickyMode","combinedRef","prevProvidedSizeRef","containerWidth","containerHeight","minContentSize","containerDimension","oppositeSide","oppositePanelSize","panelSizes","ownInsetOffset","naturalMax","Math","max","Infinity","internalIsOpen","setInternalIsOpen","isTransitionActive","isPanelContainerReady","visualState","setVisualState","isShown","isPanelShown","internalIsDialogOpen","setInternalIsDialogOpen","dialogOpen","storedSize","setStoredSize","isDragging","setIsDragging","setSize","initialSize","extractedStyles","finalStyles","resolvedMax","trim","endsWith","effectiveMax","values","push","Number","isFinite","length","min","clampValue","value","setContextDragging","setDragging","onMoveStart","onMove","e","delta","pointerType","step","shiftKey","rawDelta","deltaX","deltaY","direction","currentSize","onMoveEnd","finalSize","round","current","panelContainerRef","parentElement","applyInlineBounds","prev","clamped","frame","requestAnimationFrame","cancelAnimationFrame","effectivePanelSize","effectiveInsetSize","registerPanel","unregisterPanel","updatePanelSize","isReady","lastSizeRef","handleOpenChange","newIsOpen","handleDismiss","registerOverlayPanel","unregister","handleDialogOpenChange","panelContextValue","dialogPanelContextValue","panelMods","drag","maxSizeCss","parts","join","panelStyle","panelRefCallback","node","transitionRef","handleResetSize","resetSize","parseInt","clampedSize","renderPanelContent","offscreen","showOverlay","eventProps","portalContainer","isExiting","_LayoutPanel","displayName"],"sources":["../../../../src/components/content/Layout/LayoutPanel.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n mergeStyles,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n RefCallback,\n useCallback,\n useEffect,\n useEffectEvent,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useFocusRing, useHover, useMove } from 'react-aria';\nimport { createPortal } from 'react-dom';\n\nimport { useDebouncedValue } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport {\n mergeProps,\n useCombinedRefs,\n useLocalStorage,\n} from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { DisplayTransition } from '../../helpers/DisplayTransition/DisplayTransition';\nimport { Dialog } from '../../overlays/Dialog';\nimport {\n CubeDialogContainerProps,\n DialogContainer,\n} from '../../overlays/Dialog/DialogContainer';\n\nimport {\n LayoutContextReset,\n LayoutPanelContext,\n Side,\n useLayoutActionsContext,\n useLayoutRefsContext,\n useLayoutStateContext,\n} from './LayoutContext';\nimport { LayoutPanelTransition } from './LayoutPanelTransition';\nimport { clampSize, getOppositeSide, resolveCssSize } from './utils';\n\n// Resize handler dimensions\nconst HANDLER_WIDTH = 9;\n// How far from panel edge to position handler's inner edge (centers the 3px track on the edge)\nconst HANDLER_OFFSET = 4;\n// Extra inset added for resizable panels (to accommodate handler grab area)\nconst RESIZABLE_INSET_OFFSET = 2;\n\nconst PanelElement = tasty({\n as: 'div',\n qa: 'LayoutPanel',\n styles: {\n container: 'panel / inline-size',\n position: 'absolute',\n display: 'flex',\n flow: 'column',\n overflow: 'hidden',\n boxSizing: 'border-box',\n\n '$content-padding': '1x',\n // Auto-border size for sub-components (panels are always vertical)\n '$layout-border-size': '1bw',\n\n // Position based on side prop\n top: {\n '': 0,\n 'side=bottom': 'initial',\n },\n right: {\n '': 0,\n 'side=left': 'initial',\n },\n bottom: {\n '': 0,\n 'side=top': 'initial',\n },\n left: {\n '': 0,\n 'side=right': 'initial',\n },\n\n // Size handling with CSS-level min/max clamping\n width: {\n '': '$min-size $panel-size $max-size',\n 'side=top | side=bottom': '100%',\n },\n height: {\n '': '100%',\n 'side=top | side=bottom': '$min-size $panel-size $max-size',\n },\n\n // Visual styling\n border: {\n '': false,\n 'side=left': 'right',\n 'side=right': 'left',\n 'side=top': 'bottom',\n 'side=bottom': 'top',\n },\n fill: '#surface',\n // The stacking context the transform used to create: z-indexed content\n // stays inside the panel, below its resize handle and an overlay backdrop.\n isolation: 'isolate',\n\n // Transition styles - offscreen mod controls slide animation.\n // `none` at rest, not a zero translate: any transform makes the panel the\n // containing block of its fixed descendants (drag previews, popups), which\n // then position against the panel and are clipped by its overflow. `none`\n // still animates to and from the offscreen translate.\n transform: {\n '': 'none',\n 'offscreen & side=left': 'translateX(-100%)',\n 'offscreen & side=right': 'translateX(100%)',\n 'offscreen & side=top': 'translateY(-100%)',\n 'offscreen & side=bottom': 'translateY(100%)',\n },\n transition: {\n '': 'none',\n 'has-transition': 'transform $transition ease-out',\n },\n },\n});\n\n// Handler is positioned as sibling to panel (in Fragment), relative to Layout\nconst ResizeHandlerElement = tasty({\n qa: 'PanelResizeHandler',\n styles: {\n position: 'absolute',\n\n // Handler size\n width: {\n '': '100%',\n horizontal: `${HANDLER_WIDTH}px`,\n 'disabled & horizontal': '1bw',\n },\n height: {\n '': `${HANDLER_WIDTH}px`,\n horizontal: '100%',\n 'disabled & !horizontal': '1bw',\n },\n\n // Position handler with direct offset (no centering needed)\n top: {\n '': 0,\n 'side=top': `calc($panel-size - ${HANDLER_OFFSET}px)`,\n 'side=bottom': 'initial',\n },\n bottom: {\n '': 0,\n 'side=bottom': `calc($panel-size - ${HANDLER_OFFSET}px)`,\n 'side=top': 'initial',\n },\n left: {\n '': 0,\n 'side=left': `calc($panel-size - ${HANDLER_OFFSET}px)`,\n 'side=right': 'initial',\n },\n right: {\n '': 0,\n 'side=right': `calc($panel-size - ${HANDLER_OFFSET}px)`,\n 'side=left': 'initial',\n },\n\n // Offscreen transforms only (no centering needed with direct offset positioning)\n transform: {\n '': 'translateX(0)',\n 'offscreen & side=left': `translateX(calc(-1 * $panel-size - ${HANDLER_WIDTH - HANDLER_OFFSET}px))`,\n 'offscreen & side=right': `translateX(calc($panel-size + ${HANDLER_WIDTH - HANDLER_OFFSET}px))`,\n 'offscreen & side=top': `translateY(calc(-1 * $panel-size - ${HANDLER_WIDTH - HANDLER_OFFSET}px))`,\n 'offscreen & side=bottom': `translateY(calc($panel-size + ${HANDLER_WIDTH - HANDLER_OFFSET}px))`,\n },\n\n cursor: {\n '': 'row-resize',\n horizontal: 'col-resize',\n disabled: 'not-allowed',\n },\n touchAction: {\n '': 'none',\n disabled: 'auto',\n },\n padding: 0,\n outline: 0,\n boxSizing: 'border-box',\n\n // Transition must match panel for synchronized animation\n transition: {\n '': 'theme',\n 'has-transition': 'transform $transition ease-out, theme',\n },\n\n Track: {\n width: {\n '': 'initial',\n horizontal: '3px',\n 'disabled & horizontal': '1px',\n },\n height: {\n '': '3px',\n horizontal: 'initial',\n 'disabled & !horizontal': '1px',\n },\n position: 'absolute',\n inset: {\n '': '3px 0',\n horizontal: '0 3px',\n disabled: '0 0',\n },\n fill: {\n '': '#border',\n '(hovered | drag | focused) & !disabled': '#purple-03',\n },\n border: 0,\n transition: 'theme',\n outline: {\n '': '1bw #primary-text.0',\n 'drag | focused': '1bw #primary-text',\n },\n outlineOffset: 1,\n },\n\n Drag: {\n display: 'grid',\n gap: '2bw',\n border: 0,\n flow: {\n '': 'row',\n horizontal: 'column',\n },\n gridColumns: {\n '': '3px 3px 3px 3px 3px',\n horizontal: 'auto',\n },\n gridRows: {\n '': 'auto',\n horizontal: '3px 3px 3px 3px 3px',\n },\n width: {\n '': 'auto',\n horizontal: '1px',\n },\n height: {\n '': '1px',\n horizontal: 'auto',\n },\n inset: {\n '': '4px 50% auto auto',\n horizontal: '50% 4px auto auto',\n },\n transform: {\n '': 'translate(-50%, 0)',\n horizontal: 'translate(0, -50%)',\n },\n position: 'absolute',\n transition: 'theme',\n },\n\n DragPart: {\n radius: true,\n fill: {\n '': '#dark-03',\n 'hovered | drag | focused': '#primary-text',\n disabled: '#disabled-surface-text',\n },\n },\n },\n});\n\n// Overlay backdrop for overlay mode - covers the content area behind the panel\nconst OverlayBackdrop = tasty({\n qa: 'PanelOverlay',\n styles: {\n position: 'absolute',\n inset: 0,\n // fill: '#white.2',\n backdropFilter: 'invert(.15)',\n cursor: 'pointer',\n opacity: {\n '': 0,\n visible: 1,\n },\n pointerEvents: {\n '': 'none',\n visible: 'auto',\n },\n transition: 'opacity .15s ease-out',\n },\n});\n\ninterface ResizeHandlerProps {\n side: Side;\n isDisabled?: boolean;\n mods?: Record<string, boolean>;\n moveProps: ReturnType<typeof useMove>['moveProps'];\n style?: Record<string, string | number | null | undefined>;\n onDoubleClick?: () => void;\n}\n\nfunction ResizeHandler(props: ResizeHandlerProps) {\n const { side, isDisabled, mods, moveProps, style, onDoubleClick } = props;\n const { t } = useI18n();\n // One key per side: a translated sentence can't take the side as a word.\n const label = {\n left: t('layout.resizeLeftPanel', 'Resize left panel'),\n top: t('layout.resizeTopPanel', 'Resize top panel'),\n right: t('layout.resizeRightPanel', 'Resize right panel'),\n bottom: t('layout.resizeBottomPanel', 'Resize bottom panel'),\n }[side];\n const { hoverProps, isHovered } = useHover({});\n const { focusProps, isFocusVisible } = useFocusRing();\n const isHorizontal = side === 'left' || side === 'right';\n const localIsHovered = useDebouncedValue(isHovered, 150);\n\n return (\n <ResizeHandlerElement\n {...mergeProps(hoverProps, focusProps, moveProps, {\n mods: {\n hovered: localIsHovered,\n horizontal: isHorizontal,\n disabled: isDisabled,\n focused: isFocusVisible,\n side,\n ...mods,\n },\n style,\n tabIndex: isDisabled ? undefined : 0,\n role: 'separator',\n 'aria-orientation': isHorizontal ? 'vertical' : 'horizontal',\n 'aria-label': label,\n onDoubleClick: isDisabled ? undefined : onDoubleClick,\n })}\n >\n <div data-element=\"Track\" />\n {!isDisabled && (\n <div data-element=\"Drag\">\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n <div data-element=\"DragPart\" />\n </div>\n )}\n </ResizeHandlerElement>\n );\n}\n\n/** Panel rendering mode */\nexport type LayoutPanelMode = 'default' | 'sticky' | 'overlay' | 'dialog';\n\nexport interface CubeLayoutPanelProps extends BaseProps, ContainerStyleProps {\n /** Side of the layout where panel is positioned */\n side: Side;\n /**\n * Panel rendering mode:\n * - `default`: Standard panel that pushes content aside\n * - `sticky`: Panel floats over content without pushing it\n * - `overlay`: Panel with dismissable backdrop overlay\n * - `dialog`: Panel renders as a modal dialog\n */\n mode?: LayoutPanelMode;\n /** Panel size (width for left/right, height for top/bottom) - controlled */\n size?: number | string;\n /** Default panel size for uncontrolled state */\n defaultSize?: number | string;\n /** Minimum panel size */\n minSize?: number | string;\n /** Maximum panel size */\n maxSize?: number | string;\n /** Enable resize functionality */\n isResizable?: boolean;\n /** Size change callback */\n onSizeChange?: (size: number) => void;\n /** Controlled open state */\n isOpen?: boolean;\n /** Default open state */\n defaultIsOpen?: boolean;\n /** Open state change callback */\n onOpenChange?: (isOpen: boolean) => void;\n /** Enable slide transition on open/close */\n hasTransition?: boolean;\n /**\n * Whether the panel can be dismissed by clicking the overlay (overlay mode) or pressing Escape.\n * Only applies to `overlay` and `dialog` modes. Default: true\n */\n isDismissable?: boolean;\n /** Styles for the overlay backdrop in overlay mode */\n overlayStyles?: Styles;\n /**\n * @deprecated Use `mode=\"dialog\"` instead. Switch to dialog mode (renders panel inside Dialog)\n */\n isDialog?: boolean;\n /** Controlled dialog open state (used with mode=\"dialog\") */\n isDialogOpen?: boolean;\n /** Default dialog open state */\n defaultIsDialogOpen?: boolean;\n /** Dialog open state change callback */\n onDialogOpenChange?: (isOpen: boolean) => void;\n /** Props passed to Dialog component when in dialog mode */\n dialogProps?: Omit<\n CubeDialogContainerProps,\n 'isDismissable' | 'onDismiss' | 'isOpen'\n >;\n /** Padding for content areas inside the panel. Default: '1x' */\n contentPadding?: Styles['padding'];\n /** localStorage key for persisting panel size. When provided, size is stored and restored across instances. */\n sizeStorageKey?: string;\n /** Styles for the panel */\n styles?: Styles;\n children?: ReactNode;\n}\n\nfunction matchesContainerSize(\n container: HTMLElement | null | undefined,\n isHorizontal: boolean,\n dimension: number,\n) {\n return (\n (isHorizontal ? container?.offsetWidth : container?.offsetHeight) ===\n dimension\n );\n}\n\nfunction LayoutPanel(\n props: CubeLayoutPanelProps,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const layoutActions = useLayoutActionsContext();\n const layoutState = useLayoutStateContext();\n const layoutRefs = useLayoutRefsContext();\n\n if (!layoutActions || !layoutState || !layoutRefs) {\n throw new Error(\n 'Layout.Panel must be used within a Layout component. ' +\n 'Ensure your panel is rendered inside a <Layout> parent.',\n );\n }\n\n const {\n side = 'left',\n mode: modeProp,\n size: providedSize,\n defaultSize = 280,\n minSize = 200,\n maxSize,\n isResizable = false,\n onSizeChange,\n isOpen: providedIsOpen,\n defaultIsOpen = true,\n onOpenChange,\n hasTransition: hasTransitionProp,\n isDismissable = true,\n overlayStyles,\n // Deprecated prop - use mode=\"dialog\" instead\n isDialog = false,\n isDialogOpen: providedIsDialogOpen,\n defaultIsDialogOpen = false,\n onDialogOpenChange,\n dialogProps,\n contentPadding,\n sizeStorageKey,\n children,\n styles,\n mods,\n ...otherProps\n } = props;\n\n // Resolve mode from prop or deprecated isDialog\n const mode: LayoutPanelMode = modeProp ?? (isDialog ? 'dialog' : 'default');\n const isDialogMode = mode === 'dialog';\n const isOverlayMode = mode === 'overlay';\n const isStickyMode = mode === 'sticky';\n\n // Use prop value if provided, otherwise fall back to context value\n const hasTransition = hasTransitionProp ?? layoutActions.hasTransition;\n\n const combinedRef = useCombinedRefs(ref);\n const prevProvidedSizeRef = useRef(providedSize);\n const isHorizontal = side === 'left' || side === 'right';\n\n // Natural boundary computation\n const { containerWidth, containerHeight } = layoutState;\n const { minContentSize } = layoutActions;\n const containerDimension = isHorizontal ? containerWidth : containerHeight;\n const oppositeSide = getOppositeSide(side);\n const oppositePanelSize = layoutState.panelSizes[oppositeSide];\n const ownInsetOffset = isResizable ? RESIZABLE_INSET_OFFSET : 0;\n const naturalMax = useMemo(\n () =>\n !isDialogMode && containerDimension > 0\n ? Math.max(\n 0,\n containerDimension -\n oppositePanelSize -\n minContentSize -\n ownInsetOffset,\n )\n : Infinity,\n [\n isDialogMode,\n containerDimension,\n oppositePanelSize,\n minContentSize,\n ownInsetOffset,\n ],\n );\n\n // Panel open state\n const [internalIsOpen, setInternalIsOpen] = useState(defaultIsOpen);\n const isOpen = providedIsOpen ?? internalIsOpen;\n const isTransitionActive =\n hasTransition && !isDialogMode && layoutRefs.isPanelContainerReady;\n const [visualState, setVisualState] = useState({\n isShown: isOpen,\n isTransitionActive,\n });\n\n // A newly mounted DisplayTransition starts at the requested visibility.\n if (visualState.isTransitionActive !== isTransitionActive) {\n setVisualState({ isShown: isOpen, isTransitionActive });\n }\n const isPanelShown = isTransitionActive ? visualState.isShown : isOpen;\n\n // Dialog open state\n const [internalIsDialogOpen, setInternalIsDialogOpen] =\n useState(defaultIsDialogOpen);\n const dialogOpen = providedIsDialogOpen ?? internalIsDialogOpen;\n\n // Persistent size storage\n const [storedSize, setStoredSize] = useLocalStorage<number | null>(\n sizeStorageKey ?? null,\n null,\n );\n\n // Resize state\n const [isDragging, setIsDragging] = useState(false);\n const [size, setSize] = useState<number>(() => {\n const initialSize =\n typeof providedSize === 'number'\n ? providedSize\n : storedSize != null\n ? storedSize\n : typeof defaultSize === 'number'\n ? defaultSize\n : 280;\n\n return clampSize(initialSize, minSize, maxSize);\n });\n\n const extractedStyles = extractStyles(otherProps, CONTAINER_STYLES);\n\n // Merge styles with contentPadding support\n const finalStyles = useMemo(\n () =>\n mergeStyles(\n styles,\n contentPadding != null ? { '$content-padding': contentPadding } : null,\n extractedStyles,\n ),\n [extractedStyles, contentPadding, styles],\n );\n\n // Resolve user's maxSize to pixels for JS-level clamping.\n // Percentage bounds belong to the inline host, not the dialog's host.\n const resolvedMax = useMemo(() => {\n if (typeof maxSize === 'number') return maxSize;\n if (\n typeof maxSize === 'string' &&\n containerDimension > 0 &&\n (!isDialogMode || !maxSize.trim().endsWith('%'))\n ) {\n return resolveCssSize(maxSize, containerDimension);\n }\n return undefined;\n }, [maxSize, containerDimension, isDialogMode]);\n\n // Effective max combines user's maxSize with natural boundary\n const effectiveMax = useMemo(() => {\n const values: number[] = [];\n if (resolvedMax != null) values.push(resolvedMax);\n if (Number.isFinite(naturalMax)) values.push(naturalMax);\n return values.length > 0 ? Math.min(...values) : undefined;\n }, [resolvedMax, naturalMax]);\n\n // Clamp size to min/max constraints (including natural boundaries)\n const clampValue = useCallback(\n (value: number) => clampSize(value, minSize, undefined, effectiveMax),\n [minSize, effectiveMax],\n );\n\n const setContextDragging = layoutActions.setDragging;\n\n const { moveProps } = useMove({\n onMoveStart() {\n if (!isResizable || isDialogMode) return;\n setIsDragging(true);\n setContextDragging(true);\n },\n onMove(e) {\n if (!isResizable || isDialogMode) return;\n\n let delta: number;\n\n if (e.pointerType === 'keyboard') {\n // Keyboard resize: 10px per step, 50px with Shift\n const step = e.shiftKey ? 50 : 10;\n // For keyboard, deltaX/deltaY are direction indicators (-1, 0, 1)\n const rawDelta = isHorizontal ? e.deltaX : e.deltaY;\n const direction = side === 'right' || side === 'bottom' ? -1 : 1;\n delta = rawDelta * step * direction;\n } else {\n // Pointer resize: use exact delta values\n delta = isHorizontal\n ? e.deltaX * (side === 'right' ? -1 : 1)\n : e.deltaY * (side === 'bottom' ? -1 : 1);\n }\n\n setSize((currentSize) => clampValue(currentSize + delta));\n },\n onMoveEnd() {\n setIsDragging(false);\n setContextDragging(false);\n if (isDialogMode && !isDragging) return;\n // Round to integer on release and notify parent\n setSize((currentSize) => {\n const finalSize = Math.round(clampValue(currentSize));\n // Call onSizeChange synchronously to ensure parent state is updated\n onSizeChange?.(finalSize);\n // Persist to localStorage if key is provided\n setStoredSize(finalSize);\n return finalSize;\n });\n },\n });\n\n // Sync provided size with internal state (only when providedSize actually changes)\n // This prevents resetting size when only isDragging changes (which would cause a flash)\n useEffect(() => {\n if (prevProvidedSizeRef.current !== providedSize) {\n if (\n !isDialogMode &&\n !matchesContainerSize(\n layoutRefs.panelContainerRef.current?.parentElement,\n isHorizontal,\n containerDimension,\n )\n ) {\n return;\n }\n\n prevProvidedSizeRef.current = providedSize;\n if (typeof providedSize === 'number' && !isDragging) {\n setSize(clampValue(providedSize));\n }\n }\n }, [\n providedSize,\n isDragging,\n clampValue,\n isDialogMode,\n isHorizontal,\n containerDimension,\n layoutRefs.panelContainerRef,\n ]);\n\n // Dialogs retain inline size; only inline panels follow the host's bounds.\n const applyInlineBounds = useEffectEvent(() => {\n if (\n !matchesContainerSize(\n layoutRefs.panelContainerRef.current?.parentElement,\n isHorizontal,\n containerDimension,\n )\n ) {\n return;\n }\n\n setSize((prev) => {\n const clamped = clampValue(prev);\n\n if (clamped !== prev) {\n onSizeChange?.(Math.round(clamped));\n setStoredSize(Math.round(clamped));\n }\n\n return clamped;\n });\n });\n\n useEffect(() => {\n if (!isDialogMode && !isDragging && containerDimension > 0) {\n // In an iframe ResizeObserver can precede responsive mode delivery.\n // Let that mode settle before shrinking and persisting the inline size.\n const frame = requestAnimationFrame(() => applyInlineBounds());\n return () => cancelAnimationFrame(frame);\n }\n }, [\n isDialogMode,\n isDragging,\n clampValue,\n containerDimension,\n isHorizontal,\n layoutRefs.panelContainerRef,\n ]);\n\n // Register panel with layout context\n // Include handler outside portion (minus border overlap) for proper content inset\n // In sticky, overlay, and dialog modes, panel doesn't push content, so size is 0\n // NOTE: We intentionally use `size` (not `clampValue(size)`) here to avoid a feedback\n // loop. `clampValue` depends on the opposite panel's context size, so clamping here\n // would create a period-2 oscillation through shared context. CSS --max-size handles\n // visual clamping immediately; the auto-shrink effect converges `size` state.\n const effectivePanelSize = isPanelShown && mode === 'default' ? size : 0;\n const effectiveInsetSize = Math.round(\n effectivePanelSize +\n (isResizable && effectivePanelSize > 0 ? RESIZABLE_INSET_OFFSET : 0),\n );\n\n const { registerPanel, unregisterPanel, updatePanelSize } = layoutActions;\n const { isReady } = layoutState;\n\n // Track the last reported size to prevent unnecessary updates\n const lastSizeRef = useRef<number>(effectiveInsetSize);\n\n // Register on mount, unregister on unmount\n // Using useLayoutEffect ensures registration happens before browser paint\n useLayoutEffect(() => {\n registerPanel(side, lastSizeRef.current);\n\n return () => {\n unregisterPanel(side);\n };\n }, [side, registerPanel, unregisterPanel]);\n\n // Update size when it changes (after initial mount)\n // Using useLayoutEffect ensures size updates happen before browser paint\n useLayoutEffect(() => {\n if (lastSizeRef.current !== effectiveInsetSize) {\n lastSizeRef.current = effectiveInsetSize;\n updatePanelSize(side, effectiveInsetSize);\n }\n }, [side, effectiveInsetSize, updatePanelSize]);\n\n const handleOpenChange = useCallback(\n (newIsOpen: boolean) => {\n setInternalIsOpen(newIsOpen);\n onOpenChange?.(newIsOpen);\n },\n [onOpenChange],\n );\n\n // Dismiss handler for overlay mode (click on overlay)\n const handleDismiss = useCallback(() => {\n if (isDismissable) {\n handleOpenChange(false);\n }\n }, [isDismissable, handleOpenChange]);\n\n // Register overlay panel with Layout context for coordinated dismissal\n const { registerOverlayPanel } = layoutActions;\n\n useEffect(() => {\n // Only register if in overlay mode, open, and dismissable\n if (isOverlayMode && isOpen && isDismissable) {\n const unregister = registerOverlayPanel(() => handleOpenChange(false));\n return unregister;\n }\n }, [\n isOverlayMode,\n isOpen,\n isDismissable,\n registerOverlayPanel,\n handleOpenChange,\n ]);\n\n const handleDialogOpenChange = useCallback(\n (newIsOpen: boolean) => {\n setInternalIsDialogOpen(newIsOpen);\n onDialogOpenChange?.(newIsOpen);\n },\n [onDialogOpenChange],\n );\n\n // Panel context value for child components (like LayoutPanelHeader)\n const panelContextValue = useMemo(\n () => ({\n onOpenChange: handleOpenChange,\n isOpen,\n }),\n [handleOpenChange, isOpen],\n );\n\n // Dialog mode context value - uses dialog state instead of panel state\n const dialogPanelContextValue = useMemo(\n () => ({\n onOpenChange: handleDialogOpenChange,\n isOpen: dialogOpen,\n }),\n [handleDialogOpenChange, dialogOpen],\n );\n\n const panelMods = useMemo(\n () => ({\n side,\n drag: isDragging,\n horizontal: isHorizontal,\n // Only enable transition after layout is ready to prevent initial animation\n 'has-transition': hasTransition && isReady,\n ...mods,\n }),\n [side, isDragging, isHorizontal, hasTransition, isReady, mods],\n );\n\n // Build --max-size CSS variable combining user maxSize and natural boundary\n const maxSizeCss = useMemo(() => {\n const parts: string[] = [];\n\n if (maxSize != null) {\n parts.push(typeof maxSize === 'number' ? `${maxSize}px` : maxSize);\n }\n\n if (containerDimension > 0 && Number.isFinite(naturalMax)) {\n parts.push(`${naturalMax}px`);\n }\n\n if (parts.length === 0) return undefined;\n return parts.length === 1 ? parts[0] : `min(${parts.join(', ')})`;\n }, [maxSize, naturalMax, containerDimension]);\n\n const panelStyle = useMemo(\n () => ({\n '--panel-size': `${size}px`,\n '--min-size': typeof minSize === 'number' ? `${minSize}px` : minSize,\n '--max-size': maxSizeCss,\n }),\n [size, minSize, maxSizeCss],\n );\n\n // Combine refs for panel element\n const panelRefCallback = useCallback(\n (node: HTMLDivElement | null, transitionRef?: RefCallback<HTMLElement>) => {\n // Update the combined ref\n (combinedRef as { current: HTMLDivElement | null }).current = node;\n // Call transition ref if provided\n transitionRef?.(node);\n },\n [combinedRef],\n );\n\n // Reset to default size on double-click\n const handleResetSize = useCallback(() => {\n const resetSize =\n typeof defaultSize === 'number' ? defaultSize : parseInt(defaultSize, 10);\n const clampedSize = clampValue(resetSize || 280);\n setSize(clampedSize);\n onSizeChange?.(clampedSize);\n setStoredSize(clampedSize);\n }, [defaultSize, clampValue, onSizeChange, setStoredSize]);\n\n const renderPanelContent = (\n offscreen = false,\n transitionRef?: RefCallback<HTMLElement>,\n ) => {\n const showOverlay = isOverlayMode && !offscreen;\n\n return (\n <>\n {/* Overlay backdrop for overlay mode */}\n {isOverlayMode && (\n <OverlayBackdrop\n mods={{ visible: showOverlay }}\n styles={overlayStyles}\n aria-hidden=\"true\"\n onClick={handleDismiss}\n />\n )}\n <PanelElement\n ref={(node: HTMLDivElement | null) =>\n panelRefCallback(node, transitionRef)\n }\n {...filterBaseProps(otherProps, { eventProps: true })}\n mods={{ ...panelMods, offscreen }}\n styles={finalStyles}\n style={panelStyle}\n data-side={side}\n >\n <LayoutPanelContext.Provider value={panelContextValue}>\n <LayoutContextReset>{children}</LayoutContextReset>\n </LayoutPanelContext.Provider>\n </PanelElement>\n {isResizable && (\n <ResizeHandler\n side={side}\n isDisabled={!isResizable}\n mods={{\n drag: isDragging,\n offscreen,\n 'has-transition': hasTransition && isReady,\n }}\n moveProps={moveProps}\n style={panelStyle}\n onDoubleClick={handleResetSize}\n />\n )}\n </>\n );\n };\n\n // Dialog mode - uses its own portal via DialogContainer\n if (isDialogMode) {\n return (\n <DialogContainer\n isOpen={dialogOpen}\n isDismissable={isDismissable}\n onDismiss={() => handleDialogOpenChange(false)}\n {...dialogProps}\n >\n <Dialog isDismissable={false}>\n <LayoutPanelContext.Provider value={dialogPanelContextValue}>\n <LayoutContextReset>{children}</LayoutContextReset>\n </LayoutPanelContext.Provider>\n </Dialog>\n </DialogContainer>\n );\n }\n\n // Wait for portal container to be ready before rendering\n if (!layoutRefs.isPanelContainerReady) {\n return null;\n }\n\n const portalContainer = layoutRefs.panelContainerRef.current!;\n\n // Panel with transition - portal to panel container\n if (hasTransition) {\n return createPortal(\n <DisplayTransition\n isShown={isOpen}\n animateOnMount={false}\n onToggle={(isShown) => setVisualState({ isShown, isTransitionActive })}\n >\n {({ isShown, isExiting, ref: transitionRef }) => (\n <LayoutPanelTransition isShown={isShown} isExiting={isExiting}>\n {renderPanelContent(!isShown, transitionRef)}\n </LayoutPanelTransition>\n )}\n </DisplayTransition>,\n portalContainer,\n );\n }\n\n // Simple panel (no transition) - portal to panel container\n if (!isOpen) return null;\n\n return createPortal(renderPanelContent(false), portalContainer);\n}\n\nconst _LayoutPanel = forwardRef(LayoutPanel);\n\n_LayoutPanel.displayName = 'Layout.Panel';\n\nexport { _LayoutPanel as LayoutPanel };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
2
2
  import { LayoutPanelTransitionContext, useLayoutRefsContext } from "./LayoutContext.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { useContext, useLayoutEffect, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
2
2
  import { _LayoutContent } from "./LayoutContent.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
2
2
  import { LayoutActionsContext, LayoutContextReset, LayoutPanelContext, LayoutRefsContext, LayoutStateContext, useLayoutActionsContext, useLayoutPanelContext, useLayoutRefsContext, useLayoutStateContext } from "./LayoutContext.js";
3
3
  import { _Layout } from "./Layout.js";
4
4
  import { _LayoutContent } from "./LayoutContent.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
2
2
  //#region src/components/content/Layout/utils.ts
3
3
  /**
4
4
  * Clamps a size value within min/max constraints.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { _Text } from "./Text.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
2
2
  import { extractStyles, mergeStyleLayers } from "../../../utils/styles.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
2
2
  import { RendererPrism, ensureYamlSqlExtensions } from "./prismSetup.js";
3
3
  import { CONTAINER_STYLES, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
2
2
  import { Prism as RendererPrism } from "prism-react-renderer";
3
3
 
4
4
  //#region src/components/content/PrismCode/prismSetup.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
2
2
  import { _PrismCode } from "../PrismCode/PrismCode.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { wrapNodeIfPlain } from "../../../utils/react/wrapNodeIfPlain.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
2
2
  import { useI18n } from "../../../i18n/useI18n.js";
3
3
  import { Space } from "../../layout/Space.js";
4
4
  import { Grid } from "../../layout/Grid.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.195.0 | Cube Dev Team */
2
2
  import { mergeStyleLayers } from "../../../utils/styles.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { _Item } from "../Item/Item.js";