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,12 +1,12 @@
1
1
  "use client"
2
2
 
3
- import { useCallback } from "react"
3
+ import { useCallback, useEffect, useState } from "react"
4
4
  import Image from "next/image"
5
5
  import { usePathname } from "next/navigation"
6
6
  import logo from "@/assets/logo.png"
7
- import { Globe, Maximize, Mic, Music2, Sailboat, X, Zap } from "lucide-react"
7
+ import { Globe, Mic, Sailboat } from "lucide-react"
8
+ import { WindowControls, WindowTitlebar } from "tauri-controls"
8
9
 
9
- import { Button } from "@/components/ui/button"
10
10
  import {
11
11
  Menubar,
12
12
  MenubarCheckboxItem,
@@ -24,236 +24,200 @@ import {
24
24
  MenubarTrigger,
25
25
  } from "@/components/ui/menubar"
26
26
 
27
+ import { AboutDialog } from "./about-dialog"
27
28
  import { ExamplesNav } from "./examples-nav"
28
- import { Icons } from "./icons"
29
29
  import { MenuModeToggle } from "./menu-mode-toggle"
30
- import { ModeToggle } from "./mode-toggle"
30
+ import { Dialog, DialogTrigger } from "./ui/dialog"
31
31
 
32
32
  export function Menu() {
33
- const minimizeWindow = useCallback(async () => {
34
- const { appWindow } = await import("@tauri-apps/plugin-window")
35
-
36
- appWindow?.minimize()
37
- }, [])
38
-
39
- const maximizeWindow = useCallback(async () => {
40
- const { appWindow } = await import("@tauri-apps/plugin-window")
41
- const isMaximized = await appWindow?.isMaximized()
42
-
43
- if (isMaximized) {
44
- appWindow?.unmaximize()
45
- } else {
46
- appWindow?.maximize()
47
- }
48
- }, [])
49
-
50
33
  const closeWindow = useCallback(async () => {
51
34
  const { appWindow } = await import("@tauri-apps/plugin-window")
52
-
53
35
  appWindow.close()
54
36
  }, [])
55
37
 
56
38
  return (
57
- <Menubar className="rounded-none border-b border-none pl-2 lg:pl-3">
58
- {/* App Logo */}
59
- <MenubarMenu>
60
- <div className="inline-flex h-fit w-fit items-center text-cyan-500">
61
- {usePathname() === "/" || usePathname() === "/examples/music" ? (
62
- <Image src={logo} alt="logo" width={40} />
63
- ) : (
64
- <Sailboat className="h-5 w-5" />
65
- )}
66
- </div>
67
- </MenubarMenu>
39
+ <WindowTitlebar
40
+ // controlsOrder="system"
41
+ // windowControlsProps={{ platform: "macos" }}
42
+ >
43
+ <Menubar className="rounded-none border-b border-none pl-2 lg:pl-3">
44
+ <MenubarMenu>
45
+ {/* App Logo */}
46
+ <div className="inline-flex h-fit w-fit items-center text-cyan-500">
47
+ {usePathname() === "/" || usePathname() === "/examples/music" ? (
48
+ <Image src={logo} alt="logo" width={20} height={20} />
49
+ ) : (
50
+ <Sailboat className="h-5 w-5" />
51
+ )}
52
+ </div>
53
+ </MenubarMenu>
68
54
 
69
- <MenubarMenu>
70
- <MenubarTrigger className="font-bold">App</MenubarTrigger>
71
- <MenubarContent>
72
- <MenubarItem>About App</MenubarItem>
73
- <MenubarSeparator />
74
- <MenubarItem>
75
- Preferences... <MenubarShortcut>⌘,</MenubarShortcut>
76
- </MenubarItem>
77
- <MenubarSeparator />
78
- <MenubarItem>
79
- Hide Music... <MenubarShortcut>⌘H</MenubarShortcut>
80
- </MenubarItem>
81
- <MenubarItem>
82
- Hide Others... <MenubarShortcut>⇧⌘H</MenubarShortcut>
83
- </MenubarItem>
84
- <MenubarShortcut />
85
- <MenubarItem onClick={closeWindow}>
86
- Quit Music <MenubarShortcut>⌘Q</MenubarShortcut>
87
- </MenubarItem>
88
- </MenubarContent>
89
- </MenubarMenu>
90
- <MenubarMenu>
91
- <MenubarTrigger className="relative">File</MenubarTrigger>
92
- <MenubarContent>
93
- <MenubarSub>
94
- <MenubarSubTrigger>New</MenubarSubTrigger>
95
- <MenubarSubContent className="w-[230px]">
55
+ <MenubarMenu>
56
+ <MenubarTrigger className="font-bold">App</MenubarTrigger>
57
+ <Dialog modal={false}>
58
+ <MenubarContent>
59
+ <DialogTrigger asChild>
60
+ <MenubarItem>About App</MenubarItem>
61
+ </DialogTrigger>
62
+
63
+ <MenubarSeparator />
96
64
  <MenubarItem>
97
- Playlist <MenubarShortcut>⌘N</MenubarShortcut>
65
+ Preferences... <MenubarShortcut>⌘,</MenubarShortcut>
98
66
  </MenubarItem>
99
- <MenubarItem disabled>
100
- Playlist from Selection <MenubarShortcut>⇧⌘N</MenubarShortcut>
67
+ <MenubarSeparator />
68
+ <MenubarItem>
69
+ Hide Music... <MenubarShortcut>⌘H</MenubarShortcut>
101
70
  </MenubarItem>
102
71
  <MenubarItem>
103
- Smart Playlist... <MenubarShortcut>⌥⌘N</MenubarShortcut>
72
+ Hide Others... <MenubarShortcut>⇧⌘H</MenubarShortcut>
104
73
  </MenubarItem>
105
- <MenubarItem>Playlist Folder</MenubarItem>
106
- <MenubarItem disabled>Genius Playlist</MenubarItem>
107
- </MenubarSubContent>
108
- </MenubarSub>
109
- <MenubarItem>
110
- Open Stream URL... <MenubarShortcut>⌘U</MenubarShortcut>
111
- </MenubarItem>
112
- <MenubarItem>
113
- Close Window <MenubarShortcut>⌘W</MenubarShortcut>
114
- </MenubarItem>
115
- <MenubarSeparator />
116
- <MenubarSub>
117
- <MenubarSubTrigger>Library</MenubarSubTrigger>
118
- <MenubarSubContent>
119
- <MenubarItem>Update Cloud Library</MenubarItem>
120
- <MenubarItem>Update Genius</MenubarItem>
121
- <MenubarSeparator />
122
- <MenubarItem>Organize Library...</MenubarItem>
123
- <MenubarItem>Export Library...</MenubarItem>
124
- <MenubarSeparator />
125
- <MenubarItem>Import Playlist...</MenubarItem>
126
- <MenubarItem disabled>Export Playlist...</MenubarItem>
127
- <MenubarItem>Show Duplicate Items</MenubarItem>
128
- <MenubarSeparator />
129
- <MenubarItem>Get Album Artwork</MenubarItem>
130
- <MenubarItem disabled>Get Track Names</MenubarItem>
131
- </MenubarSubContent>
132
- </MenubarSub>
133
- <MenubarItem>
134
- Import... <MenubarShortcut>⌘O</MenubarShortcut>
135
- </MenubarItem>
136
- <MenubarItem disabled>Burn Playlist to Disc...</MenubarItem>
137
- <MenubarSeparator />
138
- <MenubarItem>
139
- Show in Finder <MenubarShortcut>⇧⌘R</MenubarShortcut>{" "}
140
- </MenubarItem>
141
- <MenubarItem>Convert</MenubarItem>
142
- <MenubarSeparator />
143
- <MenubarItem>Page Setup...</MenubarItem>
144
- <MenubarItem disabled>
145
- Print... <MenubarShortcut>⌘P</MenubarShortcut>
146
- </MenubarItem>
147
- </MenubarContent>
148
- </MenubarMenu>
149
- <MenubarMenu>
150
- <MenubarTrigger>Edit</MenubarTrigger>
151
- <MenubarContent>
152
- <MenubarItem disabled>
153
- Undo <MenubarShortcut>⌘Z</MenubarShortcut>
154
- </MenubarItem>
155
- <MenubarItem disabled>
156
- Redo <MenubarShortcut>⇧⌘Z</MenubarShortcut>
157
- </MenubarItem>
158
- <MenubarSeparator />
159
- <MenubarItem disabled>
160
- Cut <MenubarShortcut>⌘X</MenubarShortcut>
161
- </MenubarItem>
162
- <MenubarItem disabled>
163
- Copy <MenubarShortcut>⌘C</MenubarShortcut>
164
- </MenubarItem>
165
- <MenubarItem disabled>
166
- Paste <MenubarShortcut>⌘V</MenubarShortcut>
167
- </MenubarItem>
168
- <MenubarSeparator />
169
- <MenubarItem>
170
- Select All <MenubarShortcut>⌘A</MenubarShortcut>
171
- </MenubarItem>
172
- <MenubarItem disabled>
173
- Deselect All <MenubarShortcut>⇧⌘A</MenubarShortcut>
174
- </MenubarItem>
175
- <MenubarSeparator />
176
- <MenubarItem>
177
- Smart Dictation...{" "}
178
- <MenubarShortcut>
179
- <Mic className="h-4 w-4" />
180
- </MenubarShortcut>
181
- </MenubarItem>
182
- <MenubarItem>
183
- Emoji & Symbols{" "}
184
- <MenubarShortcut>
185
- <Globe className="h-4 w-4" />
186
- </MenubarShortcut>
187
- </MenubarItem>
188
- </MenubarContent>
189
- </MenubarMenu>
190
- <MenubarMenu>
191
- <MenubarTrigger>View</MenubarTrigger>
192
- <MenubarContent>
193
- <MenubarCheckboxItem>Show Playing Next</MenubarCheckboxItem>
194
- <MenubarCheckboxItem checked>Show Lyrics</MenubarCheckboxItem>
195
- <MenubarSeparator />
196
- <MenubarItem inset disabled>
197
- Show Status Bar
198
- </MenubarItem>
199
- <MenubarSeparator />
200
- <MenubarItem inset>Hide Sidebar</MenubarItem>
201
- <MenubarItem disabled inset>
202
- Enter Full Screen
203
- </MenubarItem>
204
- </MenubarContent>
205
- </MenubarMenu>
206
- <MenubarMenu>
207
- <MenubarTrigger>Account</MenubarTrigger>
208
- <MenubarContent forceMount>
209
- <MenubarLabel inset>Switch Account</MenubarLabel>
210
- <MenubarSeparator />
211
- <MenubarRadioGroup value="benoit">
212
- <MenubarRadioItem value="andy">Andy</MenubarRadioItem>
213
- <MenubarRadioItem value="benoit">Benoit</MenubarRadioItem>
214
- <MenubarRadioItem value="Luis">Luis</MenubarRadioItem>
215
- </MenubarRadioGroup>
216
- <MenubarSeparator />
217
- <MenubarItem inset>Manage Famliy...</MenubarItem>
218
- <MenubarSeparator />
219
- <MenubarItem inset>Add Account...</MenubarItem>
220
- </MenubarContent>
221
- </MenubarMenu>
74
+ <MenubarShortcut />
75
+ <MenubarItem onClick={closeWindow}>
76
+ Quit Music <MenubarShortcut>⌘Q</MenubarShortcut>
77
+ </MenubarItem>
78
+ </MenubarContent>
222
79
 
223
- <MenuModeToggle />
80
+ <AboutDialog />
81
+ </Dialog>
82
+ </MenubarMenu>
224
83
 
225
- <ExamplesNav />
84
+ <MenubarMenu>
85
+ <MenubarTrigger className="relative">File</MenubarTrigger>
86
+ <MenubarContent>
87
+ <MenubarSub>
88
+ <MenubarSubTrigger>New</MenubarSubTrigger>
89
+ <MenubarSubContent className="w-[230px]">
90
+ <MenubarItem>
91
+ Playlist <MenubarShortcut>⌘N</MenubarShortcut>
92
+ </MenubarItem>
93
+ <MenubarItem disabled>
94
+ Playlist from Selection <MenubarShortcut>⇧⌘N</MenubarShortcut>
95
+ </MenubarItem>
96
+ <MenubarItem>
97
+ Smart Playlist... <MenubarShortcut>⌥⌘N</MenubarShortcut>
98
+ </MenubarItem>
99
+ <MenubarItem>Playlist Folder</MenubarItem>
100
+ <MenubarItem disabled>Genius Playlist</MenubarItem>
101
+ </MenubarSubContent>
102
+ </MenubarSub>
103
+ <MenubarItem>
104
+ Open Stream URL... <MenubarShortcut>⌘U</MenubarShortcut>
105
+ </MenubarItem>
106
+ <MenubarItem>
107
+ Close Window <MenubarShortcut>⌘W</MenubarShortcut>
108
+ </MenubarItem>
109
+ <MenubarSeparator />
110
+ <MenubarSub>
111
+ <MenubarSubTrigger>Library</MenubarSubTrigger>
112
+ <MenubarSubContent>
113
+ <MenubarItem>Update Cloud Library</MenubarItem>
114
+ <MenubarItem>Update Genius</MenubarItem>
115
+ <MenubarSeparator />
116
+ <MenubarItem>Organize Library...</MenubarItem>
117
+ <MenubarItem>Export Library...</MenubarItem>
118
+ <MenubarSeparator />
119
+ <MenubarItem>Import Playlist...</MenubarItem>
120
+ <MenubarItem disabled>Export Playlist...</MenubarItem>
121
+ <MenubarItem>Show Duplicate Items</MenubarItem>
122
+ <MenubarSeparator />
123
+ <MenubarItem>Get Album Artwork</MenubarItem>
124
+ <MenubarItem disabled>Get Track Names</MenubarItem>
125
+ </MenubarSubContent>
126
+ </MenubarSub>
127
+ <MenubarItem>
128
+ Import... <MenubarShortcut>⌘O</MenubarShortcut>
129
+ </MenubarItem>
130
+ <MenubarItem disabled>Burn Playlist to Disc...</MenubarItem>
131
+ <MenubarSeparator />
132
+ <MenubarItem>
133
+ Show in Finder <MenubarShortcut>⇧⌘R</MenubarShortcut>{" "}
134
+ </MenubarItem>
135
+ <MenubarItem>Convert</MenubarItem>
136
+ <MenubarSeparator />
137
+ <MenubarItem>Page Setup...</MenubarItem>
138
+ <MenubarItem disabled>
139
+ Print... <MenubarShortcut>⌘P</MenubarShortcut>
140
+ </MenubarItem>
141
+ </MenubarContent>
142
+ </MenubarMenu>
143
+ <MenubarMenu>
144
+ <MenubarTrigger>Edit</MenubarTrigger>
145
+ <MenubarContent>
146
+ <MenubarItem disabled>
147
+ Undo <MenubarShortcut>⌘Z</MenubarShortcut>
148
+ </MenubarItem>
149
+ <MenubarItem disabled>
150
+ Redo <MenubarShortcut>⇧⌘Z</MenubarShortcut>
151
+ </MenubarItem>
152
+ <MenubarSeparator />
153
+ <MenubarItem disabled>
154
+ Cut <MenubarShortcut>⌘X</MenubarShortcut>
155
+ </MenubarItem>
156
+ <MenubarItem disabled>
157
+ Copy <MenubarShortcut>⌘C</MenubarShortcut>
158
+ </MenubarItem>
159
+ <MenubarItem disabled>
160
+ Paste <MenubarShortcut>⌘V</MenubarShortcut>
161
+ </MenubarItem>
162
+ <MenubarSeparator />
163
+ <MenubarItem>
164
+ Select All <MenubarShortcut>⌘A</MenubarShortcut>
165
+ </MenubarItem>
166
+ <MenubarItem disabled>
167
+ Deselect All <MenubarShortcut>⇧⌘A</MenubarShortcut>
168
+ </MenubarItem>
169
+ <MenubarSeparator />
170
+ <MenubarItem>
171
+ Smart Dictation...{" "}
172
+ <MenubarShortcut>
173
+ <Mic className="h-4 w-4" />
174
+ </MenubarShortcut>
175
+ </MenubarItem>
176
+ <MenubarItem>
177
+ Emoji & Symbols{" "}
178
+ <MenubarShortcut>
179
+ <Globe className="h-4 w-4" />
180
+ </MenubarShortcut>
181
+ </MenubarItem>
182
+ </MenubarContent>
183
+ </MenubarMenu>
184
+ <MenubarMenu>
185
+ <MenubarTrigger>View</MenubarTrigger>
186
+ <MenubarContent>
187
+ <MenubarCheckboxItem>Show Playing Next</MenubarCheckboxItem>
188
+ <MenubarCheckboxItem checked>Show Lyrics</MenubarCheckboxItem>
189
+ <MenubarSeparator />
190
+ <MenubarItem inset disabled>
191
+ Show Status Bar
192
+ </MenubarItem>
193
+ <MenubarSeparator />
194
+ <MenubarItem inset>Hide Sidebar</MenubarItem>
195
+ <MenubarItem disabled inset>
196
+ Enter Full Screen
197
+ </MenubarItem>
198
+ </MenubarContent>
199
+ </MenubarMenu>
200
+ <MenubarMenu>
201
+ <MenubarTrigger>Account</MenubarTrigger>
202
+ <MenubarContent forceMount>
203
+ <MenubarLabel inset>Switch Account</MenubarLabel>
204
+ <MenubarSeparator />
205
+ <MenubarRadioGroup value="benoit">
206
+ <MenubarRadioItem value="andy">Andy</MenubarRadioItem>
207
+ <MenubarRadioItem value="benoit">Benoit</MenubarRadioItem>
208
+ <MenubarRadioItem value="Luis">Luis</MenubarRadioItem>
209
+ </MenubarRadioGroup>
210
+ <MenubarSeparator />
211
+ <MenubarItem inset>Manage Famliy...</MenubarItem>
212
+ <MenubarSeparator />
213
+ <MenubarItem inset>Add Account...</MenubarItem>
214
+ </MenubarContent>
215
+ </MenubarMenu>
226
216
 
227
- <div
228
- data-tauri-drag-region
229
- className="inline-flex h-full w-full justify-end"
230
- >
231
- {/* <div className="pr-3">
232
- <ModeToggle />
233
- </div> */}
217
+ <MenuModeToggle />
234
218
 
235
- <Button
236
- onClick={minimizeWindow}
237
- variant="ghost"
238
- className="h-8 focus:outline-none"
239
- >
240
- <Icons.minimize className="h-3 w-3" />
241
- </Button>
242
- <Button
243
- onClick={maximizeWindow}
244
- variant="ghost"
245
- className="h-8 focus:outline-none"
246
- >
247
- <Maximize className="h-4 w-4" />
248
- </Button>
249
- <Button
250
- onClick={closeWindow}
251
- variant="ghost"
252
- className="h-8 focus:outline-none"
253
- >
254
- <X className="h-4 w-4" />
255
- </Button>
256
- </div>
257
- </Menubar>
219
+ <ExamplesNav />
220
+ </Menubar>
221
+ </WindowTitlebar>
258
222
  )
259
223
  }
@@ -1,3 +1,5 @@
1
+ "use client"
2
+
1
3
  import Balance from "react-wrap-balancer"
2
4
 
3
5
  import { cn } from "@/lib/utils"
@@ -1,60 +1,60 @@
1
- "use client"
2
-
3
- import * as React from "react"
4
- import * as AccordionPrimitive from "@radix-ui/react-accordion"
5
- import { ChevronDown } from "lucide-react"
6
-
7
- import { cn } from "@/lib/utils"
8
-
9
- const Accordion = AccordionPrimitive.Root
10
-
11
- const AccordionItem = React.forwardRef<
12
- React.ElementRef<typeof AccordionPrimitive.Item>,
13
- React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>
14
- >(({ className, ...props }, ref) => (
15
- <AccordionPrimitive.Item
16
- ref={ref}
17
- className={cn("border-b", className)}
18
- {...props}
19
- />
20
- ))
21
- AccordionItem.displayName = "AccordionItem"
22
-
23
- const AccordionTrigger = React.forwardRef<
24
- React.ElementRef<typeof AccordionPrimitive.Trigger>,
25
- React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>
26
- >(({ className, children, ...props }, ref) => (
27
- <AccordionPrimitive.Header className="flex">
28
- <AccordionPrimitive.Trigger
29
- ref={ref}
30
- className={cn(
31
- "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
32
- className
33
- )}
34
- {...props}
35
- >
36
- {children}
37
- <ChevronDown className="h-4 w-4 shrink-0 transition-transform duration-200" />
38
- </AccordionPrimitive.Trigger>
39
- </AccordionPrimitive.Header>
40
- ))
41
- AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName
42
-
43
- const AccordionContent = React.forwardRef<
44
- React.ElementRef<typeof AccordionPrimitive.Content>,
45
- React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>
46
- >(({ className, children, ...props }, ref) => (
47
- <AccordionPrimitive.Content
48
- ref={ref}
49
- className={cn(
50
- "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
51
- className
52
- )}
53
- {...props}
54
- >
55
- <div className="pb-4 pt-0">{children}</div>
56
- </AccordionPrimitive.Content>
57
- ))
58
- AccordionContent.displayName = AccordionPrimitive.Content.displayName
59
-
60
- export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import * as AccordionPrimitive from "@radix-ui/react-accordion"
5
+ import { ChevronDown } from "lucide-react"
6
+
7
+ import { cn } from "@/lib/utils"
8
+
9
+ const Accordion = AccordionPrimitive.Root
10
+
11
+ const AccordionItem = React.forwardRef<
12
+ React.ElementRef<typeof AccordionPrimitive.Item>,
13
+ React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>
14
+ >(({ className, ...props }, ref) => (
15
+ <AccordionPrimitive.Item
16
+ ref={ref}
17
+ className={cn("border-b", className)}
18
+ {...props}
19
+ />
20
+ ))
21
+ AccordionItem.displayName = "AccordionItem"
22
+
23
+ const AccordionTrigger = React.forwardRef<
24
+ React.ElementRef<typeof AccordionPrimitive.Trigger>,
25
+ React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>
26
+ >(({ className, children, ...props }, ref) => (
27
+ <AccordionPrimitive.Header className="flex">
28
+ <AccordionPrimitive.Trigger
29
+ ref={ref}
30
+ className={cn(
31
+ "flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
32
+ className
33
+ )}
34
+ {...props}
35
+ >
36
+ {children}
37
+ <ChevronDown className="h-4 w-4 shrink-0 transition-transform duration-200" />
38
+ </AccordionPrimitive.Trigger>
39
+ </AccordionPrimitive.Header>
40
+ ))
41
+ AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName
42
+
43
+ const AccordionContent = React.forwardRef<
44
+ React.ElementRef<typeof AccordionPrimitive.Content>,
45
+ React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>
46
+ >(({ className, children, ...props }, ref) => (
47
+ <AccordionPrimitive.Content
48
+ ref={ref}
49
+ className={cn(
50
+ "overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
51
+ className
52
+ )}
53
+ {...props}
54
+ >
55
+ <div className="pb-4 pt-0">{children}</div>
56
+ </AccordionPrimitive.Content>
57
+ ))
58
+ AccordionContent.displayName = AccordionPrimitive.Content.displayName
59
+
60
+ export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }