AiInput

fun AiInput(value: TextFieldValue, onValueChange: (TextFieldValue) -> Unit, modifier: Modifier = Modifier, style: AiInputStyle = LocalAiInputStyle.current, enabled: Boolean = true, readOnly: Boolean = false, keyboardOptions: KeyboardOptions = KeyboardOptions.Default, keyboardActions: KeyboardActions = KeyboardActions.Default, visualTransformation: VisualTransformation = VisualTransformation.None, hasScrollBar: Boolean = true, placeholder: @Composable () -> Unit? = null, content: @Composable RowScope.() -> Unit? = null, startControls: @Composable () -> Unit? = null, endControls: @Composable () -> Unit? = null, sendButton: @Composable () -> Unit? = null, interactionSource: MutableInteractionSource = remember { MutableInteractionSource() }, motion: Motion<AiInputMotionStyle> = rememberAiInputMotion( motionContext = rememberMotionContext(interactionSource), ))

Компонент ввода для AI-интерфейсов.

Объединяет текстовое поле, область вложений и набор контролов слева и справа. Режим отображения определяется через AiInputStyle.mode:

  • AiInputMode.Condensed — поле ввода в одной строке с контролами при однострочном тексте, переносится над контролами при многострочном.

  • AiInputMode.Extended — поле ввода всегда располагается над контролами.

В многострочном режиме поле ввода становится вертикально прокручиваемым. При hasScrollBar = true справа отображается ScrollBar, который появляется при прокрутке и исчезает после её остановки.

Parameters

value

текущее значение текстового поля

onValueChange

колбэк изменения значения

modifier

модификатор

style

стиль компонента AiInputStyle

motion

объект анимаций

enabled

доступность компонента для взаимодействия

readOnly

режим только для чтения

keyboardOptions

параметры клавиатуры

keyboardActions

обработчики действий клавиатуры

visualTransformation

трансформация отображаемого текста

interactionSource

источник взаимодействий

hasScrollBar

показывать ли скроллбар в многострочном режиме

placeholder

слот placeholder, отображается при пустом тексте

content

слот контента (например, File-компоненты); располагается над полем ввода с горизонтальным скроллом

startControls

слот левой группы контролов; стиль группы провайдится через LocalButtonGroupStyle

endControls

слот правой группы контролов; стиль группы провайдится через LocalButtonGroupStyle

sendButton

слот кнопки отправки, располагается справа от endControls; стиль провайдится через LocalButtonStyle