@undp/create-app 0.1.0 → 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 +62 -0
  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 +42 -2
  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/eslint.config.js → 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
@@ -0,0 +1,73 @@
1
+ import { createRoute } from '@tanstack/react-router';
2
+ import { useQuery } from '@tanstack/react-query';
3
+ import type { AnyRootRoute } from '@tanstack/react-router';
4
+ import { Spinner } from '@undp/design-system-react/Spinner';
5
+ import { H6, P } from '@undp/design-system-react/Typography';
6
+
7
+ function useTodoData() {
8
+ return useQuery({
9
+ queryKey: ['todos'],
10
+ queryFn: () =>
11
+ Promise.resolve([
12
+ { id: 1, name: 'Alice' },
13
+ { id: 2, name: 'Bob' },
14
+ { id: 3, name: 'Charlie' },
15
+ ]),
16
+ });
17
+ }
18
+
19
+ export function TanStackQueryDemo() {
20
+ const { data, isLoading, isError } = useTodoData();
21
+
22
+ if (isLoading) return <Spinner size='lg' className='my-20 m-auto' />;
23
+
24
+ if (isError) return <>Error</>;
25
+ return (
26
+ <>
27
+ <div className='flex gap-4 items-center justify-center my-8 mx-auto'>
28
+ <img
29
+ src='./imgs/Vitejs-logo.svg'
30
+ alt='vite logo'
31
+ width='72px'
32
+ style={{ marginLeft: 'auto', marginRight: 'auto' }}
33
+ />
34
+ <P marginBottom='none'>&</P>
35
+ <img
36
+ src='./imgs/Tailwind_CSS_Logo.svg'
37
+ alt='tailwind logo'
38
+ width='72px'
39
+ style={{ marginLeft: 'auto', marginRight: 'auto' }}
40
+ />
41
+ <P marginBottom='none'>&</P>
42
+ <img
43
+ src='./imgs/logo-color-600.png'
44
+ alt='tanstack logo'
45
+ width='72px'
46
+ style={{ marginLeft: 'auto', marginRight: 'auto' }}
47
+ />
48
+ <P marginBottom='none'>&</P>
49
+ <img
50
+ src='./imgs/undp-logo-blue.svg'
51
+ alt='UNDP logo'
52
+ width='72px'
53
+ style={{ marginLeft: 'auto', marginRight: 'auto' }}
54
+ />
55
+ </div>
56
+ <H6 marginBottom='xl' className='text-center'>
57
+ Data loaded successfully
58
+ <br />
59
+ <br />
60
+ {data?.length} elements in the query
61
+ </H6>
62
+ </>
63
+ );
64
+ }
65
+ export default function createTanStackQueryDemoRoute(
66
+ parentRoute: AnyRootRoute,
67
+ ) {
68
+ return createRoute({
69
+ path: '/query-demo',
70
+ component: TanStackQueryDemo,
71
+ getParentRoute: () => parentRoute,
72
+ });
73
+ }
@@ -0,0 +1,213 @@
1
+ @font-face {
2
+ font-display: swap;
3
+ font-family: 'ProximaNova';
4
+ font-style: normal;
5
+ font-weight: 100;
6
+ src: url('./fonts/proximanova-thin-webfont.woff2') format('woff2');
7
+ }
8
+
9
+ @font-face {
10
+ font-display: swap;
11
+ font-family: 'ProximaNova';
12
+ font-style: italic;
13
+ font-weight: 100;
14
+ src: url('./fonts/proximanova-thinit-webfont.woff2') format('woff2');
15
+ }
16
+
17
+ @font-face {
18
+ font-display: swap;
19
+ font-family: 'ProximaNova';
20
+ font-style: normal;
21
+ font-weight: 200;
22
+ src: url('./fonts/proximanova-light-webfont.woff2') format('woff2');
23
+ }
24
+
25
+ @font-face {
26
+ font-display: swap;
27
+ font-family: 'ProximaNova';
28
+ font-style: italic;
29
+ font-weight: 200 300;
30
+ src: url('./fonts/proximanova-lightit-webfont.woff2') format('woff2');
31
+ }
32
+
33
+ @font-face {
34
+ font-display: swap;
35
+ font-family: 'ProximaNova';
36
+ font-style: normal;
37
+ font-weight: 400;
38
+ src: url('./fonts/proximanova-regular-webfont.woff2') format('woff2');
39
+ }
40
+
41
+ @font-face {
42
+ font-display: swap;
43
+ font-family: 'ProximaNova';
44
+ font-style: italic;
45
+ font-weight: 400;
46
+ src: url('./fonts/proximanova-regularit-webfont.woff2') format('woff2');
47
+ }
48
+
49
+ @font-face {
50
+ font-display: swap;
51
+ font-family: 'ProximaNova';
52
+ font-style: normal;
53
+ font-weight: 500;
54
+ src: url('./fonts/proximanova-medium-webfont.woff2') format('woff2');
55
+ }
56
+
57
+ @font-face {
58
+ font-display: swap;
59
+ font-family: 'ProximaNova';
60
+ font-style: italic;
61
+ font-weight: 500;
62
+ src: url('./fonts/proximanova-mediumit-webfont.woff2') format('woff2');
63
+ }
64
+
65
+ @font-face {
66
+ font-display: swap;
67
+ font-family: 'ProximaNova';
68
+ font-style: normal;
69
+ font-weight: 600;
70
+ src: url('./fonts/proximanova-semibold-webfont-2.woff2') format('woff2');
71
+ }
72
+
73
+ @font-face {
74
+ font-display: swap;
75
+ font-family: 'ProximaNova';
76
+ font-style: italic;
77
+ font-weight: 600;
78
+ src: url('./fonts/proximanova-semiboldit-webfont-2.woff2') format('woff2');
79
+ }
80
+
81
+ @font-face {
82
+ font-display: swap;
83
+ font-family: 'ProximaNova';
84
+ font-style: normal;
85
+ font-weight: 700;
86
+ src: url('./fonts/proximanova-bold-webfont.woff2') format('woff2');
87
+ }
88
+
89
+ @font-face {
90
+ font-display: swap;
91
+ font-family: 'ProximaNova';
92
+ font-style: italic;
93
+ font-weight: 700;
94
+ src: url('./fonts/proximanova-boldit-webfont.woff2') format('woff2');
95
+ }
96
+
97
+ @font-face {
98
+ font-display: swap;
99
+ font-family: 'ProximaNova';
100
+ font-style: normal;
101
+ font-weight: 800;
102
+ src: url('./fonts/proximanova-extrabold-webfont.woff2') format('woff2');
103
+ }
104
+
105
+ @font-face {
106
+ font-display: swap;
107
+ font-family: 'ProximaNova';
108
+ font-style: italic;
109
+ font-weight: 800;
110
+ src: url('./fonts/proximanova-extraboldit-webfont.woff2') format('woff2');
111
+ }
112
+
113
+ @font-face {
114
+ font-display: swap;
115
+ font-family: 'ProximaNova';
116
+ font-style: normal;
117
+ font-weight: 900;
118
+ src: url('./fonts/proximanova-black-webfont.woff2') format('woff2');
119
+ }
120
+
121
+ @font-face {
122
+ font-display: swap;
123
+ font-family: 'ProximaNova';
124
+ font-style: italic;
125
+ font-weight: 900;
126
+ src: url('./fonts/proximanova-blackit-webfont.woff2') format('woff2');
127
+ }
128
+
129
+ /* SohneBreit */
130
+ @font-face {
131
+ font-display: swap;
132
+ font-family: 'SohneBreit';
133
+ font-style: normal;
134
+ font-weight: 100 700;
135
+ src: url('./fonts/soehne-breit-web-dreiviertelfett.woff2') format('woff2');
136
+ unicode-range: U+0000-024F, U+1E00-1EFF, U+2000-206F, U+2070-209F;
137
+ }
138
+
139
+ @font-face {
140
+ font-display: swap;
141
+ font-family: 'SohneBreit';
142
+ font-style: italic;
143
+ font-weight: 100 700;
144
+ src: url('./fonts/soehne-breit-web-dreiviertelfett-kursiv.woff2')
145
+ format('woff2');
146
+ unicode-range: U+0000-024F, U+1E00-1EFF, U+2000-206F, U+2070-209F;
147
+ }
148
+
149
+ @font-face {
150
+ font-display: swap;
151
+ font-family: 'SohneBreit';
152
+ font-style: normal;
153
+ font-weight: 800 900;
154
+ src: url('./fonts/soehne-breit-web-fett.woff2') format('woff2');
155
+ unicode-range: U+0000-024F, U+1E00-1EFF, U+2000-206F, U+2070-209F;
156
+ }
157
+
158
+ @font-face {
159
+ font-display: swap;
160
+ font-family: 'SohneBreit';
161
+ font-style: italic;
162
+ font-weight: 800 900;
163
+ src: url('./fonts/soehne-breit-web-fett-kursiv.woff2') format('woff2');
164
+ unicode-range: U+0000-024F, U+1E00-1EFF, U+2000-20CF;
165
+ }
166
+
167
+ @font-face {
168
+ font-display: swap;
169
+ font-family: 'UNBangla';
170
+ font-style: normal;
171
+ font-weight: 100 300;
172
+ src: url('./fonts/UNBangla-Thin.woff2') format('woff2');
173
+ }
174
+
175
+ @font-face {
176
+ font-display: swap;
177
+ font-family: 'UNBangla';
178
+ font-style: italic;
179
+ font-weight: 100 300;
180
+ src: url('./fonts/UNBangla-ThinItalic.woff2') format('woff2');
181
+ }
182
+
183
+ @font-face {
184
+ font-display: swap;
185
+ font-family: 'UNBangla';
186
+ font-style: normal;
187
+ font-weight: 400;
188
+ src: url('./fonts/UNBangla-Regular.woff2') format('woff2');
189
+ }
190
+
191
+ @font-face {
192
+ font-display: swap;
193
+ font-family: 'UNBangla';
194
+ font-style: italic;
195
+ font-weight: 400;
196
+ src: url('./fonts/UNBangla-Italic.woff2') format('woff2');
197
+ }
198
+
199
+ @font-face {
200
+ font-display: swap;
201
+ font-family: 'UNBangla';
202
+ font-style: normal;
203
+ font-weight: 500 900;
204
+ src: url('./fonts/UNBangla-Bold.woff2') format('woff2');
205
+ }
206
+
207
+ @font-face {
208
+ font-display: swap;
209
+ font-family: 'UNBangla';
210
+ font-style: italic;
211
+ font-weight: 500 900;
212
+ src: url('./fonts/UNBangla-BoldItalic.woff2') format('woff2');
213
+ }
@@ -0,0 +1,3 @@
1
+ @import '@undp/design-system-react/style.css';
2
+ @import 'tailwindcss';
3
+ @config '../../tailwind.config.js';
@@ -0,0 +1 @@
1
+ /// <reference types="vite/client" />
@@ -0,0 +1,7 @@
1
+ import * as Preset from '@undp/design-system-react/tailwind.config';
2
+
3
+ /** @type {import('tailwindcss').Config} */
4
+
5
+ export default {
6
+ presets: [Preset],
7
+ };
@@ -0,0 +1,29 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ESNext",
4
+ "allowImportingTsExtensions": true,
5
+ "declaration": true,
6
+ "declarationMap": true,
7
+ "useDefineForClassFields": true,
8
+ "lib": ["DOM", "DOM.Iterable", "ESNext"],
9
+ "allowJs": false,
10
+ "skipLibCheck": true,
11
+ "esModuleInterop": false,
12
+ "allowSyntheticDefaultImports": true,
13
+ "strict": true,
14
+ "forceConsistentCasingInFileNames": true,
15
+ "module": "ESNext",
16
+ "moduleResolution": "bundler",
17
+ "resolveJsonModule": true,
18
+ "isolatedModules": true,
19
+ "noEmit": true,
20
+ "jsx": "react-jsx",
21
+ "baseUrl": ".",
22
+ "paths": {
23
+ "@/*": ["./src/*"]
24
+ }
25
+ },
26
+ "files": [],
27
+ "include": ["eslint.config.mjs", "src", "tailwind.config.js"],
28
+ "references": [{ "path": "./tsconfig.node.json" }]
29
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "module": "ESNext",
5
+ "moduleResolution": "bundler",
6
+ "allowSyntheticDefaultImports": true
7
+ },
8
+ "include": ["vite.config.ts"]
9
+ }
@@ -0,0 +1,75 @@
1
+ import path from 'path';
2
+
3
+ import { defineConfig } from 'vite';
4
+ import react from '@vitejs/plugin-react';
5
+ import eslint from '@nabla/vite-plugin-eslint';
6
+ import { visualizer } from 'rollup-plugin-visualizer';
7
+ import postcssNested from 'postcss-nested';
8
+ import tailwindcss from '@tailwindcss/postcss';
9
+ import { viteStaticCopy } from 'vite-plugin-static-copy';
10
+
11
+ export default defineConfig({
12
+ plugins: [
13
+ react({
14
+ babel: {
15
+ plugins: ['babel-plugin-react-compiler'],
16
+ },
17
+ }),
18
+ eslint(),
19
+ visualizer({ filename: 'stats.html', open: true }),
20
+ viteStaticCopy({
21
+ targets: [{ src: 'staticwebapp.config.json', dest: '' }],
22
+ }),
23
+ ],
24
+ css: {
25
+ postcss: {
26
+ plugins: [
27
+ postcssNested(),
28
+ tailwindcss(),
29
+ {
30
+ postcssPlugin: 'move-media-queries-last', // If you want to reorder media queries to the end
31
+ OnceExit(root) {
32
+ const mediaQueries = [];
33
+
34
+ // Collect all media queries
35
+ root.walkAtRules('media', mediaRule => {
36
+ mediaQueries.push(mediaRule.clone());
37
+ mediaRule.remove();
38
+ });
39
+
40
+ // Append them at the end
41
+ mediaQueries.forEach(mediaQuery => {
42
+ root.append(mediaQuery);
43
+ });
44
+ },
45
+ },
46
+ ],
47
+ },
48
+ },
49
+ build: {
50
+ manifest: true,
51
+ cssCodeSplit: false,
52
+ rollupOptions: {
53
+ output: {
54
+ manualChunks(id) {
55
+ if (id.includes('node_modules/react')) return 'react';
56
+ if (id.includes('@undp/design-system-react')) return 'undp';
57
+ if (id.includes('@undp/data-viz')) return 'undp';
58
+ },
59
+ chunkFileNames: '[name]-[hash].js',
60
+ assetFileNames: '[name].[ext]',
61
+ entryFileNames: '[name].js',
62
+ },
63
+ treeshake: true,
64
+ },
65
+ },
66
+ server: {
67
+ cors: {
68
+ origin: '*',
69
+ methods: ['GET'],
70
+ preflightContinue: false,
71
+ optionsSuccessStatus: 204,
72
+ },
73
+ },
74
+ resolve: { alias: { '@': path.resolve(__dirname, './src') } },
75
+ });
@@ -0,0 +1,10 @@
1
+ {
2
+ "semi": true,
3
+ "singleQuote": true,
4
+ "trailingComma": "all",
5
+ "arrowParens": "avoid",
6
+ "tabWidth": 2,
7
+ "jsxSingleQuote": true,
8
+ "endOfLine": "auto",
9
+ "bracketSpacing": true
10
+ }
@@ -0,0 +1,106 @@
1
+ This is a React + TypeScript + Vite project powered by Tailwind CSS, and the UNDP Design System, bootstrapped with [@undp/create-app](https://www.npmjs.com/package/@undp/create-app).
2
+
3
+ It includes:
4
+ * React 19.x with React compiler
5
+ * UNDP Design System
6
+ * Routing with [TanStack Router](https://tanstack.com/router)
7
+ * TailwindCSS
8
+ * Code linting and formatting via ESLint and Prettier
9
+
10
+ ## 🧩 Installation
11
+
12
+ This project uses `npm`.
13
+
14
+ 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/).
15
+
16
+ To install the project, simply run `npm install` in the project folder in the terminal on Mac or Command Prompt on Windows.
17
+
18
+ ## 🚀 Local Development
19
+
20
+ To start the project locally:
21
+
22
+ ```bash
23
+ npm run dev
24
+ ```
25
+
26
+ This is run the app in development mode. Open [http://localhost:5173/](http://localhost:5173/) to view it in the browser.
27
+
28
+ The page will reload if you make edits. You will also see any lint errors in the console.
29
+
30
+ ## 📜 Available Scripts
31
+
32
+ - `npm run dev`: Executes `vite` and start the local server for local deployment.
33
+ - `npm run build`: Executes `tsc && vite build` and builds the app for production and deployment.
34
+ - `npm run preview`: Executes `vite preview` and serves the static build output (from vite build) locally.
35
+ - `npm run clean`: Executes `rimraf node_modules && rimraf dist && rimraf package-lock.json` and remove node_modules folder, dist folder and package-lock.json.
36
+ - `npm run lint`: Executes `npx eslint --fix && npx prettier . --write` and resolve all the linting and prettier errors.
37
+
38
+ ## 🧰 Tooling Setup
39
+
40
+ This project uses ESLint integrated with Prettier to automatically format and lint your code.
41
+
42
+ If you’re using Visual Studio Code, install:
43
+ * [ESLint extension](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
44
+ * [Prettier extension](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
45
+
46
+ Your editor should now show linting errors and automatically fix issues where possible.
47
+
48
+ More info: [ESLint Integrations](http://eslint.org/docs/user-guide/integrations)
49
+
50
+ ## 🎨 Styling
51
+
52
+ This project uses [Tailwind CSS](https://tailwindcss.com/) for styling and and includes pre-configured design tokens from the UNDP Design System.
53
+
54
+ ## 🧭 Routing
55
+
56
+ Routing is powered by [TanStack Router](https://tanstack.com/router) and uses a code-based configuration (in the `./src/main.tsx`).
57
+
58
+ ### Adding A Route
59
+
60
+ Example: add an `/about` route:
61
+
62
+ ```tsx
63
+ const aboutRoute = createRoute({
64
+ getParentRoute: () => rootRoute,
65
+ path: "/about",
66
+ component: () => <h1>About</h1>,
67
+ });
68
+ ```
69
+
70
+ Then, register it in your `routeTree`:
71
+
72
+ ```tsx
73
+ const routeTree = rootRoute.addChildren([indexRoute, aboutRoute]);
74
+ ```
75
+
76
+ You can define your component in another file:
77
+
78
+ ```tsx
79
+ import About from "./components/About.tsx";
80
+
81
+ const aboutRoute = createRoute({
82
+ getParentRoute: () => rootRoute,
83
+ path: "/about",
84
+ component: About,
85
+ });
86
+ ```
87
+
88
+ More info: [Code Based Routing](https://tanstack.com/router/latest/docs/framework/react/guide/code-based-routing).
89
+
90
+ Now that you have two routes you can use a `Link` component to navigate between them.
91
+
92
+ ### Adding Links
93
+
94
+ Use the `Link` component for client-side navigation:
95
+
96
+ ```tsx
97
+ import { Link } from "@tanstack/react-router";
98
+
99
+ <Link to="/about">About</Link>
100
+ ```
101
+
102
+ More info: [Link documentation](https://tanstack.com/router/v1/docs/framework/react/api/router/linkComponent).
103
+
104
+ ## 📬 Contact us
105
+
106
+ For questions or feedback, contact us at [data@undp.org](mailto:data@undp.org).
@@ -0,0 +1,97 @@
1
+ import js from '@eslint/js';
2
+ import tseslint from 'typescript-eslint';
3
+ import pluginReact from 'eslint-plugin-react';
4
+ import reactHooks from 'eslint-plugin-react-hooks';
5
+ import importPlugin from 'eslint-plugin-import';
6
+ import jsxA11y from 'eslint-plugin-jsx-a11y';
7
+ import { defineConfig } from 'eslint/config';
8
+ import prettierConfig from 'eslint-config-prettier';
9
+ import prettierPlugin from 'eslint-plugin-prettier';
10
+
11
+ export default defineConfig([
12
+ {
13
+ ignores: [
14
+ 'node_modules/**',
15
+ 'build/**',
16
+ 'public/**',
17
+ 'dist/**',
18
+ 'storybook-static/**',
19
+ 'dist-ssr/**',
20
+ 'coverage/**',
21
+ '**/*.test.js',
22
+ '**/__snapshots__/**',
23
+ ],
24
+ },
25
+ js.configs.recommended,
26
+ reactHooks.configs.flat.recommended,
27
+ ...tseslint.configs.recommended,
28
+ {
29
+ files: ['**/*.{js,mjs,cjs,ts,jsx,tsx,ts}'],
30
+ plugins: {
31
+ react: pluginReact,
32
+ 'react-hooks': reactHooks,
33
+ import: importPlugin,
34
+ 'jsx-a11y': jsxA11y,
35
+ prettier: prettierPlugin,
36
+ },
37
+ settings: {
38
+ react: {
39
+ version: 'detect',
40
+ },
41
+ },
42
+ rules: {
43
+ // React rules
44
+ 'react/self-closing-comp': ['error', { component: true, html: true }],
45
+ 'react/react-in-jsx-scope': 'off',
46
+ 'react/jsx-uses-react': 'off',
47
+ 'react/jsx-uses-vars': 'warn',
48
+ 'react/jsx-no-undef': 'error',
49
+ 'react/jsx-curly-brace-presence': 'error',
50
+ 'react/prop-types': 'off',
51
+ 'react/require-default-props': 0,
52
+ 'react/jsx-filename-extension': 0,
53
+ 'react/no-array-index-key': 0,
54
+ 'react/jsx-props-no-spreading': 0,
55
+
56
+ // TypeScript rules
57
+ 'no-unused-vars': 'off',
58
+ '@typescript-eslint/no-unused-vars': [
59
+ 'error',
60
+ { argsIgnorePattern: '^_' },
61
+ ],
62
+ '@typescript-eslint/no-explicit-any': 'warn',
63
+
64
+ // Import rules
65
+ 'import/order': [
66
+ 'warn',
67
+ {
68
+ groups: [
69
+ 'builtin',
70
+ 'external',
71
+ 'internal',
72
+ 'parent',
73
+ 'sibling',
74
+ 'index',
75
+ ],
76
+ 'newlines-between': 'always',
77
+ },
78
+ ],
79
+ 'import/no-unresolved': 0,
80
+ 'import/no-extraneous-dependencies': ['warn', { devDependencies: true }],
81
+ 'import/extensions': 0,
82
+ 'import/prefer-default-export': 0,
83
+
84
+ // A11y rules
85
+ 'jsx-a11y/alt-text': 'warn',
86
+ 'jsx-a11y/anchor-is-valid': 'warn',
87
+
88
+ // General rules
89
+ 'prefer-const': 'error',
90
+ 'no-console': ['warn', { allow: ['warn', 'error'] }],
91
+ 'no-debugger': 'warn',
92
+ 'no-nested-ternary': 0,
93
+ 'prettier/prettier': 'error',
94
+ },
95
+ },
96
+ prettierConfig,
97
+ ]);
@@ -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="/undp-logo-blue.svg" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>My Vite + Tailwind + UNDP App</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 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 54 33"><g clip-path="url(#prefix__clip0)"><path fill="#38bdf8" fill-rule="evenodd" d="M27 0c-7.2 0-11.7 3.6-13.5 10.8 2.7-3.6 5.85-4.95 9.45-4.05 2.054.513 3.522 2.004 5.147 3.653C30.744 13.09 33.808 16.2 40.5 16.2c7.2 0 11.7-3.6 13.5-10.8-2.7 3.6-5.85 4.95-9.45 4.05-2.054-.513-3.522-2.004-5.147-3.653C36.756 3.11 33.692 0 27 0zM13.5 16.2C6.3 16.2 1.8 19.8 0 27c2.7-3.6 5.85-4.95 9.45-4.05 2.054.514 3.522 2.004 5.147 3.653C17.244 29.29 20.308 32.4 27 32.4c7.2 0 11.7-3.6 13.5-10.8-2.7 3.6-5.85 4.95-9.45 4.05-2.054-.513-3.522-2.004-5.147-3.653C23.256 19.31 20.192 16.2 13.5 16.2z" clip-rule="evenodd"/></g><defs><clipPath id="prefix__clip0"><path fill="#fff" d="M0 0h54v32.4H0z"/></clipPath></defs></svg>
@@ -0,0 +1,15 @@
1
+ <svg width="410" height="404" viewBox="0 0 410 404" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M399.641 59.5246L215.643 388.545C211.844 395.338 202.084 395.378 198.228 388.618L10.5817 59.5563C6.38087 52.1896 12.6802 43.2665 21.0281 44.7586L205.223 77.6824C206.398 77.8924 207.601 77.8904 208.776 77.6763L389.119 44.8058C397.439 43.2894 403.768 52.1434 399.641 59.5246Z" fill="url(#paint0_linear)"/>
3
+ <path d="M292.965 1.5744L156.801 28.2552C154.563 28.6937 152.906 30.5903 152.771 32.8664L144.395 174.33C144.198 177.662 147.258 180.248 150.51 179.498L188.42 170.749C191.967 169.931 195.172 173.055 194.443 176.622L183.18 231.775C182.422 235.487 185.907 238.661 189.532 237.56L212.947 230.446C216.577 229.344 220.065 232.527 219.297 236.242L201.398 322.875C200.278 328.294 207.486 331.249 210.492 326.603L212.5 323.5L323.454 102.072C325.312 98.3645 322.108 94.137 318.036 94.9228L279.014 102.454C275.347 103.161 272.227 99.746 273.262 96.1583L298.731 7.86689C299.767 4.27314 296.636 0.855181 292.965 1.5744Z" fill="url(#paint1_linear)"/>
4
+ <defs>
5
+ <linearGradient id="paint0_linear" x1="6.00017" y1="32.9999" x2="235" y2="344" gradientUnits="userSpaceOnUse">
6
+ <stop stop-color="#41D1FF"/>
7
+ <stop offset="1" stop-color="#BD34FE"/>
8
+ </linearGradient>
9
+ <linearGradient id="paint1_linear" x1="194.651" y1="8.81818" x2="236.076" y2="292.989" gradientUnits="userSpaceOnUse">
10
+ <stop stop-color="#FFEA83"/>
11
+ <stop offset="0.0833333" stop-color="#FFDD35"/>
12
+ <stop offset="1" stop-color="#FFA800"/>
13
+ </linearGradient>
14
+ </defs>
15
+ </svg>