@donotdev/cli 0.0.3

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 (281) hide show
  1. package/LICENSE.md +48 -0
  2. package/README.md +291 -0
  3. package/dependencies-matrix.json +694 -0
  4. package/dist/bin/commands/build.d.ts +11 -0
  5. package/dist/bin/commands/build.d.ts.map +1 -0
  6. package/dist/bin/commands/build.js +8162 -0
  7. package/dist/bin/commands/build.js.map +1 -0
  8. package/dist/bin/commands/bump.d.ts +11 -0
  9. package/dist/bin/commands/bump.d.ts.map +1 -0
  10. package/dist/bin/commands/bump.js +8004 -0
  11. package/dist/bin/commands/bump.js.map +1 -0
  12. package/dist/bin/commands/cacheout.d.ts +11 -0
  13. package/dist/bin/commands/cacheout.d.ts.map +1 -0
  14. package/dist/bin/commands/cacheout.js +7630 -0
  15. package/dist/bin/commands/cacheout.js.map +1 -0
  16. package/dist/bin/commands/create-app.d.ts +11 -0
  17. package/dist/bin/commands/create-app.d.ts.map +1 -0
  18. package/dist/bin/commands/create-app.js +9032 -0
  19. package/dist/bin/commands/create-app.js.map +1 -0
  20. package/dist/bin/commands/create-project.d.ts +11 -0
  21. package/dist/bin/commands/create-project.d.ts.map +1 -0
  22. package/dist/bin/commands/create-project.js +9643 -0
  23. package/dist/bin/commands/create-project.js.map +1 -0
  24. package/dist/bin/commands/deploy.d.ts +11 -0
  25. package/dist/bin/commands/deploy.d.ts.map +1 -0
  26. package/dist/bin/commands/deploy.js +9007 -0
  27. package/dist/bin/commands/deploy.js.map +1 -0
  28. package/dist/bin/commands/dev.d.ts +11 -0
  29. package/dist/bin/commands/dev.d.ts.map +1 -0
  30. package/dist/bin/commands/dev.js +7892 -0
  31. package/dist/bin/commands/dev.js.map +1 -0
  32. package/dist/bin/commands/emu.d.ts +11 -0
  33. package/dist/bin/commands/emu.d.ts.map +1 -0
  34. package/dist/bin/commands/emu.js +8302 -0
  35. package/dist/bin/commands/emu.js.map +1 -0
  36. package/dist/bin/commands/format.d.ts +11 -0
  37. package/dist/bin/commands/format.d.ts.map +1 -0
  38. package/dist/bin/commands/format.js +8009 -0
  39. package/dist/bin/commands/format.js.map +1 -0
  40. package/dist/bin/commands/lint.d.ts +11 -0
  41. package/dist/bin/commands/lint.d.ts.map +1 -0
  42. package/dist/bin/commands/lint.js +7481 -0
  43. package/dist/bin/commands/lint.js.map +1 -0
  44. package/dist/bin/commands/preview.d.ts +11 -0
  45. package/dist/bin/commands/preview.d.ts.map +1 -0
  46. package/dist/bin/commands/preview.js +7909 -0
  47. package/dist/bin/commands/preview.js.map +1 -0
  48. package/dist/bin/commands/sync-secrets.d.ts +11 -0
  49. package/dist/bin/commands/sync-secrets.d.ts.map +1 -0
  50. package/dist/bin/commands/sync-secrets.js +8227 -0
  51. package/dist/bin/commands/sync-secrets.js.map +1 -0
  52. package/dist/bin/dndev.js +222 -0
  53. package/dist/bin/donotdev.js +222 -0
  54. package/dist/index.d.ts +8 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +12820 -0
  57. package/dist/index.js.map +1 -0
  58. package/package.json +71 -0
  59. package/templates/app-demo/index.html.example +20 -0
  60. package/templates/app-demo/public/favicon.ico.example +0 -0
  61. package/templates/app-demo/public/fonts/Roboto-400-cyrillic-ext.woff2.example +0 -0
  62. package/templates/app-demo/public/fonts/Roboto-400-cyrillic.woff2.example +0 -0
  63. package/templates/app-demo/public/fonts/Roboto-400-greek-ext.woff2.example +0 -0
  64. package/templates/app-demo/public/fonts/Roboto-400-greek.woff2.example +0 -0
  65. package/templates/app-demo/public/fonts/Roboto-400-latin-ext.woff2.example +0 -0
  66. package/templates/app-demo/public/fonts/Roboto-400-latin.woff2.example +0 -0
  67. package/templates/app-demo/public/fonts/Roboto-400-vietnamese.woff2.example +0 -0
  68. package/templates/app-demo/public/fonts/Roboto-700-cyrillic-ext.woff2.example +0 -0
  69. package/templates/app-demo/public/fonts/Roboto-700-cyrillic.woff2.example +0 -0
  70. package/templates/app-demo/public/fonts/Roboto-700-greek-ext.woff2.example +0 -0
  71. package/templates/app-demo/public/fonts/Roboto-700-greek.woff2.example +0 -0
  72. package/templates/app-demo/public/fonts/Roboto-700-latin-ext.woff2.example +0 -0
  73. package/templates/app-demo/public/fonts/Roboto-700-latin.woff2.example +0 -0
  74. package/templates/app-demo/public/fonts/Roboto-700-vietnamese.woff2.example +0 -0
  75. package/templates/app-demo/public/fonts/fonts.css.example +144 -0
  76. package/templates/app-demo/public/logo.png.example +0 -0
  77. package/templates/app-demo/public/logo.svg.example +1 -0
  78. package/templates/app-demo/public/manifest.json.example +10 -0
  79. package/templates/app-demo/src/App.tsx.example +17 -0
  80. package/templates/app-demo/src/Routes.tsx.example +20 -0
  81. package/templates/app-demo/src/components/ThemeToggle.tsx.example +48 -0
  82. package/templates/app-demo/src/globals.css.example +4 -0
  83. package/templates/app-demo/src/main.tsx.example +27 -0
  84. package/templates/app-demo/src/pages/DetailPage.tsx.example +103 -0
  85. package/templates/app-demo/src/pages/FullPage.tsx.example +142 -0
  86. package/templates/app-demo/src/pages/HomePage.tsx.example +79 -0
  87. package/templates/app-demo/src/pages/components/ComponentRenderer.tsx.example +511 -0
  88. package/templates/app-demo/src/pages/components/ComponentsData.tsx.example +152 -0
  89. package/templates/app-demo/src/pages/components/DemoLayout.tsx.example +266 -0
  90. package/templates/app-demo/src/pages/components/LayoutRoute.tsx.example +20 -0
  91. package/templates/app-demo/src/pages/components/componentConfig.ts.example +921 -0
  92. package/templates/app-demo/src/themes.css.example +179 -0
  93. package/templates/app-demo/tsconfig.json.example +9 -0
  94. package/templates/app-demo/vite.config.ts.example +53 -0
  95. package/templates/app-next/.env.example +92 -0
  96. package/templates/app-next/next.config.ts.example +8 -0
  97. package/templates/app-next/postcss.config.js.example +58 -0
  98. package/templates/app-next/service-account-key.json.example +2 -0
  99. package/templates/app-next/src/app/ClientLayout.tsx.example +39 -0
  100. package/templates/app-next/src/app/layout.tsx.example +52 -0
  101. package/templates/app-next/src/app/not-found.tsx.example +21 -0
  102. package/templates/app-next/src/config/app.ts.example +75 -0
  103. package/templates/app-next/src/config/legal.ts.example +170 -0
  104. package/templates/app-next/src/globals.css.example +15 -0
  105. package/templates/app-next/src/locales/dndev_en.json.example +516 -0
  106. package/templates/app-next/src/pages/HomePage.tsx.example +20 -0
  107. package/templates/app-next/src/pages/legal/LegalNoticePage.tsx.example +75 -0
  108. package/templates/app-next/src/pages/legal/PrivacyPage.tsx.example +69 -0
  109. package/templates/app-next/src/pages/legal/TermsPage.tsx.example +71 -0
  110. package/templates/app-next/src/themes.css.example +179 -0
  111. package/templates/app-next/tsconfig.json.example +11 -0
  112. package/templates/app-payload/.env.example +28 -0
  113. package/templates/app-payload/README.md.example +233 -0
  114. package/templates/app-payload/collections/Company.ts.example +125 -0
  115. package/templates/app-payload/collections/Hero.ts.example +62 -0
  116. package/templates/app-payload/collections/Media.ts.example +41 -0
  117. package/templates/app-payload/collections/Products.ts.example +115 -0
  118. package/templates/app-payload/collections/Services.ts.example +104 -0
  119. package/templates/app-payload/collections/Testimonials.ts.example +92 -0
  120. package/templates/app-payload/collections/Users.ts.example +35 -0
  121. package/templates/app-payload/src/server.ts.example +79 -0
  122. package/templates/app-payload/tsconfig.json.example +24 -0
  123. package/templates/app-vite/.env.example +77 -0
  124. package/templates/app-vite/index.html.example +127 -0
  125. package/templates/app-vite/service-account-key.json.example +2 -0
  126. package/templates/app-vite/src/App.tsx.example +39 -0
  127. package/templates/app-vite/src/Routes.tsx.example +16 -0
  128. package/templates/app-vite/src/config/app.ts.example +75 -0
  129. package/templates/app-vite/src/config/legal.ts.example +170 -0
  130. package/templates/app-vite/src/globals.css.example +11 -0
  131. package/templates/app-vite/src/locales/dndev_en.json.example +516 -0
  132. package/templates/app-vite/src/main.tsx.example +21 -0
  133. package/templates/app-vite/src/pages/HomePage.tsx.example +22 -0
  134. package/templates/app-vite/src/pages/NotFoundPage.tsx.example +33 -0
  135. package/templates/app-vite/src/pages/legal/LegalNoticePage.tsx.example +75 -0
  136. package/templates/app-vite/src/pages/legal/PrivacyPage.tsx.example +69 -0
  137. package/templates/app-vite/src/pages/legal/TermsPage.tsx.example +71 -0
  138. package/templates/app-vite/src/pages/locales/README.md.example +1 -0
  139. package/templates/app-vite/src/pages/locales/example_en.json.example +5 -0
  140. package/templates/app-vite/src/themes.css.example +179 -0
  141. package/templates/app-vite/tsconfig.json.example +9 -0
  142. package/templates/app-vite/vite.config.ts.example +9 -0
  143. package/templates/functions-firebase/README.md.example +129 -0
  144. package/templates/functions-firebase/build.mjs.example +52 -0
  145. package/templates/functions-firebase/functions-firebase/.env.example.example +45 -0
  146. package/templates/functions-firebase/functions-firebase/README.md.example +123 -0
  147. package/templates/functions-firebase/functions-firebase/build.mjs.example +52 -0
  148. package/templates/functions-firebase/functions-firebase/src/auth/getCustomClaims.ts.example +19 -0
  149. package/templates/functions-firebase/functions-firebase/src/auth/getUserAuthStatus.ts.example +21 -0
  150. package/templates/functions-firebase/functions-firebase/src/auth/index.ts.example +11 -0
  151. package/templates/functions-firebase/functions-firebase/src/auth/removeCustomClaims.ts.example +21 -0
  152. package/templates/functions-firebase/functions-firebase/src/auth/setCustomClaims.ts.example +21 -0
  153. package/templates/functions-firebase/functions-firebase/src/billing/handleStripeWebhook.ts.example +24 -0
  154. package/templates/functions-firebase/functions-firebase/src/billing/index.ts.example +10 -0
  155. package/templates/functions-firebase/functions-firebase/src/billing/processPaymentSuccess.ts.example +14 -0
  156. package/templates/functions-firebase/functions-firebase/src/billing/refreshSubscriptionStatus.ts.example +14 -0
  157. package/templates/functions-firebase/functions-firebase/src/crud/createEntity.ts.example +19 -0
  158. package/templates/functions-firebase/functions-firebase/src/crud/deleteEntity.ts.example +14 -0
  159. package/templates/functions-firebase/functions-firebase/src/crud/getEntity.ts.example +14 -0
  160. package/templates/functions-firebase/functions-firebase/src/crud/index.ts.example +12 -0
  161. package/templates/functions-firebase/functions-firebase/src/crud/listEntities.ts.example +14 -0
  162. package/templates/functions-firebase/functions-firebase/src/crud/updateEntity.ts.example +14 -0
  163. package/templates/functions-firebase/functions-firebase/src/index.ts.example +45 -0
  164. package/templates/functions-firebase/functions-firebase/src/oauth/checkGitHubAccess.ts.example +14 -0
  165. package/templates/functions-firebase/functions-firebase/src/oauth/disconnect.ts.example +14 -0
  166. package/templates/functions-firebase/functions-firebase/src/oauth/exchangeToken.ts.example +14 -0
  167. package/templates/functions-firebase/functions-firebase/src/oauth/getConnections.ts.example +14 -0
  168. package/templates/functions-firebase/functions-firebase/src/oauth/grantGitHubAccess.ts.example +14 -0
  169. package/templates/functions-firebase/functions-firebase/src/oauth/index.ts.example +17 -0
  170. package/templates/functions-firebase/functions-firebase/src/oauth/refreshToken.ts.example +14 -0
  171. package/templates/functions-firebase/functions-firebase/src/oauth/revokeGitHubAccess.ts.example +14 -0
  172. package/templates/functions-firebase/functions-firebase/tsconfig.json.example +21 -0
  173. package/templates/functions-firebase/functions.yaml.example +14 -0
  174. package/templates/functions-firebase/src/auth/getCustomClaims.ts.example +19 -0
  175. package/templates/functions-firebase/src/auth/getUserAuthStatus.ts.example +21 -0
  176. package/templates/functions-firebase/src/auth/index.ts.example +11 -0
  177. package/templates/functions-firebase/src/auth/removeCustomClaims.ts.example +21 -0
  178. package/templates/functions-firebase/src/auth/setCustomClaims.ts.example +21 -0
  179. package/templates/functions-firebase/src/billing/handleStripeWebhook.ts.example +24 -0
  180. package/templates/functions-firebase/src/billing/index.ts.example +10 -0
  181. package/templates/functions-firebase/src/billing/processPaymentSuccess.ts.example +14 -0
  182. package/templates/functions-firebase/src/billing/refreshSubscriptionStatus.ts.example +14 -0
  183. package/templates/functions-firebase/src/crud/createEntity.ts.example +19 -0
  184. package/templates/functions-firebase/src/crud/deleteEntity.ts.example +14 -0
  185. package/templates/functions-firebase/src/crud/getEntity.ts.example +14 -0
  186. package/templates/functions-firebase/src/crud/index.ts.example +12 -0
  187. package/templates/functions-firebase/src/crud/listEntities.ts.example +14 -0
  188. package/templates/functions-firebase/src/crud/updateEntity.ts.example +14 -0
  189. package/templates/functions-firebase/src/index.ts.example +45 -0
  190. package/templates/functions-firebase/src/oauth/checkGitHubAccess.ts.example +14 -0
  191. package/templates/functions-firebase/src/oauth/disconnect.ts.example +14 -0
  192. package/templates/functions-firebase/src/oauth/exchangeToken.ts.example +14 -0
  193. package/templates/functions-firebase/src/oauth/getConnections.ts.example +14 -0
  194. package/templates/functions-firebase/src/oauth/grantGitHubAccess.ts.example +14 -0
  195. package/templates/functions-firebase/src/oauth/index.ts.example +17 -0
  196. package/templates/functions-firebase/src/oauth/refreshToken.ts.example +14 -0
  197. package/templates/functions-firebase/src/oauth/revokeGitHubAccess.ts.example +14 -0
  198. package/templates/functions-firebase/tsconfig.json.example +24 -0
  199. package/templates/functions-vercel/README.md.example +116 -0
  200. package/templates/functions-vercel/build.mjs.example +52 -0
  201. package/templates/functions-vercel/functions-vercel/.env.example.example +37 -0
  202. package/templates/functions-vercel/functions-vercel/README.md.example +116 -0
  203. package/templates/functions-vercel/functions-vercel/build.mjs.example +52 -0
  204. package/templates/functions-vercel/functions-vercel/src/api/auth/getCustomClaims.ts.example +20 -0
  205. package/templates/functions-vercel/functions-vercel/src/api/auth/getUserAuthStatus.ts.example +20 -0
  206. package/templates/functions-vercel/functions-vercel/src/api/auth/removeCustomClaims.ts.example +20 -0
  207. package/templates/functions-vercel/functions-vercel/src/api/auth/setCustomClaims.ts.example +20 -0
  208. package/templates/functions-vercel/functions-vercel/src/api/billing/handleStripeWebhook.ts.example +20 -0
  209. package/templates/functions-vercel/functions-vercel/src/api/billing/processPaymentSuccess.ts.example +20 -0
  210. package/templates/functions-vercel/functions-vercel/src/api/billing/refreshSubscriptionStatus.ts.example +20 -0
  211. package/templates/functions-vercel/functions-vercel/src/api/crud/createEntity.ts.example +20 -0
  212. package/templates/functions-vercel/functions-vercel/src/api/crud/deleteEntity.ts.example +20 -0
  213. package/templates/functions-vercel/functions-vercel/src/api/crud/getEntity.ts.example +20 -0
  214. package/templates/functions-vercel/functions-vercel/src/api/crud/listEntities.ts.example +20 -0
  215. package/templates/functions-vercel/functions-vercel/src/api/crud/updateEntity.ts.example +20 -0
  216. package/templates/functions-vercel/functions-vercel/src/api/oauth/checkGitHubAccess.ts.example +20 -0
  217. package/templates/functions-vercel/functions-vercel/src/api/oauth/disconnect.ts.example +20 -0
  218. package/templates/functions-vercel/functions-vercel/src/api/oauth/exchangeToken.ts.example +20 -0
  219. package/templates/functions-vercel/functions-vercel/src/api/oauth/getConnections.ts.example +20 -0
  220. package/templates/functions-vercel/functions-vercel/src/api/oauth/grantGitHubAccess.ts.example +20 -0
  221. package/templates/functions-vercel/functions-vercel/src/api/oauth/refreshToken.ts.example +20 -0
  222. package/templates/functions-vercel/functions-vercel/src/api/oauth/revokeGitHubAccess.ts.example +20 -0
  223. package/templates/functions-vercel/functions-vercel/tsconfig.json.example +21 -0
  224. package/templates/functions-vercel/functions-vercel/vercel.json.example +14 -0
  225. package/templates/functions-vercel/src/api/auth/getCustomClaims.ts.example +20 -0
  226. package/templates/functions-vercel/src/api/auth/getUserAuthStatus.ts.example +20 -0
  227. package/templates/functions-vercel/src/api/auth/removeCustomClaims.ts.example +20 -0
  228. package/templates/functions-vercel/src/api/auth/setCustomClaims.ts.example +20 -0
  229. package/templates/functions-vercel/src/api/billing/handleStripeWebhook.ts.example +20 -0
  230. package/templates/functions-vercel/src/api/billing/processPaymentSuccess.ts.example +20 -0
  231. package/templates/functions-vercel/src/api/billing/refreshSubscriptionStatus.ts.example +20 -0
  232. package/templates/functions-vercel/src/api/crud/createEntity.ts.example +20 -0
  233. package/templates/functions-vercel/src/api/crud/deleteEntity.ts.example +20 -0
  234. package/templates/functions-vercel/src/api/crud/getEntity.ts.example +20 -0
  235. package/templates/functions-vercel/src/api/crud/listEntities.ts.example +20 -0
  236. package/templates/functions-vercel/src/api/crud/updateEntity.ts.example +20 -0
  237. package/templates/functions-vercel/src/api/oauth/checkGitHubAccess.ts.example +20 -0
  238. package/templates/functions-vercel/src/api/oauth/disconnect.ts.example +20 -0
  239. package/templates/functions-vercel/src/api/oauth/exchangeToken.ts.example +20 -0
  240. package/templates/functions-vercel/src/api/oauth/getConnections.ts.example +20 -0
  241. package/templates/functions-vercel/src/api/oauth/grantGitHubAccess.ts.example +20 -0
  242. package/templates/functions-vercel/src/api/oauth/refreshToken.ts.example +20 -0
  243. package/templates/functions-vercel/src/api/oauth/revokeGitHubAccess.ts.example +20 -0
  244. package/templates/functions-vercel/tsconfig.json.example +24 -0
  245. package/templates/functions-vercel/vercel.json.example +14 -0
  246. package/templates/github/github/workflows/firebase-deploy.yml.example +79 -0
  247. package/templates/github/workflows/firebase-deploy.yml.example +79 -0
  248. package/templates/root-consumer/.env.example +19 -0
  249. package/templates/root-consumer/.gitignore.example +82 -0
  250. package/templates/root-consumer/.prettierrc.cjs.example +12 -0
  251. package/templates/root-consumer/CLAUDE.md.example +73 -0
  252. package/templates/root-consumer/README.md.example +295 -0
  253. package/templates/root-consumer/bunfig.toml.example +68 -0
  254. package/templates/root-consumer/eslint.config.js.example +336 -0
  255. package/templates/root-consumer/firebase.json.example +348 -0
  256. package/templates/root-consumer/guides/AGENT_START_HERE.md.example +98 -0
  257. package/templates/root-consumer/guides/APP_CHECK_SETUP.md.example +111 -0
  258. package/templates/root-consumer/guides/AUTH_SETUP.md.example +92 -0
  259. package/templates/root-consumer/guides/BILLING_SETUP.md.example +120 -0
  260. package/templates/root-consumer/guides/CLI.md.example +293 -0
  261. package/templates/root-consumer/guides/COMPONENTS.md.example +875 -0
  262. package/templates/root-consumer/guides/CONFIG_SETUP.md.example +132 -0
  263. package/templates/root-consumer/guides/EMULATOR_SETUP.md.example +48 -0
  264. package/templates/root-consumer/guides/FEATURES.md.example +286 -0
  265. package/templates/root-consumer/guides/FRAMEWORK_OVERVIEW.md.example +97 -0
  266. package/templates/root-consumer/guides/FUNCTIONS.md.example +177 -0
  267. package/templates/root-consumer/guides/GETTING_STARTED.md.example +451 -0
  268. package/templates/root-consumer/guides/HOW_TO_USE.md.example +296 -0
  269. package/templates/root-consumer/guides/I18N_SETUP.md.example +204 -0
  270. package/templates/root-consumer/guides/IMPORT_PATTERNS.md.example +79 -0
  271. package/templates/root-consumer/guides/INDEX.md.example +50 -0
  272. package/templates/root-consumer/guides/INSTALLATION.md.example +296 -0
  273. package/templates/root-consumer/guides/LAYOUTS.md.example +310 -0
  274. package/templates/root-consumer/guides/PAGES_SETUP.md.example +123 -0
  275. package/templates/root-consumer/guides/STYLING.md.example +273 -0
  276. package/templates/root-consumer/guides/THEMING_SETUP.md.example +119 -0
  277. package/templates/root-consumer/guides/VERSION_CONTROL.md.example +181 -0
  278. package/templates/root-consumer/tsconfig.functions.json.example +15 -0
  279. package/templates/root-consumer/tsconfig.json.example +18 -0
  280. package/templates/root-consumer/turbo.json.example +46 -0
  281. package/templates/root-consumer/vercel.json.example +124 -0
@@ -0,0 +1,71 @@
1
+ /**
2
+ * @fileoverview Terms of Service Page
3
+ * @description Terms of service page using the reusable template
4
+ *
5
+ * @version 0.0.1
6
+ * @since 0.0.1
7
+ * @author AMBROISE PARK Consulting
8
+ */
9
+
10
+ import { FileText } from 'lucide-react';
11
+
12
+ import { type PageMeta } from '@donotdev/core';
13
+ import { TermsOfServiceTemplate } from '@donotdev/templates';
14
+ import { PageContainer } from '@donotdev/ui';
15
+
16
+ import { legalConfig } from '../../config/legal';
17
+
18
+ /**
19
+ * Terms page translation namespace
20
+ *
21
+ * @version 0.0.1
22
+ * @since 0.0.1
23
+ * @author AMBROISE PARK Consulting
24
+ */
25
+ export const NAMESPACE = 'terms';
26
+
27
+ /**
28
+ * Terms page metadata configuration
29
+ *
30
+ * @version 0.0.1
31
+ * @since 0.0.1
32
+ * @author AMBROISE PARK Consulting
33
+ */
34
+ export const meta: PageMeta = {
35
+ namespace: NAMESPACE,
36
+ icon: <FileText />,
37
+ hideFromMenu: true,
38
+ };
39
+
40
+ /**
41
+ * Terms of Service Page Component
42
+ *
43
+ * @version 0.0.1
44
+ * @since 0.0.1
45
+ * @author AMBROISE PARK Consulting
46
+ *
47
+ * Uses the reusable TermsOfServiceTemplate with centralized legal config
48
+ */
49
+ function TermsPage() {
50
+ return (
51
+ <PageContainer>
52
+ <TermsOfServiceTemplate
53
+ companyName={legalConfig.company.name}
54
+ websiteUrl={legalConfig.website.url}
55
+ legalEmail={legalConfig.contact.email}
56
+ companyAddress={legalConfig.contact.address}
57
+ jurisdiction={legalConfig.jurisdiction.country}
58
+ arbitrationOrg={legalConfig.jurisdiction.arbitrationOrg}
59
+ arbitrationLocation={legalConfig.jurisdiction.arbitrationLocation}
60
+ sections={legalConfig.sections.terms}
61
+ contactInfo={{
62
+ supportEmail: legalConfig.contact.supportEmail,
63
+ }}
64
+ lastUpdated={legalConfig.lastUpdated?.terms}
65
+ />
66
+ </PageContainer>
67
+ );
68
+ }
69
+
70
+ export default TermsPage;
71
+
@@ -0,0 +1,179 @@
1
+ /* src/themes.css */
2
+
3
+ /* ===========================
4
+ APP-WIDE SETTINGS
5
+ These apply to all themes - spacing, radius, shadows, routing animations
6
+ =========================== */
7
+ :root {
8
+ /* ===========================
9
+ ROUTING ANIMATIONS
10
+ Customize page transition animations
11
+ Pure CSS - zero JS overhead. Respects prefers-reduced-motion.
12
+ Override in themes.css: --routing-animation: slide; to change animation type
13
+ =========================== */
14
+ /* Single animation type (fade, slide, or none to disable) - app-wide */
15
+ /* --routing-animation: fade; */ /* fade | slide | none */
16
+ /* --routing-default-duration: var(--dur-normal); */ /* Animation duration */
17
+
18
+ /* Breakpoint-specific durations (all inherit from --routing-default-duration) */
19
+ /* --routing-mobile-duration: var(--routing-default-duration); */
20
+ /* --routing-tablet-duration: var(--routing-default-duration); */
21
+ /* --routing-desktop-duration: var(--routing-default-duration); */
22
+ /* --routing-wide-duration: var(--routing-default-duration); */
23
+
24
+ /* Examples: */
25
+ /* --routing-animation: slide; */ /* Use slide animation */
26
+ /* --routing-animation: none; */ /* Disable animations */
27
+ /* --routing-default-duration: 200ms; */ /* Faster animations */
28
+
29
+ /* ===========================
30
+ SPACING OVERRIDES
31
+ Customize spacing scale
32
+ =========================== */
33
+ /* --gap-sm: 0.5rem; */ /* 8px - tight spacing */
34
+ /* --gap-md: 1rem; */ /* 16px - medium spacing (default) */
35
+ /* --gap-lg: 2rem; */ /* 32px - large spacing */
36
+
37
+ /* ===========================
38
+ BORDER RADIUS OVERRIDES
39
+ Customize component corners
40
+ =========================== */
41
+ /* --radius-interactive: var(--radius-none); */ /* Buttons, links (default: square) */
42
+ /* --radius-surface: var(--radius-md); */ /* Cards, dialogs (default: 8px round) */
43
+ /* --radius-floating: var(--radius-none); */ /* Dropdowns, popovers (default: square) */
44
+
45
+ /* ===========================
46
+ SHADOW OVERRIDES
47
+ Customize elevation
48
+ =========================== */
49
+ /* --shadow-sm: ...; */ /* Small shadows */
50
+ /* --shadow-md: ...; */ /* Medium shadows (default) */
51
+ /* --shadow-xl: ...; */ /* Large shadows */
52
+ }
53
+
54
+ /* ===========================
55
+ LIGHT THEME (High Contrast Light)
56
+ Background: White
57
+ Foreground: Black
58
+ =========================== */
59
+ :root.light {
60
+ --theme-icon: 'Sun';
61
+ --theme-label: 'Light';
62
+ --theme-is-dark: 0;
63
+
64
+ /* ===========================
65
+ 1. USER SETS - 5 BRAND COLORS
66
+ =========================== */
67
+ --foreground: #000000;
68
+ --background: #ffffff;
69
+ --primary: #00bcd4; /* Cyan */
70
+ --secondary: #047857; /* Emerald-700 - WCAG AA compliant (5.48:1 with white) */
71
+ --accent: #ff9800; /* Orange */
72
+
73
+ /* ===========================
74
+ 2. FRAMEWORK DEFAULTS - STATUS COLORS
75
+ (Override if needed)
76
+ =========================== */
77
+ --success: #047857; /* Emerald-700 - WCAG AA compliant (5.48:1 with white) */
78
+ --warning: #f59e0b;
79
+ --destructive: #dc2626;
80
+
81
+ /* ===========================
82
+ 3. AUTO-COMPUTED - SURFACES
83
+ (Plain sight computation for easy overriding)
84
+ =========================== */
85
+ --muted: color-mix(in oklab, var(--foreground) 5%, var(--background));
86
+ --muted-foreground: color-mix(in oklab, var(--foreground) 75%, transparent);
87
+ --border: color-mix(in oklab, var(--foreground) 15%, var(--background));
88
+ --input: var(--muted);
89
+ --ring: var(--primary);
90
+
91
+ --card: var(--background);
92
+ --card-foreground: var(--foreground);
93
+ --popover: var(--card);
94
+ --popover-foreground: var(--card-foreground);
95
+ --surface-1: var(--card);
96
+
97
+ /* ===========================
98
+ 4. AUTO-COMPUTED - TEXT ON BRAND COLORS
99
+ (Mapped to foreground/background for consistency)
100
+ =========================== */
101
+ --primary-foreground: var(--foreground);
102
+ --secondary-foreground: var(--background);
103
+ --accent-foreground: var(--foreground);
104
+
105
+ --success-foreground: var(--background);
106
+ --warning-foreground: var(--foreground);
107
+ --destructive-foreground: var(--background);
108
+ }
109
+
110
+ /* ===========================
111
+ DARK THEME (High Contrast Dark)
112
+ Background: Black
113
+ Foreground: White
114
+ =========================== */
115
+ :root.dark {
116
+ --theme-icon: 'Moon';
117
+ --theme-label: 'Dark';
118
+ --theme-is-dark: 1;
119
+
120
+ /* ===========================
121
+ 1. USER SETS - 5 BRAND COLORS
122
+ =========================== */
123
+ --foreground: #ffffff;
124
+ --background: #000000;
125
+ --primary: #00bcd4; /* Cyan */
126
+ --secondary: #047857; /* Emerald-700 - WCAG AA compliant (5.48:1 with white) */
127
+ --accent: #ff9800; /* Orange */
128
+
129
+ /* ===========================
130
+ 2. FRAMEWORK DEFAULTS - STATUS COLORS
131
+ =========================== */
132
+ --success: #047857; /* Emerald-700 - WCAG AA compliant (5.48:1 with white) */
133
+ --warning: #f59e0b;
134
+ --destructive: #dc2626; /* Red-600 - WCAG AA compliant (4.83:1 with white) */
135
+
136
+ /* ===========================
137
+ 3. AUTO-COMPUTED - SURFACES
138
+ =========================== */
139
+ --muted: color-mix(in oklab, var(--foreground) 10%, var(--background));
140
+ --muted-foreground: color-mix(in oklab, var(--foreground) 75%, transparent);
141
+ --border: color-mix(in oklab, var(--foreground) 15%, var(--background));
142
+ --input: var(--muted);
143
+ --ring: var(--primary);
144
+
145
+ --card: var(--background);
146
+ --card-foreground: var(--foreground);
147
+ --popover: var(--card);
148
+ --popover-foreground: var(--card-foreground);
149
+ --surface-1: var(--card);
150
+
151
+ /* ===========================
152
+ 4. AUTO-COMPUTED - TEXT ON BRAND COLORS
153
+ =========================== */
154
+ --primary-foreground: var(--background);
155
+ --secondary-foreground: var(--foreground);
156
+ --accent-foreground: var(--background);
157
+
158
+ --success-foreground: var(--foreground);
159
+ --warning-foreground: var(--background);
160
+ --destructive-foreground: var(--foreground);
161
+ }
162
+
163
+ /* ===========================
164
+ CUSTOM THEMES
165
+ =========================== */
166
+
167
+ /* Add your custom themes here */
168
+ /* Example:
169
+ .brand {
170
+ --theme-icon: 'Zap';
171
+ --theme-label: 'Brand';
172
+ --background: #your-brand-background;
173
+ --foreground: #your-brand-foreground;
174
+ --primary: #your-brand-primary;
175
+ --secondary: #your-brand-secondary;
176
+ --accent: #your-brand-accent;
177
+ ... other variables ...
178
+ }
179
+ */
@@ -0,0 +1,11 @@
1
+ {
2
+ "extends": "../../tsconfig.json",
3
+ "compilerOptions": {
4
+ "baseUrl": ".",
5
+ "types": ["node"],
6
+ "jsx": "preserve",
7
+ "plugins": [{ "name": "next" }]
8
+ },
9
+ "include": ["src", "next.config.ts"],
10
+ "exclude": ["node_modules", "dist", ".next"]
11
+ }
@@ -0,0 +1,28 @@
1
+ # Payload CMS Configuration
2
+ PAYLOAD_SECRET=your-super-secret-key-here
3
+ PAYLOAD_PUBLIC_SERVER_URL=http://localhost:3001
4
+
5
+ # Database Configuration (MongoDB)
6
+ MONGODB_URI=mongodb://localhost:27017/{{projectName}}
7
+
8
+ # For production, use MongoDB Atlas or similar
9
+ # MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/{{projectName}}?retryWrites=true&w=majority
10
+
11
+ # Optional: Redis for caching (recommended for production)
12
+ # REDIS_URL=redis://localhost:6379
13
+
14
+ # CORS Origins (comma-separated)
15
+ CORS_ORIGINS=http://localhost:3000,https://{{projectName}}.com,https://admin.{{projectName}}.com
16
+
17
+ # File Upload Configuration
18
+ PAYLOAD_PUBLIC_MAX_FILE_SIZE=5000000
19
+
20
+ # Admin Configuration
21
+ PAYLOAD_PUBLIC_ADMIN_EMAIL=admin@{{projectName}}.com
22
+ PAYLOAD_PUBLIC_ADMIN_PASSWORD=your-admin-password
23
+
24
+ # Optional: Email Configuration (for notifications)
25
+ # SMTP_HOST=smtp.gmail.com
26
+ # SMTP_PORT=587
27
+ # SMTP_USER=your-email@gmail.com
28
+ # SMTP_PASS=your-app-password
@@ -0,0 +1,233 @@
1
+ # {{projectName}} CMS (Payload)
2
+
3
+ This is a **Payload CMS** application that provides a professional content management system for your business website.
4
+
5
+ ## 🚀 What is Payload CMS?
6
+
7
+ Payload is a **headless CMS** that gives you:
8
+ - **Database** - Stores all your content (text, images, etc.)
9
+ - **Admin Interface** - Professional web interface for editing content
10
+ - **API** - Your website fetches content via REST API calls
11
+ - **Media Library** - Upload and manage images/files
12
+
13
+ ## 📁 Project Structure
14
+
15
+ ```
16
+ {{appName}}/
17
+ ├── collections/ # Content types (Hero, Services, Products, etc.)
18
+ │ ├── Users.ts # Admin users authentication
19
+ │ ├── Media.ts # File uploads and media management
20
+ │ ├── Hero.ts # Landing page hero section
21
+ │ ├── Services.ts # Business services
22
+ │ ├── Products.ts # Product offerings
23
+ │ ├── Testimonials.ts # Client feedback
24
+ │ └── Company.ts # Company information
25
+ ├── src/
26
+ │ └── server.ts # Express server with Payload
27
+ ├── payload.config.ts # Payload configuration
28
+ ├── package.json # Dependencies and scripts
29
+ └── .env # Environment variables
30
+ ```
31
+
32
+ ## 🛠️ Content Types
33
+
34
+ ### 1. **Hero Section** (`/admin/collections/hero`)
35
+ - **Title** - Main headline
36
+ - **Subtitle** - Supporting text
37
+ - **CTA Button** - Call-to-action text and link
38
+ - **Background Image** - Hero background
39
+
40
+ ### 2. **Services** (`/admin/collections/services`)
41
+ - **Name** - Service name
42
+ - **Description** - Detailed description
43
+ - **Category** - Consulting, Training, Development, Support
44
+ - **Features** - List of service features
45
+ - **Pricing** - Pricing information
46
+ - **Icon** - Service icon
47
+
48
+ ### 3. **Products** (`/admin/collections/products`)
49
+ - **Name** - Product name
50
+ - **Description** - Product description
51
+ - **Category** - Framework, Tool, Platform, Service
52
+ - **Features** - Key product features
53
+ - **Demo Link** - Live demo URL
54
+ - **Documentation** - Documentation link
55
+ - **GitHub** - Repository link
56
+
57
+ ### 4. **Testimonials** (`/admin/collections/testimonials`)
58
+ - **Client Name** - Client's name
59
+ - **Company** - Company name
60
+ - **Quote** - Testimonial text
61
+ - **Rating** - 1-5 star rating
62
+ - **Avatar** - Client photo
63
+ - **Project** - Related project
64
+
65
+ ### 5. **Company Info** (`/admin/collections/company`)
66
+ - **Name** - Company name
67
+ - **Contact** - Email, phone, address
68
+ - **Social Media** - LinkedIn, Twitter, GitHub, etc.
69
+ - **Logo** - Company logo
70
+ - **Favicon** - Website favicon
71
+
72
+ ## 🚀 Quick Start
73
+
74
+ ### 1. Install Dependencies
75
+ ```bash
76
+ bun install
77
+ ```
78
+
79
+ ### 2. Set Up Environment
80
+ ```bash
81
+ cp .env.example .env
82
+ # Edit .env with your configuration
83
+ ```
84
+
85
+ ### 3. Set Up Database
86
+ **Option A: Local MongoDB**
87
+ ```bash
88
+ # Install MongoDB locally or use Docker
89
+ docker run -d -p 27017:27017 --name mongodb mongo:latest
90
+ ```
91
+
92
+ **Option B: MongoDB Atlas (Recommended)**
93
+ - Create account at [MongoDB Atlas](https://www.mongodb.com/atlas)
94
+ - Create cluster and get connection string
95
+ - Update `MONGODB_URI` in `.env`
96
+
97
+ ### 4. Start Development Server
98
+ ```bash
99
+ bun run dev
100
+ ```
101
+
102
+ ### 5. Access Admin Panel
103
+ - **URL**: http://localhost:3001/admin
104
+ - **Email**: admin@{{projectName}}.com
105
+ - **Password**: your-admin-password (from .env)
106
+
107
+ ## 🔗 API Endpoints
108
+
109
+ ### Content API
110
+ - **Hero**: `GET /api/hero`
111
+ - **Services**: `GET /api/services`
112
+ - **Products**: `GET /api/products`
113
+ - **Testimonials**: `GET /api/testimonials`
114
+ - **Company**: `GET /api/company`
115
+
116
+ ### Example API Call
117
+ ```javascript
118
+ // Fetch hero content
119
+ const response = await fetch('http://localhost:3001/api/hero');
120
+ const heroData = await response.json();
121
+ console.log(heroData.docs[0]); // Latest hero content
122
+ ```
123
+
124
+ ## 🎯 How It Works
125
+
126
+ ### 1. **Content Management**
127
+ - Login to admin panel at `/admin`
128
+ - Edit content using the professional interface
129
+ - Save changes instantly
130
+
131
+ ### 2. **Content Delivery**
132
+ - Your website makes API calls to fetch content
133
+ - Content is returned as JSON
134
+ - Website displays the content dynamically
135
+
136
+ ### 3. **Real-time Updates**
137
+ - Changes in admin appear immediately on website
138
+ - No code deployment needed
139
+ - Non-developers can update content
140
+
141
+ ## 🔧 Configuration
142
+
143
+ ### Environment Variables
144
+ ```bash
145
+ # Required
146
+ PAYLOAD_SECRET=your-secret-key
147
+ MONGODB_URI=mongodb://localhost:27017/{{projectName}}
148
+
149
+ # Optional
150
+ PAYLOAD_PUBLIC_SERVER_URL=http://localhost:3001
151
+ CORS_ORIGINS=http://localhost:3000,https://{{projectName}}.com
152
+ ```
153
+
154
+ ### Customization
155
+ - **Add new content types**: Create new files in `collections/`
156
+ - **Modify fields**: Edit field definitions in collection files
157
+ - **Change admin UI**: Customize admin interface in `payload.config.ts`
158
+
159
+ ## 🚀 Deployment
160
+
161
+ ### Vercel Deployment
162
+ 1. **Connect to Vercel**
163
+ 2. **Set environment variables** in Vercel dashboard
164
+ 3. **Deploy** - Vercel will build and deploy automatically
165
+
166
+ ### Environment Variables for Production
167
+ ```bash
168
+ PAYLOAD_SECRET=your-production-secret
169
+ MONGODB_URI=mongodb+srv://username:password@cluster.mongodb.net/{{projectName}}
170
+ PAYLOAD_PUBLIC_SERVER_URL=https://admin.{{projectName}}.com
171
+ CORS_ORIGINS=https://{{projectName}}.com,https://admin.{{projectName}}.com
172
+ ```
173
+
174
+ ## 📊 Admin Features
175
+
176
+ - **User Management** - Create admin users
177
+ - **Media Library** - Upload and organize images
178
+ - **Content Versioning** - Track content changes
179
+ - **Draft/Published** - Preview before publishing
180
+ - **Rich Text Editor** - Format content easily
181
+ - **Image Optimization** - Automatic image resizing
182
+ - **File Upload** - Drag & drop file uploads
183
+
184
+ ## 🔒 Security
185
+
186
+ - **Authentication** - Secure admin login
187
+ - **CORS Protection** - Configured for your domains
188
+ - **File Upload Limits** - 5MB file size limit
189
+ - **Input Validation** - All inputs validated
190
+ - **HTTPS Required** - Secure in production
191
+
192
+ ## 🎨 Integration with Website
193
+
194
+ Your website (Next.js/Vite) connects to this CMS:
195
+
196
+ ```typescript
197
+ // Example: Fetch hero content
198
+ const { data: hero } = await fetch('/api/hero').then(r => r.json());
199
+
200
+ // Example: Fetch services
201
+ const { data: services } = await fetch('/api/services?where[isActive][equals]=true').then(r => r.json());
202
+
203
+ // Example: Fetch testimonials
204
+ const { data: testimonials } = await fetch('/api/testimonials?sort=order').then(r => r.json());
205
+ ```
206
+
207
+ ## 🆘 Troubleshooting
208
+
209
+ ### Common Issues
210
+
211
+ **"MongoDB connection failed"**
212
+ - Check `MONGODB_URI` in `.env`
213
+ - Ensure MongoDB is running
214
+ - Verify network connectivity
215
+
216
+ **"Admin panel not loading"**
217
+ - Check `PAYLOAD_SECRET` is set
218
+ - Verify `PAYLOAD_PUBLIC_SERVER_URL` is correct
219
+ - Check browser console for errors
220
+
221
+ **"API calls failing"**
222
+ - Verify CORS configuration
223
+ - Check server is running on correct port
224
+ - Ensure API endpoints are accessible
225
+
226
+ ### Getting Help
227
+ - Check [Payload Documentation](https://payloadcms.com/docs)
228
+ - Review server logs for error messages
229
+ - Verify environment variables are set correctly
230
+
231
+ ---
232
+
233
+ **That's it!** You now have a professional CMS that your website can use to fetch dynamic content. No more hardcoded text - everything is manageable through the admin interface.
@@ -0,0 +1,125 @@
1
+ import { CollectionConfig } from 'payload/types';
2
+
3
+ export const Company: CollectionConfig = {
4
+ slug: 'company',
5
+ admin: {
6
+ useAsTitle: 'name',
7
+ defaultColumns: ['name', 'email', 'phone', 'updatedAt'],
8
+ },
9
+ access: {
10
+ read: () => true,
11
+ },
12
+ fields: [
13
+ {
14
+ name: 'name',
15
+ type: 'text',
16
+ required: true,
17
+ admin: {
18
+ description: 'Company name',
19
+ },
20
+ },
21
+ {
22
+ name: 'tagline',
23
+ type: 'text',
24
+ admin: {
25
+ description: 'Company tagline or slogan',
26
+ },
27
+ },
28
+ {
29
+ name: 'description',
30
+ type: 'textarea',
31
+ admin: {
32
+ description: 'Company description for about page',
33
+ },
34
+ },
35
+ {
36
+ name: 'email',
37
+ type: 'email',
38
+ required: true,
39
+ admin: {
40
+ description: 'Primary contact email',
41
+ },
42
+ },
43
+ {
44
+ name: 'phone',
45
+ type: 'text',
46
+ admin: {
47
+ description: 'Contact phone number',
48
+ },
49
+ },
50
+ {
51
+ name: 'address',
52
+ type: 'group',
53
+ fields: [
54
+ {
55
+ name: 'street',
56
+ type: 'text',
57
+ },
58
+ {
59
+ name: 'city',
60
+ type: 'text',
61
+ },
62
+ {
63
+ name: 'state',
64
+ type: 'text',
65
+ },
66
+ {
67
+ name: 'zip',
68
+ type: 'text',
69
+ },
70
+ {
71
+ name: 'country',
72
+ type: 'text',
73
+ },
74
+ ],
75
+ admin: {
76
+ description: 'Company address',
77
+ },
78
+ },
79
+ {
80
+ name: 'social',
81
+ type: 'group',
82
+ fields: [
83
+ {
84
+ name: 'website',
85
+ type: 'text',
86
+ },
87
+ {
88
+ name: 'linkedin',
89
+ type: 'text',
90
+ },
91
+ {
92
+ name: 'twitter',
93
+ type: 'text',
94
+ },
95
+ {
96
+ name: 'github',
97
+ type: 'text',
98
+ },
99
+ {
100
+ name: 'youtube',
101
+ type: 'text',
102
+ },
103
+ ],
104
+ admin: {
105
+ description: 'Social media links',
106
+ },
107
+ },
108
+ {
109
+ name: 'logo',
110
+ type: 'upload',
111
+ relationTo: 'media',
112
+ admin: {
113
+ description: 'Company logo',
114
+ },
115
+ },
116
+ {
117
+ name: 'favicon',
118
+ type: 'upload',
119
+ relationTo: 'media',
120
+ admin: {
121
+ description: 'Website favicon',
122
+ },
123
+ },
124
+ ],
125
+ };