Skip to content

feat(apollo-wind): Text area stays one line at design time and grows at runtime - #1460

Open
Sahil-Wakode wants to merge 9 commits into
mainfrom
fix/quick-form-field-textarea-one-line
Open

Sahil-Wakode wants to merge 9 commits into
mainfrom
fix/quick-form-field-textarea-one-line

Conversation

@Sahil-Wakode

@Sahil-Wakode Sahil-Wakode commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Design time: a Text area looks and behaves exactly like a Text field. No difference.

Runtime: a Text area is expandable. Drag its corner to make it bigger.

At design time every field type is the same one-line control; a Text area
now starts at one line too and grows with its content up to eight lines.
The multi-line box is for the runtime form, not the authoring row.
Copilot AI balanced review requested due to automatic review settings October 23, 2026 07:42
@github-actions github-actions Bot added size:S 10-29 changed lines. pkg:apollo-wind labels Oct 23, 2026
@github-actions
github-actions Bot temporarily deployed to preview/apollo-docs October 23, 2026 07:42 Destroyed
@github-actions
github-actions Bot temporarily deployed to preview/apollo-landing October 23, 2026 07:42 Destroyed
@github-actions
github-actions Bot temporarily deployed to preview/apollo-design October 23, 2026 07:42 Destroyed
@github-actions
github-actions Bot temporarily deployed to preview/apollo-vertex October 23, 2026 07:42 Destroyed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The native textarea still defaults to two rows, so lowering its minimum height alone does not achieve the intended one-line initial height.

1 open issue
What changed in this PR

This PR adjusts the design-time QuickFormField textarea to start at one line while retaining content-driven growth up to eight lines.

Changes:

  • Lowers the textarea’s minimum row count from three to one.
  • Adds a regression test for the one-row minimum height.
File Description
packages/​apollo-wind/​src/​components/​ui/​quick-form-field/​quick-form-field.tsx Updates the minimum row count and sizing comment.
packages/​apollo-wind/​src/​components/​ui/​quick-form-field/​quick-form-field.divergence.test.tsx Tests the textarea’s one-row minimum height in jsdom.

Review effort: Balanced

Comment thread packages/apollo-wind/src/components/ui/quick-form-field/quick-form-field.tsx Outdated
@github-actions

Copy link
Copy Markdown
Contributor

Dependency License Review

  • ✅ 1957 package(s) scanned
  • ✅ No license issues found
  • ⚠️ 2 package(s) excluded (see details below)
License distribution
License Packages
MIT 1721
ISC 91
Apache-2.0 57
BSD-3-Clause 28
BSD-2-Clause 23
BlueOak-1.0.0 8
MPL-2.0 4
CC0-1.0 4
MIT-0 3
MIT OR Apache-2.0 2
(MIT OR Apache-2.0) 2
Unlicense 2
LGPL-3.0-or-later 1
Python-2.0 1
CC-BY-4.0 1
(MPL-2.0 OR Apache-2.0) 1
Unknown 1
Artistic-2.0 1
(WTFPL OR MIT) 1
(BSD-2-Clause OR MIT OR Apache-2.0) 1
CC-BY-3.0 1
0BSD 1
(MIT OR CC0-1.0) 1
MIT AND ISC 1
Excluded packages
Package Version License Reason
@img/sharp-libvips-linux-x64 1.3.4 LGPL-3.0-or-later LGPL pre-built binary, not linked
khroma 2.1.0 Unknown MIT per GitHub repo, missing license field in package.json

…gn time

Design time uses the same one-line control for every field type, so a
Text area no longer grows: floor and ceiling are both one row, and it
leaves the grow layout. Content scrolls inside the box; it stays a
textarea so line breaks in a saved value survive.
Copilot AI balanced review requested due to automatic review settings October 23, 2026 07:46
@Sahil-Wakode Sahil-Wakode changed the title fix(apollo-wind): start a QuickFormField Text area one line tall fix(apollo-wind): keep a QuickFormField Text area at one line at design time Oct 23, 2026
@github-actions github-actions Bot added size:M 30-99 changed lines. and removed size:S 10-29 changed lines. labels Oct 23, 2026
@github-actions
github-actions Bot temporarily deployed to preview/apollo-design October 23, 2026 07:47 Destroyed
@github-actions
github-actions Bot temporarily deployed to preview/apollo-landing October 23, 2026 07:47 Destroyed
@github-actions
github-actions Bot temporarily deployed to preview/apollo-docs October 23, 2026 07:47 Destroyed
@github-actions
github-actions Bot temporarily deployed to preview/apollo-vertex October 23, 2026 07:47 Destroyed
@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

📊 Coverage + size by package

Per-package coverage and bundle size on this PR. New-line coverage = of the source lines this PR adds or changes, the % hit by tests.

Package Coverage New-line coverage Packed (gzip) Unpacked vs main
@uipath/apollo-core — — 42.02 MB 50.17 MB ±0
@uipath/apollo-react 58.4% 75.0% (15/20) 8.14 MB 32.17 MB ±0
@uipath/apollo-ui-icons — — 2.86 MB 6.97 MB ±0
@uipath/apollo-vertex — — — — —
@uipath/apollo-wind 79.4% 100.0% (1/1) 810.8 KB 4.68 MB +85 B
@uipath/ap-chat 85.8% — 40.42 MB 45.71 MB ±0

"Coverage" is each package's own coverage.include scope (e.g. apollo-core instruments only scripts/). "Packed"/"Unpacked" come from npm pack --dry-run and only cover built packages — "—" means not measured this run (package not affected / not built). "vs main" is the packed (gzipped) delta against the last successful main build (the package-sizes artifact from the Release workflow); "—" there means no main baseline was available this run. The baseline is main's latest build, not this PR's exact merge-base, so it includes any drift since the branch diverged. Packages with no vitest config are omitted.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Inherited textarea styles still prevent the outer box from matching normal row height and alignment.

2 open issues

Review effort: Balanced

@github-actions

github-actions Bot commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Storybook visual diff

⏭️ Skipped: the apollo-design preview deployment did not succeed, so no comparison ran. Logs

Updated (PT): Oct 23, 2026, 05:25:15 AM

A MetadataForm textarea started at four rows and scrolled past them. It
now starts at the same height (minRows, else rows, else 4) and grows with
its content up to maxRows (new, default 8) before scrolling. The ceiling
never sits below the floor, so a field asking for 10 rows still starts at
10.
Copilot AI balanced review requested due to automatic review settings October 23, 2026 07:57
@Sahil-Wakode Sahil-Wakode changed the title fix(apollo-wind): keep a QuickFormField Text area at one line at design time feat(apollo-wind): Text area stays one line at design time and grows at runtime Oct 23, 2026
@github-actions
github-actions Bot temporarily deployed to preview/apollo-design October 23, 2026 07:57 Destroyed
@github-actions
github-actions Bot temporarily deployed to preview/apollo-vertex October 23, 2026 07:58 Destroyed
@github-actions
github-actions Bot temporarily deployed to preview/apollo-landing October 23, 2026 07:58 Destroyed
@github-actions
github-actions Bot temporarily deployed to preview/apollo-landing October 23, 2026 11:53 Destroyed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Runtime manual resizing remains unavailable for grouped fields, and heights selected below the auto-grow ceiling are lost while typing.

No open issues 🎉

2 previously missed issues

In code that hasn't changed since last review

Medium severity Preserve manual textarea heights below the auto-grow ceiling

packages/​apollo-wind/​src/​components/​forms/​field-control.tsx:49

Always passing maxRows enables content-based resizing on every keystroke, but the shared Textarea only preserves manual resizing when the height exceeds that ceiling (textarea.tsx:197–204). With short, one-line content, dragging a default runtime field to four rows leaves the manual-resize flag unset, so the next keystroke shrinks it back to one row. Previously, rows/minRows-only fields did not refit their height on input. Detect and preserve user-selected heights below the auto-grow ceiling as well, and add a regression test that drags to fewer than eight rows before typing.

Medium severity Preserve vertical resizing for grouped runtime textareas

packages/​apollo-wind/​src/​components/​forms/​field-control.tsx:260

Runtime textareas with valueModes, headerActions, menuActions, or a badge render inside ModeAwareField's InputGroup. On this path, Textarea merges IN_GROUP_CLASS (resize-none) after its managed resize-y, removing the corner handle. These fields now auto-grow to the configured ceiling but cannot be dragged beyond it. Explicitly enable vertical resizing on this runtime control, leaving the design-time QuickFormField fixed, and add a grouped-field regression test.

Review effort: Balanced

The drag handle already lets a reviewer make the box as tall as they
need, so the eight-row auto-grow ceiling, the new maxRows option and
its serializer support are removed. A form textarea starts at one row
and keeps its resize handle.
Copilot AI balanced review requested due to automatic review settings October 23, 2026 11:59
@github-actions
github-actions Bot temporarily deployed to preview/apollo-docs October 23, 2026 12:00 Destroyed
@github-actions
github-actions Bot temporarily deployed to preview/apollo-design October 23, 2026 12:00 Destroyed
@github-actions
github-actions Bot temporarily deployed to preview/apollo-landing October 23, 2026 12:00 Destroyed
@github-actions
github-actions Bot temporarily deployed to preview/apollo-vertex October 23, 2026 12:00 Destroyed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Grouped runtime textareas still inherit resize-none, preventing the required drag-to-expand behavior.

1 open issue

Review effort: Balanced

aria-describedby={describedById}
aria-errormessage={errorId}
{...(field.minRows != null ? { minRows: field.minRows } : { rows: field.rows || 4 })}
{...textareaSizing(field)}
Design time needs only rows={1}: min/maxRows switch on auto-sizing a
fixed box never uses. Runtime inlines the helper as one rows value used
for both rows and minRows.
Copilot AI balanced review requested due to automatic review settings October 23, 2026 12:06
@github-actions github-actions Bot added size:M 30-99 changed lines. and removed size:L 100-499 changed lines. labels Oct 23, 2026
@github-actions
github-actions Bot temporarily deployed to preview/apollo-docs October 23, 2026 12:07 Destroyed
@github-actions
github-actions Bot temporarily deployed to preview/apollo-vertex October 23, 2026 12:07 Destroyed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔵 Needs a closer look

Grouped runtime textareas still suppress the resize handle, leaving the intended drag-to-expand behavior incomplete.

1 open issue

Review effort: Balanced

Starts at one row and resizes to the content it is given, up to eight
rows, then scrolls. The drag handle still makes it bigger beyond that.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Runtime textareas discard manually selected heights below the auto-growth ceiling when users continue typing.

2 open issues

Review effort: Balanced

{...(field.minRows != null ? { minRows: field.minRows } : { rows: field.rows || 4 })}
rows={rows}
minRows={rows}
maxRows={Math.max(rows, 8)}

@BenGSchulz BenGSchulz Oct 23, 2026 •

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.

Would be good to validate this, I would lean towards not changing field-control behavior right now. It already has drag to resize capability. If you do want to change it, can you please give a clear example of the use case where the change is necessary / desired?

{...(field.minRows != null ? { minRows: field.minRows } : { rows: field.rows || 4 })}
rows={rows}
minRows={rows}
maxRows={Math.max(rows, 8)}

@BenGSchulz BenGSchulz Oct 23, 2026 •

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.

Would be good to validate this, I would lean towards not changing field-control behavior right now. It already has drag to resize capability. If you do want to change it, can you please give a clear example of the use case where the change is necessary / desired?

<InputGroupTextarea {...textInputProps} minRows={3} maxRows={8} />
// One fixed line at design time; wrapped so the group keeps its row height.
<div className="flex min-w-0 flex-1 items-center">
<InputGroupTextarea {...textInputProps} rows={1} className="py-0 future:py-0" />

@BenGSchulz BenGSchulz Oct 23, 2026 •

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.

We might want to have the text area expandable still (either via drag handle or automatically), but start at one line. See attachment for the experience locking to one line.

I see this as helping the developer to see what the end user will see.

Screen.Recording.2026-10-23.at.7.46.28.AM.mov

This branch had an error being deployed

2 failed and 2 active deployments
preview/apollo-landing — a53800bf Deployed Oct 23, 2026 by github-actions[bot]
preview/apollo-design — a53800bf Deployed Oct 23, 2026 by github-actions[bot]
preview/apollo-docs — a53800bf Deployed Oct 23, 2026 by github-actions[bot]
preview/apollo-vertex — a53800bf Deployed Oct 23, 2026 by github-actions[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pkg:apollo-wind size:M 30-99 changed lines.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants