@cardstack/boxel-cli 0.11.0-unstable.1 → 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-QAuw0l8v.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/choreo-BEHW-NOc.js +2 -0
- package/bundled-test-harness/assets/{choreo-CJfBb_EY.js → choreo-C2cpCfhA.js} +164 -13
- package/bundled-test-harness/assets/{choreo-feature-reel-test-D2OrygZv.js → choreo-feature-reel-test-CPI_6nkT.js} +2 -2
- package/bundled-test-harness/assets/{choreo-gallery-w07xqtO-.js → choreo-gallery-BxA9cyzF.js} +3 -3
- package/bundled-test-harness/assets/{choreo-gallery-build-order-test-yQg4JER6.js → choreo-gallery-build-order-test-CLVoseAJ.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-compositor-test-C2THCXJN.js → choreo-gallery-compositor-test-BpT5Ia6B.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-cover-test-D4T_Tk4s.js → choreo-gallery-cover-test-DL_fdSsh.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-crossing-stage-test-tHUPJ-Hy.js → choreo-gallery-crossing-stage-test-BcKHhpOK.js} +2 -2
- package/bundled-test-harness/assets/{choreo-gallery-demos-alive-test-BOtBOnEZ.js → choreo-gallery-demos-alive-test-KufLhXG8.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-drift-test-D_6U1Z2c.js → choreo-gallery-drift-test-Cx58rYIA.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-escort-test-DDBU0n4C.js → choreo-gallery-escort-test-Wz-emmID.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-films-test-CgW1NSdr.js → choreo-gallery-films-test-BFrVs5WW.js} +2 -2
- package/bundled-test-harness/assets/{choreo-gallery-filter-test-DUIsNwdO.js → choreo-gallery-filter-test-DCKQkhwe.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-fold-test-Chzlxvdr.js → choreo-gallery-fold-test-UtpDgpG9.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-guide-pages-test-DOWnqALT.js → choreo-gallery-guide-pages-test-rXDU9JLM.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-guides-test-Dra2J4LJ.js → choreo-gallery-guides-test-DfVFdIuU.js} +3 -3
- package/bundled-test-harness/assets/{choreo-gallery-hang-test-zzn1eiB-.js → choreo-gallery-hang-test-Cj7MbkFf.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-highlight-test-CW99hncQ.js → choreo-gallery-highlight-test-D6CF3IYZ.js} +2 -2
- package/bundled-test-harness/assets/{choreo-gallery-inline-edit-test-CYFm1kUz.js → choreo-gallery-inline-edit-test-LfHWsbqc.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-interruption-test-CYIBrKV9.js → choreo-gallery-interruption-test-CvQQAgTp.js} +2 -2
- package/bundled-test-harness/assets/{choreo-gallery-lone-stack-test-DL8R3SG7.js → choreo-gallery-lone-stack-test-D7Zci7fm.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-navigation-test-Dcv04kDx.js → choreo-gallery-navigation-test-DB1EnBEW.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-playhead-transport-test-Cfz7GsXl.js → choreo-gallery-playhead-transport-test-CtBlc6AJ.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-poplayout-subtree-test-CwoklBkW.js → choreo-gallery-poplayout-subtree-test-BQbmjsvI.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-presence-modes-test-BDCIZzJ0.js → choreo-gallery-presence-modes-test-CIdXVG1K.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-presentation-test-DlyiHwFf.js → choreo-gallery-presentation-test-C_rPFp29.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-reduced-motion-test-DVz5SKNR.js → choreo-gallery-reduced-motion-test-CH5w8Lw-.js} +2 -2
- package/bundled-test-harness/assets/{choreo-gallery-sheet-standalone-test-CpD_-BvS.js → choreo-gallery-sheet-standalone-test-CDgI4mGX.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-sheet-test-BjvAKHDL.js → choreo-gallery-sheet-test-5lsFX7Rk.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-site-test-oq_7y_PN.js → choreo-gallery-site-test-DbMa2xeC.js} +2 -2
- package/bundled-test-harness/assets/{choreo-gallery-stage-Bzr4_8Xd.js → choreo-gallery-stage-b3Sk86hp.js} +2 -2
- package/bundled-test-harness/assets/{choreo-gallery-stage-keyboard-test-a83d2euJ.js → choreo-gallery-stage-keyboard-test-ds6fT5Eg.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-stages-test-C9Sl1kH6.js → choreo-gallery-stages-test-ahioKCct.js} +2 -2
- package/bundled-test-harness/assets/{choreo-gallery-subdivision-test-BVVnkOwk.js → choreo-gallery-subdivision-test-g7anTDhT.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-table-plan-test-B0YdYEA0.js → choreo-gallery-table-plan-test-Bozc4uUf.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-theater-test-BLA147xw.js → choreo-gallery-theater-test-kE535d-b.js} +3 -3
- package/bundled-test-harness/assets/{choreo-gallery-tuning-test-DSXiNzCh.js → choreo-gallery-tuning-test-6rHkQBnZ.js} +1 -1
- package/bundled-test-harness/assets/{choreo-gallery-widget-room-test-BI574PdO.js → choreo-gallery-widget-room-test-0Vq-uTo1.js} +2 -2
- package/bundled-test-harness/assets/{choreo-gallery-wires-test-B6Mz2WZl.js → choreo-gallery-wires-test-CdtnAWYO.js} +1 -1
- package/bundled-test-harness/assets/clip-BLfuHi8g.js +2 -0
- package/bundled-test-harness/assets/{clip-C_pXjVvY.js → clip-q1QE5f73.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-6ZWftYIb.js → externals-BWjhmCD4.js} +12 -12
- 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/film-B68PjRlr.js +2 -0
- package/bundled-test-harness/assets/{film-D7vtJO5q.js → film-CeUpnHN_.js} +6 -6
- package/bundled-test-harness/assets/{film-DN0A8JHx.js → film-DBZqyqW4.js} +6 -6
- package/bundled-test-harness/assets/{general-test-CX-TFDuX.js → general-test-BewzrpoB.js} +1 -1
- package/bundled-test-harness/assets/{glimmer-motion-and-choreo-in-cards-test-BHte2t9G.js → glimmer-motion-and-choreo-in-cards-test-HA-INN3d.js} +14 -14
- package/bundled-test-harness/assets/{glimmer-motion-and-choreo-test-BPNVeIio.js → glimmer-motion-and-choreo-test-BZ0ZuuAw.js} +3 -3
- package/bundled-test-harness/assets/{index-query-engine-test-Dz7Q4Xmk.js → index-query-engine-test-BtI8Y2LR.js} +1 -1
- package/bundled-test-harness/assets/{instance-filter-matcher-test-BoLU3bVg.js → instance-filter-matcher-test-BHXHGHjE.js} +1 -1
- package/bundled-test-harness/assets/{main-Dlgp8c7v.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-B0KpI1xu.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/{overlays-BnOM360u.js → overlays-BOzLbVDK.js} +1 -1
- package/bundled-test-harness/assets/{overlays-kBVfa4i8.js → overlays-C_PuGDGh.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/{plate-CFvCDv2t.js → plate-BL7UtyKE.js} +1 -1
- package/bundled-test-harness/assets/plate-CqG3igCJ.js +2 -0
- package/bundled-test-harness/assets/player-BJfsgdSI.js +2 -0
- package/bundled-test-harness/assets/{player-DzuYjrTU.js → player-Da_CIsp_.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-BMyvn_UL.js → run-D4n4LPcK.js} +96 -6
- 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-BBr5BPow.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/{src-Df148w_b.js → src-B_DEhPze.js} +4 -4
- package/bundled-test-harness/assets/{src-Cf2wv-Le.js → src-BoTgwqUA.js} +2 -2
- package/bundled-test-harness/assets/{store-test-QvvHimzH.js → store-test-CEW7xQjZ.js} +1 -1
- package/bundled-test-harness/assets/{test-support-rNHuieEc.js → test-support-FXDPpIl3.js} +1 -1
- package/bundled-test-harness/assets/{test-support-C6N_2X-l.js → test-support-VX6ukQNR.js} +1 -1
- package/bundled-test-harness/assets/{tests-CmsQ-Z_3.js → tests-QYqqa6nv.js} +84 -84
- package/bundled-test-harness/assets/{text-input-validator-test-CYYH2N0L.js → text-input-validator-test-D8iNOWep.js} +1 -1
- package/bundled-test-harness/assets/{titles-B1pTaIfP.js → titles-DFJj5O0E.js} +1 -1
- package/bundled-test-harness/assets/titles-xGlgu7ys.js +2 -0
- 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/choreo/beacons.ts +16 -4
- package/bundled-types/choreo/changeset.ts +25 -5
- package/bundled-types/choreo/choreo.gts +245 -3
- package/bundled-types/choreo/far.ts +39 -0
- package/bundled-types/choreo/index.ts +2 -0
- package/bundled-types/choreo/run.ts +104 -1
- 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
- package/bundled-test-harness/assets/choreo-B3Z9QhDH.js +0 -2
- package/bundled-test-harness/assets/clip-BjcXuTwN.js +0 -2
- package/bundled-test-harness/assets/film-DMDPP7ma.js +0 -2
- package/bundled-test-harness/assets/plate-66qnQ-M9.js +0 -2
- package/bundled-test-harness/assets/player-pygg1PwA.js +0 -2
- package/bundled-test-harness/assets/titles-Ccpcl-jq.js +0 -2
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
// Pretui — SystemLine: a change to the conversation itself, said once in the thread.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { StateGlyph } from './state-glyph';
|
|
4
|
+
import { on } from '@ember/modifier';
|
|
5
|
+
|
|
6
|
+
export interface SystemLineSignature {
|
|
7
|
+
Args: {
|
|
8
|
+
/** what changed: 'Model set to GPT-5.6 Terra', 'Skills on: Showcase' */
|
|
9
|
+
text: string;
|
|
10
|
+
/** one character before it. Default '·' */
|
|
11
|
+
glyph?: string;
|
|
12
|
+
/** who changed it, when it was not the reader: 'the assistant',
|
|
13
|
+
* 'Rupert' */
|
|
14
|
+
by?: string;
|
|
15
|
+
/** 'line' (default), or 'checkpoint': a rule across the thread with
|
|
16
|
+
* the point's name on it, a place the session can go back to */
|
|
17
|
+
variant?: 'line' | 'checkpoint';
|
|
18
|
+
/** one verb on the line: Restore (a checkpoint), Switch back (a model
|
|
19
|
+
* fallback), Fix (a broken skill) */
|
|
20
|
+
action?: string;
|
|
21
|
+
onAction?: () => void;
|
|
22
|
+
/** dismiss a notice the reader has seen */
|
|
23
|
+
onDismiss?: () => void;
|
|
24
|
+
};
|
|
25
|
+
Element: HTMLParagraphElement;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* A model switch, a skill turned on, someone joining: facts about the
|
|
30
|
+
* room, not work, so they read as one caption line on the transcript's text
|
|
31
|
+
* edge between turns, never as a row.
|
|
32
|
+
*/
|
|
33
|
+
export class SystemLine extends Component<SystemLineSignature> {
|
|
34
|
+
act = () => this.args.onAction?.();
|
|
35
|
+
dismiss = () => this.args.onDismiss?.();
|
|
36
|
+
<template>
|
|
37
|
+
<p
|
|
38
|
+
class='pretui-systemline'
|
|
39
|
+
data-variant={{if @variant @variant 'line'}}
|
|
40
|
+
data-test-pretui-system-line
|
|
41
|
+
...attributes
|
|
42
|
+
>
|
|
43
|
+
<StateGlyph
|
|
44
|
+
class='pretui-systemline-glyph'
|
|
45
|
+
@glyph={{if @glyph @glyph '·'}}
|
|
46
|
+
@size={{11}}
|
|
47
|
+
/>
|
|
48
|
+
<span class='pretui-systemline-text'>{{@text}}{{#if @by}}<span
|
|
49
|
+
class='pretui-systemline-by'
|
|
50
|
+
> · by {{@by}}</span>{{/if}}</span>
|
|
51
|
+
{{#if @onAction}}<button
|
|
52
|
+
type='button'
|
|
53
|
+
class='pretui-systemline-act'
|
|
54
|
+
data-test-pretui-system-line-action
|
|
55
|
+
{{on 'click' this.act}}
|
|
56
|
+
>{{if @action @action 'Restore'}}</button>{{/if}}
|
|
57
|
+
{{#if @onDismiss}}<button
|
|
58
|
+
type='button'
|
|
59
|
+
class='pretui-systemline-act'
|
|
60
|
+
aria-label='Dismiss'
|
|
61
|
+
data-test-pretui-system-line-dismiss
|
|
62
|
+
{{on 'click' this.dismiss}}
|
|
63
|
+
><StateGlyph @glyph='failed' @size={{11}} /></button>{{/if}}
|
|
64
|
+
</p>
|
|
65
|
+
<style scoped>
|
|
66
|
+
@layer PretComponent {
|
|
67
|
+
.pretui-systemline {
|
|
68
|
+
display: grid;
|
|
69
|
+
grid-template-columns:
|
|
70
|
+
var(--pretui-toolrow-disc, 1rem) minmax(0, 1fr)
|
|
71
|
+
auto auto;
|
|
72
|
+
column-gap: var(--pretui-toolrow-gap, var(--boxel-sp-xs));
|
|
73
|
+
align-items: baseline;
|
|
74
|
+
margin: 0;
|
|
75
|
+
/* on the transcript's text edge; inside a row, the row's inset */
|
|
76
|
+
padding-inline: var(--pretui-toolrow-inset, 0);
|
|
77
|
+
font-size: var(--boxel-caption-font-size);
|
|
78
|
+
line-height: var(--boxel-caption-line-height);
|
|
79
|
+
color: var(--subtle-foreground);
|
|
80
|
+
}
|
|
81
|
+
.pretui-systemline-glyph {
|
|
82
|
+
text-align: center;
|
|
83
|
+
}
|
|
84
|
+
.pretui-systemline-text {
|
|
85
|
+
min-width: 0;
|
|
86
|
+
overflow-wrap: break-word;
|
|
87
|
+
}
|
|
88
|
+
/* a checkpoint is a rule across the thread with its name on it. A
|
|
89
|
+
flex row, not a grid, so the two rules take the slack on either
|
|
90
|
+
side of whatever sits between them: the name alone, or the name
|
|
91
|
+
with an action, a dismiss button or both, all on one line */
|
|
92
|
+
.pretui-systemline[data-variant='checkpoint'] {
|
|
93
|
+
display: flex;
|
|
94
|
+
align-items: center;
|
|
95
|
+
column-gap: var(--boxel-sp-xs);
|
|
96
|
+
}
|
|
97
|
+
.pretui-systemline[data-variant='checkpoint']::before,
|
|
98
|
+
.pretui-systemline[data-variant='checkpoint']::after {
|
|
99
|
+
content: '';
|
|
100
|
+
flex: 1 1 var(--boxel-sp-sm);
|
|
101
|
+
min-width: var(--boxel-sp-sm);
|
|
102
|
+
height: 1px;
|
|
103
|
+
background-color: var(--border);
|
|
104
|
+
}
|
|
105
|
+
.pretui-systemline[data-variant='checkpoint'] .pretui-systemline-glyph {
|
|
106
|
+
display: none;
|
|
107
|
+
}
|
|
108
|
+
/* a 24px target (WCAG 2.5.8) inside a caption line: the negative
|
|
109
|
+
block margin gives back what the height adds, so the line keeps
|
|
110
|
+
its caption height */
|
|
111
|
+
.pretui-systemline-act {
|
|
112
|
+
--_systemline-target: 1.5rem;
|
|
113
|
+
display: inline-flex;
|
|
114
|
+
align-items: center;
|
|
115
|
+
justify-content: center;
|
|
116
|
+
min-width: var(--_systemline-target);
|
|
117
|
+
min-height: var(--_systemline-target);
|
|
118
|
+
margin-block: calc((1lh - var(--_systemline-target)) / 2);
|
|
119
|
+
padding: 0 var(--boxel-sp-4xs);
|
|
120
|
+
border: 0;
|
|
121
|
+
border-radius: var(--boxel-border-radius-xs);
|
|
122
|
+
background-color: transparent;
|
|
123
|
+
font-family: inherit;
|
|
124
|
+
font-size: inherit;
|
|
125
|
+
line-height: inherit;
|
|
126
|
+
font-weight: 600;
|
|
127
|
+
color: var(--muted-foreground);
|
|
128
|
+
cursor: pointer;
|
|
129
|
+
}
|
|
130
|
+
.pretui-systemline-act:hover {
|
|
131
|
+
color: var(--primary-ink);
|
|
132
|
+
}
|
|
133
|
+
.pretui-systemline-act:focus-visible {
|
|
134
|
+
outline: 2px solid var(--ring);
|
|
135
|
+
outline-offset: 1px;
|
|
136
|
+
}
|
|
137
|
+
.pretui-systemline-by {
|
|
138
|
+
color: var(--muted-foreground);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
</style>
|
|
142
|
+
</template>
|
|
143
|
+
}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
// Pretui — TaskChecklist: what the agent is doing now, over the plan it is working through.
|
|
2
|
+
import Component from '@glimmer/component';
|
|
3
|
+
import { on } from '@ember/modifier';
|
|
4
|
+
import ChevronRightIcon from '@cardstack/boxel-icons/chevron-right';
|
|
5
|
+
import { ToolPlan } from './tool-plan';
|
|
6
|
+
import type { ToolPlanStep } from './tool-plan';
|
|
7
|
+
|
|
8
|
+
export interface TaskChecklistSignature {
|
|
9
|
+
Args: {
|
|
10
|
+
steps: ToolPlanStep[];
|
|
11
|
+
/** what the agent is doing this moment, in its own words: "Fixing the
|
|
12
|
+
* regex lint error; read host approval test". Shimmers while it runs */
|
|
13
|
+
activity?: string;
|
|
14
|
+
/** open the activity's detail (the call it is making). Omit and the
|
|
15
|
+
* line is plain text */
|
|
16
|
+
onActivity?: () => void;
|
|
17
|
+
/** the run is still going. Default: a step is under way */
|
|
18
|
+
running?: boolean;
|
|
19
|
+
/** the list's accessible name. Default 'Tasks' */
|
|
20
|
+
label?: string;
|
|
21
|
+
};
|
|
22
|
+
Element: HTMLElement;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* The plan the agent keeps while it works, as the reader follows it: the
|
|
27
|
+
* thing it is doing now on one line, then every step with its mark — a
|
|
28
|
+
* soft tick for done, a thin turning ring for the one under way, a dashed
|
|
29
|
+
* circle for what is left. Steps finish in any order; a done step steps
|
|
30
|
+
* back in ink so the eye lands on the work still to do. One soft card, no
|
|
31
|
+
* stripe.
|
|
32
|
+
*/
|
|
33
|
+
export class TaskChecklist extends Component<TaskChecklistSignature> {
|
|
34
|
+
get running(): boolean {
|
|
35
|
+
return (
|
|
36
|
+
this.args.running ??
|
|
37
|
+
this.args.steps.some((step) => step.state === 'current')
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
get done(): number {
|
|
41
|
+
return this.args.steps.filter((step) => step.state === 'done').length;
|
|
42
|
+
}
|
|
43
|
+
get summary(): string {
|
|
44
|
+
return `${this.done} of ${this.args.steps.length} done`;
|
|
45
|
+
}
|
|
46
|
+
activity = () => this.args.onActivity?.();
|
|
47
|
+
<template>
|
|
48
|
+
<section
|
|
49
|
+
class='pretui-checklist'
|
|
50
|
+
data-running={{if this.running 'true'}}
|
|
51
|
+
aria-label={{if @label @label 'Tasks'}}
|
|
52
|
+
data-test-pretui-task-checklist
|
|
53
|
+
...attributes
|
|
54
|
+
>
|
|
55
|
+
{{#if @activity}}
|
|
56
|
+
{{#if @onActivity}}
|
|
57
|
+
<button
|
|
58
|
+
type='button'
|
|
59
|
+
class='pretui-checklist-activity'
|
|
60
|
+
data-test-pretui-task-checklist-activity
|
|
61
|
+
{{on 'click' this.activity}}
|
|
62
|
+
>
|
|
63
|
+
<span class='pretui-checklist-activity-text'>{{@activity}}</span>
|
|
64
|
+
<ChevronRightIcon
|
|
65
|
+
class='pretui-checklist-chevron'
|
|
66
|
+
width='14'
|
|
67
|
+
height='14'
|
|
68
|
+
/>
|
|
69
|
+
</button>
|
|
70
|
+
{{else}}
|
|
71
|
+
<p
|
|
72
|
+
class='pretui-checklist-activity'
|
|
73
|
+
data-test-pretui-task-checklist-activity
|
|
74
|
+
>
|
|
75
|
+
<span class='pretui-checklist-activity-text'>{{@activity}}</span>
|
|
76
|
+
</p>
|
|
77
|
+
{{/if}}
|
|
78
|
+
{{/if}}
|
|
79
|
+
<div class='pretui-checklist-card'>
|
|
80
|
+
<ToolPlan
|
|
81
|
+
@steps={{@steps}}
|
|
82
|
+
@density='comfortable'
|
|
83
|
+
@label={{if @label @label 'Tasks'}}
|
|
84
|
+
/>
|
|
85
|
+
<span
|
|
86
|
+
class='pretui-checklist-summary'
|
|
87
|
+
role='status'
|
|
88
|
+
data-test-pretui-task-checklist-summary
|
|
89
|
+
>{{this.summary}}</span>
|
|
90
|
+
</div>
|
|
91
|
+
</section>
|
|
92
|
+
<style scoped>
|
|
93
|
+
@layer PretComponent {
|
|
94
|
+
.pretui-checklist {
|
|
95
|
+
display: grid;
|
|
96
|
+
gap: var(--boxel-sp-xs);
|
|
97
|
+
min-width: 0;
|
|
98
|
+
}
|
|
99
|
+
.pretui-checklist-activity {
|
|
100
|
+
display: inline-flex;
|
|
101
|
+
align-items: center;
|
|
102
|
+
gap: var(--boxel-sp-4xs);
|
|
103
|
+
justify-self: start;
|
|
104
|
+
max-width: 100%;
|
|
105
|
+
margin: 0;
|
|
106
|
+
padding: 0;
|
|
107
|
+
border: 0;
|
|
108
|
+
background-color: transparent;
|
|
109
|
+
font-family: inherit;
|
|
110
|
+
font-size: var(--boxel-ui-label-font-size);
|
|
111
|
+
line-height: var(--boxel-ui-label-line-height);
|
|
112
|
+
text-align: start;
|
|
113
|
+
color: var(--muted-foreground);
|
|
114
|
+
}
|
|
115
|
+
button.pretui-checklist-activity {
|
|
116
|
+
cursor: pointer;
|
|
117
|
+
}
|
|
118
|
+
button.pretui-checklist-activity:hover {
|
|
119
|
+
color: var(--foreground);
|
|
120
|
+
}
|
|
121
|
+
button.pretui-checklist-activity:focus-visible {
|
|
122
|
+
outline: 2px solid var(--ring);
|
|
123
|
+
outline-offset: 2px;
|
|
124
|
+
border-radius: var(--boxel-border-radius-xs);
|
|
125
|
+
}
|
|
126
|
+
.pretui-checklist-activity-text {
|
|
127
|
+
min-width: 0;
|
|
128
|
+
overflow: hidden;
|
|
129
|
+
white-space: nowrap;
|
|
130
|
+
text-overflow: ellipsis;
|
|
131
|
+
}
|
|
132
|
+
/* while it runs, the line's tail shimmers as TextShimmer does */
|
|
133
|
+
.pretui-checklist[data-running] .pretui-checklist-activity-text {
|
|
134
|
+
background: linear-gradient(
|
|
135
|
+
90deg,
|
|
136
|
+
var(--muted-foreground) 0%,
|
|
137
|
+
var(--muted-foreground) 40%,
|
|
138
|
+
var(--foreground) 50%,
|
|
139
|
+
var(--muted-foreground) 60%,
|
|
140
|
+
var(--muted-foreground) 100%
|
|
141
|
+
)
|
|
142
|
+
0 0 / 300% 100%;
|
|
143
|
+
-webkit-background-clip: text;
|
|
144
|
+
background-clip: text;
|
|
145
|
+
color: transparent;
|
|
146
|
+
animation: pretui-checklist-shimmer 2.4s linear infinite;
|
|
147
|
+
}
|
|
148
|
+
@keyframes pretui-checklist-shimmer {
|
|
149
|
+
from {
|
|
150
|
+
background-position: 100% 0;
|
|
151
|
+
}
|
|
152
|
+
to {
|
|
153
|
+
background-position: 0% 0;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
@media (prefers-reduced-motion: reduce) {
|
|
157
|
+
.pretui-checklist[data-running] .pretui-checklist-activity-text {
|
|
158
|
+
animation: none;
|
|
159
|
+
background-image: none;
|
|
160
|
+
color: var(--muted-foreground);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
.pretui-checklist-chevron {
|
|
164
|
+
flex: none;
|
|
165
|
+
}
|
|
166
|
+
.pretui-checklist-card {
|
|
167
|
+
padding: var(--boxel-sp-sm);
|
|
168
|
+
border-radius: var(--boxel-border-radius-lg);
|
|
169
|
+
box-shadow: inset 0 0 0 1px var(--border);
|
|
170
|
+
background-color: var(--card);
|
|
171
|
+
}
|
|
172
|
+
/* the count is for a screen reader; the marks say it to the eye */
|
|
173
|
+
.pretui-checklist-summary {
|
|
174
|
+
position: absolute;
|
|
175
|
+
width: 1px;
|
|
176
|
+
height: 1px;
|
|
177
|
+
overflow: hidden;
|
|
178
|
+
clip-path: inset(50%);
|
|
179
|
+
white-space: nowrap;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
</style>
|
|
183
|
+
</template>
|
|
184
|
+
}
|
|
@@ -3,6 +3,10 @@ import Component from '@glimmer/component';
|
|
|
3
3
|
import { tracked } from '@glimmer/tracking';
|
|
4
4
|
import { on } from '@ember/modifier';
|
|
5
5
|
import { guidFor } from '@ember/object/internals';
|
|
6
|
+
import CheckIcon from '@cardstack/boxel-icons/check';
|
|
7
|
+
import ChevronDownIcon from '@cardstack/boxel-icons/chevron-down';
|
|
8
|
+
import SearchIcon from '@cardstack/boxel-icons/search';
|
|
9
|
+
import SparklesIcon from '@cardstack/boxel-icons/sparkles';
|
|
6
10
|
import { Spinner } from './spinner';
|
|
7
11
|
import { cssStyleFrom } from '../pretui-css';
|
|
8
12
|
import { Collapse } from '../internal/agentic-chat';
|
|
@@ -130,35 +134,26 @@ export class Thinking extends Component<ThinkingSignature> {
|
|
|
130
134
|
data-test-pretui-thinking-toggle
|
|
131
135
|
{{on 'click' this.toggle}}
|
|
132
136
|
>
|
|
133
|
-
<
|
|
137
|
+
<SparklesIcon
|
|
134
138
|
class='pretui-trace-spark'
|
|
135
|
-
|
|
139
|
+
width='15'
|
|
140
|
+
height='15'
|
|
136
141
|
aria-hidden='true'
|
|
137
|
-
|
|
138
|
-
>
|
|
139
|
-
<path d='M12 2l2.4 7.2L22 12l-7.6 2.8L12 22l-2.4-7.2L2 12l7.6-2.8z' />
|
|
140
|
-
</svg>
|
|
142
|
+
/>
|
|
141
143
|
{{#if this.working}}
|
|
142
|
-
<span
|
|
144
|
+
<span
|
|
145
|
+
class='pretui-trace-label'
|
|
146
|
+
data-shimmer='true'
|
|
143
147
|
>{{this.label}}</span>
|
|
144
148
|
{{else}}
|
|
145
149
|
<span class='pretui-trace-label'>{{this.doneLabel}}</span>
|
|
146
150
|
{{/if}}
|
|
147
|
-
<
|
|
151
|
+
<ChevronDownIcon
|
|
148
152
|
class='pretui-trace-chev'
|
|
149
|
-
|
|
153
|
+
width='14'
|
|
154
|
+
height='14'
|
|
150
155
|
aria-hidden='true'
|
|
151
|
-
|
|
152
|
-
>
|
|
153
|
-
<path
|
|
154
|
-
d='M6 9l6 6 6-6'
|
|
155
|
-
fill='none'
|
|
156
|
-
stroke='currentColor'
|
|
157
|
-
stroke-width='2.2'
|
|
158
|
-
stroke-linecap='round'
|
|
159
|
-
stroke-linejoin='round'
|
|
160
|
-
/>
|
|
161
|
-
</svg>
|
|
156
|
+
/>
|
|
162
157
|
</button>
|
|
163
158
|
{{! the state change announces once, politely, from outside the button }}
|
|
164
159
|
<span class='pretui-sr' role='status'>{{if
|
|
@@ -171,23 +166,7 @@ export class Thinking extends Component<ThinkingSignature> {
|
|
|
171
166
|
<div class='pretui-trace-rail' data-open={{if this.expanded 'true'}}>
|
|
172
167
|
{{#if @query}}
|
|
173
168
|
<div class='pretui-trace-row' data-kind='query'>
|
|
174
|
-
<
|
|
175
|
-
<circle
|
|
176
|
-
cx='11'
|
|
177
|
-
cy='11'
|
|
178
|
-
r='7'
|
|
179
|
-
fill='none'
|
|
180
|
-
stroke='currentColor'
|
|
181
|
-
stroke-width='2'
|
|
182
|
-
/>
|
|
183
|
-
<path
|
|
184
|
-
d='M21 21l-4.3-4.3'
|
|
185
|
-
fill='none'
|
|
186
|
-
stroke='currentColor'
|
|
187
|
-
stroke-width='2'
|
|
188
|
-
stroke-linecap='round'
|
|
189
|
-
/>
|
|
190
|
-
</svg>
|
|
169
|
+
<SearchIcon width='13' height='13' aria-hidden='true' />
|
|
191
170
|
<span class='pretui-trace-primary'>{{@query}}</span>
|
|
192
171
|
</div>
|
|
193
172
|
{{/if}}
|
|
@@ -196,21 +175,12 @@ export class Thinking extends Component<ThinkingSignature> {
|
|
|
196
175
|
{{#if row.isRunning}}
|
|
197
176
|
<Spinner @size={{11}} />
|
|
198
177
|
{{else if row.isDone}}
|
|
199
|
-
<
|
|
178
|
+
<CheckIcon
|
|
200
179
|
class='pretui-trace-check'
|
|
201
|
-
|
|
180
|
+
width='13'
|
|
181
|
+
height='13'
|
|
202
182
|
aria-hidden='true'
|
|
203
|
-
|
|
204
|
-
>
|
|
205
|
-
<path
|
|
206
|
-
d='M20 6L9 17l-5-5'
|
|
207
|
-
fill='none'
|
|
208
|
-
stroke='currentColor'
|
|
209
|
-
stroke-width='2.5'
|
|
210
|
-
stroke-linecap='round'
|
|
211
|
-
stroke-linejoin='round'
|
|
212
|
-
/>
|
|
213
|
-
</svg>
|
|
183
|
+
/>
|
|
214
184
|
{{/if}}
|
|
215
185
|
<span
|
|
216
186
|
class='pretui-trace-primary'
|
|
@@ -238,7 +208,8 @@ export class Thinking extends Component<ThinkingSignature> {
|
|
|
238
208
|
<style scoped>
|
|
239
209
|
@layer PretComponent {
|
|
240
210
|
.pretui-trace {
|
|
241
|
-
font-size: var(--
|
|
211
|
+
font-size: var(--boxel-ui-label-font-size);
|
|
212
|
+
line-height: var(--boxel-ui-label-line-height);
|
|
242
213
|
}
|
|
243
214
|
.pretui-sr {
|
|
244
215
|
position: absolute;
|
|
@@ -251,35 +222,33 @@ export class Thinking extends Component<ThinkingSignature> {
|
|
|
251
222
|
.pretui-trace-head {
|
|
252
223
|
display: inline-flex;
|
|
253
224
|
align-items: center;
|
|
254
|
-
gap:
|
|
255
|
-
min-height:
|
|
256
|
-
padding:
|
|
257
|
-
margin: -
|
|
225
|
+
gap: var(--boxel-sp-xs);
|
|
226
|
+
min-height: 1.75rem;
|
|
227
|
+
padding: var(--boxel-sp-4xs) var(--boxel-sp-xs);
|
|
228
|
+
margin: calc(-1 * var(--boxel-sp-4xs)) calc(-1 * var(--boxel-sp-xs));
|
|
258
229
|
border: 0;
|
|
259
|
-
border-radius:
|
|
260
|
-
background:
|
|
261
|
-
font: inherit;
|
|
230
|
+
border-radius: var(--boxel-border-radius-sm);
|
|
231
|
+
background-color: transparent;
|
|
232
|
+
font-family: inherit;
|
|
262
233
|
color: var(--muted-foreground);
|
|
263
234
|
cursor: pointer;
|
|
264
235
|
}
|
|
265
236
|
.pretui-trace-head:hover {
|
|
266
|
-
background: var(--hover
|
|
237
|
+
background-color: var(--hover);
|
|
267
238
|
}
|
|
268
239
|
.pretui-trace-head:focus-visible {
|
|
269
240
|
outline: 2px solid var(--ring);
|
|
270
241
|
outline-offset: 1px;
|
|
271
242
|
}
|
|
272
243
|
.pretui-trace-spark {
|
|
273
|
-
width: 15px;
|
|
274
|
-
height: 15px;
|
|
275
244
|
flex: none;
|
|
276
|
-
|
|
245
|
+
color: var(--subtle-foreground);
|
|
277
246
|
}
|
|
278
247
|
.pretui-trace-head[data-working] .pretui-trace-spark {
|
|
279
|
-
|
|
248
|
+
color: var(--muted-foreground);
|
|
280
249
|
}
|
|
281
250
|
.pretui-trace-label {
|
|
282
|
-
font-weight:
|
|
251
|
+
font-weight: 600;
|
|
283
252
|
}
|
|
284
253
|
/* Law 5: the sweep says "still going" and nothing else animates */
|
|
285
254
|
.pretui-trace-label[data-shimmer] {
|
|
@@ -304,10 +273,8 @@ export class Thinking extends Component<ThinkingSignature> {
|
|
|
304
273
|
}
|
|
305
274
|
}
|
|
306
275
|
.pretui-trace-chev {
|
|
307
|
-
width: 14px;
|
|
308
|
-
height: 14px;
|
|
309
276
|
flex: none;
|
|
310
|
-
color: var(--
|
|
277
|
+
color: var(--subtle-foreground);
|
|
311
278
|
transition: transform 300ms
|
|
312
279
|
var(--pretui-ease-enter, cubic-bezier(0.22, 0.61, 0.25, 1));
|
|
313
280
|
}
|
|
@@ -316,79 +283,81 @@ export class Thinking extends Component<ThinkingSignature> {
|
|
|
316
283
|
}
|
|
317
284
|
.pretui-trace-rail {
|
|
318
285
|
position: relative;
|
|
319
|
-
margin:
|
|
320
|
-
padding-left:
|
|
286
|
+
margin: var(--boxel-sp-3xs) 0 0 var(--boxel-sp-3xs);
|
|
287
|
+
padding-left: var(--boxel-sp);
|
|
321
288
|
display: flex;
|
|
322
289
|
flex-direction: column;
|
|
323
|
-
gap:
|
|
290
|
+
gap: var(--boxel-sp-6xs);
|
|
324
291
|
}
|
|
325
292
|
.pretui-trace-rail::before {
|
|
326
293
|
content: '';
|
|
327
294
|
position: absolute;
|
|
328
|
-
left:
|
|
329
|
-
top:
|
|
330
|
-
bottom:
|
|
295
|
+
left: var(--boxel-sp-5xs);
|
|
296
|
+
top: var(--boxel-sp-4xs);
|
|
297
|
+
bottom: var(--boxel-sp-3xs);
|
|
331
298
|
width: 1px;
|
|
332
|
-
background: var(--border);
|
|
299
|
+
background-color: var(--border);
|
|
333
300
|
}
|
|
334
301
|
.pretui-trace-row {
|
|
335
302
|
display: flex;
|
|
336
303
|
align-items: center;
|
|
337
|
-
gap:
|
|
338
|
-
min-height:
|
|
339
|
-
padding:
|
|
340
|
-
border-radius:
|
|
304
|
+
gap: var(--boxel-sp-xs);
|
|
305
|
+
min-height: 1.625rem;
|
|
306
|
+
padding: var(--boxel-sp-6xs) var(--boxel-sp-xs);
|
|
307
|
+
border-radius: var(--boxel-border-radius-sm);
|
|
341
308
|
color: var(--foreground);
|
|
342
309
|
}
|
|
343
310
|
.pretui-trace-row:hover {
|
|
344
|
-
background: var(--hover
|
|
311
|
+
background-color: var(--hover);
|
|
345
312
|
}
|
|
346
313
|
.pretui-trace-row[data-kind='query'] {
|
|
347
314
|
color: var(--muted-foreground);
|
|
348
315
|
}
|
|
349
316
|
.pretui-trace-row > svg {
|
|
350
|
-
width: 13px;
|
|
351
|
-
height: 13px;
|
|
352
317
|
flex: none;
|
|
353
318
|
}
|
|
354
319
|
.pretui-trace-check {
|
|
355
|
-
color: var(--
|
|
320
|
+
color: var(--subtle-foreground);
|
|
356
321
|
}
|
|
357
322
|
.pretui-trace-primary {
|
|
358
323
|
min-width: 0;
|
|
359
324
|
overflow: hidden;
|
|
360
325
|
text-overflow: ellipsis;
|
|
361
326
|
white-space: nowrap;
|
|
362
|
-
font-weight:
|
|
327
|
+
font-weight: 400;
|
|
363
328
|
}
|
|
364
329
|
.pretui-trace-primary[data-wrap] {
|
|
365
330
|
white-space: normal;
|
|
366
|
-
font-weight: 400;
|
|
367
|
-
line-height: 1.55;
|
|
368
331
|
color: var(--muted-foreground);
|
|
369
332
|
}
|
|
370
333
|
.pretui-trace-sec {
|
|
371
334
|
margin-left: auto;
|
|
372
335
|
flex: none;
|
|
373
|
-
font-size: var(--
|
|
374
|
-
|
|
336
|
+
font-size: var(--boxel-caption-font-size);
|
|
337
|
+
line-height: var(--boxel-caption-line-height);
|
|
338
|
+
font-variant-numeric: tabular-nums;
|
|
339
|
+
color: var(--subtle-foreground);
|
|
375
340
|
}
|
|
341
|
+
/* a machine value is a pasteable string: mono at the data size */
|
|
376
342
|
.pretui-trace-sec[data-mono] {
|
|
377
343
|
font-family: var(--font-mono);
|
|
344
|
+
font-size: var(--boxel-font-size-xs);
|
|
345
|
+
line-height: var(--boxel-line-height-xs);
|
|
378
346
|
}
|
|
347
|
+
/* the counts are figures, not strings to paste: sans, tabular */
|
|
379
348
|
.pretui-trace-diff {
|
|
380
349
|
flex: none;
|
|
381
350
|
display: inline-flex;
|
|
382
|
-
gap:
|
|
383
|
-
font-
|
|
384
|
-
|
|
351
|
+
gap: var(--boxel-sp-4xs);
|
|
352
|
+
font-size: var(--boxel-caption-font-size);
|
|
353
|
+
line-height: var(--boxel-caption-line-height);
|
|
385
354
|
font-variant-numeric: tabular-nums;
|
|
386
355
|
}
|
|
387
356
|
.pretui-trace-add {
|
|
388
|
-
color: var(--success
|
|
357
|
+
color: var(--success-ink);
|
|
389
358
|
}
|
|
390
359
|
.pretui-trace-del {
|
|
391
|
-
color: var(--
|
|
360
|
+
color: var(--destructive-ink);
|
|
392
361
|
}
|
|
393
362
|
/* the stagger is a precomputed delay, retriggered by the open flip.
|
|
394
363
|
The flag lives on the rail, not on Collapse's own element: a
|
|
@@ -403,7 +372,7 @@ export class Thinking extends Component<ThinkingSignature> {
|
|
|
403
372
|
@keyframes pretui-trace-in {
|
|
404
373
|
from {
|
|
405
374
|
opacity: 0;
|
|
406
|
-
transform: translateY(
|
|
375
|
+
transform: translateY(var(--boxel-sp-4xs));
|
|
407
376
|
}
|
|
408
377
|
to {
|
|
409
378
|
opacity: 1;
|
|
@@ -413,7 +382,7 @@ export class Thinking extends Component<ThinkingSignature> {
|
|
|
413
382
|
@media (prefers-reduced-motion: reduce) {
|
|
414
383
|
.pretui-trace-label[data-shimmer] {
|
|
415
384
|
animation: none;
|
|
416
|
-
background: none;
|
|
385
|
+
background-image: none;
|
|
417
386
|
-webkit-background-clip: border-box;
|
|
418
387
|
background-clip: border-box;
|
|
419
388
|
color: var(--foreground);
|