npm.io
2.1.12 • Published 9 months ago

@hautechai/webui.textarea

Licence
Apache-2.0
Version
2.1.12
Deps
3
Size
10 kB
Vulns
0
Weekly
0

TextArea

Purpose

Multi-line text input component with resizing capabilities, icon support, and validation states.

Installation

# pnpm (recommended)
pnpm add @hautechai/webui.textarea

# npm
npm install @hautechai/webui.textarea

# yarn
yarn add @hautechai/webui.textarea

Parameters

Parameter Type Description
className string Optional CSS class name for custom styling
value string Optional controlled value for the textarea
placeholder string Optional placeholder text displayed when textarea is empty
disabled boolean When true, disables textarea interaction and applies disabled styling
onChange ChangeEventHandler Optional callback function triggered when textarea content changes
leadingIcon React.ReactNode Optional icon displayed at the beginning of the textarea
trailingIcon React.ReactNode Optional icon displayed at the end of the textarea
hasError boolean When true, applies error styling to indicate validation failure
variation 'filled' | 'outlined' Optional visual style variant (defaults to 'filled')
minRows number Optional minimum number of rows for the textarea (defaults to 4)
maxRows number Optional maximum number of rows for the textarea
actionButton React.ReactNode Optional action button element to display alongside or inside the textarea
actionButtonInside boolean When true, positions the action button inside the textarea container
actionButtonPosition 'top' | 'middle' | 'bottom' Controls vertical positioning of the action button (defaults to 'middle')

Usage Example

<TextArea
    placeholder="Enter your message..."
    value={message}
    onChange={handleMessageChange}
    leadingIcon={<MessageIcon />}
    hasError={!!messageError}
    disabled={isSubmitting}
    actionButton={<Button label="Send" onClick={handleSend} />}
    actionButtonInside={false}
    actionButtonPosition="middle"
/>

// Action button positioned at top outside the textarea
<TextArea
    placeholder="Type here..."
    actionButton={<IconButton icon={<SendIcon />} onClick={handleSend} />}
    actionButtonPosition="top"
/>

// Action button positioned at bottom inside the textarea
<TextArea
    placeholder="Write a comment..."
    actionButton={<IconButton icon={<SubmitIcon />} onClick={handleSubmit} />}
    actionButtonInside={true}
    actionButtonPosition="bottom"
/>