Fix: Make textarea fill the area available instead of being resizable. (#6190)

## Summary

Invert the sizing of textareas. They now grow based on the container
instead of being independently resizable.

## Review Focus

Tested the behavior in Note, Markdown Note, CLIP Text Encode, and
Subgrpahs with promoted mutliline text widgets.

Anything else that might break with this?

## Screenshots (if applicable)


https://github.com/user-attachments/assets/4e2da142-d0b7-4629-9814-b637566ac1d6


<!-- Add screenshots or video recording to help explain your changes -->

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-6190-Fix-Make-textarea-fill-the-area-available-instead-of-being-resizable-2946d73d3650818a9f77c619deb93d0b)
by [Unito](https://www.unito.io)

---------

Co-authored-by: github-actions <github-actions@github.com>
This commit is contained in:
Alexander Brown
2025-10-21 19:31:05 -07:00
committed by GitHub
parent 4ad8ae2634
commit 9cd7d06a6d
22 changed files with 6 additions and 13 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 97 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 76 KiB

View File

@@ -6,7 +6,7 @@
v-else v-else
:class=" :class="
cn( cn(
'lg-node-widgets flex flex-col gap-2 pr-3', 'lg-node-widgets flex flex-col flex-1 gap-2 pr-3',
shouldHandleNodePointerEvents shouldHandleNodePointerEvents
? 'pointer-events-auto' ? 'pointer-events-auto'
: 'pointer-events-none' : 'pointer-events-none'
@@ -19,7 +19,7 @@
<div <div
v-for="(widget, index) in processedWidgets" v-for="(widget, index) in processedWidgets"
:key="`widget-${index}-${widget.name}`" :key="`widget-${index}-${widget.name}`"
class="lg-widget-container group flex items-center" class="group flex flex-1 items-stretch"
> >
<!-- Widget Input Slot Dot --> <!-- Widget Input Slot Dot -->

View File

@@ -195,14 +195,6 @@ describe('WidgetTextarea Value Binding', () => {
const textarea = wrapper.find('textarea') const textarea = wrapper.find('textarea')
expect(textarea.attributes('placeholder')).toBe('Custom placeholder') expect(textarea.attributes('placeholder')).toBe('Custom placeholder')
}) })
it('sets default rows attribute', () => {
const widget = createMockWidget('test')
const wrapper = mountComponent(widget, 'test')
const textarea = wrapper.find('textarea')
expect(textarea.attributes('rows')).toBe('3')
})
}) })
describe('Edge Cases', () => { describe('Edge Cases', () => {

View File

@@ -3,11 +3,12 @@
<Textarea <Textarea
v-model="localValue" v-model="localValue"
v-bind="filteredProps" v-bind="filteredProps"
:class="cn(WidgetInputBaseClass, 'w-full text-xs lod-toggle')" :class="
cn(WidgetInputBaseClass, 'size-full text-xs lod-toggle resize-none')
"
:placeholder="placeholder || widget.name || ''" :placeholder="placeholder || widget.name || ''"
:aria-label="widget.name" :aria-label="widget.name"
size="small" fluid
rows="3"
data-capture-wheel="true" data-capture-wheel="true"
@update:model-value="onChange" @update:model-value="onChange"
/> />