@codefast/ui 0.0.65 → 0.0.67

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 (327) hide show
  1. package/dist/{chunk-ZMF2SRE5.js → chunk-26W5NJTU.js} +1 -1
  2. package/dist/chunk-26W5NJTU.js.map +1 -0
  3. package/dist/chunk-3COHZ24E.cjs +2 -0
  4. package/dist/chunk-3COHZ24E.cjs.map +1 -0
  5. package/dist/{chunk-QEWITXOV.cjs → chunk-4MTN7WZ2.cjs} +1 -1
  6. package/dist/chunk-4MTN7WZ2.cjs.map +1 -0
  7. package/dist/chunk-5QETIFO4.js +2 -0
  8. package/dist/chunk-5QETIFO4.js.map +1 -0
  9. package/dist/{chunk-WECV77JD.cjs → chunk-5RJANBDJ.cjs} +1 -1
  10. package/dist/chunk-5RJANBDJ.cjs.map +1 -0
  11. package/dist/chunk-6UQKMUZG.cjs +2 -0
  12. package/dist/chunk-6UQKMUZG.cjs.map +1 -0
  13. package/dist/chunk-AVEDWLNQ.js +2 -0
  14. package/dist/chunk-AVEDWLNQ.js.map +1 -0
  15. package/dist/{chunk-YLE5XFEO.cjs → chunk-EW7DAPDC.cjs} +1 -1
  16. package/dist/chunk-EW7DAPDC.cjs.map +1 -0
  17. package/dist/{chunk-RSNKUKY7.js → chunk-HDHZESSG.js} +1 -1
  18. package/dist/chunk-HDHZESSG.js.map +1 -0
  19. package/dist/{chunk-GCHNSK5O.cjs → chunk-JMM2MTPI.cjs} +1 -1
  20. package/dist/chunk-JMM2MTPI.cjs.map +1 -0
  21. package/dist/{chunk-WRO3QIWH.js → chunk-JNOLIDCD.js} +1 -1
  22. package/dist/chunk-JNOLIDCD.js.map +1 -0
  23. package/dist/{chunk-F5TIIJJJ.cjs → chunk-LOJBMYTH.cjs} +1 -1
  24. package/dist/chunk-LOJBMYTH.cjs.map +1 -0
  25. package/dist/{chunk-A5ILA637.js → chunk-RBP4PBCK.js} +1 -1
  26. package/dist/chunk-RBP4PBCK.js.map +1 -0
  27. package/dist/{chunk-L7IASKCH.js → chunk-RVGKUNXC.js} +1 -1
  28. package/dist/{chunk-L7IASKCH.js.map → chunk-RVGKUNXC.js.map} +1 -1
  29. package/dist/{chunk-72NPDP3X.cjs → chunk-T3G5USVY.cjs} +1 -1
  30. package/dist/chunk-T3G5USVY.cjs.map +1 -0
  31. package/dist/chunk-VDVLCSO4.js +2 -0
  32. package/dist/chunk-VDVLCSO4.js.map +1 -0
  33. package/dist/{chunk-2OBTJ7SD.cjs → chunk-WKKCZQNO.cjs} +2 -2
  34. package/dist/chunk-WKKCZQNO.cjs.map +1 -0
  35. package/dist/{chunk-FNQFZJUG.js → chunk-WQFHFTYS.js} +1 -1
  36. package/dist/chunk-WQFHFTYS.js.map +1 -0
  37. package/dist/react/accordion.cjs.map +1 -1
  38. package/dist/react/accordion.js.map +1 -1
  39. package/dist/react/alert-dialog.cjs +1 -1
  40. package/dist/react/alert-dialog.cjs.map +1 -1
  41. package/dist/react/alert-dialog.js +1 -1
  42. package/dist/react/alert-dialog.js.map +1 -1
  43. package/dist/react/alert.cjs.map +1 -1
  44. package/dist/react/alert.js.map +1 -1
  45. package/dist/react/avatar.cjs.map +1 -1
  46. package/dist/react/avatar.js.map +1 -1
  47. package/dist/react/blockquote.cjs.map +1 -1
  48. package/dist/react/blockquote.js.map +1 -1
  49. package/dist/react/box.cjs.map +1 -1
  50. package/dist/react/box.js.map +1 -1
  51. package/dist/react/breadcrumb.cjs.map +1 -1
  52. package/dist/react/breadcrumb.js.map +1 -1
  53. package/dist/react/button.cjs +1 -1
  54. package/dist/react/button.js +1 -1
  55. package/dist/react/calendar.cjs +1 -1
  56. package/dist/react/calendar.js +1 -1
  57. package/dist/react/card.cjs.map +1 -1
  58. package/dist/react/card.js.map +1 -1
  59. package/dist/react/carousel.cjs +1 -1
  60. package/dist/react/carousel.cjs.map +1 -1
  61. package/dist/react/carousel.js +1 -1
  62. package/dist/react/carousel.js.map +1 -1
  63. package/dist/react/checkbox-cards.cjs +1 -1
  64. package/dist/react/checkbox-cards.cjs.map +1 -1
  65. package/dist/react/checkbox-cards.js +1 -1
  66. package/dist/react/checkbox-cards.js.map +1 -1
  67. package/dist/react/checkbox-group.cjs +1 -1
  68. package/dist/react/checkbox-group.cjs.map +1 -1
  69. package/dist/react/checkbox-group.js +1 -1
  70. package/dist/react/checkbox-group.js.map +1 -1
  71. package/dist/react/checkbox-group.primitive.cjs +1 -1
  72. package/dist/react/checkbox-group.primitive.js +1 -1
  73. package/dist/react/checkbox.cjs +1 -1
  74. package/dist/react/checkbox.cjs.map +1 -1
  75. package/dist/react/checkbox.js +1 -1
  76. package/dist/react/checkbox.js.map +1 -1
  77. package/dist/react/code.cjs.map +1 -1
  78. package/dist/react/code.js.map +1 -1
  79. package/dist/react/collapsible.cjs.map +1 -1
  80. package/dist/react/collapsible.js.map +1 -1
  81. package/dist/react/command.cjs +1 -1
  82. package/dist/react/command.cjs.map +1 -1
  83. package/dist/react/command.js +1 -1
  84. package/dist/react/command.js.map +1 -1
  85. package/dist/react/container.cjs.map +1 -1
  86. package/dist/react/container.js.map +1 -1
  87. package/dist/react/context-menu.cjs.map +1 -1
  88. package/dist/react/context-menu.js.map +1 -1
  89. package/dist/react/data-table.cjs +1 -1
  90. package/dist/react/data-table.js +1 -1
  91. package/dist/react/dialog.cjs +1 -1
  92. package/dist/react/dialog.js +1 -1
  93. package/dist/react/drawer.cjs.map +1 -1
  94. package/dist/react/drawer.js.map +1 -1
  95. package/dist/react/dropdown-menu.cjs +1 -1
  96. package/dist/react/dropdown-menu.js +1 -1
  97. package/dist/react/em.cjs.map +1 -1
  98. package/dist/react/em.js.map +1 -1
  99. package/dist/react/form.cjs +1 -1
  100. package/dist/react/form.cjs.map +1 -1
  101. package/dist/react/form.js +1 -1
  102. package/dist/react/form.js.map +1 -1
  103. package/dist/react/heading.cjs.map +1 -1
  104. package/dist/react/heading.js.map +1 -1
  105. package/dist/react/hover-card.cjs.map +1 -1
  106. package/dist/react/hover-card.js.map +1 -1
  107. package/dist/react/input-otp.cjs +1 -1
  108. package/dist/react/input-otp.cjs.map +1 -1
  109. package/dist/react/input-otp.js +1 -1
  110. package/dist/react/input-otp.js.map +1 -1
  111. package/dist/react/input.cjs +1 -1
  112. package/dist/react/input.cjs.map +1 -1
  113. package/dist/react/input.d.cts +113 -34
  114. package/dist/react/input.d.ts +113 -34
  115. package/dist/react/input.js +1 -1
  116. package/dist/react/input.js.map +1 -1
  117. package/dist/react/kbd.cjs.map +1 -1
  118. package/dist/react/kbd.js.map +1 -1
  119. package/dist/react/label.cjs +1 -1
  120. package/dist/react/label.js +1 -1
  121. package/dist/react/menubar.cjs.map +1 -1
  122. package/dist/react/menubar.js.map +1 -1
  123. package/dist/react/navigation-menu.cjs.map +1 -1
  124. package/dist/react/navigation-menu.js.map +1 -1
  125. package/dist/react/pagination.cjs +1 -1
  126. package/dist/react/pagination.cjs.map +1 -1
  127. package/dist/react/pagination.js +1 -1
  128. package/dist/react/pagination.js.map +1 -1
  129. package/dist/react/popover.cjs.map +1 -1
  130. package/dist/react/popover.js.map +1 -1
  131. package/dist/react/pre.cjs.map +1 -1
  132. package/dist/react/pre.js.map +1 -1
  133. package/dist/react/progress.cjs.map +1 -1
  134. package/dist/react/progress.js.map +1 -1
  135. package/dist/react/quote.cjs.map +1 -1
  136. package/dist/react/quote.js.map +1 -1
  137. package/dist/react/radio-cards.cjs +1 -1
  138. package/dist/react/radio-cards.cjs.map +1 -1
  139. package/dist/react/radio-cards.js +1 -1
  140. package/dist/react/radio-cards.js.map +1 -1
  141. package/dist/react/radio-group.cjs.map +1 -1
  142. package/dist/react/radio-group.js.map +1 -1
  143. package/dist/react/radio.cjs.map +1 -1
  144. package/dist/react/radio.js.map +1 -1
  145. package/dist/react/scroll-area.cjs.map +1 -1
  146. package/dist/react/scroll-area.js.map +1 -1
  147. package/dist/react/section.cjs.map +1 -1
  148. package/dist/react/section.js.map +1 -1
  149. package/dist/react/select.cjs +1 -1
  150. package/dist/react/select.js +1 -1
  151. package/dist/react/separator.cjs.map +1 -1
  152. package/dist/react/separator.js.map +1 -1
  153. package/dist/react/sheet.cjs.map +1 -1
  154. package/dist/react/sheet.js.map +1 -1
  155. package/dist/react/slider.cjs.map +1 -1
  156. package/dist/react/slider.js.map +1 -1
  157. package/dist/react/spinner.cjs +1 -1
  158. package/dist/react/spinner.js +1 -1
  159. package/dist/react/strong.cjs.map +1 -1
  160. package/dist/react/strong.js.map +1 -1
  161. package/dist/react/switch.cjs +1 -1
  162. package/dist/react/switch.cjs.map +1 -1
  163. package/dist/react/switch.js +1 -1
  164. package/dist/react/switch.js.map +1 -1
  165. package/dist/react/table.cjs.map +1 -1
  166. package/dist/react/table.js.map +1 -1
  167. package/dist/react/tabs.cjs.map +1 -1
  168. package/dist/react/tabs.js.map +1 -1
  169. package/dist/react/text-input.cjs +2 -0
  170. package/dist/react/text-input.cjs.map +1 -0
  171. package/dist/react/text-input.d.cts +11 -0
  172. package/dist/react/text-input.d.ts +11 -0
  173. package/dist/react/text-input.js +2 -0
  174. package/dist/react/text-input.js.map +1 -0
  175. package/dist/react/text.cjs.map +1 -1
  176. package/dist/react/text.js.map +1 -1
  177. package/dist/react/textarea.cjs +1 -1
  178. package/dist/react/textarea.cjs.map +1 -1
  179. package/dist/react/textarea.js +1 -1
  180. package/dist/react/textarea.js.map +1 -1
  181. package/dist/react/toggle-group.cjs +1 -1
  182. package/dist/react/toggle-group.cjs.map +1 -1
  183. package/dist/react/toggle-group.js +1 -1
  184. package/dist/react/toggle-group.js.map +1 -1
  185. package/dist/react/toggle.cjs +1 -1
  186. package/dist/react/toggle.js +1 -1
  187. package/dist/react/tooltip.cjs.map +1 -1
  188. package/dist/react/tooltip.js.map +1 -1
  189. package/dist/styles.css +1 -1
  190. package/dist/styles.css.map +1 -1
  191. package/package.json +76 -102
  192. package/dist/chunk-2OBTJ7SD.cjs.map +0 -1
  193. package/dist/chunk-3OEPCFBF.cjs +0 -2
  194. package/dist/chunk-3OEPCFBF.cjs.map +0 -1
  195. package/dist/chunk-6AFJCDFU.js +0 -2
  196. package/dist/chunk-6AFJCDFU.js.map +0 -1
  197. package/dist/chunk-72NPDP3X.cjs.map +0 -1
  198. package/dist/chunk-7CHCTEST.js +0 -2
  199. package/dist/chunk-7CHCTEST.js.map +0 -1
  200. package/dist/chunk-A5ILA637.js.map +0 -1
  201. package/dist/chunk-DH3YP4ZC.cjs +0 -2
  202. package/dist/chunk-DH3YP4ZC.cjs.map +0 -1
  203. package/dist/chunk-DTSAQICV.js +0 -2
  204. package/dist/chunk-DTSAQICV.js.map +0 -1
  205. package/dist/chunk-F5TIIJJJ.cjs.map +0 -1
  206. package/dist/chunk-FNQFZJUG.js.map +0 -1
  207. package/dist/chunk-GCHNSK5O.cjs.map +0 -1
  208. package/dist/chunk-NH6X3FON.js +0 -2
  209. package/dist/chunk-NH6X3FON.js.map +0 -1
  210. package/dist/chunk-P563ILDJ.cjs +0 -2
  211. package/dist/chunk-P563ILDJ.cjs.map +0 -1
  212. package/dist/chunk-QEWITXOV.cjs.map +0 -1
  213. package/dist/chunk-RSNKUKY7.js.map +0 -1
  214. package/dist/chunk-VVA2EE5V.js +0 -2
  215. package/dist/chunk-VVA2EE5V.js.map +0 -1
  216. package/dist/chunk-VZ6P3BCB.cjs +0 -2
  217. package/dist/chunk-VZ6P3BCB.cjs.map +0 -1
  218. package/dist/chunk-WECV77JD.cjs.map +0 -1
  219. package/dist/chunk-WRO3QIWH.js.map +0 -1
  220. package/dist/chunk-YLE5XFEO.cjs.map +0 -1
  221. package/dist/chunk-ZMF2SRE5.js.map +0 -1
  222. package/dist/hooks/use-media-query.cjs +0 -2
  223. package/dist/hooks/use-media-query.cjs.map +0 -1
  224. package/dist/hooks/use-media-query.d.cts +0 -3
  225. package/dist/hooks/use-media-query.d.ts +0 -3
  226. package/dist/hooks/use-media-query.js +0 -2
  227. package/dist/hooks/use-media-query.js.map +0 -1
  228. package/dist/hooks/use-mutation-observer.cjs +0 -2
  229. package/dist/hooks/use-mutation-observer.cjs.map +0 -1
  230. package/dist/hooks/use-mutation-observer.d.cts +0 -5
  231. package/dist/hooks/use-mutation-observer.d.ts +0 -5
  232. package/dist/hooks/use-mutation-observer.js +0 -2
  233. package/dist/hooks/use-mutation-observer.js.map +0 -1
  234. package/dist/lib/colors.cjs +0 -2
  235. package/dist/lib/colors.cjs.map +0 -1
  236. package/dist/lib/colors.d.cts +0 -1759
  237. package/dist/lib/colors.d.ts +0 -1759
  238. package/dist/lib/colors.js +0 -2
  239. package/dist/lib/colors.js.map +0 -1
  240. package/dist/plugin/animate.plugin.cjs +0 -2
  241. package/dist/plugin/animate.plugin.cjs.map +0 -1
  242. package/dist/plugin/animate.plugin.js +0 -2
  243. package/dist/plugin/animate.plugin.js.map +0 -1
  244. package/dist/plugin/base.plugin.cjs +0 -2
  245. package/dist/plugin/base.plugin.cjs.map +0 -1
  246. package/dist/plugin/base.plugin.js +0 -2
  247. package/dist/plugin/base.plugin.js.map +0 -1
  248. package/dist/plugin/perspective.plugin.cjs +0 -2
  249. package/dist/plugin/perspective.plugin.cjs.map +0 -1
  250. package/dist/plugin/perspective.plugin.js +0 -2
  251. package/dist/plugin/perspective.plugin.js.map +0 -1
  252. package/dist/tailwind.config.cjs +0 -2
  253. package/dist/tailwind.config.cjs.map +0 -1
  254. package/dist/tailwind.config.js +0 -2
  255. package/dist/tailwind.config.js.map +0 -1
  256. package/plugin/animate.plugin.ts +0 -319
  257. package/plugin/base.plugin.ts +0 -21
  258. package/plugin/perspective.plugin.ts +0 -11
  259. package/src/hooks/use-media-query.ts +0 -22
  260. package/src/hooks/use-mutation-observer.ts +0 -26
  261. package/src/lib/colors.ts +0 -1757
  262. package/src/lib/utils.ts +0 -6
  263. package/src/react/accordion.tsx +0 -86
  264. package/src/react/alert-dialog.tsx +0 -177
  265. package/src/react/alert.tsx +0 -71
  266. package/src/react/aspect-ratio.tsx +0 -17
  267. package/src/react/avatar.tsx +0 -58
  268. package/src/react/badge.tsx +0 -39
  269. package/src/react/blockquote.tsx +0 -26
  270. package/src/react/box.tsx +0 -34
  271. package/src/react/breadcrumb.tsx +0 -148
  272. package/src/react/button.tsx +0 -95
  273. package/src/react/calendar.tsx +0 -79
  274. package/src/react/card.tsx +0 -103
  275. package/src/react/carousel.tsx +0 -299
  276. package/src/react/checkbox-cards.tsx +0 -59
  277. package/src/react/checkbox-group.primitive.tsx +0 -200
  278. package/src/react/checkbox-group.tsx +0 -53
  279. package/src/react/checkbox.tsx +0 -36
  280. package/src/react/code.tsx +0 -26
  281. package/src/react/collapsible.tsx +0 -54
  282. package/src/react/command.tsx +0 -199
  283. package/src/react/container.tsx +0 -27
  284. package/src/react/context-menu.tsx +0 -302
  285. package/src/react/data-table.tsx +0 -249
  286. package/src/react/dialog.tsx +0 -156
  287. package/src/react/drawer.tsx +0 -132
  288. package/src/react/dropdown-menu.tsx +0 -286
  289. package/src/react/em.tsx +0 -26
  290. package/src/react/form.tsx +0 -218
  291. package/src/react/heading.tsx +0 -27
  292. package/src/react/hover-card.tsx +0 -73
  293. package/src/react/input-otp.tsx +0 -114
  294. package/src/react/input.tsx +0 -42
  295. package/src/react/kbd.tsx +0 -36
  296. package/src/react/label.tsx +0 -31
  297. package/src/react/menubar.tsx +0 -316
  298. package/src/react/navigation-menu.tsx +0 -192
  299. package/src/react/pagination.tsx +0 -150
  300. package/src/react/popover.tsx +0 -82
  301. package/src/react/pre.tsx +0 -26
  302. package/src/react/progress.tsx +0 -35
  303. package/src/react/quote.tsx +0 -26
  304. package/src/react/radio-cards.tsx +0 -46
  305. package/src/react/radio-group.tsx +0 -48
  306. package/src/react/radio.tsx +0 -38
  307. package/src/react/resizable.tsx +0 -62
  308. package/src/react/scroll-area.tsx +0 -106
  309. package/src/react/section.tsx +0 -26
  310. package/src/react/select.tsx +0 -217
  311. package/src/react/separator.tsx +0 -32
  312. package/src/react/sheet.tsx +0 -170
  313. package/src/react/skeleton.tsx +0 -18
  314. package/src/react/slider.tsx +0 -41
  315. package/src/react/sonner.tsx +0 -40
  316. package/src/react/spinner.tsx +0 -68
  317. package/src/react/strong.tsx +0 -26
  318. package/src/react/switch.tsx +0 -33
  319. package/src/react/table.tsx +0 -142
  320. package/src/react/tabs.tsx +0 -87
  321. package/src/react/text.tsx +0 -34
  322. package/src/react/textarea.tsx +0 -30
  323. package/src/react/toggle-group.tsx +0 -81
  324. package/src/react/toggle.tsx +0 -49
  325. package/src/react/tooltip.tsx +0 -81
  326. package/src/styles/styles.css +0 -3
  327. package/tailwind.config.ts +0 -126
@@ -1,302 +0,0 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
- import * as ContextMenuPrimitive from '@radix-ui/react-context-menu';
5
- import { CheckIcon, ChevronRightIcon, DotFilledIcon } from '@radix-ui/react-icons';
6
- import { cn } from '../lib/utils';
7
-
8
- /* -----------------------------------------------------------------------------
9
- * Component: ContextMenu
10
- * -------------------------------------------------------------------------- */
11
-
12
- type ContextMenuProps = React.ComponentProps<typeof ContextMenuPrimitive.Root>;
13
- const ContextMenu = ContextMenuPrimitive.Root;
14
-
15
- /* -----------------------------------------------------------------------------
16
- * Component: ContextMenuTrigger
17
- * -------------------------------------------------------------------------- */
18
-
19
- type ContextMenuTriggerProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Trigger>;
20
- const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
21
-
22
- /* -----------------------------------------------------------------------------
23
- * Component: ContextMenuGroup
24
- * -------------------------------------------------------------------------- */
25
-
26
- type ContextMenuGroupProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Group>;
27
- const ContextMenuGroup = ContextMenuPrimitive.Group;
28
-
29
- /* -----------------------------------------------------------------------------
30
- * Component: ContextMenuSub
31
- * -------------------------------------------------------------------------- */
32
-
33
- type ContextMenuSubProps = React.ComponentProps<typeof ContextMenuPrimitive.Sub>;
34
- const ContextMenuSub = ContextMenuPrimitive.Sub;
35
-
36
- /* -----------------------------------------------------------------------------
37
- * Component: ContextMenuRadioGroup
38
- * -------------------------------------------------------------------------- */
39
-
40
- type ContextMenuRadioGroupProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioGroup>;
41
- const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
42
-
43
- /* -----------------------------------------------------------------------------
44
- * Component: ContextMenuSubTrigger
45
- * -------------------------------------------------------------------------- */
46
-
47
- type ContextMenuSubTriggerElement = React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>;
48
-
49
- interface ContextMenuSubTriggerProps extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> {
50
- inset?: boolean;
51
- }
52
-
53
- const ContextMenuSubTrigger = React.forwardRef<ContextMenuSubTriggerElement, ContextMenuSubTriggerProps>(
54
- ({ children, className, inset, ...props }, ref) => (
55
- <ContextMenuPrimitive.SubTrigger
56
- ref={ref}
57
- className={cn(
58
- 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm focus:outline-none',
59
- inset && 'pl-8',
60
- className,
61
- )}
62
- {...props}
63
- >
64
- {children}
65
- <ChevronRightIcon className="ml-auto size-4" />
66
- </ContextMenuPrimitive.SubTrigger>
67
- ),
68
- );
69
-
70
- ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
71
-
72
- /* -----------------------------------------------------------------------------
73
- * Component: ContextMenuSubContent
74
- * -------------------------------------------------------------------------- */
75
-
76
- type ContextMenuSubContentElement = React.ElementRef<typeof ContextMenuPrimitive.SubContent>;
77
- type ContextMenuSubContentProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>;
78
-
79
- const ContextMenuSubContent = React.forwardRef<ContextMenuSubContentElement, ContextMenuSubContentProps>(
80
- ({ className, ...props }, ref) => (
81
- <ContextMenuPrimitive.Portal>
82
- <ContextMenuPrimitive.SubContent
83
- ref={ref}
84
- className={cn(
85
- 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in data-[state=open]:zoom-in-95 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=closed]:zoom-out-95 data-[state=closed]:data-[side=top]:slide-out-to-bottom-2 data-[state=closed]:data-[side=right]:slide-out-to-left-2 data-[state=closed]:data-[side=bottom]:slide-out-to-top-2 data-[state=closed]:data-[side=left]:slide-out-to-right-2 z-50 min-w-32 rounded-md border p-1 shadow-md',
86
- className,
87
- )}
88
- {...props}
89
- />
90
- </ContextMenuPrimitive.Portal>
91
- ),
92
- );
93
-
94
- ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
95
-
96
- /* -----------------------------------------------------------------------------
97
- * Component: ContextMenuContent
98
- * -------------------------------------------------------------------------- */
99
-
100
- type ContextMenuContentElement = React.ElementRef<typeof ContextMenuPrimitive.Content>;
101
- type ContextMenuContentProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>;
102
-
103
- const ContextMenuContent = React.forwardRef<ContextMenuContentElement, ContextMenuContentProps>(
104
- ({ className, ...props }, ref) => (
105
- <ContextMenuPrimitive.Portal>
106
- <ContextMenuPrimitive.Content
107
- ref={ref}
108
- className={cn(
109
- 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=open]:fade-in data-[state=open]:zoom-in-95 data-[state=open]:data-[side=top]:slide-in-from-bottom-2 data-[state=open]:data-[side=right]:slide-in-from-left-2 data-[state=open]:data-[side=bottom]:slide-in-from-top-2 data-[state=open]:data-[side=left]:slide-in-from-right-2 z-50 min-w-32 rounded-md border p-1 shadow-md',
110
- className,
111
- )}
112
- {...props}
113
- />
114
- </ContextMenuPrimitive.Portal>
115
- ),
116
- );
117
-
118
- ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
119
-
120
- /* -----------------------------------------------------------------------------
121
- * Component: ContextMenuItem
122
- * -------------------------------------------------------------------------- */
123
-
124
- type ContextMenuItemElement = React.ElementRef<typeof ContextMenuPrimitive.Item>;
125
-
126
- interface ContextMenuItemProps extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> {
127
- inset?: boolean;
128
- }
129
-
130
- const ContextMenuItem = React.forwardRef<ContextMenuItemElement, ContextMenuItemProps>(
131
- ({ className, inset, ...props }, ref) => (
132
- <ContextMenuPrimitive.Item
133
- ref={ref}
134
- className={cn(
135
- 'focus:bg-accent focus:text-accent-foreground relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm focus:outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50',
136
- inset && 'pl-8',
137
- className,
138
- )}
139
- {...props}
140
- />
141
- ),
142
- );
143
-
144
- ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
145
-
146
- /* -----------------------------------------------------------------------------
147
- * Component: ContextMenuCheckboxItem
148
- * -------------------------------------------------------------------------- */
149
-
150
- type ContextMenuCheckboxItemElement = React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>;
151
- type ContextMenuCheckboxItemProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>;
152
-
153
- const ContextMenuCheckboxItem = React.forwardRef<ContextMenuCheckboxItemElement, ContextMenuCheckboxItemProps>(
154
- ({ children, className, checked, ...props }, ref) => (
155
- <ContextMenuPrimitive.CheckboxItem
156
- ref={ref}
157
- checked={checked}
158
- className={cn(
159
- 'focus:bg-accent focus:text-accent-foreground relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm focus:outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50',
160
- className,
161
- )}
162
- {...props}
163
- >
164
- <span className="absolute left-2 flex size-3.5 items-center justify-center">
165
- <ContextMenuPrimitive.ItemIndicator>
166
- <CheckIcon className="size-4" />
167
- </ContextMenuPrimitive.ItemIndicator>
168
- </span>
169
- {children}
170
- </ContextMenuPrimitive.CheckboxItem>
171
- ),
172
- );
173
-
174
- ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
175
-
176
- /* -----------------------------------------------------------------------------
177
- * Component: ContextMenuRadioItem
178
- * -------------------------------------------------------------------------- */
179
-
180
- type ContextMenuRadioItemElement = React.ElementRef<typeof ContextMenuPrimitive.RadioItem>;
181
- type ContextMenuRadioItemProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>;
182
-
183
- const ContextMenuRadioItem = React.forwardRef<ContextMenuRadioItemElement, ContextMenuRadioItemProps>(
184
- ({ children, className, ...props }, ref) => (
185
- <ContextMenuPrimitive.RadioItem
186
- ref={ref}
187
- className={cn(
188
- 'focus:bg-accent focus:text-accent-foreground relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm focus:outline-none aria-disabled:pointer-events-none aria-disabled:opacity-50',
189
- className,
190
- )}
191
- {...props}
192
- >
193
- <span className="absolute left-2 flex size-3.5 items-center justify-center">
194
- <ContextMenuPrimitive.ItemIndicator>
195
- <DotFilledIcon className="size-4 fill-current" />
196
- </ContextMenuPrimitive.ItemIndicator>
197
- </span>
198
- {children}
199
- </ContextMenuPrimitive.RadioItem>
200
- ),
201
- );
202
-
203
- ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
204
-
205
- /* -----------------------------------------------------------------------------
206
- * Component: ContextMenuLabel
207
- * -------------------------------------------------------------------------- */
208
-
209
- type ContextMenuLabelElement = React.ElementRef<typeof ContextMenuPrimitive.Label>;
210
-
211
- interface ContextMenuLabelProps extends React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> {
212
- inset?: boolean;
213
- }
214
-
215
- const ContextMenuLabel = React.forwardRef<ContextMenuLabelElement, ContextMenuLabelProps>(
216
- ({ className, inset, ...props }, ref) => (
217
- <ContextMenuPrimitive.Label
218
- ref={ref}
219
- className={cn('text-foreground px-2 py-1.5 text-sm font-semibold', inset && 'pl-8', className)}
220
- {...props}
221
- />
222
- ),
223
- );
224
-
225
- ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
226
-
227
- /* -----------------------------------------------------------------------------
228
- * Component: ContextMenuSeparator
229
- * -------------------------------------------------------------------------- */
230
-
231
- type ContextMenuSeparatorElement = React.ElementRef<typeof ContextMenuPrimitive.Separator>;
232
- type ContextMenuSeparatorProps = React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>;
233
-
234
- const ContextMenuSeparator = React.forwardRef<ContextMenuSeparatorElement, ContextMenuSeparatorProps>(
235
- ({ className, ...props }, ref) => (
236
- <ContextMenuPrimitive.Separator ref={ref} className={cn('bg-border -mx-1 my-1 h-px', className)} {...props} />
237
- ),
238
- );
239
-
240
- ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
241
-
242
- /* -----------------------------------------------------------------------------
243
- * Component: ContextMenuShortcut
244
- * -------------------------------------------------------------------------- */
245
-
246
- type ContextMenuShortcutProps = React.HTMLAttributes<HTMLSpanElement>;
247
-
248
- function ContextMenuShortcut({ className, ...props }: ContextMenuShortcutProps): React.JSX.Element {
249
- return <span className={cn('text-muted-foreground ml-auto text-xs tracking-widest', className)} {...props} />;
250
- }
251
-
252
- /* -----------------------------------------------------------------------------
253
- * Component: ContextMenuArrow
254
- * -------------------------------------------------------------------------- */
255
-
256
- type ContextMenuArrowElement = React.ElementRef<typeof ContextMenuPrimitive.Arrow>;
257
- type ContextMenuArrowProps = ContextMenuPrimitive.ContextMenuArrowProps;
258
-
259
- const ContextMenuArrow = React.forwardRef<ContextMenuArrowElement, ContextMenuArrowProps>(
260
- ({ className, ...props }, ref) => (
261
- <ContextMenuPrimitive.Arrow ref={ref} className={cn('fill-popover', className)} {...props} />
262
- ),
263
- );
264
-
265
- ContextMenuArrow.displayName = ContextMenuPrimitive.Arrow.displayName;
266
-
267
- /* -----------------------------------------------------------------------------
268
- * Exports
269
- * -------------------------------------------------------------------------- */
270
-
271
- export {
272
- ContextMenu,
273
- ContextMenuTrigger,
274
- ContextMenuContent,
275
- ContextMenuItem,
276
- ContextMenuCheckboxItem,
277
- ContextMenuRadioItem,
278
- ContextMenuLabel,
279
- ContextMenuSeparator,
280
- ContextMenuShortcut,
281
- ContextMenuGroup,
282
- ContextMenuSub,
283
- ContextMenuSubContent,
284
- ContextMenuSubTrigger,
285
- ContextMenuRadioGroup,
286
- ContextMenuArrow,
287
- type ContextMenuProps,
288
- type ContextMenuTriggerProps,
289
- type ContextMenuContentProps,
290
- type ContextMenuItemProps,
291
- type ContextMenuCheckboxItemProps,
292
- type ContextMenuRadioItemProps,
293
- type ContextMenuLabelProps,
294
- type ContextMenuSeparatorProps,
295
- type ContextMenuShortcutProps,
296
- type ContextMenuGroupProps,
297
- type ContextMenuSubProps,
298
- type ContextMenuSubContentProps,
299
- type ContextMenuSubTriggerProps,
300
- type ContextMenuRadioGroupProps,
301
- type ContextMenuArrowProps,
302
- };
@@ -1,249 +0,0 @@
1
- 'use client';
2
-
3
- import * as React from 'react';
4
- import {
5
- ArrowDownIcon,
6
- ArrowUpIcon,
7
- CaretSortIcon,
8
- ChevronLeftIcon,
9
- ChevronRightIcon,
10
- DoubleArrowLeftIcon,
11
- DoubleArrowRightIcon,
12
- EyeNoneIcon,
13
- MixerHorizontalIcon,
14
- } from '@radix-ui/react-icons';
15
- import type * as ReactTable from '@tanstack/react-table';
16
- import { cn } from '../lib/utils';
17
- import {
18
- DropdownMenu,
19
- DropdownMenuCheckboxItem,
20
- DropdownMenuContent,
21
- DropdownMenuItem,
22
- DropdownMenuLabel,
23
- DropdownMenuSeparator,
24
- DropdownMenuTrigger,
25
- } from './dropdown-menu';
26
- import { Button } from './button';
27
- import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from './select';
28
-
29
- /* -----------------------------------------------------------------------------
30
- * Component: DataTableViewOptions
31
- * -------------------------------------------------------------------------- */
32
-
33
- interface DataTableViewOptionsProps<TData> {
34
- table: ReactTable.Table<TData>;
35
- }
36
-
37
- function DataTableViewOptions<TData>({ table }: DataTableViewOptionsProps<TData>): React.JSX.Element {
38
- return (
39
- <DropdownMenu>
40
- <DropdownMenuTrigger asChild>
41
- <Button className="ml-auto hidden h-8 lg:flex" size="sm" variant="outline">
42
- <MixerHorizontalIcon className="mr-2 size-4" />
43
- View
44
- </Button>
45
- </DropdownMenuTrigger>
46
- <DropdownMenuContent align="end" className="w-36">
47
- <DropdownMenuLabel>Toggle columns</DropdownMenuLabel>
48
- <DropdownMenuSeparator />
49
- {table
50
- .getAllColumns()
51
- .filter((column) => typeof column.accessorFn !== 'undefined' && column.getCanHide())
52
- .map((column) => {
53
- return (
54
- <DropdownMenuCheckboxItem
55
- key={column.id}
56
- checked={column.getIsVisible()}
57
- className="capitalize"
58
- onCheckedChange={(value) => {
59
- column.toggleVisibility(Boolean(value));
60
- }}
61
- >
62
- {column.id}
63
- </DropdownMenuCheckboxItem>
64
- );
65
- })}
66
- </DropdownMenuContent>
67
- </DropdownMenu>
68
- );
69
- }
70
-
71
- /* -----------------------------------------------------------------------------
72
- * Component: DataTablePagination
73
- * -------------------------------------------------------------------------- */
74
-
75
- interface DataTablePaginationProps<TData> extends React.HTMLAttributes<HTMLDivElement> {
76
- table: ReactTable.Table<TData>;
77
- }
78
-
79
- function DataTablePagination<TData>({
80
- table,
81
- className,
82
- ...props
83
- }: DataTablePaginationProps<TData>): React.JSX.Element {
84
- return (
85
- <div className={cn('flex items-center justify-between px-2', className)} {...props}>
86
- <div className="text-muted-foreground flex-1 text-sm">
87
- {table.getFilteredSelectedRowModel().rows.length} of {table.getFilteredRowModel().rows.length} row(s) selected.
88
- </div>
89
- <div className="flex items-center space-x-6 lg:space-x-8">
90
- <div className="flex items-center space-x-2">
91
- <p className="text-sm font-medium">Rows per page</p>
92
- <Select
93
- value={String(table.getState().pagination.pageSize)}
94
- onValueChange={(value) => {
95
- table.setPageSize(Number(value));
96
- }}
97
- >
98
- <SelectTrigger className="w-18 h-8">
99
- <SelectValue placeholder={table.getState().pagination.pageSize} />
100
- </SelectTrigger>
101
- <SelectContent side="top">
102
- {[10, 20, 30, 40, 50].map((pageSize) => (
103
- <SelectItem key={pageSize} value={String(pageSize)}>
104
- {pageSize}
105
- </SelectItem>
106
- ))}
107
- </SelectContent>
108
- </Select>
109
- </div>
110
- <div className="flex w-28 items-center justify-center text-sm font-medium">
111
- Page {table.getState().pagination.pageIndex + 1} of {table.getPageCount()}
112
- </div>
113
- <div className="flex items-center space-x-2">
114
- <Button
115
- className="hidden lg:flex"
116
- disabled={!table.getCanPreviousPage()}
117
- size="icon-xs"
118
- variant="outline"
119
- onClick={() => {
120
- table.setPageIndex(0);
121
- }}
122
- >
123
- <span className="sr-only">Go to first page</span>
124
- <DoubleArrowLeftIcon className="size-4" />
125
- </Button>
126
- <Button
127
- disabled={!table.getCanPreviousPage()}
128
- size="icon-xs"
129
- variant="outline"
130
- onClick={() => {
131
- table.previousPage();
132
- }}
133
- >
134
- <span className="sr-only">Go to previous page</span>
135
- <ChevronLeftIcon className="size-4" />
136
- </Button>
137
- <Button
138
- disabled={!table.getCanNextPage()}
139
- size="icon-xs"
140
- variant="outline"
141
- onClick={() => {
142
- table.nextPage();
143
- }}
144
- >
145
- <span className="sr-only">Go to next page</span>
146
- <ChevronRightIcon className="size-4" />
147
- </Button>
148
- <Button
149
- className="hidden lg:flex"
150
- disabled={!table.getCanNextPage()}
151
- size="icon-xs"
152
- variant="outline"
153
- onClick={() => {
154
- table.setPageIndex(table.getPageCount() - 1);
155
- }}
156
- >
157
- <span className="sr-only">Go to last page</span>
158
- <DoubleArrowRightIcon className="size-4" />
159
- </Button>
160
- </div>
161
- </div>
162
- </div>
163
- );
164
- }
165
-
166
- /* -----------------------------------------------------------------------------
167
- * Component: DataTableColumnHeader
168
- * -------------------------------------------------------------------------- */
169
-
170
- interface DataTableColumnHeaderProps<TData, TValue> extends React.HTMLAttributes<HTMLDivElement> {
171
- column: ReactTable.Column<TData, TValue>;
172
- title: string;
173
- }
174
-
175
- function DataTableColumnHeader<TData, TValue>({
176
- column,
177
- title,
178
- className,
179
- }: DataTableColumnHeaderProps<TData, TValue>): React.JSX.Element {
180
- if (!column.getCanSort()) {
181
- return <div className={className}>{title}</div>;
182
- }
183
-
184
- return (
185
- <div className={cn('flex items-center space-x-2', className)}>
186
- <DropdownMenu>
187
- <DropdownMenuTrigger asChild>
188
- <Button className="data-[state=open]:bg-accent -ml-3" size="xs" variant="ghost">
189
- <span>{title}</span>
190
- <SortIcon sorted={column.getIsSorted()} />
191
- </Button>
192
- </DropdownMenuTrigger>
193
- <DropdownMenuContent align="start">
194
- <DropdownMenuItem
195
- onClick={() => {
196
- column.toggleSorting(false);
197
- }}
198
- >
199
- <ArrowUpIcon className="text-muted-foreground/70 mr-2 size-3.5" />
200
- Asc
201
- </DropdownMenuItem>
202
- <DropdownMenuItem
203
- onClick={() => {
204
- column.toggleSorting(true);
205
- }}
206
- >
207
- <ArrowDownIcon className="text-muted-foreground/70 mr-2 size-3.5" />
208
- Desc
209
- </DropdownMenuItem>
210
- <DropdownMenuSeparator />
211
- <DropdownMenuItem
212
- onClick={() => {
213
- column.toggleVisibility(false);
214
- }}
215
- >
216
- <EyeNoneIcon className="text-muted-foreground/70 mr-2 size-3.5" />
217
- Hide
218
- </DropdownMenuItem>
219
- </DropdownMenuContent>
220
- </DropdownMenu>
221
- </div>
222
- );
223
- }
224
-
225
- function SortIcon({ sorted }: { sorted: false | ReactTable.SortDirection }): React.JSX.Element {
226
- switch (sorted) {
227
- case 'desc':
228
- return <ArrowDownIcon className="ml-2 size-4" />;
229
-
230
- case 'asc':
231
- return <ArrowUpIcon className="ml-2 size-4" />;
232
-
233
- default:
234
- return <CaretSortIcon className="ml-2 size-4" />;
235
- }
236
- }
237
-
238
- /* -----------------------------------------------------------------------------
239
- * Exports
240
- * -------------------------------------------------------------------------- */
241
-
242
- export {
243
- DataTableViewOptions,
244
- DataTablePagination,
245
- DataTableColumnHeader,
246
- type DataTableViewOptionsProps,
247
- type DataTablePaginationProps,
248
- type DataTableColumnHeaderProps,
249
- };