@mcp-b/react-components 0.1.1

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 (71) hide show
  1. package/LICENSE +21 -0
  2. package/dist/index.d.ts +7236 -0
  3. package/dist/index.js +8945 -0
  4. package/dist/styles/accordion.css +104 -0
  5. package/dist/styles/agent-connection.css +159 -0
  6. package/dist/styles/alert-dialog.css +144 -0
  7. package/dist/styles/artifact.css +67 -0
  8. package/dist/styles/autocomplete.css +162 -0
  9. package/dist/styles/avatar.css +31 -0
  10. package/dist/styles/badge.css +56 -0
  11. package/dist/styles/base.css +81 -0
  12. package/dist/styles/button.css +176 -0
  13. package/dist/styles/card.css +31 -0
  14. package/dist/styles/chain-of-thought.css +241 -0
  15. package/dist/styles/checkbox-group.css +10 -0
  16. package/dist/styles/checkbox.css +42 -0
  17. package/dist/styles/code-block.css +105 -0
  18. package/dist/styles/collapsible.css +95 -0
  19. package/dist/styles/combobox.css +171 -0
  20. package/dist/styles/commit.css +201 -0
  21. package/dist/styles/context-menu.css +68 -0
  22. package/dist/styles/context.css +142 -0
  23. package/dist/styles/conversation.css +81 -0
  24. package/dist/styles/dialog.css +98 -0
  25. package/dist/styles/environment-variables.css +122 -0
  26. package/dist/styles/field.css +80 -0
  27. package/dist/styles/fieldset.css +18 -0
  28. package/dist/styles/file-tree.css +128 -0
  29. package/dist/styles/form.css +5 -0
  30. package/dist/styles/github-motion-mark.css +91 -0
  31. package/dist/styles/index.css +79 -0
  32. package/dist/styles/input.css +34 -0
  33. package/dist/styles/label.css +12 -0
  34. package/dist/styles/menu.css +228 -0
  35. package/dist/styles/menubar.css +137 -0
  36. package/dist/styles/message.css +120 -0
  37. package/dist/styles/meter.css +36 -0
  38. package/dist/styles/model-selector.css +175 -0
  39. package/dist/styles/nanite-scene.css +418 -0
  40. package/dist/styles/navigation-menu.css +162 -0
  41. package/dist/styles/number-field.css +103 -0
  42. package/dist/styles/popover.css +148 -0
  43. package/dist/styles/preview-card.css +98 -0
  44. package/dist/styles/pricing-page.css +390 -0
  45. package/dist/styles/progress.css +49 -0
  46. package/dist/styles/prompt-input.css +153 -0
  47. package/dist/styles/queue.css +226 -0
  48. package/dist/styles/radio.css +64 -0
  49. package/dist/styles/reasoning.css +124 -0
  50. package/dist/styles/scroll-area.css +67 -0
  51. package/dist/styles/scrollbars.css +32 -0
  52. package/dist/styles/select.css +116 -0
  53. package/dist/styles/separator.css +15 -0
  54. package/dist/styles/shell.css +121 -0
  55. package/dist/styles/slider.css +88 -0
  56. package/dist/styles/sources.css +168 -0
  57. package/dist/styles/stepper.css +204 -0
  58. package/dist/styles/switch.css +86 -0
  59. package/dist/styles/tabs.css +102 -0
  60. package/dist/styles/task.css +164 -0
  61. package/dist/styles/terminal.css +97 -0
  62. package/dist/styles/test-results.css +267 -0
  63. package/dist/styles/toast.css +142 -0
  64. package/dist/styles/toggle-group.css +71 -0
  65. package/dist/styles/toggle.css +44 -0
  66. package/dist/styles/tokens.css +1 -0
  67. package/dist/styles/tool.css +180 -0
  68. package/dist/styles/toolbar.css +139 -0
  69. package/dist/styles/tooltip.css +49 -0
  70. package/dist/styles/web-preview.css +150 -0
  71. package/package.json +77 -0
@@ -0,0 +1,34 @@
1
+ .input {
2
+ display: flex;
3
+ width: 100%;
4
+ height: var(--sigvelo-form-control-height-md);
5
+ padding-block: 0.5rem;
6
+ padding-inline: 0.75rem;
7
+ font-family: var(--sigvelo-font-family);
8
+ font-size: var(--sigvelo-form-control-font-size-md);
9
+ line-height: 1.25;
10
+ color: var(--sigvelo-text-body);
11
+ background-color: var(--sigvelo-background-color);
12
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width) var(--sigvelo-neutral-stroke-soft);
13
+ border-radius: var(--sigvelo-border-radius-md);
14
+ transition:
15
+ border-color 150ms ease,
16
+ box-shadow 150ms ease;
17
+ }
18
+
19
+ .input::placeholder {
20
+ color: var(--sigvelo-text-muted);
21
+ }
22
+
23
+ .input:focus-visible {
24
+ outline: none;
25
+ border-color: var(--sigvelo-focus-color);
26
+ box-shadow:
27
+ 0 0 0 2px var(--sigvelo-background-color),
28
+ 0 0 0 4px color-mix(in oklab, var(--sigvelo-focus-color), transparent 80%);
29
+ }
30
+
31
+ .input:disabled {
32
+ opacity: 0.5;
33
+ cursor: not-allowed;
34
+ }
@@ -0,0 +1,12 @@
1
+ .label {
2
+ font-family: var(--sigvelo-font-family);
3
+ font-size: 0.875rem;
4
+ font-weight: var(--sigvelo-font-weight-semibold);
5
+ line-height: 1;
6
+ color: var(--sigvelo-text-body);
7
+ }
8
+
9
+ .label[data-disabled] {
10
+ color: var(--sigvelo-text-muted);
11
+ cursor: not-allowed;
12
+ }
@@ -0,0 +1,228 @@
1
+ .menu__trigger {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ gap: 0.5rem;
6
+ padding-block: 0.5rem;
7
+ padding-inline: 1rem;
8
+ font-family: var(--sigvelo-font-family);
9
+ font-size: 0.875rem;
10
+ font-weight: var(--sigvelo-font-weight-semibold);
11
+ line-height: 1.25;
12
+ color: var(--sigvelo-text-body);
13
+ background-color: var(--sigvelo-background-color);
14
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width) var(--sigvelo-neutral-stroke-soft);
15
+ border-radius: var(--sigvelo-border-radius-md);
16
+ cursor: pointer;
17
+ transition:
18
+ background-color 150ms ease,
19
+ border-color 150ms ease;
20
+ }
21
+
22
+ .menu__trigger:hover {
23
+ background-color: var(--sigvelo-neutral-fill-softer);
24
+ color: var(--sigvelo-neutral-text-on-soft);
25
+ }
26
+
27
+ .menu__trigger:focus-visible {
28
+ outline: none;
29
+ box-shadow:
30
+ 0 0 0 2px var(--sigvelo-background-color),
31
+ 0 0 0 4px var(--sigvelo-focus-color);
32
+ }
33
+
34
+ .menu__trigger[data-popup-open] {
35
+ background-color: var(--sigvelo-neutral-fill-softer);
36
+ }
37
+
38
+ .menu__positioner {
39
+ z-index: 50;
40
+ outline: none;
41
+ }
42
+
43
+ .menu__popup {
44
+ min-width: 10rem;
45
+ padding: 0.25rem;
46
+ font-family: var(--sigvelo-font-family);
47
+ background-color: var(--sigvelo-background-color);
48
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width) var(--sigvelo-neutral-stroke-soft);
49
+ border-radius: var(--sigvelo-border-radius-md);
50
+ box-shadow:
51
+ 0 10px 15px -3px color-mix(in oklab, var(--sigvelo-text-body), transparent 90%),
52
+ 0 4px 6px -4px color-mix(in oklab, var(--sigvelo-text-body), transparent 90%);
53
+ outline: none;
54
+ transform-origin: var(--transform-origin);
55
+ transition:
56
+ opacity 150ms ease,
57
+ transform 150ms ease;
58
+ }
59
+
60
+ .menu__popup[data-starting-style],
61
+ .menu__popup[data-ending-style] {
62
+ opacity: 0;
63
+ transform: scale(0.95);
64
+ }
65
+
66
+ .menu__item {
67
+ display: flex;
68
+ align-items: center;
69
+ gap: 0.5rem;
70
+ padding-block: 0.5rem;
71
+ padding-inline: 0.75rem;
72
+ font-size: 0.875rem;
73
+ line-height: 1.25;
74
+ color: var(--sigvelo-text-body);
75
+ border-radius: var(--sigvelo-border-radius-sm);
76
+ cursor: pointer;
77
+ user-select: none;
78
+ outline: none;
79
+ transition: background-color 100ms ease;
80
+ }
81
+
82
+ .menu__item[data-highlighted] {
83
+ background-color: var(--sigvelo-neutral-fill-softer);
84
+ color: var(--sigvelo-neutral-text-on-soft);
85
+ }
86
+
87
+ .menu__item[data-disabled] {
88
+ opacity: 0.5;
89
+ pointer-events: none;
90
+ }
91
+
92
+ .menu__group {
93
+ display: flex;
94
+ flex-direction: column;
95
+ }
96
+
97
+ .menu__group-label {
98
+ padding-block: 0.5rem;
99
+ padding-inline: 0.75rem;
100
+ font-size: 0.75rem;
101
+ font-weight: var(--sigvelo-font-weight-semibold);
102
+ color: var(--sigvelo-text-muted);
103
+ }
104
+
105
+ .menu__arrow {
106
+ width: 0.75rem;
107
+ height: 0.75rem;
108
+ background-color: var(--sigvelo-background-color);
109
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width) var(--sigvelo-neutral-stroke-soft);
110
+ transform: rotate(45deg);
111
+ }
112
+
113
+ .menu__arrow[data-side="top"] {
114
+ border-top: none;
115
+ border-left: none;
116
+ }
117
+
118
+ .menu__arrow[data-side="bottom"] {
119
+ border-bottom: none;
120
+ border-right: none;
121
+ }
122
+
123
+ .menu__arrow[data-side="left"] {
124
+ border-bottom: none;
125
+ border-left: none;
126
+ }
127
+
128
+ .menu__arrow[data-side="right"] {
129
+ border-top: none;
130
+ border-right: none;
131
+ }
132
+
133
+ .menu__separator {
134
+ height: 1px;
135
+ margin: 0.25rem 0;
136
+ background-color: var(--sigvelo-neutral-stroke-soft);
137
+ }
138
+
139
+ .menu__radio-group {
140
+ display: flex;
141
+ flex-direction: column;
142
+ }
143
+
144
+ .menu__radio-item,
145
+ .menu__checkbox-item {
146
+ display: flex;
147
+ align-items: center;
148
+ gap: 0.5rem;
149
+ padding-block: 0.5rem;
150
+ padding-inline: 0.75rem;
151
+ font-size: 0.875rem;
152
+ line-height: 1.25;
153
+ color: var(--sigvelo-text-body);
154
+ border-radius: var(--sigvelo-border-radius-sm);
155
+ cursor: pointer;
156
+ user-select: none;
157
+ outline: none;
158
+ transition: background-color 100ms ease;
159
+ }
160
+
161
+ .menu__radio-item[data-highlighted],
162
+ .menu__checkbox-item[data-highlighted] {
163
+ background-color: var(--sigvelo-neutral-fill-softer);
164
+ color: var(--sigvelo-neutral-text-on-soft);
165
+ }
166
+
167
+ .menu__radio-item[data-disabled],
168
+ .menu__checkbox-item[data-disabled] {
169
+ opacity: 0.5;
170
+ pointer-events: none;
171
+ }
172
+
173
+ .menu__radio-indicator,
174
+ .menu__checkbox-indicator {
175
+ display: flex;
176
+ align-items: center;
177
+ justify-content: center;
178
+ width: 1rem;
179
+ height: 1rem;
180
+ }
181
+
182
+ .menu__radio-indicator::before {
183
+ content: "";
184
+ width: 0.5rem;
185
+ height: 0.5rem;
186
+ background-color: currentColor;
187
+ border-radius: 50%;
188
+ }
189
+
190
+ .menu__checkbox-indicator::before {
191
+ content: "";
192
+ width: 0.625rem;
193
+ height: 0.375rem;
194
+ border-inline-start: 2px solid currentColor;
195
+ border-block-end: 2px solid currentColor;
196
+ transform: rotate(-45deg) translateY(-1px);
197
+ }
198
+
199
+ .menu__submenu-trigger {
200
+ display: flex;
201
+ align-items: center;
202
+ justify-content: space-between;
203
+ gap: 0.5rem;
204
+ padding-block: 0.5rem;
205
+ padding-inline: 0.75rem;
206
+ font-size: 0.875rem;
207
+ line-height: 1.25;
208
+ color: var(--sigvelo-text-body);
209
+ border-radius: var(--sigvelo-border-radius-sm);
210
+ cursor: pointer;
211
+ user-select: none;
212
+ outline: none;
213
+ transition: background-color 100ms ease;
214
+ }
215
+
216
+ .menu__submenu-trigger[data-highlighted] {
217
+ background-color: var(--sigvelo-neutral-fill-softer);
218
+ color: var(--sigvelo-neutral-text-on-soft);
219
+ }
220
+
221
+ .menu__submenu-trigger::after {
222
+ content: "";
223
+ width: 0;
224
+ height: 0;
225
+ border-top: 4px solid transparent;
226
+ border-bottom: 4px solid transparent;
227
+ border-inline-start: 6px solid currentColor;
228
+ }
@@ -0,0 +1,137 @@
1
+ .menubar {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: 0.25rem;
5
+ padding: 0.25rem;
6
+ background-color: var(--sigvelo-background-color);
7
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width) var(--sigvelo-neutral-stroke-soft);
8
+ border-radius: var(--sigvelo-border-radius-md);
9
+ }
10
+
11
+ .menubar__trigger {
12
+ display: inline-flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ padding-block: 0.375rem;
16
+ padding-inline: 0.75rem;
17
+ font-family: var(--sigvelo-font-family);
18
+ font-size: 0.875rem;
19
+ font-weight: var(--sigvelo-font-weight-semibold);
20
+ color: var(--sigvelo-text-body);
21
+ background-color: transparent;
22
+ border: none;
23
+ border-radius: var(--sigvelo-border-radius-sm);
24
+ cursor: pointer;
25
+ transition:
26
+ background-color 150ms ease,
27
+ color 150ms ease;
28
+ }
29
+
30
+ .menubar__trigger:hover {
31
+ background-color: var(--sigvelo-neutral-fill-softer);
32
+ color: var(--sigvelo-neutral-text-on-soft);
33
+ }
34
+
35
+ .menubar__trigger:focus-visible {
36
+ outline: none;
37
+ box-shadow:
38
+ 0 0 0 2px var(--sigvelo-background-color),
39
+ 0 0 0 4px var(--sigvelo-focus-color);
40
+ }
41
+
42
+ .menubar__trigger[data-popup-open] {
43
+ background-color: var(--sigvelo-neutral-fill-softer);
44
+ color: var(--sigvelo-neutral-text-on-soft);
45
+ }
46
+
47
+ .menubar__positioner {
48
+ z-index: 50;
49
+ }
50
+
51
+ .menubar__popup {
52
+ min-width: 180px;
53
+ padding: 0.25rem;
54
+ background-color: var(--sigvelo-paper-color);
55
+ color: var(--sigvelo-text-body);
56
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width) var(--sigvelo-neutral-stroke-soft);
57
+ border-radius: var(--sigvelo-border-radius-md);
58
+ box-shadow:
59
+ 0 10px 15px -3px color-mix(in oklab, var(--sigvelo-text-body), transparent 90%),
60
+ 0 4px 6px -4px color-mix(in oklab, var(--sigvelo-text-body), transparent 90%);
61
+ animation: menubar-popup-enter 150ms ease;
62
+ }
63
+
64
+ .menubar__popup[data-ending-style] {
65
+ animation: menubar-popup-exit 100ms ease;
66
+ }
67
+
68
+ @keyframes menubar-popup-enter {
69
+ from {
70
+ opacity: 0;
71
+ transform: translateY(-4px);
72
+ }
73
+ to {
74
+ opacity: 1;
75
+ transform: translateY(0);
76
+ }
77
+ }
78
+
79
+ @keyframes menubar-popup-exit {
80
+ from {
81
+ opacity: 1;
82
+ transform: translateY(0);
83
+ }
84
+ to {
85
+ opacity: 0;
86
+ transform: translateY(-4px);
87
+ }
88
+ }
89
+
90
+ .menubar__item {
91
+ display: flex;
92
+ align-items: center;
93
+ justify-content: space-between;
94
+ gap: 2rem;
95
+ padding-block: 0.375rem;
96
+ padding-inline: 0.5rem;
97
+ font-family: var(--sigvelo-font-family);
98
+ font-size: 0.875rem;
99
+ color: var(--sigvelo-text-body);
100
+ border-radius: var(--sigvelo-border-radius-sm);
101
+ cursor: pointer;
102
+ outline: none;
103
+ transition:
104
+ background-color 150ms ease,
105
+ color 150ms ease;
106
+ }
107
+
108
+ .menubar__item:hover,
109
+ .menubar__item:focus,
110
+ .menubar__item[data-highlighted] {
111
+ background-color: var(--sigvelo-neutral-fill-softer);
112
+ color: var(--sigvelo-neutral-text-on-soft);
113
+ }
114
+
115
+ .menubar__item[data-disabled] {
116
+ opacity: 0.5;
117
+ pointer-events: none;
118
+ }
119
+
120
+ .menubar__separator {
121
+ height: 1px;
122
+ margin: 0.25rem 0;
123
+ background-color: var(--sigvelo-neutral-stroke-soft);
124
+ }
125
+
126
+ .menubar__group {
127
+ display: flex;
128
+ flex-direction: column;
129
+ }
130
+
131
+ .menubar__group-label {
132
+ padding-block: 0.375rem;
133
+ padding-inline: 0.5rem;
134
+ font-size: 0.75rem;
135
+ font-weight: var(--sigvelo-font-weight-semibold);
136
+ color: var(--sigvelo-text-muted);
137
+ }
@@ -0,0 +1,120 @@
1
+ .message {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 0.25rem;
5
+ width: 100%;
6
+ font-family: var(--sigvelo-font-family);
7
+ color: var(--sigvelo-text-body);
8
+ }
9
+
10
+ .message[data-from="user"] {
11
+ align-items: flex-end;
12
+ }
13
+
14
+ .message[data-from="assistant"],
15
+ .message[data-from="system"],
16
+ .message[data-from="tool"] {
17
+ align-items: flex-start;
18
+ }
19
+
20
+ .message__content {
21
+ display: inline-block;
22
+ max-width: min(42rem, 85%);
23
+ padding-block: 0.625rem;
24
+ padding-inline: 0.875rem;
25
+ border-radius: var(--sigvelo-border-radius-md);
26
+ font-size: 0.875rem;
27
+ line-height: 1.55;
28
+ background-color: var(--sigvelo-neutral-fill-softer);
29
+ color: var(--sigvelo-text-body);
30
+ word-wrap: break-word;
31
+ overflow-wrap: anywhere;
32
+ }
33
+
34
+ .message[data-from="user"] .message__content {
35
+ background-color: var(--sigvelo-primary-fill);
36
+ color: var(--sigvelo-primary-fill-contrast);
37
+ }
38
+
39
+ .message[data-from="assistant"] .message__content {
40
+ display: block;
41
+ width: min(42rem, 85%);
42
+ max-width: 100%;
43
+ background-color: transparent;
44
+ padding-inline: 0;
45
+ }
46
+
47
+ .message[data-from="system"] .message__content {
48
+ background-color: transparent;
49
+ color: var(--sigvelo-text-muted);
50
+ font-style: italic;
51
+ }
52
+
53
+ .message__content > * + * {
54
+ margin-block-start: 0.5rem;
55
+ }
56
+
57
+ .message__content :where(pre) {
58
+ overflow: auto;
59
+ }
60
+
61
+ .message__actions {
62
+ display: inline-flex;
63
+ align-items: center;
64
+ gap: 0.125rem;
65
+ padding: 0;
66
+ color: var(--sigvelo-text-muted);
67
+ }
68
+
69
+ .message[data-from="user"] .message__actions {
70
+ align-self: flex-end;
71
+ }
72
+
73
+ .message__action {
74
+ color: var(--sigvelo-text-muted);
75
+ }
76
+
77
+ .message__action:hover:not([data-disabled]) {
78
+ color: var(--sigvelo-text-body);
79
+ }
80
+
81
+ .message__toolbar {
82
+ display: flex;
83
+ align-items: center;
84
+ justify-content: space-between;
85
+ gap: 0.5rem;
86
+ width: 100%;
87
+ }
88
+
89
+ .message__branch {
90
+ display: flex;
91
+ flex-direction: column;
92
+ gap: 0.25rem;
93
+ width: 100%;
94
+ }
95
+
96
+ .message__branch-content {
97
+ display: flex;
98
+ flex-direction: column;
99
+ }
100
+
101
+ .message__branch-selector {
102
+ display: inline-flex;
103
+ align-items: center;
104
+ gap: 0.125rem;
105
+ color: var(--sigvelo-text-muted);
106
+ }
107
+
108
+ .message__branch-page {
109
+ font-size: 0.75rem;
110
+ font-variant-numeric: tabular-nums;
111
+ color: var(--sigvelo-text-muted);
112
+ padding-inline: 0.375rem;
113
+ user-select: none;
114
+ }
115
+
116
+ @media (forced-colors: active) {
117
+ .message__content {
118
+ border: 1px solid CanvasText;
119
+ }
120
+ }
@@ -0,0 +1,36 @@
1
+ .meter {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 0.5rem;
5
+ width: 100%;
6
+ }
7
+
8
+ .meter__track {
9
+ position: relative;
10
+ width: 100%;
11
+ height: 0.5rem;
12
+ overflow: hidden;
13
+ background-color: var(--sigvelo-neutral-fill-softer);
14
+ border-radius: var(--sigvelo-border-radius-pill);
15
+ }
16
+
17
+ .meter__indicator {
18
+ height: 100%;
19
+ background-color: var(--sigvelo-primary-fill-mid);
20
+ border-radius: var(--sigvelo-border-radius-pill);
21
+ transition: width 300ms ease;
22
+ }
23
+
24
+ .meter__label {
25
+ font-family: var(--sigvelo-font-family);
26
+ font-size: 0.875rem;
27
+ font-weight: var(--sigvelo-font-weight-semibold);
28
+ color: var(--sigvelo-text-body);
29
+ }
30
+
31
+ .meter__value {
32
+ font-family: var(--sigvelo-font-family);
33
+ font-size: 0.875rem;
34
+ font-weight: var(--sigvelo-font-weight-semibold);
35
+ color: var(--sigvelo-text-muted);
36
+ }