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.
Files changed (120) hide show
  1. package/dist/components/puck-base/article-card.js +1 -1
  2. package/dist/components/puck-base/button.d.ts +0 -1
  3. package/dist/components/puck-base/button.js +3 -3
  4. package/dist/components/puck-base/card.js +0 -1
  5. package/dist/components/puck-base/content.js +0 -1
  6. package/dist/components/puck-base/core/fields.d.ts +26 -119
  7. package/dist/components/puck-base/core/fields.js +10 -17
  8. package/dist/components/puck-base/core/icon-catalog.d.ts +14 -0
  9. package/dist/components/puck-base/core/icon-catalog.js +193 -0
  10. package/dist/components/puck-base/core/styles.d.ts +102 -33
  11. package/dist/components/puck-base/core/styles.js +45 -81
  12. package/dist/components/puck-base/core/with-editable.d.ts +4 -9
  13. package/dist/components/puck-base/core/with-editable.js +43 -62
  14. package/dist/components/puck-base/fields/action-field.d.ts +30 -0
  15. package/dist/components/puck-base/fields/action-field.js +289 -0
  16. package/dist/components/puck-base/fields/auto-field.d.ts +0 -1
  17. package/dist/components/puck-base/fields/auto-field.js +2 -90
  18. package/dist/components/puck-base/form.js +0 -1
  19. package/dist/components/puck-base/gradient-text.js +1 -1
  20. package/dist/components/puck-base/icon-picker-field.d.ts +8 -0
  21. package/dist/components/puck-base/icon-picker-field.js +153 -0
  22. package/dist/components/puck-base/index.d.ts +1 -1
  23. package/dist/components/puck-base/navigation-menu.d.ts +18 -0
  24. package/dist/components/puck-base/navigation-menu.js +202 -0
  25. package/dist/components/puck-block/banner-sections/announcement-banner-1/index.js +1 -1
  26. package/dist/components/puck-block/banner-sections/marquee-1/index.js +6 -4
  27. package/dist/components/puck-block/contact-sections/contact-us-1/index.js +18 -8
  28. package/dist/components/puck-block/contact-sections/contact-us-2/contact-us-2.js +1 -1
  29. package/dist/components/puck-block/contact-sections/contact-us-2/index.js +7 -7
  30. package/dist/components/puck-block/contact-sections/contact-us-3/index.js +2 -2
  31. package/dist/components/puck-block/cta-sections/banner-cta-1/banner-cta.d.ts +2 -1
  32. package/dist/components/puck-block/cta-sections/banner-cta-1/banner-cta.js +6 -5
  33. package/dist/components/puck-block/cta-sections/banner-cta-1/index.js +4 -4
  34. package/dist/components/puck-block/cta-sections/cta-1/index.js +9 -9
  35. package/dist/components/puck-block/cta-sections/gradient-cta-1/gradient-cta.js +34 -12
  36. package/dist/components/puck-block/cta-sections/gradient-cta-1/index.js +3 -3
  37. package/dist/components/puck-block/cta-sections/newsletter-signup-1/index.js +1 -1
  38. package/dist/components/puck-block/cta-sections/promo-section-1/index.js +5 -6
  39. package/dist/components/puck-block/cta-sections/promo-section-1/promo-section.js +2 -2
  40. package/dist/components/puck-block/faq-sections/accordion-1/accordion.js +8 -3
  41. package/dist/components/puck-block/faq-sections/accordion-1/index.js +7 -3
  42. package/dist/components/puck-block/faq-sections/faq-1/index.js +16 -4
  43. package/dist/components/puck-block/faq-sections/faq-2/index.js +11 -11
  44. package/dist/components/puck-block/feature-sections/bento-1/bento.js +16 -7
  45. package/dist/components/puck-block/feature-sections/bento-1/index.js +19 -6
  46. package/dist/components/puck-block/feature-sections/feature-cards-1/index.js +11 -12
  47. package/dist/components/puck-block/feature-sections/feature-showcase-1/index.js +10 -10
  48. package/dist/components/puck-block/feature-sections/icon-grid-1/icon-grid.js +1 -1
  49. package/dist/components/puck-block/feature-sections/icon-grid-1/index.js +13 -18
  50. package/dist/components/puck-block/feature-sections/product-features-1/index.js +18 -23
  51. package/dist/components/puck-block/footer-sections/footer-1/index.js +17 -22
  52. package/dist/components/puck-block/gallery-sections/gallery-1/index.js +12 -8
  53. package/dist/components/puck-block/gallery-sections/gallery-2/gallery-2.js +14 -6
  54. package/dist/components/puck-block/gallery-sections/gallery-2/index.js +10 -9
  55. package/dist/components/puck-block/gallery-sections/gallery-3/index.js +17 -14
  56. package/dist/components/puck-block/header-sections/header-1/header.d.ts +4 -1
  57. package/dist/components/puck-block/header-sections/header-1/header.js +26 -19
  58. package/dist/components/puck-block/header-sections/header-1/index.js +61 -50
  59. package/dist/components/puck-block/header-sections/sticky-nav-1/index.js +4 -3
  60. package/dist/components/puck-block/hero-sections/fullscreen-hero-1/fullscreen-hero.js +15 -2
  61. package/dist/components/puck-block/hero-sections/fullscreen-hero-1/index.js +4 -4
  62. package/dist/components/puck-block/hero-sections/gradient-hero-1/gradient-hero.js +2 -2
  63. package/dist/components/puck-block/hero-sections/gradient-hero-1/index.js +5 -4
  64. package/dist/components/puck-block/hero-sections/grid-hero-1/grid-hero.js +1 -1
  65. package/dist/components/puck-block/hero-sections/grid-hero-1/index.js +8 -8
  66. package/dist/components/puck-block/hero-sections/hero-1/hero.js +1 -1
  67. package/dist/components/puck-block/hero-sections/hero-1/index.js +16 -12
  68. package/dist/components/puck-block/hero-sections/image-hero-1/image-hero.d.ts +0 -1
  69. package/dist/components/puck-block/hero-sections/image-hero-1/image-hero.js +1 -1
  70. package/dist/components/puck-block/hero-sections/image-hero-1/index.js +23 -6
  71. package/dist/components/puck-block/hero-sections/split-hero-1/index.js +7 -7
  72. package/dist/components/puck-block/hero-sections/video-hero-1/index.js +5 -5
  73. package/dist/components/puck-block/hero-sections/video-hero-1/video-hero.js +1 -1
  74. package/dist/components/puck-block/location-sections/location-1/index.js +4 -7
  75. package/dist/components/puck-block/location-sections/location-1/location.d.ts +1 -0
  76. package/dist/components/puck-block/location-sections/location-1/location.js +2 -3
  77. package/dist/components/puck-block/location-sections/location-2/index.js +4 -7
  78. package/dist/components/puck-block/location-sections/location-2/location.d.ts +1 -0
  79. package/dist/components/puck-block/location-sections/location-2/location.js +2 -3
  80. package/dist/components/puck-block/location-sections/location-3/index.js +15 -14
  81. package/dist/components/puck-block/location-sections/location-3/location.d.ts +3 -0
  82. package/dist/components/puck-block/location-sections/location-3/location.js +7 -4
  83. package/dist/components/puck-block/metrics-sections/stats-1/index.js +13 -13
  84. package/dist/components/puck-block/metrics-sections/stats-2/index.js +8 -10
  85. package/dist/components/puck-block/metrics-sections/stats-2/stats-2.js +0 -1
  86. package/dist/components/puck-block/metrics-sections/stats-3/index.js +13 -15
  87. package/dist/components/puck-block/metrics-sections/stats-3/stats-3.js +14 -1
  88. package/dist/components/puck-block/pricing-sections/comparison-1/index.js +2 -2
  89. package/dist/components/puck-block/pricing-sections/pricing-1/index.js +39 -21
  90. package/dist/components/puck-block/pricing-sections/pricing-2/index.js +30 -34
  91. package/dist/components/puck-block/showcase-sections/before-after-1/index.js +12 -13
  92. package/dist/components/puck-block/showcase-sections/case-study-1/case-study.js +1 -1
  93. package/dist/components/puck-block/showcase-sections/case-study-1/index.js +8 -8
  94. package/dist/components/puck-block/showcase-sections/step-by-step-1/index.js +8 -8
  95. package/dist/components/puck-block/team-sections/team-grid-1/index.js +9 -9
  96. package/dist/components/puck-block/team-sections/team-grid-2/index.js +12 -14
  97. package/dist/components/puck-block/team-sections/team-profiles-1/index.js +11 -9
  98. package/dist/components/puck-block/testimonial-sections/customers-1/index.js +18 -7
  99. package/dist/components/puck-block/testimonial-sections/logo-marquee-1/index.js +2 -2
  100. package/dist/components/puck-block/testimonial-sections/logo-marquee-1/logo-marquee.js +1 -1
  101. package/dist/components/puck-block/testimonial-sections/logo-wall-1/index.js +7 -7
  102. package/dist/components/puck-block/testimonial-sections/review-section-1/index.js +27 -12
  103. package/dist/components/puck-block/testimonial-sections/testimonials-1/index.js +17 -7
  104. package/dist/components/puck-block/testimonial-sections/testimonials-1/testimonials.js +30 -10
  105. package/dist/components/puck-block/text-sections/articles-1/articles.js +1 -1
  106. package/dist/components/puck-block/text-sections/articles-1/index.js +12 -8
  107. package/dist/components/puck-block/text-sections/content-section-1/content-section.js +0 -1
  108. package/dist/components/puck-block/text-sections/content-section-1/index.js +6 -8
  109. package/dist/components/puck-block/text-sections/rich-text-1/index.js +1 -1
  110. package/dist/components/puck-block/text-sections/rich-text-1/rich-text.js +6 -1
  111. package/dist/components/puck-block/text-sections/tab-section-1/index.js +12 -12
  112. package/dist/components/puck-block/text-sections/tab-section-1/tab-section.js +7 -3
  113. package/dist/components/puck-block/text-sections/timeline-1/index.js +17 -7
  114. package/dist/components/puck-block/text-sections/two-column-1/index.js +10 -10
  115. package/dist/components/shadcn/navigation-menu.js +8 -33
  116. package/dist/index.js +9 -1
  117. package/dist/node_modules/.pnpm/lucide-react@0.540.0_react@19.2.4/node_modules/lucide-react/dist/esm/DynamicIcon.js +1 -3
  118. package/package.json +3 -2
  119. package/dist/components/puck-base/action-field.d.ts +0 -8
  120. 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 "../../../shadcn/navigation-menu.js";
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("bg-background text-foreground sticky top-0 left-0 z-40 w-full"),
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, _b;
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
- url: item.url,
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
- ((_a = item.cta) == null ? void 0 : _a.url) ? /* @__PURE__ */ jsx(
73
- CompoundButton,
74
- {
75
- label: item.cta.label,
76
- url: item.cta.url,
77
- action: item.cta.action,
78
- variant: item.cta.variant,
79
- size: item.cta.size,
80
- icon: item.cta.icon,
81
- className: "mt-10"
82
- }
83
- ) : null
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: (_b = item.items) == null ? void 0 : _b.map((subItem, index2) => /* @__PURE__ */ jsxs(
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
- url: item.url,
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: "Home",
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: "Product",
21
- description: "Managing a small business today is already tough.",
20
+ label: "Features",
21
+ description: "Everything you need to build, deploy, and scale.",
22
22
  cta: {
23
- label: "Book a call today",
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: "Reports",
32
- url: "/reports"
31
+ label: "Continuous Deployment",
32
+ url: "/features/deployment"
33
33
  },
34
34
  {
35
- label: "Statistics",
36
- url: "/statistics"
35
+ label: "Edge Functions",
36
+ url: "/features/edge"
37
37
  },
38
38
  {
39
- label: "Dashboards",
40
- url: "/dashboards"
39
+ label: "Analytics",
40
+ url: "/features/analytics"
41
41
  },
42
42
  {
43
- label: "Recordings",
44
- url: "/recordings"
43
+ label: "Monitoring",
44
+ url: "/features/monitoring"
45
45
  }
46
46
  ]
47
47
  },
48
48
  {
49
- label: "Company",
50
- description: "Managing a small business today is already tough.",
49
+ label: "Pricing",
50
+ url: "/pricing",
51
+ description: "",
52
+ items: [],
51
53
  cta: {
52
- label: "Book a call today",
53
- url: "#",
54
+ label: "",
55
+ url: "",
54
56
  size: "default",
55
57
  variant: "default",
56
58
  icon: "none"
57
- },
58
- items: [
59
- {
60
- label: "About us",
61
- url: "/about"
62
- },
63
- {
64
- label: "Fundraising",
65
- url: "/fundraising"
66
- },
67
- {
68
- label: "Investors",
69
- url: "/investors"
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: "Book a demo",
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: "false"
93
+ isHiddenOnMobile: "true"
94
94
  },
95
95
  {
96
- label: "Get started",
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: "true"
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: "Book a call today",
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: "TWBlocks",
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: "Brand",
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: "About", url: "#about" },
21
- { label: "Contact", url: "#contact" }
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 = (styles == null ? void 0 : styles.sectionStyle) ?? "dark";
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(CompoundButton, { ...btn }, i)) })
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: "Your bold headline here.",
31
- description: "A compelling description that supports your headline and encourages visitors to take action.",
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 Started",
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: (styles == null ? void 0 : styles.sectionStyle) ?? "dark",
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
- url: btn.url,
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: "Build something amazing",
22
- description: "The next-generation platform for teams who want to ship faster, together.",
23
- badge: { label: "Try it", url: "", variant: "default" },
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: "Get Started Free", icon: "move-right", variant: "default" }
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
  })
@@ -73,7 +73,7 @@ const GridHero = ({
73
73
  CompoundButton,
74
74
  {
75
75
  label: button.label,
76
- url: button.url,
76
+ action: button.action,
77
77
  variant: button.variant,
78
78
  size: button.size,
79
79
  className: button.variant === "outline" ? "border-foreground border-2" : void 0
@@ -47,20 +47,20 @@ const conf = {
47
47
  })
48
48
  },
49
49
  defaultProps: {
50
- heading: "Scale without lock-in. Build without limits.",
51
- description: "An AI-ready, open-source ecommerce platform that gives teams full control.",
52
- badge: { label: "ANNOUNCEMENT", url: "", variant: "default" },
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: "Learn More", variant: "outline" }
55
+ { label: "Read Docs", variant: "outline" }
56
56
  ],
57
57
  leftSidebar: [
58
- { label: "API Calls Hourly", value: "553,447" },
59
- { label: "24h peak", value: "1,114,099" }
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: "22.6k", url: "#" },
63
- { label: "Docs", url: "#" }
62
+ { label: "Open Source", value: "18.2k", url: "#" },
63
+ { label: "Documentation", url: "#" }
64
64
  ],
65
65
  styles: createStylesDefaults({ showGridLines: true })
66
66
  },
@@ -127,7 +127,7 @@ const HeroContent = ({
127
127
  CompoundButton,
128
128
  {
129
129
  label: button.label,
130
- url: button.url,
130
+ action: button.action,
131
131
  variant: button.variant,
132
132
  size: button.size,
133
133
  icon: button.icon
@@ -1,4 +1,4 @@
1
- import { image1x1Placeholder, image9x16Placeholder, images, buttons, badge } from "../../../puck-base/core/fields.js";
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: "Heading",
48
- description: "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: "Badge",
51
+ label: "Now in Beta",
52
52
  url: "",
53
53
  variant: "secondary"
54
54
  },
55
55
  buttons: [
56
56
  {
57
- label: "Secondary CTA",
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: [image1x1Placeholder, image9x16Placeholder, image1x1Placeholder],
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";
@@ -74,7 +74,7 @@ const ImageHero = ({
74
74
  CompoundButton,
75
75
  {
76
76
  label: button.label,
77
- url: button.url,
77
+ action: button.action,
78
78
  variant: button.variant,
79
79
  size: button.size,
80
80
  icon: button.icon
@@ -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
- import { heroStylesDefaults, heroStylesField } from "../../../puck-base/core/styles.js";
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: heroStylesField
37
+ styles: imageHeroStylesField
19
38
  },
20
39
  defaultProps: {
21
- heading: "Your Story Starts Here",
22
- description: "Create something extraordinary with our platform. Built for dreamers, makers, and innovators.",
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 { image16x9Placeholder, images, contentFields } from "../../../puck-base/core/fields.js";
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: "Launch your next big idea",
20
- description: "A complete platform to build, ship, and scale your product. From idea to launch in record time.",
21
- badge: { label: "New release", url: "", variant: "secondary" },
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: "Start building", icon: "move-right", variant: "default" },
24
- { label: "See demo", icon: "play", variant: "outline" }
23
+ { label: "Get Started Free", icon: "move-right", variant: "default" },
24
+ { label: "See How It Works", icon: "play", variant: "outline" }
25
25
  ],
26
- images: [image16x9Placeholder],
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 { image16x9Placeholder, image, contentFields } from "../../../puck-base/core/fields.js";
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 it in action",
17
- description: "Watch how our platform helps teams build faster.",
18
- buttons: [{ label: "Try it free", icon: "move-right", variant: "default" }],
19
- posterImage: image16x9Placeholder,
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: (styles == null ? void 0 : styles.sectionStyle) ?? "dark",
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(