@robr0/design-system 0.2.0 → 0.4.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 (99) hide show
  1. package/README.md +33 -28
  2. package/components/Accordion/Accordion.js +0 -1
  3. package/components/AgentStatus/AgentStatus.css +436 -0
  4. package/components/AgentStatus/AgentStatus.d.ts +37 -0
  5. package/components/AgentStatus/AgentStatus.js +53 -0
  6. package/components/AgentStatus/AgentStatusPatterns.d.ts +17 -0
  7. package/components/AgentStatus/AgentStatusPatterns.js +20 -0
  8. package/components/AlertDialog/AlertDialog.css +5 -5
  9. package/components/Avatar/Avatar.js +1 -0
  10. package/components/Breadcrumb/Breadcrumb.d.ts +7 -1
  11. package/components/Breadcrumb/Breadcrumb.js +3 -2
  12. package/components/Button/Button.css +18 -0
  13. package/components/Button/Button.d.ts +20 -2
  14. package/components/Button/Button.js +13 -3
  15. package/components/ButtonGroup/ButtonGroup.js +2 -9
  16. package/components/Card/Card.css +6 -0
  17. package/components/Checkbox/Checkbox.d.ts +17 -3
  18. package/components/CircularButton/CircularButton.css +11 -0
  19. package/components/CircularButton/CircularButton.d.ts +15 -3
  20. package/components/CircularButton/CircularButton.js +19 -6
  21. package/components/CodeBlock/CodeBlock.js +10 -1
  22. package/components/ColorPicker/ColorPicker.css +278 -0
  23. package/components/ColorPicker/ColorPicker.d.ts +50 -0
  24. package/components/ColorPicker/ColorPicker.js +338 -0
  25. package/components/Combobox/Combobox.css +0 -36
  26. package/components/Combobox/Combobox.d.ts +10 -2
  27. package/components/Combobox/Combobox.js +90 -82
  28. package/components/CommandPalette/CommandPalette.css +1 -15
  29. package/components/CommandPalette/CommandPalette.js +6 -5
  30. package/components/ContextMenu/ContextMenu.css +258 -0
  31. package/components/ContextMenu/ContextMenu.d.ts +26 -0
  32. package/components/ContextMenu/ContextMenu.js +350 -0
  33. package/components/DateInput/DateInput.css +0 -36
  34. package/components/DateInput/DateInput.d.ts +5 -1
  35. package/components/DateInput/DateInput.js +37 -33
  36. package/components/DatePicker/DatePicker.js +45 -34
  37. package/components/Dialog/Dialog.css +5 -5
  38. package/components/Dialog/Dialog.js +5 -4
  39. package/components/Drawer/Drawer.js +7 -2
  40. package/components/Dropdown/Dropdown.css +2 -40
  41. package/components/Dropdown/Dropdown.d.ts +10 -2
  42. package/components/Dropdown/Dropdown.js +119 -109
  43. package/components/DropdownMenu/DropdownMenu.css +2 -4
  44. package/components/DropdownMenu/DropdownMenu.js +10 -7
  45. package/components/Field/Field.css +80 -0
  46. package/components/Field/Field.d.ts +50 -0
  47. package/components/Field/Field.js +58 -0
  48. package/components/Field/FieldContext.d.ts +42 -0
  49. package/components/Field/FieldContext.js +7 -0
  50. package/components/FileInput/FileInput.css +0 -36
  51. package/components/FileInput/FileInput.d.ts +5 -1
  52. package/components/FileInput/FileInput.js +111 -103
  53. package/components/Input/Input.css +0 -43
  54. package/components/Input/Input.d.ts +5 -1
  55. package/components/Input/Input.js +51 -46
  56. package/components/Kbd/Kbd.css +28 -0
  57. package/components/Kbd/Kbd.d.ts +19 -0
  58. package/components/Kbd/Kbd.js +14 -0
  59. package/components/LinkList/LinkList.d.ts +1 -0
  60. package/components/Popover/Popover.d.ts +0 -6
  61. package/components/Popover/Popover.js +22 -16
  62. package/components/ProgressBar/ProgressBar.js +1 -1
  63. package/components/RadioButton/RadioButton.d.ts +17 -3
  64. package/components/Reasoning/Reasoning.css +152 -0
  65. package/components/Reasoning/Reasoning.d.ts +36 -0
  66. package/components/Reasoning/Reasoning.js +69 -0
  67. package/components/SelectionCard/SelectionCard.css +6 -2
  68. package/components/SelectionCard/SelectionCard.d.ts +5 -1
  69. package/components/Skeleton/Skeleton.css +2 -0
  70. package/components/Slider/Slider.d.ts +5 -1
  71. package/components/Spinner/Spinner.css +11 -0
  72. package/components/Spinner/Spinner.d.ts +2 -2
  73. package/components/Swatch/Swatch.css +52 -0
  74. package/components/Swatch/Swatch.d.ts +34 -0
  75. package/components/Swatch/Swatch.js +44 -0
  76. package/components/Table/Table.css +19 -0
  77. package/components/Table/Table.js +1 -1
  78. package/components/Textarea/Textarea.css +0 -43
  79. package/components/Textarea/Textarea.d.ts +5 -1
  80. package/components/Textarea/Textarea.js +37 -35
  81. package/components/Timeline/Timeline.d.ts +2 -0
  82. package/components/ToggleGroup/ToggleGroup.d.ts +10 -2
  83. package/components/ToggleSwitch/ToggleSwitch.css +7 -2
  84. package/components/ToggleSwitch/ToggleSwitch.d.ts +10 -2
  85. package/components/ToolCall/ToolCall.css +213 -0
  86. package/components/ToolCall/ToolCall.d.ts +43 -0
  87. package/components/ToolCall/ToolCall.js +89 -0
  88. package/components/registry.d.ts +47 -10
  89. package/components/registry.js +5 -1
  90. package/components/registry.json +523 -56
  91. package/components/registry.json.d.ts +523 -56
  92. package/components/registry.json.js +4 -1
  93. package/index.d.ts +12 -1
  94. package/index.js +24 -1
  95. package/package.json +8 -4
  96. package/tokens/registry.json +1 -0
  97. package/tokens/registry.json.d.ts +1 -0
  98. package/tokens/registry.json.js +1 -1
  99. package/tokens/tokens-motion.css +3 -1
@@ -1,62 +1,529 @@
1
1
  {
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
+ "categories": [
4
+ "actions",
5
+ "ai",
6
+ "charts",
7
+ "data-display",
8
+ "feedback",
9
+ "forms",
10
+ "layout",
11
+ "navigation",
12
+ "overlays"
13
+ ],
3
14
  "components": [
4
- "Accordion",
5
- "Alert",
6
- "AlertDialog",
7
- "AppLayout",
8
- "AppSidebar",
9
- "Avatar",
10
- "Badge",
11
- "Breadcrumb",
12
- "Button",
13
- "ButtonGroup",
14
- "Card",
15
- "Carousel",
16
- "Chart",
17
- "Checkbox",
18
- "Chip",
19
- "CircularButton",
20
- "CodeBlock",
21
- "Combobox",
22
- "CommandPalette",
23
- "ContactCard",
24
- "ContributionGraph",
25
- "DateInput",
26
- "DatePicker",
27
- "Dialog",
28
- "Divider",
29
- "Drawer",
30
- "Dropdown",
31
- "DropdownMenu",
32
- "EmptyState",
33
- "EntityCard",
34
- "Figure",
35
- "FileInput",
36
- "Input",
37
- "Instructions",
38
- "LinkList",
39
- "Nav",
40
- "Pagination",
41
- "Popover",
42
- "ProgressBar",
43
- "Quote",
44
- "RadioButton",
45
- "SectionTitle",
46
- "SegmentedControl",
47
- "SelectionCard",
48
- "Skeleton",
49
- "Slider",
50
- "Spinner",
51
- "Stat",
52
- "Table",
53
- "Tabs",
54
- "Textarea",
55
- "Timeline",
56
- "Toast",
57
- "ToggleGroup",
58
- "ToggleSwitch",
59
- "Tooltip"
15
+ {
16
+ "name": "Accordion",
17
+ "label": "Accordion",
18
+ "slug": "accordion",
19
+ "description": "Collapsible content sections for organising related information.",
20
+ "category": "data-display",
21
+ "client": true
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": "Alert",
33
+ "label": "Alert",
34
+ "slug": "alert",
35
+ "description": "Contextual feedback with status variants, optional dismiss, and compact sizing.",
36
+ "category": "feedback",
37
+ "client": false
38
+ },
39
+ {
40
+ "name": "AlertDialog",
41
+ "label": "Alert dialog",
42
+ "slug": "alert-dialog",
43
+ "description": "Modal confirmation overlay with title, description, and confirm / cancel actions.",
44
+ "category": "overlays",
45
+ "client": true
46
+ },
47
+ {
48
+ "name": "AppLayout",
49
+ "label": "App layout",
50
+ "slug": "app-layout",
51
+ "description": "Full-page template pairing the collapsible App sidebar with a centred content area.",
52
+ "category": "layout",
53
+ "client": true
54
+ },
55
+ {
56
+ "name": "AppSidebar",
57
+ "label": "App sidebar",
58
+ "slug": "app-sidebar",
59
+ "description": "Collapsible navigation rail with accordion sub-items, category headings, and profile section.",
60
+ "category": "layout",
61
+ "client": true
62
+ },
63
+ {
64
+ "name": "Avatar",
65
+ "label": "Avatar",
66
+ "slug": "avatar",
67
+ "description": "User profile image with initials and icon fallback, status indicator, and multiple sizes.",
68
+ "category": "data-display",
69
+ "client": true
70
+ },
71
+ {
72
+ "name": "Badge",
73
+ "label": "Badge",
74
+ "slug": "badge",
75
+ "description": "Small inline status labels with info, positive, warning, error, and neutral variants.",
76
+ "category": "data-display",
77
+ "client": false
78
+ },
79
+ {
80
+ "name": "Breadcrumb",
81
+ "label": "Breadcrumb",
82
+ "slug": "breadcrumb",
83
+ "description": "Hierarchical navigation trail showing the user's location within the site.",
84
+ "category": "navigation",
85
+ "client": false
86
+ },
87
+ {
88
+ "name": "Button",
89
+ "label": "Button",
90
+ "slug": "button",
91
+ "description": "Primary and secondary button variants in default and compact sizes, with icon support and multiple states.",
92
+ "category": "actions",
93
+ "client": true
94
+ },
95
+ {
96
+ "name": "ButtonGroup",
97
+ "label": "Button group",
98
+ "slug": "button-group",
99
+ "description": "Horizontal and vertical button group layouts for related actions and navigation patterns.",
100
+ "category": "actions",
101
+ "client": false
102
+ },
103
+ {
104
+ "name": "Card",
105
+ "label": "Card",
106
+ "slug": "card",
107
+ "description": "Card components for previews, navigation, and token documentation, from content cards to colour swatches and typography specimens.",
108
+ "category": "data-display",
109
+ "client": true
110
+ },
111
+ {
112
+ "name": "Carousel",
113
+ "label": "Carousel",
114
+ "slug": "carousel",
115
+ "description": "Sliding content viewer with navigation arrows, dot indicators, auto-play, and keyboard support.",
116
+ "category": "data-display",
117
+ "client": true
118
+ },
119
+ {
120
+ "name": "Chart",
121
+ "label": "Chart",
122
+ "slug": "chart",
123
+ "description": "Data visualisation components built on Recharts. Includes bar, line, pie, and radial chart types with design-system token integration.",
124
+ "category": "charts",
125
+ "client": false
126
+ },
127
+ {
128
+ "name": "Checkbox",
129
+ "label": "Checkbox",
130
+ "slug": "checkbox",
131
+ "description": "Custom checkbox with check and indeterminate states, keyboard accessible with animated transitions.",
132
+ "category": "forms",
133
+ "client": true
134
+ },
135
+ {
136
+ "name": "Chip",
137
+ "label": "Chip",
138
+ "slug": "chip",
139
+ "description": "Compact pills for attributes, filters, and inline metadata.",
140
+ "category": "data-display",
141
+ "client": false
142
+ },
143
+ {
144
+ "name": "CircularButton",
145
+ "label": "Circular button",
146
+ "slug": "circular-button",
147
+ "description": "Round icon button with primary and secondary variants, default and compact sizes.",
148
+ "category": "actions",
149
+ "client": false
150
+ },
151
+ {
152
+ "name": "CodeBlock",
153
+ "label": "Code block",
154
+ "slug": "code-block",
155
+ "description": "Monospace code with a header and one-click copy.",
156
+ "category": "data-display",
157
+ "client": true
158
+ },
159
+ {
160
+ "name": "ColorPicker",
161
+ "label": "Colour picker",
162
+ "slug": "color-picker",
163
+ "description": "Swatch trigger opening a saturation area, hue and alpha sliders, and a hex field; controlled or uncontrolled.",
164
+ "category": "forms",
165
+ "client": true
166
+ },
167
+ {
168
+ "name": "Combobox",
169
+ "label": "Combobox",
170
+ "slug": "combobox",
171
+ "description": "A filterable select that narrows options as the user types, with multi-select chips, grouping, and async loading.",
172
+ "category": "forms",
173
+ "client": true
174
+ },
175
+ {
176
+ "name": "CommandPalette",
177
+ "label": "Command palette",
178
+ "slug": "command-palette",
179
+ "description": "A modal Cmd+K launcher that searches a grouped command list, with keyboard navigation and shortcut hints.",
180
+ "category": "overlays",
181
+ "client": true
182
+ },
183
+ {
184
+ "name": "ContactCard",
185
+ "label": "Contact card",
186
+ "slug": "contact-card",
187
+ "description": "Linked contact method with icon, label, and value.",
188
+ "category": "data-display",
189
+ "client": true
190
+ },
191
+ {
192
+ "name": "ContextMenu",
193
+ "label": "Context menu",
194
+ "slug": "context-menu",
195
+ "description": "Right-click menu at the pointer with groups, sub-menus, and shortcut hints.",
196
+ "category": "overlays",
197
+ "client": true
198
+ },
199
+ {
200
+ "name": "ContributionGraph",
201
+ "label": "Contribution graph",
202
+ "slug": "contribution-graph",
203
+ "description": "A year of activity, one cell per day.",
204
+ "category": "charts",
205
+ "client": false
206
+ },
207
+ {
208
+ "name": "DateInput",
209
+ "label": "Date input",
210
+ "slug": "date-input",
211
+ "description": "Date input with native picker, calendar icon, label, and validation states.",
212
+ "category": "forms",
213
+ "client": true
214
+ },
215
+ {
216
+ "name": "DatePicker",
217
+ "label": "Date picker",
218
+ "slug": "date-picker",
219
+ "description": "Inline calendar with month navigation, day selection, and today indicator.",
220
+ "category": "forms",
221
+ "client": true
222
+ },
223
+ {
224
+ "name": "Dialog",
225
+ "label": "Dialog",
226
+ "slug": "dialog",
227
+ "description": "A general-purpose modal for focused tasks, with sizes, an optional footer, and full focus management.",
228
+ "category": "overlays",
229
+ "client": true
230
+ },
231
+ {
232
+ "name": "Divider",
233
+ "label": "Divider",
234
+ "slug": "divider",
235
+ "description": "A thin rule separating stacked content, with optional inline label and vertical orientation.",
236
+ "category": "layout",
237
+ "client": false
238
+ },
239
+ {
240
+ "name": "Drawer",
241
+ "label": "Drawer",
242
+ "slug": "drawer",
243
+ "description": "An edge-anchored modal panel that slides in from any side, for filter panels, detail views, and mobile navigation.",
244
+ "category": "overlays",
245
+ "client": true
246
+ },
247
+ {
248
+ "name": "Dropdown",
249
+ "label": "Dropdown",
250
+ "slug": "dropdown",
251
+ "description": "Custom select dropdown with keyboard navigation, disabled options, and error states.",
252
+ "category": "forms",
253
+ "client": true
254
+ },
255
+ {
256
+ "name": "DropdownMenu",
257
+ "label": "Dropdown menu",
258
+ "slug": "dropdown-menu",
259
+ "description": "Contextual menu with sections, sub-menus, keyboard shortcuts, and inset-gap hover styling.",
260
+ "category": "overlays",
261
+ "client": true
262
+ },
263
+ {
264
+ "name": "EmptyState",
265
+ "label": "Empty state",
266
+ "slug": "empty-state",
267
+ "description": "The placeholder for a list, table, or search with nothing to show: icon, headline, guidance, and a next action.",
268
+ "category": "feedback",
269
+ "client": false
270
+ },
271
+ {
272
+ "name": "EntityCard",
273
+ "label": "Entity card",
274
+ "slug": "entity-card",
275
+ "description": "Compact display-only card with a centred icon or image and a label, used in the Icons and Logos galleries.",
276
+ "category": "data-display",
277
+ "client": false
278
+ },
279
+ {
280
+ "name": "Field",
281
+ "label": "Field",
282
+ "slug": "field",
283
+ "description": "The shared scaffolding for labelled form controls: label, required marker, helper and error text, and the ARIA wiring that ties them together.",
284
+ "category": "forms",
285
+ "client": true
286
+ },
287
+ {
288
+ "name": "Figure",
289
+ "label": "Figure",
290
+ "slug": "figure",
291
+ "description": "Images with captions, in the case-study frame.",
292
+ "category": "data-display",
293
+ "client": false
294
+ },
295
+ {
296
+ "name": "FileInput",
297
+ "label": "File input",
298
+ "slug": "file-input",
299
+ "description": "A click-or-drop upload zone paired with a controlled file list showing size, progress, and per-file errors.",
300
+ "category": "forms",
301
+ "client": true
302
+ },
303
+ {
304
+ "name": "Input",
305
+ "label": "Input",
306
+ "slug": "input",
307
+ "description": "Text input with label, placeholder, left and right icons, helper text, and error states.",
308
+ "category": "forms",
309
+ "client": true
310
+ },
311
+ {
312
+ "name": "Instructions",
313
+ "label": "Instructions",
314
+ "slug": "instructions",
315
+ "description": "Step-by-step guidance with numbered badges, connecting lines, and horizontal layout.",
316
+ "category": "data-display",
317
+ "client": false
318
+ },
319
+ {
320
+ "name": "Kbd",
321
+ "label": "Kbd",
322
+ "slug": "kbd",
323
+ "description": "A keyboard key rendered as a keycap, for shortcut hints in menus and prose.",
324
+ "category": "data-display",
325
+ "client": false
326
+ },
327
+ {
328
+ "name": "LinkList",
329
+ "label": "Link list",
330
+ "slug": "link-list",
331
+ "description": "Linked items with logo, label, and subtitle.",
332
+ "category": "data-display",
333
+ "client": false
334
+ },
335
+ {
336
+ "name": "Nav",
337
+ "label": "Navigation",
338
+ "slug": "navigation",
339
+ "description": "Desktop and mobile navigation components including top-level nav bar, collapsed mobile bar, and hamburger slide-out menu.",
340
+ "category": "navigation",
341
+ "client": false
342
+ },
343
+ {
344
+ "name": "Pagination",
345
+ "label": "Pagination",
346
+ "slug": "pagination",
347
+ "description": "Numbered page navigation for long datasets, with ellipses, disabled end arrows, and a compact readout mode.",
348
+ "category": "navigation",
349
+ "client": true
350
+ },
351
+ {
352
+ "name": "Popover",
353
+ "label": "Popover",
354
+ "slug": "popover",
355
+ "description": "Contextual overlay panel with click and hover triggers, positioned relative to its anchor.",
356
+ "category": "overlays",
357
+ "client": true
358
+ },
359
+ {
360
+ "name": "ProgressBar",
361
+ "label": "Progress bar",
362
+ "slug": "progress-bar",
363
+ "description": "Horizontal bar indicating completion progress, with an optional percentage label.",
364
+ "category": "feedback",
365
+ "client": false
366
+ },
367
+ {
368
+ "name": "Quote",
369
+ "label": "Quote",
370
+ "slug": "quote",
371
+ "description": "Blockquotes and pull-quotes with attribution.",
372
+ "category": "data-display",
373
+ "client": false
374
+ },
375
+ {
376
+ "name": "RadioButton",
377
+ "label": "Radio button",
378
+ "slug": "radio-button",
379
+ "description": "Radio button and radio group with vertical and horizontal layouts, animated dot indicator.",
380
+ "category": "forms",
381
+ "client": true
382
+ },
383
+ {
384
+ "name": "Reasoning",
385
+ "label": "Reasoning",
386
+ "slug": "reasoning",
387
+ "description": "A model's thinking, disclosed behind a one-line summary and collapsed once it finishes.",
388
+ "category": "ai",
389
+ "client": true
390
+ },
391
+ {
392
+ "name": "SectionTitle",
393
+ "label": "Section title",
394
+ "slug": "section-title",
395
+ "description": "Heading with a divider line and optional trailing content for organising page sections.",
396
+ "category": "layout",
397
+ "client": false
398
+ },
399
+ {
400
+ "name": "SegmentedControl",
401
+ "label": "Segmented control",
402
+ "slug": "segmented-control",
403
+ "description": "Pill-style toggle between related views with keyboard navigation and icon support.",
404
+ "category": "actions",
405
+ "client": true
406
+ },
407
+ {
408
+ "name": "SelectionCard",
409
+ "label": "Selection card",
410
+ "slug": "selection-card",
411
+ "description": "Large selectable option cards with radio or checkbox indicators for high-visibility choices like settings and onboarding.",
412
+ "category": "data-display",
413
+ "client": true
414
+ },
415
+ {
416
+ "name": "Skeleton",
417
+ "label": "Skeleton",
418
+ "slug": "skeleton",
419
+ "description": "Placeholder loading indicators with text, circular, and rectangular variants.",
420
+ "category": "feedback",
421
+ "client": false
422
+ },
423
+ {
424
+ "name": "Slider",
425
+ "label": "Slider",
426
+ "slug": "slider",
427
+ "description": "Range input for selecting a value between a minimum and maximum, in default and compact sizes.",
428
+ "category": "forms",
429
+ "client": true
430
+ },
431
+ {
432
+ "name": "Spinner",
433
+ "label": "Spinner",
434
+ "slug": "spinner",
435
+ "description": "Animated circular loading indicator in three sizes and primary, neutral, or inherit variants.",
436
+ "category": "feedback",
437
+ "client": false
438
+ },
439
+ {
440
+ "name": "Stat",
441
+ "label": "Stat",
442
+ "slug": "stat",
443
+ "description": "Headline metrics with labels and trend deltas.",
444
+ "category": "data-display",
445
+ "client": false
446
+ },
447
+ {
448
+ "name": "Swatch",
449
+ "label": "Swatch",
450
+ "slug": "swatch",
451
+ "description": "Clickable colour tile for preset palettes and picker triggers, with a theme-aware selection ring.",
452
+ "category": "forms",
453
+ "client": false
454
+ },
455
+ {
456
+ "name": "Table",
457
+ "label": "Table",
458
+ "slug": "table",
459
+ "description": "Data table with flexible cell content, striped rows, compact sizing, and support for icons, inputs, buttons, and interactive controls.",
460
+ "category": "data-display",
461
+ "client": false
462
+ },
463
+ {
464
+ "name": "Tabs",
465
+ "label": "Tabs",
466
+ "slug": "tabs",
467
+ "description": "Tab navigation with underline indicator, icon support, compact size, and full-width mode.",
468
+ "category": "navigation",
469
+ "client": true
470
+ },
471
+ {
472
+ "name": "Textarea",
473
+ "label": "Textarea",
474
+ "slug": "textarea",
475
+ "description": "Multi-line text input with character counter, resize control, helper text, and error states.",
476
+ "category": "forms",
477
+ "client": true
478
+ },
479
+ {
480
+ "name": "Timeline",
481
+ "label": "Timeline",
482
+ "slug": "timeline",
483
+ "description": "Ordered sequences: histories and steppers.",
484
+ "category": "data-display",
485
+ "client": false
486
+ },
487
+ {
488
+ "name": "Toast",
489
+ "label": "Toast",
490
+ "slug": "toast",
491
+ "description": "Temporary notification with status variants, auto-dismiss, and stacking via ToastProvider.",
492
+ "category": "feedback",
493
+ "client": true
494
+ },
495
+ {
496
+ "name": "ToggleGroup",
497
+ "label": "Toggle group",
498
+ "slug": "toggle-group",
499
+ "description": "A set of two-state buttons that can be toggled on or off, supporting text and icon items.",
500
+ "category": "actions",
501
+ "client": true
502
+ },
503
+ {
504
+ "name": "ToggleSwitch",
505
+ "label": "Toggle switch",
506
+ "slug": "toggle-switch",
507
+ "description": "Binary on/off toggle control with sliding thumb and check indicator, used for settings like theme switching.",
508
+ "category": "forms",
509
+ "client": true
510
+ },
511
+ {
512
+ "name": "ToolCall",
513
+ "label": "Tool call",
514
+ "slug": "tool-call",
515
+ "description": "The record of one tool invocation, with its arguments and result behind a disclosure.",
516
+ "category": "ai",
517
+ "client": true
518
+ },
519
+ {
520
+ "name": "Tooltip",
521
+ "label": "Tooltip",
522
+ "slug": "tooltip",
523
+ "description": "Contextual text label that appears on hover or focus with position and delay options.",
524
+ "category": "overlays",
525
+ "client": true
526
+ }
60
527
  ],
61
528
  "docOnlyHelpers": [
62
529
  "ColourSwatch",