@shortwind/catalog 0.1.0-beta.10

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 (82) hide show
  1. package/README.md +31 -0
  2. package/dist/registry/badge/CHANGELOG.md +5 -0
  3. package/dist/registry/badge.css +44 -0
  4. package/dist/registry/badge@0.0.1.css +44 -0
  5. package/dist/registry/button/CHANGELOG.md +5 -0
  6. package/dist/registry/button.css +74 -0
  7. package/dist/registry/button@0.0.1.css +74 -0
  8. package/dist/registry/card/CHANGELOG.md +5 -0
  9. package/dist/registry/card.css +43 -0
  10. package/dist/registry/card@0.0.1.css +43 -0
  11. package/dist/registry/code/CHANGELOG.md +5 -0
  12. package/dist/registry/code.css +22 -0
  13. package/dist/registry/code@0.0.1.css +22 -0
  14. package/dist/registry/dialog/CHANGELOG.md +5 -0
  15. package/dist/registry/dialog.css +33 -0
  16. package/dist/registry/dialog@0.0.1.css +33 -0
  17. package/dist/registry/empty/CHANGELOG.md +5 -0
  18. package/dist/registry/empty.css +27 -0
  19. package/dist/registry/empty@0.0.1.css +27 -0
  20. package/dist/registry/feedback/CHANGELOG.md +5 -0
  21. package/dist/registry/feedback.css +47 -0
  22. package/dist/registry/feedback@0.0.1.css +47 -0
  23. package/dist/registry/form/CHANGELOG.md +5 -0
  24. package/dist/registry/form.css +67 -0
  25. package/dist/registry/form@0.0.1.css +67 -0
  26. package/dist/registry/icon/CHANGELOG.md +5 -0
  27. package/dist/registry/icon.css +27 -0
  28. package/dist/registry/icon@0.0.1.css +27 -0
  29. package/dist/registry/index.json +23 -0
  30. package/dist/registry/layout/CHANGELOG.md +5 -0
  31. package/dist/registry/layout.css +70 -0
  32. package/dist/registry/layout@0.0.1.css +70 -0
  33. package/dist/registry/list/CHANGELOG.md +5 -0
  34. package/dist/registry/list.css +37 -0
  35. package/dist/registry/list@0.0.1.css +37 -0
  36. package/dist/registry/manifest.json +1867 -0
  37. package/dist/registry/media/CHANGELOG.md +5 -0
  38. package/dist/registry/media.css +37 -0
  39. package/dist/registry/media@0.0.1.css +37 -0
  40. package/dist/registry/navigation/CHANGELOG.md +5 -0
  41. package/dist/registry/navigation.css +38 -0
  42. package/dist/registry/navigation@0.0.1.css +38 -0
  43. package/dist/registry/presets.json +6 -0
  44. package/dist/registry/progress/CHANGELOG.md +5 -0
  45. package/dist/registry/progress.css +22 -0
  46. package/dist/registry/progress@0.0.1.css +22 -0
  47. package/dist/registry/recipes/badge.css +44 -0
  48. package/dist/registry/recipes/button.css +74 -0
  49. package/dist/registry/recipes/card.css +43 -0
  50. package/dist/registry/recipes/code.css +22 -0
  51. package/dist/registry/recipes/dialog.css +33 -0
  52. package/dist/registry/recipes/empty.css +27 -0
  53. package/dist/registry/recipes/feedback.css +47 -0
  54. package/dist/registry/recipes/form.css +67 -0
  55. package/dist/registry/recipes/icon.css +27 -0
  56. package/dist/registry/recipes/layout.css +70 -0
  57. package/dist/registry/recipes/list.css +37 -0
  58. package/dist/registry/recipes/media.css +37 -0
  59. package/dist/registry/recipes/navigation.css +38 -0
  60. package/dist/registry/recipes/progress.css +22 -0
  61. package/dist/registry/recipes/skeleton.css +22 -0
  62. package/dist/registry/recipes/surface.css +45 -0
  63. package/dist/registry/recipes/table.css +37 -0
  64. package/dist/registry/recipes/text.css +59 -0
  65. package/dist/registry/recipes/tooltip.css +11 -0
  66. package/dist/registry/skeleton/CHANGELOG.md +5 -0
  67. package/dist/registry/skeleton.css +22 -0
  68. package/dist/registry/skeleton@0.0.1.css +22 -0
  69. package/dist/registry/surface/CHANGELOG.md +5 -0
  70. package/dist/registry/surface.css +45 -0
  71. package/dist/registry/surface@0.0.2.css +45 -0
  72. package/dist/registry/table/CHANGELOG.md +5 -0
  73. package/dist/registry/table.css +37 -0
  74. package/dist/registry/table@0.0.1.css +37 -0
  75. package/dist/registry/text/CHANGELOG.md +5 -0
  76. package/dist/registry/text.css +59 -0
  77. package/dist/registry/text@0.0.1.css +59 -0
  78. package/dist/registry/tooltip/CHANGELOG.md +5 -0
  79. package/dist/registry/tooltip.css +11 -0
  80. package/dist/registry/tooltip@0.0.1.css +11 -0
  81. package/dist/tsconfig.tsbuildinfo +1 -0
  82. package/package.json +33 -0
@@ -0,0 +1,1867 @@
1
+ {
2
+ "families": [
3
+ {
4
+ "name": "badge",
5
+ "recipes": [
6
+ {
7
+ "description": "Badge shell — shape, sizing, focus ring. No bg/text/border color so\n variants can supply their own tone without conflicts.",
8
+ "expansion": [
9
+ "inline-flex",
10
+ "items-center",
11
+ "rounded-full",
12
+ "border",
13
+ "px-2.5",
14
+ "py-0.5",
15
+ "text-xs",
16
+ "font-medium",
17
+ "transition-colors",
18
+ "focus:outline-none",
19
+ "focus:ring-2",
20
+ "focus:ring-ring",
21
+ "focus:ring-offset-2"
22
+ ],
23
+ "name": "badge-base"
24
+ },
25
+ {
26
+ "description": "Default neutral badge.",
27
+ "expansion": [
28
+ "inline-flex",
29
+ "items-center",
30
+ "gap-1",
31
+ "rounded-full",
32
+ "bg-muted",
33
+ "px-2",
34
+ "py-0.5",
35
+ "text-xs",
36
+ "font-medium",
37
+ "text-muted-foreground"
38
+ ],
39
+ "name": "badge"
40
+ },
41
+ {
42
+ "description": "Success tone badge.",
43
+ "expansion": [
44
+ "inline-flex",
45
+ "items-center",
46
+ "gap-1",
47
+ "rounded-full",
48
+ "bg-green-100",
49
+ "px-2",
50
+ "py-0.5",
51
+ "text-xs",
52
+ "font-medium",
53
+ "text-green-800",
54
+ "dark:bg-green-900",
55
+ "dark:text-green-200"
56
+ ],
57
+ "name": "badge-success"
58
+ },
59
+ {
60
+ "description": "Warning tone badge.",
61
+ "expansion": [
62
+ "inline-flex",
63
+ "items-center",
64
+ "gap-1",
65
+ "rounded-full",
66
+ "bg-amber-100",
67
+ "px-2",
68
+ "py-0.5",
69
+ "text-xs",
70
+ "font-medium",
71
+ "text-amber-800",
72
+ "dark:bg-amber-900",
73
+ "dark:text-amber-200"
74
+ ],
75
+ "name": "badge-warning"
76
+ },
77
+ {
78
+ "description": "Danger tone badge.",
79
+ "expansion": [
80
+ "inline-flex",
81
+ "items-center",
82
+ "gap-1",
83
+ "rounded-full",
84
+ "bg-destructive/15",
85
+ "px-2",
86
+ "py-0.5",
87
+ "text-xs",
88
+ "font-medium",
89
+ "text-destructive"
90
+ ],
91
+ "name": "badge-danger"
92
+ },
93
+ {
94
+ "description": "Info tone badge.",
95
+ "expansion": [
96
+ "inline-flex",
97
+ "items-center",
98
+ "gap-1",
99
+ "rounded-full",
100
+ "bg-primary/15",
101
+ "px-2",
102
+ "py-0.5",
103
+ "text-xs",
104
+ "font-medium",
105
+ "text-primary"
106
+ ],
107
+ "name": "badge-info"
108
+ },
109
+ {
110
+ "description": "Outline badge — no fill.",
111
+ "expansion": [
112
+ "inline-flex",
113
+ "items-center",
114
+ "gap-1",
115
+ "rounded-full",
116
+ "border",
117
+ "border-border",
118
+ "px-2",
119
+ "py-0.5",
120
+ "text-xs",
121
+ "font-medium",
122
+ "text-foreground"
123
+ ],
124
+ "name": "badge-outline"
125
+ }
126
+ ],
127
+ "sha": "8548b9a7305a0a59",
128
+ "version": "0.0.1"
129
+ },
130
+ {
131
+ "name": "button",
132
+ "recipes": [
133
+ {
134
+ "description": "Shared button base — sizing, focus ring, disabled state.",
135
+ "expansion": [
136
+ "inline-flex",
137
+ "items-center",
138
+ "justify-center",
139
+ "gap-2",
140
+ "rounded-md",
141
+ "px-4",
142
+ "py-2",
143
+ "text-sm",
144
+ "font-medium",
145
+ "transition-colors",
146
+ "focus-visible:outline-2",
147
+ "focus-visible:outline-offset-2",
148
+ "focus-visible:outline-ring",
149
+ "disabled:cursor-not-allowed",
150
+ "disabled:opacity-50"
151
+ ],
152
+ "name": "btn-base"
153
+ },
154
+ {
155
+ "description": "Primary call-to-action button.",
156
+ "expansion": [
157
+ "inline-flex",
158
+ "items-center",
159
+ "justify-center",
160
+ "gap-2",
161
+ "rounded-md",
162
+ "px-4",
163
+ "py-2",
164
+ "text-sm",
165
+ "font-medium",
166
+ "transition-colors",
167
+ "focus-visible:outline-2",
168
+ "focus-visible:outline-offset-2",
169
+ "focus-visible:outline-ring",
170
+ "disabled:cursor-not-allowed",
171
+ "disabled:opacity-50",
172
+ "bg-primary",
173
+ "text-primary-foreground",
174
+ "hover:bg-primary/90"
175
+ ],
176
+ "name": "btn-primary"
177
+ },
178
+ {
179
+ "description": "Small primary button.",
180
+ "expansion": [
181
+ "inline-flex",
182
+ "items-center",
183
+ "justify-center",
184
+ "gap-2",
185
+ "rounded-md",
186
+ "px-4",
187
+ "py-2",
188
+ "text-sm",
189
+ "font-medium",
190
+ "transition-colors",
191
+ "focus-visible:outline-2",
192
+ "focus-visible:outline-offset-2",
193
+ "focus-visible:outline-ring",
194
+ "disabled:cursor-not-allowed",
195
+ "disabled:opacity-50",
196
+ "bg-primary",
197
+ "text-primary-foreground",
198
+ "hover:bg-primary/90",
199
+ "px-3",
200
+ "py-1.5",
201
+ "text-xs"
202
+ ],
203
+ "name": "btn-primary-sm"
204
+ },
205
+ {
206
+ "description": "Large primary button.",
207
+ "expansion": [
208
+ "inline-flex",
209
+ "items-center",
210
+ "justify-center",
211
+ "gap-2",
212
+ "rounded-md",
213
+ "px-4",
214
+ "py-2",
215
+ "text-sm",
216
+ "font-medium",
217
+ "transition-colors",
218
+ "focus-visible:outline-2",
219
+ "focus-visible:outline-offset-2",
220
+ "focus-visible:outline-ring",
221
+ "disabled:cursor-not-allowed",
222
+ "disabled:opacity-50",
223
+ "bg-primary",
224
+ "text-primary-foreground",
225
+ "hover:bg-primary/90",
226
+ "px-6",
227
+ "py-3",
228
+ "text-base"
229
+ ],
230
+ "name": "btn-primary-lg"
231
+ },
232
+ {
233
+ "description": "Secondary button — bordered surface tone.",
234
+ "expansion": [
235
+ "inline-flex",
236
+ "items-center",
237
+ "justify-center",
238
+ "gap-2",
239
+ "rounded-md",
240
+ "px-4",
241
+ "py-2",
242
+ "text-sm",
243
+ "font-medium",
244
+ "transition-colors",
245
+ "focus-visible:outline-2",
246
+ "focus-visible:outline-offset-2",
247
+ "focus-visible:outline-ring",
248
+ "disabled:cursor-not-allowed",
249
+ "disabled:opacity-50",
250
+ "border",
251
+ "border-border",
252
+ "bg-secondary",
253
+ "text-secondary-foreground",
254
+ "hover:bg-secondary/80"
255
+ ],
256
+ "name": "btn-secondary"
257
+ },
258
+ {
259
+ "description": "Small secondary button.",
260
+ "expansion": [
261
+ "inline-flex",
262
+ "items-center",
263
+ "justify-center",
264
+ "gap-2",
265
+ "rounded-md",
266
+ "px-4",
267
+ "py-2",
268
+ "text-sm",
269
+ "font-medium",
270
+ "transition-colors",
271
+ "focus-visible:outline-2",
272
+ "focus-visible:outline-offset-2",
273
+ "focus-visible:outline-ring",
274
+ "disabled:cursor-not-allowed",
275
+ "disabled:opacity-50",
276
+ "border",
277
+ "border-border",
278
+ "bg-secondary",
279
+ "text-secondary-foreground",
280
+ "hover:bg-secondary/80",
281
+ "px-3",
282
+ "py-1.5",
283
+ "text-xs"
284
+ ],
285
+ "name": "btn-secondary-sm"
286
+ },
287
+ {
288
+ "description": "Large secondary button.",
289
+ "expansion": [
290
+ "inline-flex",
291
+ "items-center",
292
+ "justify-center",
293
+ "gap-2",
294
+ "rounded-md",
295
+ "px-4",
296
+ "py-2",
297
+ "text-sm",
298
+ "font-medium",
299
+ "transition-colors",
300
+ "focus-visible:outline-2",
301
+ "focus-visible:outline-offset-2",
302
+ "focus-visible:outline-ring",
303
+ "disabled:cursor-not-allowed",
304
+ "disabled:opacity-50",
305
+ "border",
306
+ "border-border",
307
+ "bg-secondary",
308
+ "text-secondary-foreground",
309
+ "hover:bg-secondary/80",
310
+ "px-6",
311
+ "py-3",
312
+ "text-base"
313
+ ],
314
+ "name": "btn-secondary-lg"
315
+ },
316
+ {
317
+ "description": "Ghost button — text only, no background.",
318
+ "expansion": [
319
+ "inline-flex",
320
+ "items-center",
321
+ "justify-center",
322
+ "gap-2",
323
+ "rounded-md",
324
+ "px-4",
325
+ "py-2",
326
+ "text-sm",
327
+ "font-medium",
328
+ "transition-colors",
329
+ "focus-visible:outline-2",
330
+ "focus-visible:outline-offset-2",
331
+ "focus-visible:outline-ring",
332
+ "disabled:cursor-not-allowed",
333
+ "disabled:opacity-50",
334
+ "text-foreground",
335
+ "hover:bg-muted"
336
+ ],
337
+ "name": "btn-ghost"
338
+ },
339
+ {
340
+ "description": "Small ghost button.",
341
+ "expansion": [
342
+ "inline-flex",
343
+ "items-center",
344
+ "justify-center",
345
+ "gap-2",
346
+ "rounded-md",
347
+ "px-4",
348
+ "py-2",
349
+ "text-sm",
350
+ "font-medium",
351
+ "transition-colors",
352
+ "focus-visible:outline-2",
353
+ "focus-visible:outline-offset-2",
354
+ "focus-visible:outline-ring",
355
+ "disabled:cursor-not-allowed",
356
+ "disabled:opacity-50",
357
+ "text-foreground",
358
+ "hover:bg-muted",
359
+ "px-3",
360
+ "py-1.5",
361
+ "text-xs"
362
+ ],
363
+ "name": "btn-ghost-sm"
364
+ },
365
+ {
366
+ "description": "Large ghost button.",
367
+ "expansion": [
368
+ "inline-flex",
369
+ "items-center",
370
+ "justify-center",
371
+ "gap-2",
372
+ "rounded-md",
373
+ "px-4",
374
+ "py-2",
375
+ "text-sm",
376
+ "font-medium",
377
+ "transition-colors",
378
+ "focus-visible:outline-2",
379
+ "focus-visible:outline-offset-2",
380
+ "focus-visible:outline-ring",
381
+ "disabled:cursor-not-allowed",
382
+ "disabled:opacity-50",
383
+ "text-foreground",
384
+ "hover:bg-muted",
385
+ "px-6",
386
+ "py-3",
387
+ "text-base"
388
+ ],
389
+ "name": "btn-ghost-lg"
390
+ },
391
+ {
392
+ "description": "Destructive button.",
393
+ "expansion": [
394
+ "inline-flex",
395
+ "items-center",
396
+ "justify-center",
397
+ "gap-2",
398
+ "rounded-md",
399
+ "px-4",
400
+ "py-2",
401
+ "text-sm",
402
+ "font-medium",
403
+ "transition-colors",
404
+ "focus-visible:outline-2",
405
+ "focus-visible:outline-offset-2",
406
+ "focus-visible:outline-ring",
407
+ "disabled:cursor-not-allowed",
408
+ "disabled:opacity-50",
409
+ "bg-destructive",
410
+ "text-destructive-foreground",
411
+ "hover:bg-destructive/90"
412
+ ],
413
+ "name": "btn-danger"
414
+ },
415
+ {
416
+ "description": "Outline button — bordered without fill.",
417
+ "expansion": [
418
+ "inline-flex",
419
+ "items-center",
420
+ "justify-center",
421
+ "gap-2",
422
+ "rounded-md",
423
+ "px-4",
424
+ "py-2",
425
+ "text-sm",
426
+ "font-medium",
427
+ "transition-colors",
428
+ "focus-visible:outline-2",
429
+ "focus-visible:outline-offset-2",
430
+ "focus-visible:outline-ring",
431
+ "disabled:cursor-not-allowed",
432
+ "disabled:opacity-50",
433
+ "border",
434
+ "border-primary",
435
+ "text-primary",
436
+ "hover:bg-primary/10"
437
+ ],
438
+ "name": "btn-outline"
439
+ },
440
+ {
441
+ "description": "Square icon-only button.",
442
+ "expansion": [
443
+ "inline-flex",
444
+ "h-9",
445
+ "w-9",
446
+ "items-center",
447
+ "justify-center",
448
+ "rounded-md",
449
+ "text-foreground",
450
+ "transition-colors",
451
+ "hover:bg-muted",
452
+ "focus-visible:outline-2",
453
+ "focus-visible:outline-offset-2",
454
+ "focus-visible:outline-ring",
455
+ "disabled:cursor-not-allowed",
456
+ "disabled:opacity-50"
457
+ ],
458
+ "name": "btn-icon"
459
+ }
460
+ ],
461
+ "sha": "777fa510c4ab4aeb",
462
+ "version": "0.0.1"
463
+ },
464
+ {
465
+ "name": "card",
466
+ "recipes": [
467
+ {
468
+ "description": "Default content card with border, padding, and surface color.",
469
+ "expansion": [
470
+ "rounded-lg",
471
+ "border",
472
+ "border-border",
473
+ "bg-card",
474
+ "text-card-foreground",
475
+ "p-4"
476
+ ],
477
+ "name": "card"
478
+ },
479
+ {
480
+ "description": "Card with raised shadow for emphasis.",
481
+ "expansion": [
482
+ "rounded-lg",
483
+ "border",
484
+ "border-border",
485
+ "bg-card",
486
+ "text-card-foreground",
487
+ "p-4",
488
+ "shadow-md"
489
+ ],
490
+ "name": "card-elevated"
491
+ },
492
+ {
493
+ "description": "Card without border, on a muted surface.",
494
+ "expansion": [
495
+ "rounded-lg",
496
+ "bg-muted",
497
+ "text-foreground",
498
+ "p-4"
499
+ ],
500
+ "name": "card-flat"
501
+ },
502
+ {
503
+ "description": "Clickable card with hover and focus-visible states.",
504
+ "expansion": [
505
+ "rounded-lg",
506
+ "border",
507
+ "border-border",
508
+ "bg-card",
509
+ "text-card-foreground",
510
+ "p-4",
511
+ "cursor-pointer",
512
+ "transition-shadow",
513
+ "hover:shadow-md",
514
+ "focus-visible:outline-2",
515
+ "focus-visible:outline-offset-2",
516
+ "focus-visible:outline-ring"
517
+ ],
518
+ "name": "card-interactive"
519
+ },
520
+ {
521
+ "description": "Card header region with bottom divider.",
522
+ "expansion": [
523
+ "mb-3",
524
+ "border-b",
525
+ "border-border",
526
+ "pb-3"
527
+ ],
528
+ "name": "card-header"
529
+ },
530
+ {
531
+ "description": "Card body region.",
532
+ "expansion": [
533
+ "py-1"
534
+ ],
535
+ "name": "card-body"
536
+ },
537
+ {
538
+ "description": "Card footer with top divider and right-aligned actions.",
539
+ "expansion": [
540
+ "mt-3",
541
+ "flex",
542
+ "items-center",
543
+ "justify-end",
544
+ "gap-2",
545
+ "border-t",
546
+ "border-border",
547
+ "pt-3"
548
+ ],
549
+ "name": "card-footer"
550
+ }
551
+ ],
552
+ "sha": "4813cef10cd21824",
553
+ "version": "0.0.1"
554
+ },
555
+ {
556
+ "name": "code",
557
+ "recipes": [
558
+ {
559
+ "description": "Inline code span.",
560
+ "expansion": [
561
+ "rounded",
562
+ "bg-muted",
563
+ "px-1.5",
564
+ "py-0.5",
565
+ "font-mono",
566
+ "text-[0.875em]",
567
+ "text-foreground"
568
+ ],
569
+ "name": "code-inline"
570
+ },
571
+ {
572
+ "description": "Block of preformatted code.",
573
+ "expansion": [
574
+ "overflow-x-auto",
575
+ "rounded-md",
576
+ "border",
577
+ "border-border",
578
+ "bg-muted",
579
+ "p-4",
580
+ "font-mono",
581
+ "text-sm",
582
+ "leading-6",
583
+ "text-foreground"
584
+ ],
585
+ "name": "code-block"
586
+ },
587
+ {
588
+ "description": "Keyboard shortcut hint.",
589
+ "expansion": [
590
+ "inline-flex",
591
+ "items-center",
592
+ "rounded",
593
+ "border",
594
+ "border-border",
595
+ "bg-muted",
596
+ "px-1.5",
597
+ "py-0.5",
598
+ "font-mono",
599
+ "text-xs",
600
+ "text-foreground",
601
+ "shadow-sm"
602
+ ],
603
+ "name": "kbd"
604
+ }
605
+ ],
606
+ "sha": "cc8d2b0bedb5b453",
607
+ "version": "0.0.1"
608
+ },
609
+ {
610
+ "name": "dialog",
611
+ "recipes": [
612
+ {
613
+ "description": "Modal dialog wrapper — covers the viewport, centers content.",
614
+ "expansion": [
615
+ "fixed",
616
+ "inset-0",
617
+ "z-50",
618
+ "flex",
619
+ "items-center",
620
+ "justify-center",
621
+ "p-4"
622
+ ],
623
+ "name": "dialog"
624
+ },
625
+ {
626
+ "description": "Dimmed overlay behind the dialog.",
627
+ "expansion": [
628
+ "fixed",
629
+ "inset-0",
630
+ "z-40",
631
+ "bg-black/50"
632
+ ],
633
+ "name": "dialog-overlay"
634
+ },
635
+ {
636
+ "description": "Dialog content panel.",
637
+ "expansion": [
638
+ "relative",
639
+ "z-50",
640
+ "w-full",
641
+ "max-w-md",
642
+ "rounded-lg",
643
+ "border",
644
+ "border-border",
645
+ "bg-popover",
646
+ "text-popover-foreground",
647
+ "p-6",
648
+ "shadow-xl"
649
+ ],
650
+ "name": "dialog-content"
651
+ },
652
+ {
653
+ "description": "Dialog header region with title.",
654
+ "expansion": [
655
+ "mb-4",
656
+ "flex",
657
+ "flex-col",
658
+ "gap-1"
659
+ ],
660
+ "name": "dialog-header"
661
+ },
662
+ {
663
+ "description": "Dialog footer with right-aligned actions.",
664
+ "expansion": [
665
+ "mt-6",
666
+ "flex",
667
+ "items-center",
668
+ "justify-end",
669
+ "gap-2"
670
+ ],
671
+ "name": "dialog-footer"
672
+ }
673
+ ],
674
+ "sha": "b4dbf853e99fce75",
675
+ "version": "0.0.1"
676
+ },
677
+ {
678
+ "name": "empty",
679
+ "recipes": [
680
+ {
681
+ "description": "Empty-state container.",
682
+ "expansion": [
683
+ "flex",
684
+ "flex-col",
685
+ "items-center",
686
+ "justify-center",
687
+ "gap-3",
688
+ "rounded-md",
689
+ "border",
690
+ "border-dashed",
691
+ "border-border",
692
+ "p-8",
693
+ "text-center"
694
+ ],
695
+ "name": "empty"
696
+ },
697
+ {
698
+ "description": "Empty-state icon slot.",
699
+ "expansion": [
700
+ "flex",
701
+ "h-12",
702
+ "w-12",
703
+ "items-center",
704
+ "justify-center",
705
+ "rounded-full",
706
+ "bg-muted",
707
+ "text-muted-foreground"
708
+ ],
709
+ "name": "empty-icon"
710
+ },
711
+ {
712
+ "description": "Empty-state title text.",
713
+ "expansion": [
714
+ "text-base",
715
+ "font-semibold",
716
+ "text-foreground"
717
+ ],
718
+ "name": "empty-title"
719
+ },
720
+ {
721
+ "description": "Empty-state supporting description.",
722
+ "expansion": [
723
+ "max-w-sm",
724
+ "text-sm",
725
+ "text-muted-foreground"
726
+ ],
727
+ "name": "empty-description"
728
+ }
729
+ ],
730
+ "sha": "003168e1b4a395c5",
731
+ "version": "0.0.1"
732
+ },
733
+ {
734
+ "name": "feedback",
735
+ "recipes": [
736
+ {
737
+ "description": "Default informational alert.",
738
+ "expansion": [
739
+ "flex",
740
+ "items-start",
741
+ "gap-3",
742
+ "rounded-md",
743
+ "border",
744
+ "border-border",
745
+ "bg-card",
746
+ "p-4",
747
+ "text-sm",
748
+ "text-card-foreground"
749
+ ],
750
+ "name": "alert"
751
+ },
752
+ {
753
+ "description": "Success alert.",
754
+ "expansion": [
755
+ "flex",
756
+ "items-start",
757
+ "gap-3",
758
+ "rounded-md",
759
+ "border",
760
+ "border-green-200",
761
+ "bg-green-50",
762
+ "p-4",
763
+ "text-sm",
764
+ "text-green-900",
765
+ "dark:border-green-900",
766
+ "dark:bg-green-950",
767
+ "dark:text-green-100"
768
+ ],
769
+ "name": "alert-success"
770
+ },
771
+ {
772
+ "description": "Warning alert.",
773
+ "expansion": [
774
+ "flex",
775
+ "items-start",
776
+ "gap-3",
777
+ "rounded-md",
778
+ "border",
779
+ "border-amber-200",
780
+ "bg-amber-50",
781
+ "p-4",
782
+ "text-sm",
783
+ "text-amber-900",
784
+ "dark:border-amber-900",
785
+ "dark:bg-amber-950",
786
+ "dark:text-amber-100"
787
+ ],
788
+ "name": "alert-warning"
789
+ },
790
+ {
791
+ "description": "Danger alert.",
792
+ "expansion": [
793
+ "flex",
794
+ "items-start",
795
+ "gap-3",
796
+ "rounded-md",
797
+ "border",
798
+ "border-destructive/30",
799
+ "bg-destructive/10",
800
+ "p-4",
801
+ "text-sm",
802
+ "text-destructive"
803
+ ],
804
+ "name": "alert-danger"
805
+ },
806
+ {
807
+ "description": "Informational alert.",
808
+ "expansion": [
809
+ "flex",
810
+ "items-start",
811
+ "gap-3",
812
+ "rounded-md",
813
+ "border",
814
+ "border-primary/30",
815
+ "bg-primary/10",
816
+ "p-4",
817
+ "text-sm",
818
+ "text-primary"
819
+ ],
820
+ "name": "alert-info"
821
+ },
822
+ {
823
+ "description": "Inline callout — flush left edge accent.",
824
+ "expansion": [
825
+ "border-l-4",
826
+ "border-primary",
827
+ "bg-primary/10",
828
+ "p-4",
829
+ "text-sm",
830
+ "text-foreground"
831
+ ],
832
+ "name": "callout"
833
+ },
834
+ {
835
+ "description": "Floating toast notification.",
836
+ "expansion": [
837
+ "pointer-events-auto",
838
+ "flex",
839
+ "items-start",
840
+ "gap-3",
841
+ "rounded-md",
842
+ "border",
843
+ "border-border",
844
+ "bg-popover",
845
+ "p-4",
846
+ "text-sm",
847
+ "text-popover-foreground",
848
+ "shadow-lg"
849
+ ],
850
+ "name": "toast"
851
+ },
852
+ {
853
+ "description": "Full-width banner spanning the viewport.",
854
+ "expansion": [
855
+ "w-full",
856
+ "bg-primary",
857
+ "px-4",
858
+ "py-2",
859
+ "text-center",
860
+ "text-sm",
861
+ "font-medium",
862
+ "text-primary-foreground"
863
+ ],
864
+ "name": "banner"
865
+ }
866
+ ],
867
+ "sha": "818868f6af179bcf",
868
+ "version": "0.0.1"
869
+ },
870
+ {
871
+ "name": "form",
872
+ "recipes": [
873
+ {
874
+ "description": "Text input field.",
875
+ "expansion": [
876
+ "block",
877
+ "w-full",
878
+ "rounded-md",
879
+ "border",
880
+ "border-input",
881
+ "bg-background",
882
+ "px-3",
883
+ "py-2",
884
+ "text-sm",
885
+ "text-foreground",
886
+ "placeholder:text-muted-foreground",
887
+ "focus:border-ring",
888
+ "focus:outline-2",
889
+ "focus:outline-offset-2",
890
+ "focus:outline-ring",
891
+ "disabled:cursor-not-allowed",
892
+ "disabled:opacity-50"
893
+ ],
894
+ "name": "input"
895
+ },
896
+ {
897
+ "description": "shadcn/dinachi-style input shell — transparent background, h-9, file/\n placeholder/selection/aria-invalid/focus-visible states baked in.",
898
+ "expansion": [
899
+ "flex",
900
+ "h-9",
901
+ "w-full",
902
+ "min-w-0",
903
+ "rounded-md",
904
+ "border",
905
+ "border-input",
906
+ "bg-transparent",
907
+ "px-3",
908
+ "py-1",
909
+ "text-base",
910
+ "shadow-xs",
911
+ "outline-none",
912
+ "transition-[color,box-shadow]",
913
+ "placeholder:text-muted-foreground",
914
+ "selection:bg-primary",
915
+ "selection:text-primary-foreground",
916
+ "file:inline-flex",
917
+ "file:h-7",
918
+ "file:border-0",
919
+ "file:bg-transparent",
920
+ "file:text-sm",
921
+ "file:font-medium",
922
+ "file:text-foreground",
923
+ "focus-visible:border-ring",
924
+ "focus-visible:ring-ring/50",
925
+ "focus-visible:ring-[3px]",
926
+ "aria-invalid:border-destructive",
927
+ "aria-invalid:ring-destructive/20",
928
+ "disabled:pointer-events-none",
929
+ "disabled:cursor-not-allowed",
930
+ "disabled:opacity-50",
931
+ "md:text-sm",
932
+ "dark:bg-input/30",
933
+ "dark:aria-invalid:ring-destructive/40"
934
+ ],
935
+ "name": "input-shell"
936
+ },
937
+ {
938
+ "description": "Input in error state.",
939
+ "expansion": [
940
+ "block",
941
+ "w-full",
942
+ "rounded-md",
943
+ "border",
944
+ "border-input",
945
+ "bg-background",
946
+ "px-3",
947
+ "py-2",
948
+ "text-sm",
949
+ "text-foreground",
950
+ "placeholder:text-muted-foreground",
951
+ "focus:border-ring",
952
+ "focus:outline-2",
953
+ "focus:outline-offset-2",
954
+ "focus:outline-ring",
955
+ "disabled:cursor-not-allowed",
956
+ "disabled:opacity-50",
957
+ "border-destructive",
958
+ "focus:border-destructive",
959
+ "focus:outline-destructive"
960
+ ],
961
+ "name": "input-error"
962
+ },
963
+ {
964
+ "description": "Multi-line textarea.",
965
+ "expansion": [
966
+ "block",
967
+ "w-full",
968
+ "rounded-md",
969
+ "border",
970
+ "border-input",
971
+ "bg-background",
972
+ "px-3",
973
+ "py-2",
974
+ "text-sm",
975
+ "text-foreground",
976
+ "placeholder:text-muted-foreground",
977
+ "focus:border-ring",
978
+ "focus:outline-2",
979
+ "focus:outline-offset-2",
980
+ "focus:outline-ring",
981
+ "disabled:cursor-not-allowed",
982
+ "disabled:opacity-50"
983
+ ],
984
+ "name": "textarea"
985
+ },
986
+ {
987
+ "description": "Native select control.",
988
+ "expansion": [
989
+ "block",
990
+ "w-full",
991
+ "rounded-md",
992
+ "border",
993
+ "border-input",
994
+ "bg-background",
995
+ "px-3",
996
+ "py-2",
997
+ "text-sm",
998
+ "text-foreground",
999
+ "focus:border-ring",
1000
+ "focus:outline-2",
1001
+ "focus:outline-offset-2",
1002
+ "focus:outline-ring",
1003
+ "disabled:cursor-not-allowed",
1004
+ "disabled:opacity-50"
1005
+ ],
1006
+ "name": "select"
1007
+ },
1008
+ {
1009
+ "description": "Checkbox input.",
1010
+ "expansion": [
1011
+ "h-4",
1012
+ "w-4",
1013
+ "rounded",
1014
+ "border-input",
1015
+ "text-primary",
1016
+ "focus:outline-2",
1017
+ "focus:outline-offset-2",
1018
+ "focus:outline-ring"
1019
+ ],
1020
+ "name": "checkbox"
1021
+ },
1022
+ {
1023
+ "description": "Radio input.",
1024
+ "expansion": [
1025
+ "h-4",
1026
+ "w-4",
1027
+ "border-input",
1028
+ "text-primary",
1029
+ "focus:outline-2",
1030
+ "focus:outline-offset-2",
1031
+ "focus:outline-ring"
1032
+ ],
1033
+ "name": "radio"
1034
+ },
1035
+ {
1036
+ "description": "Form field wrapper — label + input + help/error.",
1037
+ "expansion": [
1038
+ "flex",
1039
+ "flex-col",
1040
+ "gap-1.5"
1041
+ ],
1042
+ "name": "field"
1043
+ },
1044
+ {
1045
+ "description": "Form field in error state.",
1046
+ "expansion": [
1047
+ "flex",
1048
+ "flex-col",
1049
+ "gap-1.5"
1050
+ ],
1051
+ "name": "field-error"
1052
+ },
1053
+ {
1054
+ "description": "Grouped form section with optional legend.",
1055
+ "expansion": [
1056
+ "flex",
1057
+ "flex-col",
1058
+ "gap-4",
1059
+ "rounded-md",
1060
+ "border",
1061
+ "border-border",
1062
+ "p-4"
1063
+ ],
1064
+ "name": "fieldset"
1065
+ },
1066
+ {
1067
+ "description": "Field-level helper text.",
1068
+ "expansion": [
1069
+ "text-xs",
1070
+ "text-muted-foreground"
1071
+ ],
1072
+ "name": "help"
1073
+ }
1074
+ ],
1075
+ "sha": "bc12a9cc520a2d85",
1076
+ "version": "0.0.1"
1077
+ },
1078
+ {
1079
+ "name": "icon",
1080
+ "recipes": [
1081
+ {
1082
+ "description": "Small icon — 16px.",
1083
+ "expansion": [
1084
+ "h-4",
1085
+ "w-4",
1086
+ "shrink-0"
1087
+ ],
1088
+ "name": "icon-sm"
1089
+ },
1090
+ {
1091
+ "description": "Default icon size — 20px.",
1092
+ "expansion": [
1093
+ "h-5",
1094
+ "w-5",
1095
+ "shrink-0"
1096
+ ],
1097
+ "name": "icon-md"
1098
+ },
1099
+ {
1100
+ "description": "Large icon — 24px.",
1101
+ "expansion": [
1102
+ "h-6",
1103
+ "w-6",
1104
+ "shrink-0"
1105
+ ],
1106
+ "name": "icon-lg"
1107
+ },
1108
+ {
1109
+ "description": "Icon with muted color.",
1110
+ "expansion": [
1111
+ "text-muted-foreground"
1112
+ ],
1113
+ "name": "icon-muted"
1114
+ }
1115
+ ],
1116
+ "sha": "fab3b2d3a0c089fb",
1117
+ "version": "0.0.1"
1118
+ },
1119
+ {
1120
+ "name": "layout",
1121
+ "recipes": [
1122
+ {
1123
+ "description": "Vertical stack with extra-small gap.",
1124
+ "expansion": [
1125
+ "flex",
1126
+ "flex-col",
1127
+ "gap-1"
1128
+ ],
1129
+ "name": "stack-xs"
1130
+ },
1131
+ {
1132
+ "description": "Vertical stack with small gap.",
1133
+ "expansion": [
1134
+ "flex",
1135
+ "flex-col",
1136
+ "gap-2"
1137
+ ],
1138
+ "name": "stack-sm"
1139
+ },
1140
+ {
1141
+ "description": "Vertical stack with medium gap.",
1142
+ "expansion": [
1143
+ "flex",
1144
+ "flex-col",
1145
+ "gap-4"
1146
+ ],
1147
+ "name": "stack-md"
1148
+ },
1149
+ {
1150
+ "description": "Vertical stack with large gap.",
1151
+ "expansion": [
1152
+ "flex",
1153
+ "flex-col",
1154
+ "gap-8"
1155
+ ],
1156
+ "name": "stack-lg"
1157
+ },
1158
+ {
1159
+ "description": "Horizontal row with default gap and centered items.",
1160
+ "expansion": [
1161
+ "flex",
1162
+ "flex-row",
1163
+ "items-center",
1164
+ "gap-2"
1165
+ ],
1166
+ "name": "row"
1167
+ },
1168
+ {
1169
+ "description": "Horizontal row with space between children.",
1170
+ "expansion": [
1171
+ "flex",
1172
+ "flex-row",
1173
+ "items-center",
1174
+ "justify-between",
1175
+ "gap-2"
1176
+ ],
1177
+ "name": "row-between"
1178
+ },
1179
+ {
1180
+ "description": "Horizontal row aligned to the end.",
1181
+ "expansion": [
1182
+ "flex",
1183
+ "flex-row",
1184
+ "items-center",
1185
+ "justify-end",
1186
+ "gap-2"
1187
+ ],
1188
+ "name": "row-end"
1189
+ },
1190
+ {
1191
+ "description": "Two-column responsive grid.",
1192
+ "expansion": [
1193
+ "grid",
1194
+ "grid-cols-1",
1195
+ "gap-4",
1196
+ "sm:grid-cols-2"
1197
+ ],
1198
+ "name": "grid-2"
1199
+ },
1200
+ {
1201
+ "description": "Three-column responsive grid.",
1202
+ "expansion": [
1203
+ "grid",
1204
+ "grid-cols-1",
1205
+ "gap-4",
1206
+ "sm:grid-cols-2",
1207
+ "lg:grid-cols-3"
1208
+ ],
1209
+ "name": "grid-3"
1210
+ },
1211
+ {
1212
+ "description": "Four-column responsive grid.",
1213
+ "expansion": [
1214
+ "grid",
1215
+ "grid-cols-1",
1216
+ "gap-4",
1217
+ "sm:grid-cols-2",
1218
+ "lg:grid-cols-4"
1219
+ ],
1220
+ "name": "grid-4"
1221
+ },
1222
+ {
1223
+ "description": "Center content horizontally and vertically.",
1224
+ "expansion": [
1225
+ "flex",
1226
+ "items-center",
1227
+ "justify-center"
1228
+ ],
1229
+ "name": "center"
1230
+ },
1231
+ {
1232
+ "description": "Fill the available width and height.",
1233
+ "expansion": [
1234
+ "h-full",
1235
+ "w-full"
1236
+ ],
1237
+ "name": "full"
1238
+ }
1239
+ ],
1240
+ "sha": "48a2a7b6e1a5d7ad",
1241
+ "version": "0.0.1"
1242
+ },
1243
+ {
1244
+ "name": "list",
1245
+ "recipes": [
1246
+ {
1247
+ "description": "Vertical list with default gap.",
1248
+ "expansion": [
1249
+ "flex",
1250
+ "flex-col",
1251
+ "gap-1"
1252
+ ],
1253
+ "name": "list"
1254
+ },
1255
+ {
1256
+ "description": "Single list item.",
1257
+ "expansion": [
1258
+ "flex",
1259
+ "items-center",
1260
+ "gap-2",
1261
+ "rounded-md",
1262
+ "px-3",
1263
+ "py-2",
1264
+ "text-sm",
1265
+ "text-foreground"
1266
+ ],
1267
+ "name": "list-item"
1268
+ },
1269
+ {
1270
+ "description": "List with dividing borders between items.",
1271
+ "expansion": [
1272
+ "divide-y",
1273
+ "divide-border",
1274
+ "rounded-md",
1275
+ "border",
1276
+ "border-border"
1277
+ ],
1278
+ "name": "list-bordered"
1279
+ },
1280
+ {
1281
+ "description": "Definition list container.",
1282
+ "expansion": [
1283
+ "grid",
1284
+ "grid-cols-1",
1285
+ "gap-2",
1286
+ "sm:grid-cols-3",
1287
+ "sm:gap-4"
1288
+ ],
1289
+ "name": "dl"
1290
+ },
1291
+ {
1292
+ "description": "Definition term.",
1293
+ "expansion": [
1294
+ "text-sm",
1295
+ "font-medium",
1296
+ "text-muted-foreground"
1297
+ ],
1298
+ "name": "dt"
1299
+ },
1300
+ {
1301
+ "description": "Definition description.",
1302
+ "expansion": [
1303
+ "text-sm",
1304
+ "text-foreground",
1305
+ "sm:col-span-2"
1306
+ ],
1307
+ "name": "dd"
1308
+ }
1309
+ ],
1310
+ "sha": "f662887791fabb8d",
1311
+ "version": "0.0.1"
1312
+ },
1313
+ {
1314
+ "name": "media",
1315
+ "recipes": [
1316
+ {
1317
+ "description": "User/profile avatar.",
1318
+ "expansion": [
1319
+ "inline-flex",
1320
+ "h-10",
1321
+ "w-10",
1322
+ "items-center",
1323
+ "justify-center",
1324
+ "overflow-hidden",
1325
+ "rounded-full",
1326
+ "bg-muted",
1327
+ "text-sm",
1328
+ "font-medium",
1329
+ "text-muted-foreground"
1330
+ ],
1331
+ "name": "avatar"
1332
+ },
1333
+ {
1334
+ "description": "Small avatar.",
1335
+ "expansion": [
1336
+ "inline-flex",
1337
+ "h-10",
1338
+ "w-10",
1339
+ "items-center",
1340
+ "justify-center",
1341
+ "overflow-hidden",
1342
+ "rounded-full",
1343
+ "bg-muted",
1344
+ "text-sm",
1345
+ "font-medium",
1346
+ "text-muted-foreground",
1347
+ "h-6",
1348
+ "w-6",
1349
+ "text-xs"
1350
+ ],
1351
+ "name": "avatar-sm"
1352
+ },
1353
+ {
1354
+ "description": "Large avatar.",
1355
+ "expansion": [
1356
+ "inline-flex",
1357
+ "h-10",
1358
+ "w-10",
1359
+ "items-center",
1360
+ "justify-center",
1361
+ "overflow-hidden",
1362
+ "rounded-full",
1363
+ "bg-muted",
1364
+ "text-sm",
1365
+ "font-medium",
1366
+ "text-muted-foreground",
1367
+ "h-14",
1368
+ "w-14",
1369
+ "text-base"
1370
+ ],
1371
+ "name": "avatar-lg"
1372
+ },
1373
+ {
1374
+ "description": "Small image thumbnail.",
1375
+ "expansion": [
1376
+ "h-16",
1377
+ "w-16",
1378
+ "rounded-md",
1379
+ "object-cover"
1380
+ ],
1381
+ "name": "thumb"
1382
+ },
1383
+ {
1384
+ "description": "1:1 aspect-ratio wrapper.",
1385
+ "expansion": [
1386
+ "aspect-square",
1387
+ "w-full",
1388
+ "overflow-hidden",
1389
+ "rounded-md"
1390
+ ],
1391
+ "name": "aspect-square"
1392
+ },
1393
+ {
1394
+ "description": "16:9 aspect-ratio wrapper.",
1395
+ "expansion": [
1396
+ "aspect-video",
1397
+ "w-full",
1398
+ "overflow-hidden",
1399
+ "rounded-md"
1400
+ ],
1401
+ "name": "aspect-video"
1402
+ }
1403
+ ],
1404
+ "sha": "dfc85633101b0637",
1405
+ "version": "0.0.1"
1406
+ },
1407
+ {
1408
+ "name": "navigation",
1409
+ "recipes": [
1410
+ {
1411
+ "description": "Top-level nav container.",
1412
+ "expansion": [
1413
+ "flex",
1414
+ "items-center",
1415
+ "gap-1"
1416
+ ],
1417
+ "name": "nav"
1418
+ },
1419
+ {
1420
+ "description": "Inactive nav link with hover/focus states.",
1421
+ "expansion": [
1422
+ "inline-flex",
1423
+ "items-center",
1424
+ "gap-2",
1425
+ "rounded-md",
1426
+ "px-3",
1427
+ "py-1.5",
1428
+ "text-sm",
1429
+ "font-medium",
1430
+ "text-muted-foreground",
1431
+ "transition-colors",
1432
+ "hover:bg-muted",
1433
+ "hover:text-foreground",
1434
+ "focus-visible:outline-2",
1435
+ "focus-visible:outline-offset-2",
1436
+ "focus-visible:outline-ring"
1437
+ ],
1438
+ "name": "nav-link"
1439
+ },
1440
+ {
1441
+ "description": "Active nav link.",
1442
+ "expansion": [
1443
+ "inline-flex",
1444
+ "items-center",
1445
+ "gap-2",
1446
+ "rounded-md",
1447
+ "bg-muted",
1448
+ "px-3",
1449
+ "py-1.5",
1450
+ "text-sm",
1451
+ "font-medium",
1452
+ "text-foreground",
1453
+ "focus-visible:outline-2",
1454
+ "focus-visible:outline-offset-2",
1455
+ "focus-visible:outline-ring"
1456
+ ],
1457
+ "name": "nav-link-active"
1458
+ },
1459
+ {
1460
+ "description": "Breadcrumb trail container.",
1461
+ "expansion": [
1462
+ "flex",
1463
+ "items-center",
1464
+ "gap-1.5",
1465
+ "text-sm",
1466
+ "text-muted-foreground"
1467
+ ],
1468
+ "name": "breadcrumb"
1469
+ },
1470
+ {
1471
+ "description": "Inactive tab control.",
1472
+ "expansion": [
1473
+ "inline-flex",
1474
+ "items-center",
1475
+ "gap-2",
1476
+ "border-b-2",
1477
+ "border-transparent",
1478
+ "px-3",
1479
+ "py-2",
1480
+ "text-sm",
1481
+ "font-medium",
1482
+ "text-muted-foreground",
1483
+ "transition-colors",
1484
+ "hover:border-border",
1485
+ "hover:text-foreground",
1486
+ "focus-visible:outline-2",
1487
+ "focus-visible:outline-offset-2",
1488
+ "focus-visible:outline-ring"
1489
+ ],
1490
+ "name": "tab"
1491
+ },
1492
+ {
1493
+ "description": "Active tab control.",
1494
+ "expansion": [
1495
+ "inline-flex",
1496
+ "items-center",
1497
+ "gap-2",
1498
+ "border-b-2",
1499
+ "border-primary",
1500
+ "px-3",
1501
+ "py-2",
1502
+ "text-sm",
1503
+ "font-medium",
1504
+ "text-primary",
1505
+ "focus-visible:outline-2",
1506
+ "focus-visible:outline-offset-2",
1507
+ "focus-visible:outline-ring"
1508
+ ],
1509
+ "name": "tab-active"
1510
+ }
1511
+ ],
1512
+ "sha": "73150057219b648a",
1513
+ "version": "0.0.1"
1514
+ },
1515
+ {
1516
+ "name": "progress",
1517
+ "recipes": [
1518
+ {
1519
+ "description": "Progress bar track (background).",
1520
+ "expansion": [
1521
+ "h-2",
1522
+ "w-full",
1523
+ "overflow-hidden",
1524
+ "rounded-full",
1525
+ "bg-muted"
1526
+ ],
1527
+ "name": "progress-track"
1528
+ },
1529
+ {
1530
+ "description": "Progress bar fill.",
1531
+ "expansion": [
1532
+ "h-full",
1533
+ "rounded-full",
1534
+ "bg-primary",
1535
+ "transition-all"
1536
+ ],
1537
+ "name": "progress-bar"
1538
+ },
1539
+ {
1540
+ "description": "Indeterminate loading spinner.",
1541
+ "expansion": [
1542
+ "inline-block",
1543
+ "h-4",
1544
+ "w-4",
1545
+ "animate-spin",
1546
+ "rounded-full",
1547
+ "border-2",
1548
+ "border-border",
1549
+ "border-t-primary"
1550
+ ],
1551
+ "name": "spinner"
1552
+ }
1553
+ ],
1554
+ "sha": "37210e32d2cd555f",
1555
+ "version": "0.0.1"
1556
+ },
1557
+ {
1558
+ "name": "skeleton",
1559
+ "recipes": [
1560
+ {
1561
+ "description": "Default rectangular skeleton placeholder.",
1562
+ "expansion": [
1563
+ "animate-pulse",
1564
+ "rounded-md",
1565
+ "bg-muted"
1566
+ ],
1567
+ "name": "skeleton"
1568
+ },
1569
+ {
1570
+ "description": "Single-line text skeleton.",
1571
+ "expansion": [
1572
+ "h-4",
1573
+ "w-full",
1574
+ "animate-pulse",
1575
+ "rounded",
1576
+ "bg-muted"
1577
+ ],
1578
+ "name": "skeleton-text"
1579
+ },
1580
+ {
1581
+ "description": "Circular skeleton (avatar/icon).",
1582
+ "expansion": [
1583
+ "h-10",
1584
+ "w-10",
1585
+ "animate-pulse",
1586
+ "rounded-full",
1587
+ "bg-muted"
1588
+ ],
1589
+ "name": "skeleton-circle"
1590
+ }
1591
+ ],
1592
+ "sha": "cd2db5c1c48b16d3",
1593
+ "version": "0.0.1"
1594
+ },
1595
+ {
1596
+ "name": "surface",
1597
+ "recipes": [
1598
+ {
1599
+ "description": "Default page/section surface.",
1600
+ "expansion": [
1601
+ "bg-background",
1602
+ "text-foreground"
1603
+ ],
1604
+ "name": "surface"
1605
+ },
1606
+ {
1607
+ "description": "Muted surface — secondary background.",
1608
+ "expansion": [
1609
+ "bg-muted",
1610
+ "text-foreground"
1611
+ ],
1612
+ "name": "surface-muted"
1613
+ },
1614
+ {
1615
+ "description": "Accent surface — soft brand background.",
1616
+ "expansion": [
1617
+ "bg-accent",
1618
+ "text-accent-foreground"
1619
+ ],
1620
+ "name": "surface-accent"
1621
+ },
1622
+ {
1623
+ "description": "Centered content wrapper with a max width.",
1624
+ "expansion": [
1625
+ "mx-auto",
1626
+ "w-full",
1627
+ "max-w-6xl",
1628
+ "px-4",
1629
+ "sm:px-6",
1630
+ "lg:px-8"
1631
+ ],
1632
+ "name": "wrapper"
1633
+ },
1634
+ {
1635
+ "description": "Narrow content wrapper for prose.",
1636
+ "expansion": [
1637
+ "mx-auto",
1638
+ "w-full",
1639
+ "max-w-3xl",
1640
+ "px-4",
1641
+ "sm:px-6"
1642
+ ],
1643
+ "name": "wrapper-tight"
1644
+ },
1645
+ {
1646
+ "description": "Horizontal divider line.",
1647
+ "expansion": [
1648
+ "shrink-0",
1649
+ "h-px",
1650
+ "w-full",
1651
+ "bg-border"
1652
+ ],
1653
+ "name": "divider-h"
1654
+ },
1655
+ {
1656
+ "description": "Vertical divider line.",
1657
+ "expansion": [
1658
+ "shrink-0",
1659
+ "h-full",
1660
+ "w-px",
1661
+ "bg-border"
1662
+ ],
1663
+ "name": "divider-v"
1664
+ }
1665
+ ],
1666
+ "sha": "31716e4cbe81f93f",
1667
+ "version": "0.0.2"
1668
+ },
1669
+ {
1670
+ "name": "table",
1671
+ "recipes": [
1672
+ {
1673
+ "description": "Scroll container for a wide table — keeps overflow horizontal.",
1674
+ "expansion": [
1675
+ "w-full",
1676
+ "overflow-x-auto",
1677
+ "rounded-md",
1678
+ "border",
1679
+ "border-border"
1680
+ ],
1681
+ "name": "table-container"
1682
+ },
1683
+ {
1684
+ "description": "Data table base.",
1685
+ "expansion": [
1686
+ "w-full",
1687
+ "border-collapse",
1688
+ "text-left",
1689
+ "text-sm",
1690
+ "text-foreground"
1691
+ ],
1692
+ "name": "table"
1693
+ },
1694
+ {
1695
+ "description": "Table header cell.",
1696
+ "expansion": [
1697
+ "border-b",
1698
+ "border-border",
1699
+ "px-3",
1700
+ "py-2",
1701
+ "text-xs",
1702
+ "font-semibold",
1703
+ "uppercase",
1704
+ "tracking-wide",
1705
+ "text-muted-foreground"
1706
+ ],
1707
+ "name": "th"
1708
+ },
1709
+ {
1710
+ "description": "Table body cell.",
1711
+ "expansion": [
1712
+ "border-b",
1713
+ "border-border",
1714
+ "px-3",
1715
+ "py-2"
1716
+ ],
1717
+ "name": "td"
1718
+ },
1719
+ {
1720
+ "description": "Row hover state.",
1721
+ "expansion": [
1722
+ "transition-colors",
1723
+ "hover:bg-muted"
1724
+ ],
1725
+ "name": "tr-hover"
1726
+ },
1727
+ {
1728
+ "description": "Table with zebra striping on alternating rows.",
1729
+ "expansion": [
1730
+ "w-full",
1731
+ "border-collapse",
1732
+ "text-left",
1733
+ "text-sm",
1734
+ "text-foreground",
1735
+ "[&_tbody_tr:nth-child(odd)]:bg-muted"
1736
+ ],
1737
+ "name": "table-zebra"
1738
+ }
1739
+ ],
1740
+ "sha": "4f3295935b2a647c",
1741
+ "version": "0.0.1"
1742
+ },
1743
+ {
1744
+ "name": "text",
1745
+ "recipes": [
1746
+ {
1747
+ "description": "Top-level page heading.",
1748
+ "expansion": [
1749
+ "text-4xl",
1750
+ "font-bold",
1751
+ "tracking-tight",
1752
+ "text-foreground"
1753
+ ],
1754
+ "name": "heading-xl"
1755
+ },
1756
+ {
1757
+ "description": "Large section heading.",
1758
+ "expansion": [
1759
+ "text-2xl",
1760
+ "font-semibold",
1761
+ "tracking-tight",
1762
+ "text-foreground"
1763
+ ],
1764
+ "name": "heading-lg"
1765
+ },
1766
+ {
1767
+ "description": "Medium heading.",
1768
+ "expansion": [
1769
+ "text-xl",
1770
+ "font-semibold",
1771
+ "text-foreground"
1772
+ ],
1773
+ "name": "heading-md"
1774
+ },
1775
+ {
1776
+ "description": "Small heading.",
1777
+ "expansion": [
1778
+ "text-base",
1779
+ "font-semibold",
1780
+ "text-foreground"
1781
+ ],
1782
+ "name": "heading-sm"
1783
+ },
1784
+ {
1785
+ "description": "Default body text.",
1786
+ "expansion": [
1787
+ "text-sm",
1788
+ "leading-6",
1789
+ "text-foreground"
1790
+ ],
1791
+ "name": "body"
1792
+ },
1793
+ {
1794
+ "description": "Lead paragraph — larger body copy for hero/intro sections.",
1795
+ "expansion": [
1796
+ "text-lg",
1797
+ "leading-relaxed",
1798
+ "text-muted-foreground"
1799
+ ],
1800
+ "name": "lead"
1801
+ },
1802
+ {
1803
+ "description": "Muted secondary text.",
1804
+ "expansion": [
1805
+ "text-sm",
1806
+ "text-muted-foreground"
1807
+ ],
1808
+ "name": "muted"
1809
+ },
1810
+ {
1811
+ "description": "Form label text.",
1812
+ "expansion": [
1813
+ "text-sm",
1814
+ "font-medium",
1815
+ "text-foreground"
1816
+ ],
1817
+ "name": "label"
1818
+ },
1819
+ {
1820
+ "description": "Caption — small supporting text.",
1821
+ "expansion": [
1822
+ "text-xs",
1823
+ "text-muted-foreground"
1824
+ ],
1825
+ "name": "caption"
1826
+ },
1827
+ {
1828
+ "description": "Inline link with hover/focus states.",
1829
+ "expansion": [
1830
+ "text-primary",
1831
+ "underline-offset-2",
1832
+ "hover:underline",
1833
+ "focus-visible:outline-2",
1834
+ "focus-visible:outline-offset-2",
1835
+ "focus-visible:outline-ring"
1836
+ ],
1837
+ "name": "link"
1838
+ }
1839
+ ],
1840
+ "sha": "9c5d7ed7b1e3ef5a",
1841
+ "version": "0.0.1"
1842
+ },
1843
+ {
1844
+ "name": "tooltip",
1845
+ "recipes": [
1846
+ {
1847
+ "description": "Floating tooltip bubble.",
1848
+ "expansion": [
1849
+ "pointer-events-none",
1850
+ "z-50",
1851
+ "rounded-md",
1852
+ "bg-foreground",
1853
+ "px-2",
1854
+ "py-1",
1855
+ "text-xs",
1856
+ "font-medium",
1857
+ "text-background",
1858
+ "shadow-md"
1859
+ ],
1860
+ "name": "tooltip"
1861
+ }
1862
+ ],
1863
+ "sha": "1be3af4165357dcd",
1864
+ "version": "0.0.1"
1865
+ }
1866
+ ]
1867
+ }