@codefast/ui 0.0.2 → 0.0.4

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 (348) hide show
  1. package/dist/accordion.d.mts +9 -0
  2. package/dist/accordion.d.ts +9 -0
  3. package/dist/accordion.js +2 -0
  4. package/dist/accordion.js.map +1 -0
  5. package/dist/accordion.mjs +2 -0
  6. package/dist/accordion.mjs.map +1 -0
  7. package/dist/alert-dialog.d.mts +16 -0
  8. package/dist/alert-dialog.d.ts +16 -0
  9. package/dist/alert-dialog.js +2 -0
  10. package/dist/alert-dialog.js.map +1 -0
  11. package/dist/alert-dialog.mjs +2 -0
  12. package/dist/alert-dialog.mjs.map +1 -0
  13. package/dist/alert.d.mts +64 -0
  14. package/dist/alert.d.ts +64 -0
  15. package/dist/alert.js +2 -0
  16. package/dist/alert.js.map +1 -0
  17. package/dist/alert.mjs +2 -0
  18. package/dist/alert.mjs.map +1 -0
  19. package/dist/aspect-ratio.d.mts +6 -0
  20. package/dist/aspect-ratio.d.ts +6 -0
  21. package/dist/aspect-ratio.js +2 -0
  22. package/dist/aspect-ratio.js.map +1 -0
  23. package/dist/aspect-ratio.mjs +2 -0
  24. package/dist/aspect-ratio.mjs.map +1 -0
  25. package/dist/avatar.d.mts +8 -0
  26. package/dist/avatar.d.ts +8 -0
  27. package/dist/avatar.js +2 -0
  28. package/dist/avatar.js.map +1 -0
  29. package/dist/avatar.mjs +2 -0
  30. package/dist/avatar.mjs.map +1 -0
  31. package/dist/badge.d.mts +62 -0
  32. package/dist/badge.d.ts +62 -0
  33. package/dist/badge.js +2 -0
  34. package/dist/badge.js.map +1 -0
  35. package/dist/badge.mjs +2 -0
  36. package/dist/badge.mjs.map +1 -0
  37. package/dist/breadcrumb.d.mts +15 -0
  38. package/dist/breadcrumb.d.ts +15 -0
  39. package/dist/breadcrumb.js +2 -0
  40. package/dist/breadcrumb.js.map +1 -0
  41. package/dist/breadcrumb.mjs +2 -0
  42. package/dist/breadcrumb.mjs.map +1 -0
  43. package/dist/button.d.mts +65 -4
  44. package/dist/button.d.ts +65 -4
  45. package/dist/button.js +1 -1
  46. package/dist/button.js.map +1 -1
  47. package/dist/button.mjs +1 -1
  48. package/dist/button.mjs.map +1 -1
  49. package/dist/calendar.d.mts +7 -0
  50. package/dist/calendar.d.ts +7 -0
  51. package/dist/calendar.js +2 -0
  52. package/dist/calendar.js.map +1 -0
  53. package/dist/calendar.mjs +2 -0
  54. package/dist/calendar.mjs.map +1 -0
  55. package/dist/card.d.mts +9 -7
  56. package/dist/card.d.ts +9 -7
  57. package/dist/card.js +1 -1
  58. package/dist/card.js.map +1 -1
  59. package/dist/card.mjs +1 -1
  60. package/dist/card.mjs.map +1 -1
  61. package/dist/carousel.d.mts +22 -0
  62. package/dist/carousel.d.ts +22 -0
  63. package/dist/carousel.js +2 -0
  64. package/dist/carousel.js.map +1 -0
  65. package/dist/carousel.mjs +2 -0
  66. package/dist/carousel.mjs.map +1 -0
  67. package/dist/checkbox.d.mts +6 -0
  68. package/dist/checkbox.d.ts +6 -0
  69. package/dist/checkbox.js +2 -0
  70. package/dist/checkbox.js.map +1 -0
  71. package/dist/checkbox.mjs +2 -0
  72. package/dist/checkbox.mjs.map +1 -0
  73. package/dist/chunk-4ZL55G6C.js +2 -0
  74. package/dist/chunk-4ZL55G6C.js.map +1 -0
  75. package/dist/chunk-76AASLTX.mjs +2 -0
  76. package/dist/chunk-76AASLTX.mjs.map +1 -0
  77. package/dist/chunk-7UVSBFQU.js +2 -0
  78. package/dist/chunk-7UVSBFQU.js.map +1 -0
  79. package/dist/chunk-BP7PEVLB.js +2 -0
  80. package/dist/chunk-BP7PEVLB.js.map +1 -0
  81. package/dist/chunk-BPCLLQ62.mjs +2 -0
  82. package/dist/chunk-BPCLLQ62.mjs.map +1 -0
  83. package/dist/chunk-CAGY2ZSE.js +2 -0
  84. package/dist/chunk-CAGY2ZSE.js.map +1 -0
  85. package/dist/chunk-JTI7KCLO.mjs +2 -0
  86. package/dist/chunk-JTI7KCLO.mjs.map +1 -0
  87. package/dist/chunk-QZCQ42BP.js +2 -0
  88. package/dist/chunk-QZCQ42BP.js.map +1 -0
  89. package/dist/chunk-WZ4XIF6U.mjs +2 -0
  90. package/dist/chunk-WZ4XIF6U.mjs.map +1 -0
  91. package/dist/chunk-YQJHVJVX.mjs +2 -0
  92. package/dist/chunk-YQJHVJVX.mjs.map +1 -0
  93. package/dist/collapsible.d.mts +8 -0
  94. package/dist/collapsible.d.ts +8 -0
  95. package/dist/collapsible.js +2 -0
  96. package/dist/collapsible.js.map +1 -0
  97. package/dist/collapsible.mjs +2 -0
  98. package/dist/collapsible.mjs.map +1 -0
  99. package/dist/command.d.mts +89 -0
  100. package/dist/command.d.ts +89 -0
  101. package/dist/command.js +2 -0
  102. package/dist/command.js.map +1 -0
  103. package/dist/command.mjs +2 -0
  104. package/dist/command.mjs.map +1 -0
  105. package/dist/context-menu.d.mts +26 -0
  106. package/dist/context-menu.d.ts +26 -0
  107. package/dist/context-menu.js +2 -0
  108. package/dist/context-menu.js.map +1 -0
  109. package/dist/context-menu.mjs +2 -0
  110. package/dist/context-menu.mjs.map +1 -0
  111. package/dist/dialog.d.mts +15 -0
  112. package/dist/dialog.d.ts +15 -0
  113. package/dist/dialog.js +2 -0
  114. package/dist/dialog.js.map +1 -0
  115. package/dist/dialog.mjs +2 -0
  116. package/dist/dialog.mjs.map +1 -0
  117. package/dist/drawer.d.mts +18 -0
  118. package/dist/drawer.d.ts +18 -0
  119. package/dist/drawer.js +2 -0
  120. package/dist/drawer.js.map +1 -0
  121. package/dist/drawer.mjs +2 -0
  122. package/dist/drawer.mjs.map +1 -0
  123. package/dist/dropdown-menu.d.mts +26 -0
  124. package/dist/dropdown-menu.d.ts +26 -0
  125. package/dist/dropdown-menu.js +2 -0
  126. package/dist/dropdown-menu.js.map +1 -0
  127. package/dist/dropdown-menu.mjs +2 -0
  128. package/dist/dropdown-menu.mjs.map +1 -0
  129. package/dist/form.d.mts +27 -0
  130. package/dist/form.d.ts +27 -0
  131. package/dist/form.js +2 -0
  132. package/dist/form.js.map +1 -0
  133. package/dist/form.mjs +2 -0
  134. package/dist/form.mjs.map +1 -0
  135. package/dist/hover-card.d.mts +8 -0
  136. package/dist/hover-card.d.ts +8 -0
  137. package/dist/hover-card.js +2 -0
  138. package/dist/hover-card.js.map +1 -0
  139. package/dist/hover-card.mjs +2 -0
  140. package/dist/hover-card.mjs.map +1 -0
  141. package/dist/input-otp.d.mts +36 -0
  142. package/dist/input-otp.d.ts +36 -0
  143. package/dist/input-otp.js +2 -0
  144. package/dist/input-otp.js.map +1 -0
  145. package/dist/input-otp.mjs +2 -0
  146. package/dist/input-otp.mjs.map +1 -0
  147. package/dist/input.d.mts +5 -0
  148. package/dist/input.d.ts +5 -0
  149. package/dist/input.js +2 -0
  150. package/dist/input.js.map +1 -0
  151. package/dist/input.mjs +2 -0
  152. package/dist/input.mjs.map +1 -0
  153. package/dist/label.d.mts +6 -0
  154. package/dist/label.d.ts +6 -0
  155. package/dist/label.js +2 -0
  156. package/dist/label.js.map +1 -0
  157. package/dist/label.mjs +2 -0
  158. package/dist/label.mjs.map +1 -0
  159. package/dist/menubar.d.mts +30 -0
  160. package/dist/menubar.d.ts +30 -0
  161. package/dist/menubar.js +2 -0
  162. package/dist/menubar.js.map +1 -0
  163. package/dist/menubar.mjs +2 -0
  164. package/dist/menubar.mjs.map +1 -0
  165. package/dist/navigation-menu.d.mts +68 -0
  166. package/dist/navigation-menu.d.ts +68 -0
  167. package/dist/navigation-menu.js +2 -0
  168. package/dist/navigation-menu.js.map +1 -0
  169. package/dist/navigation-menu.mjs +2 -0
  170. package/dist/navigation-menu.mjs.map +1 -0
  171. package/dist/pagination.d.mts +16 -0
  172. package/dist/pagination.d.ts +16 -0
  173. package/dist/pagination.js +2 -0
  174. package/dist/pagination.js.map +1 -0
  175. package/dist/pagination.mjs +2 -0
  176. package/dist/pagination.mjs.map +1 -0
  177. package/dist/popover.d.mts +9 -0
  178. package/dist/popover.d.ts +9 -0
  179. package/dist/popover.js +2 -0
  180. package/dist/popover.js.map +1 -0
  181. package/dist/popover.mjs +2 -0
  182. package/dist/popover.mjs.map +1 -0
  183. package/dist/progress.d.mts +6 -0
  184. package/dist/progress.d.ts +6 -0
  185. package/dist/progress.js +2 -0
  186. package/dist/progress.js.map +1 -0
  187. package/dist/progress.mjs +2 -0
  188. package/dist/progress.mjs.map +1 -0
  189. package/dist/radio-group.d.mts +7 -0
  190. package/dist/radio-group.d.ts +7 -0
  191. package/dist/radio-group.js +2 -0
  192. package/dist/radio-group.js.map +1 -0
  193. package/dist/radio-group.mjs +2 -0
  194. package/dist/radio-group.mjs.map +1 -0
  195. package/dist/resizable.d.mts +26 -0
  196. package/dist/resizable.d.ts +26 -0
  197. package/dist/resizable.js +2 -0
  198. package/dist/resizable.js.map +1 -0
  199. package/dist/resizable.mjs +2 -0
  200. package/dist/resizable.mjs.map +1 -0
  201. package/dist/scroll-area.d.mts +7 -0
  202. package/dist/scroll-area.d.ts +7 -0
  203. package/dist/scroll-area.js +2 -0
  204. package/dist/scroll-area.js.map +1 -0
  205. package/dist/scroll-area.mjs +2 -0
  206. package/dist/scroll-area.mjs.map +1 -0
  207. package/dist/select.d.mts +15 -0
  208. package/dist/select.d.ts +15 -0
  209. package/dist/select.js +2 -0
  210. package/dist/select.js.map +1 -0
  211. package/dist/select.mjs +2 -0
  212. package/dist/select.mjs.map +1 -0
  213. package/dist/separator.d.mts +6 -0
  214. package/dist/separator.d.ts +6 -0
  215. package/dist/separator.js +2 -0
  216. package/dist/separator.js.map +1 -0
  217. package/dist/separator.mjs +2 -0
  218. package/dist/separator.mjs.map +1 -0
  219. package/dist/sheet.d.mts +75 -0
  220. package/dist/sheet.d.ts +75 -0
  221. package/dist/sheet.js +2 -0
  222. package/dist/sheet.js.map +1 -0
  223. package/dist/sheet.mjs +2 -0
  224. package/dist/sheet.mjs.map +1 -0
  225. package/dist/skeleton.d.mts +5 -0
  226. package/dist/skeleton.d.ts +5 -0
  227. package/dist/skeleton.js +2 -0
  228. package/dist/skeleton.js.map +1 -0
  229. package/dist/skeleton.mjs +2 -0
  230. package/dist/skeleton.mjs.map +1 -0
  231. package/dist/slider.d.mts +6 -0
  232. package/dist/slider.d.ts +6 -0
  233. package/dist/slider.js +2 -0
  234. package/dist/slider.js.map +1 -0
  235. package/dist/slider.mjs +2 -0
  236. package/dist/slider.mjs.map +1 -0
  237. package/dist/sonner.d.mts +8 -0
  238. package/dist/sonner.d.ts +8 -0
  239. package/dist/sonner.js +2 -0
  240. package/dist/sonner.js.map +1 -0
  241. package/dist/sonner.mjs +2 -0
  242. package/dist/sonner.mjs.map +1 -0
  243. package/dist/styles.css +1 -1
  244. package/dist/styles.css.map +1 -1
  245. package/dist/switch.d.mts +6 -0
  246. package/dist/switch.d.ts +6 -0
  247. package/dist/switch.js +2 -0
  248. package/dist/switch.js.map +1 -0
  249. package/dist/switch.mjs +2 -0
  250. package/dist/switch.mjs.map +1 -0
  251. package/dist/table.d.mts +12 -0
  252. package/dist/table.d.ts +12 -0
  253. package/dist/table.js +2 -0
  254. package/dist/table.js.map +1 -0
  255. package/dist/table.mjs +2 -0
  256. package/dist/table.mjs.map +1 -0
  257. package/dist/tabs.d.mts +9 -0
  258. package/dist/tabs.d.ts +9 -0
  259. package/dist/tabs.js +2 -0
  260. package/dist/tabs.js.map +1 -0
  261. package/dist/tabs.mjs +2 -0
  262. package/dist/tabs.mjs.map +1 -0
  263. package/dist/textarea.d.mts +5 -0
  264. package/dist/textarea.d.ts +5 -0
  265. package/dist/textarea.js +2 -0
  266. package/dist/textarea.js.map +1 -0
  267. package/dist/textarea.mjs +2 -0
  268. package/dist/textarea.mjs.map +1 -0
  269. package/dist/toggle-group.d.mts +10 -0
  270. package/dist/toggle-group.d.ts +10 -0
  271. package/dist/toggle-group.js +2 -0
  272. package/dist/toggle-group.js.map +1 -0
  273. package/dist/toggle-group.mjs +2 -0
  274. package/dist/toggle-group.mjs.map +1 -0
  275. package/dist/toggle.d.mts +66 -0
  276. package/dist/toggle.d.ts +66 -0
  277. package/dist/toggle.js +2 -0
  278. package/dist/toggle.js.map +1 -0
  279. package/dist/toggle.mjs +2 -0
  280. package/dist/toggle.mjs.map +1 -0
  281. package/dist/tooltip.d.mts +11 -0
  282. package/dist/tooltip.d.ts +11 -0
  283. package/dist/tooltip.js +2 -0
  284. package/dist/tooltip.js.map +1 -0
  285. package/dist/tooltip.mjs +2 -0
  286. package/dist/tooltip.mjs.map +1 -0
  287. package/dist/utils.d.mts +5 -3
  288. package/dist/utils.d.ts +5 -3
  289. package/dist/utils.js +1 -1
  290. package/dist/utils.mjs +1 -1
  291. package/package.json +261 -19
  292. package/src/accordion.tsx +80 -0
  293. package/src/alert-dialog.tsx +190 -0
  294. package/src/alert.tsx +78 -0
  295. package/src/aspect-ratio.tsx +15 -0
  296. package/src/avatar.tsx +65 -0
  297. package/src/badge.tsx +43 -0
  298. package/src/breadcrumb.tsx +148 -0
  299. package/src/button.tsx +63 -21
  300. package/src/calendar.tsx +95 -0
  301. package/src/card.tsx +112 -25
  302. package/src/carousel.tsx +281 -0
  303. package/src/checkbox.tsx +36 -0
  304. package/src/collapsible.tsx +27 -0
  305. package/src/command.tsx +214 -0
  306. package/src/context-menu.tsx +290 -0
  307. package/src/dialog.tsx +176 -0
  308. package/src/drawer.tsx +164 -0
  309. package/src/dropdown-menu.tsx +290 -0
  310. package/src/form.tsx +225 -0
  311. package/src/hover-card.tsx +54 -0
  312. package/src/input-otp.tsx +100 -0
  313. package/src/input.tsx +30 -0
  314. package/src/label.tsx +29 -0
  315. package/src/menubar.tsx +326 -0
  316. package/src/navigation-menu.tsx +189 -0
  317. package/src/pagination.tsx +162 -0
  318. package/src/popover.tsx +62 -0
  319. package/src/progress.tsx +35 -0
  320. package/src/radio-group.tsx +54 -0
  321. package/src/resizable.tsx +67 -0
  322. package/src/scroll-area.tsx +60 -0
  323. package/src/select.tsx +216 -0
  324. package/src/separator.tsx +38 -0
  325. package/src/sheet.tsx +209 -0
  326. package/src/skeleton.tsx +24 -0
  327. package/src/slider.tsx +35 -0
  328. package/src/sonner.tsx +41 -0
  329. package/src/switch.tsx +38 -0
  330. package/src/table.tsx +155 -0
  331. package/src/tabs.tsx +75 -0
  332. package/src/textarea.tsx +29 -0
  333. package/src/toggle-group.tsx +70 -0
  334. package/src/toggle.tsx +56 -0
  335. package/src/tooltip.tsx +84 -0
  336. package/src/utils.ts +10 -5
  337. package/tailwind.config.ts +101 -1
  338. package/dist/chunk-LZ5T3FQ5.js +0 -2
  339. package/dist/chunk-LZ5T3FQ5.js.map +0 -1
  340. package/dist/chunk-ULRAQPD3.mjs +0 -2
  341. package/dist/chunk-ULRAQPD3.mjs.map +0 -1
  342. package/dist/code.d.mts +0 -3
  343. package/dist/code.d.ts +0 -3
  344. package/dist/code.js +0 -2
  345. package/dist/code.js.map +0 -1
  346. package/dist/code.mjs +0 -2
  347. package/dist/code.mjs.map +0 -1
  348. package/src/code.tsx +0 -5
package/src/table.tsx ADDED
@@ -0,0 +1,155 @@
1
+ import * as React from "react";
2
+ import { cn } from "./utils";
3
+
4
+ /* -----------------------------------------------------------------------------
5
+ * Component: Table
6
+ * -------------------------------------------------------------------------- */
7
+
8
+ const Table = React.forwardRef<
9
+ HTMLTableElement,
10
+ React.HTMLAttributes<HTMLTableElement>
11
+ >(({ className, ...props }, ref) => (
12
+ <div className="relative w-full overflow-auto">
13
+ <table
14
+ ref={ref}
15
+ className={cn("w-full caption-bottom text-sm", className)}
16
+ {...props}
17
+ />
18
+ </div>
19
+ ));
20
+ Table.displayName = "Table";
21
+
22
+ /* -----------------------------------------------------------------------------
23
+ * Component: TableHeader
24
+ * -------------------------------------------------------------------------- */
25
+
26
+ const TableHeader = React.forwardRef<
27
+ HTMLTableSectionElement,
28
+ React.HTMLAttributes<HTMLTableSectionElement>
29
+ >(({ className, ...props }, ref) => (
30
+ <thead ref={ref} className={cn("[&_tr]:border-b", className)} {...props} />
31
+ ));
32
+ TableHeader.displayName = "TableHeader";
33
+
34
+ /* -----------------------------------------------------------------------------
35
+ * Component: TableBody
36
+ * -------------------------------------------------------------------------- */
37
+
38
+ const TableBody = React.forwardRef<
39
+ HTMLTableSectionElement,
40
+ React.HTMLAttributes<HTMLTableSectionElement>
41
+ >(({ className, ...props }, ref) => (
42
+ <tbody
43
+ ref={ref}
44
+ className={cn("[&_tr:last-child]:border-0", className)}
45
+ {...props}
46
+ />
47
+ ));
48
+ TableBody.displayName = "TableBody";
49
+
50
+ /* -----------------------------------------------------------------------------
51
+ * Component: TableFooter
52
+ * -------------------------------------------------------------------------- */
53
+
54
+ const TableFooter = React.forwardRef<
55
+ HTMLTableSectionElement,
56
+ React.HTMLAttributes<HTMLTableSectionElement>
57
+ >(({ className, ...props }, ref) => (
58
+ <tfoot
59
+ ref={ref}
60
+ className={cn(
61
+ "bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",
62
+ className,
63
+ )}
64
+ {...props}
65
+ />
66
+ ));
67
+ TableFooter.displayName = "TableFooter";
68
+
69
+ /* -----------------------------------------------------------------------------
70
+ * Component: TableRow
71
+ * -------------------------------------------------------------------------- */
72
+
73
+ const TableRow = React.forwardRef<
74
+ HTMLTableRowElement,
75
+ React.HTMLAttributes<HTMLTableRowElement>
76
+ >(({ className, ...props }, ref) => (
77
+ <tr
78
+ ref={ref}
79
+ className={cn(
80
+ "hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",
81
+ className,
82
+ )}
83
+ {...props}
84
+ />
85
+ ));
86
+ TableRow.displayName = "TableRow";
87
+
88
+ /* -----------------------------------------------------------------------------
89
+ * Component: TableHead
90
+ * -------------------------------------------------------------------------- */
91
+
92
+ const TableHead = React.forwardRef<
93
+ HTMLTableCellElement,
94
+ React.ThHTMLAttributes<HTMLTableCellElement>
95
+ >(({ className, ...props }, ref) => (
96
+ <th
97
+ ref={ref}
98
+ className={cn(
99
+ "text-muted-foreground h-10 px-2 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
100
+ className,
101
+ )}
102
+ {...props}
103
+ />
104
+ ));
105
+ TableHead.displayName = "TableHead";
106
+
107
+ /* -----------------------------------------------------------------------------
108
+ * Component: TableCell
109
+ * -------------------------------------------------------------------------- */
110
+
111
+ const TableCell = React.forwardRef<
112
+ HTMLTableCellElement,
113
+ React.TdHTMLAttributes<HTMLTableCellElement>
114
+ >(({ className, ...props }, ref) => (
115
+ <td
116
+ ref={ref}
117
+ className={cn(
118
+ "p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",
119
+ className,
120
+ )}
121
+ {...props}
122
+ />
123
+ ));
124
+ TableCell.displayName = "TableCell";
125
+
126
+ /* -----------------------------------------------------------------------------
127
+ * Component: TableCaption
128
+ * -------------------------------------------------------------------------- */
129
+
130
+ const TableCaption = React.forwardRef<
131
+ HTMLTableCaptionElement,
132
+ React.HTMLAttributes<HTMLTableCaptionElement>
133
+ >(({ className, ...props }, ref) => (
134
+ <caption
135
+ ref={ref}
136
+ className={cn("text-muted-foreground mt-4 text-sm", className)}
137
+ {...props}
138
+ />
139
+ ));
140
+ TableCaption.displayName = "TableCaption";
141
+
142
+ /* -----------------------------------------------------------------------------
143
+ * Exports
144
+ * -------------------------------------------------------------------------- */
145
+
146
+ export {
147
+ Table,
148
+ TableHeader,
149
+ TableBody,
150
+ TableFooter,
151
+ TableHead,
152
+ TableRow,
153
+ TableCell,
154
+ TableCaption,
155
+ };
package/src/tabs.tsx ADDED
@@ -0,0 +1,75 @@
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import * as TabsPrimitive from "@radix-ui/react-tabs";
5
+ import { cn } from "./utils";
6
+
7
+ /* -----------------------------------------------------------------------------
8
+ * Component: Tabs
9
+ * -------------------------------------------------------------------------- */
10
+
11
+ const Tabs = TabsPrimitive.Root;
12
+
13
+ /* -----------------------------------------------------------------------------
14
+ * Component: TabsList
15
+ * -------------------------------------------------------------------------- */
16
+
17
+ const TabsList = React.forwardRef<
18
+ React.ElementRef<typeof TabsPrimitive.List>,
19
+ TabsPrimitive.TabsListProps
20
+ >(({ className, ...props }, ref) => (
21
+ <TabsPrimitive.List
22
+ ref={ref}
23
+ className={cn(
24
+ "bg-muted text-muted-foreground inline-flex h-9 items-center justify-center rounded-lg p-1",
25
+ className,
26
+ )}
27
+ {...props}
28
+ />
29
+ ));
30
+ TabsList.displayName = TabsPrimitive.List.displayName;
31
+
32
+ /* -----------------------------------------------------------------------------
33
+ * Component: TabsTrigger
34
+ * -------------------------------------------------------------------------- */
35
+
36
+ const TabsTrigger = React.forwardRef<
37
+ React.ElementRef<typeof TabsPrimitive.Trigger>,
38
+ TabsPrimitive.TabsTriggerProps
39
+ >(({ className, ...props }, ref) => (
40
+ <TabsPrimitive.Trigger
41
+ ref={ref}
42
+ className={cn(
43
+ "ring-offset-background focus-visible:ring-ring inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
44
+ "data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",
45
+ className,
46
+ )}
47
+ {...props}
48
+ />
49
+ ));
50
+ TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
51
+
52
+ /* -----------------------------------------------------------------------------
53
+ * Component: TabsContent
54
+ * -------------------------------------------------------------------------- */
55
+
56
+ const TabsContent = React.forwardRef<
57
+ React.ElementRef<typeof TabsPrimitive.Content>,
58
+ TabsPrimitive.TabsContentProps
59
+ >(({ className, ...props }, ref) => (
60
+ <TabsPrimitive.Content
61
+ ref={ref}
62
+ className={cn(
63
+ "ring-offset-background focus-visible:ring-ring mt-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
64
+ className,
65
+ )}
66
+ {...props}
67
+ />
68
+ ));
69
+ TabsContent.displayName = TabsPrimitive.Content.displayName;
70
+
71
+ /* -----------------------------------------------------------------------------
72
+ * Exports
73
+ * -------------------------------------------------------------------------- */
74
+
75
+ export { Tabs, TabsList, TabsTrigger, TabsContent };
@@ -0,0 +1,29 @@
1
+ import * as React from "react";
2
+ import { cn } from "./utils";
3
+
4
+ /* -----------------------------------------------------------------------------
5
+ * Component: Textarea
6
+ * -------------------------------------------------------------------------- */
7
+
8
+ const Textarea = React.forwardRef<
9
+ HTMLTextAreaElement,
10
+ React.TextareaHTMLAttributes<HTMLTextAreaElement>
11
+ >(({ className, ...props }, ref) => {
12
+ return (
13
+ <textarea
14
+ className={cn(
15
+ "border-input placeholder:text-muted-foreground focus-visible:ring-ring flex min-h-[60px] w-full rounded-md border bg-transparent px-3 py-2 text-sm shadow-sm focus-visible:outline-none focus-visible:ring-1 disabled:cursor-not-allowed disabled:opacity-50",
16
+ className,
17
+ )}
18
+ ref={ref}
19
+ {...props}
20
+ />
21
+ );
22
+ });
23
+ Textarea.displayName = "Textarea";
24
+
25
+ /* -----------------------------------------------------------------------------
26
+ * Exports
27
+ * -------------------------------------------------------------------------- */
28
+
29
+ export { Textarea };
@@ -0,0 +1,70 @@
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import * as ToggleGroupPrimitive from "@radix-ui/react-toggle-group";
5
+ import { toggleVariants, type ToggleVariantsProps } from "./toggle";
6
+ import { cn } from "./utils";
7
+
8
+ /* -----------------------------------------------------------------------------
9
+ * Context: ToggleGroup
10
+ * -------------------------------------------------------------------------- */
11
+
12
+ const ToggleGroupContext = React.createContext<ToggleVariantsProps>({
13
+ size: "default",
14
+ variant: "default",
15
+ });
16
+
17
+ /* -----------------------------------------------------------------------------
18
+ * Component: ToggleGroup
19
+ * -------------------------------------------------------------------------- */
20
+
21
+ const ToggleGroup = React.forwardRef<
22
+ React.ElementRef<typeof ToggleGroupPrimitive.Root>,
23
+ React.ComponentPropsWithoutRef<typeof ToggleGroupPrimitive.Root> &
24
+ ToggleVariantsProps
25
+ >(({ className, variant, size, children, ...props }, ref) => (
26
+ <ToggleGroupPrimitive.Root
27
+ ref={ref}
28
+ className={cn("flex items-center justify-center gap-1", className)}
29
+ {...props}
30
+ >
31
+ <ToggleGroupContext.Provider value={{ variant, size }}>
32
+ {children}
33
+ </ToggleGroupContext.Provider>
34
+ </ToggleGroupPrimitive.Root>
35
+ ));
36
+ ToggleGroup.displayName = ToggleGroupPrimitive.Root.displayName;
37
+
38
+ /* -----------------------------------------------------------------------------
39
+ * Component: ToggleGroupItem
40
+ * -------------------------------------------------------------------------- */
41
+
42
+ const ToggleGroupItem = React.forwardRef<
43
+ React.ElementRef<typeof ToggleGroupPrimitive.Item>,
44
+ ToggleGroupPrimitive.ToggleGroupItemProps & ToggleVariantsProps
45
+ >(({ className, children, variant, size, ...props }, ref) => {
46
+ const context = React.useContext(ToggleGroupContext);
47
+
48
+ return (
49
+ <ToggleGroupPrimitive.Item
50
+ ref={ref}
51
+ className={cn(
52
+ toggleVariants({
53
+ variant: context.variant ?? variant,
54
+ size: context.size ?? size,
55
+ }),
56
+ className,
57
+ )}
58
+ {...props}
59
+ >
60
+ {children}
61
+ </ToggleGroupPrimitive.Item>
62
+ );
63
+ });
64
+ ToggleGroupItem.displayName = ToggleGroupPrimitive.Item.displayName;
65
+
66
+ /* -----------------------------------------------------------------------------
67
+ * Exports
68
+ * -------------------------------------------------------------------------- */
69
+
70
+ export { ToggleGroup, ToggleGroupItem };
package/src/toggle.tsx ADDED
@@ -0,0 +1,56 @@
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import * as TogglePrimitive from "@radix-ui/react-toggle";
5
+ import { type VariantProps } from "cva";
6
+ import { cva } from "./utils";
7
+
8
+ /* -----------------------------------------------------------------------------
9
+ * Variant: Toggle
10
+ * -------------------------------------------------------------------------- */
11
+
12
+ const toggleVariants = cva({
13
+ base: [
14
+ "hover:bg-muted hover:text-muted-foreground focus-visible:ring-ring inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 disabled:pointer-events-none disabled:opacity-50",
15
+ "data-[state=on]:bg-accent data-[state=on]:text-accent-foreground",
16
+ ],
17
+ variants: {
18
+ variant: {
19
+ default: "bg-transparent",
20
+ outline:
21
+ "border-input hover:bg-accent hover:text-accent-foreground border bg-transparent shadow-sm",
22
+ },
23
+ size: {
24
+ default: "h-9 px-3",
25
+ sm: "h-8 px-2",
26
+ lg: "h-10 px-3",
27
+ },
28
+ },
29
+ defaultVariants: {
30
+ variant: "default",
31
+ size: "default",
32
+ },
33
+ });
34
+
35
+ type ToggleVariantsProps = VariantProps<typeof toggleVariants>;
36
+
37
+ /* -----------------------------------------------------------------------------
38
+ * Component: Toggle
39
+ * -------------------------------------------------------------------------- */
40
+
41
+ const Toggle = React.forwardRef<
42
+ React.ElementRef<typeof TogglePrimitive.Root>,
43
+ TogglePrimitive.ToggleProps & ToggleVariantsProps
44
+ >(({ className, variant, size, ...props }, ref) => (
45
+ <TogglePrimitive.Root
46
+ ref={ref}
47
+ className={toggleVariants({ variant, size, className })}
48
+ {...props}
49
+ />
50
+ ));
51
+ Toggle.displayName = TogglePrimitive.Root.displayName;
52
+
53
+ /* -----------------------------------------------------------------------------
54
+ * Exports
55
+ * -------------------------------------------------------------------------- */
56
+ export { Toggle, toggleVariants, type ToggleVariantsProps };
@@ -0,0 +1,84 @@
1
+ "use client";
2
+
3
+ import * as React from "react";
4
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
5
+ import { cn } from "./utils";
6
+
7
+ /* -----------------------------------------------------------------------------
8
+ * Component: TooltipProvider
9
+ * -------------------------------------------------------------------------- */
10
+
11
+ const TooltipProvider = TooltipPrimitive.Provider;
12
+
13
+ /* -----------------------------------------------------------------------------
14
+ * Component: Tooltip
15
+ * -------------------------------------------------------------------------- */
16
+
17
+ const Tooltip = TooltipPrimitive.Root;
18
+
19
+ /* -----------------------------------------------------------------------------
20
+ * Component: TooltipTrigger
21
+ * -------------------------------------------------------------------------- */
22
+
23
+ const TooltipTrigger = TooltipPrimitive.Trigger;
24
+
25
+ /* -----------------------------------------------------------------------------
26
+ * Component: TooltipPortal
27
+ * -------------------------------------------------------------------------- */
28
+
29
+ const TooltipPortal = TooltipPrimitive.Portal;
30
+
31
+ /* -----------------------------------------------------------------------------
32
+ * Component: TooltipArrow
33
+ * -------------------------------------------------------------------------- */
34
+
35
+ const TooltipArrow = React.forwardRef<
36
+ React.ElementRef<typeof TooltipPrimitive.Arrow>,
37
+ TooltipPrimitive.TooltipArrowProps
38
+ >((props, ref) => (
39
+ <TooltipPrimitive.Arrow ref={ref} className="fill-primary" {...props} />
40
+ ));
41
+ TooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;
42
+
43
+ /* -----------------------------------------------------------------------------
44
+ * Component: TooltipContent
45
+ * -------------------------------------------------------------------------- */
46
+
47
+ const TooltipContent = React.forwardRef<
48
+ React.ElementRef<typeof TooltipPrimitive.Content>,
49
+ TooltipPrimitive.TooltipContentProps
50
+ >(({ className, sideOffset = 4, ...props }, ref) => (
51
+ <TooltipPrimitive.Content
52
+ ref={ref}
53
+ sideOffset={sideOffset}
54
+ className={cn(
55
+ "bg-primary text-primary-foreground z-50 overflow-hidden rounded-md px-3 py-1.5 text-xs",
56
+ "data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95",
57
+ "data-[state=delayed-open]:data-[side=top]:slide-in-from-bottom-2",
58
+ "data-[state=delayed-open]:data-[side=right]:slide-in-from-left-2",
59
+ "data-[state=delayed-open]:data-[side=bottom]:slide-in-from-top-2",
60
+ "data-[state=delayed-open]:data-[side=left]:slide-in-from-right-2",
61
+ "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
62
+ "data-[state=closed]:data-[side=top]:slide-out-to-bottom-2",
63
+ "data-[state=closed]:data-[side=right]:slide-out-to-left-2",
64
+ "data-[state=closed]:data-[side=bottom]:slide-out-to-top-2",
65
+ "data-[state=closed]:data-[side=left]:slide-out-to-right-2",
66
+ className,
67
+ )}
68
+ {...props}
69
+ />
70
+ ));
71
+ TooltipContent.displayName = TooltipPrimitive.Content.displayName;
72
+
73
+ /* -----------------------------------------------------------------------------
74
+ * Exports
75
+ * -------------------------------------------------------------------------- */
76
+
77
+ export {
78
+ Tooltip,
79
+ TooltipPortal,
80
+ TooltipTrigger,
81
+ TooltipContent,
82
+ TooltipProvider,
83
+ TooltipArrow,
84
+ };
package/src/utils.ts CHANGED
@@ -1,7 +1,12 @@
1
1
  import { twMerge } from "tailwind-merge";
2
- import type { ClassValue} from "clsx";
3
- import { clsx } from "clsx";
2
+ import { defineConfig } from "cva";
4
3
 
5
- export function cn(...inputs: ClassValue[]): string {
6
- return twMerge(clsx(inputs));
7
- }
4
+ export const {
5
+ cva,
6
+ cx: cn,
7
+ compose,
8
+ } = defineConfig({
9
+ hooks: {
10
+ onComplete: (className) => twMerge(className),
11
+ },
12
+ });
@@ -1,14 +1,114 @@
1
1
  import type { Config } from "tailwindcss";
2
2
  import { fontFamily } from "tailwindcss/defaultTheme";
3
+ import tailwindcssAnimate from "tailwindcss-animate";
4
+ import plugin from "tailwindcss/plugin";
3
5
 
4
6
  const config: Config = {
5
7
  content: ["./src/**/*.{js,ts,jsx,tsx,mdx}"],
6
- plugins: [],
8
+ darkMode: ["class"],
9
+ plugins: [
10
+ tailwindcssAnimate,
11
+ plugin(({ matchUtilities }) => {
12
+ matchUtilities({
13
+ perspective: (value) => ({
14
+ perspective: value,
15
+ }),
16
+ });
17
+ }),
18
+ ],
7
19
  theme: {
8
20
  extend: {
21
+ animation: {
22
+ "accordion-down": "accordion-down 0.2s ease-out",
23
+ "accordion-up": "accordion-up 0.2s ease-out",
24
+ "caret-blink": "caret-blink 1.25s ease-out infinite",
25
+ },
26
+ borderRadius: {
27
+ sm: "calc(var(--radius, 0.25rem) - 0.125px)", // 2px
28
+ DEFAULT: "var(--radius, 0.25rem)", // 4px
29
+ md: "calc(var(--radius, 0.25rem) + 0.125rem)", // 6px
30
+ lg: "calc(var(--radius, 0.25rem) + 0.25rem)", // 8px
31
+ xl: "calc(var(--radius, 0.25rem) + 0.5rem)", // 12px
32
+ "2xl": "calc(var(--radius, 0.25rem) + 0.75rem)", // 16px
33
+ "3xl": "calc(var(--radius, 0.25rem) + 1.25rem)", // 24px
34
+ },
35
+ colors: {
36
+ accent: {
37
+ DEFAULT: "hsl(var(--accent))",
38
+ foreground: "hsl(var(--accent-foreground))",
39
+ },
40
+ background: "hsl(var(--background))",
41
+ border: "hsl(var(--border))",
42
+ card: {
43
+ DEFAULT: "hsl(var(--card))",
44
+ foreground: "hsl(var(--card-foreground))",
45
+ },
46
+ compound: "hsl(var(--compound))",
47
+ destructive: {
48
+ DEFAULT: "hsl(var(--destructive))",
49
+ foreground: "hsl(var(--destructive-foreground))",
50
+ },
51
+ foreground: "hsl(var(--foreground))",
52
+ info: {
53
+ DEFAULT: "hsl(var(--info))",
54
+ foreground: "hsl(var(--info-foreground))",
55
+ },
56
+ input: "hsl(var(--input))",
57
+ muted: {
58
+ DEFAULT: "hsl(var(--muted))",
59
+ foreground: "hsl(var(--muted-foreground))",
60
+ },
61
+ popover: {
62
+ DEFAULT: "hsl(var(--popover))",
63
+ foreground: "hsl(var(--popover-foreground))",
64
+ },
65
+ primary: {
66
+ DEFAULT: "hsl(var(--primary))",
67
+ foreground: "hsl(var(--primary-foreground))",
68
+ },
69
+ ring: "hsl(var(--ring))",
70
+ secondary: {
71
+ DEFAULT: "hsl(var(--secondary))",
72
+ foreground: "hsl(var(--secondary-foreground))",
73
+ },
74
+ success: {
75
+ DEFAULT: "hsl(var(--success))",
76
+ foreground: "hsl(var(--success-foreground))",
77
+ },
78
+ warning: {
79
+ DEFAULT: "hsl(var(--warning))",
80
+ foreground: "hsl(var(--warning-foreground))",
81
+ },
82
+ },
9
83
  fontFamily: {
10
84
  sans: `var(--font-sans, ${fontFamily.sans.join(", ")})`,
11
85
  },
86
+ keyframes: {
87
+ "accordion-down": {
88
+ from: {
89
+ height: "0",
90
+ },
91
+ to: {
92
+ height: "var(--radix-accordion-content-height)",
93
+ },
94
+ },
95
+ "accordion-up": {
96
+ from: {
97
+ height: "var(--radix-accordion-content-height)",
98
+ },
99
+ to: {
100
+ height: "0",
101
+ },
102
+ },
103
+ "caret-blink": {
104
+ "0%,70%,100%": {
105
+ opacity: "1",
106
+ },
107
+ "20%,50%": {
108
+ opacity: "0",
109
+ },
110
+ },
111
+ },
12
112
  },
13
113
  },
14
114
  };
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _tailwindmerge = require('tailwind-merge');var _clsx = require('clsx');function l(...r){return _tailwindmerge.twMerge.call(void 0, _clsx.clsx.call(void 0, r))}exports.a = l;
2
- //# sourceMappingURL=chunk-LZ5T3FQ5.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils.ts"],"names":["twMerge","clsx","cn","inputs"],"mappings":"AAAA,OAAS,WAAAA,MAAe,iBAExB,OAAS,QAAAC,MAAY,OAEd,SAASC,KAAMC,EAA8B,CAClD,OAAOH,EAAQC,EAAKE,CAAM,CAAC,CAC7B","sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport type { ClassValue} from \"clsx\";\nimport { clsx } from \"clsx\";\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n"]}
@@ -1,2 +0,0 @@
1
- import{twMerge as t}from"tailwind-merge";import{clsx as o}from"clsx";function l(...r){return t(o(r))}export{l as a};
2
- //# sourceMappingURL=chunk-ULRAQPD3.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils.ts"],"sourcesContent":["import { twMerge } from \"tailwind-merge\";\nimport type { ClassValue} from \"clsx\";\nimport { clsx } from \"clsx\";\n\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n"],"mappings":"AAAA,OAAS,WAAAA,MAAe,iBAExB,OAAS,QAAAC,MAAY,OAEd,SAASC,KAAMC,EAA8B,CAClD,OAAOH,EAAQC,EAAKE,CAAM,CAAC,CAC7B","names":["twMerge","clsx","cn","inputs"]}
package/dist/code.d.mts DELETED
@@ -1,3 +0,0 @@
1
- declare function Code(props: React.HTMLAttributes<HTMLElement>): React.JSX.Element;
2
-
3
- export { Code };
package/dist/code.d.ts DELETED
@@ -1,3 +0,0 @@
1
- declare function Code(props: React.HTMLAttributes<HTMLElement>): React.JSX.Element;
2
-
3
- export { Code };
package/dist/code.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _jsxruntime = require('react/jsx-runtime');function n(e){return _jsxruntime.jsx.call(void 0, "code",{...e})}exports.Code = n;
2
- //# sourceMappingURL=code.js.map
package/dist/code.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/code.tsx"],"names":["jsx","Code","props"],"mappings":"AAGS,cAAAA,MAAA,oBAHF,SAASC,EACdC,EACmB,CACnB,OAAOF,EAAC,QAAM,GAAGE,EAAO,CAC1B","sourcesContent":["export function Code(\n props: React.HTMLAttributes<HTMLElement>,\n): React.JSX.Element {\n return <code {...props} />;\n}\n"]}
package/dist/code.mjs DELETED
@@ -1,2 +0,0 @@
1
- import{jsx as t}from"react/jsx-runtime";function n(e){return t("code",{...e})}export{n as Code};
2
- //# sourceMappingURL=code.mjs.map
package/dist/code.mjs.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/code.tsx"],"sourcesContent":["export function Code(\n props: React.HTMLAttributes<HTMLElement>,\n): React.JSX.Element {\n return <code {...props} />;\n}\n"],"mappings":"AAGS,cAAAA,MAAA,oBAHF,SAASC,EACdC,EACmB,CACnB,OAAOF,EAAC,QAAM,GAAGE,EAAO,CAC1B","names":["jsx","Code","props"]}
package/src/code.tsx DELETED
@@ -1,5 +0,0 @@
1
- export function Code(
2
- props: React.HTMLAttributes<HTMLElement>,
3
- ): React.JSX.Element {
4
- return <code {...props} />;
5
- }