@tanstack/create 0.49.2 → 0.59.4

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 (294) hide show
  1. package/CHANGELOG.md +603 -0
  2. package/dist/add-ons.js +42 -2
  3. package/dist/add-to-app.js +36 -7
  4. package/dist/custom-add-ons/add-on.js +2 -26
  5. package/dist/custom-add-ons/starter.js +1 -2
  6. package/dist/file-helpers.js +11 -10
  7. package/dist/frameworks/react/add-ons/ai/assets/src/data/demo-guitars.ts +93 -0
  8. package/dist/frameworks/react/add-ons/ai/assets/src/hooks/demo-useAudioRecorder.ts +85 -0
  9. package/dist/frameworks/react/add-ons/ai/assets/src/hooks/demo-useTTS.ts +78 -0
  10. package/dist/frameworks/react/add-ons/ai/assets/src/lib/demo-ai-hook.ts +22 -0
  11. package/dist/frameworks/react/add-ons/ai/assets/src/lib/demo-guitar-tools.ts +40 -0
  12. package/dist/frameworks/react/add-ons/ai/assets/src/routes/demo/api.ai.chat.ts +99 -0
  13. package/dist/frameworks/react/add-ons/ai/assets/src/routes/demo/api.ai.image.ts +72 -0
  14. package/dist/frameworks/react/add-ons/ai/assets/src/routes/demo/api.ai.structured.ts +136 -0
  15. package/dist/frameworks/react/add-ons/ai/assets/src/routes/demo/api.ai.transcription.ts +89 -0
  16. package/dist/frameworks/react/add-ons/ai/assets/src/routes/demo/api.ai.tts.ts +81 -0
  17. package/dist/frameworks/react/add-ons/ai/info.json +1 -1
  18. package/dist/frameworks/react/add-ons/apollo-client/info.json +1 -1
  19. package/dist/frameworks/react/add-ons/better-auth/assets/src/lib/auth-client.ts +3 -0
  20. package/dist/frameworks/react/add-ons/better-auth/assets/src/lib/auth.ts +9 -0
  21. package/dist/frameworks/react/add-ons/better-auth/assets/src/routes/api/auth/$.ts +11 -0
  22. package/dist/frameworks/react/add-ons/better-auth/info.json +0 -2
  23. package/dist/frameworks/react/add-ons/clerk/info.json +0 -1
  24. package/dist/frameworks/react/add-ons/convex/assets/convex/schema.ts +14 -0
  25. package/dist/frameworks/react/add-ons/convex/assets/convex/todos.ts +43 -0
  26. package/dist/frameworks/react/add-ons/db/assets/src/db-collections/index.ts +20 -0
  27. package/dist/frameworks/react/add-ons/db/assets/src/hooks/demo.useChat.ts +62 -0
  28. package/dist/frameworks/react/add-ons/db/assets/src/routes/demo/db-chat-api.ts +83 -0
  29. package/dist/frameworks/react/add-ons/db/info.json +1 -1
  30. package/dist/frameworks/react/add-ons/drizzle/info.json +1 -1
  31. package/dist/frameworks/react/add-ons/drizzle/package.json.ejs +4 -0
  32. package/dist/frameworks/react/add-ons/form/assets/src/hooks/demo.form-context.ts +4 -0
  33. package/dist/frameworks/react/add-ons/form/assets/src/hooks/demo.form.ts +22 -0
  34. package/dist/frameworks/react/add-ons/mcp/assets/src/mcp-todos.ts +51 -0
  35. package/dist/frameworks/react/add-ons/mcp/assets/src/routes/demo/api.mcp-todos.ts +37 -0
  36. package/dist/frameworks/react/add-ons/mcp/assets/src/routes/mcp.ts +53 -0
  37. package/dist/frameworks/react/add-ons/mcp/assets/src/utils/mcp-handler.ts +61 -0
  38. package/dist/frameworks/react/add-ons/mcp/info.json +1 -2
  39. package/dist/frameworks/react/add-ons/neon/assets/neon-vite-plugin.ts +10 -0
  40. package/dist/frameworks/react/add-ons/neon/assets/src/db.ts +13 -0
  41. package/dist/frameworks/react/add-ons/neon/info.json +1 -2
  42. package/dist/frameworks/react/add-ons/oRPC/assets/src/orpc/client.ts +29 -0
  43. package/dist/frameworks/react/add-ons/oRPC/assets/src/orpc/router/index.ts +6 -0
  44. package/dist/frameworks/react/add-ons/oRPC/assets/src/orpc/router/todos.ts +20 -0
  45. package/dist/frameworks/react/add-ons/oRPC/assets/src/orpc/schema.ts +6 -0
  46. package/dist/frameworks/react/add-ons/oRPC/assets/src/polyfill.ts +21 -0
  47. package/dist/frameworks/react/add-ons/oRPC/assets/src/routes/api.$.ts +77 -0
  48. package/dist/frameworks/react/add-ons/oRPC/assets/src/routes/api.rpc.$.ts +29 -0
  49. package/dist/frameworks/react/add-ons/oRPC/info.json +1 -1
  50. package/dist/frameworks/react/add-ons/paraglide/info.json +1 -1
  51. package/dist/frameworks/react/add-ons/prisma/info.json +1 -1
  52. package/dist/frameworks/react/add-ons/prisma/package.json.ejs +4 -0
  53. package/dist/frameworks/react/add-ons/sentry/info.json +1 -2
  54. package/dist/frameworks/react/add-ons/shadcn/assets/src/lib/utils.ts +6 -0
  55. package/dist/frameworks/react/add-ons/store/assets/src/lib/demo-store.ts +13 -0
  56. package/dist/frameworks/react/add-ons/storybook/assets/_dot_storybook/main.ts +17 -0
  57. package/dist/frameworks/react/add-ons/storybook/assets/_dot_storybook/preview.ts +15 -0
  58. package/dist/frameworks/react/add-ons/storybook/assets/src/components/storybook/button.stories.ts +67 -0
  59. package/dist/frameworks/react/add-ons/storybook/assets/src/components/storybook/index.ts +14 -0
  60. package/dist/frameworks/react/add-ons/storybook/assets/src/components/storybook/input.stories.ts +43 -0
  61. package/dist/frameworks/react/add-ons/storybook/assets/src/components/storybook/radio-group.stories.ts +53 -0
  62. package/dist/frameworks/react/add-ons/storybook/assets/src/components/storybook/slider.stories.ts +55 -0
  63. package/dist/frameworks/react/add-ons/strapi/assets/src/lib/strapiClient.ts +7 -0
  64. package/dist/frameworks/react/add-ons/t3env/assets/src/env.ts +39 -0
  65. package/dist/frameworks/react/add-ons/tRPC/assets/src/integrations/trpc/init.ts +9 -0
  66. package/dist/frameworks/react/add-ons/tRPC/assets/src/integrations/trpc/react.ts +4 -0
  67. package/dist/frameworks/react/add-ons/tRPC/assets/src/integrations/trpc/router.ts +27 -0
  68. package/dist/frameworks/react/add-ons/tRPC/info.json +1 -1
  69. package/dist/frameworks/react/add-ons/table/assets/src/data/demo-table-data.ts +50 -0
  70. package/dist/frameworks/react/add-ons/tanstack-query/assets/src/integrations/tanstack-query/root-provider.tsx.ejs +1 -29
  71. package/dist/frameworks/react/add-ons/workos/info.json +0 -1
  72. package/dist/frameworks/react/examples/events/assets/content-collections.ts +56 -0
  73. package/dist/frameworks/react/examples/events/assets/src/lib/conference-ai-hook.ts +26 -0
  74. package/dist/frameworks/react/examples/events/assets/src/lib/conference-tools.ts +210 -0
  75. package/dist/frameworks/react/examples/events/assets/src/lib/utils.ts +6 -0
  76. package/dist/frameworks/react/examples/events/assets/src/routes/api.remy-chat.ts +121 -0
  77. package/dist/frameworks/react/examples/resume/assets/content-collections.ts +36 -0
  78. package/dist/frameworks/react/examples/resume/assets/src/lib/resume-ai-hook.ts +21 -0
  79. package/dist/frameworks/react/examples/resume/assets/src/lib/resume-tools.ts +165 -0
  80. package/dist/frameworks/react/examples/resume/assets/src/lib/utils.ts +6 -0
  81. package/dist/frameworks/react/examples/resume/assets/src/routes/api.resume-chat.ts +110 -0
  82. package/dist/frameworks/react/hosts/cloudflare/info.json +0 -1
  83. package/dist/frameworks/react/hosts/netlify/info.json +0 -1
  84. package/dist/frameworks/react/hosts/nitro/info.json +0 -1
  85. package/dist/frameworks/react/hosts/railway/info.json +0 -1
  86. package/dist/frameworks/react/index.js +1 -6
  87. package/dist/frameworks/react/project/base/README.md.ejs +86 -436
  88. package/dist/frameworks/react/project/base/_dot_gitignore +4 -0
  89. package/dist/frameworks/react/project/base/package.json +8 -5
  90. package/dist/frameworks/react/project/base/src/components/Header.tsx.ejs +2 -32
  91. package/dist/frameworks/react/project/base/src/routes/__root.tsx.ejs +4 -44
  92. package/dist/frameworks/react/project/base/src/routes/index.tsx.ejs +99 -61
  93. package/dist/frameworks/react/project/base/src/styles.css.ejs +3 -3
  94. package/dist/frameworks/react/project/base/tsconfig.json.ejs +1 -1
  95. package/dist/frameworks/react/project/base/vite.config.ts.ejs +33 -27
  96. package/dist/frameworks/react/project/packages.json +2 -2
  97. package/dist/frameworks/solid/add-ons/better-auth/assets/src/lib/auth-client.ts +3 -0
  98. package/dist/frameworks/solid/add-ons/better-auth/assets/src/lib/auth.ts +9 -0
  99. package/dist/frameworks/solid/add-ons/better-auth/assets/src/routes/api/auth/$.ts +11 -0
  100. package/dist/frameworks/solid/add-ons/better-auth/info.json +1 -1
  101. package/dist/frameworks/solid/add-ons/convex/assets/convex/schema.ts +14 -0
  102. package/dist/frameworks/solid/add-ons/convex/assets/convex/todos.ts +43 -0
  103. package/dist/frameworks/solid/add-ons/solid-ui/assets/src/lib/utils.ts +6 -0
  104. package/dist/frameworks/solid/add-ons/store/assets/src/lib/demo-store.ts +13 -0
  105. package/dist/frameworks/solid/add-ons/strapi/assets/src/lib/strapiClient.ts +7 -0
  106. package/dist/frameworks/solid/add-ons/t3env/assets/src/env.ts +39 -0
  107. package/dist/frameworks/solid/examples/tanchat/assets/ai-streaming-server/src/index.ts +102 -0
  108. package/dist/frameworks/solid/examples/tanchat/assets/src/lib/demo-store.ts +13 -0
  109. package/dist/frameworks/solid/examples/tanchat/assets/src/store/demo.hooks.ts +17 -0
  110. package/dist/frameworks/solid/examples/tanchat/assets/src/store/demo.store.ts +133 -0
  111. package/dist/frameworks/solid/hosts/cloudflare/info.json +0 -1
  112. package/dist/frameworks/solid/hosts/netlify/info.json +0 -1
  113. package/dist/frameworks/solid/hosts/nitro/info.json +0 -1
  114. package/dist/frameworks/solid/hosts/railway/info.json +0 -1
  115. package/dist/frameworks/solid/index.js +1 -6
  116. package/dist/frameworks/solid/project/base/README.md.ejs +43 -117
  117. package/dist/frameworks/solid/project/base/_dot_gitignore +4 -0
  118. package/dist/frameworks/solid/project/base/package.json +8 -3
  119. package/dist/frameworks/solid/project/base/src/components/Header.tsx.ejs +2 -25
  120. package/dist/frameworks/solid/project/base/src/routes/__root.tsx.ejs +3 -30
  121. package/dist/frameworks/solid/project/base/src/routes/index.tsx.ejs +97 -35
  122. package/dist/frameworks/solid/project/base/tsconfig.json.ejs +1 -1
  123. package/dist/frameworks/solid/project/base/vite.config.ts.ejs +15 -20
  124. package/dist/frameworks/solid/project/packages.json +2 -2
  125. package/dist/frameworks.js +0 -1
  126. package/dist/package-json.js +6 -10
  127. package/dist/template-file.js +21 -7
  128. package/dist/types/custom-add-ons/add-on.d.ts +1 -1
  129. package/dist/types/file-helpers.d.ts +0 -1
  130. package/dist/types/types.d.ts +12 -12
  131. package/dist/types.js +1 -2
  132. package/package.json +2 -2
  133. package/src/add-ons.ts +54 -2
  134. package/src/add-to-app.ts +42 -7
  135. package/src/custom-add-ons/add-on.ts +2 -33
  136. package/src/custom-add-ons/starter.ts +1 -2
  137. package/src/file-helpers.ts +11 -10
  138. package/src/frameworks/react/add-ons/ai/info.json +1 -1
  139. package/src/frameworks/react/add-ons/apollo-client/info.json +1 -1
  140. package/src/frameworks/react/add-ons/better-auth/info.json +0 -2
  141. package/src/frameworks/react/add-ons/clerk/info.json +0 -1
  142. package/src/frameworks/react/add-ons/db/info.json +1 -1
  143. package/src/frameworks/react/add-ons/drizzle/info.json +1 -1
  144. package/src/frameworks/react/add-ons/drizzle/package.json.ejs +4 -0
  145. package/src/frameworks/react/add-ons/mcp/info.json +1 -2
  146. package/src/frameworks/react/add-ons/neon/assets/neon-vite-plugin.ts +1 -1
  147. package/src/frameworks/react/add-ons/neon/info.json +1 -2
  148. package/src/frameworks/react/add-ons/oRPC/info.json +1 -1
  149. package/src/frameworks/react/add-ons/paraglide/info.json +1 -1
  150. package/src/frameworks/react/add-ons/prisma/info.json +1 -1
  151. package/src/frameworks/react/add-ons/prisma/package.json.ejs +4 -0
  152. package/src/frameworks/react/add-ons/sentry/info.json +1 -2
  153. package/src/frameworks/react/add-ons/tRPC/info.json +1 -1
  154. package/src/frameworks/react/add-ons/tanstack-query/assets/src/integrations/tanstack-query/root-provider.tsx.ejs +1 -29
  155. package/src/frameworks/react/add-ons/workos/info.json +0 -1
  156. package/src/frameworks/react/hosts/cloudflare/info.json +0 -1
  157. package/src/frameworks/react/hosts/netlify/info.json +0 -1
  158. package/src/frameworks/react/hosts/nitro/info.json +0 -1
  159. package/src/frameworks/react/hosts/railway/info.json +0 -1
  160. package/src/frameworks/react/index.ts +1 -6
  161. package/src/frameworks/react/project/base/README.md.ejs +86 -436
  162. package/src/frameworks/react/project/base/_dot_gitignore +4 -0
  163. package/src/frameworks/react/project/base/package.json +8 -5
  164. package/src/frameworks/react/project/base/src/components/Header.tsx.ejs +2 -32
  165. package/src/frameworks/react/project/base/src/routes/__root.tsx.ejs +4 -44
  166. package/src/frameworks/react/project/base/src/routes/index.tsx.ejs +99 -61
  167. package/src/frameworks/react/project/base/src/styles.css.ejs +3 -3
  168. package/src/frameworks/react/project/base/tsconfig.json.ejs +1 -1
  169. package/src/frameworks/react/project/base/vite.config.ts.ejs +33 -27
  170. package/src/frameworks/react/project/packages.json +2 -2
  171. package/src/frameworks/solid/add-ons/better-auth/info.json +1 -1
  172. package/src/frameworks/solid/hosts/cloudflare/info.json +0 -1
  173. package/src/frameworks/solid/hosts/netlify/info.json +0 -1
  174. package/src/frameworks/solid/hosts/nitro/info.json +0 -1
  175. package/src/frameworks/solid/hosts/railway/info.json +0 -1
  176. package/src/frameworks/solid/index.ts +1 -6
  177. package/src/frameworks/solid/project/base/README.md.ejs +43 -117
  178. package/src/frameworks/solid/project/base/_dot_gitignore +4 -0
  179. package/src/frameworks/solid/project/base/package.json +8 -3
  180. package/src/frameworks/solid/project/base/src/components/Header.tsx.ejs +2 -25
  181. package/src/frameworks/solid/project/base/src/routes/__root.tsx.ejs +3 -30
  182. package/src/frameworks/solid/project/base/src/routes/index.tsx.ejs +97 -35
  183. package/src/frameworks/solid/project/base/tsconfig.json.ejs +1 -1
  184. package/src/frameworks/solid/project/base/vite.config.ts.ejs +15 -20
  185. package/src/frameworks/solid/project/packages.json +2 -2
  186. package/src/frameworks.ts +0 -1
  187. package/src/package-json.ts +6 -10
  188. package/src/template-file.ts +27 -8
  189. package/src/types.ts +1 -2
  190. package/tests/add-to-app.test.ts +37 -0
  191. package/tests/copy-assets.test.ts +53 -0
  192. package/tests/file-helper.test.ts +23 -2
  193. package/tests/package-json.test.ts +32 -0
  194. package/tests/template-file.test.ts +28 -0
  195. package/dist/frameworks/react/add-ons/module-federation/assets/module-federation.config.js.ejs +0 -31
  196. package/dist/frameworks/react/add-ons/module-federation/assets/src/demo-mf-component.tsx +0 -3
  197. package/dist/frameworks/react/add-ons/module-federation/assets/src/demo-mf-self-contained.tsx +0 -11
  198. package/dist/frameworks/react/add-ons/module-federation/info.json +0 -11
  199. package/dist/frameworks/react/add-ons/module-federation/package.json +0 -5
  200. package/dist/frameworks/react/add-ons/module-federation/small-logo.svg +0 -87
  201. package/dist/frameworks/react/add-ons/start/assets/_dot_gitignore.append +0 -3
  202. package/dist/frameworks/react/add-ons/start/assets/src/router.tsx.ejs +0 -77
  203. package/dist/frameworks/react/add-ons/start/assets/src/routes/demo/api.tq-todos.ts.ejs +0 -35
  204. package/dist/frameworks/react/add-ons/start/assets/src/routes/demo/start.api-request.tsx.ejs +0 -68
  205. package/dist/frameworks/react/add-ons/start/assets/src/routes/demo/start.css.ejs +0 -43
  206. package/dist/frameworks/react/add-ons/start/assets/src/routes/demo/start.server-funcs.tsx.ejs +0 -183
  207. package/dist/frameworks/react/add-ons/start/assets/src/routes/demo/start.ssr.data-only.tsx.ejs +0 -55
  208. package/dist/frameworks/react/add-ons/start/assets/src/routes/demo/start.ssr.full-ssr.tsx.ejs +0 -55
  209. package/dist/frameworks/react/add-ons/start/assets/src/routes/demo/start.ssr.index.tsx.ejs +0 -62
  210. package/dist/frameworks/react/add-ons/start/assets/src/routes/demo/start.ssr.spa-mode.tsx.ejs +0 -62
  211. package/dist/frameworks/react/add-ons/start/assets/src/routes/index.tsx.ejs +0 -142
  212. package/dist/frameworks/react/add-ons/start/assets/src/server.ts.ejs +0 -9
  213. package/dist/frameworks/react/add-ons/start/assets/vite.config.ts.ejs +0 -40
  214. package/dist/frameworks/react/add-ons/start/info.json +0 -61
  215. package/dist/frameworks/react/add-ons/start/package.json +0 -12
  216. package/dist/frameworks/react/add-ons/start/small-logo.svg +0 -1
  217. package/dist/frameworks/react/project/base/index.html.ejs +0 -20
  218. package/dist/frameworks/react/project/base/src/App.css.ejs +0 -38
  219. package/dist/frameworks/react/project/base/src/App.tsx.ejs +0 -63
  220. package/dist/frameworks/react/project/base/src/components/Header.css.ejs +0 -18
  221. package/dist/frameworks/react/project/base/src/logo.svg +0 -12
  222. package/dist/frameworks/react/project/base/src/main.tsx.ejs +0 -166
  223. package/dist/frameworks/react/project/base/src/reportWebVitals.ts.ejs +0 -28
  224. package/dist/frameworks/solid/add-ons/module-federation/assets/module-federation.config.js.ejs +0 -27
  225. package/dist/frameworks/solid/add-ons/module-federation/assets/src/demo-mf-component.tsx +0 -3
  226. package/dist/frameworks/solid/add-ons/module-federation/assets/src/demo-mf-self-contained.tsx +0 -9
  227. package/dist/frameworks/solid/add-ons/module-federation/info.json +0 -10
  228. package/dist/frameworks/solid/add-ons/module-federation/package.json +0 -5
  229. package/dist/frameworks/solid/add-ons/module-federation/small-logo.svg +0 -87
  230. package/dist/frameworks/solid/add-ons/start/assets/public/tanstack-circle-logo.png +0 -0
  231. package/dist/frameworks/solid/add-ons/start/assets/public/tanstack-word-logo-white.svg +0 -1
  232. package/dist/frameworks/solid/add-ons/start/assets/src/router.tsx.ejs +0 -30
  233. package/dist/frameworks/solid/add-ons/start/assets/src/routes/demo.start.server-funcs.tsx +0 -49
  234. package/dist/frameworks/solid/add-ons/start/assets/src/routes/index.tsx.ejs +0 -138
  235. package/dist/frameworks/solid/add-ons/start/assets/vite.config.ts.ejs +0 -22
  236. package/dist/frameworks/solid/add-ons/start/info.json +0 -18
  237. package/dist/frameworks/solid/add-ons/start/package.json +0 -15
  238. package/dist/frameworks/solid/add-ons/start/small-logo.svg +0 -1
  239. package/dist/frameworks/solid/project/base/index.html.ejs +0 -20
  240. package/dist/frameworks/solid/project/base/src/App.css.ejs +0 -38
  241. package/dist/frameworks/solid/project/base/src/App.tsx.ejs +0 -34
  242. package/dist/frameworks/solid/project/base/src/logo.svg +0 -120
  243. package/dist/frameworks/solid/project/base/src/main.tsx.ejs +0 -126
  244. package/src/frameworks/react/add-ons/module-federation/assets/module-federation.config.js.ejs +0 -31
  245. package/src/frameworks/react/add-ons/module-federation/assets/src/demo-mf-component.tsx +0 -3
  246. package/src/frameworks/react/add-ons/module-federation/assets/src/demo-mf-self-contained.tsx +0 -11
  247. package/src/frameworks/react/add-ons/module-federation/info.json +0 -11
  248. package/src/frameworks/react/add-ons/module-federation/package.json +0 -5
  249. package/src/frameworks/react/add-ons/module-federation/small-logo.svg +0 -87
  250. package/src/frameworks/react/add-ons/start/assets/_dot_gitignore.append +0 -3
  251. package/src/frameworks/react/add-ons/start/assets/src/data/demo.punk-songs.ts +0 -13
  252. package/src/frameworks/react/add-ons/start/assets/src/router.tsx.ejs +0 -77
  253. package/src/frameworks/react/add-ons/start/assets/src/routes/demo/api.names.ts +0 -10
  254. package/src/frameworks/react/add-ons/start/assets/src/routes/demo/api.tq-todos.ts.ejs +0 -35
  255. package/src/frameworks/react/add-ons/start/assets/src/routes/demo/start.api-request.tsx.ejs +0 -68
  256. package/src/frameworks/react/add-ons/start/assets/src/routes/demo/start.css.ejs +0 -43
  257. package/src/frameworks/react/add-ons/start/assets/src/routes/demo/start.server-funcs.tsx.ejs +0 -183
  258. package/src/frameworks/react/add-ons/start/assets/src/routes/demo/start.ssr.data-only.tsx.ejs +0 -55
  259. package/src/frameworks/react/add-ons/start/assets/src/routes/demo/start.ssr.full-ssr.tsx.ejs +0 -55
  260. package/src/frameworks/react/add-ons/start/assets/src/routes/demo/start.ssr.index.tsx.ejs +0 -62
  261. package/src/frameworks/react/add-ons/start/assets/src/routes/demo/start.ssr.spa-mode.tsx.ejs +0 -62
  262. package/src/frameworks/react/add-ons/start/assets/src/routes/index.tsx.ejs +0 -142
  263. package/src/frameworks/react/add-ons/start/assets/src/server.ts.ejs +0 -9
  264. package/src/frameworks/react/add-ons/start/assets/vite.config.ts.ejs +0 -40
  265. package/src/frameworks/react/add-ons/start/info.json +0 -61
  266. package/src/frameworks/react/add-ons/start/package.json +0 -12
  267. package/src/frameworks/react/add-ons/start/small-logo.svg +0 -1
  268. package/src/frameworks/react/project/base/index.html.ejs +0 -20
  269. package/src/frameworks/react/project/base/src/App.css.ejs +0 -38
  270. package/src/frameworks/react/project/base/src/App.tsx.ejs +0 -63
  271. package/src/frameworks/react/project/base/src/components/Header.css.ejs +0 -18
  272. package/src/frameworks/react/project/base/src/logo.svg +0 -12
  273. package/src/frameworks/react/project/base/src/main.tsx.ejs +0 -166
  274. package/src/frameworks/react/project/base/src/reportWebVitals.ts.ejs +0 -28
  275. package/src/frameworks/solid/add-ons/module-federation/assets/module-federation.config.js.ejs +0 -27
  276. package/src/frameworks/solid/add-ons/module-federation/assets/src/demo-mf-component.tsx +0 -3
  277. package/src/frameworks/solid/add-ons/module-federation/assets/src/demo-mf-self-contained.tsx +0 -9
  278. package/src/frameworks/solid/add-ons/module-federation/info.json +0 -10
  279. package/src/frameworks/solid/add-ons/module-federation/package.json +0 -5
  280. package/src/frameworks/solid/add-ons/module-federation/small-logo.svg +0 -87
  281. package/src/frameworks/solid/add-ons/start/assets/public/tanstack-circle-logo.png +0 -0
  282. package/src/frameworks/solid/add-ons/start/assets/public/tanstack-word-logo-white.svg +0 -1
  283. package/src/frameworks/solid/add-ons/start/assets/src/router.tsx.ejs +0 -30
  284. package/src/frameworks/solid/add-ons/start/assets/src/routes/demo.start.server-funcs.tsx +0 -49
  285. package/src/frameworks/solid/add-ons/start/assets/src/routes/index.tsx.ejs +0 -138
  286. package/src/frameworks/solid/add-ons/start/assets/vite.config.ts.ejs +0 -22
  287. package/src/frameworks/solid/add-ons/start/info.json +0 -18
  288. package/src/frameworks/solid/add-ons/start/package.json +0 -15
  289. package/src/frameworks/solid/add-ons/start/small-logo.svg +0 -1
  290. package/src/frameworks/solid/project/base/index.html.ejs +0 -20
  291. package/src/frameworks/solid/project/base/src/App.css.ejs +0 -38
  292. package/src/frameworks/solid/project/base/src/App.tsx.ejs +0 -34
  293. package/src/frameworks/solid/project/base/src/logo.svg +0 -120
  294. package/src/frameworks/solid/project/base/src/main.tsx.ejs +0 -126
@@ -1,8 +1,7 @@
1
1
  <% if (addOns.length === 0 && integrations.length === 0 && routes.length === 0) { ignoreFile() } %>import { Link } from '@tanstack/react-router'
2
2
  <% for(const integration of integrations.filter(i => i.type === 'header-user')) { %>
3
3
  import <%= integration.jsName %> from "<%= relativePath(integration.path) %>";
4
- <% } %><% if (!tailwind) { %>
5
- import './Header.css'<% } %><% if (tailwind) {
4
+ <% } %><%
6
5
  const icons = new Set([
7
6
  "Menu",
8
7
  "X",
@@ -26,10 +25,9 @@ import { useState } from 'react';
26
25
  import {
27
26
  <%= Array.from(icons).sort().join(", ") %>
28
27
  } from "lucide-react";
29
- <% } %>
30
28
 
31
29
  export default function Header() {
32
- <% if (tailwind) {
30
+ <%
33
31
  const menusWithChildren = addOns.filter(a => a.routes?.some(r => r.children));
34
32
  const userHeaders = integrations.filter(i => i.type === 'header-user');
35
33
  %>
@@ -155,32 +153,4 @@ const userHeaders = integrations.filter(i => i.type === 'header-user');
155
153
  </aside>
156
154
  </>
157
155
  );
158
- <% } else { %>
159
- return (
160
- <% if (tailwind) { %>
161
- <header className="p-2 flex gap-2 bg-white text-black justify-between">
162
- <nav className="flex flex-row">
163
- <div className="px-2 font-bold">
164
- <% } else { %>
165
- <header className="header">
166
- <nav className="nav">
167
- <div className="nav-item">
168
- <% } %>
169
- <Link to="/">Home</Link>
170
- </div>
171
- <% for(const addOn of addOns) {
172
- for(const route of (addOn?.routes||[])?.filter(r => r.url && r.name)) { %>
173
- <div className="px-2 font-bold"><Link to="<%= route.url %>"><%= route.name %></Link></div>
174
- <% } } %>
175
- </nav>
176
- <% if (integrations.filter(i => i.type === 'header-user').length > 0) { %>
177
- <div>
178
- <% for(const integration of integrations.filter(i => i.type === 'header-user')) { %>
179
- <<%= integration.jsName %> />
180
- <% } %>
181
- </div>
182
- <% } %>
183
- </header>
184
- )
185
- <% } %>
186
156
  }
@@ -1,6 +1,6 @@
1
1
  <% let hasContext = addOnEnabled["apollo-client"] || addOnEnabled["tanstack-query"]; %>
2
- <% if (!fileRouter) { ignoreFile() } %>import { <% if (addOnEnabled.start) { %>
3
- HeadContent<% } else { %>Outlet<% } %><% if (addOnEnabled.start) { %>, Scripts<% } %>, <% if (hasContext) { %>createRootRouteWithContext<% } else { %>createRootRoute<% } %><% if (addOnEnabled.paraglide) { %>, redirect<% } %> } from '@tanstack/react-router'
2
+ import {
3
+ HeadContent, Scripts, <% if (hasContext) { %>createRootRouteWithContext<% } else { %>createRootRoute<% } %> } from '@tanstack/react-router'
4
4
  import { TanStackRouterDevtoolsPanel } from '@tanstack/react-router-devtools';
5
5
  import { TanStackDevtools } from '@tanstack/react-devtools'
6
6
  <% if (addOns.length) { %>
@@ -8,11 +8,9 @@ import Header from '../components/Header'
8
8
  <% } %><% for(const integration of integrations.filter(i => i.type === 'layout' || i.type === 'provider' || i.type === 'devtools')) { %>
9
9
  import <%= integration.jsName %> from '<%= relativePath(integration.path, true) %>'
10
10
  <% } %><% if (addOnEnabled.paraglide) { %>
11
- import { getLocale, shouldRedirect } from '@/paraglide/runtime'
11
+ import { getLocale } from '@/paraglide/runtime'
12
12
  <% } %>
13
- <% if (addOnEnabled.start) { %>
14
13
  import appCss from '../styles.css?url'
15
- <% } %>
16
14
  <% if (addOnEnabled["apollo-client"]) { %>
17
15
  import type { ApolloClientIntegration } from "@apollo/client-integration-tanstack-start";
18
16
  <% } %>
@@ -41,20 +39,9 @@ export const Route = <% if (hasContext) { %>createRootRouteWithContext<MyRouterC
41
39
  if (typeof document !== 'undefined') {
42
40
  document.documentElement.setAttribute('lang', getLocale())
43
41
  }
44
-
45
- <% if (!addOnEnabled.start) { %>// Client-side fallback redirect for SPA/file-router builds. Start apps should
46
- // prefer server-side paraglideMiddleware (see start template server.ts).
47
- if (typeof window !== 'undefined') {
48
- const decision = await shouldRedirect({ url: window.location.href })
49
-
50
- if (decision.redirectUrl) {
51
- throw redirect({ href: decision.redirectUrl.href })
52
- }
53
- }<% } %>
54
42
  },
55
43
  <% } %>
56
- <% if (addOnEnabled.start) { %>
57
- head: () => ({
44
+ head: () => ({
58
45
  meta: [
59
46
  {
60
47
  charSet: 'utf-8',
@@ -74,35 +61,9 @@ export const Route = <% if (hasContext) { %>createRootRouteWithContext<MyRouterC
74
61
  },
75
62
  ],
76
63
  }),
77
- <% } %>
78
- <% if (addOnEnabled.start) { %>
79
64
  shellComponent: RootDocument
80
- <% } else { %>
81
- component: () => (
82
- <>
83
- <% for(const integration of integrations.filter(i => i.type === 'provider')) { %><<%= integration.jsName %>>
84
- <% } %><% if (addOns.length) { %><Header />
85
- <% } %><Outlet />
86
- <TanStackDevtools
87
- config={{
88
- position: 'bottom-right',
89
- }}
90
- plugins={[
91
- {
92
- name: 'Tanstack Router',
93
- render: <TanStackRouterDevtoolsPanel />,
94
- },
95
- <% for(const integration of integrations.filter(i => i.type === 'devtools')) { %><%= integration.jsName %>,<% } %>
96
- ]}
97
- />
98
- <% for(const integration of integrations.filter(i => i.type === 'layout')) { %><<%= integration.jsName %> />
99
- <% } %><% for(const integration of integrations.filter(i => i.type === 'provider').reverse()) { %></<%= integration.jsName %>>
100
- <% } %>
101
- </>)
102
- <% } %>
103
65
  })
104
66
 
105
- <% if (addOnEnabled.start) { %>
106
67
  function RootDocument({ children }: { children: React.ReactNode }) {
107
68
  return (
108
69
  <% if (addOnEnabled.paraglide) { %><html lang={getLocale()}><% } else { %><html lang="en"><% } %>
@@ -132,4 +93,3 @@ function RootDocument({ children }: { children: React.ReactNode }) {
132
93
  </html>
133
94
  )
134
95
  }
135
- <% } %>
@@ -1,67 +1,105 @@
1
- <% if (codeRouter || addOnEnabled.start) { ignoreFile() } %>
2
1
  import { createFileRoute } from "@tanstack/react-router";
3
- import logo from "../logo.svg";<% if (!tailwind) { %>
4
- import "../App.css";
5
- <% } %>
2
+ import {
3
+ Zap, Server, Route as RouteIcon, Shield, Waves, Sparkles,
4
+ } from "lucide-react";
6
5
 
7
- export const Route = createFileRoute("/")({
8
- component: App,
9
- });
6
+ export const Route = createFileRoute("/")({ component: App });
10
7
 
11
8
  function App() {
12
- return (<% if (tailwind) { %>
13
- <div className="text-center">
14
- <header className="min-h-screen flex flex-col items-center justify-center bg-[#282c34] text-white text-[calc(10px+2vmin)]">
15
- <img
16
- src={logo}
17
- className="h-[40vmin] pointer-events-none animate-[spin_20s_linear_infinite]"
18
- alt="logo"
19
- />
20
- <p>
21
- Edit <code>src/routes/index.tsx</code> and save to reload.
22
- </p>
23
- <a
24
- className="text-[#61dafb] hover:underline"
25
- href="https://reactjs.org"
26
- target="_blank"
27
- rel="noopener noreferrer"
28
- >
29
- Learn React
30
- </a>
31
- <a
32
- className="text-[#61dafb] hover:underline"
33
- href="https://tanstack.com"
34
- target="_blank"
35
- rel="noopener noreferrer"
36
- >
37
- Learn TanStack
38
- </a>
39
- </header>
40
- </div>
41
- <% } else { %>
42
- <div className="App">
43
- <header className="App-header">
44
- <img src={logo} className="App-logo" alt="logo" />
45
- <p>
46
- Edit <code>src/routes/index.tsx</code> and save to reload.
47
- </p>
48
- <a
49
- className="App-link"
50
- href="https://reactjs.org"
51
- target="_blank"
52
- rel="noopener noreferrer"
53
- >
54
- Learn React
55
- </a>
56
- <a
57
- className="App-link"
58
- href="https://tanstack.com"
59
- target="_blank"
60
- rel="noopener noreferrer"
61
- >
62
- Learn TanStack
63
- </a>
64
- </header>
9
+ const features = [
10
+ {
11
+ icon: <Zap className="w-12 h-12 text-cyan-400" />,
12
+ title: "Powerful Server Functions",
13
+ description: "Write server-side code that seamlessly integrates with your client components. Type-safe, secure, and simple.",
14
+ },
15
+ {
16
+ icon: <Server className="w-12 h-12 text-cyan-400" />,
17
+ title: "Flexible Server Side Rendering",
18
+ description: "Full-document SSR, streaming, and progressive enhancement out of the box. Control exactly what renders where.",
19
+ },
20
+ {
21
+ icon: <RouteIcon className="w-12 h-12 text-cyan-400" />,
22
+ title: "API Routes",
23
+ description: "Build type-safe API endpoints alongside your application. No separate backend needed.",
24
+ },
25
+ {
26
+ icon: <Shield className="w-12 h-12 text-cyan-400" />,
27
+ title: "Strongly Typed Everything",
28
+ description: "End-to-end type safety from server to client. Catch errors before they reach production.",
29
+ },
30
+ {
31
+ icon: <Waves className="w-12 h-12 text-cyan-400" />,
32
+ title: "Full Streaming Support",
33
+ description: "Stream data from server to client progressively. Perfect for AI applications and real-time updates.",
34
+ },
35
+ {
36
+ icon: <Sparkles className="w-12 h-12 text-cyan-400" />,
37
+ title: "Next Generation Ready",
38
+ description: "Built from the ground up for modern web applications. Deploy anywhere JavaScript runs.",
39
+ },
40
+ ];
41
+
42
+ return (
43
+ <div className="min-h-screen bg-gradient-to-b from-slate-900 via-slate-800 to-slate-900">
44
+ <section className="relative py-20 px-6 text-center overflow-hidden">
45
+ <div className="absolute inset-0 bg-gradient-to-r from-cyan-500/10 via-blue-500/10 to-purple-500/10"></div>
46
+ <div className="relative max-w-5xl mx-auto">
47
+ <div className="flex items-center justify-center gap-6 mb-6">
48
+ <img
49
+ src="/tanstack-circle-logo.png"
50
+ alt="TanStack Logo"
51
+ className="w-24 h-24 md:w-32 md:h-32"
52
+ />
53
+ <h1 className="text-6xl md:text-7xl font-black text-white [letter-spacing:-0.08em]">
54
+ <span className="text-gray-300">TANSTACK</span>{" "}
55
+ <span className="bg-gradient-to-r from-cyan-400 to-blue-400 bg-clip-text text-transparent">
56
+ START
57
+ </span>
58
+ </h1>
59
+ </div>
60
+ <p className="text-2xl md:text-3xl text-gray-300 mb-4 font-light">
61
+ The framework for next generation AI applications
62
+ </p>
63
+ <p className="text-lg text-gray-400 max-w-3xl mx-auto mb-8">
64
+ Full-stack framework powered by TanStack Router for React and Solid.
65
+ Build modern applications with server functions, streaming, and type
66
+ safety.
67
+ </p>
68
+ <div className="flex flex-col items-center gap-4">
69
+ <a
70
+ href="https://tanstack.com/start"
71
+ target="_blank"
72
+ rel="noopener noreferrer"
73
+ className="px-8 py-3 bg-cyan-500 hover:bg-cyan-600 text-white font-semibold rounded-lg transition-colors shadow-lg shadow-cyan-500/50"
74
+ >
75
+ Documentation
76
+ </a>
77
+ <p className="text-gray-400 text-sm mt-2">
78
+ Begin your TanStack Start journey by editing{" "}
79
+ <code className="px-2 py-1 bg-slate-700 rounded text-cyan-400">
80
+ /src/routes/index.tsx
81
+ </code>
82
+ </p>
83
+ </div>
84
+ </div>
85
+ </section>
86
+
87
+ <section className="py-16 px-6 max-w-7xl mx-auto">
88
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">
89
+ {features.map((feature, index) => (
90
+ <div
91
+ key={index}
92
+ className="bg-slate-800/50 backdrop-blur-sm border border-slate-700 rounded-xl p-6 hover:border-cyan-500/50 transition-all duration-300 hover:shadow-lg hover:shadow-cyan-500/10"
93
+ >
94
+ <div className="mb-4">{feature.icon}</div>
95
+ <h3 className="text-xl font-semibold text-white mb-3">
96
+ {feature.title}
97
+ </h3>
98
+ <p className="text-gray-400 leading-relaxed">{feature.description}</p>
99
+ </div>
100
+ ))}
101
+ </div>
102
+ </section>
65
103
  </div>
66
- <% } %> );
104
+ );
67
105
  }
@@ -1,7 +1,7 @@
1
- <% if (tailwind) { %>@import "tailwindcss";
2
- <% } %>
1
+ @import "tailwindcss";
2
+
3
3
  body {
4
- <% if (tailwind) { %>@apply m-0;<% } else { %>margin: 0;<% } %>
4
+ @apply m-0;
5
5
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
6
6
  "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
7
7
  sans-serif;
@@ -1,4 +1,4 @@
1
- <% if (!typescript) { ignoreFile() } %>{
1
+ {
2
2
  <% if (addOnEnabled.eslint) { %>"include": ["**/*.ts", "**/*.tsx", "eslint.config.js", "prettier.config.js", "vite.config.js"],
3
3
  <% } else { %>"include": ["**/*.ts", "**/*.tsx"],<% } %>
4
4
  "compilerOptions": {
@@ -1,33 +1,39 @@
1
- <% if (addOnEnabled.start) { ignoreFile() } %>import { defineConfig } from "vite";
2
- import { devtools } from '@tanstack/devtools-vite'<% if (addOnEnabled.paraglide) { %>
3
- import { paraglideVitePlugin } from "@inlang/paraglide-js"<% } %>
4
- import viteReact from "@vitejs/plugin-react";
5
- <% if (tailwind) { %>
6
- import tailwindcss from "@tailwindcss/vite";
7
- <% } %><%if (fileRouter) { %>
8
- import { tanstackRouter } from "@tanstack/router-plugin/vite";<% } %><% if (addOnEnabled['module-federation']) { %>
9
- import { federation } from "@module-federation/vite";<% } %>
10
- import { fileURLToPath, URL } from 'node:url';<% if (addOnEnabled['module-federation']) { %>
11
- import federationConfig from "./module-federation.config.js";<% } %><% for(const integration of integrations.filter(i => i.type === 'vite-plugin')) { %><%- integrationImportContent(integration) %>
1
+ import { defineConfig } from 'vite'
2
+ import { devtools } from '@tanstack/devtools-vite'
3
+ <% if (addOnEnabled.paraglide) { -%>
4
+ import { paraglideVitePlugin } from "@inlang/paraglide-js"
5
+ <% } -%>
6
+ import { tanstackStart } from '@tanstack/react-start/plugin/vite';
7
+ import viteReact from '@vitejs/plugin-react'
8
+ import viteTsConfigPaths from 'vite-tsconfig-paths'
9
+ import { fileURLToPath, URL } from 'url'
10
+ import tailwindcss from "@tailwindcss/vite"
11
+ <% for(const integration of integrations.filter(i => i.type === 'vite-plugin')) { %><%- integrationImportContent(integration) %>
12
12
  <% } %>
13
13
 
14
- // https://vitejs.dev/config/
15
- export default defineConfig({
16
- plugins: [devtools(), <% if (addOnEnabled.paraglide) { %>paraglideVitePlugin({
17
- project: './project.inlang',
18
- outdir: './src/paraglide',
19
- strategy: ['url'],
20
- }), <% } %><% for(const integration of integrations.filter(i => i.type === 'vite-plugin')) { %><%- integrationImportCode(integration) %>,<% } %> <% if(fileRouter) { %>tanstackRouter({
21
- target: "react",
22
- autoCodeSplitting: true,
23
- }), <% } %>viteReact(<% if (addOnEnabled.compiler) { %>{
24
- babel: {
25
- plugins: ["babel-plugin-react-compiler"],
26
- },
27
- }<% } %>)<% if (tailwind) { %>, tailwindcss()<% } %><% if (addOnEnabled['module-federation']) { %>, federation(federationConfig)<% } %>],
14
+ const config = defineConfig({
28
15
  resolve: {
29
16
  alias: {
30
17
  '@': fileURLToPath(new URL('./src', import.meta.url)),
31
18
  },
32
- }
33
- });
19
+ },
20
+ plugins: [devtools(), <% if (addOnEnabled.paraglide) { %>paraglideVitePlugin({
21
+ project: './project.inlang',
22
+ outdir: './src/paraglide',
23
+ strategy: ['url'],
24
+ }), <% } %><% for(const integration of integrations.filter(i => i.type === 'vite-plugin')) { %><%- integrationImportCode(integration) %>,<% } %>
25
+ // this is the plugin that enables path aliases
26
+ viteTsConfigPaths({
27
+ projects: ['./tsconfig.json'],
28
+ }),
29
+ tailwindcss(),
30
+ tanstackStart(),
31
+ viteReact(<% if (addOnEnabled.compiler) { %>{
32
+ babel: {
33
+ plugins: ["babel-plugin-react-compiler"],
34
+ },
35
+ }<% } %>),
36
+ ],
37
+ })
38
+
39
+ export default config
@@ -9,8 +9,8 @@
9
9
  },
10
10
  "tailwindcss": {
11
11
  "dependencies": {
12
- "@tailwindcss/vite": "^4.0.6",
13
- "tailwindcss": "^4.0.6",
12
+ "@tailwindcss/vite": "^4.1.18",
13
+ "tailwindcss": "^4.1.18",
14
14
  "lucide-react": "^0.545.0"
15
15
  }
16
16
  },
@@ -8,7 +8,7 @@
8
8
  "color": "#000000",
9
9
  "link": "https://www.better-auth.com/",
10
10
  "modes": ["file-router"],
11
- "dependsOn": ["start"],
11
+
12
12
  "routes": [
13
13
  {
14
14
  "url": "/demo/better-auth",
@@ -9,7 +9,6 @@
9
9
  "exclusive": ["deploy"],
10
10
  "color": "#F38020",
11
11
  "priority": 200,
12
- "tailwind": false,
13
12
  "integrations": [
14
13
  {
15
14
  "type": "vite-plugin",
@@ -9,7 +9,6 @@
9
9
  "exclusive": ["deploy"],
10
10
  "color": "#00C7B7",
11
11
  "priority": 180,
12
- "tailwind": false,
13
12
  "integrations": [
14
13
  {
15
14
  "type": "vite-plugin",
@@ -8,7 +8,6 @@
8
8
  "category": "deploy",
9
9
  "exclusive": ["deploy"],
10
10
  "color": "#ECDC5A",
11
- "tailwind": false,
12
11
  "integrations": [
13
12
  {
14
13
  "type": "vite-plugin",
@@ -9,7 +9,6 @@
9
9
  "exclusive": ["deploy"],
10
10
  "color": "#9B4DCA",
11
11
  "priority": 160,
12
- "tailwind": false,
13
12
  "integrations": [
14
13
  {
15
14
  "type": "vite-plugin",
@@ -34,14 +34,9 @@ export function createFrameworkDefinition(): FrameworkDefinition {
34
34
  basePackageJSON,
35
35
  optionalPackages,
36
36
  supportedModes: {
37
- 'code-router': {
38
- displayName: 'Code Router',
39
- description: 'TanStack Router using code to define the routes',
40
- forceTypescript: true,
41
- },
42
37
  'file-router': {
43
38
  displayName: 'File Router',
44
- description: 'TanStack Router using files to define the routes',
39
+ description: 'TanStack Start with file-based routing',
45
40
  forceTypescript: true,
46
41
  },
47
42
  },