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,67 +0,0 @@
1
- import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
2
-
3
- export function RecentSales() {
4
- return (
5
- <div className="space-y-8">
6
- <div className="flex items-center">
7
- <Avatar className="h-9 w-9">
8
- <AvatarImage src="/avatars/01.png" alt="Avatar" />
9
- <AvatarFallback>OM</AvatarFallback>
10
- </Avatar>
11
- <div className="ml-4 space-y-1">
12
- <p className="text-sm font-medium leading-none">Olivia Martin</p>
13
- <p className="text-sm text-muted-foreground">
14
- olivia.martin@email.com
15
- </p>
16
- </div>
17
- <div className="ml-auto font-medium">+$1,999.00</div>
18
- </div>
19
- <div className="flex items-center">
20
- <Avatar className="flex h-9 w-9 items-center justify-center space-y-0 border">
21
- <AvatarImage src="/avatars/02.png" alt="Avatar" />
22
- <AvatarFallback>JL</AvatarFallback>
23
- </Avatar>
24
- <div className="ml-4 space-y-1">
25
- <p className="text-sm font-medium leading-none">Jackson Lee</p>
26
- <p className="text-sm text-muted-foreground">jackson.lee@email.com</p>
27
- </div>
28
- <div className="ml-auto font-medium">+$39.00</div>
29
- </div>
30
- <div className="flex items-center">
31
- <Avatar className="h-9 w-9">
32
- <AvatarImage src="/avatars/03.png" alt="Avatar" />
33
- <AvatarFallback>IN</AvatarFallback>
34
- </Avatar>
35
- <div className="ml-4 space-y-1">
36
- <p className="text-sm font-medium leading-none">Isabella Nguyen</p>
37
- <p className="text-sm text-muted-foreground">
38
- isabella.nguyen@email.com
39
- </p>
40
- </div>
41
- <div className="ml-auto font-medium">+$299.00</div>
42
- </div>
43
- <div className="flex items-center">
44
- <Avatar className="h-9 w-9">
45
- <AvatarImage src="/avatars/04.png" alt="Avatar" />
46
- <AvatarFallback>WK</AvatarFallback>
47
- </Avatar>
48
- <div className="ml-4 space-y-1">
49
- <p className="text-sm font-medium leading-none">William Kim</p>
50
- <p className="text-sm text-muted-foreground">will@email.com</p>
51
- </div>
52
- <div className="ml-auto font-medium">+$99.00</div>
53
- </div>
54
- <div className="flex items-center">
55
- <Avatar className="h-9 w-9">
56
- <AvatarImage src="/avatars/05.png" alt="Avatar" />
57
- <AvatarFallback>SD</AvatarFallback>
58
- </Avatar>
59
- <div className="ml-4 space-y-1">
60
- <p className="text-sm font-medium leading-none">Sofia Davis</p>
61
- <p className="text-sm text-muted-foreground">sofia.davis@email.com</p>
62
- </div>
63
- <div className="ml-auto font-medium">+$39.00</div>
64
- </div>
65
- </div>
66
- )
67
- }
@@ -1,13 +0,0 @@
1
- import { Input } from "@/components/ui/input"
2
-
3
- export function Search() {
4
- return (
5
- <div>
6
- <Input
7
- type="search"
8
- placeholder="Search..."
9
- className="h-9 md:w-[100px] lg:w-[300px]"
10
- />
11
- </div>
12
- )
13
- }
@@ -1,205 +0,0 @@
1
- "use client"
2
-
3
- import * as React from "react"
4
- import { Check, ChevronsUpDown, PlusCircle } from "lucide-react"
5
-
6
- import { cn } from "@/lib/utils"
7
- import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
8
- import { Button } from "@/components/ui/button"
9
- import {
10
- Command,
11
- CommandEmpty,
12
- CommandGroup,
13
- CommandInput,
14
- CommandItem,
15
- CommandList,
16
- CommandSeparator,
17
- } from "@/components/ui/command"
18
- import {
19
- Dialog,
20
- DialogContent,
21
- DialogDescription,
22
- DialogFooter,
23
- DialogHeader,
24
- DialogTitle,
25
- DialogTrigger,
26
- } from "@/components/ui/dialog"
27
- import { Input } from "@/components/ui/input"
28
- import { Label } from "@/components/ui/label"
29
- import {
30
- Popover,
31
- PopoverContent,
32
- PopoverTrigger,
33
- } from "@/components/ui/popover"
34
- import {
35
- Select,
36
- SelectContent,
37
- SelectItem,
38
- SelectTrigger,
39
- SelectValue,
40
- } from "@/components/ui/select"
41
-
42
- const groups = [
43
- {
44
- label: "Personal Account",
45
- teams: [
46
- {
47
- label: "Alicia Koch",
48
- value: "personal",
49
- },
50
- ],
51
- },
52
- {
53
- label: "Teams",
54
- teams: [
55
- {
56
- label: "Acme Inc.",
57
- value: "acme-inc",
58
- },
59
- {
60
- label: "Monsters Inc.",
61
- value: "monsters",
62
- },
63
- ],
64
- },
65
- ]
66
-
67
- type Team = (typeof groups)[number]["teams"][number]
68
-
69
- type PopoverTriggerProps = React.ComponentPropsWithoutRef<typeof PopoverTrigger>
70
-
71
- interface TeamSwitcherProps extends PopoverTriggerProps {}
72
-
73
- export default function TeamSwitcher({ className }: TeamSwitcherProps) {
74
- const [open, setOpen] = React.useState(false)
75
- const [showNewTeamDialog, setShowNewTeamDialog] = React.useState(false)
76
- const [selectedTeam, setSelectedTeam] = React.useState<Team>(
77
- groups[0].teams[0]
78
- )
79
-
80
- return (
81
- <Dialog open={showNewTeamDialog} onOpenChange={setShowNewTeamDialog}>
82
- <Popover open={open} onOpenChange={setOpen}>
83
- <PopoverTrigger asChild>
84
- <Button
85
- variant="ghost"
86
- size="sm"
87
- role="combobox"
88
- aria-expanded={open}
89
- aria-label="Select a team"
90
- className={cn("w-[200px] justify-between", className)}
91
- >
92
- <Avatar className="mr-2 h-5 w-5">
93
- <AvatarImage
94
- src={`https://avatar.vercel.sh/${selectedTeam.value}.png`}
95
- alt={selectedTeam.label}
96
- />
97
- <AvatarFallback>SC</AvatarFallback>
98
- </Avatar>
99
- {selectedTeam.label}
100
- <ChevronsUpDown className="ml-auto h-4 w-4 shrink-0 opacity-50" />
101
- </Button>
102
- </PopoverTrigger>
103
- <PopoverContent className="w-[200px] p-0">
104
- <Command>
105
- <CommandList>
106
- <CommandInput placeholder="Search team..." />
107
- <CommandEmpty>No team found.</CommandEmpty>
108
- {groups.map((group) => (
109
- <CommandGroup key={group.label} heading={group.label}>
110
- {group.teams.map((team) => (
111
- <CommandItem
112
- key={team.value}
113
- onSelect={() => {
114
- setSelectedTeam(team)
115
- setOpen(false)
116
- }}
117
- className="text-sm"
118
- >
119
- <Avatar className="mr-2 h-5 w-5">
120
- <AvatarImage
121
- src={`https://avatar.vercel.sh/${team.value}.png`}
122
- alt={team.label}
123
- />
124
- <AvatarFallback>SC</AvatarFallback>
125
- </Avatar>
126
- {team.label}
127
- <Check
128
- className={cn(
129
- "ml-auto h-4 w-4",
130
- selectedTeam.value === team.value
131
- ? "opacity-100"
132
- : "opacity-0"
133
- )}
134
- />
135
- </CommandItem>
136
- ))}
137
- </CommandGroup>
138
- ))}
139
- </CommandList>
140
- <CommandSeparator />
141
- <CommandList>
142
- <CommandGroup>
143
- <DialogTrigger asChild>
144
- <CommandItem
145
- onSelect={() => {
146
- setOpen(false)
147
- setShowNewTeamDialog(true)
148
- }}
149
- >
150
- <PlusCircle className="mr-2 h-5 w-5" />
151
- Create Team
152
- </CommandItem>
153
- </DialogTrigger>
154
- </CommandGroup>
155
- </CommandList>
156
- </Command>
157
- </PopoverContent>
158
- </Popover>
159
- <DialogContent>
160
- <DialogHeader>
161
- <DialogTitle>Create team</DialogTitle>
162
- <DialogDescription>
163
- Add a new team to manage products and customers.
164
- </DialogDescription>
165
- </DialogHeader>
166
- <div>
167
- <div className="space-y-4 py-2 pb-4">
168
- <div className="space-y-2">
169
- <Label htmlFor="name">Team name</Label>
170
- <Input id="name" placeholder="Acme Inc." />
171
- </div>
172
- <div className="space-y-2">
173
- <Label htmlFor="plan">Subscription plan</Label>
174
- <Select>
175
- <SelectTrigger>
176
- <SelectValue placeholder="Select a plan" />
177
- </SelectTrigger>
178
- <SelectContent>
179
- <SelectItem value="free">
180
- <span className="font-medium">Free</span> -{" "}
181
- <span className="text-muted-foreground">
182
- Trial for two weeks
183
- </span>
184
- </SelectItem>
185
- <SelectItem value="pro">
186
- <span className="font-medium">Pro</span> -{" "}
187
- <span className="text-muted-foreground">
188
- $9/month per user
189
- </span>
190
- </SelectItem>
191
- </SelectContent>
192
- </Select>
193
- </div>
194
- </div>
195
- </div>
196
- <DialogFooter>
197
- <Button variant="outline" onClick={() => setShowNewTeamDialog(false)}>
198
- Cancel
199
- </Button>
200
- <Button type="submit">Continue</Button>
201
- </DialogFooter>
202
- </DialogContent>
203
- </Dialog>
204
- )
205
- }
@@ -1,67 +0,0 @@
1
- import { CreditCard, LogOut, PlusCircle, Settings, User } from "lucide-react"
2
-
3
- import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
4
- import { Button } from "@/components/ui/button"
5
- import {
6
- DropdownMenu,
7
- DropdownMenuContent,
8
- DropdownMenuGroup,
9
- DropdownMenuItem,
10
- DropdownMenuLabel,
11
- DropdownMenuSeparator,
12
- DropdownMenuShortcut,
13
- DropdownMenuTrigger,
14
- } from "@/components/ui/dropdown-menu"
15
-
16
- export function UserNav() {
17
- return (
18
- <DropdownMenu>
19
- <DropdownMenuTrigger asChild>
20
- <Button variant="ghost" className="relative h-8 w-8 rounded-full">
21
- <Avatar className="h-8 w-8">
22
- <AvatarImage src="/avatars/01.png" alt="@shadcn" />
23
- <AvatarFallback>SC</AvatarFallback>
24
- </Avatar>
25
- </Button>
26
- </DropdownMenuTrigger>
27
- <DropdownMenuContent className="w-56" align="end" forceMount>
28
- <DropdownMenuLabel className="font-normal">
29
- <div className="flex flex-col space-y-1">
30
- <p className="text-sm font-medium leading-none">shadcn</p>
31
- <p className="text-xs leading-none text-muted-foreground">
32
- m@example.com
33
- </p>
34
- </div>
35
- </DropdownMenuLabel>
36
- <DropdownMenuSeparator />
37
- <DropdownMenuGroup>
38
- <DropdownMenuItem>
39
- <User className="mr-2 h-4 w-4" />
40
- <span>Profile</span>
41
- <DropdownMenuShortcut>⇧⌘P</DropdownMenuShortcut>
42
- </DropdownMenuItem>
43
- <DropdownMenuItem>
44
- <CreditCard className="mr-2 h-4 w-4" />
45
- <span>Billing</span>
46
- <DropdownMenuShortcut>⌘B</DropdownMenuShortcut>
47
- </DropdownMenuItem>
48
- <DropdownMenuItem>
49
- <Settings className="mr-2 h-4 w-4" />
50
- <span>Settings</span>
51
- <DropdownMenuShortcut>⌘S</DropdownMenuShortcut>
52
- </DropdownMenuItem>
53
- <DropdownMenuItem>
54
- <PlusCircle className="mr-2 h-4 w-4" />
55
- <span>New Team</span>
56
- </DropdownMenuItem>
57
- </DropdownMenuGroup>
58
- <DropdownMenuSeparator />
59
- <DropdownMenuItem>
60
- <LogOut className="mr-2 h-4 w-4" />
61
- <span>Log out</span>
62
- <DropdownMenuShortcut>⇧⌘Q</DropdownMenuShortcut>
63
- </DropdownMenuItem>
64
- </DropdownMenuContent>
65
- </DropdownMenu>
66
- )
67
- }
@@ -1,140 +0,0 @@
1
- import { CalendarDateRangePicker } from "@/dashboard/components/date-range-picker"
2
- import { MainNav } from "@/dashboard/components/main-nav"
3
- import { Overview } from "@/dashboard/components/overview"
4
- import { RecentSales } from "@/dashboard/components/recent-sales"
5
- import { Search } from "@/dashboard/components/search"
6
- import TeamSwitcher from "@/dashboard/components/team-switcher"
7
- import { UserNav } from "@/dashboard/components/user-nav"
8
- import { Activity, CreditCard, DollarSign, Download, Users } from "lucide-react"
9
-
10
- import { Button } from "@/components/ui/button"
11
- import {
12
- Card,
13
- CardContent,
14
- CardDescription,
15
- CardHeader,
16
- CardTitle,
17
- } from "@/components/ui/card"
18
- import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
19
-
20
- export default function DashboardPage() {
21
- return (
22
- <div className="flex-col md:flex">
23
- <div className="border-b">
24
- <div className="flex h-16 items-center px-4">
25
- <TeamSwitcher />
26
- <MainNav className="mx-6" />
27
- <div className="ml-auto flex items-center space-x-4">
28
- <Search />
29
- <UserNav />
30
- </div>
31
- </div>
32
- </div>
33
- <div className="flex-1 space-y-4 p-8 pt-6">
34
- <div className="flex items-center justify-between space-y-2">
35
- <h2 className="text-3xl font-bold tracking-tight">Dashboard</h2>
36
- <div className="flex items-center space-x-2">
37
- <CalendarDateRangePicker />
38
- <Button size="sm">
39
- <Download className="mr-2 h-4 w-4" />
40
- Download
41
- </Button>
42
- </div>
43
- </div>
44
- <Tabs defaultValue="overview" className="space-y-4">
45
- <TabsList>
46
- <TabsTrigger value="overview">Overview</TabsTrigger>
47
- <TabsTrigger value="analytics" disabled>
48
- Analytics
49
- </TabsTrigger>
50
- <TabsTrigger value="reports" disabled>
51
- Reports
52
- </TabsTrigger>
53
- <TabsTrigger value="notifications" disabled>
54
- Notifications
55
- </TabsTrigger>
56
- </TabsList>
57
- <TabsContent value="overview" className="space-y-4">
58
- <div className="grid gap-4 md:grid-cols-2 lg:grid-cols-4">
59
- <Card>
60
- <CardHeader className="flex flex-row items-center justify-between space-y-0 pb-2">
61
- <CardTitle className="text-sm font-medium">
62
- Total Revenue
63
- </CardTitle>
64
- <DollarSign className="h-4 w-4 text-muted-foreground" />
65
- </CardHeader>
66
- <CardContent>
67
- <div className="text-2xl font-bold">$45,231.89</div>
68
- <p className="text-xs text-muted-foreground">
69
- +20.1% from last month
70
- </p>
71
- </CardContent>
72
- </Card>
73
- <Card>
74
- <CardHeader className="flex flex-row items-center justify-between space-y-0 pb-2">
75
- <CardTitle className="text-sm font-medium">
76
- Subscriptions
77
- </CardTitle>
78
- <Users className="h-4 w-4 text-muted-foreground" />
79
- </CardHeader>
80
- <CardContent>
81
- <div className="text-2xl font-bold">+2350</div>
82
- <p className="text-xs text-muted-foreground">
83
- +180.1% from last month
84
- </p>
85
- </CardContent>
86
- </Card>
87
- <Card>
88
- <CardHeader className="flex flex-row items-center justify-between space-y-0 pb-2">
89
- <CardTitle className="text-sm font-medium">Sales</CardTitle>
90
- <CreditCard className="h-4 w-4 text-muted-foreground" />
91
- </CardHeader>
92
- <CardContent>
93
- <div className="text-2xl font-bold">+12,234</div>
94
- <p className="text-xs text-muted-foreground">
95
- +19% from last month
96
- </p>
97
- </CardContent>
98
- </Card>
99
- <Card>
100
- <CardHeader className="flex flex-row items-center justify-between space-y-0 pb-2">
101
- <CardTitle className="text-sm font-medium">
102
- Active Now
103
- </CardTitle>
104
- <Activity className="h-4 w-4 text-muted-foreground" />
105
- </CardHeader>
106
- <CardContent>
107
- <div className="text-2xl font-bold">+573</div>
108
- <p className="text-xs text-muted-foreground">
109
- +201 since last hour
110
- </p>
111
- </CardContent>
112
- </Card>
113
- </div>
114
- <div className="grid gap-4 md:grid-cols-2 lg:grid-cols-7">
115
- <Card className="col-span-4">
116
- <CardHeader>
117
- <CardTitle>Overview</CardTitle>
118
- </CardHeader>
119
- <CardContent className="pl-2">
120
- <Overview />
121
- </CardContent>
122
- </Card>
123
- <Card className="col-span-3">
124
- <CardHeader>
125
- <CardTitle>Recent Sales</CardTitle>
126
- <CardDescription>
127
- You made 265 sales this month.
128
- </CardDescription>
129
- </CardHeader>
130
- <CardContent>
131
- <RecentSales />
132
- </CardContent>
133
- </Card>
134
- </div>
135
- </TabsContent>
136
- </Tabs>
137
- </div>
138
- </div>
139
- )
140
- }
@@ -1,19 +0,0 @@
1
- import { clsx, type ClassValue } from "clsx"
2
- import { twMerge } from "tailwind-merge"
3
-
4
- export function cn(...inputs: ClassValue[]) {
5
- return twMerge(clsx(inputs))
6
- }
7
-
8
- export function formatDate(input: string | number): string {
9
- const date = new Date(input)
10
- return date.toLocaleDateString("en-US", {
11
- month: "long",
12
- day: "numeric",
13
- year: "numeric",
14
- })
15
- }
16
-
17
- export function absoluteUrl(path: string) {
18
- return `${process.env.NEXT_PUBLIC_APP_URL}${path}`
19
- }
@@ -1,14 +0,0 @@
1
- import React from "react"
2
- import ReactDOM from "react-dom/client"
3
-
4
- import App from "./App"
5
-
6
- import "./styles/globals.css"
7
- import "@unocss/reset/tailwind.css"
8
- import "uno.css"
9
-
10
- ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
11
- <React.StrictMode>
12
- <App />
13
- </React.StrictMode>
14
- )
@@ -1,4 +0,0 @@
1
- @font-face {
2
- font-family: "Inter";
3
- src: url("../assets/Inter.var.woff2") format("woff2");
4
- }
@@ -1 +0,0 @@
1
- /// <reference types="vite/client" />