@cloud-ru/ds-ai-field-notice

中文文档
2.1.2发布于 2026/11/12Apache-2.0TypeScriptESM + CJS近 30 天下载 2594

Композиция AiFieldBanner и AiQueue для контекстных уведомлений над AI-полем.

原始使用文档
文档目录17 节
  1. Когда использовать
  2. Когда не нужен
  3. Анатомия
  4. Variant
  5. Size (default s на desktop, m на mobile)
  6. Action
  7. Animated description
  8. Установка
  9. Примеры использования
  10. Password
  11. SSH
  12. Support
  13. VM Agent
  14. Queue
  15. Props
  16. Смотри также
  17. Адаптивность

AiFieldNotice

@cloud-ru/ds-ai-field-notice — Композиция AiFieldBanner и AiQueue для контекстных уведомлений над AI-полем.

AiFieldNotice — композиция над AiFieldBanner и AiQueue для AI-полей. Один корневой компонент, один баннер на экран: сценарий выбирается через variant, текст, иконка и тип баннера предзашиты.

Мастер-ширина — 400px. Размеры наследуются от AiFieldBanner: s — desktop, m — mobile.

Когда использовать

  • Контекстное уведомление над AI-полем ввода — password, SSH, управление ВМ, поддержка или очередь задач.
  • Нужен готовый сценарий из Figma Field Notice без ручной сборки AiFieldBanner.

Когда не нужен

  • Универсальный баннер с произвольным текстом и типом:
    • используйте @cloud-ru/ds-ai-field-banner напрямую.
  • Inline-alert в контенте страницы:
    • используйте @cloud-ru/ds-alert.

Анатомия

Variant

variant — discriminated union: набор пропсов зависит от значения. В каждый момент рендерится один баннер.

  • password — безопасный ввод пароля. Баннер security, иконка PasswordLock. Ротирующее описание с hover на «Гига не получит ваши данные».
  • ssh — безопасный ввод SSH-ключа. Баннер security, иконка PasswordLock. Та же анимация описания, финальный кадр — «Введите SSH-ключ».
  • vmAgent — управление виртуальной машиной. Баннер agentic, без иконки. Ротация между заголовком и строкой vmName / vmIp. Обязательны vmName и vmIp.
  • support — чат с инженером. Баннер help, иконка Headphones, статичное описание.
  • queue — очередь задач агента. Information-баннер с AiQueue внутри. Обязателен проп queue (AiQueueProps). onActionClick не используется.
<AiFieldNotice variant='password' onActionClick={handleCancel} />

<AiFieldNotice
  variant='vmAgent'
  vmName='my-lovely-vm'
  vmIp='93.7.94.11'
  onActionClick={handleNewSession}
/>

<AiFieldNotice variant='queue' queue={{ steps, defaultOpen: true }} />

Size (default s на desktop, m на mobile)

Общий size на корне — передаётся в AiFieldBanner и внутренние части описания. Как размер выбирается на mobile — раздел «Адаптивность».

  • s — desktop (Mobile Off).
  • m — mobile (Mobile On).

Action

Для password, ssh, support, vmAgent — текстовая кнопка справа с предзашитой подписью (VARIANT_ACTION_LABELS) и обработчиком onActionClick.

При variant='queue' action-слот не используется — управление очередью через пропсы queue.

Animated description

Для password и ssh — AiFieldNoticeAnimatedDescription: автосмена кадров до финального промпта («Введите пароль» / «Введите SSH-ключ»), затем при hover на баннер — кадр «Гига не получит ваши данные».

Для vmAgent — ротация между заголовком и блоком vmName / vmIp без hover-кадра.

Установка

pnpm add @cloud-ru/ds-ai-field-notice
import { AiFieldNotice, SIZE, VARIANT } from '@cloud-ru/ds-ai-field-notice'

Примеры использования

Password

Безопасный режим с ротирующим описанием

import { AiFieldNotice, VARIANT } from '@cloud-ru/ds-ai-field-notice';

export function Password() {
  return <AiFieldNotice variant={VARIANT.Password} onActionClick={() => undefined} />;
}

SSH

Безопасный режим для SSH-ключа

import { AiFieldNotice, VARIANT } from '@cloud-ru/ds-ai-field-notice';

export function Ssh() {
  return <AiFieldNotice variant={VARIANT.Ssh} onActionClick={() => undefined} />;
}

Support

Чат с инженером

import { AiFieldNotice, VARIANT } from '@cloud-ru/ds-ai-field-notice';

export function Support() {
  return <AiFieldNotice variant={VARIANT.Support} onActionClick={() => undefined} />;
}

VM Agent

Режим управления ВМ с vmName и vmIp

import { AiFieldNotice, VARIANT } from '@cloud-ru/ds-ai-field-notice';

export function VmAgent() {
  return (
    <AiFieldNotice variant={VARIANT.VmAgent} vmName='my-lovely-vm' vmIp='93.7.94.11' onActionClick={() => undefined} />
  );
}

Queue

Очередь задач агента в information-баннере

import { AI_QUEUE_STEP_STATE, AiFieldNotice, VARIANT } from '@cloud-ru/ds-ai-field-notice';

const steps = [
  { label: 'Step Description', state: AI_QUEUE_STEP_STATE.Done },
  { label: 'Step Description', state: AI_QUEUE_STEP_STATE.Error },
  { label: 'Step Description', state: AI_QUEUE_STEP_STATE.Done },
  { label: 'Step Description', state: AI_QUEUE_STEP_STATE.Progress },
  { label: 'Step Description', state: AI_QUEUE_STEP_STATE.Planned },
];

export function Queue() {
  return (
    <AiFieldNotice
      variant={VARIANT.Queue}
      queue={{
        steps,
        defaultOpen: true,
      }}
    />
  );
}

Props

AiFieldNoticeProps — discriminated union по variant:

  • queue — только при variant='queue'.
  • vmName, vmIp — только при variant='vmAgent'.
  • onActionClick — для остальных variant, кроме queue.

AiFieldNoticeProps

PropTypeDefaultDescription
classNamestring—Доп. класс корня.
data-test-idstring—
layoutPresetsAiFieldBannerLayoutDefaults | LayoutPresets—Override mobile-дефолтов адаптива баннера для этого инстанса (deep-merge поверх AI_FIELD_BANNER_LAYOUT_PRESETS).
onActionClick((event: MouseEvent<HTMLButtonElement, MouseEvent>) => void)—Обработчик клика по кнопке действия. Не используется при variant='queue'.
queueAiQueueProps—Пропсы AiQueue. Только при variant='queue'.
size"m" | "s"—Размер баннера на desktop. На mobile — пресет AI_FIELD_BANNER_LAYOUT_PRESETS (m), изменить его — через layoutPresets.
variant"password" | "queue" | "ssh" | "support" | "vmAgent"—Предзашитый сценарий: password, ssh, vmAgent, support или queue. Набор пропсов зависит от значения.
vmIpstring—IP-адрес виртуальной машины для второго кадра описания. Только при variant='vmAgent'.
vmNamestring—Имя виртуальной машины для второго кадра описания. Только при variant='vmAgent'.

Смотри также

Адаптивность

Размер Notice зависит от раскладки AdaptiveProvider. Обычный проп size задаёт размер на desktop, а на mobile действует пресет AI_FIELD_BANNER_LAYOUT_PRESETS:

Раскладкаsize без пропаsize с пропом
desktops (Field Banner)значение пропа
mobilem (Field Banner Mobile)m

Чтобы изменить размер на mobile, передайте layoutPresets={{ mobile: { size: 's' } }}. Пресет нужен потому, что макет задаёт отдельный мобильный баннер.

版本与发布记录

@cloud-ru/ds-ai-field-notice 共发布 83 个版本,首次发布于 2026/08/18;过去 12 个月发布了 83 个版本。

版本发布日期距今
2.1.2latest2026/11/12今天
2.1.12026/11/11今天
2.1.1-preview-e8fe6b56.0preview2026/11/111 天前
2.1.1-preview-c0e895ed.02026/11/111 天前
2.1.1-preview-90b10112.02026/11/111 天前
2.1.1-preview-fd7dd437.02026/11/101 天前

关于 @cloud-ru/ds-ai-field-notice 的常见问题

@cloud-ru/ds-ai-field-notice 是什么?

Композиция AiFieldBanner и AiQueue для контекстных уведомлений над AI-полем.

如何安装 @cloud-ru/ds-ai-field-notice?

在项目目录运行 npm install @cloud-ru/ds-ai-field-notice,或使用 pnpm add / yarn add / bun add。

@cloud-ru/ds-ai-field-notice 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@cloud-ru/ds-ai-field-notice 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@cloud-ru/ds-ai-field-notice 可以商用吗?

@cloud-ru/ds-ai-field-notice 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@cloud-ru/ds-ai-field-notice 的下载量有多少?

根据 npm 官方下载统计,@cloud-ru/ds-ai-field-notice 在 2026/10/10 – 2026/11/08 这 30 天内被下载 2,594 次,日均约 86 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@cloud-ru/ds-ai-field-notice 还在维护吗?

最新版本 2.1.2 发布于 2026/11/12(今天);至今共发布 83 个版本,其中过去 12 个月发布了 83 个;首次发布于 2026/08/18。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。