feat(sprint-1.5): PDFs Actual/Auto con identidad InQ + badge naranja (Etapas 8-9)

Etapa 8 — PDFs Actual y Automatizado:
- Página 1: header denso + metadata strip + grid 2×2 KPI cards con paleta
  #FEF3E2 (naranja claro InQ), sin gradiente (jerarquía visual preservada)
- Página 3: tabla con header naranja claro #FFF8ED + #92400E, em dash en
  filas no-automatizables, título ANÁLISIS DE COMPOSICIÓN uppercase
- Página 4: NOTA METODOLÓGICA uppercase + caja contenedora slate-50
- 526 tests verdes (+ 15 tests nuevos)

Etapa 9 — Badge  en BpmnCanvas:
- Reemplaza badge legacy (Bot SVG ámbar #fffbeb) por círculo naranja
  sólido #F59845 con símbolo  blanco, 14×14px, border white 1.5px
- Usa var(--inq-orange) definido en globals.css (sin hex hardcodeados)
- Elimina los 3 hex legacy del audit Etapa 1: #f59e0b, #fffbeb, #e2e8f0
- 5 tests E2E de lifecycle del badge + 2 screenshots

Política de iniciativa refinada post-Sprint 1.5 (CLAUDE.md actualizado)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-18 10:03:37 -03:00
parent 2f4633a33c
commit 3834c9f1c1
18 changed files with 1904 additions and 112 deletions

View File

@@ -19,31 +19,24 @@ function classifyElement(type: string): BpmnElementCategory {
return 'other'
}
// SVG inline del ícono Bot de Lucide (12×12 px, color ámbar #f59e0b).
// Copiado de lucide.dev/icons/bot — robot con antena, cuerpo rectangular y ojos.
const BOT_SVG = `<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="#f59e0b" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M12 8V4H8"/>
<rect width="16" height="12" x="4" y="8" rx="2"/>
<path d="M2 14h2"/>
<path d="M20 14h2"/>
<path d="M15 13v2"/>
<path d="M9 13v2"/>
</svg>`
// HTML del badge de automatización.
// Fondo #fffbeb (amber-50): identidad cromática con el ícono Bot ámbar,
// contrasta con el fondo blanco de los nodos BPMN.
// Badge de automatización — identidad InQ naranja sólido (Etapa 9 Sprint 1.5).
// Usa var(--inq-orange) definido en globals.css :root para consistencia con el sistema de design.
// Emoji ⚡ como símbolo provisional — reemplazo por <Bot /> agendado Sprint 2-3.
function makeBadgeHtml(): string {
return `<div title="Actividad marcada como automatizable" style="
width:20px;height:20px;
return `<div class="automatable-badge" title="Actividad marcada como automatizable" style="
width:14px;height:14px;
border-radius:50%;
background:#fffbeb;
border:1px solid #e2e8f0;
box-shadow:0 1px 3px rgba(0,0,0,0.12);
background:var(--inq-orange);
border:1.5px solid white;
box-shadow:0 1px 2px rgba(0,0,0,0.10);
display:flex;align-items:center;justify-content:center;
color:white;
font-size:8px;font-weight:700;
line-height:14px;
cursor:default;
pointer-events:none;
">${BOT_SVG}</div>`
z-index:10;
">⚡</div>`
}
// Identificador del tipo de overlay para poder remover solo los nuestros.