ca7a5874e4
From: sources/frontend_designs/Ads Analytics Dashboard _standalone_.html New components: - funnel_chart_ts_ui — visualización de funnel de conversión con barras degradadas y tasa entre etapas como Badge semántico. - heatmap_grid_ts_ui — matriz rows × cols con intensidad color-mix sobre el primary color. Genérica (day×hour, cohort, correlation...). Improvements: - alert_ts_ui v1.1.0 — añadidas variantes semánticas success, warning, info (antes: solo default y destructive). - data_table_ts_ui v1.1.0 — prop opcional density: compact | cozy | roomy. No rompe API existente (default 'cozy' = comportamiento previo). Barrel frontend/functions/ui/index.ts actualizado con los dos nuevos exports y el type DataTableDensity. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.3 KiB
4.3 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, output, tested, tests, test_file_path, file_path, props, emits, has_state, framework, variant, source_repo, source_license, source_file
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | output | tested | tests | test_file_path | file_path | props | emits | has_state | framework | variant | source_repo | source_license | source_file | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| heatmap_grid | component | ts | ui | 1.0.0 | impure | HeatmapGrid(props: HeatmapGridProps): JSX.Element | Matriz rows × columns con intensidad de color proporcional al valor. Genérico — casos típicos: day×hour, cohort retention, matriz de correlación, heatmap geográfico. |
|
false |
|
Componente HeatmapGrid que renderiza una tabla de celdas coloreadas por intensidad con labels formateados. | false | frontend/functions/ui/heatmap_grid.tsx |
|
false | react |
|
claude.ai/design | sources/frontend_designs/Ads Analytics Dashboard _standalone_.html |
Ejemplo
import { HeatmapGrid } from '@fn_library'
// CTR por día × hora (caso del export original)
const hours = Array.from({ length: 24 }, (_, i) => ({ key: 'h' + i, label: String(i).padStart(2, '0') }))
const rows = [
{ day: 'Mon', h0: 0.8, h1: 0.7, /* ... */ h23: 1.4 },
{ day: 'Tue', h0: 0.9, h1: 0.8, /* ... */ h23: 1.3 },
// ...
]
<HeatmapGrid
rows={rows}
rowKey="day"
columns={hours}
colLabelEvery={2}
valueFormatter={(v) => v.toFixed(2)}
cellLabelThreshold={1.7}
tooltip={(r, c, v) => `${r.day} ${c.label}:00 — CTR ${v}%`}
/>
// Cohort retention (semana 0-12)
const cohortCols = Array.from({ length: 13 }, (_, i) => ({ key: 'w' + i, label: 'W' + i }))
<HeatmapGrid
rows={cohorts}
rowKey="cohort"
columns={cohortCols}
valueFormatter={(v) => v.toFixed(0) + '%'}
intensityRange={[10, 90]}
/>
// Matriz de correlación
<HeatmapGrid
rows={correlationMatrix}
rowKey="variable"
columns={variables.map(v => ({ key: v, label: v }))}
valueFormatter={(v) => v.toFixed(2)}
cellSize={40}
baseColor="var(--mantine-color-cyan-6)"
/>
Notas
- El color de cada celda es
color-mix(in oklab, baseColor N%, transparent)donde N interpola linealmente entreintensityRange[0]yintensityRange[1]según el valor normalizado en[min, max]. - El color del texto en la celda cambia automáticamente a blanco si
v > mid(mid-point del rango) para contraste. - Para grids densos (ej. 24 horas × 7 días) usar
colLabelEvery={2}o mayor para que los headers no se solapen. - Extraído de un export de Claude Design (Ads Analytics Dashboard). El
Heatmaporiginal hardcodeabah0..h23; aquí se generaliza aceptando cualquier array de columnas.