Files
egutierrez fda89ca3ba feat(cpp/core): design tokens + primitivos UI para dashboards ImGui
Trasladar principios del DESIGN_SYSTEM.md de @fn_library (Mantine/React)
al mundo C++/ImGui sin añadir deps externas:

  cpp/functions/core/
    tokens       — colors/spacing/radius/font_size como constexpr +
                   apply_dark_theme() al ImGuiStyle global. Dark + indigo
                   primary (Mantine-inspired).
    badge        — etiqueta inline 6 variantes (Default/Success/Warning/
                   Error/Info/Outline). <Badge> de @fn_library en C++.
    empty_state  — placeholder centrado para tablas/listas vacías.
    page_header  — header con title + subtitle + separator + hueco
                   para acciones (patrón begin/end).

Scope limitado (KISS) a fases 1-2 del plan: tokens + 3 primitivos.
No se duplica dashboard_panel con un "card" — el existente ya cumple
el rol. Fases 3-5 (charts ImPlot line/area, app_shell con navbar,
toast/alert) quedan fuera hasta que el dashboard crezca en alcance.

Resultado:
- 869 funciones (+4) en registry.db.
- Dashboard con header homogéneo y empty states en todas las tablas.
- Sin hardcode de ImVec4 disperso en views.cpp.

Diary + CHANGELOG actualizados.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 14:52:09 +02:00

19 lines
721 B
C

#pragma once
// Badge — etiqueta inline para estados (como <Badge> de @fn_library).
// Dibuja un rectángulo con fondo coloreado + texto. Uso en tablas, junto a
// títulos, estados de entities, etc.
enum class BadgeVariant {
Default, // surface — estado neutro
Success, // verde — tested=yes, active
Warning, // naranja — stale
Error, // rojo — failed, corrupted
Info, // azul — metadata
Outline, // transparente con borde — énfasis bajo
};
// Renderiza un badge en la posición actual del cursor. Consume un hueco
// equivalente a su tamaño (es decir, es un widget inline como Text).
void badge(const char* text, BadgeVariant variant = BadgeVariant::Default);