create-tauri-ui 0.1.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 (448) hide show
  1. package/README.md +41 -0
  2. package/dist/index.mjs +53 -0
  3. package/index.js +3 -0
  4. package/package.json +62 -0
  5. package/templates/next/.env +1 -0
  6. package/templates/next/.github/workflows/release.yml +108 -0
  7. package/templates/next/.vscode/extensions.json +3 -0
  8. package/templates/next/LICENSE +21 -0
  9. package/templates/next/README.md +82 -0
  10. package/templates/next/app-icon.png +0 -0
  11. package/templates/next/next-env.d.ts +5 -0
  12. package/templates/next/next.config.js +17 -0
  13. package/templates/next/package.json +82 -0
  14. package/templates/next/pnpm-lock.yaml +4318 -0
  15. package/templates/next/postcss.config.js +6 -0
  16. package/templates/next/prettier.config.js +35 -0
  17. package/templates/next/public/avatars/01.png +0 -0
  18. package/templates/next/public/avatars/02.png +0 -0
  19. package/templates/next/public/avatars/03.png +0 -0
  20. package/templates/next/public/avatars/04.png +0 -0
  21. package/templates/next/public/avatars/05.png +0 -0
  22. package/templates/next/src/app/examples/authentication/components/user-auth-form.tsx +71 -0
  23. package/templates/next/src/app/examples/authentication/page.tsx +80 -0
  24. package/templates/next/src/app/examples/cards/components/cookie-settings.tsx +60 -0
  25. package/templates/next/src/app/examples/cards/components/create-account.tsx +60 -0
  26. package/templates/next/src/app/examples/cards/components/date-picker.tsx +18 -0
  27. package/templates/next/src/app/examples/cards/components/github-card.tsx +81 -0
  28. package/templates/next/src/app/examples/cards/components/notifications.tsx +51 -0
  29. package/templates/next/src/app/examples/cards/components/payment-method.tsx +117 -0
  30. package/templates/next/src/app/examples/cards/components/report-an-issue.tsx +82 -0
  31. package/templates/next/src/app/examples/cards/components/share-document.tsx +116 -0
  32. package/templates/next/src/app/examples/cards/components/team-members.tsx +147 -0
  33. package/templates/next/src/app/examples/cards/page.tsx +75 -0
  34. package/templates/next/src/app/examples/cards/styles.css +63 -0
  35. package/templates/next/src/app/examples/dashboard/components/date-range-picker.tsx +66 -0
  36. package/templates/next/src/app/examples/dashboard/components/main-nav.tsx +38 -0
  37. package/templates/next/src/app/examples/dashboard/components/overview.tsx +78 -0
  38. package/templates/next/src/app/examples/dashboard/components/recent-sales.tsx +67 -0
  39. package/templates/next/src/app/examples/dashboard/components/search.tsx +13 -0
  40. package/templates/next/src/app/examples/dashboard/components/team-switcher.tsx +205 -0
  41. package/templates/next/src/app/examples/dashboard/components/user-nav.tsx +67 -0
  42. package/templates/next/src/app/examples/dashboard/page.tsx +147 -0
  43. package/templates/next/src/app/examples/forms/account/account-form.tsx +219 -0
  44. package/templates/next/src/app/examples/forms/account/page.tsx +18 -0
  45. package/templates/next/src/app/examples/forms/appearance/appearance-form.tsx +164 -0
  46. package/templates/next/src/app/examples/forms/appearance/page.tsx +18 -0
  47. package/templates/next/src/app/examples/forms/components/sidebar-nav.tsx +43 -0
  48. package/templates/next/src/app/examples/forms/display/display-form.tsx +132 -0
  49. package/templates/next/src/app/examples/forms/display/page.tsx +17 -0
  50. package/templates/next/src/app/examples/forms/layout.tsx +57 -0
  51. package/templates/next/src/app/examples/forms/notifications/notifications-form.tsx +221 -0
  52. package/templates/next/src/app/examples/forms/notifications/page.tsx +18 -0
  53. package/templates/next/src/app/examples/forms/page.tsx +17 -0
  54. package/templates/next/src/app/examples/forms/profile-form.tsx +190 -0
  55. package/templates/next/src/app/examples/layout.tsx +7 -0
  56. package/templates/next/src/app/examples/music/components/album-artwork.tsx +84 -0
  57. package/templates/next/src/app/examples/music/components/menu.tsx +178 -0
  58. package/templates/next/src/app/examples/music/components/podcast-empty-placeholder.tsx +53 -0
  59. package/templates/next/src/app/examples/music/components/sidebar.tsx +100 -0
  60. package/templates/next/src/app/examples/music/data/albums.ts +71 -0
  61. package/templates/next/src/app/examples/music/data/playlists.ts +16 -0
  62. package/templates/next/src/app/examples/music/page.tsx +134 -0
  63. package/templates/next/src/app/examples/music/styles.css +65 -0
  64. package/templates/next/src/app/examples/playground/components/code-viewer.tsx +89 -0
  65. package/templates/next/src/app/examples/playground/components/icons.tsx +153 -0
  66. package/templates/next/src/app/examples/playground/components/maxlength-selector.tsx +55 -0
  67. package/templates/next/src/app/examples/playground/components/model-selector.tsx +163 -0
  68. package/templates/next/src/app/examples/playground/components/preset-actions.tsx +124 -0
  69. package/templates/next/src/app/examples/playground/components/preset-save.tsx +44 -0
  70. package/templates/next/src/app/examples/playground/components/preset-selector.tsx +82 -0
  71. package/templates/next/src/app/examples/playground/components/preset-share.tsx +46 -0
  72. package/templates/next/src/app/examples/playground/components/temperature-selector.tsx +57 -0
  73. package/templates/next/src/app/examples/playground/components/top-p-selector.tsx +54 -0
  74. package/templates/next/src/app/examples/playground/data/models.ts +62 -0
  75. package/templates/next/src/app/examples/playground/data/presets.ts +47 -0
  76. package/templates/next/src/app/examples/playground/page.tsx +160 -0
  77. package/templates/next/src/app/examples/playground/styles.css +65 -0
  78. package/templates/next/src/app/examples/tasks/components/columns.tsx +120 -0
  79. package/templates/next/src/app/examples/tasks/components/data-table-column-header.tsx +66 -0
  80. package/templates/next/src/app/examples/tasks/components/data-table-faceted-filter.tsx +147 -0
  81. package/templates/next/src/app/examples/tasks/components/data-table-pagination.tsx +97 -0
  82. package/templates/next/src/app/examples/tasks/components/data-table-row-actions.tsx +82 -0
  83. package/templates/next/src/app/examples/tasks/components/data-table-toolbar.tsx +63 -0
  84. package/templates/next/src/app/examples/tasks/components/data-table-view-options.tsx +59 -0
  85. package/templates/next/src/app/examples/tasks/components/data-table.tsx +126 -0
  86. package/templates/next/src/app/examples/tasks/components/user-nav.tsx +67 -0
  87. package/templates/next/src/app/examples/tasks/data/data.tsx +71 -0
  88. package/templates/next/src/app/examples/tasks/data/schema.ts +13 -0
  89. package/templates/next/src/app/examples/tasks/data/seed.ts +20 -0
  90. package/templates/next/src/app/examples/tasks/data/tasks.json +702 -0
  91. package/templates/next/src/app/examples/tasks/page.tsx +47 -0
  92. package/templates/next/src/app/layout.tsx +43 -0
  93. package/templates/next/src/app/page.tsx +5 -0
  94. package/templates/next/src/assets/Inter.var.woff2 +0 -0
  95. package/templates/next/src/assets/logo.png +0 -0
  96. package/templates/next/src/components/examples/.eslintrc.json +6 -0
  97. package/templates/next/src/components/examples/accordion/demo.tsx +32 -0
  98. package/templates/next/src/components/examples/alert/demo.tsx +15 -0
  99. package/templates/next/src/components/examples/alert/destructive.tsx +15 -0
  100. package/templates/next/src/components/examples/alert-dialog/demo.tsx +35 -0
  101. package/templates/next/src/components/examples/aspect-ratio/demo.tsx +16 -0
  102. package/templates/next/src/components/examples/avatar/demo.tsx +10 -0
  103. package/templates/next/src/components/examples/badge/demo.tsx +5 -0
  104. package/templates/next/src/components/examples/badge/destructive.tsx +5 -0
  105. package/templates/next/src/components/examples/badge/outline.tsx +5 -0
  106. package/templates/next/src/components/examples/badge/secondary.tsx +5 -0
  107. package/templates/next/src/components/examples/button/as-child.tsx +10 -0
  108. package/templates/next/src/components/examples/button/demo.tsx +5 -0
  109. package/templates/next/src/components/examples/button/destructive.tsx +5 -0
  110. package/templates/next/src/components/examples/button/ghost.tsx +5 -0
  111. package/templates/next/src/components/examples/button/link.tsx +5 -0
  112. package/templates/next/src/components/examples/button/loading.tsx +12 -0
  113. package/templates/next/src/components/examples/button/outline.tsx +5 -0
  114. package/templates/next/src/components/examples/button/secondary.tsx +5 -0
  115. package/templates/next/src/components/examples/button/with-icon.tsx +11 -0
  116. package/templates/next/src/components/examples/calendar/date-picker.tsx +43 -0
  117. package/templates/next/src/components/examples/calendar/date-range-picker.tsx +65 -0
  118. package/templates/next/src/components/examples/calendar/demo.tsx +18 -0
  119. package/templates/next/src/components/examples/calendar/react-hook-form.tsx +101 -0
  120. package/templates/next/src/components/examples/calendar/with-presets.tsx +62 -0
  121. package/templates/next/src/components/examples/card/demo.tsx +79 -0
  122. package/templates/next/src/components/examples/card/with-form.tsx +59 -0
  123. package/templates/next/src/components/examples/checkbox/demo.tsx +17 -0
  124. package/templates/next/src/components/examples/checkbox/disabled.tsx +15 -0
  125. package/templates/next/src/components/examples/checkbox/react-hook-form-multiple.tsx +127 -0
  126. package/templates/next/src/components/examples/checkbox/react-hook-form-single.tsx +72 -0
  127. package/templates/next/src/components/examples/checkbox/with-text.tsx +22 -0
  128. package/templates/next/src/components/examples/collapsible/demo.tsx +46 -0
  129. package/templates/next/src/components/examples/combobox/demo.tsx +90 -0
  130. package/templates/next/src/components/examples/combobox/dropdown-menu.tsx +110 -0
  131. package/templates/next/src/components/examples/combobox/popover.tsx +124 -0
  132. package/templates/next/src/components/examples/combobox/react-hook-form.tsx +135 -0
  133. package/templates/next/src/components/examples/command/combobox.tsx +90 -0
  134. package/templates/next/src/components/examples/command/demo.tsx +62 -0
  135. package/templates/next/src/components/examples/command/dialog.tsx +86 -0
  136. package/templates/next/src/components/examples/command/dropdown-menu.tsx +110 -0
  137. package/templates/next/src/components/examples/command/popover.tsx +124 -0
  138. package/templates/next/src/components/examples/context-menu/demo.tsx +67 -0
  139. package/templates/next/src/components/examples/data-table/columns.tsx +110 -0
  140. package/templates/next/src/components/examples/data-table/data-table.tsx +185 -0
  141. package/templates/next/src/components/examples/data-table/demo.tsx +41 -0
  142. package/templates/next/src/components/examples/date-picker/demo.tsx +43 -0
  143. package/templates/next/src/components/examples/date-picker/react-hook-form.tsx +101 -0
  144. package/templates/next/src/components/examples/date-picker/with-presets.tsx +62 -0
  145. package/templates/next/src/components/examples/date-picker/with-range.tsx +65 -0
  146. package/templates/next/src/components/examples/dialog/demo.tsx +47 -0
  147. package/templates/next/src/components/examples/dropdown-menu/checkboxes.tsx +53 -0
  148. package/templates/next/src/components/examples/dropdown-menu/demo.tsx +122 -0
  149. package/templates/next/src/components/examples/dropdown-menu/radio-group.tsx +37 -0
  150. package/templates/next/src/components/examples/hover-card/demo.tsx +39 -0
  151. package/templates/next/src/components/examples/index.tsx +213 -0
  152. package/templates/next/src/components/examples/input/demo.tsx +5 -0
  153. package/templates/next/src/components/examples/input/disabled.tsx +5 -0
  154. package/templates/next/src/components/examples/input/file.tsx +11 -0
  155. package/templates/next/src/components/examples/input/react-hook-form.tsx +65 -0
  156. package/templates/next/src/components/examples/input/with-button.tsx +11 -0
  157. package/templates/next/src/components/examples/input/with-label.tsx +11 -0
  158. package/templates/next/src/components/examples/input/with-text.tsx +12 -0
  159. package/templates/next/src/components/examples/label/demo.tsx +13 -0
  160. package/templates/next/src/components/examples/menubar/demo.tsx +107 -0
  161. package/templates/next/src/components/examples/navigation-menu/demo.tsx +144 -0
  162. package/templates/next/src/components/examples/popover/demo.tsx +67 -0
  163. package/templates/next/src/components/examples/progress/demo.tsx +16 -0
  164. package/templates/next/src/components/examples/radio-group/demo.tsx +21 -0
  165. package/templates/next/src/components/examples/radio-group/react-hook-form.tsx +88 -0
  166. package/templates/next/src/components/examples/scroll-area/demo.tsx +26 -0
  167. package/templates/next/src/components/examples/select/demo.tsx +31 -0
  168. package/templates/next/src/components/examples/select/react-hook-form.tsx +83 -0
  169. package/templates/next/src/components/examples/separator/demo.tsx +22 -0
  170. package/templates/next/src/components/examples/sheet/demo.tsx +47 -0
  171. package/templates/next/src/components/examples/sheet/position.tsx +75 -0
  172. package/templates/next/src/components/examples/sheet/size.tsx +75 -0
  173. package/templates/next/src/components/examples/skeleton/demo.tsx +13 -0
  174. package/templates/next/src/components/examples/slider/demo.tsx +16 -0
  175. package/templates/next/src/components/examples/switch/demo.tsx +11 -0
  176. package/templates/next/src/components/examples/switch/react-hook-form.tsx +101 -0
  177. package/templates/next/src/components/examples/table/demo.tsx +80 -0
  178. package/templates/next/src/components/examples/tabs/demo.tsx +69 -0
  179. package/templates/next/src/components/examples/textarea/demo.tsx +5 -0
  180. package/templates/next/src/components/examples/textarea/disabled.tsx +5 -0
  181. package/templates/next/src/components/examples/textarea/react-hook-form.tsx +77 -0
  182. package/templates/next/src/components/examples/textarea/with-button.tsx +11 -0
  183. package/templates/next/src/components/examples/textarea/with-label.tsx +11 -0
  184. package/templates/next/src/components/examples/textarea/with-text.tsx +14 -0
  185. package/templates/next/src/components/examples/toast/demo.tsx +26 -0
  186. package/templates/next/src/components/examples/toast/destructive.tsx +25 -0
  187. package/templates/next/src/components/examples/toast/simple.tsx +21 -0
  188. package/templates/next/src/components/examples/toast/with-action.tsx +24 -0
  189. package/templates/next/src/components/examples/toast/with-title.tsx +22 -0
  190. package/templates/next/src/components/examples/toggle/demo.tsx +11 -0
  191. package/templates/next/src/components/examples/toggle/disabled.tsx +11 -0
  192. package/templates/next/src/components/examples/toggle/lg.tsx +11 -0
  193. package/templates/next/src/components/examples/toggle/outline.tsx +11 -0
  194. package/templates/next/src/components/examples/toggle/sm.tsx +11 -0
  195. package/templates/next/src/components/examples/toggle/with-text.tsx +12 -0
  196. package/templates/next/src/components/examples/tooltip/demo.tsx +27 -0
  197. package/templates/next/src/components/examples/typography/blockquote.tsx +8 -0
  198. package/templates/next/src/components/examples/typography/demo.tsx +119 -0
  199. package/templates/next/src/components/examples/typography/h1.tsx +7 -0
  200. package/templates/next/src/components/examples/typography/h2.tsx +7 -0
  201. package/templates/next/src/components/examples/typography/h3.tsx +7 -0
  202. package/templates/next/src/components/examples/typography/h4.tsx +7 -0
  203. package/templates/next/src/components/examples/typography/inline-code.tsx +7 -0
  204. package/templates/next/src/components/examples/typography/large.tsx +5 -0
  205. package/templates/next/src/components/examples/typography/lead.tsx +8 -0
  206. package/templates/next/src/components/examples/typography/list.tsx +9 -0
  207. package/templates/next/src/components/examples/typography/muted.tsx +5 -0
  208. package/templates/next/src/components/examples/typography/p.tsx +8 -0
  209. package/templates/next/src/components/examples/typography/small.tsx +5 -0
  210. package/templates/next/src/components/examples/typography/table.tsx +44 -0
  211. package/templates/next/src/components/examples-nav.tsx +70 -0
  212. package/templates/next/src/components/greeting.tsx +21 -0
  213. package/templates/next/src/components/icons.tsx +154 -0
  214. package/templates/next/src/components/menu-mode-toggle.tsx +46 -0
  215. package/templates/next/src/components/menu.tsx +268 -0
  216. package/templates/next/src/components/mode-toggle.tsx +43 -0
  217. package/templates/next/src/components/page-header.tsx +50 -0
  218. package/templates/next/src/components/react-hook-form/form.tsx +176 -0
  219. package/templates/next/src/components/style-switcher.tsx +19 -0
  220. package/templates/next/src/components/tailwind-indicator.tsx +18 -0
  221. package/templates/next/src/components/theme-provider.tsx +9 -0
  222. package/templates/next/src/components/ui/accordion.tsx +60 -0
  223. package/templates/next/src/components/ui/alert-dialog.tsx +150 -0
  224. package/templates/next/src/components/ui/alert.tsx +61 -0
  225. package/templates/next/src/components/ui/aspect-ratio.tsx +7 -0
  226. package/templates/next/src/components/ui/avatar.tsx +50 -0
  227. package/templates/next/src/components/ui/badge.tsx +36 -0
  228. package/templates/next/src/components/ui/button.tsx +51 -0
  229. package/templates/next/src/components/ui/calendar.tsx +64 -0
  230. package/templates/next/src/components/ui/card.tsx +81 -0
  231. package/templates/next/src/components/ui/checkbox.tsx +30 -0
  232. package/templates/next/src/components/ui/collapsible.tsx +11 -0
  233. package/templates/next/src/components/ui/command.tsx +155 -0
  234. package/templates/next/src/components/ui/context-menu.tsx +200 -0
  235. package/templates/next/src/components/ui/dialog.tsx +128 -0
  236. package/templates/next/src/components/ui/dropdown-menu.tsx +200 -0
  237. package/templates/next/src/components/ui/hover-card.tsx +29 -0
  238. package/templates/next/src/components/ui/input.tsx +27 -0
  239. package/templates/next/src/components/ui/label.tsx +26 -0
  240. package/templates/next/src/components/ui/menubar.tsx +236 -0
  241. package/templates/next/src/components/ui/navigation-menu.tsx +130 -0
  242. package/templates/next/src/components/ui/popover.tsx +31 -0
  243. package/templates/next/src/components/ui/progress.tsx +28 -0
  244. package/templates/next/src/components/ui/radio-group.tsx +44 -0
  245. package/templates/next/src/components/ui/scroll-area.tsx +48 -0
  246. package/templates/next/src/components/ui/select.tsx +120 -0
  247. package/templates/next/src/components/ui/separator.tsx +31 -0
  248. package/templates/next/src/components/ui/sheet.tsx +230 -0
  249. package/templates/next/src/components/ui/skeleton.tsx +17 -0
  250. package/templates/next/src/components/ui/slider.tsx +28 -0
  251. package/templates/next/src/components/ui/switch.tsx +29 -0
  252. package/templates/next/src/components/ui/table.tsx +114 -0
  253. package/templates/next/src/components/ui/tabs.tsx +55 -0
  254. package/templates/next/src/components/ui/textarea.tsx +26 -0
  255. package/templates/next/src/components/ui/toast.tsx +129 -0
  256. package/templates/next/src/components/ui/toaster.tsx +35 -0
  257. package/templates/next/src/components/ui/toggle.tsx +45 -0
  258. package/templates/next/src/components/ui/tooltip.tsx +30 -0
  259. package/templates/next/src/components/ui/use-toast.ts +191 -0
  260. package/templates/next/src/data/albums.ts +71 -0
  261. package/templates/next/src/data/playlists.ts +16 -0
  262. package/templates/next/src/hooks/use-lock-body.ts +12 -0
  263. package/templates/next/src/hooks/use-mounted.ts +11 -0
  264. package/templates/next/src/hooks/use-mutation-observer.ts +20 -0
  265. package/templates/next/src/lib/fonts.ts +11 -0
  266. package/templates/next/src/lib/utils.ts +19 -0
  267. package/templates/next/src/styles/globals.css +124 -0
  268. package/templates/next/src-tauri/Cargo.lock +3636 -0
  269. package/templates/next/src-tauri/Cargo.toml +36 -0
  270. package/templates/next/src-tauri/build.rs +3 -0
  271. package/templates/next/src-tauri/icons/128x128.png +0 -0
  272. package/templates/next/src-tauri/icons/128x128@2x.png +0 -0
  273. package/templates/next/src-tauri/icons/32x32.png +0 -0
  274. package/templates/next/src-tauri/icons/Square107x107Logo.png +0 -0
  275. package/templates/next/src-tauri/icons/Square142x142Logo.png +0 -0
  276. package/templates/next/src-tauri/icons/Square150x150Logo.png +0 -0
  277. package/templates/next/src-tauri/icons/Square284x284Logo.png +0 -0
  278. package/templates/next/src-tauri/icons/Square30x30Logo.png +0 -0
  279. package/templates/next/src-tauri/icons/Square310x310Logo.png +0 -0
  280. package/templates/next/src-tauri/icons/Square44x44Logo.png +0 -0
  281. package/templates/next/src-tauri/icons/Square71x71Logo.png +0 -0
  282. package/templates/next/src-tauri/icons/Square89x89Logo.png +0 -0
  283. package/templates/next/src-tauri/icons/StoreLogo.png +0 -0
  284. package/templates/next/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png +0 -0
  285. package/templates/next/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  286. package/templates/next/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png +0 -0
  287. package/templates/next/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png +0 -0
  288. package/templates/next/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  289. package/templates/next/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png +0 -0
  290. package/templates/next/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png +0 -0
  291. package/templates/next/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  292. package/templates/next/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png +0 -0
  293. package/templates/next/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
  294. package/templates/next/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  295. package/templates/next/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  296. package/templates/next/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
  297. package/templates/next/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  298. package/templates/next/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  299. package/templates/next/src-tauri/icons/icon.icns +0 -0
  300. package/templates/next/src-tauri/icons/icon.ico +0 -0
  301. package/templates/next/src-tauri/icons/icon.png +0 -0
  302. package/templates/next/src-tauri/icons/ios/AppIcon-20x20@1x.png +0 -0
  303. package/templates/next/src-tauri/icons/ios/AppIcon-20x20@2x-1.png +0 -0
  304. package/templates/next/src-tauri/icons/ios/AppIcon-20x20@2x.png +0 -0
  305. package/templates/next/src-tauri/icons/ios/AppIcon-20x20@3x.png +0 -0
  306. package/templates/next/src-tauri/icons/ios/AppIcon-29x29@1x.png +0 -0
  307. package/templates/next/src-tauri/icons/ios/AppIcon-29x29@2x-1.png +0 -0
  308. package/templates/next/src-tauri/icons/ios/AppIcon-29x29@2x.png +0 -0
  309. package/templates/next/src-tauri/icons/ios/AppIcon-29x29@3x.png +0 -0
  310. package/templates/next/src-tauri/icons/ios/AppIcon-40x40@1x.png +0 -0
  311. package/templates/next/src-tauri/icons/ios/AppIcon-40x40@2x-1.png +0 -0
  312. package/templates/next/src-tauri/icons/ios/AppIcon-40x40@2x.png +0 -0
  313. package/templates/next/src-tauri/icons/ios/AppIcon-40x40@3x.png +0 -0
  314. package/templates/next/src-tauri/icons/ios/AppIcon-512@2x.png +0 -0
  315. package/templates/next/src-tauri/icons/ios/AppIcon-60x60@2x.png +0 -0
  316. package/templates/next/src-tauri/icons/ios/AppIcon-60x60@3x.png +0 -0
  317. package/templates/next/src-tauri/icons/ios/AppIcon-76x76@1x.png +0 -0
  318. package/templates/next/src-tauri/icons/ios/AppIcon-76x76@2x.png +0 -0
  319. package/templates/next/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png +0 -0
  320. package/templates/next/src-tauri/src/main.rs +19 -0
  321. package/templates/next/src-tauri/tauri.conf.json +63 -0
  322. package/templates/next/tailwind.config.js +80 -0
  323. package/templates/next/tsconfig.json +35 -0
  324. package/templates/vite/.github/workflows/release.yml +108 -0
  325. package/templates/vite/.vscode/extensions.json +3 -0
  326. package/templates/vite/README.md +7 -0
  327. package/templates/vite/app-icon.png +0 -0
  328. package/templates/vite/index.html +16 -0
  329. package/templates/vite/package.json +75 -0
  330. package/templates/vite/pnpm-lock.yaml +4569 -0
  331. package/templates/vite/postcss.config.js +6 -0
  332. package/templates/vite/prettier.config.cjs +35 -0
  333. package/templates/vite/src/App.tsx +39 -0
  334. package/templates/vite/src/aa +34 -0
  335. package/templates/vite/src/assets/Inter.var.woff2 +0 -0
  336. package/templates/vite/src/components/icons.tsx +154 -0
  337. package/templates/vite/src/components/menu-mode-toggle.tsx +46 -0
  338. package/templates/vite/src/components/menu.tsx +232 -0
  339. package/templates/vite/src/components/tailwind-indicator.tsx +18 -0
  340. package/templates/vite/src/components/theme-provider.tsx +9 -0
  341. package/templates/vite/src/components/ui/accordion.tsx +60 -0
  342. package/templates/vite/src/components/ui/alert-dialog.tsx +150 -0
  343. package/templates/vite/src/components/ui/alert.tsx +61 -0
  344. package/templates/vite/src/components/ui/aspect-ratio.tsx +7 -0
  345. package/templates/vite/src/components/ui/avatar.tsx +50 -0
  346. package/templates/vite/src/components/ui/badge.tsx +36 -0
  347. package/templates/vite/src/components/ui/button.tsx +51 -0
  348. package/templates/vite/src/components/ui/calendar.tsx +64 -0
  349. package/templates/vite/src/components/ui/card.tsx +81 -0
  350. package/templates/vite/src/components/ui/checkbox.tsx +30 -0
  351. package/templates/vite/src/components/ui/collapsible.tsx +11 -0
  352. package/templates/vite/src/components/ui/command.tsx +155 -0
  353. package/templates/vite/src/components/ui/context-menu.tsx +200 -0
  354. package/templates/vite/src/components/ui/dialog.tsx +128 -0
  355. package/templates/vite/src/components/ui/dropdown-menu.tsx +200 -0
  356. package/templates/vite/src/components/ui/hover-card.tsx +29 -0
  357. package/templates/vite/src/components/ui/input.tsx +27 -0
  358. package/templates/vite/src/components/ui/label.tsx +26 -0
  359. package/templates/vite/src/components/ui/menubar.tsx +236 -0
  360. package/templates/vite/src/components/ui/navigation-menu.tsx +130 -0
  361. package/templates/vite/src/components/ui/popover.tsx +31 -0
  362. package/templates/vite/src/components/ui/progress.tsx +28 -0
  363. package/templates/vite/src/components/ui/radio-group.tsx +44 -0
  364. package/templates/vite/src/components/ui/scroll-area.tsx +48 -0
  365. package/templates/vite/src/components/ui/select.tsx +120 -0
  366. package/templates/vite/src/components/ui/separator.tsx +31 -0
  367. package/templates/vite/src/components/ui/sheet.tsx +230 -0
  368. package/templates/vite/src/components/ui/skeleton.tsx +17 -0
  369. package/templates/vite/src/components/ui/slider.tsx +28 -0
  370. package/templates/vite/src/components/ui/switch.tsx +29 -0
  371. package/templates/vite/src/components/ui/table.tsx +114 -0
  372. package/templates/vite/src/components/ui/tabs.tsx +55 -0
  373. package/templates/vite/src/components/ui/textarea.tsx +26 -0
  374. package/templates/vite/src/components/ui/toast.tsx +129 -0
  375. package/templates/vite/src/components/ui/toaster.tsx +35 -0
  376. package/templates/vite/src/components/ui/toggle.tsx +45 -0
  377. package/templates/vite/src/components/ui/tooltip.tsx +30 -0
  378. package/templates/vite/src/components/ui/use-toast.ts +191 -0
  379. package/templates/vite/src/dashboard/components/date-range-picker.tsx +66 -0
  380. package/templates/vite/src/dashboard/components/main-nav.tsx +38 -0
  381. package/templates/vite/src/dashboard/components/overview.tsx +78 -0
  382. package/templates/vite/src/dashboard/components/recent-sales.tsx +67 -0
  383. package/templates/vite/src/dashboard/components/search.tsx +13 -0
  384. package/templates/vite/src/dashboard/components/team-switcher.tsx +205 -0
  385. package/templates/vite/src/dashboard/components/user-nav.tsx +67 -0
  386. package/templates/vite/src/dashboard/page.tsx +140 -0
  387. package/templates/vite/src/lib/utils.ts +19 -0
  388. package/templates/vite/src/main.tsx +10 -0
  389. package/templates/vite/src/styles/globals.css +124 -0
  390. package/templates/vite/src/vite-env.d.ts +1 -0
  391. package/templates/vite/src-tauri/Cargo.lock +3636 -0
  392. package/templates/vite/src-tauri/Cargo.toml +33 -0
  393. package/templates/vite/src-tauri/build.rs +3 -0
  394. package/templates/vite/src-tauri/icons/128x128.png +0 -0
  395. package/templates/vite/src-tauri/icons/128x128@2x.png +0 -0
  396. package/templates/vite/src-tauri/icons/32x32.png +0 -0
  397. package/templates/vite/src-tauri/icons/Square107x107Logo.png +0 -0
  398. package/templates/vite/src-tauri/icons/Square142x142Logo.png +0 -0
  399. package/templates/vite/src-tauri/icons/Square150x150Logo.png +0 -0
  400. package/templates/vite/src-tauri/icons/Square284x284Logo.png +0 -0
  401. package/templates/vite/src-tauri/icons/Square30x30Logo.png +0 -0
  402. package/templates/vite/src-tauri/icons/Square310x310Logo.png +0 -0
  403. package/templates/vite/src-tauri/icons/Square44x44Logo.png +0 -0
  404. package/templates/vite/src-tauri/icons/Square71x71Logo.png +0 -0
  405. package/templates/vite/src-tauri/icons/Square89x89Logo.png +0 -0
  406. package/templates/vite/src-tauri/icons/StoreLogo.png +0 -0
  407. package/templates/vite/src-tauri/icons/android/mipmap-hdpi/ic_launcher.png +0 -0
  408. package/templates/vite/src-tauri/icons/android/mipmap-hdpi/ic_launcher_foreground.png +0 -0
  409. package/templates/vite/src-tauri/icons/android/mipmap-hdpi/ic_launcher_round.png +0 -0
  410. package/templates/vite/src-tauri/icons/android/mipmap-mdpi/ic_launcher.png +0 -0
  411. package/templates/vite/src-tauri/icons/android/mipmap-mdpi/ic_launcher_foreground.png +0 -0
  412. package/templates/vite/src-tauri/icons/android/mipmap-mdpi/ic_launcher_round.png +0 -0
  413. package/templates/vite/src-tauri/icons/android/mipmap-xhdpi/ic_launcher.png +0 -0
  414. package/templates/vite/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_foreground.png +0 -0
  415. package/templates/vite/src-tauri/icons/android/mipmap-xhdpi/ic_launcher_round.png +0 -0
  416. package/templates/vite/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher.png +0 -0
  417. package/templates/vite/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_foreground.png +0 -0
  418. package/templates/vite/src-tauri/icons/android/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  419. package/templates/vite/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher.png +0 -0
  420. package/templates/vite/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_foreground.png +0 -0
  421. package/templates/vite/src-tauri/icons/android/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  422. package/templates/vite/src-tauri/icons/icon.icns +0 -0
  423. package/templates/vite/src-tauri/icons/icon.ico +0 -0
  424. package/templates/vite/src-tauri/icons/icon.png +0 -0
  425. package/templates/vite/src-tauri/icons/ios/AppIcon-20x20@1x.png +0 -0
  426. package/templates/vite/src-tauri/icons/ios/AppIcon-20x20@2x-1.png +0 -0
  427. package/templates/vite/src-tauri/icons/ios/AppIcon-20x20@2x.png +0 -0
  428. package/templates/vite/src-tauri/icons/ios/AppIcon-20x20@3x.png +0 -0
  429. package/templates/vite/src-tauri/icons/ios/AppIcon-29x29@1x.png +0 -0
  430. package/templates/vite/src-tauri/icons/ios/AppIcon-29x29@2x-1.png +0 -0
  431. package/templates/vite/src-tauri/icons/ios/AppIcon-29x29@2x.png +0 -0
  432. package/templates/vite/src-tauri/icons/ios/AppIcon-29x29@3x.png +0 -0
  433. package/templates/vite/src-tauri/icons/ios/AppIcon-40x40@1x.png +0 -0
  434. package/templates/vite/src-tauri/icons/ios/AppIcon-40x40@2x-1.png +0 -0
  435. package/templates/vite/src-tauri/icons/ios/AppIcon-40x40@2x.png +0 -0
  436. package/templates/vite/src-tauri/icons/ios/AppIcon-40x40@3x.png +0 -0
  437. package/templates/vite/src-tauri/icons/ios/AppIcon-512@2x.png +0 -0
  438. package/templates/vite/src-tauri/icons/ios/AppIcon-60x60@2x.png +0 -0
  439. package/templates/vite/src-tauri/icons/ios/AppIcon-60x60@3x.png +0 -0
  440. package/templates/vite/src-tauri/icons/ios/AppIcon-76x76@1x.png +0 -0
  441. package/templates/vite/src-tauri/icons/ios/AppIcon-76x76@2x.png +0 -0
  442. package/templates/vite/src-tauri/icons/ios/AppIcon-83.5x83.5@2x.png +0 -0
  443. package/templates/vite/src-tauri/src/main.rs +16 -0
  444. package/templates/vite/src-tauri/tauri.conf.json +63 -0
  445. package/templates/vite/tailwind.config.js +78 -0
  446. package/templates/vite/tsconfig.json +26 -0
  447. package/templates/vite/tsconfig.node.json +9 -0
  448. package/templates/vite/vite.config.ts +33 -0
@@ -0,0 +1,6 @@
1
+ module.exports = {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ }
@@ -0,0 +1,35 @@
1
+ /** @type {import('prettier').Config} */
2
+ module.exports = {
3
+ endOfLine: "lf",
4
+ semi: false,
5
+ singleQuote: false,
6
+ tabWidth: 2,
7
+ trailingComma: "es5",
8
+ importOrder: [
9
+ "^(react/(.*)$)|^(react$)",
10
+ "^(next/(.*)$)|^(next$)",
11
+ "<THIRD_PARTY_MODULES>",
12
+ "",
13
+ "^types$",
14
+ "^@/types/(.*)$",
15
+ "^@/config/(.*)$",
16
+ "^@/lib/(.*)$",
17
+ "^@/hooks/(.*)$",
18
+ "^@/components/ui/(.*)$",
19
+ "^@/components/(.*)$",
20
+ "^@/styles/(.*)$",
21
+ "^@/app/(.*)$",
22
+ "",
23
+ "^[./]",
24
+ ],
25
+ importOrderSeparation: false,
26
+ importOrderSortSpecifiers: true,
27
+ importOrderBuiltinModulesToTop: true,
28
+ importOrderParserPlugins: ["typescript", "jsx", "decorators-legacy"],
29
+ importOrderMergeDuplicateImports: true,
30
+ importOrderCombineTypeAndValueImports: true,
31
+ plugins: [
32
+ "@ianvs/prettier-plugin-sort-imports",
33
+ "prettier-plugin-tailwindcss",
34
+ ],
35
+ }
@@ -0,0 +1,71 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+
5
+ import { cn } from "@/lib/utils"
6
+ import { Button } from "@/components/ui/button"
7
+ import { Input } from "@/components/ui/input"
8
+ import { Label } from "@/components/ui/label"
9
+ import { Icons } from "@/components/icons"
10
+
11
+ interface UserAuthFormProps extends React.HTMLAttributes<HTMLDivElement> {}
12
+
13
+ export function UserAuthForm({ className, ...props }: UserAuthFormProps) {
14
+ const [isLoading, setIsLoading] = React.useState<boolean>(false)
15
+
16
+ async function onSubmit(event: React.SyntheticEvent) {
17
+ event.preventDefault()
18
+ setIsLoading(true)
19
+
20
+ setTimeout(() => {
21
+ setIsLoading(false)
22
+ }, 3000)
23
+ }
24
+
25
+ return (
26
+ <div className={cn("grid gap-6", className)} {...props}>
27
+ <form onSubmit={onSubmit}>
28
+ <div className="grid gap-2">
29
+ <div className="grid gap-1">
30
+ <Label className="sr-only" htmlFor="email">
31
+ Email
32
+ </Label>
33
+ <Input
34
+ id="email"
35
+ placeholder="name@example.com"
36
+ type="email"
37
+ autoCapitalize="none"
38
+ autoComplete="email"
39
+ autoCorrect="off"
40
+ disabled={isLoading}
41
+ />
42
+ </div>
43
+ <Button disabled={isLoading}>
44
+ {isLoading && (
45
+ <Icons.spinner className="mr-2 h-4 w-4 animate-spin" />
46
+ )}
47
+ Sign In with Email
48
+ </Button>
49
+ </div>
50
+ </form>
51
+ <div className="relative">
52
+ <div className="absolute inset-0 flex items-center">
53
+ <span className="w-full border-t" />
54
+ </div>
55
+ <div className="relative flex justify-center text-xs uppercase">
56
+ <span className="bg-background px-2 text-muted-foreground">
57
+ Or continue with
58
+ </span>
59
+ </div>
60
+ </div>
61
+ <Button variant="outline" type="button" disabled={isLoading}>
62
+ {isLoading ? (
63
+ <Icons.spinner className="mr-2 h-4 w-4 animate-spin" />
64
+ ) : (
65
+ <Icons.gitHub className="mr-2 h-4 w-4" />
66
+ )}{" "}
67
+ Github
68
+ </Button>
69
+ </div>
70
+ )
71
+ }
@@ -0,0 +1,80 @@
1
+ import { Metadata } from "next"
2
+ import Image from "next/image"
3
+ import { Command } from "lucide-react"
4
+
5
+ import { cn } from "@/lib/utils"
6
+ import { buttonVariants } from "@/components/ui/button"
7
+ import { UserAuthForm } from "@/app/examples/authentication/components/user-auth-form"
8
+
9
+ export const metadata: Metadata = {
10
+ title: "Authentication",
11
+ description: "Authentication forms built using the components.",
12
+ }
13
+
14
+ export default function AuthenticationPage() {
15
+ return (
16
+ <div className="container relative h-[800px] flex-col items-center justify-center md:grid lg:max-w-none lg:grid-cols-2 lg:px-0">
17
+ <a
18
+ href="/examples/authentication"
19
+ className={cn(
20
+ buttonVariants({ variant: "ghost", size: "sm" }),
21
+ "absolute right-4 top-4 md:right-8 md:top-8"
22
+ )}
23
+ >
24
+ Login
25
+ </a>
26
+ <div className="relative hidden h-full flex-col bg-muted p-10 text-white dark:border-r lg:flex">
27
+ <div
28
+ className="absolute inset-0 bg-cover"
29
+ style={{
30
+ backgroundImage:
31
+ "url(https://images.unsplash.com/photo-1590069261209-f8e9b8642343?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1376&q=80)",
32
+ }}
33
+ />
34
+ <div className="relative z-20 flex items-center text-lg font-medium">
35
+ <Command className="mr-2 h-6 w-6" /> Acme Inc
36
+ </div>
37
+ <div className="relative z-20 mt-auto">
38
+ <blockquote className="space-y-2">
39
+ <p className="text-lg">
40
+ &ldquo;This library has saved me countless hours of work and
41
+ helped me deliver stunning designs to my clients faster than ever
42
+ before. Highly recommended!&rdquo;
43
+ </p>
44
+ <footer className="text-sm">Sofia Davis</footer>
45
+ </blockquote>
46
+ </div>
47
+ </div>
48
+ <div className="lg:p-8">
49
+ <div className="mx-auto flex w-full flex-col justify-center space-y-6 sm:w-[350px]">
50
+ <div className="flex flex-col space-y-2 text-center">
51
+ <h1 className="text-2xl font-semibold tracking-tight">
52
+ Create an account
53
+ </h1>
54
+ <p className="text-sm text-muted-foreground">
55
+ Enter your email below to create your account
56
+ </p>
57
+ </div>
58
+ <UserAuthForm />
59
+ <p className="px-8 text-center text-sm text-muted-foreground">
60
+ By clicking continue, you agree to our{" "}
61
+ <a
62
+ href="/terms"
63
+ className="underline underline-offset-4 hover:text-primary"
64
+ >
65
+ Terms of Service
66
+ </a>{" "}
67
+ and{" "}
68
+ <a
69
+ href="/privacy"
70
+ className="underline underline-offset-4 hover:text-primary"
71
+ >
72
+ Privacy Policy
73
+ </a>
74
+ .
75
+ </p>
76
+ </div>
77
+ </div>
78
+ </div>
79
+ )
80
+ }
@@ -0,0 +1,60 @@
1
+ "use client"
2
+
3
+ import { Button } from "@/components/ui/button"
4
+ import {
5
+ Card,
6
+ CardContent,
7
+ CardDescription,
8
+ CardFooter,
9
+ CardHeader,
10
+ CardTitle,
11
+ } from "@/components/ui/card"
12
+ import { Label } from "@/components/ui/label"
13
+ import { Switch } from "@/components/ui/switch"
14
+
15
+ export function DemoCookieSettings() {
16
+ return (
17
+ <Card>
18
+ <CardHeader>
19
+ <CardTitle>Cookie Settings</CardTitle>
20
+ <CardDescription>Manage your cookie settings here.</CardDescription>
21
+ </CardHeader>
22
+ <CardContent className="grid gap-6">
23
+ <div className="flex items-center justify-between space-x-2">
24
+ <Label htmlFor="necessary" className="flex flex-col space-y-1">
25
+ <span>Strictly Necessary</span>
26
+ <span className="font-normal leading-snug text-muted-foreground">
27
+ These cookies are essential in order to use the website and use
28
+ its features.
29
+ </span>
30
+ </Label>
31
+ <Switch id="necessary" defaultChecked />
32
+ </div>
33
+ <div className="flex items-center justify-between space-x-2">
34
+ <Label htmlFor="functional" className="flex flex-col space-y-1">
35
+ <span>Functional Cookies</span>
36
+ <span className="font-normal leading-snug text-muted-foreground">
37
+ These cookies allow the website to provide personalized
38
+ functionality.
39
+ </span>
40
+ </Label>
41
+ <Switch id="functional" />
42
+ </div>
43
+ <div className="flex items-center justify-between space-x-2">
44
+ <Label htmlFor="performance" className="flex flex-col space-y-1">
45
+ <span>Performance Cookies</span>
46
+ <span className="font-normal leading-snug text-muted-foreground">
47
+ These cookies help to improve the performance of the website.
48
+ </span>
49
+ </Label>
50
+ <Switch id="performance" />
51
+ </div>
52
+ </CardContent>
53
+ <CardFooter>
54
+ <Button variant="outline" className="w-full">
55
+ Save preferences
56
+ </Button>
57
+ </CardFooter>
58
+ </Card>
59
+ )
60
+ }
@@ -0,0 +1,60 @@
1
+ "use client"
2
+
3
+ import { Button } from "@/components/ui/button"
4
+ import {
5
+ Card,
6
+ CardContent,
7
+ CardDescription,
8
+ CardFooter,
9
+ CardHeader,
10
+ CardTitle,
11
+ } from "@/components/ui/card"
12
+ import { Input } from "@/components/ui/input"
13
+ import { Label } from "@/components/ui/label"
14
+ import { Icons } from "@/components/icons"
15
+
16
+ export function DemoCreateAccount() {
17
+ return (
18
+ <Card>
19
+ <CardHeader className="space-y-1">
20
+ <CardTitle className="text-2xl">Create an account</CardTitle>
21
+ <CardDescription>
22
+ Enter your email below to create your account
23
+ </CardDescription>
24
+ </CardHeader>
25
+ <CardContent className="grid gap-4">
26
+ <div className="grid grid-cols-2 gap-6">
27
+ <Button variant="outline">
28
+ <Icons.gitHub className="mr-2 h-4 w-4" />
29
+ Github
30
+ </Button>
31
+ <Button variant="outline">
32
+ <Icons.google className="mr-2 h-4 w-4" />
33
+ Google
34
+ </Button>
35
+ </div>
36
+ <div className="relative">
37
+ <div className="absolute inset-0 flex items-center">
38
+ <span className="w-full border-t" />
39
+ </div>
40
+ <div className="relative flex justify-center text-xs uppercase">
41
+ <span className="bg-background px-2 text-muted-foreground">
42
+ Or continue with
43
+ </span>
44
+ </div>
45
+ </div>
46
+ <div className="grid gap-2">
47
+ <Label htmlFor="email">Email</Label>
48
+ <Input id="email" type="email" placeholder="m@example.com" />
49
+ </div>
50
+ <div className="grid gap-2">
51
+ <Label htmlFor="password">Password</Label>
52
+ <Input id="password" type="password" />
53
+ </div>
54
+ </CardContent>
55
+ <CardFooter>
56
+ <Button className="w-full">Create account</Button>
57
+ </CardFooter>
58
+ </Card>
59
+ )
60
+ }
@@ -0,0 +1,18 @@
1
+ import { Card, CardContent } from "@/components/ui/card"
2
+ import { Label } from "@/components/ui/label"
3
+ import { CalendarDateRangePicker } from "@/components/examples/calendar/date-range-picker"
4
+
5
+ export function DemoDatePicker() {
6
+ return (
7
+ <Card>
8
+ <CardContent className="pt-6">
9
+ <div className="space-y-2">
10
+ <Label htmlFor="date" className="shrink-0">
11
+ Pick a date
12
+ </Label>
13
+ <CalendarDateRangePicker className="[&>button]:w-[260px]" />
14
+ </div>
15
+ </CardContent>
16
+ </Card>
17
+ )
18
+ }
@@ -0,0 +1,81 @@
1
+ import { ChevronDown, Circle, Plus, Star } from "lucide-react"
2
+
3
+ import { Button } from "@/components/ui/button"
4
+ import {
5
+ Card,
6
+ CardContent,
7
+ CardDescription,
8
+ CardHeader,
9
+ CardTitle,
10
+ } from "@/components/ui/card"
11
+ import {
12
+ DropdownMenu,
13
+ DropdownMenuCheckboxItem,
14
+ DropdownMenuContent,
15
+ DropdownMenuItem,
16
+ DropdownMenuLabel,
17
+ DropdownMenuSeparator,
18
+ DropdownMenuTrigger,
19
+ } from "@/components/ui/dropdown-menu"
20
+ import { Separator } from "@/components/ui/separator"
21
+
22
+ export function DemoGithub() {
23
+ return (
24
+ <Card>
25
+ <CardHeader className="grid grid-cols-[1fr_110px] items-start gap-4 space-y-0">
26
+ <div className="space-y-1">
27
+ <CardTitle>shadcn/ui</CardTitle>
28
+ <CardDescription>
29
+ Beautifully designed components built with Radix UI and Tailwind
30
+ CSS.
31
+ </CardDescription>
32
+ </div>
33
+ <div className="flex items-center space-x-1 rounded-md bg-secondary text-secondary-foreground">
34
+ <Button variant="secondary" className="px-3">
35
+ <Star className="mr-2 h-4 w-4" />
36
+ Star
37
+ </Button>
38
+ <Separator orientation="vertical" className="h-[20px]" />
39
+ <DropdownMenu>
40
+ <DropdownMenuTrigger asChild>
41
+ <Button variant="secondary" className="px-2">
42
+ <ChevronDown className="h-4 w-4 text-secondary-foreground" />
43
+ </Button>
44
+ </DropdownMenuTrigger>
45
+ <DropdownMenuContent
46
+ align="end"
47
+ alignOffset={-5}
48
+ className="w-[200px]"
49
+ forceMount
50
+ >
51
+ <DropdownMenuLabel>Suggested Lists</DropdownMenuLabel>
52
+ <DropdownMenuSeparator />
53
+ <DropdownMenuCheckboxItem checked>
54
+ Future Ideas
55
+ </DropdownMenuCheckboxItem>
56
+ <DropdownMenuCheckboxItem>My Stack</DropdownMenuCheckboxItem>
57
+ <DropdownMenuCheckboxItem>Inspiration</DropdownMenuCheckboxItem>
58
+ <DropdownMenuSeparator />
59
+ <DropdownMenuItem>
60
+ <Plus className="mr-2 h-4 w-4" /> Create List
61
+ </DropdownMenuItem>
62
+ </DropdownMenuContent>
63
+ </DropdownMenu>
64
+ </div>
65
+ </CardHeader>
66
+ <CardContent>
67
+ <div className="flex space-x-4 text-sm text-muted-foreground">
68
+ <div className="flex items-center">
69
+ <Circle className="mr-1 h-3 w-3 fill-sky-400 text-sky-400" />
70
+ TypeScipt
71
+ </div>
72
+ <div className="flex items-center">
73
+ <Star className="mr-1 h-3 w-3" />
74
+ 10k
75
+ </div>
76
+ <div>Updated April 2023</div>
77
+ </div>
78
+ </CardContent>
79
+ </Card>
80
+ )
81
+ }
@@ -0,0 +1,51 @@
1
+ import { AtSign, Bell, BellOff } from "lucide-react"
2
+
3
+ import {
4
+ Card,
5
+ CardContent,
6
+ CardDescription,
7
+ CardHeader,
8
+ CardTitle,
9
+ } from "@/components/ui/card"
10
+
11
+ export function DemoNotifications() {
12
+ return (
13
+ <Card>
14
+ <CardHeader>
15
+ <CardTitle>Notifications</CardTitle>
16
+ <CardDescription>
17
+ Choose what you want to be notified about.
18
+ </CardDescription>
19
+ </CardHeader>
20
+ <CardContent className="grid gap-1 p-1.5">
21
+ <div className="flex items-center space-x-4 rounded-md p-2 hover:bg-accent hover:text-accent-foreground">
22
+ <Bell className="h-5 w-5" />
23
+ <div className="space-y-1">
24
+ <p className="text-sm font-medium leading-none">Everything</p>
25
+ <p className="text-sm text-muted-foreground">
26
+ Email digest, mentions & all activity.
27
+ </p>
28
+ </div>
29
+ </div>
30
+ <div className="flex items-center space-x-4 rounded-md bg-accent p-2 text-accent-foreground">
31
+ <AtSign className="h-5 w-5" />
32
+ <div className="space-y-1">
33
+ <p className="text-sm font-medium leading-none">Available</p>
34
+ <p className="text-sm text-muted-foreground">
35
+ Only mentions and comments.
36
+ </p>
37
+ </div>
38
+ </div>
39
+ <div className="flex items-center space-x-4 rounded-md p-2 hover:bg-accent hover:text-accent-foreground">
40
+ <BellOff className="h-5 w-5" />
41
+ <div className="space-y-1">
42
+ <p className="text-sm font-medium leading-none">Ignoring</p>
43
+ <p className="text-sm text-muted-foreground">
44
+ Turn off all notifications.
45
+ </p>
46
+ </div>
47
+ </div>
48
+ </CardContent>
49
+ </Card>
50
+ )
51
+ }
@@ -0,0 +1,117 @@
1
+ import { CreditCard } from "lucide-react"
2
+
3
+ import { Button } from "@/components/ui/button"
4
+ import {
5
+ Card,
6
+ CardContent,
7
+ CardDescription,
8
+ CardFooter,
9
+ CardHeader,
10
+ CardTitle,
11
+ } from "@/components/ui/card"
12
+ import { Input } from "@/components/ui/input"
13
+ import { Label } from "@/components/ui/label"
14
+ import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group"
15
+ import {
16
+ Select,
17
+ SelectContent,
18
+ SelectItem,
19
+ SelectTrigger,
20
+ SelectValue,
21
+ } from "@/components/ui/select"
22
+ import { Icons } from "@/components/icons"
23
+
24
+ export function DemoPaymentMethod() {
25
+ return (
26
+ <Card>
27
+ <CardHeader>
28
+ <CardTitle>Payment Method</CardTitle>
29
+ <CardDescription>
30
+ Add a new payment method to your account.
31
+ </CardDescription>
32
+ </CardHeader>
33
+ <CardContent className="grid gap-6">
34
+ <RadioGroup defaultValue="card" className="grid grid-cols-3 gap-4">
35
+ <Label
36
+ htmlFor="card"
37
+ className="flex flex-col items-center justify-between rounded-md border-2 border-muted bg-popover p-4 hover:bg-accent hover:text-accent-foreground [&:has([data-state=checked])]:border-primary"
38
+ >
39
+ <RadioGroupItem value="card" id="card" className="sr-only" />
40
+ <CreditCard className="mb-3 h-6 w-6" />
41
+ Card
42
+ </Label>
43
+ <Label
44
+ htmlFor="paypal"
45
+ className="flex flex-col items-center justify-between rounded-md border-2 border-muted bg-popover p-4 hover:bg-accent hover:text-accent-foreground [&:has([data-state=checked])]:border-primary"
46
+ >
47
+ <RadioGroupItem value="paypal" id="paypal" className="sr-only" />
48
+ <Icons.paypal className="mb-3 h-6 w-6" />
49
+ Paypal
50
+ </Label>
51
+ <Label
52
+ htmlFor="apple"
53
+ className="flex flex-col items-center justify-between rounded-md border-2 border-muted bg-popover p-4 hover:bg-accent hover:text-accent-foreground [&:has([data-state=checked])]:border-primary"
54
+ >
55
+ <RadioGroupItem value="apple" id="apple" className="sr-only" />
56
+ <Icons.apple className="mb-3 h-6 w-6" />
57
+ Apple
58
+ </Label>
59
+ </RadioGroup>
60
+ <div className="grid gap-2">
61
+ <Label htmlFor="name">Name</Label>
62
+ <Input id="name" placeholder="First Last" />
63
+ </div>
64
+ <div className="grid gap-2">
65
+ <Label htmlFor="number">Card number</Label>
66
+ <Input id="number" placeholder="" />
67
+ </div>
68
+ <div className="grid grid-cols-3 gap-4">
69
+ <div className="grid gap-2">
70
+ <Label htmlFor="month">Expires</Label>
71
+ <Select>
72
+ <SelectTrigger id="month">
73
+ <SelectValue placeholder="Month" />
74
+ </SelectTrigger>
75
+ <SelectContent>
76
+ <SelectItem value="1">January</SelectItem>
77
+ <SelectItem value="2">February</SelectItem>
78
+ <SelectItem value="3">March</SelectItem>
79
+ <SelectItem value="4">April</SelectItem>
80
+ <SelectItem value="5">May</SelectItem>
81
+ <SelectItem value="6">June</SelectItem>
82
+ <SelectItem value="7">July</SelectItem>
83
+ <SelectItem value="8">August</SelectItem>
84
+ <SelectItem value="9">September</SelectItem>
85
+ <SelectItem value="10">October</SelectItem>
86
+ <SelectItem value="11">November</SelectItem>
87
+ <SelectItem value="12">December</SelectItem>
88
+ </SelectContent>
89
+ </Select>
90
+ </div>
91
+ <div className="grid gap-2">
92
+ <Label htmlFor="year">Year</Label>
93
+ <Select>
94
+ <SelectTrigger id="year">
95
+ <SelectValue placeholder="Year" />
96
+ </SelectTrigger>
97
+ <SelectContent>
98
+ {Array.from({ length: 10 }, (_, i) => (
99
+ <SelectItem key={i} value={`${new Date().getFullYear() + i}`}>
100
+ {new Date().getFullYear() + i}
101
+ </SelectItem>
102
+ ))}
103
+ </SelectContent>
104
+ </Select>
105
+ </div>
106
+ <div className="grid gap-2">
107
+ <Label htmlFor="cvc">CVC</Label>
108
+ <Input id="cvc" placeholder="CVC" />
109
+ </div>
110
+ </div>
111
+ </CardContent>
112
+ <CardFooter>
113
+ <Button className="w-full">Continue</Button>
114
+ </CardFooter>
115
+ </Card>
116
+ )
117
+ }