create-tauri-ui 0.2.1 → 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 (263) hide show
  1. package/README.md +19 -10
  2. package/dist/index.mjs +26 -26
  3. package/package.json +55 -54
  4. package/templates/.shared/app-icon.png +0 -0
  5. package/templates/.shared/src-tauri/Cargo.lock +3832 -3701
  6. package/templates/.shared/src-tauri/Cargo.toml +4 -1
  7. package/templates/.shared/src-tauri/src/main.rs +3 -0
  8. package/templates/.shared/src-tauri/tauri.conf.json +1 -9
  9. package/templates/next/components.json +1 -1
  10. package/templates/next/package.json +87 -83
  11. package/templates/next/pnpm-lock.yaml +608 -566
  12. package/templates/next/src/app/examples/cards/components/date-picker.tsx +3 -1
  13. package/templates/next/src/app/examples/cards/components/github-card.tsx +2 -0
  14. package/templates/next/src/app/examples/cards/components/notifications.tsx +2 -0
  15. package/templates/next/src/app/examples/cards/components/payment-method.tsx +3 -1
  16. package/templates/next/src/app/examples/cards/components/team-members.tsx +3 -5
  17. package/templates/next/src/app/examples/forms/page.tsx +1 -1
  18. package/templates/next/src/assets/Inter-VariableFont_slnt,wght.ttf +0 -0
  19. package/templates/next/src/components/about-dialog.tsx +111 -0
  20. package/templates/next/src/components/icons.tsx +156 -154
  21. package/templates/next/src/components/menu-mode-toggle.tsx +47 -46
  22. package/templates/next/src/components/menu.tsx +178 -214
  23. package/templates/next/src/components/page-header.tsx +2 -0
  24. package/templates/next/src/components/ui/accordion.tsx +60 -60
  25. package/templates/next/src/components/ui/alert-dialog.tsx +145 -145
  26. package/templates/next/src/components/ui/alert.tsx +59 -59
  27. package/templates/next/src/components/ui/aspect-ratio.tsx +7 -7
  28. package/templates/next/src/components/ui/avatar.tsx +50 -50
  29. package/templates/next/src/components/ui/badge.tsx +36 -36
  30. package/templates/next/src/components/ui/button.tsx +56 -56
  31. package/templates/next/src/components/ui/calendar.tsx +64 -64
  32. package/templates/next/src/components/ui/card.tsx +79 -79
  33. package/templates/next/src/components/ui/checkbox.tsx +30 -30
  34. package/templates/next/src/components/ui/collapsible.tsx +11 -11
  35. package/templates/next/src/components/ui/command.tsx +155 -155
  36. package/templates/next/src/components/ui/context-menu.tsx +200 -200
  37. package/templates/next/src/components/ui/dialog.tsx +123 -123
  38. package/templates/next/src/components/ui/dropdown-menu.tsx +200 -200
  39. package/templates/next/src/components/ui/form.tsx +176 -176
  40. package/templates/next/src/components/ui/hover-card.tsx +29 -29
  41. package/templates/next/src/components/ui/input.tsx +25 -25
  42. package/templates/next/src/components/ui/label.tsx +26 -26
  43. package/templates/next/src/components/ui/menubar.tsx +236 -236
  44. package/templates/next/src/components/ui/navigation-menu.tsx +128 -128
  45. package/templates/next/src/components/ui/popover.tsx +31 -31
  46. package/templates/next/src/components/ui/progress.tsx +28 -28
  47. package/templates/next/src/components/ui/radio-group.tsx +44 -44
  48. package/templates/next/src/components/ui/scroll-area.tsx +48 -48
  49. package/templates/next/src/components/ui/select.tsx +121 -121
  50. package/templates/next/src/components/ui/separator.tsx +31 -31
  51. package/templates/next/src/components/ui/sheet.tsx +144 -144
  52. package/templates/next/src/components/ui/skeleton.tsx +15 -15
  53. package/templates/next/src/components/ui/slider.tsx +28 -28
  54. package/templates/next/src/components/ui/switch.tsx +29 -29
  55. package/templates/next/src/components/ui/table.tsx +114 -114
  56. package/templates/next/src/components/ui/tabs.tsx +55 -55
  57. package/templates/next/src/components/ui/textarea.tsx +24 -24
  58. package/templates/next/src/components/ui/toast.tsx +127 -127
  59. package/templates/next/src/components/ui/toaster.tsx +35 -35
  60. package/templates/next/src/components/ui/toggle.tsx +45 -45
  61. package/templates/next/src/components/ui/tooltip.tsx +30 -30
  62. package/templates/next/src/components/ui/use-toast.ts +192 -192
  63. package/templates/next/src/styles/globals.css +5 -3
  64. package/templates/next/src-tauri/Cargo.lock +270 -139
  65. package/templates/next/src-tauri/Cargo.toml +39 -36
  66. package/templates/next/src-tauri/src/main.rs +22 -19
  67. package/templates/next/src-tauri/tauri.conf.json +1 -9
  68. package/templates/sveltekit/.github/workflows/release.yml +108 -108
  69. package/templates/sveltekit/package.json +84 -84
  70. package/templates/sveltekit/pnpm-lock.yaml +1069 -691
  71. package/templates/sveltekit/src/app.html +1 -1
  72. package/templates/sveltekit/src-tauri/Cargo.lock +3701 -3701
  73. package/templates/sveltekit/src-tauri/Cargo.toml +36 -36
  74. package/templates/sveltekit/src-tauri/tauri.conf.json +71 -79
  75. package/templates/sveltekit/static/favicon.ico +0 -0
  76. package/templates/sveltekit/vite.config.js +10 -6
  77. package/templates/vite/index.html +1 -1
  78. package/templates/vite/package.json +83 -76
  79. package/templates/vite/pnpm-lock.yaml +5178 -5110
  80. package/templates/vite/src/assets/Inter-VariableFont_slnt,wght.ttf +0 -0
  81. package/templates/vite/src/components/about-dialog.tsx +101 -0
  82. package/templates/vite/src/components/icons.tsx +2 -2
  83. package/templates/vite/src/components/menu-mode-toggle.tsx +4 -3
  84. package/templates/vite/src/components/menu.tsx +177 -197
  85. package/templates/vite/src/components/ui/accordion.tsx +1 -3
  86. package/templates/vite/src/components/ui/alert-dialog.tsx +3 -10
  87. package/templates/vite/src/components/ui/alert.tsx +3 -5
  88. package/templates/vite/src/components/ui/aspect-ratio.tsx +0 -2
  89. package/templates/vite/src/components/ui/avatar.tsx +0 -2
  90. package/templates/vite/src/components/ui/badge.tsx +5 -5
  91. package/templates/vite/src/components/ui/button.tsx +15 -10
  92. package/templates/vite/src/components/ui/calendar.tsx +0 -2
  93. package/templates/vite/src/components/ui/card.tsx +1 -3
  94. package/templates/vite/src/components/ui/checkbox.tsx +2 -4
  95. package/templates/vite/src/components/ui/collapsible.tsx +0 -2
  96. package/templates/vite/src/components/ui/command.tsx +2 -4
  97. package/templates/vite/src/components/ui/context-menu.tsx +6 -8
  98. package/templates/vite/src/components/ui/dialog.tsx +4 -11
  99. package/templates/vite/src/components/ui/dropdown-menu.tsx +6 -8
  100. package/templates/vite/src/components/ui/form.tsx +176 -0
  101. package/templates/vite/src/components/ui/hover-card.tsx +1 -3
  102. package/templates/vite/src/components/ui/input.tsx +1 -3
  103. package/templates/vite/src/components/ui/label.tsx +1 -3
  104. package/templates/vite/src/components/ui/menubar.tsx +7 -9
  105. package/templates/vite/src/components/ui/navigation-menu.tsx +2 -4
  106. package/templates/vite/src/components/ui/popover.tsx +1 -3
  107. package/templates/vite/src/components/ui/progress.tsx +0 -2
  108. package/templates/vite/src/components/ui/radio-group.tsx +2 -4
  109. package/templates/vite/src/components/ui/scroll-area.tsx +0 -2
  110. package/templates/vite/src/components/ui/select.tsx +4 -5
  111. package/templates/vite/src/components/ui/separator.tsx +0 -2
  112. package/templates/vite/src/components/ui/sheet.tsx +22 -110
  113. package/templates/vite/src/components/ui/skeleton.tsx +0 -2
  114. package/templates/vite/src/components/ui/slider.tsx +0 -2
  115. package/templates/vite/src/components/ui/switch.tsx +1 -3
  116. package/templates/vite/src/components/ui/table.tsx +1 -1
  117. package/templates/vite/src/components/ui/tabs.tsx +1 -3
  118. package/templates/vite/src/components/ui/textarea.tsx +1 -3
  119. package/templates/vite/src/components/ui/toast.tsx +6 -8
  120. package/templates/vite/src/components/ui/toaster.tsx +0 -2
  121. package/templates/vite/src/components/ui/toggle.tsx +3 -5
  122. package/templates/vite/src/components/ui/tooltip.tsx +1 -3
  123. package/templates/vite/src/components/ui/use-toast.ts +5 -4
  124. package/templates/vite/src/styles/globals.css +5 -3
  125. package/templates/vite/src-tauri/Cargo.lock +3832 -3701
  126. package/templates/vite/src-tauri/Cargo.toml +39 -36
  127. package/templates/vite/src-tauri/src/main.rs +8 -2
  128. package/templates/vite/src-tauri/tauri.conf.json +1 -9
  129. package/templates/vite/vite.config.ts +2 -2
  130. package/templates/next/src/assets/Inter.var.woff2 +0 -0
  131. package/templates/vite/src/assets/Inter.var.woff2 +0 -0
  132. package/templates/viteuno/.github/workflows/release.yml +0 -108
  133. package/templates/viteuno/.vscode/extensions.json +0 -3
  134. package/templates/viteuno/README.md +0 -1
  135. package/templates/viteuno/app-icon.png +0 -0
  136. package/templates/viteuno/components.json +0 -16
  137. package/templates/viteuno/index.html +0 -16
  138. package/templates/viteuno/package.json +0 -73
  139. package/templates/viteuno/pnpm-lock.yaml +0 -5298
  140. package/templates/viteuno/preset.shadcn.ts +0 -160
  141. package/templates/viteuno/prettier.config.cjs +0 -34
  142. package/templates/viteuno/public/avatars/01.png +0 -0
  143. package/templates/viteuno/public/avatars/02.png +0 -0
  144. package/templates/viteuno/public/avatars/03.png +0 -0
  145. package/templates/viteuno/public/avatars/04.png +0 -0
  146. package/templates/viteuno/public/avatars/05.png +0 -0
  147. package/templates/viteuno/src/App.tsx +0 -39
  148. package/templates/viteuno/src/assets/Inter.var.woff2 +0 -0
  149. package/templates/viteuno/src/components/icons.tsx +0 -154
  150. package/templates/viteuno/src/components/menu-mode-toggle.tsx +0 -46
  151. package/templates/viteuno/src/components/menu.tsx +0 -232
  152. package/templates/viteuno/src/components/tailwind-indicator.tsx +0 -18
  153. package/templates/viteuno/src/components/theme-provider.tsx +0 -9
  154. package/templates/viteuno/src/components/ui/accordion.tsx +0 -60
  155. package/templates/viteuno/src/components/ui/alert-dialog.tsx +0 -150
  156. package/templates/viteuno/src/components/ui/alert.tsx +0 -61
  157. package/templates/viteuno/src/components/ui/aspect-ratio.tsx +0 -7
  158. package/templates/viteuno/src/components/ui/avatar.tsx +0 -50
  159. package/templates/viteuno/src/components/ui/badge.tsx +0 -36
  160. package/templates/viteuno/src/components/ui/button.tsx +0 -51
  161. package/templates/viteuno/src/components/ui/calendar.tsx +0 -64
  162. package/templates/viteuno/src/components/ui/card.tsx +0 -81
  163. package/templates/viteuno/src/components/ui/checkbox.tsx +0 -30
  164. package/templates/viteuno/src/components/ui/collapsible.tsx +0 -11
  165. package/templates/viteuno/src/components/ui/command.tsx +0 -155
  166. package/templates/viteuno/src/components/ui/context-menu.tsx +0 -200
  167. package/templates/viteuno/src/components/ui/dialog.tsx +0 -128
  168. package/templates/viteuno/src/components/ui/dropdown-menu.tsx +0 -200
  169. package/templates/viteuno/src/components/ui/hover-card.tsx +0 -29
  170. package/templates/viteuno/src/components/ui/index.ts +0 -0
  171. package/templates/viteuno/src/components/ui/input.tsx +0 -27
  172. package/templates/viteuno/src/components/ui/label.tsx +0 -26
  173. package/templates/viteuno/src/components/ui/menubar.tsx +0 -236
  174. package/templates/viteuno/src/components/ui/navigation-menu.tsx +0 -130
  175. package/templates/viteuno/src/components/ui/popover.tsx +0 -31
  176. package/templates/viteuno/src/components/ui/progress.tsx +0 -28
  177. package/templates/viteuno/src/components/ui/radio-group.tsx +0 -44
  178. package/templates/viteuno/src/components/ui/scroll-area.tsx +0 -48
  179. package/templates/viteuno/src/components/ui/select.tsx +0 -120
  180. package/templates/viteuno/src/components/ui/separator.tsx +0 -31
  181. package/templates/viteuno/src/components/ui/sheet.tsx +0 -230
  182. package/templates/viteuno/src/components/ui/skeleton.tsx +0 -17
  183. package/templates/viteuno/src/components/ui/slider.tsx +0 -28
  184. package/templates/viteuno/src/components/ui/switch.tsx +0 -29
  185. package/templates/viteuno/src/components/ui/table.tsx +0 -114
  186. package/templates/viteuno/src/components/ui/tabs.tsx +0 -55
  187. package/templates/viteuno/src/components/ui/textarea.tsx +0 -26
  188. package/templates/viteuno/src/components/ui/toast.tsx +0 -129
  189. package/templates/viteuno/src/components/ui/toaster.tsx +0 -35
  190. package/templates/viteuno/src/components/ui/toggle.tsx +0 -45
  191. package/templates/viteuno/src/components/ui/tooltip.tsx +0 -30
  192. package/templates/viteuno/src/components/ui/use-toast.ts +0 -191
  193. package/templates/viteuno/src/dashboard/components/date-range-picker.tsx +0 -66
  194. package/templates/viteuno/src/dashboard/components/main-nav.tsx +0 -38
  195. package/templates/viteuno/src/dashboard/components/overview.tsx +0 -78
  196. package/templates/viteuno/src/dashboard/components/recent-sales.tsx +0 -67
  197. package/templates/viteuno/src/dashboard/components/search.tsx +0 -13
  198. package/templates/viteuno/src/dashboard/components/team-switcher.tsx +0 -205
  199. package/templates/viteuno/src/dashboard/components/user-nav.tsx +0 -67
  200. package/templates/viteuno/src/dashboard/page.tsx +0 -140
  201. package/templates/viteuno/src/lib/utils.ts +0 -19
  202. package/templates/viteuno/src/main.tsx +0 -14
  203. package/templates/viteuno/src/styles/globals.css +0 -4
  204. package/templates/viteuno/src/vite-env.d.ts +0 -1
  205. package/templates/viteuno/src-tauri/Cargo.lock +0 -3701
  206. package/templates/viteuno/src-tauri/Cargo.toml +0 -36
  207. package/templates/viteuno/src-tauri/build.rs +0 -3
  208. package/templates/viteuno/src-tauri/icons/128x128.png +0 -0
  209. package/templates/viteuno/src-tauri/icons/128x128@2x.png +0 -0
  210. package/templates/viteuno/src-tauri/icons/32x32.png +0 -0
  211. package/templates/viteuno/src-tauri/icons/Square107x107Logo.png +0 -0
  212. package/templates/viteuno/src-tauri/icons/Square142x142Logo.png +0 -0
  213. package/templates/viteuno/src-tauri/icons/Square150x150Logo.png +0 -0
  214. package/templates/viteuno/src-tauri/icons/Square284x284Logo.png +0 -0
  215. package/templates/viteuno/src-tauri/icons/Square30x30Logo.png +0 -0
  216. package/templates/viteuno/src-tauri/icons/Square310x310Logo.png +0 -0
  217. package/templates/viteuno/src-tauri/icons/Square44x44Logo.png +0 -0
  218. package/templates/viteuno/src-tauri/icons/Square71x71Logo.png +0 -0
  219. package/templates/viteuno/src-tauri/icons/Square89x89Logo.png +0 -0
  220. package/templates/viteuno/src-tauri/icons/StoreLogo.png +0 -0
  221. package/templates/viteuno/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png +0 -0
  222. package/templates/viteuno/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  223. package/templates/viteuno/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png +0 -0
  224. package/templates/viteuno/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png +0 -0
  225. package/templates/viteuno/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  226. package/templates/viteuno/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png +0 -0
  227. package/templates/viteuno/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png +0 -0
  228. package/templates/viteuno/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  229. package/templates/viteuno/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png +0 -0
  230. package/templates/viteuno/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
  231. package/templates/viteuno/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  232. package/templates/viteuno/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  233. package/templates/viteuno/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
  234. package/templates/viteuno/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  235. package/templates/viteuno/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  236. package/templates/viteuno/src-tauri/icons/icon.icns +0 -0
  237. package/templates/viteuno/src-tauri/icons/icon.ico +0 -0
  238. package/templates/viteuno/src-tauri/icons/icon.png +0 -0
  239. package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@1x.png +0 -0
  240. package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@2x-1.png +0 -0
  241. package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@2x.png +0 -0
  242. package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@3x.png +0 -0
  243. package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@1x.png +0 -0
  244. package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@2x-1.png +0 -0
  245. package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@2x.png +0 -0
  246. package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@3x.png +0 -0
  247. package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@1x.png +0 -0
  248. package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@2x-1.png +0 -0
  249. package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@2x.png +0 -0
  250. package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@3x.png +0 -0
  251. package/templates/viteuno/src-tauri/icons/ios/AppIcon-512@2x.png +0 -0
  252. package/templates/viteuno/src-tauri/icons/ios/AppIcon-60x60@2x.png +0 -0
  253. package/templates/viteuno/src-tauri/icons/ios/AppIcon-60x60@3x.png +0 -0
  254. package/templates/viteuno/src-tauri/icons/ios/AppIcon-76x76@1x.png +0 -0
  255. package/templates/viteuno/src-tauri/icons/ios/AppIcon-76x76@2x.png +0 -0
  256. package/templates/viteuno/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png +0 -0
  257. package/templates/viteuno/src-tauri/src/main.rs +0 -16
  258. package/templates/viteuno/src-tauri/tauri.conf.json +0 -79
  259. package/templates/viteuno/tsconfig.json +0 -26
  260. package/templates/viteuno/tsconfig.node.json +0 -9
  261. package/templates/viteuno/uno.config.ts +0 -111
  262. package/templates/viteuno/vite.config.ts +0 -33
  263. /package/templates/next/src/app/examples/forms/{profile-form.tsx → components/profile-form.tsx} +0 -0
@@ -1,155 +1,155 @@
1
- "use client"
2
-
3
- import * as React from "react"
4
- import { DialogProps } from "@radix-ui/react-dialog"
5
- import { Command as CommandPrimitive } from "cmdk"
6
- import { Search } from "lucide-react"
7
-
8
- import { cn } from "@/lib/utils"
9
- import { Dialog, DialogContent } from "@/components/ui/dialog"
10
-
11
- const Command = React.forwardRef<
12
- React.ElementRef<typeof CommandPrimitive>,
13
- React.ComponentPropsWithoutRef<typeof CommandPrimitive>
14
- >(({ className, ...props }, ref) => (
15
- <CommandPrimitive
16
- ref={ref}
17
- className={cn(
18
- "flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
19
- className
20
- )}
21
- {...props}
22
- />
23
- ))
24
- Command.displayName = CommandPrimitive.displayName
25
-
26
- interface CommandDialogProps extends DialogProps {}
27
-
28
- const CommandDialog = ({ children, ...props }: CommandDialogProps) => {
29
- return (
30
- <Dialog {...props}>
31
- <DialogContent className="overflow-hidden p-0 shadow-lg">
32
- <Command className="[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5">
33
- {children}
34
- </Command>
35
- </DialogContent>
36
- </Dialog>
37
- )
38
- }
39
-
40
- const CommandInput = React.forwardRef<
41
- React.ElementRef<typeof CommandPrimitive.Input>,
42
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>
43
- >(({ className, ...props }, ref) => (
44
- <div className="flex items-center border-b px-3" cmdk-input-wrapper="">
45
- <Search className="mr-2 h-4 w-4 shrink-0 opacity-50" />
46
- <CommandPrimitive.Input
47
- ref={ref}
48
- className={cn(
49
- "flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
50
- className
51
- )}
52
- {...props}
53
- />
54
- </div>
55
- ))
56
-
57
- CommandInput.displayName = CommandPrimitive.Input.displayName
58
-
59
- const CommandList = React.forwardRef<
60
- React.ElementRef<typeof CommandPrimitive.List>,
61
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>
62
- >(({ className, ...props }, ref) => (
63
- <CommandPrimitive.List
64
- ref={ref}
65
- className={cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className)}
66
- {...props}
67
- />
68
- ))
69
-
70
- CommandList.displayName = CommandPrimitive.List.displayName
71
-
72
- const CommandEmpty = React.forwardRef<
73
- React.ElementRef<typeof CommandPrimitive.Empty>,
74
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>
75
- >((props, ref) => (
76
- <CommandPrimitive.Empty
77
- ref={ref}
78
- className="py-6 text-center text-sm"
79
- {...props}
80
- />
81
- ))
82
-
83
- CommandEmpty.displayName = CommandPrimitive.Empty.displayName
84
-
85
- const CommandGroup = React.forwardRef<
86
- React.ElementRef<typeof CommandPrimitive.Group>,
87
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>
88
- >(({ className, ...props }, ref) => (
89
- <CommandPrimitive.Group
90
- ref={ref}
91
- className={cn(
92
- "overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
93
- className
94
- )}
95
- {...props}
96
- />
97
- ))
98
-
99
- CommandGroup.displayName = CommandPrimitive.Group.displayName
100
-
101
- const CommandSeparator = React.forwardRef<
102
- React.ElementRef<typeof CommandPrimitive.Separator>,
103
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>
104
- >(({ className, ...props }, ref) => (
105
- <CommandPrimitive.Separator
106
- ref={ref}
107
- className={cn("-mx-1 h-px bg-border", className)}
108
- {...props}
109
- />
110
- ))
111
- CommandSeparator.displayName = CommandPrimitive.Separator.displayName
112
-
113
- const CommandItem = React.forwardRef<
114
- React.ElementRef<typeof CommandPrimitive.Item>,
115
- React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>
116
- >(({ className, ...props }, ref) => (
117
- <CommandPrimitive.Item
118
- ref={ref}
119
- className={cn(
120
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
121
- className
122
- )}
123
- {...props}
124
- />
125
- ))
126
-
127
- CommandItem.displayName = CommandPrimitive.Item.displayName
128
-
129
- const CommandShortcut = ({
130
- className,
131
- ...props
132
- }: React.HTMLAttributes<HTMLSpanElement>) => {
133
- return (
134
- <span
135
- className={cn(
136
- "ml-auto text-xs tracking-widest text-muted-foreground",
137
- className
138
- )}
139
- {...props}
140
- />
141
- )
142
- }
143
- CommandShortcut.displayName = "CommandShortcut"
144
-
145
- export {
146
- Command,
147
- CommandDialog,
148
- CommandInput,
149
- CommandList,
150
- CommandEmpty,
151
- CommandGroup,
152
- CommandItem,
153
- CommandShortcut,
154
- CommandSeparator,
155
- }
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import { DialogProps } from "@radix-ui/react-dialog"
5
+ import { Command as CommandPrimitive } from "cmdk"
6
+ import { Search } from "lucide-react"
7
+
8
+ import { cn } from "@/lib/utils"
9
+ import { Dialog, DialogContent } from "@/components/ui/dialog"
10
+
11
+ const Command = React.forwardRef<
12
+ React.ElementRef<typeof CommandPrimitive>,
13
+ React.ComponentPropsWithoutRef<typeof CommandPrimitive>
14
+ >(({ className, ...props }, ref) => (
15
+ <CommandPrimitive
16
+ ref={ref}
17
+ className={cn(
18
+ "flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
19
+ className
20
+ )}
21
+ {...props}
22
+ />
23
+ ))
24
+ Command.displayName = CommandPrimitive.displayName
25
+
26
+ interface CommandDialogProps extends DialogProps {}
27
+
28
+ const CommandDialog = ({ children, ...props }: CommandDialogProps) => {
29
+ return (
30
+ <Dialog {...props}>
31
+ <DialogContent className="overflow-hidden p-0 shadow-lg">
32
+ <Command className="[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5">
33
+ {children}
34
+ </Command>
35
+ </DialogContent>
36
+ </Dialog>
37
+ )
38
+ }
39
+
40
+ const CommandInput = React.forwardRef<
41
+ React.ElementRef<typeof CommandPrimitive.Input>,
42
+ React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>
43
+ >(({ className, ...props }, ref) => (
44
+ <div className="flex items-center border-b px-3" cmdk-input-wrapper="">
45
+ <Search className="mr-2 h-4 w-4 shrink-0 opacity-50" />
46
+ <CommandPrimitive.Input
47
+ ref={ref}
48
+ className={cn(
49
+ "flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
50
+ className
51
+ )}
52
+ {...props}
53
+ />
54
+ </div>
55
+ ))
56
+
57
+ CommandInput.displayName = CommandPrimitive.Input.displayName
58
+
59
+ const CommandList = React.forwardRef<
60
+ React.ElementRef<typeof CommandPrimitive.List>,
61
+ React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>
62
+ >(({ className, ...props }, ref) => (
63
+ <CommandPrimitive.List
64
+ ref={ref}
65
+ className={cn("max-h-[300px] overflow-y-auto overflow-x-hidden", className)}
66
+ {...props}
67
+ />
68
+ ))
69
+
70
+ CommandList.displayName = CommandPrimitive.List.displayName
71
+
72
+ const CommandEmpty = React.forwardRef<
73
+ React.ElementRef<typeof CommandPrimitive.Empty>,
74
+ React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>
75
+ >((props, ref) => (
76
+ <CommandPrimitive.Empty
77
+ ref={ref}
78
+ className="py-6 text-center text-sm"
79
+ {...props}
80
+ />
81
+ ))
82
+
83
+ CommandEmpty.displayName = CommandPrimitive.Empty.displayName
84
+
85
+ const CommandGroup = React.forwardRef<
86
+ React.ElementRef<typeof CommandPrimitive.Group>,
87
+ React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>
88
+ >(({ className, ...props }, ref) => (
89
+ <CommandPrimitive.Group
90
+ ref={ref}
91
+ className={cn(
92
+ "overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",
93
+ className
94
+ )}
95
+ {...props}
96
+ />
97
+ ))
98
+
99
+ CommandGroup.displayName = CommandPrimitive.Group.displayName
100
+
101
+ const CommandSeparator = React.forwardRef<
102
+ React.ElementRef<typeof CommandPrimitive.Separator>,
103
+ React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>
104
+ >(({ className, ...props }, ref) => (
105
+ <CommandPrimitive.Separator
106
+ ref={ref}
107
+ className={cn("-mx-1 h-px bg-border", className)}
108
+ {...props}
109
+ />
110
+ ))
111
+ CommandSeparator.displayName = CommandPrimitive.Separator.displayName
112
+
113
+ const CommandItem = React.forwardRef<
114
+ React.ElementRef<typeof CommandPrimitive.Item>,
115
+ React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>
116
+ >(({ className, ...props }, ref) => (
117
+ <CommandPrimitive.Item
118
+ ref={ref}
119
+ className={cn(
120
+ "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
121
+ className
122
+ )}
123
+ {...props}
124
+ />
125
+ ))
126
+
127
+ CommandItem.displayName = CommandPrimitive.Item.displayName
128
+
129
+ const CommandShortcut = ({
130
+ className,
131
+ ...props
132
+ }: React.HTMLAttributes<HTMLSpanElement>) => {
133
+ return (
134
+ <span
135
+ className={cn(
136
+ "ml-auto text-xs tracking-widest text-muted-foreground",
137
+ className
138
+ )}
139
+ {...props}
140
+ />
141
+ )
142
+ }
143
+ CommandShortcut.displayName = "CommandShortcut"
144
+
145
+ export {
146
+ Command,
147
+ CommandDialog,
148
+ CommandInput,
149
+ CommandList,
150
+ CommandEmpty,
151
+ CommandGroup,
152
+ CommandItem,
153
+ CommandShortcut,
154
+ CommandSeparator,
155
+ }