@hanzo/ui 8.0.77 → 8.0.82
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/dist/gallery.cjs +11 -1
- package/dist/gallery.d.ts.map +1 -1
- package/dist/gallery.js +11 -1
- package/dist/gallery.js.map +1 -1
- package/dist/glass.cjs +60 -6
- package/dist/glass.css +25 -0
- package/dist/glass.d.ts +49 -0
- package/dist/glass.d.ts.map +1 -1
- package/dist/glass.js +58 -5
- package/dist/glass.js.map +1 -1
- package/dist/gui-config.cjs +19 -0
- package/dist/gui-config.d.ts +2 -2
- package/dist/gui-config.d.ts.map +1 -1
- package/dist/gui-config.js +19 -0
- package/dist/gui-config.js.map +1 -1
- package/dist/product/Palette.cjs +1 -1
- package/dist/product/Palette.d.ts.map +1 -1
- package/dist/product/Palette.js +1 -1
- package/dist/product/Palette.js.map +1 -1
- package/dist/product/Workbench.cjs +97 -0
- package/dist/product/Workbench.d.ts +65 -0
- package/dist/product/Workbench.d.ts.map +1 -0
- package/dist/product/Workbench.js +94 -0
- package/dist/product/Workbench.js.map +1 -0
- package/dist/product/index.cjs +1 -0
- package/dist/product/index.d.ts +1 -0
- package/dist/product/index.d.ts.map +1 -1
- package/dist/product/index.js +1 -0
- package/dist/product/index.js.map +1 -1
- package/dist/styles.css +98 -374
- package/dist/theme.css +75 -0
- package/package.json +2 -2
package/dist/product/Palette.js
CHANGED
|
@@ -45,7 +45,7 @@ export function Palette({ open, onOpenChange, ops, onRun, active, onActive, sear
|
|
|
45
45
|
onSearch?.(s);
|
|
46
46
|
};
|
|
47
47
|
const groups = useMemo(() => survivors(ops, search, limit), [ops, search, limit]);
|
|
48
|
-
return (_jsxs(CommandDialog, { open: open, onOpenChange: onOpenChange, title: title, description: placeholder, value: active, onValueChange: onActive, shouldFilter: false, children: [_jsx(CommandInput, { value: search, onValueChange: setSearch, placeholder: placeholder, color: "$color", placeholderTextColor: "$color11" }), _jsxs(XStack, { minH: height, children: [_jsxs(CommandList, { maxH: height, width: children ? "50%" : "100%", borderRightWidth: children ? 1 : 0, borderColor: "$borderColor",
|
|
48
|
+
return (_jsxs(CommandDialog, { open: open, onOpenChange: onOpenChange, title: title, description: placeholder, value: active, onValueChange: onActive, shouldFilter: false, children: [_jsx(CommandInput, { value: search, onValueChange: setSearch, placeholder: placeholder, color: "$color", placeholderTextColor: "$color11" }), _jsxs(XStack, { minH: height, children: [_jsxs(CommandList, { maxH: height, width: children ? "50%" : "100%", borderRightWidth: children ? 1 : 0, borderColor: "$borderColor", pt: "$1", pb: "$4", children: [groups.length === 0 && (_jsx(CommandEmpty, { children: _jsx(SizableText, { color: "$color11", children: empty }) })), groups.map(([group, items]) => (_jsx(CommandGroup, { heading: group, children: items.map((op) => (_jsxs(CommandItem, { value: op.id, onSelect: () => onRun(op), gap: "$2", children: [op.icon, _jsxs(XStack, { flex: 1, items: "center", gap: "$2", overflow: "hidden", children: [_jsx(SizableText, { numberOfLines: 1, shrink: 0, children: op.label }), op.hint ? (_jsx(SizableText, { numberOfLines: 1, flex: 1, fontSize: "$1", color: "$color11", children: op.hint })) : null] }), _jsx(Method, { of: op }), op.end] }, op.id))) }, group)))] }), children ? _jsx(YStack, { width: "50%", children: children }) : null] }), footer ? (_jsx(XStack, { items: "center", gap: "$4", borderTopWidth: 1, borderColor: "$borderColor", px: "$3", py: "$2", children: footer })) : null] }));
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* The method, at the end of the row, for route commands only.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Palette.js","sourceRoot":"","sources":["../../src/product/Palette.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,OAAO,EAAkB,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAW,MAAM,SAAS,CAAA;AAiClD,MAAM,UAAU,OAAO,CAAC,EACtB,IAAI,EACJ,YAAY,EACZ,GAAG,EACH,KAAK,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,QAAQ,EACR,WAAW,GAAG,kBAAkB,EAChC,KAAK,GAAG,mBAAmB,EAC3B,KAAK,EACL,QAAQ,EACR,MAAM,EACN,MAAM,GAAG,GAAG,EACZ,KAAK,GAAG,iBAAiB,GACZ;IACb,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAA;IAClC,MAAM,MAAM,GAAG,UAAU,IAAI,GAAG,CAAA;IAChC,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE;QAC9B,MAAM,CAAC,CAAC,CAAC,CAAA;QACT,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAA;IACf,CAAC,CAAA;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA;IAEjF,OAAO,CACL,MAAC,aAAa,IACZ,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,QAAQ,EACvB,YAAY,EAAE,KAAK,aAEnB,KAAC,YAAY,IACX,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,SAAS,EACxB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAC,QAAQ,EACd,oBAAoB,EAAC,UAAU,GAC/B,EACF,MAAC,MAAM,IAAC,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"Palette.js","sourceRoot":"","sources":["../../src/product/Palette.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
'use client';"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Dock = Dock;
|
|
5
|
+
exports.Workbench = Workbench;
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
/**
|
|
8
|
+
* Workbench — the shell a Hanzo surface runs inside: a center view with a dock
|
|
9
|
+
* on the left, the right and the bottom.
|
|
10
|
+
*
|
|
11
|
+
* A dock is a strip of tabs over one visible pane. The three sides differ only
|
|
12
|
+
* in where the strip sits and which edge drags, so they are ONE component given
|
|
13
|
+
* a side; a second implementation is how two docks drift apart.
|
|
14
|
+
*
|
|
15
|
+
* Tabs are data. A side chat, a browser and the developer console are all Tab
|
|
16
|
+
* values, so a surface adds one by pushing to an array rather than by teaching
|
|
17
|
+
* the shell a new kind. What a tab renders is the surface's business — the
|
|
18
|
+
* shell owns placement, activation and size, and nothing else.
|
|
19
|
+
*
|
|
20
|
+
* PAPER, NOT BOXES. Depth carries state: the workspace is the base sheet, a
|
|
21
|
+
* dock is a sheet raised above it, and the active tab is raised again. Light
|
|
22
|
+
* falls from the top, so every shadow points the same way and elevation reads
|
|
23
|
+
* as a stack rather than as decoration. Outlines appear only where two sheets
|
|
24
|
+
* meet edge-on — a hairline, never a border around a thing.
|
|
25
|
+
*
|
|
26
|
+
* The rungs come from `sheet()` (../glass), which reads @hanzo/design's
|
|
27
|
+
* `--sheet-*` / `--shadow-sheet-*`. gui's own `elevation` prop is a DIFFERENT
|
|
28
|
+
* idea wearing the same word: it synthesises a shadow from a number, carries no
|
|
29
|
+
* lit edge, and answers to nothing — so a dock lit that way and a menu lit by
|
|
30
|
+
* the ladder stand in two different rooms.
|
|
31
|
+
*/
|
|
32
|
+
const react_1 = require("react");
|
|
33
|
+
const gui_1 = require("@hanzo/gui");
|
|
34
|
+
const glass_1 = require("../glass.cjs");
|
|
35
|
+
const DEFAULT_SIZE = { left: 260, right: 380, bottom: 220 };
|
|
36
|
+
/** The edge facing the center carries the drag handle. */
|
|
37
|
+
const HANDLE_FIRST = { left: false, right: true, bottom: true };
|
|
38
|
+
function Dock({ side, tabs, activeId, defaultActiveId, onActivate, onClose, actions, size, onResize, minSize = 160, maxSize = 900, }) {
|
|
39
|
+
const [active, setActive] = (0, gui_1.useControllableState)({
|
|
40
|
+
prop: activeId,
|
|
41
|
+
defaultProp: defaultActiveId ?? tabs[0]?.id,
|
|
42
|
+
// A tab id is always a string when one activates; the hook's own
|
|
43
|
+
// signature admits undefined, so narrow rather than cast.
|
|
44
|
+
onChange: (id) => { if (id)
|
|
45
|
+
onActivate?.(id); },
|
|
46
|
+
});
|
|
47
|
+
const [extent, setExtent] = (0, gui_1.useControllableState)({
|
|
48
|
+
prop: size,
|
|
49
|
+
defaultProp: DEFAULT_SIZE[side],
|
|
50
|
+
onChange: onResize,
|
|
51
|
+
});
|
|
52
|
+
const horizontal = side !== 'bottom';
|
|
53
|
+
const origin = (0, react_1.useRef)(0);
|
|
54
|
+
const originExtent = (0, react_1.useRef)(0);
|
|
55
|
+
// Pointer capture, so a drag that leaves the handle still tracks.
|
|
56
|
+
const onDown = (0, react_1.useCallback)((e) => {
|
|
57
|
+
origin.current = horizontal ? e.clientX : e.clientY;
|
|
58
|
+
originExtent.current = extent ?? DEFAULT_SIZE[side];
|
|
59
|
+
e.currentTarget?.setPointerCapture?.(e.pointerId);
|
|
60
|
+
}, [horizontal, extent, side]);
|
|
61
|
+
const onMove = (0, react_1.useCallback)((e) => {
|
|
62
|
+
if (!e.currentTarget?.hasPointerCapture?.(e.pointerId))
|
|
63
|
+
return;
|
|
64
|
+
const delta = (horizontal ? e.clientX : e.clientY) - origin.current;
|
|
65
|
+
// Left grows rightward; right and bottom grow the other way.
|
|
66
|
+
const signed = side === 'left' ? delta : -delta;
|
|
67
|
+
setExtent(Math.min(maxSize, Math.max(minSize, originExtent.current + signed)));
|
|
68
|
+
}, [horizontal, side, minSize, maxSize, setExtent]);
|
|
69
|
+
if (!tabs.length)
|
|
70
|
+
return null;
|
|
71
|
+
const current = tabs.find((t) => t.id === active) ?? tabs[0];
|
|
72
|
+
// The seam between two sheets, and where the dock is resized.
|
|
73
|
+
const seam = ((0, jsx_runtime_1.jsx)(gui_1.YStack, { onPointerDown: onDown, onPointerMove: onMove, cursor: horizontal ? 'col-resize' : 'row-resize', width: horizontal ? 5 : undefined, height: horizontal ? undefined : 5, hoverStyle: { bg: '$color6' } }));
|
|
74
|
+
const dock = ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { overflow: "hidden", ...(0, glass_1.sheet)(1), ...(horizontal ? { width: extent } : { height: extent }), children: [(0, jsx_runtime_1.jsxs)(gui_1.XStack, { items: "center", gap: "$1", px: "$2", pt: "$1.5", children: [tabs.map((t) => {
|
|
75
|
+
const on = t.id === current.id;
|
|
76
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { items: "center", gap: "$1.5", px: "$2.5", py: "$1.5", cursor: "pointer",
|
|
77
|
+
// The active tab is a raised sheet whose bottom corners stay
|
|
78
|
+
// square, so it reads as continuous with the pane beneath it —
|
|
79
|
+
// which is why both stand on rung 2 rather than merely looking
|
|
80
|
+
// similar. An inactive tab is not a sheet at all; it is the
|
|
81
|
+
// dock's own surface showing through.
|
|
82
|
+
rounded: "$3", ...(on ? (0, glass_1.sheet)(2) : { backgroundColor: 'transparent' }), hoverStyle: { bg: on ? undefined : '$color2' }, children: [(0, jsx_runtime_1.jsx)(gui_1.YStack, { onPress: () => setActive(t.id), children: (0, jsx_runtime_1.jsxs)(gui_1.XStack, { items: "center", gap: "$1.5", children: [t.icon, (0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$2", numberOfLines: 1, opacity: on ? 1 : 0.7, children: t.title })] }) }), t.closable === false ? null : ((0, jsx_runtime_1.jsx)(gui_1.Button, { size: "$1", chromeless: true, circular: true, "aria-label": `Close ${t.title}`, onPress: () => onClose?.(t.id), children: "\u00D7" }))] }, t.id));
|
|
83
|
+
}), actions] }), (0, jsx_runtime_1.jsx)(gui_1.Separator, { opacity: 0.4 }), (0, jsx_runtime_1.jsx)(gui_1.YStack, { flex: 1, overflow: "hidden", ...(0, glass_1.sheet)(2), children: current.content })] }));
|
|
84
|
+
// Named rather than an array: a list of children needs keys, and two siblings
|
|
85
|
+
// that are not a list should not have to invent identities to sit beside
|
|
86
|
+
// each other.
|
|
87
|
+
const [first, second] = HANDLE_FIRST[side] ? [seam, dock] : [dock, seam];
|
|
88
|
+
const Row = horizontal ? gui_1.XStack : gui_1.YStack;
|
|
89
|
+
return ((0, jsx_runtime_1.jsxs)(Row, { children: [first, second] }));
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Left and right run the full height; the bottom spans the center column, so a
|
|
93
|
+
* console sits under the work and not under the navigation.
|
|
94
|
+
*/
|
|
95
|
+
function Workbench({ left, right, bottom, children }) {
|
|
96
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { flex: 1, overflow: "hidden", bg: "$color1", children: [left ? (0, jsx_runtime_1.jsx)(Dock, { side: "left", ...left }) : null, (0, jsx_runtime_1.jsxs)(gui_1.YStack, { flex: 1, overflow: "hidden", children: [(0, jsx_runtime_1.jsx)(gui_1.YStack, { flex: 1, overflow: "hidden", children: children }), bottom ? (0, jsx_runtime_1.jsx)(Dock, { side: "bottom", ...bottom }) : null] }), right ? (0, jsx_runtime_1.jsx)(Dock, { side: "right", ...right }) : null] }));
|
|
97
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workbench — the shell a Hanzo surface runs inside: a center view with a dock
|
|
3
|
+
* on the left, the right and the bottom.
|
|
4
|
+
*
|
|
5
|
+
* A dock is a strip of tabs over one visible pane. The three sides differ only
|
|
6
|
+
* in where the strip sits and which edge drags, so they are ONE component given
|
|
7
|
+
* a side; a second implementation is how two docks drift apart.
|
|
8
|
+
*
|
|
9
|
+
* Tabs are data. A side chat, a browser and the developer console are all Tab
|
|
10
|
+
* values, so a surface adds one by pushing to an array rather than by teaching
|
|
11
|
+
* the shell a new kind. What a tab renders is the surface's business — the
|
|
12
|
+
* shell owns placement, activation and size, and nothing else.
|
|
13
|
+
*
|
|
14
|
+
* PAPER, NOT BOXES. Depth carries state: the workspace is the base sheet, a
|
|
15
|
+
* dock is a sheet raised above it, and the active tab is raised again. Light
|
|
16
|
+
* falls from the top, so every shadow points the same way and elevation reads
|
|
17
|
+
* as a stack rather than as decoration. Outlines appear only where two sheets
|
|
18
|
+
* meet edge-on — a hairline, never a border around a thing.
|
|
19
|
+
*
|
|
20
|
+
* The rungs come from `sheet()` (../glass), which reads @hanzo/design's
|
|
21
|
+
* `--sheet-*` / `--shadow-sheet-*`. gui's own `elevation` prop is a DIFFERENT
|
|
22
|
+
* idea wearing the same word: it synthesises a shadow from a number, carries no
|
|
23
|
+
* lit edge, and answers to nothing — so a dock lit that way and a menu lit by
|
|
24
|
+
* the ladder stand in two different rooms.
|
|
25
|
+
*/
|
|
26
|
+
import { type ReactNode } from 'react';
|
|
27
|
+
export type Side = 'left' | 'right' | 'bottom';
|
|
28
|
+
export type Tab = {
|
|
29
|
+
id: string;
|
|
30
|
+
title: string;
|
|
31
|
+
icon?: ReactNode;
|
|
32
|
+
content: ReactNode;
|
|
33
|
+
/** Closable unless a surface says otherwise; the console usually is not. */
|
|
34
|
+
closable?: boolean;
|
|
35
|
+
};
|
|
36
|
+
export type DockProps = {
|
|
37
|
+
side: Side;
|
|
38
|
+
tabs: Tab[];
|
|
39
|
+
/** Controlled active tab; omit and the dock keeps its own. */
|
|
40
|
+
activeId?: string;
|
|
41
|
+
defaultActiveId?: string;
|
|
42
|
+
onActivate?: (id: string) => void;
|
|
43
|
+
onClose?: (id: string) => void;
|
|
44
|
+
/** End of the strip — the surface's own control, e.g. a new-tab menu. */
|
|
45
|
+
actions?: ReactNode;
|
|
46
|
+
/** Extent across the docked edge: width for left/right, height for bottom. */
|
|
47
|
+
size?: number;
|
|
48
|
+
onResize?: (size: number) => void;
|
|
49
|
+
minSize?: number;
|
|
50
|
+
maxSize?: number;
|
|
51
|
+
};
|
|
52
|
+
export declare function Dock({ side, tabs, activeId, defaultActiveId, onActivate, onClose, actions, size, onResize, minSize, maxSize, }: DockProps): import("react/jsx-runtime").JSX.Element | null;
|
|
53
|
+
export type WorkbenchProps = {
|
|
54
|
+
left?: Omit<DockProps, 'side'>;
|
|
55
|
+
right?: Omit<DockProps, 'side'>;
|
|
56
|
+
bottom?: Omit<DockProps, 'side'>;
|
|
57
|
+
/** The center view — the work itself, and the lowest sheet. */
|
|
58
|
+
children: ReactNode;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Left and right run the full height; the bottom spans the center column, so a
|
|
62
|
+
* console sits under the work and not under the navigation.
|
|
63
|
+
*/
|
|
64
|
+
export declare function Workbench({ left, right, bottom, children }: WorkbenchProps): import("react/jsx-runtime").JSX.Element;
|
|
65
|
+
//# sourceMappingURL=Workbench.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Workbench.d.ts","sourceRoot":"","sources":["../../src/product/Workbench.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAK3D,MAAM,MAAM,IAAI,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE9C,MAAM,MAAM,GAAG,GAAG;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,OAAO,EAAE,SAAS,CAAA;IAClB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,IAAI,CAAA;IACV,IAAI,EAAE,GAAG,EAAE,CAAA;IACX,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAA;IAC9B,yEAAyE;IACzE,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAOD,wBAAgB,IAAI,CAAC,EACnB,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,eAAe,EACf,UAAU,EACV,OAAO,EACP,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,OAAa,EACb,OAAa,GACd,EAAE,SAAS,kDA8HX;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC9B,KAAK,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAC/B,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAChC,+DAA+D;IAC/D,QAAQ,EAAE,SAAS,CAAA;CACpB,CAAA;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,cAAc,2CAa1E"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Workbench — the shell a Hanzo surface runs inside: a center view with a dock
|
|
5
|
+
* on the left, the right and the bottom.
|
|
6
|
+
*
|
|
7
|
+
* A dock is a strip of tabs over one visible pane. The three sides differ only
|
|
8
|
+
* in where the strip sits and which edge drags, so they are ONE component given
|
|
9
|
+
* a side; a second implementation is how two docks drift apart.
|
|
10
|
+
*
|
|
11
|
+
* Tabs are data. A side chat, a browser and the developer console are all Tab
|
|
12
|
+
* values, so a surface adds one by pushing to an array rather than by teaching
|
|
13
|
+
* the shell a new kind. What a tab renders is the surface's business — the
|
|
14
|
+
* shell owns placement, activation and size, and nothing else.
|
|
15
|
+
*
|
|
16
|
+
* PAPER, NOT BOXES. Depth carries state: the workspace is the base sheet, a
|
|
17
|
+
* dock is a sheet raised above it, and the active tab is raised again. Light
|
|
18
|
+
* falls from the top, so every shadow points the same way and elevation reads
|
|
19
|
+
* as a stack rather than as decoration. Outlines appear only where two sheets
|
|
20
|
+
* meet edge-on — a hairline, never a border around a thing.
|
|
21
|
+
*
|
|
22
|
+
* The rungs come from `sheet()` (../glass), which reads @hanzo/design's
|
|
23
|
+
* `--sheet-*` / `--shadow-sheet-*`. gui's own `elevation` prop is a DIFFERENT
|
|
24
|
+
* idea wearing the same word: it synthesises a shadow from a number, carries no
|
|
25
|
+
* lit edge, and answers to nothing — so a dock lit that way and a menu lit by
|
|
26
|
+
* the ladder stand in two different rooms.
|
|
27
|
+
*/
|
|
28
|
+
import { useCallback, useRef } from 'react';
|
|
29
|
+
import { Button, Separator, Text, XStack, YStack, useControllableState } from '@hanzo/gui';
|
|
30
|
+
import { sheet } from '../glass.js';
|
|
31
|
+
const DEFAULT_SIZE = { left: 260, right: 380, bottom: 220 };
|
|
32
|
+
/** The edge facing the center carries the drag handle. */
|
|
33
|
+
const HANDLE_FIRST = { left: false, right: true, bottom: true };
|
|
34
|
+
export function Dock({ side, tabs, activeId, defaultActiveId, onActivate, onClose, actions, size, onResize, minSize = 160, maxSize = 900, }) {
|
|
35
|
+
const [active, setActive] = useControllableState({
|
|
36
|
+
prop: activeId,
|
|
37
|
+
defaultProp: defaultActiveId ?? tabs[0]?.id,
|
|
38
|
+
// A tab id is always a string when one activates; the hook's own
|
|
39
|
+
// signature admits undefined, so narrow rather than cast.
|
|
40
|
+
onChange: (id) => { if (id)
|
|
41
|
+
onActivate?.(id); },
|
|
42
|
+
});
|
|
43
|
+
const [extent, setExtent] = useControllableState({
|
|
44
|
+
prop: size,
|
|
45
|
+
defaultProp: DEFAULT_SIZE[side],
|
|
46
|
+
onChange: onResize,
|
|
47
|
+
});
|
|
48
|
+
const horizontal = side !== 'bottom';
|
|
49
|
+
const origin = useRef(0);
|
|
50
|
+
const originExtent = useRef(0);
|
|
51
|
+
// Pointer capture, so a drag that leaves the handle still tracks.
|
|
52
|
+
const onDown = useCallback((e) => {
|
|
53
|
+
origin.current = horizontal ? e.clientX : e.clientY;
|
|
54
|
+
originExtent.current = extent ?? DEFAULT_SIZE[side];
|
|
55
|
+
e.currentTarget?.setPointerCapture?.(e.pointerId);
|
|
56
|
+
}, [horizontal, extent, side]);
|
|
57
|
+
const onMove = useCallback((e) => {
|
|
58
|
+
if (!e.currentTarget?.hasPointerCapture?.(e.pointerId))
|
|
59
|
+
return;
|
|
60
|
+
const delta = (horizontal ? e.clientX : e.clientY) - origin.current;
|
|
61
|
+
// Left grows rightward; right and bottom grow the other way.
|
|
62
|
+
const signed = side === 'left' ? delta : -delta;
|
|
63
|
+
setExtent(Math.min(maxSize, Math.max(minSize, originExtent.current + signed)));
|
|
64
|
+
}, [horizontal, side, minSize, maxSize, setExtent]);
|
|
65
|
+
if (!tabs.length)
|
|
66
|
+
return null;
|
|
67
|
+
const current = tabs.find((t) => t.id === active) ?? tabs[0];
|
|
68
|
+
// The seam between two sheets, and where the dock is resized.
|
|
69
|
+
const seam = (_jsx(YStack, { onPointerDown: onDown, onPointerMove: onMove, cursor: horizontal ? 'col-resize' : 'row-resize', width: horizontal ? 5 : undefined, height: horizontal ? undefined : 5, hoverStyle: { bg: '$color6' } }));
|
|
70
|
+
const dock = (_jsxs(YStack, { overflow: "hidden", ...sheet(1), ...(horizontal ? { width: extent } : { height: extent }), children: [_jsxs(XStack, { items: "center", gap: "$1", px: "$2", pt: "$1.5", children: [tabs.map((t) => {
|
|
71
|
+
const on = t.id === current.id;
|
|
72
|
+
return (_jsxs(XStack, { items: "center", gap: "$1.5", px: "$2.5", py: "$1.5", cursor: "pointer",
|
|
73
|
+
// The active tab is a raised sheet whose bottom corners stay
|
|
74
|
+
// square, so it reads as continuous with the pane beneath it —
|
|
75
|
+
// which is why both stand on rung 2 rather than merely looking
|
|
76
|
+
// similar. An inactive tab is not a sheet at all; it is the
|
|
77
|
+
// dock's own surface showing through.
|
|
78
|
+
rounded: "$3", ...(on ? sheet(2) : { backgroundColor: 'transparent' }), hoverStyle: { bg: on ? undefined : '$color2' }, children: [_jsx(YStack, { onPress: () => setActive(t.id), children: _jsxs(XStack, { items: "center", gap: "$1.5", children: [t.icon, _jsx(Text, { fontSize: "$2", numberOfLines: 1, opacity: on ? 1 : 0.7, children: t.title })] }) }), t.closable === false ? null : (_jsx(Button, { size: "$1", chromeless: true, circular: true, "aria-label": `Close ${t.title}`, onPress: () => onClose?.(t.id), children: "\u00D7" }))] }, t.id));
|
|
79
|
+
}), actions] }), _jsx(Separator, { opacity: 0.4 }), _jsx(YStack, { flex: 1, overflow: "hidden", ...sheet(2), children: current.content })] }));
|
|
80
|
+
// Named rather than an array: a list of children needs keys, and two siblings
|
|
81
|
+
// that are not a list should not have to invent identities to sit beside
|
|
82
|
+
// each other.
|
|
83
|
+
const [first, second] = HANDLE_FIRST[side] ? [seam, dock] : [dock, seam];
|
|
84
|
+
const Row = horizontal ? XStack : YStack;
|
|
85
|
+
return (_jsxs(Row, { children: [first, second] }));
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Left and right run the full height; the bottom spans the center column, so a
|
|
89
|
+
* console sits under the work and not under the navigation.
|
|
90
|
+
*/
|
|
91
|
+
export function Workbench({ left, right, bottom, children }) {
|
|
92
|
+
return (_jsxs(XStack, { flex: 1, overflow: "hidden", bg: "$color1", children: [left ? _jsx(Dock, { side: "left", ...left }) : null, _jsxs(YStack, { flex: 1, overflow: "hidden", children: [_jsx(YStack, { flex: 1, overflow: "hidden", children: children }), bottom ? _jsx(Dock, { side: "bottom", ...bottom }) : null] }), right ? _jsx(Dock, { side: "right", ...right }) : null] }));
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=Workbench.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Workbench.js","sourceRoot":"","sources":["../../src/product/Workbench.tsx"],"names":[],"mappings":"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"}
|
package/dist/product/index.cjs
CHANGED
|
@@ -106,6 +106,7 @@ __exportStar(require("./Pagination.cjs"), exports);
|
|
|
106
106
|
__exportStar(require("./AnimatedLogo.cjs"), exports);
|
|
107
107
|
__exportStar(require("./brand.cjs"), exports);
|
|
108
108
|
__exportStar(require("./DataTable.cjs"), exports);
|
|
109
|
+
__exportStar(require("./Workbench.cjs"), exports);
|
|
109
110
|
__exportStar(require("./EmptyState.cjs"), exports);
|
|
110
111
|
__exportStar(require("./FadeIn.cjs"), exports);
|
|
111
112
|
__exportStar(require("./Field.cjs"), exports);
|
package/dist/product/index.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export * from './Pagination.js';
|
|
|
26
26
|
export * from './AnimatedLogo.js';
|
|
27
27
|
export * from './brand.js';
|
|
28
28
|
export * from './DataTable.js';
|
|
29
|
+
export * from './Workbench.js';
|
|
29
30
|
export * from './EmptyState.js';
|
|
30
31
|
export * from './FadeIn.js';
|
|
31
32
|
export * from './Field.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"AAaA,cAAc,UAAU,CAAA;AAKxB,OAAO,EACL,MAAM,EACN,aAAa,EACb,SAAS,EACT,SAAS,IAAI,eAAe,EAC5B,QAAQ,EACR,OAAO,EACP,SAAS,EACT,UAAU,EACV,UAAU,EACV,KAAK,GACN,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAA;AAK/D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,cAAc,mBAAmB,CAAA;AASjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AAKvB,cAAc,QAAQ,CAAA;AAKtB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAK5B,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AAOzB,cAAc,cAAc,CAAA;AAK5B,cAAc,YAAY,CAAA;AAO1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAI7B,cAAc,cAAc,CAAA;AAG5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAM5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAc7B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AASvB,cAAc,UAAU,CAAA;AAKxB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"AAaA,cAAc,UAAU,CAAA;AAKxB,OAAO,EACL,MAAM,EACN,aAAa,EACb,SAAS,EACT,SAAS,IAAI,eAAe,EAC5B,QAAQ,EACR,OAAO,EACP,SAAS,EACT,UAAU,EACV,UAAU,EACV,KAAK,GACN,MAAM,UAAU,CAAA;AAGjB,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAA;AAK/D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,cAAc,mBAAmB,CAAA;AASjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AAKvB,cAAc,QAAQ,CAAA;AAKtB,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAK5B,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AAOzB,cAAc,cAAc,CAAA;AAK5B,cAAc,YAAY,CAAA;AAO1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAI7B,cAAc,cAAc,CAAA;AAG5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAM5B,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAc7B,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AASvB,cAAc,UAAU,CAAA;AAKxB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/product/index.js
CHANGED
|
@@ -77,6 +77,7 @@ export * from './Pagination.js';
|
|
|
77
77
|
export * from './AnimatedLogo.js';
|
|
78
78
|
export * from './brand.js';
|
|
79
79
|
export * from './DataTable.js';
|
|
80
|
+
export * from './Workbench.js';
|
|
80
81
|
export * from './EmptyState.js';
|
|
81
82
|
export * from './FadeIn.js';
|
|
82
83
|
export * from './Field.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/product/index.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,EAAE;AACF,2EAA2E;AAC3E,gFAAgF;AAChF,iFAAiF;AACjF,gFAAgF;AAChF,wEAAwE;AACxE,EAAE;AACF,kFAAkF;AAClF,6EAA6E;AAE7E,kFAAkF;AAClF,gEAAgE;AAChE,cAAc,UAAU,CAAA;AAExB,2EAA2E;AAC3E,+EAA+E;AAC/E,4CAA4C;AAC5C,OAAO,EACL,MAAM,EACN,aAAa,EACb,SAAS,EACT,SAAS,IAAI,eAAe,EAC5B,QAAQ,EACR,OAAO,EACP,SAAS,EACT,UAAU,EACV,UAAU,EACV,KAAK,GACN,MAAM,UAAU,CAAA;AAEjB,6EAA6E;AAC7E,OAAO,EAAE,KAAK,IAAI,SAAS,EAAqB,MAAM,SAAS,CAAA;AAE/D,+EAA+E;AAC/E,8EAA8E;AAC9E,qCAAqC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,cAAc,mBAAmB,CAAA;AAEjC,gFAAgF;AAChF,6EAA6E;AAC7E,mFAAmF;AACnF,EAAE;AACF,+EAA+E;AAC/E,6EAA6E;AAC7E,8DAA8D;AAC9D,cAAc,iBAAiB,CAAA;AAC/B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,YAAY,CAAA;AAC1B,cAAc,SAAS,CAAA;AAEvB,mFAAmF;AACnF,qFAAqF;AACrF,qFAAqF;AACrF,cAAc,QAAQ,CAAA;AAEtB,iFAAiF;AACjF,2EAA2E;AAC3E,8EAA8E;AAC9E,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAE5B,6EAA6E;AAC7E,yEAAyE;AACzE,qFAAqF;AACrF,cAAc,QAAQ,CAAA;AACtB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,WAAW,CAAA;AAEzB,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,6EAA6E;AAC7E,mDAAmD;AACnD,cAAc,cAAc,CAAA;AAE5B,gFAAgF;AAChF,iFAAiF;AACjF,2EAA2E;AAC3E,cAAc,YAAY,CAAA;AAE1B,kFAAkF;AAClF,mFAAmF;AACnF,gFAAgF;AAChF,kFAAkF;AAClF,oBAAoB;AACpB,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAE7B,8EAA8E;AAC9E,sBAAsB;AACtB,cAAc,cAAc,CAAA;AAE5B,mEAAmE;AACnE,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,cAAc,CAAA;AAE5B,gFAAgF;AAChF,iFAAiF;AACjF,6EAA6E;AAC7E,8EAA8E;AAC9E,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,eAAe,CAAA;AAC7B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,WAAW,CAAA;AACzB,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,QAAQ,CAAA;AACtB,cAAc,eAAe,CAAA;AAE7B,+EAA+E;AAC/E,2EAA2E;AAC3E,iFAAiF;AACjF,0EAA0E;AAC1E,8EAA8E;AAC9E,iFAAiF;AACjF,0BAA0B;AAC1B,EAAE;AACF,0EAA0E;AAC1E,EAAE;AACF,+EAA+E;AAC/E,kEAAkE;AAClE,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AAEvB,mFAAmF;AACnF,qFAAqF;AACrF,uEAAuE;AAEvE,iFAAiF;AACjF,kFAAkF;AAClF,kEAAkE;AAClE,cAAc,UAAU,CAAA;AAExB,sEAAsE;AACtE,+EAA+E;AAC/E,8EAA8E;AAC9E,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAgB,MAAM,aAAa,CAAA"}
|