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,82 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import { useRouter } from "next/navigation"
5
+ import { PopoverProps } from "@radix-ui/react-popover"
6
+ import { Check, ChevronsUpDown } from "lucide-react"
7
+
8
+ import { cn } from "@/lib/utils"
9
+ import { Button } from "@/components/ui/button"
10
+ import {
11
+ Command,
12
+ CommandEmpty,
13
+ CommandGroup,
14
+ CommandInput,
15
+ CommandItem,
16
+ } from "@/components/ui/command"
17
+ import {
18
+ Popover,
19
+ PopoverContent,
20
+ PopoverTrigger,
21
+ } from "@/components/ui/popover"
22
+
23
+ import { Preset } from "../data/presets"
24
+
25
+ interface PresetSelectorProps extends PopoverProps {
26
+ presets: Preset[]
27
+ }
28
+
29
+ export function PresetSelector({ presets, ...props }: PresetSelectorProps) {
30
+ const [open, setOpen] = React.useState(false)
31
+ const [selectedPreset, setSelectedPreset] = React.useState<Preset>()
32
+ const router = useRouter()
33
+
34
+ return (
35
+ <Popover open={open} onOpenChange={setOpen} {...props}>
36
+ <PopoverTrigger asChild>
37
+ <Button
38
+ variant="outline"
39
+ role="combobox"
40
+ aria-label="Load a preset..."
41
+ aria-expanded={open}
42
+ className="flex-1 justify-between md:max-w-[200px] lg:max-w-[300px]"
43
+ >
44
+ {selectedPreset ? selectedPreset.name : "Load a preset..."}
45
+ <ChevronsUpDown className="ml-2 h-4 w-4 shrink-0 opacity-50" />
46
+ </Button>
47
+ </PopoverTrigger>
48
+ <PopoverContent className="w-[300px] p-0">
49
+ <Command>
50
+ <CommandInput placeholder="Search presets..." />
51
+ <CommandEmpty>No presets found.</CommandEmpty>
52
+ <CommandGroup heading="Examples">
53
+ {presets.map((preset) => (
54
+ <CommandItem
55
+ key={preset.id}
56
+ onSelect={() => {
57
+ setSelectedPreset(preset)
58
+ setOpen(false)
59
+ }}
60
+ >
61
+ {preset.name}
62
+ <Check
63
+ className={cn(
64
+ "ml-auto h-4 w-4",
65
+ selectedPreset?.id === preset.id
66
+ ? "opacity-100"
67
+ : "opacity-0"
68
+ )}
69
+ />
70
+ </CommandItem>
71
+ ))}
72
+ </CommandGroup>
73
+ <CommandGroup className="pt-0">
74
+ <CommandItem onSelect={() => router.push("/")}>
75
+ More examples
76
+ </CommandItem>
77
+ </CommandGroup>
78
+ </Command>
79
+ </PopoverContent>
80
+ </Popover>
81
+ )
82
+ }
@@ -0,0 +1,46 @@
1
+ import { Copy } from "lucide-react"
2
+
3
+ import { Button } from "@/components/ui/button"
4
+ import { Input } from "@/components/ui/input"
5
+ import { Label } from "@/components/ui/label"
6
+ import {
7
+ Popover,
8
+ PopoverContent,
9
+ PopoverTrigger,
10
+ } from "@/components/ui/popover"
11
+
12
+ export function PresetShare() {
13
+ return (
14
+ <Popover>
15
+ <PopoverTrigger asChild>
16
+ <Button variant="secondary">Share</Button>
17
+ </PopoverTrigger>
18
+ <PopoverContent align="end" className="w-[520px]">
19
+ <div className="flex flex-col space-y-2 text-center sm:text-left">
20
+ <h3 className="text-lg font-semibold">Share preset</h3>
21
+ <p className="text-sm text-muted-foreground">
22
+ Anyone who has this link and an OpenAI account will be able to view
23
+ this.
24
+ </p>
25
+ </div>
26
+ <div className="flex items-center space-x-2 pt-4">
27
+ <div className="grid flex-1 gap-2">
28
+ <Label htmlFor="link" className="sr-only">
29
+ Link
30
+ </Label>
31
+ <Input
32
+ id="link"
33
+ defaultValue="https://platform.openai.com/playground/p/7bbKYQvsVkNmVb8NGcdUOLae?model=text-davinci-003"
34
+ readOnly
35
+ className="h-9"
36
+ />
37
+ </div>
38
+ <Button type="submit" size="sm" className="px-3">
39
+ <span className="sr-only">Copy</span>
40
+ <Copy className="h-4 w-4" />
41
+ </Button>
42
+ </div>
43
+ </PopoverContent>
44
+ </Popover>
45
+ )
46
+ }
@@ -0,0 +1,57 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import { SliderProps } from "@radix-ui/react-slider"
5
+
6
+ import {
7
+ HoverCard,
8
+ HoverCardContent,
9
+ HoverCardTrigger,
10
+ } from "@/components/ui/hover-card"
11
+ import { Label } from "@/components/ui/label"
12
+ import { Slider } from "@/components/ui/slider"
13
+
14
+ interface TemperatureSelectorProps {
15
+ defaultValue: SliderProps["defaultValue"]
16
+ }
17
+
18
+ export function TemperatureSelector({
19
+ defaultValue,
20
+ }: TemperatureSelectorProps) {
21
+ const [value, setValue] = React.useState(defaultValue)
22
+
23
+ return (
24
+ <div className="grid gap-2 pt-2">
25
+ <HoverCard openDelay={200}>
26
+ <HoverCardTrigger asChild>
27
+ <div className="grid gap-4">
28
+ <div className="flex items-center justify-between">
29
+ <Label htmlFor="temperature">Temperature</Label>
30
+ <span className="w-12 rounded-md border border-transparent px-2 py-0.5 text-right text-sm text-muted-foreground hover:border-border">
31
+ {value}
32
+ </span>
33
+ </div>
34
+ <Slider
35
+ id="temperature"
36
+ max={1}
37
+ defaultValue={value}
38
+ step={0.1}
39
+ onValueChange={setValue}
40
+ className="[&_[role=slider]]:h-4 [&_[role=slider]]:w-4"
41
+ aria-label="Temperature"
42
+ />
43
+ </div>
44
+ </HoverCardTrigger>
45
+ <HoverCardContent
46
+ align="start"
47
+ className="w-[260px] text-sm"
48
+ side="left"
49
+ >
50
+ Controls randomness: lowering results in less random completions. As
51
+ the temperature approaches zero, the model will become deterministic
52
+ and repetitive.
53
+ </HoverCardContent>
54
+ </HoverCard>
55
+ </div>
56
+ )
57
+ }
@@ -0,0 +1,54 @@
1
+ "use client"
2
+
3
+ import * as React from "react"
4
+ import { SliderProps } from "@radix-ui/react-slider"
5
+
6
+ import {
7
+ HoverCard,
8
+ HoverCardContent,
9
+ HoverCardTrigger,
10
+ } from "@/components/ui/hover-card"
11
+ import { Label } from "@/components/ui/label"
12
+ import { Slider } from "@/components/ui/slider"
13
+
14
+ interface TopPSelectorProps {
15
+ defaultValue: SliderProps["defaultValue"]
16
+ }
17
+
18
+ export function TopPSelector({ defaultValue }: TopPSelectorProps) {
19
+ const [value, setValue] = React.useState(defaultValue)
20
+
21
+ return (
22
+ <div className="grid gap-2 pt-2">
23
+ <HoverCard openDelay={200}>
24
+ <HoverCardTrigger asChild>
25
+ <div className="grid gap-4">
26
+ <div className="flex items-center justify-between">
27
+ <Label htmlFor="top-p">Top P</Label>
28
+ <span className="w-12 rounded-md border border-transparent px-2 py-0.5 text-right text-sm text-muted-foreground hover:border-border">
29
+ {value}
30
+ </span>
31
+ </div>
32
+ <Slider
33
+ id="top-p"
34
+ max={1}
35
+ defaultValue={value}
36
+ step={0.1}
37
+ onValueChange={setValue}
38
+ className="[&_[role=slider]]:h-4 [&_[role=slider]]:w-4"
39
+ aria-label="Top P"
40
+ />
41
+ </div>
42
+ </HoverCardTrigger>
43
+ <HoverCardContent
44
+ align="start"
45
+ className="w-[260px] text-sm"
46
+ side="left"
47
+ >
48
+ Control diversity via nucleus sampling: 0.5 means half of all
49
+ likelihood-weighted options are considered.
50
+ </HoverCardContent>
51
+ </HoverCard>
52
+ </div>
53
+ )
54
+ }
@@ -0,0 +1,62 @@
1
+ export const types = ["GPT-3", "Codex"] as const
2
+
3
+ export type ModelType = (typeof types)[number]
4
+
5
+ export interface Model<Type = string> {
6
+ id: string
7
+ name: string
8
+ description: string
9
+ strengths?: string
10
+ type: Type
11
+ }
12
+
13
+ export const models: Model<ModelType>[] = [
14
+ {
15
+ id: "c305f976-8e38-42b1-9fb7-d21b2e34f0da",
16
+ name: "text-davinci-003",
17
+ description:
18
+ "Most capable GPT-3 model. Can do any task the other models can do, often with higher quality, longer output and better instruction-following. Also supports inserting completions within text.",
19
+ type: "GPT-3",
20
+ strengths:
21
+ "Complex intent, cause and effect, creative generation, search, summarization for audience",
22
+ },
23
+ {
24
+ id: "464a47c3-7ab5-44d7-b669-f9cb5a9e8465",
25
+ name: "text-curie-001",
26
+ description: "Very capable, but faster and lower cost than Davinci.",
27
+ type: "GPT-3",
28
+ strengths:
29
+ "Language translation, complex classification, sentiment, summarization",
30
+ },
31
+ {
32
+ id: "ac0797b0-7e31-43b6-a494-da7e2ab43445",
33
+ name: "text-babbage-001",
34
+ description: "Capable of straightforward tasks, very fast, and lower cost.",
35
+ type: "GPT-3",
36
+ strengths: "Moderate classification, semantic search",
37
+ },
38
+ {
39
+ id: " be638fb1-973b-4471-a49c-290325085802",
40
+ name: "text-ada-001",
41
+ description:
42
+ "Capable of very simple tasks, usually the fastest model in the GPT-3 series, and lowest cost.",
43
+ type: "GPT-3",
44
+ strengths:
45
+ "Parsing text, simple classification, address correction, keywords",
46
+ },
47
+ {
48
+ id: "b43c0ea9-5ad4-456a-ae29-26cd77b6d0fb",
49
+ name: "code-davinci-002",
50
+ description:
51
+ "Most capable Codex model. Particularly good at translating natural language to code. In addition to completing code, also supports inserting completions within code.",
52
+ type: "Codex",
53
+ },
54
+ {
55
+ id: "bbd57291-4622-4a21-9eed-dd6bd786fdd1",
56
+ name: "code-cushman-001",
57
+ description:
58
+ "Almost as capable as Davinci Codex, but slightly faster. This speed advantage may make it preferable for real-time applications.",
59
+ type: "Codex",
60
+ strengths: "Real-time application where low-latency is preferable",
61
+ },
62
+ ]
@@ -0,0 +1,47 @@
1
+ export interface Preset {
2
+ id: string
3
+ name: string
4
+ }
5
+
6
+ export const presets: Preset[] = [
7
+ {
8
+ id: "9cb0e66a-9937-465d-a188-2c4c4ae2401f",
9
+ name: "Grammatical Standard English",
10
+ },
11
+ {
12
+ id: "61eb0e32-2391-4cd3-adc3-66efe09bc0b7",
13
+ name: "Summarize for a 2nd grader",
14
+ },
15
+ {
16
+ id: "a4e1fa51-f4ce-4e45-892c-224030a00bdd",
17
+ name: "Text to command",
18
+ },
19
+ {
20
+ id: "cc198b13-4933-43aa-977e-dcd95fa30770",
21
+ name: "Q&A",
22
+ },
23
+ {
24
+ id: "adfa95be-a575-45fd-a9ef-ea45386c64de",
25
+ name: "English to other languages",
26
+ },
27
+ {
28
+ id: "c569a06a-0bd6-43a7-adf9-bf68c09e7a79",
29
+ name: "Parse unstructured data",
30
+ },
31
+ {
32
+ id: "15ccc0d7-f37a-4f0a-8163-a37e162877dc",
33
+ name: "Classification",
34
+ },
35
+ {
36
+ id: "4641ef41-1c0f-421d-b4b2-70fe431081f3",
37
+ name: "Natural language to Python",
38
+ },
39
+ {
40
+ id: "48d34082-72f3-4a1b-a14d-f15aca4f57a0",
41
+ name: "Explain code",
42
+ },
43
+ {
44
+ id: "dfd42fd5-0394-4810-92c6-cc907d3bfd1a",
45
+ name: "Chat",
46
+ },
47
+ ]
@@ -0,0 +1,160 @@
1
+ import { Metadata } from "next"
2
+ import { History } from "lucide-react"
3
+
4
+ import { Button } from "@/components/ui/button"
5
+ import {
6
+ HoverCard,
7
+ HoverCardContent,
8
+ HoverCardTrigger,
9
+ } from "@/components/ui/hover-card"
10
+ import { Label } from "@/components/ui/label"
11
+ import { Separator } from "@/components/ui/separator"
12
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from "@/components/ui/tabs"
13
+ import { Textarea } from "@/components/ui/textarea"
14
+
15
+ import { CodeViewer } from "./components/code-viewer"
16
+ import { Icons } from "./components/icons"
17
+ import { MaxLengthSelector } from "./components/maxlength-selector"
18
+ import { ModelSelector } from "./components/model-selector"
19
+ import { PresetActions } from "./components/preset-actions"
20
+ import { PresetSave } from "./components/preset-save"
21
+ import { PresetSelector } from "./components/preset-selector"
22
+ import { PresetShare } from "./components/preset-share"
23
+ import { TemperatureSelector } from "./components/temperature-selector"
24
+ import { TopPSelector } from "./components/top-p-selector"
25
+ import { models, types } from "./data/models"
26
+ import { presets } from "./data/presets"
27
+ import "./styles.css"
28
+ import Image from "next/image"
29
+
30
+ export const metadata: Metadata = {
31
+ title: "Playground",
32
+ description: "The OpenAI Playground built using the components.",
33
+ }
34
+
35
+ export default function PlaygroundPage() {
36
+ return (
37
+ <div className="h-full flex-col md:flex">
38
+ <div className="container flex flex-col items-start justify-between space-y-2 py-4 sm:flex-row sm:items-center sm:space-y-0 md:h-16">
39
+ <h2 className="text-lg font-semibold">Playground</h2>
40
+ <div className="ml-auto flex w-full space-x-2 sm:justify-end">
41
+ <PresetSelector presets={presets} />
42
+ <PresetSave />
43
+ <div className="hidden space-x-2 md:flex">
44
+ <CodeViewer />
45
+ <PresetShare />
46
+ </div>
47
+ <PresetActions />
48
+ </div>
49
+ </div>
50
+ <Separator />
51
+ <Tabs defaultValue="complete" className="flex-1">
52
+ <div className="container h-full py-6">
53
+ <div className="grid h-full items-stretch gap-6 md:grid-cols-[1fr_200px]">
54
+ <div className="hidden flex-col space-y-4 sm:flex md:order-2">
55
+ <div className="grid gap-2">
56
+ <HoverCard openDelay={200}>
57
+ <HoverCardTrigger asChild>
58
+ <span className="text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70">
59
+ Mode
60
+ </span>
61
+ </HoverCardTrigger>
62
+ <HoverCardContent className="w-[320px] text-sm" side="left">
63
+ Choose the interface that best suits your task. You can
64
+ provide: a simple prompt to complete, starting and ending
65
+ text to insert a completion within, or some text with
66
+ instructions to edit it.
67
+ </HoverCardContent>
68
+ </HoverCard>
69
+ <TabsList className="grid grid-cols-3">
70
+ <TabsTrigger value="complete">
71
+ <span className="sr-only">Complete</span>
72
+ <Icons.completeMode className="h-5 w-5" />
73
+ </TabsTrigger>
74
+ <TabsTrigger value="insert">
75
+ <span className="sr-only">Insert</span>
76
+ <Icons.insertMode className="h-5 w-5" />
77
+ </TabsTrigger>
78
+ <TabsTrigger value="edit">
79
+ <span className="sr-only">Edit</span>
80
+ <Icons.editMode className="h-5 w-5" />
81
+ </TabsTrigger>
82
+ </TabsList>
83
+ </div>
84
+ <ModelSelector types={types} models={models} />
85
+ <TemperatureSelector defaultValue={[0.56]} />
86
+ <MaxLengthSelector defaultValue={[256]} />
87
+ <TopPSelector defaultValue={[0.9]} />
88
+ </div>
89
+ <div className="md:order-1">
90
+ <TabsContent value="complete" className="mt-0 border-0 p-0">
91
+ <div className="flex h-full flex-col space-y-4">
92
+ <Textarea
93
+ placeholder="Write a tagline for an ice cream shop"
94
+ className="min-h-[400px] flex-1 p-4 md:min-h-[700px] lg:min-h-[700px]"
95
+ />
96
+ <div className="flex items-center space-x-2">
97
+ <Button>Submit</Button>
98
+ <Button variant="secondary">
99
+ <span className="sr-only">Show history</span>
100
+ <History className="h-4 w-4" />
101
+ </Button>
102
+ </div>
103
+ </div>
104
+ </TabsContent>
105
+ <TabsContent value="insert" className="mt-0 border-0 p-0">
106
+ <div className="flex flex-col space-y-4">
107
+ <div className="grid h-full grid-rows-2 gap-6 lg:grid-cols-2 lg:grid-rows-1">
108
+ <Textarea
109
+ placeholder="We're writing to [inset]. Congrats from OpenAI!"
110
+ className="h-full min-h-[300px] lg:min-h-[700px] xl:min-h-[700px]"
111
+ />
112
+ <div className="rounded-md border bg-muted"></div>
113
+ </div>
114
+ <div className="flex items-center space-x-2">
115
+ <Button>Submit</Button>
116
+ <Button variant="secondary">
117
+ <span className="sr-only">Show history</span>
118
+ <History className="h-4 w-4" />
119
+ </Button>
120
+ </div>
121
+ </div>
122
+ </TabsContent>
123
+ <TabsContent value="edit" className="mt-0 border-0 p-0">
124
+ <div className="flex flex-col space-y-4">
125
+ <div className="grid h-full gap-6 lg:grid-cols-2">
126
+ <div className="flex flex-col space-y-4">
127
+ <div className="flex flex-1 flex-col space-y-2">
128
+ <Label htmlFor="input">Input</Label>
129
+ <Textarea
130
+ id="input"
131
+ placeholder="We is going to the market."
132
+ className="flex-1 lg:min-h-[580px]"
133
+ />
134
+ </div>
135
+ <div className="flex flex-col space-y-2">
136
+ <Label htmlFor="instructions">Instructions</Label>
137
+ <Textarea
138
+ id="instructions"
139
+ placeholder="Fix the grammar."
140
+ />
141
+ </div>
142
+ </div>
143
+ <div className="mt-[21px] min-h-[400px] rounded-md border bg-muted lg:min-h-[700px]" />
144
+ </div>
145
+ <div className="flex items-center space-x-2">
146
+ <Button>Submit</Button>
147
+ <Button variant="secondary">
148
+ <span className="sr-only">Show history</span>
149
+ <History className="h-4 w-4" />
150
+ </Button>
151
+ </div>
152
+ </div>
153
+ </TabsContent>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ </Tabs>
158
+ </div>
159
+ )
160
+ }
@@ -0,0 +1,65 @@
1
+ [data-section="playground"] {
2
+ --background: 0 0% 100%;
3
+ --foreground: 222.2 47.4% 11.2%;
4
+
5
+ --muted: 154 79% 96%;
6
+ --muted-foreground: 215.4 16.3% 46.9%;
7
+
8
+ --popover: 0 0% 100%;
9
+ --popover-foreground: 222.2 47.4% 11.2%;
10
+
11
+ --border: 214.3 31.8% 91.4%;
12
+ --input: 214.3 31.8% 91.4%;
13
+
14
+ --card: 0 0% 100%;
15
+ --card-foreground: 222.2 47.4% 11.2%;
16
+
17
+ --primary: 143 72% 29%;
18
+ --primary-foreground: 141 75% 97%;
19
+
20
+ --secondary: 145 80% 10%;
21
+ --secondary-foreground: 141 75% 97%;
22
+
23
+ --accent: 154 79% 96%;
24
+ --accent-foreground: 222.2 47.4% 11.2%;
25
+
26
+ --destructive: 0 100% 50%;
27
+ --destructive-foreground: 210 40% 98%;
28
+
29
+ --ring: 158 64% 52%;
30
+
31
+ --radius: 0rem;
32
+ }
33
+
34
+ .dark [data-section="playground"] {
35
+ --background: 224 71% 4%;
36
+ --foreground: 213 31% 91%;
37
+
38
+ --muted: 223 47% 11%;
39
+ --muted-foreground: 215.4 16.3% 56.9%;
40
+
41
+ --popover: 224 71% 4%;
42
+ --popover-foreground: 215 20.2% 65.1%;
43
+
44
+ --border: 216 34% 17%;
45
+ --input: 216 34% 17%;
46
+
47
+ --card: 224 71% 4%;
48
+ --card-foreground: 213 31% 91%;
49
+
50
+ --primary: 143 72% 29%;
51
+ --primary-foreground: 141 75% 97%;
52
+
53
+ --secondary: 145 80% 10%;
54
+ --secondary-foreground: 141 75% 97%;
55
+
56
+ --accent: 154 79% 96%;
57
+ --accent-foreground: 222.2 47.4% 11.2%;
58
+
59
+ --destructive: 0 100% 50%;
60
+ --destructive-foreground: 210 40% 98%;
61
+
62
+ --ring: 158 64% 52%;
63
+
64
+ --radius: 0rem;
65
+ }