gladvn 0.2.17 → 0.2.18

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 (313) hide show
  1. package/bin/cli.js +9 -6
  2. package/dist/components/macro/accordion-preset.d.ts.map +1 -1
  3. package/dist/components/macro/alert-dialog-preset.d.ts.map +1 -1
  4. package/dist/components/macro/alert-preset.d.ts.map +1 -1
  5. package/dist/components/macro/avatar-preset.d.ts.map +1 -1
  6. package/dist/components/macro/breadcrumb-preset.d.ts.map +1 -1
  7. package/dist/components/macro/card-preset.d.ts.map +1 -1
  8. package/dist/components/macro/carousel-preset.d.ts.map +1 -1
  9. package/dist/components/macro/checkbox-preset.d.ts.map +1 -1
  10. package/dist/components/macro/combobox-preset.d.ts.map +1 -1
  11. package/dist/components/macro/command-preset.d.ts +1 -1
  12. package/dist/components/macro/command-preset.d.ts.map +1 -1
  13. package/dist/components/macro/date-picker.d.ts.map +1 -1
  14. package/dist/components/macro/dialog-preset.d.ts.map +1 -1
  15. package/dist/components/macro/empty-preset.d.ts.map +1 -1
  16. package/dist/components/macro/field-preset.d.ts.map +1 -1
  17. package/dist/components/macro/input-otp-preset.d.ts +6 -0
  18. package/dist/components/macro/input-otp-preset.d.ts.map +1 -1
  19. package/dist/components/macro/input-preset.d.ts +1 -1
  20. package/dist/components/macro/input-preset.d.ts.map +1 -1
  21. package/dist/components/macro/pagination-preset.d.ts.map +1 -1
  22. package/dist/components/macro/progress-preset.d.ts.map +1 -1
  23. package/dist/components/macro/radio-group-preset.d.ts.map +1 -1
  24. package/dist/components/macro/select-preset.d.ts.map +1 -1
  25. package/dist/components/macro/slider-preset.d.ts.map +1 -1
  26. package/dist/components/macro/switch-preset.d.ts.map +1 -1
  27. package/dist/components/macro/tabs-preset.d.ts +1 -1
  28. package/dist/components/macro/tabs-preset.d.ts.map +1 -1
  29. package/dist/components/macro/textarea-preset.d.ts +1 -1
  30. package/dist/components/macro/textarea-preset.d.ts.map +1 -1
  31. package/dist/components/micro/accordion.d.ts +7 -0
  32. package/dist/components/micro/accordion.d.ts.map +1 -1
  33. package/dist/components/micro/alert-dialog.d.ts.map +1 -1
  34. package/dist/components/micro/alert.d.ts +7 -0
  35. package/dist/components/micro/alert.d.ts.map +1 -1
  36. package/dist/components/micro/aspect-ratio.d.ts +7 -0
  37. package/dist/components/micro/aspect-ratio.d.ts.map +1 -1
  38. package/dist/components/micro/avatar.d.ts.map +1 -1
  39. package/dist/components/micro/badge.d.ts +8 -1
  40. package/dist/components/micro/badge.d.ts.map +1 -1
  41. package/dist/components/micro/breadcrumb.d.ts +7 -0
  42. package/dist/components/micro/breadcrumb.d.ts.map +1 -1
  43. package/dist/components/micro/button.d.ts +8 -1
  44. package/dist/components/micro/button.d.ts.map +1 -1
  45. package/dist/components/micro/calendar.d.ts +2 -2
  46. package/dist/components/micro/calendar.d.ts.map +1 -1
  47. package/dist/components/micro/carousel.d.ts.map +1 -1
  48. package/dist/components/micro/chart.d.ts.map +1 -1
  49. package/dist/components/micro/checkbox.d.ts.map +1 -1
  50. package/dist/components/micro/collapsible.d.ts.map +1 -1
  51. package/dist/components/micro/combobox.d.ts.map +1 -1
  52. package/dist/components/micro/command.d.ts.map +1 -1
  53. package/dist/components/micro/context-menu.d.ts.map +1 -1
  54. package/dist/components/micro/dialog.d.ts.map +1 -1
  55. package/dist/components/micro/drawer.d.ts.map +1 -1
  56. package/dist/components/micro/dropdown-menu.d.ts.map +1 -1
  57. package/dist/components/micro/empty.d.ts +7 -0
  58. package/dist/components/micro/empty.d.ts.map +1 -1
  59. package/dist/components/micro/field.d.ts.map +1 -1
  60. package/dist/components/micro/hover-card.d.ts +1 -1
  61. package/dist/components/micro/hover-card.d.ts.map +1 -1
  62. package/dist/components/micro/input-group.d.ts.map +1 -1
  63. package/dist/components/micro/input-otp.d.ts.map +1 -1
  64. package/dist/components/micro/input.d.ts +7 -0
  65. package/dist/components/micro/input.d.ts.map +1 -1
  66. package/dist/components/micro/item.d.ts.map +1 -1
  67. package/dist/components/micro/label.d.ts.map +1 -1
  68. package/dist/components/micro/menubar.d.ts.map +1 -1
  69. package/dist/components/micro/navigation-menu.d.ts +8 -1
  70. package/dist/components/micro/navigation-menu.d.ts.map +1 -1
  71. package/dist/components/micro/pagination.d.ts.map +1 -1
  72. package/dist/components/micro/popover.d.ts.map +1 -1
  73. package/dist/components/micro/progress.d.ts.map +1 -1
  74. package/dist/components/micro/radio-group.d.ts.map +1 -1
  75. package/dist/components/micro/select.d.ts +1 -1
  76. package/dist/components/micro/select.d.ts.map +1 -1
  77. package/dist/components/micro/sheet.d.ts.map +1 -1
  78. package/dist/components/micro/sidebar.d.ts.map +1 -1
  79. package/dist/components/micro/skeleton.d.ts +7 -0
  80. package/dist/components/micro/skeleton.d.ts.map +1 -1
  81. package/dist/components/micro/slider.d.ts +7 -0
  82. package/dist/components/micro/slider.d.ts.map +1 -1
  83. package/dist/components/micro/sonner.d.ts.map +1 -1
  84. package/dist/components/micro/spinner.d.ts.map +1 -1
  85. package/dist/components/micro/switch.d.ts.map +1 -1
  86. package/dist/components/micro/table.d.ts.map +1 -1
  87. package/dist/components/micro/tabs.d.ts +1 -1
  88. package/dist/components/micro/tabs.d.ts.map +1 -1
  89. package/dist/components/micro/textarea.d.ts +7 -0
  90. package/dist/components/micro/textarea.d.ts.map +1 -1
  91. package/dist/components/micro/toggle-group.d.ts.map +1 -1
  92. package/dist/components/micro/toggle.d.ts.map +1 -1
  93. package/dist/components/micro/tooltip.d.ts +1 -1
  94. package/dist/components/micro/tooltip.d.ts.map +1 -1
  95. package/dist/dev/App.d.ts.map +1 -1
  96. package/dist/dev/components/code-highlighter.d.ts.map +1 -1
  97. package/dist/dev/components/dev-context.d.ts.map +1 -1
  98. package/dist/dev/components/showcase.d.ts +1 -1
  99. package/dist/dev/components/showcase.d.ts.map +1 -1
  100. package/dist/dev/data.d.ts.map +1 -1
  101. package/dist/dev/main.d.ts.map +1 -1
  102. package/dist/dev/sections/buttons.d.ts.map +1 -1
  103. package/dist/dev/sections/feedback.d.ts.map +1 -1
  104. package/dist/dev/sections/overview.d.ts.map +1 -1
  105. package/dist/dev/showcase/accordion.d.ts.map +1 -1
  106. package/dist/dev/showcase/alert-dialog.d.ts.map +1 -1
  107. package/dist/dev/showcase/alert.d.ts.map +1 -1
  108. package/dist/dev/showcase/aspect-ratio.d.ts.map +1 -1
  109. package/dist/dev/showcase/avatar.d.ts.map +1 -1
  110. package/dist/dev/showcase/breadcrumb.d.ts.map +1 -1
  111. package/dist/dev/showcase/button.d.ts.map +1 -1
  112. package/dist/dev/showcase/calendar.d.ts.map +1 -1
  113. package/dist/dev/showcase/card.d.ts.map +1 -1
  114. package/dist/dev/showcase/carousel.d.ts.map +1 -1
  115. package/dist/dev/showcase/chart.d.ts.map +1 -1
  116. package/dist/dev/showcase/checkbox.d.ts.map +1 -1
  117. package/dist/dev/showcase/collapsible.d.ts.map +1 -1
  118. package/dist/dev/showcase/combobox.d.ts.map +1 -1
  119. package/dist/dev/showcase/command.d.ts.map +1 -1
  120. package/dist/dev/showcase/context-menu.d.ts.map +1 -1
  121. package/dist/dev/showcase/dialog.d.ts.map +1 -1
  122. package/dist/dev/showcase/drawer.d.ts.map +1 -1
  123. package/dist/dev/showcase/dropdown-menu.d.ts.map +1 -1
  124. package/dist/dev/showcase/empty.d.ts.map +1 -1
  125. package/dist/dev/showcase/hover-card.d.ts.map +1 -1
  126. package/dist/dev/showcase/input-group.d.ts.map +1 -1
  127. package/dist/dev/showcase/input-otp.d.ts.map +1 -1
  128. package/dist/dev/showcase/input.d.ts.map +1 -1
  129. package/dist/dev/showcase/item.d.ts.map +1 -1
  130. package/dist/dev/showcase/kbd.d.ts.map +1 -1
  131. package/dist/dev/showcase/label.d.ts.map +1 -1
  132. package/dist/dev/showcase/menubar.d.ts.map +1 -1
  133. package/dist/dev/showcase/navigation-menu.d.ts.map +1 -1
  134. package/dist/dev/showcase/overview.d.ts.map +1 -1
  135. package/dist/dev/showcase/pagination.d.ts.map +1 -1
  136. package/dist/dev/showcase/popover.d.ts.map +1 -1
  137. package/dist/dev/showcase/progress.d.ts.map +1 -1
  138. package/dist/dev/showcase/radio-group.d.ts.map +1 -1
  139. package/dist/dev/showcase/resizable.d.ts.map +1 -1
  140. package/dist/dev/showcase/scroll-area.d.ts.map +1 -1
  141. package/dist/dev/showcase/select.d.ts.map +1 -1
  142. package/dist/dev/showcase/separator.d.ts.map +1 -1
  143. package/dist/dev/showcase/sheet.d.ts.map +1 -1
  144. package/dist/dev/showcase/sidebar.d.ts.map +1 -1
  145. package/dist/dev/showcase/skeleton.d.ts.map +1 -1
  146. package/dist/dev/showcase/slider.d.ts.map +1 -1
  147. package/dist/dev/showcase/sonner.d.ts.map +1 -1
  148. package/dist/dev/showcase/spinner.d.ts.map +1 -1
  149. package/dist/dev/showcase/switch.d.ts.map +1 -1
  150. package/dist/dev/showcase/table.d.ts.map +1 -1
  151. package/dist/dev/showcase/tabs.d.ts.map +1 -1
  152. package/dist/dev/showcase/textarea.d.ts.map +1 -1
  153. package/dist/dev/showcase/theme-provider.d.ts.map +1 -1
  154. package/dist/dev/showcase/toast.d.ts.map +1 -1
  155. package/dist/dev/showcase/toggle-group.d.ts.map +1 -1
  156. package/dist/dev/showcase/toggle.d.ts.map +1 -1
  157. package/dist/dev/showcase/tooltip.d.ts.map +1 -1
  158. package/dist/index.cjs.map +1 -1
  159. package/dist/index.js.map +1 -1
  160. package/dist/lib/utils.d.ts.map +1 -1
  161. package/package.json +3 -1
  162. package/scripts/format-codestrings.ts +87 -0
  163. package/scripts/organize-imports.ts +21 -0
  164. package/scripts/regex-format.cjs +67 -0
  165. package/scripts/tmp.tsx +25 -0
  166. package/src/components/macro/accordion-preset.test.tsx +1 -0
  167. package/src/components/macro/accordion-preset.tsx +2 -1
  168. package/src/components/macro/alert-dialog-preset.tsx +44 -43
  169. package/src/components/macro/alert-preset.tsx +7 -3
  170. package/src/components/macro/avatar-preset.tsx +2 -1
  171. package/src/components/macro/breadcrumb-preset.tsx +2 -1
  172. package/src/components/macro/card-preset.tsx +2 -1
  173. package/src/components/macro/carousel-preset.tsx +5 -2
  174. package/src/components/macro/checkbox-preset.test.tsx +1 -0
  175. package/src/components/macro/checkbox-preset.tsx +6 -2
  176. package/src/components/macro/combobox-preset.tsx +6 -3
  177. package/src/components/macro/command-preset.tsx +7 -3
  178. package/src/components/macro/date-picker.tsx +77 -59
  179. package/src/components/macro/dialog-preset.tsx +42 -38
  180. package/src/components/macro/empty-preset.tsx +2 -1
  181. package/src/components/macro/field-preset.test.tsx +1 -0
  182. package/src/components/macro/field-preset.tsx +2 -1
  183. package/src/components/macro/input-otp-preset.tsx +6 -2
  184. package/src/components/macro/input-preset.test.tsx +1 -0
  185. package/src/components/macro/input-preset.tsx +4 -2
  186. package/src/components/macro/pagination-preset.tsx +3 -1
  187. package/src/components/macro/progress-preset.test.tsx +1 -0
  188. package/src/components/macro/progress-preset.tsx +2 -1
  189. package/src/components/macro/radio-group-preset.tsx +4 -1
  190. package/src/components/macro/select-preset.tsx +35 -30
  191. package/src/components/macro/slider-preset.test.tsx +1 -0
  192. package/src/components/macro/slider-preset.tsx +4 -1
  193. package/src/components/macro/switch-preset.test.tsx +1 -0
  194. package/src/components/macro/switch-preset.tsx +4 -1
  195. package/src/components/macro/tabs-preset.test.tsx +1 -0
  196. package/src/components/macro/tabs-preset.tsx +4 -2
  197. package/src/components/macro/textarea-preset.test.tsx +1 -0
  198. package/src/components/macro/textarea-preset.tsx +4 -1
  199. package/src/components/micro/accordion.tsx +3 -2
  200. package/src/components/micro/alert-dialog.tsx +2 -1
  201. package/src/components/micro/alert.tsx +3 -2
  202. package/src/components/micro/aspect-ratio.tsx +2 -1
  203. package/src/components/micro/avatar.tsx +2 -1
  204. package/src/components/micro/badge.tsx +3 -3
  205. package/src/components/micro/breadcrumb.tsx +3 -2
  206. package/src/components/micro/button.test.tsx +1 -0
  207. package/src/components/micro/button.tsx +3 -3
  208. package/src/components/micro/calendar.tsx +10 -9
  209. package/src/components/micro/carousel.tsx +3 -2
  210. package/src/components/micro/chart.tsx +1 -0
  211. package/src/components/micro/checkbox.tsx +2 -2
  212. package/src/components/micro/collapsible.tsx +4 -2
  213. package/src/components/micro/combobox.tsx +41 -29
  214. package/src/components/micro/command.tsx +23 -16
  215. package/src/components/micro/context-menu.tsx +3 -2
  216. package/src/components/micro/dialog.tsx +2 -1
  217. package/src/components/micro/drawer.tsx +2 -1
  218. package/src/components/micro/dropdown-menu.tsx +3 -2
  219. package/src/components/micro/empty.tsx +2 -1
  220. package/src/components/micro/field.tsx +4 -3
  221. package/src/components/micro/hover-card.tsx +20 -19
  222. package/src/components/micro/input-group.tsx +2 -1
  223. package/src/components/micro/input-otp.tsx +3 -2
  224. package/src/components/micro/input.tsx +3 -2
  225. package/src/components/micro/item.tsx +1 -0
  226. package/src/components/micro/label.tsx +2 -1
  227. package/src/components/micro/menubar.tsx +2 -1
  228. package/src/components/micro/navigation-menu.tsx +18 -17
  229. package/src/components/micro/pagination.tsx +2 -1
  230. package/src/components/micro/popover.tsx +2 -1
  231. package/src/components/micro/progress.tsx +2 -1
  232. package/src/components/micro/radio-group.tsx +3 -3
  233. package/src/components/micro/select.tsx +5 -4
  234. package/src/components/micro/sheet.tsx +2 -1
  235. package/src/components/micro/sidebar.tsx +4 -1
  236. package/src/components/micro/skeleton.tsx +2 -1
  237. package/src/components/micro/slider.tsx +4 -1
  238. package/src/components/micro/sonner.tsx +2 -1
  239. package/src/components/micro/spinner.tsx +1 -2
  240. package/src/components/micro/switch.tsx +2 -2
  241. package/src/components/micro/table.tsx +2 -1
  242. package/src/components/micro/tabs.tsx +4 -3
  243. package/src/components/micro/textarea.tsx +2 -1
  244. package/src/components/micro/toggle-group.tsx +1 -0
  245. package/src/components/micro/toggle.tsx +1 -3
  246. package/src/components/micro/tooltip.tsx +9 -3
  247. package/src/dev/App.tsx +66 -41
  248. package/src/dev/components/code-highlighter.tsx +2 -1
  249. package/src/dev/components/dev-context.tsx +1 -0
  250. package/src/dev/components/showcase.tsx +13 -14
  251. package/src/dev/data.ts +206 -52
  252. package/src/dev/main.tsx +4 -4
  253. package/src/dev/sections/buttons.tsx +14 -12
  254. package/src/dev/sections/feedback.tsx +7 -2
  255. package/src/dev/sections/forms.tsx +11 -11
  256. package/src/dev/sections/overview.tsx +2 -1
  257. package/src/dev/showcase/accordion.tsx +399 -314
  258. package/src/dev/showcase/alert-dialog.tsx +387 -384
  259. package/src/dev/showcase/alert.tsx +271 -258
  260. package/src/dev/showcase/aspect-ratio.tsx +102 -105
  261. package/src/dev/showcase/avatar.tsx +216 -145
  262. package/src/dev/showcase/badge.tsx +78 -50
  263. package/src/dev/showcase/breadcrumb.tsx +88 -85
  264. package/src/dev/showcase/button.tsx +72 -96
  265. package/src/dev/showcase/calendar.tsx +41 -39
  266. package/src/dev/showcase/card.tsx +170 -148
  267. package/src/dev/showcase/carousel.tsx +239 -77
  268. package/src/dev/showcase/chart.tsx +5 -4
  269. package/src/dev/showcase/checkbox.tsx +206 -140
  270. package/src/dev/showcase/collapsible.tsx +108 -84
  271. package/src/dev/showcase/combobox.tsx +272 -199
  272. package/src/dev/showcase/command.tsx +31 -28
  273. package/src/dev/showcase/context-menu.tsx +94 -77
  274. package/src/dev/showcase/dialog.tsx +445 -424
  275. package/src/dev/showcase/drawer.tsx +142 -135
  276. package/src/dev/showcase/dropdown-menu.tsx +165 -161
  277. package/src/dev/showcase/empty.tsx +173 -158
  278. package/src/dev/showcase/hover-card.tsx +92 -52
  279. package/src/dev/showcase/input-group.tsx +193 -160
  280. package/src/dev/showcase/input-otp.tsx +109 -99
  281. package/src/dev/showcase/input.tsx +78 -42
  282. package/src/dev/showcase/item.tsx +101 -98
  283. package/src/dev/showcase/kbd.tsx +78 -62
  284. package/src/dev/showcase/label.tsx +16 -23
  285. package/src/dev/showcase/menubar.tsx +274 -251
  286. package/src/dev/showcase/navigation-menu.tsx +175 -170
  287. package/src/dev/showcase/overview.tsx +164 -148
  288. package/src/dev/showcase/pagination.tsx +101 -69
  289. package/src/dev/showcase/popover.tsx +113 -86
  290. package/src/dev/showcase/progress.tsx +99 -69
  291. package/src/dev/showcase/radio-group.tsx +217 -134
  292. package/src/dev/showcase/resizable.tsx +65 -55
  293. package/src/dev/showcase/scroll-area.tsx +32 -22
  294. package/src/dev/showcase/select.tsx +192 -136
  295. package/src/dev/showcase/separator.tsx +28 -24
  296. package/src/dev/showcase/sheet.tsx +182 -134
  297. package/src/dev/showcase/sidebar.tsx +9 -5
  298. package/src/dev/showcase/skeleton.tsx +54 -59
  299. package/src/dev/showcase/slider.tsx +158 -129
  300. package/src/dev/showcase/sonner.tsx +3 -5
  301. package/src/dev/showcase/spinner.tsx +22 -18
  302. package/src/dev/showcase/switch.tsx +207 -110
  303. package/src/dev/showcase/table.tsx +44 -32
  304. package/src/dev/showcase/tabs.tsx +272 -267
  305. package/src/dev/showcase/textarea.tsx +162 -116
  306. package/src/dev/showcase/theme-provider.tsx +596 -534
  307. package/src/dev/showcase/toast.tsx +37 -38
  308. package/src/dev/showcase/toggle-group.tsx +87 -39
  309. package/src/dev/showcase/toggle.tsx +36 -27
  310. package/src/dev/showcase/tooltip.tsx +154 -119
  311. package/src/lib/utils.test.ts +1 -0
  312. package/src/lib/utils.ts +1 -1
  313. package/src/styles/gladvn.css +1 -1
@@ -1,13 +1,3 @@
1
- import { useDevContext } from "../../dev/components/dev-context";
2
- import {
3
- DocsP,
4
- ExampleGrid,
5
- ExampleSection,
6
- Showcase,
7
- ShowcaseDocs,
8
- } from "../../dev/components/showcase";
9
- import { useState } from "react";
10
-
11
1
  import { CardPreset } from "../../components/macro/card-preset";
12
2
  import { Badge } from "../../components/micro/badge";
13
3
  import { Button } from "../../components/micro/button";
@@ -21,6 +11,14 @@ import {
21
11
  } from "../../components/micro/card";
22
12
  import { Input } from "../../components/micro/input";
23
13
  import { Label } from "../../components/micro/label";
14
+ import { useDevContext } from "../../dev/components/dev-context";
15
+ import {
16
+ DocsP,
17
+ ExampleGrid,
18
+ ExampleSection,
19
+ Showcase,
20
+ ShowcaseDocs,
21
+ } from "../../dev/components/showcase";
24
22
  import { type Size } from "../../lib/types";
25
23
 
26
24
  // ──────────────────────────────────────────────────────────
@@ -34,15 +32,15 @@ function CardMacroShowcase({ globalSize }: { globalSize: Size }) {
34
32
  label="Tiêu chuẩn (Standard)"
35
33
  description="Card cài sẵn với đầy đủ tiêu đề, nội dung và chân trang."
36
34
  codeString={`<CardPreset
37
- title="Account Settings"
38
- description="Quản lý các cài đặt và tùy chọn cho tài khoản của bạn."
39
- footer={<Button>Save Changes</Button>}
40
- className="w-full"
41
- >
42
- <div className="text-sm text-muted-foreground bg-muted/30 p-4 rounded-lg border border-dashed border-border/50">
43
- Settings form content goes here.
44
- </div>
45
- </CardPreset>`}
35
+ title="Account Settings"
36
+ description="Quản lý các cài đặt và tùy chọn cho tài khoản của bạn."
37
+ footer={<Button>Save Changes</Button>}
38
+ className="w-full"
39
+ >
40
+ <div className="text-sm text-muted-foreground bg-muted/30 p-4 rounded-lg border border-dashed border-border/50">
41
+ Settings form content goes here.
42
+ </div>
43
+ </CardPreset>`}
46
44
  >
47
45
  <CardPreset
48
46
  size={globalSize}
@@ -61,15 +59,14 @@ function CardMacroShowcase({ globalSize }: { globalSize: Size }) {
61
59
  label="Không có Footer"
62
60
  description="Bỏ qua prop footer để ẩn hoàn toàn phần chân trang."
63
61
  codeString={`<CardPreset
64
- title="Notification Preferences"
65
- description="Chọn những thông tin mà bạn muốn nhận thông báo."
66
- className="w-full"
67
- >
68
- <div className="text-sm text-muted-foreground bg-muted/30 p-4 rounded-lg border border-dashed border-border/50">
69
- Switches and toggles go here.
70
- </div>
71
- </CardPreset>
72
- `}
62
+ title="Notification Preferences"
63
+ description="Chọn những thông tin mà bạn muốn nhận thông báo."
64
+ className="w-full"
65
+ >
66
+ <div className="text-sm text-muted-foreground bg-muted/30 p-4 rounded-lg border border-dashed border-border/50">
67
+ Switches and toggles go here.
68
+ </div>
69
+ </CardPreset>`}
73
70
  >
74
71
  <CardPreset
75
72
  size={globalSize}
@@ -87,20 +84,22 @@ function CardMacroShowcase({ globalSize }: { globalSize: Size }) {
87
84
  label="Custom Title Node"
88
85
  description="Tiêu đề hỗ trợ nhận ReactNode thay vì string."
89
86
  codeString={`<CardPreset
90
- title={
91
- <div className="flex items-center gap-2">
92
- <span>API Keys</span>
93
- <Badge color="warning">Experimental</Badge>
87
+ title={
88
+ <div className="flex items-center gap-2">
89
+ <span>API Keys</span>
90
+ <Badge color="warning">Experimental</Badge>
91
+ </div>
92
+ }
93
+ description="Quản lý các khóa API bí mật của bạn."
94
+ className="w-full"
95
+ >
96
+ <div className="text-sm text-muted-foreground bg-muted/30 p-4 rounded-lg border border-dashed border-border/50 flex items-center justify-between">
97
+ <span className="font-mono">sk_live_123...</span>
98
+ <Button size="sm" variant="outline">
99
+ Copy
100
+ </Button>
94
101
  </div>
95
- }
96
- description="Quản lý các khóa API bí mật của bạn."
97
- className="w-full"
98
- >
99
- <div className="text-sm text-muted-foreground bg-muted/30 p-4 rounded-lg border border-dashed border-border/50 flex items-center justify-between">
100
- <span className="font-mono">sk_live_123...</span>
101
- <Button size="sm" variant="outline">Copy</Button>
102
- </div>
103
- </CardPreset>`}
102
+ </CardPreset>`}
104
103
  >
105
104
  <CardPreset
106
105
  size={globalSize}
@@ -126,27 +125,34 @@ function CardMacroShowcase({ globalSize }: { globalSize: Size }) {
126
125
  label="Với Form Controls"
127
126
  description="Sử dụng children để đặt input form bên trong nội dung."
128
127
  codeString={`<CardPreset
129
- title="Update Profile"
130
- description="Thay đổi tên hiển thị và email của bạn."
131
- footer={
132
- <div className="flex justify-between w-full">
133
- <Button variant="ghost">Cancel</Button>
134
- <Button>Save</Button>
135
- </div>
136
- }
137
- className="w-full"
138
- >
139
- <div className="grid gap-4">
140
- <div className="flex flex-col space-y-1.5">
141
- <Label htmlFor="macro-name">Name</Label>
142
- <Input id="macro-name" placeholder="Enter your name" />
143
- </div>
144
- <div className="flex flex-col space-y-1.5">
145
- <Label htmlFor="macro-email">Email</Label>
146
- <Input id="macro-email" type="email" placeholder="hello@example.com" />
128
+ title="Update Profile"
129
+ description="Thay đổi tên hiển thị và email của bạn."
130
+ footer={
131
+ <div className="flex justify-between w-full">
132
+ <Button variant="ghost">Cancel</Button>
133
+ <Button>Save</Button>
134
+ </div>
135
+ }
136
+ className="w-full"
137
+ >
138
+ <div className="grid gap-4">
139
+ <div className="flex flex-col space-y-1.5">
140
+ <Label htmlFor="macro-name">Name</Label>
141
+ <Input
142
+ id="macro-name"
143
+ placeholder="Enter your name"
144
+ />
145
+ </div>
146
+ <div className="flex flex-col space-y-1.5">
147
+ <Label htmlFor="macro-email">Email</Label>
148
+ <Input
149
+ id="macro-email"
150
+ type="email"
151
+ placeholder="hello@example.com"
152
+ />
153
+ </div>
147
154
  </div>
148
- </div>
149
- </CardPreset>`}
155
+ </CardPreset>`}
150
156
  >
151
157
  <CardPreset
152
158
  size={globalSize}
@@ -193,26 +199,30 @@ function CardMicroShowcase({ globalSize }: { globalSize: Size }) {
193
199
  label="Cơ bản (Standard)"
194
200
  description="Lắp ráp thủ công từ CardHeader, CardTitle, CardContent, CardFooter."
195
201
  codeString={`<Card className="w-full max-w-sm">
196
- <CardHeader>
197
- <CardTitle>Create project</CardTitle>
198
- <CardDescription>Deploy your new project in one-click.</CardDescription>
199
- </CardHeader>
200
- <CardContent>
201
- <form>
202
- <div className="grid w-full items-center gap-4">
203
- <div className="flex flex-col space-y-1.5">
204
- <Label htmlFor="name">Name</Label>
205
- <Input id="name" placeholder="Name of your project" />
202
+ <CardHeader>
203
+ <CardTitle>Create project</CardTitle>
204
+ <CardDescription>
205
+ Deploy your new project in one-click.
206
+ </CardDescription>
207
+ </CardHeader>
208
+ <CardContent>
209
+ <form>
210
+ <div className="grid w-full items-center gap-4">
211
+ <div className="flex flex-col space-y-1.5">
212
+ <Label htmlFor="name">Name</Label>
213
+ <Input
214
+ id="name"
215
+ placeholder="Name of your project"
216
+ />
217
+ </div>
206
218
  </div>
207
- </div>
208
- </form>
209
- </CardContent>
210
- <CardFooter className="flex justify-between">
211
- <Button variant="outline">Cancel</Button>
212
- <Button>Deploy</Button>
213
- </CardFooter>
214
- </Card>
215
- `}
219
+ </form>
220
+ </CardContent>
221
+ <CardFooter className="flex justify-between">
222
+ <Button variant="outline">Cancel</Button>
223
+ <Button>Deploy</Button>
224
+ </CardFooter>
225
+ </Card>`}
216
226
  >
217
227
  <Card size={globalSize} className="w-full max-w-sm">
218
228
  <CardHeader>
@@ -245,14 +255,14 @@ function CardMicroShowcase({ globalSize }: { globalSize: Size }) {
245
255
  label="Chỉ có nội dung (Content Only)"
246
256
  description="Dùng Card như một container bọc ngoài đơn giản."
247
257
  codeString={`<Card className="w-full">
248
- <CardContent>
249
- <p className="text-sm text-muted-foreground pt-4 md:pt-6">
250
- This is a simple content-only card without a header or footer.
251
- Useful for wrapping any content in a card container.
252
- </p>
253
- </CardContent>
254
- </Card>
255
- `}
258
+ <CardContent>
259
+ <p className="text-sm text-muted-foreground pt-4 md:pt-6">
260
+ This is a simple content-only card without a header
261
+ or footer. Useful for wrapping any content in a card
262
+ container.
263
+ </p>
264
+ </CardContent>
265
+ </Card>`}
256
266
  >
257
267
  <Card size={globalSize} className="w-full">
258
268
  <CardContent>
@@ -268,37 +278,43 @@ function CardMicroShowcase({ globalSize }: { globalSize: Size }) {
268
278
  label="Header đặc chế"
269
279
  description="Tích hợp menu góc phải mà Preset khó thực hiện."
270
280
  codeString={`<Card className="w-full">
271
- <CardHeader>
272
- <div className="flex items-center justify-between">
273
- <div className="flex flex-col gap-1.5">
274
- <div className="flex items-center gap-2">
275
- <CardTitle>Notifications</CardTitle>
276
- <Badge color="secondary">3 new</Badge>
281
+ <CardHeader>
282
+ <div className="flex items-center justify-between">
283
+ <div className="flex flex-col gap-1.5">
284
+ <div className="flex items-center gap-2">
285
+ <CardTitle>Notifications</CardTitle>
286
+ <Badge color="secondary">3 new</Badge>
287
+ </div>
288
+ <CardDescription>
289
+ You have 3 unread messages.
290
+ </CardDescription>
277
291
  </div>
278
- <CardDescription>You have 3 unread messages.</CardDescription>
279
- </div>
280
- <Button variant="ghost" size="sm" iconOnly className="h-8 w-8 rounded-full">
281
- <span className="sr-only">Open menu</span>
282
- <svg
283
- width="15"
284
- height="15"
285
- viewBox="0 0 15 15"
286
- fill="none"
287
- xmlns="http://www.w3.org/2000/svg"
288
- className="h-4 w-4"
292
+ <Button
293
+ variant="ghost"
294
+ size="sm"
295
+ iconOnly
296
+ className="h-8 w-8 rounded-full"
289
297
  >
290
- <path
291
- d="M3.625 7.5C3.625 8.12132 3.12132 8.625 2.5 8.625C1.87868 8.625 1.375 8.12132 1.375 7.5C1.375 6.87868 1.87868 6.375 2.5 6.375C3.12132 6.375 3.625 6.87868 3.625 7.5ZM8.625 7.5C8.625 8.12132 8.12132 8.625 7.5 8.625C6.87868 8.625 6.375 8.12132 6.375 7.5C6.375 6.87868 6.87868 6.375 7.5 6.375C8.12132 6.375 8.625 6.87868 8.625 7.5ZM13.625 7.5C13.625 8.12132 13.1213 8.625 12.5 8.625C11.8787 8.625 11.375 8.12132 11.375 7.5C11.375 6.87868 11.8787 6.375 12.5 6.375C13.1213 6.375 13.625 6.87868 13.625 7.5Z"
292
- fill="currentColor"
293
- fillRule="evenodd"
294
- clipRule="evenodd"
295
- ></path>
296
- </svg>
297
- </Button>
298
- </div>
299
- </CardHeader>
300
- </Card>
301
- `}
298
+ <span className="sr-only">Open menu</span>
299
+ <svg
300
+ width="15"
301
+ height="15"
302
+ viewBox="0 0 15 15"
303
+ fill="none"
304
+ xmlns="http://www.w3.org/2000/svg"
305
+ className="h-4 w-4"
306
+ >
307
+ <path
308
+ d="M3.625 7.5C3.625 8.12132 3.12132 8.625 2.5 8.625C1.87868 8.625 1.375 8.12132 1.375 7.5C1.375 6.87868 1.87868 6.375 2.5 6.375C3.12132 6.375 3.625 6.87868 3.625 7.5ZM8.625 7.5C8.625 8.12132 8.12132 8.625 7.5 8.625C6.87868 8.625 6.375 8.12132 6.375 7.5C6.375 6.87868 6.87868 6.375 7.5 6.375C8.12132 6.375 8.625 6.87868 8.625 7.5ZM13.625 7.5C13.625 8.12132 13.1213 8.625 12.5 8.625C11.8787 8.625 11.375 8.12132 11.375 7.5C11.375 6.87868 11.8787 6.375 12.5 6.375C13.1213 6.375 13.625 6.87868 13.625 7.5Z"
309
+ fill="currentColor"
310
+ fillRule="evenodd"
311
+ clipRule="evenodd"
312
+ ></path>
313
+ </svg>
314
+ </Button>
315
+ </div>
316
+ </CardHeader>
317
+ </Card>`}
302
318
  >
303
319
  <Card size={globalSize} className="w-full">
304
320
  <CardHeader>
@@ -344,35 +360,42 @@ function CardMicroShowcase({ globalSize }: { globalSize: Size }) {
344
360
  description="Thiết kế thẻ dashboard thông dụng trong thực tế."
345
361
  fullWidth
346
362
  codeString={`<div className="grid grid-cols-1 md:grid-cols-3 gap-6 w-full">
347
- <Card>
348
- <CardHeader className="pb-2">
349
- <CardDescription>Total Revenue</CardDescription>
350
- <CardTitle className="text-3xl">\$45,231.89</CardTitle>
351
- </CardHeader>
352
- <CardContent>
353
- <p className="text-xs text-muted-foreground">+20.1% from last month</p>
354
- </CardContent>
355
- </Card>
356
- <Card>
357
- <CardHeader className="pb-2">
358
- <CardDescription>Subscriptions</CardDescription>
359
- <CardTitle className="text-3xl">+2,350</CardTitle>
360
- </CardHeader>
361
- <CardContent>
362
- <p className="text-xs text-muted-foreground">+180.1% from last month</p>
363
- </CardContent>
364
- </Card>
365
- <Card>
366
- <CardHeader className="pb-2">
367
- <CardDescription>Active Now</CardDescription>
368
- <CardTitle className="text-3xl">+573</CardTitle>
369
- </CardHeader>
370
- <CardContent>
371
- <p className="text-xs text-muted-foreground">+201 since last hour</p>
372
- </CardContent>
373
- </Card>
374
- </div>
375
- `}
363
+ <Card>
364
+ <CardHeader className="pb-2">
365
+ <CardDescription>Total Revenue</CardDescription>
366
+ <CardTitle className="text-3xl">
367
+ $45,231.89
368
+ </CardTitle>
369
+ </CardHeader>
370
+ <CardContent>
371
+ <p className="text-xs text-muted-foreground">
372
+ +20.1% from last month
373
+ </p>
374
+ </CardContent>
375
+ </Card>
376
+ <Card>
377
+ <CardHeader className="pb-2">
378
+ <CardDescription>Subscriptions</CardDescription>
379
+ <CardTitle className="text-3xl">+2,350</CardTitle>
380
+ </CardHeader>
381
+ <CardContent>
382
+ <p className="text-xs text-muted-foreground">
383
+ +180.1% from last month
384
+ </p>
385
+ </CardContent>
386
+ </Card>
387
+ <Card>
388
+ <CardHeader className="pb-2">
389
+ <CardDescription>Active Now</CardDescription>
390
+ <CardTitle className="text-3xl">+573</CardTitle>
391
+ </CardHeader>
392
+ <CardContent>
393
+ <p className="text-xs text-muted-foreground">
394
+ +201 since last hour
395
+ </p>
396
+ </CardContent>
397
+ </Card>
398
+ </div>`}
376
399
  >
377
400
  <div className="grid grid-cols-1 md:grid-cols-3 gap-6 w-full">
378
401
  <Card size={globalSize}>
@@ -428,8 +451,7 @@ export default function CardShowcase() {
428
451
  <DocsP>
429
452
  Dùng để nhóm các thông tin liên quan lại với nhau trong một
430
453
  container có cấu trúc rõ ràng. Thường được sử dụng để hiển thị các
431
- mục dữ liệu, dashboard, hoặc các form
432
- nhỏ.
454
+ mục dữ liệu, dashboard, hoặc các form nhỏ.
433
455
  </DocsP>
434
456
  </ShowcaseDocs>
435
457
  }