@cardstack/boxel-cli 0.11.0-unstable.2 → 0.11.0-unstable.3
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/bundled-realms/pretui/components/agent-mark.gts +98 -0
- package/bundled-realms/pretui/components/agent-question.gts +340 -37
- package/bundled-realms/pretui/components/answer-footer.gts +249 -0
- package/bundled-realms/pretui/components/card-embed.gts +523 -0
- package/bundled-realms/pretui/components/card-pills.gts +725 -0
- package/bundled-realms/pretui/components/code-block.gts +87 -45
- package/bundled-realms/pretui/components/collapsed-turn.gts +133 -12
- package/bundled-realms/pretui/components/compaction-chip.gts +81 -67
- package/bundled-realms/pretui/components/composer-cap.gts +516 -0
- package/bundled-realms/pretui/components/context-ring.gts +108 -0
- package/bundled-realms/pretui/components/diff-block.gts +1002 -31
- package/bundled-realms/pretui/components/diff-stat.gts +102 -0
- package/bundled-realms/pretui/components/jump-chip.gts +86 -53
- package/bundled-realms/pretui/components/markdown-stream.gts +799 -0
- package/bundled-realms/pretui/components/markdown-surface.gts +71 -0
- package/bundled-realms/pretui/components/plan-mark.gts +147 -0
- package/bundled-realms/pretui/components/prose.gts +185 -8
- package/bundled-realms/pretui/components/prose.md +6 -8
- package/bundled-realms/pretui/components/quick-look.gts +377 -0
- package/bundled-realms/pretui/components/reactions.gts +136 -0
- package/bundled-realms/pretui/components/recommendation.gts +67 -36
- package/bundled-realms/pretui/components/result-card.gts +58 -22
- package/bundled-realms/pretui/components/segmented-control.gts +13 -8
- package/bundled-realms/pretui/components/session-prep.gts +12 -11
- package/bundled-realms/pretui/components/sliding-highlight.gts +8 -3
- package/bundled-realms/pretui/components/speaker-label.gts +132 -0
- package/bundled-realms/pretui/components/state-glyph.gts +121 -0
- package/bundled-realms/pretui/components/step-list.gts +62 -60
- package/bundled-realms/pretui/components/stick-to-bottom.gts +1150 -0
- package/bundled-realms/pretui/components/system-line.gts +143 -0
- package/bundled-realms/pretui/components/task-checklist.gts +184 -0
- package/bundled-realms/pretui/components/thinking.gts +63 -94
- package/bundled-realms/pretui/components/tool-change-table.gts +285 -0
- package/bundled-realms/pretui/components/tool-gate.gts +462 -0
- package/bundled-realms/pretui/components/tool-group.gts +920 -0
- package/bundled-realms/pretui/components/tool-icon.ts +64 -0
- package/bundled-realms/pretui/components/tool-meta.gts +82 -0
- package/bundled-realms/pretui/components/tool-plan.gts +197 -0
- package/bundled-realms/pretui/components/tool-row.gts +2087 -0
- package/bundled-realms/pretui/components/turn-changes.gts +227 -0
- package/bundled-realms/pretui/components/user-bubble.gts +575 -0
- package/bundled-realms/pretui/components/work-item.gts +185 -48
- package/bundled-realms/pretui/docs/scroll-anchoring-protocol.md +136 -0
- package/bundled-realms/pretui/internal/markdown-projection.ts +438 -0
- package/bundled-realms/pretui/internal/mount-queue.ts +79 -0
- package/bundled-realms/pretui/internal/tool-phrases.ts +168 -0
- package/bundled-realms/pretui/package.json +2 -1
- package/bundled-test-harness/assets/{ai-module-creation-test-beRNwH-e.js → ai-module-creation-test-B6FQKqIl.js} +1 -1
- package/bundled-test-harness/assets/{app-CtezUCip.js → app-KpPqdyX3.js} +4 -4
- package/bundled-test-harness/assets/{binary-upload-dedupe-test-bI8T0QLl.js → binary-upload-dedupe-test-DN00y1tM.js} +1 -1
- package/bundled-test-harness/assets/{can-invoke-test-DVaU_yRT.js → can-invoke-test-Bl-EUFM3.js} +1 -1
- package/bundled-test-harness/assets/{card-chooser-paging-test-DnxMnXKR.js → card-chooser-paging-test-BNuZRHX3.js} +1 -1
- package/bundled-test-harness/assets/{card-chooser-test-DUSnLr-u.js → card-chooser-test-wKfPOOT4.js} +1 -1
- package/bundled-test-harness/assets/{card-def-field-def-relationships-test-GBUr3tFK.js → card-def-field-def-relationships-test-CduQ6zan.js} +1 -1
- package/bundled-test-harness/assets/{card-delete-test-CQveO1VC.js → card-delete-test-DKxolj5o.js} +1 -1
- package/bundled-test-harness/assets/{check-correctness-test-D2M2p66N.js → check-correctness-test-B-kgHztp.js} +1 -1
- package/bundled-test-harness/assets/{codeblocks-test-AdolhdCA.js → codeblocks-test-BDD7qK_V.js} +1 -1
- package/bundled-test-harness/assets/{compaction-test-DvyAQq56.js → compaction-test-BweolkhG.js} +1 -1
- package/bundled-test-harness/assets/{container-DIF_9lZ9.css → container-B5B6u-xm.css} +29 -22
- package/bundled-test-harness/assets/{container-DvvqmNpg.js → container-BnJjIM6J.js} +9 -6
- package/bundled-test-harness/assets/{create-listing-modal-test-D95JfQab.js → create-listing-modal-test-FvcAKpIa.js} +1 -1
- package/bundled-test-harness/assets/{debug-message-test-BcNtj7Wr.js → debug-message-test-CJ18Evt7.js} +1 -1
- package/bundled-test-harness/assets/{externals-DCnB4XSS.js → externals-BWjhmCD4.js} +1 -1
- package/bundled-test-harness/assets/{fallback-banner-live-delete-test-5lnN1pv2.js → fallback-banner-live-delete-test-C2H3BrT-.js} +1 -1
- package/bundled-test-harness/assets/{fallback-banner-test-DFb_m_Kq.js → fallback-banner-test-C10aYjkj.js} +1 -1
- package/bundled-test-harness/assets/{fallback-models-test-p3YIwj1L.js → fallback-models-test-BxoPiaGF.js} +1 -1
- package/bundled-test-harness/assets/{file-attachment-test-CmyjNWRR.js → file-attachment-test-DeKyzYaz.js} +1 -1
- package/bundled-test-harness/assets/{general-test-CX-TFDuX.js → general-test-BewzrpoB.js} +1 -1
- package/bundled-test-harness/assets/{index-query-engine-test-CY2tAkot.js → index-query-engine-test-BtI8Y2LR.js} +1 -1
- package/bundled-test-harness/assets/{instance-filter-matcher-test-CMBTh8xn.js → instance-filter-matcher-test-BHXHGHjE.js} +1 -1
- package/bundled-test-harness/assets/{main-BOZbZVem.js → main-CqAHZ2kK.js} +1 -1
- package/bundled-test-harness/assets/{message-tool-test-CfjRSJvt.js → message-tool-test-NMaPJFsd.js} +1 -1
- package/bundled-test-harness/assets/{model-cost-tier-test-mZG84Uso.js → model-cost-tier-test-BgbfN2LH.js} +1 -1
- package/bundled-test-harness/assets/{operation-lowering-test-CHnjKSJb.js → operation-lowering-test-C4IaOjsA.js} +1 -1
- package/bundled-test-harness/assets/{operator-mode-card-chooser-test-KWS8lq16.js → operator-mode-card-chooser-test-Bwe47Rn7.js} +1 -1
- package/bundled-test-harness/assets/{operator-mode-links-test-CViFt0Ws.js → operator-mode-links-test-BU4jkC-B.js} +1 -1
- package/bundled-test-harness/assets/{operator-mode-test-D0gZM2yw.js → operator-mode-test-Bh0rGM9z.js} +1 -1
- package/bundled-test-harness/assets/{operator-mode-ui-test-CEvHJ9DS.js → operator-mode-ui-test-whgUw0ju.js} +1 -1
- package/bundled-test-harness/assets/{overlay-menu-items-test-Pw80RXsr.js → overlay-menu-items-test-Cwn1vr8q.js} +1 -1
- package/bundled-test-harness/assets/{past-sessions-test-CW0-Bjav.js → past-sessions-test-Bh24N-Kz.js} +1 -1
- package/bundled-test-harness/assets/{permission-checking-realm-test-D5uXQypS.js → permission-checking-realm-test-DKnnAy0f.js} +1 -1
- package/bundled-test-harness/assets/{realm-config-policy-standing-test-Btatheni.js → realm-config-policy-standing-test-DngdYypq.js} +1 -1
- package/bundled-test-harness/assets/{realm-config-routing-rule-edit-test-Dh5zW13o.js → realm-config-routing-rule-edit-test-_rkFU8SN.js} +1 -1
- package/bundled-test-harness/assets/{realm-config-settings-test-BJa8gv_C.js → realm-config-settings-test-CR9NH0Zn.js} +1 -1
- package/bundled-test-harness/assets/{reasoning-test-2Zp37cQB.js → reasoning-test-0lH10kRl.js} +1 -1
- package/bundled-test-harness/assets/{room-message-test-BsrON13e.js → room-message-test-C-PddE4Y.js} +1 -1
- package/bundled-test-harness/assets/{run-realm-code-BxktQf6R.js → run-realm-code-C8N7DtN-.js} +1 -1
- package/bundled-test-harness/assets/{run-realm-code-test-7grpTos-.js → run-realm-code-test-DBdp147q.js} +1 -1
- package/bundled-test-harness/assets/{schema-generation-test-CM9ggQji.js → schema-generation-test-CB1Hb7GQ.js} +1 -1
- package/bundled-test-harness/assets/{scrolling-test-BER00htB.js → scrolling-test-3PhVin8h.js} +1 -1
- package/bundled-test-harness/assets/{searchable-option-test-Ctf8r3HZ.js → searchable-option-test-BAdOiL4U.js} +1 -1
- package/bundled-test-harness/assets/{sending-test-BJGobs2E.js → sending-test-KSmu1tSJ.js} +1 -1
- package/bundled-test-harness/assets/{skills-test-GPOsHRN6.js → skills-test-D-dlcFpd.js} +1 -1
- package/bundled-test-harness/assets/{store-test-QvvHimzH.js → store-test-CEW7xQjZ.js} +1 -1
- package/bundled-test-harness/assets/{tests-DoTEpvcF.js → tests-QYqqa6nv.js} +47 -47
- package/bundled-test-harness/assets/{text-input-validator-test-CYYH2N0L.js → text-input-validator-test-D8iNOWep.js} +1 -1
- package/bundled-test-harness/assets/{to-device-streaming-test-Ctqa0bVp.js → to-device-streaming-test-trCX-505.js} +1 -1
- package/bundled-test-harness/assets/{token-usage-test-BQVbK3X0.js → token-usage-test-C6sULooH.js} +1 -1
- package/bundled-test-harness/assets/{tools-DU8Rc15s.js → tools-UJfD-_al.js} +1 -1
- package/bundled-test-harness/assets/{tools-test-B13yvEKE.js → tools-test-Brav31AV.js} +1 -1
- package/bundled-test-harness/assets/{worker-DHBEBihX.js → worker-9ph9_Lpv.js} +31 -26
- package/bundled-test-harness/index.html +8 -8
- package/bundled-test-harness/tests/index.html +8 -8
- package/bundled-types/host-app/lib/realm-runner/worker.ts +8 -51
- package/bundled-types/runtime-common/realm-runner-script.d.ts +3 -0
- package/package.json +1 -1
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
// Pretui — StateGlyph: the transcript's state marks, drawn from boxel-icons.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import type { ComponentLike } from '@glint/template';
|
|
4
|
+
import AlertCircle from '@cardstack/boxel-icons/alert-circle';
|
|
5
|
+
import ArrowRight from '@cardstack/boxel-icons/arrow-right';
|
|
6
|
+
import ArrowUpRight from '@cardstack/boxel-icons/arrow-up-right';
|
|
7
|
+
import Check from '@cardstack/boxel-icons/check';
|
|
8
|
+
import Circle from '@cardstack/boxel-icons/circle';
|
|
9
|
+
import CircleDot from '@cardstack/boxel-icons/circle-dot';
|
|
10
|
+
import CircleHalf from '@cardstack/boxel-icons/circle-half-2';
|
|
11
|
+
import CornerDownRight from '@cardstack/boxel-icons/corner-down-right';
|
|
12
|
+
import Diamond from '@cardstack/boxel-icons/diamond';
|
|
13
|
+
import HelpCircle from '@cardstack/boxel-icons/help-circle';
|
|
14
|
+
import Minus from '@cardstack/boxel-icons/minus';
|
|
15
|
+
import Plus from '@cardstack/boxel-icons/plus';
|
|
16
|
+
import Point from '@cardstack/boxel-icons/point';
|
|
17
|
+
import RefreshCw from '@cardstack/boxel-icons/refresh-cw';
|
|
18
|
+
import Stop from '@cardstack/boxel-icons/player-stop';
|
|
19
|
+
import X from '@cardstack/boxel-icons/x';
|
|
20
|
+
|
|
21
|
+
type Icon = ComponentLike<{ Element: SVGSVGElement }>;
|
|
22
|
+
|
|
23
|
+
/** the marks, by name and by the character the parts have always used,
|
|
24
|
+
* so `@glyph='✓'` and `@glyph='done'` draw the same icon */
|
|
25
|
+
const MARKS: Record<string, Icon> = {
|
|
26
|
+
done: Check as Icon,
|
|
27
|
+
'✓': Check as Icon,
|
|
28
|
+
failed: X as Icon,
|
|
29
|
+
'✕': X as Icon,
|
|
30
|
+
'×': X as Icon,
|
|
31
|
+
current: CircleHalf as Icon,
|
|
32
|
+
'◐': CircleHalf as Icon,
|
|
33
|
+
next: Circle as Icon,
|
|
34
|
+
'○': Circle as Icon,
|
|
35
|
+
needs: CircleDot as Icon,
|
|
36
|
+
'●': CircleDot as Icon,
|
|
37
|
+
retry: RefreshCw as Icon,
|
|
38
|
+
'↻': RefreshCw as Icon,
|
|
39
|
+
skipped: Minus as Icon,
|
|
40
|
+
'–': Minus as Icon,
|
|
41
|
+
'−': Minus as Icon,
|
|
42
|
+
'-': Minus as Icon,
|
|
43
|
+
warning: AlertCircle as Icon,
|
|
44
|
+
'!': AlertCircle as Icon,
|
|
45
|
+
note: Point as Icon,
|
|
46
|
+
'·': Point as Icon,
|
|
47
|
+
ask: HelpCircle as Icon,
|
|
48
|
+
'?': HelpCircle as Icon,
|
|
49
|
+
resolve: Diamond as Icon,
|
|
50
|
+
'◇': Diamond as Icon,
|
|
51
|
+
open: ArrowUpRight as Icon,
|
|
52
|
+
'↗': ArrowUpRight as Icon,
|
|
53
|
+
action: ArrowRight as Icon,
|
|
54
|
+
'→': ArrowRight as Icon,
|
|
55
|
+
steer: CornerDownRight as Icon,
|
|
56
|
+
'↳': CornerDownRight as Icon,
|
|
57
|
+
stop: Stop as Icon,
|
|
58
|
+
'■': Stop as Icon,
|
|
59
|
+
add: Plus as Icon,
|
|
60
|
+
'+': Plus as Icon,
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/** the icon a mark draws, or undefined for a character with none */
|
|
64
|
+
export function glyphIcon(glyph: string | undefined): Icon | undefined {
|
|
65
|
+
return glyph ? MARKS[glyph] : undefined;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export interface StateGlyphSignature {
|
|
69
|
+
Args: {
|
|
70
|
+
/** a mark's name ('done', 'failed', 'current', 'next', 'retry',
|
|
71
|
+
* 'skipped', 'warning', 'note', 'ask', 'resolve', 'open', 'action',
|
|
72
|
+
* 'steer', 'stop', 'add', 'needs') or the character it replaces
|
|
73
|
+
* ('✓', '✕', '◐', '○', '↻', '–', '!', '·', '?', '◇', '↗', '→', '↳', '■',
|
|
74
|
+
* '+', '●'). Any other character is drawn as text */
|
|
75
|
+
glyph?: string;
|
|
76
|
+
/** px. Default 12 */
|
|
77
|
+
size?: number;
|
|
78
|
+
};
|
|
79
|
+
Element: HTMLSpanElement;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* One state mark, as an icon from boxel-icons in the current colour, so
|
|
84
|
+
* every part draws ✓ ✕ ◐ ○ ↻ the same way and a theme recolours them all.
|
|
85
|
+
* Decorative: the state is always said in words beside it.
|
|
86
|
+
*/
|
|
87
|
+
export class StateGlyph extends Component<StateGlyphSignature> {
|
|
88
|
+
get icon(): Icon | undefined {
|
|
89
|
+
return glyphIcon(this.args.glyph);
|
|
90
|
+
}
|
|
91
|
+
get size(): string {
|
|
92
|
+
return String(this.args.size ?? 12);
|
|
93
|
+
}
|
|
94
|
+
<template>
|
|
95
|
+
<span
|
|
96
|
+
class='pretui-glyph'
|
|
97
|
+
aria-hidden='true'
|
|
98
|
+
data-glyph={{@glyph}}
|
|
99
|
+
data-test-pretui-state-glyph={{@glyph}}
|
|
100
|
+
...attributes
|
|
101
|
+
>{{#if this.icon}}<this.icon
|
|
102
|
+
width={{this.size}}
|
|
103
|
+
height={{this.size}}
|
|
104
|
+
class='pretui-glyph-icon'
|
|
105
|
+
/>{{else}}{{@glyph}}{{/if}}</span>
|
|
106
|
+
<style scoped>
|
|
107
|
+
@layer PretComponent {
|
|
108
|
+
.pretui-glyph {
|
|
109
|
+
display: inline-grid;
|
|
110
|
+
place-items: center;
|
|
111
|
+
line-height: 1;
|
|
112
|
+
vertical-align: -0.125em;
|
|
113
|
+
}
|
|
114
|
+
.pretui-glyph-icon {
|
|
115
|
+
display: block;
|
|
116
|
+
stroke-width: 2.25;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
</style>
|
|
120
|
+
</template>
|
|
121
|
+
}
|
|
@@ -242,7 +242,9 @@ export class StepList extends Component<StepListSignature> {
|
|
|
242
242
|
aria-describedby={{if this.showSummary this.summaryId}}
|
|
243
243
|
data-test-pretui-step-list-items
|
|
244
244
|
>
|
|
245
|
-
{{
|
|
245
|
+
{{! keyed by position: views are rebuilt on every render, and a
|
|
246
|
+
step that keeps its state must keep its element }}
|
|
247
|
+
{{#each this.views key='number' as |step|}}
|
|
246
248
|
<li
|
|
247
249
|
class='pretui-step'
|
|
248
250
|
data-state={{step.state}}
|
|
@@ -307,15 +309,16 @@ export class StepList extends Component<StepListSignature> {
|
|
|
307
309
|
.pretui-steplist-wrap {
|
|
308
310
|
container-type: inline-size;
|
|
309
311
|
display: grid;
|
|
310
|
-
gap: var(--pretui-step-summary-gap, var(--boxel-sp-
|
|
312
|
+
gap: var(--pretui-step-summary-gap, var(--boxel-sp-xs));
|
|
311
313
|
min-width: 0;
|
|
312
314
|
}
|
|
313
315
|
.pretui-steplist-summary {
|
|
314
316
|
justify-self: end;
|
|
315
317
|
margin: 0;
|
|
316
|
-
font-size: var(--boxel-font-size
|
|
318
|
+
font-size: var(--boxel-caption-font-size);
|
|
319
|
+
line-height: var(--boxel-caption-line-height);
|
|
317
320
|
font-variant-numeric: tabular-nums;
|
|
318
|
-
color: var(--pretui-step-summary-color, var(--
|
|
321
|
+
color: var(--pretui-step-summary-color, var(--subtle-foreground));
|
|
319
322
|
}
|
|
320
323
|
.pretui-steplist {
|
|
321
324
|
display: flex;
|
|
@@ -329,11 +332,11 @@ export class StepList extends Component<StepListSignature> {
|
|
|
329
332
|
.pretui-step {
|
|
330
333
|
display: flex;
|
|
331
334
|
align-items: center;
|
|
332
|
-
gap: var(--boxel-sp-
|
|
335
|
+
gap: var(--boxel-sp-xs);
|
|
333
336
|
min-width: 0;
|
|
334
|
-
font-size: var(--boxel-font-size
|
|
335
|
-
|
|
336
|
-
|
|
337
|
+
font-size: var(--boxel-ui-label-font-size);
|
|
338
|
+
line-height: var(--boxel-ui-label-line-height);
|
|
339
|
+
font-weight: 400;
|
|
337
340
|
}
|
|
338
341
|
.pretui-step:not(:last-child) {
|
|
339
342
|
flex: 1;
|
|
@@ -342,6 +345,9 @@ export class StepList extends Component<StepListSignature> {
|
|
|
342
345
|
each of those reads a per-state consumer knob first — set
|
|
343
346
|
--pretui-step-error-marker-bg (etc.) on any ancestor to re-tone one
|
|
344
347
|
state without touching the rest */
|
|
348
|
+
/* the assistant visual system's rule: a state colours the mark (the
|
|
349
|
+
marker, its ring, its bar) and never the label, done is ink with
|
|
350
|
+
its check, and the primary hue is kept for the one action */
|
|
345
351
|
.pretui-step[data-state='upcoming'] {
|
|
346
352
|
--pretui-step-tone: var(
|
|
347
353
|
--pretui-step-upcoming-tone,
|
|
@@ -353,7 +359,7 @@ export class StepList extends Component<StepListSignature> {
|
|
|
353
359
|
);
|
|
354
360
|
--pretui-step-marker-fg: var(
|
|
355
361
|
--pretui-step-upcoming-marker-fg,
|
|
356
|
-
var(--
|
|
362
|
+
var(--subtle-foreground)
|
|
357
363
|
);
|
|
358
364
|
--pretui-step-ring: var(--pretui-step-upcoming-ring, var(--border));
|
|
359
365
|
--pretui-step-bar-fill: var(
|
|
@@ -368,19 +374,19 @@ export class StepList extends Component<StepListSignature> {
|
|
|
368
374
|
);
|
|
369
375
|
--pretui-step-marker-bg: var(
|
|
370
376
|
--pretui-step-current-marker-bg,
|
|
371
|
-
var(--
|
|
377
|
+
var(--foreground)
|
|
372
378
|
);
|
|
373
379
|
--pretui-step-marker-fg: var(
|
|
374
380
|
--pretui-step-current-marker-fg,
|
|
375
|
-
var(--
|
|
381
|
+
var(--card)
|
|
376
382
|
);
|
|
377
383
|
--pretui-step-ring: var(
|
|
378
384
|
--pretui-step-current-ring,
|
|
379
|
-
|
|
385
|
+
var(--foreground)
|
|
380
386
|
);
|
|
381
387
|
--pretui-step-bar-fill: var(
|
|
382
388
|
--pretui-step-current-bar,
|
|
383
|
-
var(--
|
|
389
|
+
var(--foreground)
|
|
384
390
|
);
|
|
385
391
|
}
|
|
386
392
|
.pretui-step[data-state='complete'] {
|
|
@@ -390,46 +396,37 @@ export class StepList extends Component<StepListSignature> {
|
|
|
390
396
|
);
|
|
391
397
|
--pretui-step-marker-bg: var(
|
|
392
398
|
--pretui-step-complete-marker-bg,
|
|
393
|
-
|
|
399
|
+
var(--inset)
|
|
394
400
|
);
|
|
395
401
|
--pretui-step-marker-fg: var(
|
|
396
402
|
--pretui-step-complete-marker-fg,
|
|
397
|
-
var(--
|
|
398
|
-
);
|
|
399
|
-
--pretui-step-ring: var(
|
|
400
|
-
--pretui-step-complete-ring,
|
|
401
|
-
color-mix(in oklch, var(--success) 40%, var(--border))
|
|
403
|
+
var(--foreground)
|
|
402
404
|
);
|
|
405
|
+
--pretui-step-ring: var(--pretui-step-complete-ring, var(--border));
|
|
403
406
|
--pretui-step-bar-fill: var(
|
|
404
407
|
--pretui-step-complete-bar,
|
|
405
|
-
var(--
|
|
408
|
+
var(--muted-foreground)
|
|
406
409
|
);
|
|
407
410
|
}
|
|
408
411
|
.pretui-step[data-state='error'] {
|
|
409
|
-
--pretui-step-tone: var(
|
|
410
|
-
--pretui-step-error-tone,
|
|
411
|
-
var(--destructive-ink)
|
|
412
|
-
);
|
|
412
|
+
--pretui-step-tone: var(--pretui-step-error-tone, var(--foreground));
|
|
413
413
|
--pretui-step-marker-bg: var(
|
|
414
414
|
--pretui-step-error-marker-bg,
|
|
415
|
-
|
|
415
|
+
var(--inset)
|
|
416
416
|
);
|
|
417
417
|
--pretui-step-marker-fg: var(
|
|
418
418
|
--pretui-step-error-marker-fg,
|
|
419
419
|
var(--destructive-ink)
|
|
420
420
|
);
|
|
421
|
-
--pretui-step-ring: var(
|
|
422
|
-
--pretui-step-error-ring,
|
|
423
|
-
color-mix(in oklch, var(--destructive) 45%, var(--border))
|
|
424
|
-
);
|
|
421
|
+
--pretui-step-ring: var(--pretui-step-error-ring, var(--destructive));
|
|
425
422
|
--pretui-step-bar-fill: var(
|
|
426
423
|
--pretui-step-error-bar,
|
|
427
424
|
var(--destructive)
|
|
428
425
|
);
|
|
429
426
|
}
|
|
430
|
-
/* running now:
|
|
431
|
-
never reads like 'current' (
|
|
432
|
-
|
|
427
|
+
/* running now: the live hue on the mark's play triangle and ring, so
|
|
428
|
+
it never reads like 'current' (ink filled solid, with a number) at
|
|
429
|
+
a glance */
|
|
433
430
|
.pretui-step[data-state='in-progress'] {
|
|
434
431
|
--pretui-step-tone: var(
|
|
435
432
|
--pretui-step-in-progress-tone,
|
|
@@ -437,22 +434,22 @@ export class StepList extends Component<StepListSignature> {
|
|
|
437
434
|
);
|
|
438
435
|
--pretui-step-marker-bg: var(
|
|
439
436
|
--pretui-step-in-progress-marker-bg,
|
|
440
|
-
|
|
437
|
+
var(--inset)
|
|
441
438
|
);
|
|
442
439
|
--pretui-step-marker-fg: var(
|
|
443
440
|
--pretui-step-in-progress-marker-fg,
|
|
444
|
-
var(--
|
|
441
|
+
var(--primary-ink)
|
|
445
442
|
);
|
|
446
443
|
--pretui-step-ring: var(
|
|
447
444
|
--pretui-step-in-progress-ring,
|
|
448
|
-
|
|
445
|
+
var(--primary)
|
|
449
446
|
);
|
|
450
447
|
--pretui-step-bar-fill: var(
|
|
451
448
|
--pretui-step-in-progress-bar,
|
|
452
|
-
var(--
|
|
449
|
+
var(--primary)
|
|
453
450
|
);
|
|
454
451
|
}
|
|
455
|
-
/* cannot proceed:
|
|
452
|
+
/* cannot proceed: the attention hue, not failed — nothing has failed */
|
|
456
453
|
.pretui-step[data-state='blocked'] {
|
|
457
454
|
--pretui-step-tone: var(
|
|
458
455
|
--pretui-step-blocked-tone,
|
|
@@ -460,19 +457,16 @@ export class StepList extends Component<StepListSignature> {
|
|
|
460
457
|
);
|
|
461
458
|
--pretui-step-marker-bg: var(
|
|
462
459
|
--pretui-step-blocked-marker-bg,
|
|
463
|
-
|
|
460
|
+
var(--inset)
|
|
464
461
|
);
|
|
465
462
|
--pretui-step-marker-fg: var(
|
|
466
463
|
--pretui-step-blocked-marker-fg,
|
|
467
|
-
var(--
|
|
468
|
-
);
|
|
469
|
-
--pretui-step-ring: var(
|
|
470
|
-
--pretui-step-blocked-ring,
|
|
471
|
-
color-mix(in oklch, var(--warning) 50%, var(--border))
|
|
464
|
+
var(--attention-ink)
|
|
472
465
|
);
|
|
466
|
+
--pretui-step-ring: var(--pretui-step-blocked-ring, var(--attention));
|
|
473
467
|
--pretui-step-bar-fill: var(
|
|
474
468
|
--pretui-step-blocked-bar,
|
|
475
|
-
var(--
|
|
469
|
+
var(--attention)
|
|
476
470
|
);
|
|
477
471
|
}
|
|
478
472
|
.pretui-step-marker {
|
|
@@ -482,7 +476,8 @@ export class StepList extends Component<StepListSignature> {
|
|
|
482
476
|
height: 1.125rem;
|
|
483
477
|
border-radius: 50%;
|
|
484
478
|
flex: none;
|
|
485
|
-
font-size: var(--boxel-font-size
|
|
479
|
+
font-size: var(--boxel-caption-font-size);
|
|
480
|
+
line-height: var(--boxel-caption-line-height);
|
|
486
481
|
font-variant-numeric: tabular-nums;
|
|
487
482
|
background-color: var(--pretui-step-marker-bg);
|
|
488
483
|
color: var(--pretui-step-marker-fg);
|
|
@@ -503,16 +498,19 @@ export class StepList extends Component<StepListSignature> {
|
|
|
503
498
|
declares a detail, and reserves a line's height, so a message
|
|
504
499
|
arriving mid-run does not shove the whole rail down. */
|
|
505
500
|
.pretui-step-detail {
|
|
506
|
-
min-height:
|
|
507
|
-
font-size: var(--boxel-font-size
|
|
501
|
+
min-height: var(--boxel-caption-line-height);
|
|
502
|
+
font-size: var(--boxel-caption-font-size);
|
|
503
|
+
line-height: var(--boxel-caption-line-height);
|
|
508
504
|
font-weight: 400;
|
|
509
505
|
white-space: normal;
|
|
510
506
|
overflow-wrap: break-word;
|
|
511
|
-
color: var(--pretui-step-detail-color, var(--
|
|
507
|
+
color: var(--pretui-step-detail-color, var(--subtle-foreground));
|
|
512
508
|
}
|
|
509
|
+
/* a blocked or failed step's reason steps up to ink-2; the mark
|
|
510
|
+
carries the state's hue */
|
|
513
511
|
.pretui-step[data-state='blocked'] .pretui-step-detail,
|
|
514
512
|
.pretui-step[data-state='error'] .pretui-step-detail {
|
|
515
|
-
color: var(--
|
|
513
|
+
color: var(--muted-foreground);
|
|
516
514
|
}
|
|
517
515
|
.pretui-step-connector {
|
|
518
516
|
flex: 1;
|
|
@@ -521,11 +519,7 @@ export class StepList extends Component<StepListSignature> {
|
|
|
521
519
|
background-color: var(--border);
|
|
522
520
|
}
|
|
523
521
|
.pretui-step[data-state='complete'] .pretui-step-connector {
|
|
524
|
-
background-color:
|
|
525
|
-
in oklch,
|
|
526
|
-
var(--success) 45%,
|
|
527
|
-
var(--border)
|
|
528
|
-
);
|
|
522
|
+
background-color: var(--subtle-foreground);
|
|
529
523
|
}
|
|
530
524
|
/* ── track variant ── equal-width bars, caption beneath each. The
|
|
531
525
|
caption keeps the marker glyph, so 'complete' is carried by shape
|
|
@@ -536,7 +530,7 @@ export class StepList extends Component<StepListSignature> {
|
|
|
536
530
|
grid-auto-flow: column;
|
|
537
531
|
grid-auto-columns: minmax(0, 1fr);
|
|
538
532
|
align-items: start;
|
|
539
|
-
gap: var(--pretui-step-track-gap, var(--boxel-sp-
|
|
533
|
+
gap: var(--pretui-step-track-gap, var(--boxel-sp-4xs));
|
|
540
534
|
}
|
|
541
535
|
.pretui-steplist[data-variant='track'] .pretui-step {
|
|
542
536
|
display: grid;
|
|
@@ -545,7 +539,7 @@ export class StepList extends Component<StepListSignature> {
|
|
|
545
539
|
'bar bar'
|
|
546
540
|
'marker label';
|
|
547
541
|
align-items: center;
|
|
548
|
-
gap: var(--boxel-sp-
|
|
542
|
+
gap: var(--boxel-sp-xs) var(--boxel-sp-4xs);
|
|
549
543
|
}
|
|
550
544
|
.pretui-steplist[data-variant='track'] .pretui-step-bar {
|
|
551
545
|
grid-area: bar;
|
|
@@ -561,7 +555,15 @@ export class StepList extends Component<StepListSignature> {
|
|
|
561
555
|
border-radius: 0;
|
|
562
556
|
background-color: transparent;
|
|
563
557
|
box-shadow: none;
|
|
564
|
-
|
|
558
|
+
}
|
|
559
|
+
/* the track's marker has no fill, so the current step's number,
|
|
560
|
+
which the steps rail writes in --card on its solid disc, takes
|
|
561
|
+
the step's tone instead; a caller's marker-fg knob still wins */
|
|
562
|
+
.pretui-steplist[data-variant='track'] .pretui-step[data-state='current'] {
|
|
563
|
+
--pretui-step-marker-fg: var(
|
|
564
|
+
--pretui-step-current-marker-fg,
|
|
565
|
+
var(--pretui-step-tone)
|
|
566
|
+
);
|
|
565
567
|
}
|
|
566
568
|
.pretui-steplist[data-variant='track'] .pretui-step-label {
|
|
567
569
|
grid-area: label;
|
|
@@ -578,7 +580,7 @@ export class StepList extends Component<StepListSignature> {
|
|
|
578
580
|
.pretui-steplist[data-variant='steps'] {
|
|
579
581
|
flex-direction: column;
|
|
580
582
|
align-items: stretch;
|
|
581
|
-
gap: var(--boxel-sp-
|
|
583
|
+
gap: var(--boxel-sp-xs);
|
|
582
584
|
}
|
|
583
585
|
.pretui-steplist[data-variant='steps'] .pretui-step {
|
|
584
586
|
flex: none;
|
|
@@ -598,12 +600,12 @@ export class StepList extends Component<StepListSignature> {
|
|
|
598
600
|
.pretui-steplist[data-variant='track'] {
|
|
599
601
|
grid-auto-flow: row;
|
|
600
602
|
grid-auto-columns: auto;
|
|
601
|
-
gap: var(--boxel-sp-
|
|
603
|
+
gap: var(--boxel-sp-xs);
|
|
602
604
|
}
|
|
603
605
|
.pretui-steplist[data-variant='track'] .pretui-step {
|
|
604
606
|
grid-template-columns: 2rem auto minmax(0, 1fr);
|
|
605
607
|
grid-template-areas: 'bar marker label';
|
|
606
|
-
gap: var(--boxel-sp-
|
|
608
|
+
gap: var(--boxel-sp-xs);
|
|
607
609
|
}
|
|
608
610
|
}
|
|
609
611
|
.pretui-vh {
|