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,1019 @@
1
+ @import "tailwindcss";
2
+ @import "tw-animate-css";
3
+ @plugin "@tailwindcss/typography";
4
+
5
+ @custom-variant dark (&:where([data-theme="dark"], [data-theme="dark"] *));
6
+
7
+ @theme {
8
+ /* Colors */
9
+ --color-background: hsl(var(--background));
10
+ --color-foreground: hsl(var(--foreground));
11
+
12
+ --color-card: hsl(var(--card));
13
+ --color-card-foreground: hsl(var(--card-foreground));
14
+
15
+ --color-popover: hsl(var(--popover));
16
+ --color-popover-foreground: hsl(var(--popover-foreground));
17
+
18
+ --color-primary: hsl(var(--primary));
19
+ --color-primary-foreground: hsl(var(--primary-foreground));
20
+
21
+ --color-secondary: hsl(var(--secondary));
22
+ --color-secondary-foreground: hsl(var(--secondary-foreground));
23
+
24
+ --color-muted: hsl(var(--muted));
25
+ --color-muted-foreground: hsl(var(--muted-foreground));
26
+
27
+ --color-accent: hsl(var(--accent));
28
+ --color-accent-foreground: hsl(var(--accent-foreground));
29
+
30
+ --color-destructive: hsl(var(--destructive));
31
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
32
+
33
+ --color-border: hsla(var(--border));
34
+ --color-input: hsl(var(--input));
35
+ --color-ring: hsl(var(--ring));
36
+
37
+ --color-success: hsl(var(--success));
38
+ --color-warning: hsl(var(--warning));
39
+ --color-error: hsl(var(--error));
40
+
41
+ /* Border radius */
42
+ --radius-sm: calc(var(--radius) - 4px);
43
+ --radius-md: calc(var(--radius) - 2px);
44
+ --radius-lg: var(--radius);
45
+ --radius-xl: calc(var(--radius) + 4px);
46
+
47
+ /* Fonts */
48
+ --font-sans: var(--font-inter), system-ui, sans-serif;
49
+ --font-mono: var(--font-geist-mono), monospace;
50
+
51
+ /* Container - matching web app */
52
+ --container-sm: 40rem;
53
+ --container-md: 48rem;
54
+ --container-lg: 64rem;
55
+ --container-xl: 80rem;
56
+ --container-2xl: 96rem;
57
+
58
+ /* Animations */
59
+ --animate-accordion-down: accordion-down 0.2s ease-out;
60
+ --animate-accordion-up: accordion-up 0.2s ease-out;
61
+ }
62
+
63
+ @keyframes accordion-down {
64
+ from {
65
+ height: 0;
66
+ }
67
+ to {
68
+ height: var(--radix-accordion-content-height);
69
+ }
70
+ }
71
+
72
+ @keyframes accordion-up {
73
+ from {
74
+ height: var(--radix-accordion-content-height);
75
+ }
76
+ to {
77
+ height: 0;
78
+ }
79
+ }
80
+
81
+ :root {
82
+ --background: 0 0% 98%; /* #f7f9fc */
83
+ --foreground: 220 59% 15%; /* #0f1f3d */
84
+
85
+ --card: 217 46% 96%; /* #e9eff8 */
86
+ --card-foreground: 220 59% 15%; /* #0f1f3d */
87
+
88
+ --popover: 0 0% 100%;
89
+ --popover-foreground: 220 59% 15%;
90
+
91
+ --primary: 220 59% 15%; /* navy */
92
+ --primary-foreground: 0 0% 100%;
93
+
94
+ --secondary: 173 55% 32%; /* darker teal for WCAG AA contrast */
95
+ --secondary-foreground: 220 59% 15%;
96
+
97
+ --muted: 217 46% 96%; /* mist */
98
+ --muted-foreground: 220 20% 25%; /* darkened further for WCAG AA on card backgrounds */
99
+
100
+ --accent: 213 35% 95%; /* soft accent */
101
+ --accent-foreground: 220 59% 15%;
102
+
103
+ --destructive: 0 68% 65%; /* #e76a6a */
104
+ --destructive-foreground: 0 0% 100%;
105
+
106
+ --border: 216 23% 89%; /* #e1e6ef */
107
+ --input: 216 23% 89%;
108
+ --ring: 220 59% 15%;
109
+
110
+ --radius: 0.75rem;
111
+
112
+ --success: 157 48% 47%; /* #3fae8c */
113
+ --warning: 41 54% 62%; /* #d9b36a */
114
+ --error: 0 68% 65%; /* #e76a6a */
115
+ }
116
+
117
+ [data-theme="dark"] {
118
+ --background: 219 53% 12%; /* #0b162c */
119
+ --foreground: 216 33% 93%; /* #f7f9fc */
120
+
121
+ --card: 220 52% 11%; /* #101c32 */
122
+ --card-foreground: 216 33% 93%;
123
+
124
+ --popover: 220 52% 11%;
125
+ --popover-foreground: 216 33% 93%;
126
+
127
+ --primary: 220 59% 15%;
128
+ --primary-foreground: 0 0% 100%;
129
+
130
+ --secondary: 173 46% 44%;
131
+ --secondary-foreground: 219 53% 12%;
132
+
133
+ --muted: 221 53% 12%;
134
+ --muted-foreground: 217 23% 75%; /* improved contrast for WCAG AA */
135
+
136
+ --accent: 222 44% 16%;
137
+ --accent-foreground: 216 33% 93%;
138
+
139
+ --destructive: 0 70% 71%;
140
+ --destructive-foreground: 219 53% 12%;
141
+
142
+ --border: 222 30% 21%;
143
+ --input: 222 30% 21%;
144
+ --ring: 173 46% 44%;
145
+
146
+ --success: 157 48% 47%;
147
+ --warning: 41 54% 62%;
148
+ --error: 0 70% 71%;
149
+ }
150
+
151
+ * {
152
+ border-color: var(--color-border);
153
+ }
154
+
155
+ body {
156
+ background-color: var(--color-background);
157
+ color: var(--color-foreground);
158
+ min-height: 100vh;
159
+ display: flex;
160
+ flex-direction: column;
161
+ }
162
+
163
+ html {
164
+ opacity: 0;
165
+ }
166
+
167
+ html[data-theme="dark"],
168
+ html[data-theme="light"] {
169
+ opacity: initial;
170
+ }
171
+
172
+ /* Container utility - matching web app */
173
+ .container {
174
+ width: 100%;
175
+ margin-left: auto;
176
+ margin-right: auto;
177
+ padding-left: 1rem;
178
+ padding-right: 1rem;
179
+ max-width: 96rem;
180
+ }
181
+
182
+ /* Hero typography - matching web app exactly */
183
+ .hero-content h1 {
184
+ font-size: 2.25rem !important; /* text-4xl */
185
+ line-height: 2.5rem !important; /* text-4xl line-height */
186
+ font-weight: 700 !important; /* font-bold */
187
+ letter-spacing: -0.025em !important; /* tracking-tight */
188
+ margin-bottom: 1.5rem !important; /* mb-6 */
189
+ color: hsl(var(--foreground)) !important;
190
+ }
191
+
192
+ .hero-content p {
193
+ font-size: 1.25rem !important; /* text-xl */
194
+ line-height: 1.75rem !important; /* text-xl line-height */
195
+ color: hsl(var(--muted-foreground)) !important;
196
+ max-width: 42rem; /* max-w-2xl */
197
+ margin-left: auto;
198
+ margin-right: auto;
199
+ margin-bottom: 2rem !important; /* mb-8 */
200
+ }
201
+
202
+ .hero-content--dark h1 {
203
+ color: white !important;
204
+ }
205
+
206
+ .hero-content--dark p {
207
+ color: rgba(255, 255, 255, 0.8) !important;
208
+ }
209
+
210
+ @media (min-width: 768px) {
211
+ .hero-content h1 {
212
+ font-size: 3.75rem !important; /* md:text-6xl */
213
+ line-height: 1 !important; /* text-6xl line-height */
214
+ }
215
+ }
216
+
217
+ @media (min-width: 640px) {
218
+ .container {
219
+ padding-left: 1.5rem;
220
+ padding-right: 1.5rem;
221
+ }
222
+ }
223
+
224
+ @media (min-width: 1024px) {
225
+ .container {
226
+ padding-left: 2rem;
227
+ padding-right: 2rem;
228
+ }
229
+ }
230
+
231
+ /* ========================================
232
+ PRODUCT SHOWCASE HERO STYLES
233
+ ======================================== */
234
+
235
+ /* Left-aligned hero content */
236
+ .hero-content--left h1 {
237
+ text-align: left !important;
238
+ margin-left: 0 !important;
239
+ margin-right: 0 !important;
240
+ }
241
+
242
+ .hero-content--left p {
243
+ text-align: left !important;
244
+ margin-left: 0 !important;
245
+ margin-right: 0 !important;
246
+ }
247
+
248
+ /* Hero showcase section */
249
+ .hero-showcase {
250
+ position: relative;
251
+ border-radius: 12px;
252
+ overflow: hidden;
253
+ padding: 3rem;
254
+ min-height: 500px;
255
+ }
256
+
257
+ @media (min-width: 768px) {
258
+ .hero-showcase {
259
+ min-height: 600px;
260
+ }
261
+ }
262
+
263
+ @media (min-width: 1024px) {
264
+ .hero-showcase {
265
+ min-height: 700px;
266
+ }
267
+ }
268
+
269
+ /* Hero background image */
270
+ .hero-bg-image {
271
+ position: absolute;
272
+ inset: 0;
273
+ z-index: 0;
274
+ }
275
+
276
+ .hero-bg-image img {
277
+ width: 100%;
278
+ height: 100%;
279
+ object-fit: cover;
280
+ object-position: center;
281
+ }
282
+
283
+ /* Mockup centered within background */
284
+ .hero-mockup-centered {
285
+ position: relative;
286
+ z-index: 10;
287
+ max-width: 800px;
288
+ margin: 0 auto;
289
+ width: 100%;
290
+ }
291
+
292
+ @media (min-width: 768px) {
293
+ .hero-mockup-centered {
294
+ max-width: 900px;
295
+ }
296
+ }
297
+
298
+ @media (min-width: 1024px) {
299
+ .hero-mockup-centered {
300
+ max-width: 1000px;
301
+ }
302
+ }
303
+
304
+ .mockup-wrapper {
305
+ background: hsl(var(--background));
306
+ border-radius: 12px;
307
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25), 0 12px 24px -8px rgba(0, 0, 0, 0.15), 0 0 0 1px
308
+ rgba(0, 0, 0, 0.05);
309
+ overflow: hidden;
310
+ animation: mockup-entrance 0.8s ease-out;
311
+ width: 100%;
312
+ }
313
+
314
+ .mockup-wrapper img {
315
+ width: 100%;
316
+ height: auto;
317
+ display: block;
318
+ }
319
+
320
+ @keyframes mockup-entrance {
321
+ from {
322
+ opacity: 0;
323
+ transform: translateY(30px);
324
+ }
325
+ to {
326
+ opacity: 1;
327
+ transform: translateY(0);
328
+ }
329
+ }
330
+
331
+ /* Browser chrome */
332
+ .mockup-chrome {
333
+ display: flex;
334
+ align-items: center;
335
+ padding: 12px 16px;
336
+ background: hsl(var(--muted));
337
+ border-bottom: 1px solid hsl(var(--border));
338
+ }
339
+
340
+ .mockup-chrome-dots {
341
+ display: flex;
342
+ gap: 6px;
343
+ }
344
+
345
+ .mockup-chrome-dots .dot {
346
+ width: 12px;
347
+ height: 12px;
348
+ border-radius: 50%;
349
+ }
350
+
351
+ .mockup-chrome-dots .dot-red {
352
+ background: #ff5f56;
353
+ }
354
+ .mockup-chrome-dots .dot-yellow {
355
+ background: #ffbd2e;
356
+ }
357
+ .mockup-chrome-dots .dot-green {
358
+ background: #27ca40;
359
+ }
360
+
361
+ .mockup-chrome-title {
362
+ flex: 1;
363
+ text-align: center;
364
+ font-size: 13px;
365
+ font-weight: 500;
366
+ color: hsl(var(--muted-foreground));
367
+ }
368
+
369
+ .mockup-chrome-actions {
370
+ width: 60px;
371
+ }
372
+
373
+ /* App content layout */
374
+ .mockup-content {
375
+ display: flex;
376
+ min-height: 400px;
377
+ }
378
+
379
+ .mockup-sidebar {
380
+ width: 220px;
381
+ background: hsl(var(--card));
382
+ border-right: 1px solid hsl(var(--border));
383
+ flex-shrink: 0;
384
+ }
385
+
386
+ .sidebar-header {
387
+ padding: 16px;
388
+ border-bottom: 1px solid hsl(var(--border));
389
+ }
390
+
391
+ .sidebar-logo {
392
+ display: flex;
393
+ align-items: center;
394
+ gap: 10px;
395
+ }
396
+
397
+ .logo-icon {
398
+ width: 28px;
399
+ height: 28px;
400
+ background: hsl(var(--primary));
401
+ color: white;
402
+ border-radius: 6px;
403
+ display: flex;
404
+ align-items: center;
405
+ justify-content: center;
406
+ font-weight: 700;
407
+ font-size: 14px;
408
+ }
409
+
410
+ .logo-text {
411
+ font-weight: 600;
412
+ font-size: 14px;
413
+ color: hsl(var(--foreground));
414
+ }
415
+
416
+ .sidebar-nav {
417
+ padding: 8px;
418
+ }
419
+
420
+ .sidebar-item {
421
+ display: flex;
422
+ align-items: center;
423
+ gap: 10px;
424
+ padding: 10px 12px;
425
+ border-radius: 6px;
426
+ font-size: 13px;
427
+ color: hsl(var(--muted-foreground));
428
+ transition: all 0.15s ease;
429
+ cursor: pointer;
430
+ }
431
+
432
+ .sidebar-item:hover {
433
+ background: hsl(var(--accent));
434
+ color: hsl(var(--accent-foreground));
435
+ }
436
+
437
+ .sidebar-item--active {
438
+ background: hsl(var(--primary) / 0.12);
439
+ color: hsl(var(--primary));
440
+ }
441
+
442
+ .sidebar-icon {
443
+ font-size: 16px;
444
+ }
445
+
446
+ .sidebar-label {
447
+ flex: 1;
448
+ }
449
+
450
+ .sidebar-badge {
451
+ background: hsl(var(--primary));
452
+ color: hsl(var(--primary-foreground));
453
+ font-size: 11px;
454
+ padding: 2px 6px;
455
+ border-radius: 10px;
456
+ font-weight: 500;
457
+ }
458
+
459
+ /* Main content area */
460
+ .mockup-main {
461
+ flex: 1;
462
+ display: flex;
463
+ flex-direction: column;
464
+ background: hsl(var(--background));
465
+ }
466
+
467
+ .main-header {
468
+ display: flex;
469
+ align-items: center;
470
+ justify-content: space-between;
471
+ padding: 16px 20px;
472
+ border-bottom: 1px solid hsl(var(--border));
473
+ }
474
+
475
+ .header-title {
476
+ display: flex;
477
+ flex-direction: column;
478
+ gap: 2px;
479
+ }
480
+
481
+ .header-title h2 {
482
+ font-size: 16px;
483
+ font-weight: 600;
484
+ margin: 0;
485
+ color: hsl(var(--foreground));
486
+ }
487
+
488
+ .header-breadcrumb {
489
+ font-size: 12px;
490
+ color: hsl(var(--muted-foreground));
491
+ }
492
+
493
+ .header-actions {
494
+ display: flex;
495
+ align-items: center;
496
+ gap: 8px;
497
+ }
498
+
499
+ .action-btn {
500
+ padding: 8px 16px;
501
+ background: hsl(var(--primary));
502
+ color: hsl(var(--primary-foreground));
503
+ border: none;
504
+ border-radius: 6px;
505
+ font-size: 13px;
506
+ font-weight: 500;
507
+ cursor: pointer;
508
+ transition: all 0.3s ease;
509
+ }
510
+
511
+ .action-btn--success {
512
+ background: #27ca40;
513
+ }
514
+
515
+ .action-btn--featured {
516
+ background: hsl(var(--primary));
517
+ }
518
+
519
+ /* Split view */
520
+ .main-split {
521
+ display: flex;
522
+ flex: 1;
523
+ }
524
+
525
+ .editor-panel {
526
+ flex: 1;
527
+ padding: 20px;
528
+ border-right: 1px solid hsl(var(--border));
529
+ }
530
+
531
+ .editor-section {
532
+ margin-bottom: 20px;
533
+ }
534
+
535
+ .editor-label {
536
+ display: block;
537
+ font-size: 12px;
538
+ font-weight: 500;
539
+ color: hsl(var(--muted-foreground));
540
+ margin-bottom: 6px;
541
+ }
542
+
543
+ .editor-input {
544
+ background: hsl(var(--muted));
545
+ border: 1px solid hsl(var(--border));
546
+ border-radius: 6px;
547
+ padding: 10px 12px;
548
+ font-size: 14px;
549
+ color: hsl(var(--foreground));
550
+ display: flex;
551
+ align-items: center;
552
+ }
553
+
554
+ .input-text {
555
+ flex: 1;
556
+ overflow: hidden;
557
+ text-overflow: ellipsis;
558
+ white-space: nowrap;
559
+ }
560
+
561
+ .input-cursor {
562
+ width: 2px;
563
+ height: 18px;
564
+ background: #6c4cff;
565
+ animation: blink 1s infinite;
566
+ margin-left: 2px;
567
+ }
568
+
569
+ @keyframes blink {
570
+ 0%,
571
+ 50% {
572
+ opacity: 1;
573
+ }
574
+ 51%,
575
+ 100% {
576
+ opacity: 0;
577
+ }
578
+ }
579
+
580
+ .editor-select {
581
+ background: hsl(var(--muted));
582
+ border: 1px solid hsl(var(--border));
583
+ border-radius: 6px;
584
+ padding: 10px 12px;
585
+ font-size: 14px;
586
+ color: hsl(var(--foreground));
587
+ display: flex;
588
+ justify-content: space-between;
589
+ align-items: center;
590
+ }
591
+
592
+ .select-arrow {
593
+ font-size: 10px;
594
+ color: hsl(var(--muted-foreground));
595
+ }
596
+
597
+ .editor-textarea {
598
+ background: hsl(var(--muted));
599
+ border: 1px solid hsl(var(--border));
600
+ border-radius: 6px;
601
+ padding: 10px 12px;
602
+ font-size: 14px;
603
+ color: hsl(var(--foreground));
604
+ min-height: 80px;
605
+ }
606
+
607
+ .textarea-text {
608
+ transition: all 0.5s ease;
609
+ }
610
+
611
+ .textarea-text--complete {
612
+ color: hsl(var(--foreground));
613
+ }
614
+
615
+ /* Preview panel */
616
+ .preview-panel {
617
+ width: 320px;
618
+ padding: 20px;
619
+ background: hsl(var(--muted) / 0.5);
620
+ }
621
+
622
+ .preview-header {
623
+ display: flex;
624
+ justify-content: space-between;
625
+ align-items: center;
626
+ margin-bottom: 16px;
627
+ }
628
+
629
+ .preview-label {
630
+ font-size: 12px;
631
+ font-weight: 500;
632
+ color: hsl(var(--muted-foreground));
633
+ }
634
+
635
+ .preview-url {
636
+ font-size: 11px;
637
+ color: hsl(var(--muted-foreground));
638
+ font-family: monospace;
639
+ }
640
+
641
+ .preview-card {
642
+ background: hsl(var(--card));
643
+ border: 1px solid hsl(var(--border));
644
+ border-radius: 10px;
645
+ overflow: hidden;
646
+ position: relative;
647
+ transition: all 0.3s ease;
648
+ }
649
+
650
+ .preview-badge {
651
+ position: absolute;
652
+ top: 10px;
653
+ right: 10px;
654
+ background: hsl(var(--primary));
655
+ color: white;
656
+ font-size: 11px;
657
+ padding: 4px 8px;
658
+ border-radius: 4px;
659
+ font-weight: 500;
660
+ animation: badge-pop 0.3s ease;
661
+ }
662
+
663
+ @keyframes badge-pop {
664
+ from {
665
+ transform: scale(0);
666
+ opacity: 0;
667
+ }
668
+ to {
669
+ transform: scale(1);
670
+ opacity: 1;
671
+ }
672
+ }
673
+
674
+ .preview-image {
675
+ height: 120px;
676
+ background: linear-gradient(135deg, hsl(var(--muted)) 0%, hsl(var(--accent)) 100%);
677
+ }
678
+
679
+ .preview-image-placeholder {
680
+ width: 100%;
681
+ height: 100%;
682
+ display: flex;
683
+ align-items: center;
684
+ justify-content: center;
685
+ font-size: 40px;
686
+ }
687
+
688
+ .preview-content {
689
+ padding: 16px;
690
+ }
691
+
692
+ .preview-category-tag {
693
+ display: inline-block;
694
+ font-size: 11px;
695
+ color: hsl(var(--primary));
696
+ font-weight: 500;
697
+ margin-bottom: 8px;
698
+ }
699
+
700
+ .preview-title {
701
+ font-size: 16px;
702
+ font-weight: 600;
703
+ margin: 0 0 8px;
704
+ color: hsl(var(--foreground));
705
+ }
706
+
707
+ .preview-description {
708
+ font-size: 13px;
709
+ color: hsl(var(--muted-foreground));
710
+ line-height: 1.5;
711
+ margin: 0 0 12px;
712
+ }
713
+
714
+ .preview-meta {
715
+ display: flex;
716
+ gap: 8px;
717
+ font-size: 12px;
718
+ }
719
+
720
+ .meta-rating {
721
+ color: #ffc24a;
722
+ }
723
+
724
+ .meta-reviews {
725
+ color: hsl(var(--muted-foreground));
726
+ }
727
+
728
+ /* State indicators */
729
+ .mockup-indicators {
730
+ display: flex;
731
+ justify-content: center;
732
+ gap: 24px;
733
+ padding: 16px;
734
+ border-top: 1px solid hsl(var(--border));
735
+ }
736
+
737
+ .indicator {
738
+ display: flex;
739
+ align-items: center;
740
+ gap: 8px;
741
+ background: none;
742
+ border: none;
743
+ cursor: pointer;
744
+ padding: 6px 12px;
745
+ border-radius: 20px;
746
+ transition: all 0.2s ease;
747
+ }
748
+
749
+ .indicator:hover {
750
+ background: hsl(var(--accent));
751
+ }
752
+
753
+ .indicator--active {
754
+ background: hsl(var(--primary) / 0.12);
755
+ }
756
+
757
+ .indicator-dot {
758
+ width: 8px;
759
+ height: 8px;
760
+ border-radius: 50%;
761
+ background: hsl(var(--muted-foreground));
762
+ transition: all 0.2s ease;
763
+ }
764
+
765
+ .indicator--active .indicator-dot {
766
+ background: hsl(var(--primary));
767
+ box-shadow: 0 0 0 3px hsl(var(--primary) / 0.2);
768
+ }
769
+
770
+ .indicator-label {
771
+ font-size: 12px;
772
+ color: hsl(var(--muted-foreground));
773
+ }
774
+
775
+ .indicator--active .indicator-label {
776
+ color: hsl(var(--foreground));
777
+ font-weight: 500;
778
+ }
779
+
780
+ /* ========================================
781
+ LOGO BANNER STYLES
782
+ ======================================== */
783
+
784
+ .logo-scroll-container {
785
+ overflow: hidden;
786
+ mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
787
+ }
788
+
789
+ .logo-scroll-track {
790
+ display: flex;
791
+ animation: logo-scroll 30s linear infinite;
792
+ }
793
+
794
+ .logo-scroll-track:hover {
795
+ animation-play-state: paused;
796
+ }
797
+
798
+ @keyframes logo-scroll {
799
+ 0% {
800
+ transform: translateX(0);
801
+ }
802
+ 100% {
803
+ transform: translateX(-50%);
804
+ }
805
+ }
806
+
807
+ .logo-item {
808
+ flex-shrink: 0;
809
+ min-width: 150px;
810
+ }
811
+
812
+ /* ========================================
813
+ RESPONSIVE ADJUSTMENTS
814
+ ======================================== */
815
+
816
+ @media (max-width: 768px) {
817
+ .mockup-content {
818
+ flex-direction: column;
819
+ }
820
+
821
+ .mockup-sidebar {
822
+ width: 100%;
823
+ border-right: none;
824
+ border-bottom: 1px solid hsl(var(--border));
825
+ }
826
+
827
+ .sidebar-nav {
828
+ display: flex;
829
+ overflow-x: auto;
830
+ padding: 8px;
831
+ gap: 4px;
832
+ }
833
+
834
+ .sidebar-item {
835
+ white-space: nowrap;
836
+ }
837
+
838
+ .main-split {
839
+ flex-direction: column;
840
+ }
841
+
842
+ .editor-panel {
843
+ border-right: none;
844
+ border-bottom: 1px solid hsl(var(--border));
845
+ }
846
+
847
+ .preview-panel {
848
+ width: 100%;
849
+ }
850
+
851
+ .mockup-indicators {
852
+ flex-wrap: wrap;
853
+ gap: 12px;
854
+ }
855
+
856
+ .indicator-label {
857
+ display: none;
858
+ }
859
+ }
860
+
861
+ /* ========================================
862
+ BIRD-INSPIRED BLOCK STYLES
863
+ ======================================== */
864
+
865
+ /* Industry Tabs Animation */
866
+ .industry-tab-content {
867
+ animation: tab-fade-in 0.3s ease-out;
868
+ }
869
+
870
+ @keyframes tab-fade-in {
871
+ from {
872
+ opacity: 0;
873
+ transform: translateY(10px);
874
+ }
875
+ to {
876
+ opacity: 1;
877
+ transform: translateY(0);
878
+ }
879
+ }
880
+
881
+ /* Feature Showcase Entrance Animation */
882
+ @keyframes feature-slide-in {
883
+ from {
884
+ opacity: 0;
885
+ transform: translateX(-20px);
886
+ }
887
+ to {
888
+ opacity: 1;
889
+ transform: translateX(0);
890
+ }
891
+ }
892
+
893
+ .feature-showcase-content {
894
+ animation: feature-slide-in 0.5s ease-out;
895
+ }
896
+
897
+ /* Testimonial Card Hover Effects */
898
+ .testimonial-card {
899
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
900
+ }
901
+
902
+ .testimonial-card:hover {
903
+ transform: translateY(-4px);
904
+ box-shadow: 0 20px 40px -12px rgba(0, 0, 0, 0.15);
905
+ }
906
+
907
+ /* Stat Number Animation */
908
+ @keyframes stat-count-up {
909
+ from {
910
+ opacity: 0;
911
+ transform: translateY(20px);
912
+ }
913
+ to {
914
+ opacity: 1;
915
+ transform: translateY(0);
916
+ }
917
+ }
918
+
919
+ .stat-number {
920
+ animation: stat-count-up 0.6s ease-out;
921
+ }
922
+
923
+ /* Trust Column Icon Animation */
924
+ .trust-icon {
925
+ transition: transform 0.2s ease, background-color 0.2s ease;
926
+ }
927
+
928
+ .trust-icon:hover {
929
+ transform: scale(1.1);
930
+ }
931
+
932
+ /* Final CTA Background Animation */
933
+ @keyframes subtle-float {
934
+ 0%,
935
+ 100% {
936
+ transform: translateY(0);
937
+ }
938
+ 50% {
939
+ transform: translateY(-10px);
940
+ }
941
+ }
942
+
943
+ .cta-decorative {
944
+ animation: subtle-float 6s ease-in-out infinite;
945
+ }
946
+
947
+ /* Feature Grid Card Entrance */
948
+ @keyframes card-entrance {
949
+ from {
950
+ opacity: 0;
951
+ transform: translateY(20px);
952
+ }
953
+ to {
954
+ opacity: 1;
955
+ transform: translateY(0);
956
+ }
957
+ }
958
+
959
+ .feature-card {
960
+ animation: card-entrance 0.4s ease-out;
961
+ animation-fill-mode: both;
962
+ }
963
+
964
+ .feature-card:nth-child(1) {
965
+ animation-delay: 0.1s;
966
+ }
967
+ .feature-card:nth-child(2) {
968
+ animation-delay: 0.2s;
969
+ }
970
+ .feature-card:nth-child(3) {
971
+ animation-delay: 0.3s;
972
+ }
973
+ .feature-card:nth-child(4) {
974
+ animation-delay: 0.4s;
975
+ }
976
+ .feature-card:nth-child(5) {
977
+ animation-delay: 0.5s;
978
+ }
979
+ .feature-card:nth-child(6) {
980
+ animation-delay: 0.6s;
981
+ }
982
+
983
+ /* Smooth Section Transitions */
984
+ section {
985
+ scroll-margin-top: 80px;
986
+ }
987
+
988
+ /* Button Hover Enhancement */
989
+ .cta-button {
990
+ position: relative;
991
+ overflow: hidden;
992
+ }
993
+
994
+ .cta-button::after {
995
+ content: "";
996
+ position: absolute;
997
+ inset: 0;
998
+ background: linear-gradient(rgba(255, 255, 255, 0.1), transparent);
999
+ opacity: 0;
1000
+ transition: opacity 0.3s ease;
1001
+ }
1002
+
1003
+ .cta-button:hover::after {
1004
+ opacity: 1;
1005
+ }
1006
+
1007
+ /* Responsive Image Container */
1008
+ .feature-image-container {
1009
+ position: relative;
1010
+ border-radius: 12px;
1011
+ overflow: hidden;
1012
+ box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.15);
1013
+ transition: transform 0.3s ease, box-shadow 0.3s ease;
1014
+ }
1015
+
1016
+ .feature-image-container:hover {
1017
+ transform: translateY(-4px);
1018
+ box-shadow: 0 30px 60px -15px rgba(0, 0, 0, 0.2);
1019
+ }