@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,175 @@
1
+ .model-selector {
2
+ display: inline-block;
3
+ font-family: var(--sigvelo-font-family);
4
+ }
5
+
6
+ .model-selector__trigger {
7
+ display: inline-flex;
8
+ align-items: center;
9
+ gap: 0.5rem;
10
+ }
11
+
12
+ .model-selector__trigger-chevron {
13
+ display: inline-flex;
14
+ color: var(--sigvelo-text-muted);
15
+ }
16
+
17
+ .model-selector__dialog {
18
+ display: flex;
19
+ flex-direction: column;
20
+ width: min(32rem, calc(100vw - 2rem));
21
+ max-height: min(32rem, calc(100vh - 4rem));
22
+ padding: 0;
23
+ overflow: hidden;
24
+ font-family: var(--sigvelo-font-family);
25
+ color: var(--sigvelo-text-body);
26
+ }
27
+
28
+ .model-selector__search {
29
+ display: flex;
30
+ align-items: center;
31
+ gap: 0.5rem;
32
+ padding-block: 0.75rem;
33
+ padding-inline: 1rem;
34
+ border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
35
+ var(--sigvelo-neutral-stroke-softer);
36
+ }
37
+
38
+ .model-selector__search-icon {
39
+ display: inline-flex;
40
+ color: var(--sigvelo-text-muted);
41
+ }
42
+
43
+ .model-selector__input {
44
+ flex: 1;
45
+ min-width: 0;
46
+ padding: 0;
47
+ border: none;
48
+ outline: none;
49
+ background-color: transparent;
50
+ color: var(--sigvelo-text-body);
51
+ font-family: inherit;
52
+ font-size: 0.875rem;
53
+ }
54
+
55
+ .model-selector__input::placeholder {
56
+ color: var(--sigvelo-text-muted);
57
+ }
58
+
59
+ .model-selector__input::-webkit-search-cancel-button {
60
+ display: none;
61
+ }
62
+
63
+ .model-selector__list {
64
+ flex: 1;
65
+ overflow: auto;
66
+ padding-block: 0.25rem;
67
+ }
68
+
69
+ .model-selector__group {
70
+ display: flex;
71
+ flex-direction: column;
72
+ }
73
+
74
+ .model-selector__group-label {
75
+ padding-block: 0.375rem;
76
+ padding-inline: 1rem;
77
+ font-size: 0.6875rem;
78
+ font-weight: var(--sigvelo-font-weight-bold);
79
+ text-transform: uppercase;
80
+ letter-spacing: 0.05em;
81
+ color: var(--sigvelo-text-muted);
82
+ }
83
+
84
+ .model-selector__item {
85
+ display: flex;
86
+ align-items: center;
87
+ gap: 0.625rem;
88
+ width: 100%;
89
+ padding-block: 0.5rem;
90
+ padding-inline: 1rem;
91
+ background-color: transparent;
92
+ border: none;
93
+ color: var(--sigvelo-text-body);
94
+ font-family: inherit;
95
+ font-size: 0.875rem;
96
+ text-align: start;
97
+ cursor: pointer;
98
+ transition: background-color 120ms ease;
99
+ }
100
+
101
+ .model-selector__item:hover:not([data-disabled]),
102
+ .model-selector__item:focus-visible {
103
+ background-color: var(--sigvelo-neutral-fill-softer);
104
+ outline: none;
105
+ }
106
+
107
+ .model-selector__item[data-selected] {
108
+ background-color: var(--sigvelo-primary-fill-softer);
109
+ color: var(--sigvelo-primary-text-colorful);
110
+ font-weight: var(--sigvelo-font-weight-semibold);
111
+ }
112
+
113
+ .model-selector__empty {
114
+ padding-block: 1.5rem;
115
+ padding-inline: 1rem;
116
+ text-align: center;
117
+ font-size: 0.8125rem;
118
+ color: var(--sigvelo-text-muted);
119
+ }
120
+
121
+ /* Hide empty state when any group sibling has visible items. */
122
+ .model-selector__list:has(.model-selector__group) .model-selector__empty {
123
+ display: none;
124
+ }
125
+
126
+ .model-selector__separator {
127
+ margin: 0.25rem 0;
128
+ border: none;
129
+ border-block-start: var(--sigvelo-border-style) var(--sigvelo-border-width)
130
+ var(--sigvelo-neutral-stroke-softer);
131
+ }
132
+
133
+ .model-selector__logo {
134
+ display: inline-flex;
135
+ align-items: center;
136
+ justify-content: center;
137
+ width: 1.25rem;
138
+ height: 1.25rem;
139
+ flex-shrink: 0;
140
+ color: var(--sigvelo-text-body);
141
+ }
142
+
143
+ .model-selector__logo-group {
144
+ display: inline-flex;
145
+ align-items: center;
146
+ gap: 0.25rem;
147
+ }
148
+
149
+ .model-selector__name {
150
+ flex: 1;
151
+ min-width: 0;
152
+ overflow: hidden;
153
+ text-overflow: ellipsis;
154
+ white-space: nowrap;
155
+ }
156
+
157
+ .model-selector__shortcut {
158
+ padding-block: 0.0625rem;
159
+ padding-inline: 0.375rem;
160
+ font-family: var(--sigvelo-font-family-code);
161
+ font-size: 0.6875rem;
162
+ color: var(--sigvelo-text-muted);
163
+ background-color: var(--sigvelo-neutral-fill-softer);
164
+ border: var(--sigvelo-border-style) var(--sigvelo-border-width)
165
+ var(--sigvelo-neutral-stroke-softer);
166
+ border-radius: var(--sigvelo-border-radius-sm);
167
+ }
168
+
169
+ @media (forced-colors: active) {
170
+ .model-selector__item:focus-visible,
171
+ .model-selector__item:hover {
172
+ outline: 2px solid Highlight;
173
+ outline-offset: -2px;
174
+ }
175
+ }
@@ -0,0 +1,418 @@
1
+ .nanite-scene {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ justify-content: center;
5
+ line-height: 0;
6
+ }
7
+
8
+ .nanite-scene--trio {
9
+ inline-size: 200px;
10
+ block-size: 68px;
11
+ }
12
+
13
+ .nanite-scene--solo {
14
+ inline-size: 120px;
15
+ block-size: 56px;
16
+ flex-shrink: 0;
17
+ }
18
+
19
+ .nanite-scene svg {
20
+ display: block;
21
+ inline-size: 100%;
22
+ block-size: 100%;
23
+ overflow: visible;
24
+ }
25
+
26
+ .nanite-scene--concerned .nanite-scene__nanite {
27
+ filter: saturate(0.55) brightness(0.92);
28
+ }
29
+
30
+ .nanite-scene__nanite,
31
+ .nanite-scene__hat,
32
+ .nanite-scene__glass,
33
+ .nanite-scene__badge,
34
+ .nanite-scene__sparkle,
35
+ .nanite-scene__github-signal,
36
+ .nanite-scene__github-node,
37
+ .nanite-scene__screen-scan {
38
+ transform-box: fill-box;
39
+ }
40
+
41
+ .nanite-scene__nanite,
42
+ .nanite-scene__glass {
43
+ transform-origin: 50% 100%;
44
+ }
45
+
46
+ .nanite-scene__hat,
47
+ .nanite-scene__badge,
48
+ .nanite-scene__sparkle,
49
+ .nanite-scene__github-signal,
50
+ .nanite-scene__github-node,
51
+ .nanite-scene__screen-scan {
52
+ transform-origin: 50% 50%;
53
+ }
54
+
55
+ .nanite-scene__hat {
56
+ visibility: hidden;
57
+ opacity: 0;
58
+ transform: translateY(-6px);
59
+ }
60
+
61
+ .nanite-scene__badge,
62
+ .nanite-scene__sparkle {
63
+ visibility: hidden;
64
+ opacity: 0;
65
+ }
66
+
67
+ .nanite-scene--idle .nanite-scene__nanite[data-index="0"],
68
+ .nanite-scene--idle .nanite-scene__nanite[data-index="2"] {
69
+ animation: nanite-idle-left 2.9s ease-in-out infinite;
70
+ }
71
+
72
+ .nanite-scene--idle .nanite-scene__nanite[data-index="1"] {
73
+ animation: nanite-idle-right 2.9s ease-in-out 120ms infinite;
74
+ }
75
+
76
+ .nanite-scene--helmet .nanite-scene__hat {
77
+ visibility: visible;
78
+ opacity: 1;
79
+ transform: none;
80
+ animation: nanite-helmet-drop 4.05s ease-in-out infinite;
81
+ }
82
+
83
+ .nanite-scene--helmet .nanite-scene__nanite {
84
+ animation: nanite-helmet-bounce 4.05s ease-in-out infinite;
85
+ }
86
+
87
+ .nanite-scene--helmet .nanite-scene__nanite[data-index="1"],
88
+ .nanite-scene--helmet .nanite-scene__nanite[data-index="1"] .nanite-scene__hat {
89
+ animation-delay: 80ms;
90
+ }
91
+
92
+ .nanite-scene--helmet .nanite-scene__nanite[data-index="2"],
93
+ .nanite-scene--helmet .nanite-scene__nanite[data-index="2"] .nanite-scene__hat {
94
+ animation-delay: 160ms;
95
+ }
96
+
97
+ .nanite-scene--working .nanite-scene__hat {
98
+ visibility: visible;
99
+ opacity: 1;
100
+ transform: none;
101
+ animation: nanite-hat-enter 400ms ease-out both;
102
+ }
103
+
104
+ .nanite-scene--working .nanite-scene__nanite {
105
+ animation: nanite-working-bob 1.2s ease-in-out infinite;
106
+ }
107
+
108
+ .nanite-scene--working .nanite-scene__nanite[data-index="1"] {
109
+ animation-delay: 140ms;
110
+ }
111
+
112
+ .nanite-scene--working .nanite-scene__nanite[data-index="2"] {
113
+ animation-delay: 280ms;
114
+ }
115
+
116
+ .nanite-scene--working .nanite-scene__glass {
117
+ animation: nanite-glass-swing 900ms ease-in-out infinite alternate;
118
+ }
119
+
120
+ .nanite-scene--working .nanite-scene__github-signal {
121
+ animation: nanite-signal-float 2.7s ease-in-out infinite alternate;
122
+ }
123
+
124
+ .nanite-scene--working .nanite-scene__github-node {
125
+ animation: nanite-node-pulse 1.16s ease-in-out infinite alternate;
126
+ }
127
+
128
+ .nanite-scene--working .nanite-scene__github-node:nth-of-type(2) {
129
+ animation-delay: 140ms;
130
+ }
131
+
132
+ .nanite-scene--working .nanite-scene__github-node:nth-of-type(3) {
133
+ animation-delay: 280ms;
134
+ }
135
+
136
+ .nanite-scene--working .nanite-scene__screen-scan {
137
+ animation: nanite-screen-scan 1.5s ease-in-out infinite;
138
+ }
139
+
140
+ .nanite-scene--celebrating .nanite-scene__nanite {
141
+ animation: nanite-celebrate-hop 500ms ease-out both;
142
+ }
143
+
144
+ .nanite-scene--celebrating .nanite-scene__nanite[data-index="1"] {
145
+ animation-delay: 100ms;
146
+ }
147
+
148
+ .nanite-scene--celebrating .nanite-scene__nanite[data-index="2"] {
149
+ animation-delay: 200ms;
150
+ }
151
+
152
+ .nanite-scene--celebrating .nanite-scene__hat {
153
+ animation: nanite-hat-toss 1.4s ease-out both;
154
+ }
155
+
156
+ .nanite-scene--celebrating .nanite-scene__nanite[data-index="1"] .nanite-scene__hat {
157
+ animation-delay: 120ms;
158
+ }
159
+
160
+ .nanite-scene--celebrating .nanite-scene__nanite[data-index="2"] .nanite-scene__hat {
161
+ animation-delay: 240ms;
162
+ }
163
+
164
+ .nanite-scene--celebrating .nanite-scene__badge,
165
+ .nanite-scene--concerned .nanite-scene__badge {
166
+ visibility: visible;
167
+ opacity: 1;
168
+ animation: nanite-badge-pop 400ms cubic-bezier(0.34, 1.56, 0.64, 1) both;
169
+ animation-delay: 500ms;
170
+ }
171
+
172
+ .nanite-scene--concerned .nanite-scene__badge {
173
+ animation-delay: 300ms;
174
+ }
175
+
176
+ .nanite-scene--celebrating .nanite-scene__sparkle {
177
+ animation: nanite-sparkle 2.4s ease-in-out both;
178
+ animation-delay: 700ms;
179
+ }
180
+
181
+ .nanite-scene--celebrating .nanite-scene__sparkle:nth-child(2) {
182
+ animation-delay: 780ms;
183
+ }
184
+
185
+ .nanite-scene--celebrating .nanite-scene__sparkle:nth-child(3) {
186
+ animation-delay: 860ms;
187
+ }
188
+
189
+ .nanite-scene--concerned .nanite-scene__nanite {
190
+ animation: nanite-concerned-sway 4s ease-in-out infinite alternate;
191
+ }
192
+
193
+ .nanite-scene--concerned .nanite-scene__nanite[data-index="1"] {
194
+ animation-delay: 300ms;
195
+ }
196
+
197
+ .nanite-scene--concerned .nanite-scene__nanite[data-index="2"] {
198
+ animation-delay: 600ms;
199
+ }
200
+
201
+ @keyframes nanite-idle-left {
202
+ 50% {
203
+ transform: translateY(-3px) rotate(-1.2deg);
204
+ }
205
+ }
206
+
207
+ @keyframes nanite-idle-right {
208
+ 50% {
209
+ transform: translateY(-3px) rotate(1.2deg);
210
+ }
211
+ }
212
+
213
+ @keyframes nanite-helmet-drop {
214
+ 0% {
215
+ visibility: visible;
216
+ opacity: 0;
217
+ transform: translateY(-18px);
218
+ }
219
+
220
+ 9% {
221
+ opacity: 1;
222
+ transform: translateY(2px);
223
+ }
224
+
225
+ 14%,
226
+ 72% {
227
+ visibility: visible;
228
+ opacity: 1;
229
+ transform: translateY(0);
230
+ }
231
+
232
+ 82% {
233
+ visibility: visible;
234
+ opacity: 0;
235
+ transform: translateY(-14px);
236
+ }
237
+
238
+ 100% {
239
+ visibility: hidden;
240
+ opacity: 0;
241
+ transform: translateY(-14px);
242
+ }
243
+ }
244
+
245
+ @keyframes nanite-helmet-bounce {
246
+ 0%,
247
+ 10%,
248
+ 100% {
249
+ transform: none;
250
+ }
251
+
252
+ 13% {
253
+ transform: translateY(2px);
254
+ }
255
+
256
+ 19% {
257
+ transform: translateY(-3px);
258
+ }
259
+
260
+ 25%,
261
+ 72% {
262
+ transform: none;
263
+ }
264
+
265
+ 42%,
266
+ 58% {
267
+ transform: translateY(-2px);
268
+ }
269
+ }
270
+
271
+ @keyframes nanite-hat-enter {
272
+ from {
273
+ opacity: 0;
274
+ transform: translateY(-8px);
275
+ }
276
+
277
+ to {
278
+ opacity: 1;
279
+ transform: none;
280
+ }
281
+ }
282
+
283
+ @keyframes nanite-working-bob {
284
+ 50% {
285
+ transform: translateY(-2px);
286
+ }
287
+ }
288
+
289
+ @keyframes nanite-glass-swing {
290
+ to {
291
+ transform: rotate(-12deg);
292
+ }
293
+ }
294
+
295
+ @keyframes nanite-signal-float {
296
+ to {
297
+ transform: translateY(-0.8px);
298
+ }
299
+ }
300
+
301
+ @keyframes nanite-node-pulse {
302
+ to {
303
+ transform: scale(1.22);
304
+ }
305
+ }
306
+
307
+ @keyframes nanite-screen-scan {
308
+ 0%,
309
+ 100% {
310
+ opacity: 0;
311
+ transform: translateX(-20px);
312
+ }
313
+
314
+ 18%,
315
+ 82% {
316
+ opacity: 0.55;
317
+ }
318
+
319
+ 82% {
320
+ transform: translateX(20px);
321
+ }
322
+ }
323
+
324
+ @keyframes nanite-celebrate-hop {
325
+ 50% {
326
+ transform: translateY(-4px);
327
+ }
328
+ }
329
+
330
+ @keyframes nanite-hat-toss {
331
+ 0% {
332
+ visibility: visible;
333
+ opacity: 1;
334
+ transform: none;
335
+ }
336
+
337
+ 85% {
338
+ visibility: visible;
339
+ opacity: 0;
340
+ transform: translateY(-20px);
341
+ }
342
+
343
+ 100% {
344
+ visibility: hidden;
345
+ opacity: 0;
346
+ transform: translateY(-20px);
347
+ }
348
+ }
349
+
350
+ @keyframes nanite-badge-pop {
351
+ from {
352
+ opacity: 0;
353
+ transform: scale(0.4);
354
+ }
355
+
356
+ to {
357
+ opacity: 1;
358
+ transform: scale(1);
359
+ }
360
+ }
361
+
362
+ @keyframes nanite-sparkle {
363
+ 0% {
364
+ visibility: visible;
365
+ opacity: 0;
366
+ transform: scale(0.6);
367
+ }
368
+
369
+ 18% {
370
+ opacity: 1;
371
+ transform: scale(1.1);
372
+ }
373
+
374
+ 32%,
375
+ 48%,
376
+ 64% {
377
+ opacity: 1;
378
+ transform: scale(0.9);
379
+ }
380
+
381
+ 40%,
382
+ 56% {
383
+ opacity: 1;
384
+ transform: scale(1.1);
385
+ }
386
+
387
+ 82% {
388
+ visibility: visible;
389
+ opacity: 0;
390
+ transform: scale(0.9);
391
+ }
392
+
393
+ 100% {
394
+ visibility: hidden;
395
+ opacity: 0;
396
+ transform: scale(0.9);
397
+ }
398
+ }
399
+
400
+ @keyframes nanite-concerned-sway {
401
+ to {
402
+ transform: rotate(2deg);
403
+ }
404
+ }
405
+
406
+ @media (prefers-reduced-motion: reduce) {
407
+ .nanite-scene__nanite,
408
+ .nanite-scene__hat,
409
+ .nanite-scene__glass,
410
+ .nanite-scene__badge,
411
+ .nanite-scene__sparkle,
412
+ .nanite-scene__github-signal,
413
+ .nanite-scene__github-node,
414
+ .nanite-scene__screen-scan {
415
+ animation: none !important;
416
+ transform: none !important;
417
+ }
418
+ }