@hanzo/ui 8.13.3 → 8.14.1
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/agents/Board.cjs +119 -0
- package/dist/agents/Board.d.ts +98 -0
- package/dist/agents/Board.d.ts.map +1 -0
- package/dist/agents/Board.js +115 -0
- package/dist/agents/Board.js.map +1 -0
- package/dist/agents/Screen.cjs +91 -0
- package/dist/agents/Screen.d.ts +53 -0
- package/dist/agents/Screen.d.ts.map +1 -0
- package/dist/agents/Screen.js +89 -0
- package/dist/agents/Screen.js.map +1 -0
- package/dist/agents/Steer.cjs +42 -0
- package/dist/agents/Steer.d.ts +54 -0
- package/dist/agents/Steer.d.ts.map +1 -0
- package/dist/agents/Steer.js +39 -0
- package/dist/agents/Steer.js.map +1 -0
- package/dist/agents/Transcript.cjs +59 -0
- package/dist/agents/Transcript.d.ts +50 -0
- package/dist/agents/Transcript.d.ts.map +1 -0
- package/dist/agents/Transcript.js +56 -0
- package/dist/agents/Transcript.js.map +1 -0
- package/dist/agents/index.cjs +36 -0
- package/dist/agents/index.d.ts +26 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +26 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/backends/gui/drawer.cjs +20 -1
- package/dist/backends/gui/drawer.d.ts +11 -1
- package/dist/backends/gui/drawer.d.ts.map +1 -1
- package/dist/backends/gui/drawer.js +18 -0
- package/dist/backends/gui/drawer.js.map +1 -1
- package/dist/backends/gui/index.cjs +2 -1
- package/dist/backends/gui/index.d.ts +1 -1
- package/dist/backends/gui/index.d.ts.map +1 -1
- package/dist/backends/gui/index.js +1 -1
- package/dist/backends/gui/index.js.map +1 -1
- package/dist/box.cjs +19 -0
- package/dist/box.d.ts.map +1 -1
- package/dist/box.js +19 -0
- package/dist/box.js.map +1 -1
- package/dist/chat/Sidebar.cjs +26 -19
- package/dist/chat/Sidebar.d.ts +46 -19
- package/dist/chat/Sidebar.d.ts.map +1 -1
- package/dist/chat/Sidebar.js +26 -19
- package/dist/chat/Sidebar.js.map +1 -1
- package/dist/gallery.html +1 -1
- package/dist/index.cjs +3 -2
- 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.js +1 -1
- package/dist/primitives/DrawerTrigger.cjs +8 -0
- package/dist/primitives/DrawerTrigger.d.ts +2 -0
- package/dist/primitives/DrawerTrigger.d.ts.map +1 -0
- package/dist/primitives/DrawerTrigger.js +5 -0
- package/dist/primitives/DrawerTrigger.js.map +1 -0
- package/package.json +13 -7
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use client';"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Steer = Steer;
|
|
5
|
+
exports.MemberRow = MemberRow;
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
/**
|
|
8
|
+
* Steer — the controls that reach a run mid-flight, and the roster row.
|
|
9
|
+
*
|
|
10
|
+
* A command is QUEUED, not applied: an agent reads it between turns, so the
|
|
11
|
+
* label a person sees after pressing has to say that. A control that reports
|
|
12
|
+
* "stopped" the instant it is pressed is lying for however long the current
|
|
13
|
+
* turn takes.
|
|
14
|
+
*
|
|
15
|
+
* Presentational: the verbs go out through `onCommand` and the surface decides
|
|
16
|
+
* what they mean. `@hanzo/ai`'s `sessions.steer(id, command)` is the one it
|
|
17
|
+
* wants, but this row does not import it — a channel workspace steering through
|
|
18
|
+
* a BFF composes the same control.
|
|
19
|
+
*/
|
|
20
|
+
const gui_1 = require("@hanzo/gui");
|
|
21
|
+
const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
|
|
22
|
+
const slot_1 = require("../backends/gui/slot.cjs");
|
|
23
|
+
const CONTROLS = [
|
|
24
|
+
{ command: 'pause', label: 'Pause', icon: lucide_icons_2_1.Pause },
|
|
25
|
+
{ command: 'resume', label: 'Resume', icon: lucide_icons_2_1.Play },
|
|
26
|
+
{ command: 'stop', label: 'Stop', icon: lucide_icons_2_1.Square },
|
|
27
|
+
];
|
|
28
|
+
function Steer({ onCommand, withhold = [], note, ...rest }) {
|
|
29
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { ...(0, slot_1.slot)('steer'), gap: "$1", children: [(0, jsx_runtime_1.jsx)(gui_1.XStack, { gap: "$1", items: "center", ...rest, children: CONTROLS.map(({ command, label, icon: Icon }) => {
|
|
30
|
+
const off = withhold.includes(command);
|
|
31
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { items: "center", gap: "$1.5", px: "$2", py: "$1", rounded: "$3", opacity: off ? 0.4 : 0.8, cursor: off ? 'default' : 'pointer', role: "button", tabIndex: off ? -1 : 0, "aria-disabled": off, "aria-label": label, ...(0, slot_1.tip)(label), hoverStyle: off ? undefined : { bg: '$hover', opacity: 1 }, pressStyle: off ? undefined : { bg: '$raised' }, onPress: () => !off && onCommand?.(command), children: [(0, jsx_runtime_1.jsx)(Icon, { size: 13 }), (0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$1", children: label })] }, command));
|
|
32
|
+
}) }), note ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$1", color: "$soft", children: note })) : null] }));
|
|
33
|
+
}
|
|
34
|
+
const KIND = {
|
|
35
|
+
agent: { icon: lucide_icons_2_1.Zap, says: 'agent' },
|
|
36
|
+
bot: { icon: lucide_icons_2_1.Bot, says: 'always on' },
|
|
37
|
+
human: { icon: lucide_icons_2_1.User, says: 'person' },
|
|
38
|
+
};
|
|
39
|
+
function MemberRow({ name, kind, detail, onPress, ...rest }) {
|
|
40
|
+
const { icon: Icon, says } = KIND[kind];
|
|
41
|
+
return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('member-row'), items: "center", gap: "$2", px: "$2", py: "$1.5", rounded: "$3", cursor: onPress ? 'pointer' : 'default', role: onPress ? 'button' : undefined, tabIndex: onPress ? 0 : undefined, hoverStyle: onPress ? { bg: '$hover' } : undefined, onPress: onPress, ...rest, children: [(0, jsx_runtime_1.jsx)(gui_1.XStack, { width: 22, height: 22, rounded: 9999, items: "center", justify: "center", bg: "$raised", shrink: 0, children: (0, jsx_runtime_1.jsx)(Icon, { size: 12 }) }), (0, jsx_runtime_1.jsxs)(gui_1.YStack, { flex: 1, shrink: 1, children: [(0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", numberOfLines: 1, children: name }), detail ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$1", color: "$soft", numberOfLines: 1, children: detail })) : null] }), (0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$1", color: "$color8", children: says })] }));
|
|
42
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Steer — the controls that reach a run mid-flight, and the roster row.
|
|
3
|
+
*
|
|
4
|
+
* A command is QUEUED, not applied: an agent reads it between turns, so the
|
|
5
|
+
* label a person sees after pressing has to say that. A control that reports
|
|
6
|
+
* "stopped" the instant it is pressed is lying for however long the current
|
|
7
|
+
* turn takes.
|
|
8
|
+
*
|
|
9
|
+
* Presentational: the verbs go out through `onCommand` and the surface decides
|
|
10
|
+
* what they mean. `@hanzo/ai`'s `sessions.steer(id, command)` is the one it
|
|
11
|
+
* wants, but this row does not import it — a channel workspace steering through
|
|
12
|
+
* a BFF composes the same control.
|
|
13
|
+
*/
|
|
14
|
+
import { XStack } from '@hanzo/gui';
|
|
15
|
+
import type { ComponentProps, ReactNode } from 'react';
|
|
16
|
+
type Row = Omit<ComponentProps<typeof XStack>, 'children'>;
|
|
17
|
+
/** The verbs a run understands. `message` is the composer's, not a button's. */
|
|
18
|
+
export type Command = 'pause' | 'resume' | 'stop';
|
|
19
|
+
export interface SteerProps extends Row {
|
|
20
|
+
onCommand?: (command: Command) => void;
|
|
21
|
+
/**
|
|
22
|
+
* Verbs to withhold — a finished run cannot be paused.
|
|
23
|
+
*
|
|
24
|
+
* NOT `disabled`: that is gui's own boolean on the underlying stack, and
|
|
25
|
+
* taking the name means the row and the primitive disagree about the type of
|
|
26
|
+
* one prop.
|
|
27
|
+
*/
|
|
28
|
+
withhold?: Command[];
|
|
29
|
+
/** The last thing that happened, in the surface's words. */
|
|
30
|
+
note?: ReactNode;
|
|
31
|
+
}
|
|
32
|
+
export declare function Steer({ onCommand, withhold, note, ...rest }: SteerProps): import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
/**
|
|
34
|
+
* The three kinds of member, and why one row draws all three.
|
|
35
|
+
*
|
|
36
|
+
* An AGENT is summoned and lives for a session. A BOT is the same thing left
|
|
37
|
+
* running — it is present before anyone asks and after everyone leaves, which
|
|
38
|
+
* is the whole difference and the only one a reader needs. A HUMAN is a person.
|
|
39
|
+
*
|
|
40
|
+
* One component with a `kind` prop rather than three, because the three differ
|
|
41
|
+
* in a badge and an icon; three components is how the hover state comes to
|
|
42
|
+
* differ too.
|
|
43
|
+
*/
|
|
44
|
+
export type MemberKind = 'agent' | 'bot' | 'human';
|
|
45
|
+
export interface MemberRowProps extends Row {
|
|
46
|
+
name: string;
|
|
47
|
+
kind: MemberKind;
|
|
48
|
+
/** A line under the name — what it does, or where it is. */
|
|
49
|
+
detail?: string;
|
|
50
|
+
onPress?: () => void;
|
|
51
|
+
}
|
|
52
|
+
export declare function MemberRow({ name, kind, detail, onPress, ...rest }: MemberRowProps): import("react/jsx-runtime").JSX.Element;
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=Steer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Steer.d.ts","sourceRoot":"","sources":["../../src/agents/Steer.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAe,MAAM,EAAU,MAAM,YAAY,CAAA;AAExD,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAItD,KAAK,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,UAAU,CAAC,CAAA;AAE1D,gFAAgF;AAChF,MAAM,MAAM,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAA;AAQjD,MAAM,WAAW,UAAW,SAAQ,GAAG;IACrC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAA;IACpB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED,wBAAgB,KAAK,CAAC,EAAE,SAAS,EAAE,QAAa,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,UAAU,2CAsC5E;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,CAAA;AAQlD,MAAM,WAAW,cAAe,SAAQ,GAAG;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,UAAU,CAAA;IAChB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;CACrB;AAED,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,cAAc,2CA4CjF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Steer — the controls that reach a run mid-flight, and the roster row.
|
|
5
|
+
*
|
|
6
|
+
* A command is QUEUED, not applied: an agent reads it between turns, so the
|
|
7
|
+
* label a person sees after pressing has to say that. A control that reports
|
|
8
|
+
* "stopped" the instant it is pressed is lying for however long the current
|
|
9
|
+
* turn takes.
|
|
10
|
+
*
|
|
11
|
+
* Presentational: the verbs go out through `onCommand` and the surface decides
|
|
12
|
+
* what they mean. `@hanzo/ai`'s `sessions.steer(id, command)` is the one it
|
|
13
|
+
* wants, but this row does not import it — a channel workspace steering through
|
|
14
|
+
* a BFF composes the same control.
|
|
15
|
+
*/
|
|
16
|
+
import { SizableText, XStack, YStack } from '@hanzo/gui';
|
|
17
|
+
import { Bot, Pause, Play, Square, User, Zap } from '@hanzogui/lucide-icons-2';
|
|
18
|
+
import { slot, tip } from '../backends/gui/slot.js';
|
|
19
|
+
const CONTROLS = [
|
|
20
|
+
{ command: 'pause', label: 'Pause', icon: Pause },
|
|
21
|
+
{ command: 'resume', label: 'Resume', icon: Play },
|
|
22
|
+
{ command: 'stop', label: 'Stop', icon: Square },
|
|
23
|
+
];
|
|
24
|
+
export function Steer({ onCommand, withhold = [], note, ...rest }) {
|
|
25
|
+
return (_jsxs(YStack, { ...slot('steer'), gap: "$1", children: [_jsx(XStack, { gap: "$1", items: "center", ...rest, children: CONTROLS.map(({ command, label, icon: Icon }) => {
|
|
26
|
+
const off = withhold.includes(command);
|
|
27
|
+
return (_jsxs(XStack, { items: "center", gap: "$1.5", px: "$2", py: "$1", rounded: "$3", opacity: off ? 0.4 : 0.8, cursor: off ? 'default' : 'pointer', role: "button", tabIndex: off ? -1 : 0, "aria-disabled": off, "aria-label": label, ...tip(label), hoverStyle: off ? undefined : { bg: '$hover', opacity: 1 }, pressStyle: off ? undefined : { bg: '$raised' }, onPress: () => !off && onCommand?.(command), children: [_jsx(Icon, { size: 13 }), _jsx(SizableText, { size: "$1", children: label })] }, command));
|
|
28
|
+
}) }), note ? (_jsx(SizableText, { size: "$1", color: "$soft", children: note })) : null] }));
|
|
29
|
+
}
|
|
30
|
+
const KIND = {
|
|
31
|
+
agent: { icon: Zap, says: 'agent' },
|
|
32
|
+
bot: { icon: Bot, says: 'always on' },
|
|
33
|
+
human: { icon: User, says: 'person' },
|
|
34
|
+
};
|
|
35
|
+
export function MemberRow({ name, kind, detail, onPress, ...rest }) {
|
|
36
|
+
const { icon: Icon, says } = KIND[kind];
|
|
37
|
+
return (_jsxs(XStack, { ...slot('member-row'), items: "center", gap: "$2", px: "$2", py: "$1.5", rounded: "$3", cursor: onPress ? 'pointer' : 'default', role: onPress ? 'button' : undefined, tabIndex: onPress ? 0 : undefined, hoverStyle: onPress ? { bg: '$hover' } : undefined, onPress: onPress, ...rest, children: [_jsx(XStack, { width: 22, height: 22, rounded: 9999, items: "center", justify: "center", bg: "$raised", shrink: 0, children: _jsx(Icon, { size: 12 }) }), _jsxs(YStack, { flex: 1, shrink: 1, children: [_jsx(SizableText, { size: "$2", numberOfLines: 1, children: name }), detail ? (_jsx(SizableText, { size: "$1", color: "$soft", numberOfLines: 1, children: detail })) : null] }), _jsx(SizableText, { size: "$1", color: "$color8", children: says })] }));
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=Steer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Steer.js","sourceRoot":"","sources":["../../src/agents/Steer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
'use client';"use strict";
|
|
2
|
+
'use client';
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.fold = fold;
|
|
5
|
+
exports.Transcript = Transcript;
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
|
+
/**
|
|
8
|
+
* Transcript — what a run has done, as blocks.
|
|
9
|
+
*
|
|
10
|
+
* A streamed answer arrives one TOKEN per event, so an unfolded transcript
|
|
11
|
+
* prints a sentence as a dozen mid-word cards each under its own actor line —
|
|
12
|
+
* measured at four parts label to one part text. `fold()` joins consecutive
|
|
13
|
+
* turns of the same kind and actor into one block with one label, and this
|
|
14
|
+
* component draws blocks. The folding is exported beside it because it is the
|
|
15
|
+
* same decision every surface has to make and it is pure.
|
|
16
|
+
*
|
|
17
|
+
* Presentational and total: an event whose payload is a shape nobody modelled
|
|
18
|
+
* still renders as its own text rather than as a gap.
|
|
19
|
+
*/
|
|
20
|
+
const gui_1 = require("@hanzo/gui");
|
|
21
|
+
const react_1 = require("react");
|
|
22
|
+
const slot_1 = require("../backends/gui/slot.cjs");
|
|
23
|
+
/**
|
|
24
|
+
* Fold turns into blocks.
|
|
25
|
+
*
|
|
26
|
+
* Message tokens join with NOTHING, because each carries its own leading space
|
|
27
|
+
* and re-inserting one doubles it. Every other kind joins with a newline: two
|
|
28
|
+
* tool results are two facts, not one run-on sentence.
|
|
29
|
+
*/
|
|
30
|
+
function fold(turns) {
|
|
31
|
+
const out = [];
|
|
32
|
+
turns.forEach((turn, i) => {
|
|
33
|
+
const kind = turn.kind ?? 'turn';
|
|
34
|
+
const last = out[out.length - 1];
|
|
35
|
+
if (last && last.kind === kind && last.actor === turn.actor)
|
|
36
|
+
last.parts.push(turn.text);
|
|
37
|
+
// Position is the fallback key and never a random one: a turn carrying
|
|
38
|
+
// neither seq nor id would otherwise be keyed differently on every render,
|
|
39
|
+
// so the list would grow a copy per paint.
|
|
40
|
+
else
|
|
41
|
+
out.push({ key: `${turn.seq ?? turn.id ?? i}`, kind, actor: turn.actor, parts: [turn.text] });
|
|
42
|
+
});
|
|
43
|
+
return out.map((b) => ({
|
|
44
|
+
key: b.key,
|
|
45
|
+
kind: b.kind,
|
|
46
|
+
actor: b.actor,
|
|
47
|
+
text: b.parts.join(b.kind === 'message' ? '' : '\n'),
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
function Transcript({ blocks, follow = true, header, empty, ...rest }) {
|
|
51
|
+
const foot = (0, react_1.useRef)(null);
|
|
52
|
+
(0, react_1.useEffect)(() => {
|
|
53
|
+
if (follow)
|
|
54
|
+
foot.current?.scrollIntoView({ block: 'end' });
|
|
55
|
+
}, [blocks.length, follow]);
|
|
56
|
+
return ((0, jsx_runtime_1.jsx)(gui_1.ScrollView, { ...(0, slot_1.slot)('transcript'), flex: 1, showsVerticalScrollIndicator: false, ...rest, children: (0, jsx_runtime_1.jsxs)(gui_1.YStack, { gap: "$3", p: "$4", children: [header, !blocks.length
|
|
57
|
+
? empty ?? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$soft", children: "Nothing yet." }))
|
|
58
|
+
: blocks.map((block) => ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { gap: "$1", children: [(0, jsx_runtime_1.jsxs)(gui_1.XStack, { gap: "$2", items: "center", children: [(0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$1", color: "$soft", children: block.actor ?? block.kind }), block.actor ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$1", color: "$color8", children: block.kind })) : null] }), (0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$quiet", children: block.text })] }, block.key))), (0, jsx_runtime_1.jsx)("div", { ref: foot })] }) }));
|
|
59
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Transcript — what a run has done, as blocks.
|
|
3
|
+
*
|
|
4
|
+
* A streamed answer arrives one TOKEN per event, so an unfolded transcript
|
|
5
|
+
* prints a sentence as a dozen mid-word cards each under its own actor line —
|
|
6
|
+
* measured at four parts label to one part text. `fold()` joins consecutive
|
|
7
|
+
* turns of the same kind and actor into one block with one label, and this
|
|
8
|
+
* component draws blocks. The folding is exported beside it because it is the
|
|
9
|
+
* same decision every surface has to make and it is pure.
|
|
10
|
+
*
|
|
11
|
+
* Presentational and total: an event whose payload is a shape nobody modelled
|
|
12
|
+
* still renders as its own text rather than as a gap.
|
|
13
|
+
*/
|
|
14
|
+
import { ScrollView } from '@hanzo/gui';
|
|
15
|
+
import { type ComponentProps, type ReactNode } from 'react';
|
|
16
|
+
type Scroll = Omit<ComponentProps<typeof ScrollView>, 'children'>;
|
|
17
|
+
/** The shape a transcript needs from an event. A superset is fine. */
|
|
18
|
+
export interface Turn {
|
|
19
|
+
kind?: string;
|
|
20
|
+
actor?: string;
|
|
21
|
+
seq?: number;
|
|
22
|
+
id?: string;
|
|
23
|
+
text: string;
|
|
24
|
+
}
|
|
25
|
+
/** One folded run of same-kind, same-actor turns. */
|
|
26
|
+
export interface Block {
|
|
27
|
+
key: string;
|
|
28
|
+
kind: string;
|
|
29
|
+
actor?: string;
|
|
30
|
+
text: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Fold turns into blocks.
|
|
34
|
+
*
|
|
35
|
+
* Message tokens join with NOTHING, because each carries its own leading space
|
|
36
|
+
* and re-inserting one doubles it. Every other kind joins with a newline: two
|
|
37
|
+
* tool results are two facts, not one run-on sentence.
|
|
38
|
+
*/
|
|
39
|
+
export declare function fold(turns: Turn[]): Block[];
|
|
40
|
+
export interface TranscriptProps extends Scroll {
|
|
41
|
+
blocks: Block[];
|
|
42
|
+
/** Keep the newest turn in view as the run streams. */
|
|
43
|
+
follow?: boolean;
|
|
44
|
+
/** Drawn above the blocks — a status line, a turn count. */
|
|
45
|
+
header?: ReactNode;
|
|
46
|
+
empty?: ReactNode;
|
|
47
|
+
}
|
|
48
|
+
export declare function Transcript({ blocks, follow, header, empty, ...rest }: TranscriptProps): import("react/jsx-runtime").JSX.Element;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=Transcript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Transcript.d.ts","sourceRoot":"","sources":["../../src/agents/Transcript.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,UAAU,EAA+B,MAAM,YAAY,CAAA;AACpE,OAAO,EAAqB,KAAK,cAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAI9E,KAAK,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,UAAU,CAAC,EAAE,UAAU,CAAC,CAAA;AAEjE,sEAAsE;AACtE,MAAM,WAAW,IAAI;IACnB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;CACb;AAED,qDAAqD;AACrD,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;CACb;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,CAiB3C;AAED,MAAM,WAAW,eAAgB,SAAQ,MAAM;IAC7C,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,uDAAuD;IACvD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,KAAK,CAAC,EAAE,SAAS,CAAA;CAClB;AAED,wBAAgB,UAAU,CAAC,EAAE,MAAM,EAAE,MAAa,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,eAAe,2CAsC5F"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
/**
|
|
4
|
+
* Transcript — what a run has done, as blocks.
|
|
5
|
+
*
|
|
6
|
+
* A streamed answer arrives one TOKEN per event, so an unfolded transcript
|
|
7
|
+
* prints a sentence as a dozen mid-word cards each under its own actor line —
|
|
8
|
+
* measured at four parts label to one part text. `fold()` joins consecutive
|
|
9
|
+
* turns of the same kind and actor into one block with one label, and this
|
|
10
|
+
* component draws blocks. The folding is exported beside it because it is the
|
|
11
|
+
* same decision every surface has to make and it is pure.
|
|
12
|
+
*
|
|
13
|
+
* Presentational and total: an event whose payload is a shape nobody modelled
|
|
14
|
+
* still renders as its own text rather than as a gap.
|
|
15
|
+
*/
|
|
16
|
+
import { ScrollView, SizableText, XStack, YStack } from '@hanzo/gui';
|
|
17
|
+
import { useEffect, useRef } from 'react';
|
|
18
|
+
import { slot } from '../backends/gui/slot.js';
|
|
19
|
+
/**
|
|
20
|
+
* Fold turns into blocks.
|
|
21
|
+
*
|
|
22
|
+
* Message tokens join with NOTHING, because each carries its own leading space
|
|
23
|
+
* and re-inserting one doubles it. Every other kind joins with a newline: two
|
|
24
|
+
* tool results are two facts, not one run-on sentence.
|
|
25
|
+
*/
|
|
26
|
+
export function fold(turns) {
|
|
27
|
+
const out = [];
|
|
28
|
+
turns.forEach((turn, i) => {
|
|
29
|
+
const kind = turn.kind ?? 'turn';
|
|
30
|
+
const last = out[out.length - 1];
|
|
31
|
+
if (last && last.kind === kind && last.actor === turn.actor)
|
|
32
|
+
last.parts.push(turn.text);
|
|
33
|
+
// Position is the fallback key and never a random one: a turn carrying
|
|
34
|
+
// neither seq nor id would otherwise be keyed differently on every render,
|
|
35
|
+
// so the list would grow a copy per paint.
|
|
36
|
+
else
|
|
37
|
+
out.push({ key: `${turn.seq ?? turn.id ?? i}`, kind, actor: turn.actor, parts: [turn.text] });
|
|
38
|
+
});
|
|
39
|
+
return out.map((b) => ({
|
|
40
|
+
key: b.key,
|
|
41
|
+
kind: b.kind,
|
|
42
|
+
actor: b.actor,
|
|
43
|
+
text: b.parts.join(b.kind === 'message' ? '' : '\n'),
|
|
44
|
+
}));
|
|
45
|
+
}
|
|
46
|
+
export function Transcript({ blocks, follow = true, header, empty, ...rest }) {
|
|
47
|
+
const foot = useRef(null);
|
|
48
|
+
useEffect(() => {
|
|
49
|
+
if (follow)
|
|
50
|
+
foot.current?.scrollIntoView({ block: 'end' });
|
|
51
|
+
}, [blocks.length, follow]);
|
|
52
|
+
return (_jsx(ScrollView, { ...slot('transcript'), flex: 1, showsVerticalScrollIndicator: false, ...rest, children: _jsxs(YStack, { gap: "$3", p: "$4", children: [header, !blocks.length
|
|
53
|
+
? empty ?? (_jsx(SizableText, { size: "$2", color: "$soft", children: "Nothing yet." }))
|
|
54
|
+
: blocks.map((block) => (_jsxs(YStack, { gap: "$1", children: [_jsxs(XStack, { gap: "$2", items: "center", children: [_jsx(SizableText, { size: "$1", color: "$soft", children: block.actor ?? block.kind }), block.actor ? (_jsx(SizableText, { size: "$1", color: "$color8", children: block.kind })) : null] }), _jsx(SizableText, { size: "$2", color: "$quiet", children: block.text })] }, block.key))), _jsx("div", { ref: foot })] }) }));
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=Transcript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Transcript.js","sourceRoot":"","sources":["../../src/agents/Transcript.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
'use client';"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Screen = exports.Steer = exports.MemberRow = exports.fold = exports.Transcript = exports.nest = exports.RunRow = exports.AgentBoard = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @hanzo/ui/agents — the agents working view, on @hanzo/gui primitives.
|
|
6
|
+
*
|
|
7
|
+
* `AgentBoard` shows what is running, grouped by project and nested by fan-out;
|
|
8
|
+
* `Transcript` shows what one run has done; `Steer` reaches a run mid-flight;
|
|
9
|
+
* `Screen` watches one that has something to look at; `MemberRow` draws an
|
|
10
|
+
* agent, a bot or a person with the kind legible.
|
|
11
|
+
*
|
|
12
|
+
* Props-in, callbacks-out — no transport, no store, no routing, and no import
|
|
13
|
+
* of `@hanzo/ai` anywhere in the module. The data belongs to the surface, which
|
|
14
|
+
* is what lets hanzo.ai, a channel workspace and the desktop compose the same
|
|
15
|
+
* five components over three different ways of fetching.
|
|
16
|
+
*
|
|
17
|
+
* The two pure helpers ship beside the components because both are decisions a
|
|
18
|
+
* surface would otherwise make differently each time: `nest` builds the tree a
|
|
19
|
+
* board draws from the flat list an API answers with, and `fold` joins a
|
|
20
|
+
* token-per-event stream into readable blocks.
|
|
21
|
+
*
|
|
22
|
+
* The composer is not here — a draft box is not agent-specific, so it stays at
|
|
23
|
+
* `@hanzo/ui/chat` and this module composes it.
|
|
24
|
+
*/
|
|
25
|
+
var Board_1 = require("./Board.cjs");
|
|
26
|
+
Object.defineProperty(exports, "AgentBoard", { enumerable: true, get: function () { return Board_1.AgentBoard; } });
|
|
27
|
+
Object.defineProperty(exports, "RunRow", { enumerable: true, get: function () { return Board_1.RunRow; } });
|
|
28
|
+
Object.defineProperty(exports, "nest", { enumerable: true, get: function () { return Board_1.nest; } });
|
|
29
|
+
var Transcript_1 = require("./Transcript.cjs");
|
|
30
|
+
Object.defineProperty(exports, "Transcript", { enumerable: true, get: function () { return Transcript_1.Transcript; } });
|
|
31
|
+
Object.defineProperty(exports, "fold", { enumerable: true, get: function () { return Transcript_1.fold; } });
|
|
32
|
+
var Steer_1 = require("./Steer.cjs");
|
|
33
|
+
Object.defineProperty(exports, "MemberRow", { enumerable: true, get: function () { return Steer_1.MemberRow; } });
|
|
34
|
+
Object.defineProperty(exports, "Steer", { enumerable: true, get: function () { return Steer_1.Steer; } });
|
|
35
|
+
var Screen_1 = require("./Screen.cjs");
|
|
36
|
+
Object.defineProperty(exports, "Screen", { enumerable: true, get: function () { return Screen_1.Screen; } });
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @hanzo/ui/agents — the agents working view, on @hanzo/gui primitives.
|
|
3
|
+
*
|
|
4
|
+
* `AgentBoard` shows what is running, grouped by project and nested by fan-out;
|
|
5
|
+
* `Transcript` shows what one run has done; `Steer` reaches a run mid-flight;
|
|
6
|
+
* `Screen` watches one that has something to look at; `MemberRow` draws an
|
|
7
|
+
* agent, a bot or a person with the kind legible.
|
|
8
|
+
*
|
|
9
|
+
* Props-in, callbacks-out — no transport, no store, no routing, and no import
|
|
10
|
+
* of `@hanzo/ai` anywhere in the module. The data belongs to the surface, which
|
|
11
|
+
* is what lets hanzo.ai, a channel workspace and the desktop compose the same
|
|
12
|
+
* five components over three different ways of fetching.
|
|
13
|
+
*
|
|
14
|
+
* The two pure helpers ship beside the components because both are decisions a
|
|
15
|
+
* surface would otherwise make differently each time: `nest` builds the tree a
|
|
16
|
+
* board draws from the flat list an API answers with, and `fold` joins a
|
|
17
|
+
* token-per-event stream into readable blocks.
|
|
18
|
+
*
|
|
19
|
+
* The composer is not here — a draft box is not agent-specific, so it stays at
|
|
20
|
+
* `@hanzo/ui/chat` and this module composes it.
|
|
21
|
+
*/
|
|
22
|
+
export { AgentBoard, RunRow, nest, type AgentBoardProps, type Run, type RunRowProps, type RunStatus, } from './Board.js';
|
|
23
|
+
export { Transcript, fold, type Block, type TranscriptProps, type Turn } from './Transcript.js';
|
|
24
|
+
export { MemberRow, Steer, type Command, type MemberKind, type MemberRowProps, type SteerProps, } from './Steer.js';
|
|
25
|
+
export { Screen, type ScreenKind, type ScreenProps, type Ticket } from './Screen.js';
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EACL,UAAU,EACV,MAAM,EACN,IAAI,EACJ,KAAK,eAAe,EACpB,KAAK,GAAG,EACR,KAAK,WAAW,EAChB,KAAK,SAAS,GACf,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,KAAK,EAAE,KAAK,eAAe,EAAE,KAAK,IAAI,EAAE,MAAM,cAAc,CAAA;AAE5F,OAAO,EACL,SAAS,EACT,KAAK,EACL,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,UAAU,GAChB,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @hanzo/ui/agents — the agents working view, on @hanzo/gui primitives.
|
|
3
|
+
*
|
|
4
|
+
* `AgentBoard` shows what is running, grouped by project and nested by fan-out;
|
|
5
|
+
* `Transcript` shows what one run has done; `Steer` reaches a run mid-flight;
|
|
6
|
+
* `Screen` watches one that has something to look at; `MemberRow` draws an
|
|
7
|
+
* agent, a bot or a person with the kind legible.
|
|
8
|
+
*
|
|
9
|
+
* Props-in, callbacks-out — no transport, no store, no routing, and no import
|
|
10
|
+
* of `@hanzo/ai` anywhere in the module. The data belongs to the surface, which
|
|
11
|
+
* is what lets hanzo.ai, a channel workspace and the desktop compose the same
|
|
12
|
+
* five components over three different ways of fetching.
|
|
13
|
+
*
|
|
14
|
+
* The two pure helpers ship beside the components because both are decisions a
|
|
15
|
+
* surface would otherwise make differently each time: `nest` builds the tree a
|
|
16
|
+
* board draws from the flat list an API answers with, and `fold` joins a
|
|
17
|
+
* token-per-event stream into readable blocks.
|
|
18
|
+
*
|
|
19
|
+
* The composer is not here — a draft box is not agent-specific, so it stays at
|
|
20
|
+
* `@hanzo/ui/chat` and this module composes it.
|
|
21
|
+
*/
|
|
22
|
+
export { AgentBoard, RunRow, nest, } from './Board.js';
|
|
23
|
+
export { Transcript, fold } from './Transcript.js';
|
|
24
|
+
export { MemberRow, Steer, } from './Steer.js';
|
|
25
|
+
export { Screen } from './Screen.js';
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agents/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,EACL,UAAU,EACV,MAAM,EACN,IAAI,GAKL,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,UAAU,EAAE,IAAI,EAA+C,MAAM,cAAc,CAAA;AAE5F,OAAO,EACL,SAAS,EACT,KAAK,GAKN,MAAM,SAAS,CAAA;AAEhB,OAAO,EAAE,MAAM,EAAkD,MAAM,UAAU,CAAA"}
|
|
@@ -34,7 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
};
|
|
35
35
|
})();
|
|
36
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
37
|
-
exports.DrawerContent = exports.DrawerHandle = exports.Drawer = void 0;
|
|
37
|
+
exports.DrawerContent = exports.DrawerTrigger = exports.DrawerHandle = exports.Drawer = void 0;
|
|
38
38
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
39
39
|
/**
|
|
40
40
|
* Drawer — a sheet that comes up from the bottom and rests at chosen heights.
|
|
@@ -156,6 +156,25 @@ const DrawerHandle = ({ className, ...props }) => {
|
|
|
156
156
|
}, onPointerDown: drag, onClick: handleHandleClicked, ...props, children: (0, jsx_runtime_1.jsx)(box_1.Box, { className: "rounded-full bg-muted", style: { width: 48, height: 4 } }) }));
|
|
157
157
|
};
|
|
158
158
|
exports.DrawerHandle = DrawerHandle;
|
|
159
|
+
/**
|
|
160
|
+
* What opens the sheet.
|
|
161
|
+
*
|
|
162
|
+
* `asChild` hands the press to the element you already wrote rather than
|
|
163
|
+
* wrapping it in a button — a button inside a button is invalid markup and a
|
|
164
|
+
* keyboard reaches only the outer one.
|
|
165
|
+
*/
|
|
166
|
+
const DrawerTrigger = ({ asChild, children, onClick, ...props }) => {
|
|
167
|
+
const { onOpenChange } = useDrawer();
|
|
168
|
+
const open = (e) => {
|
|
169
|
+
onOpenChange?.(true);
|
|
170
|
+
onClick?.(e);
|
|
171
|
+
};
|
|
172
|
+
if (asChild && React.isValidElement(children)) {
|
|
173
|
+
return React.cloneElement(children, { onClick: open });
|
|
174
|
+
}
|
|
175
|
+
return ((0, jsx_runtime_1.jsx)(box_1.Box, { tag: "button", type: "button", onClick: open, ...props, children: children }));
|
|
176
|
+
};
|
|
177
|
+
exports.DrawerTrigger = DrawerTrigger;
|
|
159
178
|
const DrawerContent = ({ className, children, defaultHandle = true, onOpenAutoFocus, ...props }) => {
|
|
160
179
|
const { open, modal, heights, active, offset, dragging, onOpenChange, dragHandleOnly, drag } = useDrawer();
|
|
161
180
|
// A modal sheet that does not take focus leaves the keyboard behind it, on
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* because a sheet flicked away should go away.
|
|
13
13
|
*/
|
|
14
14
|
import * as React from 'react';
|
|
15
|
-
import { Box } from '../../box.js';
|
|
15
|
+
import { Box, type BoxProps } from '../../box.js';
|
|
16
16
|
/** A height: `'620px'`, or a fraction of the viewport. */
|
|
17
17
|
export type SnapPoint = number | string;
|
|
18
18
|
export type DrawerProps = React.PropsWithChildren<{
|
|
@@ -48,6 +48,16 @@ export declare const Drawer: ({ open, onOpenChange, modal, snapPoints, activeSna
|
|
|
48
48
|
* misses.
|
|
49
49
|
*/
|
|
50
50
|
export declare const DrawerHandle: ({ className, ...props }: React.ComponentProps<typeof Box>) => import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
/**
|
|
52
|
+
* What opens the sheet.
|
|
53
|
+
*
|
|
54
|
+
* `asChild` hands the press to the element you already wrote rather than
|
|
55
|
+
* wrapping it in a button — a button inside a button is invalid markup and a
|
|
56
|
+
* keyboard reaches only the outer one.
|
|
57
|
+
*/
|
|
58
|
+
export declare const DrawerTrigger: ({ asChild, children, onClick, ...props }: BoxProps<'button'> & {
|
|
59
|
+
asChild?: boolean;
|
|
60
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
51
61
|
export type DrawerContentProps = React.ComponentProps<typeof Box> & {
|
|
52
62
|
/** The sheet draws its own handle unless the caller draws one. */
|
|
53
63
|
defaultHandle?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/drawer.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../../src/backends/gui/drawer.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,GAAG,EAAE,KAAK,QAAQ,EAAE,MAAM,WAAW,CAAA;AAG9C,0DAA0D;AAC1D,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAA;AAEvC,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAChD,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;IACtC,6CAA6C;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,SAAS,EAAE,CAAA;IACxB,sEAAsE;IACtE,eAAe,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IAClC,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAA;IAC/C;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B,iEAAiE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,mDAAmD;IACnD,mBAAmB,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,wDAAwD;IACxD,sBAAsB,CAAC,EAAE,OAAO,CAAA;CACjC,CAAC,CAAA;AA6BF,eAAO,MAAM,MAAM,mMAahB,WAAW,4CAwFb,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,4BAA6B,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,4CAmBrF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,6CAKvB,QAAQ,CAAC,QAAQ,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,4CAc5C,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,CAAC,GAAG;IAClE,kEAAkE;IAClE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,KAAK,IAAI,CAAA;CACrC,CAAA;AAED,eAAO,MAAM,aAAa,sEAMvB,kBAAkB,mDAkEpB,CAAA"}
|
|
@@ -118,6 +118,24 @@ export const DrawerHandle = ({ className, ...props }) => {
|
|
|
118
118
|
touchAction: 'none',
|
|
119
119
|
}, onPointerDown: drag, onClick: handleHandleClicked, ...props, children: _jsx(Box, { className: "rounded-full bg-muted", style: { width: 48, height: 4 } }) }));
|
|
120
120
|
};
|
|
121
|
+
/**
|
|
122
|
+
* What opens the sheet.
|
|
123
|
+
*
|
|
124
|
+
* `asChild` hands the press to the element you already wrote rather than
|
|
125
|
+
* wrapping it in a button — a button inside a button is invalid markup and a
|
|
126
|
+
* keyboard reaches only the outer one.
|
|
127
|
+
*/
|
|
128
|
+
export const DrawerTrigger = ({ asChild, children, onClick, ...props }) => {
|
|
129
|
+
const { onOpenChange } = useDrawer();
|
|
130
|
+
const open = (e) => {
|
|
131
|
+
onOpenChange?.(true);
|
|
132
|
+
onClick?.(e);
|
|
133
|
+
};
|
|
134
|
+
if (asChild && React.isValidElement(children)) {
|
|
135
|
+
return React.cloneElement(children, { onClick: open });
|
|
136
|
+
}
|
|
137
|
+
return (_jsx(Box, { tag: "button", type: "button", onClick: open, ...props, children: children }));
|
|
138
|
+
};
|
|
121
139
|
export const DrawerContent = ({ className, children, defaultHandle = true, onOpenAutoFocus, ...props }) => {
|
|
122
140
|
const { open, modal, heights, active, offset, dragging, onOpenChange, dragHandleOnly, drag } = useDrawer();
|
|
123
141
|
// A modal sheet that does not take focus leaves the keyboard behind it, on
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../../src/backends/gui/drawer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../../src/backends/gui/drawer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ exports.ContextMenuRadioItem = exports.ContextMenuCheckboxItem = exports.Context
|
|
|
20
20
|
exports.ResizablePanel = exports.ResizablePanelGroup = exports.RadioGroupItem = exports.RadioGroup = exports.Progress = exports.PopoverClose = exports.PopoverAnchor = exports.PopoverContent = exports.PopoverTrigger = exports.Popover = exports.Label = exports.Input = exports.HoverCardContent = exports.HoverCardTrigger = exports.HoverCard = exports.Glass = exports.DropdownMenuRadioGroup = exports.DropdownMenuSubTrigger = exports.DropdownMenuSubContent = exports.DropdownMenuSub = exports.DropdownMenuPortal = exports.DropdownMenuGroup = exports.DropdownMenuShortcut = exports.DropdownMenuSeparator = exports.DropdownMenuLabel = exports.DropdownMenuRadioItem = exports.DropdownMenuCheckboxItem = exports.DropdownMenuItem = exports.DropdownMenuContent = exports.DropdownMenuTrigger = exports.DropdownMenu = exports.DialogTrigger = exports.DialogTitle = exports.DialogPortal = exports.DialogOverlay = exports.DialogHeader = exports.DialogFooter = exports.DialogDescription = exports.DialogContent = exports.DialogClose = exports.Dialog = exports.ContextMenuRadioGroup = exports.ContextMenuSubTrigger = exports.ContextMenuSubContent = exports.ContextMenuSub = exports.ContextMenuPortal = exports.ContextMenuGroup = exports.ContextMenuShortcut = exports.ContextMenuSeparator = exports.ContextMenuLabel = void 0;
|
|
21
21
|
exports.ToggleGroupItem = exports.ToggleGroup = exports.toast = exports.Toaster = exports.Textarea = exports.TabsContent = exports.TabsTrigger = exports.TabsList = exports.Tabs = exports.Switch = exports.Spinner = exports.Slider = exports.Fill = exports.Screen = exports.Band = exports.SelectScrollDownButton = exports.SelectScrollUpButton = exports.SelectSeparator = exports.SelectItem = exports.SelectLabel = exports.SelectContent = exports.SelectTrigger = exports.SelectValue = exports.SelectGroup = exports.Select = exports.ScrollBar = exports.ScrollArea = exports.Text = exports.View = exports.ScrollView = exports.Spacer = exports.Separator = exports.Image = exports.Anchor = exports.Em = exports.Strong = exports.Span = exports.H6 = exports.H5 = exports.H4 = exports.H3 = exports.H2 = exports.H1 = exports.Heading = exports.Paragraph = exports.SizableText = exports.ZStack = exports.YStack = exports.XStack = exports.ResizableHandle = void 0;
|
|
22
22
|
exports.InputOTPSlot = exports.InputOTPSeparator = exports.InputOTPGroup = exports.InputOTP = exports.StepIndicator = exports.BreadcrumbSeparator = exports.BreadcrumbPage = exports.BreadcrumbList = exports.BreadcrumbLink = exports.BreadcrumbItem = exports.BreadcrumbEllipsis = exports.Breadcrumb = exports.NavItems = exports.fit = exports.MediaStack = exports.Skeleton = exports.SheetTrigger = exports.SheetTitle = exports.SheetPortal = exports.SheetOverlay = exports.SheetHeader = exports.SheetFooter = exports.SheetDescription = exports.SheetContent = exports.SheetClose = exports.Sheet = exports.CarouselNext = exports.CarouselPrevious = exports.CarouselItem = exports.CarouselContent = exports.Carousel = exports.YouTubeEmbed = exports.VideoPlayer = exports.LinkElement = exports.MDXLink = exports.useLink = exports.Link = exports.ApplyTypography = exports.useFormField = exports.FormMessage = exports.FormDescription = exports.FormControl = exports.FormLabel = exports.FormItem = exports.FormField = exports.Form = exports.TooltipProvider = exports.TooltipContent = exports.TooltipTrigger = exports.Tooltip = void 0;
|
|
23
|
-
exports.DrawerHandle = exports.DrawerContent = exports.Drawer = exports.navigationMenuTriggerStyle = exports.NavigationMenuTrigger = exports.NavigationMenuList = exports.NavigationMenuLink = exports.NavigationMenuItem = exports.NavigationMenuContent = exports.NavigationMenu = void 0;
|
|
23
|
+
exports.DrawerTrigger = exports.DrawerHandle = exports.DrawerContent = exports.Drawer = exports.navigationMenuTriggerStyle = exports.NavigationMenuTrigger = exports.NavigationMenuList = exports.NavigationMenuLink = exports.NavigationMenuItem = exports.NavigationMenuContent = exports.NavigationMenu = void 0;
|
|
24
24
|
var accordion_1 = require("./accordion.cjs");
|
|
25
25
|
Object.defineProperty(exports, "Accordion", { enumerable: true, get: function () { return accordion_1.Accordion; } });
|
|
26
26
|
Object.defineProperty(exports, "AccordionItem", { enumerable: true, get: function () { return accordion_1.AccordionItem; } });
|
|
@@ -289,3 +289,4 @@ var drawer_1 = require("./drawer.cjs");
|
|
|
289
289
|
Object.defineProperty(exports, "Drawer", { enumerable: true, get: function () { return drawer_1.Drawer; } });
|
|
290
290
|
Object.defineProperty(exports, "DrawerContent", { enumerable: true, get: function () { return drawer_1.DrawerContent; } });
|
|
291
291
|
Object.defineProperty(exports, "DrawerHandle", { enumerable: true, get: function () { return drawer_1.DrawerHandle; } });
|
|
292
|
+
Object.defineProperty(exports, "DrawerTrigger", { enumerable: true, get: function () { return drawer_1.DrawerTrigger; } });
|
|
@@ -45,5 +45,5 @@ export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, Breadcr
|
|
|
45
45
|
export { StepIndicator, type StepIndicatorProps } from './step-indicator.js';
|
|
46
46
|
export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputOTPProps, type OTPSlot, } from './input-otp.js';
|
|
47
47
|
export { NavigationMenu, NavigationMenuContent, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, navigationMenuTriggerStyle, } from './navigation-menu.js';
|
|
48
|
-
export { Drawer, DrawerContent, DrawerHandle, type DrawerContentProps, type DrawerProps, type SnapPoint, } from './drawer.js';
|
|
48
|
+
export { Drawer, DrawerContent, DrawerHandle, DrawerTrigger, type DrawerContentProps, type DrawerProps, type SnapPoint, } from './drawer.js';
|
|
49
49
|
//# sourceMappingURL=index.d.ts.map
|