dune-react 0.0.10 → 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/article-card.js +1 -1
- package/dist/components/puck-base/button.d.ts +0 -1
- package/dist/components/puck-base/button.js +3 -3
- package/dist/components/puck-base/card.js +0 -1
- package/dist/components/puck-base/content.js +0 -1
- package/dist/components/puck-base/core/fields.d.ts +26 -119
- package/dist/components/puck-base/core/fields.js +10 -17
- 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/core/styles.d.ts +102 -33
- package/dist/components/puck-base/core/styles.js +45 -81
- package/dist/components/puck-base/core/with-editable.d.ts +4 -9
- package/dist/components/puck-base/core/with-editable.js +43 -62
- package/dist/components/puck-base/fields/action-field.d.ts +30 -0
- package/dist/components/puck-base/fields/action-field.js +289 -0
- package/dist/components/puck-base/fields/auto-field.d.ts +0 -1
- package/dist/components/puck-base/fields/auto-field.js +2 -90
- package/dist/components/puck-base/form.js +0 -1
- 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-base/navigation-menu.d.ts +18 -0
- package/dist/components/puck-base/navigation-menu.js +202 -0
- 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/banner-cta.d.ts +2 -1
- package/dist/components/puck-block/cta-sections/banner-cta-1/banner-cta.js +6 -5
- 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/gradient-cta.js +34 -12
- 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 -6
- package/dist/components/puck-block/cta-sections/promo-section-1/promo-section.js +2 -2
- package/dist/components/puck-block/faq-sections/accordion-1/accordion.js +8 -3
- 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 -12
- package/dist/components/puck-block/feature-sections/feature-showcase-1/index.js +10 -10
- package/dist/components/puck-block/feature-sections/icon-grid-1/icon-grid.js +1 -1
- 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/gallery-2.js +14 -6
- 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/header.d.ts +4 -1
- package/dist/components/puck-block/header-sections/header-1/header.js +26 -19
- package/dist/components/puck-block/header-sections/header-1/index.js +61 -50
- package/dist/components/puck-block/header-sections/sticky-nav-1/index.js +4 -3
- package/dist/components/puck-block/hero-sections/fullscreen-hero-1/fullscreen-hero.js +15 -2
- package/dist/components/puck-block/hero-sections/fullscreen-hero-1/index.js +4 -4
- package/dist/components/puck-block/hero-sections/gradient-hero-1/gradient-hero.js +2 -2
- package/dist/components/puck-block/hero-sections/gradient-hero-1/index.js +5 -4
- package/dist/components/puck-block/hero-sections/grid-hero-1/grid-hero.js +1 -1
- package/dist/components/puck-block/hero-sections/grid-hero-1/index.js +8 -8
- package/dist/components/puck-block/hero-sections/hero-1/hero.js +1 -1
- package/dist/components/puck-block/hero-sections/hero-1/index.js +16 -12
- package/dist/components/puck-block/hero-sections/image-hero-1/image-hero.d.ts +0 -1
- package/dist/components/puck-block/hero-sections/image-hero-1/image-hero.js +1 -1
- package/dist/components/puck-block/hero-sections/image-hero-1/index.js +23 -6
- 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/hero-sections/video-hero-1/video-hero.js +1 -1
- package/dist/components/puck-block/location-sections/location-1/index.js +4 -7
- package/dist/components/puck-block/location-sections/location-1/location.d.ts +1 -0
- package/dist/components/puck-block/location-sections/location-1/location.js +2 -3
- package/dist/components/puck-block/location-sections/location-2/index.js +4 -7
- package/dist/components/puck-block/location-sections/location-2/location.d.ts +1 -0
- package/dist/components/puck-block/location-sections/location-2/location.js +2 -3
- 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 +3 -0
- package/dist/components/puck-block/location-sections/location-3/location.js +7 -4
- 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 -10
- package/dist/components/puck-block/metrics-sections/stats-2/stats-2.js +0 -1
- package/dist/components/puck-block/metrics-sections/stats-3/index.js +13 -15
- package/dist/components/puck-block/metrics-sections/stats-3/stats-3.js +14 -1
- 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 -21
- package/dist/components/puck-block/pricing-sections/pricing-2/index.js +30 -34
- package/dist/components/puck-block/showcase-sections/before-after-1/index.js +12 -13
- package/dist/components/puck-block/showcase-sections/case-study-1/case-study.js +1 -1
- package/dist/components/puck-block/showcase-sections/case-study-1/index.js +8 -8
- 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 -14
- 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 +2 -2
- package/dist/components/puck-block/testimonial-sections/logo-marquee-1/logo-marquee.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/testimonial-sections/testimonials-1/testimonials.js +30 -10
- package/dist/components/puck-block/text-sections/articles-1/articles.js +1 -1
- package/dist/components/puck-block/text-sections/articles-1/index.js +12 -8
- package/dist/components/puck-block/text-sections/content-section-1/content-section.js +0 -1
- package/dist/components/puck-block/text-sections/content-section-1/index.js +6 -8
- 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/tab-section-1/tab-section.js +7 -3
- 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/components/shadcn/navigation-menu.js +8 -33
- 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 +3 -2
- package/dist/components/puck-base/action-field.d.ts +0 -8
- package/dist/components/puck-base/action-field.js +0 -170
|
@@ -3,11 +3,15 @@ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
|
3
3
|
import { useState, Fragment as Fragment$1 } from "react";
|
|
4
4
|
import { cn } from "../../../../utils/css-utils.js";
|
|
5
5
|
import { Button } from "../../../shadcn/button.js";
|
|
6
|
-
import { NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuLink, NavigationMenuTrigger, NavigationMenuContent } from "../../../
|
|
6
|
+
import { NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuLink, NavigationMenuTrigger, NavigationMenuContent } from "../../../puck-base/navigation-menu.js";
|
|
7
7
|
import { MoveRight, X, Menu } from "lucide-react";
|
|
8
8
|
import { registerOverlayPortal } from "@puckeditor/core";
|
|
9
9
|
import { CompoundButton } from "../../../puck-base/button.js";
|
|
10
10
|
import { ErrorBoundary } from "../../../puck-base/error-boundary.js";
|
|
11
|
+
import { resolveActionUrl } from "../../../puck-base/core/types.js";
|
|
12
|
+
function coerceAction(action, legacyUrl) {
|
|
13
|
+
return action ?? (legacyUrl ? /^https?:\/\//i.test(legacyUrl) ? { type: "external", externalUrl: legacyUrl } : { type: "page", pageUrl: legacyUrl } : void 0);
|
|
14
|
+
}
|
|
11
15
|
const HEADER_SECTION_VARS = {
|
|
12
16
|
dark: {
|
|
13
17
|
"--background": "oklch(0.145 0 0)",
|
|
@@ -38,7 +42,9 @@ const Header = ({
|
|
|
38
42
|
return /* @__PURE__ */ jsx(ErrorBoundary, { children: /* @__PURE__ */ jsx(
|
|
39
43
|
"header",
|
|
40
44
|
{
|
|
41
|
-
className: cn(
|
|
45
|
+
className: cn(
|
|
46
|
+
"bg-background text-foreground sticky top-0 left-0 z-40 w-full"
|
|
47
|
+
),
|
|
42
48
|
style: {
|
|
43
49
|
...(styles == null ? void 0 : styles.backgroundColor) ? { backgroundColor: styles.backgroundColor } : {},
|
|
44
50
|
...sectionVars
|
|
@@ -46,11 +52,11 @@ const Header = ({
|
|
|
46
52
|
children: /* @__PURE__ */ jsxs("div", { className: "relative container mx-auto flex min-h-20 flex-row items-center gap-4 lg:grid lg:grid-cols-[auto_1fr_auto]", children: [
|
|
47
53
|
/* @__PURE__ */ jsx("div", { className: "flex lg:justify-start", children: /* @__PURE__ */ jsx("p", { className: "font-semibold whitespace-nowrap", children: companyName }) }),
|
|
48
54
|
/* @__PURE__ */ jsx("div", { className: "hidden flex-row items-center justify-center gap-4 lg:flex", children: Array.isArray(navigation) && navigation.length > 0 ? /* @__PURE__ */ jsx(NavigationMenu, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx(NavigationMenuList, { className: "flex flex-row justify-center gap-4", children: navigation.map((item, index) => {
|
|
49
|
-
var _a
|
|
55
|
+
var _a;
|
|
50
56
|
return /* @__PURE__ */ jsx(NavigationMenuItem, { children: item.url ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
51
57
|
CompoundButton,
|
|
52
58
|
{
|
|
53
|
-
|
|
59
|
+
action: coerceAction(item.action, item.url),
|
|
54
60
|
label: item.label,
|
|
55
61
|
variant: "ghost"
|
|
56
62
|
}
|
|
@@ -69,20 +75,22 @@ const Header = ({
|
|
|
69
75
|
/* @__PURE__ */ jsx("p", { className: "text-base", children: item.label }),
|
|
70
76
|
item.description ? /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-sm", children: item.description }) : null
|
|
71
77
|
] }),
|
|
72
|
-
((
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
78
|
+
(() => {
|
|
79
|
+
const ctaAction = item.cta && coerceAction(item.cta.action, item.cta.url);
|
|
80
|
+
return ctaAction && resolveActionUrl(ctaAction) ? /* @__PURE__ */ jsx(
|
|
81
|
+
CompoundButton,
|
|
82
|
+
{
|
|
83
|
+
label: item.cta.label,
|
|
84
|
+
action: ctaAction,
|
|
85
|
+
variant: item.cta.variant,
|
|
86
|
+
size: item.cta.size,
|
|
87
|
+
icon: item.cta.icon,
|
|
88
|
+
className: "mt-10"
|
|
89
|
+
}
|
|
90
|
+
) : null;
|
|
91
|
+
})()
|
|
84
92
|
] }),
|
|
85
|
-
/* @__PURE__ */ jsx("div", { className: "flex h-full flex-col justify-end text-sm", children: (
|
|
93
|
+
/* @__PURE__ */ jsx("div", { className: "flex h-full flex-col justify-end text-sm", children: (_a = item.items) == null ? void 0 : _a.map((subItem, index2) => /* @__PURE__ */ jsxs(
|
|
86
94
|
NavigationMenuLink,
|
|
87
95
|
{
|
|
88
96
|
href: subItem.url,
|
|
@@ -105,8 +113,7 @@ const Header = ({
|
|
|
105
113
|
variant: item.variant,
|
|
106
114
|
size: item.size,
|
|
107
115
|
icon: item.icon,
|
|
108
|
-
|
|
109
|
-
action: item.action,
|
|
116
|
+
action: coerceAction(item.action, item.url),
|
|
110
117
|
className: cn({
|
|
111
118
|
"hidden md:inline": item.isHiddenOnMobile === "true"
|
|
112
119
|
})
|
|
@@ -4,8 +4,8 @@ import { actionDefaults, button, action } from "../../../puck-base/core/fields.j
|
|
|
4
4
|
import { createStylesField } from "../../../puck-base/core/styles.js";
|
|
5
5
|
const defaultNavigationItems = [
|
|
6
6
|
{
|
|
7
|
-
label: "
|
|
8
|
-
url: "/",
|
|
7
|
+
label: "Product",
|
|
8
|
+
url: "/product",
|
|
9
9
|
description: "",
|
|
10
10
|
items: [],
|
|
11
11
|
cta: {
|
|
@@ -17,10 +17,10 @@ const defaultNavigationItems = [
|
|
|
17
17
|
}
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
|
-
label: "
|
|
21
|
-
description: "
|
|
20
|
+
label: "Features",
|
|
21
|
+
description: "Everything you need to build, deploy, and scale.",
|
|
22
22
|
cta: {
|
|
23
|
-
label: "
|
|
23
|
+
label: "See all features",
|
|
24
24
|
url: "#",
|
|
25
25
|
size: "default",
|
|
26
26
|
variant: "default",
|
|
@@ -28,77 +28,88 @@ const defaultNavigationItems = [
|
|
|
28
28
|
},
|
|
29
29
|
items: [
|
|
30
30
|
{
|
|
31
|
-
label: "
|
|
32
|
-
url: "/
|
|
31
|
+
label: "Continuous Deployment",
|
|
32
|
+
url: "/features/deployment"
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
|
-
label: "
|
|
36
|
-
url: "/
|
|
35
|
+
label: "Edge Functions",
|
|
36
|
+
url: "/features/edge"
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
|
-
label: "
|
|
40
|
-
url: "/
|
|
39
|
+
label: "Analytics",
|
|
40
|
+
url: "/features/analytics"
|
|
41
41
|
},
|
|
42
42
|
{
|
|
43
|
-
label: "
|
|
44
|
-
url: "/
|
|
43
|
+
label: "Monitoring",
|
|
44
|
+
url: "/features/monitoring"
|
|
45
45
|
}
|
|
46
46
|
]
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
|
-
label: "
|
|
50
|
-
|
|
49
|
+
label: "Pricing",
|
|
50
|
+
url: "/pricing",
|
|
51
|
+
description: "",
|
|
52
|
+
items: [],
|
|
51
53
|
cta: {
|
|
52
|
-
label: "
|
|
53
|
-
url: "
|
|
54
|
+
label: "",
|
|
55
|
+
url: "",
|
|
54
56
|
size: "default",
|
|
55
57
|
variant: "default",
|
|
56
58
|
icon: "none"
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
{
|
|
72
|
-
label: "Contact us",
|
|
73
|
-
url: "/contact"
|
|
74
|
-
}
|
|
75
|
-
]
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
label: "Docs",
|
|
63
|
+
url: "/docs",
|
|
64
|
+
description: "",
|
|
65
|
+
items: [],
|
|
66
|
+
cta: {
|
|
67
|
+
label: "",
|
|
68
|
+
url: "",
|
|
69
|
+
size: "default",
|
|
70
|
+
variant: "default",
|
|
71
|
+
icon: "none"
|
|
72
|
+
}
|
|
76
73
|
}
|
|
77
74
|
];
|
|
78
75
|
const defaultActionItems = [
|
|
79
76
|
{
|
|
80
|
-
label: "
|
|
81
|
-
url: "#",
|
|
82
|
-
variant: "ghost",
|
|
83
|
-
icon: "none",
|
|
84
|
-
divider: "true",
|
|
85
|
-
isHiddenOnMobile: "true"
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
label: "Sign in",
|
|
77
|
+
label: "Sign In",
|
|
89
78
|
url: "#",
|
|
79
|
+
action: {
|
|
80
|
+
type: "external",
|
|
81
|
+
pageUrl: "",
|
|
82
|
+
externalUrl: "#",
|
|
83
|
+
openInNewTab: "false",
|
|
84
|
+
email: "",
|
|
85
|
+
subject: "",
|
|
86
|
+
phone: "",
|
|
87
|
+
sectionId: "",
|
|
88
|
+
downloadUrl: ""
|
|
89
|
+
},
|
|
90
90
|
variant: "outline",
|
|
91
91
|
icon: "none",
|
|
92
92
|
divider: "false",
|
|
93
|
-
isHiddenOnMobile: "
|
|
93
|
+
isHiddenOnMobile: "true"
|
|
94
94
|
},
|
|
95
95
|
{
|
|
96
|
-
label: "Get
|
|
96
|
+
label: "Get Started",
|
|
97
97
|
url: "#",
|
|
98
|
+
action: {
|
|
99
|
+
type: "external",
|
|
100
|
+
pageUrl: "",
|
|
101
|
+
externalUrl: "#",
|
|
102
|
+
openInNewTab: "false",
|
|
103
|
+
email: "",
|
|
104
|
+
subject: "",
|
|
105
|
+
phone: "",
|
|
106
|
+
sectionId: "",
|
|
107
|
+
downloadUrl: ""
|
|
108
|
+
},
|
|
98
109
|
variant: "default",
|
|
99
110
|
icon: "none",
|
|
100
111
|
divider: "false",
|
|
101
|
-
isHiddenOnMobile: "
|
|
112
|
+
isHiddenOnMobile: "false"
|
|
102
113
|
}
|
|
103
114
|
];
|
|
104
115
|
const conf = {
|
|
@@ -136,7 +147,7 @@ const conf = {
|
|
|
136
147
|
url: "",
|
|
137
148
|
description: "A description will appear if the link has no URL defined",
|
|
138
149
|
cta: {
|
|
139
|
-
label: "
|
|
150
|
+
label: "Learn more",
|
|
140
151
|
url: "#",
|
|
141
152
|
variant: "default",
|
|
142
153
|
icon: "none"
|
|
@@ -184,7 +195,7 @@ const conf = {
|
|
|
184
195
|
styles: createStylesField()
|
|
185
196
|
},
|
|
186
197
|
defaultProps: {
|
|
187
|
-
companyName: "
|
|
198
|
+
companyName: "Acme",
|
|
188
199
|
navigation: defaultNavigationItems,
|
|
189
200
|
actions: defaultActionItems,
|
|
190
201
|
__metadata: {
|
|
@@ -13,12 +13,13 @@ const conf = {
|
|
|
13
13
|
styles: createStylesField()
|
|
14
14
|
},
|
|
15
15
|
defaultProps: {
|
|
16
|
-
logo: "
|
|
16
|
+
logo: "Acme",
|
|
17
17
|
navigation: [
|
|
18
|
+
{ label: "Product", url: "#product" },
|
|
18
19
|
{ label: "Features", url: "#features" },
|
|
19
20
|
{ label: "Pricing", url: "#pricing" },
|
|
20
|
-
{ label: "
|
|
21
|
-
{ label: "
|
|
21
|
+
{ label: "Docs", url: "#docs" },
|
|
22
|
+
{ label: "Blog", url: "#blog" }
|
|
22
23
|
],
|
|
23
24
|
styles: createStylesDefaults()
|
|
24
25
|
},
|
|
@@ -15,7 +15,7 @@ const FullscreenHero = ({
|
|
|
15
15
|
backgroundImage,
|
|
16
16
|
styles
|
|
17
17
|
}) => {
|
|
18
|
-
const sectionStyle =
|
|
18
|
+
const sectionStyle = styles == null ? void 0 : styles.sectionStyle;
|
|
19
19
|
const overlay = (styles == null ? void 0 : styles.overlay) ?? "dark";
|
|
20
20
|
const backgroundColor = styles == null ? void 0 : styles.backgroundColor;
|
|
21
21
|
const padding = styles == null ? void 0 : styles.padding;
|
|
@@ -60,7 +60,20 @@ function Content({ badge, heading, description, buttons }) {
|
|
|
60
60
|
/* @__PURE__ */ jsx("hr", { className: "w-full my-4 border-foreground/20" }),
|
|
61
61
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col md:flex-row justify-between items-start md:items-end gap-6 mt-4", children: [
|
|
62
62
|
description && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-base leading-relaxed max-w-lg", children: description }),
|
|
63
|
-
buttons && buttons.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex gap-4", children: buttons.map((btn, i) => /* @__PURE__ */ jsx(
|
|
63
|
+
buttons && buttons.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex gap-4", children: buttons.map((btn, i) => /* @__PURE__ */ jsx(
|
|
64
|
+
CompoundButton,
|
|
65
|
+
{
|
|
66
|
+
label: btn.label,
|
|
67
|
+
action: btn.action,
|
|
68
|
+
variant: btn.variant,
|
|
69
|
+
size: btn.size,
|
|
70
|
+
icon: btn.icon,
|
|
71
|
+
type: btn.type,
|
|
72
|
+
disabled: btn.disabled,
|
|
73
|
+
className: btn.className
|
|
74
|
+
},
|
|
75
|
+
i
|
|
76
|
+
)) })
|
|
64
77
|
] })
|
|
65
78
|
] });
|
|
66
79
|
}
|
|
@@ -27,17 +27,17 @@ const conf = {
|
|
|
27
27
|
})
|
|
28
28
|
},
|
|
29
29
|
defaultProps: {
|
|
30
|
-
heading: "
|
|
31
|
-
description: "
|
|
30
|
+
heading: "The future of work starts here",
|
|
31
|
+
description: "Empower your team with tools that adapt to how you work — not the other way around.",
|
|
32
32
|
buttons: [
|
|
33
33
|
{
|
|
34
|
-
label: "Get
|
|
35
|
-
url: "#",
|
|
34
|
+
label: "Get Early Access",
|
|
36
35
|
variant: "default",
|
|
37
36
|
size: "default",
|
|
38
37
|
icon: "none"
|
|
39
38
|
}
|
|
40
39
|
],
|
|
40
|
+
backgroundImage: "https://images.pexels.com/photos/924824/pexels-photo-924824.jpeg?auto=compress&cs=tinysrgb&w=1920",
|
|
41
41
|
styles: createStylesDefaults({
|
|
42
42
|
sectionStyle: "dark",
|
|
43
43
|
overlay: "dark"
|
|
@@ -15,7 +15,7 @@ const GradientHero = ({
|
|
|
15
15
|
CompoundContainer,
|
|
16
16
|
{
|
|
17
17
|
padding: styles == null ? void 0 : styles.padding,
|
|
18
|
-
sectionStyle:
|
|
18
|
+
sectionStyle: styles == null ? void 0 : styles.sectionStyle,
|
|
19
19
|
backgroundColor: styles == null ? void 0 : styles.backgroundColor,
|
|
20
20
|
children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-4xl text-center", children: [
|
|
21
21
|
badge && /* @__PURE__ */ jsx("span", { className: "bg-primary/10 text-primary mb-6 inline-block rounded-full px-3 py-1 text-xs font-medium", children: badge.label }),
|
|
@@ -34,7 +34,7 @@ const GradientHero = ({
|
|
|
34
34
|
CompoundButton,
|
|
35
35
|
{
|
|
36
36
|
label: btn.label,
|
|
37
|
-
|
|
37
|
+
action: btn.action,
|
|
38
38
|
variant: btn.variant,
|
|
39
39
|
size: btn.size,
|
|
40
40
|
icon: btn.icon
|
|
@@ -18,13 +18,14 @@ const conf = {
|
|
|
18
18
|
})
|
|
19
19
|
},
|
|
20
20
|
defaultProps: {
|
|
21
|
-
heading: "
|
|
22
|
-
description: "The
|
|
23
|
-
badge: { label: "
|
|
21
|
+
heading: "Supercharge your workflow",
|
|
22
|
+
description: "The developer-first platform for building, testing, and deploying at scale.",
|
|
23
|
+
badge: { label: "Introducing v2.0", url: "", variant: "default" },
|
|
24
24
|
buttons: [
|
|
25
|
-
{ label: "
|
|
25
|
+
{ label: "Start Building", icon: "move-right", variant: "default" }
|
|
26
26
|
],
|
|
27
27
|
styles: createStylesDefaults({
|
|
28
|
+
sectionStyle: "dark",
|
|
28
29
|
gradientFrom: "var(--primary)",
|
|
29
30
|
gradientTo: "var(--chart-2)"
|
|
30
31
|
})
|
|
@@ -47,20 +47,20 @@ const conf = {
|
|
|
47
47
|
})
|
|
48
48
|
},
|
|
49
49
|
defaultProps: {
|
|
50
|
-
heading: "Scale without
|
|
51
|
-
description: "An
|
|
52
|
-
badge: { label: "
|
|
50
|
+
heading: "Scale without limits. Build without compromise.",
|
|
51
|
+
description: "An enterprise-ready platform that gives your team full control over every deployment.",
|
|
52
|
+
badge: { label: "TRUSTED BY 10,000+ TEAMS", url: "", variant: "default" },
|
|
53
53
|
buttons: [
|
|
54
54
|
{ label: "Get Started", variant: "default" },
|
|
55
|
-
{ label: "
|
|
55
|
+
{ label: "Read Docs", variant: "outline" }
|
|
56
56
|
],
|
|
57
57
|
leftSidebar: [
|
|
58
|
-
{ label: "API
|
|
59
|
-
{ label: "
|
|
58
|
+
{ label: "API Requests / Day", value: "2.4M" },
|
|
59
|
+
{ label: "Uptime (30d)", value: "99.99%" }
|
|
60
60
|
],
|
|
61
61
|
rightSidebar: [
|
|
62
|
-
{ label: "Open Source", value: "
|
|
63
|
-
{ label: "
|
|
62
|
+
{ label: "Open Source", value: "18.2k", url: "#" },
|
|
63
|
+
{ label: "Documentation", url: "#" }
|
|
64
64
|
],
|
|
65
65
|
styles: createStylesDefaults({ showGridLines: true })
|
|
66
66
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { images, buttons, badge } from "../../../puck-base/core/fields.js";
|
|
2
2
|
import { Hero } from "./hero.js";
|
|
3
3
|
import { getRandomAdjective } from "../../../puck-base/core/utils.js";
|
|
4
4
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
@@ -39,33 +39,37 @@ const conf = {
|
|
|
39
39
|
instructions: "Never select the 'single image 16x9' option. Always include 3 images when selecting the 'three images 1x1, 9:16, 1x1' option."
|
|
40
40
|
}
|
|
41
41
|
},
|
|
42
|
-
images: { ...images, max: 3 },
|
|
42
|
+
images: { ...images, max: 3, defaultItemProps: { src: "https://images.pexels.com/photos/3888151/pexels-photo-3888151.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Modern laptop displaying program code in a clean developer workspace" } },
|
|
43
43
|
styles: createStylesField()
|
|
44
44
|
},
|
|
45
45
|
defaultProps: {
|
|
46
46
|
displaySize: "default",
|
|
47
|
-
heading: "
|
|
48
|
-
description: "
|
|
47
|
+
heading: "Ship products your customers love",
|
|
48
|
+
description: "The all-in-one platform that helps teams design, build, and launch faster — without the chaos.",
|
|
49
49
|
adjectives: [],
|
|
50
50
|
badge: {
|
|
51
|
-
label: "
|
|
51
|
+
label: "Now in Beta",
|
|
52
52
|
url: "",
|
|
53
53
|
variant: "secondary"
|
|
54
54
|
},
|
|
55
55
|
buttons: [
|
|
56
56
|
{
|
|
57
|
-
label: "
|
|
58
|
-
icon: "ellipsis",
|
|
59
|
-
variant: "secondary"
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
label: "Primary CTA",
|
|
57
|
+
label: "Start Free Trial",
|
|
63
58
|
icon: "move-right",
|
|
64
59
|
variant: "default"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
label: "Watch Demo",
|
|
63
|
+
icon: "play",
|
|
64
|
+
variant: "secondary"
|
|
65
65
|
}
|
|
66
66
|
],
|
|
67
67
|
imageLayout: "1x1-9x16-1x1",
|
|
68
|
-
images: [
|
|
68
|
+
images: [
|
|
69
|
+
{ src: "https://images.pexels.com/photos/3888151/pexels-photo-3888151.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Modern laptop displaying program code in a clean developer workspace" },
|
|
70
|
+
{ src: "https://images.pexels.com/photos/546819/pexels-photo-546819.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "MacBook Pro showing lines of code with syntax highlighting" },
|
|
71
|
+
{ src: "https://images.pexels.com/photos/574071/pexels-photo-574071.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Computer monitor displaying colorful code in a dark environment" }
|
|
72
|
+
],
|
|
69
73
|
styles: createStylesDefaults()
|
|
70
74
|
},
|
|
71
75
|
render: Hero
|
|
@@ -14,7 +14,6 @@ export interface ImageHeroProps {
|
|
|
14
14
|
padding?: CompoundContainerProps["padding"];
|
|
15
15
|
sectionStyle?: CompoundContainerProps["sectionStyle"];
|
|
16
16
|
backgroundColor?: string;
|
|
17
|
-
backgroundImage?: string;
|
|
18
17
|
overlay?: "none" | "dark" | "gradient";
|
|
19
18
|
align?: "left" | "center";
|
|
20
19
|
minHeight?: "medium" | "large" | "full";
|
|
@@ -1,6 +1,25 @@
|
|
|
1
1
|
import { buttons, badge } from "../../../puck-base/core/fields.js";
|
|
2
|
+
import { heroStylesDefaults, createStylesField, sectionOverlay } from "../../../puck-base/core/styles.js";
|
|
2
3
|
import { ImageHero } from "./image-hero.js";
|
|
3
|
-
|
|
4
|
+
const imageHeroStylesField = createStylesField({
|
|
5
|
+
overlay: sectionOverlay,
|
|
6
|
+
align: {
|
|
7
|
+
type: "radio",
|
|
8
|
+
options: [
|
|
9
|
+
{ label: "Left", value: "left" },
|
|
10
|
+
{ label: "Center", value: "center" }
|
|
11
|
+
]
|
|
12
|
+
},
|
|
13
|
+
minHeight: {
|
|
14
|
+
type: "select",
|
|
15
|
+
label: "Min Height",
|
|
16
|
+
options: [
|
|
17
|
+
{ label: "Medium", value: "medium" },
|
|
18
|
+
{ label: "Large", value: "large" },
|
|
19
|
+
{ label: "Full", value: "full" }
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
});
|
|
4
23
|
const conf = {
|
|
5
24
|
fields: {
|
|
6
25
|
heading: { type: "text", contentEditable: true },
|
|
@@ -15,23 +34,21 @@ const conf = {
|
|
|
15
34
|
stream: false
|
|
16
35
|
}
|
|
17
36
|
},
|
|
18
|
-
styles:
|
|
37
|
+
styles: imageHeroStylesField
|
|
19
38
|
},
|
|
20
39
|
defaultProps: {
|
|
21
|
-
heading: "
|
|
22
|
-
description: "
|
|
40
|
+
heading: "Build something people want",
|
|
41
|
+
description: "A modern platform for teams who care about speed, quality, and customer experience.",
|
|
23
42
|
backgroundImage: "https://images.pexels.com/photos/3184291/pexels-photo-3184291.jpeg?auto=compress&cs=tinysrgb&w=1920",
|
|
24
43
|
buttons: [
|
|
25
44
|
{
|
|
26
45
|
label: "Get Started",
|
|
27
|
-
url: "#",
|
|
28
46
|
variant: "default",
|
|
29
47
|
size: "lg",
|
|
30
48
|
icon: "none"
|
|
31
49
|
},
|
|
32
50
|
{
|
|
33
51
|
label: "Learn More",
|
|
34
|
-
url: "#",
|
|
35
52
|
variant: "outline",
|
|
36
53
|
size: "lg",
|
|
37
54
|
icon: "none"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { images, contentFields } from "../../../puck-base/core/fields.js";
|
|
2
2
|
import { SplitHero } from "./split-hero.js";
|
|
3
3
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
4
4
|
const conf = {
|
|
@@ -16,14 +16,14 @@ const conf = {
|
|
|
16
16
|
styles: createStylesField()
|
|
17
17
|
},
|
|
18
18
|
defaultProps: {
|
|
19
|
-
heading: "
|
|
20
|
-
description: "
|
|
21
|
-
badge: { label: "New
|
|
19
|
+
heading: "From idea to launch in days, not months",
|
|
20
|
+
description: "Streamline your workflow with intelligent automation, real-time collaboration, and powerful integrations that just work.",
|
|
21
|
+
badge: { label: "New Release", url: "", variant: "secondary" },
|
|
22
22
|
buttons: [
|
|
23
|
-
{ label: "
|
|
24
|
-
{ label: "See
|
|
23
|
+
{ label: "Get Started Free", icon: "move-right", variant: "default" },
|
|
24
|
+
{ label: "See How It Works", icon: "play", variant: "outline" }
|
|
25
25
|
],
|
|
26
|
-
images: [
|
|
26
|
+
images: [{ src: "https://images.pexels.com/photos/4218883/pexels-photo-4218883.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Clean developer workspace with computer displaying code" }],
|
|
27
27
|
imagePosition: "right",
|
|
28
28
|
styles: createStylesDefaults()
|
|
29
29
|
},
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { image, contentFields } from "../../../puck-base/core/fields.js";
|
|
2
2
|
import { VideoHero } from "./video-hero.js";
|
|
3
3
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
4
4
|
const conf = {
|
|
@@ -13,10 +13,10 @@ const conf = {
|
|
|
13
13
|
styles: createStylesField()
|
|
14
14
|
},
|
|
15
15
|
defaultProps: {
|
|
16
|
-
heading: "See
|
|
17
|
-
description: "Watch how our platform
|
|
18
|
-
buttons: [{ label: "Try
|
|
19
|
-
posterImage:
|
|
16
|
+
heading: "See what's possible",
|
|
17
|
+
description: "Watch how leading teams use our platform to ship 10x faster.",
|
|
18
|
+
buttons: [{ label: "Try It Free", icon: "move-right", variant: "default" }],
|
|
19
|
+
posterImage: { src: "https://images.pexels.com/photos/6985132/pexels-photo-6985132.jpeg?auto=compress&cs=tinysrgb&w=1920", alt: "Dark gradient background for product demo preview" },
|
|
20
20
|
styles: createStylesDefaults()
|
|
21
21
|
},
|
|
22
22
|
render: VideoHero
|
|
@@ -13,7 +13,7 @@ const VideoHero = ({
|
|
|
13
13
|
CompoundContainer,
|
|
14
14
|
{
|
|
15
15
|
padding: styles == null ? void 0 : styles.padding,
|
|
16
|
-
sectionStyle:
|
|
16
|
+
sectionStyle: styles == null ? void 0 : styles.sectionStyle,
|
|
17
17
|
backgroundColor: styles == null ? void 0 : styles.backgroundColor,
|
|
18
18
|
children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 items-center gap-12 lg:grid-cols-2", children: [
|
|
19
19
|
/* @__PURE__ */ jsx(
|