@hanzo/ui 8.27.56 → 8.27.58
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/backends/gui/code-editor.cjs +374 -71
- package/dist/backends/gui/code-editor.d.ts +46 -25
- package/dist/backends/gui/code-editor.d.ts.map +1 -1
- package/dist/backends/gui/code-editor.js +376 -73
- package/dist/backends/gui/code-editor.js.map +1 -1
- package/dist/backends/gui/index.cjs +9 -4
- package/dist/backends/gui/index.d.ts +3 -1
- package/dist/backends/gui/index.d.ts.map +1 -1
- package/dist/backends/gui/index.js +2 -0
- package/dist/backends/gui/index.js.map +1 -1
- package/dist/backends/gui/json-tree.cjs +135 -0
- package/dist/backends/gui/json-tree.d.ts +26 -0
- package/dist/backends/gui/json-tree.d.ts.map +1 -0
- package/dist/backends/gui/json-tree.js +100 -0
- package/dist/backends/gui/json-tree.js.map +1 -0
- package/dist/backends/gui/json.cjs +183 -0
- package/dist/backends/gui/json.d.ts +41 -0
- package/dist/backends/gui/json.d.ts.map +1 -0
- package/dist/backends/gui/json.js +180 -0
- package/dist/backends/gui/json.js.map +1 -0
- package/dist/gallery.cjs +1 -1
- package/dist/gallery.d.ts.map +1 -1
- package/dist/gallery.html +7 -5
- package/dist/gallery.js +1 -1
- package/dist/gallery.js.map +1 -1
- package/dist/index.cjs +8 -4
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.node.cjs +8 -4
- package/dist/index.node.js +1 -1
- package/dist/primitives/JsonTree.cjs +8 -0
- package/dist/primitives/JsonTree.d.ts +2 -0
- package/dist/primitives/JsonTree.d.ts.map +1 -0
- package/dist/primitives/JsonTree.js +5 -0
- package/dist/primitives/JsonTree.js.map +1 -0
- package/dist/primitives/Picker.cjs +8 -0
- package/dist/primitives/Picker.d.ts +2 -0
- package/dist/primitives/Picker.d.ts.map +1 -0
- package/dist/primitives/Picker.js +5 -0
- package/dist/primitives/Picker.js.map +1 -0
- package/dist/primitives/checkJson.cjs +8 -0
- package/dist/primitives/checkJson.d.ts +2 -0
- package/dist/primitives/checkJson.d.ts.map +1 -0
- package/dist/primitives/checkJson.js +5 -0
- package/dist/primitives/checkJson.js.map +1 -0
- package/dist/primitives/formatJson.cjs +8 -0
- package/dist/primitives/formatJson.d.ts +2 -0
- package/dist/primitives/formatJson.d.ts.map +1 -0
- package/dist/primitives/formatJson.js +5 -0
- package/dist/primitives/formatJson.js.map +1 -0
- package/dist/product/LimitedBanner.cjs +6 -5
- package/dist/product/LimitedBanner.d.ts +3 -1
- package/dist/product/LimitedBanner.d.ts.map +1 -1
- package/dist/product/LimitedBanner.js +6 -5
- package/dist/product/LimitedBanner.js.map +1 -1
- package/dist/product/limits.cjs +1 -0
- package/dist/product/limits.d.ts +2 -0
- package/dist/product/limits.d.ts.map +1 -1
- package/dist/product/limits.js +1 -0
- package/dist/product/limits.js.map +1 -1
- package/dist/product/useLimits.cjs +3 -3
- package/dist/product/useLimits.js +3 -3
- package/dist/product/useLimits.js.map +1 -1
- package/dist/styles.css +4 -2
- package/package.json +7 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/json.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,SAAS,GACjB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEhF,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAoJD,+EAA+E;AAC/E,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,SAAS,CAUjF;AAED,uEAAuE;AACvE,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGtD"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JSON verdicts — whether a piece of text is JSON, plain text, or broken JSON,
|
|
3
|
+
* and for broken JSON the offset, line, column and reason.
|
|
4
|
+
*
|
|
5
|
+
* `JSON.parse` decides validity; it is the parser every caller will use on the
|
|
6
|
+
* text afterwards, so nothing here can call valid what it refuses. It does not
|
|
7
|
+
* say where it failed in a form every engine shares (V8 names a position,
|
|
8
|
+
* Firefox a line and column, Safari neither), so a broken document is walked a
|
|
9
|
+
* second time by a scanner that follows RFC 8259 and reports the first byte it
|
|
10
|
+
* cannot accept, in the same words on every engine.
|
|
11
|
+
*
|
|
12
|
+
* Imports nothing, so a server, a test or a worker can read it.
|
|
13
|
+
*/
|
|
14
|
+
const SPACE = ' \t\n\r';
|
|
15
|
+
const ESCAPE = '"\\/bfnrt';
|
|
16
|
+
const NUMBER = /-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/y;
|
|
17
|
+
const HEX = /[0-9a-fA-F]{4}/y;
|
|
18
|
+
const shown = (c) => c === undefined ? 'end of input' : c === '\n' ? 'line break' : `character '${c}'`;
|
|
19
|
+
/** The first offset RFC 8259 does not accept, and why; `null` when it accepts all of it. */
|
|
20
|
+
function scan(s) {
|
|
21
|
+
let i = 0;
|
|
22
|
+
const fail = (message, at = i) => {
|
|
23
|
+
throw { at, message };
|
|
24
|
+
};
|
|
25
|
+
const space = () => {
|
|
26
|
+
while (i < s.length && SPACE.includes(s[i]))
|
|
27
|
+
i++;
|
|
28
|
+
};
|
|
29
|
+
const string = () => {
|
|
30
|
+
i++;
|
|
31
|
+
while (i < s.length) {
|
|
32
|
+
const c = s[i];
|
|
33
|
+
if (c === '"') {
|
|
34
|
+
i++;
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (c === '\\') {
|
|
38
|
+
const e = s[i + 1];
|
|
39
|
+
if (e === 'u') {
|
|
40
|
+
HEX.lastIndex = i + 2;
|
|
41
|
+
if (!HEX.test(s))
|
|
42
|
+
fail('Expected four hex digits after \\u', i + 2);
|
|
43
|
+
i += 6;
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (e === undefined || !ESCAPE.includes(e))
|
|
47
|
+
fail(`Invalid escape '\\${e ?? ''}' in string`, i + 1);
|
|
48
|
+
i += 2;
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (c < ' ')
|
|
52
|
+
fail(c === '\n' ? 'Unterminated string' : 'Control character in string');
|
|
53
|
+
i++;
|
|
54
|
+
}
|
|
55
|
+
fail('Unterminated string');
|
|
56
|
+
};
|
|
57
|
+
const number = () => {
|
|
58
|
+
NUMBER.lastIndex = i;
|
|
59
|
+
const m = NUMBER.exec(s);
|
|
60
|
+
if (!m || m[0] === '-')
|
|
61
|
+
fail('Invalid number');
|
|
62
|
+
i += m[0].length;
|
|
63
|
+
};
|
|
64
|
+
const object = () => {
|
|
65
|
+
i++;
|
|
66
|
+
space();
|
|
67
|
+
if (s[i] === '}') {
|
|
68
|
+
i++;
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
for (;;) {
|
|
72
|
+
space();
|
|
73
|
+
if (s[i] !== '"') {
|
|
74
|
+
fail(s[i] === '}' ? "Trailing comma before '}'" : `Expected a double-quoted property name, found ${shown(s[i])}`);
|
|
75
|
+
}
|
|
76
|
+
string();
|
|
77
|
+
space();
|
|
78
|
+
if (s[i] !== ':')
|
|
79
|
+
fail(`Expected ':' after property name, found ${shown(s[i])}`);
|
|
80
|
+
i++;
|
|
81
|
+
value();
|
|
82
|
+
space();
|
|
83
|
+
if (s[i] === ',') {
|
|
84
|
+
i++;
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
if (s[i] === '}') {
|
|
88
|
+
i++;
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
fail(`Expected ',' or '}' after property value, found ${shown(s[i])}`);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
const array = () => {
|
|
95
|
+
i++;
|
|
96
|
+
space();
|
|
97
|
+
if (s[i] === ']') {
|
|
98
|
+
i++;
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
for (;;) {
|
|
102
|
+
space();
|
|
103
|
+
if (s[i] === ']')
|
|
104
|
+
fail("Trailing comma before ']'");
|
|
105
|
+
value();
|
|
106
|
+
space();
|
|
107
|
+
if (s[i] === ',') {
|
|
108
|
+
i++;
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
if (s[i] === ']') {
|
|
112
|
+
i++;
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
fail(`Expected ',' or ']' after array element, found ${shown(s[i])}`);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
const value = () => {
|
|
119
|
+
space();
|
|
120
|
+
const c = s[i];
|
|
121
|
+
if (c === '{')
|
|
122
|
+
return object();
|
|
123
|
+
if (c === '[')
|
|
124
|
+
return array();
|
|
125
|
+
if (c === '"')
|
|
126
|
+
return string();
|
|
127
|
+
if (c === '-' || (c !== undefined && c >= '0' && c <= '9'))
|
|
128
|
+
return number();
|
|
129
|
+
for (const word of ['true', 'false', 'null']) {
|
|
130
|
+
if (s.startsWith(word, i)) {
|
|
131
|
+
i += word.length;
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
fail(`Unexpected ${shown(c)}`);
|
|
136
|
+
};
|
|
137
|
+
try {
|
|
138
|
+
value();
|
|
139
|
+
space();
|
|
140
|
+
if (i < s.length)
|
|
141
|
+
fail(`Unexpected ${shown(s[i])} after the JSON value`);
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
catch (e) {
|
|
145
|
+
return e;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/** The 1-based line and column of an offset. */
|
|
149
|
+
function place(s, at) {
|
|
150
|
+
let line = 1;
|
|
151
|
+
let start = 0;
|
|
152
|
+
for (let i = 0; i < at && i < s.length; i++) {
|
|
153
|
+
if (s[i] === '\n') {
|
|
154
|
+
line++;
|
|
155
|
+
start = i + 1;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return { line, column: at - start + 1 };
|
|
159
|
+
}
|
|
160
|
+
/** Is `text` JSON, plain text (when allowed), empty, or broken — and where? */
|
|
161
|
+
export function checkJson(text, options = {}) {
|
|
162
|
+
const body = text.trim();
|
|
163
|
+
if (!body)
|
|
164
|
+
return { kind: 'empty' };
|
|
165
|
+
try {
|
|
166
|
+
return { kind: 'json', value: JSON.parse(text) };
|
|
167
|
+
}
|
|
168
|
+
catch (e) {
|
|
169
|
+
if (options.text && body[0] !== '{' && body[0] !== '[')
|
|
170
|
+
return { kind: 'text', value: text };
|
|
171
|
+
const fault = scan(text) ?? { at: 0, message: e instanceof Error ? e.message : String(e) };
|
|
172
|
+
return { kind: 'error', message: fault.message, at: fault.at, ...place(text, fault.at) };
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/** `text` re-indented by two spaces, or `null` when it is not JSON. */
|
|
176
|
+
export function formatJson(text) {
|
|
177
|
+
const check = checkJson(text);
|
|
178
|
+
return check.kind === 'json' ? JSON.stringify(check.value, null, 2) : null;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../../src/backends/gui/json.ts"],"names":[],"mappings":"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"}
|
package/dist/gallery.cjs
CHANGED
|
@@ -182,7 +182,7 @@ const Gallery = () => ((0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex'
|
|
|
182
182
|
tabs: [
|
|
183
183
|
{ id: 'console', title: 'Console', closable: false, content: (0, jsx_runtime_1.jsx)(gui_2.CardTitle, { children: "console" }) },
|
|
184
184
|
],
|
|
185
|
-
}, children: (0, jsx_runtime_1.jsx)(gui_2.CardTitle, { children: "center" }) }) }) }), (0, jsx_runtime_1.jsxs)(Section, { name: "product-arrangements", children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 12, width: '100%', maxWidth: 320 }, children: [(0, jsx_runtime_1.jsx)(Skeleton_1.Skeleton, { width: 120 }), (0, jsx_runtime_1.jsx)(Skeleton_1.Skeleton, { width: "100%", height: 72, rounded: "$4" }), (0, jsx_runtime_1.jsx)(Skeleton_1.Skeleton.Text, { lines: 3 })] }), (0, jsx_runtime_1.jsx)(TooltipAnchor_1.TooltipAnchor, { description: "Delete this agent", children: (0, jsx_runtime_1.jsx)(gui_2.Button, { children: "hinted" }) }), (0, jsx_runtime_1.jsx)(gui_2.Dialog, { open: true, children: (0, jsx_runtime_1.jsx)(DialogTemplate_1.DialogTemplate, { title: "Delete agent", description: "This removes every run recorded against it.", confirm: { label: 'Delete', tone: 'danger' }, children: (0, jsx_runtime_1.jsx)(gui_2.CardTitle, { children: "body" }) }) })] }), (0, jsx_runtime_1.jsx)(Section, { name: "usage-limits", children: (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 16, width: '100%', maxWidth: 480 }, children: [['md', 'sm'].map((size) => ((0, jsx_runtime_1.jsx)(UsageMeter_1.UsageMeter, { size: size, limits: USAGE }, size))), (0, jsx_runtime_1.jsx)(LimitedBanner_1.LimitedBanner, { message: "Premium models are paused until Oct 31. You're chatting on Zen Free.", actions: USAGE.actions, onAction: () => { }, onClose: () => { } }), (0, jsx_runtime_1.jsx)(PlanUsage_1.PlanUsage, { limits: { ...USAGE, state: 'ok', period_start: '2026-10-01T00:00:00Z', period_end: '2026-10-31T00:00:00Z' }, onAction: () => { } }), (0, jsx_runtime_1.jsx)(PlanUsage_1.PlanUsage, { limits: { ...USAGE, plan: '' }, onAction: () => { } })] }) }), (0, jsx_runtime_1.jsxs)(Section, { name: "chat", children: [(0, jsx_runtime_1.jsxs)(gui_2.Screen, { height: "min(72vh, 620px)", minH: 420, maxW: 720, gap: "$3", children: [(0, jsx_runtime_1.jsxs)(chat_1.Header, { title: "A conversation with a long enough name to clamp", leading: (0, jsx_runtime_1.jsx)(chat_1.AsideToggle, {}), onOpenMenu: NOOP, children: [(0, jsx_runtime_1.jsx)(chat_1.ShareButton, {}), (0, jsx_runtime_1.jsx)(chat_1.AsideToggle, {})] }), (0, jsx_runtime_1.jsx)(gui_2.Fill, { children: (0, jsx_runtime_1.jsx)(chat_1.Message, { role: "user", children: "plain Fill \u2014 the middle, without a Thread" }) }), (0, jsx_runtime_1.jsxs)(chat_1.Thread, { children: [(0, jsx_runtime_1.jsx)(chat_1.Message, { role: "user", children: "ask" }), (0, jsx_runtime_1.jsxs)(chat_1.Message, { role: "assistant", icon: (0, jsx_runtime_1.jsx)(gui_2.Spinner, {}), actions: (0, jsx_runtime_1.jsx)(gui_2.Badge, { children: "copy" }), children: [(0, jsx_runtime_1.jsx)(chat_1.Step, { name: "shell", status: "running", detail: "git status --porcelain" }), (0, jsx_runtime_1.jsx)(chat_1.Step, { name: "write", status: "done", detail: "src/index.ts", defaultOpen: true, children: (0, jsx_runtime_1.jsx)(chat_1.Code, { language: "json", value: "{}", children: '{}' }) }), (0, jsx_runtime_1.jsx)(chat_1.Step, { name: "fetch", status: "error", detail: "timed out", children: "plain body" }), (0, jsx_runtime_1.jsx)(chat_1.Step, { name: "plan", status: "cancelled" }), (0, jsx_runtime_1.jsx)(chat_1.Code, { language: "typescript", value: "const x = 1", children: "const x = 1" }), (0, jsx_runtime_1.jsx)(chat_1.Sources, { sources: SOURCES })] }), (0, jsx_runtime_1.jsx)(chat_1.Message, { role: "assistant", busy: true, children: "answering" }), (0, jsx_runtime_1.jsx)(chat_1.Message, { role: "assistant", children: (0, jsx_runtime_1.jsx)(chat_1.Failure, { onRetry: NOOP, children: "The model stopped before finishing." }) }), (0, jsx_runtime_1.jsx)(chat_1.Message, { role: "assistant", children: (0, jsx_runtime_1.jsx)(chat_1.Failure, { children: "Rate limited." }) }), (0, jsx_runtime_1.jsx)(chat_1.Message, { role: "user", body: { bg: '$color5', rounded: '$3' }, children: "restyled bubble" }), (0, jsx_runtime_1.jsx)(chat_1.Message, { role: "system", children: "note" })] }), (0, jsx_runtime_1.jsx)(chat_1.Composer, { value: "a draft", onChange: NOOP, onSend: NOOP, hint: "Enter to send", children: (0, jsx_runtime_1.jsx)(gui_2.Badge, { children: "tool" }) }), (0, jsx_runtime_1.jsx)(chat_1.Composer, { value: "", onChange: NOOP, onSend: NOOP, onStop: NOOP, busy: true })] }), (0, jsx_runtime_1.jsx)(gui_2.Screen, { height: "min(72vh, 620px)", minH: 420, maxW: 720, gap: "$3", children: (0, jsx_runtime_1.jsx)(chat_1.Chat, { messages: TURNS, streaming: true, send: NOOP, stop: NOOP, composer: { placeholder: 'Ask anything' } }) }), (0, jsx_runtime_1.jsx)(gui_2.Screen, { height: "min(72vh, 620px)", minH: 420, maxW: 720, gap: "$3", children: (0, jsx_runtime_1.jsx)(chat_1.Chat, { messages: [], send: NOOP, empty: (0, jsx_runtime_1.jsx)(chat_1.Message, { role: "system", children: "nothing yet" }) }) }), (0, jsx_runtime_1.jsx)(chat_1.Aside, { children: (0, jsx_runtime_1.jsx)(chat_1.Sources, { sources: SOURCES }) }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', width: '100%', maxWidth: 260, height: 320 }, children: (0, jsx_runtime_1.jsxs)(chat_1.Sidebar, { children: [(0, jsx_runtime_1.jsx)(chat_1.SidebarHeader, { title: "Hanzo", onOpenSwitcher: NOOP, onSearch: NOOP, onCollapse: NOOP }), (0, jsx_runtime_1.jsx)(chat_1.SidebarNewChat, { onPress: NOOP }), (0, jsx_runtime_1.jsxs)(chat_1.SidebarScroll, { children: [(0, jsx_runtime_1.jsxs)(chat_1.SidebarSection, { label: "Today", children: [(0, jsx_runtime_1.jsx)(chat_1.SidebarItem, { active: true, onPress: NOOP, children: "Selected thread" }), (0, jsx_runtime_1.jsx)(chat_1.SidebarItem, { onPress: NOOP, children: "Another thread" })] }), (0, jsx_runtime_1.jsx)(chat_1.SidebarFolder, { name: "Archive", defaultOpen: true, children: (0, jsx_runtime_1.jsx)(chat_1.SidebarItem, { onPress: NOOP, children: "Nested thread" }) })] }), (0, jsx_runtime_1.jsx)(chat_1.SidebarUser, { name: "z", secondary: "z@hanzo.ai", onPress: NOOP, onHelp: NOOP })] }) })] }), (0, jsx_runtime_1.jsxs)(Section, { name: "workspace", children: [(0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', width: '100%', height: 420 }, children: (0, jsx_runtime_1.jsx)(agents_1.Workspace, { start: (0, jsx_runtime_1.jsx)(agents_1.ProjectChip, { name: "MEGA Shop", onPress: NOOP }), middle: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(agents_1.Views, { views: [...agents_1.VIEWS, agents_1.CHAT], value: "preview", onChange: NOOP, label: "Editor view" }), (0, jsx_runtime_1.jsx)(agents_1.Views, { views: agents_1.DEVICES, value: "desktop", onChange: NOOP, label: "Device", labels: "none" }), (0, jsx_runtime_1.jsx)(agents_1.PageSelect, { pages: [{ id: '/', label: 'Homepage' }], value: "/", onChange: NOOP })] }), end: (0, jsx_runtime_1.jsx)(gui_2.Button, { size: "sm", children: "Publish" }), chat: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(agents_1.Suggestions, { items: agents_1.SUGGESTIONS, onPick: NOOP, onDismiss: NOOP }), (0, jsx_runtime_1.jsx)(agents_1.Attachments, { items: [
|
|
185
|
+
}, children: (0, jsx_runtime_1.jsx)(gui_2.CardTitle, { children: "center" }) }) }) }), (0, jsx_runtime_1.jsxs)(Section, { name: "product-arrangements", children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 12, width: '100%', maxWidth: 320 }, children: [(0, jsx_runtime_1.jsx)(Skeleton_1.Skeleton, { width: 120 }), (0, jsx_runtime_1.jsx)(Skeleton_1.Skeleton, { width: "100%", height: 72, rounded: "$4" }), (0, jsx_runtime_1.jsx)(Skeleton_1.Skeleton.Text, { lines: 3 })] }), (0, jsx_runtime_1.jsx)(TooltipAnchor_1.TooltipAnchor, { description: "Delete this agent", children: (0, jsx_runtime_1.jsx)(gui_2.Button, { children: "hinted" }) }), (0, jsx_runtime_1.jsx)(gui_2.Dialog, { open: true, children: (0, jsx_runtime_1.jsx)(DialogTemplate_1.DialogTemplate, { title: "Delete agent", description: "This removes every run recorded against it.", confirm: { label: 'Delete', tone: 'danger' }, children: (0, jsx_runtime_1.jsx)(gui_2.CardTitle, { children: "body" }) }) })] }), (0, jsx_runtime_1.jsx)(Section, { name: "usage-limits", children: (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', flexDirection: 'column', gap: 16, width: '100%', maxWidth: 480 }, children: [['md', 'sm'].map((size) => ((0, jsx_runtime_1.jsx)(UsageMeter_1.UsageMeter, { size: size, limits: USAGE }, size))), (0, jsx_runtime_1.jsx)(LimitedBanner_1.LimitedBanner, { message: "Premium models are paused until Oct 31. You're chatting on Zen Free.", actions: USAGE.actions, onAction: () => { }, onUsage: () => { }, onClose: () => { } }), (0, jsx_runtime_1.jsx)(PlanUsage_1.PlanUsage, { limits: { ...USAGE, state: 'ok', period_start: '2026-10-01T00:00:00Z', period_end: '2026-10-31T00:00:00Z' }, onAction: () => { } }), (0, jsx_runtime_1.jsx)(PlanUsage_1.PlanUsage, { limits: { ...USAGE, plan: '' }, onAction: () => { } })] }) }), (0, jsx_runtime_1.jsxs)(Section, { name: "chat", children: [(0, jsx_runtime_1.jsxs)(gui_2.Screen, { height: "min(72vh, 620px)", minH: 420, maxW: 720, gap: "$3", children: [(0, jsx_runtime_1.jsxs)(chat_1.Header, { title: "A conversation with a long enough name to clamp", leading: (0, jsx_runtime_1.jsx)(chat_1.AsideToggle, {}), onOpenMenu: NOOP, children: [(0, jsx_runtime_1.jsx)(chat_1.ShareButton, {}), (0, jsx_runtime_1.jsx)(chat_1.AsideToggle, {})] }), (0, jsx_runtime_1.jsx)(gui_2.Fill, { children: (0, jsx_runtime_1.jsx)(chat_1.Message, { role: "user", children: "plain Fill \u2014 the middle, without a Thread" }) }), (0, jsx_runtime_1.jsxs)(chat_1.Thread, { children: [(0, jsx_runtime_1.jsx)(chat_1.Message, { role: "user", children: "ask" }), (0, jsx_runtime_1.jsxs)(chat_1.Message, { role: "assistant", icon: (0, jsx_runtime_1.jsx)(gui_2.Spinner, {}), actions: (0, jsx_runtime_1.jsx)(gui_2.Badge, { children: "copy" }), children: [(0, jsx_runtime_1.jsx)(chat_1.Step, { name: "shell", status: "running", detail: "git status --porcelain" }), (0, jsx_runtime_1.jsx)(chat_1.Step, { name: "write", status: "done", detail: "src/index.ts", defaultOpen: true, children: (0, jsx_runtime_1.jsx)(chat_1.Code, { language: "json", value: "{}", children: '{}' }) }), (0, jsx_runtime_1.jsx)(chat_1.Step, { name: "fetch", status: "error", detail: "timed out", children: "plain body" }), (0, jsx_runtime_1.jsx)(chat_1.Step, { name: "plan", status: "cancelled" }), (0, jsx_runtime_1.jsx)(chat_1.Code, { language: "typescript", value: "const x = 1", children: "const x = 1" }), (0, jsx_runtime_1.jsx)(chat_1.Sources, { sources: SOURCES })] }), (0, jsx_runtime_1.jsx)(chat_1.Message, { role: "assistant", busy: true, children: "answering" }), (0, jsx_runtime_1.jsx)(chat_1.Message, { role: "assistant", children: (0, jsx_runtime_1.jsx)(chat_1.Failure, { onRetry: NOOP, children: "The model stopped before finishing." }) }), (0, jsx_runtime_1.jsx)(chat_1.Message, { role: "assistant", children: (0, jsx_runtime_1.jsx)(chat_1.Failure, { children: "Rate limited." }) }), (0, jsx_runtime_1.jsx)(chat_1.Message, { role: "user", body: { bg: '$color5', rounded: '$3' }, children: "restyled bubble" }), (0, jsx_runtime_1.jsx)(chat_1.Message, { role: "system", children: "note" })] }), (0, jsx_runtime_1.jsx)(chat_1.Composer, { value: "a draft", onChange: NOOP, onSend: NOOP, hint: "Enter to send", children: (0, jsx_runtime_1.jsx)(gui_2.Badge, { children: "tool" }) }), (0, jsx_runtime_1.jsx)(chat_1.Composer, { value: "", onChange: NOOP, onSend: NOOP, onStop: NOOP, busy: true })] }), (0, jsx_runtime_1.jsx)(gui_2.Screen, { height: "min(72vh, 620px)", minH: 420, maxW: 720, gap: "$3", children: (0, jsx_runtime_1.jsx)(chat_1.Chat, { messages: TURNS, streaming: true, send: NOOP, stop: NOOP, composer: { placeholder: 'Ask anything' } }) }), (0, jsx_runtime_1.jsx)(gui_2.Screen, { height: "min(72vh, 620px)", minH: 420, maxW: 720, gap: "$3", children: (0, jsx_runtime_1.jsx)(chat_1.Chat, { messages: [], send: NOOP, empty: (0, jsx_runtime_1.jsx)(chat_1.Message, { role: "system", children: "nothing yet" }) }) }), (0, jsx_runtime_1.jsx)(chat_1.Aside, { children: (0, jsx_runtime_1.jsx)(chat_1.Sources, { sources: SOURCES }) }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', width: '100%', maxWidth: 260, height: 320 }, children: (0, jsx_runtime_1.jsxs)(chat_1.Sidebar, { children: [(0, jsx_runtime_1.jsx)(chat_1.SidebarHeader, { title: "Hanzo", onOpenSwitcher: NOOP, onSearch: NOOP, onCollapse: NOOP }), (0, jsx_runtime_1.jsx)(chat_1.SidebarNewChat, { onPress: NOOP }), (0, jsx_runtime_1.jsxs)(chat_1.SidebarScroll, { children: [(0, jsx_runtime_1.jsxs)(chat_1.SidebarSection, { label: "Today", children: [(0, jsx_runtime_1.jsx)(chat_1.SidebarItem, { active: true, onPress: NOOP, children: "Selected thread" }), (0, jsx_runtime_1.jsx)(chat_1.SidebarItem, { onPress: NOOP, children: "Another thread" })] }), (0, jsx_runtime_1.jsx)(chat_1.SidebarFolder, { name: "Archive", defaultOpen: true, children: (0, jsx_runtime_1.jsx)(chat_1.SidebarItem, { onPress: NOOP, children: "Nested thread" }) })] }), (0, jsx_runtime_1.jsx)(chat_1.SidebarUser, { name: "z", secondary: "z@hanzo.ai", onPress: NOOP, onHelp: NOOP })] }) })] }), (0, jsx_runtime_1.jsxs)(Section, { name: "workspace", children: [(0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', width: '100%', height: 420 }, children: (0, jsx_runtime_1.jsx)(agents_1.Workspace, { start: (0, jsx_runtime_1.jsx)(agents_1.ProjectChip, { name: "MEGA Shop", onPress: NOOP }), middle: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(agents_1.Views, { views: [...agents_1.VIEWS, agents_1.CHAT], value: "preview", onChange: NOOP, label: "Editor view" }), (0, jsx_runtime_1.jsx)(agents_1.Views, { views: agents_1.DEVICES, value: "desktop", onChange: NOOP, label: "Device", labels: "none" }), (0, jsx_runtime_1.jsx)(agents_1.PageSelect, { pages: [{ id: '/', label: 'Homepage' }], value: "/", onChange: NOOP })] }), end: (0, jsx_runtime_1.jsx)(gui_2.Button, { size: "sm", children: "Publish" }), chat: (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(agents_1.Suggestions, { items: agents_1.SUGGESTIONS, onPick: NOOP, onDismiss: NOOP }), (0, jsx_runtime_1.jsx)(agents_1.Attachments, { items: [
|
|
186
186
|
{ id: 'a', kind: 'file', label: 'src/app.tsx' },
|
|
187
187
|
{ id: 'b', kind: 'element', label: '<button> .cta' },
|
|
188
188
|
{ id: 'c', kind: 'upload', label: 'shot.png' },
|
package/dist/gallery.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gallery.d.ts","sourceRoot":"","sources":["../src/gallery.tsx"],"names":[],"mappings":"AAgQA;;;GAGG;AACH,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"gallery.d.ts","sourceRoot":"","sources":["../src/gallery.tsx"],"names":[],"mappings":"AAgQA;;;GAGG;AACH,eAAO,MAAM,OAAO,mCA83BnB,CAAA;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,gCA4BpB;eAEc,OAAO"}
|