Skip to content

feat(chat): pill input + glowing caret + chat-select primitive (0.0.17)#189

Merged
blove merged 19 commits into
mainfrom
claude/chat-input-pill-and-select
May 3, 2026
Merged

feat(chat): pill input + glowing caret + chat-select primitive (0.0.17)#189
blove merged 19 commits into
mainfrom
claude/chat-input-pill-and-select

Conversation

@blove

@blove blove commented May 3, 2026

Copy link
Copy Markdown
Contributor

What

Polish + new primitive shipping under one PR (spec: docs/superpowers/specs/2026-05-02-chat-input-pill-and-chat-select-design.md).

  • Streaming caret is now a CSS-painted glowing dot (matches the welcome beacon)
  • Welcome screen drops the subtitle slot; greeting + input + suggestions only
  • Chat input is a content-width pill with a circle send button; new --ngaf-chat-edge-pad token gives symmetric top/bottom breathing
  • New <chat-select> primitive: ghosted, fully rounded, popover with keyboard nav. Slots into the chat input via [chatInputModelSelect], usable standalone anywhere
  • Fixes the left-flash bug where the optimistic user message briefly painted with data-role=assistant (length-growth emissions of messages$ now bypass the throttle)
  • Smoke harness demos the model picker; new docs at apps/website/content/docs/chat/components/chat-select.mdx

Behavior changes (cosmetic public API)

  • The [chatWelcomeSubtitle] slot is removed. Consumers projecting a custom subtitle should instead override [chatWelcomeTitle] or use <chat-welcome> directly.

Versions

  • @ngaf/chat: 0.0.16 → 0.0.17

Tests

  • 299 chat tests passing (3 new in left-flash regression)
  • chat-select primitive: 7 tests covering open/close, keyboard nav, click-outside, disabled-option skip
  • chat-input: pill border-radius, circle send, and [chatInputModelSelect] slot assertions added

🤖 Generated with Claude Code

blove added 19 commits May 2, 2026 22:34
- Add tabindex=-1 to the listbox div so the keydown handler attaches
  to a focusable element (a11y lint requirement).
- Bump @ngaf/chat for the pill input + glowing caret + chat-select
  primitive + left-flash fix release.
@vercel

vercel Bot commented May 3, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
cacheplane Ready Ready Preview, Comment May 3, 2026 6:17am

Request Review

@blove blove merged commit 2249e3e into main May 3, 2026
14 checks passed
blove added a commit that referenced this pull request Jun 9, 2026
…7) (#189)

* refactor(chat): caret span has no glyph (CSS will paint the dot)

* feat(chat): streaming caret as a glowing dot (matches welcome beacon)

* refactor(chat): drop chat-welcome [chatWelcomeSubtitle] slot

* refactor(chat): remove chat-welcome subtitle styles + tighten gap default

* test(chat): chat-welcome no longer has a subtitle

* feat(chat): add --ngaf-chat-edge-pad token (drives symmetric top/bottom spacing)

* feat(chat): pill input + circle send/stop + content-width + edge-pad

* feat(chat): symmetric top/bottom spacing via --ngaf-chat-edge-pad

* feat(chat): chat-input [chatInputModelSelect] slot in pill controls

* test(chat): chat-input pill + circle send + model-select slot

* feat(chat): chat-select styles

* test(chat): failing specs for chat-select primitive

* feat(chat): chat-select primitive (ghosted, fully rounded, popover)

* feat(chat): export ChatSelectComponent + ChatSelectOption

* fix(langgraph): bypass throttle on length-growth emissions of messages$ (no left-flash)

* test(chat): regression — first message after submit is data-role=user

* docs(website): chat-select component reference

* docs(website): document [chatInputModelSelect] slot in chat-input

* fix(chat): chat-select listbox a11y + bump 0.0.16 → 0.0.17

- Add tabindex=-1 to the listbox div so the keydown handler attaches
  to a focusable element (a11y lint requirement).
- Bump @ngaf/chat for the pill input + glowing caret + chat-select
  primitive + left-flash fix release.
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