@coze-arch/cli 0.0.1-beta.5 → 0.0.2

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 (324) hide show
  1. package/README.md +1 -0
  2. package/lib/__templates__/expo/.coze +7 -2
  3. package/lib/__templates__/expo/.cozeproj/scripts/dev_build.sh +46 -0
  4. package/lib/__templates__/expo/.cozeproj/scripts/dev_run.sh +229 -0
  5. package/lib/__templates__/expo/.cozeproj/scripts/prod_build.sh +47 -0
  6. package/lib/__templates__/expo/.cozeproj/scripts/prod_run.sh +34 -0
  7. package/lib/__templates__/expo/.cozeproj/scripts/server_dev_run.sh +46 -0
  8. package/lib/__templates__/expo/README.md +68 -7
  9. package/lib/__templates__/expo/_gitignore +1 -1
  10. package/lib/__templates__/{react-rsbuild → expo}/_npmrc +4 -5
  11. package/lib/__templates__/expo/client/app/+not-found.tsx +15 -64
  12. package/lib/__templates__/expo/client/app/_layout.tsx +15 -12
  13. package/lib/__templates__/expo/client/app/index.tsx +1 -0
  14. package/lib/__templates__/expo/client/app.config.ts +76 -0
  15. package/lib/__templates__/expo/client/components/Screen.tsx +22 -38
  16. package/lib/__templates__/expo/client/components/ThemedText.tsx +33 -0
  17. package/lib/__templates__/expo/client/components/ThemedView.tsx +37 -0
  18. package/lib/__templates__/expo/client/constants/theme.ts +117 -58
  19. package/lib/__templates__/expo/client/contexts/AuthContext.tsx +14 -107
  20. package/lib/__templates__/expo/client/declarations.d.ts +5 -0
  21. package/lib/__templates__/expo/{eslint.config.mjs → client/eslint.config.mjs} +40 -10
  22. package/lib/__templates__/expo/client/hooks/useColorScheme.tsx +48 -0
  23. package/lib/__templates__/expo/client/hooks/useSafeRouter.ts +152 -0
  24. package/lib/__templates__/expo/client/hooks/useTheme.ts +26 -6
  25. package/lib/__templates__/expo/client/metro.config.js +124 -0
  26. package/lib/__templates__/expo/client/package.json +95 -0
  27. package/lib/__templates__/expo/client/screens/demo/index.tsx +25 -0
  28. package/lib/__templates__/expo/client/screens/demo/styles.ts +28 -0
  29. package/lib/__templates__/expo/client/scripts/install-missing-deps.js +47 -22
  30. package/lib/__templates__/expo/client/tsconfig.json +24 -0
  31. package/lib/__templates__/expo/client/utils/index.ts +23 -2
  32. package/lib/__templates__/expo/eslint-plugins/fontawesome6/index.js +9 -0
  33. package/lib/__templates__/expo/eslint-plugins/fontawesome6/names.js +1889 -0
  34. package/lib/__templates__/expo/eslint-plugins/fontawesome6/rule.js +174 -0
  35. package/lib/__templates__/expo/eslint-plugins/fontawesome6/v5-only-names.js +388 -0
  36. package/lib/__templates__/expo/eslint-plugins/forbid-emoji/index.js +9 -0
  37. package/lib/__templates__/expo/eslint-plugins/forbid-emoji/rule.js +112 -0
  38. package/lib/__templates__/expo/eslint-plugins/forbid-emoji/tech.md +94 -0
  39. package/lib/__templates__/expo/eslint-plugins/react-native/index.js +9 -0
  40. package/lib/__templates__/expo/eslint-plugins/react-native/rule.js +64 -0
  41. package/lib/__templates__/expo/eslint-plugins/reanimated/index.js +9 -0
  42. package/lib/__templates__/expo/eslint-plugins/reanimated/rule.js +88 -0
  43. package/lib/__templates__/expo/eslint-plugins/restrict-linear-gradient/index.js +9 -0
  44. package/lib/__templates__/expo/eslint-plugins/restrict-linear-gradient/rule.js +120 -0
  45. package/lib/__templates__/expo/eslint-plugins/restrict-linear-gradient/tech.md +58 -0
  46. package/lib/__templates__/expo/package.json +16 -91
  47. package/lib/__templates__/expo/patches/expo@54.0.33.patch +45 -0
  48. package/lib/__templates__/expo/pnpm-lock.yaml +1805 -3126
  49. package/lib/__templates__/expo/pnpm-workspace.yaml +3 -0
  50. package/lib/__templates__/expo/server/build.js +21 -0
  51. package/lib/__templates__/expo/server/package.json +34 -0
  52. package/lib/__templates__/expo/server/src/index.ts +20 -0
  53. package/lib/__templates__/expo/server/tsconfig.json +24 -0
  54. package/lib/__templates__/expo/template.config.js +58 -1
  55. package/lib/__templates__/expo/tsconfig.json +1 -24
  56. package/lib/__templates__/native-static/.coze +11 -0
  57. package/lib/__templates__/native-static/index.html +33 -0
  58. package/lib/__templates__/native-static/styles/main.css +136 -0
  59. package/lib/__templates__/native-static/template.config.js +22 -0
  60. package/lib/__templates__/nextjs/.babelrc +15 -0
  61. package/lib/__templates__/nextjs/.coze +4 -3
  62. package/lib/__templates__/nextjs/README.md +346 -19
  63. package/lib/__templates__/nextjs/_npmrc +2 -1
  64. package/lib/__templates__/nextjs/components.json +21 -0
  65. package/lib/__templates__/nextjs/eslint.config.mjs +5 -0
  66. package/lib/__templates__/nextjs/next.config.ts +11 -0
  67. package/lib/__templates__/nextjs/package.json +63 -2
  68. package/lib/__templates__/nextjs/pnpm-lock.yaml +10053 -1710
  69. package/lib/__templates__/nextjs/scripts/build.sh +4 -1
  70. package/lib/__templates__/nextjs/scripts/dev.sh +15 -27
  71. package/lib/__templates__/{react-rsbuild/scripts/build.sh → nextjs/scripts/prepare.sh} +0 -5
  72. package/lib/__templates__/nextjs/scripts/start.sh +7 -1
  73. package/lib/__templates__/nextjs/src/app/globals.css +124 -13
  74. package/lib/__templates__/nextjs/src/app/layout.tsx +56 -16
  75. package/lib/__templates__/nextjs/src/app/page.tsx +18 -49
  76. package/lib/__templates__/nextjs/src/app/robots.ts +11 -0
  77. package/lib/__templates__/nextjs/src/components/ui/accordion.tsx +66 -0
  78. package/lib/__templates__/nextjs/src/components/ui/alert-dialog.tsx +157 -0
  79. package/lib/__templates__/nextjs/src/components/ui/alert.tsx +66 -0
  80. package/lib/__templates__/nextjs/src/components/ui/aspect-ratio.tsx +11 -0
  81. package/lib/__templates__/nextjs/src/components/ui/avatar.tsx +53 -0
  82. package/lib/__templates__/nextjs/src/components/ui/badge.tsx +46 -0
  83. package/lib/__templates__/nextjs/src/components/ui/breadcrumb.tsx +109 -0
  84. package/lib/__templates__/nextjs/src/components/ui/button-group.tsx +83 -0
  85. package/lib/__templates__/nextjs/src/components/ui/button.tsx +62 -0
  86. package/lib/__templates__/nextjs/src/components/ui/calendar.tsx +220 -0
  87. package/lib/__templates__/nextjs/src/components/ui/card.tsx +92 -0
  88. package/lib/__templates__/nextjs/src/components/ui/carousel.tsx +241 -0
  89. package/lib/__templates__/nextjs/src/components/ui/chart.tsx +357 -0
  90. package/lib/__templates__/nextjs/src/components/ui/checkbox.tsx +32 -0
  91. package/lib/__templates__/nextjs/src/components/ui/collapsible.tsx +33 -0
  92. package/lib/__templates__/nextjs/src/components/ui/command.tsx +184 -0
  93. package/lib/__templates__/nextjs/src/components/ui/context-menu.tsx +252 -0
  94. package/lib/__templates__/nextjs/src/components/ui/dialog.tsx +143 -0
  95. package/lib/__templates__/nextjs/src/components/ui/drawer.tsx +135 -0
  96. package/lib/__templates__/nextjs/src/components/ui/dropdown-menu.tsx +257 -0
  97. package/lib/__templates__/nextjs/src/components/ui/empty.tsx +104 -0
  98. package/lib/__templates__/nextjs/src/components/ui/field.tsx +248 -0
  99. package/lib/__templates__/nextjs/src/components/ui/form.tsx +167 -0
  100. package/lib/__templates__/nextjs/src/components/ui/hover-card.tsx +44 -0
  101. package/lib/__templates__/nextjs/src/components/ui/input-group.tsx +170 -0
  102. package/lib/__templates__/nextjs/src/components/ui/input-otp.tsx +77 -0
  103. package/lib/__templates__/nextjs/src/components/ui/input.tsx +21 -0
  104. package/lib/__templates__/nextjs/src/components/ui/item.tsx +193 -0
  105. package/lib/__templates__/nextjs/src/components/ui/kbd.tsx +28 -0
  106. package/lib/__templates__/nextjs/src/components/ui/label.tsx +24 -0
  107. package/lib/__templates__/nextjs/src/components/ui/menubar.tsx +276 -0
  108. package/lib/__templates__/nextjs/src/components/ui/navigation-menu.tsx +168 -0
  109. package/lib/__templates__/nextjs/src/components/ui/pagination.tsx +127 -0
  110. package/lib/__templates__/nextjs/src/components/ui/popover.tsx +48 -0
  111. package/lib/__templates__/nextjs/src/components/ui/progress.tsx +31 -0
  112. package/lib/__templates__/nextjs/src/components/ui/radio-group.tsx +45 -0
  113. package/lib/__templates__/nextjs/src/components/ui/resizable.tsx +63 -0
  114. package/lib/__templates__/nextjs/src/components/ui/scroll-area.tsx +58 -0
  115. package/lib/__templates__/nextjs/src/components/ui/select.tsx +190 -0
  116. package/lib/__templates__/nextjs/src/components/ui/separator.tsx +28 -0
  117. package/lib/__templates__/nextjs/src/components/ui/sheet.tsx +139 -0
  118. package/lib/__templates__/nextjs/src/components/ui/sidebar.tsx +724 -0
  119. package/lib/__templates__/nextjs/src/components/ui/skeleton.tsx +13 -0
  120. package/lib/__templates__/nextjs/src/components/ui/slider.tsx +63 -0
  121. package/lib/__templates__/nextjs/src/components/ui/sonner.tsx +40 -0
  122. package/lib/__templates__/nextjs/src/components/ui/spinner.tsx +16 -0
  123. package/lib/__templates__/nextjs/src/components/ui/switch.tsx +31 -0
  124. package/lib/__templates__/nextjs/src/components/ui/table.tsx +116 -0
  125. package/lib/__templates__/nextjs/src/components/ui/tabs.tsx +66 -0
  126. package/lib/__templates__/nextjs/src/components/ui/textarea.tsx +18 -0
  127. package/lib/__templates__/nextjs/src/components/ui/toggle-group.tsx +83 -0
  128. package/lib/__templates__/nextjs/src/components/ui/toggle.tsx +47 -0
  129. package/lib/__templates__/nextjs/src/components/ui/tooltip.tsx +61 -0
  130. package/lib/__templates__/nextjs/src/hooks/use-mobile.ts +19 -0
  131. package/lib/__templates__/nextjs/src/lib/utils.ts +6 -0
  132. package/lib/__templates__/nextjs/src/server.ts +35 -0
  133. package/lib/__templates__/nextjs/template.config.js +70 -5
  134. package/lib/__templates__/nextjs/tsconfig.json +1 -1
  135. package/lib/__templates__/nuxt-vue/.coze +12 -0
  136. package/lib/__templates__/nuxt-vue/README.md +73 -0
  137. package/lib/__templates__/nuxt-vue/_gitignore +24 -0
  138. package/lib/__templates__/{rsbuild → nuxt-vue}/_npmrc +2 -1
  139. package/lib/__templates__/nuxt-vue/app/app.vue +6 -0
  140. package/lib/__templates__/nuxt-vue/app/pages/index.vue +23 -0
  141. package/lib/__templates__/{rsbuild/src/index.css → nuxt-vue/assets/css/main.css} +7 -4
  142. package/lib/__templates__/nuxt-vue/nuxt.config.ts +116 -0
  143. package/lib/__templates__/nuxt-vue/package.json +35 -0
  144. package/lib/__templates__/nuxt-vue/pnpm-lock.yaml +8759 -0
  145. package/lib/__templates__/nuxt-vue/postcss.config.mjs +8 -0
  146. package/lib/__templates__/nuxt-vue/public/favicon.ico +0 -0
  147. package/lib/__templates__/nuxt-vue/public/robots.txt +2 -0
  148. package/lib/__templates__/{rsbuild → nuxt-vue}/scripts/build.sh +2 -2
  149. package/lib/__templates__/nuxt-vue/scripts/dev.sh +39 -0
  150. package/lib/__templates__/nuxt-vue/scripts/prepare.sh +14 -0
  151. package/lib/__templates__/nuxt-vue/scripts/start.sh +21 -0
  152. package/lib/__templates__/nuxt-vue/server/api/hello.ts +10 -0
  153. package/lib/__templates__/nuxt-vue/server/middleware/logger.ts +10 -0
  154. package/lib/__templates__/nuxt-vue/server/routes/health.ts +10 -0
  155. package/lib/__templates__/nuxt-vue/tailwind.config.js +13 -0
  156. package/lib/__templates__/nuxt-vue/template.config.js +87 -0
  157. package/lib/__templates__/nuxt-vue/tsconfig.json +18 -0
  158. package/lib/__templates__/taro/.coze +14 -0
  159. package/lib/__templates__/taro/.cozeproj/scripts/deploy_build.sh +19 -0
  160. package/lib/__templates__/taro/.cozeproj/scripts/deploy_run.sh +14 -0
  161. package/lib/__templates__/taro/.cozeproj/scripts/dev_build.sh +2 -0
  162. package/lib/__templates__/taro/.cozeproj/scripts/dev_run.sh +151 -0
  163. package/lib/__templates__/taro/.cozeproj/scripts/init_env.sh +5 -0
  164. package/lib/__templates__/taro/.cozeproj/scripts/pack.sh +24 -0
  165. package/lib/__templates__/taro/README.md +763 -0
  166. package/lib/__templates__/taro/_gitignore +40 -0
  167. package/lib/__templates__/taro/_npmrc +18 -0
  168. package/lib/__templates__/taro/babel.config.js +12 -0
  169. package/lib/__templates__/taro/config/dev.ts +9 -0
  170. package/lib/__templates__/taro/config/index.ts +238 -0
  171. package/lib/__templates__/taro/config/prod.ts +34 -0
  172. package/lib/__templates__/taro/eslint.config.mjs +135 -0
  173. package/lib/__templates__/taro/key/private.appid.key +0 -0
  174. package/lib/__templates__/taro/package.json +112 -0
  175. package/lib/__templates__/taro/patches/@tarojs__plugin-mini-ci@4.1.9.patch +30 -0
  176. package/lib/__templates__/taro/pnpm-lock.yaml +23412 -0
  177. package/lib/__templates__/taro/pnpm-workspace.yaml +2 -0
  178. package/lib/__templates__/taro/project.config.json +15 -0
  179. package/lib/__templates__/taro/server/nest-cli.json +10 -0
  180. package/lib/__templates__/taro/server/package.json +40 -0
  181. package/lib/__templates__/taro/server/src/app.controller.ts +23 -0
  182. package/lib/__templates__/taro/server/src/app.module.ts +10 -0
  183. package/lib/__templates__/taro/server/src/app.service.ts +8 -0
  184. package/lib/__templates__/taro/server/src/interceptors/http-status.interceptor.ts +23 -0
  185. package/lib/__templates__/taro/server/src/main.ts +49 -0
  186. package/lib/__templates__/taro/server/tsconfig.json +24 -0
  187. package/lib/__templates__/taro/src/app.config.ts +11 -0
  188. package/lib/__templates__/taro/src/app.css +156 -0
  189. package/lib/__templates__/taro/src/app.tsx +9 -0
  190. package/lib/__templates__/taro/src/components/ui/accordion.tsx +159 -0
  191. package/lib/__templates__/taro/src/components/ui/alert-dialog.tsx +260 -0
  192. package/lib/__templates__/taro/src/components/ui/alert.tsx +60 -0
  193. package/lib/__templates__/taro/src/components/ui/aspect-ratio.tsx +36 -0
  194. package/lib/__templates__/taro/src/components/ui/avatar.tsx +84 -0
  195. package/lib/__templates__/taro/src/components/ui/badge.tsx +37 -0
  196. package/lib/__templates__/taro/src/components/ui/breadcrumb.tsx +117 -0
  197. package/lib/__templates__/taro/src/components/ui/button-group.tsx +83 -0
  198. package/lib/__templates__/taro/src/components/ui/button.tsx +67 -0
  199. package/lib/__templates__/taro/src/components/ui/calendar.tsx +394 -0
  200. package/lib/__templates__/taro/src/components/ui/card.tsx +108 -0
  201. package/lib/__templates__/taro/src/components/ui/carousel.tsx +228 -0
  202. package/lib/__templates__/taro/src/components/ui/checkbox.tsx +58 -0
  203. package/lib/__templates__/taro/src/components/ui/code-block.tsx +169 -0
  204. package/lib/__templates__/taro/src/components/ui/collapsible.tsx +71 -0
  205. package/lib/__templates__/taro/src/components/ui/command.tsx +385 -0
  206. package/lib/__templates__/taro/src/components/ui/context-menu.tsx +614 -0
  207. package/lib/__templates__/taro/src/components/ui/dialog.tsx +256 -0
  208. package/lib/__templates__/taro/src/components/ui/drawer.tsx +192 -0
  209. package/lib/__templates__/taro/src/components/ui/dropdown-menu.tsx +561 -0
  210. package/lib/__templates__/taro/src/components/ui/field.tsx +228 -0
  211. package/lib/__templates__/taro/src/components/ui/hover-card.tsx +282 -0
  212. package/lib/__templates__/taro/src/components/ui/input-group.tsx +197 -0
  213. package/lib/__templates__/taro/src/components/ui/input-otp.tsx +136 -0
  214. package/lib/__templates__/taro/src/components/ui/input.tsx +56 -0
  215. package/lib/__templates__/taro/src/components/ui/label.tsx +24 -0
  216. package/lib/__templates__/taro/src/components/ui/menubar.tsx +595 -0
  217. package/lib/__templates__/taro/src/components/ui/navigation-menu.tsx +264 -0
  218. package/lib/__templates__/taro/src/components/ui/pagination.tsx +118 -0
  219. package/lib/__templates__/taro/src/components/ui/popover.tsx +291 -0
  220. package/lib/__templates__/taro/src/components/ui/portal.tsx +19 -0
  221. package/lib/__templates__/taro/src/components/ui/progress.tsx +28 -0
  222. package/lib/__templates__/taro/src/components/ui/radio-group.tsx +64 -0
  223. package/lib/__templates__/taro/src/components/ui/resizable.tsx +346 -0
  224. package/lib/__templates__/taro/src/components/ui/scroll-area.tsx +34 -0
  225. package/lib/__templates__/taro/src/components/ui/select.tsx +438 -0
  226. package/lib/__templates__/taro/src/components/ui/separator.tsx +30 -0
  227. package/lib/__templates__/taro/src/components/ui/sheet.tsx +262 -0
  228. package/lib/__templates__/taro/src/components/ui/skeleton.tsx +17 -0
  229. package/lib/__templates__/taro/src/components/ui/slider.tsx +203 -0
  230. package/lib/__templates__/taro/src/components/ui/sonner.tsx +1 -0
  231. package/lib/__templates__/taro/src/components/ui/switch.tsx +55 -0
  232. package/lib/__templates__/taro/src/components/ui/table.tsx +142 -0
  233. package/lib/__templates__/taro/src/components/ui/tabs.tsx +114 -0
  234. package/lib/__templates__/taro/src/components/ui/textarea.tsx +54 -0
  235. package/lib/__templates__/taro/src/components/ui/toast.tsx +517 -0
  236. package/lib/__templates__/taro/src/components/ui/toggle-group.tsx +120 -0
  237. package/lib/__templates__/taro/src/components/ui/toggle.tsx +77 -0
  238. package/lib/__templates__/taro/src/components/ui/tooltip.tsx +455 -0
  239. package/lib/__templates__/taro/src/index.html +39 -0
  240. package/lib/__templates__/taro/src/lib/hooks/use-keyboard-offset.ts +37 -0
  241. package/lib/__templates__/taro/src/lib/measure.ts +115 -0
  242. package/lib/__templates__/taro/src/lib/platform.ts +12 -0
  243. package/lib/__templates__/taro/src/lib/utils.ts +6 -0
  244. package/lib/__templates__/taro/src/network.ts +39 -0
  245. package/lib/__templates__/taro/src/pages/index/index.config.ts +3 -0
  246. package/lib/__templates__/taro/src/pages/index/index.css +1 -0
  247. package/lib/__templates__/taro/src/pages/index/index.tsx +33 -0
  248. package/lib/__templates__/taro/src/presets/dev-debug.ts +23 -0
  249. package/lib/__templates__/taro/src/presets/h5-container.tsx +15 -0
  250. package/lib/__templates__/taro/src/presets/h5-navbar.tsx +238 -0
  251. package/lib/__templates__/taro/src/presets/h5-styles.ts +220 -0
  252. package/lib/__templates__/taro/src/presets/index.tsx +18 -0
  253. package/lib/__templates__/taro/stylelint.config.mjs +4 -0
  254. package/lib/__templates__/taro/template.config.js +68 -0
  255. package/lib/__templates__/taro/tsconfig.json +29 -0
  256. package/lib/__templates__/taro/types/global.d.ts +32 -0
  257. package/lib/__templates__/templates.json +126 -64
  258. package/lib/__templates__/vite/.coze +4 -3
  259. package/lib/__templates__/vite/README.md +383 -26
  260. package/lib/__templates__/vite/_gitignore +1 -0
  261. package/lib/__templates__/vite/_npmrc +2 -1
  262. package/lib/__templates__/vite/eslint.config.mjs +14 -0
  263. package/lib/__templates__/vite/package.json +23 -3
  264. package/lib/__templates__/vite/pnpm-lock.yaml +2509 -293
  265. package/lib/__templates__/vite/scripts/build.sh +4 -1
  266. package/lib/__templates__/vite/scripts/dev.sh +16 -28
  267. package/lib/__templates__/vite/scripts/prepare.sh +9 -0
  268. package/lib/__templates__/vite/scripts/start.sh +9 -3
  269. package/lib/__templates__/vite/server/routes/index.ts +31 -0
  270. package/lib/__templates__/vite/server/server.ts +65 -0
  271. package/lib/__templates__/vite/server/vite.ts +67 -0
  272. package/lib/__templates__/vite/src/main.ts +17 -48
  273. package/lib/__templates__/vite/template.config.js +82 -10
  274. package/lib/__templates__/vite/tsconfig.json +4 -3
  275. package/lib/__templates__/vite/vite.config.ts +8 -3
  276. package/lib/cli.js +1544 -488
  277. package/package.json +18 -7
  278. package/lib/__templates__/expo/.cozeproj/scripts/deploy_build.sh +0 -109
  279. package/lib/__templates__/expo/.cozeproj/scripts/deploy_run.sh +0 -257
  280. package/lib/__templates__/expo/app.json +0 -63
  281. package/lib/__templates__/expo/babel.config.js +0 -9
  282. package/lib/__templates__/expo/client/app/(tabs)/_layout.tsx +0 -43
  283. package/lib/__templates__/expo/client/app/(tabs)/home.tsx +0 -1
  284. package/lib/__templates__/expo/client/app/(tabs)/index.tsx +0 -7
  285. package/lib/__templates__/expo/client/hooks/useColorScheme.ts +0 -1
  286. package/lib/__templates__/expo/client/index.js +0 -11
  287. package/lib/__templates__/expo/client/screens/home/index.tsx +0 -54
  288. package/lib/__templates__/expo/client/screens/home/styles.ts +0 -332
  289. package/lib/__templates__/expo/metro.config.js +0 -53
  290. package/lib/__templates__/expo/src/index.ts +0 -12
  291. package/lib/__templates__/nextjs/.vscode/settings.json +0 -121
  292. package/lib/__templates__/react-rsbuild/.coze +0 -11
  293. package/lib/__templates__/react-rsbuild/.vscode/settings.json +0 -121
  294. package/lib/__templates__/react-rsbuild/README.md +0 -61
  295. package/lib/__templates__/react-rsbuild/_gitignore +0 -97
  296. package/lib/__templates__/react-rsbuild/package.json +0 -31
  297. package/lib/__templates__/react-rsbuild/pnpm-lock.yaml +0 -997
  298. package/lib/__templates__/react-rsbuild/rsbuild.config.ts +0 -13
  299. package/lib/__templates__/react-rsbuild/scripts/dev.sh +0 -51
  300. package/lib/__templates__/react-rsbuild/scripts/start.sh +0 -15
  301. package/lib/__templates__/react-rsbuild/src/App.tsx +0 -60
  302. package/lib/__templates__/react-rsbuild/src/index.css +0 -21
  303. package/lib/__templates__/react-rsbuild/src/index.html +0 -12
  304. package/lib/__templates__/react-rsbuild/src/index.tsx +0 -16
  305. package/lib/__templates__/react-rsbuild/tailwind.config.js +0 -9
  306. package/lib/__templates__/react-rsbuild/template.config.js +0 -54
  307. package/lib/__templates__/react-rsbuild/tsconfig.json +0 -17
  308. package/lib/__templates__/rsbuild/.coze +0 -11
  309. package/lib/__templates__/rsbuild/.vscode/settings.json +0 -7
  310. package/lib/__templates__/rsbuild/README.md +0 -61
  311. package/lib/__templates__/rsbuild/_gitignore +0 -97
  312. package/lib/__templates__/rsbuild/package.json +0 -24
  313. package/lib/__templates__/rsbuild/pnpm-lock.yaml +0 -888
  314. package/lib/__templates__/rsbuild/rsbuild.config.ts +0 -12
  315. package/lib/__templates__/rsbuild/scripts/dev.sh +0 -51
  316. package/lib/__templates__/rsbuild/scripts/start.sh +0 -15
  317. package/lib/__templates__/rsbuild/src/index.html +0 -12
  318. package/lib/__templates__/rsbuild/src/index.ts +0 -5
  319. package/lib/__templates__/rsbuild/src/main.ts +0 -65
  320. package/lib/__templates__/rsbuild/tailwind.config.js +0 -9
  321. package/lib/__templates__/rsbuild/template.config.js +0 -54
  322. package/lib/__templates__/rsbuild/tsconfig.json +0 -16
  323. package/lib/__templates__/vite/.vscode/settings.json +0 -7
  324. /package/lib/__templates__/expo/{eslint-formatter-simple.mjs → client/eslint-formatter-simple.mjs} +0 -0
@@ -0,0 +1,28 @@
1
+ import * as React from "react"
2
+ import { View } from "@tarojs/components"
3
+
4
+ import { cn } from "@/lib/utils"
5
+
6
+ const Progress = React.forwardRef<
7
+ React.ElementRef<typeof View>,
8
+ React.ComponentPropsWithoutRef<typeof View> & {
9
+ value?: number | null
10
+ }
11
+ >(({ className, value, ...props }, ref) => (
12
+ <View
13
+ ref={ref}
14
+ className={cn(
15
+ "relative h-1 w-full overflow-hidden rounded-full bg-secondary",
16
+ className
17
+ )}
18
+ {...props}
19
+ >
20
+ <View
21
+ className="h-full w-full flex-1 bg-primary transition-all"
22
+ style={{ transform: `translateX(-${100 - (value || 0)}%)` }}
23
+ />
24
+ </View>
25
+ ))
26
+ Progress.displayName = "Progress"
27
+
28
+ export { Progress }
@@ -0,0 +1,64 @@
1
+ import * as React from "react"
2
+ import { View } from "@tarojs/components"
3
+ import { cn } from "@/lib/utils"
4
+
5
+ const RadioGroupContext = React.createContext<{
6
+ value?: string
7
+ onValueChange?: (value: string) => void
8
+ } | null>(null)
9
+
10
+ const RadioGroup = React.forwardRef<
11
+ React.ElementRef<typeof View>,
12
+ React.ComponentPropsWithoutRef<typeof View> & {
13
+ value?: string
14
+ onValueChange?: (value: string) => void
15
+ defaultValue?: string
16
+ }
17
+ >(({ className, value: valueProp, defaultValue, onValueChange, ...props }, ref) => {
18
+ const [valueState, setValueState] = React.useState<string | undefined>(defaultValue)
19
+ const value = valueProp !== undefined ? valueProp : valueState
20
+
21
+ const handleValueChange = (newValue: string) => {
22
+ if (valueProp === undefined) {
23
+ setValueState(newValue)
24
+ }
25
+ onValueChange?.(newValue)
26
+ }
27
+
28
+ return (
29
+ <RadioGroupContext.Provider value={{ value, onValueChange: handleValueChange }}>
30
+ <View
31
+ className={cn("grid gap-2", className)}
32
+ {...props}
33
+ ref={ref}
34
+ />
35
+ </RadioGroupContext.Provider>
36
+ )
37
+ })
38
+ RadioGroup.displayName = "RadioGroup"
39
+
40
+ const RadioGroupItem = React.forwardRef<
41
+ React.ElementRef<typeof View>,
42
+ React.ComponentPropsWithoutRef<typeof View> & {
43
+ value: string
44
+ }
45
+ >(({ className, value, ...props }, ref) => {
46
+ const context = React.useContext(RadioGroupContext)
47
+ const checked = context?.value === value
48
+
49
+ return (
50
+ <View
51
+ ref={ref}
52
+ className={cn(
53
+ "aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
54
+ checked && "border-10",
55
+ className
56
+ )}
57
+ onClick={() => context?.onValueChange?.(value)}
58
+ {...props}
59
+ />
60
+ )
61
+ })
62
+ RadioGroupItem.displayName = "RadioGroupItem"
63
+
64
+ export { RadioGroup, RadioGroupItem }
@@ -0,0 +1,346 @@
1
+ import * as React from "react"
2
+ import { View } from "@tarojs/components"
3
+ import Taro from "@tarojs/taro"
4
+ import { GripVertical } from "lucide-react-taro"
5
+ import { cn } from "@/lib/utils"
6
+ import { isH5 } from "@/lib/platform"
7
+
8
+ type Direction = "horizontal" | "vertical"
9
+
10
+ function getPoint(e: any) {
11
+ const touch = e?.touches?.[0] || e?.changedTouches?.[0]
12
+ return touch || e
13
+ }
14
+
15
+ const clamp = (v: number, min: number, max: number) => Math.min(Math.max(v, min), max)
16
+
17
+ const ResizablePanelGroup = ({
18
+ className,
19
+ children,
20
+ direction = "horizontal",
21
+ ...props
22
+ }: React.ComponentPropsWithoutRef<typeof View> & {
23
+ direction?: Direction
24
+ }) => {
25
+ const idRef = React.useRef(`resizable-${Math.random().toString(36).slice(2, 11)}`)
26
+ const groupRef = React.useRef<any>(null)
27
+ const sizesRef = React.useRef<number[] | null>(null)
28
+ const [sizes, setSizes] = React.useState<number[] | null>(null)
29
+
30
+ const rectSizeRef = React.useRef<{ width: number; height: number } | null>(null)
31
+ const dragRef = React.useRef<{
32
+ axis: "x" | "y"
33
+ input: "mouse" | "touch"
34
+ leftIndex: number
35
+ startPos: number
36
+ startSizes: number[]
37
+ containerSize: number
38
+ } | null>(null)
39
+
40
+ React.useEffect(() => {
41
+ sizesRef.current = sizes
42
+ }, [sizes])
43
+
44
+ const isPanelElement = React.useCallback((child: any) => {
45
+ return child?.type?.displayName === "ResizablePanel"
46
+ }, [])
47
+
48
+ const isHandleElement = React.useCallback((child: any) => {
49
+ return child?.type?.displayName === "ResizableHandle"
50
+ }, [])
51
+
52
+ const panels = React.useMemo(() => {
53
+ const out: React.ReactElement[] = []
54
+ React.Children.forEach(children as any, (child) => {
55
+ if (!React.isValidElement(child)) return
56
+ if (isPanelElement(child)) out.push(child as any)
57
+ })
58
+ return out
59
+ }, [children, isPanelElement])
60
+
61
+ const measure = React.useCallback(() => {
62
+ const el = groupRef.current
63
+ if (isH5() && typeof el?.getBoundingClientRect === "function") {
64
+ const rect = el.getBoundingClientRect()
65
+ const width = rect?.width
66
+ const height = rect?.height
67
+ if (typeof width === "number" && typeof height === "number") {
68
+ rectSizeRef.current = { width, height }
69
+ return Promise.resolve(rectSizeRef.current)
70
+ }
71
+ }
72
+
73
+ return new Promise<{ width: number; height: number } | null>((resolve) => {
74
+ const query = Taro.createSelectorQuery()
75
+ query
76
+ .select(`#${idRef.current}`)
77
+ .boundingClientRect((res) => {
78
+ const r = Array.isArray(res) ? res[0] : res
79
+ const width = r?.width
80
+ const height = r?.height
81
+ if (typeof width === "number" && typeof height === "number") {
82
+ rectSizeRef.current = { width, height }
83
+ resolve(rectSizeRef.current)
84
+ return
85
+ }
86
+ resolve(null)
87
+ })
88
+ .exec()
89
+ })
90
+ }, [])
91
+
92
+ React.useEffect(() => {
93
+ const defaults = panels.map((p) => {
94
+ const v = (p.props as any)?.defaultSize
95
+ return typeof v === "number" && Number.isFinite(v) ? v : null
96
+ })
97
+ const hasAnyDefault = defaults.some((v) => v != null)
98
+ const next =
99
+ hasAnyDefault
100
+ ? defaults.map((v) => (v == null ? 0 : v))
101
+ : panels.map(() => 100 / Math.max(1, panels.length))
102
+ const total = next.reduce((a, b) => a + b, 0) || 1
103
+ const normalized = next.map((v) => (v / total) * 100)
104
+
105
+ setSizes((prev) => {
106
+ if (prev && prev.length === normalized.length) return prev
107
+ return normalized
108
+ })
109
+ }, [panels])
110
+
111
+ React.useEffect(() => {
112
+ void measure()
113
+ if (!isH5() || typeof window === "undefined") return
114
+ const onResize = () => void measure()
115
+ window.addEventListener("resize", onResize)
116
+ return () => window.removeEventListener("resize", onResize)
117
+ }, [measure])
118
+
119
+ const applyMove = React.useCallback(
120
+ (e: any) => {
121
+ const drag = dragRef.current
122
+ const currentSizes = sizesRef.current
123
+ if (!drag || !currentSizes) return
124
+ const p = getPoint(e)
125
+ const pos = drag.axis === "x" ? p?.pageX : p?.pageY
126
+ if (typeof pos !== "number") return
127
+ if (!drag.containerSize) return
128
+
129
+ const deltaPercent = ((pos - drag.startPos) / drag.containerSize) * 100
130
+ const left = drag.leftIndex
131
+ const right = left + 1
132
+ const total = drag.startSizes[left] + drag.startSizes[right]
133
+ const min = 10
134
+ const nextLeft = clamp(drag.startSizes[left] + deltaPercent, min, total - min)
135
+ const next = drag.startSizes.slice()
136
+ next[left] = nextLeft
137
+ next[right] = total - nextLeft
138
+ setSizes(next)
139
+ },
140
+ []
141
+ )
142
+
143
+ const endDrag = React.useCallback(() => {
144
+ dragRef.current = null
145
+ if (!isH5() || typeof document === "undefined") return
146
+ document.removeEventListener("mousemove", onDocumentMouseMove as any)
147
+ document.removeEventListener("mouseup", onDocumentMouseUp as any)
148
+ document.removeEventListener("touchmove", onDocumentTouchMove as any, { passive: false } as any)
149
+ document.removeEventListener("touchend", onDocumentTouchEnd as any)
150
+ document.removeEventListener("touchcancel", onDocumentTouchEnd as any)
151
+ }, [])
152
+
153
+ const onDocumentMouseMove = React.useCallback((e: any) => applyMove(e), [applyMove])
154
+ const onDocumentMouseUp = React.useCallback(() => endDrag(), [endDrag])
155
+ const onDocumentTouchMove = React.useCallback(
156
+ (e: any) => {
157
+ const drag = dragRef.current
158
+ if (!drag || drag.input !== "touch") return
159
+ e?.preventDefault?.()
160
+ applyMove(e)
161
+ },
162
+ [applyMove]
163
+ )
164
+ const onDocumentTouchEnd = React.useCallback(() => endDrag(), [endDrag])
165
+
166
+ React.useEffect(() => {
167
+ return () => endDrag()
168
+ }, [endDrag])
169
+
170
+ const startDrag = React.useCallback(
171
+ async (leftIndex: number, e: any) => {
172
+ const currentSizes = sizesRef.current
173
+ if (!currentSizes) return
174
+ if (leftIndex < 0 || leftIndex >= currentSizes.length - 1) return
175
+
176
+ const axis = direction === "horizontal" ? "x" : "y"
177
+ const p = getPoint(e)
178
+ const pos = axis === "x" ? p?.pageX : p?.pageY
179
+ if (typeof pos !== "number") return
180
+ const input: "mouse" | "touch" = (e as any)?.touches?.length ? "touch" : "mouse"
181
+
182
+ const rect = rectSizeRef.current || (await measure())
183
+ const containerSize = axis === "x" ? rect?.width : rect?.height
184
+ if (!containerSize) return
185
+
186
+ dragRef.current = {
187
+ axis,
188
+ input,
189
+ leftIndex,
190
+ startPos: pos,
191
+ startSizes: currentSizes.slice(),
192
+ containerSize,
193
+ }
194
+ e?.preventDefault?.()
195
+
196
+ if (isH5() && typeof document !== "undefined") {
197
+ if (input === "mouse") {
198
+ document.addEventListener("mousemove", onDocumentMouseMove as any)
199
+ document.addEventListener("mouseup", onDocumentMouseUp as any)
200
+ } else {
201
+ document.addEventListener("touchmove", onDocumentTouchMove as any, { passive: false } as any)
202
+ document.addEventListener("touchend", onDocumentTouchEnd as any)
203
+ document.addEventListener("touchcancel", onDocumentTouchEnd as any)
204
+ }
205
+ }
206
+ },
207
+ [
208
+ direction,
209
+ measure,
210
+ onDocumentMouseMove,
211
+ onDocumentMouseUp,
212
+ onDocumentTouchEnd,
213
+ onDocumentTouchMove,
214
+ ]
215
+ )
216
+
217
+ const onGroupTouchMove = React.useCallback(
218
+ (e: any) => {
219
+ const drag = dragRef.current
220
+ if (!drag || drag.input !== "touch") return
221
+ e?.preventDefault?.()
222
+ applyMove(e)
223
+ },
224
+ [applyMove]
225
+ )
226
+
227
+ const onGroupTouchEnd = React.useCallback(() => endDrag(), [endDrag])
228
+
229
+ let panelIndex = 0
230
+ let handleIndex = 0
231
+
232
+ return (
233
+ <View
234
+ id={idRef.current}
235
+ ref={groupRef}
236
+ className={cn(
237
+ "flex h-full w-full items-stretch overflow-hidden",
238
+ direction === "vertical" ? "flex-col" : "flex-row",
239
+ className
240
+ )}
241
+ {...props}
242
+ onTouchMove={onGroupTouchMove}
243
+ onTouchEnd={onGroupTouchEnd}
244
+ onTouchCancel={onGroupTouchEnd as any}
245
+ >
246
+ {React.Children.map(children as any, (child) => {
247
+ if (!React.isValidElement(child)) return child
248
+
249
+ if (isPanelElement(child)) {
250
+ const size = sizes?.[panelIndex]
251
+ const cloned = React.cloneElement(child as any, {
252
+ __size: typeof size === "number" ? size : undefined,
253
+ __direction: direction,
254
+ })
255
+ panelIndex += 1
256
+ return cloned
257
+ }
258
+
259
+ if (isHandleElement(child)) {
260
+ const leftIndex = panelIndex - 1
261
+ const cursorClass =
262
+ direction === "horizontal" ? "cursor-col-resize" : "cursor-row-resize"
263
+ const cloned = React.cloneElement(child as any, {
264
+ __direction: direction,
265
+ className: cn(cursorClass, (child.props as any)?.className),
266
+ onTouchStart: (e: any) => void startDrag(leftIndex, e),
267
+ // @ts-ignore
268
+ onMouseDown: (e: any) => void startDrag(leftIndex, e),
269
+ "data-handle-index": handleIndex,
270
+ })
271
+ handleIndex += 1
272
+ return cloned
273
+ }
274
+
275
+ return child
276
+ })}
277
+ </View>
278
+ )
279
+ }
280
+
281
+ const ResizablePanel = ({
282
+ className,
283
+ children,
284
+ defaultSize,
285
+ __size,
286
+ __direction,
287
+ ...props
288
+ }: React.ComponentPropsWithoutRef<typeof View> & {
289
+ defaultSize?: number
290
+ __size?: number
291
+ __direction?: Direction
292
+ }) => (
293
+ <View
294
+ {...props}
295
+ className={cn("flex min-h-0 min-w-0 flex-col overflow-hidden", className)}
296
+ style={{
297
+ flexBasis: 0,
298
+ flexGrow: __size ?? defaultSize ?? 1,
299
+ flexShrink: 1,
300
+ minWidth: 0,
301
+ minHeight: 0,
302
+ ...(props as any)?.style,
303
+ }}
304
+ >
305
+ {children}
306
+ </View>
307
+ )
308
+
309
+ const ResizableHandle = ({
310
+ withHandle,
311
+ className,
312
+ __direction,
313
+ ...props
314
+ }: React.ComponentPropsWithoutRef<typeof View> & {
315
+ withHandle?: boolean
316
+ __direction?: Direction
317
+ }) => (
318
+ <View
319
+ {...props}
320
+ className={cn(
321
+ "relative flex shrink-0 items-center justify-center bg-transparent",
322
+ __direction === "vertical" ? "h-3 self-stretch" : "w-3 self-stretch",
323
+ className
324
+ )}
325
+ >
326
+ <View
327
+ className={cn(
328
+ "absolute bg-border",
329
+ __direction === "vertical"
330
+ ? "inset-x-0 top-1/2 -translate-y-1/2"
331
+ : "inset-y-0 left-1/2 -translate-x-1/2"
332
+ )}
333
+ style={__direction === "vertical" ? { height: "1PX" } : { width: "1PX" }}
334
+ />
335
+ {withHandle && (
336
+ <View className="z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border">
337
+ <GripVertical className="h-3 w-3" />
338
+ </View>
339
+ )}
340
+ </View>
341
+ )
342
+
343
+ ;(ResizablePanel as any).displayName = "ResizablePanel"
344
+ ;(ResizableHandle as any).displayName = "ResizableHandle"
345
+
346
+ export { ResizablePanelGroup, ResizablePanel, ResizableHandle }
@@ -0,0 +1,34 @@
1
+ import * as React from "react"
2
+ import { ScrollView } from "@tarojs/components"
3
+ import { cn } from "@/lib/utils"
4
+
5
+ const ScrollArea = React.forwardRef<
6
+ React.ElementRef<typeof ScrollView>,
7
+ React.ComponentPropsWithoutRef<typeof ScrollView> & {
8
+ orientation?: "vertical" | "horizontal" | "both"
9
+ }
10
+ >(({ className, children, orientation = "vertical", ...props }, ref) => {
11
+ const scrollX = orientation === "horizontal" || orientation === "both"
12
+ const scrollY = orientation === "vertical" || orientation === "both"
13
+
14
+ return (
15
+ <ScrollView
16
+ ref={ref}
17
+ className={cn("relative", className)}
18
+ scrollY={scrollY}
19
+ scrollX={scrollX}
20
+ style={{
21
+ overflowX: scrollX ? 'auto' : 'hidden',
22
+ overflowY: scrollY ? 'auto' : 'hidden',
23
+ }}
24
+ {...props}
25
+ >
26
+ {children}
27
+ </ScrollView>
28
+ )
29
+ })
30
+ ScrollArea.displayName = "ScrollArea"
31
+
32
+ const ScrollBar = () => null // Taro ScrollView handles scrollbars natively
33
+
34
+ export { ScrollArea, ScrollBar }