@traky-app/ui 0.0.0-stage → 1.0.0

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 (131) hide show
  1. package/README.md +30 -2
  2. package/package.json +26 -4
  3. package/registry/registry.json +6 -0
  4. package/registry/traky/hooks/use-mobile.ts +19 -0
  5. package/registry/traky/json/accordion.json +18 -0
  6. package/registry/traky/json/alert-dialog.json +20 -0
  7. package/registry/traky/json/alert.json +17 -0
  8. package/registry/traky/json/animated-beam.json +14 -0
  9. package/registry/traky/json/animated-list.json +14 -0
  10. package/registry/traky/json/avatar.json +17 -0
  11. package/registry/traky/json/badge.json +18 -0
  12. package/registry/traky/json/bento-grid.json +20 -0
  13. package/registry/traky/json/breadcrumb.json +18 -0
  14. package/registry/traky/json/bubble.json +18 -0
  15. package/registry/traky/json/button-group.json +21 -0
  16. package/registry/traky/json/button.json +18 -0
  17. package/registry/traky/json/calendar.json +21 -0
  18. package/registry/traky/json/card.json +14 -0
  19. package/registry/traky/json/carousel.json +21 -0
  20. package/registry/traky/json/chart.json +17 -0
  21. package/registry/traky/json/checkbox.json +18 -0
  22. package/registry/traky/json/checkpoint.json +22 -0
  23. package/registry/traky/json/code-block.json +21 -0
  24. package/registry/traky/json/collapsible.json +17 -0
  25. package/registry/traky/json/command.json +22 -0
  26. package/registry/traky/json/context-menu.json +18 -0
  27. package/registry/traky/json/dialog.json +18 -0
  28. package/registry/traky/json/drawer.json +17 -0
  29. package/registry/traky/json/dropdown-menu.json +18 -0
  30. package/registry/traky/json/empty.json +17 -0
  31. package/registry/traky/json/field.json +21 -0
  32. package/registry/traky/json/globe.json +17 -0
  33. package/registry/traky/json/hook-use-mobile.json +14 -0
  34. package/registry/traky/json/hover-card.json +17 -0
  35. package/registry/traky/json/input-group.json +22 -0
  36. package/registry/traky/json/input-otp.json +18 -0
  37. package/registry/traky/json/input.json +17 -0
  38. package/registry/traky/json/item.json +21 -0
  39. package/registry/traky/json/kbd.json +14 -0
  40. package/registry/traky/json/label.json +17 -0
  41. package/registry/traky/json/lib-disable-input-autofill.json +14 -0
  42. package/registry/traky/json/lib-sidebar-persistence.json +14 -0
  43. package/registry/traky/json/lib-utils.json +18 -0
  44. package/registry/traky/json/map.json +19 -0
  45. package/registry/traky/json/marker.json +18 -0
  46. package/registry/traky/json/marquee.json +14 -0
  47. package/registry/traky/json/message.json +14 -0
  48. package/registry/traky/json/navigation-menu.json +19 -0
  49. package/registry/traky/json/number-ticker.json +14 -0
  50. package/registry/traky/json/pagination.json +20 -0
  51. package/registry/traky/json/popover.json +17 -0
  52. package/registry/traky/json/progress.json +17 -0
  53. package/registry/traky/json/select.json +18 -0
  54. package/registry/traky/json/separator.json +17 -0
  55. package/registry/traky/json/sheet.json +18 -0
  56. package/registry/traky/json/sidebar.json +29 -0
  57. package/registry/traky/json/skeleton.json +14 -0
  58. package/registry/traky/json/sonner.json +18 -0
  59. package/registry/traky/json/spinner.json +17 -0
  60. package/registry/traky/json/switch.json +17 -0
  61. package/registry/traky/json/table.json +14 -0
  62. package/registry/traky/json/tabs.json +17 -0
  63. package/registry/traky/json/textarea.json +17 -0
  64. package/registry/traky/json/toggle-group.json +21 -0
  65. package/registry/traky/json/toggle.json +18 -0
  66. package/registry/traky/json/tooltip.json +17 -0
  67. package/registry/traky/json/trace.json +20 -0
  68. package/registry/traky/lib/disable-input-autofill.ts +23 -0
  69. package/registry/traky/lib/sidebar-persistence.ts +76 -0
  70. package/registry/traky/lib/utils.ts +6 -0
  71. package/registry/traky/registry.json +637 -0
  72. package/registry/traky/ui/accordion.tsx +65 -0
  73. package/registry/traky/ui/alert-dialog.tsx +163 -0
  74. package/registry/traky/ui/alert.tsx +66 -0
  75. package/registry/traky/ui/animated-beam.tsx +185 -0
  76. package/registry/traky/ui/animated-list.tsx +71 -0
  77. package/registry/traky/ui/avatar.tsx +53 -0
  78. package/registry/traky/ui/badge.tsx +46 -0
  79. package/registry/traky/ui/bento-grid.tsx +109 -0
  80. package/registry/traky/ui/breadcrumb.tsx +108 -0
  81. package/registry/traky/ui/bubble.tsx +125 -0
  82. package/registry/traky/ui/button-group.tsx +83 -0
  83. package/registry/traky/ui/button.tsx +64 -0
  84. package/registry/traky/ui/calendar.tsx +213 -0
  85. package/registry/traky/ui/card.tsx +92 -0
  86. package/registry/traky/ui/carousel.tsx +240 -0
  87. package/registry/traky/ui/chart.tsx +380 -0
  88. package/registry/traky/ui/checkbox.tsx +31 -0
  89. package/registry/traky/ui/checkpoint.tsx +94 -0
  90. package/registry/traky/ui/code-block.tsx +232 -0
  91. package/registry/traky/ui/collapsible.tsx +33 -0
  92. package/registry/traky/ui/command.tsx +190 -0
  93. package/registry/traky/ui/context-menu.tsx +251 -0
  94. package/registry/traky/ui/dialog.tsx +142 -0
  95. package/registry/traky/ui/drawer.tsx +135 -0
  96. package/registry/traky/ui/dropdown-menu.tsx +256 -0
  97. package/registry/traky/ui/empty.tsx +104 -0
  98. package/registry/traky/ui/field.tsx +248 -0
  99. package/registry/traky/ui/globe.tsx +234 -0
  100. package/registry/traky/ui/hover-card.tsx +44 -0
  101. package/registry/traky/ui/input-group.tsx +170 -0
  102. package/registry/traky/ui/input-otp.tsx +77 -0
  103. package/registry/traky/ui/input.tsx +24 -0
  104. package/registry/traky/ui/item.tsx +193 -0
  105. package/registry/traky/ui/kbd.tsx +28 -0
  106. package/registry/traky/ui/label.tsx +24 -0
  107. package/registry/traky/ui/map.tsx +2226 -0
  108. package/registry/traky/ui/marker.tsx +69 -0
  109. package/registry/traky/ui/marquee.tsx +74 -0
  110. package/registry/traky/ui/message.tsx +92 -0
  111. package/registry/traky/ui/navigation-menu.tsx +169 -0
  112. package/registry/traky/ui/number-ticker.tsx +90 -0
  113. package/registry/traky/ui/pagination.tsx +122 -0
  114. package/registry/traky/ui/popover.tsx +48 -0
  115. package/registry/traky/ui/progress.tsx +31 -0
  116. package/registry/traky/ui/select.tsx +193 -0
  117. package/registry/traky/ui/separator.tsx +28 -0
  118. package/registry/traky/ui/sheet.tsx +143 -0
  119. package/registry/traky/ui/sidebar.tsx +764 -0
  120. package/registry/traky/ui/skeleton.tsx +13 -0
  121. package/registry/traky/ui/sonner.tsx +71 -0
  122. package/registry/traky/ui/spinner.tsx +15 -0
  123. package/registry/traky/ui/switch.tsx +41 -0
  124. package/registry/traky/ui/table.tsx +116 -0
  125. package/registry/traky/ui/tabs.tsx +66 -0
  126. package/registry/traky/ui/textarea.tsx +20 -0
  127. package/registry/traky/ui/toggle-group.tsx +83 -0
  128. package/registry/traky/ui/toggle.tsx +47 -0
  129. package/registry/traky/ui/tooltip.tsx +61 -0
  130. package/registry/traky/ui/trace.tsx +165 -0
  131. package/schema/components.json +24 -0
@@ -0,0 +1,637 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema/registry.json",
3
+ "name": "traky",
4
+ "homepage": "https://traky.app",
5
+ "items": [
6
+ {
7
+ "name": "accordion",
8
+ "type": "registry:ui",
9
+ "files": [
10
+ {
11
+ "path": "json/accordion.json",
12
+ "type": "registry:file"
13
+ }
14
+ ]
15
+ },
16
+ {
17
+ "name": "alert-dialog",
18
+ "type": "registry:ui",
19
+ "files": [
20
+ {
21
+ "path": "json/alert-dialog.json",
22
+ "type": "registry:file"
23
+ }
24
+ ]
25
+ },
26
+ {
27
+ "name": "alert",
28
+ "type": "registry:ui",
29
+ "files": [
30
+ {
31
+ "path": "json/alert.json",
32
+ "type": "registry:file"
33
+ }
34
+ ]
35
+ },
36
+ {
37
+ "name": "animated-beam",
38
+ "type": "registry:ui",
39
+ "files": [
40
+ {
41
+ "path": "json/animated-beam.json",
42
+ "type": "registry:file"
43
+ }
44
+ ]
45
+ },
46
+ {
47
+ "name": "animated-list",
48
+ "type": "registry:ui",
49
+ "files": [
50
+ {
51
+ "path": "json/animated-list.json",
52
+ "type": "registry:file"
53
+ }
54
+ ]
55
+ },
56
+ {
57
+ "name": "avatar",
58
+ "type": "registry:ui",
59
+ "files": [
60
+ {
61
+ "path": "json/avatar.json",
62
+ "type": "registry:file"
63
+ }
64
+ ]
65
+ },
66
+ {
67
+ "name": "badge",
68
+ "type": "registry:ui",
69
+ "files": [
70
+ {
71
+ "path": "json/badge.json",
72
+ "type": "registry:file"
73
+ }
74
+ ]
75
+ },
76
+ {
77
+ "name": "bento-grid",
78
+ "type": "registry:ui",
79
+ "files": [
80
+ {
81
+ "path": "json/bento-grid.json",
82
+ "type": "registry:file"
83
+ }
84
+ ]
85
+ },
86
+ {
87
+ "name": "breadcrumb",
88
+ "type": "registry:ui",
89
+ "files": [
90
+ {
91
+ "path": "json/breadcrumb.json",
92
+ "type": "registry:file"
93
+ }
94
+ ]
95
+ },
96
+ {
97
+ "name": "bubble",
98
+ "type": "registry:ui",
99
+ "files": [
100
+ {
101
+ "path": "json/bubble.json",
102
+ "type": "registry:file"
103
+ }
104
+ ]
105
+ },
106
+ {
107
+ "name": "button-group",
108
+ "type": "registry:ui",
109
+ "files": [
110
+ {
111
+ "path": "json/button-group.json",
112
+ "type": "registry:file"
113
+ }
114
+ ]
115
+ },
116
+ {
117
+ "name": "button",
118
+ "type": "registry:ui",
119
+ "files": [
120
+ {
121
+ "path": "json/button.json",
122
+ "type": "registry:file"
123
+ }
124
+ ]
125
+ },
126
+ {
127
+ "name": "calendar",
128
+ "type": "registry:ui",
129
+ "files": [
130
+ {
131
+ "path": "json/calendar.json",
132
+ "type": "registry:file"
133
+ }
134
+ ]
135
+ },
136
+ {
137
+ "name": "card",
138
+ "type": "registry:ui",
139
+ "files": [
140
+ {
141
+ "path": "json/card.json",
142
+ "type": "registry:file"
143
+ }
144
+ ]
145
+ },
146
+ {
147
+ "name": "carousel",
148
+ "type": "registry:ui",
149
+ "files": [
150
+ {
151
+ "path": "json/carousel.json",
152
+ "type": "registry:file"
153
+ }
154
+ ]
155
+ },
156
+ {
157
+ "name": "chart",
158
+ "type": "registry:ui",
159
+ "files": [
160
+ {
161
+ "path": "json/chart.json",
162
+ "type": "registry:file"
163
+ }
164
+ ]
165
+ },
166
+ {
167
+ "name": "checkbox",
168
+ "type": "registry:ui",
169
+ "files": [
170
+ {
171
+ "path": "json/checkbox.json",
172
+ "type": "registry:file"
173
+ }
174
+ ]
175
+ },
176
+ {
177
+ "name": "checkpoint",
178
+ "type": "registry:ui",
179
+ "files": [
180
+ {
181
+ "path": "json/checkpoint.json",
182
+ "type": "registry:file"
183
+ }
184
+ ]
185
+ },
186
+ {
187
+ "name": "code-block",
188
+ "type": "registry:ui",
189
+ "files": [
190
+ {
191
+ "path": "json/code-block.json",
192
+ "type": "registry:file"
193
+ }
194
+ ]
195
+ },
196
+ {
197
+ "name": "collapsible",
198
+ "type": "registry:ui",
199
+ "files": [
200
+ {
201
+ "path": "json/collapsible.json",
202
+ "type": "registry:file"
203
+ }
204
+ ]
205
+ },
206
+ {
207
+ "name": "command",
208
+ "type": "registry:ui",
209
+ "files": [
210
+ {
211
+ "path": "json/command.json",
212
+ "type": "registry:file"
213
+ }
214
+ ]
215
+ },
216
+ {
217
+ "name": "context-menu",
218
+ "type": "registry:ui",
219
+ "files": [
220
+ {
221
+ "path": "json/context-menu.json",
222
+ "type": "registry:file"
223
+ }
224
+ ]
225
+ },
226
+ {
227
+ "name": "dialog",
228
+ "type": "registry:ui",
229
+ "files": [
230
+ {
231
+ "path": "json/dialog.json",
232
+ "type": "registry:file"
233
+ }
234
+ ]
235
+ },
236
+ {
237
+ "name": "drawer",
238
+ "type": "registry:ui",
239
+ "files": [
240
+ {
241
+ "path": "json/drawer.json",
242
+ "type": "registry:file"
243
+ }
244
+ ]
245
+ },
246
+ {
247
+ "name": "dropdown-menu",
248
+ "type": "registry:ui",
249
+ "files": [
250
+ {
251
+ "path": "json/dropdown-menu.json",
252
+ "type": "registry:file"
253
+ }
254
+ ]
255
+ },
256
+ {
257
+ "name": "empty",
258
+ "type": "registry:ui",
259
+ "files": [
260
+ {
261
+ "path": "json/empty.json",
262
+ "type": "registry:file"
263
+ }
264
+ ]
265
+ },
266
+ {
267
+ "name": "field",
268
+ "type": "registry:ui",
269
+ "files": [
270
+ {
271
+ "path": "json/field.json",
272
+ "type": "registry:file"
273
+ }
274
+ ]
275
+ },
276
+ {
277
+ "name": "globe",
278
+ "type": "registry:ui",
279
+ "files": [
280
+ {
281
+ "path": "json/globe.json",
282
+ "type": "registry:file"
283
+ }
284
+ ]
285
+ },
286
+ {
287
+ "name": "hover-card",
288
+ "type": "registry:ui",
289
+ "files": [
290
+ {
291
+ "path": "json/hover-card.json",
292
+ "type": "registry:file"
293
+ }
294
+ ]
295
+ },
296
+ {
297
+ "name": "input-group",
298
+ "type": "registry:ui",
299
+ "files": [
300
+ {
301
+ "path": "json/input-group.json",
302
+ "type": "registry:file"
303
+ }
304
+ ]
305
+ },
306
+ {
307
+ "name": "input-otp",
308
+ "type": "registry:ui",
309
+ "files": [
310
+ {
311
+ "path": "json/input-otp.json",
312
+ "type": "registry:file"
313
+ }
314
+ ]
315
+ },
316
+ {
317
+ "name": "input",
318
+ "type": "registry:ui",
319
+ "files": [
320
+ {
321
+ "path": "json/input.json",
322
+ "type": "registry:file"
323
+ }
324
+ ]
325
+ },
326
+ {
327
+ "name": "item",
328
+ "type": "registry:ui",
329
+ "files": [
330
+ {
331
+ "path": "json/item.json",
332
+ "type": "registry:file"
333
+ }
334
+ ]
335
+ },
336
+ {
337
+ "name": "kbd",
338
+ "type": "registry:ui",
339
+ "files": [
340
+ {
341
+ "path": "json/kbd.json",
342
+ "type": "registry:file"
343
+ }
344
+ ]
345
+ },
346
+ {
347
+ "name": "label",
348
+ "type": "registry:ui",
349
+ "files": [
350
+ {
351
+ "path": "json/label.json",
352
+ "type": "registry:file"
353
+ }
354
+ ]
355
+ },
356
+ {
357
+ "name": "map",
358
+ "type": "registry:ui",
359
+ "files": [
360
+ {
361
+ "path": "json/map.json",
362
+ "type": "registry:file"
363
+ }
364
+ ]
365
+ },
366
+ {
367
+ "name": "marker",
368
+ "type": "registry:ui",
369
+ "files": [
370
+ {
371
+ "path": "json/marker.json",
372
+ "type": "registry:file"
373
+ }
374
+ ]
375
+ },
376
+ {
377
+ "name": "marquee",
378
+ "type": "registry:ui",
379
+ "files": [
380
+ {
381
+ "path": "json/marquee.json",
382
+ "type": "registry:file"
383
+ }
384
+ ]
385
+ },
386
+ {
387
+ "name": "message",
388
+ "type": "registry:ui",
389
+ "files": [
390
+ {
391
+ "path": "json/message.json",
392
+ "type": "registry:file"
393
+ }
394
+ ]
395
+ },
396
+ {
397
+ "name": "navigation-menu",
398
+ "type": "registry:ui",
399
+ "files": [
400
+ {
401
+ "path": "json/navigation-menu.json",
402
+ "type": "registry:file"
403
+ }
404
+ ]
405
+ },
406
+ {
407
+ "name": "number-ticker",
408
+ "type": "registry:ui",
409
+ "files": [
410
+ {
411
+ "path": "json/number-ticker.json",
412
+ "type": "registry:file"
413
+ }
414
+ ]
415
+ },
416
+ {
417
+ "name": "pagination",
418
+ "type": "registry:ui",
419
+ "files": [
420
+ {
421
+ "path": "json/pagination.json",
422
+ "type": "registry:file"
423
+ }
424
+ ]
425
+ },
426
+ {
427
+ "name": "popover",
428
+ "type": "registry:ui",
429
+ "files": [
430
+ {
431
+ "path": "json/popover.json",
432
+ "type": "registry:file"
433
+ }
434
+ ]
435
+ },
436
+ {
437
+ "name": "progress",
438
+ "type": "registry:ui",
439
+ "files": [
440
+ {
441
+ "path": "json/progress.json",
442
+ "type": "registry:file"
443
+ }
444
+ ]
445
+ },
446
+ {
447
+ "name": "select",
448
+ "type": "registry:ui",
449
+ "files": [
450
+ {
451
+ "path": "json/select.json",
452
+ "type": "registry:file"
453
+ }
454
+ ]
455
+ },
456
+ {
457
+ "name": "separator",
458
+ "type": "registry:ui",
459
+ "files": [
460
+ {
461
+ "path": "json/separator.json",
462
+ "type": "registry:file"
463
+ }
464
+ ]
465
+ },
466
+ {
467
+ "name": "sheet",
468
+ "type": "registry:ui",
469
+ "files": [
470
+ {
471
+ "path": "json/sheet.json",
472
+ "type": "registry:file"
473
+ }
474
+ ]
475
+ },
476
+ {
477
+ "name": "sidebar",
478
+ "type": "registry:ui",
479
+ "files": [
480
+ {
481
+ "path": "json/sidebar.json",
482
+ "type": "registry:file"
483
+ }
484
+ ]
485
+ },
486
+ {
487
+ "name": "skeleton",
488
+ "type": "registry:ui",
489
+ "files": [
490
+ {
491
+ "path": "json/skeleton.json",
492
+ "type": "registry:file"
493
+ }
494
+ ]
495
+ },
496
+ {
497
+ "name": "sonner",
498
+ "type": "registry:ui",
499
+ "files": [
500
+ {
501
+ "path": "json/sonner.json",
502
+ "type": "registry:file"
503
+ }
504
+ ]
505
+ },
506
+ {
507
+ "name": "spinner",
508
+ "type": "registry:ui",
509
+ "files": [
510
+ {
511
+ "path": "json/spinner.json",
512
+ "type": "registry:file"
513
+ }
514
+ ]
515
+ },
516
+ {
517
+ "name": "switch",
518
+ "type": "registry:ui",
519
+ "files": [
520
+ {
521
+ "path": "json/switch.json",
522
+ "type": "registry:file"
523
+ }
524
+ ]
525
+ },
526
+ {
527
+ "name": "table",
528
+ "type": "registry:ui",
529
+ "files": [
530
+ {
531
+ "path": "json/table.json",
532
+ "type": "registry:file"
533
+ }
534
+ ]
535
+ },
536
+ {
537
+ "name": "tabs",
538
+ "type": "registry:ui",
539
+ "files": [
540
+ {
541
+ "path": "json/tabs.json",
542
+ "type": "registry:file"
543
+ }
544
+ ]
545
+ },
546
+ {
547
+ "name": "textarea",
548
+ "type": "registry:ui",
549
+ "files": [
550
+ {
551
+ "path": "json/textarea.json",
552
+ "type": "registry:file"
553
+ }
554
+ ]
555
+ },
556
+ {
557
+ "name": "toggle-group",
558
+ "type": "registry:ui",
559
+ "files": [
560
+ {
561
+ "path": "json/toggle-group.json",
562
+ "type": "registry:file"
563
+ }
564
+ ]
565
+ },
566
+ {
567
+ "name": "toggle",
568
+ "type": "registry:ui",
569
+ "files": [
570
+ {
571
+ "path": "json/toggle.json",
572
+ "type": "registry:file"
573
+ }
574
+ ]
575
+ },
576
+ {
577
+ "name": "tooltip",
578
+ "type": "registry:ui",
579
+ "files": [
580
+ {
581
+ "path": "json/tooltip.json",
582
+ "type": "registry:file"
583
+ }
584
+ ]
585
+ },
586
+ {
587
+ "name": "trace",
588
+ "type": "registry:ui",
589
+ "files": [
590
+ {
591
+ "path": "json/trace.json",
592
+ "type": "registry:file"
593
+ }
594
+ ]
595
+ },
596
+ {
597
+ "name": "lib-utils",
598
+ "type": "registry:lib",
599
+ "files": [
600
+ {
601
+ "path": "json/lib-utils.json",
602
+ "type": "registry:file"
603
+ }
604
+ ]
605
+ },
606
+ {
607
+ "name": "hook-use-mobile",
608
+ "type": "registry:hook",
609
+ "files": [
610
+ {
611
+ "path": "json/hook-use-mobile.json",
612
+ "type": "registry:file"
613
+ }
614
+ ]
615
+ },
616
+ {
617
+ "name": "lib-disable-input-autofill",
618
+ "type": "registry:lib",
619
+ "files": [
620
+ {
621
+ "path": "json/lib-disable-input-autofill.json",
622
+ "type": "registry:file"
623
+ }
624
+ ]
625
+ },
626
+ {
627
+ "name": "lib-sidebar-persistence",
628
+ "type": "registry:lib",
629
+ "files": [
630
+ {
631
+ "path": "json/lib-sidebar-persistence.json",
632
+ "type": "registry:file"
633
+ }
634
+ ]
635
+ }
636
+ ]
637
+ }
@@ -0,0 +1,65 @@
1
+ "use client"
2
+
3
+ import { IconChevronDown } from "@tabler/icons-react";
4
+ import * as React from "react"
5
+ import * as AccordionPrimitive from "@radix-ui/react-accordion"
6
+ import { cn } from "@/lib/utils"
7
+
8
+ function Accordion({
9
+ ...props
10
+ }: React.ComponentProps<typeof AccordionPrimitive.Root>) {
11
+ return <AccordionPrimitive.Root data-slot="accordion" {...props} />
12
+ }
13
+
14
+ function AccordionItem({
15
+ className,
16
+ ...props
17
+ }: React.ComponentProps<typeof AccordionPrimitive.Item>) {
18
+ return (
19
+ <AccordionPrimitive.Item
20
+ data-slot="accordion-item"
21
+ className={cn("border-b last:border-b-0", className)}
22
+ {...props}
23
+ />
24
+ )
25
+ }
26
+
27
+ function AccordionTrigger({
28
+ className,
29
+ children,
30
+ ...props
31
+ }: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {
32
+ return (
33
+ <AccordionPrimitive.Header className="flex">
34
+ <AccordionPrimitive.Trigger
35
+ data-slot="accordion-trigger"
36
+ className={cn(
37
+ "focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
38
+ className
39
+ )}
40
+ {...props}
41
+ >
42
+ {children}
43
+ <IconChevronDown className="text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" />
44
+ </AccordionPrimitive.Trigger>
45
+ </AccordionPrimitive.Header>
46
+ )
47
+ }
48
+
49
+ function AccordionContent({
50
+ className,
51
+ children,
52
+ ...props
53
+ }: React.ComponentProps<typeof AccordionPrimitive.Content>) {
54
+ return (
55
+ <AccordionPrimitive.Content
56
+ data-slot="accordion-content"
57
+ className="data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm"
58
+ {...props}
59
+ >
60
+ <div className={cn("pt-0 pb-4", className)}>{children}</div>
61
+ </AccordionPrimitive.Content>
62
+ )
63
+ }
64
+
65
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }