Elements

Components

Dynamic Input

A column of entry rows: one Input per line, each with a quiet remove seal, and an add row at the tail. The list is controlled — every edit emits a fresh array and the parent's array stays the only truth. Deleting never drops below `min`, adding never grows past `max`, and the group always keeps one row: an entry list that emptied itself would leave the reader no place to type.

#Basic usage

dynamic-input/basic Vue React

values: ["[email protected]",""]

dynamic-input/min-max Vue React

Between 1 and 3 codes

#Props

#DynamicInput

A column of entry rows: one Input per line, each with a quiet remove seal, and an add row at the tail. The list is controlled — every edit emits a fresh array and the parent's array stays the only truth. Deleting never drops below min, adding never grows past max, and the group always keeps one row: an entry list that emptied itself would leave the reader no place to type.

PropTypeDefaultDescription
modelValueArray as PropType<string[]>() => [""]The rows' values; the group renders one Input per entry.
minNumber0The fewest rows the group keeps; the remove seals yield first.
maxNumberundefinedThe most rows the group grows to; the add control yields then.
placeholderStringundefined—
addLabelString"Add entry"The add control's visible words.
disabledBooleanfalse—
invalidBooleanfalse—
sizeString as PropType<"sm" | "md" | "lg">"md"One rung of the ladder, handed to every row's field and seals.