AiToolObject
Узел дерева аргументов или результата инструмента. Раскрытие controlled: opened + onToggle.
Когда использовать
- Сворачиваемый объект с вложенными полями.
- Инлайн пара имя-значение в составе дерева.
Анатомия
Variant (default complex)
complex— сворачиваемый узел с chevron’ом и вложенными детьми (opened+onToggle). Принимает любой вложенный контент:AiToolText,AiToolKeyValue, вложенныеAiToolObjectиAiToolArray.string— инлайн пара имя-значение.
Mono / Error
Наследуются из AiToolDetails и каскадом передаются во вложенные узлы; либо задаются пропом явно.
Установка
pnpm add @cloud-ru/ds-ai-tool
import { AiToolObject } from '@cloud-ru/ds-ai-tool'
Примеры использования
Дерево вызова инструмента
result
regionru-central1
statusrunning
zones[ 2 шт. ]
[0]ru-central1-a
[1]ru-central1-b
tsx
import { AiToolArray, AiToolKeyValue, AiToolObject } from '@cloud-ru/ds-ai-tool';
import { useState } from 'react';
export function ToolCallTree() {
const [openRoot, setOpenRoot] = useState(true);
const [openZones, setOpenZones] = useState(true);
return (
<AiToolObject variant='complex' name='result' opened={openRoot} onToggle={setOpenRoot}>
<AiToolKeyValue label='region' value='ru-central1' />
<AiToolKeyValue label='status' value='running' />
<AiToolArray name='zones' count={2} unit='шт.' opened={openZones} onToggle={setOpenZones}>
<AiToolObject variant='string' name='[0]' value='ru-central1-a' />
<AiToolObject variant='string' name='[1]' value='ru-central1-b' />
</AiToolArray>
</AiToolObject>
);
}Props
Types
Props
AiToolObjectProps| Prop | Type | Default | Required | Description |
|---|---|---|---|---|
children | ReactNode | — | no | Вложенное дерево (только для раскрытого `complex`). |
className | string | — | no | Доп. класс корня. |
data-test-id | string | ai-tool-object | no | |
error | boolean | — | no | Состояние ошибки: имя и значение красные. По умолчанию наследуется от `AiToolDetails`. |
mono | boolean | — | no | Моноширинный режим имени и значения. По умолчанию наследуется от `AiToolDetails`. |
name | ReactNode | — | no | Имя узла (`Key[ObjectName]`). |
onToggle | ((opened: boolean) => void) | — | no | Переключение раскрытия (только для `complex`). Получает новое значение `opened`. |
opened | boolean | false | no | Раскрытое состояние (только для `complex`). Источник истины — родитель. |
value | ReactNode | — | no | Значение для типа `string` (инлайн рядом с именем). |
variant | "complex" | "string" | complex | no | Тип узла: `complex` — сворачиваемое дерево, `string` — инлайн ключ-значение. |