Skip to content

ChatKit Widgets

This reference is generated from the chatkit-node/widgets module. Every component inherits the common props id, key, and type. Optional props default to null or undefined unless noted.

Badge

Small badge indicating status or categorization.

Field Type Default
key string \| null null
id string \| null null
type 'Badge' 'Badge'
label string
color 'secondary' \| 'success' \| 'danger' \| 'warning' \| 'info' \| 'discovery' \| null null
variant 'solid' \| 'soft' \| 'outline' \| null null
size 'sm' \| 'md' \| 'lg' \| null null
pill boolean \| null null

Box

Generic flex container with direction control.

Field Type Default
children WidgetComponent[] \| null null
align 'start' \| 'center' \| 'end' \| 'baseline' \| 'stretch' \| null null
justify 'start' \| 'center' \| 'end' \| 'between' \| 'around' \| 'evenly' \| 'stretch' \| null null
wrap 'nowrap' \| 'wrap' \| 'wrap-reverse' \| null null
flex number \| string \| null null
gap number \| string \| null null
height number \| string \| null null
width number \| string \| null null
size number \| string \| null null
minHeight number \| string \| null null
minWidth number \| string \| null null
minSize number \| string \| null null
maxHeight number \| string \| null null
maxWidth number \| string \| null null
maxSize number \| string \| null null
padding number \| string \| Spacing \| null null
margin number \| string \| Spacing \| null null
border number \| Border \| Borders \| null null
radius '2xs' \| 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| '3xl' \| '4xl' \| 'full' \| '100%' \| 'none' \| null null
background string \| ThemeColor \| null null
aspectRatio number \| string \| null null
key string \| null null
id string \| null null
type 'Box' 'Box'
direction 'row' \| 'col' \| null null

Button

Button component optionally wired to an action.

Field Type Default
key string \| null null
id string \| null null
type 'Button' 'Button'
submit boolean \| null null
label string \| null null
onClickAction ActionConfig \| null null
iconStart WidgetIcon \| null null
iconEnd WidgetIcon \| null null
style 'primary' \| 'secondary' \| null null
iconSize 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| null null
color 'primary' \| 'secondary' \| 'info' \| 'discovery' \| 'success' \| 'caution' \| 'warning' \| 'danger' \| null null
variant 'solid' \| 'soft' \| 'outline' \| 'ghost' \| null null
size '3xs' \| '2xs' \| 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| '3xl' \| null null
pill boolean \| null null
uniform boolean \| null null
block boolean \| null null
disabled boolean \| null null

Caption

Widget rendering supporting caption text.

Field Type Default
key string \| null null
id string \| null null
type 'Caption' 'Caption'
value string
color string \| ThemeColor \| null null
weight 'normal' \| 'medium' \| 'semibold' \| 'bold' \| null null
size 'sm' \| 'md' \| 'lg' \| null null
textAlign 'start' \| 'center' \| 'end' \| null null
truncate boolean \| null null
maxLines number \| null null

Card

Versatile container used for structuring widget content.

Field Type Default
key string \| null null
id string \| null null
type 'Card' 'Card'
asForm boolean \| null null
children WidgetComponent[]
background string \| ThemeColor \| null null
size 'sm' \| 'md' \| 'lg' \| 'full' \| null null
padding number \| string \| Spacing \| null null
status WidgetStatusWithFavicon \| WidgetStatusWithIcon \| null null
collapsed boolean \| null null
confirm CardAction \| null null
cancel CardAction \| null null
theme 'light' \| 'dark' \| null null

Chart

Data visualization component for simple bar/line/area charts.

Field Type Default
key string \| null null
id string \| null null
type 'Chart' 'Chart'
data Record<string, string \| number>[]
series Series[]
xAxis string \| XAxisConfig
showYAxis boolean \| null null
showLegend boolean \| null null
showTooltip boolean \| null null
barGap number \| null null
barCategoryGap number \| null null
flex number \| string \| null null
height number \| string \| null null
width number \| string \| null null
size number \| string \| null null
minHeight number \| string \| null null
minWidth number \| string \| null null
minSize number \| string \| null null
maxHeight number \| string \| null null
maxWidth number \| string \| null null
maxSize number \| string \| null null
aspectRatio number \| string \| null null

Checkbox

Checkbox input component.

Field Type Default
key string \| null null
id string \| null null
type 'Checkbox' 'Checkbox'
name string
label string \| null null
defaultChecked string \| null null
onChangeAction ActionConfig \| null null
disabled boolean \| null null
required boolean \| null null

Col

Vertical flex container.

Field Type Default
children WidgetComponent[] \| null null
align 'start' \| 'center' \| 'end' \| 'baseline' \| 'stretch' \| null null
justify 'start' \| 'center' \| 'end' \| 'between' \| 'around' \| 'evenly' \| 'stretch' \| null null
wrap 'nowrap' \| 'wrap' \| 'wrap-reverse' \| null null
flex number \| string \| null null
gap number \| string \| null null
height number \| string \| null null
width number \| string \| null null
size number \| string \| null null
minHeight number \| string \| null null
minWidth number \| string \| null null
minSize number \| string \| null null
maxHeight number \| string \| null null
maxWidth number \| string \| null null
maxSize number \| string \| null null
padding number \| string \| Spacing \| null null
margin number \| string \| Spacing \| null null
border number \| Border \| Borders \| null null
radius '2xs' \| 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| '3xl' \| '4xl' \| 'full' \| '100%' \| 'none' \| null null
background string \| ThemeColor \| null null
aspectRatio number \| string \| null null
key string \| null null
id string \| null null
type 'Col' 'Col'

DatePicker

Date picker input component.

Field Type Default
key string \| null null
id string \| null null
type 'DatePicker' 'DatePicker'
name string
onChangeAction ActionConfig \| null null
placeholder string \| null null
defaultValue Date \| null null
min Date \| null null
max Date \| null null
variant 'solid' \| 'soft' \| 'outline' \| 'ghost' \| null null
size '3xs' \| '2xs' \| 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| '3xl' \| null null
side 'top' \| 'bottom' \| 'left' \| 'right' \| null null
align 'start' \| 'center' \| 'end' \| null null
pill boolean \| null null
block boolean \| null null
clearable boolean \| null null
disabled boolean \| null null

Divider

Visual divider separating content sections.

Field Type Default
key string \| null null
id string \| null null
type 'Divider' 'Divider'
color string \| ThemeColor \| null null
size number \| string \| null null
spacing number \| string \| null null
flush boolean \| null null

Form

Form wrapper capable of submitting onSubmitAction.

Field Type Default
children WidgetComponent[] \| null null
align 'start' \| 'center' \| 'end' \| 'baseline' \| 'stretch' \| null null
justify 'start' \| 'center' \| 'end' \| 'between' \| 'around' \| 'evenly' \| 'stretch' \| null null
wrap 'nowrap' \| 'wrap' \| 'wrap-reverse' \| null null
flex number \| string \| null null
gap number \| string \| null null
height number \| string \| null null
width number \| string \| null null
size number \| string \| null null
minHeight number \| string \| null null
minWidth number \| string \| null null
minSize number \| string \| null null
maxHeight number \| string \| null null
maxWidth number \| string \| null null
maxSize number \| string \| null null
padding number \| string \| Spacing \| null null
margin number \| string \| Spacing \| null null
border number \| Border \| Borders \| null null
radius '2xs' \| 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| '3xl' \| '4xl' \| 'full' \| '100%' \| 'none' \| null null
background string \| ThemeColor \| null null
aspectRatio number \| string \| null null
key string \| null null
id string \| null null
type 'Form' 'Form'
onSubmitAction ActionConfig \| null null
direction 'row' \| 'col' \| null null

Icon

Icon component referencing a built-in icon name.

Field Type Default
key string \| null null
id string \| null null
type 'Icon' 'Icon'
name WidgetIcon
color string \| ThemeColor \| null null
size 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| '3xl' \| null null

Image

Image component with sizing and fitting controls.

Field Type Default
key string \| null null
id string \| null null
type 'Image' 'Image'
src string
alt string \| null null
fit 'cover' \| 'contain' \| 'fill' \| 'scale-down' \| 'none' \| null null
position 'top left' \| 'top' \| 'top right' \| 'left' \| 'center' \| 'right' \| 'bottom left' \| 'bottom' \| 'bottom right' \| null null
radius '2xs' \| 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| '3xl' \| '4xl' \| 'full' \| '100%' \| 'none' \| null null
frame boolean \| null null
flush boolean \| null null
height number \| string \| null null
width number \| string \| null null
size number \| string \| null null
minHeight number \| string \| null null
minWidth number \| string \| null null
minSize number \| string \| null null
maxHeight number \| string \| null null
maxWidth number \| string \| null null
maxSize number \| string \| null null
margin number \| string \| Spacing \| null null
background string \| ThemeColor \| null null
aspectRatio number \| string \| null null
flex number \| string \| null null

Input

Single-line text input component.

Field Type Default
key string \| null null
id string \| null null
type 'Input' 'Input'
name string
inputType 'number' \| 'email' \| 'text' \| 'password' \| 'tel' \| 'url' \| null null
defaultValue string \| null null
required boolean \| null null
pattern string \| null null
placeholder string \| null null
allowAutofillExtensions boolean \| null null
autoSelect boolean \| null null
autoFocus boolean \| null null
disabled boolean \| null null
variant 'soft' \| 'outline' \| null null
size '3xs' \| '2xs' \| 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| '3xl' \| null null
gutterSize '2xs' \| 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| null null
pill boolean \| null null

Label

Form label associated with a field.

Field Type Default
key string \| null null
id string \| null null
type 'Label' 'Label'
value string
fieldName string
size 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| null null
weight 'normal' \| 'medium' \| 'semibold' \| 'bold' \| null null
textAlign 'start' \| 'center' \| 'end' \| null null
color string \| ThemeColor \| null null

ListView

Container component for rendering collections of list items.

Field Type Default
key string \| null null
id string \| null null
type 'ListView' 'ListView'
children ListViewItem[]
limit number \| 'auto' \| null null
status WidgetStatusWithFavicon \| WidgetStatusWithIcon \| null null
theme 'light' \| 'dark' \| null null

ListViewItem

Single row inside a ListView component.

Field Type Default
key string \| null null
id string \| null null
type 'ListViewItem' 'ListViewItem'
children WidgetComponent[]
onClickAction ActionConfig \| null null
gap number \| string \| null null
align 'start' \| 'center' \| 'end' \| 'baseline' \| 'stretch' \| null null

Markdown

Widget rendering Markdown content, optionally streamed.

Field Type Default
key string \| null null
id string \| null null
type 'Markdown' 'Markdown'
value string
streaming boolean \| null null

RadioGroup

Grouped radio input control.

Field Type Default
key string \| null null
id string \| null null
type 'RadioGroup' 'RadioGroup'
name string
options RadioOption[] \| null null
ariaLabel string \| null null
onChangeAction ActionConfig \| null null
defaultValue string \| null null
direction 'row' \| 'col' \| null null
disabled boolean \| null null
required boolean \| null null

Row

Horizontal flex container.

Field Type Default
children WidgetComponent[] \| null null
align 'start' \| 'center' \| 'end' \| 'baseline' \| 'stretch' \| null null
justify 'start' \| 'center' \| 'end' \| 'between' \| 'around' \| 'evenly' \| 'stretch' \| null null
wrap 'nowrap' \| 'wrap' \| 'wrap-reverse' \| null null
flex number \| string \| null null
gap number \| string \| null null
height number \| string \| null null
width number \| string \| null null
size number \| string \| null null
minHeight number \| string \| null null
minWidth number \| string \| null null
minSize number \| string \| null null
maxHeight number \| string \| null null
maxWidth number \| string \| null null
maxSize number \| string \| null null
padding number \| string \| Spacing \| null null
margin number \| string \| Spacing \| null null
border number \| Border \| Borders \| null null
radius '2xs' \| 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| '3xl' \| '4xl' \| 'full' \| '100%' \| 'none' \| null null
background string \| ThemeColor \| null null
aspectRatio number \| string \| null null
key string \| null null
id string \| null null
type 'Row' 'Row'

Select

Select dropdown component.

Field Type Default
key string \| null null
id string \| null null
type 'Select' 'Select'
name string
options SelectOption[]
onChangeAction ActionConfig \| null null
placeholder string \| null null
defaultValue string \| null null
variant 'solid' \| 'soft' \| 'outline' \| 'ghost' \| null null
size '3xs' \| '2xs' \| 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| '3xl' \| null null
pill boolean \| null null
block boolean \| null null
clearable boolean \| null null
disabled boolean \| null null

Spacer

Flexible spacer used to push content apart.

Field Type Default
key string \| null null
id string \| null null
type 'Spacer' 'Spacer'
minSize number \| string \| null null

Text

Widget rendering plain text with typography controls.

Field Type Default
key string \| null null
id string \| null null
type 'Text' 'Text'
value string
streaming boolean \| null null
italic boolean \| null null
lineThrough boolean \| null null
color string \| ThemeColor \| null null
weight 'normal' \| 'medium' \| 'semibold' \| 'bold' \| null null
width number \| string \| null null
size 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| null null
textAlign 'start' \| 'center' \| 'end' \| null null
truncate boolean \| null null
minLines number \| null null
maxLines number \| null null
editable false \| EditableProps \| null null

Textarea

Multiline text input component.

Field Type Default
key string \| null null
id string \| null null
type 'Textarea' 'Textarea'
name string
defaultValue string \| null null
required boolean \| null null
pattern string \| null null
placeholder string \| null null
autoSelect boolean \| null null
autoFocus boolean \| null null
disabled boolean \| null null
variant 'soft' \| 'outline' \| null null
size '3xs' \| '2xs' \| 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| '3xl' \| null null
gutterSize '2xs' \| 'xs' \| 'sm' \| 'md' \| 'lg' \| 'xl' \| null null
rows number \| null null
autoResize boolean \| null null
maxRows number \| null null
allowAutofillExtensions boolean \| null null

Title

Widget rendering prominent headline text.

Field Type Default
key string \| null null
id string \| null null
type 'Title' 'Title'
value string
color string \| ThemeColor \| null null
weight 'normal' \| 'medium' \| 'semibold' \| 'bold' \| null null
size 'sm' \| 'md' \| 'lg' \| 'xl' \| '2xl' \| '3xl' \| '4xl' \| '5xl' \| null null
textAlign 'start' \| 'center' \| 'end' \| null null
truncate boolean \| null null
maxLines number \| null null

Transition

Wrapper enabling transitions for a child component.

Field Type Default
key string \| null null
id string \| null null
type 'Transition' 'Transition'
children WidgetComponent \| null