create-bubbles 0.1.19 → 0.1.22

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 (487) hide show
  1. package/dist/{index.js → index.mjs} +9 -7
  2. package/package.json +7 -5
  3. package/template-nextjs-vinext-eslint/.dockerignore +3 -0
  4. package/template-nextjs-vinext-eslint/.vscode/settings.json +53 -0
  5. package/template-nextjs-vinext-eslint/Dockerfile +21 -0
  6. package/template-nextjs-vinext-eslint/README.md +100 -0
  7. package/template-nextjs-vinext-eslint/commitlint.config.js +1 -0
  8. package/template-nextjs-vinext-eslint/docker-compose.yaml +22 -0
  9. package/template-nextjs-vinext-eslint/eslint.config.js +20 -0
  10. package/template-nextjs-vinext-eslint/lefthook.yml +11 -0
  11. package/template-nextjs-vinext-eslint/next.config.ts +8 -0
  12. package/template-nextjs-vinext-eslint/nginx.conf +14 -0
  13. package/template-nextjs-vinext-eslint/package.json +50 -0
  14. package/template-nextjs-vinext-eslint/pnpm-workspace.yaml +7 -0
  15. package/template-nextjs-vinext-eslint/public/file.svg +1 -0
  16. package/template-nextjs-vinext-eslint/public/globe.svg +1 -0
  17. package/template-nextjs-vinext-eslint/public/logo-white.svg +128 -0
  18. package/template-nextjs-vinext-eslint/public/next.svg +1 -0
  19. package/template-nextjs-vinext-eslint/public/vercel.svg +1 -0
  20. package/template-nextjs-vinext-eslint/public/window.svg +1 -0
  21. package/template-nextjs-vinext-eslint/src/app/_components/Header/header.module.css +0 -0
  22. package/template-nextjs-vinext-eslint/src/app/_components/Header/header.tsx +7 -0
  23. package/template-nextjs-vinext-eslint/src/app/_components/Main/index.tsx +13 -0
  24. package/template-nextjs-vinext-eslint/src/app/antd-provider.tsx +30 -0
  25. package/template-nextjs-vinext-eslint/src/app/icon.svg +26 -0
  26. package/template-nextjs-vinext-eslint/src/app/layout.tsx +68 -0
  27. package/template-nextjs-vinext-eslint/src/app/page.module.css +141 -0
  28. package/template-nextjs-vinext-eslint/src/app/page.tsx +43 -0
  29. package/template-nextjs-vinext-eslint/src/app/uno-css.tsx +7 -0
  30. package/template-nextjs-vinext-eslint/src/assets/icon/logo-white.svg +128 -0
  31. package/template-nextjs-vinext-eslint/src/assets/icon/logo.svg +26 -0
  32. package/template-nextjs-vinext-eslint/src/assets/image/QR.png +0 -0
  33. package/template-nextjs-vinext-eslint/src/assets/image/banner_1.png +0 -0
  34. package/template-nextjs-vinext-eslint/src/assets/image/banner_2.png +0 -0
  35. package/template-nextjs-vinext-eslint/src/assets/image/banner_3.png +0 -0
  36. package/template-nextjs-vinext-eslint/src/assets/image/banner_4.png +0 -0
  37. package/template-nextjs-vinext-eslint/src/assets/image/banner_top.png +0 -0
  38. package/template-nextjs-vinext-eslint/src/assets/image/icon_title_left.png +0 -0
  39. package/template-nextjs-vinext-eslint/src/assets/image/icon_title_right.png +0 -0
  40. package/template-nextjs-vinext-eslint/src/assets/image/img.png +0 -0
  41. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_COCT.png +0 -0
  42. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/344/270/207/347/247/221.png +0 -0
  43. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/344/270/255/345/205/264.png +0 -0
  44. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/344/270/255/345/206/266/345/273/272/345/267/245.png +0 -0
  45. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/344/270/255/345/233/275/344/270/255/351/223/201.png +0 -0
  46. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/344/270/255/345/233/275/344/272/224/345/206/266.png +0 -0
  47. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/344/270/255/345/233/275/344/272/244/351/200/232/345/273/272/350/256/276.png +0 -0
  48. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/344/270/255/345/233/275/345/273/272/344/270/232.png +0 -0
  49. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/344/270/255/345/233/275/345/273/272/347/255/221/347/247/221/345/255/246/351/231/242.png +0 -0
  50. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/344/270/255/345/233/275/347/224/265/345/273/272.png +0 -0
  51. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/344/270/255/345/233/275/351/223/201/345/273/272.png +0 -0
  52. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/345/256/234/351/200/232/344/270/226/347/272/252.png +0 -0
  53. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/346/225/260/347/273/264/347/251/272/351/227/264.png +0 -0
  54. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/346/226/260/346/230/212/350/276/260/345/273/272/350/256/276.png +0 -0
  55. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/346/236/227/345/220/214/346/243/252/345/233/275/351/231/205.png +0 -0
  56. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/346/270/235/351/232/206/351/233/206/345/233/242.png +0 -0
  57. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/347/273/264/345/241/224/347/247/221/346/212/200.png +0 -0
  58. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/350/205/276/350/256/257.png +0 -0
  59. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/350/265/233/350/277/252/344/277/241/346/201/257.png +0 -0
  60. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/351/207/215/345/272/206/344/272/244/351/200/232/345/244/247/345/255/246.png +0 -0
  61. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/351/207/215/345/272/206/344/272/244/351/200/232/350/201/214/344/270/232/345/255/246/351/231/242.png +0 -0
  62. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/351/207/215/345/272/206/345/244/247/345/255/246.png +0 -0
  63. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/351/207/215/345/272/206/345/267/245/345/225/206/350/201/214/344/270/232/345/255/246/351/231/242.png +0 -0
  64. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/351/207/215/345/272/206/345/267/245/347/250/213/350/201/214/344/270/232/346/212/200/346/234/257/345/255/246/351/231/242.png +0 -0
  65. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/351/207/215/345/272/206/345/273/272/345/267/245.png +0 -0
  66. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/351/230/277/351/207/214/344/272/221.png +0 -0
  67. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/351/231/206/345/206/233/345/206/233/345/214/273/345/244/247/345/255/246.png +0 -0
  68. package/template-nextjs-vinext-eslint/src/assets/image/parteners/logo_/351/276/231/346/271/226.png +0 -0
  69. package/template-nextjs-vinext-eslint/src/styles/globals.css +47 -0
  70. package/template-nextjs-vinext-eslint/src/types/vite-env.d.ts +18 -0
  71. package/template-nextjs-vinext-eslint/src/utils/env.ts +14 -0
  72. package/template-nextjs-vinext-eslint/src/utils/index.ts +0 -0
  73. package/template-nextjs-vinext-eslint/src/utils/request/core/index.ts +425 -0
  74. package/template-nextjs-vinext-eslint/src/utils/request/core/utils.ts +39 -0
  75. package/template-nextjs-vinext-eslint/src/utils/request/index.ts +48 -0
  76. package/template-nextjs-vinext-eslint/tsconfig.json +34 -0
  77. package/template-nextjs-vinext-eslint/uno.config.ts +8 -0
  78. package/template-nextjs-vinext-eslint/vite.config.ts +8 -0
  79. package/template-react-rsbuild-biome/.env +5 -0
  80. package/template-react-rsbuild-biome/.env.development +1 -0
  81. package/template-react-rsbuild-biome/.env.production +1 -0
  82. package/template-react-rsbuild-biome/.prettierignore +34 -0
  83. package/template-react-rsbuild-biome/.prettierrc +16 -0
  84. package/template-react-rsbuild-biome/.vscode/settings.json +10 -0
  85. package/template-react-rsbuild-biome/README.md +29 -0
  86. package/template-react-rsbuild-biome/biome.json +116 -0
  87. package/template-react-rsbuild-biome/commitlint.config.js +1 -0
  88. package/template-react-rsbuild-biome/index.html +7 -0
  89. package/template-react-rsbuild-biome/lefthook.yml +14 -0
  90. package/template-react-rsbuild-biome/package.json +42 -0
  91. package/template-react-rsbuild-biome/public/.gitkeep +0 -0
  92. package/template-react-rsbuild-biome/rsbuild.config.ts +44 -0
  93. package/template-react-rsbuild-biome/src/App.tsx +9 -0
  94. package/template-react-rsbuild-biome/src/assets/font/AlimamaShuHeiTi-Bold.ttf +0 -0
  95. package/template-react-rsbuild-biome/src/assets/icon/logo.svg +7 -0
  96. package/template-react-rsbuild-biome/src/components/Loading/PageLoading.tsx +11 -0
  97. package/template-react-rsbuild-biome/src/env.d.ts +1 -0
  98. package/template-react-rsbuild-biome/src/index.tsx +18 -0
  99. package/template-react-rsbuild-biome/src/layout/default/index.tsx +10 -0
  100. package/template-react-rsbuild-biome/src/pages/home/index.tsx +5 -0
  101. package/template-react-rsbuild-biome/src/router/index.tsx +38 -0
  102. package/template-react-rsbuild-biome/src/store/index.ts +0 -0
  103. package/template-react-rsbuild-biome/src/store/modules/user.ts +11 -0
  104. package/template-react-rsbuild-biome/src/styles/fonts.scss +4 -0
  105. package/template-react-rsbuild-biome/src/styles/index.scss +19 -0
  106. package/template-react-rsbuild-biome/src/styles/variables.scss +4 -0
  107. package/template-react-rsbuild-biome/src/types/auto-import.d.ts +49 -0
  108. package/template-react-rsbuild-biome/src/utils/env.ts +10 -0
  109. package/template-react-rsbuild-biome/src/utils/request/core/index.ts +425 -0
  110. package/template-react-rsbuild-biome/src/utils/request/core/utils.ts +39 -0
  111. package/template-react-rsbuild-biome/src/utils/request/index.ts +42 -0
  112. package/template-react-rsbuild-biome/tsconfig.json +35 -0
  113. package/template-react-rsbuild-biome/uno.config.ts +8 -0
  114. package/template-taro-react-oxc/.editorconfig +12 -0
  115. package/template-taro-react-oxc/.env +1 -0
  116. package/template-taro-react-oxc/.env.development +6 -0
  117. package/template-taro-react-oxc/.env.production +5 -0
  118. package/template-taro-react-oxc/.oxfmtrc.json +12 -0
  119. package/template-taro-react-oxc/.oxlintrc.json +9 -0
  120. package/template-taro-react-oxc/.vscode/settings.json +13 -0
  121. package/template-taro-react-oxc/babel.config.js +45 -0
  122. package/template-taro-react-oxc/commitlint.config.mjs +1 -0
  123. package/template-taro-react-oxc/config/dev.ts +10 -0
  124. package/template-taro-react-oxc/config/index.ts +172 -0
  125. package/template-taro-react-oxc/config/prod.ts +39 -0
  126. package/template-taro-react-oxc/config/release.ts +106 -0
  127. package/template-taro-react-oxc/key/.gitkeep +0 -0
  128. package/template-taro-react-oxc/lefthook.yaml +18 -0
  129. package/template-taro-react-oxc/package.json +118 -0
  130. package/template-taro-react-oxc/patches/@tarojs__plugin-mini-ci.patch +13 -0
  131. package/template-taro-react-oxc/pnpm-workspace.yaml +13 -0
  132. package/template-taro-react-oxc/postcss.config.js +6 -0
  133. package/template-taro-react-oxc/project.config.json +15 -0
  134. package/template-taro-react-oxc/src/app.config.ts +11 -0
  135. package/template-taro-react-oxc/src/app.ts +14 -0
  136. package/template-taro-react-oxc/src/index.html +17 -0
  137. package/template-taro-react-oxc/src/pages/index/index.config.ts +3 -0
  138. package/template-taro-react-oxc/src/pages/index/index.scss +0 -0
  139. package/template-taro-react-oxc/src/pages/index/index.tsx +44 -0
  140. package/template-taro-react-oxc/src/store/taroStorage.ts +7 -0
  141. package/template-taro-react-oxc/src/store/user.ts +13 -0
  142. package/template-taro-react-oxc/src/styles/index.css +1 -0
  143. package/template-taro-react-oxc/src/utils/env.ts +10 -0
  144. package/template-taro-react-oxc/src/utils/request/core/index.ts +425 -0
  145. package/template-taro-react-oxc/src/utils/request/core/utils.ts +39 -0
  146. package/template-taro-react-oxc/src/utils/request/index.ts +37 -0
  147. package/template-taro-react-oxc/stylelint.config.mjs +28 -0
  148. package/template-taro-react-oxc/tailwind.config.js +12 -0
  149. package/template-taro-react-oxc/tsconfig.json +28 -0
  150. package/template-taro-react-oxc/types/global.d.ts +29 -0
  151. package/template-taro-vue-eslint/.editorconfig +12 -0
  152. package/template-taro-vue-eslint/.env +3 -0
  153. package/template-taro-vue-eslint/.env.development +5 -0
  154. package/template-taro-vue-eslint/.env.production +5 -0
  155. package/template-taro-vue-eslint/.vscode/settings.json +57 -0
  156. package/template-taro-vue-eslint/babel.config.js +12 -0
  157. package/template-taro-vue-eslint/commitlint.config.mjs +1 -0
  158. package/template-taro-vue-eslint/config/dev.ts +27 -0
  159. package/template-taro-vue-eslint/config/index.ts +134 -0
  160. package/template-taro-vue-eslint/config/output-root.ts +11 -0
  161. package/template-taro-vue-eslint/config/prod.ts +39 -0
  162. package/template-taro-vue-eslint/config/release.ts +113 -0
  163. package/template-taro-vue-eslint/eslint.config.mjs +22 -0
  164. package/template-taro-vue-eslint/lefthook.yaml +13 -0
  165. package/template-taro-vue-eslint/package.json +115 -0
  166. package/template-taro-vue-eslint/patches/@tarojs__plugin-mini-ci.patch +13 -0
  167. package/template-taro-vue-eslint/pnpm-workspace.yaml +13 -0
  168. package/template-taro-vue-eslint/project.config.json +16 -0
  169. package/template-taro-vue-eslint/src/api/common/upload.ts +53 -0
  170. package/template-taro-vue-eslint/src/app.config.ts +19 -0
  171. package/template-taro-vue-eslint/src/app.ts +14 -0
  172. package/template-taro-vue-eslint/src/assets/image/.gitkeep +0 -0
  173. package/template-taro-vue-eslint/src/index.html +17 -0
  174. package/template-taro-vue-eslint/src/pages/example/upload/index.config.ts +3 -0
  175. package/template-taro-vue-eslint/src/pages/example/upload/index.module.scss +4 -0
  176. package/template-taro-vue-eslint/src/pages/example/upload/index.vue +71 -0
  177. package/template-taro-vue-eslint/src/pages/index/index.config.ts +3 -0
  178. package/template-taro-vue-eslint/src/pages/index/index.module.scss +4 -0
  179. package/template-taro-vue-eslint/src/pages/index/index.vue +77 -0
  180. package/template-taro-vue-eslint/src/store/index.ts +10 -0
  181. package/template-taro-vue-eslint/src/store/modules/user.ts +15 -0
  182. package/template-taro-vue-eslint/src/store/taroStorage.ts +7 -0
  183. package/template-taro-vue-eslint/src/styles/index.css +1 -0
  184. package/template-taro-vue-eslint/src/styles/nut-theme.css +4 -0
  185. package/template-taro-vue-eslint/src/utils/env.ts +13 -0
  186. package/template-taro-vue-eslint/src/utils/index.ts +40 -0
  187. package/template-taro-vue-eslint/src/utils/request/core/index.ts +425 -0
  188. package/template-taro-vue-eslint/src/utils/request/core/utils.ts +39 -0
  189. package/template-taro-vue-eslint/src/utils/request/index.ts +73 -0
  190. package/template-taro-vue-eslint/tsconfig.json +30 -0
  191. package/template-taro-vue-eslint/types/components.d.ts +16 -0
  192. package/template-taro-vue-eslint/types/global.d.ts +31 -0
  193. package/template-taro-vue-eslint/types/vue.d.ts +10 -0
  194. package/template-taro-vue-eslint/unocss.config.ts +42 -0
  195. package/template-vp-monorepo-react-nestjs/.agents/auth.config.ts +0 -0
  196. package/template-vp-monorepo-react-nestjs/.spaces/server//347/231/273/345/275/225/JWT/344/270/216RefreshToken/350/275/256/346/215/242/351/211/264/346/235/203/346/236/266/346/236/204/345/256/236/347/216/260/346/214/207/345/215/227.md +6614 -0
  197. package/template-vp-monorepo-react-nestjs/.vite-hooks/commit-msg +2 -0
  198. package/template-vp-monorepo-react-nestjs/.vite-hooks/pre-commit +2 -0
  199. package/template-vp-monorepo-react-nestjs/.vscode/settings.json +25 -0
  200. package/template-vp-monorepo-react-nestjs/AGENTS.md +16 -0
  201. package/template-vp-monorepo-react-nestjs/README.md +29 -0
  202. package/template-vp-monorepo-react-nestjs/apps/server/.env.development +61 -0
  203. package/template-vp-monorepo-react-nestjs/apps/server/.env.production +20 -0
  204. package/template-vp-monorepo-react-nestjs/apps/server/README.md +3 -0
  205. package/template-vp-monorepo-react-nestjs/apps/server/drizzle.config.ts +15 -0
  206. package/template-vp-monorepo-react-nestjs/apps/server/nest-cli.json +8 -0
  207. package/template-vp-monorepo-react-nestjs/apps/server/package.json +57 -0
  208. package/template-vp-monorepo-react-nestjs/apps/server/src/app.controller.ts +12 -0
  209. package/template-vp-monorepo-react-nestjs/apps/server/src/app.module.ts +58 -0
  210. package/template-vp-monorepo-react-nestjs/apps/server/src/app.service.ts +8 -0
  211. package/template-vp-monorepo-react-nestjs/apps/server/src/common/constants/decorator.ts +2 -0
  212. package/template-vp-monorepo-react-nestjs/apps/server/src/common/constants/response.ts +15 -0
  213. package/template-vp-monorepo-react-nestjs/apps/server/src/common/decorators/bypass.ts +12 -0
  214. package/template-vp-monorepo-react-nestjs/apps/server/src/common/interceptors/transform.ts +34 -0
  215. package/template-vp-monorepo-react-nestjs/apps/server/src/common/model/response.ts +23 -0
  216. package/template-vp-monorepo-react-nestjs/apps/server/src/config/app.config.ts +6 -0
  217. package/template-vp-monorepo-react-nestjs/apps/server/src/config/auth.config.ts +64 -0
  218. package/template-vp-monorepo-react-nestjs/apps/server/src/config/database.config.ts +10 -0
  219. package/template-vp-monorepo-react-nestjs/apps/server/src/config/index.ts +5 -0
  220. package/template-vp-monorepo-react-nestjs/apps/server/src/config/llm.config.ts +7 -0
  221. package/template-vp-monorepo-react-nestjs/apps/server/src/config/redis.config.ts +18 -0
  222. package/template-vp-monorepo-react-nestjs/apps/server/src/config/security.config.ts +0 -0
  223. package/template-vp-monorepo-react-nestjs/apps/server/src/database/db.module.ts +32 -0
  224. package/template-vp-monorepo-react-nestjs/apps/server/src/database/schema.ts +14 -0
  225. package/template-vp-monorepo-react-nestjs/apps/server/src/main.ts +34 -0
  226. package/template-vp-monorepo-react-nestjs/apps/server/src/modules/test/db/db.controller.ts +28 -0
  227. package/template-vp-monorepo-react-nestjs/apps/server/src/modules/test/db/db.module.ts +9 -0
  228. package/template-vp-monorepo-react-nestjs/apps/server/src/modules/test/db/db.service.ts +22 -0
  229. package/template-vp-monorepo-react-nestjs/apps/server/src/modules/test/db/dto/create-user.dto.ts +27 -0
  230. package/template-vp-monorepo-react-nestjs/apps/server/src/modules/test/redis/dto/redis-quary.dto.ts +18 -0
  231. package/template-vp-monorepo-react-nestjs/apps/server/src/modules/test/redis/redis.controller.ts +31 -0
  232. package/template-vp-monorepo-react-nestjs/apps/server/src/modules/test/redis/redis.module.ts +9 -0
  233. package/template-vp-monorepo-react-nestjs/apps/server/src/modules/test/redis/redis.service.ts +37 -0
  234. package/template-vp-monorepo-react-nestjs/apps/server/src/utils/server-address.ts +33 -0
  235. package/template-vp-monorepo-react-nestjs/apps/server/tsconfig.build.json +4 -0
  236. package/template-vp-monorepo-react-nestjs/apps/server/tsconfig.json +28 -0
  237. package/template-vp-monorepo-react-nestjs/apps/web/.env +2 -0
  238. package/template-vp-monorepo-react-nestjs/apps/web/.env.dev +1 -0
  239. package/template-vp-monorepo-react-nestjs/apps/web/.env.prod +1 -0
  240. package/template-vp-monorepo-react-nestjs/apps/web/index.html +13 -0
  241. package/template-vp-monorepo-react-nestjs/apps/web/package.json +35 -0
  242. package/template-vp-monorepo-react-nestjs/apps/web/public/favicon.svg +1 -0
  243. package/template-vp-monorepo-react-nestjs/apps/web/public/icons.svg +24 -0
  244. package/template-vp-monorepo-react-nestjs/apps/web/src/App.tsx +25 -0
  245. package/template-vp-monorepo-react-nestjs/apps/web/src/assets/hero.png +0 -0
  246. package/template-vp-monorepo-react-nestjs/apps/web/src/assets/react.svg +1 -0
  247. package/template-vp-monorepo-react-nestjs/apps/web/src/assets/vite.svg +1 -0
  248. package/template-vp-monorepo-react-nestjs/apps/web/src/components/Loading/PageLoading.tsx +11 -0
  249. package/template-vp-monorepo-react-nestjs/apps/web/src/locales/en_US.json +4 -0
  250. package/template-vp-monorepo-react-nestjs/apps/web/src/locales/zh_CN.json +4 -0
  251. package/template-vp-monorepo-react-nestjs/apps/web/src/main.tsx +5 -0
  252. package/template-vp-monorepo-react-nestjs/apps/web/src/pages/home/index.tsx +47 -0
  253. package/template-vp-monorepo-react-nestjs/apps/web/src/router/index.tsx +25 -0
  254. package/template-vp-monorepo-react-nestjs/apps/web/src/router/modules/.gitkeep +0 -0
  255. package/template-vp-monorepo-react-nestjs/apps/web/src/styles/index.css +7 -0
  256. package/template-vp-monorepo-react-nestjs/apps/web/src/types/auto-imports.d.ts +58 -0
  257. package/template-vp-monorepo-react-nestjs/apps/web/src/utils/env/index.ts +6 -0
  258. package/template-vp-monorepo-react-nestjs/apps/web/src/utils/request/core/index.ts +420 -0
  259. package/template-vp-monorepo-react-nestjs/apps/web/src/utils/request/core/utils.ts +39 -0
  260. package/template-vp-monorepo-react-nestjs/apps/web/src/utils/request/index.ts +61 -0
  261. package/template-vp-monorepo-react-nestjs/apps/web/tsconfig.json +28 -0
  262. package/template-vp-monorepo-react-nestjs/apps/web/vite.config.ts +45 -0
  263. package/template-vp-monorepo-react-nestjs/apps/web-vue/.env +6 -0
  264. package/template-vp-monorepo-react-nestjs/apps/web-vue/.env.development +2 -0
  265. package/template-vp-monorepo-react-nestjs/apps/web-vue/.env.production +2 -0
  266. package/template-vp-monorepo-react-nestjs/apps/web-vue/.vscode/extensions.json +3 -0
  267. package/template-vp-monorepo-react-nestjs/apps/web-vue/AGENTS.md +16 -0
  268. package/template-vp-monorepo-react-nestjs/apps/web-vue/README.md +98 -0
  269. package/template-vp-monorepo-react-nestjs/apps/web-vue/commitlint.config.js +1 -0
  270. package/template-vp-monorepo-react-nestjs/apps/web-vue/eslint.config.js +13 -0
  271. package/template-vp-monorepo-react-nestjs/apps/web-vue/index.html +13 -0
  272. package/template-vp-monorepo-react-nestjs/apps/web-vue/lefthook.yml +11 -0
  273. package/template-vp-monorepo-react-nestjs/apps/web-vue/package.json +67 -0
  274. package/template-vp-monorepo-react-nestjs/apps/web-vue/pnpm-workspace.yaml +16 -0
  275. package/template-vp-monorepo-react-nestjs/apps/web-vue/public/vite.svg +1 -0
  276. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/App.vue +12 -0
  277. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/api/index.ts +12 -0
  278. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/assets/icon/computer-data.svg +3 -0
  279. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/assets/icon/cpu.svg +3 -0
  280. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/assets/icon/data-search.svg +3 -0
  281. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/assets/icon/home.svg +3 -0
  282. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/assets/icon/knowledge-graph.svg +3 -0
  283. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/assets/icon/logo.svg +1 -0
  284. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/assets/icon/robot.svg +3 -0
  285. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/assets/image/.gitkeep +0 -0
  286. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/components/Icon/svg-icon.vue +29 -0
  287. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/hooks/chart/lib.ts +57 -0
  288. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/hooks/chart/useEcharts.ts +65 -0
  289. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/i18n/instance.ts +8 -0
  290. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/layout/default/header/index.vue +30 -0
  291. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/layout/default/index.vue +138 -0
  292. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/locales/en_US.json +4 -0
  293. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/locales/zh_CN.json +4 -0
  294. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/main.ts +13 -0
  295. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/router/guard/index.ts +7 -0
  296. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/router/guard/permissionGuard.ts +13 -0
  297. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/router/index.ts +18 -0
  298. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/router/interface.ts +9 -0
  299. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/router/modules/index.ts +33 -0
  300. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/store/index.ts +11 -0
  301. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/store/modules/user.ts +17 -0
  302. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/styles/font.scss +0 -0
  303. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/styles/index.scss +29 -0
  304. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/styles/variables.scss +3 -0
  305. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/types/auto-import.d.ts +78 -0
  306. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/types/components.d.ts +26 -0
  307. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/types/vite-env.d.ts +15 -0
  308. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/utils/env.ts +11 -0
  309. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/utils/request/core/index.ts +425 -0
  310. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/utils/request/core/utils.ts +39 -0
  311. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/utils/request/index.ts +44 -0
  312. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/views/example/echart/config.ts +1794 -0
  313. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/views/example/echart/index.vue +20 -0
  314. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/views/example/tree-chart.vue +16 -0
  315. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/views/home/index.vue +27 -0
  316. package/template-vp-monorepo-react-nestjs/apps/web-vue/src/views/login/index.vue +9 -0
  317. package/template-vp-monorepo-react-nestjs/apps/web-vue/tsconfig.json +29 -0
  318. package/template-vp-monorepo-react-nestjs/apps/web-vue/uno.config.ts +17 -0
  319. package/template-vp-monorepo-react-nestjs/apps/web-vue/vite.config.ts +58 -0
  320. package/template-vp-monorepo-react-nestjs/commitlint.config.js +1 -0
  321. package/template-vp-monorepo-react-nestjs/docker-compose.yml +41 -0
  322. package/template-vp-monorepo-react-nestjs/mise.toml +3 -0
  323. package/template-vp-monorepo-react-nestjs/package.json +25 -0
  324. package/template-vp-monorepo-react-nestjs/packages/i18n/core/package.json +20 -0
  325. package/template-vp-monorepo-react-nestjs/packages/i18n/core/src/format.ts +9 -0
  326. package/template-vp-monorepo-react-nestjs/packages/i18n/core/src/i18n.ts +73 -0
  327. package/template-vp-monorepo-react-nestjs/packages/i18n/core/src/index.ts +24 -0
  328. package/template-vp-monorepo-react-nestjs/packages/i18n/core/src/storage.ts +47 -0
  329. package/template-vp-monorepo-react-nestjs/packages/i18n/core/src/store.ts +48 -0
  330. package/template-vp-monorepo-react-nestjs/packages/i18n/core/src/types.ts +36 -0
  331. package/template-vp-monorepo-react-nestjs/packages/i18n/core/tsconfig.json +15 -0
  332. package/template-vp-monorepo-react-nestjs/packages/i18n/core/vite.config.ts +13 -0
  333. package/template-vp-monorepo-react-nestjs/packages/i18n/react/package.json +28 -0
  334. package/template-vp-monorepo-react-nestjs/packages/i18n/react/src/index.tsx +26 -0
  335. package/template-vp-monorepo-react-nestjs/packages/i18n/react/src/use-store.ts +14 -0
  336. package/template-vp-monorepo-react-nestjs/packages/i18n/react/tsconfig.json +16 -0
  337. package/template-vp-monorepo-react-nestjs/packages/i18n/react/vite.config.ts +16 -0
  338. package/template-vp-monorepo-react-nestjs/packages/i18n/vue/package.json +27 -0
  339. package/template-vp-monorepo-react-nestjs/packages/i18n/vue/src/index.ts +52 -0
  340. package/template-vp-monorepo-react-nestjs/packages/i18n/vue/src/use-store.ts +19 -0
  341. package/template-vp-monorepo-react-nestjs/packages/i18n/vue/tsconfig.json +15 -0
  342. package/template-vp-monorepo-react-nestjs/packages/i18n/vue/vite.config.ts +16 -0
  343. package/template-vp-monorepo-react-nestjs/pnpm-workspace.yaml +111 -0
  344. package/template-vp-monorepo-react-nestjs/tsconfig.json +9 -0
  345. package/template-vp-monorepo-react-nestjs/vite.config.ts +19 -0
  346. package/template-vp-react/.env +1 -0
  347. package/template-vp-react/.oxfmtrc.jsonc +8 -0
  348. package/template-vp-react/.oxlintrc.jsonc +11 -0
  349. package/template-vp-react/.vite-hooks/commit-msg +1 -0
  350. package/template-vp-react/.vite-hooks/pre-commit +1 -0
  351. package/template-vp-react/.vscode/extensions.json +3 -0
  352. package/template-vp-react/.vscode/settings.json +11 -0
  353. package/template-vp-react/commitlint.config.js +0 -0
  354. package/template-vp-react/index.html +13 -0
  355. package/template-vp-react/package.json +44 -0
  356. package/template-vp-react/public/favicon.svg +1 -0
  357. package/template-vp-react/public/icons.svg +24 -0
  358. package/template-vp-react/src/App.tsx +24 -0
  359. package/template-vp-react/src/assets/hero.png +0 -0
  360. package/template-vp-react/src/assets/react.svg +1 -0
  361. package/template-vp-react/src/assets/vite.svg +1 -0
  362. package/template-vp-react/src/components/Loading/PageLoading.tsx +11 -0
  363. package/template-vp-react/src/main.tsx +5 -0
  364. package/template-vp-react/src/pages/home/index.tsx +17 -0
  365. package/template-vp-react/src/router/index.tsx +25 -0
  366. package/template-vp-react/src/router/modules/.gitkeep +0 -0
  367. package/template-vp-react/src/styles/index.css +7 -0
  368. package/template-vp-react/src/types/auto-imports.d.ts +58 -0
  369. package/template-vp-react/src/utils/env/index.ts +6 -0
  370. package/template-vp-react/src/utils/request/core/index.ts +420 -0
  371. package/template-vp-react/src/utils/request/core/utils.ts +39 -0
  372. package/template-vp-react/src/utils/request/index.ts +48 -0
  373. package/template-vp-react/tsconfig.json +32 -0
  374. package/template-vp-react/vite.config.ts +35 -0
  375. package/template-vp-react-shadcn/.agents/skills/alova-client-usage/README.md +28 -0
  376. package/template-vp-react-shadcn/.agents/skills/alova-client-usage/SKILL.md +249 -0
  377. package/template-vp-react-shadcn/.agents/skills/alova-client-usage/references/SETUP.md +146 -0
  378. package/template-vp-react-shadcn/.agents/skills/shadcn/SKILL.md +260 -0
  379. package/template-vp-react-shadcn/.agents/skills/shadcn/agents/openai.yml +5 -0
  380. package/template-vp-react-shadcn/.agents/skills/shadcn/assets/shadcn-small.png +0 -0
  381. package/template-vp-react-shadcn/.agents/skills/shadcn/assets/shadcn.png +0 -0
  382. package/template-vp-react-shadcn/.agents/skills/shadcn/cli.md +276 -0
  383. package/template-vp-react-shadcn/.agents/skills/shadcn/customization.md +209 -0
  384. package/template-vp-react-shadcn/.agents/skills/shadcn/evals/evals.json +47 -0
  385. package/template-vp-react-shadcn/.agents/skills/shadcn/mcp.md +94 -0
  386. package/template-vp-react-shadcn/.agents/skills/shadcn/rules/base-vs-radix.md +306 -0
  387. package/template-vp-react-shadcn/.agents/skills/shadcn/rules/composition.md +195 -0
  388. package/template-vp-react-shadcn/.agents/skills/shadcn/rules/forms.md +192 -0
  389. package/template-vp-react-shadcn/.agents/skills/shadcn/rules/icons.md +101 -0
  390. package/template-vp-react-shadcn/.agents/skills/shadcn/rules/styling.md +162 -0
  391. package/template-vp-react-shadcn/.agents/skills/vite-plus/README.md +75 -0
  392. package/template-vp-react-shadcn/.agents/skills/vite-plus/SKILL.md +322 -0
  393. package/template-vp-react-shadcn/.agents/skills/vite-plus/evals.json +182 -0
  394. package/template-vp-react-shadcn/.agents/skills/vite-plus/references/config.md +162 -0
  395. package/template-vp-react-shadcn/.agents/skills/vite-plus/references/env-management.md +76 -0
  396. package/template-vp-react-shadcn/.agents/skills/vite-plus/references/task-runner.md +152 -0
  397. package/template-vp-react-shadcn/.agents/skills/vite-plus/sources.yaml +142 -0
  398. package/template-vp-react-shadcn/.env +1 -0
  399. package/template-vp-react-shadcn/.oxfmtrc.jsonc +8 -0
  400. package/template-vp-react-shadcn/.oxlintrc.jsonc +3 -0
  401. package/template-vp-react-shadcn/.vite-hooks/commit-msg +1 -0
  402. package/template-vp-react-shadcn/.vite-hooks/pre-commit +1 -0
  403. package/template-vp-react-shadcn/.vscode/extensions.json +3 -0
  404. package/template-vp-react-shadcn/.vscode/settings.json +12 -0
  405. package/template-vp-react-shadcn/agents.md +44 -0
  406. package/template-vp-react-shadcn/commitlint.config.js +1 -0
  407. package/template-vp-react-shadcn/components.json +25 -0
  408. package/template-vp-react-shadcn/index.html +13 -0
  409. package/template-vp-react-shadcn/package.json +56 -0
  410. package/template-vp-react-shadcn/public/favicon.svg +1 -0
  411. package/template-vp-react-shadcn/public/icons.svg +24 -0
  412. package/template-vp-react-shadcn/skills-lock.json +11 -0
  413. package/template-vp-react-shadcn/src/App.tsx +24 -0
  414. package/template-vp-react-shadcn/src/api/.gitkeep +0 -0
  415. package/template-vp-react-shadcn/src/assets/hero.png +0 -0
  416. package/template-vp-react-shadcn/src/assets/react.svg +1 -0
  417. package/template-vp-react-shadcn/src/assets/vite.svg +1 -0
  418. package/template-vp-react-shadcn/src/components/Loading/PageLoading.tsx +11 -0
  419. package/template-vp-react-shadcn/src/components/Player/VideoJS/index.tsx +163 -0
  420. package/template-vp-react-shadcn/src/components/Player/index.ts +7 -0
  421. package/template-vp-react-shadcn/src/components/ui/button.tsx +67 -0
  422. package/template-vp-react-shadcn/src/components/ui/sonner.tsx +43 -0
  423. package/template-vp-react-shadcn/src/components/ui/spinner.tsx +17 -0
  424. package/template-vp-react-shadcn/src/hooks/.gitkeep +0 -0
  425. package/template-vp-react-shadcn/src/lib/utils.ts +6 -0
  426. package/template-vp-react-shadcn/src/main.tsx +5 -0
  427. package/template-vp-react-shadcn/src/pages/home/index.tsx +96 -0
  428. package/template-vp-react-shadcn/src/router/index.tsx +25 -0
  429. package/template-vp-react-shadcn/src/router/modules/.gitkeep +0 -0
  430. package/template-vp-react-shadcn/src/store/.gitkeep +0 -0
  431. package/template-vp-react-shadcn/src/styles/index.css +16 -0
  432. package/template-vp-react-shadcn/src/styles/shadcn.css +127 -0
  433. package/template-vp-react-shadcn/src/types/auto-imports.d.ts +58 -0
  434. package/template-vp-react-shadcn/src/utils/env/index.tsx +6 -0
  435. package/template-vp-react-shadcn/src/utils/request/alova-core/index.ts +425 -0
  436. package/template-vp-react-shadcn/src/utils/request/alova-core/utils.ts +39 -0
  437. package/template-vp-react-shadcn/src/utils/request/index.ts +48 -0
  438. package/template-vp-react-shadcn/src/utils/request/readme.md +176 -0
  439. package/template-vp-react-shadcn/tsconfig.json +32 -0
  440. package/template-vp-react-shadcn/vite.config.ts +35 -0
  441. package/template-vue-vp-eslint/.env +6 -0
  442. package/template-vue-vp-eslint/.env.development +2 -0
  443. package/template-vue-vp-eslint/.env.production +2 -0
  444. package/template-vue-vp-eslint/.vscode/extensions.json +3 -0
  445. package/template-vue-vp-eslint/AGENTS.md +16 -0
  446. package/template-vue-vp-eslint/README.md +98 -0
  447. package/template-vue-vp-eslint/commitlint.config.js +1 -0
  448. package/template-vue-vp-eslint/eslint.config.js +13 -0
  449. package/template-vue-vp-eslint/index.html +13 -0
  450. package/template-vue-vp-eslint/lefthook.yml +11 -0
  451. package/template-vue-vp-eslint/package.json +63 -0
  452. package/template-vue-vp-eslint/pnpm-workspace.yaml +3 -0
  453. package/template-vue-vp-eslint/public/vite.svg +1 -0
  454. package/template-vue-vp-eslint/src/App.vue +7 -0
  455. package/template-vue-vp-eslint/src/api/index.ts +12 -0
  456. package/template-vue-vp-eslint/src/assets/icon/home.svg +3 -0
  457. package/template-vue-vp-eslint/src/assets/icon/logo.svg +1 -0
  458. package/template-vue-vp-eslint/src/assets/image/.gitkeep +0 -0
  459. package/template-vue-vp-eslint/src/components/Icon/svg-icon.vue +29 -0
  460. package/template-vue-vp-eslint/src/hooks/chart/lib.ts +57 -0
  461. package/template-vue-vp-eslint/src/hooks/chart/useEcharts.ts +65 -0
  462. package/template-vue-vp-eslint/src/layout/default/header/index.vue +30 -0
  463. package/template-vue-vp-eslint/src/layout/default/index.vue +138 -0
  464. package/template-vue-vp-eslint/src/main.ts +16 -0
  465. package/template-vue-vp-eslint/src/router/guard/index.ts +7 -0
  466. package/template-vue-vp-eslint/src/router/guard/permissionGuard.ts +13 -0
  467. package/template-vue-vp-eslint/src/router/index.ts +18 -0
  468. package/template-vue-vp-eslint/src/router/interface.ts +9 -0
  469. package/template-vue-vp-eslint/src/router/modules/index.ts +33 -0
  470. package/template-vue-vp-eslint/src/store/index.ts +11 -0
  471. package/template-vue-vp-eslint/src/store/modules/user.ts +17 -0
  472. package/template-vue-vp-eslint/src/styles/font.scss +0 -0
  473. package/template-vue-vp-eslint/src/styles/index.scss +29 -0
  474. package/template-vue-vp-eslint/src/styles/variables.scss +3 -0
  475. package/template-vue-vp-eslint/src/types/vite-env.d.ts +15 -0
  476. package/template-vue-vp-eslint/src/utils/env.ts +11 -0
  477. package/template-vue-vp-eslint/src/utils/request/core/index.ts +425 -0
  478. package/template-vue-vp-eslint/src/utils/request/core/utils.ts +39 -0
  479. package/template-vue-vp-eslint/src/utils/request/index.ts +44 -0
  480. package/template-vue-vp-eslint/src/views/example/echart/config.ts +1794 -0
  481. package/template-vue-vp-eslint/src/views/example/echart/index.vue +20 -0
  482. package/template-vue-vp-eslint/src/views/example/tree-chart.vue +16 -0
  483. package/template-vue-vp-eslint/src/views/home/index.vue +16 -0
  484. package/template-vue-vp-eslint/src/views/login/index.vue +9 -0
  485. package/template-vue-vp-eslint/tsconfig.json +29 -0
  486. package/template-vue-vp-eslint/uno.config.ts +17 -0
  487. package/template-vue-vp-eslint/vite.config.ts +58 -0
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@bubblesjs/i18n-vue",
3
+ "version": "0.0.1",
4
+ "private": true,
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./src/index.ts",
9
+ "import": "./src/index.ts"
10
+ }
11
+ },
12
+ "scripts": {
13
+ "build": "vp pack"
14
+ },
15
+ "dependencies": {
16
+ "@bubblesjs/i18n-core": "workspace:*"
17
+ },
18
+ "devDependencies": {
19
+ "typescript": "catalog:",
20
+ "vite": "catalog:",
21
+ "vite-plus": "catalog:",
22
+ "vue": "catalog:"
23
+ },
24
+ "peerDependencies": {
25
+ "vue": "^3.5.39"
26
+ }
27
+ }
@@ -0,0 +1,52 @@
1
+ import {
2
+ computed,
3
+ defineComponent,
4
+ inject,
5
+ provide,
6
+ type ComputedRef,
7
+ type InjectionKey,
8
+ type PropType,
9
+ } from 'vue'
10
+ import type { I18nState, I18nStore } from '@bubblesjs/i18n-core'
11
+ import { useI18nStore } from './use-store'
12
+
13
+ export const I18nKey: InjectionKey<I18nStore> = Symbol('i18n')
14
+
15
+ export interface I18nProviderProps {
16
+ store: I18nStore
17
+ }
18
+
19
+ export interface UseI18nReturn {
20
+ tr: I18nState['tr']
21
+ loadLocale: I18nState['loadLocale']
22
+ locale: ComputedRef<I18nState['locale']>
23
+ }
24
+
25
+ export const I18nProvider = defineComponent({
26
+ name: 'I18nProvider',
27
+ props: {
28
+ store: {
29
+ type: Object as PropType<I18nStore>,
30
+ required: true,
31
+ },
32
+ },
33
+ setup(props, { slots }) {
34
+ provide(I18nKey, props.store)
35
+ return () => slots.default?.()
36
+ },
37
+ })
38
+
39
+ export function useI18n(): UseI18nReturn {
40
+ const store = inject(I18nKey)
41
+ if (!store) throw new Error('useI18n must be used within I18nProvider')
42
+
43
+ const state = useI18nStore(store)
44
+ const tr: I18nState['tr'] = (key, values) => state.value.tr(key, values)
45
+ const loadLocale: I18nState['loadLocale'] = (locale) => state.value.loadLocale(locale)
46
+ const locale = computed(() => state.value.locale)
47
+
48
+ return { tr, loadLocale, locale }
49
+ }
50
+
51
+ export { useI18nStore } from './use-store'
52
+ export default I18nProvider
@@ -0,0 +1,19 @@
1
+ import { computed, onScopeDispose, shallowRef } from 'vue'
2
+ import type { ComputedRef, ShallowRef } from 'vue'
3
+ import type { I18nState, I18nStore } from '@bubblesjs/i18n-core'
4
+
5
+ export function useI18nStore<T>(store: I18nStore, selector: (state: I18nState) => T): ComputedRef<T>
6
+ export function useI18nStore(store: I18nStore): ShallowRef<I18nState>
7
+ export function useI18nStore<T>(
8
+ store: I18nStore,
9
+ selector?: (state: I18nState) => T,
10
+ ): ComputedRef<T> | ShallowRef<I18nState> {
11
+ const state = shallowRef<I18nState>(store.getState())
12
+ const unsubscribe = store.subscribe(() => {
13
+ state.value = store.getState()
14
+ })
15
+
16
+ onScopeDispose(unsubscribe)
17
+
18
+ return selector ? computed(() => selector(state.value)) : state
19
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "extends": "../../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "target": "ES2020",
5
+ "module": "ESNext",
6
+ "moduleResolution": "bundler",
7
+ "lib": ["ES2020", "DOM"],
8
+ "types": ["vue"],
9
+ "strict": true,
10
+ "skipLibCheck": true,
11
+ "verbatimModuleSyntax": true,
12
+ "noEmit": true
13
+ },
14
+ "include": ["src"]
15
+ }
@@ -0,0 +1,16 @@
1
+ import { defineConfig } from 'vite-plus'
2
+
3
+ export default defineConfig({
4
+ pack: {
5
+ entry: ['./src/index.ts'],
6
+ format: ['esm'],
7
+ platform: 'neutral',
8
+ target: 'es2020',
9
+ dts: true,
10
+ clean: true,
11
+ treeshake: true,
12
+ deps: {
13
+ neverBundle: ['vue', /^vue\//, /^@bubblesjs\//],
14
+ },
15
+ },
16
+ })
@@ -0,0 +1,111 @@
1
+ packages:
2
+ - apps/*
3
+ - packages/*
4
+ - packages/i18n/*
5
+
6
+ catalogMode: prefer
7
+
8
+ catalog:
9
+ '@alova/adapter-axios': ^2.0.18
10
+ '@antdv-next/auto-import-resolver': ^1.1.0
11
+ '@antdv-next/icons': ^1.1.1
12
+ '@antfu/eslint-config': ^9.1.0
13
+ '@commitlint/cli': ^21.2.1
14
+ '@commitlint/config-conventional': ^21.1.0
15
+ '@fastify/cookie': ^11.1.2
16
+ '@fastify/static': ^10.1.0
17
+ '@nestjs-modules/ioredis': ^2.2.1
18
+ '@nestjs/cli': ^11.0.0
19
+ '@nestjs/common': ^11.1.27
20
+ '@nestjs/config': ^4.0.4
21
+ '@nestjs/core': ^11.0.1
22
+ '@nestjs/jwt': ^11.0.2
23
+ '@nestjs/mapped-types': '*'
24
+ '@nestjs/platform-fastify': ^11.1.27
25
+ '@nestjs/schematics': ^11.0.0
26
+ '@nestjs/swagger': ^11.4.6
27
+ '@nestjs/testing': ^11.0.1
28
+ '@tailwindcss/vite': ^4.3.1
29
+ '@types/express': ^5.0.0
30
+ '@types/node': ^26.1.1
31
+ '@types/nprogress': ^0.2.3
32
+ '@types/react': ^19.2.17
33
+ '@types/react-dom': ^19.2.3
34
+ '@typescript/native': npm:typescript@^7.0.2
35
+ '@unocss/eslint-plugin': ^66.7.2
36
+ '@unocss/preset-attributify': ^66.7.5
37
+ '@unocss/preset-wind4': ^66.7.5
38
+ '@vitejs/plugin-react': ^6.0.2
39
+ '@vitejs/plugin-vue': ^6.0.7
40
+ '@vue/tsconfig': ^0.9.1
41
+ alova: ^3.5.1
42
+ antd: ^6.4.5
43
+ antdv-next: ^1.4.1
44
+ argon2: ^0.45.0
45
+ axios: ^1.18.1
46
+ classnames: ^2.5.1
47
+ cross-env: ^10.1.0
48
+ dayjs: ^1.11.21
49
+ dotenv: ^17.4.2
50
+ drizzle-kit: ^0.31.10
51
+ drizzle-orm: ^0.45.2
52
+ drizzle-zod: ^0.8.3
53
+ echarts: ^6.1.0
54
+ eslint: 10.7.0
55
+ eslint-plugin-format: ^2.0.1
56
+ eslint-plugin-oxlint: ^1.73.0
57
+ fast-glob: ^3.3.3
58
+ fastify: ^5.10.0
59
+ globals: ^17.0.0
60
+ ioredis: ^5.11.1
61
+ lefthook: ^2.1.10
62
+ nestjs-zod: ^5.4.0
63
+ nprogress: ^0.2.0
64
+ oxlint: ^1.73.0
65
+ pg: ^8.22.0
66
+ pinia: ^3.0.4
67
+ pinia-plugin-persistedstate: ^4.7.1
68
+ radashi: ^12.9.1
69
+ react: ^19.2.7
70
+ react-dom: ^19.2.7
71
+ react-router: ^8.0.1
72
+ reflect-metadata: ^0.2.2
73
+ rxjs: ^7.8.1
74
+ sass: ^1.101.0
75
+ source-map-support: ^0.5.21
76
+ tailwindcss: ^4.3.1
77
+ ts-loader: ^9.5.2
78
+ ts-node: ^10.9.2
79
+ tsconfig-paths: ^4.2.0
80
+ typescript: ^6
81
+ unocss: 66.7.5
82
+ unplugin-auto-import: ^21.0.0
83
+ unplugin-vue-components: ^32.1.0
84
+ vite: npm:@voidzero-dev/vite-plus-core@0.2.4
85
+ vite-plugin-inspect: ^11.4.1
86
+ vite-plugin-svg-icons: ^2.0.1
87
+ vite-plus: 0.2.4
88
+ vue: ^3.5.39
89
+ vue-router: ^5.1.0
90
+ vue-tsc: ^3.3.7
91
+ zod: ^4.4.3
92
+ catalogs:
93
+ node24:
94
+ '@types/node': ^24.0.0
95
+ typescript6:
96
+ typescript: npm:@typescript/typescript6@^6.0.2
97
+ overrides:
98
+ vite: 'catalog:'
99
+ peerDependencyRules:
100
+ allowAny:
101
+ - vite
102
+ allowedVersions:
103
+ vite: '*'
104
+ minimumReleaseAgeExclude:
105
+ - axios@1.18.1
106
+ allowBuilds:
107
+ '@parcel/watcher': true
108
+ '@scarf/scarf': true
109
+ argon2: true
110
+ esbuild: true
111
+ lefthook: true
@@ -0,0 +1,9 @@
1
+ {
2
+ "compilerOptions": {
3
+ "noEmit": true,
4
+ "module": "nodenext",
5
+ "moduleResolution": "nodenext",
6
+ "allowImportingTsExtensions": true,
7
+ "esModuleInterop": true
8
+ }
9
+ }
@@ -0,0 +1,19 @@
1
+ import { defineConfig } from 'vite-plus'
2
+
3
+ export default defineConfig({
4
+ staged: {
5
+ '*': 'vp check --fix',
6
+ },
7
+ fmt: {
8
+ semi: false,
9
+ singleQuote: true,
10
+ },
11
+ lint: {
12
+ jsPlugins: [{ name: 'vite-plus', specifier: 'vite-plus/oxlint-plugin' }],
13
+ rules: { 'vite-plus/prefer-vite-plus-imports': 'error' },
14
+ options: { typeAware: true, typeCheck: true },
15
+ },
16
+ run: {
17
+ cache: true,
18
+ },
19
+ })
@@ -0,0 +1 @@
1
+ VITE_PORT = 9999
@@ -0,0 +1,8 @@
1
+ {
2
+ "printWidth": 80,
3
+ "semi": false,
4
+ "singleQuote": true,
5
+ "sortImports": {},
6
+ "sortTailwindcss": {},
7
+ "sortPackageJson": true,
8
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "plugins": [
3
+ "import",
4
+ "jsdoc",
5
+ "promise",
6
+ "react",
7
+ "react-perf",
8
+ "jsx-a11y",
9
+ "promise",
10
+ ],
11
+ }
@@ -0,0 +1 @@
1
+ vp dlx commitlint --edit "$1"
@@ -0,0 +1 @@
1
+ vp staged
@@ -0,0 +1,3 @@
1
+ {
2
+ "recommendations": ["VoidZero.vite-plus-extension-pack"]
3
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "biome.enabled": false,
3
+ "editor.defaultFormatter": "oxc.oxc-vscode",
4
+ "editor.formatOnSave": true,
5
+ "editor.formatOnSaveMode": "file",
6
+ "editor.codeActionsOnSave": {
7
+ "source.fixAll.oxc": "explicit"
8
+ },
9
+ "oxc.configPath": ".oxlintrc.jsonc",
10
+ "oxc.fmt.configPath": ".oxfmtrc.jsonc"
11
+ }
@@ -0,0 +1,13 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>vp-react</title>
8
+ </head>
9
+ <body>
10
+ <div id="root"></div>
11
+ <script type="module" src="/src/main.tsx"></script>
12
+ </body>
13
+ </html>
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "bubbles-project",
3
+ "version": "0.0.1",
4
+ "private": true,
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vp dev",
8
+ "build": "tsc && vp build",
9
+ "preview": "vp preview",
10
+ "prepare": "vp config",
11
+ "check": "vp check"
12
+ },
13
+ "dependencies": {
14
+ "@alova/adapter-axios": "^2.0.18",
15
+ "@tailwindcss/vite": "^4.3.0",
16
+ "alova": "^3.5.1",
17
+ "antd": "^6.4.3",
18
+ "axios": "^1.17.0",
19
+ "classnames": "^2.5.1",
20
+ "dayjs": "^1.11.21",
21
+ "react": "^19.2.7",
22
+ "react-dom": "^19.2.7",
23
+ "react-router": "^7.17.0",
24
+ "tailwindcss": "^4.3.0"
25
+ },
26
+ "devDependencies": {
27
+ "@commitlint/cli": "^21.0.2",
28
+ "@commitlint/config-conventional": "^21.0.2",
29
+ "@types/react": "^19.2.17",
30
+ "@types/react-dom": "^19.2.3",
31
+ "@vitejs/plugin-react": "^6.0.2",
32
+ "typescript": "~6.0.3",
33
+ "unplugin-auto-import": "^21.0.0",
34
+ "vite": "^8.0.16",
35
+ "vite-plus": "latest"
36
+ },
37
+ "packageManager": "pnpm@11.5.2",
38
+ "pnpm": {
39
+ "overrides": {
40
+ "vite": "npm:@voidzero-dev/vite-plus-core@latest",
41
+ "vitest": "npm:@voidzero-dev/vite-plus-test@latest"
42
+ }
43
+ }
44
+ }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="48" height="46" fill="none" viewBox="0 0 48 46"><path fill="#863bff" d="M25.946 44.938c-.664.845-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.287c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.497 0-3.578-1.842-3.578H1.237c-.92 0-1.456-1.04-.92-1.788L10.013.474c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.579 1.842 3.579h11.377c.943 0 1.473 1.088.89 1.83L25.947 44.94z" style="fill:#863bff;fill:color(display-p3 .5252 .23 1);fill-opacity:1"/><mask id="a" width="48" height="46" x="0" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#000" d="M25.842 44.938c-.664.844-2.021.375-2.021-.698V33.937a2.26 2.26 0 0 0-2.262-2.262H10.183c-.92 0-1.456-1.04-.92-1.788l7.48-10.471c1.07-1.498 0-3.579-1.842-3.579H1.133c-.92 0-1.456-1.04-.92-1.787L9.91.473c.214-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.471c-1.07 1.498 0 3.578 1.842 3.578h11.377c.943 0 1.473 1.088.89 1.832L25.843 44.94z" style="fill:#000;fill-opacity:1"/></mask><g mask="url(#a)"><g filter="url(#b)"><ellipse cx="5.508" cy="14.704" fill="#ede6ff" rx="5.508" ry="14.704" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -4.47 31.516)"/></g><g filter="url(#c)"><ellipse cx="10.399" cy="29.851" fill="#ede6ff" rx="10.399" ry="29.851" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -39.328 7.883)"/></g><g filter="url(#d)"><ellipse cx="5.508" cy="30.487" fill="#7e14ff" rx="5.508" ry="30.487" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -25.913 -14.639)scale(1 -1)"/></g><g filter="url(#e)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.814 -32.644 -3.334)scale(1 -1)"/></g><g filter="url(#f)"><ellipse cx="5.508" cy="30.599" fill="#7e14ff" rx="5.508" ry="30.599" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="matrix(.00324 1 1 -.00324 -34.34 30.47)"/></g><g filter="url(#g)"><ellipse cx="14.072" cy="22.078" fill="#ede6ff" rx="14.072" ry="22.078" style="fill:#ede6ff;fill:color(display-p3 .9275 .9033 1);fill-opacity:1" transform="rotate(93.35 24.506 48.493)scale(-1 1)"/></g><g filter="url(#h)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#i)"><ellipse cx="3.47" cy="21.501" fill="#7e14ff" rx="3.47" ry="21.501" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(89.009 28.708 47.59)scale(-1 1)"/></g><g filter="url(#j)"><ellipse cx=".387" cy="8.972" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(39.51 .387 8.972)"/></g><g filter="url(#k)"><ellipse cx="47.523" cy="-6.092" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 47.523 -6.092)"/></g><g filter="url(#l)"><ellipse cx="41.412" cy="6.333" fill="#47bfff" rx="5.971" ry="9.665" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 41.412 6.333)"/></g><g filter="url(#m)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#n)"><ellipse cx="-1.879" cy="38.332" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 -1.88 38.332)"/></g><g filter="url(#o)"><ellipse cx="35.651" cy="29.907" fill="#7e14ff" rx="4.407" ry="29.108" style="fill:#7e14ff;fill:color(display-p3 .4922 .0767 1);fill-opacity:1" transform="rotate(37.892 35.651 29.907)"/></g><g filter="url(#p)"><ellipse cx="38.418" cy="32.4" fill="#47bfff" rx="5.971" ry="15.297" style="fill:#47bfff;fill:color(display-p3 .2799 .748 1);fill-opacity:1" transform="rotate(37.892 38.418 32.4)"/></g></g><defs><filter id="b" width="60.045" height="41.654" x="-19.77" y="16.149" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="c" width="90.34" height="51.437" x="-54.613" y="-7.533" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="d" width="79.355" height="29.4" x="-49.64" y="2.03" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="e" width="79.579" height="29.4" x="-45.045" y="20.029" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="f" width="79.579" height="29.4" x="-43.513" y="21.178" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="g" width="74.749" height="58.852" x="15.756" y="-17.901" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="7.659"/></filter><filter id="h" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="i" width="61.377" height="25.362" x="23.548" y="2.284" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="j" width="56.045" height="63.649" x="-27.636" y="-22.853" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="k" width="54.814" height="64.646" x="20.116" y="-38.415" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="l" width="33.541" height="35.313" x="24.641" y="-11.323" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="m" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="n" width="54.814" height="64.646" x="-29.286" y="6.009" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="o" width="54.814" height="64.646" x="8.244" y="-2.416" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter><filter id="p" width="39.409" height="43.623" x="18.713" y="10.588" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17158" stdDeviation="4.596"/></filter></defs></svg>
@@ -0,0 +1,24 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg">
2
+ <symbol id="bluesky-icon" viewBox="0 0 16 17">
3
+ <g clip-path="url(#bluesky-clip)"><path fill="#08060d" d="M7.75 7.735c-.693-1.348-2.58-3.86-4.334-5.097-1.68-1.187-2.32-.981-2.74-.79C.188 2.065.1 2.812.1 3.251s.241 3.602.398 4.13c.52 1.744 2.367 2.333 4.07 2.145-2.495.37-4.71 1.278-1.805 4.512 3.196 3.309 4.38-.71 4.987-2.746.608 2.036 1.307 5.91 4.93 2.746 2.72-2.746.747-4.143-1.747-4.512 1.702.189 3.55-.4 4.07-2.145.156-.528.397-3.691.397-4.13s-.088-1.186-.575-1.406c-.42-.19-1.06-.395-2.741.79-1.755 1.24-3.64 3.752-4.334 5.099"/></g>
4
+ <defs><clipPath id="bluesky-clip"><path fill="#fff" d="M.1.85h15.3v15.3H.1z"/></clipPath></defs>
5
+ </symbol>
6
+ <symbol id="discord-icon" viewBox="0 0 20 19">
7
+ <path fill="#08060d" d="M16.224 3.768a14.5 14.5 0 0 0-3.67-1.153c-.158.286-.343.67-.47.976a13.5 13.5 0 0 0-4.067 0c-.128-.306-.317-.69-.476-.976A14.4 14.4 0 0 0 3.868 3.77C1.546 7.28.916 10.703 1.231 14.077a14.7 14.7 0 0 0 4.5 2.306q.545-.748.965-1.587a9.5 9.5 0 0 1-1.518-.74q.191-.14.372-.293c2.927 1.369 6.107 1.369 8.999 0q.183.152.372.294-.723.437-1.52.74.418.838.963 1.588a14.6 14.6 0 0 0 4.504-2.308c.37-3.911-.63-7.302-2.644-10.309m-9.13 8.234c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.894 0 1.614.82 1.599 1.82.001 1-.705 1.82-1.6 1.82m5.91 0c-.878 0-1.599-.82-1.599-1.82 0-.998.705-1.82 1.6-1.82.893 0 1.614.82 1.599 1.82 0 1-.706 1.82-1.6 1.82"/>
8
+ </symbol>
9
+ <symbol id="documentation-icon" viewBox="0 0 21 20">
10
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="m15.5 13.333 1.533 1.322c.645.555.967.833.967 1.178s-.322.623-.967 1.179L15.5 18.333m-3.333-5-1.534 1.322c-.644.555-.966.833-.966 1.178s.322.623.966 1.179l1.534 1.321"/>
11
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M17.167 10.836v-4.32c0-1.41 0-2.117-.224-2.68-.359-.906-1.118-1.621-2.08-1.96-.599-.21-1.349-.21-2.848-.21-2.623 0-3.935 0-4.983.369-1.684.591-3.013 1.842-3.641 3.428C3 6.449 3 7.684 3 10.154v2.122c0 2.558 0 3.838.706 4.726q.306.383.713.671c.76.536 1.79.64 3.581.66"/>
12
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M3 10a2.78 2.78 0 0 1 2.778-2.778c.555 0 1.209.097 1.748-.047.48-.129.854-.503.982-.982.145-.54.048-1.194.048-1.749a2.78 2.78 0 0 1 2.777-2.777"/>
13
+ </symbol>
14
+ <symbol id="github-icon" viewBox="0 0 19 19">
15
+ <path fill="#08060d" fill-rule="evenodd" d="M9.356 1.85C5.05 1.85 1.57 5.356 1.57 9.694a7.84 7.84 0 0 0 5.324 7.44c.387.079.528-.168.528-.376 0-.182-.013-.805-.013-1.454-2.165.467-2.616-.935-2.616-.935-.349-.91-.864-1.143-.864-1.143-.71-.48.051-.48.051-.48.787.051 1.2.805 1.2.805.695 1.194 1.817.857 2.268.649.064-.507.27-.857.49-1.052-1.728-.182-3.545-.857-3.545-3.87 0-.857.31-1.558.8-2.104-.078-.195-.349-1 .077-2.078 0 0 .657-.208 2.14.805a7.5 7.5 0 0 1 1.946-.26c.657 0 1.328.092 1.946.26 1.483-1.013 2.14-.805 2.14-.805.426 1.078.155 1.883.078 2.078.502.546.799 1.247.799 2.104 0 3.013-1.818 3.675-3.558 3.87.284.247.528.714.528 1.454 0 1.052-.012 1.896-.012 2.156 0 .208.142.455.528.377a7.84 7.84 0 0 0 5.324-7.441c.013-4.338-3.48-7.844-7.773-7.844" clip-rule="evenodd"/>
16
+ </symbol>
17
+ <symbol id="social-icon" viewBox="0 0 20 20">
18
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M12.5 6.667a4.167 4.167 0 1 0-8.334 0 4.167 4.167 0 0 0 8.334 0"/>
19
+ <path fill="none" stroke="#aa3bff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.35" d="M2.5 16.667a5.833 5.833 0 0 1 8.75-5.053m3.837.474.513 1.035c.07.144.257.282.414.309l.93.155c.596.1.736.536.307.965l-.723.73a.64.64 0 0 0-.152.531l.207.903c.164.715-.213.991-.84.618l-.872-.52a.63.63 0 0 0-.577 0l-.872.52c-.624.373-1.003.094-.84-.618l.207-.903a.64.64 0 0 0-.152-.532l-.723-.729c-.426-.43-.289-.864.306-.964l.93-.156a.64.64 0 0 0 .412-.31l.513-1.034c.28-.562.735-.562 1.012 0"/>
20
+ </symbol>
21
+ <symbol id="x-icon" viewBox="0 0 19 19">
22
+ <path fill="#08060d" fill-rule="evenodd" d="M1.893 1.98c.052.072 1.245 1.769 2.653 3.77l2.892 4.114c.183.261.333.48.333.486s-.068.089-.152.183l-.522.593-.765.867-3.597 4.087c-.375.426-.734.834-.798.905a1 1 0 0 0-.118.148c0 .01.236.017.664.017h.663l.729-.83c.4-.457.796-.906.879-.999a692 692 0 0 0 1.794-2.038c.034-.037.301-.34.594-.675l.551-.624.345-.392a7 7 0 0 1 .34-.374c.006 0 .93 1.306 2.052 2.903l2.084 2.965.045.063h2.275c1.87 0 2.273-.003 2.266-.021-.008-.02-1.098-1.572-3.894-5.547-2.013-2.862-2.28-3.246-2.273-3.266.008-.019.282-.332 2.085-2.38l2-2.274 1.567-1.782c.022-.028-.016-.03-.65-.03h-.674l-.3.342a871 871 0 0 1-1.782 2.025c-.067.075-.405.458-.75.852a100 100 0 0 1-.803.91c-.148.172-.299.344-.99 1.127-.304.343-.32.358-.345.327-.015-.019-.904-1.282-1.976-2.808L6.365 1.85H1.8zm1.782.91 8.078 11.294c.772 1.08 1.413 1.973 1.425 1.984.016.017.241.02 1.05.017l1.03-.004-2.694-3.766L7.796 5.75 5.722 2.852l-1.039-.004-1.039-.004z" clip-rule="evenodd"/>
23
+ </symbol>
24
+ </svg>
@@ -0,0 +1,24 @@
1
+ import { ConfigProvider } from 'antd'
2
+ import zhCN from 'antd/es/locale/zh_CN'
3
+ import dayjs from 'dayjs'
4
+ import 'dayjs/locale/zh-cn'
5
+ import { Suspense } from 'react'
6
+ import { RouterProvider } from 'react-router'
7
+
8
+ import PageLoading from '@/components/Loading/PageLoading'
9
+
10
+ import { router } from './router'
11
+
12
+ dayjs.locale('zh-cn')
13
+
14
+ function App() {
15
+ return (
16
+ <Suspense fallback={<PageLoading />}>
17
+ <ConfigProvider locale={zhCN}>
18
+ <RouterProvider router={router} />
19
+ </ConfigProvider>
20
+ </Suspense>
21
+ )
22
+ }
23
+
24
+ export default App
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="35.93" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 228"><path fill="#00D8FF" d="M210.483 73.824a171.49 171.49 0 0 0-8.24-2.597c.465-1.9.893-3.777 1.273-5.621c6.238-30.281 2.16-54.676-11.769-62.708c-13.355-7.7-35.196.329-57.254 19.526a171.23 171.23 0 0 0-6.375 5.848a155.866 155.866 0 0 0-4.241-3.917C100.759 3.829 77.587-4.822 63.673 3.233C50.33 10.957 46.379 33.89 51.995 62.588a170.974 170.974 0 0 0 1.892 8.48c-3.28.932-6.445 1.924-9.474 2.98C17.309 83.498 0 98.307 0 113.668c0 15.865 18.582 31.778 46.812 41.427a145.52 145.52 0 0 0 6.921 2.165a167.467 167.467 0 0 0-2.01 9.138c-5.354 28.2-1.173 50.591 12.134 58.266c13.744 7.926 36.812-.22 59.273-19.855a145.567 145.567 0 0 0 5.342-4.923a168.064 168.064 0 0 0 6.92 6.314c21.758 18.722 43.246 26.282 56.54 18.586c13.731-7.949 18.194-32.003 12.4-61.268a145.016 145.016 0 0 0-1.535-6.842c1.62-.48 3.21-.974 4.76-1.488c29.348-9.723 48.443-25.443 48.443-41.52c0-15.417-17.868-30.326-45.517-39.844Zm-6.365 70.984c-1.4.463-2.836.91-4.3 1.345c-3.24-10.257-7.612-21.163-12.963-32.432c5.106-11 9.31-21.767 12.459-31.957c2.619.758 5.16 1.557 7.61 2.4c23.69 8.156 38.14 20.213 38.14 29.504c0 9.896-15.606 22.743-40.946 31.14Zm-10.514 20.834c2.562 12.94 2.927 24.64 1.23 33.787c-1.524 8.219-4.59 13.698-8.382 15.893c-8.067 4.67-25.32-1.4-43.927-17.412a156.726 156.726 0 0 1-6.437-5.87c7.214-7.889 14.423-17.06 21.459-27.246c12.376-1.098 24.068-2.894 34.671-5.345a134.17 134.17 0 0 1 1.386 6.193ZM87.276 214.515c-7.882 2.783-14.16 2.863-17.955.675c-8.075-4.657-11.432-22.636-6.853-46.752a156.923 156.923 0 0 1 1.869-8.499c10.486 2.32 22.093 3.988 34.498 4.994c7.084 9.967 14.501 19.128 21.976 27.15a134.668 134.668 0 0 1-4.877 4.492c-9.933 8.682-19.886 14.842-28.658 17.94ZM50.35 144.747c-12.483-4.267-22.792-9.812-29.858-15.863c-6.35-5.437-9.555-10.836-9.555-15.216c0-9.322 13.897-21.212 37.076-29.293c2.813-.98 5.757-1.905 8.812-2.773c3.204 10.42 7.406 21.315 12.477 32.332c-5.137 11.18-9.399 22.249-12.634 32.792a134.718 134.718 0 0 1-6.318-1.979Zm12.378-84.26c-4.811-24.587-1.616-43.134 6.425-47.789c8.564-4.958 27.502 2.111 47.463 19.835a144.318 144.318 0 0 1 3.841 3.545c-7.438 7.987-14.787 17.08-21.808 26.988c-12.04 1.116-23.565 2.908-34.161 5.309a160.342 160.342 0 0 1-1.76-7.887Zm110.427 27.268a347.8 347.8 0 0 0-7.785-12.803c8.168 1.033 15.994 2.404 23.343 4.08c-2.206 7.072-4.956 14.465-8.193 22.045a381.151 381.151 0 0 0-7.365-13.322Zm-45.032-43.861c5.044 5.465 10.096 11.566 15.065 18.186a322.04 322.04 0 0 0-30.257-.006c4.974-6.559 10.069-12.652 15.192-18.18ZM82.802 87.83a323.167 323.167 0 0 0-7.227 13.238c-3.184-7.553-5.909-14.98-8.134-22.152c7.304-1.634 15.093-2.97 23.209-3.984a321.524 321.524 0 0 0-7.848 12.897Zm8.081 65.352c-8.385-.936-16.291-2.203-23.593-3.793c2.26-7.3 5.045-14.885 8.298-22.6a321.187 321.187 0 0 0 7.257 13.246c2.594 4.48 5.28 8.868 8.038 13.147Zm37.542 31.03c-5.184-5.592-10.354-11.779-15.403-18.433c4.902.192 9.899.29 14.978.29c5.218 0 10.376-.117 15.453-.343c-4.985 6.774-10.018 12.97-15.028 18.486Zm52.198-57.817c3.422 7.8 6.306 15.345 8.596 22.52c-7.422 1.694-15.436 3.058-23.88 4.071a382.417 382.417 0 0 0 7.859-13.026a347.403 347.403 0 0 0 7.425-13.565Zm-16.898 8.101a358.557 358.557 0 0 1-12.281 19.815a329.4 329.4 0 0 1-23.444.823c-7.967 0-15.716-.248-23.178-.732a310.202 310.202 0 0 1-12.513-19.846h.001a307.41 307.41 0 0 1-10.923-20.627a310.278 310.278 0 0 1 10.89-20.637l-.001.001a307.318 307.318 0 0 1 12.413-19.761c7.613-.576 15.42-.876 23.31-.876H128c7.926 0 15.743.303 23.354.883a329.357 329.357 0 0 1 12.335 19.695a358.489 358.489 0 0 1 11.036 20.54a329.472 329.472 0 0 1-11 20.722Zm22.56-122.124c8.572 4.944 11.906 24.881 6.52 51.026c-.344 1.668-.73 3.367-1.15 5.09c-10.622-2.452-22.155-4.275-34.23-5.408c-7.034-10.017-14.323-19.124-21.64-27.008a160.789 160.789 0 0 1 5.888-5.4c18.9-16.447 36.564-22.941 44.612-18.3ZM128 90.808c12.625 0 22.86 10.235 22.86 22.86s-10.235 22.86-22.86 22.86s-22.86-10.235-22.86-22.86s10.235-22.86 22.86-22.86Z"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="77" height="47" fill="none" aria-labelledby="vite-logo-title" viewBox="0 0 77 47"><title id="vite-logo-title">Vite</title><style>.parenthesis{fill:#000}@media (prefers-color-scheme:dark){.parenthesis{fill:#fff}}</style><path fill="#9135ff" d="M40.151 45.71c-.663.844-2.02.374-2.02-.699V34.708a2.26 2.26 0 0 0-2.262-2.262H24.493c-.92 0-1.457-1.04-.92-1.788l7.479-10.471c1.07-1.498 0-3.578-1.842-3.578H15.443c-.92 0-1.456-1.04-.92-1.788l9.696-13.576c.213-.297.556-.474.92-.474h28.894c.92 0 1.456 1.04.92 1.788l-7.48 10.472c-1.07 1.497 0 3.578 1.842 3.578h11.376c.944 0 1.474 1.087.89 1.83L40.153 45.712z"/><mask id="a" width="48" height="47" x="14" y="0" maskUnits="userSpaceOnUse" style="mask-type:alpha"><path fill="#000" d="M40.047 45.71c-.663.843-2.02.374-2.02-.699V34.708a2.26 2.26 0 0 0-2.262-2.262H24.389c-.92 0-1.457-1.04-.92-1.788l7.479-10.472c1.07-1.497 0-3.578-1.842-3.578H15.34c-.92 0-1.456-1.04-.92-1.788l9.696-13.575c.213-.297.556-.474.92-.474H53.93c.92 0 1.456 1.04.92 1.788L47.37 13.03c-1.07 1.498 0 3.578 1.842 3.578h11.376c.944 0 1.474 1.088.89 1.831L40.049 45.712z"/></mask><g mask="url(#a)"><g filter="url(#b)"><ellipse cx="5.508" cy="14.704" fill="#eee6ff" rx="5.508" ry="14.704" transform="rotate(269.814 20.96 11.29)scale(-1 1)"/></g><g filter="url(#c)"><ellipse cx="10.399" cy="29.851" fill="#eee6ff" rx="10.399" ry="29.851" transform="rotate(89.814 -16.902 -8.275)scale(1 -1)"/></g><g filter="url(#d)"><ellipse cx="5.508" cy="30.487" fill="#8900ff" rx="5.508" ry="30.487" transform="rotate(89.814 -19.197 -7.127)scale(1 -1)"/></g><g filter="url(#e)"><ellipse cx="5.508" cy="30.599" fill="#8900ff" rx="5.508" ry="30.599" transform="rotate(89.814 -25.928 4.177)scale(1 -1)"/></g><g filter="url(#f)"><ellipse cx="5.508" cy="30.599" fill="#8900ff" rx="5.508" ry="30.599" transform="rotate(89.814 -25.738 5.52)scale(1 -1)"/></g><g filter="url(#g)"><ellipse cx="14.072" cy="22.078" fill="#eee6ff" rx="14.072" ry="22.078" transform="rotate(93.35 31.245 55.578)scale(-1 1)"/></g><g filter="url(#h)"><ellipse cx="3.47" cy="21.501" fill="#8900ff" rx="3.47" ry="21.501" transform="rotate(89.009 35.419 55.202)scale(-1 1)"/></g><g filter="url(#i)"><ellipse cx="3.47" cy="21.501" fill="#8900ff" rx="3.47" ry="21.501" transform="rotate(89.009 35.419 55.202)scale(-1 1)"/></g><g filter="url(#j)"><ellipse cx="14.592" cy="9.743" fill="#8900ff" rx="4.407" ry="29.108" transform="rotate(39.51 14.592 9.743)"/></g><g filter="url(#k)"><ellipse cx="61.728" cy="-5.321" fill="#8900ff" rx="4.407" ry="29.108" transform="rotate(37.892 61.728 -5.32)"/></g><g filter="url(#l)"><ellipse cx="55.618" cy="7.104" fill="#00c2ff" rx="5.971" ry="9.665" transform="rotate(37.892 55.618 7.104)"/></g><g filter="url(#m)"><ellipse cx="12.326" cy="39.103" fill="#8900ff" rx="4.407" ry="29.108" transform="rotate(37.892 12.326 39.103)"/></g><g filter="url(#n)"><ellipse cx="12.326" cy="39.103" fill="#8900ff" rx="4.407" ry="29.108" transform="rotate(37.892 12.326 39.103)"/></g><g filter="url(#o)"><ellipse cx="49.857" cy="30.678" fill="#8900ff" rx="4.407" ry="29.108" transform="rotate(37.892 49.857 30.678)"/></g><g filter="url(#p)"><ellipse cx="52.623" cy="33.171" fill="#00c2ff" rx="5.971" ry="15.297" transform="rotate(37.892 52.623 33.17)"/></g></g><path d="M6.919 0c-9.198 13.166-9.252 33.575 0 46.789h6.215c-9.25-13.214-9.196-33.623 0-46.789zm62.424 0h-6.215c9.198 13.166 9.252 33.575 0 46.789h6.215c9.25-13.214 9.196-33.623 0-46.789" class="parenthesis"/><defs><filter id="b" width="60.045" height="41.654" x="-5.564" y="16.92" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="7.659"/></filter><filter id="c" width="90.34" height="51.437" x="-40.407" y="-6.762" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="7.659"/></filter><filter id="d" width="79.355" height="29.4" x="-35.435" y="2.801" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="e" width="79.579" height="29.4" x="-30.84" y="20.8" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="f" width="79.579" height="29.4" x="-29.307" y="21.949" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="g" width="74.749" height="58.852" x="29.961" y="-17.13" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="7.659"/></filter><filter id="h" width="61.377" height="25.362" x="37.754" y="3.055" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="i" width="61.377" height="25.362" x="37.754" y="3.055" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="j" width="56.045" height="63.649" x="-13.43" y="-22.082" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="k" width="54.814" height="64.646" x="34.321" y="-37.644" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="l" width="33.541" height="35.313" x="38.847" y="-10.552" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="m" width="54.814" height="64.646" x="-15.081" y="6.78" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="n" width="54.814" height="64.646" x="-15.081" y="6.78" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="o" width="54.814" height="64.646" x="22.45" y="-1.645" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter><filter id="p" width="39.409" height="43.623" x="32.919" y="11.36" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/><feGaussianBlur result="effect1_foregroundBlur_2002_17286" stdDeviation="4.596"/></filter></defs></svg>
@@ -0,0 +1,11 @@
1
+ import { Spin } from 'antd'
2
+
3
+ const Loading = () => {
4
+ return (
5
+ <div className="flex h-screen w-screen items-center justify-center">
6
+ <Spin size="large" />
7
+ </div>
8
+ )
9
+ }
10
+
11
+ export default Loading
@@ -0,0 +1,5 @@
1
+ import { createRoot } from "react-dom/client";
2
+ import "./styles/index.css";
3
+ import App from "./App.tsx";
4
+
5
+ createRoot(document.getElementById("root")!).render(<App />);
@@ -0,0 +1,17 @@
1
+ import { DatePicker } from 'antd'
2
+
3
+ const delay = new Promise<void>(resolve => setTimeout(resolve, 2000))
4
+ let resolved = false
5
+ delay.then(() => (resolved = true))
6
+
7
+ const Home = () => {
8
+ if (!resolved) throw delay
9
+
10
+ return (
11
+ <div className="w-full bg-red-900">
12
+ <DatePicker />
13
+ </div>
14
+ )
15
+ }
16
+
17
+ export default Home
@@ -0,0 +1,25 @@
1
+ import { createBrowserRouter, Navigate, type RouteObject } from "react-router";
2
+
3
+ export const lazyLoad = (path: string, fileName = "index") => {
4
+ const Module = lazy(() => import(`@/pages/${path}/${fileName}.tsx`));
5
+ return <Module />;
6
+ };
7
+
8
+ const routes: RouteObject[] = [
9
+ {
10
+ path: "/",
11
+ id: "index",
12
+ element: <Navigate to={"/home"} />,
13
+ },
14
+ {
15
+ path: "/home",
16
+ id: "home",
17
+ element: lazyLoad("home"),
18
+ },
19
+ ];
20
+
21
+ export const router = createBrowserRouter(routes, {
22
+ basename: "/",
23
+ });
24
+
25
+ export const navigator = router.navigate;
File without changes
@@ -0,0 +1,7 @@
1
+ @import 'tailwindcss';
2
+
3
+ html,
4
+ body {
5
+ margin: 0;
6
+ padding: 0;
7
+ }