@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.
Files changed (57) hide show
  1. package/dist/agents/Board.cjs +119 -0
  2. package/dist/agents/Board.d.ts +98 -0
  3. package/dist/agents/Board.d.ts.map +1 -0
  4. package/dist/agents/Board.js +115 -0
  5. package/dist/agents/Board.js.map +1 -0
  6. package/dist/agents/Screen.cjs +91 -0
  7. package/dist/agents/Screen.d.ts +53 -0
  8. package/dist/agents/Screen.d.ts.map +1 -0
  9. package/dist/agents/Screen.js +89 -0
  10. package/dist/agents/Screen.js.map +1 -0
  11. package/dist/agents/Steer.cjs +42 -0
  12. package/dist/agents/Steer.d.ts +54 -0
  13. package/dist/agents/Steer.d.ts.map +1 -0
  14. package/dist/agents/Steer.js +39 -0
  15. package/dist/agents/Steer.js.map +1 -0
  16. package/dist/agents/Transcript.cjs +59 -0
  17. package/dist/agents/Transcript.d.ts +50 -0
  18. package/dist/agents/Transcript.d.ts.map +1 -0
  19. package/dist/agents/Transcript.js +56 -0
  20. package/dist/agents/Transcript.js.map +1 -0
  21. package/dist/agents/index.cjs +36 -0
  22. package/dist/agents/index.d.ts +26 -0
  23. package/dist/agents/index.d.ts.map +1 -0
  24. package/dist/agents/index.js +26 -0
  25. package/dist/agents/index.js.map +1 -0
  26. package/dist/backends/gui/drawer.cjs +20 -1
  27. package/dist/backends/gui/drawer.d.ts +11 -1
  28. package/dist/backends/gui/drawer.d.ts.map +1 -1
  29. package/dist/backends/gui/drawer.js +18 -0
  30. package/dist/backends/gui/drawer.js.map +1 -1
  31. package/dist/backends/gui/index.cjs +2 -1
  32. package/dist/backends/gui/index.d.ts +1 -1
  33. package/dist/backends/gui/index.d.ts.map +1 -1
  34. package/dist/backends/gui/index.js +1 -1
  35. package/dist/backends/gui/index.js.map +1 -1
  36. package/dist/box.cjs +19 -0
  37. package/dist/box.d.ts.map +1 -1
  38. package/dist/box.js +19 -0
  39. package/dist/box.js.map +1 -1
  40. package/dist/chat/Sidebar.cjs +26 -19
  41. package/dist/chat/Sidebar.d.ts +46 -19
  42. package/dist/chat/Sidebar.d.ts.map +1 -1
  43. package/dist/chat/Sidebar.js +26 -19
  44. package/dist/chat/Sidebar.js.map +1 -1
  45. package/dist/gallery.html +1 -1
  46. package/dist/index.cjs +3 -2
  47. package/dist/index.d.ts +1 -1
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +1 -1
  50. package/dist/index.js.map +1 -1
  51. package/dist/index.node.js +1 -1
  52. package/dist/primitives/DrawerTrigger.cjs +8 -0
  53. package/dist/primitives/DrawerTrigger.d.ts +2 -0
  54. package/dist/primitives/DrawerTrigger.d.ts.map +1 -0
  55. package/dist/primitives/DrawerTrigger.js +5 -0
  56. package/dist/primitives/DrawerTrigger.js.map +1 -0
  57. 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;AAG/B,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,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"}
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":"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"}
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