@vuu-ui/vuu-layout 0.8.32 → 0.8.34

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 (261) hide show
  1. package/cjs/Component.js +14 -0
  2. package/cjs/Component.js.map +1 -0
  3. package/cjs/DraggableLayout.css +18 -0
  4. package/cjs/DraggableLayout.js +24 -0
  5. package/cjs/DraggableLayout.js.map +1 -0
  6. package/cjs/dock-layout/DockLayout.css +36 -0
  7. package/cjs/dock-layout/DockLayout.js +27 -0
  8. package/cjs/dock-layout/DockLayout.js.map +1 -0
  9. package/cjs/dock-layout/Drawer.css +159 -0
  10. package/cjs/dock-layout/Drawer.js +87 -0
  11. package/cjs/dock-layout/Drawer.js.map +1 -0
  12. package/cjs/drag-drop/BoxModel.js +422 -0
  13. package/cjs/drag-drop/BoxModel.js.map +1 -0
  14. package/cjs/drag-drop/DragState.js +154 -0
  15. package/cjs/drag-drop/DragState.js.map +1 -0
  16. package/cjs/drag-drop/Draggable.js +192 -0
  17. package/cjs/drag-drop/Draggable.js.map +1 -0
  18. package/cjs/drag-drop/DropMenu.css +71 -0
  19. package/cjs/drag-drop/DropMenu.js +46 -0
  20. package/cjs/drag-drop/DropMenu.js.map +1 -0
  21. package/cjs/drag-drop/DropTarget.js +244 -0
  22. package/cjs/drag-drop/DropTarget.js.map +1 -0
  23. package/cjs/drag-drop/DropTargetRenderer.css +40 -0
  24. package/cjs/drag-drop/DropTargetRenderer.js +233 -0
  25. package/cjs/drag-drop/DropTargetRenderer.js.map +1 -0
  26. package/cjs/flexbox/Flexbox.css +45 -0
  27. package/cjs/flexbox/Flexbox.js +61 -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/FluidGrid.css +134 -0
  32. package/cjs/flexbox/FluidGrid.js +78 -0
  33. package/cjs/flexbox/FluidGrid.js.map +1 -0
  34. package/cjs/flexbox/FluidGridLayout.js +14 -0
  35. package/cjs/flexbox/FluidGridLayout.js.map +1 -0
  36. package/cjs/flexbox/Splitter.css +148 -0
  37. package/cjs/flexbox/Splitter.js +113 -0
  38. package/cjs/flexbox/Splitter.js.map +1 -0
  39. package/cjs/flexbox/flexbox-utils.js +109 -0
  40. package/cjs/flexbox/flexbox-utils.js.map +1 -0
  41. package/cjs/flexbox/useResponsiveSizing.js +62 -0
  42. package/cjs/flexbox/useResponsiveSizing.js.map +1 -0
  43. package/cjs/flexbox/useSplitterResizing.js +209 -0
  44. package/cjs/flexbox/useSplitterResizing.js.map +1 -0
  45. package/cjs/index.js +132 -19
  46. package/cjs/index.js.map +1 -7
  47. package/cjs/layout-action.js +27 -0
  48. package/cjs/layout-action.js.map +1 -0
  49. package/cjs/layout-header/Header.css +9 -0
  50. package/cjs/layout-header/Header.js +122 -0
  51. package/cjs/layout-header/Header.js.map +1 -0
  52. package/cjs/layout-provider/LayoutProvider.js +178 -0
  53. package/cjs/layout-provider/LayoutProvider.js.map +1 -0
  54. package/cjs/layout-provider/LayoutProviderContext.js +14 -0
  55. package/cjs/layout-provider/LayoutProviderContext.js.map +1 -0
  56. package/cjs/layout-provider/useLayoutDragDrop.js +170 -0
  57. package/cjs/layout-provider/useLayoutDragDrop.js.map +1 -0
  58. package/cjs/layout-reducer/flexUtils.js +219 -0
  59. package/cjs/layout-reducer/flexUtils.js.map +1 -0
  60. package/cjs/layout-reducer/insert-layout-element.js +273 -0
  61. package/cjs/layout-reducer/insert-layout-element.js.map +1 -0
  62. package/cjs/layout-reducer/layout-reducer.js +198 -0
  63. package/cjs/layout-reducer/layout-reducer.js.map +1 -0
  64. package/cjs/layout-reducer/layoutTypes.js +41 -0
  65. package/cjs/layout-reducer/layoutTypes.js.map +1 -0
  66. package/cjs/layout-reducer/layoutUtils.js +226 -0
  67. package/cjs/layout-reducer/layoutUtils.js.map +1 -0
  68. package/cjs/layout-reducer/move-layout-element.js +31 -0
  69. package/cjs/layout-reducer/move-layout-element.js.map +1 -0
  70. package/cjs/layout-reducer/remove-layout-element.js +223 -0
  71. package/cjs/layout-reducer/remove-layout-element.js.map +1 -0
  72. package/cjs/layout-reducer/replace-layout-element.js +91 -0
  73. package/cjs/layout-reducer/replace-layout-element.js.map +1 -0
  74. package/cjs/layout-reducer/resize-flex-children.js +61 -0
  75. package/cjs/layout-reducer/resize-flex-children.js.map +1 -0
  76. package/cjs/layout-reducer/wrap-layout-element.js +212 -0
  77. package/cjs/layout-reducer/wrap-layout-element.js.map +1 -0
  78. package/cjs/layout-view/View.css +62 -0
  79. package/cjs/layout-view/View.js +155 -0
  80. package/cjs/layout-view/View.js.map +1 -0
  81. package/cjs/layout-view/useView.js +92 -0
  82. package/cjs/layout-view/useView.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 +103 -0
  88. package/cjs/layout-view-actions/useViewActionDispatcher.js.map +1 -0
  89. package/cjs/palette/Palette.css +33 -0
  90. package/cjs/palette/Palette.js +118 -0
  91. package/cjs/palette/Palette.js.map +1 -0
  92. package/cjs/placeholder/LayoutStartPanel.css +30 -0
  93. package/cjs/placeholder/LayoutStartPanel.js +51 -0
  94. package/cjs/placeholder/LayoutStartPanel.js.map +1 -0
  95. package/cjs/placeholder/Placeholder.css +17 -0
  96. package/cjs/placeholder/Placeholder.js +25 -0
  97. package/cjs/placeholder/Placeholder.js.map +1 -0
  98. package/cjs/registry/ComponentRegistry.js +27 -0
  99. package/cjs/registry/ComponentRegistry.js.map +1 -0
  100. package/cjs/responsive/breakpoints.js +36 -0
  101. package/cjs/responsive/breakpoints.js.map +1 -0
  102. package/cjs/responsive/use-breakpoints.js +76 -0
  103. package/cjs/responsive/use-breakpoints.js.map +1 -0
  104. package/cjs/responsive/useResizeObserver.js +118 -0
  105. package/cjs/responsive/useResizeObserver.js.map +1 -0
  106. package/cjs/responsive/utils.js +34 -0
  107. package/cjs/responsive/utils.js.map +1 -0
  108. package/cjs/stack/Stack.css +39 -0
  109. package/cjs/stack/Stack.js +139 -0
  110. package/cjs/stack/Stack.js.map +1 -0
  111. package/cjs/stack/StackLayout.js +122 -0
  112. package/cjs/stack/StackLayout.js.map +1 -0
  113. package/cjs/use-persistent-state.js +109 -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/DraggableLayout.css +18 -0
  128. package/esm/DraggableLayout.js +22 -0
  129. package/esm/DraggableLayout.js.map +1 -0
  130. package/esm/dock-layout/DockLayout.css +36 -0
  131. package/esm/dock-layout/DockLayout.js +25 -0
  132. package/esm/dock-layout/DockLayout.js.map +1 -0
  133. package/esm/dock-layout/Drawer.css +159 -0
  134. package/esm/dock-layout/Drawer.js +85 -0
  135. package/esm/dock-layout/Drawer.js.map +1 -0
  136. package/esm/drag-drop/BoxModel.js +415 -0
  137. package/esm/drag-drop/BoxModel.js.map +1 -0
  138. package/esm/drag-drop/DragState.js +152 -0
  139. package/esm/drag-drop/DragState.js.map +1 -0
  140. package/esm/drag-drop/Draggable.js +190 -0
  141. package/esm/drag-drop/Draggable.js.map +1 -0
  142. package/esm/drag-drop/DropMenu.css +71 -0
  143. package/esm/drag-drop/DropMenu.js +43 -0
  144. package/esm/drag-drop/DropMenu.js.map +1 -0
  145. package/esm/drag-drop/DropTarget.js +240 -0
  146. package/esm/drag-drop/DropTarget.js.map +1 -0
  147. package/esm/drag-drop/DropTargetRenderer.css +40 -0
  148. package/esm/drag-drop/DropTargetRenderer.js +231 -0
  149. package/esm/drag-drop/DropTargetRenderer.js.map +1 -0
  150. package/esm/flexbox/Flexbox.css +45 -0
  151. package/esm/flexbox/Flexbox.js +59 -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/FluidGrid.css +134 -0
  156. package/esm/flexbox/FluidGrid.js +76 -0
  157. package/esm/flexbox/FluidGrid.js.map +1 -0
  158. package/esm/flexbox/FluidGridLayout.js +12 -0
  159. package/esm/flexbox/FluidGridLayout.js.map +1 -0
  160. package/esm/flexbox/Splitter.css +148 -0
  161. package/esm/flexbox/Splitter.js +111 -0
  162. package/esm/flexbox/Splitter.js.map +1 -0
  163. package/esm/flexbox/flexbox-utils.js +103 -0
  164. package/esm/flexbox/flexbox-utils.js.map +1 -0
  165. package/esm/flexbox/useResponsiveSizing.js +60 -0
  166. package/esm/flexbox/useResponsiveSizing.js.map +1 -0
  167. package/esm/flexbox/useSplitterResizing.js +207 -0
  168. package/esm/flexbox/useSplitterResizing.js.map +1 -0
  169. package/esm/index.js +36 -19
  170. package/esm/index.js.map +1 -7
  171. package/esm/layout-action.js +25 -0
  172. package/esm/layout-action.js.map +1 -0
  173. package/esm/layout-header/Header.css +9 -0
  174. package/esm/layout-header/Header.js +120 -0
  175. package/esm/layout-header/Header.js.map +1 -0
  176. package/esm/layout-provider/LayoutProvider.js +172 -0
  177. package/esm/layout-provider/LayoutProvider.js.map +1 -0
  178. package/esm/layout-provider/LayoutProviderContext.js +12 -0
  179. package/esm/layout-provider/LayoutProviderContext.js.map +1 -0
  180. package/esm/layout-provider/useLayoutDragDrop.js +168 -0
  181. package/esm/layout-provider/useLayoutDragDrop.js.map +1 -0
  182. package/esm/layout-reducer/flexUtils.js +210 -0
  183. package/esm/layout-reducer/flexUtils.js.map +1 -0
  184. package/esm/layout-reducer/insert-layout-element.js +269 -0
  185. package/esm/layout-reducer/insert-layout-element.js.map +1 -0
  186. package/esm/layout-reducer/layout-reducer.js +196 -0
  187. package/esm/layout-reducer/layout-reducer.js.map +1 -0
  188. package/esm/layout-reducer/layoutTypes.js +37 -0
  189. package/esm/layout-reducer/layoutTypes.js.map +1 -0
  190. package/esm/layout-reducer/layoutUtils.js +215 -0
  191. package/esm/layout-reducer/layoutUtils.js.map +1 -0
  192. package/esm/layout-reducer/move-layout-element.js +29 -0
  193. package/esm/layout-reducer/move-layout-element.js.map +1 -0
  194. package/esm/layout-reducer/remove-layout-element.js +221 -0
  195. package/esm/layout-reducer/remove-layout-element.js.map +1 -0
  196. package/esm/layout-reducer/replace-layout-element.js +87 -0
  197. package/esm/layout-reducer/replace-layout-element.js.map +1 -0
  198. package/esm/layout-reducer/resize-flex-children.js +58 -0
  199. package/esm/layout-reducer/resize-flex-children.js.map +1 -0
  200. package/esm/layout-reducer/wrap-layout-element.js +210 -0
  201. package/esm/layout-reducer/wrap-layout-element.js.map +1 -0
  202. package/esm/layout-view/View.css +62 -0
  203. package/esm/layout-view/View.js +153 -0
  204. package/esm/layout-view/View.js.map +1 -0
  205. package/esm/layout-view/useView.js +90 -0
  206. package/esm/layout-view/useView.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 +101 -0
  212. package/esm/layout-view-actions/useViewActionDispatcher.js.map +1 -0
  213. package/esm/palette/Palette.css +33 -0
  214. package/esm/palette/Palette.js +115 -0
  215. package/esm/palette/Palette.js.map +1 -0
  216. package/esm/placeholder/LayoutStartPanel.css +30 -0
  217. package/esm/placeholder/LayoutStartPanel.js +49 -0
  218. package/esm/placeholder/LayoutStartPanel.js.map +1 -0
  219. package/esm/placeholder/Placeholder.css +17 -0
  220. package/esm/placeholder/Placeholder.js +23 -0
  221. package/esm/placeholder/Placeholder.js.map +1 -0
  222. package/esm/registry/ComponentRegistry.js +21 -0
  223. package/esm/registry/ComponentRegistry.js.map +1 -0
  224. package/esm/responsive/breakpoints.js +33 -0
  225. package/esm/responsive/breakpoints.js.map +1 -0
  226. package/esm/responsive/use-breakpoints.js +74 -0
  227. package/esm/responsive/use-breakpoints.js.map +1 -0
  228. package/esm/responsive/useResizeObserver.js +112 -0
  229. package/esm/responsive/useResizeObserver.js.map +1 -0
  230. package/esm/responsive/utils.js +31 -0
  231. package/esm/responsive/utils.js.map +1 -0
  232. package/esm/stack/Stack.css +39 -0
  233. package/esm/stack/Stack.js +137 -0
  234. package/esm/stack/Stack.js.map +1 -0
  235. package/esm/stack/StackLayout.js +120 -0
  236. package/esm/stack/StackLayout.js.map +1 -0
  237. package/esm/use-persistent-state.js +104 -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 +12 -15
  250. package/types/index.d.ts +1 -1
  251. package/types/layout-header/Header.d.ts +1 -1
  252. package/types/layout-reducer/layoutTypes.d.ts +1 -1
  253. package/types/layout-view/index.d.ts +2 -4
  254. package/types/layout-view/useView.d.ts +2 -2
  255. package/types/{layout-view → layout-view-actions}/ViewContext.d.ts +1 -1
  256. package/types/layout-view-actions/index.d.ts +2 -0
  257. package/LICENSE +0 -201
  258. package/README.md +0 -1
  259. package/index.css +0 -2
  260. package/index.css.map +0 -7
  261. /package/types/{layout-view → layout-view-actions}/useViewActionDispatcher.d.ts +0 -0
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var React = require('react');
5
+ var ComponentRegistry = require('./registry/ComponentRegistry.js');
6
+
7
+ const Component = React.forwardRef(function Component2({ resizeable, ...props }, ref) {
8
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: "Component", ref });
9
+ });
10
+ Component.displayName = "Component";
11
+ ComponentRegistry.registerComponent("Component", Component);
12
+
13
+ module.exports = Component;
14
+ //# sourceMappingURL=Component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Component.js","sources":["../src/Component.tsx"],"sourcesContent":["import React, { forwardRef, HTMLAttributes } from 'react';\nimport { registerComponent } from './registry/ComponentRegistry';\n\nimport './Component.css';\n\nexport interface ComponentProps extends HTMLAttributes<HTMLDivElement> {\n resizeable?: boolean;\n}\n\nconst Component = forwardRef(function Component(\n { resizeable, ...props }: ComponentProps,\n ref: React.ForwardedRef<HTMLDivElement>\n) {\n return <div {...props} className=\"Component\" ref={ref} />;\n}) as React.FunctionComponent<ComponentProps>;\nComponent.displayName = 'Component';\n\nexport default Component;\n\nregisterComponent('Component', Component);\n"],"names":["forwardRef","Component","registerComponent"],"mappings":";;;;;;AASM,MAAA,SAAA,GAAYA,iBAAW,SAASC,UAAAA,CACpC,EAAE,UAAY,EAAA,GAAG,KAAM,EAAA,EACvB,GACA,EAAA;AACA,EAAA,sCAAQ,KAAK,EAAA,EAAA,GAAG,KAAO,EAAA,SAAA,EAAU,aAAY,GAAU,EAAA,CAAA,CAAA;AACzD,CAAC,EAAA;AACD,SAAA,CAAU,WAAc,GAAA,WAAA,CAAA;AAIxBC,mCAAA,CAAkB,aAAa,SAAS,CAAA;;;;"}
@@ -0,0 +1,18 @@
1
+ .DraggableLayout {
2
+ display: inline-block;
3
+ outline: none;
4
+ }
5
+
6
+ [data-dragging='true'] {
7
+ position: absolute !important;
8
+ z-index: 100;
9
+ }
10
+
11
+ .vuuSimpleDraggableWrapper {
12
+ background-color: white;
13
+ box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.2);
14
+ }
15
+ .vuuSimpleDraggableWrapper > * {
16
+ height: 100%;
17
+ width: 100%;
18
+ }
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var cx = require('clsx');
5
+ var React = require('react');
6
+ var ComponentRegistry = require('./registry/ComponentRegistry.js');
7
+
8
+ const DraggableLayout = React.forwardRef(function DraggableLayout2({
9
+ children,
10
+ className: classNameProp,
11
+ dropTarget,
12
+ resizeable: _,
13
+ // ignore, its just a marker used by the layout system
14
+ ...htmlAttributes
15
+ }, forwardedRef) {
16
+ const className = cx("DraggableLayout", classNameProp);
17
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className, ref: forwardedRef, ...htmlAttributes, children });
18
+ });
19
+ const componentName = "DraggableLayout";
20
+ DraggableLayout.displayName = componentName;
21
+ ComponentRegistry.registerComponent(componentName, DraggableLayout, "container");
22
+
23
+ exports.DraggableLayout = DraggableLayout;
24
+ //# sourceMappingURL=DraggableLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DraggableLayout.js","sources":["../src/DraggableLayout.tsx"],"sourcesContent":["import classnames from \"clsx\";\nimport { ForwardedRef, forwardRef, HTMLAttributes } from \"react\";\nimport { registerComponent } from \"./registry/ComponentRegistry\";\n\nimport \"./DraggableLayout.css\";\n\nexport interface DraggableLayoutProps extends HTMLAttributes<HTMLDivElement> {\n dropTarget?: boolean;\n resizeable?: boolean;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const DraggableLayout = forwardRef(function DraggableLayout(\n {\n children,\n className: classNameProp,\n dropTarget,\n resizeable: _, // ignore, its just a marker used by the layout system\n ...htmlAttributes\n }: DraggableLayoutProps,\n forwardedRef: ForwardedRef<HTMLDivElement>\n) {\n const className = classnames(\"DraggableLayout\", classNameProp);\n return (\n <div className={className} ref={forwardedRef} {...htmlAttributes}>\n {children}\n </div>\n );\n});\n\nconst componentName = \"DraggableLayout\";\n\nDraggableLayout.displayName = componentName;\n\nregisterComponent(componentName, DraggableLayout, \"container\");\n"],"names":["forwardRef","DraggableLayout","classnames","registerComponent"],"mappings":";;;;;;;AAWa,MAAA,eAAA,GAAkBA,gBAAW,CAAA,SAASC,gBACjD,CAAA;AAAA,EACE,QAAA;AAAA,EACA,SAAW,EAAA,aAAA;AAAA,EACX,UAAA;AAAA,EACA,UAAY,EAAA,CAAA;AAAA;AAAA,EACZ,GAAG,cAAA;AACL,CAAA,EACA,YACA,EAAA;AACA,EAAM,MAAA,SAAA,GAAYC,EAAW,CAAA,iBAAA,EAAmB,aAAa,CAAA,CAAA;AAC7D,EAAA,sCACG,KAAI,EAAA,EAAA,SAAA,EAAsB,KAAK,YAAe,EAAA,GAAG,gBAC/C,QACH,EAAA,CAAA,CAAA;AAEJ,CAAC,EAAA;AAED,MAAM,aAAgB,GAAA,iBAAA,CAAA;AAEtB,eAAA,CAAgB,WAAc,GAAA,aAAA,CAAA;AAE9BC,mCAAkB,CAAA,aAAA,EAAe,iBAAiB,WAAW,CAAA;;;;"}
@@ -0,0 +1,36 @@
1
+ .vuuDockLayout {
2
+ --chest-bg: var(--hw-chest-bg, inherit);
3
+ --drawer-bg: var(--hw-drawer-bg, inherit);
4
+ --drawer-size: var(--hw-drawer-size, 200px);
5
+ --drawer-peek-size: var(--hw-drawer-peek-size, 32px);
6
+ --drawer-transition-duration: var(--hw-drawer-transition-duration, 0.4s);
7
+ background-color: var(--chest-bg);
8
+ display: flex;
9
+ }
10
+
11
+ .vuuDockLayout-horizontal {
12
+ flex-direction: row;
13
+ }
14
+
15
+ .vuuDockLayout-vertical {
16
+ flex-direction: column;
17
+ }
18
+
19
+ .vuuDockLayout-content {
20
+ background-color: var(--chest-bg);
21
+ flex-grow: 1;
22
+ flex-shrink: 1;
23
+ overflow: hidden;
24
+ /* position: relative; */
25
+ display: flex;
26
+ align-items: center;
27
+ justify-content: center;
28
+ }
29
+
30
+ .vuuDockLayout-horizontal .vuuDockLayout-content {
31
+ flex-basis: 100%;
32
+ }
33
+
34
+ .vuuDockLayout-vertical .vuuDockLayout-content {
35
+ flex-basis: 100%;
36
+ }
@@ -0,0 +1,27 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var vuuUtils = require('@vuu-ui/vuu-utils');
5
+ var cx = require('clsx');
6
+ var ComponentRegistry = require('../registry/ComponentRegistry.js');
7
+ var Drawer = require('./Drawer.js');
8
+
9
+ const isDrawer = (component) => component.type === Drawer;
10
+ const isVertical = ({ props: { position = "left" } }) => position.match(/top|bottom/);
11
+ const DockLayout = (props) => {
12
+ const { children, className: classNameProp, id, style } = props;
13
+ const classBase = "vuuDockLayout";
14
+ const [drawers, content] = vuuUtils.partition(children, isDrawer);
15
+ const [verticalDrawers, horizontalDrawers] = vuuUtils.partition(drawers, isVertical);
16
+ const orientation = verticalDrawers.length === 0 ? "horizontal" : horizontalDrawers.length === 0 ? "vertical" : "both";
17
+ const className = cx(classBase, classNameProp, `${classBase}-${orientation}`);
18
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className, id, style, children: [
19
+ drawers,
20
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${classBase}-content`, children: content })
21
+ ] });
22
+ };
23
+ DockLayout.displayName = "DockLayout";
24
+ ComponentRegistry.registerComponent("DockLayout", DockLayout, "container");
25
+
26
+ module.exports = DockLayout;
27
+ //# sourceMappingURL=DockLayout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DockLayout.js","sources":["../../src/dock-layout/DockLayout.tsx"],"sourcesContent":["import { partition } from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport { HTMLAttributes, ReactElement } from \"react\";\nimport { registerComponent } from \"../registry/ComponentRegistry\";\nimport Drawer from \"./Drawer\";\n\nimport \"./DockLayout.css\";\n\nconst isDrawer = (component: ReactElement) => component.type === Drawer;\nconst isVertical = ({ props: { position = \"left\" } }: ReactElement) =>\n position.match(/top|bottom/);\n\nexport interface DockLayoutProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactElement[];\n}\n\nconst DockLayout = (props: DockLayoutProps) => {\n const { children, className: classNameProp, id, style } = props;\n const classBase = \"vuuDockLayout\";\n const [drawers, content] = partition(children, isDrawer);\n const [verticalDrawers, horizontalDrawers] = partition(drawers, isVertical);\n const orientation =\n verticalDrawers.length === 0\n ? \"horizontal\"\n : horizontalDrawers.length === 0\n ? \"vertical\"\n : \"both\";\n\n const className = cx(classBase, classNameProp, `${classBase}-${orientation}`);\n\n return (\n <div className={className} id={id} style={style}>\n {drawers}\n <div className={`${classBase}-content`}>{content}</div>\n </div>\n );\n};\nDockLayout.displayName = \"DockLayout\";\n\nexport default DockLayout;\n\nregisterComponent(\"DockLayout\", DockLayout, \"container\");\n"],"names":["partition","jsxs","registerComponent"],"mappings":";;;;;;;;AAQA,MAAM,QAAW,GAAA,CAAC,SAA4B,KAAA,SAAA,CAAU,IAAS,KAAA,MAAA,CAAA;AACjE,MAAM,UAAA,GAAa,CAAC,EAAE,KAAO,EAAA,EAAE,QAAW,GAAA,MAAA,EAAS,EAAA,KACjD,QAAS,CAAA,KAAA,CAAM,YAAY,CAAA,CAAA;AAMvB,MAAA,UAAA,GAAa,CAAC,KAA2B,KAAA;AAC7C,EAAA,MAAM,EAAE,QAAU,EAAA,SAAA,EAAW,aAAe,EAAA,EAAA,EAAI,OAAU,GAAA,KAAA,CAAA;AAC1D,EAAA,MAAM,SAAY,GAAA,eAAA,CAAA;AAClB,EAAA,MAAM,CAAC,OAAS,EAAA,OAAO,CAAI,GAAAA,kBAAA,CAAU,UAAU,QAAQ,CAAA,CAAA;AACvD,EAAA,MAAM,CAAC,eAAiB,EAAA,iBAAiB,CAAI,GAAAA,kBAAA,CAAU,SAAS,UAAU,CAAA,CAAA;AAC1E,EAAM,MAAA,WAAA,GACJ,gBAAgB,MAAW,KAAA,CAAA,GACvB,eACA,iBAAkB,CAAA,MAAA,KAAW,IAC7B,UACA,GAAA,MAAA,CAAA;AAEN,EAAM,MAAA,SAAA,GAAY,GAAG,SAAW,EAAA,aAAA,EAAe,GAAG,SAAS,CAAA,CAAA,EAAI,WAAW,CAAE,CAAA,CAAA,CAAA;AAE5E,EAAA,uBACGC,eAAA,CAAA,KAAA,EAAA,EAAI,SAAsB,EAAA,EAAA,EAAQ,KAChC,EAAA,QAAA,EAAA;AAAA,IAAA,OAAA;AAAA,mCACA,KAAI,EAAA,EAAA,SAAA,EAAW,CAAG,EAAA,SAAS,YAAa,QAAQ,EAAA,OAAA,EAAA,CAAA;AAAA,GACnD,EAAA,CAAA,CAAA;AAEJ,EAAA;AACA,UAAA,CAAW,WAAc,GAAA,YAAA,CAAA;AAIzBC,mCAAkB,CAAA,YAAA,EAAc,YAAY,WAAW,CAAA;;;;"}
@@ -0,0 +1,159 @@
1
+ .vuuDrawer {
2
+ --drawer-leading-edge-border: solid 1px var(--salt-container-primary-borderColor, none);
3
+ --vuu-close-icon-svg: var(--svg-chevron-double-right);
4
+
5
+ transition: flex-basis;
6
+ transition-duration: var(--drawer-transition-duration);
7
+ position: relative;
8
+ z-index: 1;
9
+ flex-basis: 0;
10
+ flex-grow: 1;
11
+ flex-shrink: 1;
12
+ min-width: 0;
13
+ min-height: 0;
14
+ display: flex;
15
+ }
16
+
17
+ .vuuDrawer-peekaboo {
18
+ flex-basis: var(--drawer-peek-size);
19
+ flex-grow: 0;
20
+ flex-shrink: 0;
21
+ }
22
+
23
+ .vuuDrawer-inline.vuuDrawer-open {
24
+ flex-basis: var(--drawer-size);
25
+ flex-grow: 0;
26
+ flex-shrink: 0;
27
+ }
28
+
29
+ .vuuDrawer-liner {
30
+ background-color: var(--drawer-bg);
31
+ overflow: hidden;
32
+ position: relative;
33
+ }
34
+
35
+ .vuuDrawer-content {
36
+ height: 100%;
37
+ overflow: hidden;
38
+ position: absolute;
39
+ top: 0;
40
+ right: var(--drawer-peek-size);
41
+ transition: right;
42
+ transition-duration: var(--drawer-transition-duration);
43
+ width: 100%;
44
+ flex: 1 1 100%;
45
+ }
46
+
47
+ .vuuDrawer-open .vuuDrawer-content {
48
+ right: 0;
49
+ }
50
+
51
+ /* .vuuDrawer:not(.vuuDrawer-open) .vuuDrawer-liner > * {
52
+ display: none;
53
+ } */
54
+
55
+ .vuuDrawer-left {
56
+ border-right: var(--drawer-leading-edge-border);
57
+ }
58
+ .vuuDrawer-right {
59
+ border-left: var(--drawer-leading-edge-border);
60
+ }
61
+ .vuuDrawer-top {
62
+ border-bottom: var(--drawer-leading-edge-border);
63
+ }
64
+ .vuuDrawer-bottom {
65
+ border-top: var(--drawer-leading-edge-border);
66
+ }
67
+
68
+ .vuuDrawer-left .vuuDrawer-liner,
69
+ .vuuDrawer-right .vuuDrawer-liner {
70
+ height: 100%;
71
+ transition: width;
72
+ }
73
+
74
+ .vuuDrawer-top .vuuDrawer-liner,
75
+ .vuuDrawer-bottom .vuuDrawer-liner {
76
+ width: 100%;
77
+ transition: height;
78
+ }
79
+
80
+ .vuuDrawer-inline .vuuDrawer-liner {
81
+ width: 100%;
82
+ height: 100%;
83
+ }
84
+
85
+ .vuuDrawer-over .vuuDrawer-liner {
86
+ position: absolute;
87
+ transition-duration: 0.4s;
88
+ }
89
+
90
+ .vuuDrawer-over.vuuDrawer-left .vuuDrawer-liner {
91
+ top: 0;
92
+ left: 0;
93
+ width: 0;
94
+ }
95
+
96
+ .vuuDrawer-over.vuuDrawer-right .vuuDrawer-liner {
97
+ top: 0;
98
+ right: 0;
99
+ width: 0;
100
+ }
101
+
102
+ .vuuDrawer-over.vuuDrawer-top .vuuDrawer-liner {
103
+ height: 0;
104
+ top: 0;
105
+ left: 0;
106
+ }
107
+
108
+ .vuuDrawer-over.vuuDrawer-bottom .vuuDrawer-liner {
109
+ bottom: 0;
110
+ height: 0;
111
+ left: 0;
112
+ }
113
+
114
+ .vuuDrawer-left.vuuDrawer-over.vuuDrawer-peekaboo .vuuDrawer-liner,
115
+ .vuuDrawer-right.vuuDrawer-over.vuuDrawer-peekaboo .vuuDrawer-liner {
116
+ width: var(--drawer-peek-size);
117
+ }
118
+
119
+ .vuuDrawer-top.vuuDrawer-over.vuuDrawer-peekaboo .vuuDrawer-liner,
120
+ .vuuDrawer-bottom.vuuDrawer-over.vuuDrawer-peekaboo .vuuDrawer-liner {
121
+ height: var(--drawer-peek-size);
122
+ }
123
+
124
+ .vuuDrawer-left.vuuDrawer-over.vuuDrawer-open .vuuDrawer-liner,
125
+ .vuuDrawer-right.vuuDrawer-over.vuuDrawer-open .vuuDrawer-liner {
126
+ width: var(--drawer-size);
127
+ }
128
+
129
+ .vuuDrawer-top.vuuDrawer-over.vuuDrawer-open .vuuDrawer-liner,
130
+ .vuuDrawer-bottom.vuuDrawer-over.vuuDrawer-open .vuuDrawer-liner {
131
+ height: var(--drawer-size);
132
+ }
133
+
134
+ .vuuDrawer-top,
135
+ .vuuDrawer-left {
136
+ order: 0;
137
+ }
138
+
139
+ .vuuDrawer-bottom,
140
+ .vuuDrawer-right {
141
+ order: 99;
142
+ }
143
+
144
+ .vuuDrawer-left,
145
+ .vuuDrawer-right {
146
+ flex-direction: column;
147
+ }
148
+
149
+ .vuuToggleButton-container {
150
+ --saltButton-height: 28px;
151
+ --saltButton-width: 28px;
152
+ --vuu-icon-size: 12px;
153
+ flex: 0 0 28px;
154
+ }
155
+
156
+ .vuuDrawer-open {
157
+ --vuu-close-icon-svg: var(--svg-chevron-double-left);
158
+
159
+ }
@@ -0,0 +1,87 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var core = require('@salt-ds/core');
5
+ var cx = require('clsx');
6
+ var React = require('react');
7
+
8
+ const classBase = "vuuDrawer";
9
+ const sizeAttribute = (value) => {
10
+ return typeof value === "string" ? value : value + "px";
11
+ };
12
+ const getStyle = (styleProp, sizeOpen, sizeClosed) => {
13
+ const hasSizeOpen = sizeOpen !== void 0;
14
+ const hasSizeClosed = sizeClosed !== void 0;
15
+ if (!styleProp && !hasSizeClosed && !hasSizeOpen) {
16
+ return void 0;
17
+ }
18
+ if (!hasSizeClosed && !hasSizeOpen) {
19
+ return styleProp;
20
+ }
21
+ return {
22
+ ...styleProp,
23
+ "--drawer-size": hasSizeOpen ? sizeAttribute(sizeOpen) : void 0,
24
+ "--drawer-peek-size": hasSizeClosed ? sizeAttribute(sizeClosed) : void 0
25
+ };
26
+ };
27
+ const Drawer = ({
28
+ children,
29
+ className: classNameProp,
30
+ clickToOpen,
31
+ defaultOpen,
32
+ sizeOpen,
33
+ sizeClosed,
34
+ style: styleProp,
35
+ open: openProp,
36
+ position = "left",
37
+ inline,
38
+ onClick,
39
+ peekaboo = false,
40
+ toggleButton,
41
+ ...props
42
+ }) => {
43
+ const [open, setOpen] = core.useControlled({
44
+ controlled: openProp,
45
+ default: defaultOpen ?? false,
46
+ name: "Drawer",
47
+ state: "open"
48
+ });
49
+ console.log(`Drawer sizeOpen ${sizeOpen} sizeClosed ${sizeClosed}`);
50
+ const className = cx(classBase, classNameProp, `${classBase}-${position}`, {
51
+ [`${classBase}-open`]: open,
52
+ [`${classBase}-inline`]: inline,
53
+ [`${classBase}-over`]: !inline,
54
+ [`${classBase}-peekaboo`]: peekaboo
55
+ });
56
+ const toggleDrawer = React.useCallback(() => {
57
+ setOpen(!open);
58
+ }, [open, setOpen]);
59
+ const style = getStyle(styleProp, sizeOpen, sizeClosed);
60
+ const handleClick = clickToOpen ? toggleDrawer : onClick;
61
+ const renderToggleButton = () => /* @__PURE__ */ jsxRuntime.jsx("div", { className: cx("vuuToggleButton-container"), children: open ? /* @__PURE__ */ jsxRuntime.jsx(
62
+ core.Button,
63
+ {
64
+ "aria-label": "close",
65
+ onClick: toggleDrawer,
66
+ "data-icon": "close",
67
+ variant: "secondary"
68
+ }
69
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
70
+ core.Button,
71
+ {
72
+ "aria-label": "open",
73
+ onClick: toggleDrawer,
74
+ "data-icon": "close",
75
+ variant: "secondary"
76
+ }
77
+ ) });
78
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...props, className, onClick: handleClick, style, children: [
79
+ toggleButton == "start" ? renderToggleButton() : null,
80
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${classBase}-liner`, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${classBase}-content`, children }) }),
81
+ toggleButton == "end" ? renderToggleButton() : null
82
+ ] });
83
+ };
84
+ Drawer.displayName = "Drawer";
85
+
86
+ module.exports = Drawer;
87
+ //# sourceMappingURL=Drawer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer.js","sources":["../../src/dock-layout/Drawer.tsx"],"sourcesContent":["import { Button, useControlled } from \"@salt-ds/core\";\nimport cx from \"clsx\";\nimport { CSSProperties, HTMLAttributes, useCallback } from \"react\";\n\nimport \"./Drawer.css\";\n\nconst classBase = \"vuuDrawer\";\n\nconst sizeAttribute = (value: string | number) => {\n return typeof value === \"string\" ? value : value + \"px\";\n};\n\nconst getStyle = (\n styleProp?: CSSProperties,\n sizeOpen?: number,\n sizeClosed?: number\n) => {\n const hasSizeOpen = sizeOpen !== undefined;\n const hasSizeClosed = sizeClosed !== undefined;\n\n if (!styleProp && !hasSizeClosed && !hasSizeOpen) {\n return undefined;\n }\n\n if (!hasSizeClosed && !hasSizeOpen) {\n return styleProp;\n }\n\n return {\n ...styleProp,\n \"--drawer-size\": hasSizeOpen ? sizeAttribute(sizeOpen) : undefined,\n \"--drawer-peek-size\": hasSizeClosed ? sizeAttribute(sizeClosed) : undefined,\n };\n};\n\nexport interface DrawerProps extends HTMLAttributes<HTMLDivElement> {\n clickToOpen?: boolean;\n defaultOpen?: boolean;\n inline?: boolean;\n open?: boolean;\n peekaboo?: boolean;\n position?: \"left\" | \"right\" | \"top\" | \"bottom\";\n sizeOpen?: number;\n sizeClosed?: number;\n toggleButton?: \"start\" | \"end\";\n}\nconst Drawer = ({\n children,\n className: classNameProp,\n clickToOpen,\n defaultOpen,\n sizeOpen,\n sizeClosed,\n style: styleProp,\n open: openProp,\n position = \"left\",\n inline,\n onClick,\n peekaboo = false,\n toggleButton,\n ...props\n}: DrawerProps) => {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: defaultOpen ?? false,\n name: \"Drawer\",\n state: \"open\",\n });\n\n console.log(`Drawer sizeOpen ${sizeOpen} sizeClosed ${sizeClosed}`);\n\n const className = cx(classBase, classNameProp, `${classBase}-${position}`, {\n [`${classBase}-open`]: open,\n [`${classBase}-inline`]: inline,\n [`${classBase}-over`]: !inline,\n [`${classBase}-peekaboo`]: peekaboo,\n });\n\n const toggleDrawer = useCallback(() => {\n setOpen(!open);\n }, [open, setOpen]);\n\n const style = getStyle(styleProp, sizeOpen, sizeClosed);\n\n const handleClick = clickToOpen ? toggleDrawer : onClick;\n\n const renderToggleButton = () => (\n <div className={cx(\"vuuToggleButton-container\")}>\n {open ? (\n <Button\n aria-label=\"close\"\n onClick={toggleDrawer}\n data-icon=\"close\"\n variant=\"secondary\"\n />\n ) : (\n <Button\n aria-label=\"open\"\n onClick={toggleDrawer}\n data-icon=\"close\"\n variant=\"secondary\"\n />\n )}\n </div>\n );\n\n return (\n <div {...props} className={className} onClick={handleClick} style={style}>\n {toggleButton == \"start\" ? renderToggleButton() : null}\n <div className={`${classBase}-liner`}>\n <div className={`${classBase}-content`}>{children}</div>\n </div>\n {toggleButton == \"end\" ? renderToggleButton() : null}\n </div>\n );\n};\nDrawer.displayName = \"Drawer\";\n\nexport default Drawer;\n"],"names":["useControlled","useCallback","jsx","Button"],"mappings":"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"}