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
|
@@ -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: "
|
|
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: "
|
|
35
|
-
{ text: "
|
|
36
|
-
{ text: "
|
|
37
|
-
{ text: "
|
|
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: "
|
|
88
|
-
description: "
|
|
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: [
|
|
91
|
-
|
|
90
|
+
features: [
|
|
91
|
+
{
|
|
92
92
|
icon: "check",
|
|
93
|
-
name:
|
|
94
|
-
description: "
|
|
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
|
|
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 {
|
|
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: "
|
|
52
|
-
description: "Tell us about your
|
|
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: "
|
|
55
|
-
{ label: "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
|
|
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:
|
|
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: "
|
|
91
|
-
description: "
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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) &&
|
|
28
|
+
((_d = buttons[1]) == null ? void 0 : _d.label) && /* @__PURE__ */ jsx(
|
|
29
29
|
CompoundButton,
|
|
30
30
|
{
|
|
31
31
|
label: buttons[1].label,
|
|
32
|
-
|
|
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: "
|
|
22
|
-
description: "
|
|
21
|
+
heading: "Start building for free today",
|
|
22
|
+
description: "No credit card required. Free plan includes unlimited projects.",
|
|
23
23
|
buttons: [
|
|
24
|
-
{ label: "
|
|
25
|
-
{ label: "
|
|
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: "
|
|
19
|
-
description: "
|
|
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: "
|
|
22
|
-
url: "
|
|
21
|
+
label: "Get Started",
|
|
22
|
+
url: "",
|
|
23
23
|
variant: "default"
|
|
24
24
|
},
|
|
25
25
|
buttons: [
|
|
26
26
|
{
|
|
27
|
-
label: "
|
|
28
|
-
icon: "
|
|
29
|
-
variant: "
|
|
27
|
+
label: "Start Free Trial",
|
|
28
|
+
icon: "move-right",
|
|
29
|
+
variant: "default"
|
|
30
30
|
},
|
|
31
31
|
{
|
|
32
|
-
label: "
|
|
32
|
+
label: "Talk to Sales",
|
|
33
33
|
icon: "move-right",
|
|
34
|
-
variant: "
|
|
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 {
|
|
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__ */
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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: "
|
|
39
|
-
description: "
|
|
38
|
+
heading: "Ship your next project faster",
|
|
39
|
+
description: "Everything you need to go from idea to production.",
|
|
40
40
|
buttons: [
|
|
41
|
-
{ label: "
|
|
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
|
|
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: "
|
|
24
|
-
description: "
|
|
23
|
+
heading: "Limited Time — 3 Months Free on Pro",
|
|
24
|
+
description: "Upgrade to Pro and unlock advanced features, priority support, and unlimited collaborators.",
|
|
25
25
|
image: {
|
|
26
|
-
src: "https://
|
|
27
|
-
alt: "
|
|
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: "
|
|
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
|
-
|
|
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
|
-
|
|
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: () =>
|
|
29
|
-
|
|
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: "
|
|
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: "
|
|
57
|
-
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: "
|
|
70
|
-
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",
|