@arolariu/components 0.1.2 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/DEBUGGING.md +396 -396
  2. package/LICENSE.md +21 -21
  3. package/changelog.md +120 -118
  4. package/dist/components/ui/accordion.d.ts +6 -6
  5. package/dist/components/ui/accordion.d.ts.map +1 -1
  6. package/dist/components/ui/accordion.js +20 -28
  7. package/dist/components/ui/accordion.js.map +1 -1
  8. package/dist/components/ui/alert-dialog.d.ts +19 -13
  9. package/dist/components/ui/alert-dialog.d.ts.map +1 -1
  10. package/dist/components/ui/alert-dialog.js +40 -63
  11. package/dist/components/ui/alert-dialog.js.map +1 -1
  12. package/dist/components/ui/alert.d.ts +7 -8
  13. package/dist/components/ui/alert.d.ts.map +1 -1
  14. package/dist/components/ui/alert.js +18 -21
  15. package/dist/components/ui/alert.js.map +1 -1
  16. package/dist/components/ui/aspect-ratio.d.ts +1 -2
  17. package/dist/components/ui/aspect-ratio.d.ts.map +1 -1
  18. package/dist/components/ui/aspect-ratio.js +1 -8
  19. package/dist/components/ui/aspect-ratio.js.map +1 -1
  20. package/dist/components/ui/avatar.d.ts +5 -5
  21. package/dist/components/ui/avatar.d.ts.map +1 -1
  22. package/dist/components/ui/avatar.js +17 -20
  23. package/dist/components/ui/avatar.js.map +1 -1
  24. package/dist/components/ui/background-beams.d.ts.map +1 -1
  25. package/dist/components/ui/background-beams.js +6 -6
  26. package/dist/components/ui/background-beams.js.map +1 -1
  27. package/dist/components/ui/badge.d.ts +7 -7
  28. package/dist/components/ui/badge.d.ts.map +1 -1
  29. package/dist/components/ui/badge.js +9 -12
  30. package/dist/components/ui/badge.js.map +1 -1
  31. package/dist/components/ui/breadcrumb.d.ts +17 -9
  32. package/dist/components/ui/breadcrumb.d.ts.map +1 -1
  33. package/dist/components/ui/breadcrumb.js +32 -39
  34. package/dist/components/ui/breadcrumb.js.map +1 -1
  35. package/dist/components/ui/bubble-background.d.ts +1 -1
  36. package/dist/components/ui/bubble-background.d.ts.map +1 -1
  37. package/dist/components/ui/bubble-background.js +13 -13
  38. package/dist/components/ui/bubble-background.js.map +1 -1
  39. package/dist/components/ui/button-group.d.ts +13 -0
  40. package/dist/components/ui/button-group.d.ts.map +1 -0
  41. package/dist/components/ui/button-group.js +47 -0
  42. package/dist/components/ui/button-group.js.map +1 -0
  43. package/dist/components/ui/button.d.ts +8 -7
  44. package/dist/components/ui/button.d.ts.map +1 -1
  45. package/dist/components/ui/button.js +16 -15
  46. package/dist/components/ui/button.js.map +1 -1
  47. package/dist/components/ui/calendar.d.ts.map +1 -1
  48. package/dist/components/ui/calendar.js +22 -22
  49. package/dist/components/ui/calendar.js.map +1 -1
  50. package/dist/components/ui/card.d.ts +7 -8
  51. package/dist/components/ui/card.d.ts.map +1 -1
  52. package/dist/components/ui/card.js +33 -46
  53. package/dist/components/ui/card.js.map +1 -1
  54. package/dist/components/ui/carousel.d.ts +7 -8
  55. package/dist/components/ui/carousel.d.ts.map +1 -1
  56. package/dist/components/ui/carousel.js +30 -21
  57. package/dist/components/ui/carousel.js.map +1 -1
  58. package/dist/components/ui/chart.d.ts +37 -29
  59. package/dist/components/ui/chart.d.ts.map +1 -1
  60. package/dist/components/ui/chart.js +29 -27
  61. package/dist/components/ui/chart.js.map +1 -1
  62. package/dist/components/ui/checkbox.d.ts +2 -2
  63. package/dist/components/ui/checkbox.d.ts.map +1 -1
  64. package/dist/components/ui/checkbox.js +11 -13
  65. package/dist/components/ui/checkbox.js.map +1 -1
  66. package/dist/components/ui/collapsible.d.ts +4 -5
  67. package/dist/components/ui/collapsible.d.ts.map +1 -1
  68. package/dist/components/ui/collapsible.js +3 -20
  69. package/dist/components/ui/collapsible.js.map +1 -1
  70. package/dist/components/ui/command.d.ts +79 -17
  71. package/dist/components/ui/command.d.ts.map +1 -1
  72. package/dist/components/ui/command.js +52 -77
  73. package/dist/components/ui/command.js.map +1 -1
  74. package/dist/components/ui/context-menu.d.ts +23 -21
  75. package/dist/components/ui/context-menu.d.ts.map +1 -1
  76. package/dist/components/ui/context-menu.js +60 -104
  77. package/dist/components/ui/context-menu.js.map +1 -1
  78. package/dist/components/ui/counting-number.d.ts +1 -1
  79. package/dist/components/ui/counting-number.d.ts.map +1 -1
  80. package/dist/components/ui/counting-number.js +4 -3
  81. package/dist/components/ui/counting-number.js.map +1 -1
  82. package/dist/components/ui/dialog.d.ts +17 -13
  83. package/dist/components/ui/dialog.d.ts.map +1 -1
  84. package/dist/components/ui/dialog.js +38 -66
  85. package/dist/components/ui/dialog.js.map +1 -1
  86. package/dist/components/ui/dot-background.d.ts +10 -17
  87. package/dist/components/ui/dot-background.d.ts.map +1 -1
  88. package/dist/components/ui/dot-background.js +2 -2
  89. package/dist/components/ui/dot-background.js.map +1 -1
  90. package/dist/components/ui/drawer.d.ts +20 -11
  91. package/dist/components/ui/drawer.d.ts.map +1 -1
  92. package/dist/components/ui/drawer.js +37 -62
  93. package/dist/components/ui/drawer.js.map +1 -1
  94. package/dist/components/ui/dropdown-menu.d.ts +23 -21
  95. package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
  96. package/dist/components/ui/dropdown-menu.js +65 -109
  97. package/dist/components/ui/dropdown-menu.js.map +1 -1
  98. package/dist/components/ui/dropdrawer.d.ts +3 -3
  99. package/dist/components/ui/dropdrawer.d.ts.map +1 -1
  100. package/dist/components/ui/dropdrawer.js +13 -16
  101. package/dist/components/ui/dropdrawer.js.map +1 -1
  102. package/dist/components/ui/empty.d.ts +13 -0
  103. package/dist/components/ui/empty.d.ts.map +1 -0
  104. package/dist/components/ui/empty.js +65 -0
  105. package/dist/components/ui/empty.js.map +1 -0
  106. package/dist/components/ui/field.d.ts +25 -0
  107. package/dist/components/ui/field.d.ts.map +1 -0
  108. package/dist/components/ui/field.js +135 -0
  109. package/dist/components/ui/field.js.map +1 -0
  110. package/dist/components/ui/fireworks-background.d.ts.map +1 -1
  111. package/dist/components/ui/fireworks-background.js +1 -1
  112. package/dist/components/ui/fireworks-background.js.map +1 -1
  113. package/dist/components/ui/flip-button.d.ts +1 -1
  114. package/dist/components/ui/flip-button.d.ts.map +1 -1
  115. package/dist/components/ui/flip-button.js +3 -3
  116. package/dist/components/ui/flip-button.js.map +1 -1
  117. package/dist/components/ui/form.d.ts +7 -8
  118. package/dist/components/ui/form.d.ts.map +1 -1
  119. package/dist/components/ui/form.js +29 -28
  120. package/dist/components/ui/form.js.map +1 -1
  121. package/dist/components/ui/gradient-background.d.ts +1 -1
  122. package/dist/components/ui/gradient-background.d.ts.map +1 -1
  123. package/dist/components/ui/gradient-background.js +2 -2
  124. package/dist/components/ui/gradient-background.js.map +1 -1
  125. package/dist/components/ui/gradient-text.d.ts +1 -1
  126. package/dist/components/ui/gradient-text.d.ts.map +1 -1
  127. package/dist/components/ui/gradient-text.js +5 -5
  128. package/dist/components/ui/gradient-text.js.map +1 -1
  129. package/dist/components/ui/highlight-text.d.ts +1 -1
  130. package/dist/components/ui/highlight-text.d.ts.map +1 -1
  131. package/dist/components/ui/highlight-text.js +3 -3
  132. package/dist/components/ui/highlight-text.js.map +1 -1
  133. package/dist/components/ui/hole-background.d.ts.map +1 -1
  134. package/dist/components/ui/hole-background.js +11 -10
  135. package/dist/components/ui/hole-background.js.map +1 -1
  136. package/dist/components/ui/hover-card.d.ts +5 -5
  137. package/dist/components/ui/hover-card.d.ts.map +1 -1
  138. package/dist/components/ui/hover-card.js +12 -26
  139. package/dist/components/ui/hover-card.js.map +1 -1
  140. package/dist/components/ui/input-group.d.ts +17 -0
  141. package/dist/components/ui/input-group.d.ts.map +1 -0
  142. package/dist/components/ui/input-group.js +91 -0
  143. package/dist/components/ui/input-group.js.map +1 -0
  144. package/dist/components/ui/input-otp.d.ts +31 -8
  145. package/dist/components/ui/input-otp.d.ts.map +1 -1
  146. package/dist/components/ui/input-otp.js +24 -27
  147. package/dist/components/ui/input-otp.js.map +1 -1
  148. package/dist/components/ui/input.d.ts +1 -1
  149. package/dist/components/ui/input.d.ts.map +1 -1
  150. package/dist/components/ui/input.js +7 -8
  151. package/dist/components/ui/input.js.map +1 -1
  152. package/dist/components/ui/item.d.ts +24 -0
  153. package/dist/components/ui/item.d.ts.map +1 -0
  154. package/dist/components/ui/item.js +122 -0
  155. package/dist/components/ui/item.js.map +1 -0
  156. package/dist/components/ui/kbd.d.ts +5 -0
  157. package/dist/components/ui/kbd.d.ts.map +1 -0
  158. package/dist/components/ui/kbd.js +21 -0
  159. package/dist/components/ui/kbd.js.map +1 -0
  160. package/dist/components/ui/label.d.ts +3 -2
  161. package/dist/components/ui/label.d.ts.map +1 -1
  162. package/dist/components/ui/label.js +9 -8
  163. package/dist/components/ui/label.js.map +1 -1
  164. package/dist/components/ui/menubar.d.ts +20 -18
  165. package/dist/components/ui/menubar.d.ts.map +1 -1
  166. package/dist/components/ui/menubar.js +75 -95
  167. package/dist/components/ui/menubar.js.map +1 -1
  168. package/dist/components/ui/navigation-menu.d.ts +11 -13
  169. package/dist/components/ui/navigation-menu.d.ts.map +1 -1
  170. package/dist/components/ui/navigation-menu.js +39 -58
  171. package/dist/components/ui/navigation-menu.js.map +1 -1
  172. package/dist/components/ui/pagination.d.ts +25 -10
  173. package/dist/components/ui/pagination.d.ts.map +1 -1
  174. package/dist/components/ui/pagination.js +33 -41
  175. package/dist/components/ui/pagination.js.map +1 -1
  176. package/dist/components/ui/popover.d.ts +6 -6
  177. package/dist/components/ui/popover.d.ts.map +1 -1
  178. package/dist/components/ui/popover.js +10 -26
  179. package/dist/components/ui/popover.js.map +1 -1
  180. package/dist/components/ui/progress.d.ts +2 -2
  181. package/dist/components/ui/progress.d.ts.map +1 -1
  182. package/dist/components/ui/progress.js +8 -10
  183. package/dist/components/ui/progress.js.map +1 -1
  184. package/dist/components/ui/radio-group.d.ts +3 -3
  185. package/dist/components/ui/radio-group.d.ts.map +1 -1
  186. package/dist/components/ui/radio-group.js +17 -20
  187. package/dist/components/ui/radio-group.js.map +1 -1
  188. package/dist/components/ui/resizable.d.ts +21 -6
  189. package/dist/components/ui/resizable.d.ts.map +1 -1
  190. package/dist/components/ui/resizable.js +9 -21
  191. package/dist/components/ui/resizable.js.map +1 -1
  192. package/dist/components/ui/ripple-button.d.ts +1 -1
  193. package/dist/components/ui/ripple-button.d.ts.map +1 -1
  194. package/dist/components/ui/ripple-button.js +4 -4
  195. package/dist/components/ui/ripple-button.js.map +1 -1
  196. package/dist/components/ui/scratcher.d.ts.map +1 -1
  197. package/dist/components/ui/scratcher.js +7 -5
  198. package/dist/components/ui/scratcher.js.map +1 -1
  199. package/dist/components/ui/scroll-area.d.ts +3 -3
  200. package/dist/components/ui/scroll-area.d.ts.map +1 -1
  201. package/dist/components/ui/scroll-area.js +14 -18
  202. package/dist/components/ui/scroll-area.js.map +1 -1
  203. package/dist/components/ui/select.d.ts +11 -13
  204. package/dist/components/ui/select.d.ts.map +1 -1
  205. package/dist/components/ui/select.js +55 -78
  206. package/dist/components/ui/select.js.map +1 -1
  207. package/dist/components/ui/separator.d.ts +2 -2
  208. package/dist/components/ui/separator.d.ts.map +1 -1
  209. package/dist/components/ui/separator.js +7 -8
  210. package/dist/components/ui/separator.js.map +1 -1
  211. package/dist/components/ui/sheet.d.ts +24 -12
  212. package/dist/components/ui/sheet.d.ts.map +1 -1
  213. package/dist/components/ui/sheet.js +56 -68
  214. package/dist/components/ui/sheet.js.map +1 -1
  215. package/dist/components/ui/sidebar.d.ts +35 -39
  216. package/dist/components/ui/sidebar.d.ts.map +1 -1
  217. package/dist/components/ui/sidebar.js +115 -124
  218. package/dist/components/ui/sidebar.js.map +1 -1
  219. package/dist/components/ui/skeleton.d.ts +1 -1
  220. package/dist/components/ui/skeleton.d.ts.map +1 -1
  221. package/dist/components/ui/skeleton.js +2 -3
  222. package/dist/components/ui/skeleton.js.map +1 -1
  223. package/dist/components/ui/slider.d.ts +2 -2
  224. package/dist/components/ui/slider.d.ts.map +1 -1
  225. package/dist/components/ui/slider.js +12 -31
  226. package/dist/components/ui/slider.js.map +1 -1
  227. package/dist/components/ui/sonner.d.ts +4 -2
  228. package/dist/components/ui/sonner.d.ts.map +1 -1
  229. package/dist/components/ui/sonner.js +8 -5
  230. package/dist/components/ui/sonner.js.map +1 -1
  231. package/dist/components/ui/spinner.d.ts +4 -0
  232. package/dist/components/ui/spinner.d.ts.map +1 -0
  233. package/dist/components/ui/spinner.js +16 -0
  234. package/dist/components/ui/spinner.js.map +1 -0
  235. package/dist/components/ui/switch.d.ts +2 -2
  236. package/dist/components/ui/switch.d.ts.map +1 -1
  237. package/dist/components/ui/switch.js +8 -10
  238. package/dist/components/ui/switch.js.map +1 -1
  239. package/dist/components/ui/table.d.ts +9 -9
  240. package/dist/components/ui/table.d.ts.map +1 -1
  241. package/dist/components/ui/table.js +40 -49
  242. package/dist/components/ui/table.js.map +1 -1
  243. package/dist/components/ui/tabs.d.ts +6 -6
  244. package/dist/components/ui/tabs.d.ts.map +1 -1
  245. package/dist/components/ui/tabs.js +18 -27
  246. package/dist/components/ui/tabs.js.map +1 -1
  247. package/dist/components/ui/textarea.d.ts +1 -1
  248. package/dist/components/ui/textarea.d.ts.map +1 -1
  249. package/dist/components/ui/textarea.js +7 -8
  250. package/dist/components/ui/textarea.js.map +1 -1
  251. package/dist/components/ui/toggle-group.d.ts +9 -4
  252. package/dist/components/ui/toggle-group.d.ts.map +1 -1
  253. package/dist/components/ui/toggle-group.js +12 -16
  254. package/dist/components/ui/toggle-group.js.map +1 -1
  255. package/dist/components/ui/toggle.d.ts +9 -6
  256. package/dist/components/ui/toggle.d.ts.map +1 -1
  257. package/dist/components/ui/toggle.js +8 -9
  258. package/dist/components/ui/toggle.js.map +1 -1
  259. package/dist/components/ui/tooltip.d.ts +6 -6
  260. package/dist/components/ui/tooltip.d.ts.map +1 -1
  261. package/dist/components/ui/tooltip.js +14 -39
  262. package/dist/components/ui/tooltip.js.map +1 -1
  263. package/dist/components/ui/typewriter.d.ts.map +1 -1
  264. package/dist/components/ui/typewriter.js +9 -9
  265. package/dist/components/ui/typewriter.js.map +1 -1
  266. package/dist/hooks/useIsMobile.d.ts +2 -5
  267. package/dist/hooks/useIsMobile.d.ts.map +1 -1
  268. package/dist/hooks/useIsMobile.js +1 -1
  269. package/dist/hooks/useIsMobile.js.map +1 -1
  270. package/dist/hooks/useWindowSize.d.ts +0 -1
  271. package/dist/hooks/useWindowSize.d.ts.map +1 -1
  272. package/dist/hooks/useWindowSize.js +1 -1
  273. package/dist/hooks/useWindowSize.js.map +1 -1
  274. package/dist/index.css +841 -1128
  275. package/dist/index.css.map +1 -1
  276. package/dist/index.d.ts +43 -37
  277. package/dist/index.d.ts.map +1 -1
  278. package/dist/index.js +11 -5
  279. package/dist/lib/utilities.d.ts +9 -0
  280. package/dist/lib/utilities.d.ts.map +1 -0
  281. package/dist/lib/{utils.js → utilities.js} +1 -1
  282. package/dist/lib/utilities.js.map +1 -0
  283. package/package.json +121 -90
  284. package/{README.md → readme.md} +627 -627
  285. package/src/components/ui/accordion.tsx +55 -66
  286. package/src/components/ui/alert-dialog.tsx +124 -160
  287. package/src/components/ui/alert.tsx +56 -69
  288. package/src/components/ui/aspect-ratio.tsx +7 -12
  289. package/src/components/ui/avatar.tsx +43 -53
  290. package/src/components/ui/background-beams.tsx +145 -142
  291. package/src/components/ui/badge.tsx +39 -48
  292. package/src/components/ui/breadcrumb.tsx +94 -117
  293. package/src/components/ui/bubble-background.tsx +170 -189
  294. package/src/components/ui/button-group.tsx +69 -0
  295. package/src/components/ui/button.tsx +55 -61
  296. package/src/components/ui/calendar.tsx +175 -216
  297. package/src/components/ui/card.tsx +64 -97
  298. package/src/components/ui/carousel.tsx +216 -241
  299. package/src/components/ui/chart.tsx +293 -385
  300. package/src/components/ui/checkbox.tsx +27 -32
  301. package/src/components/ui/collapsible.tsx +11 -34
  302. package/src/components/ui/command.tsx +138 -184
  303. package/src/components/ui/context-menu.tsx +186 -255
  304. package/src/components/ui/counting-number.tsx +92 -108
  305. package/src/components/ui/dialog.tsx +106 -146
  306. package/src/components/ui/dot-background.tsx +153 -158
  307. package/src/components/ui/drawer.tsx +105 -141
  308. package/src/components/ui/dropdown-menu.tsx +188 -260
  309. package/src/components/ui/dropdrawer.tsx +865 -973
  310. package/src/components/ui/empty.tsx +86 -0
  311. package/src/components/ui/field.tsx +198 -0
  312. package/src/components/ui/fireworks-background.tsx +325 -378
  313. package/src/components/ui/flip-button.tsx +89 -110
  314. package/src/components/ui/form.tsx +144 -174
  315. package/src/components/ui/gradient-background.tsx +30 -43
  316. package/src/components/ui/gradient-text.tsx +62 -65
  317. package/src/components/ui/highlight-text.tsx +54 -71
  318. package/src/components/ui/hole-background.tsx +326 -361
  319. package/src/components/ui/hover-card.tsx +29 -44
  320. package/src/components/ui/input-group.tsx +145 -0
  321. package/src/components/ui/input-otp.tsx +66 -77
  322. package/src/components/ui/input.tsx +21 -22
  323. package/src/components/ui/item.tsx +163 -0
  324. package/src/components/ui/kbd.tsx +31 -0
  325. package/src/components/ui/label.tsx +23 -24
  326. package/src/components/ui/menubar.tsx +233 -279
  327. package/src/components/ui/navigation-menu.tsx +120 -171
  328. package/src/components/ui/pagination.tsx +92 -129
  329. package/src/components/ui/popover.tsx +33 -48
  330. package/src/components/ui/progress.tsx +24 -31
  331. package/src/components/ui/radio-group.tsx +43 -45
  332. package/src/components/ui/resizable.tsx +38 -56
  333. package/src/components/ui/ripple-button.tsx +90 -111
  334. package/src/components/ui/scratcher.tsx +167 -171
  335. package/src/components/ui/scroll-area.tsx +42 -58
  336. package/src/components/ui/select.tsx +145 -191
  337. package/src/components/ui/separator.tsx +26 -28
  338. package/src/components/ui/sheet.tsx +112 -145
  339. package/src/components/ui/sidebar.tsx +664 -729
  340. package/src/components/ui/skeleton.tsx +15 -19
  341. package/src/components/ui/slider.tsx +23 -63
  342. package/src/components/ui/sonner.tsx +36 -26
  343. package/src/components/ui/spinner.tsx +18 -0
  344. package/src/components/ui/switch.tsx +28 -31
  345. package/src/components/ui/table.tsx +93 -119
  346. package/src/components/ui/tabs.tsx +54 -66
  347. package/src/components/ui/textarea.tsx +21 -20
  348. package/src/components/ui/toggle-group.tsx +53 -73
  349. package/src/components/ui/toggle.tsx +44 -47
  350. package/src/components/ui/tooltip.tsx +32 -61
  351. package/src/components/ui/typewriter.tsx +173 -188
  352. package/src/hooks/useIsMobile.tsx +42 -45
  353. package/src/hooks/useWindowSize.tsx +66 -72
  354. package/src/index.css +67 -67
  355. package/src/index.ts +342 -408
  356. package/src/lib/utilities.ts +12 -0
  357. package/dist/lib/utils.d.ts +0 -7
  358. package/dist/lib/utils.d.ts.map +0 -1
  359. package/dist/lib/utils.js.map +0 -1
  360. package/src/lib/utils.ts +0 -10
@@ -1,171 +1,120 @@
1
- "use client";
2
-
3
- import * as React from "react";
4
- import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
5
- import { cva } from "class-variance-authority";
6
- import { ChevronDownIcon } from "lucide-react";
7
-
8
- import { cn } from "@/lib/utils";
9
-
10
- function NavigationMenu({
11
- className,
12
- children,
13
- viewport = true,
14
- ...props
15
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {
16
- viewport?: boolean;
17
- }) {
18
- return (
19
- <NavigationMenuPrimitive.Root
20
- data-slot="navigation-menu"
21
- data-viewport={viewport}
22
- className={cn(
23
- "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
24
- className,
25
- )}
26
- {...props}
27
- >
28
- {children}
29
- {viewport && <NavigationMenuViewport />}
30
- </NavigationMenuPrimitive.Root>
31
- );
32
- }
33
-
34
- function NavigationMenuList({
35
- className,
36
- ...props
37
- }: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {
38
- return (
39
- <NavigationMenuPrimitive.List
40
- data-slot="navigation-menu-list"
41
- className={cn(
42
- "group flex flex-1 list-none items-center justify-center gap-1",
43
- className,
44
- )}
45
- {...props}
46
- />
47
- );
48
- }
49
-
50
- function NavigationMenuItem({
51
- className,
52
- ...props
53
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {
54
- return (
55
- <NavigationMenuPrimitive.Item
56
- data-slot="navigation-menu-item"
57
- className={cn("relative", className)}
58
- {...props}
59
- />
60
- );
61
- }
62
-
63
- const navigationMenuTriggerStyle = cva(
64
- "group inline-flex h-9 w-max items-center justify-center rounded-md bg-white px-4 py-2 text-sm font-medium hover:bg-neutral-100 hover:text-neutral-900 focus:bg-neutral-100 focus:text-neutral-900 disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-neutral-100 data-[state=open]:text-neutral-900 data-[state=open]:focus:bg-neutral-100 data-[state=open]:bg-neutral-100/50 focus-visible:ring-neutral-950/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 dark:bg-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[state=open]:hover:bg-neutral-800 dark:data-[state=open]:text-neutral-50 dark:data-[state=open]:focus:bg-neutral-800 dark:data-[state=open]:bg-neutral-800/50 dark:focus-visible:ring-neutral-300/50",
65
- );
66
-
67
- function NavigationMenuTrigger({
68
- className,
69
- children,
70
- ...props
71
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {
72
- return (
73
- <NavigationMenuPrimitive.Trigger
74
- data-slot="navigation-menu-trigger"
75
- className={cn(navigationMenuTriggerStyle(), "group", className)}
76
- {...props}
77
- >
78
- {children}
79
- {""}
80
- <ChevronDownIcon
81
- className="relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180"
82
- aria-hidden="true"
83
- />
84
- </NavigationMenuPrimitive.Trigger>
85
- );
86
- }
87
-
88
- function NavigationMenuContent({
89
- className,
90
- ...props
91
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {
92
- return (
93
- <NavigationMenuPrimitive.Content
94
- data-slot="navigation-menu-content"
95
- className={cn(
96
- "data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full p-2 pr-2.5 md:absolute md:w-auto",
97
- "group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none",
98
- className,
99
- )}
100
- {...props}
101
- />
102
- );
103
- }
104
-
105
- function NavigationMenuViewport({
106
- className,
107
- ...props
108
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {
109
- return (
110
- <div
111
- className={cn(
112
- "absolute top-full left-0 isolate z-50 flex justify-center",
113
- )}
114
- >
115
- <NavigationMenuPrimitive.Viewport
116
- data-slot="navigation-menu-viewport"
117
- className={cn(
118
- "origin-top-center bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border border-neutral-200 shadow md:w-[var(--radix-navigation-menu-viewport-width)] dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800",
119
- className,
120
- )}
121
- {...props}
122
- />
123
- </div>
124
- );
125
- }
126
-
127
- function NavigationMenuLink({
128
- className,
129
- ...props
130
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {
131
- return (
132
- <NavigationMenuPrimitive.Link
133
- data-slot="navigation-menu-link"
134
- className={cn(
135
- "data-[active=true]:focus:bg-neutral-100 data-[active=true]:hover:bg-neutral-100 data-[active=true]:bg-neutral-100/50 data-[active=true]:text-neutral-900 hover:bg-neutral-100 hover:text-neutral-900 focus:bg-neutral-100 focus:text-neutral-900 focus-visible:ring-neutral-950/50 [&_svg:not([class*='text-'])]:text-neutral-500 flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4 dark:data-[active=true]:focus:bg-neutral-800 dark:data-[active=true]:hover:bg-neutral-800 dark:data-[active=true]:bg-neutral-800/50 dark:data-[active=true]:text-neutral-50 dark:hover:bg-neutral-800 dark:hover:text-neutral-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:focus-visible:ring-neutral-300/50 dark:[&_svg:not([class*='text-'])]:text-neutral-400",
136
- className,
137
- )}
138
- {...props}
139
- />
140
- );
141
- }
142
-
143
- function NavigationMenuIndicator({
144
- className,
145
- ...props
146
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {
147
- return (
148
- <NavigationMenuPrimitive.Indicator
149
- data-slot="navigation-menu-indicator"
150
- className={cn(
151
- "data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden",
152
- className,
153
- )}
154
- {...props}
155
- >
156
- <div className="bg-neutral-200 relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md dark:bg-neutral-800" />
157
- </NavigationMenuPrimitive.Indicator>
158
- );
159
- }
160
-
161
- export {
162
- NavigationMenu,
163
- NavigationMenuList,
164
- NavigationMenuItem,
165
- NavigationMenuContent,
166
- NavigationMenuTrigger,
167
- NavigationMenuLink,
168
- NavigationMenuIndicator,
169
- NavigationMenuViewport,
170
- navigationMenuTriggerStyle,
171
- };
1
+ "use client";
2
+
3
+ import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
4
+ import {cva} from "class-variance-authority";
5
+ import {ChevronDown} from "lucide-react";
6
+ import * as React from "react";
7
+
8
+ import {cn} from "@/lib/utilities";
9
+
10
+ const NavigationMenu = React.forwardRef<
11
+ React.ElementRef<typeof NavigationMenuPrimitive.Root>,
12
+ React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Root>
13
+ >(({className, children, ...props}, ref) => (
14
+ <NavigationMenuPrimitive.Root
15
+ ref={ref}
16
+ className={cn("relative z-10 flex max-w-max flex-1 items-center justify-center", className)}
17
+ {...props}>
18
+ {children}
19
+ <NavigationMenuViewport />
20
+ </NavigationMenuPrimitive.Root>
21
+ ));
22
+ NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
23
+
24
+ const NavigationMenuList = React.forwardRef<
25
+ React.ElementRef<typeof NavigationMenuPrimitive.List>,
26
+ React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.List>
27
+ >(({className, ...props}, ref) => (
28
+ <NavigationMenuPrimitive.List
29
+ ref={ref}
30
+ className={cn("group flex flex-1 list-none items-center justify-center space-x-1", className)}
31
+ {...props}
32
+ />
33
+ ));
34
+ NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
35
+
36
+ const NavigationMenuItem = NavigationMenuPrimitive.Item;
37
+
38
+ const navigationMenuTriggerStyle = cva(
39
+ "group inline-flex h-9 w-max items-center justify-center rounded-md bg-white px-4 py-2 text-sm font-medium transition-colors hover:bg-neutral-100 hover:text-neutral-900 focus:bg-neutral-100 focus:text-neutral-900 focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-neutral-900 data-[state=open]:bg-neutral-100/50 data-[state=open]:hover:bg-neutral-100 data-[state=open]:focus:bg-neutral-100 dark:bg-neutral-950 dark:hover:bg-neutral-800 dark:hover:text-neutral-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[state=open]:text-neutral-50 dark:data-[state=open]:bg-neutral-800/50 dark:data-[state=open]:hover:bg-neutral-800 dark:data-[state=open]:focus:bg-neutral-800",
40
+ );
41
+
42
+ const NavigationMenuTrigger = React.forwardRef<
43
+ React.ElementRef<typeof NavigationMenuPrimitive.Trigger>,
44
+ React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Trigger>
45
+ >(({className, children, ...props}, ref) => (
46
+ <NavigationMenuPrimitive.Trigger
47
+ ref={ref}
48
+ className={cn(navigationMenuTriggerStyle(), "group", className)}
49
+ {...props}>
50
+ {children}
51
+ {""}
52
+ <ChevronDown
53
+ className='relative top-[1px] ml-1 h-3 w-3 transition duration-300 group-data-[state=open]:rotate-180'
54
+ aria-hidden='true'
55
+ />
56
+ </NavigationMenuPrimitive.Trigger>
57
+ ));
58
+ NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
59
+
60
+ const NavigationMenuContent = React.forwardRef<
61
+ React.ElementRef<typeof NavigationMenuPrimitive.Content>,
62
+ React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Content>
63
+ >(({className, ...props}, ref) => (
64
+ <NavigationMenuPrimitive.Content
65
+ ref={ref}
66
+ className={cn(
67
+ "data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 top-0 left-0 w-full md:absolute md:w-auto",
68
+ className,
69
+ )}
70
+ {...props}
71
+ />
72
+ ));
73
+ NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
74
+
75
+ const NavigationMenuLink = NavigationMenuPrimitive.Link;
76
+
77
+ const NavigationMenuViewport = React.forwardRef<
78
+ React.ElementRef<typeof NavigationMenuPrimitive.Viewport>,
79
+ React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Viewport>
80
+ >(({className, ...props}, ref) => (
81
+ <div className={cn("absolute top-full left-0 flex justify-center")}>
82
+ <NavigationMenuPrimitive.Viewport
83
+ className={cn(
84
+ "origin-top-center data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border border-neutral-200 bg-white text-neutral-950 shadow md:w-[var(--radix-navigation-menu-viewport-width)] dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",
85
+ className,
86
+ )}
87
+ ref={ref}
88
+ {...props}
89
+ />
90
+ </div>
91
+ ));
92
+ NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
93
+
94
+ const NavigationMenuIndicator = React.forwardRef<
95
+ React.ElementRef<typeof NavigationMenuPrimitive.Indicator>,
96
+ React.ComponentPropsWithoutRef<typeof NavigationMenuPrimitive.Indicator>
97
+ >(({className, ...props}, ref) => (
98
+ <NavigationMenuPrimitive.Indicator
99
+ ref={ref}
100
+ className={cn(
101
+ "data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden",
102
+ className,
103
+ )}
104
+ {...props}>
105
+ <div className='relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-neutral-200 shadow-md dark:bg-neutral-800' />
106
+ </NavigationMenuPrimitive.Indicator>
107
+ ));
108
+ NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
109
+
110
+ export {
111
+ NavigationMenu,
112
+ NavigationMenuContent,
113
+ NavigationMenuIndicator,
114
+ NavigationMenuItem,
115
+ NavigationMenuLink,
116
+ NavigationMenuList,
117
+ NavigationMenuTrigger,
118
+ navigationMenuTriggerStyle,
119
+ NavigationMenuViewport,
120
+ };
@@ -1,129 +1,92 @@
1
- "use client";
2
-
3
- import * as React from "react";
4
- import {
5
- ChevronLeftIcon,
6
- ChevronRightIcon,
7
- MoreHorizontalIcon,
8
- } from "lucide-react";
9
-
10
- import { cn } from "@/lib/utils";
11
- import { Button, buttonVariants } from "@/components/ui/button";
12
-
13
- function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
14
- return (
15
- <nav
16
- role="navigation"
17
- aria-label="pagination"
18
- data-slot="pagination"
19
- className={cn("mx-auto flex w-full justify-center", className)}
20
- {...props}
21
- />
22
- );
23
- }
24
-
25
- function PaginationContent({
26
- className,
27
- ...props
28
- }: React.ComponentProps<"ul">) {
29
- return (
30
- <ul
31
- data-slot="pagination-content"
32
- className={cn("flex flex-row items-center gap-1", className)}
33
- {...props}
34
- />
35
- );
36
- }
37
-
38
- function PaginationItem({ ...props }: React.ComponentProps<"li">) {
39
- return <li data-slot="pagination-item" {...props} />;
40
- }
41
-
42
- type PaginationLinkProps = {
43
- isActive?: boolean;
44
- } & Pick<React.ComponentProps<typeof Button>, "size"> &
45
- React.ComponentProps<"a">;
46
-
47
- function PaginationLink({
48
- className,
49
- isActive,
50
- size = "icon",
51
- ...props
52
- }: PaginationLinkProps) {
53
- return (
54
- <a
55
- aria-current={isActive ? "page" : undefined}
56
- data-slot="pagination-link"
57
- data-active={isActive}
58
- className={cn(
59
- buttonVariants({
60
- variant: isActive ? "outline" : "ghost",
61
- size,
62
- }),
63
- className,
64
- )}
65
- {...props}
66
- />
67
- );
68
- }
69
-
70
- function PaginationPrevious({
71
- className,
72
- ...props
73
- }: React.ComponentProps<typeof PaginationLink>) {
74
- return (
75
- <PaginationLink
76
- aria-label="Go to previous page"
77
- size="default"
78
- className={cn("gap-1 px-2.5 sm:pl-2.5", className)}
79
- {...props}
80
- >
81
- <ChevronLeftIcon />
82
- <span className="hidden sm:block">Previous</span>
83
- </PaginationLink>
84
- );
85
- }
86
-
87
- function PaginationNext({
88
- className,
89
- ...props
90
- }: React.ComponentProps<typeof PaginationLink>) {
91
- return (
92
- <PaginationLink
93
- aria-label="Go to next page"
94
- size="default"
95
- className={cn("gap-1 px-2.5 sm:pr-2.5", className)}
96
- {...props}
97
- >
98
- <span className="hidden sm:block">Next</span>
99
- <ChevronRightIcon />
100
- </PaginationLink>
101
- );
102
- }
103
-
104
- function PaginationEllipsis({
105
- className,
106
- ...props
107
- }: React.ComponentProps<"span">) {
108
- return (
109
- <span
110
- aria-hidden
111
- data-slot="pagination-ellipsis"
112
- className={cn("flex size-9 items-center justify-center", className)}
113
- {...props}
114
- >
115
- <MoreHorizontalIcon className="size-4" />
116
- <span className="sr-only">More pages</span>
117
- </span>
118
- );
119
- }
120
-
121
- export {
122
- Pagination,
123
- PaginationContent,
124
- PaginationLink,
125
- PaginationItem,
126
- PaginationPrevious,
127
- PaginationNext,
128
- PaginationEllipsis,
129
- };
1
+ "use client";
2
+
3
+ import {ChevronLeft, ChevronRight, MoreHorizontal} from "lucide-react";
4
+ import * as React from "react";
5
+
6
+ import {ButtonProps, buttonVariants} from "@/components/ui/button";
7
+ import {cn} from "@/lib/utilities";
8
+
9
+ const Pagination = ({className, ...props}: React.ComponentProps<"nav">) => (
10
+ <nav
11
+ role='navigation'
12
+ aria-label='pagination'
13
+ className={cn("mx-auto flex w-full justify-center", className)}
14
+ {...props}
15
+ />
16
+ );
17
+ Pagination.displayName = "Pagination";
18
+
19
+ const PaginationContent = React.forwardRef<HTMLUListElement, React.ComponentProps<"ul">>(({className, ...props}, ref) => (
20
+ <ul
21
+ ref={ref}
22
+ className={cn("flex flex-row items-center gap-1", className)}
23
+ {...props}
24
+ />
25
+ ));
26
+ PaginationContent.displayName = "PaginationContent";
27
+
28
+ const PaginationItem = React.forwardRef<HTMLLIElement, React.ComponentProps<"li">>(({className, ...props}, ref) => (
29
+ <li
30
+ ref={ref}
31
+ className={cn("", className)}
32
+ {...props}
33
+ />
34
+ ));
35
+ PaginationItem.displayName = "PaginationItem";
36
+
37
+ type PaginationLinkProps = {
38
+ isActive?: boolean;
39
+ } & Pick<ButtonProps, "size">
40
+ & React.ComponentProps<"a">;
41
+
42
+ const PaginationLink = ({className, isActive, size = "icon", ...props}: PaginationLinkProps) => (
43
+ <a
44
+ aria-current={isActive ? "page" : undefined}
45
+ className={cn(
46
+ buttonVariants({
47
+ variant: isActive ? "outline" : "ghost",
48
+ size,
49
+ }),
50
+ className,
51
+ )}
52
+ {...props}
53
+ />
54
+ );
55
+ PaginationLink.displayName = "PaginationLink";
56
+
57
+ const PaginationPrevious = ({className, ...props}: React.ComponentProps<typeof PaginationLink>) => (
58
+ <PaginationLink
59
+ aria-label='Go to previous page'
60
+ size='default'
61
+ className={cn("gap-1 pl-2.5", className)}
62
+ {...props}>
63
+ <ChevronLeft className='h-4 w-4' />
64
+ <span>Previous</span>
65
+ </PaginationLink>
66
+ );
67
+ PaginationPrevious.displayName = "PaginationPrevious";
68
+
69
+ const PaginationNext = ({className, ...props}: React.ComponentProps<typeof PaginationLink>) => (
70
+ <PaginationLink
71
+ aria-label='Go to next page'
72
+ size='default'
73
+ className={cn("gap-1 pr-2.5", className)}
74
+ {...props}>
75
+ <span>Next</span>
76
+ <ChevronRight className='h-4 w-4' />
77
+ </PaginationLink>
78
+ );
79
+ PaginationNext.displayName = "PaginationNext";
80
+
81
+ const PaginationEllipsis = ({className, ...props}: React.ComponentProps<"span">) => (
82
+ <span
83
+ aria-hidden
84
+ className={cn("flex h-9 w-9 items-center justify-center", className)}
85
+ {...props}>
86
+ <MoreHorizontal className='h-4 w-4' />
87
+ <span className='sr-only'>More pages</span>
88
+ </span>
89
+ );
90
+ PaginationEllipsis.displayName = "PaginationEllipsis";
91
+
92
+ export {Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious};
@@ -1,48 +1,33 @@
1
- "use client";
2
-
3
- import * as React from "react";
4
- import * as PopoverPrimitive from "@radix-ui/react-popover";
5
-
6
- import { cn } from "@/lib/utils";
7
-
8
- function Popover({
9
- ...props
10
- }: React.ComponentProps<typeof PopoverPrimitive.Root>) {
11
- return <PopoverPrimitive.Root data-slot="popover" {...props} />;
12
- }
13
-
14
- function PopoverTrigger({
15
- ...props
16
- }: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {
17
- return <PopoverPrimitive.Trigger data-slot="popover-trigger" {...props} />;
18
- }
19
-
20
- function PopoverContent({
21
- className,
22
- align = "center",
23
- sideOffset = 4,
24
- ...props
25
- }: React.ComponentProps<typeof PopoverPrimitive.Content>) {
26
- return (
27
- <PopoverPrimitive.Portal>
28
- <PopoverPrimitive.Content
29
- data-slot="popover-content"
30
- align={align}
31
- sideOffset={sideOffset}
32
- className={cn(
33
- "bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border border-neutral-200 p-4 shadow-md outline-hidden dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800",
34
- className,
35
- )}
36
- {...props}
37
- />
38
- </PopoverPrimitive.Portal>
39
- );
40
- }
41
-
42
- function PopoverAnchor({
43
- ...props
44
- }: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {
45
- return <PopoverPrimitive.Anchor data-slot="popover-anchor" {...props} />;
46
- }
47
-
48
- export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor };
1
+ "use client";
2
+
3
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
4
+ import * as React from "react";
5
+
6
+ import {cn} from "@/lib/utilities";
7
+
8
+ const Popover = PopoverPrimitive.Root;
9
+
10
+ const PopoverTrigger = PopoverPrimitive.Trigger;
11
+
12
+ const PopoverAnchor = PopoverPrimitive.Anchor;
13
+
14
+ const PopoverContent = React.forwardRef<
15
+ React.ElementRef<typeof PopoverPrimitive.Content>,
16
+ React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>
17
+ >(({className, align = "center", sideOffset = 4, ...props}, ref) => (
18
+ <PopoverPrimitive.Portal>
19
+ <PopoverPrimitive.Content
20
+ ref={ref}
21
+ align={align}
22
+ sideOffset={sideOffset}
23
+ className={cn(
24
+ "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-[--radix-popover-content-transform-origin] rounded-md border border-neutral-200 bg-white p-4 text-neutral-950 shadow-md outline-none dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50",
25
+ className,
26
+ )}
27
+ {...props}
28
+ />
29
+ </PopoverPrimitive.Portal>
30
+ ));
31
+ PopoverContent.displayName = PopoverPrimitive.Content.displayName;
32
+
33
+ export {Popover, PopoverAnchor, PopoverContent, PopoverTrigger};