@compose-market/theme 0.0.90 → 0.0.92
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.
- package/dist/agents/index.d.ts +2 -2
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/styles.d.ts +1 -1
- package/dist/agents/styles.d.ts.map +1 -1
- package/dist/agents/styles.js +168 -5
- package/dist/agents/styles.js.map +1 -1
- package/dist/app/index.d.ts +1 -1
- package/dist/app/index.d.ts.map +1 -1
- package/dist/app/styles.d.ts +1 -1
- package/dist/app/styles.d.ts.map +1 -1
- package/dist/app/styles.js +64 -4
- package/dist/app/styles.js.map +1 -1
- package/dist/css/agents.css +168 -5
- package/dist/css/app.css +64 -4
- package/dist/css/dark.css +18 -18
- package/dist/css/effects.css +293 -30
- package/dist/css/mirror.css +335 -138
- package/dist/css/session.css +28 -0
- package/dist/css/shell.css +1118 -32
- package/dist/css/tokens.css +1 -1
- package/dist/css/utilities.css +289 -6
- package/dist/effects/styles.d.ts +3 -3
- package/dist/effects/styles.d.ts.map +1 -1
- package/dist/effects/styles.js +295 -32
- package/dist/effects/styles.js.map +1 -1
- package/dist/mirror/index.d.ts +39 -6
- package/dist/mirror/index.d.ts.map +1 -1
- package/dist/mirror/index.js +18 -6
- package/dist/mirror/index.js.map +1 -1
- package/dist/mirror/styles.d.ts +2 -2
- package/dist/mirror/styles.d.ts.map +1 -1
- package/dist/mirror/styles.js +336 -139
- package/dist/mirror/styles.js.map +1 -1
- package/dist/session/index.d.ts +16 -4
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/index.js +31 -2
- package/dist/session/index.js.map +1 -1
- package/dist/session/styles.d.ts +1 -1
- package/dist/session/styles.d.ts.map +1 -1
- package/dist/session/styles.js +28 -0
- package/dist/session/styles.js.map +1 -1
- package/dist/shell/index.d.ts +40 -19
- package/dist/shell/index.d.ts.map +1 -1
- package/dist/shell/index.js +20 -0
- package/dist/shell/index.js.map +1 -1
- package/dist/shell/styles.d.ts +1 -1
- package/dist/shell/styles.d.ts.map +1 -1
- package/dist/shell/styles.js +1118 -32
- package/dist/shell/styles.js.map +1 -1
- package/dist/themes/dark.js +25 -25
- package/dist/themes/dark.js.map +1 -1
- package/dist/tokens/typography.d.ts +1 -1
- package/dist/tokens/typography.js +2 -2
- package/dist/tokens/typography.js.map +1 -1
- package/dist/utilities/styles.d.ts +2 -2
- package/dist/utilities/styles.d.ts.map +1 -1
- package/dist/utilities/styles.js +290 -7
- package/dist/utilities/styles.js.map +1 -1
- package/dist/workflows/index.d.ts +4 -4
- package/dist/workflows/index.d.ts.map +1 -1
- package/package.json +11 -10
package/dist/effects/styles.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Bioluminescent visual effects - Compose.Market Design System
|
|
3
3
|
*
|
|
4
|
-
* Shared effects used across web and
|
|
4
|
+
* Shared effects used across web/ and mesh/ apps.
|
|
5
5
|
* Generated from @compose-market/theme.
|
|
6
6
|
*/
|
|
7
7
|
export const effectsCss = `/**
|
|
@@ -11,24 +11,78 @@ export const effectsCss = `/**
|
|
|
11
11
|
* DO NOT EDIT – generated from the theme package.
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
+
:root {
|
|
15
|
+
--cm-bg: #0c1324;
|
|
16
|
+
--cm-bg-deep: #020607;
|
|
17
|
+
--cm-surface: hsl(var(--card) / 0.42);
|
|
18
|
+
--cm-surface-high: hsl(var(--card) / 0.64);
|
|
19
|
+
--cm-cyan: #22d3ee;
|
|
20
|
+
--cm-cyan-hot: #00e5ff;
|
|
21
|
+
--cm-fuchsia: #ae05c6;
|
|
22
|
+
--cm-fuchsia-hot: #fbabff;
|
|
23
|
+
--cm-text: #dce1fb;
|
|
24
|
+
--cm-muted: hsl(var(--muted-foreground) / 0.72);
|
|
25
|
+
--cm-line: hsl(var(--primary) / 0.22);
|
|
26
|
+
--cm-purple-line: hsl(var(--accent) / 0.24);
|
|
27
|
+
--cm-radius: 12px;
|
|
28
|
+
--cm-font-display: var(--font-display), Orbitron, Rajdhani, Inter, ui-sans-serif, system-ui, sans-serif;
|
|
29
|
+
--cm-font-sans: var(--font-sans), Manrope, Rajdhani, Inter, ui-sans-serif, system-ui, sans-serif;
|
|
30
|
+
--cm-font-mono: var(--font-mono), "Fira Code", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
|
|
31
|
+
--cm-glow-cyan: 0 0 18px hsl(var(--primary) / 0.32), 0 0 42px hsl(194 100% 42% / 0.16);
|
|
32
|
+
--cm-glow-fuchsia: 0 0 16px hsl(var(--accent) / 0.32), 0 0 36px hsl(292 85% 38% / 0.18);
|
|
33
|
+
--cm-glow-soft: 0 0 28px hsl(var(--primary) / 0.08);
|
|
34
|
+
}
|
|
35
|
+
|
|
14
36
|
/* Glass Panel */
|
|
15
|
-
.glass-panel
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
37
|
+
.glass-panel,
|
|
38
|
+
.cm-glass {
|
|
39
|
+
position: relative;
|
|
40
|
+
overflow: hidden;
|
|
41
|
+
border: 1px solid hsl(var(--primary) / 0.18);
|
|
42
|
+
border-radius: var(--cm-radius);
|
|
43
|
+
background:
|
|
44
|
+
linear-gradient(145deg, hsl(226 21% 23% / 0.38), hsl(221 50% 9% / 0.24)),
|
|
45
|
+
radial-gradient(circle at 18% 0%, hsl(var(--primary) / 0.13), transparent 34%),
|
|
46
|
+
hsl(224 36% 13% / 0.28);
|
|
19
47
|
box-shadow:
|
|
20
|
-
0
|
|
21
|
-
inset 0 1px 0 hsl(
|
|
48
|
+
inset 0 1px 0 hsl(0 0% 100% / 0.07),
|
|
49
|
+
inset 0 -1px 0 hsl(var(--primary) / 0.08),
|
|
50
|
+
0 0 40px hsl(var(--primary) / 0.055);
|
|
51
|
+
backdrop-filter: blur(18px) saturate(1.16);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.glass-panel::before,
|
|
55
|
+
.cm-glass::before {
|
|
56
|
+
content: "";
|
|
57
|
+
position: absolute;
|
|
58
|
+
inset: 0;
|
|
59
|
+
pointer-events: none;
|
|
60
|
+
background:
|
|
61
|
+
linear-gradient(120deg, hsl(0 0% 100% / 0.12), transparent 18%),
|
|
62
|
+
radial-gradient(circle at 18% 12%, hsl(var(--primary) / 0.15), transparent 34%),
|
|
63
|
+
radial-gradient(circle at 100% 100%, hsl(var(--accent) / 0.16), transparent 38%);
|
|
64
|
+
opacity: 0.44;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.glass-panel > *,
|
|
68
|
+
.cm-glass > * {
|
|
69
|
+
position: relative;
|
|
70
|
+
z-index: 1;
|
|
22
71
|
}
|
|
23
72
|
|
|
24
73
|
/* Neon Effects */
|
|
25
74
|
.neon-border {
|
|
26
|
-
|
|
27
|
-
|
|
75
|
+
border-color: hsl(var(--primary) / 0.42);
|
|
76
|
+
box-shadow:
|
|
77
|
+
inset 0 0 0 1px hsl(0 0% 100% / 0.025),
|
|
78
|
+
0 0 10px -2px hsl(var(--primary) / 0.5),
|
|
79
|
+
0 0 34px hsl(var(--primary) / 0.08);
|
|
28
80
|
}
|
|
29
81
|
|
|
30
82
|
.neon-text {
|
|
31
|
-
text-shadow:
|
|
83
|
+
text-shadow:
|
|
84
|
+
0 0 10px hsl(var(--primary) / 0.58),
|
|
85
|
+
0 0 24px hsl(var(--accent) / 0.16);
|
|
32
86
|
}
|
|
33
87
|
|
|
34
88
|
.neon-glow {
|
|
@@ -37,40 +91,235 @@ export const effectsCss = `/**
|
|
|
37
91
|
|
|
38
92
|
@keyframes neon-pulse {
|
|
39
93
|
from {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
0 0
|
|
94
|
+
opacity: 0.84;
|
|
95
|
+
box-shadow:
|
|
96
|
+
0 0 5px hsl(var(--primary) / 0.42),
|
|
97
|
+
0 0 10px hsl(var(--primary) / 0.22),
|
|
98
|
+
0 0 15px hsl(var(--primary) / 0.08);
|
|
43
99
|
}
|
|
44
100
|
to {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
0 0
|
|
101
|
+
opacity: 1;
|
|
102
|
+
box-shadow:
|
|
103
|
+
0 0 10px hsl(var(--primary) / 0.56),
|
|
104
|
+
0 0 20px hsl(var(--primary) / 0.32),
|
|
105
|
+
0 0 30px hsl(var(--accent) / 0.14);
|
|
48
106
|
}
|
|
49
107
|
}
|
|
50
108
|
|
|
51
109
|
/* Background Grid Pattern */
|
|
52
|
-
.bg-grid-pattern
|
|
53
|
-
|
|
54
|
-
background-
|
|
55
|
-
|
|
110
|
+
.bg-grid-pattern,
|
|
111
|
+
.cm-grid {
|
|
112
|
+
background-size: 44px 44px;
|
|
113
|
+
background-image:
|
|
114
|
+
linear-gradient(to right, hsl(var(--primary) / 0.055) 1px, transparent 1px),
|
|
115
|
+
linear-gradient(to bottom, hsl(var(--primary) / 0.045) 1px, transparent 1px),
|
|
116
|
+
radial-gradient(circle at 50% 0%, hsl(var(--primary) / 0.1), transparent 34rem);
|
|
56
117
|
}
|
|
57
118
|
|
|
58
119
|
/* Scanline Animation */
|
|
59
120
|
.scanline {
|
|
121
|
+
position: absolute;
|
|
122
|
+
inset-inline: 0;
|
|
123
|
+
top: -100px;
|
|
60
124
|
width: 100%;
|
|
61
125
|
height: 100px;
|
|
62
126
|
z-index: 50;
|
|
63
|
-
background: linear-gradient(0deg, rgba(0, 0, 0, 0) 0%, hsl(188 95% 43% / 0.05) 50%, rgba(0, 0, 0, 0) 100%);
|
|
64
|
-
opacity: 0.1;
|
|
65
|
-
position: absolute;
|
|
66
|
-
bottom: 100%;
|
|
67
|
-
animation: scanline 8s linear infinite;
|
|
68
127
|
pointer-events: none;
|
|
128
|
+
background: linear-gradient(0deg, transparent 0%, hsl(var(--primary) / 0.06) 50%, transparent 100%);
|
|
129
|
+
opacity: 0.16;
|
|
130
|
+
animation: scanline 8s linear infinite;
|
|
131
|
+
will-change: transform;
|
|
69
132
|
}
|
|
70
133
|
|
|
71
134
|
@keyframes scanline {
|
|
72
|
-
0% {
|
|
73
|
-
100% {
|
|
135
|
+
0% { transform: translateY(-100px); }
|
|
136
|
+
100% { transform: translateY(calc(100vh + 100px)); }
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
@keyframes cm-biopulse {
|
|
140
|
+
0%, 100% {
|
|
141
|
+
opacity: 0.96;
|
|
142
|
+
box-shadow:
|
|
143
|
+
inset 0 0 26px hsl(var(--primary) / 0.04),
|
|
144
|
+
0 0 10px hsl(var(--primary) / 0.06);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
50% {
|
|
148
|
+
opacity: 1;
|
|
149
|
+
box-shadow:
|
|
150
|
+
inset 0 0 30px hsl(var(--primary) / 0.08),
|
|
151
|
+
0 0 18px hsl(var(--primary) / 0.14);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.cm-cell {
|
|
156
|
+
container-type: inline-size;
|
|
157
|
+
animation: cm-biopulse 2s ease-in-out infinite;
|
|
158
|
+
transition:
|
|
159
|
+
transform 180ms ease,
|
|
160
|
+
border-color 180ms ease,
|
|
161
|
+
box-shadow 180ms ease,
|
|
162
|
+
background-color 180ms ease,
|
|
163
|
+
color 180ms ease;
|
|
164
|
+
will-change: transform;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.cm-cell:hover,
|
|
168
|
+
.cm-cell:focus-within,
|
|
169
|
+
.cm-cell[data-state="active"] {
|
|
170
|
+
transform: translateY(-1px);
|
|
171
|
+
border-color: hsl(var(--primary) / 0.78);
|
|
172
|
+
box-shadow:
|
|
173
|
+
inset 0 0 30px hsl(var(--primary) / 0.08),
|
|
174
|
+
0 0 18px hsl(var(--primary) / 0.34),
|
|
175
|
+
0 0 38px hsl(194 100% 42% / 0.16);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.cm-cell[data-tone="purple"],
|
|
179
|
+
.cm-cell[data-tone="violet"] {
|
|
180
|
+
border-color: hsl(var(--accent) / 0.46);
|
|
181
|
+
box-shadow:
|
|
182
|
+
inset 0 0 26px hsl(var(--accent) / 0.1),
|
|
183
|
+
0 0 10px hsl(var(--accent) / 0.34);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.cm-kicker {
|
|
187
|
+
margin: 0;
|
|
188
|
+
color: var(--cm-cyan-hot);
|
|
189
|
+
font-family: var(--cm-font-mono);
|
|
190
|
+
font-size: clamp(0.62rem, 1vw, 0.82rem);
|
|
191
|
+
font-weight: 800;
|
|
192
|
+
letter-spacing: 0;
|
|
193
|
+
line-height: 1.2;
|
|
194
|
+
text-transform: uppercase;
|
|
195
|
+
text-shadow: var(--cm-glow-cyan);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.cm-display {
|
|
199
|
+
margin: 0;
|
|
200
|
+
color: var(--cm-text);
|
|
201
|
+
font-family: var(--cm-font-display);
|
|
202
|
+
font-weight: 950;
|
|
203
|
+
letter-spacing: 0;
|
|
204
|
+
line-height: 0.9;
|
|
205
|
+
text-transform: uppercase;
|
|
206
|
+
text-shadow:
|
|
207
|
+
0 0 12px hsl(0 0% 100% / 0.34),
|
|
208
|
+
0 0 26px hsl(var(--primary) / 0.3);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
.cm-display em {
|
|
212
|
+
color: var(--cm-cyan-hot);
|
|
213
|
+
font-style: normal;
|
|
214
|
+
text-shadow:
|
|
215
|
+
0 0 12px hsl(var(--primary) / 0.82),
|
|
216
|
+
0 0 34px hsl(var(--primary) / 0.52),
|
|
217
|
+
0 0 52px hsl(var(--accent) / 0.24);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.cm-copy {
|
|
221
|
+
color: var(--cm-muted);
|
|
222
|
+
font-family: var(--cm-font-sans);
|
|
223
|
+
font-weight: 500;
|
|
224
|
+
line-height: 1.42;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.cm-button {
|
|
228
|
+
display: inline-flex;
|
|
229
|
+
min-height: 2.625rem;
|
|
230
|
+
min-width: 0;
|
|
231
|
+
align-items: center;
|
|
232
|
+
justify-content: center;
|
|
233
|
+
gap: 0.5rem;
|
|
234
|
+
border: 1px solid hsl(var(--primary) / 0.42);
|
|
235
|
+
border-radius: 999px;
|
|
236
|
+
padding: 0.78rem 1.05rem;
|
|
237
|
+
color: hsl(var(--foreground));
|
|
238
|
+
font-family: var(--cm-font-mono);
|
|
239
|
+
font-size: clamp(0.64rem, 1.6cqw, 0.74rem);
|
|
240
|
+
font-weight: 900;
|
|
241
|
+
letter-spacing: 0;
|
|
242
|
+
line-height: 1.08;
|
|
243
|
+
text-align: center;
|
|
244
|
+
text-transform: uppercase;
|
|
245
|
+
transition:
|
|
246
|
+
transform 180ms ease,
|
|
247
|
+
border-color 180ms ease,
|
|
248
|
+
background 180ms ease,
|
|
249
|
+
box-shadow 180ms ease,
|
|
250
|
+
color 180ms ease;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
.cm-button:hover,
|
|
254
|
+
.cm-button:focus-visible {
|
|
255
|
+
transform: translateY(-1px);
|
|
256
|
+
outline: none;
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
.cm-button-primary,
|
|
260
|
+
.primary {
|
|
261
|
+
border-color: hsl(var(--primary) / 0.9);
|
|
262
|
+
background: linear-gradient(135deg, #8aebff, #22d3ee);
|
|
263
|
+
color: #031314;
|
|
264
|
+
box-shadow: var(--cm-glow-cyan);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.cm-button-primary:hover,
|
|
268
|
+
.cm-button-primary:focus-visible,
|
|
269
|
+
.primary:hover,
|
|
270
|
+
.primary:focus-visible {
|
|
271
|
+
box-shadow:
|
|
272
|
+
0 0 18px hsl(var(--primary) / 0.44),
|
|
273
|
+
0 0 42px hsl(var(--primary) / 0.2);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
.cm-button-secondary,
|
|
277
|
+
.secondary {
|
|
278
|
+
border-color: hsl(var(--primary) / 0.2);
|
|
279
|
+
background: hsl(221 50% 9% / 0.36);
|
|
280
|
+
color: var(--cm-cyan-hot);
|
|
281
|
+
box-shadow: inset 0 0 22px hsl(var(--primary) / 0.08);
|
|
282
|
+
backdrop-filter: blur(14px);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.cm-button-secondary:hover,
|
|
286
|
+
.cm-button-secondary:focus-visible,
|
|
287
|
+
.secondary:hover,
|
|
288
|
+
.secondary:focus-visible {
|
|
289
|
+
border-color: hsl(var(--primary) / 0.72);
|
|
290
|
+
background: hsl(var(--primary) / 0.1);
|
|
291
|
+
box-shadow: var(--cm-glow-cyan);
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
.cm-chip {
|
|
295
|
+
display: inline-flex;
|
|
296
|
+
align-items: center;
|
|
297
|
+
border: 1px solid hsl(var(--primary) / 0.18);
|
|
298
|
+
border-radius: 999px;
|
|
299
|
+
background: hsl(var(--background) / 0.42);
|
|
300
|
+
color: hsl(var(--foreground) / 0.72);
|
|
301
|
+
padding: 0.36rem 0.58rem;
|
|
302
|
+
font-family: var(--cm-font-mono);
|
|
303
|
+
font-size: 0.64rem;
|
|
304
|
+
font-weight: 800;
|
|
305
|
+
line-height: 1;
|
|
306
|
+
text-transform: uppercase;
|
|
307
|
+
backdrop-filter: blur(12px);
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
.cm-icon {
|
|
311
|
+
display: inline-grid;
|
|
312
|
+
width: 2.45rem;
|
|
313
|
+
height: 2.45rem;
|
|
314
|
+
place-items: center;
|
|
315
|
+
border: 1px solid hsl(var(--primary) / 0.28);
|
|
316
|
+
border-radius: var(--cm-radius);
|
|
317
|
+
background: hsl(var(--primary) / 0.08);
|
|
318
|
+
color: var(--cm-cyan-hot);
|
|
319
|
+
font-family: var(--cm-font-mono);
|
|
320
|
+
font-size: 0.8rem;
|
|
321
|
+
font-weight: 900;
|
|
322
|
+
box-shadow: inset 0 0 20px hsl(var(--primary) / 0.1);
|
|
74
323
|
}
|
|
75
324
|
|
|
76
325
|
/* Glitch Border Effect */
|
|
@@ -192,14 +441,28 @@ export const effectsCss = `/**
|
|
|
192
441
|
|
|
193
442
|
/* Partner Badge Scanline Animation */
|
|
194
443
|
@keyframes partner-scanline {
|
|
195
|
-
0% { transform:
|
|
196
|
-
100% { transform:
|
|
444
|
+
0% { transform: translate3d(0, -100px, 0); }
|
|
445
|
+
100% { transform: translate3d(0, calc(100vh + 100px), 0); }
|
|
197
446
|
}
|
|
198
447
|
|
|
199
448
|
/* Shimmer Animation */
|
|
200
449
|
@keyframes shimmer {
|
|
201
|
-
0% { transform:
|
|
202
|
-
100% { transform:
|
|
450
|
+
0% { transform: translate3d(-100%, 0, 0); }
|
|
451
|
+
100% { transform: translate3d(100%, 0, 0); }
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
@media (prefers-reduced-motion: reduce) {
|
|
455
|
+
.neon-glow,
|
|
456
|
+
.scanline,
|
|
457
|
+
.cm-cell {
|
|
458
|
+
animation-duration: 0.01ms !important;
|
|
459
|
+
animation-iteration-count: 1 !important;
|
|
460
|
+
}
|
|
461
|
+
|
|
462
|
+
.cm-cell,
|
|
463
|
+
.cm-button {
|
|
464
|
+
transition-duration: 0.01ms !important;
|
|
465
|
+
}
|
|
203
466
|
}
|
|
204
467
|
`;
|
|
205
468
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/effects/styles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/effects/styles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4czB,CAAC"}
|
package/dist/mirror/index.d.ts
CHANGED
|
@@ -1,8 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
* Mirror Module
|
|
3
|
-
*
|
|
4
|
-
* CSS class-name constants for the MirrorPane component pattern.
|
|
5
|
-
* No React components — these are CSS-only shared classes.
|
|
6
|
-
*/
|
|
1
|
+
import * as React from "react";
|
|
7
2
|
export { mirrorStyles } from "./styles";
|
|
3
|
+
export interface ComposeMirrorTab {
|
|
4
|
+
id: string;
|
|
5
|
+
label: React.ReactNode;
|
|
6
|
+
icon?: React.ReactNode;
|
|
7
|
+
tone?: "cyan" | "fuchsia";
|
|
8
|
+
}
|
|
9
|
+
export interface ComposeMirrorBadge {
|
|
10
|
+
label: React.ReactNode;
|
|
11
|
+
tone?: "neutral" | "cyan" | "fuchsia" | "green" | "warning" | "danger";
|
|
12
|
+
}
|
|
13
|
+
export interface ComposeMirrorPaneProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "title"> {
|
|
14
|
+
title?: React.ReactNode;
|
|
15
|
+
subtitle?: React.ReactNode;
|
|
16
|
+
icon?: React.ReactNode;
|
|
17
|
+
tabs?: ComposeMirrorTab[];
|
|
18
|
+
activeTab?: string;
|
|
19
|
+
onTabChange?: (tab: string) => void;
|
|
20
|
+
badges?: ComposeMirrorBadge[];
|
|
21
|
+
empty?: boolean;
|
|
22
|
+
emptyIcon?: React.ReactNode;
|
|
23
|
+
emptyText?: React.ReactNode;
|
|
24
|
+
footer?: React.ReactNode;
|
|
25
|
+
}
|
|
26
|
+
export declare function ComposeMirrorPane({ className, title, subtitle, icon, tabs, activeTab, onTabChange, badges, empty, emptyIcon, emptyText, footer, children, ...props }: ComposeMirrorPaneProps): React.JSX.Element;
|
|
27
|
+
export interface ComposeMirrorSectionProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
28
|
+
label?: React.ReactNode;
|
|
29
|
+
compact?: boolean;
|
|
30
|
+
}
|
|
31
|
+
export declare function ComposeMirrorSection({ className, label, compact, children, ...props }: ComposeMirrorSectionProps): React.JSX.Element;
|
|
32
|
+
export interface ComposeMirrorRowProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
33
|
+
label: React.ReactNode;
|
|
34
|
+
value: React.ReactNode;
|
|
35
|
+
}
|
|
36
|
+
export declare function ComposeMirrorRow({ className, label, value, ...props }: ComposeMirrorRowProps): React.JSX.Element;
|
|
37
|
+
export interface ComposeMirrorPricingProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
38
|
+
unit?: React.ReactNode;
|
|
39
|
+
}
|
|
40
|
+
export declare function ComposeMirrorPricing({ className, unit, children, ...props }: ComposeMirrorPricingProps): React.JSX.Element;
|
|
8
41
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mirror/index.
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mirror/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC3B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;CACxE;AAED,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IACjG,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,IAAI,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B;AAMD,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,IAAS,EACT,SAAS,EACT,WAAW,EACX,MAAW,EACX,KAAa,EACb,SAAS,EACT,SAAS,EACT,MAAM,EACN,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,sBAAsB,qBA4DxB;AAED,MAAM,WAAW,yBAA0B,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACrF,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,OAAc,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,yBAAyB,qBAUvH;AAED,MAAM,WAAW,qBAAsB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACjF,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,qBAAqB,qBAO5F;AAED,MAAM,WAAW,yBAA0B,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACrF,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,yBAAyB,qBAOtG"}
|
package/dist/mirror/index.js
CHANGED
|
@@ -1,8 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* CSS class-name constants for the MirrorPane component pattern.
|
|
5
|
-
* No React components — these are CSS-only shared classes.
|
|
6
|
-
*/
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { cx } from "../internal/cx";
|
|
7
3
|
export { mirrorStyles } from "./styles";
|
|
4
|
+
function badgeTone(value) {
|
|
5
|
+
return value || "neutral";
|
|
6
|
+
}
|
|
7
|
+
export function ComposeMirrorPane({ className, title, subtitle, icon, tabs = [], activeTab, onTabChange, badges = [], empty = false, emptyIcon, emptyText, footer, children, ...props }) {
|
|
8
|
+
const content = empty ? (_jsxs("div", { className: "cm-mirror-pane__empty", children: [emptyIcon ? _jsx("div", { className: "cm-mirror-pane__empty-icon", children: emptyIcon }) : null, emptyText ? _jsx("p", { className: "cm-mirror-pane__empty-text", children: emptyText }) : null] })) : (_jsxs(_Fragment, { children: [(title || subtitle || icon || badges.length > 0) ? (_jsxs("div", { className: "cm-mirror-pane__model-header", children: [icon ? _jsx("div", { className: "cm-mirror-pane__model-icon-box", children: icon }) : null, _jsxs("div", { className: "cm-mirror-pane__model-copy", children: [title ? (_jsxs("div", { className: "cm-mirror-pane__model-name-row", children: [_jsx("h3", { className: "cm-mirror-pane__model-name", children: title }), badges.length > 0 ? (_jsx("span", { className: "cm-mirror-pane__model-types", children: badges.map((badge, index) => (_jsx("span", { className: "cm-mirror-pane__badge", "data-tone": badgeTone(badge.tone), children: badge.label }, index))) })) : null] })) : null, subtitle ? _jsx("p", { className: "cm-mirror-pane__model-provider", children: subtitle }) : null] })] })) : null, children] }));
|
|
9
|
+
return (_jsxs("div", { className: cx("cm-mirror-pane", className), ...props, children: [tabs.length > 0 ? (_jsx("div", { className: "cm-mirror-pane__toolbar", children: tabs.map((tab) => (_jsxs("button", { type: "button", className: cx("cm-mirror-pane__toolbar-btn", activeTab === tab.id && `cm-mirror-pane__toolbar-btn--active-${tab.tone || "cyan"}`), onClick: () => onTabChange?.(tab.id), "aria-pressed": activeTab === tab.id, "aria-label": typeof tab.label === "string" ? tab.label : undefined, children: [tab.icon, _jsx("span", { className: "cm-mirror-pane__toolbar-label", children: tab.label })] }, tab.id))) })) : null, _jsx("div", { className: "cm-mirror-pane__body", children: content }), footer ? _jsx("div", { className: "cm-mirror-pane__footer", children: footer }) : null] }));
|
|
10
|
+
}
|
|
11
|
+
export function ComposeMirrorSection({ className, label, compact = true, children, ...props }) {
|
|
12
|
+
return (_jsxs("section", { className: cx("cm-mirror-pane__section", compact && "cm-mirror-pane__section--compact", className), ...props, children: [label ? _jsx("span", { className: "cm-mirror-pane__section-label", children: label }) : null, children] }));
|
|
13
|
+
}
|
|
14
|
+
export function ComposeMirrorRow({ className, label, value, ...props }) {
|
|
15
|
+
return (_jsxs("div", { className: cx("cm-mirror-pane__kv-row", className), ...props, children: [_jsx("span", { className: "cm-mirror-pane__kv-label", children: label }), _jsx("span", { className: "cm-mirror-pane__kv-value", children: value })] }));
|
|
16
|
+
}
|
|
17
|
+
export function ComposeMirrorPricing({ className, unit, children, ...props }) {
|
|
18
|
+
return (_jsxs("div", { className: cx("cm-mirror-pane__pricing-compact", className), ...props, children: [_jsx("div", { className: "cm-mirror-pane__pricing-entries", children: children }), unit ? _jsx("span", { className: "cm-mirror-pane__pricing-unit", children: unit }) : null] }));
|
|
19
|
+
}
|
|
8
20
|
//# sourceMappingURL=index.js.map
|
package/dist/mirror/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mirror/index.
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mirror/index.tsx"],"names":[],"mappings":"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"}
|
package/dist/mirror/styles.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Mirror Pane Styles
|
|
3
3
|
*
|
|
4
|
-
* BEM CSS for
|
|
4
|
+
* Shared BEM CSS for model/detail panes.
|
|
5
5
|
*/
|
|
6
|
-
export declare const mirrorStyles = "\n/* \u2500\u2500 Mirror Pane \u2500\u2500 */\n.cm-mirror-pane {\n display: flex;\n flex-direction: column;\n border: 1px solid hsl(var(--primary) / 0.3);\n border-radius: 8px;\n background: hsl(var(--card));\n overflow: hidden;\n height: 100%;\n}\n\n/* Toolbar (icon tabs) */\n.cm-mirror-pane__toolbar {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n gap: 4px;\n padding: 8px;\n border-bottom: 1px solid hsl(var(--sidebar-border));\n background: hsl(var(--background) / 0.3);\n}\n\n.cm-mirror-pane__toolbar-btn {\n padding: 8px;\n border-radius: 6px;\n border: none;\n background: transparent;\n color: hsl(var(--muted-foreground));\n cursor: pointer;\n transition: color 0.15s ease, background 0.15s ease;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.cm-mirror-pane__toolbar-btn:hover {\n color: hsl(var(--foreground));\n background: hsl(var(--muted));\n}\n\n.cm-mirror-pane__toolbar-btn--active-cyan {\n background: hsl(var(--primary) / 0.2);\n color: hsl(var(--primary));\n}\n\n.cm-mirror-pane__toolbar-btn--active-fuchsia {\n background: hsl(var(--accent) / 0.2);\n color: hsl(var(--accent));\n}\n\n/* Body */\n.cm-mirror-pane__body {\n padding: 12px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n flex: 1;\n overflow-y: auto;\n}\n\n@media (min-width: 640px) {\n .cm-mirror-pane__body {\n padding: 16px;\n }\n}\n\n@media (min-width: 768px) {\n .cm-mirror-pane__body {\n padding: 20px;\n }\n}\n\n/* Model identity */\n.cm-mirror-pane__model-header {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n}\n\n.cm-mirror-pane__model-icon-box {\n padding: 8px;\n background: hsl(var(--primary) / 0.1);\n border: 1px solid hsl(var(--primary) / 0.3);\n border-radius: 8px;\n flex-shrink: 0;\n}\n\n.cm-mirror-pane__model-copy {\n min-width: 0;\n flex: 1;\n}\n\n.cm-mirror-pane__model-name {\n font-weight: 600;\n color: hsl(var(--foreground));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: 14px;\n}\n\n@media (min-width: 768px) {\n .cm-mirror-pane__model-name {\n font-size: 16px;\n }\n}\n\n.cm-mirror-pane__model-provider {\n font-size: 12px;\n color: hsl(var(--muted-foreground));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* Section panel */\n.cm-mirror-pane__section {\n border-radius: 2px;\n border: 1px solid hsl(var(--sidebar-border));\n background: hsl(var(--background) / 0.3);\n padding: 12px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.cm-mirror-pane__section-label {\n font-size: 11px;\n text-transform: uppercase;\n letter-spacing: 0.06em;\n color: hsl(var(--muted-foreground));\n}\n\n/* Key-value rows */\n.cm-mirror-pane__kv-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n font-family: var(--font-mono, monospace);\n}\n\n.cm-mirror-pane__kv-label {\n color: hsl(var(--muted-foreground));\n}\n\n.cm-mirror-pane__kv-value {\n color: hsl(var(--foreground));\n text-align: right;\n}\n\n/* Pricing sub-panel */\n.cm-mirror-pane__pricing-block {\n border-radius: 2px;\n border: 1px solid hsl(var(--sidebar-border));\n background: hsl(var(--background) / 0.4);\n padding: 8px;\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.cm-mirror-pane__pricing-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n}\n\n.cm-mirror-pane__pricing-name {\n font-family: var(--font-mono, monospace);\n color: hsl(var(--primary));\n}\n\n/* Description block */\n.cm-mirror-pane__description {\n border-radius: 2px;\n border: 1px solid hsl(var(--sidebar-border));\n background: hsl(var(--background) / 0.3);\n padding: 12px;\n color: hsl(var(--muted-foreground));\n line-height: 1.6;\n}\n\n/* Settings: tool group */\n.cm-mirror-pane__tool-group {\n border-radius: 2px;\n border: 1px solid hsl(var(--primary) / 0.2);\n background: hsl(var(--primary) / 0.05);\n padding: 12px;\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.cm-mirror-pane__tool-group--fuchsia {\n border-color: hsl(var(--accent) / 0.2);\n background: hsl(var(--accent) / 0.05);\n}\n\n.cm-mirror-pane__tool-group-label {\n font-size: 12px;\n font-family: var(--font-mono, monospace);\n}\n\n.cm-mirror-pane__tool-toggle {\n display: flex;\n align-items: center;\n justify-content: space-between;\n}\n\n.cm-mirror-pane__tool-toggle-label {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n}\n\n/* Empty state */\n.cm-mirror-pane__empty {\n padding: 16px 20px;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex: 1;\n text-align: center;\n}\n\n.cm-mirror-pane__empty-icon {\n width: 40px;\n height: 40px;\n color: hsl(var(--muted-foreground) / 0.4);\n margin-bottom: 12px;\n}\n\n.cm-mirror-pane__empty-text {\n font-size: 14px;\n color: hsl(var(--muted-foreground) / 0.7);\n}\n\n/* No-params state */\n.cm-mirror-pane__no-params {\n border-radius: 2px;\n border: 1px solid hsl(var(--sidebar-border));\n background: hsl(var(--background) / 0.3);\n padding: 16px;\n font-size: 14px;\n color: hsl(var(--muted-foreground));\n}\n";
|
|
6
|
+
export declare const mirrorStyles = "\n.cm-mirror-pane {\n container-type: inline-size;\n display: flex;\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n height: 100%;\n overflow: hidden;\n border: 1px solid hsl(var(--primary) / 0.18);\n border-radius: 16px;\n background:\n linear-gradient(145deg, hsl(226 21% 23% / 0.42), hsl(221 50% 9% / 0.34)),\n radial-gradient(circle at 18% 0%, hsl(var(--primary) / 0.09), transparent 34%),\n hsl(224 36% 13% / 0.24);\n box-shadow:\n inset 0 1px 0 hsl(0 0% 100% / 0.06),\n 0 0 34px hsl(var(--primary) / 0.06);\n color: hsl(var(--foreground));\n font-family: var(--font-sans), sans-serif;\n backdrop-filter: blur(16px) saturate(1.12);\n}\n\n.cm-mirror-pane__toolbar {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n gap: 0.35rem;\n padding: 0.45rem;\n border-bottom: 1px solid hsl(var(--primary) / 0.1);\n background: hsl(221 50% 9% / 0.28);\n}\n\n.cm-mirror-pane__toolbar-btn {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 0.4rem;\n min-width: 2.2rem;\n min-height: 2.2rem;\n padding: 0 0.62rem;\n border: 1px solid transparent;\n border-radius: 999px;\n background: transparent;\n color: hsl(var(--muted-foreground));\n cursor: pointer;\n font-family: var(--font-mono), monospace;\n font-size: 0.68rem;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n transition:\n transform 160ms ease,\n border-color 180ms ease,\n background-color 180ms ease,\n color 180ms ease,\n box-shadow 180ms ease;\n}\n\n.cm-mirror-pane__toolbar-btn:hover,\n.cm-mirror-pane__toolbar-btn:focus-visible {\n outline: none;\n color: hsl(var(--foreground));\n border-color: hsl(var(--primary) / 0.2);\n background: hsl(var(--primary) / 0.08);\n}\n\n.cm-mirror-pane__toolbar-btn--active-cyan {\n border-color: hsl(var(--primary) / 0.36);\n background: hsl(var(--primary) / 0.12);\n color: hsl(var(--primary));\n box-shadow: 0 0 18px hsl(var(--primary) / 0.12);\n}\n\n.cm-mirror-pane__toolbar-btn--active-fuchsia {\n border-color: hsl(var(--accent) / 0.34);\n background: hsl(var(--accent) / 0.11);\n color: hsl(var(--accent));\n box-shadow: 0 0 18px hsl(var(--accent) / 0.1);\n}\n\n.cm-mirror-pane__toolbar-btn svg {\n width: 1rem;\n height: 1rem;\n}\n\n.cm-mirror-pane__toolbar-label {\n display: none;\n}\n\n@container (min-width: 24rem) {\n .cm-mirror-pane__toolbar-label {\n display: inline;\n }\n}\n\n.cm-mirror-pane__body {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n gap: clamp(0.75rem, 3cqi, 1rem);\n overflow: auto;\n padding: clamp(0.75rem, 3cqi, 1rem);\n}\n\n.cm-mirror-pane__footer {\n flex: 0 0 auto;\n border-top: 1px solid hsl(var(--primary) / 0.1);\n padding: 0.75rem 1rem;\n}\n\n.cm-mirror-pane__empty {\n flex: 1;\n min-height: 14rem;\n display: grid;\n place-items: center;\n align-content: center;\n gap: 0.75rem;\n padding: 1.5rem;\n text-align: center;\n}\n\n.cm-mirror-pane__empty-icon {\n display: inline-flex;\n color: hsl(var(--primary));\n opacity: 0.72;\n}\n\n.cm-mirror-pane__empty-icon svg {\n width: 2.5rem;\n height: 2.5rem;\n}\n\n.cm-mirror-pane__empty-text {\n max-width: 18rem;\n color: hsl(var(--muted-foreground));\n line-height: 1.45;\n}\n\n.cm-mirror-pane__model-header {\n display: flex;\n align-items: flex-start;\n gap: 0.75rem;\n min-width: 0;\n}\n\n.cm-mirror-pane__model-icon-box {\n display: grid;\n width: 2.65rem;\n height: 2.65rem;\n place-items: center;\n flex: 0 0 auto;\n border: 1px solid hsl(var(--primary) / 0.24);\n border-radius: 12px;\n background: hsl(var(--primary) / 0.09);\n color: hsl(var(--primary));\n box-shadow: inset 0 0 18px hsl(var(--primary) / 0.08);\n}\n\n.cm-mirror-pane__model-icon-box svg {\n width: 1.2rem;\n height: 1.2rem;\n}\n\n.cm-mirror-pane__model-copy {\n flex: 1;\n min-width: 0;\n display: grid;\n gap: 0.25rem;\n}\n\n.cm-mirror-pane__model-name-row {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n min-width: 0;\n flex-wrap: wrap;\n}\n\n.cm-mirror-pane__model-name {\n min-width: 0;\n margin: 0;\n color: hsl(var(--foreground));\n font-family: var(--font-display), sans-serif;\n font-size: clamp(0.98rem, 4cqi, 1.14rem);\n font-weight: 800;\n line-height: 1.08;\n overflow-wrap: anywhere;\n}\n\n.cm-mirror-pane__model-types {\n display: inline-flex;\n align-items: center;\n gap: 0.3rem;\n flex-wrap: wrap;\n}\n\n.cm-mirror-pane__badge {\n display: inline-flex;\n align-items: center;\n min-height: 1.35rem;\n border: 1px solid hsl(var(--primary) / 0.18);\n border-radius: 999px;\n background: hsl(var(--primary) / 0.08);\n color: hsl(var(--primary));\n padding: 0 0.45rem;\n font-family: var(--font-mono), monospace;\n font-size: 0.6rem;\n font-weight: 700;\n letter-spacing: 0.06em;\n text-transform: uppercase;\n}\n\n.cm-mirror-pane__badge[data-tone=\"fuchsia\"] {\n border-color: hsl(var(--accent) / 0.24);\n background: hsl(var(--accent) / 0.1);\n color: hsl(var(--accent));\n}\n\n.cm-mirror-pane__badge[data-tone=\"green\"] {\n border-color: hsl(142 71% 45% / 0.28);\n background: hsl(142 71% 45% / 0.1);\n color: hsl(142 71% 55%);\n}\n\n.cm-mirror-pane__badge[data-tone=\"warning\"] {\n border-color: hsl(42 100% 48% / 0.28);\n background: hsl(42 100% 48% / 0.1);\n color: hsl(42 100% 58%);\n}\n\n.cm-mirror-pane__badge[data-tone=\"danger\"] {\n border-color: hsl(var(--destructive) / 0.3);\n background: hsl(var(--destructive) / 0.12);\n color: hsl(var(--destructive));\n}\n\n.cm-mirror-pane__model-provider,\n.cm-mirror-pane__model-id {\n margin: 0;\n color: hsl(var(--muted-foreground));\n font-family: var(--font-mono), monospace;\n font-size: 0.72rem;\n line-height: 1.35;\n overflow-wrap: anywhere;\n}\n\n.cm-mirror-pane__model-id {\n color: hsl(var(--primary) / 0.72);\n}\n\n.cm-mirror-pane__description,\n.cm-mirror-pane__description--clamped,\n.cm-mirror-pane__section,\n.cm-mirror-pane__pricing-compact,\n.cm-mirror-pane__pricing-block,\n.cm-mirror-pane__tool-group,\n.cm-mirror-pane__no-params,\n.cm-mirror-pane__text-area,\n.cm-mirror-pane__field {\n border: 1px solid hsl(var(--primary) / 0.12);\n border-radius: 12px;\n background: hsl(221 50% 9% / 0.3);\n}\n\n.cm-mirror-pane__description,\n.cm-mirror-pane__description--clamped {\n padding: 0.75rem;\n color: hsl(var(--muted-foreground));\n line-height: 1.5;\n}\n\n.cm-mirror-pane__section {\n display: flex;\n flex-direction: column;\n gap: 0.6rem;\n min-width: 0;\n}\n\n.cm-mirror-pane__section--compact {\n padding: 0.75rem;\n}\n\n.cm-mirror-pane__section-label,\n.cm-mirror-pane__tool-group-label {\n color: hsl(var(--muted-foreground));\n font-family: var(--font-mono), monospace;\n font-size: 0.68rem;\n font-weight: 800;\n letter-spacing: 0.1em;\n text-transform: uppercase;\n}\n\n.cm-mirror-pane__io-row,\n.cm-mirror-pane__kv-row,\n.cm-mirror-pane__pricing-header,\n.cm-mirror-pane__tool-toggle {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.75rem;\n min-width: 0;\n}\n\n.cm-mirror-pane__io-row {\n align-items: flex-start;\n}\n\n.cm-mirror-pane__io-label,\n.cm-mirror-pane__kv-label {\n flex: 0 0 auto;\n color: hsl(var(--muted-foreground));\n font-family: var(--font-mono), monospace;\n font-size: 0.7rem;\n}\n\n.cm-mirror-pane__io-badges,\n.cm-mirror-pane__kv-grid,\n.cm-mirror-pane__pricing-entries,\n.cm-mirror-pane__custom-content,\n.cm-mirror-pane__custom-section {\n display: flex;\n flex-direction: column;\n gap: 0.45rem;\n min-width: 0;\n}\n\n.cm-mirror-pane__io-badges {\n flex-direction: row;\n flex-wrap: wrap;\n}\n\n.cm-mirror-pane__kv-value {\n min-width: 0;\n color: hsl(var(--foreground));\n font-family: var(--font-mono), monospace;\n font-size: 0.74rem;\n text-align: right;\n overflow-wrap: anywhere;\n}\n\n.cm-mirror-pane__pricing-compact,\n.cm-mirror-pane__pricing-block,\n.cm-mirror-pane__tool-group {\n display: flex;\n flex-direction: column;\n gap: 0.45rem;\n padding: 0.62rem 0.7rem;\n}\n\n.cm-mirror-pane__pricing-unit {\n color: hsl(var(--muted-foreground) / 0.72);\n font-family: var(--font-mono), monospace;\n font-size: 0.64rem;\n letter-spacing: 0.08em;\n text-transform: uppercase;\n}\n\n.cm-mirror-pane__pricing-name {\n color: hsl(var(--accent));\n font-family: var(--font-mono), monospace;\n font-weight: 700;\n}\n\n.cm-mirror-pane__tool-group {\n border-color: hsl(var(--primary) / 0.18);\n background: hsl(var(--primary) / 0.05);\n}\n\n.cm-mirror-pane__tool-group--fuchsia {\n border-color: hsl(var(--accent) / 0.18);\n background: hsl(var(--accent) / 0.05);\n}\n\n.cm-mirror-pane__tool-toggle-label {\n display: inline-flex;\n align-items: center;\n gap: 0.42rem;\n min-width: 0;\n color: hsl(var(--foreground));\n}\n\n.cm-mirror-pane__tool-toggle-label svg,\n.cm-mirror-pane__tool-toggle-label-icon {\n width: 1rem;\n height: 1rem;\n flex: 0 0 auto;\n}\n\n.cm-mirror-pane__text-area {\n width: 100%;\n min-height: 7rem;\n padding: 0.72rem;\n color: hsl(var(--foreground));\n font-family: var(--font-mono), monospace;\n font-size: 0.78rem;\n resize: vertical;\n}\n\n.cm-mirror-pane__field {\n width: 100%;\n min-height: 2.45rem;\n color: hsl(var(--foreground));\n font-family: var(--font-mono), monospace;\n font-size: 0.78rem;\n}\n\n.cm-mirror-pane__field:focus,\n.cm-mirror-pane__field:focus-visible,\n.cm-mirror-pane__text-area:focus,\n.cm-mirror-pane__text-area:focus-visible {\n outline: none;\n border-color: hsl(var(--primary) / 0.5);\n box-shadow: 0 0 0 1px hsl(var(--primary) / 0.16);\n}\n\n.cm-mirror-pane__param-description,\n.cm-mirror-pane__no-params {\n color: hsl(var(--muted-foreground));\n font-size: 0.78rem;\n line-height: 1.4;\n}\n\n.cm-mirror-pane__no-params {\n padding: 1rem;\n text-align: center;\n}\n\n@container (max-width: 22rem) {\n .cm-mirror-pane__io-row,\n .cm-mirror-pane__kv-row,\n .cm-mirror-pane__pricing-header,\n .cm-mirror-pane__tool-toggle {\n align-items: flex-start;\n flex-direction: column;\n gap: 0.35rem;\n }\n\n .cm-mirror-pane__kv-value {\n text-align: left;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .cm-mirror-pane__toolbar-btn {\n transition-duration: 0.01ms !important;\n }\n}\n";
|
|
7
7
|
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/mirror/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/mirror/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,YAAY,uhUAgcxB,CAAC"}
|