@compose-market/theme 0.0.91 → 0.0.93

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.
@@ -1,251 +1,448 @@
1
1
 
2
- /* ── Mirror Pane ── */
3
2
  .cm-mirror-pane {
3
+ container-type: inline-size;
4
4
  display: flex;
5
5
  flex-direction: column;
6
- border: 1px solid hsl(var(--primary) / 0.3);
7
- border-radius: 8px;
8
- background: hsl(var(--card));
9
- overflow: hidden;
6
+ min-width: 0;
7
+ min-height: 0;
10
8
  height: 100%;
9
+ overflow: hidden;
10
+ border: 1px solid hsl(var(--primary) / 0.18);
11
+ border-radius: 16px;
12
+ background:
13
+ linear-gradient(145deg, hsl(226 21% 23% / 0.42), hsl(221 50% 9% / 0.34)),
14
+ radial-gradient(circle at 18% 0%, hsl(var(--primary) / 0.09), transparent 34%),
15
+ hsl(224 36% 13% / 0.24);
16
+ box-shadow:
17
+ inset 0 1px 0 hsl(0 0% 100% / 0.06),
18
+ 0 0 34px hsl(var(--primary) / 0.06);
19
+ color: hsl(var(--foreground));
20
+ font-family: var(--font-sans), sans-serif;
21
+ backdrop-filter: blur(16px) saturate(1.12);
11
22
  }
12
23
 
13
- /* Toolbar (icon tabs) */
14
24
  .cm-mirror-pane__toolbar {
15
- flex-shrink: 0;
25
+ flex: 0 0 auto;
16
26
  display: flex;
17
27
  align-items: center;
18
- gap: 4px;
19
- padding: 8px;
20
- border-bottom: 1px solid hsl(var(--sidebar-border));
21
- background: hsl(var(--background) / 0.3);
28
+ gap: 0.35rem;
29
+ padding: 0.45rem;
30
+ border-bottom: 1px solid hsl(var(--primary) / 0.1);
31
+ background: hsl(221 50% 9% / 0.28);
22
32
  }
23
33
 
24
34
  .cm-mirror-pane__toolbar-btn {
25
- padding: 8px;
26
- border-radius: 6px;
27
- border: none;
28
- background: transparent;
29
- color: hsl(var(--muted-foreground));
30
- cursor: pointer;
31
- transition: color 0.15s ease, background 0.15s ease;
32
35
  display: inline-flex;
33
36
  align-items: center;
34
37
  justify-content: center;
38
+ gap: 0.4rem;
39
+ min-width: 2.2rem;
40
+ min-height: 2.2rem;
41
+ padding: 0 0.62rem;
42
+ border: 1px solid transparent;
43
+ border-radius: 999px;
44
+ background: transparent;
45
+ color: hsl(var(--muted-foreground));
46
+ cursor: pointer;
47
+ font-family: var(--font-mono), monospace;
48
+ font-size: 0.68rem;
49
+ letter-spacing: 0.08em;
50
+ text-transform: uppercase;
51
+ transition:
52
+ transform 160ms ease,
53
+ border-color 180ms ease,
54
+ background-color 180ms ease,
55
+ color 180ms ease,
56
+ box-shadow 180ms ease;
35
57
  }
36
58
 
37
- .cm-mirror-pane__toolbar-btn:hover {
59
+ .cm-mirror-pane__toolbar-btn:hover,
60
+ .cm-mirror-pane__toolbar-btn:focus-visible {
61
+ outline: none;
38
62
  color: hsl(var(--foreground));
39
- background: hsl(var(--muted));
63
+ border-color: hsl(var(--primary) / 0.2);
64
+ background: hsl(var(--primary) / 0.08);
40
65
  }
41
66
 
42
67
  .cm-mirror-pane__toolbar-btn--active-cyan {
43
- background: hsl(var(--primary) / 0.2);
68
+ border-color: hsl(var(--primary) / 0.36);
69
+ background: hsl(var(--primary) / 0.12);
44
70
  color: hsl(var(--primary));
71
+ box-shadow: 0 0 18px hsl(var(--primary) / 0.12);
45
72
  }
46
73
 
47
74
  .cm-mirror-pane__toolbar-btn--active-fuchsia {
48
- background: hsl(var(--accent) / 0.2);
75
+ border-color: hsl(var(--accent) / 0.34);
76
+ background: hsl(var(--accent) / 0.11);
49
77
  color: hsl(var(--accent));
78
+ box-shadow: 0 0 18px hsl(var(--accent) / 0.1);
79
+ }
80
+
81
+ .cm-mirror-pane__toolbar-btn svg {
82
+ width: 1rem;
83
+ height: 1rem;
84
+ }
85
+
86
+ .cm-mirror-pane__toolbar-label {
87
+ display: none;
88
+ }
89
+
90
+ @container (min-width: 24rem) {
91
+ .cm-mirror-pane__toolbar-label {
92
+ display: inline;
93
+ }
50
94
  }
51
95
 
52
- /* Body */
53
96
  .cm-mirror-pane__body {
54
- padding: 12px;
97
+ flex: 1;
98
+ min-height: 0;
55
99
  display: flex;
56
100
  flex-direction: column;
57
- gap: 16px;
101
+ gap: clamp(0.75rem, 3cqi, 1rem);
102
+ overflow: auto;
103
+ padding: clamp(0.75rem, 3cqi, 1rem);
104
+ }
105
+
106
+ .cm-mirror-pane__footer {
107
+ flex: 0 0 auto;
108
+ border-top: 1px solid hsl(var(--primary) / 0.1);
109
+ padding: 0.75rem 1rem;
110
+ }
111
+
112
+ .cm-mirror-pane__empty {
58
113
  flex: 1;
59
- overflow-y: auto;
114
+ min-height: 14rem;
115
+ display: grid;
116
+ place-items: center;
117
+ align-content: center;
118
+ gap: 0.75rem;
119
+ padding: 1.5rem;
120
+ text-align: center;
60
121
  }
61
122
 
62
- @media (min-width: 640px) {
63
- .cm-mirror-pane__body {
64
- padding: 16px;
65
- }
123
+ .cm-mirror-pane__empty-icon {
124
+ display: inline-flex;
125
+ color: hsl(var(--primary));
126
+ opacity: 0.72;
66
127
  }
67
128
 
68
- @media (min-width: 768px) {
69
- .cm-mirror-pane__body {
70
- padding: 20px;
71
- }
129
+ .cm-mirror-pane__empty-icon svg {
130
+ width: 2.5rem;
131
+ height: 2.5rem;
132
+ }
133
+
134
+ .cm-mirror-pane__empty-text {
135
+ max-width: 18rem;
136
+ color: hsl(var(--muted-foreground));
137
+ line-height: 1.45;
72
138
  }
73
139
 
74
- /* Model identity */
75
140
  .cm-mirror-pane__model-header {
76
141
  display: flex;
77
142
  align-items: flex-start;
78
- gap: 12px;
143
+ gap: 0.75rem;
144
+ min-width: 0;
79
145
  }
80
146
 
81
147
  .cm-mirror-pane__model-icon-box {
82
- padding: 8px;
83
- background: hsl(var(--primary) / 0.1);
84
- border: 1px solid hsl(var(--primary) / 0.3);
85
- border-radius: 8px;
86
- flex-shrink: 0;
148
+ display: grid;
149
+ width: 2.65rem;
150
+ height: 2.65rem;
151
+ place-items: center;
152
+ flex: 0 0 auto;
153
+ border: 1px solid hsl(var(--primary) / 0.24);
154
+ border-radius: 12px;
155
+ background: hsl(var(--primary) / 0.09);
156
+ color: hsl(var(--primary));
157
+ box-shadow: inset 0 0 18px hsl(var(--primary) / 0.08);
158
+ }
159
+
160
+ .cm-mirror-pane__model-icon-box svg {
161
+ width: 1.2rem;
162
+ height: 1.2rem;
87
163
  }
88
164
 
89
165
  .cm-mirror-pane__model-copy {
90
- min-width: 0;
91
166
  flex: 1;
167
+ min-width: 0;
168
+ display: grid;
169
+ gap: 0.25rem;
170
+ }
171
+
172
+ .cm-mirror-pane__model-name-row {
173
+ display: flex;
174
+ align-items: center;
175
+ gap: 0.5rem;
176
+ min-width: 0;
177
+ flex-wrap: wrap;
92
178
  }
93
179
 
94
180
  .cm-mirror-pane__model-name {
95
- font-weight: 600;
181
+ min-width: 0;
182
+ margin: 0;
96
183
  color: hsl(var(--foreground));
97
- white-space: nowrap;
98
- overflow: hidden;
99
- text-overflow: ellipsis;
100
- font-size: 14px;
184
+ font-family: var(--font-display), sans-serif;
185
+ font-size: clamp(0.98rem, 4cqi, 1.14rem);
186
+ font-weight: 800;
187
+ line-height: 1.08;
188
+ overflow-wrap: anywhere;
101
189
  }
102
190
 
103
- @media (min-width: 768px) {
104
- .cm-mirror-pane__model-name {
105
- font-size: 16px;
106
- }
191
+ .cm-mirror-pane__model-types {
192
+ display: inline-flex;
193
+ align-items: center;
194
+ gap: 0.3rem;
195
+ flex-wrap: wrap;
107
196
  }
108
197
 
109
- .cm-mirror-pane__model-provider {
110
- font-size: 12px;
198
+ .cm-mirror-pane__badge {
199
+ display: inline-flex;
200
+ align-items: center;
201
+ min-height: 1.35rem;
202
+ border: 1px solid hsl(var(--primary) / 0.18);
203
+ border-radius: 999px;
204
+ background: hsl(var(--primary) / 0.08);
205
+ color: hsl(var(--primary));
206
+ padding: 0 0.45rem;
207
+ font-family: var(--font-mono), monospace;
208
+ font-size: 0.6rem;
209
+ font-weight: 700;
210
+ letter-spacing: 0.06em;
211
+ text-transform: uppercase;
212
+ }
213
+
214
+ .cm-mirror-pane__badge[data-tone="fuchsia"] {
215
+ border-color: hsl(var(--accent) / 0.24);
216
+ background: hsl(var(--accent) / 0.1);
217
+ color: hsl(var(--accent));
218
+ }
219
+
220
+ .cm-mirror-pane__badge[data-tone="green"] {
221
+ border-color: hsl(142 71% 45% / 0.28);
222
+ background: hsl(142 71% 45% / 0.1);
223
+ color: hsl(142 71% 55%);
224
+ }
225
+
226
+ .cm-mirror-pane__badge[data-tone="warning"] {
227
+ border-color: hsl(42 100% 48% / 0.28);
228
+ background: hsl(42 100% 48% / 0.1);
229
+ color: hsl(42 100% 58%);
230
+ }
231
+
232
+ .cm-mirror-pane__badge[data-tone="danger"] {
233
+ border-color: hsl(var(--destructive) / 0.3);
234
+ background: hsl(var(--destructive) / 0.12);
235
+ color: hsl(var(--destructive));
236
+ }
237
+
238
+ .cm-mirror-pane__model-provider,
239
+ .cm-mirror-pane__model-id {
240
+ margin: 0;
111
241
  color: hsl(var(--muted-foreground));
112
- white-space: nowrap;
113
- overflow: hidden;
114
- text-overflow: ellipsis;
242
+ font-family: var(--font-mono), monospace;
243
+ font-size: 0.72rem;
244
+ line-height: 1.35;
245
+ overflow-wrap: anywhere;
246
+ }
247
+
248
+ .cm-mirror-pane__model-id {
249
+ color: hsl(var(--primary) / 0.72);
250
+ }
251
+
252
+ .cm-mirror-pane__description,
253
+ .cm-mirror-pane__description--clamped,
254
+ .cm-mirror-pane__section,
255
+ .cm-mirror-pane__pricing-compact,
256
+ .cm-mirror-pane__pricing-block,
257
+ .cm-mirror-pane__tool-group,
258
+ .cm-mirror-pane__no-params,
259
+ .cm-mirror-pane__text-area,
260
+ .cm-mirror-pane__field {
261
+ border: 1px solid hsl(var(--primary) / 0.12);
262
+ border-radius: 12px;
263
+ background: hsl(221 50% 9% / 0.3);
264
+ }
265
+
266
+ .cm-mirror-pane__description,
267
+ .cm-mirror-pane__description--clamped {
268
+ padding: 0.75rem;
269
+ color: hsl(var(--muted-foreground));
270
+ line-height: 1.5;
115
271
  }
116
272
 
117
- /* Section panel */
118
273
  .cm-mirror-pane__section {
119
- border-radius: 2px;
120
- border: 1px solid hsl(var(--sidebar-border));
121
- background: hsl(var(--background) / 0.3);
122
- padding: 12px;
123
274
  display: flex;
124
275
  flex-direction: column;
125
- gap: 12px;
276
+ gap: 0.6rem;
277
+ min-width: 0;
126
278
  }
127
279
 
128
- .cm-mirror-pane__section-label {
129
- font-size: 11px;
130
- text-transform: uppercase;
131
- letter-spacing: 0.06em;
280
+ .cm-mirror-pane__section--compact {
281
+ padding: 0.75rem;
282
+ }
283
+
284
+ .cm-mirror-pane__section-label,
285
+ .cm-mirror-pane__tool-group-label {
132
286
  color: hsl(var(--muted-foreground));
287
+ font-family: var(--font-mono), monospace;
288
+ font-size: 0.68rem;
289
+ font-weight: 800;
290
+ letter-spacing: 0.1em;
291
+ text-transform: uppercase;
133
292
  }
134
293
 
135
- /* Key-value rows */
136
- .cm-mirror-pane__kv-row {
294
+ .cm-mirror-pane__io-row,
295
+ .cm-mirror-pane__kv-row,
296
+ .cm-mirror-pane__pricing-header,
297
+ .cm-mirror-pane__tool-toggle {
137
298
  display: flex;
138
299
  align-items: center;
139
300
  justify-content: space-between;
140
- gap: 12px;
141
- font-family: var(--font-mono, monospace);
301
+ gap: 0.75rem;
302
+ min-width: 0;
142
303
  }
143
304
 
305
+ .cm-mirror-pane__io-row {
306
+ align-items: flex-start;
307
+ }
308
+
309
+ .cm-mirror-pane__io-label,
144
310
  .cm-mirror-pane__kv-label {
311
+ flex: 0 0 auto;
145
312
  color: hsl(var(--muted-foreground));
313
+ font-family: var(--font-mono), monospace;
314
+ font-size: 0.7rem;
315
+ }
316
+
317
+ .cm-mirror-pane__io-badges,
318
+ .cm-mirror-pane__kv-grid,
319
+ .cm-mirror-pane__pricing-entries,
320
+ .cm-mirror-pane__custom-content,
321
+ .cm-mirror-pane__custom-section {
322
+ display: flex;
323
+ flex-direction: column;
324
+ gap: 0.45rem;
325
+ min-width: 0;
326
+ }
327
+
328
+ .cm-mirror-pane__io-badges {
329
+ flex-direction: row;
330
+ flex-wrap: wrap;
146
331
  }
147
332
 
148
333
  .cm-mirror-pane__kv-value {
334
+ min-width: 0;
149
335
  color: hsl(var(--foreground));
336
+ font-family: var(--font-mono), monospace;
337
+ font-size: 0.74rem;
150
338
  text-align: right;
339
+ overflow-wrap: anywhere;
151
340
  }
152
341
 
153
- /* Pricing sub-panel */
154
- .cm-mirror-pane__pricing-block {
155
- border-radius: 2px;
156
- border: 1px solid hsl(var(--sidebar-border));
157
- background: hsl(var(--background) / 0.4);
158
- padding: 8px;
342
+ .cm-mirror-pane__pricing-compact,
343
+ .cm-mirror-pane__pricing-block,
344
+ .cm-mirror-pane__tool-group {
159
345
  display: flex;
160
346
  flex-direction: column;
161
- gap: 6px;
347
+ gap: 0.45rem;
348
+ padding: 0.62rem 0.7rem;
162
349
  }
163
350
 
164
- .cm-mirror-pane__pricing-header {
165
- display: flex;
166
- align-items: center;
167
- justify-content: space-between;
168
- gap: 12px;
351
+ .cm-mirror-pane__pricing-unit {
352
+ color: hsl(var(--muted-foreground) / 0.72);
353
+ font-family: var(--font-mono), monospace;
354
+ font-size: 0.64rem;
355
+ letter-spacing: 0.08em;
356
+ text-transform: uppercase;
169
357
  }
170
358
 
171
359
  .cm-mirror-pane__pricing-name {
172
- font-family: var(--font-mono, monospace);
173
- color: hsl(var(--primary));
174
- }
175
-
176
- /* Description block */
177
- .cm-mirror-pane__description {
178
- border-radius: 2px;
179
- border: 1px solid hsl(var(--sidebar-border));
180
- background: hsl(var(--background) / 0.3);
181
- padding: 12px;
182
- color: hsl(var(--muted-foreground));
183
- line-height: 1.6;
360
+ color: hsl(var(--accent));
361
+ font-family: var(--font-mono), monospace;
362
+ font-weight: 700;
184
363
  }
185
364
 
186
- /* Settings: tool group */
187
365
  .cm-mirror-pane__tool-group {
188
- border-radius: 2px;
189
- border: 1px solid hsl(var(--primary) / 0.2);
366
+ border-color: hsl(var(--primary) / 0.18);
190
367
  background: hsl(var(--primary) / 0.05);
191
- padding: 12px;
192
- display: flex;
193
- flex-direction: column;
194
- gap: 12px;
195
368
  }
196
369
 
197
370
  .cm-mirror-pane__tool-group--fuchsia {
198
- border-color: hsl(var(--accent) / 0.2);
371
+ border-color: hsl(var(--accent) / 0.18);
199
372
  background: hsl(var(--accent) / 0.05);
200
373
  }
201
374
 
202
- .cm-mirror-pane__tool-group-label {
203
- font-size: 12px;
204
- font-family: var(--font-mono, monospace);
205
- }
206
-
207
- .cm-mirror-pane__tool-toggle {
208
- display: flex;
375
+ .cm-mirror-pane__tool-toggle-label {
376
+ display: inline-flex;
209
377
  align-items: center;
210
- justify-content: space-between;
378
+ gap: 0.42rem;
379
+ min-width: 0;
380
+ color: hsl(var(--foreground));
211
381
  }
212
382
 
213
- .cm-mirror-pane__tool-toggle-label {
214
- display: flex;
215
- align-items: center;
216
- gap: 8px;
217
- font-size: 14px;
383
+ .cm-mirror-pane__tool-toggle-label svg,
384
+ .cm-mirror-pane__tool-toggle-label-icon {
385
+ width: 1rem;
386
+ height: 1rem;
387
+ flex: 0 0 auto;
218
388
  }
219
389
 
220
- /* Empty state */
221
- .cm-mirror-pane__empty {
222
- padding: 16px 20px;
223
- display: flex;
224
- flex-direction: column;
225
- align-items: center;
226
- justify-content: center;
227
- flex: 1;
228
- text-align: center;
390
+ .cm-mirror-pane__text-area {
391
+ width: 100%;
392
+ min-height: 7rem;
393
+ padding: 0.72rem;
394
+ color: hsl(var(--foreground));
395
+ font-family: var(--font-mono), monospace;
396
+ font-size: 0.78rem;
397
+ resize: vertical;
229
398
  }
230
399
 
231
- .cm-mirror-pane__empty-icon {
232
- width: 40px;
233
- height: 40px;
234
- color: hsl(var(--muted-foreground) / 0.4);
235
- margin-bottom: 12px;
400
+ .cm-mirror-pane__field {
401
+ width: 100%;
402
+ min-height: 2.45rem;
403
+ color: hsl(var(--foreground));
404
+ font-family: var(--font-mono), monospace;
405
+ font-size: 0.78rem;
236
406
  }
237
407
 
238
- .cm-mirror-pane__empty-text {
239
- font-size: 14px;
240
- color: hsl(var(--muted-foreground) / 0.7);
408
+ .cm-mirror-pane__field:focus,
409
+ .cm-mirror-pane__field:focus-visible,
410
+ .cm-mirror-pane__text-area:focus,
411
+ .cm-mirror-pane__text-area:focus-visible {
412
+ outline: none;
413
+ border-color: hsl(var(--primary) / 0.5);
414
+ box-shadow: 0 0 0 1px hsl(var(--primary) / 0.16);
241
415
  }
242
416
 
243
- /* No-params state */
417
+ .cm-mirror-pane__param-description,
244
418
  .cm-mirror-pane__no-params {
245
- border-radius: 2px;
246
- border: 1px solid hsl(var(--sidebar-border));
247
- background: hsl(var(--background) / 0.3);
248
- padding: 16px;
249
- font-size: 14px;
250
419
  color: hsl(var(--muted-foreground));
420
+ font-size: 0.78rem;
421
+ line-height: 1.4;
422
+ }
423
+
424
+ .cm-mirror-pane__no-params {
425
+ padding: 1rem;
426
+ text-align: center;
427
+ }
428
+
429
+ @container (max-width: 22rem) {
430
+ .cm-mirror-pane__io-row,
431
+ .cm-mirror-pane__kv-row,
432
+ .cm-mirror-pane__pricing-header,
433
+ .cm-mirror-pane__tool-toggle {
434
+ align-items: flex-start;
435
+ flex-direction: column;
436
+ gap: 0.35rem;
437
+ }
438
+
439
+ .cm-mirror-pane__kv-value {
440
+ text-align: left;
441
+ }
442
+ }
443
+
444
+ @media (prefers-reduced-motion: reduce) {
445
+ .cm-mirror-pane__toolbar-btn {
446
+ transition-duration: 0.01ms !important;
447
+ }
251
448
  }
@@ -13,6 +13,22 @@
13
13
  color: hsl(var(--primary));
14
14
  }
15
15
 
16
+ .cm-app-chrome__hud .cm-session-menu,
17
+ .cm-app-chrome__hud-popover .cm-session-menu {
18
+ min-width: 0;
19
+ }
20
+
21
+ .cm-app-chrome__hud .cm-session-trigger,
22
+ .cm-app-chrome__hud-popover .cm-session-trigger {
23
+ width: auto;
24
+ min-width: var(--cm-hud-size, 2.75rem);
25
+ min-height: var(--cm-hud-size, 2.75rem);
26
+ height: var(--cm-hud-size, 2.75rem);
27
+ padding-inline: clamp(0.72rem, 1.4vw, 0.92rem);
28
+ border-radius: 999px;
29
+ white-space: nowrap;
30
+ }
31
+
16
32
  .cm-session-trigger--active {
17
33
  background: hsl(var(--primary) / 0.12);
18
34
  }
@@ -30,6 +46,13 @@
30
46
  overflow: hidden;
31
47
  }
32
48
 
49
+ .cm-app-chrome__hud .cm-session-menu__dropdown,
50
+ .cm-app-chrome__hud-popover .cm-session-menu__dropdown {
51
+ z-index: 95;
52
+ border-radius: 18px;
53
+ width: min(17rem, calc(100vw - 1.5rem));
54
+ }
55
+
33
56
  .cm-session-menu__header {
34
57
  display: grid;
35
58
  gap: 0.35rem;
@@ -240,6 +263,33 @@
240
263
  font-size: 0.86rem;
241
264
  }
242
265
 
266
+ @media (max-width: 820px) {
267
+ .cm-app-chrome__hud .cm-session-trigger span:not(.cm-session-trigger__mobile) {
268
+ display: none;
269
+ }
270
+
271
+ .cm-app-chrome__hud .cm-session-trigger__mobile {
272
+ display: inline-flex;
273
+ }
274
+
275
+ .cm-app-chrome__hud .cm-session-trigger {
276
+ width: auto;
277
+ min-width: var(--cm-hud-size, 2.75rem);
278
+ padding-inline: 0.72rem;
279
+ }
280
+ }
281
+
282
+ @media (max-width: 380px) {
283
+ .cm-app-chrome__hud .cm-session-trigger {
284
+ width: var(--cm-hud-size, 2.75rem);
285
+ padding-inline: 0;
286
+ }
287
+
288
+ .cm-app-chrome__hud .cm-session-trigger__mobile {
289
+ display: none;
290
+ }
291
+ }
292
+
243
293
  .cm-session-key-list {
244
294
  display: grid;
245
295
  gap: 0.75rem;