kofi-stack-template-generator 2.1.37 → 2.1.38

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 (323) hide show
  1. package/.turbo/turbo-build.log +6 -6
  2. package/dist/index.js +8057 -440
  3. package/package.json +1 -1
  4. package/src/templates.generated.ts +248 -94
  5. package/templates/integrations/posthog/src/components/providers/posthog-provider.tsx.hbs +4 -1
  6. package/templates/marketing/payload/package.json.hbs +41 -26
  7. package/templates/marketing/payload/src/Footer/Component.client.tsx +288 -0
  8. package/templates/marketing/payload/src/Footer/Component.tsx +11 -0
  9. package/templates/marketing/payload/src/Footer/RowLabel.tsx +15 -0
  10. package/templates/marketing/payload/src/Footer/config.ts +178 -0
  11. package/templates/marketing/payload/src/Footer/hooks/{revalidateFooter.ts.hbs → revalidateFooter.ts} +5 -5
  12. package/templates/marketing/payload/src/Header/Component.client.tsx +94 -0
  13. package/templates/marketing/payload/src/Header/Component.tsx +10 -0
  14. package/templates/marketing/payload/src/Header/MegaMenu/index.tsx +197 -0
  15. package/templates/marketing/payload/src/Header/MobileMenu/HamburgerIcon.tsx +48 -0
  16. package/templates/marketing/payload/src/Header/MobileMenu/index.tsx +299 -0
  17. package/templates/marketing/payload/src/Header/Nav/index.tsx +76 -0
  18. package/templates/marketing/payload/src/Header/RowLabel.tsx +21 -0
  19. package/templates/marketing/payload/src/Header/config.ts +208 -0
  20. package/templates/marketing/payload/src/Header/hooks/{revalidateHeader.ts.hbs → revalidateHeader.ts} +5 -5
  21. package/templates/marketing/payload/src/access/{authenticated.ts.hbs → authenticated.ts} +1 -1
  22. package/templates/marketing/payload/src/access/{authenticatedOrPublished.ts.hbs → authenticatedOrPublished.ts} +8 -8
  23. package/templates/marketing/payload/src/app/(docs)/docs/[[...slug]]/page.tsx +117 -0
  24. package/templates/marketing/payload/src/app/(docs)/docs/layout.tsx +39 -0
  25. package/templates/marketing/payload/src/app/(docs)/layout.tsx +44 -0
  26. package/templates/marketing/payload/src/app/(frontend)/(sitemaps)/pages-sitemap.xml/route.ts +68 -0
  27. package/templates/marketing/payload/src/app/(frontend)/(sitemaps)/posts-sitemap.xml/route.ts +55 -0
  28. package/templates/marketing/payload/src/app/(frontend)/[slug]/page.client.tsx +15 -0
  29. package/templates/marketing/payload/src/app/(frontend)/[slug]/page.tsx +114 -0
  30. package/templates/marketing/payload/src/app/(frontend)/api/docs-search/route.ts +67 -0
  31. package/templates/marketing/payload/src/app/(frontend)/api/newsletter/route.ts +260 -0
  32. package/templates/marketing/payload/src/app/(frontend)/api/pricing/route.ts +266 -0
  33. package/templates/marketing/payload/src/app/(frontend)/globals.css +1019 -0
  34. package/templates/marketing/payload/src/app/(frontend)/layout.tsx +114 -0
  35. package/templates/marketing/payload/src/app/(frontend)/next/exit-preview/route.ts +7 -0
  36. package/templates/marketing/payload/src/app/(frontend)/next/preview/route.ts +56 -0
  37. package/templates/marketing/payload/src/app/(frontend)/next/seed/route.ts +31 -0
  38. package/templates/marketing/payload/src/app/(frontend)/not-found.tsx +17 -0
  39. package/templates/marketing/payload/src/app/(frontend)/page.tsx +5 -0
  40. package/templates/marketing/payload/src/app/(frontend)/posts/BlogPageClient.tsx +190 -0
  41. package/templates/marketing/payload/src/app/(frontend)/posts/[slug]/BlogPostContent.tsx +67 -0
  42. package/templates/marketing/payload/src/app/(frontend)/posts/[slug]/page.client.tsx +15 -0
  43. package/templates/marketing/payload/src/app/(frontend)/posts/[slug]/page.tsx +118 -0
  44. package/templates/marketing/payload/src/app/(frontend)/posts/page/[pageNumber]/page.client.tsx +15 -0
  45. package/templates/marketing/payload/src/app/(frontend)/posts/page/[pageNumber]/page.tsx +87 -0
  46. package/templates/marketing/payload/src/app/(frontend)/posts/page.tsx +49 -0
  47. package/templates/marketing/payload/src/app/(frontend)/search/page.client.tsx +15 -0
  48. package/templates/marketing/payload/src/app/(frontend)/search/page.tsx +87 -0
  49. package/templates/marketing/payload/src/app/(payload)/admin/[[...segments]]/not-found.tsx +24 -0
  50. package/templates/marketing/payload/src/app/(payload)/admin/[[...segments]]/page.tsx +24 -0
  51. package/templates/marketing/payload/src/app/(payload)/admin/importMap.js +83 -0
  52. package/templates/marketing/payload/src/app/(payload)/api/[...slug]/{route.ts.hbs → route.ts} +13 -9
  53. package/templates/marketing/payload/src/app/(payload)/api/graphql/{route.ts.hbs → route.ts} +2 -2
  54. package/templates/marketing/payload/src/app/(payload)/api/graphql-playground/{route.ts.hbs → route.ts} +3 -3
  55. package/templates/marketing/payload/src/app/(payload)/custom.scss +0 -0
  56. package/templates/marketing/payload/src/app/(payload)/layout.tsx +31 -0
  57. package/templates/marketing/payload/src/blocks/ArchiveBlock/Component.tsx +65 -0
  58. package/templates/marketing/payload/src/blocks/ArchiveBlock/config.ts +120 -0
  59. package/templates/marketing/payload/src/blocks/Banner/Component.tsx +26 -0
  60. package/templates/marketing/payload/src/blocks/Banner/config.ts +67 -0
  61. package/templates/marketing/payload/src/blocks/BentoFeatures/Component.tsx +243 -0
  62. package/templates/marketing/payload/src/blocks/BentoFeatures/config.ts +147 -0
  63. package/templates/marketing/payload/src/blocks/CallToAction/Component.tsx +31 -0
  64. package/templates/marketing/payload/src/blocks/CallToAction/config.ts +68 -0
  65. package/templates/marketing/payload/src/blocks/Code/Component.client.tsx +33 -0
  66. package/templates/marketing/payload/src/blocks/Code/Component.tsx +21 -0
  67. package/templates/marketing/payload/src/blocks/Code/CopyButton.tsx +33 -0
  68. package/templates/marketing/payload/src/blocks/Code/config.ts +33 -0
  69. package/templates/marketing/payload/src/blocks/Content/Component.tsx +41 -0
  70. package/templates/marketing/payload/src/blocks/Content/config.ts +105 -0
  71. package/templates/marketing/payload/src/blocks/FAQAccordion/Component.tsx +90 -0
  72. package/templates/marketing/payload/src/blocks/FAQAccordion/config.ts +75 -0
  73. package/templates/marketing/payload/src/blocks/FeatureGrid/Component.tsx +108 -0
  74. package/templates/marketing/payload/src/blocks/FeatureGrid/config.ts +109 -0
  75. package/templates/marketing/payload/src/blocks/FeatureShowcase/Component.tsx +107 -0
  76. package/templates/marketing/payload/src/blocks/FeatureShowcase/config.ts +111 -0
  77. package/templates/marketing/payload/src/blocks/FinalCTA/Component.tsx +117 -0
  78. package/templates/marketing/payload/src/blocks/FinalCTA/config.ts +50 -0
  79. package/templates/marketing/payload/src/blocks/Form/Checkbox/index.tsx +45 -0
  80. package/templates/marketing/payload/src/blocks/Form/Component.tsx +170 -0
  81. package/templates/marketing/payload/src/blocks/Form/Country/index.tsx +65 -0
  82. package/templates/marketing/payload/src/blocks/Form/Country/options.ts +982 -0
  83. package/templates/marketing/payload/src/blocks/Form/Email/index.tsx +38 -0
  84. package/templates/marketing/payload/src/blocks/Form/Error/index.tsx +13 -0
  85. package/templates/marketing/payload/src/blocks/Form/Message/index.tsx +13 -0
  86. package/templates/marketing/payload/src/blocks/Form/Number/index.tsx +36 -0
  87. package/templates/marketing/payload/src/blocks/Form/Select/index.tsx +63 -0
  88. package/templates/marketing/payload/src/blocks/Form/State/index.tsx +64 -0
  89. package/templates/marketing/payload/src/blocks/Form/State/options.ts +52 -0
  90. package/templates/marketing/payload/src/blocks/Form/Text/index.tsx +32 -0
  91. package/templates/marketing/payload/src/blocks/Form/Textarea/index.tsx +40 -0
  92. package/templates/marketing/payload/src/blocks/Form/Width/index.tsx +13 -0
  93. package/templates/marketing/payload/src/blocks/Form/config.ts +77 -0
  94. package/templates/marketing/payload/src/blocks/Form/fields.tsx +21 -0
  95. package/templates/marketing/payload/src/blocks/HowItWorks/Component.tsx +59 -0
  96. package/templates/marketing/payload/src/blocks/HowItWorks/config.ts +88 -0
  97. package/templates/marketing/payload/src/blocks/IndustryTabs/Component.tsx +132 -0
  98. package/templates/marketing/payload/src/blocks/IndustryTabs/config.ts +77 -0
  99. package/templates/marketing/payload/src/blocks/LogoBanner/Component.tsx +95 -0
  100. package/templates/marketing/payload/src/blocks/LogoBanner/config.ts +48 -0
  101. package/templates/marketing/payload/src/blocks/MediaBlock/Component.tsx +67 -0
  102. package/templates/marketing/payload/src/blocks/MediaBlock/config.ts +14 -0
  103. package/templates/marketing/payload/src/blocks/Personas/Component.tsx +69 -0
  104. package/templates/marketing/payload/src/blocks/Personas/config.ts +96 -0
  105. package/templates/marketing/payload/src/blocks/PricingTable/ComparisonTable.tsx +250 -0
  106. package/templates/marketing/payload/src/blocks/PricingTable/Component.tsx +443 -0
  107. package/templates/marketing/payload/src/blocks/PricingTable/config.ts +142 -0
  108. package/templates/marketing/payload/src/blocks/ProofBanner/Component.tsx +65 -0
  109. package/templates/marketing/payload/src/blocks/ProofBanner/config.ts +42 -0
  110. package/templates/marketing/payload/src/blocks/RelatedPosts/Component.tsx +32 -0
  111. package/templates/marketing/payload/src/blocks/RenderBlocks.tsx +92 -0
  112. package/templates/marketing/payload/src/blocks/TestimonialsGrid/Component.tsx +107 -0
  113. package/templates/marketing/payload/src/blocks/TestimonialsGrid/config.ts +76 -0
  114. package/templates/marketing/payload/src/blocks/TrustColumns/Component.tsx +83 -0
  115. package/templates/marketing/payload/src/blocks/TrustColumns/config.ts +70 -0
  116. package/templates/marketing/payload/src/collections/Categories.ts +28 -0
  117. package/templates/marketing/payload/src/collections/FAQs/index.ts +100 -0
  118. package/templates/marketing/payload/src/collections/Media.ts +160 -0
  119. package/templates/marketing/payload/src/collections/Pages/hooks/revalidatePage.ts +43 -0
  120. package/templates/marketing/payload/src/collections/Pages/index.ts +168 -0
  121. package/templates/marketing/payload/src/collections/Posts/hooks/populateAuthors.ts +41 -0
  122. package/templates/marketing/payload/src/collections/Posts/hooks/revalidatePost.ts +44 -0
  123. package/templates/marketing/payload/src/collections/Posts/index.ts +259 -0
  124. package/templates/marketing/payload/src/collections/Users/index.ts +26 -0
  125. package/templates/marketing/payload/src/components/AdminBar/index.scss +7 -0
  126. package/templates/marketing/payload/src/components/AdminBar/index.tsx +89 -0
  127. package/templates/marketing/payload/src/components/Analytics/CTATracker.tsx +33 -0
  128. package/templates/marketing/payload/src/components/Analytics/FeatureSectionTracker.tsx +47 -0
  129. package/templates/marketing/payload/src/components/Analytics/PricingViewTracker.tsx +46 -0
  130. package/templates/marketing/payload/src/components/Analytics/index.tsx +3 -0
  131. package/templates/marketing/payload/src/components/BeforeDashboard/SeedButton/index.tsx +89 -0
  132. package/templates/marketing/payload/src/components/BeforeDashboard/index.tsx +69 -0
  133. package/templates/marketing/payload/src/components/BeforeLogin/index.tsx +14 -0
  134. package/templates/marketing/payload/src/components/BlogCTA/index.tsx +77 -0
  135. package/templates/marketing/payload/src/components/Card/index.tsx +85 -0
  136. package/templates/marketing/payload/src/components/CollectionArchive/index.tsx +32 -0
  137. package/templates/marketing/payload/src/components/JsonLd/index.tsx +138 -0
  138. package/templates/marketing/payload/src/components/Link/index.tsx +66 -0
  139. package/templates/marketing/payload/src/components/LivePreviewListener/index.tsx +10 -0
  140. package/templates/marketing/payload/src/components/Logo/Logo.tsx +46 -0
  141. package/templates/marketing/payload/src/components/Media/ImageMedia/index.tsx +80 -0
  142. package/templates/marketing/payload/src/components/Media/VideoMedia/index.tsx +47 -0
  143. package/templates/marketing/payload/src/components/Media/index.tsx +26 -0
  144. package/templates/marketing/payload/src/components/Media/types.ts +22 -0
  145. package/templates/marketing/payload/src/components/PageRange/index.tsx +57 -0
  146. package/templates/marketing/payload/src/components/Pagination/index.tsx +101 -0
  147. package/templates/marketing/payload/src/components/PayloadRedirects/index.tsx +48 -0
  148. package/templates/marketing/payload/src/components/RichText/index.tsx +152 -0
  149. package/templates/marketing/payload/src/components/TableOfContents/index.tsx +128 -0
  150. package/templates/marketing/payload/src/components/ui/accordion.tsx +64 -0
  151. package/templates/marketing/payload/src/components/ui/button.tsx +52 -0
  152. package/templates/marketing/payload/src/components/ui/card.tsx +48 -0
  153. package/templates/marketing/payload/src/components/ui/checkbox.tsx +27 -0
  154. package/templates/marketing/payload/src/components/ui/input.tsx +22 -0
  155. package/templates/marketing/payload/src/components/ui/label.tsx +19 -0
  156. package/templates/marketing/payload/src/components/ui/pagination.tsx +92 -0
  157. package/templates/marketing/payload/src/components/ui/select.tsx +144 -0
  158. package/templates/marketing/payload/src/components/ui/textarea.tsx +21 -0
  159. package/templates/marketing/payload/src/endpoints/seed/contact-form.ts +111 -0
  160. package/templates/marketing/payload/src/endpoints/seed/contact-page.ts +56 -0
  161. package/templates/marketing/payload/src/endpoints/seed/directoryhub/about.ts +281 -0
  162. package/templates/marketing/payload/src/endpoints/seed/directoryhub/faqs.ts +224 -0
  163. package/templates/marketing/payload/src/endpoints/seed/directoryhub/features/automation.ts +229 -0
  164. package/templates/marketing/payload/src/endpoints/seed/directoryhub/features/custom-fields.ts +229 -0
  165. package/templates/marketing/payload/src/endpoints/seed/directoryhub/features/dashboard.ts +228 -0
  166. package/templates/marketing/payload/src/endpoints/seed/directoryhub/features/index.ts +6 -0
  167. package/templates/marketing/payload/src/endpoints/seed/directoryhub/features/monetization.ts +230 -0
  168. package/templates/marketing/payload/src/endpoints/seed/directoryhub/features/seo.ts +229 -0
  169. package/templates/marketing/payload/src/endpoints/seed/directoryhub/features/templates.ts +218 -0
  170. package/templates/marketing/payload/src/endpoints/seed/directoryhub/home.ts +555 -0
  171. package/templates/marketing/payload/src/endpoints/seed/directoryhub/index.ts +767 -0
  172. package/templates/marketing/payload/src/endpoints/seed/directoryhub/posts.ts +623 -0
  173. package/templates/marketing/payload/src/endpoints/seed/directoryhub/pricing.ts +251 -0
  174. package/templates/marketing/payload/src/endpoints/seed/directoryhub/privacy.ts +457 -0
  175. package/templates/marketing/payload/src/endpoints/seed/directoryhub/richtext-helper.ts +88 -0
  176. package/templates/marketing/payload/src/endpoints/seed/directoryhub/terms.ts +478 -0
  177. package/templates/marketing/payload/src/endpoints/seed/directoryhub/use-cases/b2b-vendor-hubs.ts +229 -0
  178. package/templates/marketing/payload/src/endpoints/seed/directoryhub/use-cases/communities.ts +230 -0
  179. package/templates/marketing/payload/src/endpoints/seed/directoryhub/use-cases/index.ts +4 -0
  180. package/templates/marketing/payload/src/endpoints/seed/directoryhub/use-cases/local-services.ts +230 -0
  181. package/templates/marketing/payload/src/endpoints/seed/directoryhub/use-cases/marketplaces.ts +230 -0
  182. package/templates/marketing/payload/src/endpoints/seed/home-static.ts +691 -0
  183. package/templates/marketing/payload/src/endpoints/seed/home.ts +675 -0
  184. package/templates/marketing/payload/src/endpoints/seed/image-1.ts +67 -0
  185. package/templates/marketing/payload/src/endpoints/seed/image-2.ts +67 -0
  186. package/templates/marketing/payload/src/endpoints/seed/image-3.ts +67 -0
  187. package/templates/marketing/payload/src/endpoints/seed/image-hero-1.ts +5 -0
  188. package/templates/marketing/payload/src/endpoints/seed/image-hero1.webp +0 -0
  189. package/templates/marketing/payload/src/endpoints/seed/image-post1.webp +0 -0
  190. package/templates/marketing/payload/src/endpoints/seed/image-post2.webp +0 -0
  191. package/templates/marketing/payload/src/endpoints/seed/image-post3.webp +0 -0
  192. package/templates/marketing/payload/src/endpoints/seed/index.ts +335 -0
  193. package/templates/marketing/payload/src/endpoints/seed/post-1.ts +315 -0
  194. package/templates/marketing/payload/src/endpoints/seed/post-2.ts +232 -0
  195. package/templates/marketing/payload/src/endpoints/seed/post-3.ts +268 -0
  196. package/templates/marketing/payload/src/fields/defaultLexical.ts +73 -0
  197. package/templates/marketing/payload/src/fields/link.ts +139 -0
  198. package/templates/marketing/payload/src/fields/linkGroup.ts +28 -0
  199. package/templates/marketing/payload/src/heros/HighImpact/index.tsx +56 -0
  200. package/templates/marketing/payload/src/heros/LowImpact/index.tsx +48 -0
  201. package/templates/marketing/payload/src/heros/MediumImpact/index.tsx +50 -0
  202. package/templates/marketing/payload/src/heros/PostHero/index.tsx +73 -0
  203. package/templates/marketing/payload/src/heros/ProductShowcase/AnimatedMockup.tsx +241 -0
  204. package/templates/marketing/payload/src/heros/ProductShowcase/index.tsx +108 -0
  205. package/templates/marketing/payload/src/heros/{RenderHero.tsx.hbs → RenderHero.tsx} +9 -9
  206. package/templates/marketing/payload/src/heros/config.ts +121 -0
  207. package/templates/marketing/payload/src/hooks/populatePublishedAt.ts +15 -0
  208. package/templates/marketing/payload/src/hooks/{revalidateRedirects.ts.hbs → revalidateRedirects.ts} +3 -3
  209. package/templates/marketing/payload/src/lib/convex.ts +13 -0
  210. package/templates/marketing/payload/src/lib/docs-source.ts +138 -0
  211. package/templates/marketing/payload/src/lib/mdx.tsx +191 -0
  212. package/templates/marketing/payload/src/payload.config.ts.hbs +95 -145
  213. package/templates/marketing/payload/src/plugins/index.ts +107 -0
  214. package/templates/marketing/payload/src/providers/HeaderTheme/index.tsx +34 -0
  215. package/templates/marketing/payload/src/providers/PostHogProvider.tsx +33 -0
  216. package/templates/marketing/payload/src/providers/Theme/InitTheme/{index.tsx.hbs → index.tsx} +11 -10
  217. package/templates/marketing/payload/src/providers/Theme/ThemeSelector/index.tsx +133 -0
  218. package/templates/marketing/payload/src/providers/Theme/ThemeSelector/types.ts +7 -0
  219. package/templates/marketing/payload/src/providers/Theme/index.tsx +60 -0
  220. package/templates/marketing/payload/src/providers/Theme/shared.ts +17 -0
  221. package/templates/marketing/payload/src/providers/Theme/{types.ts.hbs → types.ts} +3 -3
  222. package/templates/marketing/payload/src/providers/index.tsx +17 -0
  223. package/templates/marketing/payload/src/search/Component.tsx +42 -0
  224. package/templates/marketing/payload/src/search/beforeSync.ts +56 -0
  225. package/templates/marketing/payload/src/search/fieldOverrides.ts +61 -0
  226. package/templates/marketing/payload/src/utilities/deepMerge.ts +35 -0
  227. package/templates/marketing/payload/src/utilities/extractHeadings.ts +78 -0
  228. package/templates/marketing/payload/src/utilities/formatAuthors.ts +24 -0
  229. package/templates/marketing/payload/src/utilities/formatDateTime.ts +20 -0
  230. package/templates/marketing/payload/src/utilities/generateMeta.ts +93 -0
  231. package/templates/marketing/payload/src/utilities/generatePreviewPath.ts +33 -0
  232. package/templates/marketing/payload/src/utilities/getDocument.ts +32 -0
  233. package/templates/marketing/payload/src/utilities/getGlobals.ts +26 -0
  234. package/templates/marketing/payload/src/utilities/getMeUser.ts +43 -0
  235. package/templates/marketing/payload/src/utilities/getMediaUrl.ts +24 -0
  236. package/templates/marketing/payload/src/utilities/getRedirects.ts +26 -0
  237. package/templates/marketing/payload/src/utilities/getURL.ts +26 -0
  238. package/templates/marketing/payload/src/utilities/mergeOpenGraph.ts +26 -0
  239. package/templates/marketing/payload/src/utilities/toKebabCase.ts +5 -0
  240. package/templates/marketing/payload/src/utilities/ui.ts +12 -0
  241. package/templates/marketing/payload/src/utilities/useClickableCard.ts +108 -0
  242. package/templates/marketing/payload/src/utilities/useDebounce.ts +17 -0
  243. package/templates/packages/ui/src/components/button.tsx.hbs +53 -0
  244. package/templates/packages/ui/src/components/card.tsx.hbs +76 -0
  245. package/templates/packages/ui/src/components/separator.tsx.hbs +26 -0
  246. package/templates/marketing/payload/src/Footer/config.ts.hbs +0 -178
  247. package/templates/marketing/payload/src/Footer/index.ts.hbs +0 -1
  248. package/templates/marketing/payload/src/Header/RowLabel.tsx.hbs +0 -21
  249. package/templates/marketing/payload/src/Header/config.ts.hbs +0 -208
  250. package/templates/marketing/payload/src/Header/index.ts.hbs +0 -1
  251. package/templates/marketing/payload/src/access/index.ts.hbs +0 -3
  252. package/templates/marketing/payload/src/app/(frontend)/layout.tsx.hbs +0 -19
  253. package/templates/marketing/payload/src/app/(frontend)/next/seed/route.ts.hbs +0 -31
  254. package/templates/marketing/payload/src/app/(frontend)/page.tsx.hbs +0 -83
  255. package/templates/marketing/payload/src/app/(payload)/admin/[[...segments]]/not-found.tsx.hbs +0 -24
  256. package/templates/marketing/payload/src/app/(payload)/admin/[[...segments]]/page.tsx.hbs +0 -24
  257. package/templates/marketing/payload/src/app/(payload)/admin/importMap.js.hbs +0 -1
  258. package/templates/marketing/payload/src/app/(payload)/custom.scss.hbs +0 -1
  259. package/templates/marketing/payload/src/app/(payload)/layout.tsx.hbs +0 -31
  260. package/templates/marketing/payload/src/app/globals.css.hbs +0 -83
  261. package/templates/marketing/payload/src/app/layout.tsx.hbs +0 -10
  262. package/templates/marketing/payload/src/blocks/Benefits.ts.hbs +0 -34
  263. package/templates/marketing/payload/src/blocks/CTA.ts.hbs +0 -39
  264. package/templates/marketing/payload/src/blocks/Content.ts.hbs +0 -9
  265. package/templates/marketing/payload/src/blocks/FAQ.ts.hbs +0 -18
  266. package/templates/marketing/payload/src/blocks/Features.ts.hbs +0 -34
  267. package/templates/marketing/payload/src/blocks/Hero.ts.hbs +0 -40
  268. package/templates/marketing/payload/src/blocks/LogoBanner.ts.hbs +0 -17
  269. package/templates/marketing/payload/src/blocks/Pricing.ts.hbs +0 -37
  270. package/templates/marketing/payload/src/blocks/Testimonials.ts.hbs +0 -21
  271. package/templates/marketing/payload/src/blocks/index.ts.hbs +0 -9
  272. package/templates/marketing/payload/src/collections/Categories/index.ts.hbs +0 -28
  273. package/templates/marketing/payload/src/collections/FAQs/index.ts.hbs +0 -100
  274. package/templates/marketing/payload/src/collections/Media.ts.hbs +0 -164
  275. package/templates/marketing/payload/src/collections/Pages/hooks/revalidatePage.ts.hbs +0 -43
  276. package/templates/marketing/payload/src/collections/Pages/index.ts.hbs +0 -142
  277. package/templates/marketing/payload/src/collections/Posts/hooks/populateAuthors.ts.hbs +0 -41
  278. package/templates/marketing/payload/src/collections/Posts/hooks/revalidatePost.ts.hbs +0 -44
  279. package/templates/marketing/payload/src/collections/Posts/index.ts.hbs +0 -244
  280. package/templates/marketing/payload/src/collections/Users/index.ts.hbs +0 -26
  281. package/templates/marketing/payload/src/collections/index.ts.hbs +0 -6
  282. package/templates/marketing/payload/src/components/BeforeDashboard/SeedButton/index.tsx.hbs +0 -89
  283. package/templates/marketing/payload/src/components/BeforeDashboard/index.tsx.hbs +0 -69
  284. package/templates/marketing/payload/src/components/BeforeLogin/index.tsx.hbs +0 -14
  285. package/templates/marketing/payload/src/components/Link/index.tsx.hbs +0 -79
  286. package/templates/marketing/payload/src/components/Media/index.tsx.hbs +0 -67
  287. package/templates/marketing/payload/src/components/RichText/index.tsx.hbs +0 -44
  288. package/templates/marketing/payload/src/endpoints/seed/home.ts.hbs +0 -76
  289. package/templates/marketing/payload/src/endpoints/seed/image-1.ts.hbs +0 -5
  290. package/templates/marketing/payload/src/endpoints/seed/image-2.ts.hbs +0 -5
  291. package/templates/marketing/payload/src/endpoints/seed/image-hero.ts.hbs +0 -5
  292. package/templates/marketing/payload/src/endpoints/seed/index.ts.hbs +0 -235
  293. package/templates/marketing/payload/src/endpoints/seed/post-1.ts.hbs +0 -252
  294. package/templates/marketing/payload/src/fields/defaultLexical.ts.hbs +0 -73
  295. package/templates/marketing/payload/src/fields/link.ts.hbs +0 -139
  296. package/templates/marketing/payload/src/fields/linkGroup.ts.hbs +0 -28
  297. package/templates/marketing/payload/src/globals/index.ts.hbs +0 -2
  298. package/templates/marketing/payload/src/heros/HighImpact/index.tsx.hbs +0 -53
  299. package/templates/marketing/payload/src/heros/LowImpact/index.tsx.hbs +0 -48
  300. package/templates/marketing/payload/src/heros/MediumImpact/index.tsx.hbs +0 -46
  301. package/templates/marketing/payload/src/heros/PostHero/index.tsx.hbs +0 -68
  302. package/templates/marketing/payload/src/heros/ProductShowcase/index.tsx.hbs +0 -88
  303. package/templates/marketing/payload/src/heros/config.ts.hbs +0 -112
  304. package/templates/marketing/payload/src/heros/index.ts.hbs +0 -7
  305. package/templates/marketing/payload/src/hooks/index.ts.hbs +0 -2
  306. package/templates/marketing/payload/src/hooks/populatePublishedAt.ts.hbs +0 -15
  307. package/templates/marketing/payload/src/providers/HeaderTheme/index.tsx.hbs +0 -34
  308. package/templates/marketing/payload/src/providers/Theme/index.tsx.hbs +0 -60
  309. package/templates/marketing/payload/src/providers/Theme/shared.ts.hbs +0 -17
  310. package/templates/marketing/payload/src/providers/index.tsx.hbs +0 -18
  311. package/templates/marketing/payload/src/utilities/deepMerge.ts.hbs +0 -35
  312. package/templates/marketing/payload/src/utilities/formatAuthors.ts.hbs +0 -24
  313. package/templates/marketing/payload/src/utilities/formatDateTime.ts.hbs +0 -13
  314. package/templates/marketing/payload/src/utilities/generateMeta.ts.hbs +0 -87
  315. package/templates/marketing/payload/src/utilities/generatePreviewPath.ts.hbs +0 -33
  316. package/templates/marketing/payload/src/utilities/getURL.ts.hbs +0 -26
  317. package/templates/marketing/payload/src/utilities/index.ts.hbs +0 -8
  318. package/templates/marketing/payload/src/utilities/mergeOpenGraph.ts.hbs +0 -26
  319. /package/templates/marketing/payload/src/access/{anyone.ts.hbs → anyone.ts} +0 -0
  320. /package/templates/marketing/payload/src/components/BeforeDashboard/SeedButton/{index.scss.hbs → index.scss} +0 -0
  321. /package/templates/marketing/payload/src/components/BeforeDashboard/{index.scss.hbs → index.scss} +0 -0
  322. /package/templates/marketing/payload/src/fields/{index.ts.hbs → index.ts} +0 -0
  323. /package/templates/marketing/payload/src/utilities/{canUseDOM.ts.hbs → canUseDOM.ts} +0 -0
@@ -0,0 +1,281 @@
1
+ import type { Form, Page } from "@/payload-types"
2
+ import { createParagraph } from "./richtext-helper"
3
+
4
+ type AboutArgs = {
5
+ contactForm: Form
6
+ }
7
+
8
+ export const directoryHubAbout = ({ contactForm }: AboutArgs): Partial<Page> => {
9
+ return {
10
+ slug: "about",
11
+ _status: "published",
12
+ hero: {
13
+ type: "lowImpact",
14
+ richText: {
15
+ root: {
16
+ type: "root",
17
+ children: [
18
+ {
19
+ type: "heading",
20
+ children: [
21
+ {
22
+ type: "text",
23
+ detail: 0,
24
+ format: 0,
25
+ mode: "normal",
26
+ style: "",
27
+ text: "We help entrepreneurs build directory businesses",
28
+ version: 1,
29
+ },
30
+ ],
31
+ direction: "ltr" as const,
32
+ format: "" as const,
33
+ indent: 0,
34
+ tag: "h1",
35
+ version: 1,
36
+ },
37
+ {
38
+ type: "paragraph",
39
+ children: [
40
+ {
41
+ type: "text",
42
+ detail: 0,
43
+ format: 0,
44
+ mode: "normal",
45
+ style: "",
46
+ text: "DirectoryHub makes it easy for anyone to launch, monetize, and grow niche directory websites — without writing code.",
47
+ version: 1,
48
+ },
49
+ ],
50
+ direction: "ltr" as const,
51
+ format: "" as const,
52
+ indent: 0,
53
+ textFormat: 0,
54
+ version: 1,
55
+ },
56
+ ],
57
+ direction: "ltr" as const,
58
+ format: "" as const,
59
+ indent: 0,
60
+ version: 1,
61
+ },
62
+ },
63
+ },
64
+ layout: [
65
+ // Mission Section
66
+ {
67
+ blockType: "featureShowcase",
68
+ blockName: "Our Mission",
69
+ label: "Our Mission",
70
+ headline: "Democratizing the directory business model",
71
+ description: createParagraph(
72
+ "Directory websites remain one of the most sustainable online business models, yet building one traditionally requires significant technical expertise. We believe anyone with niche knowledge should be able to turn that expertise into a profitable directory business. DirectoryHub handles the technical complexity so you can focus on what matters: curating great content and growing your community.",
73
+ ),
74
+ link: {
75
+ type: "custom",
76
+ url: "/pricing",
77
+ label: "View pricing",
78
+ appearance: "default",
79
+ },
80
+ imagePosition: "right",
81
+ features: [
82
+ { text: "No coding required" },
83
+ { text: "Built-in monetization" },
84
+ { text: "Enterprise-grade SEO" },
85
+ { text: "Scale as you grow" },
86
+ ],
87
+ },
88
+ // Stats Banner
89
+ {
90
+ blockType: "proofBanner",
91
+ blockName: "Impact Stats",
92
+ style: "withBackground",
93
+ headline: "Trusted by directory builders worldwide",
94
+ subtext:
95
+ "Join hundreds of entrepreneurs who have launched successful directories with DirectoryHub",
96
+ },
97
+ // Values Grid
98
+ {
99
+ blockType: "bentoFeatures",
100
+ blockName: "Our Values",
101
+ heading: "What we stand for",
102
+ subheading: "The principles that guide everything we build",
103
+ features: [
104
+ {
105
+ size: "small",
106
+ style: "gradient",
107
+ icon: "zap",
108
+ title: "Simplicity First",
109
+ description: createParagraph(
110
+ "We remove complexity so you can focus on building your business.",
111
+ ),
112
+ },
113
+ {
114
+ size: "small",
115
+ style: "accent",
116
+ icon: "rocket",
117
+ title: "Built for Growth",
118
+ description: createParagraph(
119
+ "Every feature is designed to help you scale sustainably.",
120
+ ),
121
+ },
122
+ {
123
+ size: "small",
124
+ style: "default",
125
+ icon: "shield",
126
+ title: "Transparency",
127
+ description: createParagraph(
128
+ "Clear pricing, no hidden fees, honest communication always.",
129
+ ),
130
+ },
131
+ {
132
+ size: "small",
133
+ style: "primary",
134
+ icon: "users",
135
+ title: "Customer Success",
136
+ description: createParagraph("Your success is our success. We invest in your growth."),
137
+ },
138
+ {
139
+ size: "small",
140
+ style: "default",
141
+ icon: "globe",
142
+ title: "Quality Matters",
143
+ description: createParagraph(
144
+ "We build tools that help you maintain high-quality directories.",
145
+ ),
146
+ },
147
+ {
148
+ size: "small",
149
+ style: "default",
150
+ icon: "settings",
151
+ title: "Continuous Innovation",
152
+ description: createParagraph(
153
+ "We constantly improve our platform based on customer feedback.",
154
+ ),
155
+ },
156
+ ],
157
+ },
158
+ // Our Story
159
+ {
160
+ blockType: "featureShowcase",
161
+ blockName: "Our Story",
162
+ label: "Our Story",
163
+ headline: "From frustration to solution",
164
+ description: createParagraph(
165
+ "DirectoryHub was born when our founders tried to build a niche directory and discovered how much technical overhead was involved. After months of custom development for what seemed like a simple project, we realized there had to be a better way. We built DirectoryHub to be the platform we wished existed — one that handles all the technical complexity while giving directory builders complete control over their business.",
166
+ ),
167
+ link: {
168
+ type: "custom",
169
+ url: "/sign-up",
170
+ label: "Start building free",
171
+ appearance: "default",
172
+ },
173
+ imagePosition: "left",
174
+ features: [
175
+ { text: "Founded by directory builders" },
176
+ { text: "Bootstrapped and profitable" },
177
+ { text: "Customer-funded development" },
178
+ { text: "Global remote team" },
179
+ ],
180
+ },
181
+ // Contact Section
182
+ {
183
+ blockType: "content",
184
+ blockName: "Contact Header",
185
+ columns: [
186
+ {
187
+ richText: {
188
+ root: {
189
+ type: "root",
190
+ children: [
191
+ {
192
+ type: "heading",
193
+ children: [
194
+ {
195
+ type: "text",
196
+ detail: 0,
197
+ format: 0,
198
+ mode: "normal",
199
+ style: "",
200
+ text: "Get in Touch",
201
+ version: 1,
202
+ },
203
+ ],
204
+ direction: "ltr" as const,
205
+ format: "" as const,
206
+ indent: 0,
207
+ tag: "h2",
208
+ version: 1,
209
+ },
210
+ {
211
+ type: "paragraph",
212
+ children: [
213
+ {
214
+ type: "text",
215
+ detail: 0,
216
+ format: 0,
217
+ mode: "normal",
218
+ style: "",
219
+ text: "Have questions about DirectoryHub? We'd love to hear from you. Send us a message and our team will respond within 24 hours.",
220
+ version: 1,
221
+ },
222
+ ],
223
+ direction: "ltr" as const,
224
+ format: "" as const,
225
+ indent: 0,
226
+ textFormat: 0,
227
+ version: 1,
228
+ },
229
+ ],
230
+ direction: "ltr" as const,
231
+ format: "" as const,
232
+ indent: 0,
233
+ version: 1,
234
+ },
235
+ },
236
+ size: "full",
237
+ },
238
+ ],
239
+ },
240
+ // Contact Form
241
+ {
242
+ blockType: "formBlock",
243
+ blockName: "Contact Form",
244
+ form: contactForm.id,
245
+ enableIntro: false,
246
+ },
247
+ // Final CTA
248
+ {
249
+ blockType: "proofBanner",
250
+ blockName: "Footer CTA",
251
+ style: "centered",
252
+ headline: "Ready to build your directory?",
253
+ subtext: "Join hundreds of entrepreneurs building successful directory businesses.",
254
+ links: [
255
+ {
256
+ link: {
257
+ type: "custom",
258
+ appearance: "default",
259
+ label: "Start for free",
260
+ url: "/sign-up",
261
+ },
262
+ },
263
+ {
264
+ link: {
265
+ type: "custom",
266
+ appearance: "outline",
267
+ label: "View pricing",
268
+ url: "/pricing",
269
+ },
270
+ },
271
+ ],
272
+ },
273
+ ],
274
+ meta: {
275
+ description:
276
+ "Learn about DirectoryHub — the platform that makes it easy to build, monetize, and grow directory websites. Founded by directory builders, for directory builders.",
277
+ title: "About DirectoryHub — Our Mission & Story",
278
+ },
279
+ title: "About",
280
+ }
281
+ }
@@ -0,0 +1,224 @@
1
+ import type { Faq } from "@/payload-types"
2
+ import { createParagraph } from "./richtext-helper"
3
+
4
+ export const faqData: Partial<Faq>[] = [
5
+ // Getting Started FAQs
6
+ {
7
+ question: "How quickly can I launch my directory?",
8
+ answer: createParagraph(
9
+ "Most customers launch their first directory within 1-2 days. Pick a template, customize your branding, add your first listings, and you're live. No coding required.",
10
+ ),
11
+ category: "getting-started",
12
+ order: 1,
13
+ },
14
+ {
15
+ question: "Do I need technical skills to use DirectoryHub?",
16
+ answer: createParagraph(
17
+ "No technical skills required. DirectoryHub is designed for non-technical users. Our visual editor lets you customize everything from colors to layouts without writing any code.",
18
+ ),
19
+ category: "getting-started",
20
+ order: 2,
21
+ },
22
+ {
23
+ question: "Can I import existing listings from another platform?",
24
+ answer: createParagraph(
25
+ "Yes! You can import listings via CSV upload. We also offer migration assistance for larger directories moving from other platforms. Contact our support team for help with migrations.",
26
+ ),
27
+ category: "getting-started",
28
+ order: 3,
29
+ },
30
+ {
31
+ question: "What kind of directories can I build?",
32
+ answer: createParagraph(
33
+ "DirectoryHub works for any type of directory: local services, B2B vendors, community directories, marketplaces, job boards, real estate, and more. Our templates cover the most popular use cases, and custom fields let you build any schema.",
34
+ ),
35
+ category: "getting-started",
36
+ order: 4,
37
+ },
38
+
39
+ // Pricing FAQs
40
+ {
41
+ question: "Is there a free plan?",
42
+ answer: createParagraph(
43
+ "Yes! Start with our Free plan to explore the platform. You can launch a basic directory with up to 50 listings. Upgrade anytime to unlock premium features and higher limits.",
44
+ ),
45
+ category: "pricing",
46
+ order: 1,
47
+ },
48
+ {
49
+ question: "What payment methods do you accept?",
50
+ answer: createParagraph(
51
+ "We accept all major credit cards (Visa, Mastercard, American Express) and debit cards through Stripe. Annual plans can also be paid via invoice for qualifying accounts.",
52
+ ),
53
+ category: "pricing",
54
+ order: 2,
55
+ },
56
+ {
57
+ question: "Can I change plans at any time?",
58
+ answer: createParagraph(
59
+ "Absolutely. Upgrade or downgrade your plan at any time. When upgrading, you'll be charged the prorated difference. When downgrading, the credit will be applied to your next billing cycle.",
60
+ ),
61
+ category: "pricing",
62
+ order: 3,
63
+ },
64
+ {
65
+ question: "Do you offer discounts for annual billing?",
66
+ answer: createParagraph(
67
+ "Yes! Save 20% when you choose annual billing. Annual plans also include priority support and early access to new features.",
68
+ ),
69
+ category: "pricing",
70
+ order: 4,
71
+ },
72
+ {
73
+ question: "What happens if I exceed my listing limit?",
74
+ answer: createParagraph(
75
+ "You'll receive a notification when approaching your limit. You can upgrade your plan to increase limits, or we'll help you identify which listings to archive if you prefer to stay on your current plan.",
76
+ ),
77
+ category: "pricing",
78
+ order: 5,
79
+ },
80
+ {
81
+ question: "Is there a refund policy?",
82
+ answer: createParagraph(
83
+ "We offer a 14-day money-back guarantee for all paid plans. If you're not satisfied within the first 14 days, contact support for a full refund, no questions asked.",
84
+ ),
85
+ category: "pricing",
86
+ order: 6,
87
+ },
88
+
89
+ // Features FAQs
90
+ {
91
+ question: "Can I accept payments through my directory?",
92
+ answer: createParagraph(
93
+ "Yes! Connect your Stripe account to accept payments for premium listings, subscriptions, and featured placements. We handle the payment flow; you keep the revenue minus Stripe's standard fees.",
94
+ ),
95
+ category: "features",
96
+ order: 1,
97
+ },
98
+ {
99
+ question: "How does SEO work with DirectoryHub?",
100
+ answer: createParagraph(
101
+ "Every directory includes automatic SEO optimization: schema markup, dynamic sitemaps, meta tags, and clean URLs. Your listings are structured for Google's rich results and local pack rankings.",
102
+ ),
103
+ category: "features",
104
+ order: 2,
105
+ },
106
+ {
107
+ question: "Can I use my own domain name?",
108
+ answer: createParagraph(
109
+ "Yes! Custom domains are supported on all paid plans. Point your domain to DirectoryHub, and we'll handle SSL certificates and domain configuration automatically.",
110
+ ),
111
+ category: "features",
112
+ order: 3,
113
+ },
114
+ {
115
+ question: "Do you support reviews and ratings?",
116
+ answer: createParagraph(
117
+ "Yes! Enable user reviews and ratings for your listings. You can moderate reviews, require verification, and display aggregate ratings. Review schema is automatically added for rich snippets.",
118
+ ),
119
+ category: "features",
120
+ order: 4,
121
+ },
122
+ {
123
+ question: "Can businesses manage their own listings?",
124
+ answer: createParagraph(
125
+ "Absolutely. Business owners can claim and manage their listings through dedicated dashboards. They can update information, respond to reviews, track analytics, and manage their subscription.",
126
+ ),
127
+ category: "features",
128
+ order: 5,
129
+ },
130
+ {
131
+ question: "Is there an API available?",
132
+ answer: createParagraph(
133
+ "Yes! Our REST API is available on Professional and Enterprise plans. Use it to integrate your directory with other tools, import data programmatically, or build custom applications.",
134
+ ),
135
+ category: "features",
136
+ order: 6,
137
+ },
138
+
139
+ // Technical FAQs
140
+ {
141
+ question: "Where is my data hosted?",
142
+ answer: createParagraph(
143
+ "All data is hosted on secure servers in the United States and Europe. We use enterprise-grade infrastructure with automatic backups, redundancy, and 99.9% uptime SLA.",
144
+ ),
145
+ category: "technical",
146
+ order: 1,
147
+ },
148
+ {
149
+ question: "Is DirectoryHub GDPR compliant?",
150
+ answer: createParagraph(
151
+ "Yes. We are fully GDPR compliant. We provide data processing agreements, respect user consent preferences, and offer data export/deletion tools for you to fulfill user requests.",
152
+ ),
153
+ category: "technical",
154
+ order: 2,
155
+ },
156
+ {
157
+ question: "Can I export my data?",
158
+ answer: createParagraph(
159
+ "Yes! Export your listings, users, and analytics data at any time. We provide CSV exports for all data types. You own your data and can take it with you if you ever decide to leave.",
160
+ ),
161
+ category: "technical",
162
+ order: 3,
163
+ },
164
+ {
165
+ question: "How secure is my directory?",
166
+ answer: createParagraph(
167
+ "Security is a top priority. We use SSL encryption, secure payment processing via Stripe, regular security audits, and follow OWASP best practices. Enterprise plans include SOC 2 compliance.",
168
+ ),
169
+ category: "technical",
170
+ order: 4,
171
+ },
172
+
173
+ // Support FAQs
174
+ {
175
+ question: "What support options are available?",
176
+ answer: createParagraph(
177
+ "All plans include email support with 24-hour response times. Professional plans add live chat support. Enterprise plans include dedicated account managers and phone support.",
178
+ ),
179
+ category: "support",
180
+ order: 1,
181
+ },
182
+ {
183
+ question: "Do you offer onboarding assistance?",
184
+ answer: createParagraph(
185
+ "Yes! All paid plans include onboarding guides and video tutorials. Professional and Enterprise plans include personalized onboarding calls to help you get set up for success.",
186
+ ),
187
+ category: "support",
188
+ order: 2,
189
+ },
190
+ {
191
+ question: "Can I request new features?",
192
+ answer: createParagraph(
193
+ "Absolutely! We love hearing from customers. Submit feature requests through our feedback portal. Many of our most popular features came directly from customer suggestions.",
194
+ ),
195
+ category: "support",
196
+ order: 3,
197
+ },
198
+
199
+ // General FAQs
200
+ {
201
+ question: "What makes DirectoryHub different from other platforms?",
202
+ answer: createParagraph(
203
+ "DirectoryHub is purpose-built for directories. Unlike general website builders or generic CMS platforms, every feature is designed specifically for the directory use case—from listing schemas to monetization tools.",
204
+ ),
205
+ category: "general",
206
+ order: 1,
207
+ },
208
+ {
209
+ question: "Can I use DirectoryHub for multiple directories?",
210
+ answer: createParagraph(
211
+ "Yes! Our Professional and Enterprise plans support multiple directories under one account. Manage all your directories from a single dashboard with unified billing and analytics.",
212
+ ),
213
+ category: "general",
214
+ order: 2,
215
+ },
216
+ {
217
+ question: "How do I contact sales?",
218
+ answer: createParagraph(
219
+ "For sales inquiries, contact us at sales@directoryhub.com or book a demo through our website. Our team will help you understand which plan and features are right for your needs.",
220
+ ),
221
+ category: "general",
222
+ order: 3,
223
+ },
224
+ ]