@robr0/design-system 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -27
- package/components/AgentStatus/AgentStatus.css +496 -0
- package/components/AgentStatus/AgentStatus.d.ts +41 -0
- package/components/AgentStatus/AgentStatus.js +85 -0
- package/components/AgentStatus/AgentStatusPatterns.d.ts +17 -0
- package/components/AgentStatus/AgentStatusPatterns.js +20 -0
- package/components/AiButton/AiButton.css +163 -0
- package/components/AiButton/AiButton.d.ts +36 -0
- package/components/AiButton/AiButton.js +58 -0
- package/components/AlertDialog/AlertDialog.css +5 -5
- package/components/Button/Button.d.ts +14 -2
- package/components/ButtonGroup/ButtonGroup.js +2 -9
- package/components/ChatHeader/ChatHeader.css +35 -0
- package/components/ChatHeader/ChatHeader.d.ts +30 -0
- package/components/ChatHeader/ChatHeader.js +17 -0
- package/components/ChatMarker/ChatMarker.css +52 -0
- package/components/ChatMarker/ChatMarker.d.ts +22 -0
- package/components/ChatMarker/ChatMarker.js +18 -0
- package/components/ChatMessage/ChatMessage.css +304 -0
- package/components/ChatMessage/ChatMessage.d.ts +68 -0
- package/components/ChatMessage/ChatMessage.js +69 -0
- package/components/ChatThread/ChatThread.css +171 -0
- package/components/ChatThread/ChatThread.d.ts +41 -0
- package/components/ChatThread/ChatThread.js +174 -0
- package/components/Checkbox/Checkbox.d.ts +17 -3
- package/components/Chip/Chip.css +27 -0
- package/components/Chip/Chip.d.ts +2 -2
- package/components/CircularButton/CircularButton.d.ts +31 -10
- package/components/CircularButton/CircularButton.js +54 -50
- package/components/CodeBlock/CodeBlock.css +2 -2
- package/components/Combobox/Combobox.d.ts +10 -2
- package/components/Composer/Composer.css +164 -0
- package/components/Composer/Composer.d.ts +67 -0
- package/components/Composer/Composer.js +120 -0
- package/components/ContextMenu/ContextMenu.css +0 -4
- package/components/DateInput/DateInput.d.ts +5 -1
- package/components/Dialog/Dialog.css +5 -5
- package/components/DocumentChip/DocumentChip.css +181 -0
- package/components/DocumentChip/DocumentChip.d.ts +41 -0
- package/components/DocumentChip/DocumentChip.js +78 -0
- package/components/Dropdown/Dropdown.css +2 -4
- package/components/Dropdown/Dropdown.d.ts +10 -2
- package/components/DropdownMenu/DropdownMenu.css +2 -4
- package/components/FileInput/FileInput.d.ts +5 -1
- package/components/Input/Input.d.ts +5 -1
- package/components/InterruptCard/InterruptCard.css +164 -0
- package/components/InterruptCard/InterruptCard.d.ts +55 -0
- package/components/InterruptCard/InterruptCard.js +57 -0
- package/components/LinkList/LinkList.d.ts +1 -0
- package/components/MessageActions/MessageActions.css +76 -0
- package/components/MessageActions/MessageActions.d.ts +38 -0
- package/components/MessageActions/MessageActions.js +33 -0
- package/components/MessageCard/MessageCard.css +112 -0
- package/components/MessageCard/MessageCard.d.ts +35 -0
- package/components/MessageCard/MessageCard.js +28 -0
- package/components/NavList/NavList.css +155 -0
- package/components/NavList/NavList.d.ts +56 -0
- package/components/NavList/NavList.js +99 -0
- package/components/PromptSuggestions/PromptSuggestions.css +87 -0
- package/components/PromptSuggestions/PromptSuggestions.d.ts +51 -0
- package/components/PromptSuggestions/PromptSuggestions.js +34 -0
- package/components/Prose/Prose.css +252 -0
- package/components/Prose/Prose.d.ts +21 -0
- package/components/Prose/Prose.js +14 -0
- package/components/RadioButton/RadioButton.d.ts +17 -3
- package/components/Reasoning/Reasoning.css +276 -0
- package/components/Reasoning/Reasoning.d.ts +55 -0
- package/components/Reasoning/Reasoning.js +98 -0
- package/components/SelectionCard/SelectionCard.d.ts +5 -1
- package/components/Slider/Slider.d.ts +5 -1
- package/components/SourceChip/SourceChip.css +102 -0
- package/components/SourceChip/SourceChip.d.ts +32 -0
- package/components/SourceChip/SourceChip.js +31 -0
- package/components/Stat/Stat.css +2 -2
- package/components/Textarea/Textarea.d.ts +5 -1
- package/components/Timeline/Timeline.d.ts +2 -0
- package/components/ToggleGroup/ToggleGroup.d.ts +10 -2
- package/components/ToggleSwitch/ToggleSwitch.d.ts +10 -2
- package/components/ToolCall/ToolCall.css +213 -0
- package/components/ToolCall/ToolCall.d.ts +43 -0
- package/components/ToolCall/ToolCall.js +89 -0
- package/components/registry.json +145 -8
- package/components/registry.json.d.ts +145 -8
- package/components/registry.json.js +2 -2
- package/index.d.ts +18 -0
- package/index.js +36 -0
- package/package.json +8 -4
- package/tokens/registry.json +13 -0
- package/tokens/registry.json.d.ts +13 -0
- package/tokens/registry.json.js +1 -1
- package/tokens/tokens-dark.css +13 -0
- package/tokens/tokens-light.css +42 -0
- package/tokens/tokens-motion.css +3 -1
- package/tokens/tokens-typography.css +24 -0
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
2
|
+
import React, { useId, useState, useCallback } from "react";
|
|
3
|
+
import { Spinner } from "../Spinner/Spinner.js";
|
|
4
|
+
import "./ToolCall.css";
|
|
5
|
+
import "../../fonts/material-symbols.css";
|
|
6
|
+
const DEFAULT_STATUS_LABELS = {
|
|
7
|
+
pending: "Needs approval",
|
|
8
|
+
running: "Running",
|
|
9
|
+
success: "Done",
|
|
10
|
+
error: "Failed"
|
|
11
|
+
};
|
|
12
|
+
const STATUS_ICONS = {
|
|
13
|
+
pending: "pause_circle",
|
|
14
|
+
success: "check_circle",
|
|
15
|
+
error: "error"
|
|
16
|
+
};
|
|
17
|
+
const ToolCall = React.forwardRef(
|
|
18
|
+
({
|
|
19
|
+
name,
|
|
20
|
+
status = "success",
|
|
21
|
+
summary,
|
|
22
|
+
duration,
|
|
23
|
+
statusLabel,
|
|
24
|
+
open,
|
|
25
|
+
defaultOpen = false,
|
|
26
|
+
onOpenChange,
|
|
27
|
+
actions,
|
|
28
|
+
className = "",
|
|
29
|
+
children,
|
|
30
|
+
...rest
|
|
31
|
+
}, ref) => {
|
|
32
|
+
const baseClass = "ds-tool-call";
|
|
33
|
+
const id = useId();
|
|
34
|
+
const panelId = `${id}-panel`;
|
|
35
|
+
const triggerId = `${id}-trigger`;
|
|
36
|
+
const isControlled = open !== void 0;
|
|
37
|
+
const [uncontrolledOpen, setUncontrolledOpen] = useState(defaultOpen);
|
|
38
|
+
const isOpen = isControlled ? open : uncontrolledOpen;
|
|
39
|
+
const hasPanel = Boolean(children);
|
|
40
|
+
const toggle = useCallback(() => {
|
|
41
|
+
const next = !isOpen;
|
|
42
|
+
if (!isControlled) setUncontrolledOpen(next);
|
|
43
|
+
onOpenChange?.(next);
|
|
44
|
+
}, [isOpen, isControlled, onOpenChange]);
|
|
45
|
+
const classes = [
|
|
46
|
+
baseClass,
|
|
47
|
+
`${baseClass}--${status}`,
|
|
48
|
+
isOpen ? `${baseClass}--open` : "",
|
|
49
|
+
className
|
|
50
|
+
].filter(Boolean).join(" ");
|
|
51
|
+
const header = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
52
|
+
/* @__PURE__ */ jsx("span", { className: `${baseClass}__indicator`, "aria-hidden": "true", children: status === "running" ? /* @__PURE__ */ jsx(Spinner, { size: "sm", variant: "inherit" }) : /* @__PURE__ */ jsx("span", { className: "material-symbols-rounded", children: STATUS_ICONS[status] }) }),
|
|
53
|
+
/* @__PURE__ */ jsx("span", { className: `${baseClass}__name`, children: name }),
|
|
54
|
+
summary && /* @__PURE__ */ jsx("span", { className: `${baseClass}__summary`, children: summary }),
|
|
55
|
+
/* @__PURE__ */ jsx("span", { className: `${baseClass}__status`, children: statusLabel ?? DEFAULT_STATUS_LABELS[status] }),
|
|
56
|
+
duration && /* @__PURE__ */ jsx("span", { className: `${baseClass}__duration`, children: duration }),
|
|
57
|
+
hasPanel && /* @__PURE__ */ jsx("span", { className: `${baseClass}__chevron material-symbols-rounded`, "aria-hidden": "true", children: "expand_more" })
|
|
58
|
+
] });
|
|
59
|
+
return /* @__PURE__ */ jsxs("div", { ...rest, ref, className: classes, children: [
|
|
60
|
+
hasPanel ? /* @__PURE__ */ jsx(
|
|
61
|
+
"button",
|
|
62
|
+
{
|
|
63
|
+
type: "button",
|
|
64
|
+
id: triggerId,
|
|
65
|
+
className: `${baseClass}__header`,
|
|
66
|
+
"aria-expanded": isOpen,
|
|
67
|
+
"aria-controls": panelId,
|
|
68
|
+
onClick: toggle,
|
|
69
|
+
children: header
|
|
70
|
+
}
|
|
71
|
+
) : /* @__PURE__ */ jsx("div", { className: `${baseClass}__header ${baseClass}__header--static`, children: header }),
|
|
72
|
+
hasPanel && /* @__PURE__ */ jsx(
|
|
73
|
+
"div",
|
|
74
|
+
{
|
|
75
|
+
className: `${baseClass}__panel`,
|
|
76
|
+
id: panelId,
|
|
77
|
+
role: "region",
|
|
78
|
+
"aria-labelledby": triggerId,
|
|
79
|
+
children: /* @__PURE__ */ jsx("div", { className: `${baseClass}__content`, children })
|
|
80
|
+
}
|
|
81
|
+
),
|
|
82
|
+
actions && /* @__PURE__ */ jsx("div", { className: `${baseClass}__actions`, children: actions })
|
|
83
|
+
] });
|
|
84
|
+
}
|
|
85
|
+
);
|
|
86
|
+
ToolCall.displayName = "ToolCall";
|
|
87
|
+
export {
|
|
88
|
+
ToolCall
|
|
89
|
+
};
|
package/components/registry.json
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"$comment": "SINGLE SOURCE OF TRUTH for the public component count. Every folder in src/components must appear in exactly one of these lists; scripts/validate-component-registry.mjs enforces this at build time. Import COMPONENT_COUNT from src/components/registry.ts wherever a count is displayed - never hardcode the number.",
|
|
3
3
|
"categories": [
|
|
4
4
|
"actions",
|
|
5
|
+
"ai",
|
|
5
6
|
"charts",
|
|
6
7
|
"data-display",
|
|
7
8
|
"feedback",
|
|
@@ -19,6 +20,22 @@
|
|
|
19
20
|
"category": "data-display",
|
|
20
21
|
"client": true
|
|
21
22
|
},
|
|
23
|
+
{
|
|
24
|
+
"name": "AgentStatus",
|
|
25
|
+
"label": "Agent status",
|
|
26
|
+
"slug": "agent-status",
|
|
27
|
+
"description": "A dot-matrix indicator and status line reporting what an agent is doing right now.",
|
|
28
|
+
"category": "ai",
|
|
29
|
+
"client": true
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "AiButton",
|
|
33
|
+
"label": "AI button",
|
|
34
|
+
"slug": "ai-button",
|
|
35
|
+
"description": "The AI entry point: icon and label on a transparent field, ringed by a slowly turning gradient and a soft glow.",
|
|
36
|
+
"category": "ai",
|
|
37
|
+
"client": true
|
|
38
|
+
},
|
|
22
39
|
{
|
|
23
40
|
"name": "Alert",
|
|
24
41
|
"label": "Alert",
|
|
@@ -95,7 +112,7 @@
|
|
|
95
112
|
"name": "Card",
|
|
96
113
|
"label": "Card",
|
|
97
114
|
"slug": "card",
|
|
98
|
-
"description": "Card components for previews, navigation, and token documentation
|
|
115
|
+
"description": "Card components for previews, navigation, and token documentation, from content cards to colour swatches and typography specimens.",
|
|
99
116
|
"category": "data-display",
|
|
100
117
|
"client": true
|
|
101
118
|
},
|
|
@@ -115,6 +132,38 @@
|
|
|
115
132
|
"category": "charts",
|
|
116
133
|
"client": false
|
|
117
134
|
},
|
|
135
|
+
{
|
|
136
|
+
"name": "ChatHeader",
|
|
137
|
+
"label": "Chat header",
|
|
138
|
+
"slug": "chat-header",
|
|
139
|
+
"description": "The top row of a chat surface, with the conversation title and its controls.",
|
|
140
|
+
"category": "ai",
|
|
141
|
+
"client": false
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"name": "ChatMarker",
|
|
145
|
+
"label": "Chat marker",
|
|
146
|
+
"slug": "chat-marker",
|
|
147
|
+
"description": "An inline conversation separator for date breaks and system notes.",
|
|
148
|
+
"category": "ai",
|
|
149
|
+
"client": false
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"name": "ChatMessage",
|
|
153
|
+
"label": "Chat message",
|
|
154
|
+
"slug": "chat-message",
|
|
155
|
+
"description": "A single chat turn with avatar, author, timestamp, and bubble or plain content aligned by role.",
|
|
156
|
+
"category": "ai",
|
|
157
|
+
"client": false
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"name": "ChatThread",
|
|
161
|
+
"label": "Chat thread",
|
|
162
|
+
"slug": "chat-thread",
|
|
163
|
+
"description": "A scrollable conversation column with edge fades, send anchoring, and a subtle scrollbar.",
|
|
164
|
+
"category": "ai",
|
|
165
|
+
"client": true
|
|
166
|
+
},
|
|
118
167
|
{
|
|
119
168
|
"name": "Checkbox",
|
|
120
169
|
"label": "Checkbox",
|
|
@@ -159,7 +208,7 @@
|
|
|
159
208
|
"name": "Combobox",
|
|
160
209
|
"label": "Combobox",
|
|
161
210
|
"slug": "combobox",
|
|
162
|
-
"description": "A filterable select that narrows options as
|
|
211
|
+
"description": "A filterable select that narrows options as the user types, with multi-select chips, grouping, and async loading.",
|
|
163
212
|
"category": "forms",
|
|
164
213
|
"client": true
|
|
165
214
|
},
|
|
@@ -171,6 +220,14 @@
|
|
|
171
220
|
"category": "overlays",
|
|
172
221
|
"client": true
|
|
173
222
|
},
|
|
223
|
+
{
|
|
224
|
+
"name": "Composer",
|
|
225
|
+
"label": "Composer",
|
|
226
|
+
"slug": "composer",
|
|
227
|
+
"description": "An auto-growing message input with send and stop states, an attachment slot, and Enter-to-send.",
|
|
228
|
+
"category": "ai",
|
|
229
|
+
"client": true
|
|
230
|
+
},
|
|
174
231
|
{
|
|
175
232
|
"name": "ContactCard",
|
|
176
233
|
"label": "Contact card",
|
|
@@ -227,6 +284,14 @@
|
|
|
227
284
|
"category": "layout",
|
|
228
285
|
"client": false
|
|
229
286
|
},
|
|
287
|
+
{
|
|
288
|
+
"name": "DocumentChip",
|
|
289
|
+
"label": "Document chip",
|
|
290
|
+
"slug": "document-chip",
|
|
291
|
+
"description": "A compact file reference with a type icon, name, metadata, and optional remove.",
|
|
292
|
+
"category": "ai",
|
|
293
|
+
"client": false
|
|
294
|
+
},
|
|
230
295
|
{
|
|
231
296
|
"name": "Drawer",
|
|
232
297
|
"label": "Drawer",
|
|
@@ -255,7 +320,7 @@
|
|
|
255
320
|
"name": "EmptyState",
|
|
256
321
|
"label": "Empty state",
|
|
257
322
|
"slug": "empty-state",
|
|
258
|
-
"description": "The placeholder for a list, table, or search with nothing to show
|
|
323
|
+
"description": "The placeholder for a list, table, or search with nothing to show: icon, headline, guidance, and a next action.",
|
|
259
324
|
"category": "feedback",
|
|
260
325
|
"client": false
|
|
261
326
|
},
|
|
@@ -263,7 +328,7 @@
|
|
|
263
328
|
"name": "EntityCard",
|
|
264
329
|
"label": "Entity card",
|
|
265
330
|
"slug": "entity-card",
|
|
266
|
-
"description": "Compact display-only card with a centred icon or image and a label
|
|
331
|
+
"description": "Compact display-only card with a centred icon or image and a label, used in the Icons and Logos galleries.",
|
|
267
332
|
"category": "data-display",
|
|
268
333
|
"client": false
|
|
269
334
|
},
|
|
@@ -271,7 +336,7 @@
|
|
|
271
336
|
"name": "Field",
|
|
272
337
|
"label": "Field",
|
|
273
338
|
"slug": "field",
|
|
274
|
-
"description": "The shared scaffolding for labelled form controls
|
|
339
|
+
"description": "The shared scaffolding for labelled form controls: label, required marker, helper and error text, and the ARIA wiring that ties them together.",
|
|
275
340
|
"category": "forms",
|
|
276
341
|
"client": true
|
|
277
342
|
},
|
|
@@ -307,6 +372,14 @@
|
|
|
307
372
|
"category": "data-display",
|
|
308
373
|
"client": false
|
|
309
374
|
},
|
|
375
|
+
{
|
|
376
|
+
"name": "InterruptCard",
|
|
377
|
+
"label": "Interrupt card",
|
|
378
|
+
"slug": "interrupt-card",
|
|
379
|
+
"description": "A human-in-the-loop checkpoint with a question from the agent and option buttons to decide.",
|
|
380
|
+
"category": "ai",
|
|
381
|
+
"client": false
|
|
382
|
+
},
|
|
310
383
|
{
|
|
311
384
|
"name": "Kbd",
|
|
312
385
|
"label": "Kbd",
|
|
@@ -323,14 +396,38 @@
|
|
|
323
396
|
"category": "data-display",
|
|
324
397
|
"client": false
|
|
325
398
|
},
|
|
399
|
+
{
|
|
400
|
+
"name": "MessageActions",
|
|
401
|
+
"label": "Message actions",
|
|
402
|
+
"slug": "message-actions",
|
|
403
|
+
"description": "An icon-button row for message-level actions like copy, retry, and feedback.",
|
|
404
|
+
"category": "ai",
|
|
405
|
+
"client": false
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"name": "MessageCard",
|
|
409
|
+
"label": "Message card",
|
|
410
|
+
"slug": "message-card",
|
|
411
|
+
"description": "A structured rich-content card embedded in a chat message, with media, title, body, and actions.",
|
|
412
|
+
"category": "ai",
|
|
413
|
+
"client": false
|
|
414
|
+
},
|
|
326
415
|
{
|
|
327
416
|
"name": "Nav",
|
|
328
417
|
"label": "Navigation",
|
|
329
418
|
"slug": "navigation",
|
|
330
|
-
"description": "Desktop
|
|
419
|
+
"description": "Desktop top navigation bar with a brand slot, horizontal button group, and optional trailing content.",
|
|
331
420
|
"category": "navigation",
|
|
332
421
|
"client": false
|
|
333
422
|
},
|
|
423
|
+
{
|
|
424
|
+
"name": "NavList",
|
|
425
|
+
"label": "Nav list",
|
|
426
|
+
"slug": "nav-list",
|
|
427
|
+
"description": "Vertical list of navigation links for drawers and menus, with three indent levels and per-row expand toggles.",
|
|
428
|
+
"category": "navigation",
|
|
429
|
+
"client": true
|
|
430
|
+
},
|
|
334
431
|
{
|
|
335
432
|
"name": "Pagination",
|
|
336
433
|
"label": "Pagination",
|
|
@@ -355,6 +452,22 @@
|
|
|
355
452
|
"category": "feedback",
|
|
356
453
|
"client": false
|
|
357
454
|
},
|
|
455
|
+
{
|
|
456
|
+
"name": "PromptSuggestions",
|
|
457
|
+
"label": "Prompt suggestions",
|
|
458
|
+
"slug": "prompt-suggestions",
|
|
459
|
+
"description": "A horizontal row of tappable prompt suggestions to start or steer a conversation.",
|
|
460
|
+
"category": "ai",
|
|
461
|
+
"client": false
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"name": "Prose",
|
|
465
|
+
"label": "Prose",
|
|
466
|
+
"slug": "prose",
|
|
467
|
+
"description": "Token-styled typography for rendered markdown and rich agent output.",
|
|
468
|
+
"category": "ai",
|
|
469
|
+
"client": false
|
|
470
|
+
},
|
|
358
471
|
{
|
|
359
472
|
"name": "Quote",
|
|
360
473
|
"label": "Quote",
|
|
@@ -371,6 +484,14 @@
|
|
|
371
484
|
"category": "forms",
|
|
372
485
|
"client": true
|
|
373
486
|
},
|
|
487
|
+
{
|
|
488
|
+
"name": "Reasoning",
|
|
489
|
+
"label": "Reasoning",
|
|
490
|
+
"slug": "reasoning",
|
|
491
|
+
"description": "A model's thinking, disclosed behind a one-line summary and collapsed once it finishes.",
|
|
492
|
+
"category": "ai",
|
|
493
|
+
"client": true
|
|
494
|
+
},
|
|
374
495
|
{
|
|
375
496
|
"name": "SectionTitle",
|
|
376
497
|
"label": "Section title",
|
|
@@ -407,10 +528,18 @@
|
|
|
407
528
|
"name": "Slider",
|
|
408
529
|
"label": "Slider",
|
|
409
530
|
"slug": "slider",
|
|
410
|
-
"description": "Range input for selecting a value
|
|
531
|
+
"description": "Range input for selecting a value between a minimum and maximum, in default and compact sizes.",
|
|
411
532
|
"category": "forms",
|
|
412
533
|
"client": true
|
|
413
534
|
},
|
|
535
|
+
{
|
|
536
|
+
"name": "SourceChip",
|
|
537
|
+
"label": "Source chip",
|
|
538
|
+
"slug": "source-chip",
|
|
539
|
+
"description": "A numbered citation pill linking a claim to its source.",
|
|
540
|
+
"category": "ai",
|
|
541
|
+
"client": false
|
|
542
|
+
},
|
|
414
543
|
{
|
|
415
544
|
"name": "Spinner",
|
|
416
545
|
"label": "Spinner",
|
|
@@ -463,7 +592,7 @@
|
|
|
463
592
|
"name": "Timeline",
|
|
464
593
|
"label": "Timeline",
|
|
465
594
|
"slug": "timeline",
|
|
466
|
-
"description": "Ordered sequences
|
|
595
|
+
"description": "Ordered sequences: histories and steppers.",
|
|
467
596
|
"category": "data-display",
|
|
468
597
|
"client": false
|
|
469
598
|
},
|
|
@@ -491,6 +620,14 @@
|
|
|
491
620
|
"category": "forms",
|
|
492
621
|
"client": true
|
|
493
622
|
},
|
|
623
|
+
{
|
|
624
|
+
"name": "ToolCall",
|
|
625
|
+
"label": "Tool call",
|
|
626
|
+
"slug": "tool-call",
|
|
627
|
+
"description": "The record of one tool invocation, with its arguments and result behind a disclosure.",
|
|
628
|
+
"category": "ai",
|
|
629
|
+
"client": true
|
|
630
|
+
},
|
|
494
631
|
{
|
|
495
632
|
"name": "Tooltip",
|
|
496
633
|
"label": "Tooltip",
|
|
@@ -2,6 +2,7 @@ declare const _default: {
|
|
|
2
2
|
"$comment": "SINGLE SOURCE OF TRUTH for the public component count. Every folder in src/components must appear in exactly one of these lists; scripts/validate-component-registry.mjs enforces this at build time. Import COMPONENT_COUNT from src/components/registry.ts wherever a count is displayed - never hardcode the number.",
|
|
3
3
|
"categories": [
|
|
4
4
|
"actions",
|
|
5
|
+
"ai",
|
|
5
6
|
"charts",
|
|
6
7
|
"data-display",
|
|
7
8
|
"feedback",
|
|
@@ -19,6 +20,22 @@ declare const _default: {
|
|
|
19
20
|
"category": "data-display",
|
|
20
21
|
"client": true
|
|
21
22
|
},
|
|
23
|
+
{
|
|
24
|
+
"name": "AgentStatus",
|
|
25
|
+
"label": "Agent status",
|
|
26
|
+
"slug": "agent-status",
|
|
27
|
+
"description": "A dot-matrix indicator and status line reporting what an agent is doing right now.",
|
|
28
|
+
"category": "ai",
|
|
29
|
+
"client": true
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"name": "AiButton",
|
|
33
|
+
"label": "AI button",
|
|
34
|
+
"slug": "ai-button",
|
|
35
|
+
"description": "The AI entry point: icon and label on a transparent field, ringed by a slowly turning gradient and a soft glow.",
|
|
36
|
+
"category": "ai",
|
|
37
|
+
"client": true
|
|
38
|
+
},
|
|
22
39
|
{
|
|
23
40
|
"name": "Alert",
|
|
24
41
|
"label": "Alert",
|
|
@@ -95,7 +112,7 @@ declare const _default: {
|
|
|
95
112
|
"name": "Card",
|
|
96
113
|
"label": "Card",
|
|
97
114
|
"slug": "card",
|
|
98
|
-
"description": "Card components for previews, navigation, and token documentation
|
|
115
|
+
"description": "Card components for previews, navigation, and token documentation, from content cards to colour swatches and typography specimens.",
|
|
99
116
|
"category": "data-display",
|
|
100
117
|
"client": true
|
|
101
118
|
},
|
|
@@ -115,6 +132,38 @@ declare const _default: {
|
|
|
115
132
|
"category": "charts",
|
|
116
133
|
"client": false
|
|
117
134
|
},
|
|
135
|
+
{
|
|
136
|
+
"name": "ChatHeader",
|
|
137
|
+
"label": "Chat header",
|
|
138
|
+
"slug": "chat-header",
|
|
139
|
+
"description": "The top row of a chat surface, with the conversation title and its controls.",
|
|
140
|
+
"category": "ai",
|
|
141
|
+
"client": false
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"name": "ChatMarker",
|
|
145
|
+
"label": "Chat marker",
|
|
146
|
+
"slug": "chat-marker",
|
|
147
|
+
"description": "An inline conversation separator for date breaks and system notes.",
|
|
148
|
+
"category": "ai",
|
|
149
|
+
"client": false
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"name": "ChatMessage",
|
|
153
|
+
"label": "Chat message",
|
|
154
|
+
"slug": "chat-message",
|
|
155
|
+
"description": "A single chat turn with avatar, author, timestamp, and bubble or plain content aligned by role.",
|
|
156
|
+
"category": "ai",
|
|
157
|
+
"client": false
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"name": "ChatThread",
|
|
161
|
+
"label": "Chat thread",
|
|
162
|
+
"slug": "chat-thread",
|
|
163
|
+
"description": "A scrollable conversation column with edge fades, send anchoring, and a subtle scrollbar.",
|
|
164
|
+
"category": "ai",
|
|
165
|
+
"client": true
|
|
166
|
+
},
|
|
118
167
|
{
|
|
119
168
|
"name": "Checkbox",
|
|
120
169
|
"label": "Checkbox",
|
|
@@ -159,7 +208,7 @@ declare const _default: {
|
|
|
159
208
|
"name": "Combobox",
|
|
160
209
|
"label": "Combobox",
|
|
161
210
|
"slug": "combobox",
|
|
162
|
-
"description": "A filterable select that narrows options as
|
|
211
|
+
"description": "A filterable select that narrows options as the user types, with multi-select chips, grouping, and async loading.",
|
|
163
212
|
"category": "forms",
|
|
164
213
|
"client": true
|
|
165
214
|
},
|
|
@@ -171,6 +220,14 @@ declare const _default: {
|
|
|
171
220
|
"category": "overlays",
|
|
172
221
|
"client": true
|
|
173
222
|
},
|
|
223
|
+
{
|
|
224
|
+
"name": "Composer",
|
|
225
|
+
"label": "Composer",
|
|
226
|
+
"slug": "composer",
|
|
227
|
+
"description": "An auto-growing message input with send and stop states, an attachment slot, and Enter-to-send.",
|
|
228
|
+
"category": "ai",
|
|
229
|
+
"client": true
|
|
230
|
+
},
|
|
174
231
|
{
|
|
175
232
|
"name": "ContactCard",
|
|
176
233
|
"label": "Contact card",
|
|
@@ -227,6 +284,14 @@ declare const _default: {
|
|
|
227
284
|
"category": "layout",
|
|
228
285
|
"client": false
|
|
229
286
|
},
|
|
287
|
+
{
|
|
288
|
+
"name": "DocumentChip",
|
|
289
|
+
"label": "Document chip",
|
|
290
|
+
"slug": "document-chip",
|
|
291
|
+
"description": "A compact file reference with a type icon, name, metadata, and optional remove.",
|
|
292
|
+
"category": "ai",
|
|
293
|
+
"client": false
|
|
294
|
+
},
|
|
230
295
|
{
|
|
231
296
|
"name": "Drawer",
|
|
232
297
|
"label": "Drawer",
|
|
@@ -255,7 +320,7 @@ declare const _default: {
|
|
|
255
320
|
"name": "EmptyState",
|
|
256
321
|
"label": "Empty state",
|
|
257
322
|
"slug": "empty-state",
|
|
258
|
-
"description": "The placeholder for a list, table, or search with nothing to show
|
|
323
|
+
"description": "The placeholder for a list, table, or search with nothing to show: icon, headline, guidance, and a next action.",
|
|
259
324
|
"category": "feedback",
|
|
260
325
|
"client": false
|
|
261
326
|
},
|
|
@@ -263,7 +328,7 @@ declare const _default: {
|
|
|
263
328
|
"name": "EntityCard",
|
|
264
329
|
"label": "Entity card",
|
|
265
330
|
"slug": "entity-card",
|
|
266
|
-
"description": "Compact display-only card with a centred icon or image and a label
|
|
331
|
+
"description": "Compact display-only card with a centred icon or image and a label, used in the Icons and Logos galleries.",
|
|
267
332
|
"category": "data-display",
|
|
268
333
|
"client": false
|
|
269
334
|
},
|
|
@@ -271,7 +336,7 @@ declare const _default: {
|
|
|
271
336
|
"name": "Field",
|
|
272
337
|
"label": "Field",
|
|
273
338
|
"slug": "field",
|
|
274
|
-
"description": "The shared scaffolding for labelled form controls
|
|
339
|
+
"description": "The shared scaffolding for labelled form controls: label, required marker, helper and error text, and the ARIA wiring that ties them together.",
|
|
275
340
|
"category": "forms",
|
|
276
341
|
"client": true
|
|
277
342
|
},
|
|
@@ -307,6 +372,14 @@ declare const _default: {
|
|
|
307
372
|
"category": "data-display",
|
|
308
373
|
"client": false
|
|
309
374
|
},
|
|
375
|
+
{
|
|
376
|
+
"name": "InterruptCard",
|
|
377
|
+
"label": "Interrupt card",
|
|
378
|
+
"slug": "interrupt-card",
|
|
379
|
+
"description": "A human-in-the-loop checkpoint with a question from the agent and option buttons to decide.",
|
|
380
|
+
"category": "ai",
|
|
381
|
+
"client": false
|
|
382
|
+
},
|
|
310
383
|
{
|
|
311
384
|
"name": "Kbd",
|
|
312
385
|
"label": "Kbd",
|
|
@@ -323,14 +396,38 @@ declare const _default: {
|
|
|
323
396
|
"category": "data-display",
|
|
324
397
|
"client": false
|
|
325
398
|
},
|
|
399
|
+
{
|
|
400
|
+
"name": "MessageActions",
|
|
401
|
+
"label": "Message actions",
|
|
402
|
+
"slug": "message-actions",
|
|
403
|
+
"description": "An icon-button row for message-level actions like copy, retry, and feedback.",
|
|
404
|
+
"category": "ai",
|
|
405
|
+
"client": false
|
|
406
|
+
},
|
|
407
|
+
{
|
|
408
|
+
"name": "MessageCard",
|
|
409
|
+
"label": "Message card",
|
|
410
|
+
"slug": "message-card",
|
|
411
|
+
"description": "A structured rich-content card embedded in a chat message, with media, title, body, and actions.",
|
|
412
|
+
"category": "ai",
|
|
413
|
+
"client": false
|
|
414
|
+
},
|
|
326
415
|
{
|
|
327
416
|
"name": "Nav",
|
|
328
417
|
"label": "Navigation",
|
|
329
418
|
"slug": "navigation",
|
|
330
|
-
"description": "Desktop
|
|
419
|
+
"description": "Desktop top navigation bar with a brand slot, horizontal button group, and optional trailing content.",
|
|
331
420
|
"category": "navigation",
|
|
332
421
|
"client": false
|
|
333
422
|
},
|
|
423
|
+
{
|
|
424
|
+
"name": "NavList",
|
|
425
|
+
"label": "Nav list",
|
|
426
|
+
"slug": "nav-list",
|
|
427
|
+
"description": "Vertical list of navigation links for drawers and menus, with three indent levels and per-row expand toggles.",
|
|
428
|
+
"category": "navigation",
|
|
429
|
+
"client": true
|
|
430
|
+
},
|
|
334
431
|
{
|
|
335
432
|
"name": "Pagination",
|
|
336
433
|
"label": "Pagination",
|
|
@@ -355,6 +452,22 @@ declare const _default: {
|
|
|
355
452
|
"category": "feedback",
|
|
356
453
|
"client": false
|
|
357
454
|
},
|
|
455
|
+
{
|
|
456
|
+
"name": "PromptSuggestions",
|
|
457
|
+
"label": "Prompt suggestions",
|
|
458
|
+
"slug": "prompt-suggestions",
|
|
459
|
+
"description": "A horizontal row of tappable prompt suggestions to start or steer a conversation.",
|
|
460
|
+
"category": "ai",
|
|
461
|
+
"client": false
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"name": "Prose",
|
|
465
|
+
"label": "Prose",
|
|
466
|
+
"slug": "prose",
|
|
467
|
+
"description": "Token-styled typography for rendered markdown and rich agent output.",
|
|
468
|
+
"category": "ai",
|
|
469
|
+
"client": false
|
|
470
|
+
},
|
|
358
471
|
{
|
|
359
472
|
"name": "Quote",
|
|
360
473
|
"label": "Quote",
|
|
@@ -371,6 +484,14 @@ declare const _default: {
|
|
|
371
484
|
"category": "forms",
|
|
372
485
|
"client": true
|
|
373
486
|
},
|
|
487
|
+
{
|
|
488
|
+
"name": "Reasoning",
|
|
489
|
+
"label": "Reasoning",
|
|
490
|
+
"slug": "reasoning",
|
|
491
|
+
"description": "A model's thinking, disclosed behind a one-line summary and collapsed once it finishes.",
|
|
492
|
+
"category": "ai",
|
|
493
|
+
"client": true
|
|
494
|
+
},
|
|
374
495
|
{
|
|
375
496
|
"name": "SectionTitle",
|
|
376
497
|
"label": "Section title",
|
|
@@ -407,10 +528,18 @@ declare const _default: {
|
|
|
407
528
|
"name": "Slider",
|
|
408
529
|
"label": "Slider",
|
|
409
530
|
"slug": "slider",
|
|
410
|
-
"description": "Range input for selecting a value
|
|
531
|
+
"description": "Range input for selecting a value between a minimum and maximum, in default and compact sizes.",
|
|
411
532
|
"category": "forms",
|
|
412
533
|
"client": true
|
|
413
534
|
},
|
|
535
|
+
{
|
|
536
|
+
"name": "SourceChip",
|
|
537
|
+
"label": "Source chip",
|
|
538
|
+
"slug": "source-chip",
|
|
539
|
+
"description": "A numbered citation pill linking a claim to its source.",
|
|
540
|
+
"category": "ai",
|
|
541
|
+
"client": false
|
|
542
|
+
},
|
|
414
543
|
{
|
|
415
544
|
"name": "Spinner",
|
|
416
545
|
"label": "Spinner",
|
|
@@ -463,7 +592,7 @@ declare const _default: {
|
|
|
463
592
|
"name": "Timeline",
|
|
464
593
|
"label": "Timeline",
|
|
465
594
|
"slug": "timeline",
|
|
466
|
-
"description": "Ordered sequences
|
|
595
|
+
"description": "Ordered sequences: histories and steppers.",
|
|
467
596
|
"category": "data-display",
|
|
468
597
|
"client": false
|
|
469
598
|
},
|
|
@@ -491,6 +620,14 @@ declare const _default: {
|
|
|
491
620
|
"category": "forms",
|
|
492
621
|
"client": true
|
|
493
622
|
},
|
|
623
|
+
{
|
|
624
|
+
"name": "ToolCall",
|
|
625
|
+
"label": "Tool call",
|
|
626
|
+
"slug": "tool-call",
|
|
627
|
+
"description": "The record of one tool invocation, with its arguments and result behind a disclosure.",
|
|
628
|
+
"category": "ai",
|
|
629
|
+
"client": true
|
|
630
|
+
},
|
|
494
631
|
{
|
|
495
632
|
"name": "Tooltip",
|
|
496
633
|
"label": "Tooltip",
|