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
@@ -0,0 +1,202 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { useRef, useState, useCallback } from "react";
3
+ import { NavigationMenu as NavigationMenu$1 } from "@base-ui/react/navigation-menu";
4
+ import { cva } from "class-variance-authority";
5
+ import { cn } from "../../utils/css-utils.js";
6
+ import { ChevronDownIcon } from "lucide-react";
7
+ import { useEditorContext } from "./editor-context.js";
8
+ function NavigationMenu({
9
+ align = "start",
10
+ portalContainer,
11
+ className,
12
+ children,
13
+ onValueChange,
14
+ ...props
15
+ }) {
16
+ const { isEditor } = useEditorContext();
17
+ const rootRef = useRef(null);
18
+ const [value, setValue] = useState(props.defaultValue ?? null);
19
+ const handleValueChange = useCallback(
20
+ (newValue, details) => {
21
+ if (newValue === null && details.reason === "focus-out") return;
22
+ setValue(newValue);
23
+ onValueChange == null ? void 0 : onValueChange(newValue, details);
24
+ },
25
+ [onValueChange]
26
+ );
27
+ if (!isEditor) {
28
+ return /* @__PURE__ */ jsxs(
29
+ NavigationMenu$1.Root,
30
+ {
31
+ ref: rootRef,
32
+ "data-slot": "navigation-menu",
33
+ className: cn(
34
+ "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
35
+ className
36
+ ),
37
+ onValueChange,
38
+ ...props,
39
+ children: [
40
+ children,
41
+ /* @__PURE__ */ jsx(NavigationMenuPositioner, { align, portalContainer: portalContainer ?? rootRef })
42
+ ]
43
+ }
44
+ );
45
+ }
46
+ return /* @__PURE__ */ jsxs(
47
+ NavigationMenu$1.Root,
48
+ {
49
+ ref: rootRef,
50
+ "data-slot": "navigation-menu",
51
+ className: cn(
52
+ "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
53
+ className
54
+ ),
55
+ value,
56
+ onValueChange: handleValueChange,
57
+ ...props,
58
+ children: [
59
+ children,
60
+ /* @__PURE__ */ jsx(NavigationMenuPositioner, { align, portalContainer: portalContainer ?? rootRef })
61
+ ]
62
+ }
63
+ );
64
+ }
65
+ function NavigationMenuList({
66
+ className,
67
+ ...props
68
+ }) {
69
+ return /* @__PURE__ */ jsx(
70
+ NavigationMenu$1.List,
71
+ {
72
+ "data-slot": "navigation-menu-list",
73
+ className: cn(
74
+ "group flex flex-1 list-none items-center justify-center gap-1",
75
+ className
76
+ ),
77
+ ...props
78
+ }
79
+ );
80
+ }
81
+ function NavigationMenuItem({
82
+ className,
83
+ ...props
84
+ }) {
85
+ return /* @__PURE__ */ jsx(
86
+ NavigationMenu$1.Item,
87
+ {
88
+ "data-slot": "navigation-menu-item",
89
+ className: cn("relative", className),
90
+ ...props
91
+ }
92
+ );
93
+ }
94
+ const navigationMenuTriggerStyle = cva(
95
+ "group/navigation-menu-trigger inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-1.5 text-sm font-medium transition-all outline-none hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-popup-open:bg-accent/50 data-popup-open:hover:bg-accent data-open:bg-accent/50 data-open:hover:bg-accent data-open:focus:bg-accent"
96
+ );
97
+ function NavigationMenuTrigger({
98
+ className,
99
+ children,
100
+ ...props
101
+ }) {
102
+ return /* @__PURE__ */ jsxs(
103
+ NavigationMenu$1.Trigger,
104
+ {
105
+ "data-slot": "navigation-menu-trigger",
106
+ className: cn(navigationMenuTriggerStyle(), "group", className),
107
+ ...props,
108
+ children: [
109
+ children,
110
+ " ",
111
+ /* @__PURE__ */ jsx(ChevronDownIcon, { className: "relative top-px ml-1 size-3 transition duration-300 group-data-popup-open/navigation-menu-trigger:rotate-180 group-data-open/navigation-menu-trigger:rotate-180", "aria-hidden": "true" })
112
+ ]
113
+ }
114
+ );
115
+ }
116
+ function NavigationMenuContent({
117
+ className,
118
+ ...props
119
+ }) {
120
+ return /* @__PURE__ */ jsx(
121
+ NavigationMenu$1.Content,
122
+ {
123
+ "data-slot": "navigation-menu-content",
124
+ className: cn(
125
+ "data-ending-style:data-activation-direction=left:translate-x-[50%] data-ending-style:data-activation-direction=right:translate-x-[-50%] data-starting-style:data-activation-direction=left:translate-x-[-50%] data-starting-style:data-activation-direction=right:translate-x-[50%] h-full w-auto p-2 pr-2.5 transition-[opacity,transform,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] group-data-[viewport=false]/navigation-menu:rounded-lg group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:ring-1 group-data-[viewport=false]/navigation-menu:ring-foreground/10 group-data-[viewport=false]/navigation-menu:duration-300 data-ending-style:opacity-0 data-starting-style:opacity-0 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-open:animate-in group-data-[viewport=false]/navigation-menu:data-open:fade-in-0 group-data-[viewport=false]/navigation-menu:data-open:zoom-in-95 group-data-[viewport=false]/navigation-menu:data-closed:animate-out group-data-[viewport=false]/navigation-menu:data-closed:fade-out-0 group-data-[viewport=false]/navigation-menu:data-closed:zoom-out-95",
126
+ className
127
+ ),
128
+ ...props
129
+ }
130
+ );
131
+ }
132
+ function NavigationMenuPositioner({
133
+ className,
134
+ side = "bottom",
135
+ sideOffset = 8,
136
+ align = "start",
137
+ alignOffset = 0,
138
+ portalContainer,
139
+ ...props
140
+ }) {
141
+ return /* @__PURE__ */ jsx(NavigationMenu$1.Portal, { container: portalContainer, children: /* @__PURE__ */ jsx(
142
+ NavigationMenu$1.Positioner,
143
+ {
144
+ side,
145
+ sideOffset,
146
+ align,
147
+ alignOffset,
148
+ className: cn(
149
+ "isolate z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] data-instant:transition-none data-[side=bottom]:before:top-[-10px] data-[side=bottom]:before:right-0 data-[side=bottom]:before:left-0",
150
+ className
151
+ ),
152
+ ...props,
153
+ children: /* @__PURE__ */ jsx(NavigationMenu$1.Popup, { className: "data-[ending-style]:easing-[ease] xs:w-(--popup-width) relative h-(--popup-height) w-(--popup-width) origin-(--transform-origin) rounded-lg bg-popover text-popover-foreground shadow ring-1 ring-foreground/10 transition-[opacity,transform,width,height,scale,translate] duration-[0.35s] ease-[cubic-bezier(0.22,1,0.36,1)] outline-none data-ending-style:scale-90 data-ending-style:opacity-0 data-ending-style:duration-150 data-starting-style:scale-90 data-starting-style:opacity-0", children: /* @__PURE__ */ jsx(NavigationMenu$1.Viewport, { className: "relative size-full overflow-hidden" }) })
154
+ }
155
+ ) });
156
+ }
157
+ function NavigationMenuLink({
158
+ className,
159
+ asChild,
160
+ children,
161
+ active,
162
+ ...props
163
+ }) {
164
+ if (asChild) {
165
+ return /* @__PURE__ */ jsx(
166
+ NavigationMenu$1.Link,
167
+ {
168
+ "data-slot": "navigation-menu-link",
169
+ "data-active": active || void 0,
170
+ className: cn(
171
+ "flex items-center gap-1 rounded-sm p-2 text-sm transition-all outline-none hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-md data-active:bg-accent/50 data-active:hover:bg-accent data-active:focus:bg-accent [&_svg:not([class*='size-'])]:size-4",
172
+ className
173
+ ),
174
+ render: children,
175
+ ...props
176
+ }
177
+ );
178
+ }
179
+ return /* @__PURE__ */ jsx(
180
+ NavigationMenu$1.Link,
181
+ {
182
+ "data-slot": "navigation-menu-link",
183
+ "data-active": active || void 0,
184
+ className: cn(
185
+ "flex items-center gap-1 rounded-sm p-2 text-sm transition-all outline-none hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus-visible:ring-3 focus-visible:ring-ring/50 focus-visible:outline-1 in-data-[slot=navigation-menu-content]:rounded-md data-active:bg-accent/50 data-active:hover:bg-accent data-active:focus:bg-accent [&_svg:not([class*='size-'])]:size-4",
186
+ className
187
+ ),
188
+ ...props,
189
+ children
190
+ }
191
+ );
192
+ }
193
+ export {
194
+ NavigationMenu,
195
+ NavigationMenuContent,
196
+ NavigationMenuItem,
197
+ NavigationMenuLink,
198
+ NavigationMenuList,
199
+ NavigationMenuPositioner,
200
+ NavigationMenuTrigger,
201
+ navigationMenuTriggerStyle
202
+ };
@@ -14,7 +14,7 @@ const conf = {
14
14
  styles: bannerStylesField
15
15
  },
16
16
  defaultProps: {
17
- items: [{ text: "New: Check out our latest update" }],
17
+ items: [{ text: "Introducing v2.0 Faster builds, smarter deploys, and a brand new editor." }],
18
18
  linkLabel: "Learn more",
19
19
  linkUrl: "#",
20
20
  styles: {
@@ -31,10 +31,12 @@ const conf = {
31
31
  },
32
32
  defaultProps: {
33
33
  items: [
34
- { text: "Innovation" },
35
- { text: "Design" },
36
- { text: "Performance" },
37
- { text: "Quality" }
34
+ { text: "10,000+ Teams" },
35
+ { text: "99.99% Uptime" },
36
+ { text: "50M+ Deploys" },
37
+ { text: "4.9★ Rating" },
38
+ { text: "SOC 2 Certified" },
39
+ { text: "24/7 Support" }
38
40
  ],
39
41
  styles: {
40
42
  ...createStylesDefaults(),
@@ -84,16 +84,26 @@ const conf = {
84
84
  url: "",
85
85
  variant: "default"
86
86
  },
87
- heading: "Something new",
88
- description: "Managing a small business today is already tough. Avoid further complications by ditching outdated, tedious trade methods.",
87
+ heading: "Get in Touch",
88
+ description: "Have a question or need a demo? We'd love to hear from you.",
89
89
  buttons: [],
90
- features: ["Easy to use", "Fast and reliable", "Beautiful and modern"].map(
91
- (feature) => ({
90
+ features: [
91
+ {
92
92
  icon: "check",
93
- name: feature,
94
- description: "We've made it easy to use and understand."
95
- })
96
- ),
93
+ name: "Easy to use",
94
+ description: "Intuitive interface that requires no training."
95
+ },
96
+ {
97
+ icon: "check",
98
+ name: "Fast and reliable",
99
+ description: "99.9% uptime with sub-second response times."
100
+ },
101
+ {
102
+ icon: "check",
103
+ name: "Beautiful and modern",
104
+ description: "Clean, developer-friendly design built with modern standards."
105
+ }
106
+ ],
97
107
  fields: [
98
108
  { label: "Name", name: "name", type: "text", required: true },
99
109
  { label: "Email", name: "email", type: "email", required: true },
@@ -28,7 +28,7 @@ const ContactUs2 = ({
28
28
  email: ((_b = fields.find((field) => field.name === "email")) == null ? void 0 : _b.label) ?? "Email Address",
29
29
  phone: ((_c = fields.find((field) => field.name === "phone")) == null ? void 0 : _c.label) ?? "Phone",
30
30
  company: ((_d = fields.find((field) => field.name === "company")) == null ? void 0 : _d.label) ?? "Company",
31
- message: ((_e = fields.find((field) => field.name === "message")) == null ? void 0 : _e.label) ?? "Tell us about your fitness goals"
31
+ message: ((_e = fields.find((field) => field.name === "message")) == null ? void 0 : _e.label) ?? "Tell us about your project"
32
32
  };
33
33
  const imagePosition = (styles == null ? void 0 : styles.imagePosition) ?? "end";
34
34
  const { isEditor: isEditorMode, siteId, domain } = useEditorContext();
@@ -1,4 +1,4 @@
1
- import { image1x1Placeholder, image, icon } from "../../../puck-base/core/fields.js";
1
+ import { image, icon } from "../../../puck-base/core/fields.js";
2
2
  import { ContactUs2 } from "./contact-us-2.js";
3
3
  import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
4
4
  const contactUs2StylesField = createStylesField({
@@ -48,20 +48,20 @@ const conf = {
48
48
  styles: contactUs2StylesField
49
49
  },
50
50
  defaultProps: {
51
- heading: "Ready to transform your fitness?",
52
- description: "Tell us about your goals and we'll reach out within 24 hours to schedule your first session.",
51
+ heading: "Let's talk about your project",
52
+ description: "Tell us about your needs and our team will get back to you within 24 hours.",
53
53
  fields: [
54
- { label: "Your Name", name: "name" },
55
- { label: "Email Address", name: "email" },
54
+ { label: "Name", name: "name" },
55
+ { label: "Email", name: "email" },
56
56
  { label: "Phone", name: "phone" },
57
57
  { label: "Company", name: "company" },
58
- { label: "Tell us about your fitness goals", name: "message" }
58
+ { label: "Tell us about your project", name: "message" }
59
59
  ],
60
60
  submitLabel: "Send Message",
61
61
  submitVariant: "default",
62
62
  submitSize: "default",
63
63
  submitIcon: "none",
64
- image: image1x1Placeholder,
64
+ image: { src: "https://images.pexels.com/photos/3888151/pexels-photo-3888151.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Modern developer workspace with laptop displaying code" },
65
65
  styles: {
66
66
  ...createStylesDefaults(),
67
67
  imagePosition: "end"
@@ -87,8 +87,8 @@ const conf = {
87
87
  styles: contactUs3StylesField
88
88
  },
89
89
  defaultProps: {
90
- heading: "Let's start a\nconversation",
91
- description: "Have a question or ready to get started? Fill out the form and we'll get back to you within 24 hours.",
90
+ heading: "Contact our team",
91
+ description: "We're here to help. Reach out and we'll respond as soon as we can.",
92
92
  infoItems: defaultInfoItems,
93
93
  fields: [
94
94
  { label: "Full Name", name: "name" },
@@ -1,10 +1,11 @@
1
1
  import { CompoundContainerProps } from "@/components/puck-base/container";
2
+ import { type CompoundButtonProps } from "@/components/puck-base/button";
2
3
  export interface BannerCtaProps {
3
4
  heading?: string;
4
5
  description?: string;
5
6
  buttons?: Array<{
6
7
  label: string;
7
- url?: string;
8
+ action?: CompoundButtonProps["action"];
8
9
  variant?: string;
9
10
  }>;
10
11
  styles?: {
@@ -12,7 +12,7 @@ const BannerCta = ({
12
12
  buttons = [],
13
13
  styles
14
14
  }) => {
15
- var _a, _b, _c, _d, _e;
15
+ var _a, _b, _c, _d;
16
16
  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__ */ jsxs("div", { className: `rounded-2xl px-8 py-14 text-center ${variantStyles[(styles == null ? void 0 : styles.visualVariant) ?? "primary"] ?? variantStyles.primary}`, children: [
17
17
  heading && /* @__PURE__ */ jsx("h2", { className: "text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", children: heading }),
18
18
  description && /* @__PURE__ */ jsx("p", { className: "mt-4 text-lg opacity-90 max-w-2xl mx-auto", children: description }),
@@ -21,16 +21,17 @@ const BannerCta = ({
21
21
  CompoundButton,
22
22
  {
23
23
  label: ((_a = buttons[0]) == null ? void 0 : _a.label) ?? "Get started",
24
- url: ((_b = buttons[0]) == null ? void 0 : _b.url) ?? "#",
24
+ action: (_b = buttons[0]) == null ? void 0 : _b.action,
25
25
  variant: ((_c = buttons[0]) == null ? void 0 : _c.variant) ?? "secondary"
26
26
  }
27
27
  ),
28
- ((_d = buttons[1]) == null ? void 0 : _d.label) && ((_e = buttons[1]) == null ? void 0 : _e.url) && /* @__PURE__ */ jsx(
28
+ ((_d = buttons[1]) == null ? void 0 : _d.label) && /* @__PURE__ */ jsx(
29
29
  CompoundButton,
30
30
  {
31
31
  label: buttons[1].label,
32
- url: buttons[1].url,
33
- variant: buttons[1].variant ?? "outline"
32
+ action: buttons[1].action,
33
+ variant: buttons[1].variant ?? "outline",
34
+ className: "border-current text-foreground"
34
35
  }
35
36
  )
36
37
  ] })
@@ -18,11 +18,11 @@ const conf = {
18
18
  styles: bannerCtaStylesField
19
19
  },
20
20
  defaultProps: {
21
- heading: "Ready to transform your workflow?",
22
- description: "Join thousands of teams already using our platform to ship faster and smarter.",
21
+ heading: "Start building for free today",
22
+ description: "No credit card required. Free plan includes unlimited projects.",
23
23
  buttons: [
24
- { label: "Get started free", url: "#", variant: "secondary" },
25
- { label: "Talk to sales", url: "#", variant: "outline" }
24
+ { label: "Sign Up Free", variant: "secondary" },
25
+ { label: "Contact Sales", variant: "outline" }
26
26
  ],
27
27
  styles: {
28
28
  ...createStylesDefaults(),
@@ -15,23 +15,23 @@ const conf = {
15
15
  styles: createStylesField()
16
16
  },
17
17
  defaultProps: {
18
- heading: "Try our platform today!",
19
- description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.",
18
+ heading: "Ready to build something great?",
19
+ description: "Join thousands of teams already shipping faster. Start free no credit card required.",
20
20
  badge: {
21
- label: "FAQ",
22
- url: "/faq",
21
+ label: "Get Started",
22
+ url: "",
23
23
  variant: "default"
24
24
  },
25
25
  buttons: [
26
26
  {
27
- label: "Jump on a call",
28
- icon: "phone-call",
29
- variant: "outline"
27
+ label: "Start Free Trial",
28
+ icon: "move-right",
29
+ variant: "default"
30
30
  },
31
31
  {
32
- label: "Sign up here",
32
+ label: "Talk to Sales",
33
33
  icon: "move-right",
34
- variant: "default"
34
+ variant: "outline"
35
35
  }
36
36
  ],
37
37
  layout: "contained",
@@ -1,6 +1,7 @@
1
- import { jsx } from "react/jsx-runtime";
1
+ import { jsx, jsxs } from "react/jsx-runtime";
2
2
  import { CompoundContainer } from "../../../puck-base/container.js";
3
- import { CompoundContent } from "../../../puck-base/content.js";
3
+ import { CompoundBadge } from "../../../puck-base/badge.js";
4
+ import { CompoundButton } from "../../../puck-base/button.js";
4
5
  const GradientCta = ({
5
6
  badge,
6
7
  heading,
@@ -23,16 +24,37 @@ const GradientCta = ({
23
24
  {
24
25
  className: "rounded-2xl p-8 text-center md:p-14",
25
26
  style: { background: bg, color },
26
- children: /* @__PURE__ */ jsx(
27
- CompoundContent,
28
- {
29
- badge,
30
- heading,
31
- description,
32
- buttons,
33
- alignContent: "center"
34
- }
35
- )
27
+ children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center text-center gap-8", children: [
28
+ (!!heading || !!description || !!badge) && /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center text-center gap-4", children: [
29
+ (badge == null ? void 0 : badge.label) && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
30
+ CompoundBadge,
31
+ {
32
+ label: badge.label,
33
+ variant: badge.variant,
34
+ url: badge.url
35
+ }
36
+ ) }),
37
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center text-center gap-4", children: [
38
+ !!heading && /* @__PURE__ */ jsx("h2", { className: "font-serif font-regular text-3xl tracking-tighter text-center md:text-5xl lg:max-w-xl", children: heading }),
39
+ !!description && /* @__PURE__ */ jsx("p", { className: "text text-lg leading-relaxed tracking-tight text-center lg:max-w-xl", children: description })
40
+ ] })
41
+ ] }),
42
+ Array.isArray(buttons) && buttons.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-row justify-center flex-wrap gap-4", children: buttons.filter((button) => !!button.label).map((button, index) => {
43
+ const needsContrast = !button.variant || button.variant === "default";
44
+ return /* @__PURE__ */ jsx(
45
+ CompoundButton,
46
+ {
47
+ label: button.label,
48
+ action: button.action,
49
+ variant: button.variant,
50
+ size: button.size,
51
+ icon: button.icon,
52
+ className: needsContrast ? "bg-background text-foreground hover:bg-background/90" : void 0
53
+ },
54
+ index
55
+ );
56
+ }) })
57
+ ] })
36
58
  }
37
59
  )
38
60
  }
@@ -35,10 +35,10 @@ const conf = {
35
35
  styles: gradientCtaStylesField
36
36
  },
37
37
  defaultProps: {
38
- heading: "Ready to get started?",
39
- description: "Join thousands of teams already using our platform.",
38
+ heading: "Ship your next project faster",
39
+ description: "Everything you need to go from idea to production.",
40
40
  buttons: [
41
- { label: "Start Free Trial", icon: "move-right", variant: "default" }
41
+ { label: "Get Started Free", icon: "move-right", variant: "default" }
42
42
  ],
43
43
  styles: {
44
44
  ...createStylesDefaults(),
@@ -18,7 +18,7 @@ const conf = {
18
18
  },
19
19
  defaultProps: {
20
20
  heading: "Stay in the loop",
21
- description: "Get the latest updates delivered to your inbox.",
21
+ description: "Get product updates, engineering insights, and tips delivered to your inbox.",
22
22
  buttons: [{ label: "Subscribe" }],
23
23
  placeholder: "Enter your email",
24
24
  styles: createStylesDefaults()
@@ -20,17 +20,16 @@ const conf = {
20
20
  styles: createStylesField()
21
21
  },
22
22
  defaultProps: {
23
- heading: "Summer SaleUp to 50% Off",
24
- description: "Don't miss our biggest sale of the year. Shop now and save on your favorite items.",
23
+ heading: "Limited Time3 Months Free on Pro",
24
+ description: "Upgrade to Pro and unlock advanced features, priority support, and unlimited collaborators.",
25
25
  image: {
26
- src: "https://dummyimage.com/800x600/f5f4f4/101010.png&text=Promo+Image",
27
- alt: "Promotional image"
26
+ src: "https://images.pexels.com/photos/4218883/pexels-photo-4218883.jpeg?auto=compress&cs=tinysrgb&w=1200",
27
+ alt: "Developer workspace with computer displaying code interface"
28
28
  },
29
29
  imagePosition: "right",
30
30
  buttons: [
31
31
  {
32
- label: "Shop Now",
33
- url: "#",
32
+ label: "Claim Offer",
34
33
  variant: "default",
35
34
  size: "lg",
36
35
  icon: "none"
@@ -46,7 +46,7 @@ const PromoSection = ({
46
46
  CompoundButton,
47
47
  {
48
48
  label: button.label,
49
- url: button.url,
49
+ action: button.action,
50
50
  variant: button.variant,
51
51
  size: button.size,
52
52
  icon: button.icon
@@ -89,7 +89,7 @@ const PromoSection = ({
89
89
  CompoundButton,
90
90
  {
91
91
  label: button.label,
92
- url: button.url,
92
+ action: button.action,
93
93
  variant: button.variant,
94
94
  size: button.size,
95
95
  icon: button.icon
@@ -25,10 +25,14 @@ const Accordion = ({
25
25
  /* @__PURE__ */ jsxs(
26
26
  "button",
27
27
  {
28
- onClick: () => setOpenIndex(openIndex === i ? null : i),
29
- className: "flex w-full items-center justify-between py-4 text-left",
28
+ onClick: (e) => {
29
+ e.stopPropagation();
30
+ setOpenIndex(openIndex === i ? null : i);
31
+ },
32
+ style: { pointerEvents: "auto" },
33
+ className: "flex w-full items-center justify-between py-4 text-left cursor-pointer",
30
34
  children: [
31
- /* @__PURE__ */ jsx("span", { className: "text-foreground font-medium", children: item.title }),
35
+ /* @__PURE__ */ jsx("span", { className: "text-foreground font-medium", style: { pointerEvents: "none" }, children: item.title }),
32
36
  /* @__PURE__ */ jsx(
33
37
  "span",
34
38
  {
@@ -36,6 +40,7 @@ const Accordion = ({
36
40
  "text-muted-foreground transition-transform",
37
41
  openIndex === i && "rotate-45"
38
42
  ),
43
+ style: { pointerEvents: "none" },
39
44
  children: "+"
40
45
  }
41
46
  )
@@ -19,15 +19,19 @@ const conf = {
19
19
  items: [
20
20
  {
21
21
  title: "How do I get started?",
22
- content: "Sign up for a free account and follow the onboarding guide."
22
+ content: "Sign up for a free account, connect your repository, and follow the onboarding guide. Most teams are up and running in under 5 minutes."
23
23
  },
24
24
  {
25
25
  title: "What pricing plans are available?",
26
- content: "We offer Free, Pro, and Enterprise plans."
26
+ content: "We offer Free, Pro, and Enterprise plans. The free plan includes unlimited projects with basic features. Pro adds team collaboration, and Enterprise includes custom integrations and dedicated support."
27
27
  },
28
28
  {
29
29
  title: "Can I cancel anytime?",
30
- content: "Yes, you can cancel your subscription at any time."
30
+ content: "Absolutely. No contracts, no cancellation fees. You can downgrade or cancel your subscription at any time from your account settings."
31
+ },
32
+ {
33
+ title: "Do you offer integrations?",
34
+ content: "Yes — we integrate with GitHub, GitLab, Slack, Jira, Linear, and 50+ other tools out of the box. Enterprise plans also support custom integrations."
31
35
  }
32
36
  ],
33
37
  styles: createStylesDefaults()
@@ -53,8 +53,8 @@ const conf = {
53
53
  url: "",
54
54
  variant: "secondary"
55
55
  },
56
- heading: "Heading",
57
- description: "Description",
56
+ heading: "Frequently asked questions",
57
+ description: "Everything you need to know about getting started.",
58
58
  buttons: [
59
59
  {
60
60
  label: "Find out more",
@@ -66,8 +66,20 @@ const conf = {
66
66
  collapsible: true,
67
67
  items: [
68
68
  {
69
- question: "Question",
70
- answer: "Answer"
69
+ question: "Is there a free plan?",
70
+ answer: "Yes! Our free plan includes unlimited projects and basic features. No credit card required."
71
+ },
72
+ {
73
+ question: "Can I cancel anytime?",
74
+ answer: "Absolutely. No contracts, no cancellation fees. You can downgrade or cancel at any time."
75
+ },
76
+ {
77
+ question: "Do you offer team plans?",
78
+ answer: "Yes, our Pro plan supports unlimited team members with role-based permissions and collaboration features."
79
+ },
80
+ {
81
+ question: "Is my data secure?",
82
+ answer: "We use enterprise-grade encryption, SOC 2 compliance, and regular security audits to keep your data safe."
71
83
  }
72
84
  ],
73
85
  layout: "two-col",