// AGENTS.md §7 / §37 message list. // // Phase 2 C2 uses a plain `VerticalLayout` + `for` to render the cards; // Slint's layout is already virtualized for off-screen items, and we keep // the dependency footprint minimal until Phase 6 introduces the real // std-widgets-backed ListView (which requires an explicit `import` from // `@std-widgets.slint` and an `include_paths` config in build.rs). import { MessageItem, MessageCard } from "./message-card.slint"; export component MessageList inherits Rectangle { in property <[MessageItem]> messages; in-out property selected-index: -1; in property card-border: #3a3b40; callback message-clicked(int); background: transparent; VerticalLayout { spacing: 8px; for item[idx] in messages: MessageCard { item: item; selected: idx == root.selected-index; card-border: card-border; clicked => { root.selected-index = idx; root.message-clicked(idx); } } } }