@vuu-ui/vuu-layout 0.8.34 → 0.8.35

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 (248) hide show
  1. package/package.json +8 -10
  2. package/cjs/Component.js +0 -14
  3. package/cjs/Component.js.map +0 -1
  4. package/cjs/DraggableLayout.css +0 -18
  5. package/cjs/DraggableLayout.js +0 -24
  6. package/cjs/DraggableLayout.js.map +0 -1
  7. package/cjs/dock-layout/DockLayout.css +0 -36
  8. package/cjs/dock-layout/DockLayout.js +0 -27
  9. package/cjs/dock-layout/DockLayout.js.map +0 -1
  10. package/cjs/dock-layout/Drawer.css +0 -159
  11. package/cjs/dock-layout/Drawer.js +0 -87
  12. package/cjs/dock-layout/Drawer.js.map +0 -1
  13. package/cjs/drag-drop/BoxModel.js +0 -422
  14. package/cjs/drag-drop/BoxModel.js.map +0 -1
  15. package/cjs/drag-drop/DragState.js +0 -154
  16. package/cjs/drag-drop/DragState.js.map +0 -1
  17. package/cjs/drag-drop/Draggable.js +0 -192
  18. package/cjs/drag-drop/Draggable.js.map +0 -1
  19. package/cjs/drag-drop/DropMenu.css +0 -71
  20. package/cjs/drag-drop/DropMenu.js +0 -46
  21. package/cjs/drag-drop/DropMenu.js.map +0 -1
  22. package/cjs/drag-drop/DropTarget.js +0 -244
  23. package/cjs/drag-drop/DropTarget.js.map +0 -1
  24. package/cjs/drag-drop/DropTargetRenderer.css +0 -40
  25. package/cjs/drag-drop/DropTargetRenderer.js +0 -233
  26. package/cjs/drag-drop/DropTargetRenderer.js.map +0 -1
  27. package/cjs/flexbox/Flexbox.css +0 -45
  28. package/cjs/flexbox/Flexbox.js +0 -61
  29. package/cjs/flexbox/Flexbox.js.map +0 -1
  30. package/cjs/flexbox/FlexboxLayout.js +0 -30
  31. package/cjs/flexbox/FlexboxLayout.js.map +0 -1
  32. package/cjs/flexbox/FluidGrid.css +0 -134
  33. package/cjs/flexbox/FluidGrid.js +0 -78
  34. package/cjs/flexbox/FluidGrid.js.map +0 -1
  35. package/cjs/flexbox/FluidGridLayout.js +0 -14
  36. package/cjs/flexbox/FluidGridLayout.js.map +0 -1
  37. package/cjs/flexbox/Splitter.css +0 -148
  38. package/cjs/flexbox/Splitter.js +0 -113
  39. package/cjs/flexbox/Splitter.js.map +0 -1
  40. package/cjs/flexbox/flexbox-utils.js +0 -109
  41. package/cjs/flexbox/flexbox-utils.js.map +0 -1
  42. package/cjs/flexbox/useResponsiveSizing.js +0 -62
  43. package/cjs/flexbox/useResponsiveSizing.js.map +0 -1
  44. package/cjs/flexbox/useSplitterResizing.js +0 -209
  45. package/cjs/flexbox/useSplitterResizing.js.map +0 -1
  46. package/cjs/index.js.map +0 -1
  47. package/cjs/layout-action.js +0 -27
  48. package/cjs/layout-action.js.map +0 -1
  49. package/cjs/layout-header/Header.css +0 -9
  50. package/cjs/layout-header/Header.js +0 -122
  51. package/cjs/layout-header/Header.js.map +0 -1
  52. package/cjs/layout-provider/LayoutProvider.js +0 -178
  53. package/cjs/layout-provider/LayoutProvider.js.map +0 -1
  54. package/cjs/layout-provider/LayoutProviderContext.js +0 -14
  55. package/cjs/layout-provider/LayoutProviderContext.js.map +0 -1
  56. package/cjs/layout-provider/useLayoutDragDrop.js +0 -170
  57. package/cjs/layout-provider/useLayoutDragDrop.js.map +0 -1
  58. package/cjs/layout-reducer/flexUtils.js +0 -219
  59. package/cjs/layout-reducer/flexUtils.js.map +0 -1
  60. package/cjs/layout-reducer/insert-layout-element.js +0 -273
  61. package/cjs/layout-reducer/insert-layout-element.js.map +0 -1
  62. package/cjs/layout-reducer/layout-reducer.js +0 -198
  63. package/cjs/layout-reducer/layout-reducer.js.map +0 -1
  64. package/cjs/layout-reducer/layoutTypes.js +0 -41
  65. package/cjs/layout-reducer/layoutTypes.js.map +0 -1
  66. package/cjs/layout-reducer/layoutUtils.js +0 -226
  67. package/cjs/layout-reducer/layoutUtils.js.map +0 -1
  68. package/cjs/layout-reducer/move-layout-element.js +0 -31
  69. package/cjs/layout-reducer/move-layout-element.js.map +0 -1
  70. package/cjs/layout-reducer/remove-layout-element.js +0 -223
  71. package/cjs/layout-reducer/remove-layout-element.js.map +0 -1
  72. package/cjs/layout-reducer/replace-layout-element.js +0 -91
  73. package/cjs/layout-reducer/replace-layout-element.js.map +0 -1
  74. package/cjs/layout-reducer/resize-flex-children.js +0 -61
  75. package/cjs/layout-reducer/resize-flex-children.js.map +0 -1
  76. package/cjs/layout-reducer/wrap-layout-element.js +0 -212
  77. package/cjs/layout-reducer/wrap-layout-element.js.map +0 -1
  78. package/cjs/layout-view/View.css +0 -62
  79. package/cjs/layout-view/View.js +0 -155
  80. package/cjs/layout-view/View.js.map +0 -1
  81. package/cjs/layout-view/useView.js +0 -92
  82. package/cjs/layout-view/useView.js.map +0 -1
  83. package/cjs/layout-view/useViewResize.js +0 -42
  84. package/cjs/layout-view/useViewResize.js.map +0 -1
  85. package/cjs/layout-view-actions/ViewContext.js +0 -16
  86. package/cjs/layout-view-actions/ViewContext.js.map +0 -1
  87. package/cjs/layout-view-actions/useViewActionDispatcher.js +0 -103
  88. package/cjs/layout-view-actions/useViewActionDispatcher.js.map +0 -1
  89. package/cjs/palette/Palette.css +0 -33
  90. package/cjs/palette/Palette.js +0 -118
  91. package/cjs/palette/Palette.js.map +0 -1
  92. package/cjs/placeholder/LayoutStartPanel.css +0 -30
  93. package/cjs/placeholder/LayoutStartPanel.js +0 -51
  94. package/cjs/placeholder/LayoutStartPanel.js.map +0 -1
  95. package/cjs/placeholder/Placeholder.css +0 -17
  96. package/cjs/placeholder/Placeholder.js +0 -25
  97. package/cjs/placeholder/Placeholder.js.map +0 -1
  98. package/cjs/registry/ComponentRegistry.js +0 -27
  99. package/cjs/registry/ComponentRegistry.js.map +0 -1
  100. package/cjs/responsive/breakpoints.js +0 -36
  101. package/cjs/responsive/breakpoints.js.map +0 -1
  102. package/cjs/responsive/use-breakpoints.js +0 -76
  103. package/cjs/responsive/use-breakpoints.js.map +0 -1
  104. package/cjs/responsive/useResizeObserver.js +0 -118
  105. package/cjs/responsive/useResizeObserver.js.map +0 -1
  106. package/cjs/responsive/utils.js +0 -34
  107. package/cjs/responsive/utils.js.map +0 -1
  108. package/cjs/stack/Stack.css +0 -39
  109. package/cjs/stack/Stack.js +0 -139
  110. package/cjs/stack/Stack.js.map +0 -1
  111. package/cjs/stack/StackLayout.js +0 -122
  112. package/cjs/stack/StackLayout.js.map +0 -1
  113. package/cjs/use-persistent-state.js +0 -109
  114. package/cjs/use-persistent-state.js.map +0 -1
  115. package/cjs/utils/pathUtils.js +0 -293
  116. package/cjs/utils/pathUtils.js.map +0 -1
  117. package/cjs/utils/propUtils.js +0 -27
  118. package/cjs/utils/propUtils.js.map +0 -1
  119. package/cjs/utils/refUtils.js +0 -12
  120. package/cjs/utils/refUtils.js.map +0 -1
  121. package/cjs/utils/styleUtils.js +0 -15
  122. package/cjs/utils/styleUtils.js.map +0 -1
  123. package/cjs/utils/typeOf.js +0 -27
  124. package/cjs/utils/typeOf.js.map +0 -1
  125. package/esm/Component.js +0 -12
  126. package/esm/Component.js.map +0 -1
  127. package/esm/DraggableLayout.css +0 -18
  128. package/esm/DraggableLayout.js +0 -22
  129. package/esm/DraggableLayout.js.map +0 -1
  130. package/esm/dock-layout/DockLayout.css +0 -36
  131. package/esm/dock-layout/DockLayout.js +0 -25
  132. package/esm/dock-layout/DockLayout.js.map +0 -1
  133. package/esm/dock-layout/Drawer.css +0 -159
  134. package/esm/dock-layout/Drawer.js +0 -85
  135. package/esm/dock-layout/Drawer.js.map +0 -1
  136. package/esm/drag-drop/BoxModel.js +0 -415
  137. package/esm/drag-drop/BoxModel.js.map +0 -1
  138. package/esm/drag-drop/DragState.js +0 -152
  139. package/esm/drag-drop/DragState.js.map +0 -1
  140. package/esm/drag-drop/Draggable.js +0 -190
  141. package/esm/drag-drop/Draggable.js.map +0 -1
  142. package/esm/drag-drop/DropMenu.css +0 -71
  143. package/esm/drag-drop/DropMenu.js +0 -43
  144. package/esm/drag-drop/DropMenu.js.map +0 -1
  145. package/esm/drag-drop/DropTarget.js +0 -240
  146. package/esm/drag-drop/DropTarget.js.map +0 -1
  147. package/esm/drag-drop/DropTargetRenderer.css +0 -40
  148. package/esm/drag-drop/DropTargetRenderer.js +0 -231
  149. package/esm/drag-drop/DropTargetRenderer.js.map +0 -1
  150. package/esm/flexbox/Flexbox.css +0 -45
  151. package/esm/flexbox/Flexbox.js +0 -59
  152. package/esm/flexbox/Flexbox.js.map +0 -1
  153. package/esm/flexbox/FlexboxLayout.js +0 -28
  154. package/esm/flexbox/FlexboxLayout.js.map +0 -1
  155. package/esm/flexbox/FluidGrid.css +0 -134
  156. package/esm/flexbox/FluidGrid.js +0 -76
  157. package/esm/flexbox/FluidGrid.js.map +0 -1
  158. package/esm/flexbox/FluidGridLayout.js +0 -12
  159. package/esm/flexbox/FluidGridLayout.js.map +0 -1
  160. package/esm/flexbox/Splitter.css +0 -148
  161. package/esm/flexbox/Splitter.js +0 -111
  162. package/esm/flexbox/Splitter.js.map +0 -1
  163. package/esm/flexbox/flexbox-utils.js +0 -103
  164. package/esm/flexbox/flexbox-utils.js.map +0 -1
  165. package/esm/flexbox/useResponsiveSizing.js +0 -60
  166. package/esm/flexbox/useResponsiveSizing.js.map +0 -1
  167. package/esm/flexbox/useSplitterResizing.js +0 -207
  168. package/esm/flexbox/useSplitterResizing.js.map +0 -1
  169. package/esm/index.js +0 -37
  170. package/esm/index.js.map +0 -1
  171. package/esm/layout-action.js +0 -25
  172. package/esm/layout-action.js.map +0 -1
  173. package/esm/layout-header/Header.css +0 -9
  174. package/esm/layout-header/Header.js +0 -120
  175. package/esm/layout-header/Header.js.map +0 -1
  176. package/esm/layout-provider/LayoutProvider.js +0 -172
  177. package/esm/layout-provider/LayoutProvider.js.map +0 -1
  178. package/esm/layout-provider/LayoutProviderContext.js +0 -12
  179. package/esm/layout-provider/LayoutProviderContext.js.map +0 -1
  180. package/esm/layout-provider/useLayoutDragDrop.js +0 -168
  181. package/esm/layout-provider/useLayoutDragDrop.js.map +0 -1
  182. package/esm/layout-reducer/flexUtils.js +0 -210
  183. package/esm/layout-reducer/flexUtils.js.map +0 -1
  184. package/esm/layout-reducer/insert-layout-element.js +0 -269
  185. package/esm/layout-reducer/insert-layout-element.js.map +0 -1
  186. package/esm/layout-reducer/layout-reducer.js +0 -196
  187. package/esm/layout-reducer/layout-reducer.js.map +0 -1
  188. package/esm/layout-reducer/layoutTypes.js +0 -37
  189. package/esm/layout-reducer/layoutTypes.js.map +0 -1
  190. package/esm/layout-reducer/layoutUtils.js +0 -215
  191. package/esm/layout-reducer/layoutUtils.js.map +0 -1
  192. package/esm/layout-reducer/move-layout-element.js +0 -29
  193. package/esm/layout-reducer/move-layout-element.js.map +0 -1
  194. package/esm/layout-reducer/remove-layout-element.js +0 -221
  195. package/esm/layout-reducer/remove-layout-element.js.map +0 -1
  196. package/esm/layout-reducer/replace-layout-element.js +0 -87
  197. package/esm/layout-reducer/replace-layout-element.js.map +0 -1
  198. package/esm/layout-reducer/resize-flex-children.js +0 -58
  199. package/esm/layout-reducer/resize-flex-children.js.map +0 -1
  200. package/esm/layout-reducer/wrap-layout-element.js +0 -210
  201. package/esm/layout-reducer/wrap-layout-element.js.map +0 -1
  202. package/esm/layout-view/View.css +0 -62
  203. package/esm/layout-view/View.js +0 -153
  204. package/esm/layout-view/View.js.map +0 -1
  205. package/esm/layout-view/useView.js +0 -90
  206. package/esm/layout-view/useView.js.map +0 -1
  207. package/esm/layout-view/useViewResize.js +0 -40
  208. package/esm/layout-view/useViewResize.js.map +0 -1
  209. package/esm/layout-view-actions/ViewContext.js +0 -12
  210. package/esm/layout-view-actions/ViewContext.js.map +0 -1
  211. package/esm/layout-view-actions/useViewActionDispatcher.js +0 -101
  212. package/esm/layout-view-actions/useViewActionDispatcher.js.map +0 -1
  213. package/esm/palette/Palette.css +0 -33
  214. package/esm/palette/Palette.js +0 -115
  215. package/esm/palette/Palette.js.map +0 -1
  216. package/esm/placeholder/LayoutStartPanel.css +0 -30
  217. package/esm/placeholder/LayoutStartPanel.js +0 -49
  218. package/esm/placeholder/LayoutStartPanel.js.map +0 -1
  219. package/esm/placeholder/Placeholder.css +0 -17
  220. package/esm/placeholder/Placeholder.js +0 -23
  221. package/esm/placeholder/Placeholder.js.map +0 -1
  222. package/esm/registry/ComponentRegistry.js +0 -21
  223. package/esm/registry/ComponentRegistry.js.map +0 -1
  224. package/esm/responsive/breakpoints.js +0 -33
  225. package/esm/responsive/breakpoints.js.map +0 -1
  226. package/esm/responsive/use-breakpoints.js +0 -74
  227. package/esm/responsive/use-breakpoints.js.map +0 -1
  228. package/esm/responsive/useResizeObserver.js +0 -112
  229. package/esm/responsive/useResizeObserver.js.map +0 -1
  230. package/esm/responsive/utils.js +0 -31
  231. package/esm/responsive/utils.js.map +0 -1
  232. package/esm/stack/Stack.css +0 -39
  233. package/esm/stack/Stack.js +0 -137
  234. package/esm/stack/Stack.js.map +0 -1
  235. package/esm/stack/StackLayout.js +0 -120
  236. package/esm/stack/StackLayout.js.map +0 -1
  237. package/esm/use-persistent-state.js +0 -104
  238. package/esm/use-persistent-state.js.map +0 -1
  239. package/esm/utils/pathUtils.js +0 -280
  240. package/esm/utils/pathUtils.js.map +0 -1
  241. package/esm/utils/propUtils.js +0 -23
  242. package/esm/utils/propUtils.js.map +0 -1
  243. package/esm/utils/refUtils.js +0 -10
  244. package/esm/utils/refUtils.js.map +0 -1
  245. package/esm/utils/styleUtils.js +0 -13
  246. package/esm/utils/styleUtils.js.map +0 -1
  247. package/esm/utils/typeOf.js +0 -23
  248. package/esm/utils/typeOf.js.map +0 -1
@@ -1,14 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var ComponentRegistry = require('../registry/ComponentRegistry.js');
5
- var FluidGrid = require('./FluidGrid.js');
6
-
7
- const FluidGridLayout = function FluidGridLayout2(props) {
8
- return /* @__PURE__ */ jsxRuntime.jsx(FluidGrid.FluidGrid, { ...props });
9
- };
10
- FluidGridLayout.displayName = "FluidGrid";
11
- ComponentRegistry.registerComponent("FluidGrid", FluidGridLayout, "container");
12
-
13
- exports.FluidGridLayout = FluidGridLayout;
14
- //# sourceMappingURL=FluidGridLayout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FluidGridLayout.js","sources":["../../src/flexbox/FluidGridLayout.tsx"],"sourcesContent":["import { registerComponent } from '../registry/ComponentRegistry';\nimport { FluidGrid, FluidGridProps } from './FluidGrid';\n\nexport const FluidGridLayout = function FluidGridLayout(props: FluidGridProps) {\n return <FluidGrid {...props} />;\n};\nFluidGridLayout.displayName = 'FluidGrid';\n\nregisterComponent('FluidGrid', FluidGridLayout, 'container');\n"],"names":["FluidGridLayout","jsx","FluidGrid","registerComponent"],"mappings":";;;;;;AAGa,MAAA,eAAA,GAAkB,SAASA,gBAAAA,CAAgB,KAAuB,EAAA;AAC7E,EAAO,uBAAAC,cAAA,CAACC,mBAAW,EAAA,EAAA,GAAG,KAAO,EAAA,CAAA,CAAA;AAC/B,EAAA;AACA,eAAA,CAAgB,WAAc,GAAA,WAAA,CAAA;AAE9BC,mCAAkB,CAAA,WAAA,EAAa,iBAAiB,WAAW,CAAA;;;;"}
@@ -1,148 +0,0 @@
1
- .vuuSplitter {
2
- --splitter-background: var(--salt-separable-secondary-borderColor);
3
- --splitter-borderColor: var(--salt-separable-secondary-borderColor);
4
- --splitter-borderStyle: none;
5
- --splitter-borderWidth: 0;
6
- --splitter-size: 3px;
7
-
8
- align-items: center;
9
- background-color: var(--splitter-background);
10
- border-color: var(--splitter-borderColor);
11
- border-style: var(--splitter-borderStyle);
12
- border-width: var(--splitter-borderWidth);
13
- box-sizing: border-box;
14
- display: flex;
15
- justify-content: center;
16
- position: relative;
17
- outline: none;
18
- z-index: 1;
19
- }
20
-
21
- .vuuSplitter:hover {
22
- --splitter-background: var(--salt-separable-primary-borderColor);
23
- }
24
-
25
- .vuuSplitter-active {
26
- --splitter-background: var(--salt-separable-primary-borderColor);
27
- }
28
-
29
- .vuuSplitter-column {
30
- cursor: ns-resize;
31
- height: var(--splitter-size);
32
- }
33
-
34
- .vuuSplitter:not(.vuuSplitter-column) {
35
- cursor: ew-resize;
36
- width: var(--splitter-size);
37
- }
38
-
39
- .vuuSplitter:before {
40
- border: none;
41
- border-radius: 0;
42
- content: '';
43
- display: block;
44
- padding: 0;
45
- }
46
-
47
- .vuuSplitter-grab-zone {
48
- position: absolute;
49
- background-color: rgba(255, 0, 0, 0.01);
50
- cursor: inherit;
51
- }
52
-
53
- .vuuSplitter-column .vuuSplitter-grab-zone {
54
- left: 0;
55
- right: 0;
56
- top: -5px;
57
- bottom: -5px;
58
- }
59
-
60
- .vuuSplitter:not(.vuuSplitter-column) .vuuSplitter-grab-zone {
61
- left: -5px;
62
- right: -5px;
63
- top: 0;
64
- bottom: 0;
65
- }
66
-
67
- .vuuSplitter-active:not(.vuuSplitter-column) .vuuSplitter-grab-zone {
68
- background-color: rgba(255,255,255,.05);
69
- left: -150px;
70
- right: -150px;
71
- }
72
-
73
-
74
- .vuuSplitter:not(.vuuSplitter-column):before {
75
- width: 1px;
76
- height: 10px;
77
- background: linear-gradient(
78
- to bottom,
79
- var(--grey900) 10%,
80
- transparent 10%,
81
- transparent 30%,
82
- var(--grey900) 30%,
83
- var(--grey900) 40%,
84
- transparent 40%,
85
- transparent 60%,
86
- var(--grey900) 60%,
87
- var(--grey900) 70%,
88
- transparent 70%,
89
- transparent 90%,
90
- var(--grey900) 90%
91
- );
92
- }
93
-
94
- .vuuSplitter-active.vuuSplitter-column:before {
95
- background: linear-gradient(
96
- to right,
97
- #ffffff 10%,
98
- transparent 10%,
99
- transparent 30%,
100
- #ffffff 30%,
101
- #ffffff 40%,
102
- transparent 40%,
103
- transparent 60%,
104
- #ffffff 60%,
105
- #ffffff 70%,
106
- transparent 70%,
107
- transparent 90%,
108
- #ffffff 90%
109
- );
110
- }
111
-
112
- .vuuSplitter-active:not(.vuuSplitter-column):before {
113
- background: linear-gradient(
114
- to bottom,
115
- #ffffff 10%,
116
- transparent 10%,
117
- transparent 30%,
118
- #ffffff 30%,
119
- #ffffff 40%,
120
- transparent 40%,
121
- transparent 60%,
122
- #ffffff 60%,
123
- #ffffff 70%,
124
- transparent 70%,
125
- transparent 90%,
126
- #ffffff 90%
127
- );
128
- }
129
-
130
- .vuuSplitter-column:before {
131
- width: 10px;
132
- height: 1px;
133
- background: linear-gradient(
134
- to right,
135
- var(--grey900) 10%,
136
- transparent 10%,
137
- transparent 30%,
138
- var(--grey900) 30%,
139
- var(--grey900) 40%,
140
- transparent 40%,
141
- transparent 60%,
142
- var(--grey900) 60%,
143
- var(--grey900) 70%,
144
- transparent 70%,
145
- transparent 90%,
146
- var(--grey900) 90%
147
- );
148
- }
@@ -1,113 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var cx = require('clsx');
5
- var React = require('react');
6
-
7
- const classBase = "vuuSplitter";
8
- const Splitter = React.memo(function Splitter2({
9
- column,
10
- index,
11
- onDrag,
12
- onDragEnd,
13
- onDragStart,
14
- style
15
- }) {
16
- const ignoreClick = React.useRef();
17
- const rootRef = React.useRef(null);
18
- const lastPos = React.useRef(0);
19
- const [active, setActive] = React.useState(false);
20
- const handleKeyDownDrag = React.useCallback(
21
- ({ key, shiftKey }) => {
22
- const distance = shiftKey ? 10 : 1;
23
- if (column && key === "ArrowDown") {
24
- onDrag(index, distance);
25
- } else if (column && key === "ArrowUp") {
26
- onDrag(index, -distance);
27
- } else if (!column && key === "ArrowLeft") {
28
- onDrag(index, -distance);
29
- } else if (!column && key === "ArrowRight") {
30
- onDrag(index, distance);
31
- }
32
- },
33
- [column, index, onDrag]
34
- );
35
- const handleKeyDownInitDrag = React.useCallback(
36
- (evt) => {
37
- const { key } = evt;
38
- const horizontalMove = key === "ArrowLeft" || key === "ArrowRight";
39
- const verticalMove = key === "ArrowUp" || key === "ArrowDown";
40
- if (column && verticalMove || !column && horizontalMove) {
41
- onDragStart(index);
42
- handleKeyDownDrag(evt);
43
- keyDownHandlerRef.current = handleKeyDownDrag;
44
- }
45
- },
46
- [column, handleKeyDownDrag, index, onDragStart]
47
- );
48
- const keyDownHandlerRef = React.useRef(handleKeyDownInitDrag);
49
- const handleKeyDown = (evt) => keyDownHandlerRef.current(evt);
50
- const handleMouseMove = React.useCallback(
51
- (e) => {
52
- ignoreClick.current = true;
53
- const pos = e[column ? "clientY" : "clientX"];
54
- const diff = pos - lastPos.current;
55
- if (pos && pos !== lastPos.current) {
56
- onDrag(index, diff);
57
- }
58
- lastPos.current = pos;
59
- },
60
- [column, index, onDrag]
61
- );
62
- const handleMouseUp = React.useCallback(() => {
63
- window.removeEventListener("mousemove", handleMouseMove, false);
64
- window.removeEventListener("mouseup", handleMouseUp, false);
65
- onDragEnd();
66
- setActive(false);
67
- rootRef.current?.focus();
68
- }, [handleMouseMove, onDragEnd, setActive]);
69
- const handleMouseDown = React.useCallback(
70
- (e) => {
71
- lastPos.current = column ? e.clientY : e.clientX;
72
- onDragStart(index);
73
- window.addEventListener("mousemove", handleMouseMove, false);
74
- window.addEventListener("mouseup", handleMouseUp, false);
75
- e.preventDefault();
76
- setActive(true);
77
- },
78
- [column, handleMouseMove, handleMouseUp, index, onDragStart, setActive]
79
- );
80
- const handleClick = () => {
81
- if (ignoreClick.current) {
82
- ignoreClick.current = false;
83
- } else {
84
- rootRef.current?.focus();
85
- }
86
- };
87
- const handleBlur = () => {
88
- keyDownHandlerRef.current = handleKeyDownInitDrag;
89
- };
90
- const className = cx(classBase, {
91
- [`${classBase}-active`]: active,
92
- [`${classBase}-column`]: column
93
- });
94
- return /* @__PURE__ */ jsxRuntime.jsx(
95
- "div",
96
- {
97
- className,
98
- "data-splitter": true,
99
- ref: rootRef,
100
- role: "separator",
101
- style,
102
- onBlur: handleBlur,
103
- onClick: handleClick,
104
- onKeyDown: handleKeyDown,
105
- onMouseDown: handleMouseDown,
106
- tabIndex: 0,
107
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: `${classBase}-grab-zone` })
108
- }
109
- );
110
- });
111
-
112
- exports.Splitter = Splitter;
113
- //# sourceMappingURL=Splitter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Splitter.js","sources":["../../src/flexbox/Splitter.tsx"],"sourcesContent":["import cx from \"clsx\";\nimport React, {\n HTMLAttributes,\n KeyboardEvent,\n useCallback,\n useRef,\n useState,\n} from \"react\";\n\nimport \"./Splitter.css\";\n\nconst classBase = \"vuuSplitter\";\n\nexport type SplitterDragStartHandler = (index: number) => void;\nexport type SplitterDragHandler = (index: number, distance: number) => void;\nexport type SplitterDragEndHandler = () => void;\n\nexport interface SplitterProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onDrag\" | \"onDragStart\"> {\n //TODO change to alignment (vertical | horizontal)\n column: boolean;\n index: number;\n onDragStart: SplitterDragStartHandler;\n onDrag: SplitterDragHandler;\n onDragEnd: SplitterDragEndHandler;\n}\n\nexport const Splitter = React.memo(function Splitter({\n column,\n index,\n onDrag,\n onDragEnd,\n onDragStart,\n style,\n}: SplitterProps) {\n const ignoreClick = useRef<boolean>();\n const rootRef = useRef<HTMLDivElement>(null);\n const lastPos = useRef<number>(0);\n\n const [active, setActive] = useState(false);\n\n const handleKeyDownDrag = useCallback(\n ({ key, shiftKey }) => {\n const distance = shiftKey ? 10 : 1;\n if (column && key === \"ArrowDown\") {\n onDrag(index, distance);\n } else if (column && key === \"ArrowUp\") {\n onDrag(index, -distance);\n } else if (!column && key === \"ArrowLeft\") {\n onDrag(index, -distance);\n } else if (!column && key === \"ArrowRight\") {\n onDrag(index, distance);\n }\n },\n [column, index, onDrag]\n );\n\n const handleKeyDownInitDrag = useCallback(\n (evt) => {\n const { key } = evt;\n const horizontalMove = key === \"ArrowLeft\" || key === \"ArrowRight\";\n const verticalMove = key === \"ArrowUp\" || key === \"ArrowDown\";\n if ((column && verticalMove) || (!column && horizontalMove)) {\n onDragStart(index);\n handleKeyDownDrag(evt);\n keyDownHandlerRef.current = handleKeyDownDrag;\n }\n },\n [column, handleKeyDownDrag, index, onDragStart]\n );\n\n const keyDownHandlerRef = useRef(handleKeyDownInitDrag);\n const handleKeyDown = (evt: KeyboardEvent) => keyDownHandlerRef.current(evt);\n\n const handleMouseMove = useCallback(\n (e) => {\n ignoreClick.current = true;\n const pos = e[column ? \"clientY\" : \"clientX\"];\n const diff = pos - lastPos.current;\n if (pos && pos !== lastPos.current) {\n onDrag(index, diff);\n }\n lastPos.current = pos;\n },\n [column, index, onDrag]\n );\n\n const handleMouseUp = useCallback(() => {\n window.removeEventListener(\"mousemove\", handleMouseMove, false);\n window.removeEventListener(\"mouseup\", handleMouseUp, false);\n onDragEnd();\n setActive(false);\n rootRef.current?.focus();\n }, [handleMouseMove, onDragEnd, setActive]);\n\n const handleMouseDown = useCallback(\n (e) => {\n lastPos.current = column ? e.clientY : e.clientX;\n onDragStart(index);\n window.addEventListener(\"mousemove\", handleMouseMove, false);\n window.addEventListener(\"mouseup\", handleMouseUp, false);\n e.preventDefault();\n setActive(true);\n },\n [column, handleMouseMove, handleMouseUp, index, onDragStart, setActive]\n );\n\n const handleClick = () => {\n if (ignoreClick.current) {\n ignoreClick.current = false;\n } else {\n rootRef.current?.focus();\n }\n };\n\n const handleBlur = () => {\n keyDownHandlerRef.current = handleKeyDownInitDrag;\n };\n\n const className = cx(classBase, {\n [`${classBase}-active`]: active,\n [`${classBase}-column`]: column,\n });\n return (\n <div\n className={className}\n data-splitter\n ref={rootRef}\n role=\"separator\"\n style={style}\n onBlur={handleBlur}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n onMouseDown={handleMouseDown}\n tabIndex={0}\n >\n <div className={`${classBase}-grab-zone`} />\n </div>\n );\n});\n"],"names":["Splitter","useRef","useState","useCallback","jsx"],"mappings":";;;;;;AAWA,MAAM,SAAY,GAAA,aAAA,CAAA;AAgBX,MAAM,QAAW,GAAA,KAAA,CAAM,IAAK,CAAA,SAASA,SAAS,CAAA;AAAA,EACnD,MAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA;AACF,CAAkB,EAAA;AAChB,EAAA,MAAM,cAAcC,YAAgB,EAAA,CAAA;AACpC,EAAM,MAAA,OAAA,GAAUA,aAAuB,IAAI,CAAA,CAAA;AAC3C,EAAM,MAAA,OAAA,GAAUA,aAAe,CAAC,CAAA,CAAA;AAEhC,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAIC,eAAS,KAAK,CAAA,CAAA;AAE1C,EAAA,MAAM,iBAAoB,GAAAC,iBAAA;AAAA,IACxB,CAAC,EAAE,GAAK,EAAA,QAAA,EAAe,KAAA;AACrB,MAAM,MAAA,QAAA,GAAW,WAAW,EAAK,GAAA,CAAA,CAAA;AACjC,MAAI,IAAA,MAAA,IAAU,QAAQ,WAAa,EAAA;AACjC,QAAA,MAAA,CAAO,OAAO,QAAQ,CAAA,CAAA;AAAA,OACxB,MAAA,IAAW,MAAU,IAAA,GAAA,KAAQ,SAAW,EAAA;AACtC,QAAO,MAAA,CAAA,KAAA,EAAO,CAAC,QAAQ,CAAA,CAAA;AAAA,OACd,MAAA,IAAA,CAAC,MAAU,IAAA,GAAA,KAAQ,WAAa,EAAA;AACzC,QAAO,MAAA,CAAA,KAAA,EAAO,CAAC,QAAQ,CAAA,CAAA;AAAA,OACd,MAAA,IAAA,CAAC,MAAU,IAAA,GAAA,KAAQ,YAAc,EAAA;AAC1C,QAAA,MAAA,CAAO,OAAO,QAAQ,CAAA,CAAA;AAAA,OACxB;AAAA,KACF;AAAA,IACA,CAAC,MAAQ,EAAA,KAAA,EAAO,MAAM,CAAA;AAAA,GACxB,CAAA;AAEA,EAAA,MAAM,qBAAwB,GAAAA,iBAAA;AAAA,IAC5B,CAAC,GAAQ,KAAA;AACP,MAAM,MAAA,EAAE,KAAQ,GAAA,GAAA,CAAA;AAChB,MAAM,MAAA,cAAA,GAAiB,GAAQ,KAAA,WAAA,IAAe,GAAQ,KAAA,YAAA,CAAA;AACtD,MAAM,MAAA,YAAA,GAAe,GAAQ,KAAA,SAAA,IAAa,GAAQ,KAAA,WAAA,CAAA;AAClD,MAAA,IAAK,MAAU,IAAA,YAAA,IAAkB,CAAC,MAAA,IAAU,cAAiB,EAAA;AAC3D,QAAA,WAAA,CAAY,KAAK,CAAA,CAAA;AACjB,QAAA,iBAAA,CAAkB,GAAG,CAAA,CAAA;AACrB,QAAA,iBAAA,CAAkB,OAAU,GAAA,iBAAA,CAAA;AAAA,OAC9B;AAAA,KACF;AAAA,IACA,CAAC,MAAA,EAAQ,iBAAmB,EAAA,KAAA,EAAO,WAAW,CAAA;AAAA,GAChD,CAAA;AAEA,EAAM,MAAA,iBAAA,GAAoBF,aAAO,qBAAqB,CAAA,CAAA;AACtD,EAAA,MAAM,aAAgB,GAAA,CAAC,GAAuB,KAAA,iBAAA,CAAkB,QAAQ,GAAG,CAAA,CAAA;AAE3E,EAAA,MAAM,eAAkB,GAAAE,iBAAA;AAAA,IACtB,CAAC,CAAM,KAAA;AACL,MAAA,WAAA,CAAY,OAAU,GAAA,IAAA,CAAA;AACtB,MAAA,MAAM,GAAM,GAAA,CAAA,CAAE,MAAS,GAAA,SAAA,GAAY,SAAS,CAAA,CAAA;AAC5C,MAAM,MAAA,IAAA,GAAO,MAAM,OAAQ,CAAA,OAAA,CAAA;AAC3B,MAAI,IAAA,GAAA,IAAO,GAAQ,KAAA,OAAA,CAAQ,OAAS,EAAA;AAClC,QAAA,MAAA,CAAO,OAAO,IAAI,CAAA,CAAA;AAAA,OACpB;AACA,MAAA,OAAA,CAAQ,OAAU,GAAA,GAAA,CAAA;AAAA,KACpB;AAAA,IACA,CAAC,MAAQ,EAAA,KAAA,EAAO,MAAM,CAAA;AAAA,GACxB,CAAA;AAEA,EAAM,MAAA,aAAA,GAAgBA,kBAAY,MAAM;AACtC,IAAO,MAAA,CAAA,mBAAA,CAAoB,WAAa,EAAA,eAAA,EAAiB,KAAK,CAAA,CAAA;AAC9D,IAAO,MAAA,CAAA,mBAAA,CAAoB,SAAW,EAAA,aAAA,EAAe,KAAK,CAAA,CAAA;AAC1D,IAAU,SAAA,EAAA,CAAA;AACV,IAAA,SAAA,CAAU,KAAK,CAAA,CAAA;AACf,IAAA,OAAA,CAAQ,SAAS,KAAM,EAAA,CAAA;AAAA,GACtB,EAAA,CAAC,eAAiB,EAAA,SAAA,EAAW,SAAS,CAAC,CAAA,CAAA;AAE1C,EAAA,MAAM,eAAkB,GAAAA,iBAAA;AAAA,IACtB,CAAC,CAAM,KAAA;AACL,MAAA,OAAA,CAAQ,OAAU,GAAA,MAAA,GAAS,CAAE,CAAA,OAAA,GAAU,CAAE,CAAA,OAAA,CAAA;AACzC,MAAA,WAAA,CAAY,KAAK,CAAA,CAAA;AACjB,MAAO,MAAA,CAAA,gBAAA,CAAiB,WAAa,EAAA,eAAA,EAAiB,KAAK,CAAA,CAAA;AAC3D,MAAO,MAAA,CAAA,gBAAA,CAAiB,SAAW,EAAA,aAAA,EAAe,KAAK,CAAA,CAAA;AACvD,MAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,MAAA,SAAA,CAAU,IAAI,CAAA,CAAA;AAAA,KAChB;AAAA,IACA,CAAC,MAAQ,EAAA,eAAA,EAAiB,aAAe,EAAA,KAAA,EAAO,aAAa,SAAS,CAAA;AAAA,GACxE,CAAA;AAEA,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,IAAI,YAAY,OAAS,EAAA;AACvB,MAAA,WAAA,CAAY,OAAU,GAAA,KAAA,CAAA;AAAA,KACjB,MAAA;AACL,MAAA,OAAA,CAAQ,SAAS,KAAM,EAAA,CAAA;AAAA,KACzB;AAAA,GACF,CAAA;AAEA,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,iBAAA,CAAkB,OAAU,GAAA,qBAAA,CAAA;AAAA,GAC9B,CAAA;AAEA,EAAM,MAAA,SAAA,GAAY,GAAG,SAAW,EAAA;AAAA,IAC9B,CAAC,CAAA,EAAG,SAAS,CAAA,OAAA,CAAS,GAAG,MAAA;AAAA,IACzB,CAAC,CAAA,EAAG,SAAS,CAAA,OAAA,CAAS,GAAG,MAAA;AAAA,GAC1B,CAAA,CAAA;AACD,EACE,uBAAAC,cAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,eAAa,EAAA,IAAA;AAAA,MACb,GAAK,EAAA,OAAA;AAAA,MACL,IAAK,EAAA,WAAA;AAAA,MACL,KAAA;AAAA,MACA,MAAQ,EAAA,UAAA;AAAA,MACR,OAAS,EAAA,WAAA;AAAA,MACT,SAAW,EAAA,aAAA;AAAA,MACX,WAAa,EAAA,eAAA;AAAA,MACb,QAAU,EAAA,CAAA;AAAA,MAEV,QAAC,kBAAAA,cAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,CAAA,EAAG,SAAS,CAAc,UAAA,CAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GAC5C,CAAA;AAEJ,CAAC;;;;"}
@@ -1,109 +0,0 @@
1
- 'use strict';
2
-
3
- var flexUtils = require('../layout-reducer/flexUtils.js');
4
- require('react');
5
- var propUtils = require('../utils/propUtils.js');
6
-
7
- const NO_INTRINSIC_SIZE = {};
8
- const SPLITTER = 1;
9
- const PLACEHOLDER = 2;
10
- const isIntrinsicallySized = (item) => typeof item.intrinsicSize === "number";
11
- const getBreakPointValues = (breakPoints, component) => {
12
- const values = {};
13
- breakPoints.forEach((breakPoint) => {
14
- values[breakPoint] = propUtils.getProp(component, breakPoint);
15
- });
16
- return values;
17
- };
18
- const gatherChildMeta = (children, dimension, breakPoints) => {
19
- return children.map((child, index) => {
20
- const resizeable = propUtils.getProp(child, "resizeable");
21
- const { [dimension]: intrinsicSize } = flexUtils.getIntrinsicSize(child) ?? NO_INTRINSIC_SIZE;
22
- const flexOpen = flexUtils.hasUnboundedFlexStyle(child);
23
- if (breakPoints) {
24
- return {
25
- index,
26
- flexOpen,
27
- intrinsicSize,
28
- resizeable,
29
- ...getBreakPointValues(breakPoints, child)
30
- };
31
- } else {
32
- return { index, flexOpen, intrinsicSize, resizeable };
33
- }
34
- });
35
- };
36
- const findSplitterAndPlaceholderPositions = (childMeta) => {
37
- const count = childMeta.length;
38
- const allIntrinsic = childMeta.every(isIntrinsicallySized);
39
- const splitterPositions = Array(count).fill(0);
40
- if (allIntrinsic && count > 0) {
41
- splitterPositions[0] = PLACEHOLDER;
42
- splitterPositions[count - 1] = PLACEHOLDER;
43
- }
44
- if (count < 2) {
45
- return splitterPositions;
46
- } else {
47
- for (let i = 0, resizeablesLeft = 0; i < count - 1; i++) {
48
- if (childMeta[i].resizeable && !resizeablesLeft) {
49
- resizeablesLeft = SPLITTER;
50
- }
51
- splitterPositions[i] += resizeablesLeft;
52
- }
53
- for (let i = count - 1; i > 0; i--) {
54
- if (splitterPositions[i] & SPLITTER) {
55
- splitterPositions[i] -= SPLITTER;
56
- }
57
- if (childMeta[i].resizeable) {
58
- break;
59
- }
60
- }
61
- return splitterPositions;
62
- }
63
- };
64
- const identifyResizeParties = (contentMeta, idx) => {
65
- const idx1 = getLeadingResizeablePos(contentMeta, idx);
66
- const idx2 = getTrailingResizeablePos(contentMeta, idx);
67
- const participants = idx1 !== -1 && idx2 !== -1 ? [idx1, idx2] : void 0;
68
- const bystanders = identifyResizeBystanders(contentMeta, participants);
69
- return [participants, bystanders];
70
- };
71
- function identifyResizeBystanders(contentMeta, participants) {
72
- if (participants) {
73
- const bystanders = [];
74
- for (let i = 0; i < contentMeta.length; i++) {
75
- if (contentMeta[i].flexOpen && !participants.includes(i)) {
76
- bystanders.push(i);
77
- }
78
- }
79
- return bystanders;
80
- }
81
- }
82
- function getLeadingResizeablePos(contentMeta, idx) {
83
- let pos = idx, resizeable = false;
84
- while (pos >= 1 && !resizeable) {
85
- pos = pos - 1;
86
- resizeable = isResizeable(contentMeta, pos);
87
- }
88
- return pos;
89
- }
90
- function getTrailingResizeablePos(contentMeta, idx) {
91
- let pos = idx, resizeable = false;
92
- const count = contentMeta.length;
93
- while (pos < count - 1 && !resizeable) {
94
- pos = pos + 1;
95
- resizeable = isResizeable(contentMeta, pos);
96
- }
97
- return pos === count ? -1 : pos;
98
- }
99
- function isResizeable(contentMeta, idx) {
100
- const { placeholder, splitter, resizeable, intrinsicSize } = contentMeta[idx];
101
- return Boolean(!splitter && !intrinsicSize && (placeholder || resizeable));
102
- }
103
-
104
- exports.PLACEHOLDER = PLACEHOLDER;
105
- exports.SPLITTER = SPLITTER;
106
- exports.findSplitterAndPlaceholderPositions = findSplitterAndPlaceholderPositions;
107
- exports.gatherChildMeta = gatherChildMeta;
108
- exports.identifyResizeParties = identifyResizeParties;
109
- //# sourceMappingURL=flexbox-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flexbox-utils.js","sources":["../../src/flexbox/flexbox-utils.ts"],"sourcesContent":["import { ReactElement } from \"react\";\nimport {\n getIntrinsicSize,\n hasUnboundedFlexStyle,\n} from \"../layout-reducer/flexUtils\";\nimport { getProp } from \"../utils\";\nimport type { BreakPoint, ContentMeta } from \"./flexboxTypes\";\n\nconst NO_INTRINSIC_SIZE: {\n height?: number;\n width?: number;\n} = {};\n\nexport const SPLITTER = 1;\nexport const PLACEHOLDER = 2;\n\nconst isIntrinsicallySized = (item: ContentMeta) =>\n typeof item.intrinsicSize === \"number\";\n\nconst getBreakPointValues = (\n breakPoints: BreakPoint[],\n component: ReactElement\n) => {\n const values: { [key: string]: number | undefined } = {};\n breakPoints.forEach((breakPoint) => {\n values[breakPoint] = getProp(component, breakPoint);\n });\n return values;\n};\n\nexport const gatherChildMeta = (\n children: ReactElement[],\n dimension: \"width\" | \"height\",\n breakPoints?: BreakPoint[]\n) => {\n return children.map((child, index) => {\n const resizeable = getProp(child, \"resizeable\");\n const { [dimension]: intrinsicSize } =\n getIntrinsicSize(child) ?? NO_INTRINSIC_SIZE;\n const flexOpen = hasUnboundedFlexStyle(child);\n if (breakPoints) {\n return {\n index,\n flexOpen,\n intrinsicSize,\n resizeable,\n ...getBreakPointValues(breakPoints, child),\n };\n } else {\n return { index, flexOpen, intrinsicSize, resizeable };\n }\n });\n};\n\n// Splitters are inserted AFTER the associated index, so\n// never a splitter in last position.\n// Placeholder goes before (first) OR after(last) index\nexport const findSplitterAndPlaceholderPositions = (\n childMeta: ContentMeta[]\n) => {\n const count = childMeta.length;\n const allIntrinsic = childMeta.every(isIntrinsicallySized);\n const splitterPositions = Array(count).fill(0);\n if (allIntrinsic && count > 0) {\n splitterPositions[0] = PLACEHOLDER;\n splitterPositions[count - 1] = PLACEHOLDER;\n }\n if (count < 2) {\n return splitterPositions;\n } else {\n // 1) From the left, check each item.\n // Once we hit a resizable item, set this index and all subsequent indices,\n // except for last, to SPLITTER\n for (let i = 0, resizeablesLeft = 0; i < count - 1; i++) {\n if (childMeta[i].resizeable && !resizeablesLeft) {\n resizeablesLeft = SPLITTER;\n }\n splitterPositions[i] += resizeablesLeft;\n }\n // 2) Now check from the right. Undo splitter insertion until we reach a point\n // where there is a resizeable to our right.\n for (let i = count - 1; i > 0; i--) {\n if (splitterPositions[i] & SPLITTER) {\n splitterPositions[i] -= SPLITTER;\n }\n if (childMeta[i].resizeable) {\n break;\n }\n }\n return splitterPositions;\n }\n};\n\nexport const identifyResizeParties = (\n contentMeta: ContentMeta[],\n idx: number\n) => {\n const idx1 = getLeadingResizeablePos(contentMeta, idx);\n const idx2 = getTrailingResizeablePos(contentMeta, idx);\n const participants = idx1 !== -1 && idx2 !== -1 ? [idx1, idx2] : undefined;\n const bystanders = identifyResizeBystanders(contentMeta, participants);\n return [participants, bystanders];\n};\n\nfunction identifyResizeBystanders(\n contentMeta: ContentMeta[],\n participants?: number[]\n) {\n if (participants) {\n const bystanders = [];\n for (let i = 0; i < contentMeta.length; i++) {\n if (contentMeta[i].flexOpen && !participants.includes(i)) {\n bystanders.push(i);\n }\n }\n return bystanders;\n }\n}\n\nfunction getLeadingResizeablePos(contentMeta: ContentMeta[], idx: number) {\n let pos = idx,\n resizeable = false;\n while (pos >= 1 && !resizeable) {\n pos = pos - 1;\n resizeable = isResizeable(contentMeta, pos);\n }\n return pos;\n}\n\nfunction getTrailingResizeablePos(contentMeta: ContentMeta[], idx: number) {\n let pos = idx,\n resizeable = false;\n const count = contentMeta.length;\n while (pos < count - 1 && !resizeable) {\n pos = pos + 1;\n resizeable = isResizeable(contentMeta, pos);\n }\n return pos === count ? -1 : pos;\n}\n\nfunction isResizeable(contentMeta: ContentMeta[], idx: number): boolean {\n const { placeholder, splitter, resizeable, intrinsicSize } = contentMeta[idx];\n return Boolean(!splitter && !intrinsicSize && (placeholder || resizeable));\n}\n"],"names":["getProp","getIntrinsicSize","hasUnboundedFlexStyle"],"mappings":"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"}
@@ -1,62 +0,0 @@
1
- 'use strict';
2
-
3
- var vuuUtils = require('@vuu-ui/vuu-utils');
4
- var React = require('react');
5
- var flexboxUtils = require('./flexbox-utils.js');
6
-
7
- const breakPoints = ["xs", "sm", "md", "lg", "xl"];
8
- const DEFAULT_COLS = 12;
9
- const useResponsiveSizing = ({
10
- children: childrenProp,
11
- cols: colsProp,
12
- style
13
- }) => {
14
- const rootRef = React.useRef(null);
15
- const metaRef = React.useRef(null);
16
- const contentRef = React.useRef();
17
- const cols = colsProp ?? DEFAULT_COLS;
18
- const isColumn = style?.flexDirection === "column";
19
- const dimension = isColumn ? "height" : "width";
20
- const children = React.useMemo(
21
- () => Array.isArray(childrenProp) ? childrenProp : React.isValidElement(childrenProp) ? [childrenProp] : [],
22
- [childrenProp]
23
- );
24
- const buildContent = React.useCallback(
25
- (children2, dimension2) => {
26
- const childMeta = flexboxUtils.gatherChildMeta(children2, dimension2, breakPoints);
27
- const content = [];
28
- const meta = [];
29
- for (let i = 0; i < children2.length; i++) {
30
- const child = children2[i];
31
- const {
32
- style: { flex, ...rest }
33
- } = child.props;
34
- content.push(
35
- React.cloneElement(child, {
36
- key: vuuUtils.getUniqueId(),
37
- style: {
38
- ...rest,
39
- "--parent-col-count": cols
40
- }
41
- })
42
- );
43
- meta.push(childMeta[i]);
44
- }
45
- return [content, meta];
46
- },
47
- [cols]
48
- );
49
- React.useMemo(() => {
50
- const [content, meta] = buildContent(children, dimension);
51
- metaRef.current = meta;
52
- contentRef.current = content;
53
- }, [buildContent, children, dimension]);
54
- return {
55
- cols,
56
- content: contentRef.current,
57
- rootRef
58
- };
59
- };
60
-
61
- exports.useResponsiveSizing = useResponsiveSizing;
62
- //# sourceMappingURL=useResponsiveSizing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useResponsiveSizing.js","sources":["../../src/flexbox/useResponsiveSizing.ts"],"sourcesContent":["import { getUniqueId } from \"@vuu-ui/vuu-utils\";\nimport {\n cloneElement,\n CSSProperties,\n isValidElement,\n ReactElement,\n useCallback,\n useMemo,\n useRef,\n} from \"react\";\nimport { gatherChildMeta } from \"./flexbox-utils\";\nimport { BreakPoint } from \"./flexboxTypes\";\n\nconst breakPoints: BreakPoint[] = [\"xs\", \"sm\", \"md\", \"lg\", \"xl\"];\n\nconst DEFAULT_COLS = 12;\n\nexport const useResponsiveSizing = ({\n children: childrenProp,\n cols: colsProp,\n style,\n}: {\n children: ReactElement[];\n cols?: number;\n style?: CSSProperties;\n}) => {\n const rootRef = useRef(null);\n const metaRef = useRef(null);\n const contentRef = useRef<ReactElement[]>();\n const cols = colsProp ?? DEFAULT_COLS;\n\n const isColumn = style?.flexDirection === \"column\";\n const dimension = isColumn ? \"height\" : \"width\";\n\n const children = useMemo(\n () =>\n Array.isArray(childrenProp)\n ? childrenProp\n : isValidElement(childrenProp)\n ? [childrenProp]\n : [],\n [childrenProp]\n );\n\n const buildContent = useCallback(\n (children, dimension): [ReactElement[], any] => {\n const childMeta = gatherChildMeta(children, dimension, breakPoints);\n const content = [];\n const meta = [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n const {\n style: { flex, ...rest },\n } = child.props;\n content.push(\n cloneElement(child, {\n key: getUniqueId(),\n style: {\n ...rest,\n \"--parent-col-count\": cols,\n },\n })\n );\n meta.push(childMeta[i]);\n }\n return [content, meta];\n },\n [cols]\n );\n\n useMemo(() => {\n const [content, meta] = buildContent(children, dimension);\n metaRef.current = meta;\n contentRef.current = content;\n }, [buildContent, children, dimension]);\n\n return {\n cols,\n content: contentRef.current,\n rootRef,\n };\n};\n"],"names":["useRef","useMemo","isValidElement","useCallback","children","dimension","gatherChildMeta","cloneElement","getUniqueId"],"mappings":";;;;;;AAaA,MAAM,cAA4B,CAAC,IAAA,EAAM,IAAM,EAAA,IAAA,EAAM,MAAM,IAAI,CAAA,CAAA;AAE/D,MAAM,YAAe,GAAA,EAAA,CAAA;AAEd,MAAM,sBAAsB,CAAC;AAAA,EAClC,QAAU,EAAA,YAAA;AAAA,EACV,IAAM,EAAA,QAAA;AAAA,EACN,KAAA;AACF,CAIM,KAAA;AACJ,EAAM,MAAA,OAAA,GAAUA,aAAO,IAAI,CAAA,CAAA;AAC3B,EAAM,MAAA,OAAA,GAAUA,aAAO,IAAI,CAAA,CAAA;AAC3B,EAAA,MAAM,aAAaA,YAAuB,EAAA,CAAA;AAC1C,EAAA,MAAM,OAAO,QAAY,IAAA,YAAA,CAAA;AAEzB,EAAM,MAAA,QAAA,GAAW,OAAO,aAAkB,KAAA,QAAA,CAAA;AAC1C,EAAM,MAAA,SAAA,GAAY,WAAW,QAAW,GAAA,OAAA,CAAA;AAExC,EAAA,MAAM,QAAW,GAAAC,aAAA;AAAA,IACf,MACE,KAAA,CAAM,OAAQ,CAAA,YAAY,CACtB,GAAA,YAAA,GACAC,oBAAe,CAAA,YAAY,CAC3B,GAAA,CAAC,YAAY,CAAA,GACb,EAAC;AAAA,IACP,CAAC,YAAY,CAAA;AAAA,GACf,CAAA;AAEA,EAAA,MAAM,YAAe,GAAAC,iBAAA;AAAA,IACnB,CAACC,WAAUC,UAAqC,KAAA;AAC9C,MAAA,MAAM,SAAY,GAAAC,4BAAA,CAAgBF,SAAUC,EAAAA,UAAAA,EAAW,WAAW,CAAA,CAAA;AAClE,MAAA,MAAM,UAAU,EAAC,CAAA;AACjB,MAAA,MAAM,OAAO,EAAC,CAAA;AACd,MAAA,KAAA,IAAS,CAAI,GAAA,CAAA,EAAG,CAAID,GAAAA,SAAAA,CAAS,QAAQ,CAAK,EAAA,EAAA;AACxC,QAAM,MAAA,KAAA,GAAQA,UAAS,CAAC,CAAA,CAAA;AACxB,QAAM,MAAA;AAAA,UACJ,KAAO,EAAA,EAAE,IAAM,EAAA,GAAG,IAAK,EAAA;AAAA,YACrB,KAAM,CAAA,KAAA,CAAA;AACV,QAAQ,OAAA,CAAA,IAAA;AAAA,UACNG,mBAAa,KAAO,EAAA;AAAA,YAClB,KAAKC,oBAAY,EAAA;AAAA,YACjB,KAAO,EAAA;AAAA,cACL,GAAG,IAAA;AAAA,cACH,oBAAsB,EAAA,IAAA;AAAA,aACxB;AAAA,WACD,CAAA;AAAA,SACH,CAAA;AACA,QAAK,IAAA,CAAA,IAAA,CAAK,SAAU,CAAA,CAAC,CAAC,CAAA,CAAA;AAAA,OACxB;AACA,MAAO,OAAA,CAAC,SAAS,IAAI,CAAA,CAAA;AAAA,KACvB;AAAA,IACA,CAAC,IAAI,CAAA;AAAA,GACP,CAAA;AAEA,EAAAP,aAAA,CAAQ,MAAM;AACZ,IAAA,MAAM,CAAC,OAAS,EAAA,IAAI,CAAI,GAAA,YAAA,CAAa,UAAU,SAAS,CAAA,CAAA;AACxD,IAAA,OAAA,CAAQ,OAAU,GAAA,IAAA,CAAA;AAClB,IAAA,UAAA,CAAW,OAAU,GAAA,OAAA,CAAA;AAAA,GACpB,EAAA,CAAC,YAAc,EAAA,QAAA,EAAU,SAAS,CAAC,CAAA,CAAA;AAEtC,EAAO,OAAA;AAAA,IACL,IAAA;AAAA,IACA,SAAS,UAAW,CAAA,OAAA;AAAA,IACpB,OAAA;AAAA,GACF,CAAA;AACF;;;;"}