@vuu-ui/vuu-layout 2.1.19-beta.2 → 2.1.19-beta.4

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 (353) hide show
  1. package/cjs/Component.js +14 -0
  2. package/cjs/Component.js.map +1 -0
  3. package/cjs/LayoutContainer.css.js +6 -0
  4. package/cjs/LayoutContainer.css.js.map +1 -0
  5. package/cjs/LayoutContainer.js +33 -0
  6. package/cjs/LayoutContainer.js.map +1 -0
  7. package/cjs/dock-layout/DockLayout.css.js +6 -0
  8. package/cjs/dock-layout/DockLayout.css.js.map +1 -0
  9. package/cjs/dock-layout/DockLayout.js +41 -0
  10. package/cjs/dock-layout/DockLayout.js.map +1 -0
  11. package/cjs/dock-layout/Drawer.css.js +6 -0
  12. package/cjs/dock-layout/Drawer.css.js.map +1 -0
  13. package/cjs/dock-layout/Drawer.js +95 -0
  14. package/cjs/dock-layout/Drawer.js.map +1 -0
  15. package/cjs/drag-drop/BoxModel.js +416 -0
  16. package/cjs/drag-drop/BoxModel.js.map +1 -0
  17. package/cjs/drag-drop/DragState.js +161 -0
  18. package/cjs/drag-drop/DragState.js.map +1 -0
  19. package/cjs/drag-drop/Draggable.js +192 -0
  20. package/cjs/drag-drop/Draggable.js.map +1 -0
  21. package/cjs/drag-drop/DropTarget.js +257 -0
  22. package/cjs/drag-drop/DropTarget.js.map +1 -0
  23. package/cjs/drag-drop/DropTargetRenderer.js +218 -0
  24. package/cjs/drag-drop/DropTargetRenderer.js.map +1 -0
  25. package/cjs/flexbox/Flexbox.css.js +6 -0
  26. package/cjs/flexbox/Flexbox.css.js.map +1 -0
  27. package/cjs/flexbox/Flexbox.js +69 -0
  28. package/cjs/flexbox/Flexbox.js.map +1 -0
  29. package/cjs/flexbox/FlexboxLayout.js +30 -0
  30. package/cjs/flexbox/FlexboxLayout.js.map +1 -0
  31. package/cjs/flexbox/Splitter.css.js +6 -0
  32. package/cjs/flexbox/Splitter.css.js.map +1 -0
  33. package/cjs/flexbox/Splitter.js +122 -0
  34. package/cjs/flexbox/Splitter.js.map +1 -0
  35. package/cjs/flexbox/flexbox-utils.js +95 -0
  36. package/cjs/flexbox/flexbox-utils.js.map +1 -0
  37. package/cjs/flexbox/useSplitterResizing.js +197 -0
  38. package/cjs/flexbox/useSplitterResizing.js.map +1 -0
  39. package/cjs/index.js +122 -0
  40. package/cjs/index.js.map +1 -0
  41. package/cjs/layout-action.js +24 -0
  42. package/cjs/layout-action.js.map +1 -0
  43. package/cjs/layout-header/Header.css.js +6 -0
  44. package/cjs/layout-header/Header.css.js.map +1 -0
  45. package/cjs/layout-header/Header.js +152 -0
  46. package/cjs/layout-header/Header.js.map +1 -0
  47. package/cjs/layout-header/useHeader.js +85 -0
  48. package/cjs/layout-header/useHeader.js.map +1 -0
  49. package/cjs/layout-provider/LayoutProvider.js +304 -0
  50. package/cjs/layout-provider/LayoutProvider.js.map +1 -0
  51. package/cjs/layout-provider/LayoutProviderContext.js +23 -0
  52. package/cjs/layout-provider/LayoutProviderContext.js.map +1 -0
  53. package/cjs/layout-provider/useLayoutDragDrop.js +177 -0
  54. package/cjs/layout-provider/useLayoutDragDrop.js.map +1 -0
  55. package/cjs/layout-reducer/flexUtils.js +227 -0
  56. package/cjs/layout-reducer/flexUtils.js.map +1 -0
  57. package/cjs/layout-reducer/insert-layout-element.js +286 -0
  58. package/cjs/layout-reducer/insert-layout-element.js.map +1 -0
  59. package/cjs/layout-reducer/layout-reducer.js +202 -0
  60. package/cjs/layout-reducer/layout-reducer.js.map +1 -0
  61. package/cjs/layout-reducer/layoutTypes.js +40 -0
  62. package/cjs/layout-reducer/layoutTypes.js.map +1 -0
  63. package/cjs/layout-reducer/layoutUtils.js +237 -0
  64. package/cjs/layout-reducer/layoutUtils.js.map +1 -0
  65. package/cjs/layout-reducer/move-layout-element.js +31 -0
  66. package/cjs/layout-reducer/move-layout-element.js.map +1 -0
  67. package/cjs/layout-reducer/remove-layout-element.js +237 -0
  68. package/cjs/layout-reducer/remove-layout-element.js.map +1 -0
  69. package/cjs/layout-reducer/replace-layout-element.js +96 -0
  70. package/cjs/layout-reducer/replace-layout-element.js.map +1 -0
  71. package/cjs/layout-reducer/resize-flex-children.js +62 -0
  72. package/cjs/layout-reducer/resize-flex-children.js.map +1 -0
  73. package/cjs/layout-reducer/wrap-layout-element.js +211 -0
  74. package/cjs/layout-reducer/wrap-layout-element.js.map +1 -0
  75. package/cjs/layout-view/View.css.js +6 -0
  76. package/cjs/layout-view/View.css.js.map +1 -0
  77. package/cjs/layout-view/View.js +160 -0
  78. package/cjs/layout-view/View.js.map +1 -0
  79. package/cjs/layout-view/useView.js +75 -0
  80. package/cjs/layout-view/useView.js.map +1 -0
  81. package/cjs/layout-view/useViewBroadcastChannel.js +35 -0
  82. package/cjs/layout-view/useViewBroadcastChannel.js.map +1 -0
  83. package/cjs/layout-view/useViewResize.js +42 -0
  84. package/cjs/layout-view/useViewResize.js.map +1 -0
  85. package/cjs/layout-view-actions/ViewContext.js +16 -0
  86. package/cjs/layout-view-actions/ViewContext.js.map +1 -0
  87. package/cjs/layout-view-actions/useViewActionDispatcher.js +112 -0
  88. package/cjs/layout-view-actions/useViewActionDispatcher.js.map +1 -0
  89. package/cjs/layout-view-actions/useViewContributions.js +33 -0
  90. package/cjs/layout-view-actions/useViewContributions.js.map +1 -0
  91. package/cjs/palette/Palette.css.js +6 -0
  92. package/cjs/palette/Palette.css.js.map +1 -0
  93. package/cjs/palette/Palette.js +115 -0
  94. package/cjs/palette/Palette.js.map +1 -0
  95. package/cjs/placeholder/LayoutStartPanel.css.js +6 -0
  96. package/cjs/placeholder/LayoutStartPanel.css.js.map +1 -0
  97. package/cjs/placeholder/LayoutStartPanel.js +56 -0
  98. package/cjs/placeholder/LayoutStartPanel.js.map +1 -0
  99. package/cjs/placeholder/Placeholder.css.js +6 -0
  100. package/cjs/placeholder/Placeholder.css.js.map +1 -0
  101. package/cjs/placeholder/Placeholder.js +34 -0
  102. package/cjs/placeholder/Placeholder.js.map +1 -0
  103. package/cjs/responsive/useResizeObserver.js +118 -0
  104. package/cjs/responsive/useResizeObserver.js.map +1 -0
  105. package/cjs/responsive/utils.js +34 -0
  106. package/cjs/responsive/utils.js.map +1 -0
  107. package/cjs/stack/Stack.css.js +6 -0
  108. package/cjs/stack/Stack.css.js.map +1 -0
  109. package/cjs/stack/Stack.js +150 -0
  110. package/cjs/stack/Stack.js.map +1 -0
  111. package/cjs/stack/StackLayout.js +116 -0
  112. package/cjs/stack/StackLayout.js.map +1 -0
  113. package/cjs/use-persistent-state.js +63 -0
  114. package/cjs/use-persistent-state.js.map +1 -0
  115. package/cjs/utils/pathUtils.js +293 -0
  116. package/cjs/utils/pathUtils.js.map +1 -0
  117. package/cjs/utils/propUtils.js +27 -0
  118. package/cjs/utils/propUtils.js.map +1 -0
  119. package/cjs/utils/refUtils.js +12 -0
  120. package/cjs/utils/refUtils.js.map +1 -0
  121. package/cjs/utils/styleUtils.js +15 -0
  122. package/cjs/utils/styleUtils.js.map +1 -0
  123. package/cjs/utils/typeOf.js +27 -0
  124. package/cjs/utils/typeOf.js.map +1 -0
  125. package/esm/Component.js +12 -0
  126. package/esm/Component.js.map +1 -0
  127. package/esm/LayoutContainer.css.js +4 -0
  128. package/esm/LayoutContainer.css.js.map +1 -0
  129. package/esm/LayoutContainer.js +31 -0
  130. package/esm/LayoutContainer.js.map +1 -0
  131. package/esm/dock-layout/DockLayout.css.js +4 -0
  132. package/esm/dock-layout/DockLayout.css.js.map +1 -0
  133. package/esm/dock-layout/DockLayout.js +39 -0
  134. package/esm/dock-layout/DockLayout.js.map +1 -0
  135. package/esm/dock-layout/Drawer.css.js +4 -0
  136. package/esm/dock-layout/Drawer.css.js.map +1 -0
  137. package/esm/dock-layout/Drawer.js +93 -0
  138. package/esm/dock-layout/Drawer.js.map +1 -0
  139. package/esm/drag-drop/BoxModel.js +409 -0
  140. package/esm/drag-drop/BoxModel.js.map +1 -0
  141. package/esm/drag-drop/DragState.js +159 -0
  142. package/esm/drag-drop/DragState.js.map +1 -0
  143. package/esm/drag-drop/Draggable.js +190 -0
  144. package/esm/drag-drop/Draggable.js.map +1 -0
  145. package/esm/drag-drop/DropTarget.js +253 -0
  146. package/esm/drag-drop/DropTarget.js.map +1 -0
  147. package/esm/drag-drop/DropTargetRenderer.js +216 -0
  148. package/esm/drag-drop/DropTargetRenderer.js.map +1 -0
  149. package/esm/flexbox/Flexbox.css.js +4 -0
  150. package/esm/flexbox/Flexbox.css.js.map +1 -0
  151. package/esm/flexbox/Flexbox.js +67 -0
  152. package/esm/flexbox/Flexbox.js.map +1 -0
  153. package/esm/flexbox/FlexboxLayout.js +28 -0
  154. package/esm/flexbox/FlexboxLayout.js.map +1 -0
  155. package/esm/flexbox/Splitter.css.js +4 -0
  156. package/esm/flexbox/Splitter.css.js.map +1 -0
  157. package/esm/flexbox/Splitter.js +120 -0
  158. package/esm/flexbox/Splitter.js.map +1 -0
  159. package/esm/flexbox/flexbox-utils.js +89 -0
  160. package/esm/flexbox/flexbox-utils.js.map +1 -0
  161. package/esm/flexbox/useSplitterResizing.js +195 -0
  162. package/esm/flexbox/useSplitterResizing.js.map +1 -0
  163. package/esm/index.js +33 -0
  164. package/esm/index.js.map +1 -0
  165. package/esm/layout-action.js +22 -0
  166. package/esm/layout-action.js.map +1 -0
  167. package/esm/layout-header/Header.css.js +4 -0
  168. package/esm/layout-header/Header.css.js.map +1 -0
  169. package/esm/layout-header/Header.js +150 -0
  170. package/esm/layout-header/Header.js.map +1 -0
  171. package/esm/layout-header/useHeader.js +83 -0
  172. package/esm/layout-header/useHeader.js.map +1 -0
  173. package/esm/layout-provider/LayoutProvider.js +297 -0
  174. package/esm/layout-provider/LayoutProvider.js.map +1 -0
  175. package/esm/layout-provider/LayoutProviderContext.js +20 -0
  176. package/esm/layout-provider/LayoutProviderContext.js.map +1 -0
  177. package/esm/layout-provider/useLayoutDragDrop.js +175 -0
  178. package/esm/layout-provider/useLayoutDragDrop.js.map +1 -0
  179. package/esm/layout-reducer/flexUtils.js +218 -0
  180. package/esm/layout-reducer/flexUtils.js.map +1 -0
  181. package/esm/layout-reducer/insert-layout-element.js +282 -0
  182. package/esm/layout-reducer/insert-layout-element.js.map +1 -0
  183. package/esm/layout-reducer/layout-reducer.js +200 -0
  184. package/esm/layout-reducer/layout-reducer.js.map +1 -0
  185. package/esm/layout-reducer/layoutTypes.js +36 -0
  186. package/esm/layout-reducer/layoutTypes.js.map +1 -0
  187. package/esm/layout-reducer/layoutUtils.js +226 -0
  188. package/esm/layout-reducer/layoutUtils.js.map +1 -0
  189. package/esm/layout-reducer/move-layout-element.js +29 -0
  190. package/esm/layout-reducer/move-layout-element.js.map +1 -0
  191. package/esm/layout-reducer/remove-layout-element.js +235 -0
  192. package/esm/layout-reducer/remove-layout-element.js.map +1 -0
  193. package/esm/layout-reducer/replace-layout-element.js +92 -0
  194. package/esm/layout-reducer/replace-layout-element.js.map +1 -0
  195. package/esm/layout-reducer/resize-flex-children.js +59 -0
  196. package/esm/layout-reducer/resize-flex-children.js.map +1 -0
  197. package/esm/layout-reducer/wrap-layout-element.js +209 -0
  198. package/esm/layout-reducer/wrap-layout-element.js.map +1 -0
  199. package/esm/layout-view/View.css.js +4 -0
  200. package/esm/layout-view/View.css.js.map +1 -0
  201. package/esm/layout-view/View.js +158 -0
  202. package/esm/layout-view/View.js.map +1 -0
  203. package/esm/layout-view/useView.js +73 -0
  204. package/esm/layout-view/useView.js.map +1 -0
  205. package/esm/layout-view/useViewBroadcastChannel.js +33 -0
  206. package/esm/layout-view/useViewBroadcastChannel.js.map +1 -0
  207. package/esm/layout-view/useViewResize.js +40 -0
  208. package/esm/layout-view/useViewResize.js.map +1 -0
  209. package/esm/layout-view-actions/ViewContext.js +12 -0
  210. package/esm/layout-view-actions/ViewContext.js.map +1 -0
  211. package/esm/layout-view-actions/useViewActionDispatcher.js +110 -0
  212. package/esm/layout-view-actions/useViewActionDispatcher.js.map +1 -0
  213. package/esm/layout-view-actions/useViewContributions.js +31 -0
  214. package/esm/layout-view-actions/useViewContributions.js.map +1 -0
  215. package/esm/palette/Palette.css.js +4 -0
  216. package/esm/palette/Palette.css.js.map +1 -0
  217. package/esm/palette/Palette.js +112 -0
  218. package/esm/palette/Palette.js.map +1 -0
  219. package/esm/placeholder/LayoutStartPanel.css.js +4 -0
  220. package/esm/placeholder/LayoutStartPanel.css.js.map +1 -0
  221. package/esm/placeholder/LayoutStartPanel.js +54 -0
  222. package/esm/placeholder/LayoutStartPanel.js.map +1 -0
  223. package/esm/placeholder/Placeholder.css.js +4 -0
  224. package/esm/placeholder/Placeholder.css.js.map +1 -0
  225. package/esm/placeholder/Placeholder.js +32 -0
  226. package/esm/placeholder/Placeholder.js.map +1 -0
  227. package/esm/responsive/useResizeObserver.js +112 -0
  228. package/esm/responsive/useResizeObserver.js.map +1 -0
  229. package/esm/responsive/utils.js +31 -0
  230. package/esm/responsive/utils.js.map +1 -0
  231. package/esm/stack/Stack.css.js +4 -0
  232. package/esm/stack/Stack.css.js.map +1 -0
  233. package/esm/stack/Stack.js +148 -0
  234. package/esm/stack/Stack.js.map +1 -0
  235. package/esm/stack/StackLayout.js +114 -0
  236. package/esm/stack/StackLayout.js.map +1 -0
  237. package/esm/use-persistent-state.js +58 -0
  238. package/esm/use-persistent-state.js.map +1 -0
  239. package/esm/utils/pathUtils.js +280 -0
  240. package/esm/utils/pathUtils.js.map +1 -0
  241. package/esm/utils/propUtils.js +23 -0
  242. package/esm/utils/propUtils.js.map +1 -0
  243. package/esm/utils/refUtils.js +10 -0
  244. package/esm/utils/refUtils.js.map +1 -0
  245. package/esm/utils/styleUtils.js +13 -0
  246. package/esm/utils/styleUtils.js.map +1 -0
  247. package/esm/utils/typeOf.js +23 -0
  248. package/esm/utils/typeOf.js.map +1 -0
  249. package/package.json +18 -15
  250. package/types/dock-layout/DockLayout.d.ts +4 -4
  251. package/types/dock-layout/Drawer.d.ts +4 -4
  252. package/types/drag-drop/BoxModel.d.ts +7 -7
  253. package/types/flexbox/FlexboxLayout.d.ts +4 -4
  254. package/types/flexbox/Splitter.d.ts +1 -1
  255. package/types/layout-reducer/layoutUtils.d.ts +1 -1
  256. package/types/layout-reducer/remove-layout-element.d.ts +1 -1
  257. package/types/layout-reducer/replace-layout-element.d.ts +2 -2
  258. package/types/layout-reducer/resize-flex-children.d.ts +2 -2
  259. package/types/layout-view/useView.d.ts +1 -1
  260. package/types/placeholder/Placeholder.d.ts +4 -4
  261. package/types/responsive/overflowUtils.d.ts +2 -2
  262. package/types/stack/StackLayout.d.ts +4 -4
  263. package/types/tools/devtools-box/layout-configurator.d.ts +26 -26
  264. package/types/tools/devtools-tree/layout-tree-viewer.d.ts +2 -2
  265. package/types/utils/pathUtils.d.ts +1 -1
  266. package/src/Component.js +0 -14
  267. package/src/LayoutContainer.css.js +0 -24
  268. package/src/LayoutContainer.js +0 -26
  269. package/src/debug.js +0 -16
  270. package/src/dock-layout/DockLayout.css.js +0 -36
  271. package/src/dock-layout/DockLayout.js +0 -43
  272. package/src/dock-layout/Drawer.css.js +0 -150
  273. package/src/dock-layout/Drawer.js +0 -82
  274. package/src/dock-layout/index.js +0 -2
  275. package/src/drag-drop/BoxModel.js +0 -337
  276. package/src/drag-drop/DragState.js +0 -119
  277. package/src/drag-drop/Draggable.js +0 -140
  278. package/src/drag-drop/DropTarget.js +0 -286
  279. package/src/drag-drop/DropTargetRenderer.js +0 -275
  280. package/src/drag-drop/dragDropTypes.js +0 -0
  281. package/src/drag-drop/index.js +0 -3
  282. package/src/flexbox/Flexbox.css.js +0 -45
  283. package/src/flexbox/Flexbox.js +0 -45
  284. package/src/flexbox/FlexboxLayout.js +0 -27
  285. package/src/flexbox/Splitter.css.js +0 -57
  286. package/src/flexbox/Splitter.js +0 -112
  287. package/src/flexbox/flexbox-utils.js +0 -92
  288. package/src/flexbox/flexboxTypes.js +0 -0
  289. package/src/flexbox/index.js +0 -2
  290. package/src/flexbox/useSplitterResizing.js +0 -181
  291. package/src/index.js +0 -20
  292. package/src/layout-action.js +0 -20
  293. package/src/layout-header/ActionButton.js +0 -15
  294. package/src/layout-header/Header.css.js +0 -32
  295. package/src/layout-header/Header.js +0 -99
  296. package/src/layout-header/index.js +0 -1
  297. package/src/layout-header/useHeader.js +0 -76
  298. package/src/layout-provider/LayoutProvider.js +0 -242
  299. package/src/layout-provider/LayoutProviderContext.js +0 -13
  300. package/src/layout-provider/index.js +0 -2
  301. package/src/layout-provider/useLayoutDragDrop.js +0 -147
  302. package/src/layout-reducer/flexUtils.js +0 -186
  303. package/src/layout-reducer/index.js +0 -4
  304. package/src/layout-reducer/insert-layout-element.js +0 -179
  305. package/src/layout-reducer/layout-reducer.js +0 -121
  306. package/src/layout-reducer/layoutTypes.js +0 -34
  307. package/src/layout-reducer/layoutUtils.js +0 -178
  308. package/src/layout-reducer/move-layout-element.js +0 -18
  309. package/src/layout-reducer/remove-layout-element.js +0 -161
  310. package/src/layout-reducer/replace-layout-element.js +0 -70
  311. package/src/layout-reducer/resize-flex-children.js +0 -48
  312. package/src/layout-reducer/wrap-layout-element.js +0 -134
  313. package/src/layout-view/View.css.js +0 -76
  314. package/src/layout-view/View.js +0 -116
  315. package/src/layout-view/useView.js +0 -69
  316. package/src/layout-view/useViewBroadcastChannel.js +0 -29
  317. package/src/layout-view/useViewResize.js +0 -27
  318. package/src/layout-view/viewTypes.js +0 -0
  319. package/src/layout-view-actions/ViewContext.js +0 -11
  320. package/src/layout-view-actions/useViewActionDispatcher.js +0 -116
  321. package/src/layout-view-actions/useViewContributions.js +0 -31
  322. package/src/palette/Palette.css.js +0 -31
  323. package/src/palette/Palette.js +0 -85
  324. package/src/palette/index.js +0 -1
  325. package/src/placeholder/LayoutStartPanel.css.js +0 -35
  326. package/src/placeholder/LayoutStartPanel.js +0 -57
  327. package/src/placeholder/Placeholder.css.js +0 -20
  328. package/src/placeholder/Placeholder.js +0 -33
  329. package/src/placeholder/index.js +0 -1
  330. package/src/responsive/index.js +0 -2
  331. package/src/responsive/measureMinimumNodeSize.js +0 -24
  332. package/src/responsive/useResizeObserver.js +0 -109
  333. package/src/responsive/utils.js +0 -27
  334. package/src/stack/Stack.css.js +0 -44
  335. package/src/stack/Stack.js +0 -98
  336. package/src/stack/StackLayout.js +0 -116
  337. package/src/stack/index.js +0 -3
  338. package/src/stack/stackTypes.js +0 -0
  339. package/src/tabs/TabPanel.css.js +0 -17
  340. package/src/tabs/TabPanel.js +0 -11
  341. package/src/tabs/index.js +0 -1
  342. package/src/tools/config-wrapper/ConfigWrapper.js +0 -55
  343. package/src/tools/config-wrapper/index.js +0 -1
  344. package/src/tools/devtools-box/layout-configurator.css.js +0 -113
  345. package/src/tools/devtools-tree/layout-tree-viewer.css.js +0 -17
  346. package/src/tools/index.js +0 -3
  347. package/src/use-persistent-state.js +0 -43
  348. package/src/utils/index.js +0 -5
  349. package/src/utils/pathUtils.js +0 -212
  350. package/src/utils/propUtils.js +0 -15
  351. package/src/utils/refUtils.js +0 -5
  352. package/src/utils/styleUtils.js +0 -9
  353. package/src/utils/typeOf.js +0 -15
@@ -1,44 +0,0 @@
1
- const css = `
2
- .vuuTabs {
3
- box-sizing: border-box;
4
- flex-direction: column;
5
- display: flex;
6
- }
7
-
8
- .vuuTabs-horizontal {
9
- --vuu-tabs-border-style: none solid none none;
10
- flex-direction: row;
11
- }
12
-
13
- .vuuTabs .Toolbar:before {
14
- content: "";
15
- background: var(--grey60);
16
- width: 100%;
17
- height: 1px;
18
- position: absolute;
19
- bottom: 0;
20
- left: 0;
21
- }
22
-
23
- .vuuTabs-tabPanel {
24
- flex-direction: column;
25
- flex: 1;
26
- display: flex;
27
- }
28
-
29
- .vuuTabs-tabPanel > * {
30
- flex: auto;
31
- }
32
-
33
- .vuuTabHeader + .vuuView > .vuuHeader {
34
- height: 0;
35
- overflow: hidden;
36
- }
37
-
38
- .Layout-svg-button {
39
- --spacing-medium: 5px;
40
- }
41
-
42
-
43
- `;
44
- export default css;
@@ -1,98 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { Tab, Tabstrip } from "@vuu-ui/vuu-ui-controls";
3
- import { useId } from "@vuu-ui/vuu-utils";
4
- import clsx from "clsx";
5
- import { useComponentCssInjection } from "@salt-ds/styles";
6
- import { useWindow } from "@salt-ds/window";
7
- import react, { forwardRef, useCallback, useRef } from "react";
8
- import { getDefaultTabLabel } from "../layout-reducer/index.js";
9
- import Stack_0 from "./Stack.css";
10
- const classBase = "vuuTabs";
11
- const getDefaultTabIcon = ()=>void 0;
12
- const getChildElements = (children)=>{
13
- const elements = [];
14
- react.Children.forEach(children, (child)=>{
15
- if (/*#__PURE__*/ react.isValidElement(child)) elements.push(child);
16
- else console.warn("Stack has unexpected child element type");
17
- });
18
- return elements;
19
- };
20
- const DefaultTabstripProps = {
21
- allowAddTab: false,
22
- allowCloseTab: false,
23
- allowRenameTab: false
24
- };
25
- const Stack_Stack = /*#__PURE__*/ forwardRef(function({ TabstripProps = DefaultTabstripProps, active = 0, children, className: classNameProp, getTabIcon = getDefaultTabIcon, getTabLabel = getDefaultTabLabel, id: idProp, keyBoardActivation = "manual", onAddTab, onMoveTab, onTabClose, onTabEdit, onTabSelectionChanged, showTabs = "top", style }, ref) {
26
- const targetWindow = useWindow();
27
- useComponentCssInjection({
28
- testId: "vuu-stack",
29
- css: Stack_0,
30
- window: targetWindow
31
- });
32
- const id = useId(idProp);
33
- const tabLabelsRef = useRef([]);
34
- const { allowCloseTab, allowRenameTab, className: tabstripClassName } = TabstripProps;
35
- const handleExitEditMode = useCallback((_oldText, newText, _allowDeactivation, tabIndex)=>{
36
- onTabEdit?.(tabIndex, newText);
37
- }, [
38
- onTabEdit
39
- ]);
40
- const activeChild = ()=>{
41
- if (/*#__PURE__*/ react.isValidElement(children)) return children;
42
- if (Array.isArray(children)) return children[active] ?? null;
43
- return null;
44
- };
45
- tabLabelsRef.current.length = 0;
46
- const renderTabs = ()=>getChildElements(children).map((child, idx)=>{
47
- const { closeable = allowCloseTab, id: childId = `${id}-${idx}`, "data-tab-location": tabLocation } = child.props;
48
- const label = getTabLabel(child, idx, tabLabelsRef.current);
49
- tabLabelsRef.current.push(label);
50
- return /*#__PURE__*/ jsx(Tab, {
51
- ariaControls: childId,
52
- "data-icon": getTabIcon(child, idx),
53
- id: `${childId}-tab`,
54
- index: idx,
55
- label: label,
56
- location: tabLocation,
57
- closeable: closeable,
58
- editable: allowRenameTab
59
- }, childId);
60
- });
61
- const child = activeChild();
62
- const isHorizontal = "left" === showTabs || "right" === showTabs;
63
- const tabstripOrientation = isHorizontal ? "vertical" : "horizontal";
64
- return /*#__PURE__*/ jsxs("div", {
65
- className: clsx(classBase, classNameProp, {
66
- [`${classBase}-horizontal`]: isHorizontal
67
- }),
68
- style: style,
69
- id: id,
70
- ref: ref,
71
- children: [
72
- showTabs ? /*#__PURE__*/ jsx(Tabstrip, {
73
- "aria-label": "data tabs",
74
- ...TabstripProps,
75
- activeTabIndex: TabstripProps?.activeTabIndex ?? (null === child ? -1 : active),
76
- allowDragDrop: false !== TabstripProps.allowDragDrop,
77
- animateSelectionThumb: true,
78
- className: clsx("vuuTabHeader", tabstripClassName),
79
- keyBoardActivation: keyBoardActivation,
80
- onActiveChange: onTabSelectionChanged,
81
- onAddTab: onAddTab,
82
- onCloseTab: onTabClose,
83
- onExitEditMode: handleExitEditMode,
84
- onMoveTab: onMoveTab,
85
- orientation: tabstripOrientation,
86
- children: renderTabs()
87
- }) : null,
88
- /*#__PURE__*/ jsx("div", {
89
- "aria-labelledby": `${id}-${active}`,
90
- className: `${classBase}-tabPanel`,
91
- role: "tabpanel",
92
- children: child
93
- })
94
- ]
95
- });
96
- });
97
- Stack_Stack.displayName = "Stack";
98
- export { Stack_Stack as Stack };
@@ -1,116 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { registerComponent, useId } from "@vuu-ui/vuu-utils";
3
- import react, { useCallback, useRef } from "react";
4
- import { useLayoutCreateNewChild, useLayoutProviderDispatch } from "../layout-provider/index.js";
5
- import { getDefaultTabLabel } from "../layout-reducer/index.js";
6
- import { useViewActionDispatcher } from "../layout-view-actions/useViewActionDispatcher.js";
7
- import { useViewBroadcastChannel } from "../layout-view/useViewBroadcastChannel.js";
8
- import { usePersistentState } from "../use-persistent-state.js";
9
- import { Stack } from "./Stack.js";
10
- const StackLayout = (props)=>{
11
- const rootRef = useRef(null);
12
- const dispatch = useLayoutProviderDispatch();
13
- const { loadState } = usePersistentState();
14
- const { createNewChild: createNewChildProp, id: idProp, onTabSelectionChanged, path, ...restProps } = props;
15
- const { children } = props;
16
- const id = useId(idProp);
17
- const sendMessage = useViewBroadcastChannel();
18
- const [dispatchViewAction] = useViewActionDispatcher(id, rootRef, path);
19
- const createNewChildFromContext = useLayoutCreateNewChild();
20
- const createNewChild = createNewChildProp ?? createNewChildFromContext;
21
- const handleTabSelection = (nextIdx)=>{
22
- if (path) {
23
- dispatch({
24
- type: "switch-tab",
25
- id,
26
- path,
27
- nextIdx
28
- });
29
- onTabSelectionChanged?.(nextIdx);
30
- }
31
- };
32
- const handleTabClose = useCallback((tabIndex)=>{
33
- if (Array.isArray(children)) {
34
- const { props: { "data-path": dataPath, path = dataPath } } = children[tabIndex];
35
- sendMessage({
36
- type: "layout-closed",
37
- path
38
- });
39
- setTimeout(()=>{
40
- dispatch({
41
- type: "remove",
42
- path
43
- });
44
- }, 100);
45
- }
46
- }, [
47
- children,
48
- dispatch,
49
- sendMessage
50
- ]);
51
- const handleTabAdd = useCallback(()=>{
52
- if (path) {
53
- const tabIndex = react.Children.count(children);
54
- dispatch({
55
- type: "add",
56
- path,
57
- component: createNewChild(tabIndex)
58
- });
59
- }
60
- }, [
61
- children,
62
- createNewChild,
63
- dispatch,
64
- path
65
- ]);
66
- const handleMoveTab = useCallback((fromIndex, toIndex)=>{
67
- if (path) dispatch({
68
- fromIndex,
69
- toIndex,
70
- path,
71
- type: "move-child"
72
- });
73
- }, [
74
- dispatch,
75
- path
76
- ]);
77
- const handleMouseDown = async (e, index)=>{
78
- let readyToDrag;
79
- const preDragActivity = async ()=>new Promise((resolve)=>{
80
- console.log("preDragActivity: Ok, gonna release the drag");
81
- readyToDrag = resolve;
82
- });
83
- const dragging = await dispatchViewAction({
84
- type: "mousedown",
85
- index,
86
- preDragActivity
87
- }, e);
88
- if (dragging) readyToDrag?.(void 0);
89
- };
90
- const handleTabEdit = (tabIndex, text)=>{
91
- dispatch({
92
- type: "set-title",
93
- path: `${path}.${tabIndex}`,
94
- title: text
95
- });
96
- };
97
- const getTabLabel = (component, idx, existingLabels)=>{
98
- const { id, title } = component.props;
99
- return loadState(id, "view-title") || title || getDefaultTabLabel(component, idx, existingLabels);
100
- };
101
- return /*#__PURE__*/ jsx(Stack, {
102
- ...restProps,
103
- id: id,
104
- getTabLabel: getTabLabel,
105
- onMouseDown: handleMouseDown,
106
- onMoveTab: handleMoveTab,
107
- onAddTab: handleTabAdd,
108
- onTabClose: handleTabClose,
109
- onTabEdit: handleTabEdit,
110
- onTabSelectionChanged: handleTabSelection,
111
- ref: rootRef
112
- });
113
- };
114
- StackLayout.displayName = "Stack";
115
- registerComponent("Stack", StackLayout, "container");
116
- export { StackLayout };
@@ -1,3 +0,0 @@
1
- export * from "./Stack.js";
2
- export * from "./StackLayout.js";
3
- export * from "./stackTypes.js";
File without changes
@@ -1,17 +0,0 @@
1
- const css = `
2
- .TabPanel {
3
- flex: 1;
4
- display: flex;
5
- }
6
-
7
- .TabPanel > * {
8
- height: 100%;
9
- }
10
-
11
- .TabPanel > .View > .Header {
12
- display: none;
13
- }
14
-
15
-
16
- `;
17
- export default css;
@@ -1,11 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import "./TabPanel.css";
3
- const TabPanel = ({ ariaLabelledBy, children, id })=>/*#__PURE__*/ jsx("div", {
4
- className: "TabPanel",
5
- id: id,
6
- role: "tabpanel",
7
- "aria-labelledby": ariaLabelledBy,
8
- children: children
9
- });
10
- var tabs_TabPanel = TabPanel;
11
- export default tabs_TabPanel;
package/src/tabs/index.js DELETED
@@ -1 +0,0 @@
1
- export { default as TabPanel } from "./TabPanel.js";
@@ -1,55 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import react, { useState } from "react";
3
- import { LayoutConfigurator, LayoutTreeViewer } from "../index.js";
4
- import { followPathToComponent } from "../../index.js";
5
- const ConfigWrapper = ({ children })=>{
6
- const designMode = false;
7
- const [layout, setLayout] = useState(children);
8
- const [selectedComponent, setSelectedComponent] = useState(children);
9
- const handleSelection = (selectedPath)=>{
10
- const targetComponent = followPathToComponent(layout, selectedPath);
11
- setSelectedComponent(targetComponent);
12
- };
13
- const handleChange = (property, value)=>{
14
- console.log(`change ${property} -> ${value}`);
15
- const newComponent = /*#__PURE__*/ react.cloneElement(selectedComponent, {
16
- style: {
17
- ...selectedComponent.props.style,
18
- [property]: value
19
- }
20
- });
21
- setSelectedComponent(newComponent);
22
- setLayout(/*#__PURE__*/ react.cloneElement(layout, {}, newComponent));
23
- };
24
- return /*#__PURE__*/ jsxs("div", {
25
- "data-design-mode": `${designMode}`,
26
- children: [
27
- layout,
28
- /*#__PURE__*/ jsx("br", {}),
29
- /*#__PURE__*/ jsxs("div", {
30
- style: {
31
- display: "flex"
32
- },
33
- children: [
34
- /*#__PURE__*/ jsx(LayoutConfigurator, {
35
- height: 300,
36
- managedStyle: selectedComponent.props.style,
37
- width: 300,
38
- onChange: handleChange,
39
- style: void 0
40
- }),
41
- /*#__PURE__*/ jsx(LayoutTreeViewer, {
42
- layout: layout,
43
- onSelect: handleSelection,
44
- style: {
45
- width: 300,
46
- height: 300,
47
- backgroundColor: "#ccc"
48
- }
49
- })
50
- ]
51
- })
52
- ]
53
- });
54
- };
55
- export { ConfigWrapper };
@@ -1 +0,0 @@
1
- export * from "./ConfigWrapper.js";
@@ -1,113 +0,0 @@
1
- const css = `
2
- [data-design-mode="true"] .Component {
3
- filter: grayscale();
4
- opacity: .4;
5
- }
6
-
7
- [data-design-mode="true"] .Component:after {
8
- color: #000;
9
- content: "Component";
10
- background-color: #ff0;
11
- height: 12px;
12
- }
13
-
14
- .LayoutConfigurator {
15
- --margin-color: #f3cea5;
16
- --border-color: #fddda0;
17
- --padding-color: #c6d092;
18
- --content-color: #8cb6c0;
19
- background-color: var(--margin-color);
20
- flex-direction: column;
21
- align-items: stretch;
22
- display: flex;
23
- }
24
-
25
- .LayoutConfigurator .layout-outer {
26
- flex-direction: column;
27
- flex: auto;
28
- align-items: stretch;
29
- display: flex;
30
- }
31
-
32
- .LayoutBox {
33
- --hw-control-font-size: 13px;
34
- --hw-text-input-bg: #ffffff4d;
35
- --hwTextInput-padding: 3px;
36
- --hw-text-input-position: absolute;
37
- --hwTextInput-width: 30px;
38
- flex: auto;
39
- }
40
-
41
- .LayoutBox > .layout-top {
42
- flex-direction: row;
43
- flex: 0 0 40px;
44
- align-items: center;
45
- padding-left: 12px;
46
- display: flex;
47
- position: relative;
48
- }
49
-
50
- .LayoutBox > .layout-bottom {
51
- flex-direction: row;
52
- flex: 0 0 40px;
53
- align-items: center;
54
- display: flex;
55
- position: relative;
56
- }
57
-
58
- .LayoutBox > .layout-inner > .layout-right, .LayoutBox > .layout-inner > .layout-left {
59
- flex-direction: column;
60
- flex: 0 0 40px;
61
- justify-content: center;
62
- align-items: center;
63
- display: flex;
64
- }
65
-
66
- .layout-top, .layout-bottom {
67
- --hw-text-input-margin: 0 0 0 -15px;
68
- }
69
-
70
- .layout-top > .layout-input, .layout-bottom > .layout-input {
71
- left: 50%;
72
- }
73
-
74
- .LayoutBox > .layout-inner {
75
- flex-direction: row;
76
- flex: auto;
77
- align-items: stretch;
78
- display: flex;
79
- }
80
-
81
- .LayoutBox.layout-margin {
82
- background-color: var(--margin-color);
83
- border: 2px dashed #000;
84
- }
85
-
86
- .LayoutBox.layout-border {
87
- background-color: var(--border-color);
88
- border: 2px solid #000;
89
- }
90
-
91
- .LayoutBox.layout-padding {
92
- background-color: var(--padding-color);
93
- border: 2px dashed #000;
94
- }
95
-
96
- .LayoutBox .layout-content {
97
- background-color: var(--content-color);
98
- border: 2px solid gray;
99
- flex: auto;
100
- }
101
-
102
- .LayoutBox .layout-title {
103
- color: #161616;
104
- font-size: 11px;
105
- line-height: 15px;
106
- position: absolute;
107
- top: 1px;
108
- left: 4px;
109
- }
110
-
111
-
112
- `;
113
- export default css;
@@ -1,17 +0,0 @@
1
- const css = `
2
- .hwLayoutTreeNode {
3
- cursor: default;
4
- }
5
-
6
- .hwLayoutTreeNode:hover {
7
- background-color: #fff3;
8
- }
9
-
10
- .hwLayoutTreeNode[aria-selected="true"] {
11
- color: #fff;
12
- background-color: #6495ed;
13
- }
14
-
15
-
16
- `;
17
- export default css;
@@ -1,3 +0,0 @@
1
- export * from "./config-wrapper/index.js";
2
- export * from "./devtools-box/layout-configurator.js";
3
- export * from "./devtools-tree/layout-tree-viewer.js";
@@ -1,43 +0,0 @@
1
- import { useCallback } from "react";
2
- const persistentState = new Map();
3
- const getPersistentState = (id)=>persistentState.get(id);
4
- const hasPersistentState = (id)=>persistentState.has(id);
5
- const setPersistentState = (id, value)=>persistentState.set(id, value);
6
- const usePersistentState = ()=>{
7
- const loadState = useCallback((id, key)=>{
8
- const state = persistentState.get(id);
9
- if (state) {
10
- if (void 0 !== key) return state[key];
11
- return state;
12
- }
13
- }, []);
14
- const saveState = useCallback((id, key, data)=>{
15
- if (void 0 === key) persistentState.set(id, data);
16
- else if (persistentState.has(id)) {
17
- const state = persistentState.get(id);
18
- persistentState.set(id, {
19
- ...state,
20
- [key]: data
21
- });
22
- } else persistentState.set(id, {
23
- [key]: data
24
- });
25
- }, []);
26
- const purgeState = useCallback((id, key)=>{
27
- if (persistentState.has(id)) if (void 0 === key) persistentState.delete(id);
28
- else {
29
- const state = persistentState.get(id);
30
- if (state[key]) {
31
- const { [key]: _doomedState, ...rest } = persistentState.get(id);
32
- if (Object.keys(rest).length > 0) persistentState.set(id, rest);
33
- else persistentState.delete(id);
34
- }
35
- }
36
- }, []);
37
- return {
38
- loadState,
39
- saveState,
40
- purgeState
41
- };
42
- };
43
- export { getPersistentState, hasPersistentState, setPersistentState, usePersistentState };
@@ -1,5 +0,0 @@
1
- export * from "./pathUtils.js";
2
- export * from "./propUtils.js";
3
- export * from "./refUtils.js";
4
- export * from "./styleUtils.js";
5
- export * from "./typeOf.js";