@tanstack/cta-engine 0.10.0-alpha.15 → 0.10.0-alpha.16

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/dist/add-ons.js +8 -73
  2. package/dist/{add.js → add-to-app.js} +19 -19
  3. package/dist/config-file.js +6 -3
  4. package/dist/constants.js +0 -2
  5. package/dist/create-app.js +76 -460
  6. package/dist/environment.js +11 -26
  7. package/dist/file-helpers.js +59 -0
  8. package/dist/frameworks.js +78 -0
  9. package/dist/index.js +8 -3
  10. package/dist/integrations/git.js +4 -0
  11. package/dist/integrations/shadcn.js +27 -0
  12. package/dist/package-json.js +46 -0
  13. package/dist/package-manager.js +51 -6
  14. package/dist/template-file.js +108 -0
  15. package/dist/types/add-ons.d.ts +2 -6
  16. package/dist/types/add-to-app.d.ts +4 -0
  17. package/dist/types/config-file.d.ts +3 -2
  18. package/dist/types/constants.d.ts +0 -3
  19. package/dist/types/file-helpers.d.ts +5 -0
  20. package/dist/types/frameworks.d.ts +5 -0
  21. package/dist/types/index.d.ts +10 -4
  22. package/dist/types/integrations/git.d.ts +2 -0
  23. package/dist/types/integrations/shadcn.d.ts +2 -0
  24. package/dist/types/package-json.d.ts +2 -0
  25. package/dist/types/package-manager.d.ts +14 -1
  26. package/dist/types/template-file.d.ts +2 -0
  27. package/dist/types/types.d.ts +83 -62
  28. package/dist/types/utils.d.ts +5 -0
  29. package/dist/utils.js +9 -0
  30. package/package.json +3 -13
  31. package/src/add-ons.ts +11 -104
  32. package/src/{add.ts → add-to-app.ts} +29 -35
  33. package/src/config-file.ts +12 -6
  34. package/src/constants.ts +0 -5
  35. package/src/create-app.ts +126 -727
  36. package/src/environment.ts +12 -27
  37. package/src/file-helpers.ts +73 -0
  38. package/src/frameworks.ts +114 -0
  39. package/src/index.ts +35 -4
  40. package/src/integrations/git.ts +7 -0
  41. package/src/integrations/shadcn.ts +44 -0
  42. package/src/package-json.ts +62 -0
  43. package/src/package-manager.ts +80 -9
  44. package/src/template-file.ts +146 -0
  45. package/src/types.ts +97 -68
  46. package/src/utils.ts +17 -0
  47. package/tests/file-helper.test.ts +37 -0
  48. package/tests/package-manager.test.ts +154 -0
  49. package/dist/cli.js +0 -126
  50. package/dist/custom-add-on.js +0 -256
  51. package/dist/file-helper.js +0 -18
  52. package/dist/mcp.js +0 -229
  53. package/dist/options.js +0 -328
  54. package/dist/templates.js +0 -6
  55. package/dist/toolchain.js +0 -6
  56. package/dist/types/add.d.ts +0 -3
  57. package/dist/types/cli.d.ts +0 -6
  58. package/dist/types/custom-add-on.d.ts +0 -6
  59. package/dist/types/file-helper.d.ts +0 -2
  60. package/dist/types/mcp.d.ts +0 -7
  61. package/dist/types/options.d.ts +0 -6
  62. package/dist/types/templates.d.ts +0 -1
  63. package/dist/types/toolchain.d.ts +0 -3
  64. package/src/cli.ts +0 -196
  65. package/src/custom-add-on.ts +0 -327
  66. package/src/file-helper.ts +0 -20
  67. package/src/mcp.ts +0 -302
  68. package/src/options.ts +0 -399
  69. package/src/templates.ts +0 -7
  70. package/src/toolchain.ts +0 -7
  71. package/templates/react/add-on/clerk/README.md +0 -3
  72. package/templates/react/add-on/clerk/assets/_dot_env.local.append +0 -2
  73. package/templates/react/add-on/clerk/assets/src/integrations/clerk/header-user.tsx +0 -19
  74. package/templates/react/add-on/clerk/assets/src/integrations/clerk/provider.tsx +0 -18
  75. package/templates/react/add-on/clerk/assets/src/routes/demo.clerk.tsx +0 -20
  76. package/templates/react/add-on/clerk/info.json +0 -13
  77. package/templates/react/add-on/clerk/package.json +0 -5
  78. package/templates/react/add-on/convex/README.md +0 -4
  79. package/templates/react/add-on/convex/assets/_dot_cursorrules.append +0 -93
  80. package/templates/react/add-on/convex/assets/_dot_env.local.append +0 -3
  81. package/templates/react/add-on/convex/assets/convex/products.ts +0 -8
  82. package/templates/react/add-on/convex/assets/convex/schema.ts +0 -10
  83. package/templates/react/add-on/convex/assets/src/integrations/convex/provider.tsx +0 -20
  84. package/templates/react/add-on/convex/assets/src/routes/demo.convex.tsx +0 -33
  85. package/templates/react/add-on/convex/info.json +0 -13
  86. package/templates/react/add-on/convex/package.json +0 -6
  87. package/templates/react/add-on/form/assets/src/components/demo.FormComponents.tsx.ejs +0 -300
  88. package/templates/react/add-on/form/assets/src/hooks/demo.form-context.ts +0 -4
  89. package/templates/react/add-on/form/assets/src/hooks/demo.form.ts +0 -22
  90. package/templates/react/add-on/form/assets/src/routes/demo.form.address.tsx.ejs +0 -213
  91. package/templates/react/add-on/form/assets/src/routes/demo.form.simple.tsx.ejs +0 -77
  92. package/templates/react/add-on/form/info.json +0 -26
  93. package/templates/react/add-on/form/package.json +0 -6
  94. package/templates/react/add-on/module-federation/assets/module-federation.config.js.ejs +0 -31
  95. package/templates/react/add-on/module-federation/assets/src/demo-mf-component.tsx +0 -3
  96. package/templates/react/add-on/module-federation/assets/src/demo-mf-self-contained.tsx +0 -11
  97. package/templates/react/add-on/module-federation/info.json +0 -7
  98. package/templates/react/add-on/module-federation/package.json +0 -5
  99. package/templates/react/add-on/netlify/README.md +0 -11
  100. package/templates/react/add-on/netlify/info.json +0 -7
  101. package/templates/react/add-on/sentry/assets/_dot_cursorrules.append +0 -22
  102. package/templates/react/add-on/sentry/assets/_dot_env.local.append +0 -2
  103. package/templates/react/add-on/sentry/assets/src/app/global-middleware.ts +0 -25
  104. package/templates/react/add-on/sentry/assets/src/routes/demo.sentry.testing.tsx +0 -480
  105. package/templates/react/add-on/sentry/info.json +0 -14
  106. package/templates/react/add-on/sentry/package.json +0 -7
  107. package/templates/react/add-on/shadcn/README.md +0 -7
  108. package/templates/react/add-on/shadcn/assets/_dot_cursorrules.append +0 -7
  109. package/templates/react/add-on/shadcn/assets/components.json +0 -21
  110. package/templates/react/add-on/shadcn/assets/src/lib/utils.ts +0 -6
  111. package/templates/react/add-on/shadcn/assets/src/styles.css +0 -138
  112. package/templates/react/add-on/shadcn/info.json +0 -7
  113. package/templates/react/add-on/shadcn/package.json +0 -9
  114. package/templates/react/add-on/start/assets/_dot_gitignore.append +0 -2
  115. package/templates/react/add-on/start/assets/app.config.ts.ejs +0 -19
  116. package/templates/react/add-on/start/assets/src/api.ts +0 -6
  117. package/templates/react/add-on/start/assets/src/client.tsx +0 -8
  118. package/templates/react/add-on/start/assets/src/router.tsx.ejs +0 -77
  119. package/templates/react/add-on/start/assets/src/routes/api.demo-names.ts +0 -11
  120. package/templates/react/add-on/start/assets/src/routes/demo.start.api-request.tsx.ejs +0 -33
  121. package/templates/react/add-on/start/assets/src/routes/demo.start.server-funcs.tsx +0 -50
  122. package/templates/react/add-on/start/assets/src/ssr.tsx +0 -12
  123. package/templates/react/add-on/start/info.json +0 -18
  124. package/templates/react/add-on/start/package.json +0 -13
  125. package/templates/react/add-on/store/assets/src/lib/demo-store.ts +0 -13
  126. package/templates/react/add-on/store/assets/src/routes/demo.store.tsx.ejs +0 -75
  127. package/templates/react/add-on/store/info.json +0 -13
  128. package/templates/react/add-on/store/package.json +0 -6
  129. package/templates/react/add-on/tRPC/assets/src/integrations/trpc/init.ts +0 -9
  130. package/templates/react/add-on/tRPC/assets/src/integrations/trpc/react.ts +0 -4
  131. package/templates/react/add-on/tRPC/assets/src/integrations/trpc/router.ts +0 -18
  132. package/templates/react/add-on/tRPC/assets/src/routes/api.trpc.$.tsx +0 -16
  133. package/templates/react/add-on/tRPC/info.json +0 -9
  134. package/templates/react/add-on/tRPC/package.json +0 -9
  135. package/templates/react/add-on/table/assets/src/data/demo-table-data.ts +0 -50
  136. package/templates/react/add-on/table/assets/src/routes/demo.table.tsx.ejs +0 -373
  137. package/templates/react/add-on/table/info.json +0 -13
  138. package/templates/react/add-on/table/package.json +0 -7
  139. package/templates/react/add-on/tanstack-query/assets/src/integrations/tanstack-query/layout.tsx +0 -5
  140. package/templates/react/add-on/tanstack-query/assets/src/integrations/tanstack-query/root-provider.tsx.ejs +0 -70
  141. package/templates/react/add-on/tanstack-query/assets/src/routes/demo.tanstack-query.tsx.ejs +0 -53
  142. package/templates/react/add-on/tanstack-query/info.json +0 -13
  143. package/templates/react/add-on/tanstack-query/package.json +0 -6
  144. package/templates/react/base/README.md.ejs +0 -558
  145. package/templates/react/base/_dot_gitignore +0 -5
  146. package/templates/react/base/_dot_vscode/settings.biome.json +0 -38
  147. package/templates/react/base/_dot_vscode/settings.json +0 -11
  148. package/templates/react/base/index.html.ejs +0 -20
  149. package/templates/react/base/package.biome.json +0 -10
  150. package/templates/react/base/package.eslintprettier.json +0 -11
  151. package/templates/react/base/package.json +0 -29
  152. package/templates/react/base/package.ts.json +0 -7
  153. package/templates/react/base/package.tw.json +0 -6
  154. package/templates/react/base/public/favicon.ico +0 -0
  155. package/templates/react/base/public/logo192.png +0 -0
  156. package/templates/react/base/public/logo512.png +0 -0
  157. package/templates/react/base/public/manifest.json +0 -25
  158. package/templates/react/base/public/robots.txt +0 -3
  159. package/templates/react/base/src/App.css +0 -38
  160. package/templates/react/base/src/App.test.tsx.ejs +0 -10
  161. package/templates/react/base/src/App.tsx.ejs +0 -74
  162. package/templates/react/base/src/components/Header.tsx.ejs +0 -27
  163. package/templates/react/base/src/logo.svg +0 -44
  164. package/templates/react/base/src/reportWebVitals.ts.ejs +0 -28
  165. package/templates/react/base/src/styles.css.ejs +0 -15
  166. package/templates/react/base/toolchain/.prettierignore +0 -3
  167. package/templates/react/base/toolchain/biome.json +0 -31
  168. package/templates/react/base/toolchain/eslint.config.js +0 -5
  169. package/templates/react/base/toolchain/prettier.config.js +0 -10
  170. package/templates/react/base/tsconfig.json.ejs +0 -29
  171. package/templates/react/base/vite.config.js.ejs +0 -23
  172. package/templates/react/code-router/src/main.tsx.ejs +0 -92
  173. package/templates/react/example/tanchat/README.md +0 -37
  174. package/templates/react/example/tanchat/assets/_dot_env.local.append +0 -2
  175. package/templates/react/example/tanchat/assets/public/example-guitar-flowers.jpg +0 -0
  176. package/templates/react/example/tanchat/assets/public/example-guitar-motherboard.jpg +0 -0
  177. package/templates/react/example/tanchat/assets/public/example-guitar-racing.jpg +0 -0
  178. package/templates/react/example/tanchat/assets/public/example-guitar-steamer-trunk.jpg +0 -0
  179. package/templates/react/example/tanchat/assets/public/example-guitar-superhero.jpg +0 -0
  180. package/templates/react/example/tanchat/assets/public/example-guitar-traveling.jpg +0 -0
  181. package/templates/react/example/tanchat/assets/public/example-guitar-video-games.jpg +0 -0
  182. package/templates/react/example/tanchat/assets/src/components/example-AIAssistant.tsx +0 -173
  183. package/templates/react/example/tanchat/assets/src/components/example-GuitarRecommendation.tsx +0 -47
  184. package/templates/react/example/tanchat/assets/src/data/example-guitars.ts +0 -83
  185. package/templates/react/example/tanchat/assets/src/demo.index.css +0 -220
  186. package/templates/react/example/tanchat/assets/src/integrations/tanchat/header-user.tsx +0 -5
  187. package/templates/react/example/tanchat/assets/src/routes/api.messages.ts +0 -24
  188. package/templates/react/example/tanchat/assets/src/routes/api.sse.ts +0 -23
  189. package/templates/react/example/tanchat/assets/src/routes/example.chat.tsx +0 -159
  190. package/templates/react/example/tanchat/assets/src/routes/example.guitars/$guitarId.tsx +0 -50
  191. package/templates/react/example/tanchat/assets/src/routes/example.guitars/index.tsx +0 -54
  192. package/templates/react/example/tanchat/assets/src/store/example-assistant.ts +0 -3
  193. package/templates/react/example/tanchat/assets/src/utils/demo.ai.ts +0 -62
  194. package/templates/react/example/tanchat/assets/src/utils/demo.sse.ts +0 -31
  195. package/templates/react/example/tanchat/assets/src/utils/demo.tools.ts +0 -47
  196. package/templates/react/example/tanchat/info.json +0 -19
  197. package/templates/react/example/tanchat/package.json +0 -16
  198. package/templates/react/file-router/package.fr.json +0 -5
  199. package/templates/react/file-router/src/main.tsx.ejs +0 -55
  200. package/templates/react/file-router/src/routes/__root.tsx.ejs +0 -82
  201. package/templates/solid/add-on/form/assets/src/routes/demo.form.tsx.ejs +0 -352
  202. package/templates/solid/add-on/form/info.json +0 -13
  203. package/templates/solid/add-on/form/package.json +0 -5
  204. package/templates/solid/add-on/module-federation/assets/module-federation.config.js.ejs +0 -27
  205. package/templates/solid/add-on/module-federation/assets/src/demo-mf-component.tsx +0 -3
  206. package/templates/solid/add-on/module-federation/assets/src/demo-mf-self-contained.tsx +0 -9
  207. package/templates/solid/add-on/module-federation/info.json +0 -7
  208. package/templates/solid/add-on/module-federation/package.json +0 -5
  209. package/templates/solid/add-on/sentry/assets/_dot_cursorrules.append +0 -22
  210. package/templates/solid/add-on/sentry/assets/_dot_env.local.append +0 -2
  211. package/templates/solid/add-on/sentry/assets/src/routes/demo.sentry.bad-event-handler.tsx +0 -20
  212. package/templates/solid/add-on/sentry/info.json +0 -13
  213. package/templates/solid/add-on/sentry/package.json +0 -5
  214. package/templates/solid/add-on/solid-ui/README.md +0 -9
  215. package/templates/solid/add-on/solid-ui/assets/src/lib/utils.ts +0 -6
  216. package/templates/solid/add-on/solid-ui/assets/src/styles.css +0 -138
  217. package/templates/solid/add-on/solid-ui/assets/ui.config.json +0 -13
  218. package/templates/solid/add-on/solid-ui/info.json +0 -11
  219. package/templates/solid/add-on/solid-ui/package.json +0 -9
  220. package/templates/solid/add-on/start/assets/app.config.ts +0 -16
  221. package/templates/solid/add-on/start/assets/src/api.ts +0 -6
  222. package/templates/solid/add-on/start/assets/src/client.tsx +0 -7
  223. package/templates/solid/add-on/start/assets/src/router.tsx.ejs +0 -24
  224. package/templates/solid/add-on/start/assets/src/routes/demo.start.server-funcs.tsx +0 -49
  225. package/templates/solid/add-on/start/assets/src/ssr.tsx +0 -12
  226. package/templates/solid/add-on/start/info.json +0 -14
  227. package/templates/solid/add-on/start/package.json +0 -12
  228. package/templates/solid/add-on/store/assets/src/lib/demo-store.ts +0 -13
  229. package/templates/solid/add-on/store/assets/src/routes/demo.store.tsx.ejs +0 -77
  230. package/templates/solid/add-on/store/info.json +0 -13
  231. package/templates/solid/add-on/store/package.json +0 -6
  232. package/templates/solid/add-on/tanstack-query/assets/src/integrations/tanstack-query/header-user.tsx +0 -5
  233. package/templates/solid/add-on/tanstack-query/assets/src/integrations/tanstack-query/provider.tsx +0 -15
  234. package/templates/solid/add-on/tanstack-query/assets/src/routes/demo.tanstack-query.tsx +0 -30
  235. package/templates/solid/add-on/tanstack-query/info.json +0 -13
  236. package/templates/solid/add-on/tanstack-query/package.json +0 -6
  237. package/templates/solid/base/README.md.ejs +0 -215
  238. package/templates/solid/base/_dot_cursorrules.append +0 -35
  239. package/templates/solid/base/_dot_gitignore +0 -5
  240. package/templates/solid/base/_dot_vscode/settings.biome.json +0 -38
  241. package/templates/solid/base/_dot_vscode/settings.json +0 -11
  242. package/templates/solid/base/index.html.ejs +0 -20
  243. package/templates/solid/base/package.biome.json +0 -10
  244. package/templates/solid/base/package.eslintprettier.json +0 -11
  245. package/templates/solid/base/package.json +0 -22
  246. package/templates/solid/base/package.ts.json +0 -5
  247. package/templates/solid/base/package.tw.json +0 -6
  248. package/templates/solid/base/public/favicon.ico +0 -0
  249. package/templates/solid/base/public/logo192.png +0 -0
  250. package/templates/solid/base/public/logo512.png +0 -0
  251. package/templates/solid/base/public/manifest.json +0 -25
  252. package/templates/solid/base/public/robots.txt +0 -3
  253. package/templates/solid/base/src/App.css +0 -0
  254. package/templates/solid/base/src/App.tsx.ejs +0 -47
  255. package/templates/solid/base/src/components/Header.tsx.ejs +0 -26
  256. package/templates/solid/base/src/logo.svg +0 -120
  257. package/templates/solid/base/src/styles.css.ejs +0 -15
  258. package/templates/solid/base/toolchain/.prettierignore +0 -3
  259. package/templates/solid/base/toolchain/biome.json +0 -31
  260. package/templates/solid/base/toolchain/eslint.config.js +0 -5
  261. package/templates/solid/base/toolchain/prettier.config.js +0 -10
  262. package/templates/solid/base/tsconfig.json.ejs +0 -31
  263. package/templates/solid/base/vite.config.js.ejs +0 -22
  264. package/templates/solid/code-router/src/main.tsx.ejs +0 -71
  265. package/templates/solid/example/tanchat/README.md +0 -52
  266. package/templates/solid/example/tanchat/assets/ai-streaming-server/README.md +0 -110
  267. package/templates/solid/example/tanchat/assets/ai-streaming-server/_dot_env.example +0 -1
  268. package/templates/solid/example/tanchat/assets/ai-streaming-server/package.json +0 -26
  269. package/templates/solid/example/tanchat/assets/ai-streaming-server/src/index.ts +0 -102
  270. package/templates/solid/example/tanchat/assets/ai-streaming-server/tsconfig.json +0 -15
  271. package/templates/solid/example/tanchat/assets/src/components/demo.SettingsDialog.tsx +0 -149
  272. package/templates/solid/example/tanchat/assets/src/demo.index.css +0 -227
  273. package/templates/solid/example/tanchat/assets/src/lib/demo-store.ts +0 -13
  274. package/templates/solid/example/tanchat/assets/src/routes/example.chat.tsx +0 -435
  275. package/templates/solid/example/tanchat/assets/src/store/demo.hooks.ts +0 -17
  276. package/templates/solid/example/tanchat/assets/src/store/demo.store.ts +0 -133
  277. package/templates/solid/example/tanchat/info.json +0 -14
  278. package/templates/solid/example/tanchat/package.json +0 -7
  279. package/templates/solid/file-router/package.fr.json +0 -5
  280. package/templates/solid/file-router/src/main.tsx.ejs +0 -47
  281. package/templates/solid/file-router/src/routes/__root.tsx.ejs +0 -41
  282. package/templates/solid/file-router/src/routes/index.tsx +0 -43
  283. package/tests/cra.test.ts +0 -293
  284. package/tests/snapshots/cra/cr-js-npm.json +0 -33
  285. package/tests/snapshots/cra/cr-ts-npm.json +0 -34
  286. package/tests/snapshots/cra/cr-ts-start-npm.json +0 -38
  287. package/tests/snapshots/cra/fr-ts-npm.json +0 -34
  288. package/tests/snapshots/cra/fr-ts-tw-npm.json +0 -33
  289. package/tests/snapshots/cra/solid-cr-js-npm.json +0 -31
  290. package/tests/snapshots/cra/solid-cr-ts-npm.json +0 -32
  291. package/tests/snapshots/cra/solid-cr-ts-start-npm.json +0 -36
  292. package/tests/snapshots/cra/solid-fr-ts-npm.json +0 -33
  293. package/tests/snapshots/cra/solid-fr-ts-tw-npm.json +0 -32
  294. package/tests/test-utilities.ts +0 -87
@@ -1,21 +0,0 @@
1
- {
2
- "$schema": "https://ui.shadcn.com/schema.json",
3
- "style": "new-york",
4
- "rsc": false,
5
- "tsx": true,
6
- "tailwind": {
7
- "config": "",
8
- "css": "src/styles.css",
9
- "baseColor": "zinc",
10
- "cssVariables": true,
11
- "prefix": ""
12
- },
13
- "aliases": {
14
- "components": "@/components",
15
- "utils": "@/lib/utils",
16
- "ui": "@/components/ui",
17
- "lib": "@/lib",
18
- "hooks": "@/hooks"
19
- },
20
- "iconLibrary": "lucide"
21
- }
@@ -1,6 +0,0 @@
1
- import { clsx, type ClassValue } from "clsx"
2
- import { twMerge } from "tailwind-merge"
3
-
4
- export function cn(...inputs: ClassValue[]) {
5
- return twMerge(clsx(inputs))
6
- }
@@ -1,138 +0,0 @@
1
- @import 'tailwindcss';
2
-
3
- @plugin "tailwindcss-animate";
4
-
5
- @custom-variant dark (&:is(.dark *));
6
-
7
- body {
8
- @apply m-0;
9
- font-family:
10
- -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu',
11
- 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
12
- -webkit-font-smoothing: antialiased;
13
- -moz-osx-font-smoothing: grayscale;
14
- }
15
-
16
- code {
17
- font-family:
18
- source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;
19
- }
20
-
21
- :root {
22
- --background: oklch(1 0 0);
23
- --foreground: oklch(0.141 0.005 285.823);
24
- --card: oklch(1 0 0);
25
- --card-foreground: oklch(0.141 0.005 285.823);
26
- --popover: oklch(1 0 0);
27
- --popover-foreground: oklch(0.141 0.005 285.823);
28
- --primary: oklch(0.21 0.006 285.885);
29
- --primary-foreground: oklch(0.985 0 0);
30
- --secondary: oklch(0.967 0.001 286.375);
31
- --secondary-foreground: oklch(0.21 0.006 285.885);
32
- --muted: oklch(0.967 0.001 286.375);
33
- --muted-foreground: oklch(0.552 0.016 285.938);
34
- --accent: oklch(0.967 0.001 286.375);
35
- --accent-foreground: oklch(0.21 0.006 285.885);
36
- --destructive: oklch(0.577 0.245 27.325);
37
- --destructive-foreground: oklch(0.577 0.245 27.325);
38
- --border: oklch(0.92 0.004 286.32);
39
- --input: oklch(0.92 0.004 286.32);
40
- --ring: oklch(0.871 0.006 286.286);
41
- --chart-1: oklch(0.646 0.222 41.116);
42
- --chart-2: oklch(0.6 0.118 184.704);
43
- --chart-3: oklch(0.398 0.07 227.392);
44
- --chart-4: oklch(0.828 0.189 84.429);
45
- --chart-5: oklch(0.769 0.188 70.08);
46
- --radius: 0.625rem;
47
- --sidebar: oklch(0.985 0 0);
48
- --sidebar-foreground: oklch(0.141 0.005 285.823);
49
- --sidebar-primary: oklch(0.21 0.006 285.885);
50
- --sidebar-primary-foreground: oklch(0.985 0 0);
51
- --sidebar-accent: oklch(0.967 0.001 286.375);
52
- --sidebar-accent-foreground: oklch(0.21 0.006 285.885);
53
- --sidebar-border: oklch(0.92 0.004 286.32);
54
- --sidebar-ring: oklch(0.871 0.006 286.286);
55
- }
56
-
57
- .dark {
58
- --background: oklch(0.141 0.005 285.823);
59
- --foreground: oklch(0.985 0 0);
60
- --card: oklch(0.141 0.005 285.823);
61
- --card-foreground: oklch(0.985 0 0);
62
- --popover: oklch(0.141 0.005 285.823);
63
- --popover-foreground: oklch(0.985 0 0);
64
- --primary: oklch(0.985 0 0);
65
- --primary-foreground: oklch(0.21 0.006 285.885);
66
- --secondary: oklch(0.274 0.006 286.033);
67
- --secondary-foreground: oklch(0.985 0 0);
68
- --muted: oklch(0.274 0.006 286.033);
69
- --muted-foreground: oklch(0.705 0.015 286.067);
70
- --accent: oklch(0.274 0.006 286.033);
71
- --accent-foreground: oklch(0.985 0 0);
72
- --destructive: oklch(0.396 0.141 25.723);
73
- --destructive-foreground: oklch(0.637 0.237 25.331);
74
- --border: oklch(0.274 0.006 286.033);
75
- --input: oklch(0.274 0.006 286.033);
76
- --ring: oklch(0.442 0.017 285.786);
77
- --chart-1: oklch(0.488 0.243 264.376);
78
- --chart-2: oklch(0.696 0.17 162.48);
79
- --chart-3: oklch(0.769 0.188 70.08);
80
- --chart-4: oklch(0.627 0.265 303.9);
81
- --chart-5: oklch(0.645 0.246 16.439);
82
- --sidebar: oklch(0.21 0.006 285.885);
83
- --sidebar-foreground: oklch(0.985 0 0);
84
- --sidebar-primary: oklch(0.488 0.243 264.376);
85
- --sidebar-primary-foreground: oklch(0.985 0 0);
86
- --sidebar-accent: oklch(0.274 0.006 286.033);
87
- --sidebar-accent-foreground: oklch(0.985 0 0);
88
- --sidebar-border: oklch(0.274 0.006 286.033);
89
- --sidebar-ring: oklch(0.442 0.017 285.786);
90
- }
91
-
92
- @theme inline {
93
- --color-background: var(--background);
94
- --color-foreground: var(--foreground);
95
- --color-card: var(--card);
96
- --color-card-foreground: var(--card-foreground);
97
- --color-popover: var(--popover);
98
- --color-popover-foreground: var(--popover-foreground);
99
- --color-primary: var(--primary);
100
- --color-primary-foreground: var(--primary-foreground);
101
- --color-secondary: var(--secondary);
102
- --color-secondary-foreground: var(--secondary-foreground);
103
- --color-muted: var(--muted);
104
- --color-muted-foreground: var(--muted-foreground);
105
- --color-accent: var(--accent);
106
- --color-accent-foreground: var(--accent-foreground);
107
- --color-destructive: var(--destructive);
108
- --color-destructive-foreground: var(--destructive-foreground);
109
- --color-border: var(--border);
110
- --color-input: var(--input);
111
- --color-ring: var(--ring);
112
- --color-chart-1: var(--chart-1);
113
- --color-chart-2: var(--chart-2);
114
- --color-chart-3: var(--chart-3);
115
- --color-chart-4: var(--chart-4);
116
- --color-chart-5: var(--chart-5);
117
- --radius-sm: calc(var(--radius) - 4px);
118
- --radius-md: calc(var(--radius) - 2px);
119
- --radius-lg: var(--radius);
120
- --radius-xl: calc(var(--radius) + 4px);
121
- --color-sidebar: var(--sidebar);
122
- --color-sidebar-foreground: var(--sidebar-foreground);
123
- --color-sidebar-primary: var(--sidebar-primary);
124
- --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
125
- --color-sidebar-accent: var(--sidebar-accent);
126
- --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
127
- --color-sidebar-border: var(--sidebar-border);
128
- --color-sidebar-ring: var(--sidebar-ring);
129
- }
130
-
131
- @layer base {
132
- * {
133
- @apply border-border outline-ring/50;
134
- }
135
- body {
136
- @apply bg-background text-foreground;
137
- }
138
- }
@@ -1,7 +0,0 @@
1
- {
2
- "name": "Shadcn",
3
- "description": "Add Shadcn UI to your application.",
4
- "phase": "add-on",
5
- "templates": ["file-router", "code-router"],
6
- "link": "https://ui.shadcn.com/"
7
- }
@@ -1,9 +0,0 @@
1
- {
2
- "dependencies": {
3
- "class-variance-authority": "^0.7.1",
4
- "clsx": "^2.1.1",
5
- "lucide-react": "^0.476.0",
6
- "tailwind-merge": "^3.0.2",
7
- "tailwindcss-animate": "^1.0.7"
8
- }
9
- }
@@ -1,2 +0,0 @@
1
- .output
2
- .vinxi
@@ -1,19 +0,0 @@
1
- import { defineConfig } from '@tanstack/react-start/config'
2
- import viteTsConfigPaths from 'vite-tsconfig-paths'<% if (tailwind) { %>
3
- import tailwindcss from "@tailwindcss/vite"
4
- <% } %>
5
-
6
- export default defineConfig({
7
- tsr: {
8
- appDirectory: 'src',
9
- },
10
- vite: {
11
- plugins: [
12
- // this is the plugin that enables path aliases
13
- viteTsConfigPaths({
14
- projects: ['./tsconfig.json'],
15
- }),
16
- <% if (tailwind) { %>tailwindcss(),<% } %>
17
- ],
18
- },
19
- })
@@ -1,6 +0,0 @@
1
- import {
2
- createStartAPIHandler,
3
- defaultAPIFileRouteHandler,
4
- } from '@tanstack/react-start/api'
5
-
6
- export default createStartAPIHandler(defaultAPIFileRouteHandler)
@@ -1,8 +0,0 @@
1
- import { hydrateRoot } from 'react-dom/client'
2
- import { StartClient } from '@tanstack/react-start'
3
-
4
- import { createRouter } from './router'
5
-
6
- const router = createRouter()
7
-
8
- hydrateRoot(document, <StartClient router={router} />)
@@ -1,77 +0,0 @@
1
- import { createRouter as createTanstackRouter } from '@tanstack/react-router'<% if (addOnEnabled.sentry) { %>
2
- import * as Sentry from '@sentry/react'
3
- import * as SentryServer from '@sentry/node'
4
- import { createIsomorphicFn } from '@tanstack/react-start'
5
- <% } %><% if (addOnEnabled['tanstack-query']) { %>
6
- import { routerWithQueryClient } from '@tanstack/react-router-with-query'
7
- import * as TanstackQuery from './integrations/tanstack-query/root-provider'
8
- <% } %>
9
-
10
- // Import the generated route tree
11
- import { routeTree } from './routeTree.gen'
12
-
13
- import './styles.css'
14
-
15
- // Create a new router instance
16
- export const createRouter = () => {
17
- <% if (addOnEnabled['tanstack-query']) { %>
18
- const router = routerWithQueryClient(createTanstackRouter({
19
- routeTree,
20
- context: {
21
- <% if (addOnEnabled['tanstack-query']) { %>
22
- ...TanstackQuery.getContext(),
23
- <% } %>
24
- },
25
- scrollRestoration: true,
26
- defaultPreloadStaleTime: 0,
27
- <% if (addOnEnabled.tRPC) { %>
28
- Wrap: (props: { children: React.ReactNode }) => {
29
- return (
30
- <TanstackQuery.Provider>
31
- {props.children}
32
- </TanstackQuery.Provider>
33
- );
34
- },
35
- <% } %>
36
- }), TanstackQuery.getContext().queryClient)
37
- <% } else { %>
38
- const router = createTanstackRouter({
39
- routeTree,
40
- scrollRestoration: true,
41
- defaultPreloadStaleTime: 0,
42
- })
43
- <% } %>
44
- return router
45
- }
46
-
47
- <% if (addOnEnabled.sentry) { %>
48
- const router = createRouter()
49
- createIsomorphicFn().server(() => {
50
- SentryServer.init({
51
- dsn: import.meta.env.VITE_SENTRY_DSN,
52
- tracesSampleRate: 1.0,
53
- profilesSampleRate: 1.0,
54
- })
55
- }).client(() => {
56
- Sentry.init({
57
- dsn: import.meta.env.VITE_SENTRY_DSN,
58
- integrations: [
59
- Sentry.replayIntegration({
60
- maskAllText: false,
61
- blockAllMedia: false,
62
- }),
63
- Sentry.tanstackRouterBrowserTracingIntegration(router),
64
- ],
65
- tracesSampleRate: 1.0,
66
- replaysSessionSampleRate: 1.0,
67
- replaysOnErrorSampleRate: 1.0,
68
- })
69
- })()
70
- <% } %>
71
-
72
- // Register the router instance for type safety
73
- declare module '@tanstack/react-router' {
74
- interface Register {
75
- router: ReturnType<typeof createRouter>
76
- }
77
- }
@@ -1,11 +0,0 @@
1
- import { createAPIFileRoute } from '@tanstack/react-start/api'
2
-
3
- export const APIRoute = createAPIFileRoute('/demo/start/api/names')({
4
- GET: async ({ request }) => {
5
- return new Response(JSON.stringify(['Alice', 'Bob', 'Charlie']), {
6
- headers: {
7
- 'Content-Type': 'application/json',
8
- },
9
- })
10
- },
11
- })
@@ -1,33 +0,0 @@
1
- <% if (addOnEnabled['react-query']) { %>
2
- import { useQuery } from '@tanstack/react-query'
3
- <% } else { %>
4
- import { useEffect, useState } from 'react'
5
- <% } %>
6
- import { createFileRoute } from '@tanstack/react-router'
7
-
8
- function getNames() {
9
- return fetch('/api/demo-names').then((res) => res.json())
10
- }
11
-
12
- export const Route = createFileRoute('/demo/start/api-request')({
13
- component: Home,
14
- })
15
-
16
- function Home() {
17
- <% if (addOnEnabled['react-query']) { %>
18
- const { data: names = [] } = useQuery({
19
- queryKey: ['names'],
20
- queryFn: getNames,
21
- })
22
- <% } else { %>
23
- const [names, setNames] = useState<Array<string>>([])
24
- useEffect(() => {
25
- getNames().then(setNames)
26
- }, [])
27
- <% } %>
28
- return (
29
- <div className="p-4">
30
- <div>{names.join(', ')}</div>
31
- </div>
32
- )
33
- }
@@ -1,50 +0,0 @@
1
- import * as fs from 'node:fs'
2
- import { createFileRoute, useRouter } from '@tanstack/react-router'
3
- import { createServerFn } from '@tanstack/react-start'
4
-
5
- const filePath = 'count.txt'
6
-
7
- async function readCount() {
8
- return parseInt(
9
- await fs.promises.readFile(filePath, 'utf-8').catch(() => '0'),
10
- )
11
- }
12
-
13
- const getCount = createServerFn({
14
- method: 'GET',
15
- }).handler(() => {
16
- return readCount()
17
- })
18
-
19
- const updateCount = createServerFn({ method: 'POST' })
20
- .validator((d: number) => d)
21
- .handler(async ({ data }) => {
22
- const count = await readCount()
23
- await fs.promises.writeFile(filePath, `${count + data}`)
24
- })
25
-
26
- export const Route = createFileRoute('/demo/start/server-funcs')({
27
- component: Home,
28
- loader: async () => await getCount(),
29
- })
30
-
31
- function Home() {
32
- const router = useRouter()
33
- const state = Route.useLoaderData()
34
-
35
- return (
36
- <div className="p-4">
37
- <button
38
- type="button"
39
- onClick={() => {
40
- updateCount({ data: 1 }).then(() => {
41
- router.invalidate()
42
- })
43
- }}
44
- className="bg-blue-500 hover:bg-blue-700 text-white font-bold py-2 px-4 rounded"
45
- >
46
- Add 1 to {state}?
47
- </button>
48
- </div>
49
- )
50
- }
@@ -1,12 +0,0 @@
1
- import {
2
- createStartHandler,
3
- defaultStreamHandler,
4
- } from '@tanstack/react-start/server'
5
- import { getRouterManifest } from '@tanstack/react-start/router-manifest'
6
-
7
- import { createRouter } from './router'
8
-
9
- export default createStartHandler({
10
- createRouter,
11
- getRouterManifest,
12
- })(defaultStreamHandler)
@@ -1,18 +0,0 @@
1
- {
2
- "name": "Start",
3
- "phase": "setup",
4
- "description": "Add TanStack Start for SSR, API endpoints, and more.",
5
- "link": "https://tanstack.com/start/latest",
6
- "templates": ["file-router"],
7
- "warning": "TanStack Start is not yet at 1.0 and may change significantly or not be compatible with other add-ons.",
8
- "routes": [
9
- {
10
- "url": "/demo/start/server-funcs",
11
- "name": "Start - Server Functions"
12
- },
13
- {
14
- "url": "/demo/start/api-request",
15
- "name": "Start - API Request"
16
- }
17
- ]
18
- }
@@ -1,13 +0,0 @@
1
- {
2
- "scripts": {
3
- "dev": "vinxi dev",
4
- "build": "vinxi build",
5
- "start": "vinxi start"
6
- },
7
- "dependencies": {
8
- "@tanstack/react-router-with-query": "^1.114.3",
9
- "@tanstack/react-start": "^1.114.3",
10
- "vinxi": "^0.5.3",
11
- "vite-tsconfig-paths": "^5.1.4"
12
- }
13
- }
@@ -1,13 +0,0 @@
1
- import { Derived, Store } from '@tanstack/store'
2
-
3
- export const store = new Store({
4
- firstName: 'Jane',
5
- lastName: 'Smith',
6
- })
7
-
8
- export const fullName = new Derived({
9
- fn: () => `${store.state.firstName} ${store.state.lastName}`,
10
- deps: [store],
11
- })
12
-
13
- fullName.mount()
@@ -1,75 +0,0 @@
1
- import { <% if (fileRouter) { %>createFileRoute<% } else { %>createRoute<% } %> } from '@tanstack/react-router'
2
- import { useStore } from '@tanstack/react-store'
3
-
4
- import { fullName, store } from '../lib/demo-store'
5
- <% if (codeRouter) { %>
6
- import type { RootRoute } from '@tanstack/react-router'
7
- <% } else { %>
8
- export const Route = createFileRoute('/demo/store')({
9
- component: DemoStore,
10
- })
11
- <% } %>
12
-
13
- function FirstName() {
14
- const firstName = useStore(store, (state) => state.firstName)
15
- return (
16
- <input
17
- type="text"
18
- value={firstName}
19
- onChange={(e) =>
20
- store.setState((state) => ({ ...state, firstName: e.target.value }))
21
- }
22
- className="bg-white/10 rounded-lg px-4 py-2 outline-none border border-white/20 hover:border-white/40 focus:border-white/60 transition-colors duration-200 placeholder-white/40"
23
- />
24
- )
25
- }
26
-
27
- function LastName() {
28
- const lastName = useStore(store, (state) => state.lastName)
29
- return (
30
- <input
31
- type="text"
32
- value={lastName}
33
- onChange={(e) =>
34
- store.setState((state) => ({ ...state, lastName: e.target.value }))
35
- }
36
- className="bg-white/10 rounded-lg px-4 py-2 outline-none border border-white/20 hover:border-white/40 focus:border-white/60 transition-colors duration-200 placeholder-white/40"
37
- />
38
- )
39
- }
40
-
41
- function FullName() {
42
- const fName = useStore(fullName)
43
- return (
44
- <div className="bg-white/10 rounded-lg px-4 py-2 outline-none ">
45
- {fName}
46
- </div>
47
- )
48
- }
49
-
50
- function DemoStore() {
51
- return (
52
- <div
53
- className="min-h-[calc(100vh-32px)] text-white p-8 flex items-center justify-center w-full h-full"
54
- style={{
55
- backgroundImage:
56
- 'radial-gradient(50% 50% at 80% 80%, #f4a460 0%, #8b4513 70%, #1a0f0a 100%)',
57
- }}
58
- >
59
- <div className="bg-white/10 backdrop-blur-lg rounded-xl p-8 shadow-lg flex flex-col gap-4 text-3xl min-w-1/2">
60
- <h1 className="text-4xl font-bold mb-5">Store Example</h1>
61
- <FirstName />
62
- <LastName />
63
- <FullName />
64
- </div>
65
- </div>
66
- )
67
- }
68
-
69
- <% if (codeRouter) { %>
70
- export default (parentRoute: RootRoute) => createRoute({
71
- path: '/demo/store',
72
- component: DemoStore,
73
- getParentRoute: () => parentRoute,
74
- })
75
- <% } %>
@@ -1,13 +0,0 @@
1
- {
2
- "name": "Store",
3
- "description": "Add TanStack Store to your application.",
4
- "phase": "add-on",
5
- "link": "https://tanstack.com/store/latest",
6
- "templates": ["file-router", "code-router"],
7
- "routes": [
8
- {
9
- "url": "/demo/store",
10
- "name": "Store"
11
- }
12
- ]
13
- }
@@ -1,6 +0,0 @@
1
- {
2
- "dependencies": {
3
- "@tanstack/store": "^0.7.0",
4
- "@tanstack/react-store": "^0.7.0"
5
- }
6
- }
@@ -1,9 +0,0 @@
1
- import { initTRPC } from "@trpc/server";
2
- import superjson from "superjson";
3
-
4
- const t = initTRPC.create({
5
- transformer: superjson,
6
- });
7
-
8
- export const createTRPCRouter = t.router;
9
- export const publicProcedure = t.procedure;
@@ -1,4 +0,0 @@
1
- import { createTRPCContext } from "@trpc/tanstack-react-query";
2
- import type { TRPCRouter } from "@/integrations/trpc/router";
3
-
4
- export const { TRPCProvider, useTRPC } = createTRPCContext<TRPCRouter>();
@@ -1,18 +0,0 @@
1
- import { TRPCError } from '@trpc/server'
2
- import type { TRPCRouterRecord } from '@trpc/server'
3
- // import { z } from 'zod'
4
-
5
- import { createTRPCRouter, publicProcedure } from './init'
6
-
7
- const peopleRouter = {
8
- list: publicProcedure.query(async () =>
9
- fetch('https://swapi.dev/api/people')
10
- .then((res) => res.json())
11
- .then((d) => d.results as { name: string }[]),
12
- ),
13
- } satisfies TRPCRouterRecord
14
-
15
- export const trpcRouter = createTRPCRouter({
16
- people: peopleRouter,
17
- })
18
- export type TRPCRouter = typeof trpcRouter
@@ -1,16 +0,0 @@
1
- import { createAPIFileRoute } from '@tanstack/react-start/api'
2
- import { fetchRequestHandler } from '@trpc/server/adapters/fetch'
3
- import { trpcRouter } from '@/integrations/trpc/router'
4
-
5
- function handler({ request }: { request: Request }) {
6
- return fetchRequestHandler({
7
- req: request,
8
- router: trpcRouter,
9
- endpoint: '/api/trpc',
10
- })
11
- }
12
-
13
- export const APIRoute = createAPIFileRoute('/api/trpc/$')({
14
- GET: handler,
15
- POST: handler,
16
- })
@@ -1,9 +0,0 @@
1
- {
2
- "name": "tRPC",
3
- "description": "Integrate tRPC into your application.",
4
- "phase": "add-on",
5
- "templates": ["file-router"],
6
- "link": "https://trpc.io/",
7
- "routes": [],
8
- "dependsOn": ["tanstack-query", "start"]
9
- }
@@ -1,9 +0,0 @@
1
- {
2
- "dependencies": {
3
- "@trpc/client": "^11.0.0",
4
- "@trpc/server": "^11.0.0",
5
- "@trpc/tanstack-react-query": "^11.0.0",
6
- "superjson": "^2.2.2",
7
- "zod": "^3.24.2"
8
- }
9
- }