@hanzo/ui 8.27.83 → 8.27.85

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.
@@ -3,20 +3,34 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
3
3
  /**
4
4
  * JsonTree — a JSON value drawn as a tree a reader can open and close: one row
5
5
  * per key or element, objects and arrays behind a disclosure that says how
6
- * many children they hold, and a header with Expand all, Collapse all and Copy.
6
+ * many children they hold, and a header with a filter, Expand all, Collapse all
7
+ * and Copy.
7
8
  *
8
9
  * The first `depth` levels open on first paint. A row is a button (Enter and
9
10
  * Space toggle it, `aria-expanded` says which way), so the tree reads with a
10
11
  * keyboard and a screen reader as well as a pointer. Keys and values take the
11
12
  * code theme's colours (`code-theme.ts`), the same theme keys `CodeEditor`
12
13
  * paints with, and a count reads as a comment. A long value wraps anywhere, so
13
- * a hash never widens the page. Built from gui primitives only, so it renders
14
- * wherever gui does.
14
+ * a hash never widens the page.
15
+ *
16
+ * Filter. What is typed keeps every row whose key, dotted path
17
+ * (`answers.team.probabilities`) or value contains it, with the rows above it,
18
+ * and opens them; a branch that matches keeps everything under it. Clearing the
19
+ * filter hands back the tree as it was opened before.
20
+ *
21
+ * Height. The tree is as tall as its rows up to `maxHeight`, then scrolls.
22
+ * `resizable` adds CodeEditor's footer grip: a drag or ArrowUp / ArrowDown sets
23
+ * a height of the reader's own and a double-click hands it back; `onResize`
24
+ * hears each one and `defaultHeight` starts from it. Copy writes the whole
25
+ * value, whatever is open or filtered. Built from gui primitives only, so it
26
+ * renders wherever gui does.
15
27
  */
16
28
  import { SizableText, XStack, YStack } from '@hanzo/gui';
17
- import { Check, ChevronDown, ChevronRight, ChevronsDownUp, ChevronsUpDown, Copy } from '@hanzogui/lucide-icons-2';
29
+ import { Check, ChevronDown, ChevronRight, ChevronsDownUp, ChevronsUpDown, Copy, } from '@hanzogui/lucide-icons-2';
18
30
  import * as React from 'react';
19
31
  import { Button } from './button.js';
32
+ import { Grip, useGrip } from './grip.js';
33
+ import { Input } from './input.js';
20
34
  import { slot } from './slot.js';
21
35
  import { toast } from './toaster.js';
22
36
  /** Indent per level, in px. */
@@ -41,12 +55,70 @@ function paths(v, depth, at = '$', level = 0, out = new Set()) {
41
55
  paths(x, depth, child(at, k), level + 1, out);
42
56
  return out;
43
57
  }
44
- export function JsonTree({ data, depth = 2, title, showCopyButton = true, ...props }) {
58
+ /** A leaf as it is drawn, and as the filter reads it. */
59
+ const text = (value) => typeof value === 'string' ? JSON.stringify(value) : value === undefined ? 'undefined' : String(value);
60
+ export function sift(data, query) {
61
+ const q = query.trim().toLowerCase();
62
+ const rows = new Map();
63
+ const open = new Set();
64
+ const walk = (v, at, dotted, name) => {
65
+ const b = branch(v);
66
+ const hit = (name !== null && (name.toLowerCase().includes(q) || `.${dotted}`.toLowerCase().includes(`.${q}`))) ||
67
+ (!b && text(v).toLowerCase().includes(q));
68
+ if (hit) {
69
+ rows.set(at, true);
70
+ if (b)
71
+ open.add(at);
72
+ return true;
73
+ }
74
+ let kept = false;
75
+ if (b)
76
+ for (const [k, x] of b.entries)
77
+ if (walk(x, child(at, k), dotted ? `${dotted}.${k}` : k, k))
78
+ kept = true;
79
+ if (kept) {
80
+ rows.set(at, false);
81
+ open.add(at);
82
+ }
83
+ return kept;
84
+ };
85
+ if (q)
86
+ walk(data, '$', '', null);
87
+ return { rows, open };
88
+ }
89
+ export function JsonTree({ data, depth = 2, title, showCopyButton = true, search = true, maxHeight, minHeight = 96, resizable = false, defaultHeight = null, onResize, ...props }) {
45
90
  const [open, setOpen] = React.useState(() => paths(data, depth));
91
+ const [query, setQuery] = React.useState('');
46
92
  const [copied, setCopied] = React.useState(false);
47
93
  const timer = React.useRef(undefined);
94
+ /** The open set from before a filter, handed back when it clears. */
95
+ const before = React.useRef(null);
96
+ const body = React.useRef(null);
97
+ const sized = useGrip({
98
+ enabled: resizable,
99
+ min: minHeight,
100
+ measure: () => body.current?.getBoundingClientRect().height ?? minHeight,
101
+ initial: defaultHeight,
102
+ onChange: onResize,
103
+ });
104
+ const sifted = React.useMemo(() => (query.trim() ? sift(data, query) : null), [data, query]);
48
105
  React.useEffect(() => () => clearTimeout(timer.current), []);
49
106
  React.useEffect(() => setOpen(paths(data, depth)), [data, depth]);
107
+ // After the reset above, so a filter that is on keeps its matches open on new data.
108
+ React.useEffect(() => {
109
+ if (sifted)
110
+ setOpen(sifted.open);
111
+ }, [sifted]);
112
+ const type = (next) => {
113
+ const on = next.trim() !== '';
114
+ if (on && before.current === null)
115
+ before.current = open;
116
+ if (!on && before.current !== null) {
117
+ setOpen(before.current);
118
+ before.current = null;
119
+ }
120
+ setQuery(next);
121
+ };
50
122
  const toggle = React.useCallback((path) => setOpen((prev) => {
51
123
  const next = new Set(prev);
52
124
  if (!next.delete(path))
@@ -65,9 +137,19 @@ export function JsonTree({ data, depth = 2, title, showCopyButton = true, ...pro
65
137
  toast.error('Failed to copy JSON');
66
138
  }
67
139
  };
68
- const header = title !== undefined || showCopyButton;
69
140
  const root = branch(data);
70
- return (_jsxs(YStack, { ...slot('json-tree'), borderWidth: 1, borderColor: "$borderColor", rounded: "$3", overflow: "hidden", bg: "$background", ...props, children: [header && (_jsxs(XStack, { ...slot('json-tree-header'), items: "center", justify: "space-between", flexWrap: "wrap", gap: "$2", borderBottomWidth: 1, borderColor: "$borderColor", bg: "$panel", px: "$2", py: "$1", children: [_jsx(SizableText, { size: "$1", fontFamily: "$mono", color: "$soft", px: "$2", children: title ?? 'JSON' }), _jsxs(XStack, { items: "center", justify: "flex-end", flexWrap: "wrap", gap: "$1", shrink: 1, minW: 0, children: [root && (_jsxs(_Fragment, { children: [_jsxs(Button, { ...slot('json-tree-expand'), variant: "ghost", size: "sm", onClick: () => setOpen(paths(data, Number.POSITIVE_INFINITY)), children: [_jsx(ChevronsUpDown, { size: 14 }), "Expand all"] }), _jsxs(Button, { ...slot('json-tree-collapse'), variant: "ghost", size: "sm", onClick: () => setOpen(new Set()), children: [_jsx(ChevronsDownUp, { size: 14 }), "Collapse all"] })] })), showCopyButton && (_jsxs(Button, { ...slot('json-tree-copy'), variant: "ghost", size: "sm", onClick: copy, children: [copied ? _jsx(Check, { size: 14 }) : _jsx(Copy, { size: 14 }), copied ? 'Copied!' : 'Copy'] }))] })] })), _jsx(YStack, { ...slot('json-tree-body'), py: "$2", px: "$2", children: _jsx(Node, { name: null, value: data, path: "$", level: 0, open: open, toggle: toggle }) })] }));
141
+ const searchable = search && root !== null;
142
+ const header = title !== undefined || showCopyButton || searchable;
143
+ // Everything is kept when the root itself matched; nothing is when no row did.
144
+ const kept = sifted && !sifted.rows.get('$') ? sifted.rows : null;
145
+ const none = sifted !== null && sifted.rows.size === 0;
146
+ const fixed = sized.height !== null;
147
+ return (_jsxs(YStack, { ...slot('json-tree'), borderWidth: 1, borderColor: "$borderColor", rounded: "$3", overflow: "hidden", bg: "$background", ...props, children: [header && (_jsxs(XStack, { ...slot('json-tree-header'), items: "center", flexWrap: "wrap", gap: "$1", borderBottomWidth: 1, borderColor: "$borderColor", bg: "$panel", px: "$2", py: "$1", children: [_jsx(SizableText, { size: "$1", fontFamily: "$mono", color: "$soft", px: "$2", grow: 1, children: title ?? 'JSON' }), _jsxs(XStack, { grow: 1, shrink: 1, flexBasis: searchable ? 240 : 'auto', minW: 0, justify: "flex-end", items: "center", gap: "$1", children: [searchable && (_jsx(XStack, { flex: 1, minW: 0, maxW: 260, children: _jsx(Input, { ...slot('json-tree-filter'), type: "search", value: query, onChangeText: type, placeholder: "Filter keys, paths, values", "aria-label": `Filter ${title ?? 'JSON'} by key, path or value`,
148
+ // No adornment: its wrapper holds the field at its intrinsic width, and
149
+ // on a narrow pane that pushed the actions out of the header.
150
+ height: 32, fontSize: "$2" }) })), root && (_jsxs(_Fragment, { children: [_jsx(Button, { ...slot('json-tree-expand'), variant: "ghost", size: "icon-sm", "aria-label": "Expand all", title: "Expand all", onClick: () => setOpen(paths(data, Number.POSITIVE_INFINITY)), children: _jsx(ChevronsUpDown, { size: 14 }) }), _jsx(Button, { ...slot('json-tree-collapse'), variant: "ghost", size: "icon-sm", "aria-label": "Collapse all", title: "Collapse all", onClick: () => setOpen(new Set()), children: _jsx(ChevronsDownUp, { size: 14 }) })] })), showCopyButton && (_jsx(Button, { ...slot('json-tree-copy'), variant: "ghost", size: "icon-sm", "aria-label": copied ? 'Copied' : `Copy ${title ?? 'JSON'}`, title: "Copy", onClick: copy, children: copied ? _jsx(Check, { size: 14 }) : _jsx(Copy, { size: 14 }) }))] })] })), _jsx(YStack, { ref: body, ...slot('json-tree-body'), py: "$2", px: "$2", ...(fixed ? { height: sized.height } : maxHeight !== undefined ? { maxH: maxHeight } : null), overflowY: fixed || maxHeight !== undefined ? 'auto' : undefined, children: none ? (_jsxs(SizableText, { ...slot('json-tree-empty'), size: "$2", color: "$soft", px: "$2", py: "$1", children: ["Nothing matches \u201C", query.trim(), "\u201D."] })) : (_jsx(Node, { name: null, value: data, path: "$", level: 0, open: open, toggle: toggle, kept: kept })) }), resizable && (_jsx(XStack, { ref: sized.grip, ...slot('json-tree-footer'), cursor: "row-resize", items: "center", justify: "flex-end", minH: 24, px: "$3", borderTopWidth: 1, borderColor: "$borderColor", bg: "$panel", select: "none",
151
+ // A touch drag would otherwise scroll the page and cancel the pointer.
152
+ style: { touchAction: 'none' }, children: _jsx(Grip, { knob: sized.knob, name: "json-tree-resize", label: title ?? 'JSON', min: minHeight, height: sized.height }) }))] }));
71
153
  }
72
154
  /** A leaf's colour: the code theme's key for its JSON type. */
73
155
  const INK = {
@@ -77,14 +159,13 @@ const INK = {
77
159
  null: '$codeNull',
78
160
  };
79
161
  function Leaf({ value }) {
80
- const text = typeof value === 'string' ? JSON.stringify(value) : value === undefined ? 'undefined' : String(value);
81
162
  const type = value === null ? 'null' : typeof value;
82
163
  return (_jsx(SizableText, { ...slot('json-tree-value'), "data-type": type, size: "$2", fontFamily: "$mono", color: INK[type] ?? '$codePunctuation', shrink: 1, minW: 0,
83
164
  // A hash or a URL is one unbreakable word; without this it sets the tree's
84
165
  // min-content width and pushes the page sideways on a phone.
85
- style: { overflowWrap: 'anywhere' }, children: text }));
166
+ style: { overflowWrap: 'anywhere' }, children: text(value) }));
86
167
  }
87
- function Node({ name, value, path, level, open, toggle, }) {
168
+ function Node({ name, value, path, level, open, toggle, kept, }) {
88
169
  const b = branch(value);
89
170
  const expanded = b !== null && open.has(path);
90
171
  const key = name === null ? null : (_jsxs(SizableText, { ...slot('json-tree-key'), size: "$2", fontFamily: "$mono", color: "$codeKey", children: [name, _jsx(SizableText, { size: "$2", fontFamily: "$mono", color: "$codePunctuation", children: ":" })] }));
@@ -105,6 +186,11 @@ function Node({ name, value, path, level, open, toggle, }) {
105
186
  return;
106
187
  e.preventDefault();
107
188
  toggle(path);
108
- }, children: [empty ? (_jsx(XStack, { width: 14, shrink: 0 })) : expanded ? (_jsx(ChevronDown, { size: 14, color: "$soft" })) : (_jsx(ChevronRight, { size: 14, color: "$soft" })), key, _jsx(SizableText, { ...slot('json-tree-count'), size: "$2", fontFamily: "$mono", color: "$codeComment", children: empty ? (b.kind === 'array' ? '[]' : '{}') : count(b) })] }), expanded && (_jsx(YStack, { children: b.entries.map(([k, v]) => (_jsx(Node, { name: k, value: v, path: child(path, k), level: level + 1, open: open, toggle: toggle }, k))) }))] }));
189
+ }, children: [empty ? (_jsx(XStack, { width: 14, shrink: 0 })) : expanded ? (_jsx(ChevronDown, { size: 14, color: "$soft" })) : (_jsx(ChevronRight, { size: 14, color: "$soft" })), key, _jsx(SizableText, { ...slot('json-tree-count'), size: "$2", fontFamily: "$mono", color: "$codeComment", children: empty ? (b.kind === 'array' ? '[]' : '{}') : count(b) })] }), expanded && (_jsx(YStack, { children: b.entries.map(([k, v]) => {
190
+ const at = child(path, k);
191
+ if (kept && !kept.has(at))
192
+ return null;
193
+ return (_jsx(Node, { name: k, value: v, path: at, level: level + 1, open: open, toggle: toggle, kept: kept && !kept.get(at) ? kept : null }, k));
194
+ }) }))] }));
109
195
  }
110
196
  //# sourceMappingURL=json-tree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-tree.js","sourceRoot":"","sources":["../../../src/backends/gui/json-tree.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-tree.js","sourceRoot":"","sources":["../../../src/backends/gui/json-tree.tsx"],"names":[],"mappings":"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"}
@@ -27,8 +27,10 @@ const jsx_runtime_1 = require("react/jsx-runtime");
27
27
  * + pointer capture and native with the responder system. Both prop sets are
28
28
  * typed on gui's stacks, and pointer capture is feature-detected, so nothing
29
29
  * here reaches for the DOM on expo. Keyboard resize is arrow keys (Shift for a
30
- * fine step). The grab area comes from `touch()`, so it is 44px on web and
31
- * native alike while the visual divider stays 4px.
30
+ * fine step); a double-click on a handle hands the group back its default
31
+ * layout, and the handle states the share before it as `aria-valuenow`. The
32
+ * grab area comes from `touch()`, so it is 44px on web and native alike while
33
+ * the visual divider stays 4px.
32
34
  */
33
35
  const react_1 = require("react");
34
36
  const gui_1 = require("@hanzo/gui");
@@ -126,6 +128,7 @@ function ResizableHandle({ withHandle, disabled, ...rest }) {
126
128
  const group = (0, react_1.useContext)(GroupContext);
127
129
  const boundary = (0, react_1.useContext)(SlotContext);
128
130
  const [state, setState] = (0, react_1.useState)("idle");
131
+ const [focused, setFocused] = (0, react_1.useState)(false);
129
132
  const start = (0, react_1.useRef)(null);
130
133
  const axis = group?.direction !== "vertical";
131
134
  const off = disabled || !group || boundary < 0 || boundary + 1 >= group.sizes.length;
@@ -171,7 +174,17 @@ function ResizableHandle({ withHandle, disabled, ...rest }) {
171
174
  e.preventDefault();
172
175
  group.setLayout((0, resizable_logic_1.resizeAt)(group.sizes, group.specs, boundary, dir * (e.shiftKey ? KEY_STEP_FINE : KEY_STEP)));
173
176
  }, [axis, boundary, group, off]);
177
+ const reset = (0, react_1.useCallback)(() => {
178
+ if (!off && group)
179
+ group.setLayout((0, resizable_logic_1.defaultLayout)(group.specs));
180
+ }, [group, off]);
174
181
  const hover = (0, react_1.useCallback)((on) => setState((s) => (s === "drag" ? s : on ? "hover" : "idle")), []);
175
182
  const gesture = (0, gesture_1.drag)({ begin, move, end, enabled: !off });
176
- return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { position: "relative", flexDirection: axis ? "column" : "row", items: "center", justify: "center", shrink: 0, width: axis ? THICKNESS : "100%", height: axis ? "100%" : THICKNESS, ...(0, gesture_1.touch)(THICKNESS, 44, axis ? "x" : "y"), cursor: off ? "default" : axis ? "col-resize" : "row-resize", tabIndex: off ? -1 : 0, role: "separator", "aria-orientation": axis ? "vertical" : "horizontal", "data-panel-group-direction": group?.direction, "data-resize-handle-state": state, ...gesture, onKeyDown: nudge, onMouseEnter: () => hover(true), onMouseLeave: () => hover(false), ...rest, children: [(0, jsx_runtime_1.jsx)(gui_1.Separator, { vertical: axis, borderColor: state === "idle" ? "$borderColor" : "$dim" }), withHandle && ((0, jsx_runtime_1.jsx)(gui_1.XStack, { position: "absolute", items: "center", justify: "center", width: 12, height: 20, rounded: "$2", bg: "$raised", borderWidth: 1, borderColor: "$borderColor", rotate: axis ? "0deg" : "90deg", children: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.GripVertical, { size: 10 }) }))] }));
183
+ return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { position: "relative", flexDirection: axis ? "column" : "row", items: "center", justify: "center", shrink: 0,
184
+ // Stretched across the group rather than `100%` of it: a percentage of a group
185
+ // that is as tall as its content resolves to nothing, and the handle drew no line.
186
+ self: "stretch", ...(axis ? { width: THICKNESS } : { height: THICKNESS }), ...(0, gesture_1.touch)(THICKNESS, 44, axis ? "x" : "y"), cursor: off ? "default" : axis ? "col-resize" : "row-resize", tabIndex: off ? -1 : 0, role: "separator", "aria-orientation": axis ? "vertical" : "horizontal", "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": off || !group ? undefined : Math.round(group.sizes[boundary]), "data-panel-group-direction": group?.direction, "data-resize-handle-state": state, ...gesture, onKeyDown: nudge, onDoubleClick: reset, onMouseEnter: () => hover(true), onMouseLeave: () => hover(false),
187
+ // Focus is drawn on the line, not around the box: an outline around a 4px
188
+ // handle is a second pair of lines beside the divider.
189
+ onFocus: () => setFocused(true), onBlur: () => setFocused(false), outlineWidth: 0, focusVisibleStyle: { outlineWidth: 0 }, "data-focused": focused || undefined, ...rest, children: [(0, jsx_runtime_1.jsx)(gui_1.Separator, { vertical: axis, borderColor: focused ? "$outlineColor" : state === "idle" ? "$borderColor" : "$dim" }), withHandle && ((0, jsx_runtime_1.jsx)(gui_1.XStack, { position: "absolute", items: "center", justify: "center", width: 12, height: 20, rounded: "$2", bg: "$raised", borderWidth: 1, borderColor: focused ? "$outlineColor" : "$borderColor", rotate: axis ? "0deg" : "90deg", children: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.GripVertical, { size: 10 }) }))] }));
177
190
  }
@@ -19,8 +19,10 @@
19
19
  * + pointer capture and native with the responder system. Both prop sets are
20
20
  * typed on gui's stacks, and pointer capture is feature-detected, so nothing
21
21
  * here reaches for the DOM on expo. Keyboard resize is arrow keys (Shift for a
22
- * fine step). The grab area comes from `touch()`, so it is 44px on web and
23
- * native alike while the visual divider stays 4px.
22
+ * fine step); a double-click on a handle hands the group back its default
23
+ * layout, and the handle states the share before it as `aria-valuenow`. The
24
+ * grab area comes from `touch()`, so it is 44px on web and native alike while
25
+ * the visual divider stays 4px.
24
26
  */
25
27
  import { type ReactNode } from "react";
26
28
  import { type XStackProps } from "@hanzo/gui";
@@ -1 +1 @@
1
- {"version":3,"file":"resizable.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/resizable.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAWL,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AACd,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAKhE,OAAO,EACL,aAAa,EACb,QAAQ,EAER,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEnE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAA;AAuDlC,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,WAAW,EACX,UAAU,GAAG,WAAW,CACzB,GAAG;IACF,SAAS,EAAE,eAAe,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACpC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,wBAAwB,+BA0F1B;AAID,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,UAAU,CAAC,GAAG;IACvE,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,EAAE,EACF,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,WAAW,EACX,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,mBAAmB,+BAiBrB;AAQD,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,WAAW,EACX,UAAU,GAAG,UAAU,CACxB,GAAG;IACF,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,oBAAoB,+BA8HtB"}
1
+ {"version":3,"file":"resizable.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/resizable.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAWL,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AACd,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAKhE,OAAO,EACL,aAAa,EACb,QAAQ,EAER,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEnE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAA;AAuDlC,MAAM,MAAM,wBAAwB,GAAG,IAAI,CACzC,WAAW,EACX,UAAU,GAAG,WAAW,CACzB,GAAG;IACF,SAAS,EAAE,eAAe,CAAA;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IACpC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,wBAAwB,+BA0F1B;AAID,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,WAAW,EAAE,IAAI,GAAG,UAAU,CAAC,GAAG;IACvE,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB,CAAA;AAED,wBAAgB,cAAc,CAAC,EAC7B,EAAE,EACF,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,WAAW,EACX,aAAa,EACb,QAAQ,EACR,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,mBAAmB,+BAiBrB;AAQD,MAAM,MAAM,oBAAoB,GAAG,IAAI,CACrC,WAAW,EACX,UAAU,GAAG,UAAU,CACxB,GAAG;IACF,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,oBAAoB,+BAkJtB"}
@@ -21,8 +21,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
21
21
  * + pointer capture and native with the responder system. Both prop sets are
22
22
  * typed on gui's stacks, and pointer capture is feature-detected, so nothing
23
23
  * here reaches for the DOM on expo. Keyboard resize is arrow keys (Shift for a
24
- * fine step). The grab area comes from `touch()`, so it is 44px on web and
25
- * native alike while the visual divider stays 4px.
24
+ * fine step); a double-click on a handle hands the group back its default
25
+ * layout, and the handle states the share before it as `aria-valuenow`. The
26
+ * grab area comes from `touch()`, so it is 44px on web and native alike while
27
+ * the visual divider stays 4px.
26
28
  */
27
29
  import { Children, createContext, isValidElement, useCallback, useContext, useEffect, useMemo, useRef, useState, } from "react";
28
30
  import { Separator, XStack } from "@hanzo/gui";
@@ -119,6 +121,7 @@ export function ResizableHandle({ withHandle, disabled, ...rest }) {
119
121
  const group = useContext(GroupContext);
120
122
  const boundary = useContext(SlotContext);
121
123
  const [state, setState] = useState("idle");
124
+ const [focused, setFocused] = useState(false);
122
125
  const start = useRef(null);
123
126
  const axis = group?.direction !== "vertical";
124
127
  const off = disabled || !group || boundary < 0 || boundary + 1 >= group.sizes.length;
@@ -164,8 +167,18 @@ export function ResizableHandle({ withHandle, disabled, ...rest }) {
164
167
  e.preventDefault();
165
168
  group.setLayout(resizeAt(group.sizes, group.specs, boundary, dir * (e.shiftKey ? KEY_STEP_FINE : KEY_STEP)));
166
169
  }, [axis, boundary, group, off]);
170
+ const reset = useCallback(() => {
171
+ if (!off && group)
172
+ group.setLayout(defaultLayout(group.specs));
173
+ }, [group, off]);
167
174
  const hover = useCallback((on) => setState((s) => (s === "drag" ? s : on ? "hover" : "idle")), []);
168
175
  const gesture = drag({ begin, move, end, enabled: !off });
169
- return (_jsxs(XStack, { position: "relative", flexDirection: axis ? "column" : "row", items: "center", justify: "center", shrink: 0, width: axis ? THICKNESS : "100%", height: axis ? "100%" : THICKNESS, ...touch(THICKNESS, 44, axis ? "x" : "y"), cursor: off ? "default" : axis ? "col-resize" : "row-resize", tabIndex: off ? -1 : 0, role: "separator", "aria-orientation": axis ? "vertical" : "horizontal", "data-panel-group-direction": group?.direction, "data-resize-handle-state": state, ...gesture, onKeyDown: nudge, onMouseEnter: () => hover(true), onMouseLeave: () => hover(false), ...rest, children: [_jsx(Separator, { vertical: axis, borderColor: state === "idle" ? "$borderColor" : "$dim" }), withHandle && (_jsx(XStack, { position: "absolute", items: "center", justify: "center", width: 12, height: 20, rounded: "$2", bg: "$raised", borderWidth: 1, borderColor: "$borderColor", rotate: axis ? "0deg" : "90deg", children: _jsx(GripVertical, { size: 10 }) }))] }));
176
+ return (_jsxs(XStack, { position: "relative", flexDirection: axis ? "column" : "row", items: "center", justify: "center", shrink: 0,
177
+ // Stretched across the group rather than `100%` of it: a percentage of a group
178
+ // that is as tall as its content resolves to nothing, and the handle drew no line.
179
+ self: "stretch", ...(axis ? { width: THICKNESS } : { height: THICKNESS }), ...touch(THICKNESS, 44, axis ? "x" : "y"), cursor: off ? "default" : axis ? "col-resize" : "row-resize", tabIndex: off ? -1 : 0, role: "separator", "aria-orientation": axis ? "vertical" : "horizontal", "aria-valuemin": 0, "aria-valuemax": 100, "aria-valuenow": off || !group ? undefined : Math.round(group.sizes[boundary]), "data-panel-group-direction": group?.direction, "data-resize-handle-state": state, ...gesture, onKeyDown: nudge, onDoubleClick: reset, onMouseEnter: () => hover(true), onMouseLeave: () => hover(false),
180
+ // Focus is drawn on the line, not around the box: an outline around a 4px
181
+ // handle is a second pair of lines beside the divider.
182
+ onFocus: () => setFocused(true), onBlur: () => setFocused(false), outlineWidth: 0, focusVisibleStyle: { outlineWidth: 0 }, "data-focused": focused || undefined, ...rest, children: [_jsx(Separator, { vertical: axis, borderColor: focused ? "$outlineColor" : state === "idle" ? "$borderColor" : "$dim" }), withHandle && (_jsx(XStack, { position: "absolute", items: "center", justify: "center", width: 12, height: 20, rounded: "$2", bg: "$raised", borderWidth: 1, borderColor: focused ? "$outlineColor" : "$borderColor", rotate: axis ? "0deg" : "90deg", children: _jsx(GripVertical, { size: 10 }) }))] }));
170
183
  }
171
184
  //# sourceMappingURL=resizable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resizable.js","sourceRoot":"","sources":["../../../src/backends/gui/resizable.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resizable.js","sourceRoot":"","sources":["../../../src/backends/gui/resizable.tsx"],"names":[],"mappings":"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"}