@uniqbit/mate-core 0.18.4 → 1.0.0-canary.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/claude-plugin/hooks/companion-instructions.mjs +9 -0
- package/claude-plugin/hooks/hooks.json +12 -2
- package/opencode-plugin/src/add-dir.ts +76 -10
- package/opencode-plugin/src/companion.ts +1 -8
- package/opencode-plugin/src/server.ts +2 -15
- package/package.json +10 -2
- package/src/brand/art.generated.ts +69 -0
- package/src/brand/index.ts +12 -0
- package/src/brand/palette.ts +19 -0
- package/src/brand/svg.generated.ts +8 -0
- package/src/brand/terminal.ts +83 -0
- package/src/brand/types.ts +33 -0
- package/src/cli/commands/artifact/artifact.ts +8 -0
- package/src/cli/commands/artifact/delivery/archive.ts +117 -0
- package/src/cli/commands/artifact/delivery/branch-flags.ts +55 -0
- package/src/cli/commands/artifact/delivery/environment.ts +104 -0
- package/src/cli/commands/artifact/delivery/link.ts +154 -0
- package/src/cli/commands/artifact/delivery/output.ts +58 -0
- package/src/cli/commands/artifact/finish/command.ts +33 -3
- package/src/cli/commands/artifact/finish/engine.ts +47 -3
- package/src/cli/commands/artifact/finish/finisher.ts +10 -0
- package/src/cli/commands/artifact/finish/openspec.ts +200 -129
- package/src/cli/commands/artifact/finish/secret-scan.ts +43 -0
- package/src/cli/commands/artifact/pending/command.ts +31 -3
- package/src/cli/commands/artifact/pending/discovery.ts +21 -57
- package/src/cli/commands/cap/graphify.ts +52 -3
- package/src/cli/commands/cap/index-cmd.ts +8 -1
- package/src/cli/commands/cap/openspec.ts +13 -25
- package/src/cli/commands/companion/open.ts +56 -39
- package/src/cli/commands/companion/update.ts +75 -42
- package/src/cli/commands/doctor.ts +257 -78
- package/src/cli/commands/install.ts +0 -8
- package/src/cli/commands/plugin/install.ts +9 -4
- package/src/cli/commands/plugin/plugin.ts +3 -2
- package/src/cli/commands/report/adapter.ts +11 -2
- package/src/cli/commands/report/contract.ts +21 -0
- package/src/cli/commands/report/highlight.ts +34 -4
- package/src/cli/commands/report/markdown.ts +110 -0
- package/src/cli/commands/report/palette.ts +118 -0
- package/src/cli/commands/report/renderer.ts +456 -153
- package/src/cli/commands/report/types.ts +16 -0
- package/src/cli/commands/setup.ts +7 -15
- package/src/cli/commands/studio/client-asset.ts +16 -0
- package/src/cli/commands/studio/openspec-cli.ts +10 -58
- package/src/cli/commands/studio/routes.ts +2 -0
- package/src/cli/commands/studio/selection.ts +19 -1
- package/src/cli/commands/studio/server.ts +42 -1
- package/src/cli/commands/studio/terminal-launch.ts +7 -16
- package/src/cli/commands/studio/views/client.ts +6 -616
- package/src/cli/commands/studio/views/dashboard/changes.tsx +5 -10
- package/src/cli/commands/studio/views/document.tsx +137 -69
- package/src/cli/commands/studio/views/markdown.tsx +250 -0
- package/src/cli/commands/studio/views/palette.ts +134 -0
- package/src/cli/commands/studio/views/reports/index.tsx +2 -7
- package/src/cli/commands/studio/views/skills/index.tsx +43 -62
- package/src/cli/commands/studio/views/specs/index.tsx +7 -15
- package/src/cli/commands/studio/views/studio-client/actions.ts +51 -0
- package/src/cli/commands/studio/views/studio-client/companion.ts +13 -0
- package/src/cli/commands/studio/views/studio-client/index.ts +32 -0
- package/src/cli/commands/studio/views/studio-client/keys.ts +3 -0
- package/src/cli/commands/studio/views/studio-client/main.ts +3 -0
- package/src/cli/commands/studio/views/studio-client/page.ts +146 -0
- package/src/cli/commands/studio/views/studio-client/panels.ts +57 -0
- package/src/cli/commands/studio/views/studio-client/reports.ts +122 -0
- package/src/cli/commands/studio/views/studio-client/theme.ts +63 -0
- package/src/cli/commands/studio/views/studio-client/vault-editor.ts +166 -0
- package/src/cli/commands/studio/views/studio-client/vault-pane.ts +202 -0
- package/src/cli/commands/studio/views/studio-client/vault-tree.ts +258 -0
- package/src/cli/commands/studio/views/studio-client.generated.ts +2 -0
- package/src/cli/commands/studio/views/styles.ts +217 -206
- package/src/cli/commands/studio/views/vault/state.ts +3 -5
- package/src/cli/commands/studio/views/workflow/delivery-path.tsx +370 -0
- package/src/cli/commands/studio/views/workflow/graph.ts +220 -0
- package/src/cli/commands/studio/views/workflow/index.tsx +2 -3
- package/src/cli/commands/studio/views/workflow/steps.ts +228 -287
- package/src/cli/commands/wrap.ts +9 -42
- package/src/cli/main.ts +4 -1
- package/src/cli/parse-flags.ts +25 -7
- package/src/cli/setup-selector.tsx +38 -162
- package/src/cli/usage.ts +5 -2
- package/src/hooks/companion-instructions.ts +190 -0
- package/src/hooks/hook-io.ts +63 -0
- package/src/hooks/session-banner.ts +21 -29
- package/src/hooks/session-guidance.ts +10 -36
- package/src/hooks/session-prepare.ts +115 -28
- package/src/hooks/validate-artifact-path.ts +82 -24
- package/src/index.ts +4 -0
- package/src/lib/change-layout.ts +154 -0
- package/src/lib/components/wizard-header.tsx +3 -1
- package/src/lib/context-mode-package.ts +24 -11
- package/src/lib/delivery/archive-change.ts +154 -0
- package/src/lib/delivery/branches.ts +108 -0
- package/src/lib/delivery/environment.ts +29 -0
- package/src/lib/delivery/forge.ts +279 -0
- package/src/lib/delivery/overlap.ts +202 -0
- package/src/lib/delivery/record-delivery.ts +196 -0
- package/src/lib/delivery/record.ts +343 -0
- package/src/lib/delivery/refresh.ts +174 -0
- package/src/lib/delivery/repository-access.ts +97 -0
- package/src/lib/delivery/stages.ts +111 -0
- package/src/lib/delivery/token.ts +58 -0
- package/src/lib/frontmatter.ts +18 -0
- package/src/lib/opencode-plugin-package.ts +5 -5
- package/src/lib/openspec-cli.ts +116 -0
- package/src/lib/openspec-scopes.ts +86 -0
- package/src/lib/orchestrator/adapters/claude-args.ts +50 -0
- package/src/lib/orchestrator/adapters/claude.ts +60 -162
- package/src/lib/orchestrator/adapters/opencode.ts +9 -24
- package/src/lib/orchestrator/config-store.ts +2 -70
- package/src/lib/orchestrator/editor.ts +9 -9
- package/src/lib/orchestrator/openspec-store.ts +14 -54
- package/src/lib/orchestrator/projection-claude-commands.ts +36 -0
- package/src/lib/orchestrator/projection-claude-links.ts +159 -0
- package/src/lib/orchestrator/projection-claude-skills.ts +19 -190
- package/src/lib/orchestrator/projection-entries.ts +45 -15
- package/src/lib/orchestrator/projection-runtime-documents.ts +15 -6
- package/src/lib/orchestrator/projection-types.ts +3 -2
- package/src/lib/orchestrator/refresh-working-claude-links.ts +87 -0
- package/src/lib/orchestrator/session-prepare.ts +49 -87
- package/src/lib/orchestrator/setup-compatibilities.ts +18 -75
- package/src/lib/orchestrator/types.ts +2 -2
- package/src/lib/orchestrator/wrap-pass.ts +22 -88
- package/src/lib/package-paths.ts +8 -0
- package/src/opencode/companion-hooks.ts +64 -5
- package/src/opencode/companion-policy.ts +37 -18
- package/src/opencode/projected-guidance.ts +4 -1
- package/src/opencode/session-prepare.ts +2 -1
- package/src/opencode/tui.tsx +4 -2
- package/src/runtime/artifact-refusal.ts +63 -0
- package/src/runtime/claude-delivery-plan.ts +89 -7
- package/src/runtime/commit-attribution-guard.ts +181 -0
- package/src/runtime/companion-guidance.ts +15 -3
- package/src/runtime/companion-instructions.ts +340 -0
- package/src/runtime/error-message.ts +4 -0
- package/src/runtime/guidance.ts +0 -17
- package/src/runtime/index.ts +5 -0
- package/src/runtime/managed-block.ts +117 -0
- package/src/runtime/markdown-scan.ts +266 -0
- package/src/runtime/policy.ts +16 -15
- package/src/runtime/projected-flag.ts +7 -0
- package/src/runtime/projected-guidance.ts +1 -0
- package/src/runtime/runtime-document-manifest.ts +62 -28
- package/src/runtime/secret-guard.ts +148 -0
- package/src/runtime/secret-patterns.ts +164 -0
- package/src/runtime/secret-scan.ts +90 -0
- package/src/runtime/session-kind.ts +13 -0
- package/src/runtime/shell-heredoc.ts +81 -0
- package/src/runtime/wrap-state.ts +36 -6
- package/src/runtime/write-atomic.ts +64 -0
- package/src/templates/capabilities/openspec-cap/mate-minimal/schema.yaml +8 -6
- package/src/templates/capabilities/openspec-cap/mate-minimal/templates/spec.md +3 -5
- package/src/templates/capabilities/openspec-cap/mate-v1/schema.yaml +7 -9
- package/src/templates/capabilities/openspec-cap/mate-v1/templates/spec.md +3 -5
- package/src/templates/capabilities/openspec-cap/openspec-conventions.yaml +10 -12
- package/src/templates/mate-skills/THIRD-PARTY-NOTICES.md +40 -0
- package/src/templates/mate-skills/agents/mate-apply-change/SKILL.md +76 -0
- package/src/templates/mate-skills/agents/mate-apply-change/references/openspec-apply-change.md +198 -0
- package/src/templates/mate-skills/agents/mate-archive-change/SKILL.md +59 -0
- package/src/templates/mate-skills/{claude/mate-openspec-backfill → agents/mate-backfill-spec}/SKILL.md +4 -4
- package/src/templates/mate-skills/agents/mate-clarify-intent/SKILL.md +95 -0
- package/src/templates/mate-skills/agents/mate-explore-change/SKILL.md +50 -0
- package/src/templates/mate-skills/agents/mate-explore-change/references/openspec-explore.md +348 -0
- package/src/templates/mate-skills/agents/mate-grill-me/SKILL.md +3 -3
- package/src/templates/mate-skills/agents/mate-interview-me/SKILL.md +5 -5
- package/src/templates/mate-skills/agents/mate-propose-change/SKILL.md +103 -0
- package/src/templates/mate-skills/agents/mate-propose-change/references/openspec-propose.md +167 -0
- package/src/templates/mate-skills/agents/mate-propose-change/references/openspec-update-change.md +101 -0
- package/src/templates/mate-skills/agents/{mate-artifact-publish → mate-publish-artifact}/SKILL.md +91 -23
- package/src/templates/mate-skills/agents/{mate-artifact-publish → mate-publish-artifact}/references/openspec.md +4 -3
- package/src/templates/mate-skills/agents/mate-show-me/SKILL.md +74 -16
- package/src/templates/mate-skills/agents/mate-simplify-code/SKILL.md +74 -68
- package/src/templates/mate-skills/claude/mate-apply-change/SKILL.md +76 -0
- package/src/templates/mate-skills/claude/mate-apply-change/references/openspec-apply-change.md +198 -0
- package/src/templates/mate-skills/claude/mate-archive-change/SKILL.md +59 -0
- package/src/templates/mate-skills/{agents/mate-openspec-backfill → claude/mate-backfill-spec}/SKILL.md +4 -4
- package/src/templates/mate-skills/claude/mate-clarify-intent/SKILL.md +95 -0
- package/src/templates/mate-skills/claude/mate-explore-change/SKILL.md +50 -0
- package/src/templates/mate-skills/claude/mate-explore-change/references/openspec-explore.md +348 -0
- package/src/templates/mate-skills/claude/mate-grill-me/SKILL.md +3 -3
- package/src/templates/mate-skills/claude/mate-interview-me/SKILL.md +5 -5
- package/src/templates/mate-skills/claude/mate-propose-change/SKILL.md +103 -0
- package/src/templates/mate-skills/claude/mate-propose-change/references/openspec-propose.md +167 -0
- package/src/templates/mate-skills/claude/mate-propose-change/references/openspec-update-change.md +101 -0
- package/src/templates/mate-skills/claude/{mate-artifact-publish → mate-publish-artifact}/SKILL.md +91 -23
- package/src/templates/mate-skills/claude/{mate-artifact-publish → mate-publish-artifact}/references/openspec.md +4 -3
- package/src/templates/mate-skills/claude/mate-show-me/SKILL.md +74 -16
- package/src/templates/mate-skills/claude/mate-simplify-code/SKILL.md +74 -68
- package/src/templates/mate-skills/openspec-references.ts +140 -0
- package/src/templates/root/TEMPLATE_AGENTS.md +2 -2
- package/src/tools/setup/__snapshots__/runtime-surface-golden.test.ts.snap +3727 -320
- package/src/tools/setup/capabilities/context-mode.ts +25 -5
- package/src/tools/setup/capabilities/graphify-gate.ts +31 -0
- package/src/tools/setup/capabilities/graphify-secrets.ts +255 -0
- package/src/tools/setup/capabilities/graphify.ts +12 -0
- package/src/tools/setup/capabilities/openspec.ts +273 -270
- package/src/tools/setup/capabilities/tokensave.ts +36 -3
- package/src/tools/setup/context-services.ts +9 -17
- package/src/tools/setup/dynamic-plugins/audiences.ts +7 -39
- package/src/tools/setup/dynamic-plugins/declarations.ts +1 -1
- package/src/tools/setup/dynamic-plugins/hydrate.ts +4 -7
- package/src/tools/setup/dynamic-plugins/install.ts +24 -28
- package/src/tools/setup/engine.ts +93 -148
- package/src/tools/setup/managed-output.ts +51 -0
- package/src/tools/setup/mate.ts +86 -11
- package/src/tools/setup/plugin.ts +37 -17
- package/src/tools/setup/plugins/gitignore.ts +1 -7
- package/src/tools/setup/plugins/guidance.ts +7 -4
- package/src/tools/setup/providers/agent-file-sections.ts +4 -2
- package/src/tools/setup/providers/claude-attribution.ts +65 -0
- package/src/tools/setup/providers/claude-plugin-folders.ts +625 -0
- package/src/tools/setup/providers/claude-plugin-hooks.ts +39 -19
- package/src/tools/setup/providers/claude.ts +285 -34
- package/src/tools/setup/providers/opencode.ts +180 -11
- package/src/tools/setup/registry.ts +2 -24
- package/src/tools/setup/surface-target.ts +4 -13
- package/src/tools/setup/utils.ts +14 -4
- package/src/tools/setup.ts +131 -18
- package/wrappers/bin/graphify +52 -4
- package/wrappers/bin/openspec +33 -9
- package/wrappers/lib/graphify-gate.mjs +8 -0
- package/opencode-plugin/src/audience-layer.ts +0 -91
- package/src/cli/commands/studio/views/workflow/transcript.tsx +0 -190
- package/src/runtime/audience-layer.ts +0 -84
- package/src/runtime/opencode-audience-layer.ts +0 -176
- package/src/tools/setup/audience-isolation.fixture.ts +0 -325
- package/src/tools/setup/audience-layer.ts +0 -207
- package/src/tools/setup/audience-registrations.ts +0 -52
- package/src/tools/setup/contribution-ledger.ts +0 -207
- package/src/tools/setup/isolation-diagnostics.ts +0 -139
- package/src/tools/setup/runtime-documents.ts +0 -291
- package/src/tools/setup/upgrade-sweep.ts +0 -153
|
@@ -1,96 +1,14 @@
|
|
|
1
|
+
import { studioPaletteCss } from "./palette";
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
|
-
* Theme-aware by tokens: the
|
|
3
|
-
*
|
|
4
|
-
* theme attributes win over
|
|
4
|
+
* Theme-aware by tokens: the colour tokens come from the brand palette shared with
|
|
5
|
+
* reports (see `./palette`), dark is the default, light mode is applied through the
|
|
6
|
+
* system preference or the inline toggle, and explicit theme attributes win over
|
|
7
|
+
* media queries.
|
|
5
8
|
*/
|
|
6
9
|
export const STUDIO_STYLES = `
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
--bg: #0e1116;
|
|
10
|
-
--bg-rail: #12171e;
|
|
11
|
-
--panel: #171d26;
|
|
12
|
-
--panel-soft: #1e2631;
|
|
13
|
-
--border: #303b4a;
|
|
14
|
-
--border-soft: #25303c;
|
|
15
|
-
--text: #f3f6fa;
|
|
16
|
-
--muted: #9aa8b8;
|
|
17
|
-
--accent: #8cc7ff;
|
|
18
|
-
--accent-soft: rgb(140 199 255 / 11%);
|
|
19
|
-
--done: #9ee493;
|
|
20
|
-
--done-soft: rgb(158 228 147 / 12%);
|
|
21
|
-
--warn: #f6c56e;
|
|
22
|
-
--warn-soft: rgb(246 197 110 / 12%);
|
|
23
|
-
--bad: #ff8d87;
|
|
24
|
-
--bad-soft: rgb(255 141 135 / 12%);
|
|
25
|
-
--what: #74d3d8;
|
|
26
|
-
--what-soft: rgb(116 211 216 / 12%);
|
|
27
|
-
--why: #caa8ff;
|
|
28
|
-
--why-soft: rgb(202 168 255 / 14%);
|
|
29
|
-
--prompt-bg: #0a0d12;
|
|
30
|
-
--prompt-text: #dce5f0;
|
|
31
|
-
--shadow: 0 14px 36px rgb(0 0 0 / 22%);
|
|
32
|
-
--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
|
|
33
|
-
}
|
|
34
|
-
@media (prefers-color-scheme: light) {
|
|
35
|
-
:root:not([data-theme="dark"]) {
|
|
36
|
-
color-scheme: light;
|
|
37
|
-
--bg: #f3f6fa;
|
|
38
|
-
--bg-rail: #f8fafc;
|
|
39
|
-
--panel: #ffffff;
|
|
40
|
-
--panel-soft: #eef4fa;
|
|
41
|
-
--border: #cbd5e1;
|
|
42
|
-
--border-soft: #e3eaf2;
|
|
43
|
-
--text: #18212b;
|
|
44
|
-
--muted: #637083;
|
|
45
|
-
--accent: #1f66a6;
|
|
46
|
-
--accent-soft: #e8f3fd;
|
|
47
|
-
--done: #287b3b;
|
|
48
|
-
--done-soft: #e7f5e9;
|
|
49
|
-
--warn: #946300;
|
|
50
|
-
--warn-soft: #fff4d9;
|
|
51
|
-
--bad: #b42318;
|
|
52
|
-
--bad-soft: #ffebe9;
|
|
53
|
-
--what: #176b75;
|
|
54
|
-
--what-soft: #e2f5f6;
|
|
55
|
-
--why: #6346a5;
|
|
56
|
-
--why-soft: #f0ebff;
|
|
57
|
-
--prompt-bg: #17212b;
|
|
58
|
-
--prompt-text: #edf4fb;
|
|
59
|
-
--shadow: 0 12px 32px rgb(30 55 80 / 10%);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
@media (prefers-color-scheme: dark) {
|
|
63
|
-
:root:not([data-theme="light"]) { color-scheme: dark; }
|
|
64
|
-
}
|
|
65
|
-
:root[data-theme="light"] {
|
|
66
|
-
color-scheme: light;
|
|
67
|
-
--bg: #f3f6fa;
|
|
68
|
-
--bg-rail: #f8fafc;
|
|
69
|
-
--panel: #ffffff;
|
|
70
|
-
--panel-soft: #eef4fa;
|
|
71
|
-
--border: #cbd5e1;
|
|
72
|
-
--border-soft: #e3eaf2;
|
|
73
|
-
--text: #18212b;
|
|
74
|
-
--muted: #637083;
|
|
75
|
-
--accent: #1f66a6;
|
|
76
|
-
--accent-soft: #e8f3fd;
|
|
77
|
-
--done: #287b3b;
|
|
78
|
-
--done-soft: #e7f5e9;
|
|
79
|
-
--warn: #946300;
|
|
80
|
-
--warn-soft: #fff4d9;
|
|
81
|
-
--bad: #b42318;
|
|
82
|
-
--bad-soft: #ffebe9;
|
|
83
|
-
--what: #176b75;
|
|
84
|
-
--what-soft: #e2f5f6;
|
|
85
|
-
--why: #6346a5;
|
|
86
|
-
--why-soft: #f0ebff;
|
|
87
|
-
--prompt-bg: #17212b;
|
|
88
|
-
--prompt-text: #edf4fb;
|
|
89
|
-
--shadow: 0 12px 32px rgb(30 55 80 / 10%);
|
|
90
|
-
}
|
|
91
|
-
:root[data-theme="dark"] {
|
|
92
|
-
color-scheme: dark;
|
|
93
|
-
}
|
|
10
|
+
${studioPaletteCss()}
|
|
11
|
+
:root { --mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace; }
|
|
94
12
|
|
|
95
13
|
* { box-sizing: border-box; }
|
|
96
14
|
body {
|
|
@@ -101,7 +19,7 @@ body {
|
|
|
101
19
|
font-size: 14px;
|
|
102
20
|
line-height: 1.5;
|
|
103
21
|
}
|
|
104
|
-
.shell { display: grid; grid-template-columns:
|
|
22
|
+
.shell { display: grid; grid-template-columns: 224px minmax(0, 1fr); min-height: 100vh; }
|
|
105
23
|
@media (max-width: 900px) { .shell { grid-template-columns: 1fr; } }
|
|
106
24
|
|
|
107
25
|
.rail {
|
|
@@ -112,6 +30,7 @@ body {
|
|
|
112
30
|
flex-direction: column;
|
|
113
31
|
gap: 24px;
|
|
114
32
|
}
|
|
33
|
+
a { color: var(--accent); }
|
|
115
34
|
select, button {
|
|
116
35
|
font: inherit;
|
|
117
36
|
color: inherit;
|
|
@@ -121,21 +40,33 @@ select, button {
|
|
|
121
40
|
padding: 9px 11px;
|
|
122
41
|
max-width: 100%;
|
|
123
42
|
}
|
|
124
|
-
|
|
43
|
+
/** Own chevron: the native one ignores padding and sits on the right border. */
|
|
44
|
+
select {
|
|
45
|
+
width: 100%;
|
|
46
|
+
appearance: none;
|
|
47
|
+
padding-right: 32px;
|
|
48
|
+
background-image: linear-gradient(45deg, transparent 50%, var(--muted) 50%), linear-gradient(135deg, var(--muted) 50%, transparent 50%);
|
|
49
|
+
background-position: calc(100% - 16px) 50%, calc(100% - 11px) 50%;
|
|
50
|
+
background-size: 5px 5px;
|
|
51
|
+
background-repeat: no-repeat;
|
|
52
|
+
}
|
|
125
53
|
button { cursor: pointer; text-align: left; transition: border-color .15s, background .15s, color .15s; }
|
|
126
54
|
button:hover { border-color: var(--accent); background: var(--accent-soft); }
|
|
127
55
|
button:focus-visible, select:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
128
56
|
.main { padding: 40px clamp(22px, 4vw, 64px) 72px; min-width: 0; background: var(--bg); }
|
|
129
57
|
.main > * { width: min(100%, 1180px); margin-right: auto; margin-left: auto; }
|
|
58
|
+
/** A view's content sits on the page; only items and details are cards. */
|
|
59
|
+
.view-section { display: grid; gap: 18px; min-width: 0; }
|
|
60
|
+
.view-summary { margin: 0; color: var(--muted); font-size: .8rem; }
|
|
61
|
+
.view-intro { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; }
|
|
130
62
|
.panel {
|
|
131
63
|
background: var(--panel);
|
|
132
64
|
border: 1px solid var(--border);
|
|
133
|
-
border-radius:
|
|
65
|
+
border-radius: 8px;
|
|
134
66
|
padding: 24px;
|
|
135
67
|
margin-bottom: 16px;
|
|
136
|
-
box-shadow: var(--shadow);
|
|
137
68
|
}
|
|
138
|
-
h1 { margin: 0; font-size:
|
|
69
|
+
h1 { margin: 0; font-size: 1.6rem; font-weight: 650; line-height: 1.2; letter-spacing: -.01em; }
|
|
139
70
|
h3 { color: var(--text); font-size: 1.05rem; font-weight: 700; margin: 0; letter-spacing: -.02em; }
|
|
140
71
|
h4 { font-size: .86rem; margin: 0 0 6px; font-family: var(--mono); }
|
|
141
72
|
.note { color: var(--muted); font-size: .82rem; margin: 5px 0 14px; }
|
|
@@ -150,7 +81,6 @@ option.placeholder { color: var(--muted); font-style: italic; }
|
|
|
150
81
|
|
|
151
82
|
.page-header { display: flex; align-items: stretch; justify-content: space-between; gap: 32px; padding-bottom: 24px; margin-bottom: 18px; border-bottom: 1px solid var(--border-soft); }
|
|
152
83
|
.page-heading { min-width: 0; }
|
|
153
|
-
.page-eyebrow { margin: 0 0 8px; color: var(--accent); font-family: var(--mono); font-size: .68rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
|
|
154
84
|
.page-context { display: grid; align-content: start; gap: 6px; min-width: min(100%, 300px); max-width: 380px; padding: 0; border: 0; border-radius: 0; background: transparent; }
|
|
155
85
|
.page-context-label { color: var(--muted); font-size: .64rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
|
|
156
86
|
.page-context code { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
@@ -158,14 +88,14 @@ option.placeholder { color: var(--muted); font-style: italic; }
|
|
|
158
88
|
.snapshot-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--done); }
|
|
159
89
|
.section-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
|
|
160
90
|
.section-note { margin: 4px 0 0; color: var(--muted); font-size: .8rem; }
|
|
161
|
-
.section-
|
|
91
|
+
.section-header h3 { color: var(--muted); font-family: inherit; font-size: .75rem; font-weight: 650; letter-spacing: .08em; text-transform: uppercase; }
|
|
162
92
|
|
|
163
93
|
table { border-collapse: collapse; width: 100%; font-size: .88rem; }
|
|
164
94
|
th, td { text-align: left; padding: 12px 10px; border-bottom: 1px solid var(--border-soft); vertical-align: top; }
|
|
165
95
|
th:first-child, td:first-child { padding-left: 0; }
|
|
166
96
|
th:last-child, td:last-child { padding-right: 0; }
|
|
167
97
|
th { font-size: .7rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
|
|
168
|
-
tbody tr:hover td { background: var(--
|
|
98
|
+
tbody tr:hover td { background: var(--panel-soft); }
|
|
169
99
|
td.numeric { font-variant-numeric: tabular-nums; white-space: nowrap; }
|
|
170
100
|
.lookup-table td:first-child { min-width: 180px; }
|
|
171
101
|
.change-cell { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 8px; }
|
|
@@ -175,9 +105,24 @@ td.numeric { font-variant-numeric: tabular-nums; white-space: nowrap; }
|
|
|
175
105
|
.bar-fill { display: block; height: 100%; background: var(--done); }
|
|
176
106
|
.artifact-list { display: flex; flex-wrap: wrap; gap: 5px 6px; }
|
|
177
107
|
.lookup-table .chip { margin: 0; padding: 2px 7px; font-size: .68rem; }
|
|
178
|
-
.status-chip { display: inline-
|
|
179
|
-
.status-chip[data-status="complete"] {
|
|
180
|
-
.status-chip[data-status="active"]
|
|
108
|
+
.status-chip { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-family: var(--mono); font-size: .68rem; white-space: nowrap; }
|
|
109
|
+
.status-chip[data-status="complete"] { color: var(--done); }
|
|
110
|
+
.status-chip:is([data-status="active"], [data-status="in-progress"]) { color: var(--info); }
|
|
111
|
+
|
|
112
|
+
/** Status markers use the report's tone shapes: dot complete, diamond active, square invalid, triangle warning. */
|
|
113
|
+
.status-chip::before, .chip-done::before, .chip-invalid::before, .spec-status::before, .picker-card[data-unready="true"] .picker-card-name::before {
|
|
114
|
+
content: "";
|
|
115
|
+
display: inline-block;
|
|
116
|
+
flex: none;
|
|
117
|
+
width: 8px;
|
|
118
|
+
height: 8px;
|
|
119
|
+
background: currentColor;
|
|
120
|
+
}
|
|
121
|
+
.status-chip::before { background: transparent; border: 1.5px solid currentColor; border-radius: 50%; box-sizing: border-box; }
|
|
122
|
+
.status-chip[data-status="complete"]::before, .chip-done::before, .spec-status::before { background: currentColor; border: 0; border-radius: 50%; }
|
|
123
|
+
.status-chip:is([data-status="active"], [data-status="in-progress"])::before { background: currentColor; border: 0; border-radius: 0; transform: rotate(45deg) scale(.85); }
|
|
124
|
+
.chip-invalid::before, .spec-status-invalid::before { border-radius: 0; }
|
|
125
|
+
.picker-card[data-unready="true"] .picker-card-name::before { margin-right: 7px; background: var(--warn); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
|
|
181
126
|
|
|
182
127
|
ul.plain { margin: 0; padding: 0; list-style: none; }
|
|
183
128
|
ul.plain li { padding: 3px 0; border-bottom: 1px solid var(--border-soft); }
|
|
@@ -192,11 +137,12 @@ ul.plain li:last-child { border-bottom: 0; }
|
|
|
192
137
|
border: 1px solid var(--border);
|
|
193
138
|
background: var(--panel-soft);
|
|
194
139
|
}
|
|
195
|
-
.chip-done {
|
|
196
|
-
.chip-
|
|
140
|
+
.chip-done, .chip-invalid { display: inline-flex; align-items: center; gap: 5px; }
|
|
141
|
+
.chip-done { color: var(--done); }
|
|
142
|
+
.chip-invalid { color: var(--bad); }
|
|
197
143
|
.toast {
|
|
198
144
|
position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%);
|
|
199
|
-
background: var(--done); color:
|
|
145
|
+
background: var(--done); color: var(--on-accent); border-radius: 8px;
|
|
200
146
|
padding: 6px 14px; font-size: .8rem;
|
|
201
147
|
opacity: 0; transition: opacity .16s; pointer-events: none; z-index: 20;
|
|
202
148
|
}
|
|
@@ -204,27 +150,26 @@ ul.plain li:last-child { border-bottom: 0; }
|
|
|
204
150
|
.toast-report { display: flex; gap: 10px; align-items: center; bottom: 64px; }
|
|
205
151
|
.toast-report[data-shown="true"] { pointer-events: auto; }
|
|
206
152
|
.toast-report a { color: inherit; font-weight: 700; text-decoration: underline; }
|
|
207
|
-
.nav-badge { padding: 1px 6px; border-radius: 999px; background: var(--accent); color:
|
|
153
|
+
.nav-badge { padding: 1px 6px; border-radius: 999px; background: var(--accent); color: var(--on-accent); font-size: .6rem; font-weight: 750; text-transform: uppercase; }
|
|
208
154
|
.reports-layout { display: grid; grid-template-columns: minmax(200px, 280px) 1fr; gap: 12px; min-height: 60vh; }
|
|
209
155
|
.reports-list { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
|
|
210
156
|
.reports-list button { width: 100%; padding: 8px 10px; text-align: left; font-size: .78rem; }
|
|
211
157
|
.reports-list button[aria-pressed="true"] { border-color: var(--accent); background: var(--accent-soft); }
|
|
212
158
|
.reports-list .report-time { display: block; color: var(--muted); font-size: .66rem; }
|
|
213
159
|
.reports-main { display: grid; grid-template-rows: auto 1fr; gap: 8px; }
|
|
214
|
-
.reports-frame { width: 100%; height: 100%; min-height: 60vh; border: 1px solid var(--border); border-radius: 8px;
|
|
160
|
+
.reports-frame { width: 100%; height: 100%; min-height: 60vh; border: 1px solid var(--border); border-radius: 8px; }
|
|
215
161
|
|
|
216
162
|
.warnings { border-color: var(--warn); }
|
|
217
163
|
.error { border-color: var(--bad); }
|
|
218
164
|
|
|
219
|
-
.runway-step-badge { padding: 1px 5px; border: 1px solid var(--badge); background: var(--badge-soft); color: var(--badge); font-size: .62rem; font-style: normal; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
|
|
220
|
-
.runway-step-badge-optional { --badge: var(--warn); --badge-soft: var(--warn-soft); }
|
|
221
|
-
.runway-step-badge-skill { --badge: var(--what); --badge-soft: var(--what-soft); }
|
|
222
|
-
.runway-step-badge-openspec { --badge: var(--accent); --badge-soft: var(--accent-soft); }
|
|
223
|
-
.runway-step-badge-human-in-loop { --badge: var(--why); --badge-soft: var(--why-soft); }
|
|
165
|
+
.runway-step-badge { padding: 1px 5px; border: 1px solid var(--badge); background: var(--badge-soft); color: var(--badge-text); font-size: .62rem; font-style: normal; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
|
|
166
|
+
.runway-step-badge-optional { --badge: var(--warn); --badge-soft: var(--warn-soft); --badge-text: var(--warn); }
|
|
167
|
+
.runway-step-badge-skill { --badge: var(--what); --badge-soft: var(--what-soft); --badge-text: var(--what); }
|
|
168
|
+
.runway-step-badge-openspec { --badge: var(--accent); --badge-soft: var(--accent-soft); --badge-text: var(--text); }
|
|
169
|
+
.runway-step-badge-human-in-loop { --badge: var(--why); --badge-soft: var(--why-soft); --badge-text: var(--why); }
|
|
170
|
+
.runway-step-badge-human-review { --badge: var(--why); --badge-soft: var(--why-soft); --badge-text: var(--why); }
|
|
224
171
|
.runway-step-copy { align-self: start; padding: 5px 8px; border-color: var(--border); background: transparent; color: var(--muted); font-size: .68rem; white-space: nowrap; }
|
|
225
172
|
.runway-step-copy:hover { background: var(--accent-soft); color: var(--text); }
|
|
226
|
-
.workflow-session-break { display: grid; grid-template-columns: minmax(20px, 1fr) auto minmax(20px, 1fr); align-items: center; gap: 10px; padding: 9px 0; color: var(--muted); font-family: var(--mono); font-size: .63rem; letter-spacing: .04em; text-align: center; }
|
|
227
|
-
.workflow-session-break::before, .workflow-session-break::after { height: 1px; background: var(--border); content: ""; }
|
|
228
173
|
|
|
229
174
|
/** The compact navigation rail keeps scope, navigation, and status visible together. */
|
|
230
175
|
.studio-sidebar {
|
|
@@ -232,41 +177,47 @@ ul.plain li:last-child { border-bottom: 0; }
|
|
|
232
177
|
top: 0;
|
|
233
178
|
height: 100vh;
|
|
234
179
|
min-width: 0;
|
|
235
|
-
padding:
|
|
236
|
-
gap:
|
|
180
|
+
padding: 18px 14px 16px;
|
|
181
|
+
gap: 18px;
|
|
237
182
|
overflow-y: auto;
|
|
238
183
|
}
|
|
239
184
|
.sidebar-brand { display: flex; align-items: center; gap: 10px; min-width: 0; }
|
|
240
|
-
.sidebar-brand-mark { display:
|
|
185
|
+
.sidebar-brand-mark { display: block; flex: none; width: 30px; height: 30px; }
|
|
186
|
+
.brand-symbol-color { display: none; }
|
|
187
|
+
@media (prefers-color-scheme: light) {
|
|
188
|
+
:root:not([data-theme="dark"]) .brand-symbol-color { display: block; }
|
|
189
|
+
:root:not([data-theme="dark"]) .brand-symbol-on-dark { display: none; }
|
|
190
|
+
}
|
|
191
|
+
:root[data-theme="light"] .brand-symbol-color { display: block; }
|
|
192
|
+
:root[data-theme="light"] .brand-symbol-on-dark { display: none; }
|
|
241
193
|
.sidebar-brand-copy { display: grid; gap: 1px; min-width: 0; }
|
|
242
194
|
.sidebar-brand-copy strong { font-size: .9rem; letter-spacing: -.02em; }
|
|
243
|
-
.sidebar-brand-copy span { color: var(--muted); font-size: .68rem; }
|
|
244
195
|
.sidebar-label { color: var(--muted); font-size: .62rem; font-weight: 750; letter-spacing: .1em; text-transform: uppercase; }
|
|
245
196
|
.sidebar-scope { display: grid; gap: 7px; }
|
|
246
|
-
.sidebar-scope select { padding: 8px 9px; font-family: var(--mono); font-size: .72rem; }
|
|
197
|
+
.sidebar-scope select { padding: 8px 32px 8px 9px; font-family: var(--mono); font-size: .72rem; }
|
|
247
198
|
.sidebar-nav { display: grid; gap: 3px; }
|
|
248
199
|
.sidebar-nav-list { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
|
|
249
|
-
.sidebar-nav button { display: flex; align-items: center; justify-content: space-between; width: 100%; padding:
|
|
200
|
+
.sidebar-nav button { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 6px 10px; border-color: transparent; border-radius: 7px; background: transparent; font-size: .8rem; }
|
|
250
201
|
.sidebar-nav button:hover, .sidebar-nav button[aria-pressed="true"] { border-color: var(--border); background: var(--accent-soft); }
|
|
251
|
-
.sidebar-nav button[aria-pressed="true"] { color: var(--
|
|
252
|
-
|
|
253
|
-
.sidebar-
|
|
254
|
-
.sidebar-metric
|
|
255
|
-
.sidebar-metric
|
|
202
|
+
.sidebar-nav button[aria-pressed="true"] { color: var(--text); font-weight: 700; }
|
|
203
|
+
/** The stats stack as one column: label left, number right, like the report's key-value rows. */
|
|
204
|
+
.sidebar-metrics { display: grid; }
|
|
205
|
+
.sidebar-metric { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; padding: 5px 2px; border-top: 1px solid var(--border); }
|
|
206
|
+
.sidebar-metric:last-child { border-bottom: 1px solid var(--border); }
|
|
207
|
+
.sidebar-metric strong { order: 1; font-size: .95rem; font-variant-numeric: tabular-nums; font-weight: 650; line-height: 1.2; }
|
|
208
|
+
.sidebar-metric span { color: var(--muted); font-size: .75rem; }
|
|
256
209
|
.sidebar-footer { display: grid; gap: 6px; margin-top: auto; }
|
|
257
210
|
.sidebar-footer-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
|
|
258
211
|
.sidebar-footer button { width: 100%; padding: 7px 8px; font-size: .72rem; }
|
|
259
212
|
|
|
260
213
|
/** Specs uses the same full-bleed content treatment as Workflow. */
|
|
261
|
-
.specs-eyebrow { color: var(--accent); font-size: .68rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
|
|
262
214
|
.specs-intro { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-bottom: 26px; }
|
|
263
215
|
.specs-intro-copy { max-width: 54ch; }
|
|
264
216
|
.specs-intro-copy p { margin: 0; color: var(--muted); }
|
|
265
|
-
.specs-summary { display: grid; grid-template-columns: repeat(3, minmax(84px, 1fr));
|
|
266
|
-
.specs-summary-item { display: grid; gap:
|
|
267
|
-
.specs-summary-item:
|
|
268
|
-
.specs-summary-item
|
|
269
|
-
.specs-summary-item span { color: var(--muted); font-size: .62rem; text-transform: uppercase; letter-spacing: .08em; }
|
|
217
|
+
.specs-summary { display: grid; grid-template-columns: repeat(3, minmax(84px, 1fr)); gap: 20px; min-width: 290px; }
|
|
218
|
+
.specs-summary-item { display: grid; gap: 2px; padding-top: 10px; border-top: 1px solid var(--border); }
|
|
219
|
+
.specs-summary-item strong { font-size: 1.6rem; font-variant-numeric: tabular-nums; font-weight: 650; line-height: 1.2; }
|
|
220
|
+
.specs-summary-item span { color: var(--muted); font-size: .8rem; }
|
|
270
221
|
.picker-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(252px, 1fr)); gap: 12px; }
|
|
271
222
|
.picker-card { display: grid; align-content: start; gap: 5px; padding: 16px; }
|
|
272
223
|
.picker-card[data-unready="true"] { border-color: var(--warn); }
|
|
@@ -275,33 +226,26 @@ ul.plain li:last-child { border-bottom: 0; }
|
|
|
275
226
|
.picker-card-meta { display: flex; flex-wrap: wrap; margin-top: 5px; }
|
|
276
227
|
|
|
277
228
|
.specs-area-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 14px; }
|
|
278
|
-
.specs-area-card { padding: 18px; border: 1px solid var(--border); border-radius:
|
|
279
|
-
.specs-area-card-head { display: flex; align-items:
|
|
280
|
-
.specs-area-
|
|
281
|
-
.specs-area-name { display: flex; align-items: baseline; gap: 9px; min-width: 0; }
|
|
282
|
-
.specs-area-name h4 { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
229
|
+
.specs-area-card { padding: 18px; border: 1px solid var(--border); border-radius: 8px; background: var(--panel); }
|
|
230
|
+
.specs-area-card-head { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--border-soft); }
|
|
231
|
+
.specs-area-name { min-width: 0; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
283
232
|
.specs-area-count { color: var(--muted); font-family: var(--mono); font-size: .7rem; white-space: nowrap; }
|
|
284
233
|
.specs-card-list { display: grid; gap: 7px; margin-top: 14px; }
|
|
285
234
|
.spec-card-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--border-soft); }
|
|
286
235
|
.spec-card-row:last-child { border-bottom: 0; padding-bottom: 0; }
|
|
287
236
|
.spec-card-row:first-child { padding-top: 0; }
|
|
288
|
-
.spec-card-row
|
|
237
|
+
.spec-card-row > div { min-width: 0; }
|
|
238
|
+
/** Long capability names wrap at their hyphens instead of running under the actions. */
|
|
239
|
+
.spec-card-row strong { display: block; font-family: var(--mono); font-size: .78rem; line-height: 1.35; overflow-wrap: anywhere; }
|
|
289
240
|
.spec-card-meta { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: .7rem; }
|
|
290
241
|
.spec-card-end { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
|
|
291
242
|
.spec-copy { display: inline-flex; align-items: center; align-self: center; padding: 4px 6px; }
|
|
292
243
|
.spec-actions { display: inline-flex; gap: 6px; }
|
|
293
244
|
.spec-action { padding: 3px 7px; font-size: .68rem; }
|
|
294
245
|
html[data-agent-viewed] [data-studio-action] { display: none; }
|
|
295
|
-
.spec-status {
|
|
296
|
-
.spec-status-invalid {
|
|
246
|
+
.spec-status { display: inline-flex; align-items: center; gap: 6px; color: var(--done); font-family: var(--mono); font-size: .61rem; text-transform: uppercase; }
|
|
247
|
+
.spec-status-invalid { color: var(--bad); }
|
|
297
248
|
|
|
298
|
-
.skills-tab-list { display: flex; gap: 5px; border-bottom: 1px solid var(--border); }
|
|
299
|
-
.skills-tab-list button { display: grid; gap: 3px; min-width: 150px; padding: 10px 12px; border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: transparent; color: var(--muted); }
|
|
300
|
-
.skills-tab-list button:hover { background: var(--accent-soft); }
|
|
301
|
-
.skills-tab-list button[aria-selected="true"] { border-bottom-color: var(--accent); background: var(--panel-soft); color: var(--text); }
|
|
302
|
-
.skills-tab-list button strong { font-family: var(--mono); font-size: .74rem; text-align: left; }
|
|
303
|
-
.skills-tab-list button span { font-size: .68rem; text-align: left; }
|
|
304
|
-
.skills-panels { padding-top: 18px; }
|
|
305
249
|
.skills-panels > [data-active="false"] { display: none; }
|
|
306
250
|
.skills-panel-description { margin: 0 0 16px; color: var(--muted); font-size: .8rem; }
|
|
307
251
|
.skills-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
|
|
@@ -314,63 +258,110 @@ html[data-agent-viewed] [data-studio-action] { display: none; }
|
|
|
314
258
|
.page-header { display: grid; gap: 18px; }
|
|
315
259
|
.page-context { min-width: 0; max-width: none; }
|
|
316
260
|
.section-header { gap: 10px; }
|
|
317
|
-
.skills-tab-list button { min-width: 0; flex: 1; }
|
|
318
261
|
}
|
|
319
262
|
|
|
320
263
|
@media (min-width: 901px) {
|
|
321
|
-
.shell:has(.studio-sidebar) { grid-template-columns:
|
|
264
|
+
.shell:has(.studio-sidebar) { grid-template-columns: 224px minmax(0, 1fr); }
|
|
322
265
|
}
|
|
323
266
|
@media (max-width: 900px) {
|
|
324
267
|
.studio-sidebar { position: relative; height: auto; max-height: none; }
|
|
325
268
|
}
|
|
326
269
|
|
|
327
|
-
/** Production Workflow
|
|
270
|
+
/** Production Workflow Delivery Path. */
|
|
328
271
|
.workflow-view { margin: 0 auto; }
|
|
329
|
-
.workflow-
|
|
330
|
-
.workflow-
|
|
331
|
-
.
|
|
332
|
-
.
|
|
333
|
-
.
|
|
334
|
-
.
|
|
335
|
-
.workflow-
|
|
336
|
-
.workflow-
|
|
337
|
-
.workflow-
|
|
338
|
-
.workflow-
|
|
339
|
-
.workflow-
|
|
340
|
-
.workflow-console-context p { margin: 0; color: var(--text); font-family: system-ui, sans-serif; font-size: .72rem; line-height: 1.35; }
|
|
341
|
-
.workflow-console-context small { color: var(--muted); font-family: system-ui, sans-serif; font-size: .68rem; line-height: 1.35; }
|
|
342
|
-
.workflow-console-tabs { display: flex; gap: 5px; margin-left: 55px; border-bottom: 1px solid var(--border); }
|
|
343
|
-
.workflow-console-tabs button { display: grid; gap: 3px; min-width: 150px; padding: 10px 12px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: var(--muted); }
|
|
344
|
-
.workflow-console-tabs button:hover { background: var(--panel); }
|
|
345
|
-
.workflow-console-tabs button[aria-selected="true"] { border-bottom-color: var(--accent); background: var(--panel); color: var(--text); }
|
|
346
|
-
.workflow-console-tabs button strong { font-family: var(--mono); font-size: .72rem; text-align: left; }
|
|
347
|
-
.workflow-console-tabs button small { font-size: .65rem; text-align: left; }
|
|
348
|
-
.workflow-console-panels { margin-left: 20px; padding-left: 35px; border-left: 1px dashed var(--border); }
|
|
349
|
-
.workflow-console-panels > [data-active="false"] { display: none; }
|
|
350
|
-
.workflow-console-branch-rule { display: grid; gap: 4px; padding: 16px 0 6px; }
|
|
351
|
-
.workflow-console-branch-rule-description { max-width: 70ch; margin: 0; color: var(--muted); font-family: system-ui, sans-serif; font-size: .73rem; line-height: 1.4; }
|
|
352
|
-
.workflow-console-line { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 13px; padding: 12px 0; }
|
|
353
|
-
.workflow-console-gutter { color: var(--muted); font-family: var(--mono); font-size: .66rem; opacity: .7; }
|
|
354
|
-
.workflow-console-line-body { min-width: 0; }
|
|
355
|
-
.workflow-console-step-title { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-bottom: 7px; }
|
|
356
|
-
.workflow-console-step-title strong { color: var(--text); font-family: var(--mono); font-size: .71rem; }
|
|
357
|
-
.workflow-console-command { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 9px; align-items: center; padding: 9px 10px; border: 1px solid var(--border-soft); border-radius: 7px; background: var(--panel-soft); }
|
|
358
|
-
.workflow-console-command-label { color: var(--accent); font-family: var(--mono); font-size: .62rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
|
|
359
|
-
.workflow-console-command code { color: var(--text); font-family: var(--mono); font-size: .78rem; overflow-wrap: anywhere; }
|
|
360
|
-
.workflow-console-command .runway-step-copy { border-color: var(--border); }
|
|
361
|
-
.workflow-console-explanation { display: grid; gap: 6px; margin-top: 10px; }
|
|
362
|
-
.workflow-console-detail { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 10px; align-items: baseline; }
|
|
363
|
-
.workflow-console-detail > span { color: var(--muted); font-family: var(--mono); font-size: .6rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
|
|
272
|
+
.workflow-delivery-path { width: 100%; color: var(--text); }
|
|
273
|
+
.workflow-schema-panels > [data-active="false"] { display: none; }
|
|
274
|
+
.view-choice { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; color: var(--muted); font-family: var(--mono); font-size: .66rem; }
|
|
275
|
+
.view-choice select { width: auto; max-width: 100%; padding: 6px 32px 6px 10px; border: 1px solid var(--border); border-radius: 6px; background-color: var(--panel-soft); color: var(--text); font: inherit; font-size: .74rem; }
|
|
276
|
+
.view-choice select:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
277
|
+
.view-choice code { color: var(--text); font-size: .74rem; }
|
|
278
|
+
.workflow-description { max-width: 70ch; margin: 0; color: var(--muted); font-family: system-ui, sans-serif; font-size: .73rem; line-height: 1.4; }
|
|
279
|
+
.workflow-command { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 6px 6px 6px 10px; border-radius: 6px; background: var(--panel-soft); }
|
|
280
|
+
.workflow-command-label { color: var(--muted); font-family: var(--mono); font-size: .6rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
|
|
281
|
+
.workflow-command code { color: var(--text); font-family: var(--mono); font-size: .78rem; overflow-wrap: anywhere; }
|
|
282
|
+
.workflow-command .runway-step-copy { align-self: center; border-color: var(--border-soft); }
|
|
364
283
|
.workflow-badges { display: inline-flex; flex-wrap: wrap; gap: 4px; }
|
|
365
284
|
.workflow-badges .runway-step-badge { font-size: .56rem; }
|
|
366
|
-
.workflow-
|
|
367
|
-
.workflow-
|
|
368
|
-
.workflow-
|
|
369
|
-
.workflow-
|
|
370
|
-
.workflow-
|
|
371
|
-
.workflow-
|
|
372
|
-
.workflow-
|
|
285
|
+
.workflow-graph-openspec { display: inline-block; flex: none; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: var(--accent); vertical-align: middle; }
|
|
286
|
+
.workflow-graph-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; margin: 0; padding: 0; color: var(--muted); font-family: var(--mono); font-size: .62rem; list-style: none; }
|
|
287
|
+
.workflow-graph-legend li { display: inline-flex; align-items: center; gap: 6px; }
|
|
288
|
+
.workflow-graph-legend .workflow-graph-openspec { margin-right: 0; }
|
|
289
|
+
.workflow-legend-optional { width: 14px; height: 9px; border: 1px dashed var(--muted); border-radius: 3px; }
|
|
290
|
+
.workflow-legend-session { width: 7px; height: 7px; border: 1.5px solid var(--accent); border-radius: 50%; }
|
|
291
|
+
.workflow-legend-skip { width: 16px; border-top: 1.5px dotted var(--muted); }
|
|
292
|
+
/** The graph is centred with the stage panel beside it when wide enough, above it otherwise. */
|
|
293
|
+
.workflow-schema { container-type: inline-size; }
|
|
294
|
+
.workflow-path { display: grid; gap: 24px; padding-top: 56px; }
|
|
295
|
+
/** Room outside the graph for its workset frame. */
|
|
296
|
+
.workflow-path-graph { display: grid; justify-items: center; gap: 36px; min-width: 0; }
|
|
297
|
+
.workflow-path-graph > .workflow-graph { width: min(100% - 64px, 440px); }
|
|
298
|
+
/** The one card on the view: the selected stage, or the path overview. */
|
|
299
|
+
.workflow-detail { min-width: 0; padding: 18px 20px 20px; border: 1px solid var(--border); border-radius: 8px; background: var(--panel); }
|
|
300
|
+
@container (min-width: 760px) {
|
|
301
|
+
/* Graph and card sit together at the left; 504px holds the graph and its workset frame. */
|
|
302
|
+
.workflow-path { grid-template-columns: minmax(0, 504px) minmax(300px, 420px); justify-content: start; gap: 40px; align-items: start; }
|
|
303
|
+
/* Top-aligned with the workset frame, which rises 34px above the graph. */
|
|
304
|
+
.workflow-detail { position: sticky; top: 16px; margin-top: -34px; }
|
|
305
|
+
}
|
|
306
|
+
/** Only the targeted card shows; with none targeted the overview does. */
|
|
307
|
+
.workflow-detail .workflow-card { display: none; }
|
|
308
|
+
.workflow-detail:has(.workflow-card:target) .workflow-detail-overview { display: none; }
|
|
309
|
+
/** Rows are equal and lanes 2fr with a 1fr bypass lane, matching the SVG drawing units. */
|
|
310
|
+
.workflow-graph { --graph-gutter: 3.75rem; position: relative; padding-left: var(--graph-gutter); }
|
|
311
|
+
.workflow-graph-bands { position: absolute; inset: 0; }
|
|
312
|
+
.workflow-graph-band { position: absolute; right: 0; left: 0; padding-top: 7px; color: var(--muted); font-family: var(--mono); font-size: .56rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
|
|
313
|
+
/** The workset: the changes published together, framed around the per-change cycle and Publish. */
|
|
314
|
+
.workflow-graph-workset { position: absolute; inset: -34px -30px -16px; border: 1px solid var(--muted); border-radius: 16px; }
|
|
315
|
+
.workflow-graph-workset span { position: absolute; top: -8px; left: 16px; padding: 0 6px; background: var(--bg); color: var(--text); font-family: var(--mono); font-size: .56rem; font-weight: 700; letter-spacing: .06em; }
|
|
316
|
+
/** The stages each change repeats, framed like a fieldset; Publish stays outside. */
|
|
317
|
+
.workflow-graph-cycle { position: absolute; right: -14px; left: -14px; box-sizing: content-box; margin-top: -14px; padding-top: 14px; border: 1px dashed var(--why); border-radius: 12px; }
|
|
318
|
+
.workflow-graph-cycle span { position: absolute; top: -8px; right: 14px; padding: 0 6px; background: var(--bg); color: var(--why); font-family: var(--mono); font-size: .56rem; font-weight: 700; letter-spacing: .06em; }
|
|
319
|
+
.workflow-graph-layer { position: absolute; top: 0; left: var(--graph-gutter); width: calc(100% - var(--graph-gutter)); height: 100%; overflow: visible; pointer-events: none; }
|
|
320
|
+
.workflow-graph-edge { fill: none; stroke: var(--muted); stroke-width: 1.25; vector-effect: non-scaling-stroke; }
|
|
321
|
+
.workflow-graph-edge[data-edge-kind="bypass"] { stroke-dasharray: 3 4; }
|
|
322
|
+
.workflow-graph-edge[data-new-session="true"] { stroke: var(--accent); }
|
|
323
|
+
.workflow-graph-start { fill: var(--muted); }
|
|
324
|
+
.workflow-graph-session { fill: var(--bg); stroke: var(--accent); stroke-width: 1.5; }
|
|
325
|
+
.workflow-graph-nodes { position: relative; display: grid; grid-template-columns: repeat(var(--graph-rows), minmax(0, 2fr)) minmax(0, 1fr); grid-template-rows: repeat(var(--graph-columns), minmax(3.5rem, 1fr)); margin: 0; padding: 0; list-style: none; }
|
|
326
|
+
.workflow-graph-node { display: flex; align-items: center; justify-content: center; min-width: 0; padding: 8px 4px; grid-row: var(--graph-row); grid-column: var(--graph-lane) / span var(--graph-span); }
|
|
327
|
+
.workflow-graph-box { max-width: 100%; padding: 5px 10px; border: 1px solid var(--border); border-radius: 6px; background: var(--panel); }
|
|
328
|
+
.workflow-graph-link { display: block; color: var(--text); font-family: var(--mono); font-size: .7rem; line-height: 1.3; text-align: center; text-decoration: none; overflow-wrap: anywhere; transition: border-color .15s, background .15s; }
|
|
329
|
+
.workflow-graph-box[data-optional="true"] { border-style: dashed; border-color: var(--muted); }
|
|
330
|
+
.workflow-graph-group { display: grid; gap: 3px; padding: 6px 8px; border-color: var(--why); }
|
|
331
|
+
.workflow-graph-group-label { color: var(--why); font-family: var(--mono); font-size: .52rem; font-weight: 700; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
|
|
332
|
+
.workflow-graph-group ol { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px 4px; margin: 0; padding: 0; list-style: none; }
|
|
333
|
+
.workflow-graph-group .workflow-graph-link { padding: 1px 4px; border-radius: 4px; color: var(--why); }
|
|
334
|
+
.workflow-graph-link:hover, .workflow-graph-link:focus-visible { border-color: var(--accent); background: var(--accent-soft); }
|
|
335
|
+
.workflow-graph-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
336
|
+
.workflow-graph-link[aria-current="true"] { border-color: var(--accent); background: var(--accent-soft); color: var(--text); }
|
|
337
|
+
/** Flat stage block: the badges carry optional and human review; the graph carries the shape. */
|
|
338
|
+
.workflow-missing-skill { margin: 8px 0 0; color: var(--warn); font-family: system-ui, sans-serif; font-size: .7rem; }
|
|
339
|
+
.workflow-detail-overview { display: grid; gap: 8px; }
|
|
340
|
+
.workflow-detail-hint { margin: 0; color: var(--text); font-family: system-ui, sans-serif; font-size: .78rem; line-height: 1.5; }
|
|
341
|
+
/** Selected stage: header, action, purpose, footer, on one 16px rhythm. */
|
|
342
|
+
.workflow-card { min-width: 0; scroll-margin-top: 16px; }
|
|
343
|
+
.workflow-detail .workflow-card:target { display: grid; gap: 16px; }
|
|
344
|
+
.workflow-card-header { display: grid; gap: 6px; }
|
|
345
|
+
.workflow-card-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
|
|
346
|
+
.workflow-card-heading h3 { margin: 0; color: var(--text); font-family: var(--mono); font-size: .9rem; font-weight: 700; }
|
|
347
|
+
.workflow-card-meta { display: flex; flex-wrap: wrap; gap: 2px 14px; margin: 0; color: var(--muted); font-family: var(--mono); font-size: .66rem; }
|
|
348
|
+
.workflow-card-meta code { font-family: inherit; font-size: inherit; }
|
|
349
|
+
/** In the panel a prompt gets its own line under its label and copy control. */
|
|
350
|
+
.workflow-detail .workflow-command { grid-template-columns: minmax(0, 1fr) auto; row-gap: 6px; padding: 8px 8px 10px 10px; }
|
|
351
|
+
.workflow-detail .workflow-command code { grid-column: 1 / -1; grid-row: 2; font-size: .76rem; line-height: 1.45; overflow-wrap: break-word; }
|
|
352
|
+
.workflow-card-session { color: var(--accent); }
|
|
353
|
+
.workflow-card-human { margin: 0; padding: 9px 10px; border-radius: 6px; background: var(--panel-soft); color: var(--muted); font-family: system-ui, sans-serif; font-size: .74rem; line-height: 1.45; }
|
|
354
|
+
.workflow-card-explanation { display: grid; gap: 12px; margin: 0; }
|
|
355
|
+
.workflow-card-explanation dt { margin-bottom: 3px; color: var(--muted); font-family: var(--mono); font-size: .58rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
|
|
356
|
+
.workflow-card-explanation dd { margin: 0; color: var(--text); font-family: system-ui, sans-serif; font-size: .78rem; line-height: 1.5; }
|
|
357
|
+
.workflow-card-explanation div + div dd { color: var(--muted); }
|
|
358
|
+
.workflow-card-footer { padding-top: 12px; border-top: 1px solid var(--border-soft); }
|
|
359
|
+
.workflow-card-footer a { color: var(--muted); font-size: .72rem; text-underline-offset: 3px; }
|
|
360
|
+
.workflow-card-footer a:hover { color: var(--text); }
|
|
361
|
+
.workflow-option-list { display: grid; gap: 12px; }
|
|
362
|
+
.workflow-option { display: grid; }
|
|
373
363
|
.workflow-option .runway-step-copy { justify-self: start; }
|
|
364
|
+
.workflow-option small { margin-top: 5px; padding: 0 2px; color: var(--muted); font-size: .7rem; line-height: 1.45; }
|
|
374
365
|
|
|
375
366
|
.vault-layout { display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); gap: 16px; align-items: start; }
|
|
376
367
|
:root[data-vault-tree="hidden"] .vault-layout { grid-template-columns: minmax(0, 1fr); }
|
|
@@ -397,7 +388,7 @@ html[data-agent-viewed] [data-studio-action] { display: none; }
|
|
|
397
388
|
.vault-file { display: flex; text-decoration: none; align-items: center; gap: 6px; width: 100%; overflow: hidden; padding: 4px 6px 4px 24px; border: 0; border-radius: 6px; background: transparent; color: var(--text); font-size: .8rem; text-align: left; white-space: nowrap; }
|
|
398
389
|
.vault-file span, .vault-directory > summary span { overflow: hidden; text-overflow: ellipsis; }
|
|
399
390
|
.vault-file:hover { background: var(--accent-soft); }
|
|
400
|
-
.vault-file[aria-current="page"] { background: var(--accent-soft); color: var(--
|
|
391
|
+
.vault-file[aria-current="page"] { background: var(--accent-soft); color: var(--text); font-weight: 600; }
|
|
401
392
|
.vault-bar { display: flex; align-items: center; gap: 12px; min-height: 36px; margin-bottom: 12px; }
|
|
402
393
|
.vault-tree-toggle { flex: none; padding: 5px 10px; font-size: .78rem; }
|
|
403
394
|
.vault-breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; margin: 0; padding: 0; list-style: none; font-size: .95rem; }
|
|
@@ -419,24 +410,44 @@ html[data-agent-viewed] [data-studio-action] { display: none; }
|
|
|
419
410
|
#vault-editor { display: block; width: 100%; min-height: 62vh; resize: vertical; padding: 16px; border: 1px solid var(--border); border-radius: 8px; background: var(--prompt-bg); color: var(--prompt-text); font-family: var(--mono); font-size: .86rem; line-height: 1.6; }
|
|
420
411
|
#vault-editor:focus { outline: 2px solid var(--accent); outline-offset: 2px; }
|
|
421
412
|
#vault-editor[readonly] { cursor: default; opacity: .85; }
|
|
413
|
+
.vault-actions { display: flex; align-items: center; gap: 8px; }
|
|
414
|
+
.vault-mode-link { display: inline-block; padding: 9px 11px; border: 1px solid var(--border); border-radius: 8px; background: var(--panel); color: inherit; font: inherit; text-decoration: none; }
|
|
415
|
+
.vault-mode-link:hover { background: var(--panel-soft); color: var(--accent); }
|
|
416
|
+
.markdown-body { padding: 4px 2px; line-height: 1.65; overflow-wrap: anywhere; }
|
|
417
|
+
.markdown-body > :first-child { margin-top: 0; }
|
|
418
|
+
.markdown-body h1, .markdown-body h2 { padding-bottom: .3em; border-bottom: 1px solid var(--border); }
|
|
419
|
+
.markdown-body h1, .markdown-body h2, .markdown-body h3, .markdown-body h4, .markdown-body h5, .markdown-body h6 { margin: 1.4em 0 .6em; line-height: 1.25; }
|
|
420
|
+
.markdown-body p, .markdown-body ul, .markdown-body ol, .markdown-body blockquote, .markdown-body pre, .markdown-body .md-table { margin: 0 0 1em; }
|
|
421
|
+
.markdown-body ul, .markdown-body ol { padding-left: 2em; }
|
|
422
|
+
.markdown-body li > ul, .markdown-body li > ol { margin: .25em 0 0; }
|
|
423
|
+
.markdown-body li.md-task { list-style: none; margin-left: -1.4em; }
|
|
424
|
+
.markdown-body li.md-task input { margin: 0 .5em 0 0; vertical-align: middle; }
|
|
425
|
+
.markdown-body blockquote { padding: 0 1em; border-left: .25em solid var(--border); color: var(--muted); }
|
|
426
|
+
.markdown-body code { padding: .15em .35em; border-radius: 6px; background: var(--panel-soft); font-family: var(--mono); font-size: .86em; }
|
|
427
|
+
.markdown-body pre { overflow: auto; padding: 14px 16px; border: 1px solid var(--border); border-radius: 8px; line-height: 1.5; }
|
|
428
|
+
.markdown-body pre code { padding: 0; background: transparent; font-size: .84rem; }
|
|
429
|
+
.markdown-body hr { height: 1px; margin: 1.5em 0; border: 0; background: var(--border); }
|
|
430
|
+
.markdown-body .md-table { overflow-x: auto; }
|
|
431
|
+
.markdown-body table { border-collapse: collapse; }
|
|
432
|
+
.markdown-body th, .markdown-body td { padding: 6px 13px; border: 1px solid var(--border); }
|
|
433
|
+
.markdown-body th { background: var(--panel-soft); }
|
|
434
|
+
.markdown-body .md-raw { color: var(--muted); font-family: var(--mono); font-size: .86rem; white-space: pre-wrap; }
|
|
435
|
+
.markdown-body pre.md-fence { background: var(--panel-soft); color: var(--text); }
|
|
436
|
+
.md-fence .th-comment, .md-fence .th-meta { color: var(--muted); }
|
|
437
|
+
.md-fence .th-keyword, .md-fence .th-operator, .md-fence .th-command { color: var(--info); }
|
|
438
|
+
.md-fence .th-string, .md-fence .th-inserted { color: var(--done); }
|
|
439
|
+
.md-fence .th-number, .md-fence .th-literal, .md-fence .th-attr { color: var(--warn); }
|
|
440
|
+
.md-fence .th-function, .md-fence .th-type, .md-fence .th-tag, .md-fence .th-property, .md-fence .th-selector, .md-fence .th-heading { color: var(--accent); }
|
|
441
|
+
.md-fence .th-deleted { color: var(--bad); }
|
|
422
442
|
.vault-incoming { display: grid; gap: 8px; margin-top: 16px; padding: 12px; border: 1px solid var(--warn); border-radius: 8px; background: var(--warn-soft); }
|
|
423
443
|
.vault-incoming pre { max-height: 220px; overflow: auto; margin: 0; white-space: pre-wrap; font-family: var(--mono); font-size: .78rem; }
|
|
424
444
|
@media (max-width: 800px) { .vault-layout { grid-template-columns: 1fr; } .vault-tree-panel { position: static; max-height: 50vh; } }
|
|
425
445
|
|
|
426
446
|
@media (max-width: 650px) {
|
|
427
|
-
|
|
428
|
-
.workflow-console-context, .workflow-console-tabs { margin-left: 0; }
|
|
429
|
-
.workflow-console-context { grid-template-columns: minmax(0, 1fr); }
|
|
430
|
-
.workflow-console-context > span { margin-bottom: 2px; }
|
|
431
|
-
.workflow-console-tabs button { min-width: 0; flex: 1; padding-right: 8px; padding-left: 8px; }
|
|
432
|
-
.workflow-console-panels { margin-left: 0; padding-left: 10px; }
|
|
433
|
-
.workflow-console-command { grid-template-columns: auto minmax(0, 1fr); }
|
|
434
|
-
.workflow-console-command .runway-step-copy { grid-column: 2; justify-self: start; }
|
|
435
|
-
.workflow-console-divider, .workflow-console .workflow-session-break { padding-left: 0; margin-left: 0; }
|
|
436
|
-
}
|
|
447
|
+
}
|
|
437
448
|
|
|
438
449
|
@media (max-width: 760px) {
|
|
439
|
-
.lookup-
|
|
450
|
+
.lookup-view .scroll { overflow: visible; }
|
|
440
451
|
.lookup-table { display: block; }
|
|
441
452
|
.lookup-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
|
|
442
453
|
.lookup-table tbody { display: grid; gap: 0; }
|
|
@@ -490,8 +501,8 @@ html[data-agent-viewed] [data-studio-action] { display: none; }
|
|
|
490
501
|
.terminal-drawer-open { display: none; }
|
|
491
502
|
|
|
492
503
|
@media (min-width: 1201px) {
|
|
493
|
-
.shell[data-terminal] { grid-template-columns:
|
|
494
|
-
:root[data-terminal-collapsed] .shell[data-terminal] { grid-template-columns:
|
|
504
|
+
.shell[data-terminal] { grid-template-columns: 224px minmax(0, 1fr) clamp(360px, var(--terminal-width, min(560px, 40vw)), 70vw); }
|
|
505
|
+
:root[data-terminal-collapsed] .shell[data-terminal] { grid-template-columns: 224px minmax(0, 1fr) var(--terminal-strip, 44px); }
|
|
495
506
|
:root[data-terminal-collapsed] .shell[data-terminal] .terminal-body,
|
|
496
507
|
:root[data-terminal-collapsed] .shell[data-terminal] .terminal-resize { display: none; }
|
|
497
508
|
:root[data-terminal-collapsed] .shell[data-terminal] .terminal-strip { display: flex; }
|
|
@@ -506,7 +517,7 @@ html[data-agent-viewed] [data-studio-action] { display: none; }
|
|
|
506
517
|
width: min(92vw, clamp(360px, var(--terminal-width, min(560px, 40vw)), 70vw));
|
|
507
518
|
height: 100vh;
|
|
508
519
|
z-index: 30;
|
|
509
|
-
box-shadow: var(--shadow);
|
|
520
|
+
box-shadow: var(--drawer-shadow);
|
|
510
521
|
transform: translateX(100%);
|
|
511
522
|
visibility: hidden;
|
|
512
523
|
transition: transform .2s, visibility .2s;
|
|
@@ -514,6 +525,6 @@ html[data-agent-viewed] [data-studio-action] { display: none; }
|
|
|
514
525
|
.shell[data-terminal] .terminal-sidebar[data-drawer-open] { transform: none; visibility: visible; }
|
|
515
526
|
.shell[data-terminal] #terminal-collapse { display: none; }
|
|
516
527
|
.shell[data-terminal] #terminal-drawer-close { display: grid; }
|
|
517
|
-
.terminal-drawer-open { display: block; position: fixed; right: 18px; bottom: 18px; z-index: 25; box-shadow: var(--shadow); }
|
|
528
|
+
.terminal-drawer-open { display: block; position: fixed; right: 18px; bottom: 18px; z-index: 25; box-shadow: var(--drawer-shadow); }
|
|
518
529
|
}
|
|
519
530
|
`;
|