Skip to content

feat(ui): add chat components and showcase - #858

Merged
pasqualevitiello merged 14 commits into
mainfrom
codex/chat-ui
Oct 13, 2026
Merged

pasqualevitiello merged 14 commits into
mainfrom
codex/chat-ui

Conversation

@pasqualevitiello

@pasqualevitiello pasqualevitiello commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Bring the chat UI developed in calcom/cal#9524 into Coss as a reusable component family, with a complete example and a dedicated showcase at /ui/chat. The demo compositions follow the current Cal Chat UI reference.

  • Add composable conversation, message, reaction, reply, receipt, member, and state components, using the shared Coss Composer for text input and structured mentions.
  • Add an interactive showcase, a header link, and 15 drawer scenarios covering conversations, long messages, typing, delivery, loading, connection failures, and membership changes.
  • Adapt the components to Motion 14.0.0 and retain reduced-motion behavior.
  • Publish chat and chat-demo registry entries, package exports, installation guidance, and integration documentation.
  • Match Cal’s responsive Composer, default drawer focus, focused reply timing and focus preservation, member roles, and access/recovery states. Remove the superseded chat-specific composer, mention picker, and duplicate keyboard provider.
  • Keep the hero, feature tiles, layout samples, copyable documentation, and installed registry demo on the same compositions. Expose all 15 drawer scenarios from the showcase.

Review order

  1. apps/ui/registry/default/chat/ — reusable source components and hooks.
  2. apps/ui/registry/default/chat-demo/ — example state, permissions, receipts, and drawer composition.
  3. apps/ui/app/chat/ and apps/ui/content/docs/(root)/chat.mdx — presentation and integration guide.
  4. apps/ui/registry/registry-chat.ts, package exports, and sync script — distribution wiring.
  5. apps/ui/tests/chat/ — focused behavior tests.

This is a large initial port of one complete component family. packages/ui/src/chat/, the public registry JSON, the registry index, and registry manifests are generated outputs; review the registry source first rather than reviewing the mirrored implementation twice.

Validation

  • App and UI package TypeScript checks.
  • 29 focused Bun tests covering moderation, receipts, reactions, typing labels, and safe message previews. Mention editing now belongs to the shared Composer; its keyboard selection was exercised in the browser.
  • Scoped Biome checks and git diff --check.
  • Registry dependency validation, registry generation, and package synchronization.
  • Fresh consumer installation using custom component, UI, hook, and utility aliases with shadcn@latest (4.21.4), followed by a consumer type check. The repository-local 4.1.0 CLI does not support the alias target placeholders; use the documented latest installer.
  • Browser checks of all 15 scenario triggers; structured mentions; reply cancellation and sending; nested members and message-info drawers; mute → ban → unban; first-message join; and disabled sending/hidden history across recovery and access states.
  • Updated desktop and 390px layouts, including long drafts and mobile focused replies. Light/dark appearance was checked during the initial port; this update rechecked the light theme.
  • Physical iOS virtual-keyboard verification.

A full production build and full E2E suite were not run.

Preview

Screenshot 2026-10-13 at 16 48 58

Integration notes

  • Motion 14.0.0 is a new dependency, pinned in the app and UI package and declared by the chat registry entry.
  • The shared Composer includes a small caret-clipping fix: its inner scroll area no longer inherits rounded corners in the adaptive single-line layout. The outer radius and multiline treatment are preserved. This change is mirrored in packages/ui/src/components/composer.tsx; other existing primitives are unchanged.
  • The demo uses Cal’s host/co-host/guest roles and synthetic data. Its membership, moderation, delivery, and persistence behavior is illustrative; production authorization and real-time data remain the consuming application's responsibility.
  • The registry installs source files for consumers to own and adapt. The reusable family is separate from the complete demo's orchestration.
  • Rollback is a revert of this addition; it introduces no schema or backend changes.

@vercel

vercel Bot commented Oct 9, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
coss-com Ready Ready Preview Oct 13, 2026 3:02pm UTC
coss-com-ui Ready Ready Preview Oct 13, 2026 3:02pm UTC
coss-examples-calcom Ready Ready Preview Oct 13, 2026 3:02pm UTC
1 Skipped Deployment
Project Deployment Actions Updated
coss-com-origin Skipped Skipped Oct 13, 2026 3:02pm UTC

Request Review

pasqualevitiello and others added 2 commits October 13, 2026 10:11
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel
vercel Bot temporarily deployed to Preview – coss-com-origin October 13, 2026 08:36 Inactive

@sean-brydon sean-brydon left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM tested works well

@pasqualevitiello
pasqualevitiello merged commit 61eb293 into main Oct 13, 2026
13 checks passed
@pasqualevitiello
pasqualevitiello deleted the codex/chat-ui branch October 13, 2026 15:21
@linear-code

linear-code Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

DES-231

DES-227

This branch was successfully deployed

3 active and 1 inactive deployments
Preview – coss-com-ui — ef17f969 Deployed Oct 13, 2026 by vercel[bot]
Preview – coss-com — ef17f969 Deployed Oct 13, 2026 by vercel[bot]
Preview – coss-examples-calcom — ef17f969 Deployed Oct 13, 2026 by vercel[bot]
Preview – coss-com-origin — ef17f969 Deployed Oct 13, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants