diff --git a/docs/plans/2026-09-06-campaign-vt-slice1-files-and-columns.md b/docs/plans/2026-09-06-campaign-vt-slice1-files-and-columns.md index 3f622531..3dc81e98 100644 --- a/docs/plans/2026-09-06-campaign-vt-slice1-files-and-columns.md +++ b/docs/plans/2026-09-06-campaign-vt-slice1-files-and-columns.md @@ -84,24 +84,29 @@ B1. Markup, exactly doc 08 §3's proposal: `` accepts child `` elements, each binding its own per-row source parallel to the row count (per-attribute binding like every other element; no new `Plugin.Abstractions` type): -`items="{IReadOnlyList}"` for text, `values="{IReadOnlyList}"` +`items="{IReadOnlyList}"` for text (plus an OPTIONAL +`onclick="{Action}"` that fires INSTEAD of selecting — review finding: +none of VTank's eight lists uses row selection, every text cell is an action +target, `PluginCore.cs:7948-8089`), `values="{IReadOnlyList}"` + `onchange="{Action}"` (row index; the plugin flips its own bool) for check, `values="{IReadOnlyList}"` + `iconkind` + `onclick="{Action}"` for icon. Row count = the longest bound column; short columns draw empty cells. The list's own `selected`/`onchange` stay as today; a click in a check/icon column fires that column's callback and does NOT change selection; a click in a text column selects. No header row (VTank's idiom -is `