@visuno/angular 0.0.0-stage → 0.1.0
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/LICENSE +24 -0
- package/README.md +56 -2
- package/account-table/account-table.component.d.ts +72 -0
- package/action-log/action-log.component.d.ts +41 -0
- package/activity-heatmap/activity-heatmap.component.d.ts +67 -0
- package/agent-inbox/agent-inbox.component.d.ts +75 -0
- package/agent-lanes/agent-lanes.component.d.ts +152 -0
- package/agent-phases/agent-phases.component.d.ts +62 -0
- package/agent-run-timeline/agent-run-timeline.component.d.ts +113 -0
- package/agent-tree/agent-tree.component.d.ts +80 -0
- package/answer-action-bar/answer-action-bar.component.d.ts +110 -0
- package/artifact-card/artifact-card.component.d.ts +145 -0
- package/attachment-tray/attachment-tray.component.d.ts +84 -0
- package/badge/badge.component.d.ts +25 -0
- package/bar-chart/bar-chart.component.d.ts +87 -0
- package/browser-session/browser-session.component.d.ts +70 -0
- package/buttons/buttons.component.d.ts +63 -0
- package/card/card.component.d.ts +21 -0
- package/change-review/change-review.component.d.ts +97 -0
- package/citation-hover-card/citation-hover-card.component.d.ts +95 -0
- package/code-viewer/code-viewer.component.d.ts +86 -0
- package/composer/composer.component.d.ts +114 -0
- package/context-meter/context-meter.component.d.ts +60 -0
- package/core/icon.component.d.ts +10 -0
- package/core/reduced-motion.service.d.ts +15 -0
- package/decision-prompt/decision-prompt.component.d.ts +56 -0
- package/design-review/design-review.component.d.ts +108 -0
- package/design-tuner/design-tuner.component.d.ts +75 -0
- package/details-panel/details-panel.component.d.ts +150 -0
- package/donut-chart/donut-chart.component.d.ts +63 -0
- package/draft-review/draft-review.component.d.ts +128 -0
- package/error-recovery/error-recovery.component.d.ts +59 -0
- package/esm2022/account-table/account-table.component.mjs +399 -0
- package/esm2022/action-log/action-log.component.mjs +177 -0
- package/esm2022/activity-heatmap/activity-heatmap.component.mjs +285 -0
- package/esm2022/agent-inbox/agent-inbox.component.mjs +284 -0
- package/esm2022/agent-lanes/agent-lanes.component.mjs +600 -0
- package/esm2022/agent-phases/agent-phases.component.mjs +300 -0
- package/esm2022/agent-run-timeline/agent-run-timeline.component.mjs +412 -0
- package/esm2022/agent-tree/agent-tree.component.mjs +393 -0
- package/esm2022/answer-action-bar/answer-action-bar.component.mjs +636 -0
- package/esm2022/artifact-card/artifact-card.component.mjs +916 -0
- package/esm2022/attachment-tray/attachment-tray.component.mjs +402 -0
- package/esm2022/badge/badge.component.mjs +97 -0
- package/esm2022/bar-chart/bar-chart.component.mjs +300 -0
- package/esm2022/browser-session/browser-session.component.mjs +352 -0
- package/esm2022/buttons/buttons.component.mjs +215 -0
- package/esm2022/card/card.component.mjs +107 -0
- package/esm2022/change-review/change-review.component.mjs +398 -0
- package/esm2022/citation-hover-card/citation-hover-card.component.mjs +360 -0
- package/esm2022/code-viewer/code-viewer.component.mjs +291 -0
- package/esm2022/composer/composer.component.mjs +743 -0
- package/esm2022/context-meter/context-meter.component.mjs +275 -0
- package/esm2022/core/icon.component.mjs +111 -0
- package/esm2022/core/reduced-motion.service.mjs +34 -0
- package/esm2022/decision-prompt/decision-prompt.component.mjs +259 -0
- package/esm2022/design-review/design-review.component.mjs +428 -0
- package/esm2022/design-tuner/design-tuner.component.mjs +341 -0
- package/esm2022/details-panel/details-panel.component.mjs +537 -0
- package/esm2022/donut-chart/donut-chart.component.mjs +240 -0
- package/esm2022/draft-review/draft-review.component.mjs +549 -0
- package/esm2022/error-recovery/error-recovery.component.mjs +231 -0
- package/esm2022/eval-results/eval-results.component.mjs +368 -0
- package/esm2022/feedback-sheet/feedback-sheet.component.mjs +411 -0
- package/esm2022/field-extraction/field-extraction.component.mjs +368 -0
- package/esm2022/funnel-chart/funnel-chart.component.mjs +258 -0
- package/esm2022/grid/grid.component.mjs +66 -0
- package/esm2022/health-score/health-score.component.mjs +420 -0
- package/esm2022/human-handoff/human-handoff.component.mjs +676 -0
- package/esm2022/image-generation/image-generation.component.mjs +1028 -0
- package/esm2022/inline-text-diff/inline-text-diff.component.mjs +390 -0
- package/esm2022/launch-checklist/launch-checklist.component.mjs +229 -0
- package/esm2022/line-chart/line-chart.component.mjs +417 -0
- package/esm2022/live-answer/live-answer.component.mjs +411 -0
- package/esm2022/metric-insight/metric-insight.component.mjs +511 -0
- package/esm2022/modal/modal.component.mjs +202 -0
- package/esm2022/model-picker/model-picker.component.mjs +491 -0
- package/esm2022/permission-gate/permission-gate.component.mjs +498 -0
- package/esm2022/plan-review/plan-review.component.mjs +432 -0
- package/esm2022/progress/progress.component.mjs +503 -0
- package/esm2022/prompt-library/prompt-library.component.mjs +453 -0
- package/esm2022/prompt-starters/prompt-starters.component.mjs +272 -0
- package/esm2022/proposal-card/proposal-card.component.mjs +402 -0
- package/esm2022/public-api.mjs +88 -0
- package/esm2022/radar-chart/radar-chart.component.mjs +500 -0
- package/esm2022/radial-goals/radial-goals.component.mjs +418 -0
- package/esm2022/reasoning-trail/reasoning-trail.component.mjs +284 -0
- package/esm2022/response-versions/response-versions.component.mjs +288 -0
- package/esm2022/rewrite-toolbar/rewrite-toolbar.component.mjs +397 -0
- package/esm2022/rich-text-editor/rich-text-editor.component.mjs +1755 -0
- package/esm2022/run-cost/run-cost.component.mjs +215 -0
- package/esm2022/run-queue/run-queue.component.mjs +481 -0
- package/esm2022/run-summary/run-summary.component.mjs +331 -0
- package/esm2022/scatter-chart/scatter-chart.component.mjs +705 -0
- package/esm2022/score-breakdown/score-breakdown.component.mjs +460 -0
- package/esm2022/segmented-control/segmented-control.component.mjs +180 -0
- package/esm2022/source-stack/source-stack.component.mjs +245 -0
- package/esm2022/stat-cards/stat-cards.component.mjs +258 -0
- package/esm2022/status-pill/status-pill.component.mjs +305 -0
- package/esm2022/steering/steering.component.mjs +343 -0
- package/esm2022/step-loader/step-loader.component.mjs +209 -0
- package/esm2022/task-table/task-table.component.mjs +534 -0
- package/esm2022/terminal-stream/terminal-stream.component.mjs +583 -0
- package/esm2022/thinking/thinking.component.mjs +276 -0
- package/esm2022/thinking-states/thinking-states.component.mjs +333 -0
- package/esm2022/thread-panel/thread-panel.component.mjs +271 -0
- package/esm2022/toast/toast.component.mjs +195 -0
- package/esm2022/toast-stack/toast-stack.component.mjs +301 -0
- package/esm2022/tool-call/tool-call.component.mjs +273 -0
- package/esm2022/tooltip/tooltip.component.mjs +417 -0
- package/esm2022/top-pages/top-pages.component.mjs +240 -0
- package/esm2022/trace-view/trace-view.component.mjs +440 -0
- package/esm2022/visuno-angular.mjs +5 -0
- package/esm2022/voice-capture/voice-capture.component.mjs +650 -0
- package/esm2022/voice-orb/voice-orb.component.mjs +538 -0
- package/esm2022/web-search/web-search.component.mjs +374 -0
- package/eval-results/eval-results.component.d.ts +67 -0
- package/feedback-sheet/feedback-sheet.component.d.ts +74 -0
- package/fesm2022/visuno-angular.mjs +31992 -0
- package/fesm2022/visuno-angular.mjs.map +1 -0
- package/field-extraction/field-extraction.component.d.ts +82 -0
- package/funnel-chart/funnel-chart.component.d.ts +70 -0
- package/grid/grid.component.d.ts +22 -0
- package/health-score/health-score.component.d.ts +87 -0
- package/human-handoff/human-handoff.component.d.ts +125 -0
- package/image-generation/image-generation.component.d.ts +253 -0
- package/index.d.ts +5 -0
- package/inline-text-diff/inline-text-diff.component.d.ts +76 -0
- package/launch-checklist/launch-checklist.component.d.ts +46 -0
- package/line-chart/line-chart.component.d.ts +89 -0
- package/live-answer/live-answer.component.d.ts +110 -0
- package/metric-insight/metric-insight.component.d.ts +110 -0
- package/modal/modal.component.d.ts +37 -0
- package/model-picker/model-picker.component.d.ts +97 -0
- package/package.json +51 -4
- package/permission-gate/permission-gate.component.d.ts +100 -0
- package/plan-review/plan-review.component.d.ts +86 -0
- package/progress/progress.component.d.ts +91 -0
- package/prompt-library/prompt-library.component.d.ts +121 -0
- package/prompt-starters/prompt-starters.component.d.ts +65 -0
- package/proposal-card/proposal-card.component.d.ts +101 -0
- package/public-api.d.ts +82 -0
- package/radar-chart/radar-chart.component.d.ts +110 -0
- package/radial-goals/radial-goals.component.d.ts +90 -0
- package/reasoning-trail/reasoning-trail.component.d.ts +73 -0
- package/response-versions/response-versions.component.d.ts +54 -0
- package/rewrite-toolbar/rewrite-toolbar.component.d.ts +92 -0
- package/rich-text-editor/rich-text-editor.component.d.ts +180 -0
- package/run-cost/run-cost.component.d.ts +43 -0
- package/run-queue/run-queue.component.d.ts +93 -0
- package/run-summary/run-summary.component.d.ts +81 -0
- package/scatter-chart/scatter-chart.component.d.ts +139 -0
- package/score-breakdown/score-breakdown.component.d.ts +107 -0
- package/segmented-control/segmented-control.component.d.ts +44 -0
- package/source-stack/source-stack.component.d.ts +60 -0
- package/stat-cards/stat-cards.component.d.ts +86 -0
- package/status-pill/status-pill.component.d.ts +64 -0
- package/steering/steering.component.d.ts +75 -0
- package/step-loader/step-loader.component.d.ts +40 -0
- package/styles.css +424 -0
- package/task-table/task-table.component.d.ts +114 -0
- package/terminal-stream/terminal-stream.component.d.ts +110 -0
- package/thinking/thinking.component.d.ts +63 -0
- package/thinking-states/thinking-states.component.d.ts +51 -0
- package/thread-panel/thread-panel.component.d.ts +75 -0
- package/toast/toast.component.d.ts +56 -0
- package/toast-stack/toast-stack.component.d.ts +72 -0
- package/tokens.css +424 -0
- package/tool-call/tool-call.component.d.ts +61 -0
- package/tooltip/tooltip.component.d.ts +89 -0
- package/top-pages/top-pages.component.d.ts +75 -0
- package/trace-view/trace-view.component.d.ts +95 -0
- package/voice-capture/voice-capture.component.d.ts +103 -0
- package/voice-orb/voice-orb.component.d.ts +78 -0
- package/web-search/web-search.component.d.ts +77 -0
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { AfterViewInit, EventEmitter, OnDestroy } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/** ok is green, bad is red, muted is grey. */
|
|
4
|
+
export type TerminalTone = 'ok' | 'bad' | 'muted';
|
|
5
|
+
/** A line of output, or `{ text, tone }` to colour it. */
|
|
6
|
+
export type TerminalLine = string | {
|
|
7
|
+
text: string;
|
|
8
|
+
tone?: TerminalTone;
|
|
9
|
+
};
|
|
10
|
+
/** running shows a spinner; ok a check; failed its exit code in red; stopped a Stopped tag. */
|
|
11
|
+
export type TerminalCommandStatus = 'running' | 'ok' | 'failed' | 'stopped';
|
|
12
|
+
/** A shell command the agent ran, with its streamed output. */
|
|
13
|
+
export interface TerminalCommand {
|
|
14
|
+
kind?: 'command';
|
|
15
|
+
/** Like "npm run build". */
|
|
16
|
+
command: string;
|
|
17
|
+
/** What it printed so far. Longer than `tail` + 1 lines, all but the last `tail` fold. */
|
|
18
|
+
output?: TerminalLine[];
|
|
19
|
+
status: TerminalCommandStatus;
|
|
20
|
+
/** Shown when it failed, as "Exit 1". */
|
|
21
|
+
exitCode?: number;
|
|
22
|
+
/** How long it has taken, like "6.1 s". */
|
|
23
|
+
duration?: string;
|
|
24
|
+
}
|
|
25
|
+
/** A line from the agent between commands, like what went wrong and what it will do about it. */
|
|
26
|
+
export interface TerminalNote {
|
|
27
|
+
kind: 'note';
|
|
28
|
+
text: string;
|
|
29
|
+
}
|
|
30
|
+
/** A file the agent edits between commands. */
|
|
31
|
+
export interface TerminalEdit {
|
|
32
|
+
kind: 'edit';
|
|
33
|
+
file: string;
|
|
34
|
+
/** Lines added and removed, shown once it is done. */
|
|
35
|
+
added?: number;
|
|
36
|
+
removed?: number;
|
|
37
|
+
/** The changed lines, each starting with "-" (removed, red) or "+" (added, green). */
|
|
38
|
+
diff?: string[];
|
|
39
|
+
status?: 'running' | 'done' | 'stopped';
|
|
40
|
+
}
|
|
41
|
+
export type TerminalEntry = TerminalCommand | TerminalNote | TerminalEdit;
|
|
42
|
+
export type TerminalStatus = 'running' | 'passed' | 'failed' | 'stopped';
|
|
43
|
+
export interface TerminalLabels {
|
|
44
|
+
running?: string;
|
|
45
|
+
passed?: string;
|
|
46
|
+
failed?: string;
|
|
47
|
+
stopped?: string;
|
|
48
|
+
stop?: string;
|
|
49
|
+
copy?: string;
|
|
50
|
+
copied?: string;
|
|
51
|
+
more?: (n: number) => string;
|
|
52
|
+
fewer?: string;
|
|
53
|
+
edit?: string;
|
|
54
|
+
}
|
|
55
|
+
export declare class TerminalStreamComponent implements AfterViewInit, OnDestroy {
|
|
56
|
+
/** The working directory, shown in the header, like "~/acme/web". */
|
|
57
|
+
cwd: string;
|
|
58
|
+
/** Commands, notes and edits, oldest first. */
|
|
59
|
+
entries: TerminalEntry[];
|
|
60
|
+
/** The run as a whole. Left out, it is derived from the entries. */
|
|
61
|
+
status?: TerminalStatus;
|
|
62
|
+
/** How long the run has taken, like "0:18". Shown beside Running and in the summary. */
|
|
63
|
+
elapsed?: string;
|
|
64
|
+
/** The line at the foot once the run is over; false hides it. */
|
|
65
|
+
summary?: string | false;
|
|
66
|
+
/** How many lines a folded output keeps showing. */
|
|
67
|
+
tail: number;
|
|
68
|
+
/** Whether the output has been copied (shows the Copied tooltip/check). */
|
|
69
|
+
copied: boolean;
|
|
70
|
+
/** Overrides for the labels. */
|
|
71
|
+
labels: TerminalLabels;
|
|
72
|
+
className?: string;
|
|
73
|
+
/** Emitted by the Stop button while the run is going. */
|
|
74
|
+
stop: EventEmitter<void>;
|
|
75
|
+
/** Emitted with the whole run as text when it is copied. */
|
|
76
|
+
copy: EventEmitter<string>;
|
|
77
|
+
private bodyRef?;
|
|
78
|
+
/** Which folded commands (by entry index) are open. */
|
|
79
|
+
readonly open: Set<number>;
|
|
80
|
+
private pinned;
|
|
81
|
+
private mo?;
|
|
82
|
+
private ro?;
|
|
83
|
+
get L(): Required<TerminalLabels>;
|
|
84
|
+
get hasStop(): boolean;
|
|
85
|
+
private get commands();
|
|
86
|
+
get state(): TerminalStatus;
|
|
87
|
+
get running(): boolean;
|
|
88
|
+
get stateLabel(): string;
|
|
89
|
+
get foot(): string | false;
|
|
90
|
+
kindOf(e: TerminalEntry): 'note' | 'edit' | 'command';
|
|
91
|
+
asNote(e: TerminalEntry): TerminalNote;
|
|
92
|
+
asEdit(e: TerminalEntry): TerminalEdit;
|
|
93
|
+
asCommand(e: TerminalEntry): TerminalCommand;
|
|
94
|
+
dataS(e: TerminalCommand): string;
|
|
95
|
+
private out;
|
|
96
|
+
folds(e: TerminalCommand): boolean;
|
|
97
|
+
hidden(e: TerminalCommand): TerminalLine[];
|
|
98
|
+
shown(e: TerminalCommand): TerminalLine[];
|
|
99
|
+
lineText(l: TerminalLine): string;
|
|
100
|
+
toneClass(l: TerminalLine): string;
|
|
101
|
+
more(n: number): string;
|
|
102
|
+
toggle(i: number): void;
|
|
103
|
+
private text;
|
|
104
|
+
copyAll(): void;
|
|
105
|
+
onScroll(): void;
|
|
106
|
+
ngAfterViewInit(): void;
|
|
107
|
+
ngOnDestroy(): void;
|
|
108
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TerminalStreamComponent, never>;
|
|
109
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TerminalStreamComponent, "vo-terminal-stream", never, { "cwd": { "alias": "cwd"; "required": false; }; "entries": { "alias": "entries"; "required": false; }; "status": { "alias": "status"; "required": false; }; "elapsed": { "alias": "elapsed"; "required": false; }; "summary": { "alias": "summary"; "required": false; }; "tail": { "alias": "tail"; "required": false; }; "copied": { "alias": "copied"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "className": { "alias": "className"; "required": false; }; }, { "stop": "stop"; "copy": "copy"; }, never, never, true, never>;
|
|
110
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { AfterViewInit, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { ReducedMotionService } from '../core/reduced-motion.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/** One step in the trace: what the agent does, and what it found. */
|
|
5
|
+
export interface ThinkingStep {
|
|
6
|
+
/** What the agent does, like "Measure the plan cards". */
|
|
7
|
+
label: string;
|
|
8
|
+
/** running spins and shimmers, retry waits out a problem in amber, done turns into a check. */
|
|
9
|
+
state: 'running' | 'retry' | 'done';
|
|
10
|
+
/** What the step found, or what it waits on, under it. Opens and crossfades when it changes. */
|
|
11
|
+
result?: string;
|
|
12
|
+
/** More detail shown on hover of the result, like the measured values. */
|
|
13
|
+
resultTip?: string;
|
|
14
|
+
/** How long the step took, like "1.3s", shown at its right once it is done. */
|
|
15
|
+
time?: string;
|
|
16
|
+
}
|
|
17
|
+
/** One word of a finished result, carrying its own entrance delay. */
|
|
18
|
+
interface ResultWord {
|
|
19
|
+
text: string;
|
|
20
|
+
delay: number;
|
|
21
|
+
}
|
|
22
|
+
/** The live trace of what the agent is doing, folded away once it is done. */
|
|
23
|
+
export declare class ThinkingComponent implements AfterViewInit, OnChanges, OnDestroy {
|
|
24
|
+
private readonly reduced;
|
|
25
|
+
/** The steps the agent has taken so far. */
|
|
26
|
+
steps: ThinkingStep[];
|
|
27
|
+
/** Spins, counts seconds and keeps the trace open while true. */
|
|
28
|
+
running: boolean;
|
|
29
|
+
/** Seconds to show. Leave it out to let it count while running. */
|
|
30
|
+
seconds?: number;
|
|
31
|
+
/** The header while it runs, like "Checking the pricing page". */
|
|
32
|
+
title: string;
|
|
33
|
+
/** The header once it is done. Defaults to the number of steps. */
|
|
34
|
+
summary?: string;
|
|
35
|
+
/** Folds the trace away a moment after it finishes. */
|
|
36
|
+
collapseWhenDone: boolean;
|
|
37
|
+
/** Whether the trace is open. Leave it out to let the header toggle it. */
|
|
38
|
+
open?: boolean;
|
|
39
|
+
/** The open state the trace starts in when uncontrolled. */
|
|
40
|
+
defaultOpen: boolean;
|
|
41
|
+
/** Emitted when the header toggles the trace. */
|
|
42
|
+
openChange: EventEmitter<boolean>;
|
|
43
|
+
isOpen: boolean;
|
|
44
|
+
private counted;
|
|
45
|
+
private secondTimer?;
|
|
46
|
+
private collapseTimer?;
|
|
47
|
+
private viewReady;
|
|
48
|
+
constructor(reduced: ReducedMotionService);
|
|
49
|
+
get done(): boolean;
|
|
50
|
+
get secs(): number;
|
|
51
|
+
get headerText(): string;
|
|
52
|
+
ngAfterViewInit(): void;
|
|
53
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
54
|
+
stepClass(s: ThinkingStep): string;
|
|
55
|
+
words(text: string): ResultWord[];
|
|
56
|
+
toggle(): void;
|
|
57
|
+
private startSeconds;
|
|
58
|
+
private scheduleCollapse;
|
|
59
|
+
ngOnDestroy(): void;
|
|
60
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ThinkingComponent, never>;
|
|
61
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ThinkingComponent, "vo-thinking", never, { "steps": { "alias": "steps"; "required": false; }; "running": { "alias": "running"; "required": false; }; "seconds": { "alias": "seconds"; "required": false; }; "title": { "alias": "title"; "required": false; }; "summary": { "alias": "summary"; "required": false; }; "collapseWhenDone": { "alias": "collapseWhenDone"; "required": false; }; "open": { "alias": "open"; "required": false; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; }; }, { "openChange": "openChange"; }, never, never, true, never>;
|
|
62
|
+
}
|
|
63
|
+
export {};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { ReducedMotionService } from '../core/reduced-motion.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export type ThinkingVariant = 'orbit' | 'morph' | 'scan' | 'stream' | 'matrix' | 'stack' | 'pulse' | 'wave' | 'bounce' | 'spiral';
|
|
5
|
+
type GridKind = 'orbit' | 'morph' | 'scan' | 'stream' | 'spiral';
|
|
6
|
+
/** One dot in a grid mark: its part classes and optional animation delay. */
|
|
7
|
+
interface Dot {
|
|
8
|
+
cls: string;
|
|
9
|
+
delay: number | null;
|
|
10
|
+
}
|
|
11
|
+
/** Ten thinking indicators to pick from, each a small mark beside a status line. */
|
|
12
|
+
export declare class ThinkingStatesComponent implements OnInit, OnChanges, OnDestroy {
|
|
13
|
+
private readonly reduced;
|
|
14
|
+
/** Which indicator to show. */
|
|
15
|
+
variant: ThinkingVariant;
|
|
16
|
+
/** The status lines. With more than one, they take turns unless `current` is set. */
|
|
17
|
+
steps: string[];
|
|
18
|
+
/** Index of the line to show. Leave it out to let the lines take turns. */
|
|
19
|
+
current?: number;
|
|
20
|
+
/** Milliseconds each line shows for when they take turns. */
|
|
21
|
+
interval: number;
|
|
22
|
+
/** Seconds at the end of the line. Counts by itself when left out; false hides it. */
|
|
23
|
+
seconds?: number | false;
|
|
24
|
+
/** The whole current line (for the screen reader). */
|
|
25
|
+
text: string;
|
|
26
|
+
/** What is painted now (the typed prefix in Stream, otherwise the whole line). */
|
|
27
|
+
shown: string;
|
|
28
|
+
/** Seconds shown, or null when hidden. */
|
|
29
|
+
secs: number | null;
|
|
30
|
+
private auto;
|
|
31
|
+
private counted;
|
|
32
|
+
private typed;
|
|
33
|
+
private rotateTimer?;
|
|
34
|
+
private secondTimer?;
|
|
35
|
+
private typeTimer?;
|
|
36
|
+
constructor(reduced: ReducedMotionService);
|
|
37
|
+
get gridKind(): GridKind;
|
|
38
|
+
get dots(): Dot[];
|
|
39
|
+
get matrix(): number[];
|
|
40
|
+
get stack(): number[];
|
|
41
|
+
get wave(): number[];
|
|
42
|
+
ngOnInit(): void;
|
|
43
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
44
|
+
private startRotation;
|
|
45
|
+
private startSeconds;
|
|
46
|
+
private updateText;
|
|
47
|
+
ngOnDestroy(): void;
|
|
48
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ThinkingStatesComponent, never>;
|
|
49
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ThinkingStatesComponent, "vo-thinking-states", never, { "variant": { "alias": "variant"; "required": false; }; "steps": { "alias": "steps"; "required": false; }; "current": { "alias": "current"; "required": false; }; "interval": { "alias": "interval"; "required": false; }; "seconds": { "alias": "seconds"; "required": false; }; }, {}, never, never, true, never>;
|
|
50
|
+
}
|
|
51
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { AfterViewInit, EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
/** A file or page the agent used, shown as a chip above its reply. */
|
|
4
|
+
export interface ThreadSource {
|
|
5
|
+
label: string;
|
|
6
|
+
/** The tooltip shown on hover. Defaults to the label. */
|
|
7
|
+
tip?: string;
|
|
8
|
+
onClick?: () => void;
|
|
9
|
+
}
|
|
10
|
+
export interface ThreadMessage {
|
|
11
|
+
/** Keeps the message in place when the list changes. Defaults to its position. */
|
|
12
|
+
id?: string;
|
|
13
|
+
from: 'user' | 'agent';
|
|
14
|
+
text: string;
|
|
15
|
+
/** Files or pages the agent used, shown as chips above its reply. */
|
|
16
|
+
sources?: ThreadSource[];
|
|
17
|
+
/** Shows a shimmering "Thinking" (or `text`, if given) while the agent works on a reply. */
|
|
18
|
+
thinking?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface Thread {
|
|
21
|
+
id: string;
|
|
22
|
+
title: string;
|
|
23
|
+
/** The dot in front of the title, any CSS colour, like 'var(--vo-ok-mark)'. Defaults to a quiet grey. */
|
|
24
|
+
color?: string;
|
|
25
|
+
messages: ThreadMessage[];
|
|
26
|
+
}
|
|
27
|
+
/** The underline position under the open tab. */
|
|
28
|
+
interface Ink {
|
|
29
|
+
left: number;
|
|
30
|
+
width: number;
|
|
31
|
+
}
|
|
32
|
+
export declare class ThreadPanelComponent implements OnChanges, AfterViewInit, OnDestroy {
|
|
33
|
+
threads: Thread[];
|
|
34
|
+
/** The id of the open thread. Leave it out to let the tabs switch it. */
|
|
35
|
+
value?: string;
|
|
36
|
+
defaultValue?: string;
|
|
37
|
+
valueChange: EventEmitter<string>;
|
|
38
|
+
/** Called with the reply and the open thread's id. Add the message to that thread to show it. */
|
|
39
|
+
sendMessage: EventEmitter<{
|
|
40
|
+
text: string;
|
|
41
|
+
threadId: string;
|
|
42
|
+
}>;
|
|
43
|
+
/** The reply being written. Leave it out to let the field keep its own. */
|
|
44
|
+
draftInput?: string;
|
|
45
|
+
defaultDraft: string;
|
|
46
|
+
draftChange: EventEmitter<string>;
|
|
47
|
+
placeholder: string;
|
|
48
|
+
/** Sits flat in a chat column (the default). Set false to give it a card of its own. */
|
|
49
|
+
bare: boolean;
|
|
50
|
+
className?: string;
|
|
51
|
+
private tabsRef;
|
|
52
|
+
private readonly motion;
|
|
53
|
+
ink: Ink;
|
|
54
|
+
private first;
|
|
55
|
+
private curUncontrolled?;
|
|
56
|
+
private draftUncontrolled;
|
|
57
|
+
private ro?;
|
|
58
|
+
get rootClass(): string;
|
|
59
|
+
get cur(): string;
|
|
60
|
+
get thread(): Thread | undefined;
|
|
61
|
+
get draft(): string;
|
|
62
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
63
|
+
ngAfterViewInit(): void;
|
|
64
|
+
ngOnDestroy(): void;
|
|
65
|
+
/** The underline slides to the open tab, 10px in from each side. */
|
|
66
|
+
private place;
|
|
67
|
+
setCur(id: string): void;
|
|
68
|
+
onInput(e: Event): void;
|
|
69
|
+
send(e: Event): void;
|
|
70
|
+
delay(i: number): number;
|
|
71
|
+
messageKey(m: ThreadMessage, i: number): string;
|
|
72
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ThreadPanelComponent, never>;
|
|
73
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ThreadPanelComponent, "vo-thread-panel", never, { "threads": { "alias": "threads"; "required": true; }; "value": { "alias": "value"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "draftInput": { "alias": "draftInput"; "required": false; }; "defaultDraft": { "alias": "defaultDraft"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "bare": { "alias": "bare"; "required": false; }; "className": { "alias": "className"; "required": false; }; }, { "valueChange": "valueChange"; "sendMessage": "sendMessage"; "draftChange": "draftChange"; }, never, never, true, never>;
|
|
74
|
+
}
|
|
75
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { EventEmitter, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { type VoIconName } from '../core/icon.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/** Tone of the toast: picks the icon and its colour. */
|
|
5
|
+
export type ToastTone = 'success' | 'error' | 'info' | 'loading';
|
|
6
|
+
/** The action button shown before the close button, like Undo or Retry. */
|
|
7
|
+
export interface ToastAction {
|
|
8
|
+
label: string;
|
|
9
|
+
onClick: () => void;
|
|
10
|
+
variant?: 'ghost' | 'primary' | 'ink';
|
|
11
|
+
/** Swaps the label for a spinner. */
|
|
12
|
+
busy?: boolean;
|
|
13
|
+
}
|
|
14
|
+
/** The data for one toast. */
|
|
15
|
+
export interface ToastData {
|
|
16
|
+
/** A new id slides a new toast in and the old one away. Keep the id to change the text in place. */
|
|
17
|
+
id: string | number;
|
|
18
|
+
/** Picks the icon and its colour. loading spins. */
|
|
19
|
+
tone?: ToastTone;
|
|
20
|
+
title: string;
|
|
21
|
+
/** The quieter line under the title. */
|
|
22
|
+
description?: string;
|
|
23
|
+
action?: ToastAction;
|
|
24
|
+
}
|
|
25
|
+
interface ToneStyle {
|
|
26
|
+
icon: VoIconName | null;
|
|
27
|
+
color: string;
|
|
28
|
+
bg: string;
|
|
29
|
+
}
|
|
30
|
+
/** A toast kept on screen, with its exit state while it leaves. */
|
|
31
|
+
interface Shown {
|
|
32
|
+
toast: ToastData;
|
|
33
|
+
leaving: boolean;
|
|
34
|
+
key: string;
|
|
35
|
+
}
|
|
36
|
+
export declare class ToastComponent implements OnChanges, OnDestroy {
|
|
37
|
+
/** The toast to show, or null for none. */
|
|
38
|
+
toast: ToastData | null;
|
|
39
|
+
/** Emitted by the close button. The toast leaves either way. */
|
|
40
|
+
dismiss: EventEmitter<string | number>;
|
|
41
|
+
private readonly motion;
|
|
42
|
+
/** The toasts rendered now: the current one plus any still playing their exit. */
|
|
43
|
+
shown: Shown[];
|
|
44
|
+
private closed;
|
|
45
|
+
private curId;
|
|
46
|
+
private timers;
|
|
47
|
+
tone(t: ToastData): ToneStyle;
|
|
48
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
49
|
+
private scheduleRemoval;
|
|
50
|
+
runAction(a: ToastAction): void;
|
|
51
|
+
close(t: ToastData): void;
|
|
52
|
+
ngOnDestroy(): void;
|
|
53
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToastComponent, never>;
|
|
54
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ToastComponent, "vo-toast", never, { "toast": { "alias": "toast"; "required": false; }; }, { "dismiss": "dismiss"; }, never, never, true, never>;
|
|
55
|
+
}
|
|
56
|
+
export {};
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { AfterViewChecked, ElementRef, EventEmitter, OnChanges, OnDestroy, QueryList, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { type VoIconName } from '../core/icon.component';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/** Tone of a stacked toast: colours the round icon badge. */
|
|
5
|
+
export type ToastStackTone = 'neutral' | 'ok' | 'warn' | 'bad' | 'merge' | 'blue' | 'purple' | 'green' | 'orange' | 'red' | 'yellow' | 'pink' | 'teal';
|
|
6
|
+
/** The data for one toast in the stack. */
|
|
7
|
+
export interface StackToast {
|
|
8
|
+
id: string | number;
|
|
9
|
+
/** The icon in the round badge. */
|
|
10
|
+
icon: VoIconName;
|
|
11
|
+
/** Colours the badge. Defaults to neutral. */
|
|
12
|
+
tone?: ToastStackTone;
|
|
13
|
+
title: string;
|
|
14
|
+
/** The quiet line under the title. */
|
|
15
|
+
detail?: string;
|
|
16
|
+
/** Like "now" or "2m". */
|
|
17
|
+
time?: string;
|
|
18
|
+
}
|
|
19
|
+
/** The inline style a toast is placed with. */
|
|
20
|
+
interface Placement {
|
|
21
|
+
transform: string;
|
|
22
|
+
opacity: number;
|
|
23
|
+
filter: string;
|
|
24
|
+
zIndex: number;
|
|
25
|
+
}
|
|
26
|
+
export declare class ToastStackComponent implements OnChanges, AfterViewChecked, OnDestroy {
|
|
27
|
+
/** Oldest first. The last one sits in front. */
|
|
28
|
+
toasts: StackToast[];
|
|
29
|
+
/** Fans the stack out. Leave it out (null) to fan it while the pointer is over it. */
|
|
30
|
+
expanded: boolean | null;
|
|
31
|
+
/** How many toasts stay mounted. Older ones drop off the back. */
|
|
32
|
+
max: number;
|
|
33
|
+
/** Emitted when a toast's close button is pressed. */
|
|
34
|
+
dismiss: EventEmitter<string | number>;
|
|
35
|
+
cards: QueryList<ElementRef<HTMLDivElement>>;
|
|
36
|
+
private readonly motion;
|
|
37
|
+
/** The toasts shown now (live, front first in the DOM order below), plus any leaving. */
|
|
38
|
+
rows: {
|
|
39
|
+
toast: StackToast;
|
|
40
|
+
style: Placement;
|
|
41
|
+
inert: boolean;
|
|
42
|
+
}[];
|
|
43
|
+
private hover;
|
|
44
|
+
private focused;
|
|
45
|
+
private live;
|
|
46
|
+
private placed;
|
|
47
|
+
private leaving;
|
|
48
|
+
private heights;
|
|
49
|
+
private prevIds;
|
|
50
|
+
private rafs;
|
|
51
|
+
private timers;
|
|
52
|
+
fanh: number | null;
|
|
53
|
+
get fan(): boolean;
|
|
54
|
+
tone(t: StackToast): [string, string];
|
|
55
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
56
|
+
ngAfterViewChecked(): void;
|
|
57
|
+
private idOf;
|
|
58
|
+
private sync;
|
|
59
|
+
private frontHeights;
|
|
60
|
+
/** Where a toast sits: `i` counts from the front (0 = front). */
|
|
61
|
+
private place;
|
|
62
|
+
private rebuild;
|
|
63
|
+
onEnter(): void;
|
|
64
|
+
onLeave(): void;
|
|
65
|
+
onFocusIn(): void;
|
|
66
|
+
onFocusOut(e: FocusEvent): void;
|
|
67
|
+
onDismiss(t: StackToast): void;
|
|
68
|
+
ngOnDestroy(): void;
|
|
69
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ToastStackComponent, never>;
|
|
70
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ToastStackComponent, "vo-toast-stack", never, { "toasts": { "alias": "toasts"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "max": { "alias": "max"; "required": false; }; }, { "dismiss": "dismiss"; }, never, never, true, never>;
|
|
71
|
+
}
|
|
72
|
+
export {};
|