@robr0/design-system 0.8.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 (95) hide show
  1. package/README.md +3 -3
  2. package/components/Accordion/Accordion.js +1 -0
  3. package/components/AgentPlan/AgentPlan.css +2 -2
  4. package/components/AgentPlan/AgentPlan.js +1 -0
  5. package/components/AgentStatus/AgentStatus.js +1 -0
  6. package/components/AiButton/AiButton.js +1 -0
  7. package/components/AlertDialog/AlertDialog.js +1 -0
  8. package/components/AnchorNav/AnchorNav.css +63 -0
  9. package/components/AnchorNav/AnchorNav.d.ts +33 -0
  10. package/components/AnchorNav/AnchorNav.js +82 -0
  11. package/components/AppLayout/AppLayout.js +1 -0
  12. package/components/AppSidebar/AppSidebar.js +1 -0
  13. package/components/Avatar/Avatar.js +1 -0
  14. package/components/Button/Button.js +1 -0
  15. package/components/Card/Card.js +1 -0
  16. package/components/Carousel/Carousel.js +1 -0
  17. package/components/ChatThread/ChatThread.js +1 -0
  18. package/components/Checkbox/Checkbox.js +1 -0
  19. package/components/CodeBlock/CodeBlock.js +1 -0
  20. package/components/CodeDiff/CodeDiff.css +175 -0
  21. package/components/CodeDiff/CodeDiff.d.ts +58 -0
  22. package/components/CodeDiff/CodeDiff.js +114 -0
  23. package/components/ColorPicker/ColorPicker.js +1 -0
  24. package/components/Combobox/Combobox.js +1 -0
  25. package/components/CommandPalette/CommandPalette.js +1 -0
  26. package/components/Composer/Composer.js +1 -0
  27. package/components/ContactCard/ContactCard.js +1 -0
  28. package/components/ContextMenu/ContextMenu.js +1 -0
  29. package/components/DataTable/DataTable.js +1 -0
  30. package/components/DateInput/DateInput.js +1 -0
  31. package/components/DatePicker/DatePicker.js +1 -0
  32. package/components/Dialog/Dialog.js +1 -0
  33. package/components/Drawer/Drawer.js +1 -0
  34. package/components/Dropdown/Dropdown.js +1 -0
  35. package/components/DropdownMenu/DropdownMenu.css +1 -1
  36. package/components/DropdownMenu/DropdownMenu.js +1 -0
  37. package/components/EventCalendar/EventCalendar.js +1 -0
  38. package/components/Field/Field.js +1 -0
  39. package/components/Field/FieldContext.js +1 -0
  40. package/components/FileInput/FileInput.js +1 -0
  41. package/components/Input/Input.js +1 -0
  42. package/components/InterruptCard/InterruptCard.css +11 -21
  43. package/components/InterruptCard/InterruptCard.d.ts +5 -6
  44. package/components/MessageCard/MessageCard.css +1 -2
  45. package/components/ModelPicker/ModelPicker.css +3 -1
  46. package/components/ModelPicker/ModelPicker.js +1 -0
  47. package/components/NavList/NavList.js +1 -0
  48. package/components/NotificationCenter/NotificationCenter.js +1 -0
  49. package/components/NumberInput/NumberInput.css +154 -0
  50. package/components/NumberInput/NumberInput.d.ts +44 -0
  51. package/components/NumberInput/NumberInput.js +147 -0
  52. package/components/Pagination/Pagination.js +1 -0
  53. package/components/PinInput/PinInput.css +92 -0
  54. package/components/PinInput/PinInput.d.ts +46 -0
  55. package/components/PinInput/PinInput.js +161 -0
  56. package/components/Popover/Popover.css +5 -6
  57. package/components/Popover/Popover.js +1 -0
  58. package/components/RadioButton/RadioButton.js +1 -0
  59. package/components/Reasoning/Reasoning.js +1 -0
  60. package/components/SegmentedControl/SegmentedControl.js +1 -0
  61. package/components/SelectionCard/SelectionCard.js +1 -0
  62. package/components/ShaderField/ShaderField.js +1 -0
  63. package/components/ShaderField/useShaderField.js +1 -0
  64. package/components/Slider/Slider.js +1 -0
  65. package/components/Sparkline/Sparkline.css +52 -0
  66. package/components/Sparkline/Sparkline.d.ts +49 -0
  67. package/components/Sparkline/Sparkline.js +86 -0
  68. package/components/Stepper/Stepper.css +207 -0
  69. package/components/Stepper/Stepper.d.ts +41 -0
  70. package/components/Stepper/Stepper.js +61 -0
  71. package/components/Tabs/Tabs.js +1 -0
  72. package/components/TagInput/TagInput.css +160 -0
  73. package/components/TagInput/TagInput.d.ts +43 -0
  74. package/components/TagInput/TagInput.js +137 -0
  75. package/components/Textarea/Textarea.js +1 -0
  76. package/components/TimePicker/TimePicker.css +230 -0
  77. package/components/TimePicker/TimePicker.d.ts +46 -0
  78. package/components/TimePicker/TimePicker.js +246 -0
  79. package/components/Toast/Toast.js +1 -0
  80. package/components/ToggleGroup/ToggleGroup.js +1 -0
  81. package/components/ToggleSwitch/ToggleSwitch.js +1 -0
  82. package/components/ToolCall/ToolCall.css +7 -11
  83. package/components/ToolCall/ToolCall.js +1 -0
  84. package/components/Tooltip/Tooltip.js +1 -0
  85. package/components/TreeView/TreeView.css +119 -0
  86. package/components/TreeView/TreeView.d.ts +45 -0
  87. package/components/TreeView/TreeView.js +232 -0
  88. package/components/registry.d.ts +22 -6
  89. package/components/registry.js +3 -1
  90. package/components/registry.json +206 -20
  91. package/components/registry.json.d.ts +206 -20
  92. package/components/registry.json.js +2 -2
  93. package/index.d.ts +11 -2
  94. package/index.js +21 -1
  95. 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
  {
@@ -60,6 +101,14 @@
60
101
  "category": "overlays",
61
102
  "client": true
62
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
+ },
63
112
  {
64
113
  "name": "AppLayout",
65
114
  "label": "App layout",
@@ -76,6 +125,15 @@
76
125
  "category": "layout",
77
126
  "client": true
78
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
+ },
79
137
  {
80
138
  "name": "Avatar",
81
139
  "label": "Avatar",
@@ -92,6 +150,15 @@
92
150
  "category": "data-display",
93
151
  "client": false
94
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
+ },
95
162
  {
96
163
  "name": "Breadcrumb",
97
164
  "label": "Breadcrumb",
@@ -132,14 +199,6 @@
132
199
  "category": "data-display",
133
200
  "client": true
134
201
  },
135
- {
136
- "name": "Chart",
137
- "label": "Chart",
138
- "slug": "chart",
139
- "description": "Data visualisation components built on Recharts. Includes bar, line, pie, and radial chart types with design-system token integration.",
140
- "category": "charts",
141
- "client": false
142
- },
143
202
  {
144
203
  "name": "ChatHeader",
145
204
  "label": "Chat header",
@@ -204,6 +263,14 @@
204
263
  "category": "data-display",
205
264
  "client": true
206
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
+ },
207
274
  {
208
275
  "name": "ColorPicker",
209
276
  "label": "Colour picker",
@@ -412,6 +479,15 @@
412
479
  "category": "data-display",
413
480
  "client": false
414
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
+ },
415
491
  {
416
492
  "name": "LinkList",
417
493
  "label": "Link list",
@@ -446,8 +522,8 @@
446
522
  },
447
523
  {
448
524
  "name": "Nav",
449
- "label": "Navigation",
450
- "slug": "navigation",
525
+ "label": "Nav",
526
+ "slug": "nav",
451
527
  "description": "Desktop top navigation bar with a brand slot, horizontal button group, and optional trailing content.",
452
528
  "category": "navigation",
453
529
  "client": false
@@ -468,6 +544,14 @@
468
544
  "category": "feedback",
469
545
  "client": true
470
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
+ },
471
555
  {
472
556
  "name": "Pagination",
473
557
  "label": "Pagination",
@@ -476,6 +560,23 @@
476
560
  "category": "navigation",
477
561
  "client": true
478
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
+ },
479
580
  {
480
581
  "name": "Popover",
481
582
  "label": "Popover",
@@ -516,6 +617,24 @@
516
617
  "category": "data-display",
517
618
  "client": false
518
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
+ },
519
638
  {
520
639
  "name": "RadioButton",
521
640
  "label": "Radio button",
@@ -532,6 +651,15 @@
532
651
  "category": "ai",
533
652
  "client": true
534
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
+ },
535
663
  {
536
664
  "name": "SectionTitle",
537
665
  "label": "Section title",
@@ -561,7 +689,7 @@
561
689
  "label": "Shader field",
562
690
  "slug": "shader-field",
563
691
  "description": "An ambient WebGL2 field of soft light sources that sample colour tokens, with a reported fallback status.",
564
- "category": "layout",
692
+ "category": "effects",
565
693
  "client": true
566
694
  },
567
695
  {
@@ -588,6 +716,14 @@
588
716
  "category": "ai",
589
717
  "client": false
590
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
+ },
591
727
  {
592
728
  "name": "Spinner",
593
729
  "label": "Spinner",
@@ -596,6 +732,15 @@
596
732
  "category": "feedback",
597
733
  "client": false
598
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
+ },
599
744
  {
600
745
  "name": "Stat",
601
746
  "label": "Stat",
@@ -604,6 +749,14 @@
604
749
  "category": "data-display",
605
750
  "client": false
606
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
+ },
607
760
  {
608
761
  "name": "Swatch",
609
762
  "label": "Swatch",
@@ -628,6 +781,14 @@
628
781
  "category": "navigation",
629
782
  "client": true
630
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
+ },
631
792
  {
632
793
  "name": "Textarea",
633
794
  "label": "Textarea",
@@ -636,6 +797,14 @@
636
797
  "category": "forms",
637
798
  "client": true
638
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
+ },
639
808
  {
640
809
  "name": "Timeline",
641
810
  "label": "Timeline",
@@ -683,6 +852,23 @@
683
852
  "description": "Contextual text label that appears on hover or focus with position and delay options.",
684
853
  "category": "overlays",
685
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"
686
872
  }
687
873
  ],
688
874
  "docOnlyHelpers": [