@sidecar-ai/native 0.1.0-alpha.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.
@@ -0,0 +1,1273 @@
1
+ /**
2
+ * Sidecar native component recipes.
3
+ *
4
+ * Widgets stay transparent by default. `SidecarWidgetRoot` sets
5
+ * `data-sidecar-host` and `data-sidecar-theme` at runtime; scoped packages pin
6
+ * individual components with `data-sc-recipe`.
7
+ */
8
+ :root {
9
+ color-scheme: light dark;
10
+ --sc-font-sans: ui-sans-serif, -apple-system, system-ui, "Segoe UI", "Noto Sans", Helvetica,
11
+ Arial, sans-serif;
12
+ --sc-font-mono: ui-monospace, "SFMono-Regular", "SF Mono", Menlo, Monaco, Consolas,
13
+ monospace;
14
+ --sc-bg: transparent;
15
+ --sc-surface: Canvas;
16
+ --sc-surface-elevated: Canvas;
17
+ --sc-surface-inset: color-mix(in srgb, CanvasText 5%, transparent);
18
+ --sc-surface-muted: color-mix(in srgb, CanvasText 7%, transparent);
19
+ --sc-text: CanvasText;
20
+ --sc-text-muted: color-mix(in srgb, CanvasText 64%, transparent);
21
+ --sc-text-subtle: color-mix(in srgb, CanvasText 44%, transparent);
22
+ --sc-border: color-mix(in srgb, CanvasText 14%, transparent);
23
+ --sc-border-strong: color-mix(in srgb, CanvasText 24%, transparent);
24
+ --sc-focus: #0a84ff;
25
+ --sc-shadow: 0 10px 30px rgb(0 0 0 / 10%);
26
+ --sc-primary: #0d0d0d;
27
+ --sc-primary-text: #ffffff;
28
+ --sc-secondary: #5d5d5d;
29
+ --sc-secondary-text: #ffffff;
30
+ --sc-danger: #d92d20;
31
+ --sc-danger-text: #ffffff;
32
+ --sc-success: #039855;
33
+ --sc-success-text: #ffffff;
34
+ --sc-warning: #dc6803;
35
+ --sc-warning-text: #ffffff;
36
+ --sc-caution: #ca8504;
37
+ --sc-caution-text: #201407;
38
+ --sc-discovery: #7a5af8;
39
+ --sc-discovery-text: #ffffff;
40
+ --sc-info: #1570ef;
41
+ --sc-info-text: #ffffff;
42
+ --sc-radius-xs: 4px;
43
+ --sc-radius-sm: 6px;
44
+ --sc-radius-md: 8px;
45
+ --sc-radius-lg: 10px;
46
+ --sc-radius-xl: 12px;
47
+ --sc-control-3xs: 22px;
48
+ --sc-control-2xs: 24px;
49
+ --sc-control-xs: 26px;
50
+ --sc-control-sm: 28px;
51
+ --sc-control-md: 32px;
52
+ --sc-control-lg: 36px;
53
+ --sc-control-xl: 40px;
54
+ --sc-control-2xl: 44px;
55
+ --sc-control-3xl: 48px;
56
+ --sc-control-height: var(--sc-control-md);
57
+ --sc-control-font-size: 14px;
58
+ --sc-control-gutter: 12px;
59
+ --sc-transition: 140ms ease;
60
+ }
61
+
62
+ :root[data-sidecar-theme="light"] {
63
+ color-scheme: light;
64
+ }
65
+
66
+ :root[data-sidecar-theme="dark"] {
67
+ color-scheme: dark;
68
+ --sc-surface: #212121;
69
+ --sc-surface-elevated: #2b2b2b;
70
+ --sc-surface-inset: #303030;
71
+ --sc-surface-muted: #3a3a3a;
72
+ --sc-text: #f7f7f7;
73
+ --sc-text-muted: #b4b4b4;
74
+ --sc-text-subtle: #8f8f8f;
75
+ --sc-border: rgb(255 255 255 / 12%);
76
+ --sc-border-strong: rgb(255 255 255 / 20%);
77
+ --sc-primary: #f3f3f3;
78
+ --sc-primary-text: #0d0d0d;
79
+ --sc-secondary: #d0d0d0;
80
+ --sc-secondary-text: #0d0d0d;
81
+ --sc-shadow: 0 10px 30px rgb(0 0 0 / 28%);
82
+ }
83
+
84
+ :root[data-sidecar-host="chatgpt"],
85
+ :root [data-sc-recipe="chatgpt"] {
86
+ /* Calibrated from @openai/apps-sdk-ui 0.2.2 component tokens. */
87
+ --sc-font-sans: ui-sans-serif, -apple-system, system-ui, "Segoe UI", "Noto Sans", Helvetica,
88
+ Arial, sans-serif;
89
+ --sc-surface: #ffffff;
90
+ --sc-surface-elevated: #ffffff;
91
+ --sc-surface-inset: #f5f5f5;
92
+ --sc-surface-muted: #eeeeee;
93
+ --sc-text: #0d0d0d;
94
+ --sc-text-muted: #5d5d5d;
95
+ --sc-text-subtle: #8f8f8f;
96
+ --sc-border: rgb(13 13 13 / 10%);
97
+ --sc-border-strong: rgb(13 13 13 / 22%);
98
+ --sc-focus: #0169cc;
99
+ --sc-primary: #0d0d0d;
100
+ --sc-primary-text: #ffffff;
101
+ --sc-secondary: #5d5d5d;
102
+ --sc-secondary-text: #ffffff;
103
+ --sc-radius-xs: 4px;
104
+ --sc-radius-sm: 6px;
105
+ --sc-radius-md: 8px;
106
+ --sc-radius-lg: 10px;
107
+ --sc-radius-xl: 12px;
108
+ --sc-control-height: 32px;
109
+ --sc-control-font-size: 14px;
110
+ --sc-control-gutter: 12px;
111
+ }
112
+
113
+ :root[data-sidecar-host="chatgpt"][data-sidecar-theme="dark"],
114
+ :root[data-sidecar-theme="dark"] [data-sc-recipe="chatgpt"] {
115
+ --sc-surface: #212121;
116
+ --sc-surface-elevated: #2b2b2b;
117
+ --sc-surface-inset: #303030;
118
+ --sc-surface-muted: #3a3a3a;
119
+ --sc-text: #ffffff;
120
+ --sc-text-muted: #b4b4b4;
121
+ --sc-text-subtle: #8f8f8f;
122
+ --sc-border: rgb(255 255 255 / 12%);
123
+ --sc-border-strong: rgb(255 255 255 / 20%);
124
+ --sc-focus: #0285ff;
125
+ --sc-primary: #f3f3f3;
126
+ --sc-primary-text: #0d0d0d;
127
+ --sc-secondary: #d0d0d0;
128
+ --sc-secondary-text: #0d0d0d;
129
+ }
130
+
131
+ :root[data-sidecar-host="claude"],
132
+ :root [data-sc-recipe="claude"] {
133
+ /* Claude transparent theming variables are honored when the host provides them. */
134
+ --sc-font-sans: var(--font-sans, "Anthropic Sans", ui-sans-serif, -apple-system, system-ui, "Segoe UI",
135
+ "Noto Sans", Helvetica, Arial, sans-serif);
136
+ --sc-font-mono: var(--font-mono, ui-monospace, monospace);
137
+ --sc-surface: var(--color-background-primary, #ffffff);
138
+ --sc-surface-elevated: var(--color-background-tertiary, #faf9f5);
139
+ --sc-surface-inset: var(--color-background-secondary, #f5f4ed);
140
+ --sc-surface-muted: var(--color-background-secondary, #f5f4ed);
141
+ --sc-text: var(--color-text-primary, #141413);
142
+ --sc-text-muted: var(--color-text-secondary, #3d3d3a);
143
+ --sc-text-subtle: var(--color-text-tertiary, #73726c);
144
+ --sc-border: var(--color-border-tertiary, rgb(31 30 29 / 15%));
145
+ --sc-border-strong: var(--color-border-secondary, rgb(31 30 29 / 30%));
146
+ --sc-focus: var(--color-ring-primary, rgb(20 20 19 / 70%));
147
+ --sc-primary: #c96442;
148
+ --sc-primary-text: #ffffff;
149
+ --sc-secondary: var(--color-text-secondary, #3d3d3a);
150
+ --sc-secondary-text: #ffffff;
151
+ --sc-danger: var(--color-text-danger, #7f2c28);
152
+ --sc-success: var(--color-text-success, #265b19);
153
+ --sc-warning: var(--color-text-warning, #5a4815);
154
+ --sc-caution: var(--color-text-warning, #5a4815);
155
+ --sc-info: var(--color-text-info, #3266ad);
156
+ --sc-discovery: #7b61a8;
157
+ --sc-radius-xs: var(--border-radius-xs, 4px);
158
+ --sc-radius-sm: var(--border-radius-sm, 6px);
159
+ --sc-radius-md: var(--border-radius-md, 8px);
160
+ --sc-radius-lg: var(--border-radius-lg, 10px);
161
+ --sc-radius-xl: var(--border-radius-xl, 12px);
162
+ --sc-control-height: 34px;
163
+ --sc-control-font-size: var(--font-text-sm-size, 14px);
164
+ --sc-control-gutter: 12px;
165
+ }
166
+
167
+ :root[data-sidecar-host="claude"][data-sidecar-theme="dark"],
168
+ :root[data-sidecar-theme="dark"] [data-sc-recipe="claude"] {
169
+ --sc-surface: var(--color-background-primary, #30302e);
170
+ --sc-surface-elevated: var(--color-background-tertiary, #141413);
171
+ --sc-surface-inset: var(--color-background-secondary, #262624);
172
+ --sc-surface-muted: var(--color-background-secondary, #262624);
173
+ --sc-text: var(--color-text-primary, #faf9f5);
174
+ --sc-text-muted: var(--color-text-secondary, #c2c0b6);
175
+ --sc-text-subtle: var(--color-text-tertiary, #9c9a92);
176
+ --sc-border: var(--color-border-tertiary, rgb(222 220 209 / 15%));
177
+ --sc-border-strong: var(--color-border-secondary, rgb(222 220 209 / 30%));
178
+ --sc-focus: var(--color-ring-primary, rgb(250 249 245 / 70%));
179
+ --sc-primary: #d97757;
180
+ --sc-primary-text: #ffffff;
181
+ --sc-secondary: var(--color-text-secondary, #c2c0b6);
182
+ --sc-secondary-text: #201f1d;
183
+ --sc-danger: var(--color-text-danger, #ee8884);
184
+ --sc-success: var(--color-text-success, #7ab948);
185
+ --sc-warning: var(--color-text-warning, #d1a041);
186
+ --sc-caution: var(--color-text-warning, #d1a041);
187
+ --sc-info: var(--color-text-info, #80aadd);
188
+ }
189
+
190
+ html,
191
+ body,
192
+ #root {
193
+ min-height: 100%;
194
+ margin: 0;
195
+ background: transparent;
196
+ }
197
+
198
+ body {
199
+ color: var(--sc-text);
200
+ font-family: var(--sc-font-sans);
201
+ font-size: 14px;
202
+ }
203
+
204
+ * {
205
+ box-sizing: border-box;
206
+ }
207
+
208
+ [data-sc-component] {
209
+ font-family: var(--sc-font-sans);
210
+ letter-spacing: 0;
211
+ }
212
+
213
+ [data-sc-size="3xs"] {
214
+ --sc-control-height: var(--sc-control-3xs);
215
+ --sc-control-gutter: 6px;
216
+ --sc-control-font-size: 12px;
217
+ }
218
+
219
+ [data-sc-size="2xs"] {
220
+ --sc-control-height: var(--sc-control-2xs);
221
+ --sc-control-gutter: 7px;
222
+ --sc-control-font-size: 12px;
223
+ }
224
+
225
+ [data-sc-size="xs"] {
226
+ --sc-control-height: var(--sc-control-xs);
227
+ --sc-control-gutter: 8px;
228
+ --sc-control-font-size: 13px;
229
+ }
230
+
231
+ [data-sc-size="sm"] {
232
+ --sc-control-height: var(--sc-control-sm);
233
+ --sc-control-gutter: 10px;
234
+ --sc-control-font-size: 13px;
235
+ }
236
+
237
+ [data-sc-size="lg"] {
238
+ --sc-control-height: var(--sc-control-lg);
239
+ }
240
+
241
+ [data-sc-size="xl"] {
242
+ --sc-control-height: var(--sc-control-xl);
243
+ --sc-control-gutter: 14px;
244
+ }
245
+
246
+ [data-sc-size="2xl"] {
247
+ --sc-control-height: var(--sc-control-2xl);
248
+ --sc-control-gutter: 14px;
249
+ --sc-control-font-size: 15px;
250
+ }
251
+
252
+ [data-sc-size="3xl"] {
253
+ --sc-control-height: var(--sc-control-3xl);
254
+ --sc-control-gutter: 16px;
255
+ --sc-control-font-size: 15px;
256
+ }
257
+
258
+ [data-sc-color="primary"] {
259
+ --sc-control-color: var(--sc-primary);
260
+ --sc-control-foreground: var(--sc-primary-text);
261
+ }
262
+
263
+ [data-sc-color="secondary"] {
264
+ --sc-control-color: var(--sc-secondary);
265
+ --sc-control-foreground: var(--sc-secondary-text);
266
+ }
267
+
268
+ [data-sc-color="danger"] {
269
+ --sc-control-color: var(--sc-danger);
270
+ --sc-control-foreground: var(--sc-danger-text);
271
+ }
272
+
273
+ [data-sc-color="success"] {
274
+ --sc-control-color: var(--sc-success);
275
+ --sc-control-foreground: var(--sc-success-text);
276
+ }
277
+
278
+ [data-sc-color="warning"] {
279
+ --sc-control-color: var(--sc-warning);
280
+ --sc-control-foreground: var(--sc-warning-text);
281
+ }
282
+
283
+ [data-sc-color="caution"] {
284
+ --sc-control-color: var(--sc-caution);
285
+ --sc-control-foreground: var(--sc-caution-text);
286
+ }
287
+
288
+ [data-sc-color="discovery"] {
289
+ --sc-control-color: var(--sc-discovery);
290
+ --sc-control-foreground: var(--sc-discovery-text);
291
+ }
292
+
293
+ [data-sc-color="info"] {
294
+ --sc-control-color: var(--sc-info);
295
+ --sc-control-foreground: var(--sc-info-text);
296
+ }
297
+
298
+ [data-sc-component="button"] {
299
+ align-items: center;
300
+ appearance: none;
301
+ background: var(--sc-surface-inset);
302
+ border: 1px solid transparent;
303
+ border-radius: var(--sc-radius-md);
304
+ color: var(--sc-text);
305
+ cursor: pointer;
306
+ display: inline-flex;
307
+ flex-shrink: 0;
308
+ font-size: var(--sc-control-font-size);
309
+ font-weight: 500;
310
+ gap: 6px;
311
+ justify-content: center;
312
+ line-height: 1;
313
+ min-height: var(--sc-control-height);
314
+ padding: 0 var(--sc-control-gutter);
315
+ position: relative;
316
+ text-decoration: none;
317
+ transition:
318
+ background-color var(--sc-transition),
319
+ border-color var(--sc-transition),
320
+ box-shadow var(--sc-transition),
321
+ color var(--sc-transition),
322
+ opacity var(--sc-transition),
323
+ transform var(--sc-transition);
324
+ user-select: none;
325
+ white-space: nowrap;
326
+ }
327
+
328
+ [data-sc-component="button"][data-sc-pill] {
329
+ border-radius: 999px;
330
+ }
331
+
332
+ [data-sc-component="button"][data-sc-block] {
333
+ width: 100%;
334
+ }
335
+
336
+ [data-sc-component="button"][data-sc-uniform] {
337
+ aspect-ratio: 1;
338
+ padding: 0;
339
+ width: var(--sc-control-height);
340
+ }
341
+
342
+ [data-sc-component="button"][data-sc-variant="solid"] {
343
+ background: var(--sc-control-color, var(--sc-primary));
344
+ border-color: var(--sc-control-color, var(--sc-primary));
345
+ color: var(--sc-control-foreground, var(--sc-primary-text));
346
+ }
347
+
348
+ [data-sc-component="button"][data-sc-variant="soft"] {
349
+ background: color-mix(in srgb, var(--sc-control-color, var(--sc-secondary)) 10%, transparent);
350
+ color: var(--sc-text);
351
+ }
352
+
353
+ [data-sc-component="button"][data-sc-variant="outline"] {
354
+ background: transparent;
355
+ border-color: color-mix(in srgb, var(--sc-control-color, var(--sc-secondary)) 42%, var(--sc-border));
356
+ color: var(--sc-text);
357
+ }
358
+
359
+ [data-sc-component="button"][data-sc-variant="ghost"] {
360
+ background: transparent;
361
+ border-color: transparent;
362
+ color: var(--sc-text);
363
+ }
364
+
365
+ [data-sc-component="button"]:where(:hover):not(:disabled):not([data-sc-inert]) {
366
+ background-image: linear-gradient(rgb(0 0 0 / 4%), rgb(0 0 0 / 4%));
367
+ }
368
+
369
+ [data-sc-component="button"]:where(:active):not(:disabled):not([data-sc-inert]) {
370
+ transform: translateY(0.5px);
371
+ }
372
+
373
+ [data-sc-component="button"]:focus-visible,
374
+ [data-sc-component="checkbox"]:focus-visible,
375
+ [data-sc-component="switch"]:focus-visible,
376
+ [data-sc-component="radio-item"]:focus-visible,
377
+ [data-sc-component="segmented-option"]:focus-visible,
378
+ [data-sc-component="select-control"]:focus-visible,
379
+ [data-sc-component="select-option"]:focus-visible,
380
+ [data-sc-component="select-action"]:focus-visible,
381
+ [data-sc-component="input"]:focus-visible,
382
+ [data-sc-component="textarea"]:focus-visible,
383
+ [data-sc-component="text-link"]:focus-visible {
384
+ outline: 2px solid var(--sc-focus);
385
+ outline-offset: 2px;
386
+ }
387
+
388
+ [data-sc-component="button"]:disabled,
389
+ [data-sc-disabled] {
390
+ cursor: not-allowed;
391
+ opacity: 0.58;
392
+ }
393
+
394
+ [data-sc-disabled-tone="relaxed"]:disabled {
395
+ cursor: default;
396
+ }
397
+
398
+ [data-sc-component="button-label"] {
399
+ align-items: center;
400
+ display: inline-flex;
401
+ min-width: 0;
402
+ }
403
+
404
+ [data-sc-component="text"] {
405
+ color: var(--sc-text);
406
+ font-size: 14px;
407
+ line-height: 1.45;
408
+ margin: 0;
409
+ }
410
+
411
+ [data-sc-component="text"][data-sc-tone="muted"],
412
+ [data-sc-component="field-description"],
413
+ [data-sc-component="select-option-description"] {
414
+ color: var(--sc-text-muted);
415
+ }
416
+
417
+ [data-sc-tone="success"] {
418
+ color: var(--sc-success);
419
+ }
420
+
421
+ [data-sc-tone="warning"] {
422
+ color: var(--sc-warning);
423
+ }
424
+
425
+ [data-sc-tone="danger"] {
426
+ color: var(--sc-danger);
427
+ }
428
+
429
+ [data-sc-component="heading"] {
430
+ color: var(--sc-text);
431
+ font-size: 16px;
432
+ font-weight: 650;
433
+ line-height: 1.25;
434
+ margin: 0;
435
+ }
436
+
437
+ [data-sc-component="heading"][data-sc-level="1"] {
438
+ font-size: 20px;
439
+ }
440
+
441
+ [data-sc-component="heading"][data-sc-level="3"],
442
+ [data-sc-component="heading"][data-sc-level="4"] {
443
+ font-size: 14px;
444
+ }
445
+
446
+ [data-sc-component="input-shell"],
447
+ [data-sc-component="select-control"] {
448
+ align-items: center;
449
+ background: var(--sc-surface);
450
+ border-radius: var(--sc-radius-md);
451
+ color: var(--sc-text);
452
+ cursor: text;
453
+ display: inline-flex;
454
+ font-size: var(--sc-control-font-size);
455
+ gap: 8px;
456
+ min-height: var(--sc-control-height);
457
+ min-width: 0;
458
+ padding: 0 var(--sc-control-gutter);
459
+ transition:
460
+ background-color var(--sc-transition),
461
+ box-shadow var(--sc-transition),
462
+ opacity var(--sc-transition);
463
+ width: 100%;
464
+ }
465
+
466
+ [data-sc-component="input-shell"][data-sc-variant="outline"],
467
+ [data-sc-component="select-control"][data-sc-variant="outline"] {
468
+ box-shadow: 0 0 0 1px var(--sc-border) inset;
469
+ }
470
+
471
+ [data-sc-component="input-shell"][data-sc-variant="soft"],
472
+ [data-sc-component="select-control"][data-sc-variant="soft"] {
473
+ background: var(--sc-surface-inset);
474
+ }
475
+
476
+ [data-sc-component="input-shell"][data-sc-pill],
477
+ [data-sc-component="select-control"][data-sc-pill] {
478
+ border-radius: 999px;
479
+ }
480
+
481
+ [data-sc-component="input-shell"][data-sc-invalid],
482
+ [data-sc-component="select-control"][data-sc-invalid],
483
+ [data-sc-component="textarea"][data-sc-invalid] {
484
+ box-shadow: 0 0 0 1px var(--sc-danger) inset;
485
+ }
486
+
487
+ [data-sc-component="input"] {
488
+ appearance: none;
489
+ background: transparent;
490
+ border: 0;
491
+ color: inherit;
492
+ flex: 1 1 auto;
493
+ font: inherit;
494
+ min-height: calc(var(--sc-control-height) - 2px);
495
+ min-width: 0;
496
+ outline: 0;
497
+ padding: 0;
498
+ width: 100%;
499
+ }
500
+
501
+ [data-sc-component="input"]::placeholder,
502
+ [data-sc-component="textarea"]::placeholder {
503
+ color: var(--sc-text-subtle);
504
+ }
505
+
506
+ [data-sc-component="input-adornment"] {
507
+ align-items: center;
508
+ color: var(--sc-text-muted);
509
+ display: inline-flex;
510
+ flex: 0 0 auto;
511
+ }
512
+
513
+ [data-sc-component="textarea"] {
514
+ appearance: none;
515
+ background: var(--sc-surface);
516
+ border: 0;
517
+ border-radius: var(--sc-radius-md);
518
+ box-shadow: 0 0 0 1px var(--sc-border) inset;
519
+ color: var(--sc-text);
520
+ display: block;
521
+ font: inherit;
522
+ font-size: var(--sc-control-font-size);
523
+ line-height: 1.42;
524
+ min-height: 74px;
525
+ padding: 8px var(--sc-control-gutter);
526
+ resize: vertical;
527
+ width: 100%;
528
+ }
529
+
530
+ [data-sc-component="textarea"][data-sc-variant="soft"] {
531
+ background: var(--sc-surface-inset);
532
+ box-shadow: none;
533
+ }
534
+
535
+ [data-sc-component="form-field"] {
536
+ display: grid;
537
+ gap: 6px;
538
+ }
539
+
540
+ [data-sc-component="field-label"] {
541
+ color: var(--sc-text);
542
+ font-size: 13px;
543
+ font-weight: 600;
544
+ line-height: 1.25;
545
+ }
546
+
547
+ [data-sc-component="field-required"] {
548
+ color: var(--sc-danger);
549
+ margin-inline-start: 2px;
550
+ }
551
+
552
+ [data-sc-component="field-description"],
553
+ [data-sc-component="field-error"] {
554
+ font-size: 12px;
555
+ line-height: 1.35;
556
+ margin: 0;
557
+ }
558
+
559
+ [data-sc-component="field-error"] {
560
+ color: var(--sc-danger);
561
+ }
562
+
563
+ [data-sc-component="checkbox-label"],
564
+ [data-sc-component="switch-label"] {
565
+ align-items: center;
566
+ color: var(--sc-text);
567
+ display: inline-flex;
568
+ font: inherit;
569
+ gap: 8px;
570
+ }
571
+
572
+ [data-sc-component="checkbox-label"][data-sc-orientation="right"],
573
+ [data-sc-component="switch-label"][data-sc-label-position="start"] {
574
+ flex-direction: row-reverse;
575
+ }
576
+
577
+ [data-sc-component="checkbox"],
578
+ [data-sc-component="switch"],
579
+ [data-sc-component="radio-item"],
580
+ [data-sc-component="segmented-option"],
581
+ [data-sc-component="select-option"],
582
+ [data-sc-component="select-action"],
583
+ [data-sc-component="select-clear"] {
584
+ appearance: none;
585
+ border: 0;
586
+ color: inherit;
587
+ font: inherit;
588
+ }
589
+
590
+ [data-sc-component="checkbox"] {
591
+ background: var(--sc-surface);
592
+ border: 1px solid var(--sc-border-strong);
593
+ border-radius: 5px;
594
+ height: 16px;
595
+ padding: 0;
596
+ position: relative;
597
+ width: 16px;
598
+ }
599
+
600
+ [data-sc-component="checkbox"][data-sc-checked],
601
+ [data-sc-component="checkbox"][data-sc-indeterminate] {
602
+ background: var(--sc-primary);
603
+ border-color: var(--sc-primary);
604
+ }
605
+
606
+ [data-sc-component="checkbox"][data-sc-checked]::after {
607
+ border: solid var(--sc-primary-text);
608
+ border-width: 0 2px 2px 0;
609
+ content: "";
610
+ height: 8px;
611
+ left: 5px;
612
+ position: absolute;
613
+ top: 2px;
614
+ transform: rotate(45deg);
615
+ width: 4px;
616
+ }
617
+
618
+ [data-sc-component="checkbox"][data-sc-indeterminate]::after {
619
+ background: var(--sc-primary-text);
620
+ content: "";
621
+ height: 2px;
622
+ left: 3px;
623
+ position: absolute;
624
+ top: 6px;
625
+ width: 8px;
626
+ }
627
+
628
+ [data-sc-component="switch"] {
629
+ align-items: center;
630
+ background: var(--sc-surface-muted);
631
+ border-radius: 999px;
632
+ display: inline-flex;
633
+ height: 19px;
634
+ padding: 2px;
635
+ width: 32px;
636
+ }
637
+
638
+ [data-sc-component="switch"][data-sc-checked] {
639
+ background: var(--sc-primary);
640
+ }
641
+
642
+ [data-sc-component="switch-thumb"] {
643
+ background: var(--sc-surface);
644
+ border-radius: 999px;
645
+ box-shadow: 0 1px 2px rgb(0 0 0 / 20%);
646
+ display: block;
647
+ height: 15px;
648
+ transform: translateX(0);
649
+ transition: transform var(--sc-transition);
650
+ width: 15px;
651
+ }
652
+
653
+ [data-sc-component="switch"][data-sc-checked] [data-sc-component="switch-thumb"] {
654
+ transform: translateX(13px);
655
+ }
656
+
657
+ [data-sc-component="visually-hidden-input"] {
658
+ clip: rect(0 0 0 0);
659
+ height: 1px;
660
+ margin: -1px;
661
+ overflow: hidden;
662
+ position: absolute;
663
+ white-space: nowrap;
664
+ width: 1px;
665
+ }
666
+
667
+ [data-sc-component="radio-group"] {
668
+ border: 0;
669
+ display: flex;
670
+ gap: 12px;
671
+ margin: 0;
672
+ padding: 0;
673
+ }
674
+
675
+ [data-sc-component="radio-group"][data-sc-direction="col"] {
676
+ align-items: flex-start;
677
+ flex-direction: column;
678
+ gap: 8px;
679
+ }
680
+
681
+ [data-sc-component="radio-item"] {
682
+ align-items: center;
683
+ background: transparent;
684
+ border-radius: var(--sc-radius-md);
685
+ cursor: pointer;
686
+ display: inline-flex;
687
+ gap: 7px;
688
+ min-height: 24px;
689
+ padding: 2px 4px;
690
+ }
691
+
692
+ [data-sc-component="radio-item"][data-sc-block] {
693
+ width: 100%;
694
+ }
695
+
696
+ [data-sc-component="radio-indicator"] {
697
+ border: 1px solid var(--sc-border-strong);
698
+ border-radius: 999px;
699
+ display: inline-flex;
700
+ height: 15px;
701
+ position: relative;
702
+ width: 15px;
703
+ }
704
+
705
+ [data-sc-component="radio-item"][data-sc-checked] [data-sc-component="radio-indicator"] {
706
+ background: var(--sc-primary);
707
+ border-color: var(--sc-primary);
708
+ }
709
+
710
+ [data-sc-component="radio-item"][data-sc-checked] [data-sc-component="radio-indicator"]::after {
711
+ background: var(--sc-primary-text);
712
+ border-radius: 999px;
713
+ content: "";
714
+ height: 5px;
715
+ left: 4px;
716
+ position: absolute;
717
+ top: 4px;
718
+ width: 5px;
719
+ }
720
+
721
+ [data-sc-component="segmented-control"] {
722
+ align-items: center;
723
+ background: var(--sc-surface-inset);
724
+ border-radius: var(--sc-radius-md);
725
+ display: inline-flex;
726
+ gap: 2px;
727
+ padding: 2px;
728
+ }
729
+
730
+ [data-sc-component="segmented-control"][data-sc-block] {
731
+ display: flex;
732
+ width: 100%;
733
+ }
734
+
735
+ [data-sc-component="segmented-control"][data-sc-pill] {
736
+ border-radius: 999px;
737
+ }
738
+
739
+ [data-sc-component="segmented-option"] {
740
+ background: transparent;
741
+ border-radius: calc(var(--sc-radius-md) - 2px);
742
+ color: var(--sc-text-muted);
743
+ cursor: pointer;
744
+ flex: 1 1 auto;
745
+ font-size: var(--sc-control-font-size);
746
+ font-weight: 600;
747
+ min-height: calc(var(--sc-control-height) - 4px);
748
+ padding: 0 var(--sc-control-gutter);
749
+ }
750
+
751
+ [data-sc-component="segmented-control"][data-sc-pill] [data-sc-component="segmented-option"] {
752
+ border-radius: 999px;
753
+ }
754
+
755
+ [data-sc-component="segmented-option"][data-sc-selected] {
756
+ background: var(--sc-surface-elevated);
757
+ box-shadow: 0 1px 4px rgb(0 0 0 / 14%);
758
+ color: var(--sc-text);
759
+ }
760
+
761
+ [data-sc-component="select"] {
762
+ display: inline-grid;
763
+ gap: 6px;
764
+ min-width: 180px;
765
+ position: relative;
766
+ }
767
+
768
+ [data-sc-component="select"][data-sc-block] {
769
+ width: 100%;
770
+ }
771
+
772
+ [data-sc-component="select-control"] {
773
+ cursor: pointer;
774
+ }
775
+
776
+ [data-sc-component="select-control"][data-sc-variant="ghost"] {
777
+ background: transparent;
778
+ box-shadow: none;
779
+ }
780
+
781
+ [data-sc-component="select-control-value"] {
782
+ flex: 1 1 auto;
783
+ min-width: 0;
784
+ overflow: hidden;
785
+ text-overflow: ellipsis;
786
+ white-space: nowrap;
787
+ }
788
+
789
+ [data-sc-component="select-clear"] {
790
+ align-items: center;
791
+ background: transparent;
792
+ border-radius: 999px;
793
+ color: var(--sc-text-muted);
794
+ cursor: pointer;
795
+ display: inline-flex;
796
+ height: 20px;
797
+ justify-content: center;
798
+ padding: 0;
799
+ width: 20px;
800
+ }
801
+
802
+ [data-sc-component="select-dropdown-icon"] {
803
+ color: var(--sc-text-muted);
804
+ font-size: 12px;
805
+ }
806
+
807
+ [data-sc-component="select-list"] {
808
+ background: var(--sc-surface-elevated);
809
+ border: 1px solid var(--sc-border);
810
+ border-radius: var(--sc-radius-xl);
811
+ box-shadow: var(--sc-shadow);
812
+ display: grid;
813
+ gap: 4px;
814
+ min-width: min(100%, 220px);
815
+ padding: 6px;
816
+ z-index: 1;
817
+ }
818
+
819
+ [data-sc-component="select-option"],
820
+ [data-sc-component="select-action"] {
821
+ align-items: flex-start;
822
+ background: transparent;
823
+ border-radius: var(--sc-radius-md);
824
+ color: var(--sc-text);
825
+ cursor: pointer;
826
+ display: grid;
827
+ gap: 2px;
828
+ min-height: 32px;
829
+ padding: 7px 8px;
830
+ text-align: left;
831
+ width: 100%;
832
+ }
833
+
834
+ [data-sc-component="select-option"][data-sc-selected],
835
+ [data-sc-component="select-option"]:hover,
836
+ [data-sc-component="select-action"]:hover {
837
+ background: var(--sc-surface-inset);
838
+ }
839
+
840
+ [data-sc-component="select-option-label"] {
841
+ font-weight: 500;
842
+ }
843
+
844
+ [data-sc-component="select-option-description"] {
845
+ font-size: 12px;
846
+ line-height: 1.3;
847
+ }
848
+
849
+ [data-sc-component="select-empty"] {
850
+ color: var(--sc-text-muted);
851
+ font-size: 13px;
852
+ padding: 8px;
853
+ }
854
+
855
+ [data-sc-component="select-actions"] {
856
+ border-top: 1px solid var(--sc-border);
857
+ display: grid;
858
+ gap: 2px;
859
+ margin-top: 4px;
860
+ padding-top: 4px;
861
+ }
862
+
863
+ [data-sc-component="alert"] {
864
+ align-items: flex-start;
865
+ background: color-mix(in srgb, var(--sc-control-color, var(--sc-primary)) 8%, transparent);
866
+ border: 1px solid color-mix(in srgb, var(--sc-control-color, var(--sc-primary)) 18%, var(--sc-border));
867
+ border-radius: var(--sc-radius-xl);
868
+ color: var(--sc-text);
869
+ display: flex;
870
+ gap: 12px;
871
+ padding: 12px;
872
+ }
873
+
874
+ [data-sc-component="alert"][data-sc-variant="solid"] {
875
+ background: var(--sc-control-color, var(--sc-primary));
876
+ color: var(--sc-control-foreground, var(--sc-primary-text));
877
+ }
878
+
879
+ [data-sc-component="alert"][data-sc-variant="outline"] {
880
+ background: transparent;
881
+ }
882
+
883
+ [data-sc-component="alert-content"] {
884
+ display: grid;
885
+ flex: 1 1 auto;
886
+ gap: 4px;
887
+ }
888
+
889
+ [data-sc-component="alert-title"] {
890
+ font-weight: 650;
891
+ }
892
+
893
+ [data-sc-component="alert-description"] {
894
+ color: color-mix(in srgb, currentColor 72%, transparent);
895
+ font-size: 13px;
896
+ line-height: 1.4;
897
+ }
898
+
899
+ [data-sc-component="alert-actions"] {
900
+ align-items: center;
901
+ display: flex;
902
+ flex: 0 0 auto;
903
+ gap: 8px;
904
+ }
905
+
906
+ [data-sc-component="alert"][data-sc-actions-placement="bottom"] {
907
+ flex-wrap: wrap;
908
+ }
909
+
910
+ [data-sc-component="alert"][data-sc-actions-placement="bottom"] [data-sc-component="alert-actions"] {
911
+ flex-basis: 100%;
912
+ }
913
+
914
+ [data-sc-component="badge"] {
915
+ align-items: center;
916
+ background: color-mix(in srgb, var(--sc-control-color, var(--sc-secondary)) 10%, transparent);
917
+ border: 1px solid transparent;
918
+ border-radius: var(--sc-radius-xs);
919
+ color: var(--sc-text);
920
+ display: inline-flex;
921
+ font-size: 12px;
922
+ font-weight: 650;
923
+ line-height: 1;
924
+ min-height: 18px;
925
+ padding: 0 6px;
926
+ }
927
+
928
+ [data-sc-component="badge"][data-sc-size="md"] {
929
+ min-height: 22px;
930
+ padding: 0 7px;
931
+ }
932
+
933
+ [data-sc-component="badge"][data-sc-size="lg"] {
934
+ font-size: 13px;
935
+ min-height: 24px;
936
+ padding: 0 8px;
937
+ }
938
+
939
+ [data-sc-component="badge"][data-sc-pill] {
940
+ border-radius: 999px;
941
+ }
942
+
943
+ [data-sc-component="badge"][data-sc-variant="solid"] {
944
+ background: var(--sc-control-color, var(--sc-secondary));
945
+ color: var(--sc-control-foreground, var(--sc-secondary-text));
946
+ }
947
+
948
+ [data-sc-component="badge"][data-sc-variant="outline"] {
949
+ background: transparent;
950
+ border-color: color-mix(in srgb, var(--sc-control-color, var(--sc-secondary)) 40%, var(--sc-border));
951
+ }
952
+
953
+ [data-sc-component="avatar-group"] {
954
+ align-items: center;
955
+ display: inline-flex;
956
+ }
957
+
958
+ [data-sc-component="avatar-group"][data-sc-stack="start"] [data-sc-component="avatar"] + [data-sc-component="avatar"] {
959
+ margin-inline-start: -8px;
960
+ }
961
+
962
+ [data-sc-component="avatar-group"][data-sc-stack="end"] [data-sc-component="avatar"] {
963
+ margin-inline-end: -8px;
964
+ }
965
+
966
+ [data-sc-component="avatar"] {
967
+ align-items: center;
968
+ background: color-mix(in srgb, var(--sc-control-color, var(--sc-secondary)) 11%, transparent);
969
+ border: 1px solid var(--sc-border);
970
+ border-radius: 999px;
971
+ color: var(--sc-text);
972
+ display: inline-flex;
973
+ flex: 0 0 auto;
974
+ font-size: calc(var(--sc-avatar-size, 28px) * 0.42);
975
+ font-weight: 650;
976
+ height: var(--sc-avatar-size, 28px);
977
+ justify-content: center;
978
+ overflow: hidden;
979
+ position: relative;
980
+ width: var(--sc-avatar-size, 28px);
981
+ }
982
+
983
+ [data-sc-component="avatar"][data-sc-variant="solid"] {
984
+ background: var(--sc-control-color, var(--sc-secondary));
985
+ color: var(--sc-control-foreground, var(--sc-secondary-text));
986
+ }
987
+
988
+ [data-sc-component="avatar"] img {
989
+ height: 100%;
990
+ object-fit: cover;
991
+ width: 100%;
992
+ }
993
+
994
+ [data-sc-component="empty-message"] {
995
+ align-items: center;
996
+ color: var(--sc-text-muted);
997
+ display: grid;
998
+ gap: 8px;
999
+ justify-items: center;
1000
+ padding: 18px;
1001
+ text-align: center;
1002
+ }
1003
+
1004
+ [data-sc-component="empty-message"][data-sc-fill="absolute"] {
1005
+ inset: 0;
1006
+ position: absolute;
1007
+ }
1008
+
1009
+ [data-sc-component="empty-message-icon"] {
1010
+ color: var(--sc-control-color, var(--sc-secondary));
1011
+ display: inline-flex;
1012
+ font-size: 24px;
1013
+ }
1014
+
1015
+ [data-sc-component="empty-message-icon"][data-sc-size="md"] {
1016
+ font-size: 32px;
1017
+ }
1018
+
1019
+ [data-sc-component="empty-message-title"] {
1020
+ color: var(--sc-text);
1021
+ font-weight: 650;
1022
+ }
1023
+
1024
+ [data-sc-component="empty-message-description"] {
1025
+ font-size: 13px;
1026
+ line-height: 1.4;
1027
+ max-width: 38ch;
1028
+ }
1029
+
1030
+ [data-sc-component="empty-message-actions"] {
1031
+ align-items: center;
1032
+ display: inline-flex;
1033
+ gap: 8px;
1034
+ justify-content: center;
1035
+ }
1036
+
1037
+ [data-sc-component="loading-dots"] {
1038
+ align-items: center;
1039
+ display: inline-flex;
1040
+ gap: 3px;
1041
+ }
1042
+
1043
+ [data-sc-component="loading-dots"] span {
1044
+ animation: sc-dot 1s ease-in-out infinite;
1045
+ background: currentColor;
1046
+ border-radius: 999px;
1047
+ height: 4px;
1048
+ opacity: 0.35;
1049
+ width: 4px;
1050
+ }
1051
+
1052
+ [data-sc-component="loading-dots"] span:nth-child(2) {
1053
+ animation-delay: 120ms;
1054
+ }
1055
+
1056
+ [data-sc-component="loading-dots"] span:nth-child(3) {
1057
+ animation-delay: 240ms;
1058
+ }
1059
+
1060
+ [data-sc-component="loading-indicator"],
1061
+ [data-sc-component="circular-progress"] {
1062
+ align-items: center;
1063
+ color: currentColor;
1064
+ display: inline-flex;
1065
+ height: var(--sc-indicator-size, var(--sc-progress-size, 1em));
1066
+ justify-content: center;
1067
+ width: var(--sc-indicator-size, var(--sc-progress-size, 1em));
1068
+ }
1069
+
1070
+ [data-sc-component="loading-indicator"] svg {
1071
+ animation: sc-spin 0.8s linear infinite;
1072
+ height: 100%;
1073
+ opacity: 0.8;
1074
+ width: 100%;
1075
+ }
1076
+
1077
+ [data-sc-component="circular-progress"] svg {
1078
+ height: 100%;
1079
+ width: 100%;
1080
+ }
1081
+
1082
+ [data-sc-component="shimmer-text"] {
1083
+ animation: sc-shimmer 1.3s linear infinite;
1084
+ background: linear-gradient(90deg, currentColor 0%, color-mix(in srgb, currentColor 24%, transparent) 45%, currentColor 90%);
1085
+ -webkit-background-clip: text;
1086
+ background-clip: text;
1087
+ color: transparent;
1088
+ margin: 0;
1089
+ }
1090
+
1091
+ [data-sc-component="text-link"] {
1092
+ border-radius: 3px;
1093
+ color: inherit;
1094
+ font-weight: inherit;
1095
+ text-decoration: none;
1096
+ }
1097
+
1098
+ [data-sc-component="text-link"][data-sc-primary] {
1099
+ color: var(--sc-info);
1100
+ }
1101
+
1102
+ [data-sc-component="text-link"][data-sc-underline] {
1103
+ text-decoration: underline;
1104
+ text-underline-offset: 0.1em;
1105
+ }
1106
+
1107
+ [data-sc-component="surface"] {
1108
+ color: var(--sc-text);
1109
+ }
1110
+
1111
+ [data-sc-component="surface"][data-sc-variant="card"] {
1112
+ background: var(--sc-surface-elevated);
1113
+ border: 1px solid var(--sc-border);
1114
+ border-radius: var(--sc-radius-md);
1115
+ padding: 12px;
1116
+ }
1117
+
1118
+ [data-sc-component="surface"][data-sc-variant="inset"] {
1119
+ background: var(--sc-surface-inset);
1120
+ border-radius: var(--sc-radius-md);
1121
+ padding: 12px;
1122
+ }
1123
+
1124
+ [data-sc-component="stack"] {
1125
+ display: flex;
1126
+ flex-direction: column;
1127
+ }
1128
+
1129
+ [data-sc-component="inline"] {
1130
+ align-items: center;
1131
+ display: flex;
1132
+ }
1133
+
1134
+ [data-sc-component="inline"][data-sc-wrap] {
1135
+ flex-wrap: wrap;
1136
+ }
1137
+
1138
+ [data-sc-component="inline"][data-sc-align="start"] {
1139
+ align-items: flex-start;
1140
+ }
1141
+
1142
+ [data-sc-component="inline"][data-sc-align="end"] {
1143
+ align-items: flex-end;
1144
+ }
1145
+
1146
+ [data-sc-gap="xs"] {
1147
+ gap: 4px;
1148
+ }
1149
+
1150
+ [data-sc-gap="sm"] {
1151
+ gap: 8px;
1152
+ }
1153
+
1154
+ [data-sc-gap="md"] {
1155
+ gap: 12px;
1156
+ }
1157
+
1158
+ [data-sc-gap="lg"] {
1159
+ gap: 16px;
1160
+ }
1161
+
1162
+ [data-sc-component="divider"] {
1163
+ border: 0;
1164
+ border-top: 1px solid var(--sc-border);
1165
+ margin: 8px 0;
1166
+ width: 100%;
1167
+ }
1168
+
1169
+ [data-sc-component="code"] {
1170
+ background: var(--sc-surface-inset);
1171
+ border-radius: var(--sc-radius-sm);
1172
+ color: var(--sc-text);
1173
+ font-family: var(--sc-font-mono);
1174
+ font-size: 0.92em;
1175
+ padding: 1px 4px;
1176
+ }
1177
+
1178
+ [data-sc-component="tabs"] {
1179
+ display: grid;
1180
+ gap: 12px;
1181
+ }
1182
+
1183
+ [data-sc-component="slider"] {
1184
+ accent-color: var(--sc-primary);
1185
+ width: 100%;
1186
+ }
1187
+
1188
+ [data-sc-component="progress"] {
1189
+ accent-color: var(--sc-primary);
1190
+ width: 100%;
1191
+ }
1192
+
1193
+ [data-sc-component="table"] {
1194
+ border-collapse: collapse;
1195
+ color: var(--sc-text);
1196
+ font-size: 13px;
1197
+ width: 100%;
1198
+ }
1199
+
1200
+ [data-sc-component="table"] :is(th, td) {
1201
+ border-bottom: 1px solid var(--sc-border);
1202
+ padding: 8px;
1203
+ text-align: left;
1204
+ vertical-align: top;
1205
+ }
1206
+
1207
+ [data-sc-component="key-value"] {
1208
+ display: grid;
1209
+ gap: 8px;
1210
+ margin: 0;
1211
+ }
1212
+
1213
+ [data-sc-component="key-value-row"] {
1214
+ display: grid;
1215
+ gap: 4px;
1216
+ grid-template-columns: minmax(96px, 0.4fr) 1fr;
1217
+ }
1218
+
1219
+ [data-sc-component="key-value"] dt {
1220
+ color: var(--sc-text-muted);
1221
+ font-size: 12px;
1222
+ }
1223
+
1224
+ [data-sc-component="key-value"] dd {
1225
+ color: var(--sc-text);
1226
+ margin: 0;
1227
+ }
1228
+
1229
+ [data-sc-component="image"] {
1230
+ border-radius: var(--sc-radius-md);
1231
+ display: block;
1232
+ height: auto;
1233
+ max-width: 100%;
1234
+ }
1235
+
1236
+ [data-sc-component="skeleton"] {
1237
+ animation: sc-pulse 1.2s ease-in-out infinite;
1238
+ background: color-mix(in srgb, var(--sc-text-muted) 20%, transparent);
1239
+ border-radius: var(--sc-radius-md);
1240
+ min-height: 16px;
1241
+ }
1242
+
1243
+ @media (max-width: 520px) {
1244
+ :root[data-sidecar-host="claude"],
1245
+ :root [data-sc-recipe="claude"] {
1246
+ --sc-control-height: 40px;
1247
+ }
1248
+ }
1249
+
1250
+ @keyframes sc-spin {
1251
+ to {
1252
+ transform: rotate(360deg);
1253
+ }
1254
+ }
1255
+
1256
+ @keyframes sc-pulse {
1257
+ 50% {
1258
+ opacity: 0.55;
1259
+ }
1260
+ }
1261
+
1262
+ @keyframes sc-dot {
1263
+ 50% {
1264
+ opacity: 1;
1265
+ transform: translateY(-1px);
1266
+ }
1267
+ }
1268
+
1269
+ @keyframes sc-shimmer {
1270
+ to {
1271
+ background-position: 200% center;
1272
+ }
1273
+ }