create-tauri-ui 0.2.0 → 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 (268) hide show
  1. package/README.md +22 -11
  2. package/dist/index.mjs +26 -26
  3. package/package.json +3 -2
  4. package/templates/.shared/app-icon.png +0 -0
  5. package/templates/.shared/src-tauri/Cargo.lock +270 -139
  6. package/templates/.shared/src-tauri/Cargo.toml +39 -36
  7. package/templates/.shared/src-tauri/src/main.rs +3 -0
  8. package/templates/.shared/src-tauri/tauri.conf.json +71 -79
  9. package/templates/next/components.json +15 -15
  10. package/templates/next/next.config.js +14 -14
  11. package/templates/next/package.json +18 -14
  12. package/templates/next/pnpm-lock.yaml +608 -566
  13. package/templates/next/src/app/examples/cards/components/date-picker.tsx +3 -1
  14. package/templates/next/src/app/examples/cards/components/github-card.tsx +2 -0
  15. package/templates/next/src/app/examples/cards/components/notifications.tsx +2 -0
  16. package/templates/next/src/app/examples/cards/components/payment-method.tsx +3 -1
  17. package/templates/next/src/app/examples/cards/components/team-members.tsx +3 -5
  18. package/templates/next/src/app/examples/forms/page.tsx +1 -1
  19. package/templates/next/src/app/layout.tsx +47 -47
  20. package/templates/next/src/assets/Inter-VariableFont_slnt,wght.ttf +0 -0
  21. package/templates/next/src/components/about-dialog.tsx +111 -0
  22. package/templates/next/src/components/icons.tsx +156 -154
  23. package/templates/next/src/components/menu-mode-toggle.tsx +47 -46
  24. package/templates/next/src/components/menu.tsx +223 -259
  25. package/templates/next/src/components/page-header.tsx +2 -0
  26. package/templates/next/src/components/ui/accordion.tsx +60 -60
  27. package/templates/next/src/components/ui/alert-dialog.tsx +145 -145
  28. package/templates/next/src/components/ui/alert.tsx +59 -59
  29. package/templates/next/src/components/ui/aspect-ratio.tsx +7 -7
  30. package/templates/next/src/components/ui/avatar.tsx +50 -50
  31. package/templates/next/src/components/ui/badge.tsx +36 -36
  32. package/templates/next/src/components/ui/button.tsx +56 -56
  33. package/templates/next/src/components/ui/calendar.tsx +64 -64
  34. package/templates/next/src/components/ui/card.tsx +79 -79
  35. package/templates/next/src/components/ui/checkbox.tsx +30 -30
  36. package/templates/next/src/components/ui/collapsible.tsx +11 -11
  37. package/templates/next/src/components/ui/command.tsx +155 -155
  38. package/templates/next/src/components/ui/context-menu.tsx +200 -200
  39. package/templates/next/src/components/ui/dialog.tsx +123 -123
  40. package/templates/next/src/components/ui/dropdown-menu.tsx +200 -200
  41. package/templates/next/src/components/ui/form.tsx +176 -176
  42. package/templates/next/src/components/ui/hover-card.tsx +29 -29
  43. package/templates/next/src/components/ui/input.tsx +25 -25
  44. package/templates/next/src/components/ui/label.tsx +26 -26
  45. package/templates/next/src/components/ui/menubar.tsx +236 -236
  46. package/templates/next/src/components/ui/navigation-menu.tsx +128 -128
  47. package/templates/next/src/components/ui/popover.tsx +31 -31
  48. package/templates/next/src/components/ui/progress.tsx +28 -28
  49. package/templates/next/src/components/ui/radio-group.tsx +44 -44
  50. package/templates/next/src/components/ui/scroll-area.tsx +48 -48
  51. package/templates/next/src/components/ui/select.tsx +121 -121
  52. package/templates/next/src/components/ui/separator.tsx +31 -31
  53. package/templates/next/src/components/ui/sheet.tsx +144 -144
  54. package/templates/next/src/components/ui/skeleton.tsx +15 -15
  55. package/templates/next/src/components/ui/slider.tsx +28 -28
  56. package/templates/next/src/components/ui/switch.tsx +29 -29
  57. package/templates/next/src/components/ui/table.tsx +114 -114
  58. package/templates/next/src/components/ui/tabs.tsx +55 -55
  59. package/templates/next/src/components/ui/textarea.tsx +24 -24
  60. package/templates/next/src/components/ui/toast.tsx +127 -127
  61. package/templates/next/src/components/ui/toaster.tsx +35 -35
  62. package/templates/next/src/components/ui/toggle.tsx +45 -45
  63. package/templates/next/src/components/ui/tooltip.tsx +30 -30
  64. package/templates/next/src/components/ui/use-toast.ts +192 -192
  65. package/templates/next/src/lib/utils.ts +6 -6
  66. package/templates/next/src/styles/globals.css +88 -86
  67. package/templates/next/src-tauri/Cargo.lock +3832 -3701
  68. package/templates/next/src-tauri/Cargo.toml +4 -1
  69. package/templates/next/src-tauri/src/main.rs +22 -19
  70. package/templates/next/src-tauri/tauri.conf.json +71 -79
  71. package/templates/next/tailwind.config.js +77 -77
  72. package/templates/next/tsconfig.json +34 -34
  73. package/templates/sveltekit/.github/workflows/release.yml +108 -108
  74. package/templates/sveltekit/package.json +22 -22
  75. package/templates/sveltekit/pnpm-lock.yaml +1069 -691
  76. package/templates/sveltekit/src/app.html +1 -1
  77. package/templates/sveltekit/src-tauri/Cargo.lock +136 -136
  78. package/templates/sveltekit/src-tauri/tauri.conf.json +2 -10
  79. package/templates/sveltekit/static/favicon.ico +0 -0
  80. package/templates/sveltekit/vite.config.js +10 -6
  81. package/templates/vite/components.json +15 -15
  82. package/templates/vite/index.html +1 -1
  83. package/templates/vite/package.json +20 -13
  84. package/templates/vite/pnpm-lock.yaml +598 -530
  85. package/templates/vite/src/assets/Inter-VariableFont_slnt,wght.ttf +0 -0
  86. package/templates/vite/src/components/about-dialog.tsx +101 -0
  87. package/templates/vite/src/components/icons.tsx +2 -2
  88. package/templates/vite/src/components/menu-mode-toggle.tsx +4 -3
  89. package/templates/vite/src/components/menu.tsx +177 -197
  90. package/templates/vite/src/components/ui/accordion.tsx +1 -3
  91. package/templates/vite/src/components/ui/alert-dialog.tsx +3 -10
  92. package/templates/vite/src/components/ui/alert.tsx +3 -5
  93. package/templates/vite/src/components/ui/aspect-ratio.tsx +0 -2
  94. package/templates/vite/src/components/ui/avatar.tsx +0 -2
  95. package/templates/vite/src/components/ui/badge.tsx +5 -5
  96. package/templates/vite/src/components/ui/button.tsx +15 -10
  97. package/templates/vite/src/components/ui/calendar.tsx +0 -2
  98. package/templates/vite/src/components/ui/card.tsx +1 -3
  99. package/templates/vite/src/components/ui/checkbox.tsx +2 -4
  100. package/templates/vite/src/components/ui/collapsible.tsx +0 -2
  101. package/templates/vite/src/components/ui/command.tsx +2 -4
  102. package/templates/vite/src/components/ui/context-menu.tsx +6 -8
  103. package/templates/vite/src/components/ui/dialog.tsx +4 -11
  104. package/templates/vite/src/components/ui/dropdown-menu.tsx +6 -8
  105. package/templates/vite/src/components/ui/form.tsx +176 -0
  106. package/templates/vite/src/components/ui/hover-card.tsx +1 -3
  107. package/templates/vite/src/components/ui/input.tsx +1 -3
  108. package/templates/vite/src/components/ui/label.tsx +1 -3
  109. package/templates/vite/src/components/ui/menubar.tsx +7 -9
  110. package/templates/vite/src/components/ui/navigation-menu.tsx +2 -4
  111. package/templates/vite/src/components/ui/popover.tsx +1 -3
  112. package/templates/vite/src/components/ui/progress.tsx +0 -2
  113. package/templates/vite/src/components/ui/radio-group.tsx +2 -4
  114. package/templates/vite/src/components/ui/scroll-area.tsx +0 -2
  115. package/templates/vite/src/components/ui/select.tsx +4 -5
  116. package/templates/vite/src/components/ui/separator.tsx +0 -2
  117. package/templates/vite/src/components/ui/sheet.tsx +22 -110
  118. package/templates/vite/src/components/ui/skeleton.tsx +0 -2
  119. package/templates/vite/src/components/ui/slider.tsx +0 -2
  120. package/templates/vite/src/components/ui/switch.tsx +1 -3
  121. package/templates/vite/src/components/ui/table.tsx +1 -1
  122. package/templates/vite/src/components/ui/tabs.tsx +1 -3
  123. package/templates/vite/src/components/ui/textarea.tsx +1 -3
  124. package/templates/vite/src/components/ui/toast.tsx +6 -8
  125. package/templates/vite/src/components/ui/toaster.tsx +0 -2
  126. package/templates/vite/src/components/ui/toggle.tsx +3 -5
  127. package/templates/vite/src/components/ui/tooltip.tsx +1 -3
  128. package/templates/vite/src/components/ui/use-toast.ts +5 -4
  129. package/templates/vite/src/styles/globals.css +5 -3
  130. package/templates/vite/src-tauri/Cargo.lock +270 -139
  131. package/templates/vite/src-tauri/Cargo.toml +4 -1
  132. package/templates/vite/src-tauri/src/main.rs +8 -2
  133. package/templates/vite/src-tauri/tauri.conf.json +71 -79
  134. package/templates/vite/vite.config.ts +2 -2
  135. package/templates/next/src/assets/Inter.var.woff2 +0 -0
  136. package/templates/vite/src/assets/Inter.var.woff2 +0 -0
  137. package/templates/viteuno/.github/workflows/release.yml +0 -108
  138. package/templates/viteuno/.vscode/extensions.json +0 -3
  139. package/templates/viteuno/README.md +0 -1
  140. package/templates/viteuno/app-icon.png +0 -0
  141. package/templates/viteuno/components.json +0 -16
  142. package/templates/viteuno/index.html +0 -16
  143. package/templates/viteuno/package.json +0 -73
  144. package/templates/viteuno/pnpm-lock.yaml +0 -5298
  145. package/templates/viteuno/preset.shadcn.ts +0 -160
  146. package/templates/viteuno/prettier.config.cjs +0 -34
  147. package/templates/viteuno/public/avatars/01.png +0 -0
  148. package/templates/viteuno/public/avatars/02.png +0 -0
  149. package/templates/viteuno/public/avatars/03.png +0 -0
  150. package/templates/viteuno/public/avatars/04.png +0 -0
  151. package/templates/viteuno/public/avatars/05.png +0 -0
  152. package/templates/viteuno/src/App.tsx +0 -39
  153. package/templates/viteuno/src/assets/Inter.var.woff2 +0 -0
  154. package/templates/viteuno/src/components/icons.tsx +0 -154
  155. package/templates/viteuno/src/components/menu-mode-toggle.tsx +0 -46
  156. package/templates/viteuno/src/components/menu.tsx +0 -232
  157. package/templates/viteuno/src/components/tailwind-indicator.tsx +0 -18
  158. package/templates/viteuno/src/components/theme-provider.tsx +0 -9
  159. package/templates/viteuno/src/components/ui/accordion.tsx +0 -60
  160. package/templates/viteuno/src/components/ui/alert-dialog.tsx +0 -150
  161. package/templates/viteuno/src/components/ui/alert.tsx +0 -61
  162. package/templates/viteuno/src/components/ui/aspect-ratio.tsx +0 -7
  163. package/templates/viteuno/src/components/ui/avatar.tsx +0 -50
  164. package/templates/viteuno/src/components/ui/badge.tsx +0 -36
  165. package/templates/viteuno/src/components/ui/button.tsx +0 -51
  166. package/templates/viteuno/src/components/ui/calendar.tsx +0 -64
  167. package/templates/viteuno/src/components/ui/card.tsx +0 -81
  168. package/templates/viteuno/src/components/ui/checkbox.tsx +0 -30
  169. package/templates/viteuno/src/components/ui/collapsible.tsx +0 -11
  170. package/templates/viteuno/src/components/ui/command.tsx +0 -155
  171. package/templates/viteuno/src/components/ui/context-menu.tsx +0 -200
  172. package/templates/viteuno/src/components/ui/dialog.tsx +0 -128
  173. package/templates/viteuno/src/components/ui/dropdown-menu.tsx +0 -200
  174. package/templates/viteuno/src/components/ui/hover-card.tsx +0 -29
  175. package/templates/viteuno/src/components/ui/index.ts +0 -0
  176. package/templates/viteuno/src/components/ui/input.tsx +0 -27
  177. package/templates/viteuno/src/components/ui/label.tsx +0 -26
  178. package/templates/viteuno/src/components/ui/menubar.tsx +0 -236
  179. package/templates/viteuno/src/components/ui/navigation-menu.tsx +0 -130
  180. package/templates/viteuno/src/components/ui/popover.tsx +0 -31
  181. package/templates/viteuno/src/components/ui/progress.tsx +0 -28
  182. package/templates/viteuno/src/components/ui/radio-group.tsx +0 -44
  183. package/templates/viteuno/src/components/ui/scroll-area.tsx +0 -48
  184. package/templates/viteuno/src/components/ui/select.tsx +0 -120
  185. package/templates/viteuno/src/components/ui/separator.tsx +0 -31
  186. package/templates/viteuno/src/components/ui/sheet.tsx +0 -230
  187. package/templates/viteuno/src/components/ui/skeleton.tsx +0 -17
  188. package/templates/viteuno/src/components/ui/slider.tsx +0 -28
  189. package/templates/viteuno/src/components/ui/switch.tsx +0 -29
  190. package/templates/viteuno/src/components/ui/table.tsx +0 -114
  191. package/templates/viteuno/src/components/ui/tabs.tsx +0 -55
  192. package/templates/viteuno/src/components/ui/textarea.tsx +0 -26
  193. package/templates/viteuno/src/components/ui/toast.tsx +0 -129
  194. package/templates/viteuno/src/components/ui/toaster.tsx +0 -35
  195. package/templates/viteuno/src/components/ui/toggle.tsx +0 -45
  196. package/templates/viteuno/src/components/ui/tooltip.tsx +0 -30
  197. package/templates/viteuno/src/components/ui/use-toast.ts +0 -191
  198. package/templates/viteuno/src/dashboard/components/date-range-picker.tsx +0 -66
  199. package/templates/viteuno/src/dashboard/components/main-nav.tsx +0 -38
  200. package/templates/viteuno/src/dashboard/components/overview.tsx +0 -78
  201. package/templates/viteuno/src/dashboard/components/recent-sales.tsx +0 -67
  202. package/templates/viteuno/src/dashboard/components/search.tsx +0 -13
  203. package/templates/viteuno/src/dashboard/components/team-switcher.tsx +0 -205
  204. package/templates/viteuno/src/dashboard/components/user-nav.tsx +0 -67
  205. package/templates/viteuno/src/dashboard/page.tsx +0 -140
  206. package/templates/viteuno/src/lib/utils.ts +0 -19
  207. package/templates/viteuno/src/main.tsx +0 -14
  208. package/templates/viteuno/src/styles/globals.css +0 -4
  209. package/templates/viteuno/src/vite-env.d.ts +0 -1
  210. package/templates/viteuno/src-tauri/Cargo.lock +0 -3701
  211. package/templates/viteuno/src-tauri/Cargo.toml +0 -36
  212. package/templates/viteuno/src-tauri/build.rs +0 -3
  213. package/templates/viteuno/src-tauri/icons/128x128.png +0 -0
  214. package/templates/viteuno/src-tauri/icons/128x128@2x.png +0 -0
  215. package/templates/viteuno/src-tauri/icons/32x32.png +0 -0
  216. package/templates/viteuno/src-tauri/icons/Square107x107Logo.png +0 -0
  217. package/templates/viteuno/src-tauri/icons/Square142x142Logo.png +0 -0
  218. package/templates/viteuno/src-tauri/icons/Square150x150Logo.png +0 -0
  219. package/templates/viteuno/src-tauri/icons/Square284x284Logo.png +0 -0
  220. package/templates/viteuno/src-tauri/icons/Square30x30Logo.png +0 -0
  221. package/templates/viteuno/src-tauri/icons/Square310x310Logo.png +0 -0
  222. package/templates/viteuno/src-tauri/icons/Square44x44Logo.png +0 -0
  223. package/templates/viteuno/src-tauri/icons/Square71x71Logo.png +0 -0
  224. package/templates/viteuno/src-tauri/icons/Square89x89Logo.png +0 -0
  225. package/templates/viteuno/src-tauri/icons/StoreLogo.png +0 -0
  226. package/templates/viteuno/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png +0 -0
  227. package/templates/viteuno/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  228. package/templates/viteuno/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png +0 -0
  229. package/templates/viteuno/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png +0 -0
  230. package/templates/viteuno/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  231. package/templates/viteuno/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png +0 -0
  232. package/templates/viteuno/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png +0 -0
  233. package/templates/viteuno/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  234. package/templates/viteuno/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png +0 -0
  235. package/templates/viteuno/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
  236. package/templates/viteuno/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  237. package/templates/viteuno/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  238. package/templates/viteuno/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
  239. package/templates/viteuno/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  240. package/templates/viteuno/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  241. package/templates/viteuno/src-tauri/icons/icon.icns +0 -0
  242. package/templates/viteuno/src-tauri/icons/icon.ico +0 -0
  243. package/templates/viteuno/src-tauri/icons/icon.png +0 -0
  244. package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@1x.png +0 -0
  245. package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@2x-1.png +0 -0
  246. package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@2x.png +0 -0
  247. package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@3x.png +0 -0
  248. package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@1x.png +0 -0
  249. package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@2x-1.png +0 -0
  250. package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@2x.png +0 -0
  251. package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@3x.png +0 -0
  252. package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@1x.png +0 -0
  253. package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@2x-1.png +0 -0
  254. package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@2x.png +0 -0
  255. package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@3x.png +0 -0
  256. package/templates/viteuno/src-tauri/icons/ios/AppIcon-512@2x.png +0 -0
  257. package/templates/viteuno/src-tauri/icons/ios/AppIcon-60x60@2x.png +0 -0
  258. package/templates/viteuno/src-tauri/icons/ios/AppIcon-60x60@3x.png +0 -0
  259. package/templates/viteuno/src-tauri/icons/ios/AppIcon-76x76@1x.png +0 -0
  260. package/templates/viteuno/src-tauri/icons/ios/AppIcon-76x76@2x.png +0 -0
  261. package/templates/viteuno/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png +0 -0
  262. package/templates/viteuno/src-tauri/src/main.rs +0 -16
  263. package/templates/viteuno/src-tauri/tauri.conf.json +0 -79
  264. package/templates/viteuno/tsconfig.json +0 -26
  265. package/templates/viteuno/tsconfig.node.json +0 -9
  266. package/templates/viteuno/uno.config.ts +0 -111
  267. package/templates/viteuno/vite.config.ts +0 -33
  268. /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" />