egutierrez
7e2fb05144
data_table: declarative cell renderers Phase 1 (Badge/Progress/Duration/Icon)
Adds TableInput.column_specs sidecar field enabling apps to declare Badge,
Progress, Duration and Icon renderers per column without writing ImGui inline.
Back-compat: apps without column_specs compile and behave identically.
- data_table_types.h: CellRenderer enum, BadgeRule, IconMapEntry, ColumnSpec types
- data_table.cpp: hex_to_imcolor helper, icon_name_to_glyph static map (~30 Tabler icons),
draw_cell_custom dispatcher, integration in Stage-0 and Stage-N cell loops and draw_extra_panel
- Bump version 1.0.0 -> 1.1.0 with capability growth log
- cpp/tests/test_column_specs.cpp: 5 smoke/linker tests (back-compat + 4 renderer types)
- cpp/tests/CMakeLists.txt: register test_column_specs target linked against fn_table_viz
- types/core/{cell_renderer,badge_rule,icon_map_entry,column_spec}.md: registry type mds
- docs/capabilities/data_table_renderers.md: canonical doc with end-to-end examples
- docs/capabilities/INDEX.md: added data-table-renderers group
All tests green: test_column_specs 5/5, test_fn_table_viz_smoke 8/8,
tql_emit 41/41, tql_apply 88/88, Wave-1 tests 8/8.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-15 16:38:24 +02:00
..
2026-04-28 22:05:31 +02:00
2026-04-28 22:05:31 +02:00
2026-04-28 23:40:51 +02:00
2026-05-04 11:50:57 +02:00
2026-05-04 11:50:57 +02:00
2026-05-14 00:28:20 +02:00
2026-05-03 00:32:55 +02:00
2026-04-25 21:25:51 +02:00
2026-04-28 23:40:51 +02:00
2026-04-24 14:52:09 +02:00
2026-04-24 14:52:09 +02:00
2026-04-28 23:42:35 +02:00
2026-04-25 21:50:29 +02:00
2026-04-25 21:50:29 +02:00
2026-05-14 00:28:20 +02:00
2026-04-25 21:25:39 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-04-28 23:42:35 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-04-28 23:44:55 +02:00
2026-05-15 16:38:24 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-05-14 00:28:20 +02:00
2026-04-24 14:52:09 +02:00
2026-04-24 14:52:09 +02:00
2026-04-28 23:42:35 +02:00
2026-04-28 23:53:49 +02:00
2026-04-28 23:53:49 +02:00
2026-04-28 23:53:49 +02:00
2026-04-28 23:55:11 +02:00
2026-04-28 23:55:11 +02:00
2026-04-28 23:55:11 +02:00
2026-04-06 23:46:36 +02:00
2026-04-06 23:46:36 +02:00
2026-05-14 00:28:20 +02:00
2026-04-24 21:31:00 +02:00
2026-04-08 01:17:44 +02:00
2026-04-28 23:40:51 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-04-25 21:25:39 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-05-03 00:50:33 +02:00
2026-04-25 21:25:25 +02:00
2026-05-14 00:28:20 +02:00
2026-04-25 21:25:25 +02:00
2026-04-25 21:25:51 +02:00
2026-04-25 21:25:51 +02:00
2026-05-14 00:28:20 +02:00
2026-05-10 13:30:27 +02:00
2026-05-10 13:30:27 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 11:50:57 +02:00
2026-04-25 21:25:51 +02:00
2026-04-28 23:40:51 +02:00
2026-05-04 11:50:57 +02:00
2026-05-04 11:50:57 +02:00
2026-05-04 11:50:57 +02:00
2026-05-04 11:50:57 +02:00
2026-05-04 11:50:57 +02:00
2026-05-04 11:50:57 +02:00
2026-05-11 16:28:50 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-05-14 00:28:20 +02:00
2026-04-25 21:25:39 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-04-25 21:51:15 +02:00
2026-04-25 21:51:15 +02:00
2026-04-28 23:40:51 +02:00
2026-04-24 14:52:09 +02:00
2026-04-24 14:52:09 +02:00
2026-04-28 23:42:35 +02:00
2026-04-25 21:25:51 +02:00
2026-04-25 21:25:51 +02:00
2026-04-28 23:40:51 +02:00
2026-05-04 11:52:50 +02:00
2026-05-04 11:52:50 +02:00
2026-05-14 00:28:20 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-05-14 00:28:20 +02:00
2026-04-28 23:53:08 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:53:08 +02:00
2026-04-28 23:52:37 +02:00
2026-04-28 23:52:37 +02:00
2026-04-28 23:52:37 +02:00
2026-04-25 21:25:39 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-05-04 11:50:57 +02:00
2026-05-04 11:50:57 +02:00
2026-05-14 00:28:20 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-05-14 00:28:20 +02:00
2026-05-04 11:52:50 +02:00
2026-05-04 11:52:50 +02:00
2026-05-14 00:28:20 +02:00
2026-04-28 23:58:40 +02:00
2026-04-28 23:51:23 +02:00
2026-04-28 23:51:23 +02:00
2026-04-28 23:51:59 +02:00
2026-04-25 21:48:50 +02:00
2026-05-14 00:28:20 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-05-14 00:28:20 +02:00
2026-04-25 21:00:31 +02:00
2026-04-25 21:00:31 +02:00
2026-04-28 23:40:51 +02:00
2026-04-25 21:25:39 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-05-14 00:28:20 +02:00
2026-04-25 21:50:35 +02:00
2026-04-25 21:50:35 +02:00
2026-05-14 00:28:20 +02:00
2026-05-05 23:12:50 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-05-12 03:10:00 +02:00
2026-04-25 21:14:15 +02:00
2026-04-28 23:44:55 +02:00
2026-04-25 21:25:39 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-04-08 00:10:18 +02:00
2026-04-08 00:10:18 +02:00
2026-05-14 00:28:20 +02:00
2026-04-25 21:25:39 +02:00
2026-04-25 21:25:39 +02:00
2026-04-28 23:42:35 +02:00
2026-04-25 21:50:21 +02:00
2026-04-25 21:50:21 +02:00
2026-04-28 23:44:55 +02:00