@tanstack/cta-engine 0.10.0-alpha.21 → 0.10.0-alpha.25

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 (340) hide show
  1. package/dist/add-ons.js +91 -5
  2. package/dist/add.js +125 -0
  3. package/dist/cli.js +132 -0
  4. package/dist/config-file.js +9 -14
  5. package/dist/constants.js +2 -0
  6. package/dist/create-app.js +451 -142
  7. package/dist/custom-add-on.js +254 -0
  8. package/dist/environment.js +32 -64
  9. package/dist/file-helper.js +18 -0
  10. package/dist/index.js +1 -17
  11. package/dist/mcp.js +229 -0
  12. package/dist/options.js +333 -9
  13. package/dist/package-manager.js +6 -51
  14. package/dist/templates.js +6 -0
  15. package/dist/toolchain.js +6 -0
  16. package/dist/types/add-ons.d.ts +8 -3
  17. package/dist/types/add.d.ts +3 -0
  18. package/dist/types/cli.d.ts +7 -0
  19. package/dist/types/config-file.d.ts +4 -6
  20. package/dist/types/constants.d.ts +3 -0
  21. package/dist/types/create-app.d.ts +7 -1
  22. package/dist/types/custom-add-on.d.ts +3 -0
  23. package/dist/types/environment.d.ts +1 -2
  24. package/dist/types/file-helper.d.ts +2 -0
  25. package/dist/types/index.d.ts +1 -20
  26. package/dist/types/mcp.d.ts +7 -0
  27. package/dist/types/options.d.ts +6 -2
  28. package/dist/types/package-manager.d.ts +1 -18
  29. package/dist/types/templates.d.ts +1 -0
  30. package/dist/types/toolchain.d.ts +3 -0
  31. package/dist/types/types.d.ts +85 -788
  32. package/dist/types/utils.d.ts +0 -5
  33. package/dist/types.js +1 -65
  34. package/dist/utils.js +0 -9
  35. package/package.json +12 -9
  36. package/src/add-ons.ts +123 -7
  37. package/src/add.ts +186 -0
  38. package/src/cli.ts +210 -0
  39. package/src/config-file.ts +17 -26
  40. package/src/constants.ts +5 -0
  41. package/src/create-app.ts +730 -180
  42. package/src/custom-add-on.ts +325 -0
  43. package/src/environment.ts +33 -77
  44. package/src/file-helper.ts +20 -0
  45. package/src/index.ts +1 -77
  46. package/src/mcp.ts +302 -0
  47. package/src/options.ts +409 -8
  48. package/src/package-manager.ts +9 -80
  49. package/src/templates.ts +7 -0
  50. package/src/toolchain.ts +7 -0
  51. package/src/types.ts +87 -175
  52. package/src/utils.ts +0 -17
  53. package/templates/react/add-on/clerk/README.md +3 -0
  54. package/templates/react/add-on/clerk/assets/_dot_env.local.append +2 -0
  55. package/templates/react/add-on/clerk/assets/src/integrations/clerk/header-user.tsx +19 -0
  56. package/templates/react/add-on/clerk/assets/src/integrations/clerk/provider.tsx +18 -0
  57. package/templates/react/add-on/clerk/assets/src/routes/demo.clerk.tsx +20 -0
  58. package/templates/react/add-on/clerk/info.json +13 -0
  59. package/templates/react/add-on/clerk/package.json +5 -0
  60. package/templates/react/add-on/convex/README.md +4 -0
  61. package/templates/react/add-on/convex/assets/_dot_cursorrules.append +93 -0
  62. package/templates/react/add-on/convex/assets/_dot_env.local.append +3 -0
  63. package/templates/react/add-on/convex/assets/convex/products.ts +8 -0
  64. package/templates/react/add-on/convex/assets/convex/schema.ts +10 -0
  65. package/templates/react/add-on/convex/assets/src/integrations/convex/provider.tsx +20 -0
  66. package/templates/react/add-on/convex/assets/src/routes/demo.convex.tsx +33 -0
  67. package/templates/react/add-on/convex/info.json +13 -0
  68. package/templates/react/add-on/convex/package.json +6 -0
  69. package/templates/react/add-on/form/assets/src/components/demo.FormComponents.tsx.ejs +300 -0
  70. package/templates/react/add-on/form/assets/src/hooks/demo.form-context.ts +4 -0
  71. package/templates/react/add-on/form/assets/src/hooks/demo.form.ts +22 -0
  72. package/templates/react/add-on/form/assets/src/routes/demo.form.address.tsx.ejs +213 -0
  73. package/templates/react/add-on/form/assets/src/routes/demo.form.simple.tsx.ejs +77 -0
  74. package/templates/react/add-on/form/info.json +26 -0
  75. package/templates/react/add-on/form/package.json +6 -0
  76. package/templates/react/add-on/module-federation/assets/module-federation.config.js.ejs +31 -0
  77. package/templates/react/add-on/module-federation/assets/src/demo-mf-component.tsx +3 -0
  78. package/templates/react/add-on/module-federation/assets/src/demo-mf-self-contained.tsx +11 -0
  79. package/templates/react/add-on/module-federation/info.json +7 -0
  80. package/templates/react/add-on/module-federation/package.json +5 -0
  81. package/templates/react/add-on/netlify/README.md +11 -0
  82. package/templates/react/add-on/netlify/info.json +7 -0
  83. package/templates/react/add-on/sentry/assets/_dot_cursorrules.append +22 -0
  84. package/templates/react/add-on/sentry/assets/_dot_env.local.append +11 -0
  85. package/templates/react/add-on/sentry/assets/src/app/global-middleware.ts +11 -0
  86. package/templates/react/add-on/sentry/assets/src/routes/demo.sentry.testing.tsx +489 -0
  87. package/templates/react/add-on/sentry/info.json +14 -0
  88. package/templates/react/add-on/sentry/package.json +5 -0
  89. package/templates/react/add-on/shadcn/README.md +7 -0
  90. package/templates/react/add-on/shadcn/assets/_dot_cursorrules.append +7 -0
  91. package/templates/react/add-on/shadcn/assets/components.json +21 -0
  92. package/templates/react/add-on/shadcn/assets/src/lib/utils.ts +6 -0
  93. package/templates/react/add-on/shadcn/assets/src/styles.css +138 -0
  94. package/templates/react/add-on/shadcn/info.json +7 -0
  95. package/templates/react/add-on/shadcn/package.json +9 -0
  96. package/templates/react/add-on/start/assets/_dot_gitignore.append +2 -0
  97. package/templates/react/add-on/start/assets/app.config.ts.ejs +32 -0
  98. package/templates/react/add-on/start/assets/src/api.ts +6 -0
  99. package/templates/react/add-on/start/assets/src/client.tsx.ejs +33 -0
  100. package/templates/react/add-on/start/assets/src/router.tsx.ejs +48 -0
  101. package/templates/react/add-on/start/assets/src/routes/api.demo-names.ts +11 -0
  102. package/templates/react/add-on/start/assets/src/routes/demo.start.api-request.tsx.ejs +33 -0
  103. package/templates/react/add-on/start/assets/src/routes/demo.start.server-funcs.tsx +50 -0
  104. package/templates/react/add-on/start/assets/src/ssr.tsx.ejs +30 -0
  105. package/templates/react/add-on/start/info.json +18 -0
  106. package/templates/react/add-on/start/package.json +13 -0
  107. package/templates/react/add-on/store/assets/src/lib/demo-store.ts +13 -0
  108. package/templates/react/add-on/store/assets/src/routes/demo.store.tsx.ejs +75 -0
  109. package/templates/react/add-on/store/info.json +13 -0
  110. package/templates/react/add-on/store/package.json +6 -0
  111. package/templates/react/add-on/t3env/README.md +16 -0
  112. package/templates/react/add-on/t3env/assets/src/env.ts +39 -0
  113. package/templates/react/add-on/t3env/info.json +10 -0
  114. package/templates/react/add-on/t3env/package.json +6 -0
  115. package/templates/react/add-on/tRPC/assets/src/integrations/trpc/init.ts +9 -0
  116. package/templates/react/add-on/tRPC/assets/src/integrations/trpc/react.ts +4 -0
  117. package/templates/react/add-on/tRPC/assets/src/integrations/trpc/router.ts +18 -0
  118. package/templates/react/add-on/tRPC/assets/src/routes/api.trpc.$.tsx +16 -0
  119. package/templates/react/add-on/tRPC/info.json +9 -0
  120. package/templates/react/add-on/tRPC/package.json +9 -0
  121. package/templates/react/add-on/table/assets/src/data/demo-table-data.ts +50 -0
  122. package/templates/react/add-on/table/assets/src/routes/demo.table.tsx.ejs +373 -0
  123. package/templates/react/add-on/table/info.json +13 -0
  124. package/templates/react/add-on/table/package.json +7 -0
  125. package/templates/react/add-on/tanstack-query/assets/src/integrations/tanstack-query/layout.tsx +5 -0
  126. package/templates/react/add-on/tanstack-query/assets/src/integrations/tanstack-query/root-provider.tsx.ejs +70 -0
  127. package/templates/react/add-on/tanstack-query/assets/src/routes/demo.tanstack-query.tsx.ejs +53 -0
  128. package/templates/react/add-on/tanstack-query/info.json +13 -0
  129. package/templates/react/add-on/tanstack-query/package.json +6 -0
  130. package/templates/react/base/README.md.ejs +558 -0
  131. package/templates/react/base/_dot_gitignore +5 -0
  132. package/templates/react/base/_dot_vscode/settings.biome.json +35 -0
  133. package/templates/react/base/_dot_vscode/settings.json +11 -0
  134. package/templates/react/base/index.html.ejs +20 -0
  135. package/templates/react/base/package.biome.json +10 -0
  136. package/templates/react/base/package.eslintprettier.json +11 -0
  137. package/templates/react/base/package.json +30 -0
  138. package/templates/react/base/package.ts.json +7 -0
  139. package/templates/react/base/package.tw.json +6 -0
  140. package/templates/react/base/public/favicon.ico +0 -0
  141. package/templates/react/base/public/logo192.png +0 -0
  142. package/templates/react/base/public/logo512.png +0 -0
  143. package/templates/react/base/public/manifest.json +25 -0
  144. package/templates/react/base/public/robots.txt +3 -0
  145. package/templates/react/base/src/App.css +38 -0
  146. package/templates/react/base/src/App.test.tsx.ejs +10 -0
  147. package/templates/react/base/src/App.tsx.ejs +74 -0
  148. package/templates/react/base/src/components/Header.tsx.ejs +27 -0
  149. package/templates/react/base/src/logo.svg +44 -0
  150. package/templates/react/base/src/reportWebVitals.ts.ejs +28 -0
  151. package/templates/react/base/src/styles.css.ejs +15 -0
  152. package/templates/react/base/toolchain/.prettierignore +3 -0
  153. package/templates/react/base/toolchain/biome.json +31 -0
  154. package/templates/react/base/toolchain/eslint.config.js +5 -0
  155. package/templates/react/base/toolchain/prettier.config.js +10 -0
  156. package/templates/react/base/tsconfig.json.ejs +29 -0
  157. package/templates/react/base/vite.config.js.ejs +23 -0
  158. package/templates/react/code-router/src/main.tsx.ejs +92 -0
  159. package/templates/react/example/tanchat/README.md +37 -0
  160. package/templates/react/example/tanchat/assets/_dot_env.local.append +2 -0
  161. package/templates/react/example/tanchat/assets/public/example-guitar-flowers.jpg +0 -0
  162. package/templates/react/example/tanchat/assets/public/example-guitar-motherboard.jpg +0 -0
  163. package/templates/react/example/tanchat/assets/public/example-guitar-racing.jpg +0 -0
  164. package/templates/react/example/tanchat/assets/public/example-guitar-steamer-trunk.jpg +0 -0
  165. package/templates/react/example/tanchat/assets/public/example-guitar-superhero.jpg +0 -0
  166. package/templates/react/example/tanchat/assets/public/example-guitar-traveling.jpg +0 -0
  167. package/templates/react/example/tanchat/assets/public/example-guitar-video-games.jpg +0 -0
  168. package/templates/react/example/tanchat/assets/src/components/example-AIAssistant.tsx +173 -0
  169. package/templates/react/example/tanchat/assets/src/components/example-GuitarRecommendation.tsx +47 -0
  170. package/templates/react/example/tanchat/assets/src/data/example-guitars.ts +83 -0
  171. package/templates/react/example/tanchat/assets/src/demo.index.css +220 -0
  172. package/templates/react/example/tanchat/assets/src/integrations/tanchat/header-user.tsx +5 -0
  173. package/templates/react/example/tanchat/assets/src/routes/api.messages.ts +24 -0
  174. package/templates/react/example/tanchat/assets/src/routes/api.sse.ts +23 -0
  175. package/templates/react/example/tanchat/assets/src/routes/example.chat.tsx +159 -0
  176. package/templates/react/example/tanchat/assets/src/routes/example.guitars/$guitarId.tsx +50 -0
  177. package/templates/react/example/tanchat/assets/src/routes/example.guitars/index.tsx +54 -0
  178. package/templates/react/example/tanchat/assets/src/store/example-assistant.ts +3 -0
  179. package/templates/react/example/tanchat/assets/src/utils/demo.ai.ts +62 -0
  180. package/templates/react/example/tanchat/assets/src/utils/demo.sse.ts +31 -0
  181. package/templates/react/example/tanchat/assets/src/utils/demo.tools.ts +47 -0
  182. package/templates/react/example/tanchat/info.json +19 -0
  183. package/templates/react/example/tanchat/package.json +16 -0
  184. package/templates/react/file-router/package.fr.json +5 -0
  185. package/templates/react/file-router/src/main.tsx.ejs +55 -0
  186. package/templates/react/file-router/src/routes/__root.tsx.ejs +82 -0
  187. package/templates/solid/add-on/form/assets/src/routes/demo.form.tsx.ejs +352 -0
  188. package/templates/solid/add-on/form/info.json +13 -0
  189. package/templates/solid/add-on/form/package.json +5 -0
  190. package/templates/solid/add-on/module-federation/assets/module-federation.config.js.ejs +27 -0
  191. package/templates/solid/add-on/module-federation/assets/src/demo-mf-component.tsx +3 -0
  192. package/templates/solid/add-on/module-federation/assets/src/demo-mf-self-contained.tsx +9 -0
  193. package/templates/solid/add-on/module-federation/info.json +7 -0
  194. package/templates/solid/add-on/module-federation/package.json +5 -0
  195. package/templates/solid/add-on/sentry/assets/_dot_cursorrules.append +22 -0
  196. package/templates/solid/add-on/sentry/assets/_dot_env.local.append +2 -0
  197. package/templates/solid/add-on/sentry/assets/src/routes/demo.sentry.bad-event-handler.tsx +20 -0
  198. package/templates/solid/add-on/sentry/info.json +13 -0
  199. package/templates/solid/add-on/sentry/package.json +5 -0
  200. package/templates/solid/add-on/solid-ui/README.md +9 -0
  201. package/templates/solid/add-on/solid-ui/assets/src/lib/utils.ts +6 -0
  202. package/templates/solid/add-on/solid-ui/assets/src/styles.css +138 -0
  203. package/templates/solid/add-on/solid-ui/assets/ui.config.json +13 -0
  204. package/templates/solid/add-on/solid-ui/info.json +11 -0
  205. package/templates/solid/add-on/solid-ui/package.json +9 -0
  206. package/templates/solid/add-on/start/assets/app.config.ts +16 -0
  207. package/templates/solid/add-on/start/assets/src/api.ts +6 -0
  208. package/templates/solid/add-on/start/assets/src/client.tsx +7 -0
  209. package/templates/solid/add-on/start/assets/src/router.tsx.ejs +24 -0
  210. package/templates/solid/add-on/start/assets/src/routes/demo.start.server-funcs.tsx +49 -0
  211. package/templates/solid/add-on/start/assets/src/ssr.tsx +12 -0
  212. package/templates/solid/add-on/start/info.json +14 -0
  213. package/templates/solid/add-on/start/package.json +12 -0
  214. package/templates/solid/add-on/store/assets/src/lib/demo-store.ts +13 -0
  215. package/templates/solid/add-on/store/assets/src/routes/demo.store.tsx.ejs +77 -0
  216. package/templates/solid/add-on/store/info.json +13 -0
  217. package/templates/solid/add-on/store/package.json +6 -0
  218. package/templates/solid/add-on/t3env/README.md +16 -0
  219. package/templates/solid/add-on/t3env/assets/src/env.ts +39 -0
  220. package/templates/solid/add-on/t3env/info.json +10 -0
  221. package/templates/solid/add-on/t3env/package.json +6 -0
  222. package/templates/solid/add-on/tanstack-query/assets/src/integrations/tanstack-query/header-user.tsx +5 -0
  223. package/templates/solid/add-on/tanstack-query/assets/src/integrations/tanstack-query/provider.tsx +15 -0
  224. package/templates/solid/add-on/tanstack-query/assets/src/routes/demo.tanstack-query.tsx +30 -0
  225. package/templates/solid/add-on/tanstack-query/info.json +13 -0
  226. package/templates/solid/add-on/tanstack-query/package.json +6 -0
  227. package/templates/solid/base/README.md.ejs +215 -0
  228. package/templates/solid/base/_dot_cursorrules.append +35 -0
  229. package/templates/solid/base/_dot_gitignore +5 -0
  230. package/templates/solid/base/_dot_vscode/settings.biome.json +35 -0
  231. package/templates/solid/base/_dot_vscode/settings.json +11 -0
  232. package/templates/solid/base/index.html.ejs +20 -0
  233. package/templates/solid/base/package.biome.json +10 -0
  234. package/templates/solid/base/package.eslintprettier.json +11 -0
  235. package/templates/solid/base/package.json +23 -0
  236. package/templates/solid/base/package.ts.json +5 -0
  237. package/templates/solid/base/package.tw.json +6 -0
  238. package/templates/solid/base/public/favicon.ico +0 -0
  239. package/templates/solid/base/public/logo192.png +0 -0
  240. package/templates/solid/base/public/logo512.png +0 -0
  241. package/templates/solid/base/public/manifest.json +25 -0
  242. package/templates/solid/base/public/robots.txt +3 -0
  243. package/templates/solid/base/src/App.css +0 -0
  244. package/templates/solid/base/src/App.tsx.ejs +47 -0
  245. package/templates/solid/base/src/components/Header.tsx.ejs +26 -0
  246. package/templates/solid/base/src/logo.svg +120 -0
  247. package/templates/solid/base/src/styles.css.ejs +15 -0
  248. package/templates/solid/base/toolchain/.prettierignore +3 -0
  249. package/templates/solid/base/toolchain/biome.json +31 -0
  250. package/templates/solid/base/toolchain/eslint.config.js +5 -0
  251. package/templates/solid/base/toolchain/prettier.config.js +10 -0
  252. package/templates/solid/base/tsconfig.json.ejs +31 -0
  253. package/templates/solid/base/vite.config.js.ejs +22 -0
  254. package/templates/solid/code-router/src/main.tsx.ejs +71 -0
  255. package/templates/solid/example/tanchat/README.md +52 -0
  256. package/templates/solid/example/tanchat/assets/ai-streaming-server/README.md +110 -0
  257. package/templates/solid/example/tanchat/assets/ai-streaming-server/_dot_env.example +1 -0
  258. package/templates/solid/example/tanchat/assets/ai-streaming-server/package.json +26 -0
  259. package/templates/solid/example/tanchat/assets/ai-streaming-server/src/index.ts +102 -0
  260. package/templates/solid/example/tanchat/assets/ai-streaming-server/tsconfig.json +15 -0
  261. package/templates/solid/example/tanchat/assets/src/components/demo.SettingsDialog.tsx +149 -0
  262. package/templates/solid/example/tanchat/assets/src/demo.index.css +227 -0
  263. package/templates/solid/example/tanchat/assets/src/lib/demo-store.ts +13 -0
  264. package/templates/solid/example/tanchat/assets/src/routes/example.chat.tsx +435 -0
  265. package/templates/solid/example/tanchat/assets/src/store/demo.hooks.ts +17 -0
  266. package/templates/solid/example/tanchat/assets/src/store/demo.store.ts +133 -0
  267. package/templates/solid/example/tanchat/info.json +14 -0
  268. package/templates/solid/example/tanchat/package.json +7 -0
  269. package/templates/solid/file-router/package.fr.json +5 -0
  270. package/templates/solid/file-router/src/main.tsx.ejs +47 -0
  271. package/templates/solid/file-router/src/routes/__root.tsx.ejs +41 -0
  272. package/templates/solid/file-router/src/routes/index.tsx +43 -0
  273. package/tests/cra.test.ts +293 -0
  274. package/tests/snapshots/cra/cr-js-npm.json +33 -0
  275. package/tests/snapshots/cra/cr-ts-npm.json +34 -0
  276. package/tests/snapshots/cra/cr-ts-start-npm.json +38 -0
  277. package/tests/snapshots/cra/fr-ts-npm.json +34 -0
  278. package/tests/snapshots/cra/fr-ts-tw-npm.json +33 -0
  279. package/tests/snapshots/cra/solid-cr-js-npm.json +31 -0
  280. package/tests/snapshots/cra/solid-cr-ts-npm.json +32 -0
  281. package/tests/snapshots/cra/solid-cr-ts-start-npm.json +36 -0
  282. package/tests/snapshots/cra/solid-fr-ts-npm.json +33 -0
  283. package/tests/snapshots/cra/solid-fr-ts-tw-npm.json +32 -0
  284. package/tests/test-utilities.ts +87 -0
  285. package/dist/add-to-app.js +0 -169
  286. package/dist/custom-add-ons/add-on.js +0 -175
  287. package/dist/custom-add-ons/shared.js +0 -117
  288. package/dist/custom-add-ons/starter.js +0 -84
  289. package/dist/file-helpers.js +0 -165
  290. package/dist/frameworks.js +0 -92
  291. package/dist/integrations/git.js +0 -4
  292. package/dist/integrations/shadcn.js +0 -33
  293. package/dist/package-json.js +0 -48
  294. package/dist/special-steps/index.js +0 -24
  295. package/dist/special-steps/rimraf-node-modules.js +0 -16
  296. package/dist/template-file.js +0 -112
  297. package/dist/types/add-to-app.d.ts +0 -17
  298. package/dist/types/custom-add-ons/add-on.d.ts +0 -69
  299. package/dist/types/custom-add-ons/shared.d.ts +0 -15
  300. package/dist/types/custom-add-ons/starter.d.ts +0 -7
  301. package/dist/types/file-helpers.d.ts +0 -15
  302. package/dist/types/frameworks.d.ts +0 -7
  303. package/dist/types/integrations/git.d.ts +0 -2
  304. package/dist/types/integrations/shadcn.d.ts +0 -2
  305. package/dist/types/package-json.d.ts +0 -7
  306. package/dist/types/special-steps/index.d.ts +0 -2
  307. package/dist/types/special-steps/rimraf-node-modules.d.ts +0 -2
  308. package/dist/types/template-file.d.ts +0 -2
  309. package/src/add-to-app.ts +0 -274
  310. package/src/custom-add-ons/add-on.ts +0 -261
  311. package/src/custom-add-ons/shared.ts +0 -161
  312. package/src/custom-add-ons/starter.ts +0 -126
  313. package/src/file-helpers.ts +0 -235
  314. package/src/frameworks.ts +0 -134
  315. package/src/integrations/git.ts +0 -7
  316. package/src/integrations/shadcn.ts +0 -54
  317. package/src/package-json.ts +0 -69
  318. package/src/special-steps/index.ts +0 -36
  319. package/src/special-steps/rimraf-node-modules.ts +0 -25
  320. package/src/template-file.ts +0 -150
  321. package/tests/add-ons.test.ts +0 -67
  322. package/tests/add-to-app.test.ts +0 -358
  323. package/tests/config-file.test.ts +0 -68
  324. package/tests/create-app.test.ts +0 -120
  325. package/tests/custom-add-ons/add-on.test.ts +0 -12
  326. package/tests/custom-add-ons/shared.test.ts +0 -257
  327. package/tests/custom-add-ons/starter.test.ts +0 -58
  328. package/tests/environment.test.ts +0 -115
  329. package/tests/file-helper.test.ts +0 -90
  330. package/tests/frameworks.test.ts +0 -95
  331. package/tests/index.test.ts +0 -9
  332. package/tests/integrations/git.test.ts +0 -20
  333. package/tests/integrations/shadcn.test.ts +0 -91
  334. package/tests/options.test.ts +0 -42
  335. package/tests/package-json.test.ts +0 -63
  336. package/tests/package-manager.test.ts +0 -154
  337. package/tests/setupVitest.ts +0 -6
  338. package/tests/template-file.test.ts +0 -178
  339. package/tests/utils.test.ts +0 -23
  340. package/vitest.config.ts +0 -21
@@ -0,0 +1,35 @@
1
+ // Solid.js with Tailwind CSS .cursorrules
2
+
3
+ // Prefer functional components
4
+
5
+ const preferFunctionalComponents = true;
6
+
7
+ // Solid.js and Tailwind CSS best practices
8
+
9
+ const solidjsTailwindBestPractices = [
10
+ "Use createSignal() for reactive state",
11
+ "Implement Tailwind CSS classes for styling",
12
+ "Utilize TypeScript's strict mode",
13
+ "Utilize @apply directive in CSS files for reusable styles",
14
+ "Implement responsive design using Tailwind's responsive classes",
15
+ "Use Tailwind's CSS in /src/styles.css for global styles",
16
+ "Implement dark mode using Tailwind's dark variant",
17
+ ];
18
+
19
+ // Additional instructions
20
+
21
+ const additionalInstructions = `
22
+
23
+ 1. Use .tsx extension for files with JSX
24
+ 2. Implement strict TypeScript checks
25
+ 3. Implement proper Tailwind CSS purging for production builds
26
+ 4. Utilize TanStack Router for routing when applicable
27
+ 5. Use type-safe context with createContext
28
+ 6. Implement proper typing for event handlers
29
+ 7. Follow TypeScript best practices and naming conventions
30
+ 8. Use type assertions sparingly and only when necessary
31
+ 9. Use Tailwind's @layer directive for custom styles
32
+ 10. Implement utility-first CSS approach
33
+ 11. Follow both Solid.js and Tailwind naming conventions
34
+ 12. Use JIT (Just-In-Time) mode for faster development
35
+ `;
@@ -0,0 +1,5 @@
1
+ node_modules
2
+ .DS_Store
3
+ dist
4
+ dist-ssr
5
+ *.local
@@ -0,0 +1,35 @@
1
+ {
2
+ "files.watcherExclude": {
3
+ "**/routeTree.gen.ts": true
4
+ },
5
+ "search.exclude": {
6
+ "**/routeTree.gen.ts": true
7
+ },
8
+ "files.readonlyInclude": {
9
+ "**/routeTree.gen.ts": true
10
+ },
11
+ "[javascript]": {
12
+ "editor.defaultFormatter": "biomejs.biome"
13
+ },
14
+ "[javascriptreact]": {
15
+ "editor.defaultFormatter": "biomejs.biome"
16
+ },
17
+ "[typescript]": {
18
+ "editor.defaultFormatter": "biomejs.biome"
19
+ },
20
+ "[typescriptreact]": {
21
+ "editor.defaultFormatter": "biomejs.biome"
22
+ },
23
+ "[json]": {
24
+ "editor.defaultFormatter": "biomejs.biome"
25
+ },
26
+ "[jsonc]": {
27
+ "editor.defaultFormatter": "biomejs.biome"
28
+ },
29
+ "[css]": {
30
+ "editor.defaultFormatter": "biomejs.biome"
31
+ },
32
+ "editor.codeActionsOnSave": {
33
+ "source.organizeImports.biome": "explicit"
34
+ }
35
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "files.watcherExclude": {
3
+ "**/routeTree.gen.ts": true
4
+ },
5
+ "search.exclude": {
6
+ "**/routeTree.gen.ts": true
7
+ },
8
+ "files.readonlyInclude": {
9
+ "**/routeTree.gen.ts": true
10
+ }
11
+ }
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <link rel="icon" href="/favicon.ico" />
7
+ <meta name="theme-color" content="#000000" />
8
+ <meta
9
+ name="description"
10
+ content="Web site created using create-tsrouter-app"
11
+ />
12
+ <link rel="apple-touch-icon" href="/logo192.png" />
13
+ <link rel="manifest" href="/manifest.json" />
14
+ <title>Create TanStack App - app-ts</title>
15
+ </head>
16
+ <body>
17
+ <div id="app"></div>
18
+ <script type="module" src="/src/main.tsx"></script>
19
+ </body>
20
+ </html>
@@ -0,0 +1,10 @@
1
+ {
2
+ "scripts": {
3
+ "format": "biome format",
4
+ "lint": "biome lint",
5
+ "check": "biome check"
6
+ },
7
+ "devDependencies": {
8
+ "@biomejs/biome": "1.9.4"
9
+ }
10
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "scripts": {
3
+ "lint": "eslint",
4
+ "format": "prettier",
5
+ "check": "prettier --write . && eslint --fix"
6
+ },
7
+ "devDependencies": {
8
+ "@tanstack/eslint-config": "^0.1.0",
9
+ "prettier": "^3.5.3"
10
+ }
11
+ }
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "app-ts",
3
+ "private": true,
4
+ "type": "module",
5
+ "scripts": {
6
+ "dev": "vite --port 3000",
7
+ "start": "vite --port 3000",
8
+ "build": "vite build && tsc",
9
+ "serve": "vite preview",
10
+ "test": "vitest run"
11
+ },
12
+ "dependencies": {
13
+ "@tanstack/solid-router": "^1.110.0",
14
+ "@tanstack/solid-router-devtools": "^1.109.2",
15
+ "@tanstack/router-plugin": "^1.109.2",
16
+ "solid-js": "^1.9.4"
17
+ },
18
+ "devDependencies": {
19
+ "vite-plugin-solid": "^2.11.2",
20
+ "typescript": "^5.7.2",
21
+ "vite": "^6.0.11"
22
+ }
23
+ }
@@ -0,0 +1,5 @@
1
+ {
2
+ "devDependencies": {
3
+ "typescript": "^5.7.2"
4
+ }
5
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "dependencies": {
3
+ "@tailwindcss/vite": "^4.0.6",
4
+ "tailwindcss": "^4.0.6"
5
+ }
6
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "short_name": "TanStack App",
3
+ "name": "Create TanStack App Sample",
4
+ "icons": [
5
+ {
6
+ "src": "favicon.ico",
7
+ "sizes": "64x64 32x32 24x24 16x16",
8
+ "type": "image/x-icon"
9
+ },
10
+ {
11
+ "src": "logo192.png",
12
+ "type": "image/png",
13
+ "sizes": "192x192"
14
+ },
15
+ {
16
+ "src": "logo512.png",
17
+ "type": "image/png",
18
+ "sizes": "512x512"
19
+ }
20
+ ],
21
+ "start_url": ".",
22
+ "display": "standalone",
23
+ "theme_color": "#000000",
24
+ "background_color": "#ffffff"
25
+ }
@@ -0,0 +1,3 @@
1
+ # https://www.robotstxt.org/robotstxt.html
2
+ User-agent: *
3
+ Disallow:
File without changes
@@ -0,0 +1,47 @@
1
+ <% if (fileRouter) { %>
2
+ import { createFileRoute } from "@tanstack/solid-router";
3
+ import logo from "../logo.svg";
4
+ <% } else { %>
5
+ import logo from "./logo.svg";
6
+ <% } %>
7
+
8
+
9
+ <% if (fileRouter) { %>
10
+ export const Route = createFileRoute("/")({
11
+ component: App,
12
+ });<% } %>
13
+
14
+ function App() {
15
+ return (
16
+ <main class="min-h-screen flex flex-col items-center justify-center bg-[#282c34] text-white text-[calc(10px+2vmin)] text-center">
17
+ <img
18
+ src={logo}
19
+ class="h-[40vmin] pointer-events-none animate-[spin_20s_linear_infinite]"
20
+ alt="logo"
21
+ />
22
+ <p>
23
+ Edit <code><% if (fileRouter) { %>src/routes/index.tsx<% } else {%>src/App.<%= jsx %><% } %></code> and save to reload.
24
+ </p>
25
+ <a
26
+ class="text-[#61dafb] hover:underline"
27
+ href="https://solidjs.com"
28
+ target="_blank"
29
+ rel="noopener noreferrer"
30
+ >
31
+ Learn Solid
32
+ </a>
33
+ <a
34
+ class="text-[#61dafb] hover:underline"
35
+ href="https://tanstack.com"
36
+ target="_blank"
37
+ rel="noopener noreferrer"
38
+ >
39
+ Learn TanStack
40
+ </a>
41
+ </main>
42
+ );
43
+ }
44
+
45
+ <% if (!fileRouter) { %>
46
+ export default App;
47
+ <% } %>
@@ -0,0 +1,26 @@
1
+ import { Link } from '@tanstack/solid-router'
2
+ <% for(const integration of integrations.filter(i => i.type === 'header-user')) { %>
3
+ import <%= integration.name %> from "../<%= integration.path %>";
4
+ <% } %>
5
+
6
+ export default function Header() {
7
+ return (
8
+ <header class="p-2 flex gap-2 bg-white text-black justify-between">
9
+ <nav class="flex flex-row">
10
+ <div class="px-2 font-bold">
11
+ <Link to="/">Home</Link>
12
+ </div>
13
+ <% for(const addOn of addOns) {
14
+ for(const route of addOn?.routes || []) { %>
15
+ <div class="px-2 font-bold"><Link to="<%= route.url %>"><%= route.name %></Link></div>
16
+ <% } } %>
17
+ </nav>
18
+
19
+ <div>
20
+ <% for(const integration of integrations.filter(i => i.type === 'header-user')) { %>
21
+ <<%= integration.name %> />
22
+ <% } %>
23
+ </div>
24
+ </header>
25
+ )
26
+ }
@@ -0,0 +1,120 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="0 0 166 155.3">
3
+ <!-- Generator: Adobe Illustrator 29.3.1, SVG Export Plug-In . SVG Version: 2.1.0 Build 151) -->
4
+ <defs>
5
+ <style>
6
+ .st0 {
7
+ fill: url(#linear-gradient2);
8
+ }
9
+
10
+ .st1 {
11
+ fill: url(#linear-gradient3);
12
+ }
13
+
14
+ .st2 {
15
+ fill: #9ae7fc;
16
+ }
17
+
18
+ .st3 {
19
+ fill: #518ac8;
20
+ }
21
+
22
+ .st4 {
23
+ fill: #76b3e1;
24
+ }
25
+
26
+ .st5 {
27
+ fill: url(#linear-gradient);
28
+ }
29
+
30
+ .st5, .st6 {
31
+ isolation: isolate;
32
+ opacity: .3;
33
+ }
34
+
35
+ .st7 {
36
+ fill: #61dafb;
37
+ }
38
+
39
+ .st6 {
40
+ fill: url(#linear-gradient1);
41
+ }
42
+ </style>
43
+ <linearGradient id="linear-gradient" x1="27.4" y1="154.8" x2="151.9" y2="94.3" gradientTransform="translate(0 158) scale(1 -1)" gradientUnits="userSpaceOnUse">
44
+ <stop offset="0" stop-color="#76b3e1"/>
45
+ <stop offset=".3" stop-color="#dcf2fd"/>
46
+ <stop offset="1" stop-color="#76b3e1"/>
47
+ </linearGradient>
48
+ <linearGradient id="linear-gradient1" x1="95.9" y1="125.4" x2="74.1" y2="52.8" gradientTransform="translate(0 158) scale(1 -1)" gradientUnits="userSpaceOnUse">
49
+ <stop offset="0" stop-color="#76b3e1"/>
50
+ <stop offset=".5" stop-color="#4377bb"/>
51
+ <stop offset="1" stop-color="#1f3b77"/>
52
+ </linearGradient>
53
+ <linearGradient id="linear-gradient2" x1="18.3" y1="93.7" x2="144.2" y2="8.1" gradientTransform="translate(0 158) scale(1 -1)" gradientUnits="userSpaceOnUse">
54
+ <stop offset="0" stop-color="#315aa9"/>
55
+ <stop offset=".5" stop-color="#518ac8"/>
56
+ <stop offset="1" stop-color="#315aa9"/>
57
+ </linearGradient>
58
+ <linearGradient id="linear-gradient3" x1="75.3" y1="83.5" x2="24.5" y2="-102.8" gradientTransform="translate(0 158) scale(1 -1)" gradientUnits="userSpaceOnUse">
59
+ <stop offset="0" stop-color="#4377bb"/>
60
+ <stop offset=".5" stop-color="#1a336b"/>
61
+ <stop offset="1" stop-color="#1a336b"/>
62
+ </linearGradient>
63
+ </defs>
64
+ <g id="Layer_1">
65
+ <path class="st4" d="M163,35S110-4,69,5l-3,1c-6,2-11,5-14,9l-2,3-15,26,26,5c11,7,25,10,38,7l46,9,18-30Z"/>
66
+ <path class="st5" d="M163,35S110-4,69,5l-3,1c-6,2-11,5-14,9l-2,3-15,26,26,5c11,7,25,10,38,7l46,9,18-30Z"/>
67
+ <path class="st3" d="M52,35l-4,1c-17,5-22,21-13,35,10,13,31,20,48,15l62-21s-53-39-93-30Z"/>
68
+ <path class="st6" d="M52,35l-4,1c-17,5-22,21-13,35,10,13,31,20,48,15l62-21s-53-39-93-30Z"/>
69
+ <path class="st0" d="M134,80c-11.5-14.3-30.4-20.2-48-15l-62,20L4,120l112,19,20-36c4-7,3-15-2-23Z"/>
70
+ <path class="st1" d="M114,115c-11.5-14.3-30.4-20.2-48-15L4,120s53,40,94,30l3-1c17-5,23-21,13-34Z"/>
71
+ </g>
72
+ <g id="Layer_2">
73
+ <circle class="st2" cx="92.8" cy="127.3" r="7.6"/>
74
+ <path class="st7" d="M100.8,127.3c0,4.4-3.6,8-8,8s-8-3.6-8-8,3.6-8,8-8,8,3.6,8,8ZM86.6,127.1v-1.1c0-.2.2-.9.3-1.1.2-.3.5-.6.8-.8l-.6-.6c.7-.6,1.7-.7,2.4-.1.3-.8,1.2-1.3,2.1-1.2v.7c.9,0,2.2.7,2.2,1.9s0,0-.1.1c-.3,0-.6,0-.9-.1s-.2,0-.2,0,.4.7.5,1,.2.6.1.9c-1-.1-1.9-.6-2.6-1.2,0,.5.7,3.8.9,3.9s.1-.1.2-.2.2-1.1.2-1.2c0-.2-.3-.3-.4-.5-.2-.5.2-.8.7-.6s.9,1.1,1.3,1.3,2.3.2,2.6.6-.5.8-.3,1.3c1.2-.5,2.4-.6,3.6-.4.5-1.7.5-3.6-.2-5.3-1.3,0-2.6-.6-3-1.9-.4-1.3-.1-1.5-.2-1.6-.1-.2-1.1.1-1.3-.3s0-.2,0-.2-.3-.1-.5-.1c-4.6-1.1-9.1,2.8-8.8,7.4,0,.3.3,1.8.4,2s.8,0,1.1,0,.7,0,.9,0c.5,0,1.3.4,1.7.4s.4-.1.5-.4c0-.5,0-1.3,0-1.8s-.2-1.4-.2-2.1c-.2,0-.1,0-.2,0-.1.2-.2.6-.3.8s-.9,1.5-1,1.6-.1,0-.1-.1c-.3-.6-.4-1.4-.3-2.1-.2-.2-1,.9-1.2.9h-.1c0-.1,0-.1,0-.1h0ZM98.9,123.7c.2-.2-1.1-1.6-1.3-1.8-.5-.5-1-.8-.6.2s1,1.4,1.9,1.5h0ZM91,122.6c0,0-1.1.5-1,.8.3-.2,1-.3,1-.8ZM89.2,123.7c0-.4-1.1-.5-1.3-.2s.3.2.3.2c.3,0,.6-.1.9,0h0ZM91.1,123.8c.7.2,1.2.6,1.9.7s0-.5-.2-.7c-.4-.3-.9-.4-1.4-.4s-.3,0-.2,0c.5.1,1.3.1,1.5.7-.4,0-.7-.3-1.1-.4s-.4,0-.5,0h0ZM92.7,126.1c-.1-.9-1-1.9-1.9-2.1s-.2,0-.1,0,.8.6,1,.7.8.7.4.7-1.5-1.4-1.7-1.2c0,.2.2.3.3.5.5.7,1.2,1.2,2.1,1.3h0ZM88.3,124.3c-.9.2-1.2,1.1-1.2,1.9.1.1.9-.7,1-.8s.5-.8.2-.7-.5.8-.7.8,0-.4,0-.4c.2-.3.5-.5.7-.8h0ZM89.2,124.6c0,0-.4.2-.4.3-.5.7-.5,1.8-.3,2.6.1,0,.1,0,.2-.1.5-.7,1-1.9.8-2.7-.4.5-.5,1.3-.6,1.9h-.2c0-.7.3-1.4.5-2h0ZM93.8,128.9c0-.3-.3-.2-.4-.3s-.2-.3-.5-.2c.2.4.5.6,1,.6h0ZM92.1,129.4c1.3.1,1-.3.2-1-.2,0-.3.8-.2,1ZM95.6,129.6c-.6,0-1.4-.4-2-.4s-.2,0-.3.1c.7.2,1.5.3,2.1.7l.2-.4h0ZM92.7,130.1c-1.3,0-2.7.7-3.6,1.6s-.8.9-.8,1.1c0,.3,1.5,1.1,1.9,1.2,2.1.8,4.9.6,6.8-.7s.5-.5,0-1.1c-1-1.2-2.6-2-4.1-2h0ZM88.9,130.8c-.2-.2-.9-.3-1.2-.4s-.9,0-1.2.1l2.5.2h0ZM99.2,130.5h-1.3c-.2,0-.9.2-1.1.3s-.1.1,0,0c.4,0,.9-.2,1.3-.2s.6,0,.9,0,.2,0,.1-.1h0Z"/>
75
+ <path class="st2" d="M86.6,127.1h.1c.2,0,1-1,1.2-.9,0,.7,0,1.5.3,2.1s0,.2.1.1.9-1.4,1-1.6.2-.6.3-.8,0-.1.2,0c0,.7.2,1.4.2,2.1s0,1.3,0,1.8-.2.4-.5.4-1.2-.4-1.7-.4-.7,0-.9,0-1,.2-1.1,0-.4-1.7-.4-2c-.3-4.7,4.2-8.6,8.8-7.4,4.6,1.1.4,0,.5.1s0,.2,0,.2c.2.4,1.2,0,1.3.3s0,1.2.2,1.6c.4,1.3,1.8,1.9,3,1.9.7,1.7.7,3.6.2,5.3-1.3-.1-2.5,0-3.6.4-.2-.5.7-.9.3-1.3s-2.1-.3-2.6-.6-1-1.1-1.3-1.3-.9.1-.7.6.4.3.4.5-.2,1.1-.2,1.2,0,.2-.2.2c-.2,0-.9-3.4-.9-3.9.8.6,1.6,1,2.6,1.2,0-.3,0-.6-.1-.9s-.5-.9-.5-1c0-.1.2,0,.2,0,.3,0,.6.1.9.1s.1,0,.1-.1c0-1.2-1.3-1.9-2.3-1.9v-.7c-.8,0-1.6.4-1.9,1.2-.8-.5-1.7-.5-2.4.1l.6.6c-.3.2-.6.5-.8.8s-.3.9-.3,1.1v1.2h0,0ZM94.7,121.7c1.4.4,1.5-.6,0-.2v.2ZM94.8,122.7c0,.1,1.1,0,1-.4s-.8.1-1,.1v.3s0,0,0,0h0ZM95.2,123.6c.1.2,1-.3,1-.5,0-.3-1.2.2-1,.5ZM96.7,123.7c-.2-.2-.9.5-.8.7.1.4,1-.5.8-.7ZM97.1,124.3c0,0-.5.8-.3.9s.6-.6.6-.7-.2-.2-.4-.2h0ZM97.7,125.6c.4.1.7-.9.4-1-.3-.1-.5.9-.4,1ZM99.2,125.8c0-.3.2-.8-.2-1-.2,0-.1.7-.1.8h0c0,0,.2.1.2.1h0Z"/>
76
+ <path class="st2" d="M98.9,123.7c-.9-.1-1.6-.6-1.9-1.5s0-.7.6-.2,1.5,1.5,1.3,1.8h0Z"/>
77
+ <path class="st2" d="M92.7,126.1c-.9-.1-1.6-.6-2.1-1.3s-.3-.3-.3-.5c.2-.2,1.5,1.2,1.7,1.2.4,0-.3-.6-.4-.7-.2-.1-1-.6-1-.7,0-.1,0,0,.1,0,.9.1,1.8,1.2,1.9,2.1h0Z"/>
78
+ <path class="st2" d="M89.2,124.6c-.2.7-.5,1.3-.5,2h.2c0-.7.3-1.4.6-1.9.2.8-.3,2.1-.8,2.7s0,.1-.2.1c-.2-.8-.2-1.9.3-2.6s.3-.4.4-.3h0Z"/>
79
+ <path class="st2" d="M91.1,123.8c0-.1.4,0,.5,0,.4,0,.7.3,1.1.4-.2-.5-1-.6-1.5-.7,0-.1.2,0,.2,0,.5,0,1,.1,1.4.4.4.3.7.7.2.7-.8,0-1.3-.4-1.9-.7h0Z"/>
80
+ <path class="st2" d="M88.3,124.3c-.2.3-.5.5-.7.8s-.3.5,0,.4.5-.7.7-.8-.2.6-.2.7c0,.1-.8.9-1,.8,0-.8.3-1.8,1.2-1.9h0Z"/>
81
+ <path class="st2" d="M95.6,129.6l-.2.4c-.6-.4-1.4-.5-2.1-.7,0-.1.2-.1.3-.1.6,0,1.4.3,2,.4h0Z"/>
82
+ <path class="st2" d="M92.1,129.4c0-.2,0-1,.2-1,.7.6,1.1,1.1-.2,1Z"/>
83
+ <path class="st2" d="M89.2,123.7c-.3,0-.6.1-.9,0s-.4-.1-.3-.2c.1-.3,1.2-.2,1.3.2h0Z"/>
84
+ <path class="st2" d="M91,122.6c0,.5-.6.6-1,.8-.1-.3.9-.9,1-.8Z"/>
85
+ <path class="st2" d="M93.8,128.9c-.4,0-.7-.2-1-.6.3,0,.4.1.5.2s.5,0,.4.3h0Z"/>
86
+ <path class="st7" d="M94.8,122.7v-.3c.2,0,.9-.4,1-.1s-1,.5-1,.4h0Z"/>
87
+ <path class="st7" d="M94.7,121.7v-.2c1.5-.4,1.4.6,0,.2Z"/>
88
+ <path class="st7" d="M95.2,123.6c-.2-.3.9-.8,1-.5s-.8.7-1,.5Z"/>
89
+ <path class="st7" d="M96.7,123.7c.2.2-.7,1.1-.8.7s.7-.9.8-.7Z"/>
90
+ <path class="st7" d="M97.1,124.3c.1,0,.4,0,.4.2s-.4.8-.6.7.2-.8.3-.9h0Z"/>
91
+ <path class="st7" d="M97.7,125.6c0,0,0-1.1.4-1,.2,0,0,1.1-.4,1Z"/>
92
+ <path class="st7" d="M99.2,125.8h-.2s0-.1,0-.1c0-.2,0-.8.1-.8.4.1.3.7.2,1h0Z"/>
93
+ <path class="st2" d="M92.7,130.1c1.6,0,3.2.8,4.1,2,1,1.2.7.6,0,1.1-1.9,1.4-4.6,1.6-6.8.7-.3-.1-1.9-.9-1.9-1.2s.7-.9.8-1.1c.9-.9,2.3-1.5,3.6-1.6h0Z"/>
94
+ <path class="st2" d="M88.9,130.8l-2.5-.2c.3-.2.9-.1,1.2-.1s1,.1,1.2.4h0Z"/>
95
+ <path class="st2" d="M99.2,130.5c.1,0,0,.1-.1.1-.3,0-.6,0-.9,0-.4,0-.9.2-1.3.2s-.2,0,0,0,.9-.3,1.1-.3h1.3,0Z"/>
96
+ <circle class="st2" cx="47.9" cy="57.2" r="5.2"/>
97
+ <path class="st7" d="M53.4,57.2c0,3-2.4,5.5-5.5,5.5s-5.5-2.4-5.5-5.5,2.4-5.5,5.5-5.5,5.5,2.4,5.5,5.5ZM43.7,57v-.8c0-.1.1-.6.2-.8.1-.2.4-.4.6-.6l-.4-.4c.5-.4,1.1-.4,1.7,0,.2-.6.8-.9,1.4-.8v.5c.6,0,1.5.5,1.5,1.3s0,0,0,0c-.2,0-.4,0-.6,0s-.1,0-.1,0,.3.5.4.7.1.4,0,.6c-.7,0-1.3-.4-1.8-.8,0,.3.5,2.6.6,2.7s0,0,.1-.1.2-.8.2-.8c0-.1-.2-.2-.3-.3-.1-.3.2-.6.4-.4s.6.8.9.9,1.6.2,1.8.4-.4.6-.2.9c.8-.3,1.6-.4,2.5-.3.4-1.2.4-2.5-.1-3.6-.9,0-1.8-.4-2.1-1.3-.3-.9,0-1-.2-1.1,0-.1-.8,0-.9-.2s0-.1,0-.2-.2,0-.3,0c-3.1-.8-6.2,1.9-6,5.1,0,.2.2,1.2.3,1.3s.6,0,.8,0,.4,0,.6,0c.4,0,.9.3,1.1.3s.3,0,.3-.3c0-.3,0-.9,0-1.2s-.1-.9-.2-1.4c-.1,0,0,0-.1,0,0,.2-.1.4-.2.6s-.6,1.1-.7,1.1,0,0,0,0c-.2-.4-.2-1-.2-1.4-.1-.1-.7.6-.8.6h0c0,0,0,0,0,0h0ZM52.2,54.7c.1-.1-.7-1.1-.9-1.2-.4-.3-.7-.5-.4.2s.7.9,1.3,1h0ZM46.7,54c0,0-.7.4-.7.6.2-.2.7-.2.7-.6ZM45.5,54.7c0-.3-.8-.3-.9-.1s.2.2.2.2c.2,0,.4,0,.6,0h0ZM46.8,54.8c.5.2.8.4,1.3.4s0-.4-.1-.5c-.3-.2-.6-.3-.9-.3s-.2,0-.2,0c.3,0,.9,0,1,.5-.3,0-.5-.2-.8-.2s-.3,0-.3,0h0ZM47.9,56.4c0-.6-.7-1.3-1.3-1.4s-.2,0,0,0,.6.4.7.5.5.5.3.5-1-.9-1.1-.8c0,.1.1.2.2.3.4.5.8.8,1.4.9h0ZM44.8,55.1c-.6.1-.8.8-.8,1.3,0,0,.6-.5.7-.5s.3-.6.1-.5-.4.5-.5.6,0-.3,0-.3c.1-.2.4-.4.5-.6h0ZM45.5,55.3c0,0-.2.2-.3.2-.4.5-.3,1.2-.2,1.8,0,0,0,0,.1,0,.4-.5.7-1.3.5-1.9-.3.4-.4.9-.4,1.3h-.2c0-.5.2-.9.4-1.4h0ZM48.7,58.3c0-.2-.2-.2-.3-.2s-.2-.2-.4-.2c.2.3.4.4.7.4h0ZM47.5,58.6c.9,0,.7-.2.2-.7-.2,0-.2.5-.2.7ZM49.9,58.8c-.4,0-.9-.2-1.4-.3s-.2,0-.2,0c.5.2,1,.2,1.5.5v-.3h.1ZM47.9,59.1c-.9,0-1.8.4-2.5,1.1s-.6.6-.6.8c0,.2,1,.8,1.3.8,1.5.6,3.3.4,4.6-.5s.4-.3,0-.8c-.7-.8-1.8-1.4-2.8-1.4h0ZM45.3,59.6c-.2-.2-.6-.2-.8-.3s-.6,0-.8,0l1.7.2h0ZM52.3,59.4h-.9c-.1,0-.6.1-.7.2s0,0,0,0c.3,0,.6-.1.9-.2s.4,0,.6,0,.2,0,0,0h0Z"/>
98
+ <path class="st2" d="M43.7,57h0c.2,0,.7-.7.8-.6,0,.5,0,1,.2,1.4s0,.1,0,0,.6-.9.7-1.1.2-.4.2-.6,0,0,.1,0c0,.5.1.9.2,1.4s0,.9,0,1.2-.1.3-.3.3-.8-.3-1.1-.3-.4,0-.6,0-.7.1-.8,0-.3-1.2-.3-1.3c-.2-3.2,2.9-5.9,6-5.1s.3,0,.3,0,0,.1,0,.2c.1.2.8,0,.9.2s0,.8.2,1.1c.3.9,1.2,1.3,2.1,1.3.5,1.1.5,2.4.1,3.6-.9,0-1.7,0-2.5.3-.2-.4.5-.6.2-.9s-1.4-.2-1.8-.4-.7-.7-.9-.9-.6,0-.4.4.3.2.3.3-.1.8-.2.8,0,.2-.1.1c-.1,0-.6-2.3-.6-2.7.5.4,1.1.7,1.8.8,0-.2,0-.4,0-.6s-.4-.6-.4-.7c0,0,.1,0,.1,0,.2,0,.4,0,.6,0s0,0,0,0c0-.8-.9-1.3-1.6-1.3v-.5c-.5,0-1.1.2-1.3.8-.5-.4-1.2-.4-1.7,0l.4.4c-.2.2-.4.3-.6.6s-.2.6-.2.8v.8h0,0ZM49.2,53.3c.9.3,1.1-.4,0-.2v.2ZM49.3,54.1c0,0,.8,0,.7-.3s-.6,0-.7,0v.2s0,0,0,0h0ZM49.6,54.7c0,.1.7-.2.7-.3,0-.2-.8.1-.7.3ZM50.6,54.7c-.1-.1-.6.3-.6.5,0,.3.7-.4.6-.5ZM50.9,55.1s-.4.6-.2.6.4-.4.4-.5-.2-.2-.2-.1h0ZM51.3,56.1c.3,0,.5-.6.3-.7-.2,0-.3.6-.3.7ZM52.4,56.2c0-.2.1-.6-.1-.7-.1,0,0,.5,0,.6h0c0,0,.2,0,.2,0h0Z"/>
99
+ <path class="st2" d="M52.2,54.7c-.6,0-1.1-.4-1.3-1s0-.5.4-.2,1,1.1.9,1.2h0Z"/>
100
+ <path class="st2" d="M47.9,56.4c-.6,0-1.1-.4-1.4-.9s-.2-.2-.2-.3c.1-.1,1,.8,1.1.8.3,0-.2-.4-.3-.5-.1,0-.7-.4-.7-.5,0,0,0,0,0,0,.6,0,1.2.8,1.3,1.4h0Z"/>
101
+ <path class="st2" d="M45.5,55.3c-.1.4-.4.9-.4,1.4h.2c0-.4.2-.9.4-1.3.1.6-.2,1.4-.5,1.9s0,0-.1,0c-.1-.5-.2-1.3.2-1.8s.2-.3.3-.2h0Z"/>
102
+ <path class="st2" d="M46.8,54.8c0,0,.3,0,.3,0,.3,0,.5.2.8.2-.1-.4-.7-.4-1-.5,0,0,.1,0,.2,0,.3,0,.7,0,.9.3.3.2.5.5.1.5-.5,0-.9-.3-1.3-.4h0Z"/>
103
+ <path class="st2" d="M44.8,55.1c-.1.2-.4.4-.5.6s-.2.3,0,.3.3-.5.5-.6-.1.4-.1.5c0,0-.6.6-.7.5,0-.6.2-1.2.8-1.3h0Z"/>
104
+ <path class="st2" d="M49.9,58.8v.3c-.6-.3-1.1-.3-1.6-.5,0,0,.1,0,.2,0,.4,0,.9.2,1.4.3h0Z"/>
105
+ <path class="st2" d="M47.5,58.6c0-.1,0-.7.2-.7.5.4.7.8-.2.7Z"/>
106
+ <path class="st2" d="M45.5,54.7c-.2,0-.4,0-.6,0s-.3,0-.2-.2c0-.2.8-.2.9.1h0Z"/>
107
+ <path class="st2" d="M46.7,54c0,.4-.4.4-.7.6,0-.2.6-.6.7-.6Z"/>
108
+ <path class="st2" d="M48.7,58.3c-.3,0-.5-.2-.7-.4.2,0,.2,0,.4.2s.3,0,.3.2h0Z"/>
109
+ <path class="st7" d="M49.3,54.1v-.2c.2,0,.6-.3.7,0s-.7.4-.7.3h0Z"/>
110
+ <path class="st7" d="M49.2,53.3v-.2c1-.3,1,.4,0,.2Z"/>
111
+ <path class="st7" d="M49.6,54.7c-.1-.2.6-.6.7-.3s-.6.5-.7.3Z"/>
112
+ <path class="st7" d="M50.6,54.7c.1.1-.5.8-.6.5s.4-.6.6-.5Z"/>
113
+ <path class="st7" d="M50.9,55.1c0,0,.3,0,.2.1s-.3.5-.4.5.2-.6.2-.6h0Z"/>
114
+ <path class="st7" d="M51.3,56.1s0-.7.3-.7c.2,0,0,.8-.3.7Z"/>
115
+ <path class="st7" d="M52.4,56.2h-.2s0,0,0,0c0-.1,0-.6,0-.6.3,0,.2.5.1.7h0Z"/>
116
+ <path class="st2" d="M47.9,59.1c1.1,0,2.2.6,2.8,1.4.7.8.5.4,0,.8-1.3.9-3.2,1.1-4.6.5-.2,0-1.3-.6-1.3-.8s.5-.6.6-.8c.6-.6,1.6-1,2.5-1.1h0Z"/>
117
+ <path class="st2" d="M45.3,59.6l-1.7-.2c.2-.1.6,0,.8,0s.7,0,.8.3h0Z"/>
118
+ <path class="st2" d="M52.3,59.4c0,0,0,0,0,0-.2,0-.4,0-.6,0-.3,0-.6.1-.9.2s-.1,0,0,0,.6-.2.7-.2h.9,0Z"/>
119
+ </g>
120
+ </svg>
@@ -0,0 +1,15 @@
1
+ @import "tailwindcss";
2
+
3
+ body {
4
+ @apply m-0;
5
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen",
6
+ "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue",
7
+ sans-serif;
8
+ -webkit-font-smoothing: antialiased;
9
+ -moz-osx-font-smoothing: grayscale;
10
+ }
11
+
12
+ code {
13
+ font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
14
+ monospace;
15
+ }
@@ -0,0 +1,3 @@
1
+ package-lock.json
2
+ pnpm-lock.yaml
3
+ yarn.lock
@@ -0,0 +1,31 @@
1
+ {
2
+ "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
3
+ "vcs": {
4
+ "enabled": false,
5
+ "clientKind": "git",
6
+ "useIgnoreFile": false
7
+ },
8
+ "files": {
9
+ "ignoreUnknown": false,
10
+ "ignore": ["src/routeTree.gen.ts"],
11
+ "include": ["src/*", ".vscode/*", "index.html", "vite.config.js"]
12
+ },
13
+ "formatter": {
14
+ "enabled": true,
15
+ "indentStyle": "tab"
16
+ },
17
+ "organizeImports": {
18
+ "enabled": true
19
+ },
20
+ "linter": {
21
+ "enabled": true,
22
+ "rules": {
23
+ "recommended": true
24
+ }
25
+ },
26
+ "javascript": {
27
+ "formatter": {
28
+ "quoteStyle": "double"
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,5 @@
1
+ // @ts-check
2
+
3
+ import { tanstackConfig } from "@tanstack/eslint-config";
4
+
5
+ export default [...tanstackConfig];
@@ -0,0 +1,10 @@
1
+ // @ts-check
2
+
3
+ /** @type {import('prettier').Config} */
4
+ const config = {
5
+ semi: false,
6
+ singleQuote: true,
7
+ trailingComma: "all",
8
+ };
9
+
10
+ export default config;
@@ -0,0 +1,31 @@
1
+ {
2
+ <% if (toolchain && toolchain === 'eslint+prettier') { %>"include": ["**/*.ts", "**/*.tsx", "eslint.config.js", "prettier.config.js", "vite.config.js"],
3
+ <% } else { %>"include": ["**/*.ts", "**/*.tsx"],<% } %>
4
+ "compilerOptions": {
5
+ "target": "ES2022",
6
+ "jsx": "preserve",
7
+ "jsxImportSource": "solid-js",
8
+ "module": "ESNext",
9
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
10
+ "types": ["vite/client"],
11
+
12
+ /* Bundler mode */
13
+ "moduleResolution": "bundler",
14
+ "allowImportingTsExtensions": true,
15
+ "verbatimModuleSyntax": true,
16
+ "noEmit": true,
17
+
18
+ /* Linting */
19
+ "skipLibCheck": true,
20
+ "strict": true,
21
+ "noUnusedLocals": true,
22
+ "noUnusedParameters": true,
23
+ "noFallthroughCasesInSwitch": true,
24
+ "noUncheckedSideEffectImports": true<% if (addOnEnabled['solid-ui']) { %>,
25
+ "baseUrl": ".",
26
+ "paths": {
27
+ "~/*": ["./src/*"]
28
+ }
29
+ <% } %>
30
+ }
31
+ }
@@ -0,0 +1,22 @@
1
+ import { defineConfig } from 'vite'
2
+ <%if (fileRouter) { %>import { TanStackRouterVite } from '@tanstack/router-plugin/vite'<% } %>
3
+ import solidPlugin from 'vite-plugin-solid'
4
+ import tailwindcss from '@tailwindcss/vite'<% if (addOnEnabled['solid-ui']) { %>
5
+ import { resolve } from 'node:path'<% } %><% if (addOnEnabled['module-federation']) { %>
6
+ import {federation} from "@module-federation/vite";<% } %><% if (addOnEnabled['module-federation']) { %>
7
+ import federationConfig from "./module-federation.config.js";
8
+ <% } %>
9
+
10
+ // https://vitejs.dev/config/
11
+ export default defineConfig({
12
+ plugins: [<% if (addOnEnabled['module-federation']) { %>federation(federationConfig), <% } %><%if (fileRouter) { %>
13
+ TanStackRouterVite({ target: 'solid', autoCodeSplitting: true }),<% } %>
14
+ solidPlugin(),
15
+ tailwindcss(),
16
+ ],<% if (addOnEnabled['solid-ui']) { %>
17
+ resolve: {
18
+ alias: {
19
+ '~': resolve(__dirname, './src'),
20
+ },
21
+ },<% } %>
22
+ })
@@ -0,0 +1,71 @@
1
+ import {
2
+ Outlet,
3
+ RouterProvider,
4
+ createRootRoute,
5
+ createRoute,
6
+ createRouter,
7
+ } from "@tanstack/solid-router";
8
+ import { TanStackRouterDevtools } from "@tanstack/solid-router-devtools";
9
+ import { render } from 'solid-js/web'
10
+ <% for(const route of routes) { %>import <%= route.name %> from "<%= route.path %>";
11
+ <% } %><% if (routes.length > 0) { %>
12
+ import Header from "./components/Header";
13
+ <% } %><% for(const integration of integrations.filter(i => i.type === 'layout' || i.type === 'provider')) { %>
14
+ import <%= integration.name %> from "./<%= integration.path %>";
15
+ <% } %>
16
+
17
+ import "./styles.css";
18
+
19
+ import App from "./App.<%= jsx %>";
20
+
21
+ const rootRoute = createRootRoute({
22
+ component: () => (
23
+ <>
24
+ <% for(const integration of integrations.filter(i => i.type === 'provider')) { %>
25
+ <<%= integration.name %>>
26
+ <% } %>
27
+ <% if (routes.length > 0) { %><Header /><% } %>
28
+ <Outlet />
29
+ <TanStackRouterDevtools />
30
+ <% for(const integration of integrations.filter(i => i.type === 'layout')) { %>
31
+ <<%= integration.name %> />
32
+ <% } %>
33
+ <% for(const integration of integrations.filter(i => i.type === 'provider').reverse()) { %>
34
+ </<%= integration.name %>>
35
+ <% } %>
36
+ </>
37
+ ),
38
+ });
39
+
40
+ const indexRoute = createRoute({
41
+ getParentRoute: () => rootRoute,
42
+ path: "/",
43
+ component: App,
44
+ });
45
+
46
+ const routeTree = rootRoute.addChildren([indexRoute<%= routes.map(route => `, ${route.name}(rootRoute)`).join('') %>]);
47
+
48
+ const router = createRouter({
49
+ routeTree,
50
+ defaultPreload: "intent",
51
+ scrollRestoration: true,
52
+ });
53
+
54
+ declare module '@tanstack/solid-router' {
55
+ interface Register {
56
+ router: typeof router
57
+ }
58
+ }
59
+
60
+ function MainApp() {
61
+ return (
62
+ <>
63
+ <RouterProvider router={router} />
64
+ </>
65
+ )
66
+ }
67
+
68
+ const rootElement = document.getElementById('app')
69
+ if(rootElement) {
70
+ render(() => <MainApp />, rootElement)
71
+ }