issue-flow 0.13.0 → 0.14.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/dist/agent-OX3KPHE4.js +30 -0
- package/dist/{analyze-WS47UYGN.js → analyze-WIND2SEB.js} +21 -18
- package/dist/{analyze-WS47UYGN.js.map → analyze-WIND2SEB.js.map} +1 -1
- package/dist/{apply-OS62UWRN.js → apply-JNOI2LR4.js} +14 -11
- package/dist/{apply-OS62UWRN.js.map → apply-JNOI2LR4.js.map} +1 -1
- package/dist/{bench-SA3BOME5.js → bench-B4VZON7E.js} +30 -26
- package/dist/{bench-SA3BOME5.js.map → bench-B4VZON7E.js.map} +1 -1
- package/dist/{chunk-PIVGJM6K.js → chunk-2IQ6M4ZE.js} +11 -11
- package/dist/{chunk-QCXPNSEL.js → chunk-3BWZO4YI.js} +2 -2
- package/dist/chunk-3WFZETIM.js +163 -0
- package/dist/chunk-3WFZETIM.js.map +1 -0
- package/dist/{chunk-6FDFRNXZ.js → chunk-67YIU2VB.js} +25 -20
- package/dist/chunk-67YIU2VB.js.map +1 -0
- package/dist/{chunk-TM67EHSV.js → chunk-6BENHR2I.js} +19 -19
- package/dist/chunk-6BENHR2I.js.map +1 -0
- package/dist/{chunk-IYV6KNVF.js → chunk-6QYMSNVA.js} +66 -240
- package/dist/chunk-6QYMSNVA.js.map +1 -0
- package/dist/{chunk-IV5SS4JN.js → chunk-76MMPJ53.js} +9 -7
- package/dist/{chunk-IV5SS4JN.js.map → chunk-76MMPJ53.js.map} +1 -1
- package/dist/{chunk-LZ6GFQAG.js → chunk-B72RQZBV.js} +35 -25
- package/dist/chunk-B72RQZBV.js.map +1 -0
- package/dist/{chunk-KQHB7ZT3.js → chunk-BEZ5BA5U.js} +82 -16
- package/dist/chunk-BEZ5BA5U.js.map +1 -0
- package/dist/{chunk-BQDQTIM7.js → chunk-BRCNQXYQ.js} +4 -4
- package/dist/{chunk-ARFVHC2F.js → chunk-CGKLE6WR.js} +115 -23
- package/dist/chunk-CGKLE6WR.js.map +1 -0
- package/dist/{chunk-BHJCGWQX.js → chunk-F6TOYSYY.js} +9 -9
- package/dist/chunk-G5EK2XRN.js +25 -0
- package/dist/chunk-G5EK2XRN.js.map +1 -0
- package/dist/{chunk-TX5WIVYP.js → chunk-HAKDLR6N.js} +6 -1
- package/dist/chunk-HAKDLR6N.js.map +1 -0
- package/dist/{chunk-DIG5XKQQ.js → chunk-J3SOTUVI.js} +2 -2
- package/dist/{chunk-SNTTOQAD.js → chunk-JN6D3MY6.js} +2 -2
- package/dist/{chunk-MIVHK5YI.js → chunk-KMRFRXIT.js} +3 -3
- package/dist/{chunk-5TB6KLC2.js → chunk-KT7JKOXB.js} +8 -8
- package/dist/{chunk-NEZZ6KDR.js → chunk-LBGHI4S2.js} +49 -2
- package/dist/chunk-LBGHI4S2.js.map +1 -0
- package/dist/{chunk-3XLCNVMD.js → chunk-LEW4QM74.js} +2 -2
- package/dist/{chunk-IHIEXUTC.js → chunk-LFEQIZLB.js} +85 -10
- package/dist/chunk-LFEQIZLB.js.map +1 -0
- package/dist/{chunk-TVN2JVOF.js → chunk-OOVG2KBY.js} +3 -3
- package/dist/{chunk-7KD66LIM.js → chunk-OR43364P.js} +3 -3
- package/dist/{chunk-J62QSVP6.js → chunk-PBTA3QQX.js} +8 -7
- package/dist/{chunk-J62QSVP6.js.map → chunk-PBTA3QQX.js.map} +1 -1
- package/dist/{chunk-664Y3NDX.js → chunk-PHW2YV6N.js} +8 -8
- package/dist/{chunk-PV4OX5TC.js → chunk-PZTWU277.js} +11 -11
- package/dist/{chunk-HJGGNLWI.js → chunk-QD4VOILZ.js} +9 -9
- package/dist/{chunk-CNBYCMSU.js → chunk-QJ5UZAH5.js} +27 -18
- package/dist/{chunk-CNBYCMSU.js.map → chunk-QJ5UZAH5.js.map} +1 -1
- package/dist/{chunk-HQAHNIAR.js → chunk-QK7WUO7A.js} +14 -14
- package/dist/{chunk-UJ7XWK7J.js → chunk-QZVKRDJY.js} +16 -14
- package/dist/{chunk-UJ7XWK7J.js.map → chunk-QZVKRDJY.js.map} +1 -1
- package/dist/{chunk-FZDR7CGH.js → chunk-REO3PXXO.js} +3 -3
- package/dist/{chunk-UOCPC2Y2.js → chunk-RVO7L4FX.js} +4 -4
- package/dist/{chunk-QXDNBYQF.js → chunk-SZMHCEYV.js} +21 -10
- package/dist/chunk-SZMHCEYV.js.map +1 -0
- package/dist/chunk-TYRNTSPJ.js +243 -0
- package/dist/chunk-TYRNTSPJ.js.map +1 -0
- package/dist/{agent-BXRIEKVM.js → chunk-UJ3L2MS7.js} +22 -22
- package/dist/chunk-UJ3L2MS7.js.map +1 -0
- package/dist/{chunk-37N2RJW2.js → chunk-V7MO5EDS.js} +3 -3
- package/dist/{chunk-HEF2RMKN.js → chunk-WB2X37MO.js} +18 -16
- package/dist/{chunk-HEF2RMKN.js.map → chunk-WB2X37MO.js.map} +1 -1
- package/dist/{chunk-OPNGPUKJ.js → chunk-X44FKNKP.js} +133 -42
- package/dist/chunk-X44FKNKP.js.map +1 -0
- package/dist/cli.js +43 -40
- package/dist/cli.js.map +1 -1
- package/dist/{config-MEM2IWWN.js → config-HMFMCY2M.js} +12 -9
- package/dist/{conventions-WV4NDXGH.js → conventions-NJF2OPVQ.js} +14 -11
- package/dist/{conventions-WV4NDXGH.js.map → conventions-NJF2OPVQ.js.map} +1 -1
- package/dist/diagnostics-THH42ZMP.js +23 -0
- package/dist/execute-KFNNZZHI.js +35 -0
- package/dist/{generate-MVQI7A45.js → generate-FW5C6NP7.js} +23 -20
- package/dist/{generate-MVQI7A45.js.map → generate-FW5C6NP7.js.map} +1 -1
- package/dist/{git-YRVRUN3C.js → git-W72QQ6GT.js} +4 -2
- package/dist/init-HTN4V67Q.js +24 -0
- package/dist/{operations-LU6JA3BX.js → operations-BCFOBH42.js} +17 -14
- package/dist/{operations-LU6JA3BX.js.map → operations-BCFOBH42.js.map} +1 -1
- package/dist/{permissions-7NMDFU27.js → permissions-4AKNQZHK.js} +4 -4
- package/dist/plan-SIZLGA4V.js +34 -0
- package/dist/{policy-JSYEK5B2.js → policy-DT6Q6ZVM.js} +13 -10
- package/dist/{policy-JSYEK5B2.js.map → policy-DT6Q6ZVM.js.map} +1 -1
- package/dist/pr-OMWCGUOW.js +39 -0
- package/dist/pr-review-N24CZPKR.js +32 -0
- package/dist/prd-5OFTZAHJ.js +33 -0
- package/dist/{ps-TNE44R5V.js → ps-RFORTCUD.js} +11 -8
- package/dist/{ps-TNE44R5V.js.map → ps-RFORTCUD.js.map} +1 -1
- package/dist/{recorder-XGF55WXI.js → recorder-KCCPMKQG.js} +5 -4
- package/dist/registry-GLPXOMFG.js +15 -0
- package/dist/{resume-QMEPMSZW.js → resume-M5RLKP4I.js} +44 -40
- package/dist/{resume-QMEPMSZW.js.map → resume-M5RLKP4I.js.map} +1 -1
- package/dist/review-YM4JAABY.js +35 -0
- package/dist/{routing-2ZUMZPJB.js → routing-NNT5WKGX.js} +13 -10
- package/dist/{routing-2ZUMZPJB.js.map → routing-NNT5WKGX.js.map} +1 -1
- package/dist/run-PZUKHPQK.js +54 -0
- package/dist/run-PZUKHPQK.js.map +1 -0
- package/dist/session-publisher-T7EI3CIP.js +11 -0
- package/dist/session-publisher-T7EI3CIP.js.map +1 -0
- package/dist/{state-manager-X3PT3FGT.js → state-manager-GQH32C44.js} +3 -3
- package/dist/state-manager-GQH32C44.js.map +1 -0
- package/dist/{usage-VCFLDA5Y.js → usage-V2CHE5PY.js} +13 -10
- package/dist/{usage-VCFLDA5Y.js.map → usage-V2CHE5PY.js.map} +1 -1
- package/dist/{web-XVHLX62B.js → web-EA3KGNFN.js} +18 -14
- package/dist/{web-XVHLX62B.js.map → web-EA3KGNFN.js.map} +1 -1
- package/package.json +1 -1
- package/web/AGENTS.md +150 -11
- package/web/public/app.css +343 -110
- package/web/public/app.js +408 -18
- package/web/public/index.html +44 -1
- package/dist/agent-BXRIEKVM.js.map +0 -1
- package/dist/chunk-6FDFRNXZ.js.map +0 -1
- package/dist/chunk-ARFVHC2F.js.map +0 -1
- package/dist/chunk-IHIEXUTC.js.map +0 -1
- package/dist/chunk-IYV6KNVF.js.map +0 -1
- package/dist/chunk-KQHB7ZT3.js.map +0 -1
- package/dist/chunk-LZ6GFQAG.js.map +0 -1
- package/dist/chunk-NEZZ6KDR.js.map +0 -1
- package/dist/chunk-OPNGPUKJ.js.map +0 -1
- package/dist/chunk-QXDNBYQF.js.map +0 -1
- package/dist/chunk-TM67EHSV.js.map +0 -1
- package/dist/chunk-TX5WIVYP.js.map +0 -1
- package/dist/execute-NITIHHCK.js +0 -31
- package/dist/init-OKWEC3EV.js +0 -21
- package/dist/plan-LEJJF3DE.js +0 -31
- package/dist/pr-HPVUZ7S3.js +0 -36
- package/dist/pr-review-R2QZBT3F.js +0 -29
- package/dist/prd-5O6GYCC6.js +0 -30
- package/dist/registry-LGPE53QD.js +0 -15
- package/dist/review-YKWD6SNN.js +0 -32
- package/dist/run-YU4TR62R.js +0 -50
- /package/dist/{config-MEM2IWWN.js.map → agent-OX3KPHE4.js.map} +0 -0
- /package/dist/{chunk-PIVGJM6K.js.map → chunk-2IQ6M4ZE.js.map} +0 -0
- /package/dist/{chunk-QCXPNSEL.js.map → chunk-3BWZO4YI.js.map} +0 -0
- /package/dist/{chunk-BQDQTIM7.js.map → chunk-BRCNQXYQ.js.map} +0 -0
- /package/dist/{chunk-BHJCGWQX.js.map → chunk-F6TOYSYY.js.map} +0 -0
- /package/dist/{chunk-DIG5XKQQ.js.map → chunk-J3SOTUVI.js.map} +0 -0
- /package/dist/{chunk-SNTTOQAD.js.map → chunk-JN6D3MY6.js.map} +0 -0
- /package/dist/{chunk-MIVHK5YI.js.map → chunk-KMRFRXIT.js.map} +0 -0
- /package/dist/{chunk-5TB6KLC2.js.map → chunk-KT7JKOXB.js.map} +0 -0
- /package/dist/{chunk-3XLCNVMD.js.map → chunk-LEW4QM74.js.map} +0 -0
- /package/dist/{chunk-TVN2JVOF.js.map → chunk-OOVG2KBY.js.map} +0 -0
- /package/dist/{chunk-7KD66LIM.js.map → chunk-OR43364P.js.map} +0 -0
- /package/dist/{chunk-664Y3NDX.js.map → chunk-PHW2YV6N.js.map} +0 -0
- /package/dist/{chunk-PV4OX5TC.js.map → chunk-PZTWU277.js.map} +0 -0
- /package/dist/{chunk-HJGGNLWI.js.map → chunk-QD4VOILZ.js.map} +0 -0
- /package/dist/{chunk-HQAHNIAR.js.map → chunk-QK7WUO7A.js.map} +0 -0
- /package/dist/{chunk-FZDR7CGH.js.map → chunk-REO3PXXO.js.map} +0 -0
- /package/dist/{chunk-UOCPC2Y2.js.map → chunk-RVO7L4FX.js.map} +0 -0
- /package/dist/{chunk-37N2RJW2.js.map → chunk-V7MO5EDS.js.map} +0 -0
- /package/dist/{execute-NITIHHCK.js.map → config-HMFMCY2M.js.map} +0 -0
- /package/dist/{git-YRVRUN3C.js.map → diagnostics-THH42ZMP.js.map} +0 -0
- /package/dist/{init-OKWEC3EV.js.map → execute-KFNNZZHI.js.map} +0 -0
- /package/dist/{permissions-7NMDFU27.js.map → git-W72QQ6GT.js.map} +0 -0
- /package/dist/{plan-LEJJF3DE.js.map → init-HTN4V67Q.js.map} +0 -0
- /package/dist/{pr-HPVUZ7S3.js.map → permissions-4AKNQZHK.js.map} +0 -0
- /package/dist/{pr-review-R2QZBT3F.js.map → plan-SIZLGA4V.js.map} +0 -0
- /package/dist/{prd-5O6GYCC6.js.map → pr-OMWCGUOW.js.map} +0 -0
- /package/dist/{recorder-XGF55WXI.js.map → pr-review-N24CZPKR.js.map} +0 -0
- /package/dist/{registry-LGPE53QD.js.map → prd-5OFTZAHJ.js.map} +0 -0
- /package/dist/{review-YKWD6SNN.js.map → recorder-KCCPMKQG.js.map} +0 -0
- /package/dist/{run-YU4TR62R.js.map → registry-GLPXOMFG.js.map} +0 -0
- /package/dist/{state-manager-X3PT3FGT.js.map → review-YM4JAABY.js.map} +0 -0
package/web/public/app.css
CHANGED
|
@@ -1,48 +1,137 @@
|
|
|
1
1
|
/* Interface do monitoramento web do issue-flow.
|
|
2
2
|
Autocontida: sem fontes externas, sem CDN — funciona offline. */
|
|
3
3
|
|
|
4
|
+
/* ---- Paleta ----
|
|
5
|
+
|
|
6
|
+
Tokens nomeados por papel (superfície, texto, borda, acento, estado, foco),
|
|
7
|
+
nunca por local de uso: mexer na hierarquia visual não exige inventar uma cor
|
|
8
|
+
por componente. `:root` carrega a paleta clara **inteira** — nenhum token
|
|
9
|
+
pode ter sua única definição dentro de um `@media` ou de um `[data-theme]`,
|
|
10
|
+
ou o tema oposto fica sem ele. */
|
|
11
|
+
|
|
4
12
|
:root {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
13
|
+
/* Esquema dos controles nativos. Os blocos de tema escuro abaixo o
|
|
14
|
+
sobrescrevem. */
|
|
15
|
+
color-scheme: light;
|
|
16
|
+
|
|
17
|
+
/* Superfície: página, cartão elevado e recesso neutro. */
|
|
18
|
+
--surface-page: #f4f5f7;
|
|
19
|
+
--surface: #ffffff;
|
|
20
|
+
--surface-sunken: #e5e7eb;
|
|
21
|
+
|
|
22
|
+
/* Texto. `--text-subtle` está reservado para uma terceira hierarquia
|
|
23
|
+
(legendas, metadados) que o painel ainda não usa — mas já cumpre 4,5:1
|
|
24
|
+
sobre as três superfícies, para poder ser usado sem nova auditoria.
|
|
25
|
+
Os três são medidos contra a superfície mais escura do tema claro
|
|
26
|
+
(`--surface-sunken`); ver a tabela de contraste em `web/AGENTS.md`. */
|
|
27
|
+
--text: #1a1f27;
|
|
28
|
+
--text-muted: #4b5563;
|
|
29
|
+
--text-subtle: #5f6773;
|
|
30
|
+
|
|
31
|
+
/* Borda. `--border-strong` está reservado para separadores que precisem
|
|
32
|
+
vencer o ruído de uma lista densa; hoje nenhum precisa. */
|
|
9
33
|
--border: #e2e5ea;
|
|
34
|
+
--border-strong: #c7ccd4;
|
|
35
|
+
|
|
36
|
+
/* Acento. `--accent-text` é o texto sobre um preenchimento sólido de acento
|
|
37
|
+
ou de estado (hoje: o banner de desconexão). */
|
|
10
38
|
--accent: #4f46e5;
|
|
11
|
-
--
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
--
|
|
18
|
-
--ok-
|
|
19
|
-
--
|
|
39
|
+
--accent-text: #ffffff;
|
|
40
|
+
|
|
41
|
+
/* Estado: a cor do texto/ícone e a superfície que a acompanha no badge.
|
|
42
|
+
No tema claro as quatro cores ficam no nível 700 da escala — é o mais
|
|
43
|
+
claro que atende 4,5:1 sobre a própria superfície do badge. O limiar é
|
|
44
|
+
4,5:1 e não 3:1 porque `.badge` é 0.78rem/600, abaixo de texto grande. */
|
|
45
|
+
--state-ok: #15803d;
|
|
46
|
+
--state-ok-surface: #dcfce7;
|
|
47
|
+
--state-run: #1d4ed8;
|
|
48
|
+
--state-run-surface: #dbeafe;
|
|
49
|
+
--state-warn: #b45309;
|
|
50
|
+
--state-warn-surface: #fef3c7;
|
|
51
|
+
--state-error: #b91c1c;
|
|
52
|
+
--state-error-surface: #fee2e2;
|
|
53
|
+
|
|
54
|
+
/* Foco por teclado: o anel de `:focus-visible`. Precisa de 3:1 contra o que
|
|
55
|
+
estiver adjacente (a superfície ao redor do anel), não de 4,5:1 — é um
|
|
56
|
+
componente gráfico, não texto. */
|
|
57
|
+
--focus-ring: #4f46e5;
|
|
58
|
+
|
|
20
59
|
--shadow: 0 1px 2px rgb(0 0 0 / 0.06);
|
|
21
60
|
--overlay: rgb(0 0 0 / 0.45);
|
|
22
61
|
}
|
|
23
62
|
|
|
63
|
+
/* ---- Tema escuro ----
|
|
64
|
+
|
|
65
|
+
Dois blocos gêmeos: o do sistema e o forçado pelo controle do painel.
|
|
66
|
+
**Os dois carregam exatamente a mesma lista de overrides e precisam mudar
|
|
67
|
+
juntos** — mexeu em um, mexa no outro. Só entram aqui os tokens cujo valor
|
|
68
|
+
muda; o que é igual nos dois temas fica só em `:root`.
|
|
69
|
+
|
|
70
|
+
O guarda `:not([data-theme='light'])` é o que faz a escolha manual vencer o
|
|
71
|
+
sistema: com o SO em escuro e o tema forçado em claro, o `@media` não
|
|
72
|
+
sobrescreve nada.
|
|
73
|
+
|
|
74
|
+
`color-scheme` vai dentro de cada bloco (e não no `<html>` nem num `<meta>`)
|
|
75
|
+
porque é ele que manda nos controles nativos — `<select>`, `<progress>`,
|
|
76
|
+
barras de rolagem — e precisa acompanhar o tema efetivo, não o do SO. */
|
|
77
|
+
|
|
24
78
|
@media (prefers-color-scheme: dark) {
|
|
25
|
-
:root {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
--
|
|
29
|
-
--
|
|
79
|
+
:root:not([data-theme='light']) {
|
|
80
|
+
color-scheme: dark;
|
|
81
|
+
|
|
82
|
+
--surface-page: #0f1218;
|
|
83
|
+
--surface: #171c24;
|
|
84
|
+
--surface-sunken: #262d38;
|
|
85
|
+
--text: #e5e9f0;
|
|
86
|
+
--text-muted: #9aa1ad;
|
|
87
|
+
--text-subtle: #8f97a5;
|
|
30
88
|
--border: #262d38;
|
|
31
89
|
--accent: #818cf8;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
--
|
|
36
|
-
--
|
|
37
|
-
--
|
|
38
|
-
--run
|
|
39
|
-
--
|
|
40
|
-
--
|
|
90
|
+
/* No escuro os preenchimentos sólidos (acento e estado) são claros, então
|
|
91
|
+
o texto sobre eles inverte — branco sobre `--state-error` daria 2,98:1
|
|
92
|
+
no banner de desconexão. */
|
|
93
|
+
--accent-text: #0f1218;
|
|
94
|
+
--state-ok: #4ade80;
|
|
95
|
+
--state-ok-surface: #14301f;
|
|
96
|
+
--state-run: #60a5fa;
|
|
97
|
+
--state-run-surface: #172a45;
|
|
98
|
+
--state-warn: #fbbf24;
|
|
99
|
+
--state-warn-surface: #3a2d10;
|
|
100
|
+
--state-error: #f87171;
|
|
101
|
+
--state-error-surface: #3b1a1a;
|
|
102
|
+
--focus-ring: #818cf8;
|
|
41
103
|
--shadow: none;
|
|
42
104
|
--overlay: rgb(0 0 0 / 0.65);
|
|
43
105
|
}
|
|
44
106
|
}
|
|
45
107
|
|
|
108
|
+
/* Gêmeo do bloco acima — mesma lista de overrides, mudam juntos. */
|
|
109
|
+
:root[data-theme='dark'] {
|
|
110
|
+
color-scheme: dark;
|
|
111
|
+
|
|
112
|
+
--surface-page: #0f1218;
|
|
113
|
+
--surface: #171c24;
|
|
114
|
+
--surface-sunken: #262d38;
|
|
115
|
+
--text: #e5e9f0;
|
|
116
|
+
--text-muted: #9aa1ad;
|
|
117
|
+
--text-subtle: #8f97a5;
|
|
118
|
+
--border: #262d38;
|
|
119
|
+
--accent: #818cf8;
|
|
120
|
+
/* Ver o comentário do bloco gêmeo acima. */
|
|
121
|
+
--accent-text: #0f1218;
|
|
122
|
+
--state-ok: #4ade80;
|
|
123
|
+
--state-ok-surface: #14301f;
|
|
124
|
+
--state-run: #60a5fa;
|
|
125
|
+
--state-run-surface: #172a45;
|
|
126
|
+
--state-warn: #fbbf24;
|
|
127
|
+
--state-warn-surface: #3a2d10;
|
|
128
|
+
--state-error: #f87171;
|
|
129
|
+
--state-error-surface: #3b1a1a;
|
|
130
|
+
--focus-ring: #818cf8;
|
|
131
|
+
--shadow: none;
|
|
132
|
+
--overlay: rgb(0 0 0 / 0.65);
|
|
133
|
+
}
|
|
134
|
+
|
|
46
135
|
* {
|
|
47
136
|
box-sizing: border-box;
|
|
48
137
|
}
|
|
@@ -53,8 +142,8 @@
|
|
|
53
142
|
|
|
54
143
|
body {
|
|
55
144
|
margin: 0;
|
|
56
|
-
background: var(--
|
|
57
|
-
color: var(--
|
|
145
|
+
background: var(--surface-page);
|
|
146
|
+
color: var(--text);
|
|
58
147
|
font: 15px/1.5 system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
|
|
59
148
|
}
|
|
60
149
|
|
|
@@ -79,11 +168,11 @@ main > *,
|
|
|
79
168
|
}
|
|
80
169
|
|
|
81
170
|
.muted {
|
|
82
|
-
color: var(--muted);
|
|
171
|
+
color: var(--text-muted);
|
|
83
172
|
}
|
|
84
173
|
|
|
85
174
|
.card {
|
|
86
|
-
background: var(--
|
|
175
|
+
background: var(--surface);
|
|
87
176
|
border: 1px solid var(--border);
|
|
88
177
|
border-radius: 10px;
|
|
89
178
|
padding: 16px;
|
|
@@ -104,7 +193,7 @@ h2 {
|
|
|
104
193
|
font-weight: 600;
|
|
105
194
|
text-transform: uppercase;
|
|
106
195
|
letter-spacing: 0.06em;
|
|
107
|
-
color: var(--muted);
|
|
196
|
+
color: var(--text-muted);
|
|
108
197
|
}
|
|
109
198
|
|
|
110
199
|
a {
|
|
@@ -133,14 +222,14 @@ a:hover {
|
|
|
133
222
|
padding: 8px 14px;
|
|
134
223
|
font: inherit;
|
|
135
224
|
font-weight: 600;
|
|
136
|
-
color: var(--muted);
|
|
225
|
+
color: var(--text-muted);
|
|
137
226
|
cursor: pointer;
|
|
138
227
|
border-radius: 6px 6px 0 0;
|
|
139
228
|
}
|
|
140
229
|
|
|
141
230
|
.tab:hover {
|
|
142
|
-
color: var(--
|
|
143
|
-
background: var(--
|
|
231
|
+
color: var(--text);
|
|
232
|
+
background: var(--surface);
|
|
144
233
|
}
|
|
145
234
|
|
|
146
235
|
.tab.is-active {
|
|
@@ -199,17 +288,18 @@ a:hover {
|
|
|
199
288
|
}
|
|
200
289
|
|
|
201
290
|
.refresh-control,
|
|
291
|
+
.theme-control,
|
|
202
292
|
.log-filter-control {
|
|
203
293
|
font-size: 0.82rem;
|
|
204
|
-
color: var(--muted);
|
|
294
|
+
color: var(--text-muted);
|
|
205
295
|
display: inline-flex;
|
|
206
296
|
align-items: center;
|
|
207
297
|
gap: 6px;
|
|
208
298
|
}
|
|
209
299
|
|
|
210
300
|
select {
|
|
211
|
-
background: var(--
|
|
212
|
-
color: var(--
|
|
301
|
+
background: var(--surface);
|
|
302
|
+
color: var(--text);
|
|
213
303
|
border: 1px solid var(--border);
|
|
214
304
|
border-radius: 6px;
|
|
215
305
|
padding: 3px 6px;
|
|
@@ -230,23 +320,23 @@ select {
|
|
|
230
320
|
}
|
|
231
321
|
|
|
232
322
|
.status-idle {
|
|
233
|
-
background: var(--
|
|
234
|
-
color: var(--muted);
|
|
323
|
+
background: var(--surface-sunken);
|
|
324
|
+
color: var(--text-muted);
|
|
235
325
|
}
|
|
236
326
|
|
|
237
327
|
.status-running {
|
|
238
|
-
background: var(--run-
|
|
239
|
-
color: var(--run);
|
|
328
|
+
background: var(--state-run-surface);
|
|
329
|
+
color: var(--state-run);
|
|
240
330
|
}
|
|
241
331
|
|
|
242
332
|
.status-completed {
|
|
243
|
-
background: var(--ok-
|
|
244
|
-
color: var(--ok);
|
|
333
|
+
background: var(--state-ok-surface);
|
|
334
|
+
color: var(--state-ok);
|
|
245
335
|
}
|
|
246
336
|
|
|
247
337
|
.status-failed {
|
|
248
|
-
background: var(--
|
|
249
|
-
color: var(--
|
|
338
|
+
background: var(--state-error-surface);
|
|
339
|
+
color: var(--state-error);
|
|
250
340
|
}
|
|
251
341
|
|
|
252
342
|
/* ---- Banner de desconexão ---- */
|
|
@@ -255,8 +345,8 @@ select {
|
|
|
255
345
|
position: sticky;
|
|
256
346
|
top: 0;
|
|
257
347
|
z-index: 10;
|
|
258
|
-
background: var(--
|
|
259
|
-
color:
|
|
348
|
+
background: var(--state-error);
|
|
349
|
+
color: var(--accent-text);
|
|
260
350
|
text-align: center;
|
|
261
351
|
padding: 8px 16px;
|
|
262
352
|
font-weight: 600;
|
|
@@ -265,25 +355,25 @@ select {
|
|
|
265
355
|
/* ---- Erros e avisos em destaque ---- */
|
|
266
356
|
|
|
267
357
|
.alerts {
|
|
268
|
-
border-color: var(--
|
|
358
|
+
border-color: var(--state-error);
|
|
269
359
|
}
|
|
270
360
|
|
|
271
361
|
.alert-entry {
|
|
272
|
-
border-left: 3px solid var(--
|
|
362
|
+
border-left: 3px solid var(--state-error);
|
|
273
363
|
padding: 4px 10px;
|
|
274
364
|
margin: 6px 0;
|
|
275
365
|
border-radius: 0 6px 6px 0;
|
|
276
|
-
background: var(--
|
|
366
|
+
background: var(--state-error-surface);
|
|
277
367
|
}
|
|
278
368
|
|
|
279
369
|
.alert-entry.level-warn {
|
|
280
|
-
border-left-color: var(--warn);
|
|
281
|
-
background: var(--warn-
|
|
370
|
+
border-left-color: var(--state-warn);
|
|
371
|
+
background: var(--state-warn-surface);
|
|
282
372
|
}
|
|
283
373
|
|
|
284
374
|
.alert-count {
|
|
285
375
|
font-size: 0.82rem;
|
|
286
|
-
color: var(--muted);
|
|
376
|
+
color: var(--text-muted);
|
|
287
377
|
margin: 0 0 4px;
|
|
288
378
|
}
|
|
289
379
|
|
|
@@ -310,26 +400,26 @@ select {
|
|
|
310
400
|
}
|
|
311
401
|
|
|
312
402
|
.label-badge {
|
|
313
|
-
background: var(--
|
|
314
|
-
color: var(--
|
|
403
|
+
background: var(--surface-sunken);
|
|
404
|
+
color: var(--text);
|
|
315
405
|
text-transform: none;
|
|
316
406
|
font-weight: 500;
|
|
317
407
|
letter-spacing: normal;
|
|
318
408
|
}
|
|
319
409
|
|
|
320
410
|
.state-open {
|
|
321
|
-
background: var(--run-
|
|
322
|
-
color: var(--run);
|
|
411
|
+
background: var(--state-run-surface);
|
|
412
|
+
color: var(--state-run);
|
|
323
413
|
}
|
|
324
414
|
|
|
325
415
|
.state-closed {
|
|
326
|
-
background: var(--ok-
|
|
327
|
-
color: var(--ok);
|
|
416
|
+
background: var(--state-ok-surface);
|
|
417
|
+
color: var(--state-ok);
|
|
328
418
|
}
|
|
329
419
|
|
|
330
420
|
.state-unknown {
|
|
331
|
-
background: var(--
|
|
332
|
-
color: var(--muted);
|
|
421
|
+
background: var(--surface-sunken);
|
|
422
|
+
color: var(--text-muted);
|
|
333
423
|
}
|
|
334
424
|
|
|
335
425
|
.issue-description {
|
|
@@ -351,23 +441,23 @@ select {
|
|
|
351
441
|
}
|
|
352
442
|
|
|
353
443
|
.story-status-backlog {
|
|
354
|
-
background: var(--
|
|
355
|
-
color: var(--muted);
|
|
444
|
+
background: var(--surface-sunken);
|
|
445
|
+
color: var(--text-muted);
|
|
356
446
|
}
|
|
357
447
|
|
|
358
448
|
.story-status-in_progress {
|
|
359
|
-
background: var(--run-
|
|
360
|
-
color: var(--run);
|
|
449
|
+
background: var(--state-run-surface);
|
|
450
|
+
color: var(--state-run);
|
|
361
451
|
}
|
|
362
452
|
|
|
363
453
|
.story-status-in_review {
|
|
364
|
-
background: var(--warn-
|
|
365
|
-
color: var(--warn);
|
|
454
|
+
background: var(--state-warn-surface);
|
|
455
|
+
color: var(--state-warn);
|
|
366
456
|
}
|
|
367
457
|
|
|
368
458
|
.story-status-done {
|
|
369
|
-
background: var(--ok-
|
|
370
|
-
color: var(--ok);
|
|
459
|
+
background: var(--state-ok-surface);
|
|
460
|
+
color: var(--state-ok);
|
|
371
461
|
}
|
|
372
462
|
|
|
373
463
|
.story-deps {
|
|
@@ -409,7 +499,7 @@ progress {
|
|
|
409
499
|
}
|
|
410
500
|
|
|
411
501
|
.now-grid dt {
|
|
412
|
-
color: var(--muted);
|
|
502
|
+
color: var(--text-muted);
|
|
413
503
|
font-size: 0.86rem;
|
|
414
504
|
}
|
|
415
505
|
|
|
@@ -425,7 +515,7 @@ progress {
|
|
|
425
515
|
width: 8px;
|
|
426
516
|
height: 8px;
|
|
427
517
|
border-radius: 50%;
|
|
428
|
-
background: var(--run);
|
|
518
|
+
background: var(--state-run);
|
|
429
519
|
margin-right: 6px;
|
|
430
520
|
animation: pulse 1.4s ease-in-out infinite;
|
|
431
521
|
}
|
|
@@ -464,7 +554,7 @@ progress {
|
|
|
464
554
|
|
|
465
555
|
.history-type {
|
|
466
556
|
flex: 0 0 9rem;
|
|
467
|
-
color: var(--muted);
|
|
557
|
+
color: var(--text-muted);
|
|
468
558
|
}
|
|
469
559
|
|
|
470
560
|
.history-message {
|
|
@@ -501,26 +591,26 @@ progress {
|
|
|
501
591
|
"User stories". A borda esquerda usa box-shadow (não border) para não
|
|
502
592
|
deslocar o conteúdo do item ao ganhar/perder a classe. */
|
|
503
593
|
.story-executing {
|
|
504
|
-
background: var(--run-
|
|
594
|
+
background: var(--state-run-surface);
|
|
505
595
|
border-radius: 6px;
|
|
506
|
-
box-shadow: inset 3px 0 0 0 var(--run);
|
|
596
|
+
box-shadow: inset 3px 0 0 0 var(--state-run);
|
|
507
597
|
padding-left: 9px;
|
|
508
598
|
}
|
|
509
599
|
|
|
510
600
|
.icon-completed {
|
|
511
|
-
color: var(--ok);
|
|
601
|
+
color: var(--state-ok);
|
|
512
602
|
}
|
|
513
603
|
|
|
514
604
|
.icon-running {
|
|
515
|
-
color: var(--run);
|
|
605
|
+
color: var(--state-run);
|
|
516
606
|
}
|
|
517
607
|
|
|
518
608
|
.icon-failed {
|
|
519
|
-
color: var(--
|
|
609
|
+
color: var(--state-error);
|
|
520
610
|
}
|
|
521
611
|
|
|
522
612
|
.icon-pending {
|
|
523
|
-
color: var(--muted);
|
|
613
|
+
color: var(--text-muted);
|
|
524
614
|
}
|
|
525
615
|
|
|
526
616
|
.item-main {
|
|
@@ -535,7 +625,7 @@ progress {
|
|
|
535
625
|
}
|
|
536
626
|
|
|
537
627
|
.item-error {
|
|
538
|
-
color: var(--
|
|
628
|
+
color: var(--state-error);
|
|
539
629
|
font-size: 0.85rem;
|
|
540
630
|
white-space: pre-wrap;
|
|
541
631
|
word-break: break-word;
|
|
@@ -543,7 +633,7 @@ progress {
|
|
|
543
633
|
|
|
544
634
|
.item-side {
|
|
545
635
|
flex: none;
|
|
546
|
-
color: var(--muted);
|
|
636
|
+
color: var(--text-muted);
|
|
547
637
|
font-size: 0.84rem;
|
|
548
638
|
font-variant-numeric: tabular-nums;
|
|
549
639
|
/* Com duração + tokens + custo o slot fica bem mais largo; alinhar à
|
|
@@ -597,7 +687,7 @@ progress {
|
|
|
597
687
|
|
|
598
688
|
.log-time {
|
|
599
689
|
flex: none;
|
|
600
|
-
color: var(--muted);
|
|
690
|
+
color: var(--text-muted);
|
|
601
691
|
}
|
|
602
692
|
|
|
603
693
|
.log-level {
|
|
@@ -607,15 +697,15 @@ progress {
|
|
|
607
697
|
}
|
|
608
698
|
|
|
609
699
|
.level-info .log-level {
|
|
610
|
-
color: var(--muted);
|
|
700
|
+
color: var(--text-muted);
|
|
611
701
|
}
|
|
612
702
|
|
|
613
703
|
.level-warn .log-level {
|
|
614
|
-
color: var(--warn);
|
|
704
|
+
color: var(--state-warn);
|
|
615
705
|
}
|
|
616
706
|
|
|
617
707
|
.level-error .log-level {
|
|
618
|
-
color: var(--
|
|
708
|
+
color: var(--state-error);
|
|
619
709
|
}
|
|
620
710
|
|
|
621
711
|
.log-message {
|
|
@@ -635,7 +725,7 @@ progress {
|
|
|
635
725
|
}
|
|
636
726
|
|
|
637
727
|
.kanban-column {
|
|
638
|
-
background: var(--
|
|
728
|
+
background: var(--surface-page);
|
|
639
729
|
border: 1px solid var(--border);
|
|
640
730
|
border-radius: 8px;
|
|
641
731
|
padding: 10px;
|
|
@@ -657,13 +747,13 @@ progress {
|
|
|
657
747
|
font-weight: 600;
|
|
658
748
|
text-transform: uppercase;
|
|
659
749
|
letter-spacing: 0.06em;
|
|
660
|
-
color: var(--muted);
|
|
750
|
+
color: var(--text-muted);
|
|
661
751
|
}
|
|
662
752
|
|
|
663
753
|
.kanban-column-count {
|
|
664
754
|
flex: none;
|
|
665
|
-
background: var(--
|
|
666
|
-
color: var(--muted);
|
|
755
|
+
background: var(--surface-sunken);
|
|
756
|
+
color: var(--text-muted);
|
|
667
757
|
border-radius: 999px;
|
|
668
758
|
padding: 0 7px;
|
|
669
759
|
font-size: 0.74rem;
|
|
@@ -677,7 +767,7 @@ progress {
|
|
|
677
767
|
justify-items: start;
|
|
678
768
|
width: 100%;
|
|
679
769
|
text-align: left;
|
|
680
|
-
background: var(--
|
|
770
|
+
background: var(--surface);
|
|
681
771
|
border: 1px solid var(--border);
|
|
682
772
|
border-radius: 8px;
|
|
683
773
|
padding: 10px;
|
|
@@ -695,7 +785,7 @@ progress {
|
|
|
695
785
|
display: flex;
|
|
696
786
|
align-items: center;
|
|
697
787
|
gap: 2px;
|
|
698
|
-
color: var(--muted);
|
|
788
|
+
color: var(--text-muted);
|
|
699
789
|
font-size: 0.8rem;
|
|
700
790
|
}
|
|
701
791
|
|
|
@@ -710,7 +800,7 @@ progress {
|
|
|
710
800
|
continua no DOM para leitores de tela e para o drawer. */
|
|
711
801
|
.kanban-card-desc {
|
|
712
802
|
margin: 0;
|
|
713
|
-
color: var(--muted);
|
|
803
|
+
color: var(--text-muted);
|
|
714
804
|
font-size: 0.84rem;
|
|
715
805
|
line-height: 1.4;
|
|
716
806
|
overflow: hidden;
|
|
@@ -750,7 +840,7 @@ progress {
|
|
|
750
840
|
z-index: 21;
|
|
751
841
|
display: flex;
|
|
752
842
|
flex-direction: column;
|
|
753
|
-
background: var(--
|
|
843
|
+
background: var(--surface);
|
|
754
844
|
border-left: 1px solid var(--border);
|
|
755
845
|
padding: 16px;
|
|
756
846
|
gap: 12px;
|
|
@@ -775,7 +865,7 @@ progress {
|
|
|
775
865
|
font-size: 0.95rem;
|
|
776
866
|
text-transform: none;
|
|
777
867
|
letter-spacing: normal;
|
|
778
|
-
color: var(--
|
|
868
|
+
color: var(--text);
|
|
779
869
|
overflow-wrap: anywhere;
|
|
780
870
|
}
|
|
781
871
|
|
|
@@ -786,14 +876,14 @@ progress {
|
|
|
786
876
|
border: none;
|
|
787
877
|
padding: 2px 6px;
|
|
788
878
|
font: inherit;
|
|
789
|
-
color: var(--muted);
|
|
879
|
+
color: var(--text-muted);
|
|
790
880
|
cursor: pointer;
|
|
791
881
|
border-radius: 6px;
|
|
792
882
|
}
|
|
793
883
|
|
|
794
884
|
.drawer-close:hover {
|
|
795
|
-
color: var(--
|
|
796
|
-
background: var(--
|
|
885
|
+
color: var(--text);
|
|
886
|
+
background: var(--surface-sunken);
|
|
797
887
|
}
|
|
798
888
|
|
|
799
889
|
/* A rolagem vive aqui, não na página: o drawer é fixo e ocupa a altura toda. */
|
|
@@ -822,7 +912,7 @@ progress {
|
|
|
822
912
|
font-weight: 600;
|
|
823
913
|
text-transform: uppercase;
|
|
824
914
|
letter-spacing: 0.06em;
|
|
825
|
-
color: var(--muted);
|
|
915
|
+
color: var(--text-muted);
|
|
826
916
|
}
|
|
827
917
|
|
|
828
918
|
.drawer-text {
|
|
@@ -842,10 +932,147 @@ progress {
|
|
|
842
932
|
overflow-wrap: anywhere;
|
|
843
933
|
}
|
|
844
934
|
|
|
935
|
+
.detail-row {
|
|
936
|
+
cursor: pointer;
|
|
937
|
+
border-radius: 8px;
|
|
938
|
+
transition: background 120ms ease, box-shadow 120ms ease;
|
|
939
|
+
}
|
|
940
|
+
|
|
941
|
+
.detail-row:hover {
|
|
942
|
+
background: var(--surface-sunken);
|
|
943
|
+
}
|
|
944
|
+
|
|
945
|
+
.detail-row:focus-visible,
|
|
946
|
+
.config-phase-row:focus-visible {
|
|
947
|
+
outline: 2px solid var(--focus-ring);
|
|
948
|
+
outline-offset: 2px;
|
|
949
|
+
}
|
|
950
|
+
|
|
951
|
+
.config-phase-grid {
|
|
952
|
+
display: grid;
|
|
953
|
+
gap: 1px;
|
|
954
|
+
margin-top: 1rem;
|
|
955
|
+
border: 1px solid var(--border);
|
|
956
|
+
border-radius: 10px;
|
|
957
|
+
overflow: hidden;
|
|
958
|
+
background: var(--border);
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
.config-phase-row {
|
|
962
|
+
display: grid;
|
|
963
|
+
grid-template-columns: minmax(5rem, 0.7fr) minmax(6rem, 1fr) minmax(8rem, 1.4fr) minmax(10rem, 1.4fr);
|
|
964
|
+
gap: 0.75rem;
|
|
965
|
+
align-items: center;
|
|
966
|
+
padding: 0.65rem 0.8rem;
|
|
967
|
+
border: 0;
|
|
968
|
+
color: var(--text);
|
|
969
|
+
background: var(--surface);
|
|
970
|
+
text-align: left;
|
|
971
|
+
cursor: pointer;
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
.config-phase-row:hover {
|
|
975
|
+
background: var(--surface-sunken);
|
|
976
|
+
}
|
|
977
|
+
|
|
978
|
+
.config-form {
|
|
979
|
+
display: grid;
|
|
980
|
+
grid-template-columns: minmax(8rem, 0.7fr) minmax(12rem, 1fr) auto minmax(10rem, 1fr);
|
|
981
|
+
gap: 0.65rem;
|
|
982
|
+
align-items: center;
|
|
983
|
+
margin-top: 1rem;
|
|
984
|
+
padding-top: 1rem;
|
|
985
|
+
border-top: 1px solid var(--border);
|
|
986
|
+
}
|
|
987
|
+
|
|
988
|
+
.config-form[hidden] {
|
|
989
|
+
display: none;
|
|
990
|
+
}
|
|
991
|
+
|
|
992
|
+
.config-form select,
|
|
993
|
+
.config-form input,
|
|
994
|
+
.config-save {
|
|
995
|
+
min-height: 2.25rem;
|
|
996
|
+
border: 1px solid var(--border-strong);
|
|
997
|
+
border-radius: 7px;
|
|
998
|
+
padding: 0.4rem 0.65rem;
|
|
999
|
+
color: var(--text);
|
|
1000
|
+
background: var(--surface);
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
.config-save {
|
|
1004
|
+
color: var(--accent-text);
|
|
1005
|
+
border-color: var(--accent);
|
|
1006
|
+
background: var(--accent);
|
|
1007
|
+
cursor: pointer;
|
|
1008
|
+
}
|
|
1009
|
+
|
|
1010
|
+
.execution-timeline {
|
|
1011
|
+
display: grid;
|
|
1012
|
+
gap: 0.75rem;
|
|
1013
|
+
margin: 0;
|
|
1014
|
+
padding: 0;
|
|
1015
|
+
list-style: none;
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
.execution-entry {
|
|
1019
|
+
padding: 0.8rem;
|
|
1020
|
+
border: 1px solid var(--border);
|
|
1021
|
+
border-radius: 9px;
|
|
1022
|
+
background: var(--surface-sunken);
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
.execution-entry-head {
|
|
1026
|
+
display: flex;
|
|
1027
|
+
gap: 0.6rem;
|
|
1028
|
+
align-items: center;
|
|
1029
|
+
margin-bottom: 0.65rem;
|
|
1030
|
+
}
|
|
1031
|
+
|
|
1032
|
+
.execution-grid,
|
|
1033
|
+
.drawer-summary-grid {
|
|
1034
|
+
margin-top: 0.75rem;
|
|
1035
|
+
}
|
|
1036
|
+
|
|
1037
|
+
.process-output summary {
|
|
1038
|
+
cursor: pointer;
|
|
1039
|
+
color: var(--text-muted);
|
|
1040
|
+
}
|
|
1041
|
+
|
|
1042
|
+
.process-output-body {
|
|
1043
|
+
max-height: 22rem;
|
|
1044
|
+
overflow: auto;
|
|
1045
|
+
padding: 0.8rem;
|
|
1046
|
+
border-radius: 8px;
|
|
1047
|
+
color: var(--text);
|
|
1048
|
+
background: var(--surface-sunken);
|
|
1049
|
+
white-space: pre-wrap;
|
|
1050
|
+
overflow-wrap: anywhere;
|
|
1051
|
+
font-size: 0.75rem;
|
|
1052
|
+
line-height: 1.45;
|
|
1053
|
+
}
|
|
1054
|
+
|
|
1055
|
+
.commit-meta {
|
|
1056
|
+
display: block;
|
|
1057
|
+
margin-top: 0.2rem;
|
|
1058
|
+
font-size: 0.76rem;
|
|
1059
|
+
font-weight: 400;
|
|
1060
|
+
}
|
|
1061
|
+
|
|
1062
|
+
@media (max-width: 720px) {
|
|
1063
|
+
.config-phase-row {
|
|
1064
|
+
grid-template-columns: 1fr 1fr;
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1067
|
+
.config-form {
|
|
1068
|
+
grid-template-columns: 1fr;
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1071
|
+
|
|
845
1072
|
/* ---- Diversos ---- */
|
|
846
1073
|
|
|
847
1074
|
.empty {
|
|
848
|
-
color: var(--muted);
|
|
1075
|
+
color: var(--text-muted);
|
|
849
1076
|
font-style: italic;
|
|
850
1077
|
margin: 0;
|
|
851
1078
|
}
|
|
@@ -927,7 +1154,7 @@ progress {
|
|
|
927
1154
|
.dashboard-card {
|
|
928
1155
|
appearance: none;
|
|
929
1156
|
text-align: left;
|
|
930
|
-
background: var(--
|
|
1157
|
+
background: var(--surface);
|
|
931
1158
|
border: 1px solid var(--border);
|
|
932
1159
|
border-radius: 10px;
|
|
933
1160
|
padding: 16px;
|
|
@@ -946,14 +1173,20 @@ progress {
|
|
|
946
1173
|
transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
|
947
1174
|
}
|
|
948
1175
|
|
|
949
|
-
|
|
950
|
-
|
|
1176
|
+
/* Hover e foco por teclado precisam ser distinguíveis: o hover só acende a
|
|
1177
|
+
borda; o foco desenha um anel de `--focus-ring` destacado do cartão, que é
|
|
1178
|
+
visível mesmo em cima do hover. Era aqui que o `outline` estava suprimido. */
|
|
1179
|
+
.dashboard-card:hover {
|
|
951
1180
|
border-color: var(--accent);
|
|
952
|
-
|
|
1181
|
+
}
|
|
1182
|
+
|
|
1183
|
+
.dashboard-card:focus-visible {
|
|
1184
|
+
outline: 2px solid var(--focus-ring);
|
|
1185
|
+
outline-offset: 2px;
|
|
953
1186
|
}
|
|
954
1187
|
|
|
955
1188
|
.dashboard-card.is-live {
|
|
956
|
-
border-color: var(--run);
|
|
1189
|
+
border-color: var(--state-run);
|
|
957
1190
|
}
|
|
958
1191
|
|
|
959
1192
|
.dashboard-card-head {
|
|
@@ -966,7 +1199,7 @@ progress {
|
|
|
966
1199
|
.dashboard-project {
|
|
967
1200
|
font-size: 0.82rem;
|
|
968
1201
|
font-weight: 600;
|
|
969
|
-
color: var(--muted);
|
|
1202
|
+
color: var(--text-muted);
|
|
970
1203
|
overflow-wrap: anywhere;
|
|
971
1204
|
}
|
|
972
1205
|
|
|
@@ -1004,14 +1237,14 @@ progress {
|
|
|
1004
1237
|
flex-wrap: wrap;
|
|
1005
1238
|
gap: 10px;
|
|
1006
1239
|
font-size: 0.82rem;
|
|
1007
|
-
color: var(--muted);
|
|
1240
|
+
color: var(--text-muted);
|
|
1008
1241
|
font-variant-numeric: tabular-nums;
|
|
1009
1242
|
}
|
|
1010
1243
|
|
|
1011
1244
|
.dashboard-progress {
|
|
1012
1245
|
display: block;
|
|
1013
1246
|
height: 6px;
|
|
1014
|
-
background: var(--
|
|
1247
|
+
background: var(--surface-sunken);
|
|
1015
1248
|
border-radius: 999px;
|
|
1016
1249
|
overflow: hidden;
|
|
1017
1250
|
}
|
|
@@ -1019,7 +1252,7 @@ progress {
|
|
|
1019
1252
|
.dashboard-progress-bar {
|
|
1020
1253
|
display: block;
|
|
1021
1254
|
height: 100%;
|
|
1022
|
-
background: var(--run);
|
|
1255
|
+
background: var(--state-run);
|
|
1023
1256
|
border-radius: 999px;
|
|
1024
1257
|
transition: width 0.3s ease;
|
|
1025
1258
|
}
|
|
@@ -1027,7 +1260,7 @@ progress {
|
|
|
1027
1260
|
.dashboard-live-dot {
|
|
1028
1261
|
font-size: 0.75rem;
|
|
1029
1262
|
font-weight: 600;
|
|
1030
|
-
color: var(--run);
|
|
1263
|
+
color: var(--state-run);
|
|
1031
1264
|
text-transform: uppercase;
|
|
1032
1265
|
letter-spacing: 0.04em;
|
|
1033
1266
|
}
|
|
@@ -1039,7 +1272,7 @@ progress {
|
|
|
1039
1272
|
height: 7px;
|
|
1040
1273
|
margin-right: 6px;
|
|
1041
1274
|
border-radius: 50%;
|
|
1042
|
-
background: var(--run);
|
|
1275
|
+
background: var(--state-run);
|
|
1043
1276
|
vertical-align: middle;
|
|
1044
1277
|
animation: dashboard-pulse 1.4s ease-in-out infinite;
|
|
1045
1278
|
}
|