dune-react 0.0.11 → 0.0.12
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.
- package/dist/components/puck-base/core/fields.d.ts +25 -96
- package/dist/components/puck-base/core/fields.js +4 -10
- package/dist/components/puck-base/core/icon-catalog.d.ts +14 -0
- package/dist/components/puck-base/core/icon-catalog.js +193 -0
- package/dist/components/puck-base/fields/action-field.d.ts +23 -1
- package/dist/components/puck-base/fields/action-field.js +174 -130
- package/dist/components/puck-base/gradient-text.js +1 -1
- package/dist/components/puck-base/icon-picker-field.d.ts +8 -0
- package/dist/components/puck-base/icon-picker-field.js +153 -0
- package/dist/components/puck-base/index.d.ts +1 -1
- package/dist/components/puck-block/banner-sections/announcement-banner-1/index.js +1 -1
- package/dist/components/puck-block/banner-sections/marquee-1/index.js +6 -4
- package/dist/components/puck-block/contact-sections/contact-us-1/index.js +18 -8
- package/dist/components/puck-block/contact-sections/contact-us-2/contact-us-2.js +1 -1
- package/dist/components/puck-block/contact-sections/contact-us-2/index.js +7 -7
- package/dist/components/puck-block/contact-sections/contact-us-3/index.js +2 -2
- package/dist/components/puck-block/cta-sections/banner-cta-1/index.js +4 -4
- package/dist/components/puck-block/cta-sections/cta-1/index.js +9 -9
- package/dist/components/puck-block/cta-sections/gradient-cta-1/index.js +3 -3
- package/dist/components/puck-block/cta-sections/newsletter-signup-1/index.js +1 -1
- package/dist/components/puck-block/cta-sections/promo-section-1/index.js +5 -5
- package/dist/components/puck-block/faq-sections/accordion-1/index.js +7 -3
- package/dist/components/puck-block/faq-sections/faq-1/index.js +16 -4
- package/dist/components/puck-block/faq-sections/faq-2/index.js +11 -11
- package/dist/components/puck-block/feature-sections/bento-1/bento.js +16 -7
- package/dist/components/puck-block/feature-sections/bento-1/index.js +19 -6
- package/dist/components/puck-block/feature-sections/feature-cards-1/index.js +11 -10
- package/dist/components/puck-block/feature-sections/feature-showcase-1/index.js +10 -10
- package/dist/components/puck-block/feature-sections/icon-grid-1/index.js +13 -18
- package/dist/components/puck-block/feature-sections/product-features-1/index.js +18 -23
- package/dist/components/puck-block/footer-sections/footer-1/index.js +17 -22
- package/dist/components/puck-block/gallery-sections/gallery-1/index.js +12 -8
- package/dist/components/puck-block/gallery-sections/gallery-2/index.js +10 -9
- package/dist/components/puck-block/gallery-sections/gallery-3/index.js +17 -14
- package/dist/components/puck-block/header-sections/header-1/index.js +56 -40
- package/dist/components/puck-block/header-sections/sticky-nav-1/index.js +4 -3
- package/dist/components/puck-block/hero-sections/fullscreen-hero-1/index.js +4 -3
- package/dist/components/puck-block/hero-sections/gradient-hero-1/index.js +4 -4
- package/dist/components/puck-block/hero-sections/grid-hero-1/index.js +8 -8
- package/dist/components/puck-block/hero-sections/hero-1/index.js +16 -12
- package/dist/components/puck-block/hero-sections/image-hero-1/index.js +2 -2
- package/dist/components/puck-block/hero-sections/split-hero-1/index.js +7 -7
- package/dist/components/puck-block/hero-sections/video-hero-1/index.js +5 -5
- package/dist/components/puck-block/location-sections/location-1/index.js +4 -4
- package/dist/components/puck-block/location-sections/location-1/location.js +1 -1
- package/dist/components/puck-block/location-sections/location-2/index.js +4 -4
- package/dist/components/puck-block/location-sections/location-2/location.js +1 -1
- package/dist/components/puck-block/location-sections/location-3/index.js +15 -14
- package/dist/components/puck-block/location-sections/location-3/location.d.ts +1 -0
- package/dist/components/puck-block/location-sections/location-3/location.js +2 -2
- package/dist/components/puck-block/metrics-sections/stats-1/index.js +13 -13
- package/dist/components/puck-block/metrics-sections/stats-2/index.js +8 -8
- package/dist/components/puck-block/metrics-sections/stats-3/index.js +13 -13
- package/dist/components/puck-block/pricing-sections/comparison-1/index.js +2 -2
- package/dist/components/puck-block/pricing-sections/pricing-1/index.js +39 -19
- package/dist/components/puck-block/pricing-sections/pricing-2/index.js +30 -30
- package/dist/components/puck-block/showcase-sections/before-after-1/index.js +12 -12
- package/dist/components/puck-block/showcase-sections/case-study-1/index.js +7 -7
- package/dist/components/puck-block/showcase-sections/step-by-step-1/index.js +8 -8
- package/dist/components/puck-block/team-sections/team-grid-1/index.js +9 -9
- package/dist/components/puck-block/team-sections/team-grid-2/index.js +12 -12
- package/dist/components/puck-block/team-sections/team-profiles-1/index.js +11 -9
- package/dist/components/puck-block/testimonial-sections/customers-1/index.js +18 -7
- package/dist/components/puck-block/testimonial-sections/logo-marquee-1/index.js +1 -1
- package/dist/components/puck-block/testimonial-sections/logo-wall-1/index.js +7 -7
- package/dist/components/puck-block/testimonial-sections/review-section-1/index.js +27 -12
- package/dist/components/puck-block/testimonial-sections/testimonials-1/index.js +17 -7
- package/dist/components/puck-block/text-sections/articles-1/index.js +11 -6
- package/dist/components/puck-block/text-sections/content-section-1/index.js +6 -6
- package/dist/components/puck-block/text-sections/rich-text-1/index.js +1 -1
- package/dist/components/puck-block/text-sections/rich-text-1/rich-text.js +6 -1
- package/dist/components/puck-block/text-sections/tab-section-1/index.js +12 -12
- package/dist/components/puck-block/text-sections/timeline-1/index.js +17 -7
- package/dist/components/puck-block/text-sections/two-column-1/index.js +10 -10
- package/dist/index.js +9 -1
- package/dist/node_modules/.pnpm/lucide-react@0.540.0_react@19.2.4/node_modules/lucide-react/dist/esm/DynamicIcon.js +1 -3
- package/package.json +2 -1
|
@@ -39,22 +39,22 @@ const conf = {
|
|
|
39
39
|
},
|
|
40
40
|
defaultProps: {
|
|
41
41
|
eyebrow: "Why choose us",
|
|
42
|
-
heading: "
|
|
43
|
-
description: "See
|
|
42
|
+
heading: "Before & After",
|
|
43
|
+
description: "See the difference our platform makes for development teams.",
|
|
44
44
|
layout: "side-by-side",
|
|
45
|
-
beforeLabel: "Without
|
|
45
|
+
beforeLabel: "Without our platform",
|
|
46
46
|
beforeItems: [
|
|
47
|
-
{ text: "
|
|
48
|
-
{ text: "
|
|
49
|
-
{ text: "
|
|
50
|
-
{ text: "Scaling requires
|
|
47
|
+
{ text: "Deployments take hours and break frequently" },
|
|
48
|
+
{ text: "Manual infrastructure management and config drift" },
|
|
49
|
+
{ text: "No visibility into build failures or performance" },
|
|
50
|
+
{ text: "Scaling requires re-architecting from scratch" }
|
|
51
51
|
],
|
|
52
|
-
afterLabel: "With
|
|
52
|
+
afterLabel: "With our platform",
|
|
53
53
|
afterItems: [
|
|
54
|
-
{ text: "
|
|
55
|
-
{ text: "
|
|
56
|
-
{ text: "
|
|
57
|
-
{ text: "
|
|
54
|
+
{ text: "One-click deploys that finish in seconds" },
|
|
55
|
+
{ text: "Infrastructure as code with automatic drift detection" },
|
|
56
|
+
{ text: "Real-time logs, metrics, and error tracking built in" },
|
|
57
|
+
{ text: "Auto-scaling that handles traffic spikes seamlessly" }
|
|
58
58
|
],
|
|
59
59
|
button: {
|
|
60
60
|
label: "Get started free",
|
|
@@ -18,15 +18,15 @@ const conf = {
|
|
|
18
18
|
styles: createStylesField()
|
|
19
19
|
},
|
|
20
20
|
defaultProps: {
|
|
21
|
-
heading: "How Acme
|
|
22
|
-
description: "
|
|
21
|
+
heading: "How Acme reduced deploy time by 80%",
|
|
22
|
+
description: "Learn how a fast-growing startup transformed their development workflow.",
|
|
23
23
|
stats: [
|
|
24
|
-
{ value: "
|
|
25
|
-
{ value: "
|
|
26
|
-
{ value: "
|
|
24
|
+
{ value: "80%", label: "Faster Deploys" },
|
|
25
|
+
{ value: "3x", label: "Developer Productivity" },
|
|
26
|
+
{ value: "99.9%", label: "Uptime" }
|
|
27
27
|
],
|
|
28
|
-
quote: "
|
|
29
|
-
author: "
|
|
28
|
+
quote: "We went from weekly releases to deploying multiple times a day. It completely changed how we ship software.",
|
|
29
|
+
author: "Sarah Chen, CTO at Acme",
|
|
30
30
|
styles: createStylesDefaults({ sectionStyle: "muted" })
|
|
31
31
|
},
|
|
32
32
|
render: CaseStudy
|
|
@@ -31,24 +31,24 @@ const conf = {
|
|
|
31
31
|
styles: createStylesField()
|
|
32
32
|
},
|
|
33
33
|
defaultProps: {
|
|
34
|
-
heading: "
|
|
35
|
-
description: "
|
|
34
|
+
heading: "Get started in 3 easy steps",
|
|
35
|
+
description: "Go from zero to production in minutes.",
|
|
36
36
|
layout: "horizontal",
|
|
37
37
|
steps: [
|
|
38
38
|
{
|
|
39
39
|
stepNumber: "1",
|
|
40
|
-
title: "
|
|
41
|
-
description: "
|
|
40
|
+
title: "Create your account",
|
|
41
|
+
description: "Sign up in seconds — no credit card required."
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
stepNumber: "2",
|
|
45
|
-
title: "Connect your
|
|
46
|
-
description: "
|
|
45
|
+
title: "Connect your project",
|
|
46
|
+
description: "Import from GitHub, GitLab, or start from a template."
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
stepNumber: "3",
|
|
50
|
-
title: "
|
|
51
|
-
description: "
|
|
50
|
+
title: "Deploy to production",
|
|
51
|
+
description: "Push your code and go live with one click."
|
|
52
52
|
}
|
|
53
53
|
],
|
|
54
54
|
styles: createStylesDefaults()
|
|
@@ -5,10 +5,10 @@ const defaultMember = {
|
|
|
5
5
|
name: "Jane Smith",
|
|
6
6
|
role: "CEO & Co-founder",
|
|
7
7
|
image: {
|
|
8
|
-
src: "https://
|
|
9
|
-
alt: "
|
|
8
|
+
src: "https://images.pexels.com/photos/11156392/pexels-photo-11156392.jpeg?auto=compress&cs=tinysrgb&w=600&h=600&fit=crop",
|
|
9
|
+
alt: "Professional team member headshot"
|
|
10
10
|
},
|
|
11
|
-
bio: "
|
|
11
|
+
bio: "Passionate about building products that make a real difference."
|
|
12
12
|
};
|
|
13
13
|
const conf = {
|
|
14
14
|
fields: {
|
|
@@ -46,15 +46,15 @@ const conf = {
|
|
|
46
46
|
styles: createStylesField()
|
|
47
47
|
},
|
|
48
48
|
defaultProps: {
|
|
49
|
-
heading: "Meet
|
|
50
|
-
description: "
|
|
49
|
+
heading: "Meet the team behind the product",
|
|
50
|
+
description: "A small, focused team building tools for modern developers.",
|
|
51
51
|
columns: 3,
|
|
52
52
|
layout: "card",
|
|
53
53
|
members: [
|
|
54
|
-
{ ...defaultMember, name: "
|
|
55
|
-
{ ...defaultMember, name: "
|
|
56
|
-
{ ...defaultMember, name: "Sarah
|
|
57
|
-
{ ...defaultMember, name: "
|
|
54
|
+
{ ...defaultMember, name: "Emily Chen", role: "CEO & Co-founder", image: { src: "https://images.pexels.com/photos/11156392/pexels-photo-11156392.jpeg?auto=compress&cs=tinysrgb&w=600&h=600&fit=crop", alt: "Emily Chen" } },
|
|
55
|
+
{ ...defaultMember, name: "Marcus Johnson", role: "CTO", image: { src: "https://images.pexels.com/photos/6942776/pexels-photo-6942776.jpeg?auto=compress&cs=tinysrgb&w=600&h=600&fit=crop", alt: "Marcus Johnson" } },
|
|
56
|
+
{ ...defaultMember, name: "Sarah Kim", role: "Head of Design", image: { src: "https://images.pexels.com/photos/14587417/pexels-photo-14587417.jpeg?auto=compress&cs=tinysrgb&w=600&h=600&fit=crop", alt: "Sarah Kim" } },
|
|
57
|
+
{ ...defaultMember, name: "David Park", role: "Lead Engineer", image: { src: "https://images.pexels.com/photos/749091/pexels-photo-749091.jpeg?auto=compress&cs=tinysrgb&w=600&h=600&fit=crop", alt: "David Park" } }
|
|
58
58
|
],
|
|
59
59
|
styles: createStylesDefaults()
|
|
60
60
|
},
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { image, buttons } from "../../../puck-base/core/fields.js";
|
|
2
2
|
import { TeamGrid2 } from "./team-grid-2.js";
|
|
3
3
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
4
4
|
const defaultMember = {
|
|
5
5
|
name: "Jane Smith",
|
|
6
|
-
role: "
|
|
7
|
-
image:
|
|
8
|
-
description: "
|
|
6
|
+
role: "VP of Engineering",
|
|
7
|
+
image: { src: "https://images.pexels.com/photos/26150470/pexels-photo-26150470.jpeg?auto=compress&cs=tinysrgb&w=600&h=600&fit=crop", alt: "Team member" },
|
|
8
|
+
description: "Focused on building intuitive tools that help teams ship faster and more confidently."
|
|
9
9
|
};
|
|
10
10
|
const conf = {
|
|
11
11
|
fields: {
|
|
@@ -27,18 +27,18 @@ const conf = {
|
|
|
27
27
|
styles: createStylesField()
|
|
28
28
|
},
|
|
29
29
|
defaultProps: {
|
|
30
|
-
heading: "
|
|
31
|
-
description: "We're
|
|
30
|
+
heading: "The people\nbehind the platform",
|
|
31
|
+
description: "We're a distributed team of builders, designers, and problem-solvers passionate about developer experience.",
|
|
32
32
|
buttons: [
|
|
33
33
|
{
|
|
34
|
-
label: "
|
|
34
|
+
label: "Join Our Team",
|
|
35
35
|
action: { type: "external", pageUrl: "", externalUrl: "#", openInNewTab: "false", email: "", subject: "", phone: "", sectionId: "", downloadUrl: "" },
|
|
36
36
|
variant: "default",
|
|
37
37
|
size: "default",
|
|
38
38
|
icon: "none"
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
|
-
label: "
|
|
41
|
+
label: "Learn More",
|
|
42
42
|
action: { type: "external", pageUrl: "", externalUrl: "#", openInNewTab: "false", email: "", subject: "", phone: "", sectionId: "", downloadUrl: "" },
|
|
43
43
|
variant: "secondary",
|
|
44
44
|
size: "default",
|
|
@@ -46,10 +46,10 @@ const conf = {
|
|
|
46
46
|
}
|
|
47
47
|
],
|
|
48
48
|
members: [
|
|
49
|
-
{ ...defaultMember, name: "
|
|
50
|
-
{ ...defaultMember, name: "
|
|
51
|
-
{ ...defaultMember, name: "Sarah
|
|
52
|
-
{ ...defaultMember, name: "
|
|
49
|
+
{ ...defaultMember, name: "Emily Chen", role: "CEO & Co-founder", image: { src: "https://images.pexels.com/photos/26150470/pexels-photo-26150470.jpeg?auto=compress&cs=tinysrgb&w=600&h=600&fit=crop", alt: "Emily Chen" } },
|
|
50
|
+
{ ...defaultMember, name: "Marcus Johnson", role: "CTO", image: { src: "https://images.pexels.com/photos/28442318/pexels-photo-28442318.jpeg?auto=compress&cs=tinysrgb&w=600&h=600&fit=crop", alt: "Marcus Johnson" } },
|
|
51
|
+
{ ...defaultMember, name: "Sarah Kim", role: "Head of Design", image: { src: "https://images.pexels.com/photos/3613388/pexels-photo-3613388.jpeg?auto=compress&cs=tinysrgb&w=600&h=600&fit=crop", alt: "Sarah Kim" } },
|
|
52
|
+
{ ...defaultMember, name: "David Park", role: "Lead Engineer", image: { src: "https://images.pexels.com/photos/25651531/pexels-photo-25651531.jpeg?auto=compress&cs=tinysrgb&w=600&h=600&fit=crop", alt: "David Park" } }
|
|
53
53
|
],
|
|
54
54
|
styles: createStylesDefaults()
|
|
55
55
|
},
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { image } from "../../../puck-base/core/fields.js";
|
|
2
2
|
import { TeamProfiles } from "./team-profiles.js";
|
|
3
3
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
4
4
|
const defaultMember = {
|
|
5
5
|
name: "Jane Smith",
|
|
6
6
|
role: "CEO & Co-founder",
|
|
7
|
-
image:
|
|
8
|
-
description: "
|
|
7
|
+
image: { src: "https://images.pexels.com/photos/7640741/pexels-photo-7640741.jpeg?auto=compress&cs=tinysrgb&w=600&h=600&fit=crop", alt: "Team member" },
|
|
8
|
+
description: "Building the future of developer tooling with a focus on simplicity and performance.",
|
|
9
9
|
instagramUrl: "",
|
|
10
10
|
linkedinUrl: ""
|
|
11
11
|
};
|
|
@@ -30,18 +30,20 @@ const conf = {
|
|
|
30
30
|
styles: createStylesField()
|
|
31
31
|
},
|
|
32
32
|
defaultProps: {
|
|
33
|
-
heading: "
|
|
34
|
-
description: "
|
|
33
|
+
heading: "Our\nLeadership Team",
|
|
34
|
+
description: "Experienced leaders driving innovation and growth.",
|
|
35
35
|
members: [
|
|
36
36
|
{
|
|
37
37
|
...defaultMember,
|
|
38
|
-
name: "
|
|
39
|
-
role: "
|
|
38
|
+
name: "Emily Chen",
|
|
39
|
+
role: "CEO & Co-founder",
|
|
40
|
+
image: { src: "https://images.pexels.com/photos/7640741/pexels-photo-7640741.jpeg?auto=compress&cs=tinysrgb&w=600&h=600&fit=crop", alt: "Emily Chen" }
|
|
40
41
|
},
|
|
41
42
|
{
|
|
42
43
|
...defaultMember,
|
|
43
|
-
name: "
|
|
44
|
-
role: "
|
|
44
|
+
name: "Marcus Johnson",
|
|
45
|
+
role: "CTO",
|
|
46
|
+
image: { src: "https://images.pexels.com/photos/26150470/pexels-photo-26150470.jpeg?auto=compress&cs=tinysrgb&w=600&h=600&fit=crop", alt: "Marcus Johnson" }
|
|
45
47
|
}
|
|
46
48
|
],
|
|
47
49
|
styles: createStylesDefaults()
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { image, heading, getPlaceholderImageUrl } from "../../../puck-base/core/fields.js";
|
|
2
2
|
import { Customers } from "./customers.js";
|
|
3
3
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
4
4
|
const customersStylesField = createStylesField({
|
|
@@ -24,18 +24,29 @@ const conf = {
|
|
|
24
24
|
},
|
|
25
25
|
defaultItemProps: {
|
|
26
26
|
name: "Customer",
|
|
27
|
-
image:
|
|
27
|
+
image: { src: getPlaceholderImageUrl("200x200", "Customer"), alt: "Customer" }
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
styles: customersStylesField
|
|
31
31
|
},
|
|
32
32
|
defaultProps: {
|
|
33
|
-
heading: "Trusted by
|
|
34
|
-
items:
|
|
35
|
-
|
|
33
|
+
heading: "Trusted by innovative companies worldwide",
|
|
34
|
+
items: [
|
|
35
|
+
"Acme",
|
|
36
|
+
"TechCorp",
|
|
37
|
+
"DataFlow",
|
|
38
|
+
"CloudNet",
|
|
39
|
+
"NexusAI",
|
|
40
|
+
"Veritas",
|
|
41
|
+
"Quantum",
|
|
42
|
+
"Synapse",
|
|
43
|
+
"Axiom",
|
|
44
|
+
"Helios"
|
|
45
|
+
].map((name) => ({
|
|
46
|
+
name,
|
|
36
47
|
image: {
|
|
37
|
-
src: getPlaceholderImageUrl("
|
|
38
|
-
alt:
|
|
48
|
+
src: getPlaceholderImageUrl("200x200", name),
|
|
49
|
+
alt: name
|
|
39
50
|
}
|
|
40
51
|
})),
|
|
41
52
|
styles: createStylesDefaults({ layout: "section" })
|
|
@@ -33,14 +33,14 @@ const conf = {
|
|
|
33
33
|
styles: logoWallStylesField
|
|
34
34
|
},
|
|
35
35
|
defaultProps: {
|
|
36
|
-
heading: "
|
|
37
|
-
description: "We partner with industry-leading platforms and
|
|
36
|
+
heading: "Used by 10,000+ companies",
|
|
37
|
+
description: "We partner with industry-leading platforms and technology providers to deliver the best experience.",
|
|
38
38
|
logos: [
|
|
39
|
-
logoPlaceholder("
|
|
40
|
-
logoPlaceholder("
|
|
41
|
-
logoPlaceholder("
|
|
42
|
-
logoPlaceholder("
|
|
43
|
-
logoPlaceholder("
|
|
39
|
+
logoPlaceholder("Acme"),
|
|
40
|
+
logoPlaceholder("TechCorp"),
|
|
41
|
+
logoPlaceholder("DataFlow"),
|
|
42
|
+
logoPlaceholder("CloudNet"),
|
|
43
|
+
logoPlaceholder("NexusAI")
|
|
44
44
|
],
|
|
45
45
|
styles: createStylesDefaults({ columns: 5 })
|
|
46
46
|
},
|
|
@@ -3,13 +3,13 @@ import { ReviewSection } from "./review-section.js";
|
|
|
3
3
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
4
4
|
const defaultReview = {
|
|
5
5
|
author: "Alex Johnson",
|
|
6
|
-
role: "
|
|
6
|
+
role: "Engineering Manager",
|
|
7
7
|
avatar: {
|
|
8
|
-
src: "https://
|
|
9
|
-
alt: "
|
|
8
|
+
src: "https://images.pexels.com/photos/1239291/pexels-photo-1239291.jpeg?auto=compress&cs=tinysrgb&w=150&h=150&fit=crop",
|
|
9
|
+
alt: "Professional headshot"
|
|
10
10
|
},
|
|
11
11
|
rating: 5,
|
|
12
|
-
content: "
|
|
12
|
+
content: "Incredible tool that transformed our development workflow.",
|
|
13
13
|
date: "2 days ago"
|
|
14
14
|
};
|
|
15
15
|
const reviewStylesField = createStylesField({
|
|
@@ -42,25 +42,40 @@ const conf = {
|
|
|
42
42
|
styles: reviewStylesField
|
|
43
43
|
},
|
|
44
44
|
defaultProps: {
|
|
45
|
-
heading: "What
|
|
45
|
+
heading: "What our customers say",
|
|
46
46
|
items: [
|
|
47
47
|
{
|
|
48
48
|
...defaultReview,
|
|
49
|
-
author: "Alex
|
|
49
|
+
author: "Alex Rivera",
|
|
50
|
+
role: "Engineering Lead",
|
|
51
|
+
avatar: {
|
|
52
|
+
src: "https://images.pexels.com/photos/2379004/pexels-photo-2379004.jpeg?auto=compress&cs=tinysrgb&w=150&h=150&fit=crop",
|
|
53
|
+
alt: "Alex Rivera"
|
|
54
|
+
},
|
|
50
55
|
rating: 5,
|
|
51
|
-
content: "
|
|
56
|
+
content: "Incredible tool. Deployment time went from hours to minutes."
|
|
52
57
|
},
|
|
53
58
|
{
|
|
54
59
|
...defaultReview,
|
|
55
|
-
author: "
|
|
56
|
-
|
|
57
|
-
|
|
60
|
+
author: "Priya Sharma",
|
|
61
|
+
role: "Product Manager",
|
|
62
|
+
avatar: {
|
|
63
|
+
src: "https://images.pexels.com/photos/614810/pexels-photo-614810.jpeg?auto=compress&cs=tinysrgb&w=150&h=150&fit=crop",
|
|
64
|
+
alt: "Priya Sharma"
|
|
65
|
+
},
|
|
66
|
+
rating: 5,
|
|
67
|
+
content: "Finally a platform that developers and PMs both love. Clean UI, powerful features."
|
|
58
68
|
},
|
|
59
69
|
{
|
|
60
70
|
...defaultReview,
|
|
61
|
-
author: "
|
|
71
|
+
author: "James Wilson",
|
|
72
|
+
role: "Startup Founder",
|
|
73
|
+
avatar: {
|
|
74
|
+
src: "https://images.pexels.com/photos/2182970/pexels-photo-2182970.jpeg?auto=compress&cs=tinysrgb&w=150&h=150&fit=crop",
|
|
75
|
+
alt: "James Wilson"
|
|
76
|
+
},
|
|
62
77
|
rating: 5,
|
|
63
|
-
content: "
|
|
78
|
+
content: "Replaced three tools with this one. Worth every penny."
|
|
64
79
|
}
|
|
65
80
|
],
|
|
66
81
|
styles: createStylesDefaults({ layout: "grid" })
|
|
@@ -7,8 +7,8 @@ const defaultTestimonial = {
|
|
|
7
7
|
author: {
|
|
8
8
|
name: `Jane Janson`,
|
|
9
9
|
image: {
|
|
10
|
-
src: "https://
|
|
11
|
-
alt: ""
|
|
10
|
+
src: "https://images.pexels.com/photos/1239291/pexels-photo-1239291.jpeg?auto=compress&cs=tinysrgb&w=150&h=150&fit=crop",
|
|
11
|
+
alt: "Professional headshot"
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
};
|
|
@@ -48,11 +48,21 @@ const conf = {
|
|
|
48
48
|
styles: testimonialStylesField
|
|
49
49
|
},
|
|
50
50
|
defaultProps: {
|
|
51
|
-
heading: "
|
|
52
|
-
items:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
51
|
+
heading: "Loved by teams everywhere",
|
|
52
|
+
items: [
|
|
53
|
+
{
|
|
54
|
+
...defaultTestimonial,
|
|
55
|
+
title: "Game changer",
|
|
56
|
+
quote: "This platform completely transformed how we ship products. We went from monthly releases to daily deploys.",
|
|
57
|
+
author: { name: "Alex Rivera, Engineering Lead at Acme", image: { src: "https://images.pexels.com/photos/2379004/pexels-photo-2379004.jpeg?auto=compress&cs=tinysrgb&w=150&h=150&fit=crop", alt: "Alex Rivera" } }
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
...defaultTestimonial,
|
|
61
|
+
title: "Best tool we've adopted",
|
|
62
|
+
quote: "The best developer tool we've adopted in years. Our team productivity doubled within a month.",
|
|
63
|
+
author: { name: "Sarah Chen, CTO at Bloom", image: { src: "https://images.pexels.com/photos/614810/pexels-photo-614810.jpeg?auto=compress&cs=tinysrgb&w=150&h=150&fit=crop", alt: "Sarah Chen" } }
|
|
64
|
+
}
|
|
65
|
+
],
|
|
56
66
|
styles: createStylesDefaults({ layout: "cards" })
|
|
57
67
|
},
|
|
58
68
|
render: Testimonials
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { buttons, heading,
|
|
1
|
+
import { buttons, heading, cards } from "../../../puck-base/core/fields.js";
|
|
2
2
|
import { Articles } from "./articles.js";
|
|
3
3
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
4
4
|
const { icon: defaultIcon, ...defaultCardProps } = cards.defaultItemProps;
|
|
5
5
|
const defaultCard = {
|
|
6
6
|
...defaultCardProps,
|
|
7
|
-
image:
|
|
7
|
+
image: { src: "https://images.pexels.com/photos/546819/pexels-photo-546819.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Code displayed on laptop screen" }
|
|
8
8
|
};
|
|
9
9
|
const conf = {
|
|
10
10
|
fields: {
|
|
@@ -27,8 +27,8 @@ const conf = {
|
|
|
27
27
|
})
|
|
28
28
|
},
|
|
29
29
|
defaultProps: {
|
|
30
|
-
eyebrow: "
|
|
31
|
-
heading: "
|
|
30
|
+
eyebrow: "From Our Blog",
|
|
31
|
+
heading: "Insights for modern teams",
|
|
32
32
|
buttons: [
|
|
33
33
|
{
|
|
34
34
|
label: "",
|
|
@@ -41,8 +41,13 @@ const conf = {
|
|
|
41
41
|
type: "ArticleCard",
|
|
42
42
|
props: {
|
|
43
43
|
...defaultCard,
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
image: [
|
|
45
|
+
{ src: "https://images.pexels.com/photos/3861969/pexels-photo-3861969.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Developer working at desk with multiple monitors" },
|
|
46
|
+
{ src: "https://images.pexels.com/photos/574071/pexels-photo-574071.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Colorful code on computer monitor in dark setting" },
|
|
47
|
+
{ src: "https://images.pexels.com/photos/1181677/pexels-photo-1181677.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Developers collaborating on code together" }
|
|
48
|
+
][index],
|
|
49
|
+
heading: ["How to Ship 10x Faster Without Burning Out", "The Future of Developer Tooling in 2026", "Building a Culture of Continuous Deployment"][index],
|
|
50
|
+
description: ["Practical strategies for high-velocity teams that prioritize sustainability.", "An in-depth look at the trends shaping how developers build and deploy software.", "How top engineering orgs embed CI/CD into their team culture."][index],
|
|
46
51
|
button: { label: "", variant: "link", size: "default", icon: "move-right" }
|
|
47
52
|
}
|
|
48
53
|
})),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { buttons, image } from "../../../puck-base/core/fields.js";
|
|
2
2
|
import { ContentSection } from "./content-section.js";
|
|
3
3
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
4
4
|
const conf = {
|
|
@@ -39,11 +39,11 @@ const conf = {
|
|
|
39
39
|
})
|
|
40
40
|
},
|
|
41
41
|
defaultProps: {
|
|
42
|
-
eyebrow: "
|
|
43
|
-
heading: "
|
|
44
|
-
description: "
|
|
45
|
-
content: "We believe
|
|
46
|
-
image:
|
|
42
|
+
eyebrow: "Our Story",
|
|
43
|
+
heading: "We're building the tools we always wished existed",
|
|
44
|
+
description: "Founded by engineers who were tired of stitching together dozens of tools, we set out to create one platform that does it all.",
|
|
45
|
+
content: "We believe great software starts with a great developer experience. Every feature is designed around the workflows you already know — so you can focus on building products your customers love.",
|
|
46
|
+
image: { src: "https://images.pexels.com/photos/3153207/pexels-photo-3153207.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "A diverse group of young professionals collaborating enthusiastically in a bright, modern workspace." },
|
|
47
47
|
imagePosition: "right",
|
|
48
48
|
layout: "split",
|
|
49
49
|
buttons: [
|
|
@@ -22,7 +22,7 @@ const conf = {
|
|
|
22
22
|
})
|
|
23
23
|
},
|
|
24
24
|
defaultProps: {
|
|
25
|
-
content: "<h2>About
|
|
25
|
+
content: "<h2>About Our Mission</h2><p>We started with a simple belief: developers deserve better tools. Our platform is built by engineers, for engineers — eliminating the grunt work so you can focus on what you do best.</p><p>Every feature we ship is guided by one question: does this make our users faster? If it doesn't, it doesn't ship.</p>",
|
|
26
26
|
styles: createStylesDefaults({ maxWidth: "md" })
|
|
27
27
|
},
|
|
28
28
|
render: RichText
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo } from "react";
|
|
2
3
|
import { CompoundContainer } from "../../../puck-base/container.js";
|
|
3
4
|
const MAX_WIDTH_MAP = {
|
|
4
5
|
sm: "max-w-xl",
|
|
@@ -6,16 +7,20 @@ const MAX_WIDTH_MAP = {
|
|
|
6
7
|
lg: "max-w-4xl",
|
|
7
8
|
full: "max-w-none"
|
|
8
9
|
};
|
|
10
|
+
function sanitizeHtml(html) {
|
|
11
|
+
return html.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, "").replace(/<iframe\b[^>]*>/gi, "").replace(/\bon\w+\s*=/gi, "data-removed=");
|
|
12
|
+
}
|
|
9
13
|
const RichText = ({
|
|
10
14
|
content = "",
|
|
11
15
|
styles
|
|
12
16
|
}) => {
|
|
13
17
|
const maxWidth = (styles == null ? void 0 : styles.maxWidth) ?? "md";
|
|
18
|
+
const safeContent = useMemo(() => sanitizeHtml(content), [content]);
|
|
14
19
|
return /* @__PURE__ */ jsx(CompoundContainer, { padding: styles == null ? void 0 : styles.padding, sectionStyle: styles == null ? void 0 : styles.sectionStyle, backgroundColor: styles == null ? void 0 : styles.backgroundColor, children: /* @__PURE__ */ jsx(
|
|
15
20
|
"div",
|
|
16
21
|
{
|
|
17
22
|
className: `${MAX_WIDTH_MAP[maxWidth]} prose prose-neutral dark:prose-invert mx-auto`,
|
|
18
|
-
dangerouslySetInnerHTML: { __html:
|
|
23
|
+
dangerouslySetInnerHTML: { __html: safeContent }
|
|
19
24
|
}
|
|
20
25
|
) });
|
|
21
26
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { image } from "../../../puck-base/core/fields.js";
|
|
2
2
|
import { TabSection } from "./tab-section.js";
|
|
3
3
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
4
4
|
const conf = {
|
|
@@ -17,29 +17,29 @@ const conf = {
|
|
|
17
17
|
defaultItemProps: {
|
|
18
18
|
label: "Tab",
|
|
19
19
|
content: "Content for this tab.",
|
|
20
|
-
image:
|
|
20
|
+
image: { src: "https://images.pexels.com/photos/3888151/pexels-photo-3888151.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Developer workspace with laptop showing code" }
|
|
21
21
|
}
|
|
22
22
|
},
|
|
23
23
|
styles: createStylesField()
|
|
24
24
|
},
|
|
25
25
|
defaultProps: {
|
|
26
26
|
heading: "How it works",
|
|
27
|
-
description: "
|
|
27
|
+
description: "Get up and running in three simple steps.",
|
|
28
28
|
tabs: [
|
|
29
29
|
{
|
|
30
|
-
label: "
|
|
31
|
-
content: "
|
|
32
|
-
image:
|
|
30
|
+
label: "Connect",
|
|
31
|
+
content: "Link your repository and configure your project in under a minute.",
|
|
32
|
+
image: { src: "https://images.pexels.com/photos/4218883/pexels-photo-4218883.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Computer displaying code editor with project repository connected" }
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
label: "
|
|
36
|
-
content: "
|
|
37
|
-
image:
|
|
35
|
+
label: "Build",
|
|
36
|
+
content: "Push your code and let our platform handle testing, building, and optimization.",
|
|
37
|
+
image: { src: "https://images.pexels.com/photos/574071/pexels-photo-574071.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Monitor showing colorful code during build process" }
|
|
38
38
|
},
|
|
39
39
|
{
|
|
40
|
-
label: "
|
|
41
|
-
content: "
|
|
42
|
-
image:
|
|
40
|
+
label: "Deploy",
|
|
41
|
+
content: "Go live instantly with automatic SSL, CDN, and monitoring.",
|
|
42
|
+
image: { src: "https://images.pexels.com/photos/270404/pexels-photo-270404.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Source code and deployment terminal on computer screen" }
|
|
43
43
|
}
|
|
44
44
|
],
|
|
45
45
|
styles: createStylesDefaults()
|
|
@@ -27,18 +27,28 @@ const conf = {
|
|
|
27
27
|
items: [
|
|
28
28
|
{
|
|
29
29
|
title: "Founded",
|
|
30
|
-
description: "Started with a
|
|
31
|
-
date: "
|
|
30
|
+
description: "Started with a vision to simplify developer workflows.",
|
|
31
|
+
date: "2021"
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
|
-
title: "
|
|
35
|
-
description: "
|
|
36
|
-
date: "
|
|
34
|
+
title: "Public Beta",
|
|
35
|
+
description: "Opened the platform to early adopters and gathered feedback.",
|
|
36
|
+
date: "2022"
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
|
-
title: "
|
|
40
|
-
description: "
|
|
39
|
+
title: "10,000 Teams",
|
|
40
|
+
description: "Crossed 10,000 teams building on the platform.",
|
|
41
41
|
date: "2023"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
title: "Series A",
|
|
45
|
+
description: "Raised funding to accelerate product development.",
|
|
46
|
+
date: "2024"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
title: "Enterprise Launch",
|
|
50
|
+
description: "Launched enterprise tier with SSO, audit logs, and dedicated support.",
|
|
51
|
+
date: "2025"
|
|
42
52
|
}
|
|
43
53
|
],
|
|
44
54
|
styles: createStylesDefaults()
|