This repository was archived by the owner on Aug 6, 2026. It is now read-only.
Design: Standalone composer input in quill + question tool - #3749
Closed
adamleithp wants to merge 2 commits into
Closed
Design: Standalone composer input in quill + question tool#3749adamleithp wants to merge 2 commits into
adamleithp wants to merge 2 commits into
Conversation
Design-only pass. Documents extracting code's PromptInput presentational shell into a host-agnostic @posthog/quill Composer (composed over the existing InputGroup, whose block-aligned addons already grow the box), and a question surface that reuses the same shell so the bottom input reads as continuous and becomes a "talk about it" input when a question tool is active. No production code changes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015sNchSXj5YTpcCi72yC3LY
Add a motion policy to the composer design: quill ships a default grow/expand transition (box expanding upward when a question tool activates) but routes it through an overridable CSS custom property + `motion` prop, so consumers can go to `transition: none` or any curve without fighting the library. Reduced-motion is a floor, explicit consumer values still win. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015sNchSXj5YTpcCi72yC3LY
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Today, the prompt input shell is tightly coupled to
@posthog/ui'sPromptInputcomponent, making it difficult to reuse across surfaces. When a question tool is active, the UI swaps between two visually distinct components (the message composer and the question card), breaking the illusion of a continuous input at the bottom.This design document proposes moving the presentational shell of the prompt input into
@posthog/quillas a reusableComposercomponent, and using that same shell for the question tool surface so both modes render identically and appear to be a single, continuous input.Changes
This is a design-review document only — no implementation code yet. The document specifies:
Composercomponent — a compositional wrapper overInputGroupthat owns the focus ring, grow behavior, and layout of the message input shell. Exposes slots for header, body, and toolbar viaComposerHeader,ComposerBody, andComposerToolbarsub-components.Motion policy — the grow transition (when a question tool activates) is opt-out via CSS custom properties and a
motionprop, never forced. Respectsprefers-reduced-motion.Question surface continuity — the same
Composershell is reused for both message and question modes. When a question is pending, the header swaps to show question options/steps, the body becomes "talk about it" input, and the toolbar shows "Submit answer" instead of "Send". No visual swap, no remount — just content change within the same shell.Migration plan — phased approach: quill ships
Composer*components first, thencoderefactorsPromptInput→MessageComposer(zero behavior change), then addsQuestionComposerand switchesSessionViewto the shared-shell pattern.Open questions — clarifies decisions for review: layer (component vs. block), scope of question-tool primitives in quill, icon strategy, bash-mode state encoding, focus callback seam, motion defaults, and
EditorHandlescope.All domain logic (tiptap, ACP, drafts, attachments, hotkeys, submit behavior) remains in
@posthog/uiand is passed as children/slots. Quill owns only the presentational shell.How did you test this?
N/A — this is a design document for review. Implementation and testing follow in a later pass.
Automatic notifications
https://claude.ai/code/session_015sNchSXj5YTpcCi72yC3LY