Компоненты/Поле ИИ с режимами

Поле ИИ с режимами

29 сентября 2026

Поле ввода для ИИ с вложениями, раскрывающимися кнопками поиска и глубокого режима, выбором модели и переездом вниз после первого сообщения.

Установка

npm install clsx lucide-react motion radix-ui tailwind-merge
pnpm add clsx lucide-react motion radix-ui tailwind-merge
yarn add clsx lucide-react motion radix-ui tailwind-merge
bun add clsx lucide-react motion radix-ui tailwind-merge

Файлы

ai-input-modes.tsx
НазадПоле ИИ на градиентеДалееПоле ввода для ИИ

Поле ввода для ИИ-чата стоит по центру поверх огромной мерцающей надписи. Кнопки поиска и глубокого режима по нажатию раскрываются в подписанные пилюли и подсвечиваются акцентом, а подсказка в поле меняется на «Поиск в сети». Плюс открывает меню вложений, выбор изображения показывает превью, модель выбирается из выпадающего списка.

После первого сообщения поле на пружине переезжает вниз, надпись исчезает, а над полем появляется лента сообщений с ответом ассистента, которая сама докручивается к последней реплике.

Вручную

Скопируйте эти файлы в components/ai-input-modes/:

Общие помощники положите в lib/ проекта:

Проверьте алиас путей. Импорты в коде выше записаны как @/components/... и @/lib/.... Нужен алиас "@/*" на папку, где лежат components/ и lib/, в tsconfig.json — или поправьте импорты под свои пути.

Использование

import { AiInputModes } from "@/components/ai-input-modes/ai-input-modes";

export function Assistant() {
return (
  <div className="h-[600px]">
    <AiInputModes watermark="Мой ИИ" defaultSearchMode />
  </div>
);
}

Пропсы

Пропс
Описание
models?

Модели: id, name и иконка

Тип AiInputModel[]·По умолчанию AI_INPUT_DEFAULT_MODELS

defaultModel?

Модель, выбранная при старте

Тип string·По умолчанию первая модель

watermark?

Мерцающая надпись на фоне

Тип string·По умолчанию "Astra llm 0.3"

askPlaceholder?

Подсказка в обычном режиме

Тип string·По умолчанию "Задайте вопрос"

searchPlaceholder?

Подсказка в режиме поиска

Тип string·По умолчанию "Поиск в сети"

searchLabel?

Подпись кнопки поиска

Тип string·По умолчанию "Поиск"

deepLabel?

Подпись кнопки глубокого режима

Тип string·По умолчанию "Глубоко"

reply?

Ответ ассистента

Тип string·По умолчанию "Без понятия 😭"

attachLabels?

Пункты меню вложений

Тип { images; documents; apps }·По умолчанию русские подписи

width?

Максимальная ширина поля и ленты, px

Тип number·По умолчанию 768

accent?

Цвет активных кнопок

Тип string·По умолчанию цвет бренда

defaultSearchMode?

Поиск включён при старте

Тип boolean·По умолчанию false

defaultDeepMode?

Глубокий режим включён при старте

Тип boolean·По умолчанию false

className?

Классы корневого блока

Тип string