gladvn 0.2.17 → 0.2.19

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 +0 -1
@@ -1,3 +1,13 @@
1
+ import { InfoIcon, ShieldAlertIcon } from "lucide-react";
2
+
3
+ import { Button } from "../../components/micro/button";
4
+ import {
5
+ Tooltip,
6
+ TooltipContent,
7
+ TooltipPortal,
8
+ TooltipProvider,
9
+ TooltipTrigger,
10
+ } from "../../components/micro/tooltip";
1
11
  import { useDevContext } from "../../dev/components/dev-context";
2
12
  import {
3
13
  DocsCode,
@@ -8,17 +18,6 @@ import {
8
18
  Showcase,
9
19
  ShowcaseDocs,
10
20
  } from "../../dev/components/showcase";
11
- import { InfoIcon, ShieldAlertIcon } from "lucide-react";
12
- import { useState } from "react";
13
-
14
- import { Button } from "../../components/micro/button";
15
- import {
16
- Tooltip,
17
- TooltipContent,
18
- TooltipProvider,
19
- TooltipTrigger,
20
- TooltipPortal,
21
- } from "../../components/micro/tooltip";
22
21
  import { type Size } from "../../lib/types";
23
22
 
24
23
  // ──────────────────────────────────────────────────────────
@@ -31,45 +30,60 @@ function TooltipMicroShowcase({ globalSize }: { globalSize: Size }) {
31
30
  label="Vị trí (Placements)"
32
31
  description="Tooltip có thể được đặt ở bất kỳ cạnh nào của trigger bằng thuộc tính side."
33
32
  codeString={`<div className="grid grid-cols-2 gap-4 max-w-md w-full place-items-center">
34
- <TooltipProvider>
35
- <Tooltip>
36
- <TooltipTrigger
37
- render={<Button variant="outline">Trên (Top)</Button>}
38
- />
39
- <TooltipPortal>
40
- <TooltipContent side="top">Tooltip nằm trên</TooltipContent>
41
- </TooltipPortal>
42
- </Tooltip>
33
+ <TooltipProvider>
34
+ <Tooltip>
35
+ <TooltipTrigger
36
+ render={
37
+ <Button variant="outline">Trên (Top)</Button>
38
+ }
39
+ />
40
+ <TooltipPortal>
41
+ <TooltipContent side="top">
42
+ Tooltip nằm trên
43
+ </TooltipContent>
44
+ </TooltipPortal>
45
+ </Tooltip>
43
46
 
44
- <Tooltip>
45
- <TooltipTrigger
46
- render={<Button variant="outline">Dưới (Bottom)</Button>}
47
- />
48
- <TooltipPortal>
49
- <TooltipContent side="bottom">Tooltip nằm dưới</TooltipContent>
50
- </TooltipPortal>
51
- </Tooltip>
47
+ <Tooltip>
48
+ <TooltipTrigger
49
+ render={
50
+ <Button variant="outline">Dưới (Bottom)</Button>
51
+ }
52
+ />
53
+ <TooltipPortal>
54
+ <TooltipContent side="bottom">
55
+ Tooltip nằm dưới
56
+ </TooltipContent>
57
+ </TooltipPortal>
58
+ </Tooltip>
52
59
 
53
- <Tooltip>
54
- <TooltipTrigger
55
- render={<Button variant="outline">Trái (Left)</Button>}
56
- />
57
- <TooltipPortal>
58
- <TooltipContent side="left">Tooltip nằm trái</TooltipContent>
59
- </TooltipPortal>
60
- </Tooltip>
60
+ <Tooltip>
61
+ <TooltipTrigger
62
+ render={
63
+ <Button variant="outline">Trái (Left)</Button>
64
+ }
65
+ />
66
+ <TooltipPortal>
67
+ <TooltipContent side="left">
68
+ Tooltip nằm trái
69
+ </TooltipContent>
70
+ </TooltipPortal>
71
+ </Tooltip>
61
72
 
62
- <Tooltip>
63
- <TooltipTrigger
64
- render={<Button variant="outline">Phải (Right)</Button>}
65
- />
66
- <TooltipPortal>
67
- <TooltipContent side="right">Tooltip nằm phải</TooltipContent>
68
- </TooltipPortal>
69
- </Tooltip>
70
- </TooltipProvider>
71
- </div>
72
- `}
73
+ <Tooltip>
74
+ <TooltipTrigger
75
+ render={
76
+ <Button variant="outline">Phải (Right)</Button>
77
+ }
78
+ />
79
+ <TooltipPortal>
80
+ <TooltipContent side="right">
81
+ Tooltip nằm phải
82
+ </TooltipContent>
83
+ </TooltipPortal>
84
+ </Tooltip>
85
+ </TooltipProvider>
86
+ </div>`}
73
87
  >
74
88
  <div className="grid grid-cols-2 gap-4 max-w-md w-full place-items-center">
75
89
  <TooltipProvider>
@@ -137,24 +151,26 @@ function TooltipMicroShowcase({ globalSize }: { globalSize: Size }) {
137
151
  label="Nội dung dài (Long Content)"
138
152
  description="Tooltip tự động giới hạn chiều rộng và xuống dòng khi nội dung quá dài."
139
153
  codeString={`<TooltipProvider>
140
- <Tooltip>
141
- <TooltipTrigger
142
- render={
143
- <Button variant="outline" iconOnly>
144
- <InfoIcon />
145
- </Button>
146
- }
147
- />
148
- <TooltipPortal>
149
- <TooltipContent>
150
- <p>
151
- Đây là một đoạn nội dung tooltip khá dài nhằm mục đích trình diễn cách mà Tooltip tự động cắt và xuống dòng khi vượt quá chiều rộng tối đa (max-width) cho phép.
152
- </p>
153
- </TooltipContent>
154
- </TooltipPortal>
155
- </Tooltip>
156
- </TooltipProvider>
157
- `}
154
+ <Tooltip>
155
+ <TooltipTrigger
156
+ render={
157
+ <Button variant="outline" iconOnly>
158
+ <InfoIcon />
159
+ </Button>
160
+ }
161
+ />
162
+ <TooltipPortal>
163
+ <TooltipContent>
164
+ <p>
165
+ Đây là một đoạn nội dung tooltip khá dài nhằm
166
+ mục đích trình diễn cách mà Tooltip tự động cắt
167
+ và xuống dòng khi vượt quá chiều rộng tối đa
168
+ (max-width) cho phép.
169
+ </p>
170
+ </TooltipContent>
171
+ </TooltipPortal>
172
+ </Tooltip>
173
+ </TooltipProvider>`}
158
174
  >
159
175
  <TooltipProvider>
160
176
  <Tooltip>
@@ -183,29 +199,31 @@ function TooltipMicroShowcase({ globalSize }: { globalSize: Size }) {
183
199
  label="Trigger bị vô hiệu (Disabled Trigger)"
184
200
  description="Để bắt sự kiện hover trên nút disabled, cần bọc nó trong một thẻ span có tabIndex."
185
201
  codeString={`<TooltipProvider>
186
- <Tooltip>
187
- <TooltipTrigger
188
- render={
189
- <span tabIndex={0} className="inline-block cursor-not-allowed">
190
- <Button
191
- variant="outline"
192
- disabled
193
- className="pointer-events-none w-full h-full"
194
- iconOnly
202
+ <Tooltip>
203
+ <TooltipTrigger
204
+ render={
205
+ <span
206
+ tabIndex={0}
207
+ className="inline-block cursor-not-allowed"
195
208
  >
196
- <ShieldAlertIcon />
197
- </Button>
198
- </span>
199
- }
200
- />
201
- <TooltipPortal>
202
- <TooltipContent side="right">
203
- <p>Bạn không có quyền thực hiện hành động này.</p>
204
- </TooltipContent>
205
- </TooltipPortal>
206
- </Tooltip>
207
- </TooltipProvider>
208
- `}
209
+ <Button
210
+ variant="outline"
211
+ disabled
212
+ className="pointer-events-none w-full h-full"
213
+ iconOnly
214
+ >
215
+ <ShieldAlertIcon />
216
+ </Button>
217
+ </span>
218
+ }
219
+ />
220
+ <TooltipPortal>
221
+ <TooltipContent side="right">
222
+ <p>Bạn không có quyền thực hiện hành động này.</p>
223
+ </TooltipContent>
224
+ </TooltipPortal>
225
+ </Tooltip>
226
+ </TooltipProvider>`}
209
227
  >
210
228
  <TooltipProvider>
211
229
  <Tooltip>
@@ -243,40 +261,57 @@ function TooltipMicroShowcase({ globalSize }: { globalSize: Size }) {
243
261
  description="Thay đổi thời gian trễ trước khi tooltip xuất hiện thông qua thuộc tính delay của TooltipProvider."
244
262
  fullWidth
245
263
  codeString={`<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
246
- <TooltipProvider delay={0}>
247
- <Tooltip>
248
- <TooltipTrigger
249
- render={<Button variant="outline" className="w-full">Tức thì (0ms)</Button>}
250
- />
251
- <TooltipPortal>
252
- <TooltipContent>Xuất hiện ngay lập tức</TooltipContent>
253
- </TooltipPortal>
254
- </Tooltip>
255
- </TooltipProvider>
264
+ <TooltipProvider delay={0}>
265
+ <Tooltip>
266
+ <TooltipTrigger
267
+ render={
268
+ <Button variant="outline" className="w-full">
269
+ Tức thì (0ms)
270
+ </Button>
271
+ }
272
+ />
273
+ <TooltipPortal>
274
+ <TooltipContent>
275
+ Xuất hiện ngay lập tức
276
+ </TooltipContent>
277
+ </TooltipPortal>
278
+ </Tooltip>
279
+ </TooltipProvider>
256
280
 
257
- <TooltipProvider delay={500}>
258
- <Tooltip>
259
- <TooltipTrigger
260
- render={<Button variant="outline" className="w-full">Mặc định (500ms)</Button>}
261
- />
262
- <TooltipPortal>
263
- <TooltipContent>Xuất hiện sau nửa giây</TooltipContent>
264
- </TooltipPortal>
265
- </Tooltip>
266
- </TooltipProvider>
281
+ <TooltipProvider delay={500}>
282
+ <Tooltip>
283
+ <TooltipTrigger
284
+ render={
285
+ <Button variant="outline" className="w-full">
286
+ Mặc định (500ms)
287
+ </Button>
288
+ }
289
+ />
290
+ <TooltipPortal>
291
+ <TooltipContent>
292
+ Xuất hiện sau nửa giây
293
+ </TooltipContent>
294
+ </TooltipPortal>
295
+ </Tooltip>
296
+ </TooltipProvider>
267
297
 
268
- <TooltipProvider delay={2000}>
269
- <Tooltip>
270
- <TooltipTrigger
271
- render={<Button variant="outline" className="w-full">Chậm (2000ms)</Button>}
272
- />
273
- <TooltipPortal>
274
- <TooltipContent>Xuất hiện sau 2 giây chờ đợi</TooltipContent>
275
- </TooltipPortal>
276
- </Tooltip>
277
- </TooltipProvider>
278
- </div>
279
- `}
298
+ <TooltipProvider delay={2000}>
299
+ <Tooltip>
300
+ <TooltipTrigger
301
+ render={
302
+ <Button variant="outline" className="w-full">
303
+ Chậm (2000ms)
304
+ </Button>
305
+ }
306
+ />
307
+ <TooltipPortal>
308
+ <TooltipContent>
309
+ Xuất hiện sau 2 giây chờ đợi
310
+ </TooltipContent>
311
+ </TooltipPortal>
312
+ </Tooltip>
313
+ </TooltipProvider>
314
+ </div>`}
280
315
  >
281
316
  <div className="grid grid-cols-1 md:grid-cols-3 gap-4">
282
317
  <TooltipProvider delay={0}>
@@ -1,4 +1,5 @@
1
1
  import { describe, expect, it } from "vitest";
2
+
2
3
  import { cn } from "./utils";
3
4
 
4
5
  describe("utils", () => {
package/src/lib/utils.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { clsx, type ClassValue } from "clsx";
1
+ import { type ClassValue, clsx } from "clsx";
2
2
  import { twMerge } from "tailwind-merge";
3
3
 
4
4
  export function cn(...inputs: ClassValue[]) {
@@ -9,7 +9,6 @@
9
9
  * ========================================================================== */
10
10
 
11
11
  @import "tw-animate-css";
12
-
13
12
  @custom-variant dark (&:is(.dark *));
14
13
 
15
14
  @theme inline {