@robr0/design-system 0.7.0 → 0.9.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 (109) hide show
  1. package/README.md +4 -4
  2. package/components/Accordion/Accordion.js +1 -0
  3. package/components/AgentPlan/AgentPlan.css +231 -0
  4. package/components/AgentPlan/AgentPlan.d.ts +41 -0
  5. package/components/AgentPlan/AgentPlan.js +100 -0
  6. package/components/AgentStatus/AgentStatus.js +1 -0
  7. package/components/AiButton/AiButton.js +1 -0
  8. package/components/AlertDialog/AlertDialog.js +1 -0
  9. package/components/AnchorNav/AnchorNav.css +63 -0
  10. package/components/AnchorNav/AnchorNav.d.ts +33 -0
  11. package/components/AnchorNav/AnchorNav.js +82 -0
  12. package/components/AppLayout/AppLayout.js +1 -0
  13. package/components/AppSidebar/AppSidebar.js +1 -0
  14. package/components/Avatar/Avatar.js +1 -0
  15. package/components/Button/Button.js +1 -0
  16. package/components/Card/Card.js +1 -0
  17. package/components/Carousel/Carousel.js +1 -0
  18. package/components/ChatThread/ChatThread.js +1 -0
  19. package/components/Checkbox/Checkbox.js +1 -0
  20. package/components/CodeBlock/CodeBlock.js +1 -0
  21. package/components/CodeDiff/CodeDiff.css +175 -0
  22. package/components/CodeDiff/CodeDiff.d.ts +58 -0
  23. package/components/CodeDiff/CodeDiff.js +114 -0
  24. package/components/ColorPicker/ColorPicker.js +1 -0
  25. package/components/Combobox/Combobox.js +1 -0
  26. package/components/CommandPalette/CommandPalette.js +1 -0
  27. package/components/Composer/Composer.js +1 -0
  28. package/components/ContactCard/ContactCard.js +1 -0
  29. package/components/ContextMenu/ContextMenu.js +1 -0
  30. package/components/DataTable/DataTable.css +105 -0
  31. package/components/DataTable/DataTable.d.ts +81 -0
  32. package/components/DataTable/DataTable.js +236 -0
  33. package/components/DateInput/DateInput.js +1 -0
  34. package/components/DatePicker/DatePicker.js +1 -0
  35. package/components/Dialog/Dialog.js +1 -0
  36. package/components/Drawer/Drawer.js +1 -0
  37. package/components/Dropdown/Dropdown.js +1 -0
  38. package/components/DropdownMenu/DropdownMenu.css +1 -1
  39. package/components/DropdownMenu/DropdownMenu.js +1 -0
  40. package/components/EventCalendar/EventCalendar.css +328 -0
  41. package/components/EventCalendar/EventCalendar.d.ts +51 -0
  42. package/components/EventCalendar/EventCalendar.js +214 -0
  43. package/components/Field/Field.js +1 -0
  44. package/components/Field/FieldContext.js +1 -0
  45. package/components/FileInput/FileInput.js +1 -0
  46. package/components/Input/Input.js +1 -0
  47. package/components/InterruptCard/InterruptCard.css +11 -21
  48. package/components/InterruptCard/InterruptCard.d.ts +5 -6
  49. package/components/MessageCard/MessageCard.css +1 -2
  50. package/components/ModelPicker/ModelPicker.css +240 -0
  51. package/components/ModelPicker/ModelPicker.d.ts +60 -0
  52. package/components/ModelPicker/ModelPicker.js +218 -0
  53. package/components/NavList/NavList.js +1 -0
  54. package/components/NotificationCenter/NotificationCenter.css +262 -0
  55. package/components/NotificationCenter/NotificationCenter.d.ts +72 -0
  56. package/components/NotificationCenter/NotificationCenter.js +129 -0
  57. package/components/NumberInput/NumberInput.css +154 -0
  58. package/components/NumberInput/NumberInput.d.ts +44 -0
  59. package/components/NumberInput/NumberInput.js +147 -0
  60. package/components/Pagination/Pagination.js +1 -0
  61. package/components/PinInput/PinInput.css +92 -0
  62. package/components/PinInput/PinInput.d.ts +46 -0
  63. package/components/PinInput/PinInput.js +161 -0
  64. package/components/Popover/Popover.css +5 -6
  65. package/components/Popover/Popover.js +1 -0
  66. package/components/RadioButton/RadioButton.js +1 -0
  67. package/components/Reasoning/Reasoning.js +1 -0
  68. package/components/SegmentedControl/SegmentedControl.js +1 -0
  69. package/components/SelectionCard/SelectionCard.js +1 -0
  70. package/components/ShaderField/ShaderField.js +1 -0
  71. package/components/ShaderField/field.glsl.d.ts +11 -5
  72. package/components/ShaderField/field.glsl.js +4 -3
  73. package/components/ShaderField/useShaderField.d.ts +19 -2
  74. package/components/ShaderField/useShaderField.js +18 -3
  75. package/components/Slider/Slider.js +1 -0
  76. package/components/Sparkline/Sparkline.css +52 -0
  77. package/components/Sparkline/Sparkline.d.ts +49 -0
  78. package/components/Sparkline/Sparkline.js +86 -0
  79. package/components/Stepper/Stepper.css +207 -0
  80. package/components/Stepper/Stepper.d.ts +41 -0
  81. package/components/Stepper/Stepper.js +61 -0
  82. package/components/Tabs/Tabs.js +1 -0
  83. package/components/TagInput/TagInput.css +160 -0
  84. package/components/TagInput/TagInput.d.ts +43 -0
  85. package/components/TagInput/TagInput.js +137 -0
  86. package/components/Textarea/Textarea.js +1 -0
  87. package/components/TimePicker/TimePicker.css +230 -0
  88. package/components/TimePicker/TimePicker.d.ts +46 -0
  89. package/components/TimePicker/TimePicker.js +246 -0
  90. package/components/Timeline/Timeline.css +17 -0
  91. package/components/Timeline/Timeline.d.ts +2 -0
  92. package/components/Timeline/Timeline.js +1 -0
  93. package/components/Toast/Toast.js +1 -0
  94. package/components/ToggleGroup/ToggleGroup.js +1 -0
  95. package/components/ToggleSwitch/ToggleSwitch.js +1 -0
  96. package/components/ToolCall/ToolCall.css +7 -11
  97. package/components/ToolCall/ToolCall.js +1 -0
  98. package/components/Tooltip/Tooltip.js +1 -0
  99. package/components/TreeView/TreeView.css +119 -0
  100. package/components/TreeView/TreeView.d.ts +45 -0
  101. package/components/TreeView/TreeView.js +232 -0
  102. package/components/registry.d.ts +22 -6
  103. package/components/registry.js +3 -1
  104. package/components/registry.json +246 -20
  105. package/components/registry.json.d.ts +246 -20
  106. package/components/registry.json.js +2 -2
  107. package/index.d.ts +16 -2
  108. package/index.js +32 -1
  109. package/package.json +1 -1
@@ -1,15 +1,56 @@
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
3
  "categories": [
4
- "actions",
5
- "ai",
6
- "charts",
7
- "data-display",
8
- "feedback",
9
- "forms",
10
- "layout",
11
- "navigation",
12
- "overlays"
4
+ {
5
+ "id": "actions",
6
+ "label": "Actions",
7
+ "description": "Buttons, button groups, and toggles for triggering actions and switching modes."
8
+ },
9
+ {
10
+ "id": "ai",
11
+ "label": "AI",
12
+ "description": "Chat, agent, and model surfaces for building AI products, from the composer to the reasoning trace and the diff an agent proposes."
13
+ },
14
+ {
15
+ "id": "charts",
16
+ "label": "Charts",
17
+ "description": "Data visualisation components for plotting series and activity over time."
18
+ },
19
+ {
20
+ "id": "data-display",
21
+ "label": "Data display",
22
+ "description": "Cards, tables, lists, and badges for presenting structured content."
23
+ },
24
+ {
25
+ "id": "effects",
26
+ "label": "Effects",
27
+ "description": "Ambient and decorative surfaces that sit behind or around the interface."
28
+ },
29
+ {
30
+ "id": "feedback",
31
+ "label": "Feedback",
32
+ "description": "Alerts, toasts, progress, and empty states that tell people what is happening."
33
+ },
34
+ {
35
+ "id": "forms",
36
+ "label": "Forms",
37
+ "description": "Inputs, pickers, and selection controls for collecting and editing values."
38
+ },
39
+ {
40
+ "id": "layout",
41
+ "label": "Layout",
42
+ "description": "Page scaffolding: app shells, sidebars, dividers, and section headings."
43
+ },
44
+ {
45
+ "id": "navigation",
46
+ "label": "Navigation",
47
+ "description": "Top bars, breadcrumbs, tabs, steppers, and pagination for moving through a product."
48
+ },
49
+ {
50
+ "id": "overlays",
51
+ "label": "Overlays",
52
+ "description": "Dialogs, drawers, menus, and tooltips that float above the page."
53
+ }
13
54
  ],
14
55
  "components": [
15
56
  {
@@ -20,6 +61,14 @@
20
61
  "category": "data-display",
21
62
  "client": true
22
63
  },
64
+ {
65
+ "name": "AgentPlan",
66
+ "label": "Agent plan",
67
+ "slug": "agent-plan",
68
+ "description": "A collapsible checklist of an agent's task, with live step states and a progress readout.",
69
+ "category": "ai",
70
+ "client": true
71
+ },
23
72
  {
24
73
  "name": "AgentStatus",
25
74
  "label": "Agent status",
@@ -52,6 +101,14 @@
52
101
  "category": "overlays",
53
102
  "client": true
54
103
  },
104
+ {
105
+ "name": "AnchorNav",
106
+ "label": "Anchor nav",
107
+ "slug": "anchor-nav",
108
+ "description": "An on-page list of anchor links that tracks the reader's position and jumps between sections.",
109
+ "category": "navigation",
110
+ "client": true
111
+ },
55
112
  {
56
113
  "name": "AppLayout",
57
114
  "label": "App layout",
@@ -68,6 +125,15 @@
68
125
  "category": "layout",
69
126
  "client": true
70
127
  },
128
+ {
129
+ "name": "AreaChart",
130
+ "label": "Area chart",
131
+ "slug": "area-chart",
132
+ "description": "Filled area chart for showing volume over time, with stacked and single-series variants.",
133
+ "category": "charts",
134
+ "client": false,
135
+ "folder": "Chart"
136
+ },
71
137
  {
72
138
  "name": "Avatar",
73
139
  "label": "Avatar",
@@ -84,6 +150,15 @@
84
150
  "category": "data-display",
85
151
  "client": false
86
152
  },
153
+ {
154
+ "name": "BarChart",
155
+ "label": "Bar chart",
156
+ "slug": "bar-chart",
157
+ "description": "Vertical bars for comparing values across categories or time, with summary stats and tooltips.",
158
+ "category": "charts",
159
+ "client": false,
160
+ "folder": "Chart"
161
+ },
87
162
  {
88
163
  "name": "Breadcrumb",
89
164
  "label": "Breadcrumb",
@@ -124,14 +199,6 @@
124
199
  "category": "data-display",
125
200
  "client": true
126
201
  },
127
- {
128
- "name": "Chart",
129
- "label": "Chart",
130
- "slug": "chart",
131
- "description": "Data visualisation components built on Recharts. Includes bar, line, pie, and radial chart types with design-system token integration.",
132
- "category": "charts",
133
- "client": false
134
- },
135
202
  {
136
203
  "name": "ChatHeader",
137
204
  "label": "Chat header",
@@ -196,6 +263,14 @@
196
263
  "category": "data-display",
197
264
  "client": true
198
265
  },
266
+ {
267
+ "name": "CodeDiff",
268
+ "label": "Code diff",
269
+ "slug": "code-diff",
270
+ "description": "Unified diff view for code changes, with added, removed, and context lines.",
271
+ "category": "ai",
272
+ "client": false
273
+ },
199
274
  {
200
275
  "name": "ColorPicker",
201
276
  "label": "Colour picker",
@@ -252,6 +327,14 @@
252
327
  "category": "charts",
253
328
  "client": false
254
329
  },
330
+ {
331
+ "name": "DataTable",
332
+ "label": "Data table",
333
+ "slug": "data-table",
334
+ "description": "The wired table: sorting, search, row selection, and pagination assembled around Table.",
335
+ "category": "data-display",
336
+ "client": true
337
+ },
255
338
  {
256
339
  "name": "DateInput",
257
340
  "label": "Date input",
@@ -332,6 +415,14 @@
332
415
  "category": "data-display",
333
416
  "client": false
334
417
  },
418
+ {
419
+ "name": "EventCalendar",
420
+ "label": "Event calendar",
421
+ "slug": "event-calendar",
422
+ "description": "A month grid with event pills, overflow counts, and month navigation.",
423
+ "category": "data-display",
424
+ "client": true
425
+ },
335
426
  {
336
427
  "name": "Field",
337
428
  "label": "Field",
@@ -388,6 +479,15 @@
388
479
  "category": "data-display",
389
480
  "client": false
390
481
  },
482
+ {
483
+ "name": "LineChart",
484
+ "label": "Line chart",
485
+ "slug": "line-chart",
486
+ "description": "Multi-series line chart for trends over time, with per-series colours and a summary row.",
487
+ "category": "charts",
488
+ "client": false,
489
+ "folder": "Chart"
490
+ },
391
491
  {
392
492
  "name": "LinkList",
393
493
  "label": "Link list",
@@ -412,10 +512,18 @@
412
512
  "category": "ai",
413
513
  "client": false
414
514
  },
515
+ {
516
+ "name": "ModelPicker",
517
+ "label": "Model picker",
518
+ "slug": "model-picker",
519
+ "description": "A model selector for chat surfaces, with per-model descriptions and an optional effort row.",
520
+ "category": "ai",
521
+ "client": true
522
+ },
415
523
  {
416
524
  "name": "Nav",
417
- "label": "Navigation",
418
- "slug": "navigation",
525
+ "label": "Nav",
526
+ "slug": "nav",
419
527
  "description": "Desktop top navigation bar with a brand slot, horizontal button group, and optional trailing content.",
420
528
  "category": "navigation",
421
529
  "client": false
@@ -428,6 +536,22 @@
428
536
  "category": "navigation",
429
537
  "client": true
430
538
  },
539
+ {
540
+ "name": "NotificationCenter",
541
+ "label": "Notification centre",
542
+ "slug": "notification-center",
543
+ "description": "A persistent notification inbox with unread count, filter tabs, and per-item actions.",
544
+ "category": "feedback",
545
+ "client": true
546
+ },
547
+ {
548
+ "name": "NumberInput",
549
+ "label": "Number input",
550
+ "slug": "number-input",
551
+ "description": "Numeric field with increment and decrement steppers and min/max clamping.",
552
+ "category": "forms",
553
+ "client": true
554
+ },
431
555
  {
432
556
  "name": "Pagination",
433
557
  "label": "Pagination",
@@ -436,6 +560,23 @@
436
560
  "category": "navigation",
437
561
  "client": true
438
562
  },
563
+ {
564
+ "name": "PieChart",
565
+ "label": "Pie chart",
566
+ "slug": "pie-chart",
567
+ "description": "Proportional share of a whole as a pie or donut, with per-slice colours.",
568
+ "category": "charts",
569
+ "client": false,
570
+ "folder": "Chart"
571
+ },
572
+ {
573
+ "name": "PinInput",
574
+ "label": "Pin input",
575
+ "slug": "pin-input",
576
+ "description": "Segmented one-time-code input with auto-advance, paste support, and completion callback.",
577
+ "category": "forms",
578
+ "client": true
579
+ },
439
580
  {
440
581
  "name": "Popover",
441
582
  "label": "Popover",
@@ -476,6 +617,24 @@
476
617
  "category": "data-display",
477
618
  "client": false
478
619
  },
620
+ {
621
+ "name": "RadarChart",
622
+ "label": "Radar chart",
623
+ "slug": "radar-chart",
624
+ "description": "Multi-axis comparison of series across categories on a radial grid.",
625
+ "category": "charts",
626
+ "client": false,
627
+ "folder": "Chart"
628
+ },
629
+ {
630
+ "name": "RadialChart",
631
+ "label": "Radial chart",
632
+ "slug": "radial-chart",
633
+ "description": "Concentric progress rings for completion and KPI readouts.",
634
+ "category": "charts",
635
+ "client": false,
636
+ "folder": "Chart"
637
+ },
479
638
  {
480
639
  "name": "RadioButton",
481
640
  "label": "Radio button",
@@ -492,6 +651,15 @@
492
651
  "category": "ai",
493
652
  "client": true
494
653
  },
654
+ {
655
+ "name": "ScatterChart",
656
+ "label": "Scatter chart",
657
+ "slug": "scatter-chart",
658
+ "description": "Plots point clusters across two axes to show correlation and distribution.",
659
+ "category": "charts",
660
+ "client": false,
661
+ "folder": "Chart"
662
+ },
495
663
  {
496
664
  "name": "SectionTitle",
497
665
  "label": "Section title",
@@ -521,7 +689,7 @@
521
689
  "label": "Shader field",
522
690
  "slug": "shader-field",
523
691
  "description": "An ambient WebGL2 field of soft light sources that sample colour tokens, with a reported fallback status.",
524
- "category": "layout",
692
+ "category": "effects",
525
693
  "client": true
526
694
  },
527
695
  {
@@ -548,6 +716,14 @@
548
716
  "category": "ai",
549
717
  "client": false
550
718
  },
719
+ {
720
+ "name": "Sparkline",
721
+ "label": "Sparkline",
722
+ "slug": "sparkline",
723
+ "description": "Inline trend line for stats and table cells, drawn without axes or chrome.",
724
+ "category": "charts",
725
+ "client": false
726
+ },
551
727
  {
552
728
  "name": "Spinner",
553
729
  "label": "Spinner",
@@ -556,6 +732,15 @@
556
732
  "category": "feedback",
557
733
  "client": false
558
734
  },
735
+ {
736
+ "name": "StackedBarChart",
737
+ "label": "Stacked bar chart",
738
+ "slug": "stacked-bar-chart",
739
+ "description": "Bars split into stacked segments to compare totals and their composition.",
740
+ "category": "charts",
741
+ "client": false,
742
+ "folder": "Chart"
743
+ },
559
744
  {
560
745
  "name": "Stat",
561
746
  "label": "Stat",
@@ -564,6 +749,14 @@
564
749
  "category": "data-display",
565
750
  "client": false
566
751
  },
752
+ {
753
+ "name": "Stepper",
754
+ "label": "Stepper",
755
+ "slug": "stepper",
756
+ "description": "Step-by-step progress indicator for wizards and multi-stage flows.",
757
+ "category": "navigation",
758
+ "client": true
759
+ },
567
760
  {
568
761
  "name": "Swatch",
569
762
  "label": "Swatch",
@@ -588,6 +781,14 @@
588
781
  "category": "navigation",
589
782
  "client": true
590
783
  },
784
+ {
785
+ "name": "TagInput",
786
+ "label": "Tag input",
787
+ "slug": "tag-input",
788
+ "description": "Multi-value text input with entries held as removable tags.",
789
+ "category": "forms",
790
+ "client": true
791
+ },
591
792
  {
592
793
  "name": "Textarea",
593
794
  "label": "Textarea",
@@ -596,6 +797,14 @@
596
797
  "category": "forms",
597
798
  "client": true
598
799
  },
800
+ {
801
+ "name": "TimePicker",
802
+ "label": "Time picker",
803
+ "slug": "time-picker",
804
+ "description": "Time-of-day field with a dropdown list of selectable times.",
805
+ "category": "forms",
806
+ "client": true
807
+ },
599
808
  {
600
809
  "name": "Timeline",
601
810
  "label": "Timeline",
@@ -643,6 +852,23 @@
643
852
  "description": "Contextual text label that appears on hover or focus with position and delay options.",
644
853
  "category": "overlays",
645
854
  "client": true
855
+ },
856
+ {
857
+ "name": "TreeView",
858
+ "label": "Tree view",
859
+ "slug": "tree-view",
860
+ "description": "Collapsible hierarchy for files, folders, and nested structures.",
861
+ "category": "data-display",
862
+ "client": true
863
+ },
864
+ {
865
+ "name": "Treemap",
866
+ "label": "Treemap",
867
+ "slug": "treemap",
868
+ "description": "Nested rectangles sized by value for part-to-whole breakdowns.",
869
+ "category": "charts",
870
+ "client": false,
871
+ "folder": "Chart"
646
872
  }
647
873
  ],
648
874
  "docOnlyHelpers": [