@arolariu/components 0.0.35 → 0.0.37

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 (293) hide show
  1. package/changelog.md +13 -0
  2. package/dist/cjs/components/ui/accordion.cjs +1 -1
  3. package/dist/cjs/components/ui/accordion.cjs.map +1 -1
  4. package/dist/cjs/components/ui/alert-dialog.cjs +1 -1
  5. package/dist/cjs/components/ui/alert-dialog.cjs.map +1 -1
  6. package/dist/cjs/components/ui/alert.cjs +1 -1
  7. package/dist/cjs/components/ui/alert.cjs.map +1 -1
  8. package/dist/cjs/components/ui/aspect-ratio.cjs.map +1 -1
  9. package/dist/cjs/components/ui/avatar.cjs.map +1 -1
  10. package/dist/cjs/components/ui/background-beams.cjs +210 -0
  11. package/dist/cjs/components/ui/background-beams.cjs.map +1 -0
  12. package/dist/cjs/components/ui/badge.cjs +1 -1
  13. package/dist/cjs/components/ui/badge.cjs.map +1 -1
  14. package/dist/cjs/components/ui/breadcrumb.cjs.map +1 -1
  15. package/dist/cjs/components/ui/bubble-background.cjs +214 -0
  16. package/dist/cjs/components/ui/bubble-background.cjs.map +1 -0
  17. package/dist/cjs/components/ui/button.cjs +6 -6
  18. package/dist/cjs/components/ui/button.cjs.map +1 -1
  19. package/dist/cjs/components/ui/card.cjs +13 -3
  20. package/dist/cjs/components/ui/card.cjs.map +1 -1
  21. package/dist/cjs/components/ui/carousel.cjs.map +1 -1
  22. package/dist/cjs/components/ui/chart.cjs.map +1 -1
  23. package/dist/cjs/components/ui/checkbox.cjs +1 -1
  24. package/dist/cjs/components/ui/checkbox.cjs.map +1 -1
  25. package/dist/cjs/components/ui/collapsible.cjs +1 -1
  26. package/dist/cjs/components/ui/collapsible.cjs.map +1 -1
  27. package/dist/cjs/components/ui/command.cjs +2 -2
  28. package/dist/cjs/components/ui/command.cjs.map +1 -1
  29. package/dist/cjs/components/ui/context-menu.cjs +7 -7
  30. package/dist/cjs/components/ui/context-menu.cjs.map +1 -1
  31. package/dist/cjs/components/ui/counting-number.cjs +95 -0
  32. package/dist/cjs/components/ui/counting-number.cjs.map +1 -0
  33. package/dist/cjs/components/ui/dialog.cjs +1 -1
  34. package/dist/cjs/components/ui/dialog.cjs.map +1 -1
  35. package/dist/cjs/components/ui/dot-background.cjs +131 -0
  36. package/dist/cjs/components/ui/dot-background.cjs.map +1 -0
  37. package/dist/cjs/components/ui/drawer.cjs +3 -3
  38. package/dist/cjs/components/ui/drawer.cjs.map +1 -1
  39. package/dist/cjs/components/ui/dropdown-menu.cjs +7 -7
  40. package/dist/cjs/components/ui/dropdown-menu.cjs.map +1 -1
  41. package/dist/cjs/components/ui/fireworks-background.cjs +259 -0
  42. package/dist/cjs/components/ui/fireworks-background.cjs.map +1 -0
  43. package/dist/cjs/components/ui/flip-button.cjs +100 -0
  44. package/dist/cjs/components/ui/flip-button.cjs.map +1 -0
  45. package/dist/cjs/components/ui/form.cjs +2 -2
  46. package/dist/cjs/components/ui/form.cjs.map +1 -1
  47. package/dist/cjs/components/ui/gradient-background.cjs +60 -0
  48. package/dist/cjs/components/ui/gradient-background.cjs.map +1 -0
  49. package/dist/cjs/components/ui/gradient-text.cjs +83 -0
  50. package/dist/cjs/components/ui/gradient-text.cjs.map +1 -0
  51. package/dist/cjs/components/ui/highlight-text.cjs +74 -0
  52. package/dist/cjs/components/ui/highlight-text.cjs.map +1 -0
  53. package/dist/cjs/components/ui/hole-background.cjs +361 -0
  54. package/dist/cjs/components/ui/hole-background.cjs.map +1 -0
  55. package/dist/cjs/components/ui/hover-card.cjs +9 -6
  56. package/dist/cjs/components/ui/hover-card.cjs.map +1 -1
  57. package/dist/cjs/components/ui/input-otp.cjs +2 -3
  58. package/dist/cjs/components/ui/input-otp.cjs.map +1 -1
  59. package/dist/cjs/components/ui/input.cjs +1 -1
  60. package/dist/cjs/components/ui/input.cjs.map +1 -1
  61. package/dist/cjs/components/ui/label.cjs.map +1 -1
  62. package/dist/cjs/components/ui/menubar.cjs +9 -9
  63. package/dist/cjs/components/ui/menubar.cjs.map +1 -1
  64. package/dist/cjs/components/ui/navigation-menu.cjs +5 -5
  65. package/dist/cjs/components/ui/navigation-menu.cjs.map +1 -1
  66. package/dist/cjs/components/ui/pagination.cjs.map +1 -1
  67. package/dist/cjs/components/ui/popover.cjs +1 -1
  68. package/dist/cjs/components/ui/popover.cjs.map +1 -1
  69. package/dist/cjs/components/ui/progress.cjs.map +1 -1
  70. package/dist/cjs/components/ui/radio-group.cjs +1 -1
  71. package/dist/cjs/components/ui/radio-group.cjs.map +1 -1
  72. package/dist/cjs/components/ui/resizable.cjs.map +1 -1
  73. package/dist/cjs/components/ui/ripple-button.cjs +108 -0
  74. package/dist/cjs/components/ui/ripple-button.cjs.map +1 -0
  75. package/dist/cjs/components/ui/scratcher.cjs +179 -0
  76. package/dist/cjs/components/ui/scratcher.cjs.map +1 -0
  77. package/dist/cjs/components/ui/scroll-area.cjs +1 -1
  78. package/dist/cjs/components/ui/scroll-area.cjs.map +1 -1
  79. package/dist/cjs/components/ui/select.cjs +6 -5
  80. package/dist/cjs/components/ui/select.cjs.map +1 -1
  81. package/dist/cjs/components/ui/separator.cjs.map +1 -1
  82. package/dist/cjs/components/ui/sheet.cjs +1 -1
  83. package/dist/cjs/components/ui/sheet.cjs.map +1 -1
  84. package/dist/cjs/components/ui/sidebar.cjs +14 -11
  85. package/dist/cjs/components/ui/sidebar.cjs.map +1 -1
  86. package/dist/cjs/components/ui/skeleton.cjs +2 -1
  87. package/dist/cjs/components/ui/skeleton.cjs.map +1 -1
  88. package/dist/cjs/components/ui/slider.cjs +2 -2
  89. package/dist/cjs/components/ui/slider.cjs.map +1 -1
  90. package/dist/cjs/components/ui/sonner.cjs +5 -7
  91. package/dist/cjs/components/ui/sonner.cjs.map +1 -1
  92. package/dist/cjs/components/ui/switch.cjs +2 -2
  93. package/dist/cjs/components/ui/switch.cjs.map +1 -1
  94. package/dist/cjs/components/ui/table.cjs +2 -2
  95. package/dist/cjs/components/ui/table.cjs.map +1 -1
  96. package/dist/cjs/components/ui/tabs.cjs +3 -3
  97. package/dist/cjs/components/ui/tabs.cjs.map +1 -1
  98. package/dist/cjs/components/ui/textarea.cjs +1 -1
  99. package/dist/cjs/components/ui/textarea.cjs.map +1 -1
  100. package/dist/cjs/components/ui/toggle-group.cjs +2 -2
  101. package/dist/cjs/components/ui/toggle-group.cjs.map +1 -1
  102. package/dist/cjs/components/ui/toggle.cjs +2 -2
  103. package/dist/cjs/components/ui/toggle.cjs.map +1 -1
  104. package/dist/cjs/components/ui/tooltip.cjs +1 -1
  105. package/dist/cjs/components/ui/tooltip.cjs.map +1 -1
  106. package/dist/cjs/index.cjs +55 -4
  107. package/dist/cjs/index.css +1013 -258
  108. package/dist/esm/components/ui/accordion.js +1 -1
  109. package/dist/esm/components/ui/accordion.js.map +1 -1
  110. package/dist/esm/components/ui/alert-dialog.js +1 -1
  111. package/dist/esm/components/ui/alert-dialog.js.map +1 -1
  112. package/dist/esm/components/ui/alert.js +1 -1
  113. package/dist/esm/components/ui/alert.js.map +1 -1
  114. package/dist/esm/components/ui/aspect-ratio.js.map +1 -1
  115. package/dist/esm/components/ui/avatar.js.map +1 -1
  116. package/dist/esm/components/ui/background-beams.js +166 -0
  117. package/dist/esm/components/ui/background-beams.js.map +1 -0
  118. package/dist/esm/components/ui/badge.js +1 -1
  119. package/dist/esm/components/ui/badge.js.map +1 -1
  120. package/dist/esm/components/ui/breadcrumb.js.map +1 -1
  121. package/dist/esm/components/ui/bubble-background.js +180 -0
  122. package/dist/esm/components/ui/bubble-background.js.map +1 -0
  123. package/dist/esm/components/ui/button.js +6 -6
  124. package/dist/esm/components/ui/button.js.map +1 -1
  125. package/dist/esm/components/ui/card.js +11 -4
  126. package/dist/esm/components/ui/card.js.map +1 -1
  127. package/dist/esm/components/ui/carousel.js.map +1 -1
  128. package/dist/esm/components/ui/chart.js.map +1 -1
  129. package/dist/esm/components/ui/checkbox.js +1 -1
  130. package/dist/esm/components/ui/checkbox.js.map +1 -1
  131. package/dist/esm/components/ui/collapsible.js +1 -1
  132. package/dist/esm/components/ui/collapsible.js.map +1 -1
  133. package/dist/esm/components/ui/command.js +2 -2
  134. package/dist/esm/components/ui/command.js.map +1 -1
  135. package/dist/esm/components/ui/context-menu.js +7 -7
  136. package/dist/esm/components/ui/context-menu.js.map +1 -1
  137. package/dist/esm/components/ui/counting-number.js +61 -0
  138. package/dist/esm/components/ui/counting-number.js.map +1 -0
  139. package/dist/esm/components/ui/dialog.js +1 -1
  140. package/dist/esm/components/ui/dialog.js.map +1 -1
  141. package/dist/esm/components/ui/dot-background.js +97 -0
  142. package/dist/esm/components/ui/dot-background.js.map +1 -0
  143. package/dist/esm/components/ui/drawer.js +3 -3
  144. package/dist/esm/components/ui/drawer.js.map +1 -1
  145. package/dist/esm/components/ui/dropdown-menu.js +7 -7
  146. package/dist/esm/components/ui/dropdown-menu.js.map +1 -1
  147. package/dist/esm/components/ui/fireworks-background.js +225 -0
  148. package/dist/esm/components/ui/fireworks-background.js.map +1 -0
  149. package/dist/esm/components/ui/flip-button.js +66 -0
  150. package/dist/esm/components/ui/flip-button.js.map +1 -0
  151. package/dist/esm/components/ui/form.js +2 -2
  152. package/dist/esm/components/ui/form.js.map +1 -1
  153. package/dist/esm/components/ui/gradient-background.js +26 -0
  154. package/dist/esm/components/ui/gradient-background.js.map +1 -0
  155. package/dist/esm/components/ui/gradient-text.js +49 -0
  156. package/dist/esm/components/ui/gradient-text.js.map +1 -0
  157. package/dist/esm/components/ui/highlight-text.js +40 -0
  158. package/dist/esm/components/ui/highlight-text.js.map +1 -0
  159. package/dist/esm/components/ui/hole-background.js +327 -0
  160. package/dist/esm/components/ui/hole-background.js.map +1 -0
  161. package/dist/esm/components/ui/hover-card.js +9 -6
  162. package/dist/esm/components/ui/hover-card.js.map +1 -1
  163. package/dist/esm/components/ui/input-otp.js +2 -3
  164. package/dist/esm/components/ui/input-otp.js.map +1 -1
  165. package/dist/esm/components/ui/input.js +1 -1
  166. package/dist/esm/components/ui/input.js.map +1 -1
  167. package/dist/esm/components/ui/label.js.map +1 -1
  168. package/dist/esm/components/ui/menubar.js +9 -9
  169. package/dist/esm/components/ui/menubar.js.map +1 -1
  170. package/dist/esm/components/ui/navigation-menu.js +5 -5
  171. package/dist/esm/components/ui/navigation-menu.js.map +1 -1
  172. package/dist/esm/components/ui/pagination.js.map +1 -1
  173. package/dist/esm/components/ui/popover.js +1 -1
  174. package/dist/esm/components/ui/popover.js.map +1 -1
  175. package/dist/esm/components/ui/progress.js.map +1 -1
  176. package/dist/esm/components/ui/radio-group.js +1 -1
  177. package/dist/esm/components/ui/radio-group.js.map +1 -1
  178. package/dist/esm/components/ui/resizable.js.map +1 -1
  179. package/dist/esm/components/ui/ripple-button.js +74 -0
  180. package/dist/esm/components/ui/ripple-button.js.map +1 -0
  181. package/dist/esm/components/ui/scratcher.js +145 -0
  182. package/dist/esm/components/ui/scratcher.js.map +1 -0
  183. package/dist/esm/components/ui/scroll-area.js +1 -1
  184. package/dist/esm/components/ui/scroll-area.js.map +1 -1
  185. package/dist/esm/components/ui/select.js +6 -5
  186. package/dist/esm/components/ui/select.js.map +1 -1
  187. package/dist/esm/components/ui/separator.js.map +1 -1
  188. package/dist/esm/components/ui/sheet.js +1 -1
  189. package/dist/esm/components/ui/sheet.js.map +1 -1
  190. package/dist/esm/components/ui/sidebar.js +14 -11
  191. package/dist/esm/components/ui/sidebar.js.map +1 -1
  192. package/dist/esm/components/ui/skeleton.js +2 -1
  193. package/dist/esm/components/ui/skeleton.js.map +1 -1
  194. package/dist/esm/components/ui/slider.js +2 -2
  195. package/dist/esm/components/ui/slider.js.map +1 -1
  196. package/dist/esm/components/ui/sonner.js +5 -7
  197. package/dist/esm/components/ui/sonner.js.map +1 -1
  198. package/dist/esm/components/ui/switch.js +2 -2
  199. package/dist/esm/components/ui/switch.js.map +1 -1
  200. package/dist/esm/components/ui/table.js +2 -2
  201. package/dist/esm/components/ui/table.js.map +1 -1
  202. package/dist/esm/components/ui/tabs.js +3 -3
  203. package/dist/esm/components/ui/tabs.js.map +1 -1
  204. package/dist/esm/components/ui/textarea.js +1 -1
  205. package/dist/esm/components/ui/textarea.js.map +1 -1
  206. package/dist/esm/components/ui/toggle-group.js +2 -2
  207. package/dist/esm/components/ui/toggle-group.js.map +1 -1
  208. package/dist/esm/components/ui/toggle.js +2 -2
  209. package/dist/esm/components/ui/toggle.js.map +1 -1
  210. package/dist/esm/components/ui/tooltip.js +1 -1
  211. package/dist/esm/components/ui/tooltip.js.map +1 -1
  212. package/dist/esm/index.css +1013 -258
  213. package/dist/esm/index.js +26 -1
  214. package/dist/index.css +1013 -258
  215. package/dist/index.js +26 -1
  216. package/dist/types/components/ui/background-beams.d.ts +4 -0
  217. package/dist/types/components/ui/bubble-background.d.ts +16 -0
  218. package/dist/types/components/ui/card.d.ts +2 -1
  219. package/dist/types/components/ui/counting-number.d.ts +15 -0
  220. package/dist/types/components/ui/dot-background.d.ts +57 -0
  221. package/dist/types/components/ui/fireworks-background.d.ts +24 -0
  222. package/dist/types/components/ui/flip-button.d.ts +13 -0
  223. package/dist/types/components/ui/form.d.ts +1 -1
  224. package/dist/types/components/ui/gradient-background.d.ts +7 -0
  225. package/dist/types/components/ui/gradient-text.d.ts +10 -0
  226. package/dist/types/components/ui/highlight-text.d.ts +11 -0
  227. package/dist/types/components/ui/hole-background.d.ts +9 -0
  228. package/dist/types/components/ui/ripple-button.d.ts +10 -0
  229. package/dist/types/components/ui/scratcher.d.ts +12 -0
  230. package/dist/types/components/ui/select.d.ts +3 -1
  231. package/dist/types/components/ui/sidebar.d.ts +5 -6
  232. package/dist/types/index.d.ts +13 -1
  233. package/package.json +536 -461
  234. package/readme.md +10 -6
  235. package/src/components/ui/accordion.tsx +3 -2
  236. package/src/components/ui/alert-dialog.tsx +160 -160
  237. package/src/components/ui/alert.tsx +3 -2
  238. package/src/components/ui/aspect-ratio.tsx +12 -12
  239. package/src/components/ui/avatar.tsx +53 -52
  240. package/src/components/ui/background-beams.tsx +142 -0
  241. package/src/components/ui/badge.tsx +48 -47
  242. package/src/components/ui/breadcrumb.tsx +117 -116
  243. package/src/components/ui/bubble-background.tsx +187 -0
  244. package/src/components/ui/button.tsx +61 -60
  245. package/src/components/ui/card.tsx +97 -79
  246. package/src/components/ui/carousel.tsx +241 -240
  247. package/src/components/ui/chart.tsx +353 -352
  248. package/src/components/ui/checkbox.tsx +32 -31
  249. package/src/components/ui/collapsible.tsx +34 -34
  250. package/src/components/ui/command.tsx +177 -176
  251. package/src/components/ui/context-menu.tsx +255 -254
  252. package/src/components/ui/counting-number.tsx +108 -0
  253. package/src/components/ui/dialog.tsx +3 -2
  254. package/src/components/ui/dot-background.tsx +158 -0
  255. package/src/components/ui/drawer.tsx +138 -137
  256. package/src/components/ui/dropdown-menu.tsx +260 -259
  257. package/src/components/ui/fireworks-background.tsx +378 -0
  258. package/src/components/ui/flip-button.tsx +110 -0
  259. package/src/components/ui/form.tsx +174 -173
  260. package/src/components/ui/gradient-background.tsx +43 -0
  261. package/src/components/ui/gradient-text.tsx +65 -0
  262. package/src/components/ui/highlight-text.tsx +71 -0
  263. package/src/components/ui/hole-background.tsx +361 -0
  264. package/src/components/ui/hover-card.tsx +44 -41
  265. package/src/components/ui/input-otp.tsx +77 -77
  266. package/src/components/ui/input.tsx +23 -22
  267. package/src/components/ui/label.tsx +24 -23
  268. package/src/components/ui/menubar.tsx +279 -278
  269. package/src/components/ui/navigation-menu.tsx +171 -170
  270. package/src/components/ui/pagination.tsx +129 -128
  271. package/src/components/ui/popover.tsx +48 -47
  272. package/src/components/ui/progress.tsx +31 -30
  273. package/src/components/ui/radio-group.tsx +45 -44
  274. package/src/components/ui/resizable.tsx +56 -55
  275. package/src/components/ui/ripple-button.tsx +111 -0
  276. package/src/components/ui/scratcher.tsx +171 -0
  277. package/src/components/ui/scroll-area.tsx +58 -57
  278. package/src/components/ui/select.tsx +191 -183
  279. package/src/components/ui/separator.tsx +28 -27
  280. package/src/components/ui/sheet.tsx +145 -144
  281. package/src/components/ui/sidebar.tsx +729 -725
  282. package/src/components/ui/skeleton.tsx +19 -17
  283. package/src/components/ui/slider.tsx +63 -62
  284. package/src/components/ui/sonner.tsx +8 -12
  285. package/src/components/ui/switch.tsx +31 -30
  286. package/src/components/ui/table.tsx +119 -118
  287. package/src/components/ui/tabs.tsx +66 -65
  288. package/src/components/ui/textarea.tsx +20 -19
  289. package/src/components/ui/toggle-group.tsx +73 -72
  290. package/src/components/ui/toggle.tsx +47 -46
  291. package/src/components/ui/tooltip.tsx +61 -60
  292. package/src/index.css +75 -42
  293. package/src/index.ts +385 -330
@@ -1,170 +1,171 @@
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
- import { cn } from "./../../lib/utils";
8
-
9
- function NavigationMenu({
10
- className,
11
- children,
12
- viewport = true,
13
- ...props
14
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {
15
- viewport?: boolean;
16
- }) {
17
- return (
18
- <NavigationMenuPrimitive.Root
19
- data-slot="navigation-menu"
20
- data-viewport={viewport}
21
- className={cn(
22
- "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
23
- className
24
- )}
25
- {...props}
26
- >
27
- {children}
28
- {viewport && <NavigationMenuViewport />}
29
- </NavigationMenuPrimitive.Root>
30
- );
31
- }
32
-
33
- function NavigationMenuList({
34
- className,
35
- ...props
36
- }: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {
37
- return (
38
- <NavigationMenuPrimitive.List
39
- data-slot="navigation-menu-list"
40
- className={cn(
41
- "group flex flex-1 list-none items-center justify-center gap-1",
42
- className
43
- )}
44
- {...props}
45
- />
46
- );
47
- }
48
-
49
- function NavigationMenuItem({
50
- className,
51
- ...props
52
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {
53
- return (
54
- <NavigationMenuPrimitive.Item
55
- data-slot="navigation-menu-item"
56
- className={cn("relative", className)}
57
- {...props}
58
- />
59
- );
60
- }
61
-
62
- const navigationMenuTriggerStyle = cva(
63
- "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-[active=true]:bg-neutral-100/50 data-[state=open]:bg-neutral-100/50 data-[active=true]:text-neutral-900 ring-neutral-950/10 dark:ring-neutral-950/20 dark:outline-ring/40 outline-ring/50 transition-[color,box-shadow] focus-visible:ring-4 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-[active=true]:bg-neutral-800/50 dark:data-[state=open]:bg-neutral-800/50 dark:data-[active=true]:text-neutral-50 dark:ring-neutral-300/10 dark:dark:ring-neutral-300/20"
64
- );
65
-
66
- function NavigationMenuTrigger({
67
- className,
68
- children,
69
- ...props
70
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {
71
- return (
72
- <NavigationMenuPrimitive.Trigger
73
- data-slot="navigation-menu-trigger"
74
- className={cn(navigationMenuTriggerStyle(), "group", className)}
75
- {...props}
76
- >
77
- {children}
78
- {""}
79
- <ChevronDownIcon
80
- className="relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180"
81
- aria-hidden="true"
82
- />
83
- </NavigationMenuPrimitive.Trigger>
84
- );
85
- }
86
-
87
- function NavigationMenuContent({
88
- className,
89
- ...props
90
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {
91
- return (
92
- <NavigationMenuPrimitive.Content
93
- data-slot="navigation-menu-content"
94
- className={cn(
95
- "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",
96
- "group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground data-[state=open]:group-data-[viewport=false]/navigation-menu:animate-in data-[state=closed]:group-data-[viewport=false]/navigation-menu: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-sm group-data-[viewport=false]/navigation-menu:duration-200 focus:data-[slot=navigation-menu-link]:**:ring-0 focus:data-[slot=navigation-menu-link]:**:outline-hidden",
97
- className
98
- )}
99
- {...props}
100
- />
101
- );
102
- }
103
-
104
- function NavigationMenuViewport({
105
- className,
106
- ...props
107
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {
108
- return (
109
- <div
110
- className={cn(
111
- "absolute top-full left-0 isolate z-50 flex justify-center"
112
- )}
113
- >
114
- <NavigationMenuPrimitive.Viewport
115
- data-slot="navigation-menu-viewport"
116
- className={cn(
117
- "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-sm md:w-[var(--radix-navigation-menu-viewport-width)] dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800",
118
- className
119
- )}
120
- {...props}
121
- />
122
- </div>
123
- );
124
- }
125
-
126
- function NavigationMenuLink({
127
- className,
128
- ...props
129
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {
130
- return (
131
- <NavigationMenuPrimitive.Link
132
- data-slot="navigation-menu-link"
133
- className={cn(
134
- "hover:bg-neutral-100 hover:text-neutral-900 focus:bg-neutral-100 focus:text-neutral-900 data-[active=true]:bg-neutral-100/50 data-[active=true]:text-neutral-900 ring-neutral-950/10 dark:ring-neutral-950/20 dark:outline-ring/40 outline-ring/50 [&_svg:not([class*='text-'])]:text-neutral-500 flex flex-col gap-1 rounded-xs p-2 text-sm transition-[color,box-shadow] focus-visible:ring-4 focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4 dark:hover:bg-neutral-800 dark:hover:text-neutral-50 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[active=true]:bg-neutral-800/50 dark:data-[active=true]:text-neutral-50 dark:ring-neutral-300/10 dark:dark:ring-neutral-300/20 dark:[&_svg:not([class*='text-'])]:text-neutral-400",
135
- className
136
- )}
137
- {...props}
138
- />
139
- );
140
- }
141
-
142
- function NavigationMenuIndicator({
143
- className,
144
- ...props
145
- }: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {
146
- return (
147
- <NavigationMenuPrimitive.Indicator
148
- data-slot="navigation-menu-indicator"
149
- className={cn(
150
- "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",
151
- className
152
- )}
153
- {...props}
154
- >
155
- <div className="bg-neutral-200 relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm shadow-md dark:bg-neutral-800" />
156
- </NavigationMenuPrimitive.Indicator>
157
- );
158
- }
159
-
160
- export {
161
- NavigationMenu,
162
- NavigationMenuList,
163
- NavigationMenuItem,
164
- NavigationMenuContent,
165
- NavigationMenuTrigger,
166
- NavigationMenuLink,
167
- NavigationMenuIndicator,
168
- NavigationMenuViewport,
169
- navigationMenuTriggerStyle,
170
- };
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,128 +1,129 @@
1
- "use client";
2
-
3
- import * as React from "react";
4
- import {
5
- ChevronLeftIcon,
6
- ChevronRightIcon,
7
- MoreHorizontalIcon,
8
- } from "lucide-react";
9
- import { cn } from "./../../lib/utils";
10
- import { Button, buttonVariants } from "./button";
11
-
12
- function Pagination({ className, ...props }: React.ComponentProps<"nav">) {
13
- return (
14
- <nav
15
- role="navigation"
16
- aria-label="pagination"
17
- data-slot="pagination"
18
- className={cn("mx-auto flex w-full justify-center", className)}
19
- {...props}
20
- />
21
- );
22
- }
23
-
24
- function PaginationContent({
25
- className,
26
- ...props
27
- }: React.ComponentProps<"ul">) {
28
- return (
29
- <ul
30
- data-slot="pagination-content"
31
- className={cn("flex flex-row items-center gap-1", className)}
32
- {...props}
33
- />
34
- );
35
- }
36
-
37
- function PaginationItem({ ...props }: React.ComponentProps<"li">) {
38
- return <li data-slot="pagination-item" {...props} />;
39
- }
40
-
41
- type PaginationLinkProps = {
42
- isActive?: boolean;
43
- } & Pick<React.ComponentProps<typeof Button>, "size"> &
44
- React.ComponentProps<"a">;
45
-
46
- function PaginationLink({
47
- className,
48
- isActive,
49
- size = "icon",
50
- ...props
51
- }: PaginationLinkProps) {
52
- return (
53
- <a
54
- aria-current={isActive ? "page" : undefined}
55
- data-slot="pagination-link"
56
- data-active={isActive}
57
- className={cn(
58
- buttonVariants({
59
- variant: isActive ? "outline" : "ghost",
60
- size,
61
- }),
62
- className
63
- )}
64
- {...props}
65
- />
66
- );
67
- }
68
-
69
- function PaginationPrevious({
70
- className,
71
- ...props
72
- }: React.ComponentProps<typeof PaginationLink>) {
73
- return (
74
- <PaginationLink
75
- aria-label="Go to previous page"
76
- size="default"
77
- className={cn("gap-1 px-2.5 sm:pl-2.5", className)}
78
- {...props}
79
- >
80
- <ChevronLeftIcon />
81
- <span className="hidden sm:block">Previous</span>
82
- </PaginationLink>
83
- );
84
- }
85
-
86
- function PaginationNext({
87
- className,
88
- ...props
89
- }: React.ComponentProps<typeof PaginationLink>) {
90
- return (
91
- <PaginationLink
92
- aria-label="Go to next page"
93
- size="default"
94
- className={cn("gap-1 px-2.5 sm:pr-2.5", className)}
95
- {...props}
96
- >
97
- <span className="hidden sm:block">Next</span>
98
- <ChevronRightIcon />
99
- </PaginationLink>
100
- );
101
- }
102
-
103
- function PaginationEllipsis({
104
- className,
105
- ...props
106
- }: React.ComponentProps<"span">) {
107
- return (
108
- <span
109
- aria-hidden
110
- data-slot="pagination-ellipsis"
111
- className={cn("flex size-9 items-center justify-center", className)}
112
- {...props}
113
- >
114
- <MoreHorizontalIcon className="size-4" />
115
- <span className="sr-only">More pages</span>
116
- </span>
117
- );
118
- }
119
-
120
- export {
121
- Pagination,
122
- PaginationContent,
123
- PaginationLink,
124
- PaginationItem,
125
- PaginationPrevious,
126
- PaginationNext,
127
- PaginationEllipsis,
128
- };
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
+ };