Skip to content

feat: GFM tables + task-list checkboxes in chat markdown views (0.0.22)#195

Merged
blove merged 9 commits into
mainfrom
claude/chat-tables-tasklists-0.0.22
May 4, 2026
Merged

feat: GFM tables + task-list checkboxes in chat markdown views (0.0.22)#195
blove merged 9 commits into
mainfrom
claude/chat-tables-tasklists-0.0.22

Conversation

@blove
Copy link
Copy Markdown
Contributor

@blove blove commented May 4, 2026

Summary

Adds the remaining markdown view components needed to fully expose @cacheplane/partial-markdown@0.2.0's AST surface in @ngaf/chat. Citations shipped in 0.0.21 already; this round wires GFM tables and the task-list checkbox prefix.

New view components

  • chat-md-table<table> wrapper with <thead>/<tbody> split based on row isHeader flags
  • chat-md-table-row<tr>; provides IS_HEADER_ROW reactive token (InjectionToken<Signal<boolean>>) so child cells render <th> vs <td> correctly
  • chat-md-table-cell<th> or <td> per row context; applies text-align from alignment ('left' | 'center' | 'right' | null)

List-item update

  • MarkdownListItemComponent renders <input type="checkbox" disabled [checked]="task.checked"> prefix when node.task is defined; adds chat-md-list-item--task class.

Style scaffold

  • Minimal table + checkbox CSS in CHAT_MARKDOWN_STYLES. display: contents on the custom elements keeps the table layout context intact.

Synchronized version bump

All 16 @ngaf/* libraries → 0.0.22. Single tag ngaf-v0.0.22 at the squash-merge commit.

Test plan

  • 15 new component specs (4 specs across the 4 modified components)
  • Registry spec asserts 22 node types (was 19)
  • npx nx run chat:test green
  • npx nx run chat:lint green

blove and others added 8 commits May 4, 2026 15:27
Provides a Signal<boolean> token that MarkdownTableRowComponent supplies
to its subtree so MarkdownTableCellComponent can render <th> vs <td>
without passing the flag down as an @input.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Renders GFM table nodes as <table class="chat-md-table"> with <thead>
(first isHeader row) and <tbody> (remaining rows) via MarkdownChildrenComponent.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Renders <tr class="chat-md-table-row"> with optional --header modifier class.
Provides IS_HEADER_ROW signal token to its injector subtree so descendant
cells can select <th> vs <td> without an extra input binding.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Renders <th> when IS_HEADER_ROW token is truthy, <td> otherwise.
Applies [style.text-align] from node().alignment when non-null.
Spec covers td/th switching, alignment binding, and class presence.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…nent

When node().task is defined, prepends a disabled <input type="checkbox">
and adds the chat-md-list-item--task BEM modifier class to the <li>.
Spec covers: plain item (no checkbox), unchecked task, checked task.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ace; style scaffold

- cacheplaneMarkdownViews now has 22 entries (table, table-row, table-cell added)
- Registry spec updated to assert 22 sorted keys
- public-api.ts exports MarkdownTable*, MarkdownTableRow*, MarkdownTableCell* and IS_HEADER_ROW
- chat-markdown.styles.ts: display:contents on chat-md-table/row/cell wrappers for
  layout transparency; task-list class selectors alongside existing :has() rule

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 4, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cacheplane Ready Ready Preview, Comment May 4, 2026 10:36pm

Request Review

@blove blove merged commit 614682f into main May 4, 2026
14 checks passed
@blove blove deleted the claude/chat-tables-tasklists-0.0.22 branch May 4, 2026 22:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant