create-tauri-ui 0.1.4 → 0.2.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 (496) hide show
  1. package/README.md +56 -13
  2. package/dist/index.mjs +26 -27
  3. package/index.js +1 -1
  4. package/package.json +54 -63
  5. package/templates/.shared/.github/workflows/release.yml +112 -0
  6. package/templates/.shared/app-icon.png +0 -0
  7. package/templates/.shared/src-tauri/Cargo.lock +3701 -0
  8. package/templates/.shared/src-tauri/Cargo.toml +36 -0
  9. package/templates/.shared/src-tauri/build.rs +3 -0
  10. package/templates/.shared/src-tauri/icons/128x128.png +0 -0
  11. package/templates/.shared/src-tauri/icons/128x128@2x.png +0 -0
  12. package/templates/.shared/src-tauri/icons/32x32.png +0 -0
  13. package/templates/.shared/src-tauri/icons/Square107x107Logo.png +0 -0
  14. package/templates/.shared/src-tauri/icons/Square142x142Logo.png +0 -0
  15. package/templates/.shared/src-tauri/icons/Square150x150Logo.png +0 -0
  16. package/templates/.shared/src-tauri/icons/Square284x284Logo.png +0 -0
  17. package/templates/.shared/src-tauri/icons/Square30x30Logo.png +0 -0
  18. package/templates/.shared/src-tauri/icons/Square310x310Logo.png +0 -0
  19. package/templates/.shared/src-tauri/icons/Square44x44Logo.png +0 -0
  20. package/templates/.shared/src-tauri/icons/Square71x71Logo.png +0 -0
  21. package/templates/.shared/src-tauri/icons/Square89x89Logo.png +0 -0
  22. package/templates/.shared/src-tauri/icons/StoreLogo.png +0 -0
  23. package/templates/.shared/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png +0 -0
  24. package/templates/.shared/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  25. package/templates/.shared/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png +0 -0
  26. package/templates/.shared/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png +0 -0
  27. package/templates/.shared/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  28. package/templates/.shared/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png +0 -0
  29. package/templates/.shared/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png +0 -0
  30. package/templates/.shared/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  31. package/templates/.shared/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png +0 -0
  32. package/templates/.shared/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
  33. package/templates/.shared/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  34. package/templates/.shared/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  35. package/templates/.shared/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
  36. package/templates/.shared/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  37. package/templates/.shared/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  38. package/templates/.shared/src-tauri/icons/icon.icns +0 -0
  39. package/templates/.shared/src-tauri/icons/icon.ico +0 -0
  40. package/templates/.shared/src-tauri/icons/icon.png +0 -0
  41. package/templates/.shared/src-tauri/icons/ios/AppIcon-20x20@1x.png +0 -0
  42. package/templates/.shared/src-tauri/icons/ios/AppIcon-20x20@2x-1.png +0 -0
  43. package/templates/.shared/src-tauri/icons/ios/AppIcon-20x20@2x.png +0 -0
  44. package/templates/.shared/src-tauri/icons/ios/AppIcon-20x20@3x.png +0 -0
  45. package/templates/.shared/src-tauri/icons/ios/AppIcon-29x29@1x.png +0 -0
  46. package/templates/.shared/src-tauri/icons/ios/AppIcon-29x29@2x-1.png +0 -0
  47. package/templates/.shared/src-tauri/icons/ios/AppIcon-29x29@2x.png +0 -0
  48. package/templates/.shared/src-tauri/icons/ios/AppIcon-29x29@3x.png +0 -0
  49. package/templates/.shared/src-tauri/icons/ios/AppIcon-40x40@1x.png +0 -0
  50. package/templates/.shared/src-tauri/icons/ios/AppIcon-40x40@2x-1.png +0 -0
  51. package/templates/.shared/src-tauri/icons/ios/AppIcon-40x40@2x.png +0 -0
  52. package/templates/.shared/src-tauri/icons/ios/AppIcon-40x40@3x.png +0 -0
  53. package/templates/.shared/src-tauri/icons/ios/AppIcon-512@2x.png +0 -0
  54. package/templates/.shared/src-tauri/icons/ios/AppIcon-60x60@2x.png +0 -0
  55. package/templates/.shared/src-tauri/icons/ios/AppIcon-60x60@3x.png +0 -0
  56. package/templates/.shared/src-tauri/icons/ios/AppIcon-76x76@1x.png +0 -0
  57. package/templates/.shared/src-tauri/icons/ios/AppIcon-76x76@2x.png +0 -0
  58. package/templates/.shared/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png +0 -0
  59. package/templates/.shared/src-tauri/src/main.rs +19 -0
  60. package/templates/.shared/src-tauri/tauri.conf.json +79 -0
  61. package/templates/next/.env +1 -1
  62. package/templates/next/.github/workflows/release.yml +108 -108
  63. package/templates/next/.vscode/extensions.json +3 -3
  64. package/templates/next/README.md +95 -88
  65. package/templates/next/components.json +16 -0
  66. package/templates/next/next-env.d.ts +5 -5
  67. package/templates/next/next.config.js +14 -17
  68. package/templates/next/package.json +83 -82
  69. package/templates/next/pnpm-lock.yaml +4869 -4754
  70. package/templates/next/postcss.config.js +6 -6
  71. package/templates/next/prettier.config.js +35 -35
  72. package/templates/next/src/app/examples/authentication/components/user-auth-form.tsx +1 -1
  73. package/templates/next/src/app/examples/authentication/page.tsx +67 -59
  74. package/templates/next/src/app/examples/cards/components/create-account.tsx +1 -1
  75. package/templates/next/src/app/examples/cards/components/date-picker.tsx +2 -2
  76. package/templates/next/src/app/examples/cards/components/github-card.tsx +15 -10
  77. package/templates/next/src/app/examples/cards/components/notifications.tsx +9 -9
  78. package/templates/next/src/app/examples/cards/components/payment-method.tsx +14 -4
  79. package/templates/next/src/app/examples/cards/components/report-an-issue.tsx +4 -1
  80. package/templates/next/src/app/examples/cards/components/share-document.tsx +5 -1
  81. package/templates/next/src/app/examples/cards/components/team-members.tsx +8 -4
  82. package/templates/next/src/app/examples/cards/page.tsx +37 -36
  83. package/templates/next/src/app/examples/dashboard/components/date-range-picker.tsx +2 -3
  84. package/templates/next/src/app/examples/dashboard/components/main-nav.tsx +10 -8
  85. package/templates/next/src/app/examples/dashboard/components/recent-sales.tsx +5 -1
  86. package/templates/next/src/app/examples/dashboard/components/search.tsx +1 -1
  87. package/templates/next/src/app/examples/dashboard/components/team-switcher.tsx +15 -7
  88. package/templates/next/src/app/examples/dashboard/components/user-nav.tsx +10 -15
  89. package/templates/next/src/app/examples/dashboard/page.tsx +164 -114
  90. package/templates/next/src/app/examples/forms/account/account-form.tsx +13 -13
  91. package/templates/next/src/app/examples/forms/appearance/appearance-form.tsx +5 -5
  92. package/templates/next/src/app/examples/forms/components/sidebar-nav.tsx +3 -2
  93. package/templates/next/src/app/examples/forms/display/display-form.tsx +2 -2
  94. package/templates/next/src/app/examples/forms/layout.tsx +16 -14
  95. package/templates/next/src/app/examples/forms/notifications/notifications-form.tsx +6 -5
  96. package/templates/next/src/app/examples/forms/notifications/page.tsx +0 -1
  97. package/templates/next/src/app/examples/forms/profile-form.tsx +16 -15
  98. package/templates/next/src/app/examples/layout.tsx +7 -7
  99. package/templates/next/src/app/examples/music/components/album-artwork.tsx +15 -4
  100. package/templates/next/src/app/examples/music/components/menu.tsx +27 -5
  101. package/templates/next/src/app/examples/music/components/podcast-empty-placeholder.tsx +15 -4
  102. package/templates/next/src/app/examples/music/components/sidebar.tsx +147 -43
  103. package/templates/next/src/app/examples/music/page.tsx +113 -106
  104. package/templates/next/src/app/examples/playground/components/model-selector.tsx +3 -3
  105. package/templates/next/src/app/examples/playground/components/preset-actions.tsx +2 -4
  106. package/templates/next/src/app/examples/playground/components/preset-selector.tsx +4 -4
  107. package/templates/next/src/app/examples/playground/components/preset-share.tsx +2 -2
  108. package/templates/next/src/app/examples/playground/page.tsx +268 -115
  109. package/templates/next/src/app/examples/tasks/components/data-table-column-header.tsx +12 -7
  110. package/templates/next/src/app/examples/tasks/components/data-table-faceted-filter.tsx +4 -4
  111. package/templates/next/src/app/examples/tasks/components/data-table-pagination.tsx +10 -10
  112. package/templates/next/src/app/examples/tasks/components/data-table-row-actions.tsx +6 -19
  113. package/templates/next/src/app/examples/tasks/components/data-table-toolbar.tsx +3 -5
  114. package/templates/next/src/app/examples/tasks/components/data-table-view-options.tsx +2 -2
  115. package/templates/next/src/app/examples/tasks/components/user-nav.tsx +10 -15
  116. package/templates/next/src/app/examples/tasks/data/data.tsx +17 -17
  117. package/templates/next/src/app/examples/tasks/data/tasks.json +1 -1
  118. package/templates/next/src/app/examples/tasks/page.tsx +14 -12
  119. package/templates/next/src/app/layout.tsx +47 -43
  120. package/templates/next/src/app/page.tsx +5 -5
  121. package/templates/next/src/components/{examples/date-picker/with-range.tsx → example/date-picker-with-range.tsx} +1 -1
  122. package/templates/next/src/components/examples-nav.tsx +70 -70
  123. package/templates/next/src/components/greeting.tsx +21 -21
  124. package/templates/next/src/components/icons.tsx +154 -154
  125. package/templates/next/src/components/menu-mode-toggle.tsx +46 -46
  126. package/templates/next/src/components/menu.tsx +259 -259
  127. package/templates/next/src/components/mode-toggle.tsx +43 -43
  128. package/templates/next/src/components/page-header.tsx +50 -50
  129. package/templates/next/src/components/style-switcher.tsx +19 -19
  130. package/templates/next/src/components/tailwind-indicator.tsx +18 -18
  131. package/templates/next/src/components/theme-provider.tsx +9 -9
  132. package/templates/next/src/components/ui/accordion.tsx +1 -1
  133. package/templates/next/src/components/ui/alert-dialog.tsx +3 -8
  134. package/templates/next/src/components/ui/alert.tsx +3 -5
  135. package/templates/next/src/components/ui/badge.tsx +5 -5
  136. package/templates/next/src/components/ui/button.tsx +15 -10
  137. package/templates/next/src/components/ui/card.tsx +1 -3
  138. package/templates/next/src/components/ui/checkbox.tsx +2 -2
  139. package/templates/next/src/components/ui/command.tsx +2 -2
  140. package/templates/next/src/components/ui/context-menu.tsx +6 -6
  141. package/templates/next/src/components/ui/dialog.tsx +4 -9
  142. package/templates/next/src/components/ui/dropdown-menu.tsx +6 -6
  143. package/templates/next/src/components/ui/hover-card.tsx +1 -1
  144. package/templates/next/src/components/ui/input.tsx +1 -3
  145. package/templates/next/src/components/ui/label.tsx +1 -1
  146. package/templates/next/src/components/ui/menubar.tsx +7 -7
  147. package/templates/next/src/components/ui/navigation-menu.tsx +2 -4
  148. package/templates/next/src/components/ui/popover.tsx +1 -1
  149. package/templates/next/src/components/ui/radio-group.tsx +2 -2
  150. package/templates/next/src/components/ui/select.tsx +4 -3
  151. package/templates/next/src/components/ui/sheet.tsx +22 -108
  152. package/templates/next/src/components/ui/skeleton.tsx +0 -2
  153. package/templates/next/src/components/ui/switch.tsx +1 -1
  154. package/templates/next/src/components/ui/table.tsx +1 -1
  155. package/templates/next/src/components/ui/tabs.tsx +1 -1
  156. package/templates/next/src/components/ui/textarea.tsx +1 -3
  157. package/templates/next/src/components/ui/toast.tsx +6 -8
  158. package/templates/next/src/components/ui/toggle.tsx +3 -3
  159. package/templates/next/src/components/ui/tooltip.tsx +1 -1
  160. package/templates/next/src/components/ui/use-toast.ts +5 -4
  161. package/templates/next/src/data/albums.ts +71 -71
  162. package/templates/next/src/data/playlists.ts +16 -16
  163. package/templates/next/src/lib/utils.ts +6 -19
  164. package/templates/next/src/styles/globals.css +86 -124
  165. package/templates/next/src-tauri/Cargo.lock +3701 -3637
  166. package/templates/next/src-tauri/Cargo.toml +36 -36
  167. package/templates/next/src-tauri/build.rs +3 -3
  168. package/templates/next/src-tauri/icons/128x128.png +0 -0
  169. package/templates/next/src-tauri/icons/128x128@2x.png +0 -0
  170. package/templates/next/src-tauri/icons/32x32.png +0 -0
  171. package/templates/next/src-tauri/icons/Square107x107Logo.png +0 -0
  172. package/templates/next/src-tauri/icons/Square142x142Logo.png +0 -0
  173. package/templates/next/src-tauri/icons/Square150x150Logo.png +0 -0
  174. package/templates/next/src-tauri/icons/Square284x284Logo.png +0 -0
  175. package/templates/next/src-tauri/icons/Square30x30Logo.png +0 -0
  176. package/templates/next/src-tauri/icons/Square310x310Logo.png +0 -0
  177. package/templates/next/src-tauri/icons/Square44x44Logo.png +0 -0
  178. package/templates/next/src-tauri/icons/Square71x71Logo.png +0 -0
  179. package/templates/next/src-tauri/icons/Square89x89Logo.png +0 -0
  180. package/templates/next/src-tauri/icons/StoreLogo.png +0 -0
  181. package/templates/next/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png +0 -0
  182. package/templates/next/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  183. package/templates/next/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png +0 -0
  184. package/templates/next/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png +0 -0
  185. package/templates/next/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  186. package/templates/next/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png +0 -0
  187. package/templates/next/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png +0 -0
  188. package/templates/next/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  189. package/templates/next/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png +0 -0
  190. package/templates/next/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
  191. package/templates/next/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  192. package/templates/next/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  193. package/templates/next/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
  194. package/templates/next/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  195. package/templates/next/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  196. package/templates/next/src-tauri/icons/icon.icns +0 -0
  197. package/templates/next/src-tauri/icons/icon.ico +0 -0
  198. package/templates/next/src-tauri/icons/icon.png +0 -0
  199. package/templates/next/src-tauri/icons/ios/AppIcon-20x20@1x.png +0 -0
  200. package/templates/next/src-tauri/icons/ios/AppIcon-20x20@2x-1.png +0 -0
  201. package/templates/next/src-tauri/icons/ios/AppIcon-20x20@2x.png +0 -0
  202. package/templates/next/src-tauri/icons/ios/AppIcon-20x20@3x.png +0 -0
  203. package/templates/next/src-tauri/icons/ios/AppIcon-29x29@1x.png +0 -0
  204. package/templates/next/src-tauri/icons/ios/AppIcon-29x29@2x-1.png +0 -0
  205. package/templates/next/src-tauri/icons/ios/AppIcon-29x29@2x.png +0 -0
  206. package/templates/next/src-tauri/icons/ios/AppIcon-29x29@3x.png +0 -0
  207. package/templates/next/src-tauri/icons/ios/AppIcon-40x40@1x.png +0 -0
  208. package/templates/next/src-tauri/icons/ios/AppIcon-40x40@2x-1.png +0 -0
  209. package/templates/next/src-tauri/icons/ios/AppIcon-40x40@2x.png +0 -0
  210. package/templates/next/src-tauri/icons/ios/AppIcon-40x40@3x.png +0 -0
  211. package/templates/next/src-tauri/icons/ios/AppIcon-512@2x.png +0 -0
  212. package/templates/next/src-tauri/icons/ios/AppIcon-60x60@2x.png +0 -0
  213. package/templates/next/src-tauri/icons/ios/AppIcon-60x60@3x.png +0 -0
  214. package/templates/next/src-tauri/icons/ios/AppIcon-76x76@1x.png +0 -0
  215. package/templates/next/src-tauri/icons/ios/AppIcon-76x76@2x.png +0 -0
  216. package/templates/next/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png +0 -0
  217. package/templates/next/src-tauri/src/main.rs +19 -19
  218. package/templates/next/src-tauri/tauri.conf.json +79 -63
  219. package/templates/next/tailwind.config.js +78 -80
  220. package/templates/next/tsconfig.json +35 -35
  221. package/templates/sveltekit/.github/workflows/release.yml +108 -0
  222. package/templates/sveltekit/package.json +29 -29
  223. package/templates/sveltekit/src-tauri/Cargo.lock +268 -206
  224. package/templates/sveltekit/src-tauri/Cargo.toml +12 -10
  225. package/templates/sveltekit/src-tauri/build.rs +3 -3
  226. package/templates/sveltekit/src-tauri/tauri.conf.json +23 -6
  227. package/templates/vite/components.json +16 -0
  228. package/templates/vite/package.json +19 -18
  229. package/templates/vite/pnpm-lock.yaml +801 -696
  230. package/templates/vite/public/avatars/01.png +0 -0
  231. package/templates/vite/public/avatars/02.png +0 -0
  232. package/templates/vite/public/avatars/03.png +0 -0
  233. package/templates/vite/public/avatars/04.png +0 -0
  234. package/templates/vite/public/avatars/05.png +0 -0
  235. package/templates/vite/src/components/menu.tsx +1 -1
  236. package/templates/vite/src/dashboard/components/date-range-picker.tsx +2 -3
  237. package/templates/vite/src/dashboard/components/recent-sales.tsx +5 -1
  238. package/templates/vite/src/dashboard/components/search.tsx +1 -1
  239. package/templates/vite/src/dashboard/components/team-switcher.tsx +15 -7
  240. package/templates/vite/src/dashboard/components/user-nav.tsx +10 -15
  241. package/templates/vite/src/dashboard/page.tsx +172 -121
  242. package/templates/vite/src/styles/globals.css +1 -39
  243. package/templates/vite/src-tauri/Cargo.lock +302 -238
  244. package/templates/vite/src-tauri/Cargo.toml +11 -8
  245. package/templates/vite/src-tauri/build.rs +3 -3
  246. package/templates/vite/src-tauri/tauri.conf.json +79 -63
  247. package/templates/viteuno/.github/workflows/release.yml +108 -0
  248. package/templates/viteuno/.vscode/extensions.json +3 -0
  249. package/templates/viteuno/README.md +1 -0
  250. package/templates/viteuno/app-icon.png +0 -0
  251. package/templates/viteuno/components.json +16 -0
  252. package/templates/viteuno/index.html +16 -0
  253. package/templates/viteuno/package.json +73 -0
  254. package/templates/viteuno/pnpm-lock.yaml +5298 -0
  255. package/templates/viteuno/preset.shadcn.ts +160 -0
  256. package/templates/viteuno/prettier.config.cjs +34 -0
  257. package/templates/viteuno/public/avatars/01.png +0 -0
  258. package/templates/viteuno/public/avatars/02.png +0 -0
  259. package/templates/viteuno/public/avatars/03.png +0 -0
  260. package/templates/viteuno/public/avatars/04.png +0 -0
  261. package/templates/viteuno/public/avatars/05.png +0 -0
  262. package/templates/viteuno/src/App.tsx +39 -0
  263. package/templates/viteuno/src/assets/Inter.var.woff2 +0 -0
  264. package/templates/viteuno/src/components/icons.tsx +154 -0
  265. package/templates/viteuno/src/components/menu-mode-toggle.tsx +46 -0
  266. package/templates/viteuno/src/components/menu.tsx +232 -0
  267. package/templates/viteuno/src/components/tailwind-indicator.tsx +18 -0
  268. package/templates/viteuno/src/components/theme-provider.tsx +9 -0
  269. package/templates/viteuno/src/components/ui/accordion.tsx +60 -0
  270. package/templates/viteuno/src/components/ui/alert-dialog.tsx +150 -0
  271. package/templates/viteuno/src/components/ui/alert.tsx +61 -0
  272. package/templates/viteuno/src/components/ui/aspect-ratio.tsx +7 -0
  273. package/templates/viteuno/src/components/ui/avatar.tsx +50 -0
  274. package/templates/viteuno/src/components/ui/badge.tsx +36 -0
  275. package/templates/viteuno/src/components/ui/button.tsx +51 -0
  276. package/templates/viteuno/src/components/ui/calendar.tsx +64 -0
  277. package/templates/viteuno/src/components/ui/card.tsx +81 -0
  278. package/templates/viteuno/src/components/ui/checkbox.tsx +30 -0
  279. package/templates/viteuno/src/components/ui/collapsible.tsx +11 -0
  280. package/templates/viteuno/src/components/ui/command.tsx +155 -0
  281. package/templates/viteuno/src/components/ui/context-menu.tsx +200 -0
  282. package/templates/viteuno/src/components/ui/dialog.tsx +128 -0
  283. package/templates/viteuno/src/components/ui/dropdown-menu.tsx +200 -0
  284. package/templates/viteuno/src/components/ui/hover-card.tsx +29 -0
  285. package/templates/viteuno/src/components/ui/index.ts +0 -0
  286. package/templates/viteuno/src/components/ui/input.tsx +27 -0
  287. package/templates/viteuno/src/components/ui/label.tsx +26 -0
  288. package/templates/viteuno/src/components/ui/menubar.tsx +236 -0
  289. package/templates/viteuno/src/components/ui/navigation-menu.tsx +130 -0
  290. package/templates/viteuno/src/components/ui/popover.tsx +31 -0
  291. package/templates/viteuno/src/components/ui/progress.tsx +28 -0
  292. package/templates/viteuno/src/components/ui/radio-group.tsx +44 -0
  293. package/templates/viteuno/src/components/ui/scroll-area.tsx +48 -0
  294. package/templates/viteuno/src/components/ui/select.tsx +120 -0
  295. package/templates/viteuno/src/components/ui/separator.tsx +31 -0
  296. package/templates/viteuno/src/components/ui/sheet.tsx +230 -0
  297. package/templates/viteuno/src/components/ui/skeleton.tsx +17 -0
  298. package/templates/viteuno/src/components/ui/slider.tsx +28 -0
  299. package/templates/viteuno/src/components/ui/switch.tsx +29 -0
  300. package/templates/viteuno/src/components/ui/table.tsx +114 -0
  301. package/templates/viteuno/src/components/ui/tabs.tsx +55 -0
  302. package/templates/viteuno/src/components/ui/textarea.tsx +26 -0
  303. package/templates/viteuno/src/components/ui/toast.tsx +129 -0
  304. package/templates/viteuno/src/components/ui/toaster.tsx +35 -0
  305. package/templates/viteuno/src/components/ui/toggle.tsx +45 -0
  306. package/templates/viteuno/src/components/ui/tooltip.tsx +30 -0
  307. package/templates/viteuno/src/components/ui/use-toast.ts +191 -0
  308. package/templates/{next/src/components/examples/calendar → viteuno/src/dashboard/components}/date-range-picker.tsx +5 -4
  309. package/templates/viteuno/src/dashboard/components/main-nav.tsx +38 -0
  310. package/templates/viteuno/src/dashboard/components/overview.tsx +78 -0
  311. package/templates/viteuno/src/dashboard/components/recent-sales.tsx +67 -0
  312. package/templates/viteuno/src/dashboard/components/search.tsx +13 -0
  313. package/templates/viteuno/src/dashboard/components/team-switcher.tsx +205 -0
  314. package/templates/viteuno/src/dashboard/components/user-nav.tsx +67 -0
  315. package/templates/viteuno/src/dashboard/page.tsx +140 -0
  316. package/templates/viteuno/src/lib/utils.ts +19 -0
  317. package/templates/viteuno/src/main.tsx +14 -0
  318. package/templates/viteuno/src/styles/globals.css +4 -0
  319. package/templates/viteuno/src/vite-env.d.ts +1 -0
  320. package/templates/viteuno/src-tauri/Cargo.lock +3701 -0
  321. package/templates/viteuno/src-tauri/Cargo.toml +36 -0
  322. package/templates/viteuno/src-tauri/build.rs +3 -0
  323. package/templates/viteuno/src-tauri/icons/128x128.png +0 -0
  324. package/templates/viteuno/src-tauri/icons/128x128@2x.png +0 -0
  325. package/templates/viteuno/src-tauri/icons/32x32.png +0 -0
  326. package/templates/viteuno/src-tauri/icons/Square107x107Logo.png +0 -0
  327. package/templates/viteuno/src-tauri/icons/Square142x142Logo.png +0 -0
  328. package/templates/viteuno/src-tauri/icons/Square150x150Logo.png +0 -0
  329. package/templates/viteuno/src-tauri/icons/Square284x284Logo.png +0 -0
  330. package/templates/viteuno/src-tauri/icons/Square30x30Logo.png +0 -0
  331. package/templates/viteuno/src-tauri/icons/Square310x310Logo.png +0 -0
  332. package/templates/viteuno/src-tauri/icons/Square44x44Logo.png +0 -0
  333. package/templates/viteuno/src-tauri/icons/Square71x71Logo.png +0 -0
  334. package/templates/viteuno/src-tauri/icons/Square89x89Logo.png +0 -0
  335. package/templates/viteuno/src-tauri/icons/StoreLogo.png +0 -0
  336. package/templates/viteuno/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png +0 -0
  337. package/templates/viteuno/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  338. package/templates/viteuno/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png +0 -0
  339. package/templates/viteuno/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png +0 -0
  340. package/templates/viteuno/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  341. package/templates/viteuno/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png +0 -0
  342. package/templates/viteuno/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png +0 -0
  343. package/templates/viteuno/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  344. package/templates/viteuno/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png +0 -0
  345. package/templates/viteuno/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
  346. package/templates/viteuno/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  347. package/templates/viteuno/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  348. package/templates/viteuno/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
  349. package/templates/viteuno/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  350. package/templates/viteuno/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  351. package/templates/viteuno/src-tauri/icons/icon.icns +0 -0
  352. package/templates/viteuno/src-tauri/icons/icon.ico +0 -0
  353. package/templates/viteuno/src-tauri/icons/icon.png +0 -0
  354. package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@1x.png +0 -0
  355. package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@2x-1.png +0 -0
  356. package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@2x.png +0 -0
  357. package/templates/viteuno/src-tauri/icons/ios/AppIcon-20x20@3x.png +0 -0
  358. package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@1x.png +0 -0
  359. package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@2x-1.png +0 -0
  360. package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@2x.png +0 -0
  361. package/templates/viteuno/src-tauri/icons/ios/AppIcon-29x29@3x.png +0 -0
  362. package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@1x.png +0 -0
  363. package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@2x-1.png +0 -0
  364. package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@2x.png +0 -0
  365. package/templates/viteuno/src-tauri/icons/ios/AppIcon-40x40@3x.png +0 -0
  366. package/templates/viteuno/src-tauri/icons/ios/AppIcon-512@2x.png +0 -0
  367. package/templates/viteuno/src-tauri/icons/ios/AppIcon-60x60@2x.png +0 -0
  368. package/templates/viteuno/src-tauri/icons/ios/AppIcon-60x60@3x.png +0 -0
  369. package/templates/viteuno/src-tauri/icons/ios/AppIcon-76x76@1x.png +0 -0
  370. package/templates/viteuno/src-tauri/icons/ios/AppIcon-76x76@2x.png +0 -0
  371. package/templates/viteuno/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png +0 -0
  372. package/templates/viteuno/src-tauri/src/main.rs +16 -0
  373. package/templates/viteuno/src-tauri/tauri.conf.json +79 -0
  374. package/templates/viteuno/tsconfig.json +26 -0
  375. package/templates/viteuno/tsconfig.node.json +9 -0
  376. package/templates/viteuno/uno.config.ts +111 -0
  377. package/templates/viteuno/vite.config.ts +33 -0
  378. package/templates/next/src/app/examples/cards/styles.css +0 -63
  379. package/templates/next/src/app/examples/music/styles.css +0 -65
  380. package/templates/next/src/app/examples/playground/components/icons.tsx +0 -153
  381. package/templates/next/src/app/examples/playground/styles.css +0 -65
  382. package/templates/next/src/components/examples/.eslintrc.json +0 -6
  383. package/templates/next/src/components/examples/accordion/demo.tsx +0 -32
  384. package/templates/next/src/components/examples/alert/demo.tsx +0 -15
  385. package/templates/next/src/components/examples/alert/destructive.tsx +0 -15
  386. package/templates/next/src/components/examples/alert-dialog/demo.tsx +0 -35
  387. package/templates/next/src/components/examples/aspect-ratio/demo.tsx +0 -16
  388. package/templates/next/src/components/examples/avatar/demo.tsx +0 -10
  389. package/templates/next/src/components/examples/badge/demo.tsx +0 -5
  390. package/templates/next/src/components/examples/badge/destructive.tsx +0 -5
  391. package/templates/next/src/components/examples/badge/outline.tsx +0 -5
  392. package/templates/next/src/components/examples/badge/secondary.tsx +0 -5
  393. package/templates/next/src/components/examples/button/as-child.tsx +0 -10
  394. package/templates/next/src/components/examples/button/demo.tsx +0 -5
  395. package/templates/next/src/components/examples/button/destructive.tsx +0 -5
  396. package/templates/next/src/components/examples/button/ghost.tsx +0 -5
  397. package/templates/next/src/components/examples/button/link.tsx +0 -5
  398. package/templates/next/src/components/examples/button/loading.tsx +0 -12
  399. package/templates/next/src/components/examples/button/outline.tsx +0 -5
  400. package/templates/next/src/components/examples/button/secondary.tsx +0 -5
  401. package/templates/next/src/components/examples/button/with-icon.tsx +0 -11
  402. package/templates/next/src/components/examples/calendar/date-picker.tsx +0 -43
  403. package/templates/next/src/components/examples/calendar/demo.tsx +0 -18
  404. package/templates/next/src/components/examples/calendar/react-hook-form.tsx +0 -101
  405. package/templates/next/src/components/examples/calendar/with-presets.tsx +0 -62
  406. package/templates/next/src/components/examples/card/demo.tsx +0 -79
  407. package/templates/next/src/components/examples/card/with-form.tsx +0 -59
  408. package/templates/next/src/components/examples/checkbox/demo.tsx +0 -17
  409. package/templates/next/src/components/examples/checkbox/disabled.tsx +0 -15
  410. package/templates/next/src/components/examples/checkbox/react-hook-form-multiple.tsx +0 -127
  411. package/templates/next/src/components/examples/checkbox/react-hook-form-single.tsx +0 -72
  412. package/templates/next/src/components/examples/checkbox/with-text.tsx +0 -22
  413. package/templates/next/src/components/examples/collapsible/demo.tsx +0 -46
  414. package/templates/next/src/components/examples/combobox/demo.tsx +0 -90
  415. package/templates/next/src/components/examples/combobox/dropdown-menu.tsx +0 -110
  416. package/templates/next/src/components/examples/combobox/popover.tsx +0 -124
  417. package/templates/next/src/components/examples/combobox/react-hook-form.tsx +0 -135
  418. package/templates/next/src/components/examples/command/combobox.tsx +0 -90
  419. package/templates/next/src/components/examples/command/demo.tsx +0 -62
  420. package/templates/next/src/components/examples/command/dialog.tsx +0 -86
  421. package/templates/next/src/components/examples/command/dropdown-menu.tsx +0 -110
  422. package/templates/next/src/components/examples/command/popover.tsx +0 -124
  423. package/templates/next/src/components/examples/context-menu/demo.tsx +0 -67
  424. package/templates/next/src/components/examples/data-table/columns.tsx +0 -110
  425. package/templates/next/src/components/examples/data-table/data-table.tsx +0 -185
  426. package/templates/next/src/components/examples/data-table/demo.tsx +0 -41
  427. package/templates/next/src/components/examples/date-picker/demo.tsx +0 -43
  428. package/templates/next/src/components/examples/date-picker/react-hook-form.tsx +0 -101
  429. package/templates/next/src/components/examples/date-picker/with-presets.tsx +0 -62
  430. package/templates/next/src/components/examples/dialog/demo.tsx +0 -47
  431. package/templates/next/src/components/examples/dropdown-menu/checkboxes.tsx +0 -53
  432. package/templates/next/src/components/examples/dropdown-menu/demo.tsx +0 -122
  433. package/templates/next/src/components/examples/dropdown-menu/radio-group.tsx +0 -37
  434. package/templates/next/src/components/examples/hover-card/demo.tsx +0 -39
  435. package/templates/next/src/components/examples/index.tsx +0 -213
  436. package/templates/next/src/components/examples/input/demo.tsx +0 -5
  437. package/templates/next/src/components/examples/input/disabled.tsx +0 -5
  438. package/templates/next/src/components/examples/input/file.tsx +0 -11
  439. package/templates/next/src/components/examples/input/react-hook-form.tsx +0 -65
  440. package/templates/next/src/components/examples/input/with-button.tsx +0 -11
  441. package/templates/next/src/components/examples/input/with-label.tsx +0 -11
  442. package/templates/next/src/components/examples/input/with-text.tsx +0 -12
  443. package/templates/next/src/components/examples/label/demo.tsx +0 -13
  444. package/templates/next/src/components/examples/menubar/demo.tsx +0 -107
  445. package/templates/next/src/components/examples/navigation-menu/demo.tsx +0 -144
  446. package/templates/next/src/components/examples/popover/demo.tsx +0 -67
  447. package/templates/next/src/components/examples/progress/demo.tsx +0 -16
  448. package/templates/next/src/components/examples/radio-group/demo.tsx +0 -21
  449. package/templates/next/src/components/examples/radio-group/react-hook-form.tsx +0 -88
  450. package/templates/next/src/components/examples/scroll-area/demo.tsx +0 -26
  451. package/templates/next/src/components/examples/select/demo.tsx +0 -31
  452. package/templates/next/src/components/examples/select/react-hook-form.tsx +0 -83
  453. package/templates/next/src/components/examples/separator/demo.tsx +0 -22
  454. package/templates/next/src/components/examples/sheet/demo.tsx +0 -47
  455. package/templates/next/src/components/examples/sheet/position.tsx +0 -75
  456. package/templates/next/src/components/examples/sheet/size.tsx +0 -75
  457. package/templates/next/src/components/examples/skeleton/demo.tsx +0 -13
  458. package/templates/next/src/components/examples/slider/demo.tsx +0 -16
  459. package/templates/next/src/components/examples/switch/demo.tsx +0 -11
  460. package/templates/next/src/components/examples/switch/react-hook-form.tsx +0 -101
  461. package/templates/next/src/components/examples/table/demo.tsx +0 -80
  462. package/templates/next/src/components/examples/tabs/demo.tsx +0 -69
  463. package/templates/next/src/components/examples/textarea/demo.tsx +0 -5
  464. package/templates/next/src/components/examples/textarea/disabled.tsx +0 -5
  465. package/templates/next/src/components/examples/textarea/react-hook-form.tsx +0 -77
  466. package/templates/next/src/components/examples/textarea/with-button.tsx +0 -11
  467. package/templates/next/src/components/examples/textarea/with-label.tsx +0 -11
  468. package/templates/next/src/components/examples/textarea/with-text.tsx +0 -14
  469. package/templates/next/src/components/examples/toast/demo.tsx +0 -26
  470. package/templates/next/src/components/examples/toast/destructive.tsx +0 -25
  471. package/templates/next/src/components/examples/toast/simple.tsx +0 -21
  472. package/templates/next/src/components/examples/toast/with-action.tsx +0 -24
  473. package/templates/next/src/components/examples/toast/with-title.tsx +0 -22
  474. package/templates/next/src/components/examples/toggle/demo.tsx +0 -11
  475. package/templates/next/src/components/examples/toggle/disabled.tsx +0 -11
  476. package/templates/next/src/components/examples/toggle/lg.tsx +0 -11
  477. package/templates/next/src/components/examples/toggle/outline.tsx +0 -11
  478. package/templates/next/src/components/examples/toggle/sm.tsx +0 -11
  479. package/templates/next/src/components/examples/toggle/with-text.tsx +0 -12
  480. package/templates/next/src/components/examples/tooltip/demo.tsx +0 -27
  481. package/templates/next/src/components/examples/typography/blockquote.tsx +0 -8
  482. package/templates/next/src/components/examples/typography/demo.tsx +0 -119
  483. package/templates/next/src/components/examples/typography/h1.tsx +0 -7
  484. package/templates/next/src/components/examples/typography/h2.tsx +0 -7
  485. package/templates/next/src/components/examples/typography/h3.tsx +0 -7
  486. package/templates/next/src/components/examples/typography/h4.tsx +0 -7
  487. package/templates/next/src/components/examples/typography/inline-code.tsx +0 -7
  488. package/templates/next/src/components/examples/typography/large.tsx +0 -5
  489. package/templates/next/src/components/examples/typography/lead.tsx +0 -8
  490. package/templates/next/src/components/examples/typography/list.tsx +0 -9
  491. package/templates/next/src/components/examples/typography/muted.tsx +0 -5
  492. package/templates/next/src/components/examples/typography/p.tsx +0 -8
  493. package/templates/next/src/components/examples/typography/small.tsx +0 -5
  494. package/templates/next/src/components/examples/typography/table.tsx +0 -44
  495. package/templates/sveltekit/static/favicon.ico +0 -0
  496. /package/templates/next/src/components/{react-hook-form → ui}/form.tsx +0 -0
@@ -38,7 +38,7 @@ const MenubarTrigger = React.forwardRef<
38
38
  <MenubarPrimitive.Trigger
39
39
  ref={ref}
40
40
  className={cn(
41
- "flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none data-[state=open]:bg-accent data-[state=open]:text-accent-foreground focus:bg-accent focus:text-accent-foreground",
41
+ "flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
42
42
  className
43
43
  )}
44
44
  {...props}
@@ -55,7 +55,7 @@ const MenubarSubTrigger = React.forwardRef<
55
55
  <MenubarPrimitive.SubTrigger
56
56
  ref={ref}
57
57
  className={cn(
58
- "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[state=open]:bg-accent data-[state=open]:text-accent-foreground focus:bg-accent focus:text-accent-foreground",
58
+ "flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground",
59
59
  inset && "pl-8",
60
60
  className
61
61
  )}
@@ -74,7 +74,7 @@ const MenubarSubContent = React.forwardRef<
74
74
  <MenubarPrimitive.SubContent
75
75
  ref={ref}
76
76
  className={cn(
77
- "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1",
77
+ "z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
78
78
  className
79
79
  )}
80
80
  {...props}
@@ -97,7 +97,7 @@ const MenubarContent = React.forwardRef<
97
97
  alignOffset={alignOffset}
98
98
  sideOffset={sideOffset}
99
99
  className={cn(
100
- "z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in slide-in-from-top-1",
100
+ "z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
101
101
  className
102
102
  )}
103
103
  {...props}
@@ -116,7 +116,7 @@ const MenubarItem = React.forwardRef<
116
116
  <MenubarPrimitive.Item
117
117
  ref={ref}
118
118
  className={cn(
119
- "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
119
+ "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
120
120
  inset && "pl-8",
121
121
  className
122
122
  )}
@@ -132,7 +132,7 @@ const MenubarCheckboxItem = React.forwardRef<
132
132
  <MenubarPrimitive.CheckboxItem
133
133
  ref={ref}
134
134
  className={cn(
135
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
135
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
136
136
  className
137
137
  )}
138
138
  checked={checked}
@@ -155,7 +155,7 @@ const MenubarRadioItem = React.forwardRef<
155
155
  <MenubarPrimitive.RadioItem
156
156
  ref={ref}
157
157
  className={cn(
158
- "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
158
+ "relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
159
159
  className
160
160
  )}
161
161
  {...props}
@@ -1,5 +1,3 @@
1
- "use client"
2
-
3
1
  import * as React from "react"
4
2
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu"
5
3
  import { cva } from "class-variance-authority"
@@ -14,7 +12,7 @@ const NavigationMenu = React.forwardRef<
14
12
  <NavigationMenuPrimitive.Root
15
13
  ref={ref}
16
14
  className={cn(
17
- "relative z-10 flex flex-1 items-center justify-center",
15
+ "relative z-10 flex max-w-max flex-1 items-center justify-center",
18
16
  className
19
17
  )}
20
18
  {...props}
@@ -43,7 +41,7 @@ NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName
43
41
  const NavigationMenuItem = NavigationMenuPrimitive.Item
44
42
 
45
43
  const navigationMenuTriggerStyle = cva(
46
- "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus:outline-none focus:bg-accent focus:text-accent-foreground disabled:opacity-50 disabled:pointer-events-none bg-background hover:bg-accent hover:text-accent-foreground data-[state=open]:bg-accent/50 data-[active]:bg-accent/50 h-10 py-2 px-4 group w-max"
44
+ "group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-accent/50 data-[state=open]:bg-accent/50"
47
45
  )
48
46
 
49
47
  const NavigationMenuTrigger = React.forwardRef<
@@ -19,7 +19,7 @@ const PopoverContent = React.forwardRef<
19
19
  align={align}
20
20
  sideOffset={sideOffset}
21
21
  className={cn(
22
- "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none animate-in data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
22
+ "z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
23
23
  className
24
24
  )}
25
25
  {...props}
@@ -28,13 +28,13 @@ const RadioGroupItem = React.forwardRef<
28
28
  <RadioGroupPrimitive.Item
29
29
  ref={ref}
30
30
  className={cn(
31
- "h-4 w-4 rounded-full border border-input ring-offset-background focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
31
+ "aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
32
32
  className
33
33
  )}
34
34
  {...props}
35
35
  >
36
36
  <RadioGroupPrimitive.Indicator className="flex items-center justify-center">
37
- <Circle className="h-2.5 w-2.5 fill-primary text-primary" />
37
+ <Circle className="h-2.5 w-2.5 fill-current text-current" />
38
38
  </RadioGroupPrimitive.Indicator>
39
39
  </RadioGroupPrimitive.Item>
40
40
  )
@@ -40,8 +40,9 @@ const SelectContent = React.forwardRef<
40
40
  <SelectPrimitive.Content
41
41
  ref={ref}
42
42
  className={cn(
43
- "relative z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md animate-in fade-in-80",
44
- position === "popper" && "translate-y-1",
43
+ "relative z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
44
+ position === "popper" &&
45
+ "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
45
46
  className
46
47
  )}
47
48
  position={position}
@@ -80,7 +81,7 @@ const SelectItem = React.forwardRef<
80
81
  <SelectPrimitive.Item
81
82
  ref={ref}
82
83
  className={cn(
83
- "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 focus:bg-accent focus:text-accent-foreground",
84
+ "relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
84
85
  className
85
86
  )}
86
87
  {...props}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import * as React from "react"
4
4
  import * as SheetPrimitive from "@radix-ui/react-dialog"
5
- import { VariantProps, cva } from "class-variance-authority"
5
+ import { cva, type VariantProps } from "class-variance-authority"
6
6
  import { X } from "lucide-react"
7
7
 
8
8
  import { cn } from "@/lib/utils"
@@ -11,41 +11,23 @@ const Sheet = SheetPrimitive.Root
11
11
 
12
12
  const SheetTrigger = SheetPrimitive.Trigger
13
13
 
14
- const portalVariants = cva("fixed inset-0 z-50 flex", {
15
- variants: {
16
- position: {
17
- top: "items-start",
18
- bottom: "items-end",
19
- left: "justify-start",
20
- right: "justify-end",
21
- },
22
- },
23
- defaultVariants: { position: "right" },
24
- })
25
-
26
- interface SheetPortalProps
27
- extends SheetPrimitive.DialogPortalProps,
28
- VariantProps<typeof portalVariants> {}
14
+ const SheetClose = SheetPrimitive.Close
29
15
 
30
16
  const SheetPortal = ({
31
- position,
32
17
  className,
33
- children,
34
18
  ...props
35
- }: SheetPortalProps) => (
36
- <SheetPrimitive.Portal className={cn(className)} {...props}>
37
- <div className={portalVariants({ position })}>{children}</div>
38
- </SheetPrimitive.Portal>
19
+ }: SheetPrimitive.DialogPortalProps) => (
20
+ <SheetPrimitive.Portal className={cn(className)} {...props} />
39
21
  )
40
22
  SheetPortal.displayName = SheetPrimitive.Portal.displayName
41
23
 
42
24
  const SheetOverlay = React.forwardRef<
43
25
  React.ElementRef<typeof SheetPrimitive.Overlay>,
44
26
  React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>
45
- >(({ className, children, ...props }, ref) => (
27
+ >(({ className, ...props }, ref) => (
46
28
  <SheetPrimitive.Overlay
47
29
  className={cn(
48
- "fixed inset-0 z-50 bg-background/80 backdrop-blur-sm transition-all duration-100 data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=open]:fade-in",
30
+ "fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
49
31
  className
50
32
  )}
51
33
  {...props}
@@ -55,110 +37,41 @@ const SheetOverlay = React.forwardRef<
55
37
  SheetOverlay.displayName = SheetPrimitive.Overlay.displayName
56
38
 
57
39
  const sheetVariants = cva(
58
- "fixed z-50 scale-100 gap-4 bg-background p-6 opacity-100 shadow-lg border",
40
+ "fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
59
41
  {
60
42
  variants: {
61
- position: {
62
- top: "animate-in slide-in-from-top w-full duration-300",
63
- bottom: "animate-in slide-in-from-bottom w-full duration-300",
64
- left: "animate-in slide-in-from-left h-full duration-300",
65
- right: "animate-in slide-in-from-right h-full duration-300",
66
- },
67
- size: {
68
- content: "",
69
- default: "",
70
- sm: "",
71
- lg: "",
72
- xl: "",
73
- full: "",
43
+ side: {
44
+ top: "inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",
45
+ bottom:
46
+ "inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",
47
+ left: "inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",
48
+ right:
49
+ "inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm",
74
50
  },
75
51
  },
76
- compoundVariants: [
77
- {
78
- position: ["top", "bottom"],
79
- size: "content",
80
- class: "max-h-screen",
81
- },
82
- {
83
- position: ["top", "bottom"],
84
- size: "default",
85
- class: "h-1/3",
86
- },
87
- {
88
- position: ["top", "bottom"],
89
- size: "sm",
90
- class: "h-1/4",
91
- },
92
- {
93
- position: ["top", "bottom"],
94
- size: "lg",
95
- class: "h-1/2",
96
- },
97
- {
98
- position: ["top", "bottom"],
99
- size: "xl",
100
- class: "h-5/6",
101
- },
102
- {
103
- position: ["top", "bottom"],
104
- size: "full",
105
- class: "h-screen",
106
- },
107
- {
108
- position: ["right", "left"],
109
- size: "content",
110
- class: "max-w-screen",
111
- },
112
- {
113
- position: ["right", "left"],
114
- size: "default",
115
- class: "w-1/3",
116
- },
117
- {
118
- position: ["right", "left"],
119
- size: "sm",
120
- class: "w-1/4",
121
- },
122
- {
123
- position: ["right", "left"],
124
- size: "lg",
125
- class: "w-1/2",
126
- },
127
- {
128
- position: ["right", "left"],
129
- size: "xl",
130
- class: "w-5/6",
131
- },
132
- {
133
- position: ["right", "left"],
134
- size: "full",
135
- class: "w-screen",
136
- },
137
- ],
138
52
  defaultVariants: {
139
- position: "right",
140
- size: "default",
53
+ side: "right",
141
54
  },
142
55
  }
143
56
  )
144
57
 
145
- export interface DialogContentProps
58
+ interface SheetContentProps
146
59
  extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,
147
60
  VariantProps<typeof sheetVariants> {}
148
61
 
149
62
  const SheetContent = React.forwardRef<
150
63
  React.ElementRef<typeof SheetPrimitive.Content>,
151
- DialogContentProps
152
- >(({ position, size, className, children, ...props }, ref) => (
153
- <SheetPortal position={position}>
64
+ SheetContentProps
65
+ >(({ side = "right", className, children, ...props }, ref) => (
66
+ <SheetPortal>
154
67
  <SheetOverlay />
155
68
  <SheetPrimitive.Content
156
69
  ref={ref}
157
- className={cn(sheetVariants({ position, size }), className)}
70
+ className={cn(sheetVariants({ side }), className)}
158
71
  {...props}
159
72
  >
160
73
  {children}
161
- <SheetPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-secondary hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none">
74
+ <SheetPrimitive.Close className="absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary">
162
75
  <X className="h-4 w-4" />
163
76
  <span className="sr-only">Close</span>
164
77
  </SheetPrimitive.Close>
@@ -222,6 +135,7 @@ SheetDescription.displayName = SheetPrimitive.Description.displayName
222
135
  export {
223
136
  Sheet,
224
137
  SheetTrigger,
138
+ SheetClose,
225
139
  SheetContent,
226
140
  SheetHeader,
227
141
  SheetFooter,
@@ -1,5 +1,3 @@
1
- "use client"
2
-
3
1
  import { cn } from "@/lib/utils"
4
2
 
5
3
  function Skeleton({
@@ -11,7 +11,7 @@ const Switch = React.forwardRef<
11
11
  >(({ className, ...props }, ref) => (
12
12
  <SwitchPrimitives.Root
13
13
  className={cn(
14
- "peer inline-flex h-[24px] w-[44px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50",
14
+ "peer inline-flex h-[24px] w-[44px] shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input",
15
15
  className
16
16
  )}
17
17
  {...props}
@@ -55,7 +55,7 @@ const TableRow = React.forwardRef<
55
55
  <tr
56
56
  ref={ref}
57
57
  className={cn(
58
- "border-b transition-colors data-[state=selected]:bg-muted hover:bg-muted/50",
58
+ "border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
59
59
  className
60
60
  )}
61
61
  {...props}
@@ -29,7 +29,7 @@ const TabsTrigger = React.forwardRef<
29
29
  <TabsPrimitive.Trigger
30
30
  ref={ref}
31
31
  className={cn(
32
- "inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
32
+ "inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
33
33
  className
34
34
  )}
35
35
  {...props}
@@ -1,5 +1,3 @@
1
- "use client"
2
-
3
1
  import * as React from "react"
4
2
 
5
3
  import { cn } from "@/lib/utils"
@@ -12,7 +10,7 @@ const Textarea = React.forwardRef<HTMLTextAreaElement, TextareaProps>(
12
10
  return (
13
11
  <textarea
14
12
  className={cn(
15
- "flex h-20 w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
13
+ "flex min-h-[80px] w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
16
14
  className
17
15
  )}
18
16
  ref={ref}
@@ -1,8 +1,6 @@
1
- "use client"
2
-
3
1
  import * as React from "react"
4
2
  import * as ToastPrimitives from "@radix-ui/react-toast"
5
- import { VariantProps, cva } from "class-variance-authority"
3
+ import { cva, type VariantProps } from "class-variance-authority"
6
4
  import { X } from "lucide-react"
7
5
 
8
6
  import { cn } from "@/lib/utils"
@@ -25,13 +23,13 @@ const ToastViewport = React.forwardRef<
25
23
  ToastViewport.displayName = ToastPrimitives.Viewport.displayName
26
24
 
27
25
  const toastVariants = cva(
28
- "data-[swipe=move]:transition-none group relative pointer-events-auto flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full data-[state=closed]:slide-out-to-right-full",
26
+ "group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",
29
27
  {
30
28
  variants: {
31
29
  variant: {
32
- default: "bg-background border",
30
+ default: "border bg-background",
33
31
  destructive:
34
- "group destructive border-destructive bg-destructive text-destructive-foreground",
32
+ "destructive group border-destructive bg-destructive text-destructive-foreground",
35
33
  },
36
34
  },
37
35
  defaultVariants: {
@@ -62,7 +60,7 @@ const ToastAction = React.forwardRef<
62
60
  <ToastPrimitives.Action
63
61
  ref={ref}
64
62
  className={cn(
65
- "inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors group-[.destructive]:border-destructive/30 hover:bg-secondary group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 group-[.destructive]:focus:ring-destructive disabled:pointer-events-none disabled:opacity-50",
63
+ "inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",
66
64
  className
67
65
  )}
68
66
  {...props}
@@ -77,7 +75,7 @@ const ToastClose = React.forwardRef<
77
75
  <ToastPrimitives.Close
78
76
  ref={ref}
79
77
  className={cn(
80
- "absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 hover:text-foreground group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:outline-none focus:ring-2 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",
78
+ "absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",
81
79
  className
82
80
  )}
83
81
  toast-close=""
@@ -2,18 +2,18 @@
2
2
 
3
3
  import * as React from "react"
4
4
  import * as TogglePrimitive from "@radix-ui/react-toggle"
5
- import { VariantProps, cva } from "class-variance-authority"
5
+ import { cva, type VariantProps } from "class-variance-authority"
6
6
 
7
7
  import { cn } from "@/lib/utils"
8
8
 
9
9
  const toggleVariants = cva(
10
- "inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors data-[state=on]:bg-accent data-[state=on]:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 ring-offset-background hover:bg-muted hover:text-muted-foreground",
10
+ "inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground",
11
11
  {
12
12
  variants: {
13
13
  variant: {
14
14
  default: "bg-transparent",
15
15
  outline:
16
- "bg-transparent border border-input hover:bg-accent hover:text-accent-foreground",
16
+ "border border-input bg-transparent hover:bg-accent hover:text-accent-foreground",
17
17
  },
18
18
  size: {
19
19
  default: "h-10 px-3",
@@ -19,7 +19,7 @@ const TooltipContent = React.forwardRef<
19
19
  ref={ref}
20
20
  sideOffset={sideOffset}
21
21
  className={cn(
22
- "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-50 data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1",
22
+ "z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",
23
23
  className
24
24
  )}
25
25
  {...props}
@@ -1,9 +1,10 @@
1
1
  // Inspired by react-hot-toast library
2
- "use client"
3
-
4
2
  import * as React from "react"
5
3
 
6
- import { ToastActionElement, type ToastProps } from "@/components/ui/toast"
4
+ import type {
5
+ ToastActionElement,
6
+ ToastProps,
7
+ } from "@/components/ui/toast"
7
8
 
8
9
  const TOAST_LIMIT = 1
9
10
  const TOAST_REMOVE_DELAY = 1000000
@@ -137,7 +138,7 @@ function dispatch(action: Action) {
137
138
  })
138
139
  }
139
140
 
140
- interface Toast extends Omit<ToasterToast, "id"> {}
141
+ type Toast = Omit<ToasterToast, "id">
141
142
 
142
143
  function toast({ ...props }: Toast) {
143
144
  const id = genId()
@@ -1,71 +1,71 @@
1
- export interface Album {
2
- name: string
3
- artist: string
4
- cover: string
5
- }
6
-
7
- export const listenNowAlbums: Album[] = [
8
- {
9
- name: "React Rendezvous",
10
- artist: "Ethan Byte",
11
- cover:
12
- "https://images.unsplash.com/photo-1611348586804-61bf6c080437?w=300&dpr=2&q=80",
13
- },
14
- {
15
- name: "Async Awakenings",
16
- artist: "Nina Netcode",
17
- cover:
18
- "https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80",
19
- },
20
- {
21
- name: "The Art of Reusability",
22
- artist: "Lena Logic",
23
- cover:
24
- "https://images.unsplash.com/photo-1528143358888-6d3c7f67bd5d?w=300&dpr=2&q=80",
25
- },
26
- {
27
- name: "Stateful Symphony",
28
- artist: "Beth Binary",
29
- cover:
30
- "https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80",
31
- },
32
- ]
33
-
34
- export const madeForYouAlbums: Album[] = [
35
- {
36
- name: "Thinking Components",
37
- artist: "Lena Logic",
38
- cover:
39
- "https://images.unsplash.com/photo-1615247001958-f4bc92fa6a4a?w=300&dpr=2&q=80",
40
- },
41
- {
42
- name: "Functional Fury",
43
- artist: "Beth Binary",
44
- cover:
45
- "https://images.unsplash.com/photo-1513745405825-efaf9a49315f?w=300&dpr=2&q=80",
46
- },
47
- {
48
- name: "React Rendezvous",
49
- artist: "Ethan Byte",
50
- cover:
51
- "https://images.unsplash.com/photo-1614113489855-66422ad300a4?w=300&dpr=2&q=80",
52
- },
53
- {
54
- name: "Stateful Symphony",
55
- artist: "Beth Binary",
56
- cover:
57
- "https://images.unsplash.com/photo-1446185250204-f94591f7d702?w=300&dpr=2&q=80",
58
- },
59
- {
60
- name: "Async Awakenings",
61
- artist: "Nina Netcode",
62
- cover:
63
- "https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80",
64
- },
65
- {
66
- name: "The Art of Reusability",
67
- artist: "Lena Logic",
68
- cover:
69
- "https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80",
70
- },
71
- ]
1
+ export interface Album {
2
+ name: string
3
+ artist: string
4
+ cover: string
5
+ }
6
+
7
+ export const listenNowAlbums: Album[] = [
8
+ {
9
+ name: "React Rendezvous",
10
+ artist: "Ethan Byte",
11
+ cover:
12
+ "https://images.unsplash.com/photo-1611348586804-61bf6c080437?w=300&dpr=2&q=80",
13
+ },
14
+ {
15
+ name: "Async Awakenings",
16
+ artist: "Nina Netcode",
17
+ cover:
18
+ "https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80",
19
+ },
20
+ {
21
+ name: "The Art of Reusability",
22
+ artist: "Lena Logic",
23
+ cover:
24
+ "https://images.unsplash.com/photo-1528143358888-6d3c7f67bd5d?w=300&dpr=2&q=80",
25
+ },
26
+ {
27
+ name: "Stateful Symphony",
28
+ artist: "Beth Binary",
29
+ cover:
30
+ "https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80",
31
+ },
32
+ ]
33
+
34
+ export const madeForYouAlbums: Album[] = [
35
+ {
36
+ name: "Thinking Components",
37
+ artist: "Lena Logic",
38
+ cover:
39
+ "https://images.unsplash.com/photo-1615247001958-f4bc92fa6a4a?w=300&dpr=2&q=80",
40
+ },
41
+ {
42
+ name: "Functional Fury",
43
+ artist: "Beth Binary",
44
+ cover:
45
+ "https://images.unsplash.com/photo-1513745405825-efaf9a49315f?w=300&dpr=2&q=80",
46
+ },
47
+ {
48
+ name: "React Rendezvous",
49
+ artist: "Ethan Byte",
50
+ cover:
51
+ "https://images.unsplash.com/photo-1614113489855-66422ad300a4?w=300&dpr=2&q=80",
52
+ },
53
+ {
54
+ name: "Stateful Symphony",
55
+ artist: "Beth Binary",
56
+ cover:
57
+ "https://images.unsplash.com/photo-1446185250204-f94591f7d702?w=300&dpr=2&q=80",
58
+ },
59
+ {
60
+ name: "Async Awakenings",
61
+ artist: "Nina Netcode",
62
+ cover:
63
+ "https://images.unsplash.com/photo-1468817814611-b7edf94b5d60?w=300&dpr=2&q=80",
64
+ },
65
+ {
66
+ name: "The Art of Reusability",
67
+ artist: "Lena Logic",
68
+ cover:
69
+ "https://images.unsplash.com/photo-1490300472339-79e4adc6be4a?w=300&dpr=2&q=80",
70
+ },
71
+ ]