@compose-market/theme 0.1.4 → 0.1.6

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 (70) hide show
  1. package/README.md +2 -2
  2. package/dist/agents/index.d.ts +5 -24
  3. package/dist/agents/index.d.ts.map +1 -1
  4. package/dist/agents/index.js +12 -9
  5. package/dist/agents/index.js.map +1 -1
  6. package/dist/agents/styles.d.ts +1 -1
  7. package/dist/agents/styles.d.ts.map +1 -1
  8. package/dist/agents/styles.js +110 -736
  9. package/dist/agents/styles.js.map +1 -1
  10. package/dist/app/index.d.ts +2 -2
  11. package/dist/app/index.d.ts.map +1 -1
  12. package/dist/app/index.js +1 -1
  13. package/dist/app/index.js.map +1 -1
  14. package/dist/chain-logos/index.d.ts +345 -5
  15. package/dist/chain-logos/index.d.ts.map +1 -1
  16. package/dist/chain-logos/index.js +59 -4
  17. package/dist/chain-logos/index.js.map +1 -1
  18. package/dist/css/agents.css +110 -736
  19. package/dist/css/entity.css +581 -0
  20. package/dist/css/index.css +1 -0
  21. package/dist/css/index.d.ts +1 -1
  22. package/dist/css/index.d.ts.map +1 -1
  23. package/dist/css/index.js +1 -0
  24. package/dist/css/index.js.map +1 -1
  25. package/dist/css/mirror.css +0 -449
  26. package/dist/css/shell.css +4 -20
  27. package/dist/css/workflows.css +43 -0
  28. package/dist/entity/index.d.ts +58 -0
  29. package/dist/entity/index.d.ts.map +1 -0
  30. package/dist/entity/index.js +22 -0
  31. package/dist/entity/index.js.map +1 -0
  32. package/dist/entity/styles.d.ts +2 -0
  33. package/dist/entity/styles.d.ts.map +1 -0
  34. package/dist/entity/styles.js +583 -0
  35. package/dist/{mirror → entity}/styles.js.map +1 -1
  36. package/dist/index.d.ts +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +1 -0
  39. package/dist/index.js.map +1 -1
  40. package/dist/mirror/index.d.ts +14 -13
  41. package/dist/mirror/index.d.ts.map +1 -1
  42. package/dist/mirror/index.js +7 -9
  43. package/dist/mirror/index.js.map +1 -1
  44. package/dist/session/index.d.ts +2 -2
  45. package/dist/session/index.d.ts.map +1 -1
  46. package/dist/session/index.js +1 -1
  47. package/dist/session/index.js.map +1 -1
  48. package/dist/shell/index.d.ts.map +1 -1
  49. package/dist/shell/index.js +47 -1
  50. package/dist/shell/index.js.map +1 -1
  51. package/dist/shell/styles.d.ts +1 -1
  52. package/dist/shell/styles.d.ts.map +1 -1
  53. package/dist/shell/styles.js +4 -20
  54. package/dist/shell/styles.js.map +1 -1
  55. package/dist/tailwind/preset.d.ts +4 -4
  56. package/dist/tailwind/preset.d.ts.map +1 -1
  57. package/dist/tailwind/preset.js +4 -4
  58. package/dist/tailwind/preset.js.map +1 -1
  59. package/dist/workflows/index.d.ts +9 -9
  60. package/dist/workflows/index.d.ts.map +1 -1
  61. package/dist/workflows/index.js +32 -6
  62. package/dist/workflows/index.js.map +1 -1
  63. package/dist/workflows/styles.d.ts +2 -2
  64. package/dist/workflows/styles.d.ts.map +1 -1
  65. package/dist/workflows/styles.js +44 -1
  66. package/dist/workflows/styles.js.map +1 -1
  67. package/package.json +10 -1
  68. package/dist/mirror/styles.d.ts +0 -7
  69. package/dist/mirror/styles.d.ts.map +0 -1
  70. package/dist/mirror/styles.js +0 -456
@@ -1,449 +0,0 @@
1
-
2
- .cm-mirror-pane {
3
- container-type: inline-size;
4
- display: flex;
5
- flex-direction: column;
6
- min-width: 0;
7
- min-height: 0;
8
- height: auto;
9
- overflow: visible;
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);
22
- }
23
-
24
- .cm-mirror-pane__toolbar {
25
- flex: 0 0 auto;
26
- display: flex;
27
- align-items: center;
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);
32
- }
33
-
34
- .cm-mirror-pane__toolbar-btn {
35
- display: inline-flex;
36
- align-items: center;
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;
57
- }
58
-
59
- .cm-mirror-pane__toolbar-btn:hover,
60
- .cm-mirror-pane__toolbar-btn:focus-visible {
61
- outline: none;
62
- color: hsl(var(--foreground));
63
- border-color: hsl(var(--primary) / 0.2);
64
- background: hsl(var(--primary) / 0.08);
65
- }
66
-
67
- .cm-mirror-pane__toolbar-btn--active-cyan {
68
- border-color: hsl(var(--primary) / 0.36);
69
- background: hsl(var(--primary) / 0.12);
70
- color: hsl(var(--primary));
71
- box-shadow: 0 0 18px hsl(var(--primary) / 0.12);
72
- }
73
-
74
- .cm-mirror-pane__toolbar-btn--active-fuchsia {
75
- border-color: hsl(var(--accent) / 0.34);
76
- background: hsl(var(--accent) / 0.11);
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
- }
94
- }
95
-
96
- .cm-mirror-pane__body {
97
- flex: 0 0 auto;
98
- min-height: 0;
99
- display: flex;
100
- flex-direction: column;
101
- gap: clamp(0.85rem, 3cqi, 1.08rem);
102
- overflow: visible;
103
- padding: clamp(0.85rem, 3cqi, 1.08rem);
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 {
113
- flex: 1;
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;
121
- }
122
-
123
- .cm-mirror-pane__empty-icon {
124
- display: inline-flex;
125
- color: hsl(var(--primary));
126
- opacity: 0.72;
127
- }
128
-
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;
138
- }
139
-
140
- .cm-mirror-pane__model-header {
141
- display: flex;
142
- align-items: flex-start;
143
- gap: 0.75rem;
144
- min-width: 0;
145
- }
146
-
147
- .cm-mirror-pane__model-icon-box {
148
- display: grid;
149
- width: clamp(2.85rem, 8cqi, 3.35rem);
150
- height: clamp(2.85rem, 8cqi, 3.35rem);
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;
163
- }
164
-
165
- .cm-mirror-pane__model-copy {
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;
178
- }
179
-
180
- .cm-mirror-pane__model-name {
181
- min-width: 0;
182
- margin: 0;
183
- color: hsl(var(--foreground));
184
- font-family: var(--font-display), sans-serif;
185
- font-size: clamp(1.06rem, 4cqi, 1.24rem);
186
- font-weight: 800;
187
- line-height: 1.08;
188
- overflow-wrap: anywhere;
189
- }
190
-
191
- .cm-mirror-pane__model-types {
192
- display: inline-flex;
193
- align-items: center;
194
- gap: 0.3rem;
195
- flex-wrap: wrap;
196
- }
197
-
198
- .cm-mirror-pane__badge {
199
- display: inline-flex;
200
- align-items: center;
201
- min-height: 1.58rem;
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.58rem;
207
- font-family: var(--font-mono), monospace;
208
- font-size: 0.7rem;
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;
241
- color: hsl(var(--muted-foreground));
242
- font-family: var(--font-mono), monospace;
243
- font-size: 0.82rem;
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.82rem 0.9rem;
269
- color: hsl(var(--muted-foreground));
270
- font-size: 0.92rem;
271
- line-height: 1.55;
272
- }
273
-
274
- .cm-mirror-pane__section {
275
- display: flex;
276
- flex-direction: column;
277
- gap: 0.6rem;
278
- min-width: 0;
279
- }
280
-
281
- .cm-mirror-pane__section--compact {
282
- padding: 0.75rem;
283
- }
284
-
285
- .cm-mirror-pane__section-label,
286
- .cm-mirror-pane__tool-group-label {
287
- color: hsl(var(--muted-foreground));
288
- font-family: var(--font-mono), monospace;
289
- font-size: 0.74rem;
290
- font-weight: 800;
291
- letter-spacing: 0.1em;
292
- text-transform: uppercase;
293
- }
294
-
295
- .cm-mirror-pane__io-row,
296
- .cm-mirror-pane__kv-row,
297
- .cm-mirror-pane__pricing-header,
298
- .cm-mirror-pane__tool-toggle {
299
- display: flex;
300
- align-items: center;
301
- justify-content: space-between;
302
- gap: 0.75rem;
303
- min-width: 0;
304
- }
305
-
306
- .cm-mirror-pane__io-row {
307
- align-items: flex-start;
308
- }
309
-
310
- .cm-mirror-pane__io-label,
311
- .cm-mirror-pane__kv-label {
312
- flex: 0 0 auto;
313
- color: hsl(var(--muted-foreground));
314
- font-family: var(--font-mono), monospace;
315
- font-size: 0.76rem;
316
- }
317
-
318
- .cm-mirror-pane__io-badges,
319
- .cm-mirror-pane__kv-grid,
320
- .cm-mirror-pane__pricing-entries,
321
- .cm-mirror-pane__custom-content,
322
- .cm-mirror-pane__custom-section {
323
- display: flex;
324
- flex-direction: column;
325
- gap: 0.45rem;
326
- min-width: 0;
327
- }
328
-
329
- .cm-mirror-pane__io-badges {
330
- flex-direction: row;
331
- flex-wrap: wrap;
332
- }
333
-
334
- .cm-mirror-pane__kv-value {
335
- min-width: 0;
336
- color: hsl(var(--foreground));
337
- font-family: var(--font-mono), monospace;
338
- font-size: 0.82rem;
339
- text-align: right;
340
- overflow-wrap: anywhere;
341
- }
342
-
343
- .cm-mirror-pane__pricing-compact,
344
- .cm-mirror-pane__pricing-block,
345
- .cm-mirror-pane__tool-group {
346
- display: flex;
347
- flex-direction: column;
348
- gap: 0.45rem;
349
- padding: 0.62rem 0.7rem;
350
- }
351
-
352
- .cm-mirror-pane__pricing-unit {
353
- color: hsl(var(--muted-foreground) / 0.72);
354
- font-family: var(--font-mono), monospace;
355
- font-size: 0.72rem;
356
- letter-spacing: 0.08em;
357
- text-transform: uppercase;
358
- }
359
-
360
- .cm-mirror-pane__pricing-name {
361
- color: hsl(var(--accent));
362
- font-family: var(--font-mono), monospace;
363
- font-weight: 700;
364
- }
365
-
366
- .cm-mirror-pane__tool-group {
367
- border-color: hsl(var(--primary) / 0.18);
368
- background: hsl(var(--primary) / 0.05);
369
- }
370
-
371
- .cm-mirror-pane__tool-group--fuchsia {
372
- border-color: hsl(var(--accent) / 0.18);
373
- background: hsl(var(--accent) / 0.05);
374
- }
375
-
376
- .cm-mirror-pane__tool-toggle-label {
377
- display: inline-flex;
378
- align-items: center;
379
- gap: 0.42rem;
380
- min-width: 0;
381
- color: hsl(var(--foreground));
382
- }
383
-
384
- .cm-mirror-pane__tool-toggle-label svg,
385
- .cm-mirror-pane__tool-toggle-label-icon {
386
- width: 1rem;
387
- height: 1rem;
388
- flex: 0 0 auto;
389
- }
390
-
391
- .cm-mirror-pane__text-area {
392
- width: 100%;
393
- min-height: 7rem;
394
- padding: 0.72rem;
395
- color: hsl(var(--foreground));
396
- font-family: var(--font-mono), monospace;
397
- font-size: 0.86rem;
398
- resize: vertical;
399
- }
400
-
401
- .cm-mirror-pane__field {
402
- width: 100%;
403
- min-height: 2.45rem;
404
- color: hsl(var(--foreground));
405
- font-family: var(--font-mono), monospace;
406
- font-size: 0.86rem;
407
- }
408
-
409
- .cm-mirror-pane__field:focus,
410
- .cm-mirror-pane__field:focus-visible,
411
- .cm-mirror-pane__text-area:focus,
412
- .cm-mirror-pane__text-area:focus-visible {
413
- outline: none;
414
- border-color: hsl(var(--primary) / 0.5);
415
- box-shadow: 0 0 0 1px hsl(var(--primary) / 0.16);
416
- }
417
-
418
- .cm-mirror-pane__param-description,
419
- .cm-mirror-pane__no-params {
420
- color: hsl(var(--muted-foreground));
421
- font-size: 0.86rem;
422
- line-height: 1.4;
423
- }
424
-
425
- .cm-mirror-pane__no-params {
426
- padding: 1rem;
427
- text-align: center;
428
- }
429
-
430
- @container (max-width: 22rem) {
431
- .cm-mirror-pane__io-row,
432
- .cm-mirror-pane__kv-row,
433
- .cm-mirror-pane__pricing-header,
434
- .cm-mirror-pane__tool-toggle {
435
- align-items: flex-start;
436
- flex-direction: column;
437
- gap: 0.35rem;
438
- }
439
-
440
- .cm-mirror-pane__kv-value {
441
- text-align: left;
442
- }
443
- }
444
-
445
- @media (prefers-reduced-motion: reduce) {
446
- .cm-mirror-pane__toolbar-btn {
447
- transition-duration: 0.01ms !important;
448
- }
449
- }
@@ -166,7 +166,6 @@
166
166
  }
167
167
 
168
168
  .cm-hint {
169
- position: relative;
170
169
  display: inline-flex;
171
170
  align-items: center;
172
171
  }
@@ -185,13 +184,9 @@
185
184
  }
186
185
 
187
186
  .cm-hint__content {
188
- position: absolute;
189
- z-index: 80;
190
- left: 50%;
191
- bottom: calc(100% + 0.45rem);
187
+ z-index: 120;
192
188
  min-width: max-content;
193
189
  max-width: min(18rem, 72vw);
194
- transform: translate(-50%, 0.25rem);
195
190
  border: 1px solid hsl(var(--primary) / 0.26);
196
191
  border-radius: 8px;
197
192
  background:
@@ -204,23 +199,12 @@
204
199
  font-size: 0.68rem;
205
200
  letter-spacing: 0.04em;
206
201
  line-height: 1.35;
207
- opacity: 0;
208
202
  padding: 0.48rem 0.58rem;
209
203
  pointer-events: none;
210
204
  text-align: left;
211
- transition:
212
- opacity 140ms ease,
213
- transform 140ms ease;
214
205
  white-space: normal;
215
206
  }
216
207
 
217
- .cm-hint__trigger:hover + .cm-hint__content,
218
- .cm-hint__trigger:focus-visible + .cm-hint__content,
219
- .cm-hint:focus-within .cm-hint__content {
220
- opacity: 1;
221
- transform: translate(-50%, 0);
222
- }
223
-
224
208
  .cm-excerpt {
225
209
  min-width: 0;
226
210
  max-width: 100%;
@@ -448,7 +432,7 @@
448
432
  }
449
433
 
450
434
  .cm-chat-workspace,
451
- .cm-compose-workspace {
435
+ .cm-workspace {
452
436
  display: flex;
453
437
  width: 100%;
454
438
  height: 100%;
@@ -461,13 +445,13 @@
461
445
  flex-direction: column;
462
446
  }
463
447
 
464
- .cm-compose-workspace {
448
+ .cm-workspace {
465
449
  gap: clamp(0.7rem, 1.4vw, 1rem);
466
450
  flex-direction: column;
467
451
  }
468
452
 
469
453
  @media (min-width: 1024px) {
470
- .cm-compose-workspace {
454
+ .cm-workspace {
471
455
  flex-direction: row;
472
456
  }
473
457
  }
@@ -592,6 +592,49 @@
592
592
  }
593
593
  }
594
594
 
595
+ /* Shared card-backed workflow overrides */
596
+ .cm-workflow-card.cm-card {
597
+ display: grid;
598
+ min-height: 0;
599
+ overflow: visible;
600
+ border-color: hsl(var(--accent) / 0.24);
601
+ background:
602
+ linear-gradient(145deg, hsl(226 21% 23% / 0.42), hsl(221 50% 9% / 0.32)),
603
+ radial-gradient(circle at 18% 0%, hsl(var(--accent) / 0.08), transparent 34%),
604
+ hsl(224 36% 13% / 0.24);
605
+ }
606
+
607
+ .cm-workflow-card.cm-card .cm-card__body {
608
+ padding: 1rem;
609
+ }
610
+
611
+ .cm-workflow-card__banner-image {
612
+ display: block;
613
+ width: 100%;
614
+ height: 100%;
615
+ object-fit: cover;
616
+ }
617
+
618
+ .cm-workflow-card__coordinator,
619
+ .cm-workflow-card__agents,
620
+ .cm-workflow-card__lease,
621
+ .cm-workflow-card__endpoint-row,
622
+ .cm-workflow-card__agent-preview {
623
+ min-width: 0;
624
+ max-width: 100%;
625
+ overflow: visible;
626
+ }
627
+
628
+ .cm-workflow-card__coordinator-value,
629
+ .cm-workflow-card__endpoint-code,
630
+ .cm-workflow-card__agent-preview-name,
631
+ .cm-workflow-card__agent-preview-model {
632
+ white-space: normal;
633
+ overflow: visible;
634
+ text-overflow: clip;
635
+ overflow-wrap: anywhere;
636
+ }
637
+
595
638
  /* Plan review shell */
596
639
  .cm-plan-review {
597
640
  display: flex;
@@ -0,0 +1,58 @@
1
+ import * as React from "react";
2
+ export type Variant = "market" | "detail" | "pane" | "compact";
3
+ export type Tone = "neutral" | "cyan" | "green" | "fuchsia" | "warning" | "danger";
4
+ export interface Mark {
5
+ label: React.ReactNode;
6
+ icon?: React.ReactNode;
7
+ tone?: Tone;
8
+ }
9
+ export interface Badge {
10
+ label: React.ReactNode;
11
+ icon?: React.ReactNode;
12
+ tone?: Tone;
13
+ }
14
+ export interface Metric {
15
+ label: React.ReactNode;
16
+ value: React.ReactNode;
17
+ icon?: React.ReactNode;
18
+ tone?: Tone;
19
+ }
20
+ export interface Tag {
21
+ label: React.ReactNode;
22
+ title?: string;
23
+ }
24
+ export interface Section {
25
+ label?: React.ReactNode;
26
+ children: React.ReactNode;
27
+ }
28
+ export interface CardProps extends Omit<React.HTMLAttributes<HTMLElement>, "title"> {
29
+ variant?: Variant;
30
+ media?: React.ReactNode;
31
+ mediaAlt?: string;
32
+ mediaFallback?: React.ReactNode;
33
+ title: React.ReactNode;
34
+ marks?: Mark[];
35
+ subtitle?: React.ReactNode;
36
+ meta?: Badge[];
37
+ description?: React.ReactNode;
38
+ badges?: Badge[];
39
+ metrics?: Metric[];
40
+ focusLabel?: React.ReactNode;
41
+ focusValue?: React.ReactNode;
42
+ focusIcon?: React.ReactNode;
43
+ tagsTitle?: React.ReactNode;
44
+ tags?: Tag[];
45
+ sections?: Section[];
46
+ headerAction?: React.ReactNode;
47
+ footer?: React.ReactNode;
48
+ actions?: React.ReactNode;
49
+ interactive?: boolean;
50
+ status?: "default" | "running";
51
+ }
52
+ export declare function Card({ variant, media, mediaAlt, mediaFallback, title, marks, subtitle, meta, description, badges, metrics, focusLabel, focusValue, focusIcon, tagsTitle, tags, sections, headerAction, footer, actions, interactive, status, className, ...props }: CardProps): React.JSX.Element;
53
+ export interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement> {
54
+ media?: boolean;
55
+ rows?: number;
56
+ }
57
+ export declare function Skeleton({ className, media, rows, ...props }: SkeletonProps): React.JSX.Element;
58
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/entity/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cx } from "../internal/cx";
3
+ function tone(value) {
4
+ return value || "neutral";
5
+ }
6
+ function Mark({ mark }) {
7
+ return (_jsxs("span", { className: "cm-card__mark", "data-tone": tone(mark.tone), "aria-label": typeof mark.label === "string" ? mark.label : undefined, children: [mark.icon ? _jsx("span", { className: "cm-card__mark-icon", children: mark.icon }) : null, _jsx("span", { className: "cm-card__mark-label", children: mark.label })] }));
8
+ }
9
+ function Badge({ badge, className }) {
10
+ return (_jsxs("span", { className: className, "data-tone": tone(badge.tone), children: [badge.icon ? _jsx("span", { className: `${className}-icon`, children: badge.icon }) : null, _jsx("span", { children: badge.label })] }));
11
+ }
12
+ function text(value) {
13
+ return typeof value === "string" && value.trim() ? value : undefined;
14
+ }
15
+ export function Card({ variant = "detail", media, mediaAlt, mediaFallback, title, marks = [], subtitle, meta = [], description, badges = [], metrics = [], focusLabel, focusValue, focusIcon, tagsTitle = "Tags", tags = [], sections = [], headerAction, footer, actions, interactive = false, status = "default", className, ...props }) {
16
+ const mediaNode = media ?? (mediaFallback ? (_jsx("span", { className: "cm-card__media-fallback", children: mediaFallback })) : null);
17
+ return (_jsxs("article", { className: cx("cm-card", `cm-card--${variant}`, status === "running" && "cm-card--running", interactive && "cm-card--interactive", className), ...props, children: [_jsxs("div", { className: "cm-card__body", children: [_jsxs("div", { className: "cm-card__header", children: [mediaNode ? (_jsx("div", { className: "cm-card__media", "aria-label": mediaAlt, children: mediaNode })) : null, _jsxs("div", { className: "cm-card__identity", children: [_jsxs("div", { className: "cm-card__title-row", children: [_jsx("h3", { className: "cm-card__title", children: title }), marks.length > 0 ? (_jsx("span", { className: "cm-card__marks", children: marks.map((mark, index) => _jsx(Mark, { mark: mark }, index)) })) : null, headerAction ? _jsx("span", { className: "cm-card__header-action", children: headerAction }) : null] }), subtitle ? _jsx("div", { className: "cm-card__subtitle", children: subtitle }) : null, meta.length > 0 ? (_jsx("div", { className: "cm-card__meta", children: meta.map((item, index) => _jsx(Badge, { badge: item, className: "cm-card__meta-chip" }, index)) })) : null] })] }), description ? _jsx("div", { className: "cm-card__description", children: description }) : null, badges.length > 0 ? (_jsx("div", { className: "cm-card__badges", children: badges.map((badge, index) => _jsx(Badge, { badge: badge, className: "cm-card__badge" }, index)) })) : null, metrics.length > 0 ? (_jsx("div", { className: "cm-card__metrics", children: metrics.map((metric, index) => (_jsxs("div", { className: "cm-card__metric", "data-tone": tone(metric.tone), title: text(metric.label), "aria-label": text(metric.label), children: [metric.icon ? _jsx("span", { className: "cm-card__metric-icon", children: metric.icon }) : null, _jsxs("span", { className: "cm-card__metric-copy", children: [_jsx("span", { className: "cm-card__metric-label", children: metric.label }), _jsx("strong", { className: "cm-card__metric-value", children: metric.value })] })] }, index))) })) : null, focusValue ? (_jsxs("div", { className: "cm-card__focus", children: [focusIcon ? _jsx("span", { className: "cm-card__focus-icon", children: focusIcon }) : null, _jsxs("span", { className: "cm-card__focus-copy", children: [focusLabel ? _jsx("span", { className: "cm-card__focus-label", children: focusLabel }) : null, _jsx("strong", { className: "cm-card__focus-value", children: focusValue })] })] })) : null, tags.length > 0 ? (_jsxs("div", { className: "cm-card__tags-block", children: [tagsTitle ? _jsx("div", { className: "cm-card__tags-title", children: tagsTitle }) : null, _jsx("div", { className: "cm-card__tags", children: tags.map((tag, index) => (_jsx("span", { className: "cm-card__tag", title: tag.title, children: tag.label }, index))) })] })) : null, sections.length > 0 ? (_jsx("div", { className: "cm-card__sections", children: sections.map((section, index) => (_jsxs("section", { className: "cm-card__section", children: [section.label ? _jsx("div", { className: "cm-card__section-label", children: section.label }) : null, _jsx("div", { className: "cm-card__section-body", children: section.children })] }, index))) })) : null, footer ? _jsx("div", { className: "cm-card__footer", children: footer }) : null] }), actions ? _jsx("div", { className: "cm-card__actions", children: actions }) : null] }));
18
+ }
19
+ export function Skeleton({ className, media = true, rows = 4, ...props }) {
20
+ return (_jsx("div", { className: cx("cm-card cm-card--skeleton", className), ...props, children: _jsxs("div", { className: "cm-card__body", children: [_jsxs("div", { className: "cm-card__header", children: [media ? _jsx("div", { className: "cm-card__skeleton cm-card__skeleton--media" }) : null, _jsxs("div", { className: "cm-card__identity", children: [_jsx("div", { className: "cm-card__skeleton cm-card__skeleton--title" }), _jsx("div", { className: "cm-card__skeleton cm-card__skeleton--line" })] })] }), Array.from({ length: rows }).map((_, index) => (_jsx("div", { className: "cm-card__skeleton cm-card__skeleton--line" }, index)))] }) }));
21
+ }
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entity/index.tsx"],"names":[],"mappings":"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"}