@vuu-ui/vuu-layout 0.0.27 → 0.5.5
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.
- package/LICENSE +201 -0
- package/cjs/index.js +20 -0
- package/cjs/index.js.map +7 -0
- package/esm/index.js +20 -0
- package/esm/index.js.map +7 -0
- package/index.css +2 -0
- package/index.css.map +7 -0
- package/package.json +15 -19
- package/src/Component.css +0 -2
- package/src/Component.tsx +0 -20
- package/src/DraggableLayout.css +0 -18
- package/src/DraggableLayout.tsx +0 -29
- package/src/__tests__/flexbox-utils.spec.js +0 -90
- package/src/action-buttons/action-buttons.css +0 -12
- package/src/action-buttons/action-buttons.tsx +0 -30
- package/src/action-buttons/index.ts +0 -1
- package/src/chest-of-drawers/Chest.css +0 -36
- package/src/chest-of-drawers/Chest.tsx +0 -42
- package/src/chest-of-drawers/Drawer.css +0 -153
- package/src/chest-of-drawers/Drawer.tsx +0 -118
- package/src/chest-of-drawers/index.ts +0 -2
- package/src/common-types.ts +0 -9
- package/src/debug.ts +0 -16
- package/src/dialog/Dialog.css +0 -16
- package/src/dialog/Dialog.tsx +0 -59
- package/src/dialog/index.ts +0 -1
- package/src/drag-drop/BoxModel.ts +0 -546
- package/src/drag-drop/DragState.ts +0 -222
- package/src/drag-drop/Draggable.ts +0 -282
- package/src/drag-drop/DropMenu.css +0 -70
- package/src/drag-drop/DropMenu.tsx +0 -68
- package/src/drag-drop/DropTarget.ts +0 -392
- package/src/drag-drop/DropTargetRenderer.css +0 -40
- package/src/drag-drop/DropTargetRenderer.tsx +0 -284
- package/src/drag-drop/dragDropTypes.ts +0 -49
- package/src/drag-drop/index.ts +0 -4
- package/src/editable-label/EditableLabel.css +0 -28
- package/src/editable-label/EditableLabel.tsx +0 -99
- package/src/editable-label/index.ts +0 -1
- package/src/flexbox/Flexbox.css +0 -45
- package/src/flexbox/Flexbox.tsx +0 -70
- package/src/flexbox/FlexboxLayout.jsx +0 -26
- package/src/flexbox/FluidGrid.css +0 -134
- package/src/flexbox/FluidGrid.tsx +0 -84
- package/src/flexbox/FluidGridLayout.tsx +0 -10
- package/src/flexbox/Splitter.css +0 -140
- package/src/flexbox/Splitter.tsx +0 -135
- package/src/flexbox/flexbox-utils.ts +0 -128
- package/src/flexbox/flexboxTypes.ts +0 -63
- package/src/flexbox/index.ts +0 -4
- package/src/flexbox/useResponsiveSizing.ts +0 -85
- package/src/flexbox/useSplitterResizing.ts +0 -272
- package/src/index.ts +0 -20
- package/src/layout-action.ts +0 -21
- package/src/layout-header/ActionButton.tsx +0 -23
- package/src/layout-header/Header.css +0 -8
- package/src/layout-header/Header.tsx +0 -222
- package/src/layout-header/index.ts +0 -1
- package/src/layout-provider/LayoutProvider.tsx +0 -160
- package/src/layout-provider/LayoutProviderContext.ts +0 -17
- package/src/layout-provider/index.ts +0 -2
- package/src/layout-provider/useLayoutDragDrop.ts +0 -241
- package/src/layout-reducer/flexUtils.ts +0 -281
- package/src/layout-reducer/index.ts +0 -4
- package/src/layout-reducer/insert-layout-element.ts +0 -365
- package/src/layout-reducer/layout-reducer.ts +0 -255
- package/src/layout-reducer/layoutTypes.ts +0 -151
- package/src/layout-reducer/layoutUtils.ts +0 -302
- package/src/layout-reducer/remove-layout-element.ts +0 -240
- package/src/layout-reducer/replace-layout-element.ts +0 -118
- package/src/layout-reducer/resize-flex-children.ts +0 -56
- package/src/layout-reducer/wrap-layout-element.ts +0 -317
- package/src/layout-view/View.css +0 -58
- package/src/layout-view/View.tsx +0 -149
- package/src/layout-view/ViewContext.ts +0 -31
- package/src/layout-view/index.ts +0 -4
- package/src/layout-view/useView.tsx +0 -104
- package/src/layout-view/useViewActionDispatcher.ts +0 -133
- package/src/layout-view/useViewResize.ts +0 -53
- package/src/layout-view/viewTypes.ts +0 -37
- package/src/palette/Palette.css +0 -37
- package/src/palette/Palette.tsx +0 -140
- package/src/palette/PaletteUitk.css +0 -9
- package/src/palette/PaletteUitk.tsx +0 -79
- package/src/palette/index.ts +0 -2
- package/src/placeholder/Placeholder.css +0 -10
- package/src/placeholder/Placeholder.tsx +0 -39
- package/src/placeholder/index.ts +0 -1
- package/src/registry/ComponentRegistry.ts +0 -35
- package/src/registry/index.ts +0 -1
- package/src/responsive/OverflowMenu.css +0 -31
- package/src/responsive/OverflowMenu.jsx +0 -56
- package/src/responsive/breakpoints.ts +0 -48
- package/src/responsive/index.ts +0 -4
- package/src/responsive/measureMinimumNodeSize.ts +0 -23
- package/src/responsive/overflowUtils.js +0 -14
- package/src/responsive/use-breakpoints.ts +0 -100
- package/src/responsive/useOverflowObserver.ts +0 -606
- package/src/responsive/useResizeObserver.ts +0 -154
- package/src/responsive/utils.ts +0 -37
- package/src/stack/Stack.css +0 -39
- package/src/stack/Stack.tsx +0 -160
- package/src/stack/StackLayout.tsx +0 -137
- package/src/stack/index.ts +0 -3
- package/src/stack/stackTypes.ts +0 -19
- package/src/tabs/TabPanel.css +0 -12
- package/src/tabs/TabPanel.tsx +0 -17
- package/src/tabs/index.ts +0 -1
- package/src/tools/config-wrapper/ConfigWrapper.jsx +0 -53
- package/src/tools/config-wrapper/index.js +0 -1
- package/src/tools/devtools-box/layout-configurator.css +0 -112
- package/src/tools/devtools-box/layout-configurator.jsx +0 -369
- package/src/tools/devtools-tree/layout-tree-viewer.css +0 -15
- package/src/tools/devtools-tree/layout-tree-viewer.jsx +0 -36
- package/src/tools/index.js +0 -3
- package/src/use-persistent-state.ts +0 -115
- package/src/utils/componentFromLayout.tsx +0 -30
- package/src/utils/index.ts +0 -6
- package/src/utils/pathUtils.ts +0 -294
- package/src/utils/propUtils.ts +0 -24
- package/src/utils/refUtils.ts +0 -16
- package/src/utils/styleUtils.ts +0 -14
- package/src/utils/typeOf.ts +0 -22
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import React, { CSSProperties, HTMLAttributes, useCallback } from "react";
|
|
2
|
-
import cx from "classnames";
|
|
3
|
-
import { Button, useControlled } from "@heswell/uitk-core";
|
|
4
|
-
|
|
5
|
-
import "./Drawer.css";
|
|
6
|
-
|
|
7
|
-
const sizeAttribute = (value: string | number) => {
|
|
8
|
-
return typeof value === "string" ? value : value + "px";
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
const getStyle = (
|
|
12
|
-
styleProp?: CSSProperties,
|
|
13
|
-
sizeOpen?: number,
|
|
14
|
-
sizeClosed?: number
|
|
15
|
-
) => {
|
|
16
|
-
const hasSizeOpen = sizeOpen !== undefined;
|
|
17
|
-
const hasSizeClosed = sizeClosed !== undefined;
|
|
18
|
-
|
|
19
|
-
if (!styleProp && !hasSizeClosed && !hasSizeOpen) {
|
|
20
|
-
return undefined;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (!hasSizeClosed && !hasSizeOpen) {
|
|
24
|
-
return styleProp;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return {
|
|
28
|
-
...styleProp,
|
|
29
|
-
"--drawer-size": hasSizeOpen ? sizeAttribute(sizeOpen) : undefined,
|
|
30
|
-
"--drawer-peek-size": hasSizeClosed ? sizeAttribute(sizeClosed) : undefined,
|
|
31
|
-
};
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export interface DrawerProps extends HTMLAttributes<HTMLDivElement> {
|
|
35
|
-
clickToOpen?: boolean;
|
|
36
|
-
defaultOpen: boolean;
|
|
37
|
-
inline?: boolean;
|
|
38
|
-
open?: boolean;
|
|
39
|
-
peekaboo?: boolean;
|
|
40
|
-
position?: "left" | "right" | "top" | "bottom";
|
|
41
|
-
sizeOpen?: number;
|
|
42
|
-
sizeClosed?: number;
|
|
43
|
-
toggleButton?: "start" | "end";
|
|
44
|
-
}
|
|
45
|
-
const Drawer = ({
|
|
46
|
-
children,
|
|
47
|
-
className: classNameProp,
|
|
48
|
-
clickToOpen,
|
|
49
|
-
defaultOpen,
|
|
50
|
-
sizeOpen,
|
|
51
|
-
sizeClosed,
|
|
52
|
-
style: styleProp,
|
|
53
|
-
open: openProp,
|
|
54
|
-
position = "left",
|
|
55
|
-
inline,
|
|
56
|
-
onClick,
|
|
57
|
-
peekaboo = false,
|
|
58
|
-
toggleButton,
|
|
59
|
-
...props
|
|
60
|
-
}: DrawerProps) => {
|
|
61
|
-
const [open, setOpen] = useControlled({
|
|
62
|
-
controlled: openProp,
|
|
63
|
-
default: defaultOpen ?? false,
|
|
64
|
-
name: "Drawer",
|
|
65
|
-
state: "open",
|
|
66
|
-
});
|
|
67
|
-
|
|
68
|
-
const classBase = "hwDrawer";
|
|
69
|
-
|
|
70
|
-
const className = cx(classBase, classNameProp, `${classBase}-${position}`, {
|
|
71
|
-
[`${classBase}-open`]: open,
|
|
72
|
-
[`${classBase}-inline`]: inline,
|
|
73
|
-
[`${classBase}-over`]: !inline,
|
|
74
|
-
[`${classBase}-peekaboo`]: peekaboo,
|
|
75
|
-
});
|
|
76
|
-
|
|
77
|
-
const toggleDrawer = useCallback(() => {
|
|
78
|
-
console.log("toggleDrawer");
|
|
79
|
-
setOpen(!open);
|
|
80
|
-
}, [open, setOpen]);
|
|
81
|
-
|
|
82
|
-
const style = getStyle(styleProp, sizeOpen, sizeClosed);
|
|
83
|
-
|
|
84
|
-
const handleClick = clickToOpen ? toggleDrawer : onClick;
|
|
85
|
-
|
|
86
|
-
const renderToggleButton = () => (
|
|
87
|
-
<div className={cx("hwToggleButton-container")}>
|
|
88
|
-
{open ? (
|
|
89
|
-
<Button
|
|
90
|
-
aria-label="close"
|
|
91
|
-
onClick={toggleDrawer}
|
|
92
|
-
data-icon="close"
|
|
93
|
-
variant="secondary"
|
|
94
|
-
/>
|
|
95
|
-
) : (
|
|
96
|
-
<Button
|
|
97
|
-
aria-label="open"
|
|
98
|
-
onClick={toggleDrawer}
|
|
99
|
-
data-icon="close"
|
|
100
|
-
variant="secondary"
|
|
101
|
-
/>
|
|
102
|
-
)}
|
|
103
|
-
</div>
|
|
104
|
-
);
|
|
105
|
-
|
|
106
|
-
return (
|
|
107
|
-
<div {...props} className={className} onClick={handleClick} style={style}>
|
|
108
|
-
{toggleButton == "start" ? renderToggleButton() : null}
|
|
109
|
-
<div className={`${classBase}-liner`}>
|
|
110
|
-
<div className={`${classBase}-content`}>{children}</div>
|
|
111
|
-
</div>
|
|
112
|
-
{toggleButton == "end" ? renderToggleButton() : null}
|
|
113
|
-
</div>
|
|
114
|
-
);
|
|
115
|
-
};
|
|
116
|
-
Drawer.displayName = "Drawer";
|
|
117
|
-
|
|
118
|
-
export default Drawer;
|
package/src/common-types.ts
DELETED
package/src/debug.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { ReactElement } from 'react';
|
|
2
|
-
import { typeOf } from './utils';
|
|
3
|
-
|
|
4
|
-
export const tree = (el: ReactElement, depth = 0) => {
|
|
5
|
-
const type = typeOf(el);
|
|
6
|
-
const spaces = ' ';
|
|
7
|
-
let str = `\n${spaces.slice(0, depth)}${type}`;
|
|
8
|
-
if (type !== 'View') {
|
|
9
|
-
const els = el.props.children || [];
|
|
10
|
-
(Array.isArray(els) ? els : [els]).forEach((child) => {
|
|
11
|
-
str += tree(child, depth + 1);
|
|
12
|
-
});
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
return str;
|
|
16
|
-
};
|
package/src/dialog/Dialog.css
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
.hwDialog {
|
|
2
|
-
--dialog-border: var(--hw-dialog-border, solid 1px #ccc);
|
|
3
|
-
--dialog-padding: var(--hw-dialog-padding, 0);
|
|
4
|
-
--dialog-shadow: var(--hw-dialog-shadow, none);
|
|
5
|
-
--vuuView-margin: 0;
|
|
6
|
-
--vuuView-flex-wrap: none;
|
|
7
|
-
|
|
8
|
-
border: var(--dialog-border);
|
|
9
|
-
margin: var(--hwDialog-margin, 200px auto 0 auto);
|
|
10
|
-
padding: var(--dialog-padding);
|
|
11
|
-
box-shadow: var(--dialog-shadow);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
.hwDialog::backdrop {
|
|
15
|
-
background-color: var(--hw-dialog-backdrop);
|
|
16
|
-
}
|
package/src/dialog/Dialog.tsx
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
HTMLAttributes,
|
|
3
|
-
useCallback,
|
|
4
|
-
useLayoutEffect,
|
|
5
|
-
useRef,
|
|
6
|
-
} from "react";
|
|
7
|
-
import cx from "classnames";
|
|
8
|
-
import { Flexbox } from "../flexbox";
|
|
9
|
-
import { View } from "../layout-view";
|
|
10
|
-
|
|
11
|
-
import { Toolbar, ToolbarButton } from "@heswell/uitk-lab";
|
|
12
|
-
import { CloseIcon } from "@heswell/uitk-icons";
|
|
13
|
-
|
|
14
|
-
import "./Dialog.css";
|
|
15
|
-
|
|
16
|
-
export interface DialogProps extends HTMLAttributes<HTMLDialogElement> {
|
|
17
|
-
isOpen?: boolean;
|
|
18
|
-
onClose?: () => void;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const Dialog = ({
|
|
22
|
-
children,
|
|
23
|
-
className,
|
|
24
|
-
isOpen = false,
|
|
25
|
-
onClose,
|
|
26
|
-
...props
|
|
27
|
-
}: DialogProps) => {
|
|
28
|
-
const classRoot = "hwDialog";
|
|
29
|
-
const root = useRef<HTMLDialogElement>(null);
|
|
30
|
-
|
|
31
|
-
useLayoutEffect(() => {
|
|
32
|
-
if (isOpen) {
|
|
33
|
-
root.current?.showModal();
|
|
34
|
-
}
|
|
35
|
-
}, [isOpen]);
|
|
36
|
-
|
|
37
|
-
const close = useCallback(() => {
|
|
38
|
-
root.current?.close();
|
|
39
|
-
onClose?.();
|
|
40
|
-
}, [onClose]);
|
|
41
|
-
|
|
42
|
-
return (
|
|
43
|
-
<dialog {...props} className={cx(classRoot, className)} ref={root}>
|
|
44
|
-
{/* <Flexbox style={{ flexDirection: "column", width: "fit-content" }}> */}
|
|
45
|
-
<Flexbox
|
|
46
|
-
style={{ flexDirection: "column", width: "100%", height: "100%" }}
|
|
47
|
-
>
|
|
48
|
-
<Toolbar style={{ height: 32 }}>
|
|
49
|
-
<ToolbarButton key="close" onClick={close} data-align="right">
|
|
50
|
-
<CloseIcon /> Close
|
|
51
|
-
</ToolbarButton>
|
|
52
|
-
</Toolbar>
|
|
53
|
-
<View style={{ flex: 1 }}>{children}</View>
|
|
54
|
-
</Flexbox>
|
|
55
|
-
</dialog>
|
|
56
|
-
);
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
export default Dialog;
|
package/src/dialog/index.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { default as Dialog } from './Dialog';
|