{{! View model for this template: { app_title: string, total_books: number, reading_count: number, groups: [ { label: string, e.g. "on deck" count: number, books: [ { format_icon: string, Tabler class, e.g. "ti-headphones" (data layer maps FORMAT -> icon) status_class: string, "want" | "reading" | "read" (maps Org TODO state -> pill style) status_label: string, text shown in the pill title: string, author: string, tags_inline: string?, optional, e.g. ":scifi:literary:" rec_via: string?, optional, REC_BY -> rendered as "via {name}" rating_display: string?, optional, e.g. "★★★★☆" selected: boolean?, marks the in-focus row (expands detail) detail: { optional; render when a row is expanded meta: string, e.g. "started [2026-02-20] · hardcover · 62% · rating —" notes: [ { date: string, text: string } ] reading log }? } ] } ], minibuffer: { command: string, text: string }? optional capture line } }}
{{app_title}} {{total_books}} books · {{reading_count}} reading
{{#groups}}
{{label}} · {{count}}
{{#books}}
{{status_label}} {{title}} · {{author}} {{#tags_inline}}{{tags_inline}}{{/tags_inline}} {{#rec_via}}via {{rec_via}}{{/rec_via}} {{#rating_display}}{{rating_display}}{{/rating_display}}
{{#detail}}
{{meta}}
{{#notes}}
{{date}}{{text}}
{{/notes}}
{{/detail}} {{/books}} {{/groups}}
{{#minibuffer}} {{/minibuffer}}