@compose-market/theme 0.0.82 → 0.0.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/dist/css/index.css +4 -0
  2. package/dist/css/index.d.ts +1 -1
  3. package/dist/css/index.d.ts.map +1 -1
  4. package/dist/css/index.js +4 -0
  5. package/dist/css/index.js.map +1 -1
  6. package/dist/css/market.css +273 -0
  7. package/dist/css/mirror.css +251 -0
  8. package/dist/css/utilities.css +81 -0
  9. package/dist/css/workflows.css +634 -0
  10. package/dist/index.d.ts +5 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +5 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/market/index.d.ts +8 -0
  15. package/dist/market/index.d.ts.map +1 -0
  16. package/dist/market/index.js +8 -0
  17. package/dist/market/index.js.map +1 -0
  18. package/dist/market/styles.d.ts +8 -0
  19. package/dist/market/styles.d.ts.map +1 -0
  20. package/dist/market/styles.js +281 -0
  21. package/dist/market/styles.js.map +1 -0
  22. package/dist/mirror/index.d.ts +8 -0
  23. package/dist/mirror/index.d.ts.map +1 -0
  24. package/dist/mirror/index.js +8 -0
  25. package/dist/mirror/index.js.map +1 -0
  26. package/dist/mirror/styles.d.ts +7 -0
  27. package/dist/mirror/styles.d.ts.map +1 -0
  28. package/dist/mirror/styles.js +258 -0
  29. package/dist/mirror/styles.js.map +1 -0
  30. package/dist/utilities/index.d.ts +8 -0
  31. package/dist/utilities/index.d.ts.map +1 -0
  32. package/dist/utilities/index.js +8 -0
  33. package/dist/utilities/index.js.map +1 -0
  34. package/dist/utilities/styles.d.ts +8 -0
  35. package/dist/utilities/styles.d.ts.map +1 -0
  36. package/dist/utilities/styles.js +89 -0
  37. package/dist/utilities/styles.js.map +1 -0
  38. package/dist/workflows/index.d.ts +65 -0
  39. package/dist/workflows/index.d.ts.map +1 -0
  40. package/dist/workflows/index.js +17 -0
  41. package/dist/workflows/index.js.map +1 -0
  42. package/dist/workflows/styles.d.ts +8 -0
  43. package/dist/workflows/styles.d.ts.map +1 -0
  44. package/dist/workflows/styles.js +642 -0
  45. package/dist/workflows/styles.js.map +1 -0
  46. package/package.json +41 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/market/styles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,8xJAiRxB,CAAC"}
@@ -0,0 +1,281 @@
1
+ /**
2
+ * Market Styles
3
+ *
4
+ * Shared CSS for page-level patterns: page headers, card grids, stat cells,
5
+ * filter bars, and tab strips used in market.tsx and my-assets.tsx pages.
6
+ */
7
+ export const marketStyles = /* css */ `
8
+ /* ── Page Header ── */
9
+ .cm-page-header {
10
+ display: flex;
11
+ flex-direction: column;
12
+ gap: 4px;
13
+ border-bottom: 1px solid hsl(var(--sidebar-border));
14
+ padding-bottom: 16px;
15
+ }
16
+
17
+ @media (min-width: 640px) {
18
+ .cm-page-header {
19
+ gap: 8px;
20
+ padding-bottom: 24px;
21
+ }
22
+ }
23
+
24
+ .cm-page-header__title-row {
25
+ display: flex;
26
+ align-items: center;
27
+ gap: 16px;
28
+ }
29
+
30
+ .cm-page-header__title {
31
+ font-family: var(--font-display), sans-serif;
32
+ font-weight: 700;
33
+ color: hsl(var(--foreground));
34
+ font-size: 20px;
35
+ }
36
+
37
+ @media (min-width: 640px) {
38
+ .cm-page-header__title {
39
+ font-size: 24px;
40
+ }
41
+ }
42
+
43
+ .cm-page-header__rule {
44
+ height: 1px;
45
+ width: 128px;
46
+ background: linear-gradient(90deg, hsl(var(--accent)), transparent);
47
+ }
48
+
49
+ .cm-page-header__subtitle {
50
+ color: hsl(var(--muted-foreground));
51
+ font-family: var(--font-mono, monospace);
52
+ font-size: 12px;
53
+ }
54
+
55
+ @media (min-width: 640px) {
56
+ .cm-page-header__subtitle {
57
+ font-size: 14px;
58
+ }
59
+ }
60
+
61
+ /* ── Card Grid ── */
62
+ .cm-card-grid {
63
+ display: grid;
64
+ grid-template-columns: 1fr;
65
+ gap: 16px;
66
+ }
67
+
68
+ @media (min-width: 640px) {
69
+ .cm-card-grid {
70
+ grid-template-columns: repeat(2, 1fr);
71
+ gap: 24px;
72
+ }
73
+ }
74
+
75
+ @media (min-width: 1024px) {
76
+ .cm-card-grid {
77
+ grid-template-columns: repeat(3, 1fr);
78
+ }
79
+ }
80
+
81
+ .cm-card-grid--2col {
82
+ grid-template-columns: 1fr;
83
+ }
84
+
85
+ @media (min-width: 640px) {
86
+ .cm-card-grid--2col {
87
+ grid-template-columns: repeat(2, 1fr);
88
+ }
89
+ }
90
+
91
+ /* ── Stat Cell ── */
92
+ .cm-stat-cell {
93
+ padding: 6px;
94
+ background: hsl(var(--background));
95
+ border: 1px solid hsl(var(--sidebar-border) / 0.5);
96
+ border-radius: 4px;
97
+ }
98
+
99
+ @media (min-width: 640px) {
100
+ .cm-stat-cell {
101
+ padding: 8px;
102
+ }
103
+ }
104
+
105
+ .cm-stat-cell__label {
106
+ font-size: 8px;
107
+ color: hsl(var(--muted-foreground));
108
+ text-transform: uppercase;
109
+ }
110
+
111
+ @media (min-width: 640px) {
112
+ .cm-stat-cell__label {
113
+ font-size: 10px;
114
+ }
115
+ }
116
+
117
+ .cm-stat-cell__value-row {
118
+ display: flex;
119
+ align-items: center;
120
+ gap: 4px;
121
+ }
122
+
123
+ .cm-stat-cell__value {
124
+ font-family: var(--font-mono, monospace);
125
+ font-size: 12px;
126
+ white-space: nowrap;
127
+ overflow: hidden;
128
+ text-overflow: ellipsis;
129
+ }
130
+
131
+ @media (min-width: 640px) {
132
+ .cm-stat-cell__value {
133
+ font-size: 14px;
134
+ }
135
+ }
136
+
137
+ /* ── Filter Bar ── */
138
+ .cm-filter-bar {
139
+ display: flex;
140
+ flex-direction: column;
141
+ gap: 12px;
142
+ }
143
+
144
+ @media (min-width: 640px) {
145
+ .cm-filter-bar {
146
+ flex-direction: row;
147
+ align-items: center;
148
+ justify-content: space-between;
149
+ }
150
+ }
151
+
152
+ .cm-filter-bar__actions {
153
+ display: flex;
154
+ align-items: center;
155
+ gap: 8px;
156
+ }
157
+
158
+ @media (max-width: 639px) {
159
+ .cm-filter-bar__actions {
160
+ justify-content: space-between;
161
+ }
162
+ }
163
+
164
+ /* ── Empty State (inline variant) ── */
165
+ .cm-empty-state-inline {
166
+ text-align: center;
167
+ padding: 48px 16px;
168
+ }
169
+
170
+ @media (min-width: 640px) {
171
+ .cm-empty-state-inline {
172
+ padding: 80px 16px;
173
+ }
174
+ }
175
+
176
+ .cm-empty-state-inline__icon {
177
+ margin: 0 auto 16px;
178
+ color: hsl(var(--muted-foreground) / 0.3);
179
+ width: 40px;
180
+ height: 40px;
181
+ }
182
+
183
+ @media (min-width: 640px) {
184
+ .cm-empty-state-inline__icon {
185
+ width: 48px;
186
+ height: 48px;
187
+ }
188
+ }
189
+
190
+ .cm-empty-state-inline__text {
191
+ color: hsl(var(--muted-foreground));
192
+ font-size: 14px;
193
+ }
194
+
195
+ @media (min-width: 640px) {
196
+ .cm-empty-state-inline__text {
197
+ font-size: 16px;
198
+ }
199
+ }
200
+
201
+ .cm-empty-state-inline__hint {
202
+ color: hsl(var(--muted-foreground) / 0.6);
203
+ font-size: 10px;
204
+ margin-top: 8px;
205
+ padding: 0 16px;
206
+ }
207
+
208
+ @media (min-width: 640px) {
209
+ .cm-empty-state-inline__hint {
210
+ font-size: 12px;
211
+ }
212
+ }
213
+
214
+ /* ── Stat Grid (centered, icon-above) ── */
215
+ .cm-stat-grid {
216
+ display: grid;
217
+ gap: 6px;
218
+ font-family: var(--font-mono, monospace);
219
+ }
220
+
221
+ @media (min-width: 640px) {
222
+ .cm-stat-grid {
223
+ gap: 12px;
224
+ }
225
+ }
226
+
227
+ .cm-stat-grid--3col {
228
+ grid-template-columns: repeat(3, 1fr);
229
+ }
230
+
231
+ .cm-stat-grid--2col {
232
+ grid-template-columns: repeat(2, 1fr);
233
+ }
234
+
235
+ .cm-stat-grid__cell {
236
+ text-align: center;
237
+ padding: 6px;
238
+ border-radius: 2px;
239
+ background: hsl(var(--sidebar-accent));
240
+ }
241
+
242
+ @media (min-width: 640px) {
243
+ .cm-stat-grid__cell {
244
+ padding: 8px;
245
+ }
246
+ }
247
+
248
+ .cm-stat-grid__cell-icon {
249
+ margin: 0 auto 2px;
250
+ width: 12px;
251
+ height: 12px;
252
+ }
253
+
254
+ @media (min-width: 640px) {
255
+ .cm-stat-grid__cell-icon {
256
+ width: 14px;
257
+ height: 14px;
258
+ margin-bottom: 4px;
259
+ }
260
+ }
261
+
262
+ .cm-stat-grid__cell-value {
263
+ font-weight: 700;
264
+ color: hsl(var(--foreground));
265
+ white-space: nowrap;
266
+ overflow: hidden;
267
+ text-overflow: ellipsis;
268
+ }
269
+
270
+ .cm-stat-grid__cell-label {
271
+ font-size: 8px;
272
+ color: hsl(var(--muted-foreground));
273
+ }
274
+
275
+ @media (min-width: 640px) {
276
+ .cm-stat-grid__cell-label {
277
+ font-size: 10px;
278
+ }
279
+ }
280
+ `;
281
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/market/styles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiRrC,CAAC"}
@@ -0,0 +1,8 @@
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
+ */
7
+ export { mirrorStyles } from "./styles";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/mirror/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,8 @@
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
+ */
7
+ export { mirrorStyles } from "./styles";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mirror/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Mirror Pane Styles
3
+ *
4
+ * BEM CSS for the MirrorPane component pattern (model info panel).
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";
7
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/mirror/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,YAAY,2pKA2PxB,CAAC"}
@@ -0,0 +1,258 @@
1
+ /**
2
+ * Mirror Pane Styles
3
+ *
4
+ * BEM CSS for the MirrorPane component pattern (model info panel).
5
+ */
6
+ export const mirrorStyles = /* css */ `
7
+ /* ── Mirror Pane ── */
8
+ .cm-mirror-pane {
9
+ display: flex;
10
+ flex-direction: column;
11
+ border: 1px solid hsl(var(--primary) / 0.3);
12
+ border-radius: 8px;
13
+ background: hsl(var(--card));
14
+ overflow: hidden;
15
+ height: 100%;
16
+ }
17
+
18
+ /* Toolbar (icon tabs) */
19
+ .cm-mirror-pane__toolbar {
20
+ flex-shrink: 0;
21
+ display: flex;
22
+ align-items: center;
23
+ gap: 4px;
24
+ padding: 8px;
25
+ border-bottom: 1px solid hsl(var(--sidebar-border));
26
+ background: hsl(var(--background) / 0.3);
27
+ }
28
+
29
+ .cm-mirror-pane__toolbar-btn {
30
+ padding: 8px;
31
+ border-radius: 6px;
32
+ border: none;
33
+ background: transparent;
34
+ color: hsl(var(--muted-foreground));
35
+ cursor: pointer;
36
+ transition: color 0.15s ease, background 0.15s ease;
37
+ display: inline-flex;
38
+ align-items: center;
39
+ justify-content: center;
40
+ }
41
+
42
+ .cm-mirror-pane__toolbar-btn:hover {
43
+ color: hsl(var(--foreground));
44
+ background: hsl(var(--muted));
45
+ }
46
+
47
+ .cm-mirror-pane__toolbar-btn--active-cyan {
48
+ background: hsl(var(--primary) / 0.2);
49
+ color: hsl(var(--primary));
50
+ }
51
+
52
+ .cm-mirror-pane__toolbar-btn--active-fuchsia {
53
+ background: hsl(var(--accent) / 0.2);
54
+ color: hsl(var(--accent));
55
+ }
56
+
57
+ /* Body */
58
+ .cm-mirror-pane__body {
59
+ padding: 12px;
60
+ display: flex;
61
+ flex-direction: column;
62
+ gap: 16px;
63
+ flex: 1;
64
+ overflow-y: auto;
65
+ }
66
+
67
+ @media (min-width: 640px) {
68
+ .cm-mirror-pane__body {
69
+ padding: 16px;
70
+ }
71
+ }
72
+
73
+ @media (min-width: 768px) {
74
+ .cm-mirror-pane__body {
75
+ padding: 20px;
76
+ }
77
+ }
78
+
79
+ /* Model identity */
80
+ .cm-mirror-pane__model-header {
81
+ display: flex;
82
+ align-items: flex-start;
83
+ gap: 12px;
84
+ }
85
+
86
+ .cm-mirror-pane__model-icon-box {
87
+ padding: 8px;
88
+ background: hsl(var(--primary) / 0.1);
89
+ border: 1px solid hsl(var(--primary) / 0.3);
90
+ border-radius: 8px;
91
+ flex-shrink: 0;
92
+ }
93
+
94
+ .cm-mirror-pane__model-copy {
95
+ min-width: 0;
96
+ flex: 1;
97
+ }
98
+
99
+ .cm-mirror-pane__model-name {
100
+ font-weight: 600;
101
+ color: hsl(var(--foreground));
102
+ white-space: nowrap;
103
+ overflow: hidden;
104
+ text-overflow: ellipsis;
105
+ font-size: 14px;
106
+ }
107
+
108
+ @media (min-width: 768px) {
109
+ .cm-mirror-pane__model-name {
110
+ font-size: 16px;
111
+ }
112
+ }
113
+
114
+ .cm-mirror-pane__model-provider {
115
+ font-size: 12px;
116
+ color: hsl(var(--muted-foreground));
117
+ white-space: nowrap;
118
+ overflow: hidden;
119
+ text-overflow: ellipsis;
120
+ }
121
+
122
+ /* Section panel */
123
+ .cm-mirror-pane__section {
124
+ border-radius: 2px;
125
+ border: 1px solid hsl(var(--sidebar-border));
126
+ background: hsl(var(--background) / 0.3);
127
+ padding: 12px;
128
+ display: flex;
129
+ flex-direction: column;
130
+ gap: 12px;
131
+ }
132
+
133
+ .cm-mirror-pane__section-label {
134
+ font-size: 11px;
135
+ text-transform: uppercase;
136
+ letter-spacing: 0.06em;
137
+ color: hsl(var(--muted-foreground));
138
+ }
139
+
140
+ /* Key-value rows */
141
+ .cm-mirror-pane__kv-row {
142
+ display: flex;
143
+ align-items: center;
144
+ justify-content: space-between;
145
+ gap: 12px;
146
+ font-family: var(--font-mono, monospace);
147
+ }
148
+
149
+ .cm-mirror-pane__kv-label {
150
+ color: hsl(var(--muted-foreground));
151
+ }
152
+
153
+ .cm-mirror-pane__kv-value {
154
+ color: hsl(var(--foreground));
155
+ text-align: right;
156
+ }
157
+
158
+ /* Pricing sub-panel */
159
+ .cm-mirror-pane__pricing-block {
160
+ border-radius: 2px;
161
+ border: 1px solid hsl(var(--sidebar-border));
162
+ background: hsl(var(--background) / 0.4);
163
+ padding: 8px;
164
+ display: flex;
165
+ flex-direction: column;
166
+ gap: 6px;
167
+ }
168
+
169
+ .cm-mirror-pane__pricing-header {
170
+ display: flex;
171
+ align-items: center;
172
+ justify-content: space-between;
173
+ gap: 12px;
174
+ }
175
+
176
+ .cm-mirror-pane__pricing-name {
177
+ font-family: var(--font-mono, monospace);
178
+ color: hsl(var(--primary));
179
+ }
180
+
181
+ /* Description block */
182
+ .cm-mirror-pane__description {
183
+ border-radius: 2px;
184
+ border: 1px solid hsl(var(--sidebar-border));
185
+ background: hsl(var(--background) / 0.3);
186
+ padding: 12px;
187
+ color: hsl(var(--muted-foreground));
188
+ line-height: 1.6;
189
+ }
190
+
191
+ /* Settings: tool group */
192
+ .cm-mirror-pane__tool-group {
193
+ border-radius: 2px;
194
+ border: 1px solid hsl(var(--primary) / 0.2);
195
+ background: hsl(var(--primary) / 0.05);
196
+ padding: 12px;
197
+ display: flex;
198
+ flex-direction: column;
199
+ gap: 12px;
200
+ }
201
+
202
+ .cm-mirror-pane__tool-group--fuchsia {
203
+ border-color: hsl(var(--accent) / 0.2);
204
+ background: hsl(var(--accent) / 0.05);
205
+ }
206
+
207
+ .cm-mirror-pane__tool-group-label {
208
+ font-size: 12px;
209
+ font-family: var(--font-mono, monospace);
210
+ }
211
+
212
+ .cm-mirror-pane__tool-toggle {
213
+ display: flex;
214
+ align-items: center;
215
+ justify-content: space-between;
216
+ }
217
+
218
+ .cm-mirror-pane__tool-toggle-label {
219
+ display: flex;
220
+ align-items: center;
221
+ gap: 8px;
222
+ font-size: 14px;
223
+ }
224
+
225
+ /* Empty state */
226
+ .cm-mirror-pane__empty {
227
+ padding: 16px 20px;
228
+ display: flex;
229
+ flex-direction: column;
230
+ align-items: center;
231
+ justify-content: center;
232
+ flex: 1;
233
+ text-align: center;
234
+ }
235
+
236
+ .cm-mirror-pane__empty-icon {
237
+ width: 40px;
238
+ height: 40px;
239
+ color: hsl(var(--muted-foreground) / 0.4);
240
+ margin-bottom: 12px;
241
+ }
242
+
243
+ .cm-mirror-pane__empty-text {
244
+ font-size: 14px;
245
+ color: hsl(var(--muted-foreground) / 0.7);
246
+ }
247
+
248
+ /* No-params state */
249
+ .cm-mirror-pane__no-params {
250
+ border-radius: 2px;
251
+ border: 1px solid hsl(var(--sidebar-border));
252
+ background: hsl(var(--background) / 0.3);
253
+ padding: 16px;
254
+ font-size: 14px;
255
+ color: hsl(var(--muted-foreground));
256
+ }
257
+ `;
258
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/mirror/styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2PrC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Utilities Module
3
+ *
4
+ * Shared CSS utilities for marquee, safe-area, touch, scrollbar, truncation.
5
+ * No React components — these are CSS-only shared classes.
6
+ */
7
+ export { utilitiesStyles } from "./styles";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Utilities Module
3
+ *
4
+ * Shared CSS utilities for marquee, safe-area, touch, scrollbar, truncation.
5
+ * No React components — these are CSS-only shared classes.
6
+ */
7
+ export { utilitiesStyles } from "./styles";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utilities/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Shared Utilities Styles
3
+ *
4
+ * Cross-app CSS utilities: marquee, safe-area, touch, scrollbar, truncation.
5
+ * Extracted from web/src/index.css and desktop/src/styles.css.
6
+ */
7
+ export declare const utilitiesStyles = "\n/* \u2500\u2500 Marquee \u2500\u2500 */\n@keyframes cm-marquee-scroll {\n 0% { transform: translateX(0); }\n 100% { transform: translateX(-50%); }\n}\n\n@keyframes cm-marquee-scroll-reverse {\n 0% { transform: translateX(-50%); }\n 100% { transform: translateX(0); }\n}\n\n.cm-marquee-track {\n animation: cm-marquee-scroll linear infinite;\n will-change: transform;\n}\n\n.cm-marquee-track-reverse {\n animation: cm-marquee-scroll-reverse linear infinite;\n will-change: transform;\n}\n\n/* \u2500\u2500 Safe Area \u2500\u2500 */\n.cm-safe-area-top { padding-top: env(safe-area-inset-top); }\n.cm-safe-area-bottom { padding-bottom: env(safe-area-inset-bottom); }\n.cm-safe-area-left { padding-left: env(safe-area-inset-left); }\n.cm-safe-area-right { padding-right: env(safe-area-inset-right); }\n\n.cm-safe-area-x {\n padding-left: env(safe-area-inset-left);\n padding-right: env(safe-area-inset-right);\n}\n\n.cm-safe-area-y {\n padding-top: env(safe-area-inset-top);\n padding-bottom: env(safe-area-inset-bottom);\n}\n\n/* \u2500\u2500 Touch \u2500\u2500 */\n.cm-touch-manipulation {\n touch-action: manipulation;\n}\n\n.cm-no-select {\n -webkit-user-select: none;\n user-select: none;\n}\n\n/* \u2500\u2500 Scrollbar Hide \u2500\u2500 */\n.cm-scrollbar-hide {\n -ms-overflow-style: none;\n scrollbar-width: none;\n}\n\n.cm-scrollbar-hide::-webkit-scrollbar {\n display: none;\n}\n\n/* \u2500\u2500 Text Truncation \u2500\u2500 */\n.cm-text-truncate {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n}\n\n/* \u2500\u2500 Touch Targets (mobile \u2264 768px) \u2500\u2500 */\n@media (max-width: 768px) {\n .cm-touch-target {\n min-height: 44px;\n min-width: 44px;\n }\n}\n\n/* \u2500\u2500 Mobile Scrollbar (thinner for \u2264 768px) \u2500\u2500 */\n@media (max-width: 768px) {\n .cm-thin-scrollbar::-webkit-scrollbar {\n width: 4px;\n height: 4px;\n }\n}\n";
8
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/utilities/styles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,eAAe,q6DAiF3B,CAAC"}