feat(apollo-react): Input/Output panel prototype — three UX concepts#852
feat(apollo-react): Input/Output panel prototype — three UX concepts#8521980computer wants to merge 2 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Dependency License Review
License distribution
Excluded packages
|
07ccaac to
23ce159
Compare
📊 Coverage + size by packagePer-package coverage and bundle size on this PR. New-line coverage = of the source lines this PR adds or changes, the % hit by tests.
"Coverage" is each package's own |
There was a problem hiding this comment.
Pull request overview
Adds a Storybook prototype for a node property panel Input/Output experience (three side-by-side UX concepts), and extends NodePropertyPanel with a small new title-bar slot to support compact controls used by the concepts.
Changes:
- Added
headerExtra?: ReactNodetoNodePropertyPanelPropsand rendered it in the title bar (between title and close button). - Implemented three Input/Output panel concept prototypes in Storybook, including expandable trees, inline editing, search/filter, copy affordances, and Monaco-based Schema/JSON/Types views.
- Added
@monaco-editor/reactto Storybook app deps and updated the lockfile accordingly.
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| pnpm-lock.yaml | Locks @monaco-editor/react (and its dependency graph) for the Storybook prototype. |
| apps/storybook/package.json | Adds @monaco-editor/react as a dev dependency to support Monaco usage in Storybook. |
| packages/apollo-react/src/canvas/components/NodePropertyPanel/NodePropertyPanel.types.ts | Extends the public API with headerExtra for title-bar customization. |
| packages/apollo-react/src/canvas/components/NodePropertyPanel/NodePropertyPanel.tsx | Renders headerExtra in the title bar next to the close button. |
| packages/apollo-react/src/canvas/components/NodePropertyPanel/NodePropertyPanel.stories.tsx | Adds the three Input/Output UX concept prototypes, Monaco editor tabs, and supporting helpers. |
Files not reviewed (1)
- pnpm-lock.yaml: Generated file
23ce159 to
d7374f6
Compare
d7374f6 to
33fc987
Compare
33fc987 to
ffe8667
Compare
ffe8667 to
c84244b
Compare
c84244b to
c6770fd
Compare
c6770fd to
6a1c510
Compare
6a1c510 to
efd167f
Compare
91b7c09 to
dc74c89
Compare
c806d4b to
c69ab17
Compare
3032a0e to
eebcf79
Compare
…pt variants Three side-by-side concepts for design review of the node property panel's input/output experience. Each concept explores a different UX approach for browsing, filtering, and copying output references. - Concept 1: Schema/JSON tabs with Referenced/All fields filter and inline editing - Concept 2: Compact header with node identity + Referenced toggle, tree + JSON tabs, inline editing with copy affordance (recommended) - Concept 3: Full node identity row, Schema/Types/JSON tabs, filter icon on search Shared additions across concepts: - Expandable/collapsible tree grouped by top-level node - Inline value editing on leaf fields (click to edit, Enter/Escape to confirm) - Input/Output mode toggle per concept panel - Pro/con notes card below each panel with recommendation callout on Concept 2 - NodePropertyPanel: headerExtra slot for compact controls in the title bar Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
eebcf79 to
31ed232
Compare
31ed232 to
3ecba90
Compare
3ecba90 to
dc102fb
Compare
dc102fb to
aa83289
Compare
| <Input | ||
| type="text" | ||
| placeholder={isOutput ? 'Search outputs' : 'Search inputs'} | ||
| value={search} | ||
| onChange={(e) => setSearch(e.target.value)} |
| <input | ||
| autoFocus | ||
| type="text" | ||
| value={search} | ||
| onChange={(e) => setSearch(e.target.value)} |
| <input | ||
| autoFocus | ||
| type="text" | ||
| value={search} | ||
| onChange={(e) => setSearch(e.target.value)} |
| function tsTypeForLeaf(node: OutputNode): string { | ||
| if (node.type === 'null') return 'string | null'; | ||
| if (node.type === 'array') return 'Array<unknown>'; | ||
| return node.type; | ||
| } |
Concept 2: replace Referenced toggle+chips with a compact dropdown filter (Referenced N / All), unify schema and JSON container styling with matching border, background, and transparent Monaco theme so both tabs feel visually continuous. Add top padding to schema tree rows. Concept notes: add per-concept UX headline and rewrite pros/cons to communicate design tradeoffs to developers reviewing the concepts. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Summary
Design prototype for the node property panel's Input/Output experience. Three concepts rendered side-by-side in Storybook for async review, each exploring a different UX approach.
Shared across all concepts
NodePropertyPanel component changes
headerExtra?: ReactNodeslot toNodePropertyPanelProps— renders between the title and close button, available for compact mode toggles or status indicatorsHow to review
Open Storybook → Apollo React / Canvas Components / Panels / Node Property Panel → Input / Output
Toggle each panel between Input and Output mode. Interact with the tree (expand/collapse, inline edit, copy). Check the notes card at the bottom of each concept for the trade-off summary.
Test plan
pnpm --filter @uipath/apollo-react exec tsc --noEmit)🤖 Generated with Claude Code