kofi-stack-template-generator 2.1.52 → 2.1.53

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 (30) hide show
  1. package/.turbo/turbo-build.log +6 -6
  2. package/dist/index.js +1560 -0
  3. package/package.json +2 -2
  4. package/src/generator.ts +9 -0
  5. package/src/templates.generated.ts +27 -2
  6. package/templates/marketing/astro/astro.config.ts.hbs +12 -0
  7. package/templates/marketing/astro/package.json.hbs +31 -0
  8. package/templates/marketing/astro/postcss.config.mjs.hbs +5 -0
  9. package/templates/marketing/astro/public/favicon.svg +4 -0
  10. package/templates/marketing/astro/public/media/hero-bg.png +1 -0
  11. package/templates/marketing/astro/src/components/Footer.astro +167 -0
  12. package/templates/marketing/astro/src/components/Header.astro +378 -0
  13. package/templates/marketing/astro/src/components/Logo.astro +30 -0
  14. package/templates/marketing/astro/src/components/ThemeSelector.astro +64 -0
  15. package/templates/marketing/astro/src/components/blocks/BentoFeatures.astro +209 -0
  16. package/templates/marketing/astro/src/components/blocks/FeatureShowcase.astro +102 -0
  17. package/templates/marketing/astro/src/components/blocks/FinalCTA.astro +82 -0
  18. package/templates/marketing/astro/src/components/blocks/IndustryTabs.astro +177 -0
  19. package/templates/marketing/astro/src/components/blocks/LogoBanner.astro +95 -0
  20. package/templates/marketing/astro/src/components/blocks/PricingTable.astro +176 -0
  21. package/templates/marketing/astro/src/components/blocks/ProofBanner.astro +56 -0
  22. package/templates/marketing/astro/src/components/blocks/TestimonialsGrid.astro +106 -0
  23. package/templates/marketing/astro/src/components/blocks/TrustColumns.astro +88 -0
  24. package/templates/marketing/astro/src/components/heros/AnimatedMockup.astro +711 -0
  25. package/templates/marketing/astro/src/components/heros/ProductShowcaseHero.astro +111 -0
  26. package/templates/marketing/astro/src/layouts/Layout.astro +37 -0
  27. package/templates/marketing/astro/src/lib/utils.ts +6 -0
  28. package/templates/marketing/astro/src/pages/index.astro +163 -0
  29. package/templates/marketing/astro/src/styles/globals.css.hbs +353 -0
  30. package/templates/marketing/astro/tsconfig.json.hbs +11 -0
@@ -0,0 +1,106 @@
1
+ ---
2
+ interface Testimonial {
3
+ stat: string
4
+ statLabel: string
5
+ quote: string
6
+ author: string
7
+ company: string
8
+ }
9
+
10
+ interface Props {
11
+ heading?: string
12
+ subheading?: string
13
+ testimonials?: Testimonial[]
14
+ }
15
+
16
+ const defaultTestimonials: Testimonial[] = [
17
+ {
18
+ stat: "94%",
19
+ statLabel: "Faster onboarding",
20
+ quote: "We got our entire team onboarded in under a day. The intuitive interface and powerful integrations saved us weeks of setup time.",
21
+ author: "Sarah Chen",
22
+ company: "TechFlow Inc",
23
+ },
24
+ {
25
+ stat: "3x",
26
+ statLabel: "Productivity",
27
+ quote: "Our team is shipping features faster than ever. The automation tools eliminated hours of manual work every week.",
28
+ author: "Marcus Rivera",
29
+ company: "Beacon Digital",
30
+ },
31
+ {
32
+ stat: "40%",
33
+ statLabel: "Cost reduction",
34
+ quote: "We consolidated five different tools into SaaSify. The ROI was immediate and our team loves having everything in one place.",
35
+ author: "David Kim",
36
+ company: "Cascade Systems",
37
+ },
38
+ ]
39
+
40
+ const {
41
+ heading = "Loved by teams at companies of all sizes",
42
+ subheading = "See how leading teams use SaaSify to drive growth and productivity.",
43
+ testimonials = defaultTestimonials,
44
+ } = Astro.props
45
+
46
+ const displayTestimonials = testimonials.length > 0 ? testimonials : defaultTestimonials
47
+ ---
48
+
49
+ <section class="py-16 md:py-24">
50
+ <div class="container mx-auto px-4">
51
+ <!-- Header -->
52
+ {(heading || subheading) && (
53
+ <div class="text-center mb-12 md:mb-16 max-w-3xl mx-auto">
54
+ {heading && (
55
+ <h2 class="text-3xl md:text-4xl lg:text-5xl font-bold tracking-tight mb-4">
56
+ {heading}
57
+ </h2>
58
+ )}
59
+ {subheading && (
60
+ <p class="text-lg md:text-xl text-muted-foreground">
61
+ {subheading}
62
+ </p>
63
+ )}
64
+ </div>
65
+ )}
66
+
67
+ <!-- Testimonials Grid -->
68
+ <div class="grid md:grid-cols-3 gap-6 lg:gap-8">
69
+ {displayTestimonials.map((testimonial) => (
70
+ <div class="relative bg-card border border-border rounded-2xl p-6 md:p-8">
71
+ <!-- Stat -->
72
+ <div class="mb-6">
73
+ <div class="text-4xl md:text-5xl font-bold text-primary mb-1">
74
+ {testimonial.stat}
75
+ </div>
76
+ <p class="text-sm font-medium text-muted-foreground">
77
+ {testimonial.statLabel}
78
+ </p>
79
+ </div>
80
+
81
+ <!-- Quote -->
82
+ <blockquote class="text-foreground mb-6">
83
+ "{testimonial.quote}"
84
+ </blockquote>
85
+
86
+ <!-- Author -->
87
+ <div class="flex items-center gap-3">
88
+ <div class="w-10 h-10 rounded-full bg-muted flex items-center justify-center">
89
+ <span class="text-sm font-medium">
90
+ {testimonial.author.split(" ").map((n) => n[0]).join("")}
91
+ </span>
92
+ </div>
93
+ <div>
94
+ <p class="text-sm font-medium text-foreground">
95
+ {testimonial.author}
96
+ </p>
97
+ <p class="text-sm text-muted-foreground">
98
+ {testimonial.company}
99
+ </p>
100
+ </div>
101
+ </div>
102
+ </div>
103
+ ))}
104
+ </div>
105
+ </div>
106
+ </section>
@@ -0,0 +1,88 @@
1
+ ---
2
+ import { Zap, Plug, Database, Cloud, Shield, Lock, Award, Globe } from "lucide-astro"
3
+
4
+ interface TrustItem {
5
+ icon: string
6
+ text: string
7
+ }
8
+
9
+ interface TrustColumn {
10
+ label: string
11
+ heading: string
12
+ description: string
13
+ items: TrustItem[]
14
+ }
15
+
16
+ interface Props {
17
+ columns?: TrustColumn[]
18
+ }
19
+
20
+ const defaultColumns: TrustColumn[] = [
21
+ {
22
+ label: "Integrations",
23
+ heading: "Connect anywhere",
24
+ description: "Plug in and get started immediately with pre-built connectors for every major platform.",
25
+ items: [
26
+ { icon: "zap", text: "Go live in minutes" },
27
+ { icon: "plug", text: "Pre-built connectors" },
28
+ { icon: "database", text: "Complete data sync" },
29
+ { icon: "cloud", text: "Cloud-native infrastructure" },
30
+ ],
31
+ },
32
+ {
33
+ label: "Security & Compliance",
34
+ heading: "Enterprise-level security",
35
+ description: "Keep your data safe with encryption, granular access control, and compliance-ready infrastructure.",
36
+ items: [
37
+ { icon: "shield", text: "SOC 2 Type II certified" },
38
+ { icon: "lock", text: "End-to-end encryption" },
39
+ { icon: "award", text: "Complete audit trails" },
40
+ { icon: "globe", text: "GDPR compliant" },
41
+ ],
42
+ },
43
+ ]
44
+
45
+ const { columns = defaultColumns } = Astro.props
46
+
47
+ const displayColumns = columns.length > 0 ? columns : defaultColumns
48
+ ---
49
+
50
+ <section class="py-16 md:py-24">
51
+ <div class="container mx-auto px-4">
52
+ <div class="grid md:grid-cols-2 gap-12 lg:gap-16">
53
+ {displayColumns.map((column) => (
54
+ <div>
55
+ <span class="inline-block text-sm font-medium text-primary mb-4">
56
+ {column.label}
57
+ </span>
58
+ <h2 class="text-2xl md:text-3xl font-bold tracking-tight mb-4">
59
+ {column.heading}
60
+ </h2>
61
+ <p class="text-muted-foreground mb-8">
62
+ {column.description}
63
+ </p>
64
+
65
+ <ul class="space-y-4">
66
+ {column.items.map((item) => (
67
+ <li class="flex items-center gap-3">
68
+ <div class="flex h-8 w-8 shrink-0 items-center justify-center rounded-lg bg-primary/10">
69
+ {item.icon === "zap" && <Zap class="h-4 w-4 text-primary" />}
70
+ {item.icon === "plug" && <Plug class="h-4 w-4 text-primary" />}
71
+ {item.icon === "database" && <Database class="h-4 w-4 text-primary" />}
72
+ {item.icon === "cloud" && <Cloud class="h-4 w-4 text-primary" />}
73
+ {item.icon === "shield" && <Shield class="h-4 w-4 text-primary" />}
74
+ {item.icon === "lock" && <Lock class="h-4 w-4 text-primary" />}
75
+ {item.icon === "award" && <Award class="h-4 w-4 text-primary" />}
76
+ {item.icon === "globe" && <Globe class="h-4 w-4 text-primary" />}
77
+ </div>
78
+ <span class="text-sm font-medium">
79
+ {item.text}
80
+ </span>
81
+ </li>
82
+ ))}
83
+ </ul>
84
+ </div>
85
+ ))}
86
+ </div>
87
+ </div>
88
+ </section>