@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.
Files changed (94) hide show
  1. package/README.md +30 -27
  2. package/components/AgentStatus/AgentStatus.css +496 -0
  3. package/components/AgentStatus/AgentStatus.d.ts +41 -0
  4. package/components/AgentStatus/AgentStatus.js +85 -0
  5. package/components/AgentStatus/AgentStatusPatterns.d.ts +17 -0
  6. package/components/AgentStatus/AgentStatusPatterns.js +20 -0
  7. package/components/AiButton/AiButton.css +163 -0
  8. package/components/AiButton/AiButton.d.ts +36 -0
  9. package/components/AiButton/AiButton.js +58 -0
  10. package/components/AlertDialog/AlertDialog.css +5 -5
  11. package/components/Button/Button.d.ts +14 -2
  12. package/components/ButtonGroup/ButtonGroup.js +2 -9
  13. package/components/ChatHeader/ChatHeader.css +35 -0
  14. package/components/ChatHeader/ChatHeader.d.ts +30 -0
  15. package/components/ChatHeader/ChatHeader.js +17 -0
  16. package/components/ChatMarker/ChatMarker.css +52 -0
  17. package/components/ChatMarker/ChatMarker.d.ts +22 -0
  18. package/components/ChatMarker/ChatMarker.js +18 -0
  19. package/components/ChatMessage/ChatMessage.css +304 -0
  20. package/components/ChatMessage/ChatMessage.d.ts +68 -0
  21. package/components/ChatMessage/ChatMessage.js +69 -0
  22. package/components/ChatThread/ChatThread.css +171 -0
  23. package/components/ChatThread/ChatThread.d.ts +41 -0
  24. package/components/ChatThread/ChatThread.js +174 -0
  25. package/components/Checkbox/Checkbox.d.ts +17 -3
  26. package/components/Chip/Chip.css +27 -0
  27. package/components/Chip/Chip.d.ts +2 -2
  28. package/components/CircularButton/CircularButton.d.ts +31 -10
  29. package/components/CircularButton/CircularButton.js +54 -50
  30. package/components/CodeBlock/CodeBlock.css +2 -2
  31. package/components/Combobox/Combobox.d.ts +10 -2
  32. package/components/Composer/Composer.css +164 -0
  33. package/components/Composer/Composer.d.ts +67 -0
  34. package/components/Composer/Composer.js +120 -0
  35. package/components/ContextMenu/ContextMenu.css +0 -4
  36. package/components/DateInput/DateInput.d.ts +5 -1
  37. package/components/Dialog/Dialog.css +5 -5
  38. package/components/DocumentChip/DocumentChip.css +181 -0
  39. package/components/DocumentChip/DocumentChip.d.ts +41 -0
  40. package/components/DocumentChip/DocumentChip.js +78 -0
  41. package/components/Dropdown/Dropdown.css +2 -4
  42. package/components/Dropdown/Dropdown.d.ts +10 -2
  43. package/components/DropdownMenu/DropdownMenu.css +2 -4
  44. package/components/FileInput/FileInput.d.ts +5 -1
  45. package/components/Input/Input.d.ts +5 -1
  46. package/components/InterruptCard/InterruptCard.css +164 -0
  47. package/components/InterruptCard/InterruptCard.d.ts +55 -0
  48. package/components/InterruptCard/InterruptCard.js +57 -0
  49. package/components/LinkList/LinkList.d.ts +1 -0
  50. package/components/MessageActions/MessageActions.css +76 -0
  51. package/components/MessageActions/MessageActions.d.ts +38 -0
  52. package/components/MessageActions/MessageActions.js +33 -0
  53. package/components/MessageCard/MessageCard.css +112 -0
  54. package/components/MessageCard/MessageCard.d.ts +35 -0
  55. package/components/MessageCard/MessageCard.js +28 -0
  56. package/components/NavList/NavList.css +155 -0
  57. package/components/NavList/NavList.d.ts +56 -0
  58. package/components/NavList/NavList.js +99 -0
  59. package/components/PromptSuggestions/PromptSuggestions.css +87 -0
  60. package/components/PromptSuggestions/PromptSuggestions.d.ts +51 -0
  61. package/components/PromptSuggestions/PromptSuggestions.js +34 -0
  62. package/components/Prose/Prose.css +252 -0
  63. package/components/Prose/Prose.d.ts +21 -0
  64. package/components/Prose/Prose.js +14 -0
  65. package/components/RadioButton/RadioButton.d.ts +17 -3
  66. package/components/Reasoning/Reasoning.css +276 -0
  67. package/components/Reasoning/Reasoning.d.ts +55 -0
  68. package/components/Reasoning/Reasoning.js +98 -0
  69. package/components/SelectionCard/SelectionCard.d.ts +5 -1
  70. package/components/Slider/Slider.d.ts +5 -1
  71. package/components/SourceChip/SourceChip.css +102 -0
  72. package/components/SourceChip/SourceChip.d.ts +32 -0
  73. package/components/SourceChip/SourceChip.js +31 -0
  74. package/components/Stat/Stat.css +2 -2
  75. package/components/Textarea/Textarea.d.ts +5 -1
  76. package/components/Timeline/Timeline.d.ts +2 -0
  77. package/components/ToggleGroup/ToggleGroup.d.ts +10 -2
  78. package/components/ToggleSwitch/ToggleSwitch.d.ts +10 -2
  79. package/components/ToolCall/ToolCall.css +213 -0
  80. package/components/ToolCall/ToolCall.d.ts +43 -0
  81. package/components/ToolCall/ToolCall.js +89 -0
  82. package/components/registry.json +145 -8
  83. package/components/registry.json.d.ts +145 -8
  84. package/components/registry.json.js +2 -2
  85. package/index.d.ts +18 -0
  86. package/index.js +36 -0
  87. package/package.json +8 -4
  88. package/tokens/registry.json +13 -0
  89. package/tokens/registry.json.d.ts +13 -0
  90. package/tokens/registry.json.js +1 -1
  91. package/tokens/tokens-dark.css +13 -0
  92. package/tokens/tokens-light.css +42 -0
  93. package/tokens/tokens-motion.css +3 -1
  94. 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
+ };
@@ -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 \u2014 from content cards to colour swatches and typography specimens.",
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 you type, with multi-select chips, grouping, and async loading.",
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 \u2014 icon, headline, guidance, and a next action.",
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 \u2014 powers the Icons and Logos galleries.",
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 \u2014 label, required marker, helper and error text, and the ARIA wiring that ties them together.",
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 and mobile navigation components including top-level nav bar, collapsed mobile bar, and hamburger slide-out menu.",
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 within a given range with default and compact sizes.",
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 \u2014 histories and steppers.",
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 \u2014 from content cards to colour swatches and typography specimens.",
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 you type, with multi-select chips, grouping, and async loading.",
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 \u2014 icon, headline, guidance, and a next action.",
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 \u2014 powers the Icons and Logos galleries.",
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 \u2014 label, required marker, helper and error text, and the ARIA wiring that ties them together.",
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 and mobile navigation components including top-level nav bar, collapsed mobile bar, and hamburger slide-out menu.",
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 within a given range with default and compact sizes.",
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 \u2014 histories and steppers.",
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",