@undp/create-app 0.1.1 → 0.2.0

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 (276) hide show
  1. package/README.md +35 -5
  2. package/bin/generateFiles/generateIndexHtml.js +18 -0
  3. package/bin/generateFiles/generatePackageJson.js +160 -0
  4. package/bin/{generateTemplates/templates/configFiles/vite.config.ts.txt → generateFiles/generateViteConfig.js} +14 -12
  5. package/bin/generateFiles/index.js +3 -0
  6. package/bin/generateFiles.js +41 -1
  7. package/bin/index.js +38 -14
  8. package/bin/promptUser.js +60 -37
  9. package/bin/templates/next/withDataViz/auth/README.md +108 -0
  10. package/bin/templates/next/withDataViz/auth/app/about/page.tsx +33 -0
  11. package/bin/templates/next/withDataViz/auth/app/api/auth/[...all]/route.ts +5 -0
  12. package/bin/templates/next/withDataViz/auth/app/favicon.ico +0 -0
  13. package/bin/templates/next/withDataViz/auth/app/globals.css +3 -0
  14. package/bin/templates/next/withDataViz/auth/app/layout.tsx +30 -0
  15. package/bin/templates/next/withDataViz/auth/app/login/page.tsx +45 -0
  16. package/bin/templates/next/withDataViz/auth/app/page.tsx +33 -0
  17. package/bin/templates/next/withDataViz/auth/app/user/page.tsx +86 -0
  18. package/bin/templates/next/withDataViz/auth/components/Footer.tsx +16 -0
  19. package/bin/templates/next/withDataViz/auth/components/Header.tsx +56 -0
  20. package/bin/templates/next/withDataViz/auth/eslint.config.mjs +103 -0
  21. package/bin/templates/next/withDataViz/auth/lib/auth-client.ts +7 -0
  22. package/bin/templates/next/withDataViz/auth/lib/auth.ts +30 -0
  23. package/bin/templates/next/withDataViz/auth/next.config.ts +10 -0
  24. package/bin/templates/next/withDataViz/auth/postcss.config.mjs +7 -0
  25. package/bin/templates/next/withDataViz/auth/public/next.svg +1 -0
  26. package/bin/templates/next/withDataViz/auth/tsconfig.json +34 -0
  27. package/bin/templates/next/withDataViz/basic/.prettierrc +10 -0
  28. package/bin/templates/next/withDataViz/basic/README.md +56 -0
  29. package/bin/templates/next/withDataViz/basic/app/about/page.tsx +33 -0
  30. package/bin/templates/next/withDataViz/basic/app/favicon.ico +0 -0
  31. package/bin/templates/next/withDataViz/basic/app/globals.css +3 -0
  32. package/bin/templates/next/withDataViz/basic/app/layout.tsx +31 -0
  33. package/bin/templates/next/withDataViz/basic/app/page.tsx +33 -0
  34. package/bin/templates/next/withDataViz/basic/components/Footer.tsx +16 -0
  35. package/bin/templates/next/withDataViz/basic/components/Header.tsx +27 -0
  36. package/bin/templates/next/withDataViz/basic/eslint.config.mjs +103 -0
  37. package/bin/templates/next/withDataViz/basic/next.config.ts +7 -0
  38. package/bin/templates/next/withDataViz/basic/postcss.config.mjs +7 -0
  39. package/bin/templates/next/withDataViz/basic/public/next.svg +1 -0
  40. package/bin/templates/next/withDataViz/basic/public/undp-logo-blue.svg +1 -0
  41. package/bin/templates/next/withDataViz/basic/tailwind.config.js +7 -0
  42. package/bin/templates/next/withDataViz/basic/tsconfig.json +34 -0
  43. package/bin/templates/next/withoutDataViz/auth/.prettierrc +10 -0
  44. package/bin/templates/next/withoutDataViz/auth/README.md +107 -0
  45. package/bin/templates/next/withoutDataViz/auth/app/about/page.tsx +33 -0
  46. package/bin/templates/next/withoutDataViz/auth/app/api/auth/[...all]/route.ts +5 -0
  47. package/bin/templates/next/withoutDataViz/auth/app/favicon.ico +0 -0
  48. package/bin/templates/next/withoutDataViz/auth/app/globals.css +3 -0
  49. package/bin/templates/next/withoutDataViz/auth/app/layout.tsx +30 -0
  50. package/bin/templates/next/withoutDataViz/auth/app/login/page.tsx +45 -0
  51. package/bin/templates/next/withoutDataViz/auth/app/page.tsx +33 -0
  52. package/bin/templates/next/withoutDataViz/auth/app/user/page.tsx +86 -0
  53. package/bin/templates/next/withoutDataViz/auth/components/Footer.tsx +16 -0
  54. package/bin/templates/next/withoutDataViz/auth/components/Header.tsx +56 -0
  55. package/bin/templates/next/withoutDataViz/auth/eslint.config.mjs +103 -0
  56. package/bin/templates/next/withoutDataViz/auth/lib/auth-client.ts +7 -0
  57. package/bin/templates/next/withoutDataViz/auth/lib/auth.ts +30 -0
  58. package/bin/templates/next/withoutDataViz/auth/next.config.ts +10 -0
  59. package/bin/templates/next/withoutDataViz/auth/postcss.config.mjs +7 -0
  60. package/bin/templates/next/withoutDataViz/auth/public/next.svg +1 -0
  61. package/bin/templates/next/withoutDataViz/auth/public/undp-logo-blue.svg +1 -0
  62. package/bin/templates/next/withoutDataViz/auth/tailwind.config.js +7 -0
  63. package/bin/templates/next/withoutDataViz/auth/tsconfig.json +34 -0
  64. package/bin/templates/next/withoutDataViz/basic/.prettierrc +10 -0
  65. package/bin/templates/next/withoutDataViz/basic/README.md +55 -0
  66. package/bin/templates/next/withoutDataViz/basic/app/about/page.tsx +33 -0
  67. package/bin/templates/next/withoutDataViz/basic/app/favicon.ico +0 -0
  68. package/bin/templates/next/withoutDataViz/basic/app/globals.css +3 -0
  69. package/bin/templates/next/withoutDataViz/basic/app/layout.tsx +31 -0
  70. package/bin/templates/next/withoutDataViz/basic/app/page.tsx +33 -0
  71. package/bin/templates/next/withoutDataViz/basic/components/Footer.tsx +16 -0
  72. package/bin/templates/next/withoutDataViz/basic/components/Header.tsx +27 -0
  73. package/bin/templates/next/withoutDataViz/basic/eslint.config.mjs +103 -0
  74. package/bin/templates/next/withoutDataViz/basic/next.config.ts +7 -0
  75. package/bin/templates/next/withoutDataViz/basic/postcss.config.mjs +7 -0
  76. package/bin/templates/next/withoutDataViz/basic/public/next.svg +1 -0
  77. package/bin/templates/next/withoutDataViz/basic/public/undp-logo-blue.svg +1 -0
  78. package/bin/templates/next/withoutDataViz/basic/tailwind.config.js +7 -0
  79. package/bin/templates/next/withoutDataViz/basic/tsconfig.json +34 -0
  80. package/bin/templates/vite/withDataViz/basic/.prettierrc +10 -0
  81. package/bin/templates/vite/withDataViz/basic/README.md +76 -0
  82. package/bin/{generateTemplates/generateIndexHtml.js → templates/vite/withDataViz/basic/index.html} +3 -5
  83. package/bin/templates/vite/withDataViz/basic/public/favicon.ico +0 -0
  84. package/bin/templates/vite/withDataViz/basic/public/imgs/Tailwind_CSS_Logo.svg +1 -0
  85. package/bin/templates/vite/withDataViz/basic/public/imgs/Vitejs-logo.svg +15 -0
  86. package/bin/templates/vite/withDataViz/basic/public/imgs/undp-logo-blue.svg +1 -0
  87. package/bin/templates/vite/withDataViz/basic/src/App.tsx +38 -0
  88. package/bin/templates/vite/withDataViz/basic/src/assets/undp-logo-blue.svg +1 -0
  89. package/bin/templates/vite/withDataViz/basic/src/components/Footer.tsx +14 -0
  90. package/bin/{generateTemplates/templates/router/components/Header.txt → templates/vite/withDataViz/basic/src/components/Header.tsx} +8 -12
  91. package/bin/templates/vite/withDataViz/basic/src/styles/style.css +4 -0
  92. package/bin/templates/vite/withDataViz/basic/src/vite-env.d.ts +1 -0
  93. package/bin/templates/vite/withDataViz/basic/tailwind.config.js +7 -0
  94. package/bin/{generateTemplates/templates/configFiles → templates/vite/withDataViz/basic}/tsconfig.json +1 -1
  95. package/bin/{generateTemplates/templates/configFiles/viteWithoutPostCss.config.ts.txt → templates/vite/withDataViz/basic/vite.config.ts} +17 -1
  96. package/bin/templates/vite/withDataViz/query/.prettierrc +10 -0
  97. package/bin/templates/vite/withDataViz/query/README.md +80 -0
  98. package/bin/templates/vite/withDataViz/query/eslint.config.mjs +97 -0
  99. package/bin/templates/vite/withDataViz/query/index.html +13 -0
  100. package/bin/templates/vite/withDataViz/query/public/favicon.ico +0 -0
  101. package/bin/templates/vite/withDataViz/query/public/imgs/Tailwind_CSS_Logo.svg +1 -0
  102. package/bin/templates/vite/withDataViz/query/public/imgs/Vitejs-logo.svg +15 -0
  103. package/bin/templates/vite/withDataViz/query/public/imgs/logo-color-600.png +0 -0
  104. package/bin/templates/vite/withDataViz/query/public/imgs/undp-logo-blue.svg +1 -0
  105. package/bin/templates/vite/withDataViz/query/src/App.tsx +70 -0
  106. package/bin/templates/vite/withDataViz/query/src/assets/undp-logo-blue.svg +1 -0
  107. package/bin/templates/vite/withDataViz/query/src/components/Footer.tsx +14 -0
  108. package/bin/templates/vite/withDataViz/query/src/components/Header.tsx +25 -0
  109. package/bin/templates/vite/withDataViz/query/src/integration/tanstack-query.tsx +27 -0
  110. package/bin/templates/vite/withDataViz/query/src/main.tsx +21 -0
  111. package/bin/templates/vite/withDataViz/query/src/styles/fonts.css +213 -0
  112. package/bin/templates/vite/withDataViz/query/src/styles/style.css +4 -0
  113. package/bin/templates/vite/withDataViz/query/src/vite-env.d.ts +1 -0
  114. package/bin/templates/vite/withDataViz/query/tailwind.config.js +7 -0
  115. package/bin/templates/vite/withDataViz/query/tsconfig.json +29 -0
  116. package/bin/templates/vite/withDataViz/query/tsconfig.node.json +9 -0
  117. package/bin/templates/vite/withDataViz/query/vite.config.ts +75 -0
  118. package/bin/templates/vite/withDataViz/query+router/.prettierrc +10 -0
  119. package/bin/templates/vite/withDataViz/query+router/README.md +112 -0
  120. package/bin/templates/vite/withDataViz/query+router/eslint.config.mjs +97 -0
  121. package/bin/templates/vite/withDataViz/query+router/index.html +13 -0
  122. package/bin/templates/vite/withDataViz/query+router/public/favicon.ico +0 -0
  123. package/bin/templates/vite/withDataViz/query+router/public/imgs/Tailwind_CSS_Logo.svg +1 -0
  124. package/bin/templates/vite/withDataViz/query+router/public/imgs/Vitejs-logo.svg +15 -0
  125. package/bin/templates/vite/withDataViz/query+router/public/imgs/logo-color-600.png +0 -0
  126. package/bin/templates/vite/withDataViz/query+router/public/imgs/undp-logo-blue.svg +1 -0
  127. package/bin/templates/vite/withDataViz/query+router/src/App.tsx +42 -0
  128. package/bin/templates/vite/withDataViz/query+router/src/assets/undp-logo-blue.svg +1 -0
  129. package/bin/templates/vite/withDataViz/query+router/src/components/Footer.tsx +14 -0
  130. package/bin/{generateTemplates/templates/router+query/components/Header.txt → templates/vite/withDataViz/query+router/src/components/Header.tsx} +8 -12
  131. package/bin/{generateTemplates/templates/router+query/integration/tanstack-query.txt → templates/vite/withDataViz/query+router/src/integration/tanstack-query.tsx} +5 -5
  132. package/bin/{generateTemplates/templates/router+query/main.txt → templates/vite/withDataViz/query+router/src/main.tsx} +15 -11
  133. package/bin/templates/vite/withDataViz/query+router/src/routes/queryDemo.tsx +73 -0
  134. package/bin/templates/vite/withDataViz/query+router/src/styles/fonts.css +213 -0
  135. package/bin/templates/vite/withDataViz/query+router/src/styles/style.css +4 -0
  136. package/bin/templates/vite/withDataViz/query+router/src/vite-env.d.ts +1 -0
  137. package/bin/templates/vite/withDataViz/query+router/tailwind.config.js +7 -0
  138. package/bin/templates/vite/withDataViz/query+router/tsconfig.json +29 -0
  139. package/bin/templates/vite/withDataViz/query+router/tsconfig.node.json +9 -0
  140. package/bin/templates/vite/withDataViz/query+router/vite.config.ts +75 -0
  141. package/bin/templates/vite/withDataViz/router/.prettierrc +10 -0
  142. package/bin/templates/vite/withDataViz/router/README.md +107 -0
  143. package/bin/templates/vite/withDataViz/router/eslint.config.mjs +97 -0
  144. package/bin/templates/vite/withDataViz/router/index.html +13 -0
  145. package/bin/templates/vite/withDataViz/router/public/favicon.ico +0 -0
  146. package/bin/templates/vite/withDataViz/router/public/imgs/Tailwind_CSS_Logo.svg +1 -0
  147. package/bin/templates/vite/withDataViz/router/public/imgs/Vitejs-logo.svg +15 -0
  148. package/bin/templates/vite/withDataViz/router/public/imgs/logo-color-600.png +0 -0
  149. package/bin/templates/vite/withDataViz/router/public/imgs/undp-logo-blue.svg +1 -0
  150. package/bin/templates/vite/withDataViz/router/src/App.tsx +51 -0
  151. package/bin/templates/vite/withDataViz/router/src/assets/undp-logo-blue.svg +1 -0
  152. package/bin/templates/vite/withDataViz/router/src/components/Footer.tsx +14 -0
  153. package/bin/templates/vite/withDataViz/router/src/components/Header.tsx +25 -0
  154. package/bin/{generateTemplates/templates/router/main.txt → templates/vite/withDataViz/router/src/main.tsx} +18 -12
  155. package/bin/templates/vite/withDataViz/router/src/routes/about.tsx +73 -0
  156. package/bin/templates/vite/withDataViz/router/src/styles/fonts.css +213 -0
  157. package/bin/templates/vite/withDataViz/router/src/styles/style.css +4 -0
  158. package/bin/templates/vite/withDataViz/router/src/vite-env.d.ts +1 -0
  159. package/bin/templates/vite/withDataViz/router/tailwind.config.js +7 -0
  160. package/bin/templates/vite/withDataViz/router/tsconfig.json +29 -0
  161. package/bin/templates/vite/withDataViz/router/tsconfig.node.json +9 -0
  162. package/bin/templates/vite/withDataViz/router/vite.config.ts +75 -0
  163. package/bin/templates/vite/withoutDataViz/basic/.prettierrc +10 -0
  164. package/bin/templates/vite/withoutDataViz/basic/README.md +75 -0
  165. package/bin/templates/vite/withoutDataViz/basic/eslint.config.mjs +97 -0
  166. package/bin/templates/vite/withoutDataViz/basic/index.html +13 -0
  167. package/bin/templates/vite/withoutDataViz/basic/public/favicon.ico +0 -0
  168. package/bin/templates/vite/withoutDataViz/basic/public/imgs/Tailwind_CSS_Logo.svg +1 -0
  169. package/bin/templates/vite/withoutDataViz/basic/public/imgs/Vitejs-logo.svg +15 -0
  170. package/bin/templates/vite/withoutDataViz/basic/public/imgs/undp-logo-blue.svg +1 -0
  171. package/bin/templates/vite/withoutDataViz/basic/src/App.tsx +38 -0
  172. package/bin/templates/vite/withoutDataViz/basic/src/assets/undp-logo-blue.svg +1 -0
  173. package/bin/templates/vite/withoutDataViz/basic/src/components/Footer.tsx +14 -0
  174. package/bin/templates/vite/withoutDataViz/basic/src/components/Header.tsx +25 -0
  175. package/bin/templates/vite/withoutDataViz/basic/src/main.tsx +10 -0
  176. package/bin/templates/vite/withoutDataViz/basic/src/styles/fonts.css +213 -0
  177. package/bin/templates/vite/withoutDataViz/basic/src/styles/style.css +3 -0
  178. package/bin/templates/vite/withoutDataViz/basic/src/vite-env.d.ts +1 -0
  179. package/bin/templates/vite/withoutDataViz/basic/tailwind.config.js +7 -0
  180. package/bin/templates/vite/withoutDataViz/basic/tsconfig.json +29 -0
  181. package/bin/templates/vite/withoutDataViz/basic/tsconfig.node.json +9 -0
  182. package/bin/templates/vite/withoutDataViz/basic/vite.config.ts +75 -0
  183. package/bin/templates/vite/withoutDataViz/query/.prettierrc +10 -0
  184. package/bin/templates/vite/withoutDataViz/query/README.md +80 -0
  185. package/bin/templates/vite/withoutDataViz/query/eslint.config.mjs +97 -0
  186. package/bin/templates/vite/withoutDataViz/query/index.html +13 -0
  187. package/bin/templates/vite/withoutDataViz/query/public/favicon.ico +0 -0
  188. package/bin/templates/vite/withoutDataViz/query/public/imgs/Tailwind_CSS_Logo.svg +1 -0
  189. package/bin/templates/vite/withoutDataViz/query/public/imgs/Vitejs-logo.svg +15 -0
  190. package/bin/templates/vite/withoutDataViz/query/public/imgs/logo-color-600.png +0 -0
  191. package/bin/templates/vite/withoutDataViz/query/public/imgs/undp-logo-blue.svg +1 -0
  192. package/bin/templates/vite/withoutDataViz/query/src/App.tsx +70 -0
  193. package/bin/templates/vite/withoutDataViz/query/src/assets/undp-logo-blue.svg +1 -0
  194. package/bin/templates/vite/withoutDataViz/query/src/components/Footer.tsx +14 -0
  195. package/bin/templates/vite/withoutDataViz/query/src/components/Header.tsx +25 -0
  196. package/bin/templates/vite/withoutDataViz/query/src/integration/tanstack-query.tsx +27 -0
  197. package/bin/templates/vite/withoutDataViz/query/src/main.tsx +21 -0
  198. package/bin/templates/vite/withoutDataViz/query/src/styles/fonts.css +213 -0
  199. package/bin/templates/vite/withoutDataViz/query/src/styles/style.css +3 -0
  200. package/bin/templates/vite/withoutDataViz/query/src/vite-env.d.ts +1 -0
  201. package/bin/templates/vite/withoutDataViz/query/tailwind.config.js +7 -0
  202. package/bin/templates/vite/withoutDataViz/query/tsconfig.json +29 -0
  203. package/bin/templates/vite/withoutDataViz/query/tsconfig.node.json +9 -0
  204. package/bin/templates/vite/withoutDataViz/query/vite.config.ts +75 -0
  205. package/bin/templates/vite/withoutDataViz/query+router/.prettierrc +10 -0
  206. package/bin/templates/vite/withoutDataViz/query+router/README.md +111 -0
  207. package/bin/templates/vite/withoutDataViz/query+router/eslint.config.mjs +97 -0
  208. package/bin/templates/vite/withoutDataViz/query+router/index.html +13 -0
  209. package/bin/templates/vite/withoutDataViz/query+router/public/favicon.ico +0 -0
  210. package/bin/templates/vite/withoutDataViz/query+router/public/imgs/Tailwind_CSS_Logo.svg +1 -0
  211. package/bin/templates/vite/withoutDataViz/query+router/public/imgs/Vitejs-logo.svg +15 -0
  212. package/bin/templates/vite/withoutDataViz/query+router/public/imgs/logo-color-600.png +0 -0
  213. package/bin/templates/vite/withoutDataViz/query+router/public/imgs/undp-logo-blue.svg +1 -0
  214. package/bin/templates/vite/withoutDataViz/query+router/src/App.tsx +42 -0
  215. package/bin/templates/vite/withoutDataViz/query+router/src/assets/undp-logo-blue.svg +1 -0
  216. package/bin/templates/vite/withoutDataViz/query+router/src/components/Footer.tsx +14 -0
  217. package/bin/templates/vite/withoutDataViz/query+router/src/components/Header.tsx +25 -0
  218. package/bin/templates/vite/withoutDataViz/query+router/src/integration/tanstack-query.tsx +27 -0
  219. package/bin/templates/vite/withoutDataViz/query+router/src/main.tsx +73 -0
  220. package/bin/templates/vite/withoutDataViz/query+router/src/routes/queryDemo.tsx +73 -0
  221. package/bin/templates/vite/withoutDataViz/query+router/src/styles/fonts.css +213 -0
  222. package/bin/templates/vite/withoutDataViz/query+router/src/styles/style.css +3 -0
  223. package/bin/templates/vite/withoutDataViz/query+router/src/vite-env.d.ts +1 -0
  224. package/bin/templates/vite/withoutDataViz/query+router/tailwind.config.js +7 -0
  225. package/bin/templates/vite/withoutDataViz/query+router/tsconfig.json +29 -0
  226. package/bin/templates/vite/withoutDataViz/query+router/tsconfig.node.json +9 -0
  227. package/bin/templates/vite/withoutDataViz/query+router/vite.config.ts +75 -0
  228. package/bin/templates/vite/withoutDataViz/router/.prettierrc +10 -0
  229. package/bin/templates/vite/withoutDataViz/router/README.md +106 -0
  230. package/bin/templates/vite/withoutDataViz/router/eslint.config.mjs +97 -0
  231. package/bin/templates/vite/withoutDataViz/router/index.html +13 -0
  232. package/bin/templates/vite/withoutDataViz/router/public/favicon.ico +0 -0
  233. package/bin/templates/vite/withoutDataViz/router/public/imgs/Tailwind_CSS_Logo.svg +1 -0
  234. package/bin/templates/vite/withoutDataViz/router/public/imgs/Vitejs-logo.svg +15 -0
  235. package/bin/templates/vite/withoutDataViz/router/public/imgs/logo-color-600.png +0 -0
  236. package/bin/templates/vite/withoutDataViz/router/public/imgs/undp-logo-blue.svg +1 -0
  237. package/bin/templates/vite/withoutDataViz/router/src/App.tsx +51 -0
  238. package/bin/templates/vite/withoutDataViz/router/src/assets/undp-logo-blue.svg +1 -0
  239. package/bin/templates/vite/withoutDataViz/router/src/components/Footer.tsx +14 -0
  240. package/bin/templates/vite/withoutDataViz/router/src/components/Header.tsx +25 -0
  241. package/bin/templates/vite/withoutDataViz/router/src/main.tsx +66 -0
  242. package/bin/templates/vite/withoutDataViz/router/src/routes/about.tsx +73 -0
  243. package/bin/templates/vite/withoutDataViz/router/src/styles/fonts.css +213 -0
  244. package/bin/templates/vite/withoutDataViz/router/src/styles/style.css +4 -0
  245. package/bin/templates/vite/withoutDataViz/router/src/vite-env.d.ts +1 -0
  246. package/bin/templates/vite/withoutDataViz/router/tailwind.config.js +7 -0
  247. package/bin/templates/vite/withoutDataViz/router/tsconfig.json +29 -0
  248. package/bin/templates/vite/withoutDataViz/router/tsconfig.node.json +9 -0
  249. package/bin/templates/vite/withoutDataViz/router/vite.config.ts +75 -0
  250. package/bin/utils/printSuccess.js +0 -9
  251. package/package.json +6 -2
  252. package/bin/generateTemplates/copyTemplate.js +0 -18
  253. package/bin/generateTemplates/generatePackageJson.js +0 -105
  254. package/bin/generateTemplates/generateReadme.js +0 -143
  255. package/bin/generateTemplates/generateStyleCss.js +0 -6
  256. package/bin/generateTemplates/index.js +0 -6
  257. package/bin/generateTemplates/templates/basic/App.txt +0 -32
  258. package/bin/generateTemplates/templates/basic/AppWithContainer.txt +0 -32
  259. package/bin/generateTemplates/templates/configFiles/staticwebapp.config.json +0 -44
  260. package/bin/generateTemplates/templates/configFiles/vite-env.txt +0 -1
  261. package/bin/generateTemplates/templates/query/App.txt +0 -57
  262. package/bin/generateTemplates/templates/query/AppWithContainer.txt +0 -67
  263. package/bin/generateTemplates/templates/query/main.txt +0 -29
  264. package/bin/generateTemplates/templates/router/App.txt +0 -30
  265. package/bin/generateTemplates/templates/router/components/Footer.txt +0 -20
  266. package/bin/generateTemplates/templates/router/routes/About.txt +0 -28
  267. package/bin/generateTemplates/templates/router+query/App.txt +0 -30
  268. package/bin/generateTemplates/templates/router+query/components/Footer.txt +0 -20
  269. package/bin/generateTemplates/templates/router+query/routes/queryDemo.txt +0 -56
  270. /package/bin/{generateTemplates/templates/configFiles → templates/next/withDataViz/auth}/.prettierrc +0 -0
  271. /package/bin/{generateTemplates/templates/configFiles/icon.txt → templates/next/withDataViz/auth/public/undp-logo-blue.svg} +0 -0
  272. /package/bin/{generateTemplates/templates/configFiles → templates/next/withDataViz/auth}/tailwind.config.js +0 -0
  273. /package/bin/{generateTemplates/templates/configFiles → templates/vite/withDataViz/basic}/eslint.config.mjs +0 -0
  274. /package/bin/{generateTemplates/templates/basic/main.txt → templates/vite/withDataViz/basic/src/main.tsx} +0 -0
  275. /package/bin/{generateTemplates/templates/css → templates/vite/withDataViz/basic/src/styles}/fonts.css +0 -0
  276. /package/bin/{generateTemplates/templates/configFiles → templates/vite/withDataViz/basic}/tsconfig.node.json +0 -0
@@ -1,18 +0,0 @@
1
- import fs from 'fs';
2
- import path from 'path';
3
- import { fileURLToPath } from 'url';
4
-
5
- function getTemplatePath(filename, folders) {
6
- const __filename = fileURLToPath(import.meta.url);
7
- const __dirname = path.dirname(__filename);
8
- return path.join(
9
- __dirname,
10
- ...folders,
11
- filename
12
- );
13
- }
14
-
15
- export function copyTemplate(destination, filename, folders) {
16
- const content = fs.readFileSync(getTemplatePath(filename, folders), 'utf-8');
17
- fs.writeFileSync(destination, content);
18
- }
@@ -1,105 +0,0 @@
1
- import { execSync } from 'child_process';
2
- import chalk from 'chalk';
3
-
4
- function getLatestVersion(pkg) {
5
- console.log(chalk.gray(` Fetching latest version for ${pkg}`));
6
- try {
7
- return execSync(`npm show ${pkg} version`).toString().trim();
8
- } catch {
9
- return 'latest';
10
- }
11
- }
12
-
13
- export function generatePackageJson(config) {
14
- const DEPENDENCIES = ['@undp/design-system-react', 'react', 'react-dom']
15
- if(config.installLucide) DEPENDENCIES.push('lucide-react');
16
- if(config.installDataViz) DEPENDENCIES.push('@undp/data-viz');
17
- if(config.installQuery) DEPENDENCIES.push('@tanstack/react-query');
18
- if(config.installRouter) DEPENDENCIES.push('@tanstack/react-router');
19
- const dependencies = {};
20
- DEPENDENCIES.forEach((d) => {
21
- const version = getLatestVersion(d)
22
- dependencies[d] = version === 'latest' ? 'latest' : `^${version}`;
23
- })
24
- const PEER_DEPENDENCIES = config.installDataVizPeerDeps ? [
25
- '@dnd-kit/core',
26
- '@dnd-kit/modifiers',
27
- 'ajv',
28
- 'dom-to-svg',
29
- 'file-saver',
30
- 'handlebars',
31
- 'maplibre-gl',
32
- 'marked',
33
- 'math-expression-evaluator',
34
- 'pmtiles',
35
- 'react-globe.gl',
36
- 'three',
37
- ] : [];
38
- PEER_DEPENDENCIES.forEach((d) => {
39
- const version = getLatestVersion(d)
40
- dependencies[d] = version === 'latest' ? 'latest' : `^${version}`;
41
- })
42
- const DEV_DEPENDENCIES = [
43
- '@eslint/config-array',
44
- '@eslint/js',
45
- '@nabla/vite-plugin-eslint',
46
- '@tailwindcss/postcss',
47
- '@tailwindcss/vite',
48
- '@types/node',
49
- '@types/react',
50
- '@types/react-dom',
51
- '@vitejs/plugin-react',
52
- 'autoprefixer',
53
- 'babel-plugin-react-compiler',
54
- 'eslint',
55
- 'eslint-config-love',
56
- 'eslint-config-prettier',
57
- 'eslint-plugin-import',
58
- 'eslint-plugin-jsx-a11y',
59
- 'eslint-plugin-n',
60
- 'eslint-plugin-prettier',
61
- 'eslint-plugin-promise',
62
- 'eslint-plugin-react',
63
- 'eslint-plugin-react-hooks',
64
- 'postcss',
65
- 'postcss-nested',
66
- 'prettier',
67
- 'rimraf',
68
- 'rollup-plugin-visualizer',
69
- 'tailwind-animate',
70
- 'tailwind-merge',
71
- 'tailwindcss',
72
- 'tailwindcss-animate',
73
- 'typescript',
74
- 'typescript-eslint',
75
- 'vite',
76
- 'vite-plugin-static-copy',
77
- ]
78
- const devDependencies = {}
79
- DEV_DEPENDENCIES.forEach((d) => {
80
- const version = getLatestVersion(d)
81
- devDependencies[d] = version === 'latest' ? 'latest' : `^${version}`;
82
- })
83
- const packageJson = {
84
- name: config.projectName,
85
- private: true,
86
- version: '0.0.0',
87
- type: 'module',
88
- keywords: [],
89
- author: '',
90
- sideEffects: [
91
- '*.css'
92
- ],
93
- scripts: {
94
- dev: 'vite',
95
- build: 'tsc && vite build',
96
- preview: 'vite preview',
97
- clean: 'rimraf node_modules && rimraf dist && rimraf package-lock.json',
98
- 'install:build': 'npm install && tsc && vite build',
99
- lint: 'npx eslint --fix && npx prettier . --write'
100
- },
101
- dependencies: dependencies,
102
- devDependencies: devDependencies
103
- }
104
- return packageJson
105
- }
@@ -1,143 +0,0 @@
1
- export function generateReadme(config){
2
- return `# ${config.projectName}
3
-
4
- React + TypeScript + Vite project with Tailwind CSS ${config.installDataViz ? ', UNDP Design System and data viz library' : 'and UNDP Design System'}.
5
-
6
- This is a template to initiate project with tooling for linting and prettier and uses React Compiler.
7
-
8
- ## Installed Libraries
9
-
10
- - React 19.2
11
- - @undp/design-system-react${config.installLucide ? '\n- lucide-react' : ''}${config.installDataViz ? '\n- @undp/data-viz' : ''}${config.installQuery ? '\n- @tanstack/react-query' : ''}${config.installRouter ? '\n- @tanstack/react-router' : ''}
12
-
13
- ## Installation
14
-
15
- This project uses \`npm\`. For installation you will need to install \`node\` and \`npm\`, if you don't already have it. \`node\` and \`npm\` can be installed from [here](https://nodejs.org/en/download/).
16
-
17
- To install the project, simply clone the the repo and them run \`npm install\` in the project folder. You can use terminal on Mac and Command Prompt on Windows.
18
-
19
- This project is bootstrapped with [\`Vite\`](https://vitejs.dev/) and was created using \`npm create vite@latest\` command.
20
-
21
- Run the terminal or command prompt and then run the following
22
-
23
- \`\`\`
24
- git clone https://github.com/UNDP-Data/${config.projectName}.git
25
- cd ${config.projectName}
26
- npm install
27
- \`\`\`
28
-
29
- ## Local Development
30
-
31
- To start the project locally, you can run \`npm run dev\` in the project folder in terminal or command prompt.
32
-
33
- This is run the app in development mode. Open [http://localhost:5173/](http://localhost:5173/) to view it in the browser.
34
-
35
- The page will reload if you make edits. You will also see any lint errors in the console.
36
-
37
- ## Available Scripts
38
-
39
- - \`npm run dev\`: Executes \`vite\` and start the local server for local deployment.
40
- - \`npm run build\`: Executes \`tsc && vite build\` and builds the app for production and deployment.
41
- - \`npm run clean\`: Executes \`rimraf node_modules && rimraf dist && rimraf package-lock.json\` and remove node_modules folder, dist folder and package-lock.json.
42
- - \`npm run lint\`: Executes \`npx eslint --fix && npx prettier . --write\` and resolve all the linting and prettier errors.
43
-
44
- ## Tooling Setup
45
-
46
- This project uses ESLint integrated with prettier, which verifies and formats your code so you don't have to do it manually. You should have your editor set up to display lint errors and automatically fix those which it is possible to fix. See [http://eslint.org/docs/user-guide/integrations](http://eslint.org/docs/user-guide/integrations).
47
-
48
- This project is build in Visual Studio Code, therefore the project is already set up to work with. Install it from [here](https://code.visualstudio.com/) and then install this [eslint plugin](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) and you should be good to go.
49
-
50
- ## Styling
51
-
52
- This project uses [Tailwind CSS](https://tailwindcss.com/) for styling.
53
-
54
- ${
55
- config.installRouter ? `## Routing
56
-
57
- This project uses [TanStack Router](https://tanstack.com/router). The initial setup is a code based router. Which means that the routes are defined in code (in the \`./src/main.tsx\` file).
58
-
59
- ### Adding A Route
60
-
61
- To add a new route to your application just add another \`createRoute\` call to the \`./src/main.tsx\` file. The example below adds a new \`/about\`route to the root route.
62
-
63
- \`\`\`tsx
64
- const aboutRoute = createRoute({
65
- getParentRoute: () => rootRoute,
66
- path: "/about",
67
- component: () => <h1>About</h1>,
68
- });
69
- \`\`\`
70
-
71
- You will also need to add the route to the \`routeTree\` in the \`./src/main.tsx\` file.
72
-
73
- \`\`\`tsx
74
- const routeTree = rootRoute.addChildren([indexRoute, aboutRoute]);
75
- \`\`\`
76
-
77
- With this set up you should be able to navigate to \`/about\` and see the about page.
78
-
79
- Of course you don't need to implement the About page in the \`main.tsx\` file. You can create that component in another file and import it into the \`main.tsx\` file, then use it in the \`component\` property of the \`createRoute\` call, like so:
80
-
81
- \`\`\`tsx
82
- import About from "./components/About.tsx";
83
-
84
- const aboutRoute = createRoute({
85
- getParentRoute: () => rootRoute,
86
- path: "/about",
87
- component: About,
88
- });
89
- \`\`\`
90
-
91
- That is how we have the \`App\` component set up with the home page.
92
-
93
- For more information on the options you have when you are creating code based routes check out the [Code Based Routing](https://tanstack.com/router/latest/docs/framework/react/guide/code-based-routing) documentation.
94
-
95
- Now that you have two routes you can use a \`Link\` component to navigate between them.
96
-
97
- ### Adding Links
98
-
99
- To use SPA (Single Page Application) navigation you will need to import the \`Link\` component from \`@tanstack/react-router\`.
100
-
101
- \`\`\`tsx
102
- import { Link } from "@tanstack/react-router";
103
- \`\`\`
104
-
105
- Then anywhere in your JSX you can use it like so:
106
-
107
- \`\`\`tsx
108
- <Link to="/about">About</Link>
109
- \`\`\`
110
-
111
- This will create a link that will navigate to the \`/about\` route.
112
-
113
- More information on the \`Link\` component can be found in the [Link documentation](https://tanstack.com/router/v1/docs/framework/react/api/router/linkComponent).
114
- ` :''
115
- }
116
- ${
117
- config.installQuery ? `## Query
118
-
119
- This project uses [TanStack Query](https://tanstack.com/query).
120
- ` :''
121
- }
122
- ## Steps to Embed
123
-
124
- Add the following div in the page
125
-
126
- \`\`\`
127
- <div id="root"></div>
128
- \`\`\`
129
-
130
- Apart from the mentioned \`div\` above the following \`script\` and \`link\` needs to be added to the \`head\` or in the embed code
131
-
132
- \`\`\`
133
- <link rel="dns-prefetch" href="{{Link to the Visualization}}">
134
- <script defer="defer" type="module" src="{{Link to the Visualization}}/index.js"></script>
135
- <link rel="modulepreload" crossorigin href="{{Link to the Visualization}}/react-{{hash}}.js">
136
- <link rel="modulepreload" crossorigin href="{{Link to the Visualization}}/undp-{{hash}}.js">
137
- <link rel="stylesheet" href="{{Link to the Visualization}}/style.css"></link>
138
- \`\`\`
139
-
140
- # Contact us
141
- Contact us at [data@undp.org](mailto:data@undp.org) if you have any feedback or questions.
142
- `;
143
- }
@@ -1,6 +0,0 @@
1
- export function generateStyleCss(installDataViz){
2
- return `@import '@undp/design-system-react/style.css';
3
- ${installDataViz ? `@import '@undp/data-viz/style.css';` : ''}
4
- @import 'tailwindcss';
5
- @config '../../tailwind.config.js';`;
6
- }
@@ -1,6 +0,0 @@
1
-
2
- export { copyTemplate } from './copyTemplate.js';
3
- export { generateIndexHtml } from './generateIndexHtml.js';
4
- export { generatePackageJson } from './generatePackageJson.js';
5
- export { generateReadme } from './generateReadme.js';
6
- export { generateStyleCss } from './generateStyleCss.js';
@@ -1,32 +0,0 @@
1
- import { H3 } from '@undp/design-system-react';
2
-
3
- import '@/styles/fonts.css';
4
- import '@/styles/style.css';
5
- import undpLogo from './assets/undp-logo-blue.svg';
6
-
7
- function App() {
8
- return (
9
- <div>
10
- <div className='m-5'>
11
- <div>
12
- <img
13
- src={undpLogo}
14
- className='logo react mb-8'
15
- alt='React logo'
16
- width='72px'
17
- style={{ marginLeft: 'auto', marginRight: 'auto' }}
18
- />
19
- </div>
20
- <H3 className='text-center'>
21
- This is template for building visualization and frontend project
22
- maintained by UNDP&apos;s DAI Hub.
23
- <br />
24
- <br />
25
- Contact us at data@undp.org if you have any feedback or questions.
26
- </H3>
27
- </div>
28
- </div>
29
- );
30
- }
31
-
32
- export default App;
@@ -1,32 +0,0 @@
1
- import { H3 } from '@undp/design-system-react';
2
-
3
- import '@/styles/fonts.css';
4
- import '@/styles/style.css';
5
- import undpLogo from './assets/undp-logo-blue.svg';
6
-
7
- function App() {
8
- return (
9
- <div className='undp-container'>
10
- <div className='m-5'>
11
- <div>
12
- <img
13
- src={undpLogo}
14
- className='logo react mb-8'
15
- alt='React logo'
16
- width='72px'
17
- style={{ marginLeft: 'auto', marginRight: 'auto' }}
18
- />
19
- </div>
20
- <H3 className='text-center'>
21
- This is template for building visualization and frontend project
22
- maintained by UNDP&apos;s DAI Hub.
23
- <br />
24
- <br />
25
- Contact us at data@undp.org if you have any feedback or questions.
26
- </H3>
27
- </div>
28
- </div>
29
- );
30
- }
31
-
32
- export default App;
@@ -1,44 +0,0 @@
1
- {
2
- "globalHeaders": {
3
- "Access-Control-Allow-Origin": "*",
4
- "Access-Control-Allow-Methods": "GET, OPTIONS"
5
- },
6
- "routes": [
7
- {
8
- "route": "/react-*.js",
9
- "headers": {
10
- "Access-Control-Allow-Origin": "*",
11
- "Access-Control-Allow-Methods": "GET, OPTIONS",
12
- "Cache-Control": "public, max-age=31536000, immutable"
13
- }
14
- },
15
- {
16
- "route": "/undp-*.js",
17
- "headers": {
18
- "Access-Control-Allow-Origin": "*",
19
- "Access-Control-Allow-Methods": "GET, OPTIONS",
20
- "Cache-Control": "public, max-age=31536000, immutable"
21
- }
22
- },
23
- {
24
- "route": "/index.js",
25
- "headers": {
26
- "Access-Control-Allow-Origin": "*",
27
- "Access-Control-Allow-Methods": "GET, OPTIONS",
28
- "Cache-Control": "no-cache"
29
- }
30
- },
31
- {
32
- "route": "/*",
33
- "headers": {
34
- "Access-Control-Allow-Origin": "*",
35
- "Access-Control-Allow-Methods": "GET, OPTIONS",
36
- "Cache-Control": "no-cache"
37
- }
38
- }
39
- ],
40
- "navigationFallback": {
41
- "rewrite": "/index.html",
42
- "exclude": ["/assets/*", "/*.js", "/*.css", "/*.png", "/*.jpg", "/*.svg"]
43
- }
44
- }
@@ -1 +0,0 @@
1
- /// <reference types="vite/client" />
@@ -1,57 +0,0 @@
1
- import { H3 } from '@undp/design-system-react';
2
- import { useQuery } from '@tanstack/react-query';
3
-
4
- import '@/styles/fonts.css';
5
- import '@/styles/style.css';
6
- import undpLogo from './assets/undp-logo-blue.svg';
7
-
8
- function useTodoData() {
9
- return useQuery({
10
- queryKey: ['todos'],
11
- queryFn: () =>
12
- Promise.resolve([
13
- { id: 1, name: 'Alice' },
14
- { id: 2, name: 'Bob' },
15
- { id: 3, name: 'Charlie' },
16
- ]),
17
- initialData: [],
18
- });
19
- }
20
-
21
- function App() {
22
- const { data, isLoading, isError } = useTodoData();
23
-
24
- if (isLoading) return <Spinner size='lg' className='my-20 m-auto' />;
25
-
26
- if (isError)
27
- return (
28
- <div className='px-4 mx-auto'>
29
- <div>Error</div>
30
- </div>
31
- );
32
- return (
33
- <div className='m-5'>
34
- <div>
35
- <img
36
- src={undpLogo}
37
- className='logo react mb-8'
38
- alt='React logo'
39
- width='72px'
40
- style={{ marginLeft: 'auto', marginRight: 'auto' }}
41
- />
42
- </div>
43
- <H3 className='text-center'>
44
- This is template for building visualization and frontend project
45
- maintained by UNDP&apos;s DAI Hub.
46
- <br />
47
- <br />
48
- Contact us at data@undp.org if you have any feedback or questions.
49
- <br />
50
- <br />
51
- {data.length} elements in the query
52
- </H3>
53
- </div>
54
- );
55
- }
56
-
57
- export default App;
@@ -1,67 +0,0 @@
1
- import { H3 } from '@undp/design-system-react';
2
- import { useQuery } from '@tanstack/react-query';
3
-
4
- import '@/styles/fonts.css';
5
- import '@/styles/style.css';
6
- import undpLogo from './assets/undp-logo-blue.svg';
7
-
8
- function useTodoData() {
9
- return useQuery({
10
- queryKey: ['todos'],
11
- queryFn: () =>
12
- Promise.resolve([
13
- { id: 1, name: 'Alice' },
14
- { id: 2, name: 'Bob' },
15
- { id: 3, name: 'Charlie' },
16
- ]),
17
- initialData: [],
18
- });
19
- }
20
-
21
- function App() {
22
- const { data, isLoading, isError } = useTodoData();
23
-
24
- if (isLoading)
25
- return (
26
- <div className='undp-container'>
27
- <Spinner size='lg' className='my-20 m-auto' />
28
- </div>
29
- );
30
-
31
- if (isError)
32
- return (
33
- <div className='undp-container'>
34
- <div className='px-4 mx-auto'>
35
- <div>Error</div>
36
- </div>
37
- </div>
38
- );
39
-
40
- return (
41
- <div className='undp-container'>
42
- <div className='m-5'>
43
- <div>
44
- <img
45
- src={undpLogo}
46
- className='logo react mb-8'
47
- alt='React logo'
48
- width='72px'
49
- style={{ marginLeft: 'auto', marginRight: 'auto' }}
50
- />
51
- </div>
52
- <H3 className='text-center'>
53
- This is template for building visualization and frontend project
54
- maintained by UNDP&apos;s DAI Hub.
55
- <br />
56
- <br />
57
- Contact us at data@undp.org if you have any feedback or questions.
58
- <br />
59
- <br />
60
- {data.length} elements in the query
61
- </H3>
62
- </div>
63
- </div>
64
- );
65
- }
66
-
67
- export default App;
@@ -1,29 +0,0 @@
1
- import { StrictMode } from 'react';
2
- import ReactDOM from 'react-dom/client';
3
- import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
4
-
5
- import './styles/fonts.css';
6
- import './styles/style.css';
7
-
8
- import App from './App';
9
-
10
- const queryClient = new QueryClient({
11
- defaultOptions: {
12
- queries: {
13
- staleTime: 1000 * 60 * 60 * 24, // how long fetched data is considered “fresh” before it becomes “stale” 🡢 24 hrs
14
- gcTime: 1000 * 60 * 60 * 24, // how long inactive (unused) query data stays in memory before being deleted 🡢 24 hrs
15
- },
16
- },
17
- });
18
-
19
- const rootElement = document.getElementById('app');
20
- if (rootElement && !rootElement.innerHTML) {
21
- const root = ReactDOM.createRoot(rootElement);
22
- root.render(
23
- <StrictMode>
24
- <QueryClientProvider client={queryClient}>
25
- <App />
26
- </QueryClientProvider>
27
- </StrictMode>,
28
- );
29
- }
@@ -1,30 +0,0 @@
1
- import { H3 } from '@undp/design-system-react';
2
-
3
- import '@/styles/fonts.css';
4
- import '@/styles/style.css';
5
- import undpLogo from './assets/undp-logo-blue.svg';
6
-
7
- function App() {
8
- return (
9
- <div className='m-5'>
10
- <div>
11
- <img
12
- src={undpLogo}
13
- className='logo react mb-8'
14
- alt='React logo'
15
- width='72px'
16
- style={{ marginLeft: 'auto', marginRight: 'auto' }}
17
- />
18
- </div>
19
- <H3 className='text-center'>
20
- This is template for building visualization and frontend project
21
- maintained by UNDP&apos;s DAI Hub.
22
- <br />
23
- <br />
24
- Contact us at data@undp.org if you have any feedback or questions.
25
- </H3>
26
- </div>
27
- );
28
- }
29
-
30
- export default App;
@@ -1,20 +0,0 @@
1
- import {
2
- Footer,
3
- FooterLogoUnit,
4
- FooterCopyrightUnit,
5
- } from '@undp/design-system-react/Footer';
6
-
7
-
8
-
9
- export default function Header() {
10
- return (
11
- <Footer>
12
- <FooterLogoUnit>
13
- subscribe to email
14
- </FooterLogoUnit>
15
- <FooterCopyrightUnit>
16
- Footnote can be added here
17
- </FooterCopyrightUnit>
18
- </Footer>
19
- )
20
- }
@@ -1,28 +0,0 @@
1
- import { createRoute } from '@tanstack/react-router';
2
- import type { RootRoute } from '@tanstack/react-router';
3
-
4
- function About() {
5
- return (
6
- <div className='m-5'>
7
- <div>
8
- <img
9
- src={undpLogo}
10
- className='logo react mb-8'
11
- alt='React logo'
12
- width='72px'
13
- style={{ marginLeft: 'auto', marginRight: 'auto' }}
14
- />
15
- </div>
16
- <H3 className='text-center'>
17
- This is an about page
18
- </H3>
19
- </div>
20
- );
21
- }
22
-
23
- export default (parentRoute: RootRoute) =>
24
- createRoute({
25
- path: '/about',
26
- component: About,
27
- getParentRoute: () => parentRoute,
28
- });
@@ -1,30 +0,0 @@
1
- import { H3 } from '@undp/design-system-react';
2
-
3
- import '@/styles/fonts.css';
4
- import '@/styles/style.css';
5
- import undpLogo from './assets/undp-logo-blue.svg';
6
-
7
- function App() {
8
- return (
9
- <div className='m-5'>
10
- <div>
11
- <img
12
- src={undpLogo}
13
- className='logo react mb-8'
14
- alt='React logo'
15
- width='72px'
16
- style={{ marginLeft: 'auto', marginRight: 'auto' }}
17
- />
18
- </div>
19
- <H3 className='text-center'>
20
- This is template for building visualization and frontend project
21
- maintained by UNDP&apos;s DAI Hub.
22
- <br />
23
- <br />
24
- Contact us at data@undp.org if you have any feedback or questions.
25
- </H3>
26
- </div>
27
- );
28
- }
29
-
30
- export default App;