Это те самые четыре атрибута токенов на <html>. От них пересчитывается вся страница, включая живые превью.
Примитивы
13
Textarea
Близнец поля, только без фиксированной высоты. resize только вертикальный: textarea, которую можно растянуть вширь, вылезает из того, что её разложило. autoGrow заставляет её вместо этого расти вместе с содержимым, и это чистый CSS: вся реализация — field-sizing: content, никакого обработчика нажатий с замером scrollHeight, и работает даже в разметке, которая никогда не гидрировалась. Где свойство не поддерживается, поле остаётся фиксированной коробкой со скроллом.
import { Stack, Textarea } from '@ilomee/aura-react';export default function Demo() { // `autoGrow` — это CSS, а не обработчик нажатий, поэтому он работает и в панелях, которые // отрисованы на сборке и никогда не гидрировались. Наберите несколько строк в любом из полей. return ( <Stack gap={4} style={{ minWidth: 320 }}> <Textarea label="Notes" rows={4} placeholder="Anything worth remembering" /> <Textarea label="Notes, growing" rows={2} autoGrow placeholder="Type a few lines" /> </Stack> );}
У чистой разметки нет пропсов — классы ниже и есть весь API. Четыре пакета не делают ничего сверх того, что проставляют вам те же самые классы.
Имя
Тип
По умолчанию
Примечания
label
string
—
hint
string
—
Постоянная подсказка под контролом, показывается всегда.
error
string
—
Что не так прямо сейчас. Ставит контролу aria-invalid и добавляет сообщение в его aria-describedby — после подсказки. Без живого региона: role="alert" объявляет себя при монтировании, поэтому форма с тремя ошибками, отрисованная на сервере, перебила бы читателя трижды ещё до первого поля.
value
string
—
defaultValue
string
—
onValueChange
(value: string) => void
—
id
string
—
Сгенерированный id берётся у самого фреймворка, поэтому он совпадает при SSR и гидратации.
autoGrow
boolean
false
Растёт вместе с содержимым вместо прокрутки — field-sizing: content, без обработчика нажатий. Где браузер его не поддерживает, поле остаётся фиксированным со скроллом.
inputClassName
string
—
Имя
Тип
По умолчанию
Примечания
label
string
—
hint
string
—
Постоянная подсказка под контролом, показывается всегда.
error
string
—
Что не так прямо сейчас. Ставит контролу aria-invalid и добавляет сообщение в его aria-describedby — после подсказки. Без живого региона: role="alert" объявляет себя при монтировании, поэтому форма с тремя ошибками, отрисованная на сервере, перебила бы читателя трижды ещё до первого поля.
modelValueдвусторонний
string
—
defaultValue
string
—
id
string
—
Сгенерированный id берётся у самого фреймворка, поэтому он совпадает при SSR и гидратации.
autoGrow
boolean
false
update:modelValueсобытие
(value: string) => void
—
Имя
Тип
По умолчанию
Примечания
label
string
—
hint
string
—
Постоянная подсказка под контролом, показывается всегда.
error
string
—
Что не так прямо сейчас. Ставит контролу aria-invalid и добавляет сообщение в его aria-describedby — после подсказки. Без живого региона: role="alert" объявляет себя при монтировании, поэтому форма с тремя ошибками, отрисованная на сервере, перебила бы читателя трижды ещё до первого поля.
valueдвусторонний
string
''
id
string
—
Сгенерированный id берётся у самого фреймворка, поэтому он совпадает при SSR и гидратации.
autoGrow
boolean
false
Имя
Тип
По умолчанию
Примечания
label
string
—
hint
string
—
Постоянная подсказка под контролом, показывается всегда.
error
string
—
Что не так прямо сейчас. Ставит контролу aria-invalid и добавляет сообщение в его aria-describedby — после подсказки. Без живого региона: role="alert" объявляет себя при монтировании, поэтому форма с тремя ошибками, отрисованная на сервере, перебила бы читателя трижды ещё до первого поля.
value
string
''
id
string
—
autoGrow
boolean
false
valueChangeсобытие
EventEmitter<string>
—
Какие классы отдаёт
Все фреймворки отдают одни и те же классы — именно поэтому четыре библиотеки выглядят одинаково. Их можно использовать напрямую, вообще без библиотеки компонентов.