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
|
@@ -15,7 +15,6 @@ const locationButtonFields = {
|
|
|
15
15
|
};
|
|
16
16
|
const locationButtonDefaults = {
|
|
17
17
|
label: "Button",
|
|
18
|
-
url: "",
|
|
19
18
|
variant: "default",
|
|
20
19
|
size: "default",
|
|
21
20
|
icon: "none",
|
|
@@ -71,11 +70,11 @@ const conf = {
|
|
|
71
70
|
styles: createStylesField()
|
|
72
71
|
},
|
|
73
72
|
defaultProps: {
|
|
74
|
-
heading: "
|
|
75
|
-
description: "
|
|
73
|
+
heading: "Our Offices",
|
|
74
|
+
description: "We have offices around the globe. Visit us or get in touch with a local team near you.",
|
|
76
75
|
contentAlign: "left",
|
|
77
76
|
contentPosition: "left",
|
|
78
|
-
mapEmbedUrl: "https://maps.google.com/maps?q=
|
|
77
|
+
mapEmbedUrl: "https://maps.google.com/maps?q=San%20Francisco%2C%20California%2C%20United%20States&z=13&t=m&output=embed",
|
|
79
78
|
mapTitle: "Google Maps",
|
|
80
79
|
mapFilter: "grayscale(45%) contrast(1.06) brightness(0.98) saturate(0.9)",
|
|
81
80
|
mapTintMode: "theme",
|
|
@@ -83,8 +82,7 @@ const conf = {
|
|
|
83
82
|
mapTintOpacity: 0.21,
|
|
84
83
|
buttons: [
|
|
85
84
|
{
|
|
86
|
-
label: "
|
|
87
|
-
url: "tel:+12345678900",
|
|
85
|
+
label: "Contact us",
|
|
88
86
|
variant: "default",
|
|
89
87
|
size: "default",
|
|
90
88
|
icon: "none",
|
|
@@ -92,7 +90,6 @@ const conf = {
|
|
|
92
90
|
},
|
|
93
91
|
{
|
|
94
92
|
label: "Get directions",
|
|
95
|
-
url: "mailto:email@mybusiness.com",
|
|
96
93
|
variant: "secondary",
|
|
97
94
|
size: "default",
|
|
98
95
|
icon: "none",
|
|
@@ -2,6 +2,7 @@ import { CompoundContainerProps } from "@/components/puck-base/container";
|
|
|
2
2
|
import { CompoundButtonProps } from "@/components/puck-base/button";
|
|
3
3
|
interface LocationButton extends Omit<CompoundButtonProps, "label"> {
|
|
4
4
|
label?: string;
|
|
5
|
+
url?: string;
|
|
5
6
|
colorMode?: "theme" | "custom";
|
|
6
7
|
backgroundColor?: string;
|
|
7
8
|
textColor?: string;
|
|
@@ -23,8 +23,7 @@ const LocationActionButton = ({
|
|
|
23
23
|
CompoundButton,
|
|
24
24
|
{
|
|
25
25
|
label,
|
|
26
|
-
url,
|
|
27
|
-
action,
|
|
26
|
+
action: action ?? (url ? /^https?:\/\//i.test(url) ? { type: "external", externalUrl: url } : { type: "page", pageUrl: url } : void 0),
|
|
28
27
|
variant,
|
|
29
28
|
size,
|
|
30
29
|
icon,
|
|
@@ -113,7 +112,7 @@ const LocationSection = ({
|
|
|
113
112
|
allowFullScreen: true,
|
|
114
113
|
style: { filter: mapFilter }
|
|
115
114
|
}
|
|
116
|
-
) : /* @__PURE__ */ jsx("div", { className: "flex h-full w-full items-center justify-center bg-muted text-muted-foreground", children: "
|
|
115
|
+
) : /* @__PURE__ */ jsx("div", { className: "flex h-full w-full items-center justify-center bg-muted text-muted-foreground", children: "Map address not configured" }),
|
|
117
116
|
showMapTint ? /* @__PURE__ */ jsx(
|
|
118
117
|
"div",
|
|
119
118
|
{
|
|
@@ -15,7 +15,6 @@ const locationButtonFields = {
|
|
|
15
15
|
};
|
|
16
16
|
const locationButtonDefaults = {
|
|
17
17
|
label: "Button",
|
|
18
|
-
url: "",
|
|
19
18
|
variant: "default",
|
|
20
19
|
size: "default",
|
|
21
20
|
icon: "none",
|
|
@@ -83,11 +82,11 @@ const conf = {
|
|
|
83
82
|
styles: createStylesField(location2ExtraStyleFields)
|
|
84
83
|
},
|
|
85
84
|
defaultProps: {
|
|
86
|
-
heading: "
|
|
87
|
-
description: "
|
|
88
|
-
address: "
|
|
85
|
+
heading: "Our Offices",
|
|
86
|
+
description: "Visit our headquarters in London or reach out to one of our regional offices worldwide.",
|
|
87
|
+
address: "10 Finsbury Square\nLondon, UK EC2A 1AF",
|
|
89
88
|
contentPosition: "left",
|
|
90
|
-
mapEmbedUrl: "https://maps.google.com/maps?q=
|
|
89
|
+
mapEmbedUrl: "https://maps.google.com/maps?q=London%2C%20United%20Kingdom&z=13&t=m&output=embed",
|
|
91
90
|
mapTitle: "Google Maps",
|
|
92
91
|
mapFilter: "grayscale(40%) contrast(1.05) brightness(1.0) saturate(0.85)",
|
|
93
92
|
mapTintMode: "none",
|
|
@@ -96,7 +95,6 @@ const conf = {
|
|
|
96
95
|
buttons: [
|
|
97
96
|
{
|
|
98
97
|
label: "Get Directions",
|
|
99
|
-
url: "https://maps.google.com",
|
|
100
98
|
variant: "default",
|
|
101
99
|
size: "default",
|
|
102
100
|
icon: "none",
|
|
@@ -104,7 +102,6 @@ const conf = {
|
|
|
104
102
|
},
|
|
105
103
|
{
|
|
106
104
|
label: "Call Us",
|
|
107
|
-
url: "tel:+12345678900",
|
|
108
105
|
variant: "outline",
|
|
109
106
|
size: "default",
|
|
110
107
|
icon: "none",
|
|
@@ -2,6 +2,7 @@ import { CompoundContainerProps } from "@/components/puck-base/container";
|
|
|
2
2
|
import { CompoundButtonProps } from "@/components/puck-base/button";
|
|
3
3
|
interface LocationButton extends Omit<CompoundButtonProps, "label"> {
|
|
4
4
|
label?: string;
|
|
5
|
+
url?: string;
|
|
5
6
|
colorMode?: "theme" | "custom";
|
|
6
7
|
backgroundColor?: string;
|
|
7
8
|
textColor?: string;
|
|
@@ -22,8 +22,7 @@ const ActionButton = ({
|
|
|
22
22
|
CompoundButton,
|
|
23
23
|
{
|
|
24
24
|
label,
|
|
25
|
-
url,
|
|
26
|
-
action,
|
|
25
|
+
action: action ?? (url ? /^https?:\/\//i.test(url) ? { type: "external", externalUrl: url } : { type: "page", pageUrl: url } : void 0),
|
|
27
26
|
variant,
|
|
28
27
|
size,
|
|
29
28
|
icon,
|
|
@@ -67,7 +66,7 @@ const Location2 = ({
|
|
|
67
66
|
allowFullScreen: true,
|
|
68
67
|
style: { filter: mapFilter }
|
|
69
68
|
}
|
|
70
|
-
) : /* @__PURE__ */ jsx("div", { className: "bg-muted text-muted-foreground flex h-full w-full items-center justify-center text-sm", children: "
|
|
69
|
+
) : /* @__PURE__ */ jsx("div", { className: "bg-muted text-muted-foreground flex h-full w-full items-center justify-center text-sm", children: "Map address not configured" }),
|
|
71
70
|
showMapTint && /* @__PURE__ */ jsx(
|
|
72
71
|
"div",
|
|
73
72
|
{
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Location3 } from "./location.js";
|
|
2
2
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
3
3
|
const defaultLocation = {
|
|
4
|
-
name: "
|
|
5
|
-
address: "123
|
|
6
|
-
phone: "+1 (
|
|
4
|
+
name: "San Francisco, CA",
|
|
5
|
+
address: "123 Market Street\nSan Francisco, CA 94105",
|
|
6
|
+
phone: "+1 (415) 555-0100",
|
|
7
7
|
hours: "Mon–Fri: 9am–6pm\nSat: 10am–4pm",
|
|
8
8
|
directionsUrl: "https://maps.google.com"
|
|
9
9
|
};
|
|
@@ -43,32 +43,33 @@ const conf = {
|
|
|
43
43
|
address: { type: "textarea", contentEditable: true },
|
|
44
44
|
phone: { type: "text" },
|
|
45
45
|
hours: { type: "textarea", label: "Business Hours" },
|
|
46
|
-
directionsUrl: { type: "text", label: "Directions URL" }
|
|
46
|
+
directionsUrl: { type: "text", label: "Directions URL" },
|
|
47
|
+
directionsLabel: { type: "text", label: "Directions Button Label" }
|
|
47
48
|
},
|
|
48
49
|
defaultItemProps: defaultLocation
|
|
49
50
|
},
|
|
50
51
|
styles: createStylesField(location3ExtraStyleFields)
|
|
51
52
|
},
|
|
52
53
|
defaultProps: {
|
|
53
|
-
heading: "
|
|
54
|
-
description: "
|
|
54
|
+
heading: "Our Offices",
|
|
55
|
+
description: "We have teams around the world ready to help you succeed.",
|
|
55
56
|
mapEmbedUrl: "https://maps.google.com/maps?q=New%20York%2C%20NY%2C%20United%20States&z=11&t=m&output=embed",
|
|
56
57
|
mapTitle: "Google Maps",
|
|
57
58
|
mapFilter: "grayscale(35%) contrast(1.05) brightness(1.0)",
|
|
58
59
|
locations: [
|
|
59
60
|
defaultLocation,
|
|
60
61
|
{
|
|
61
|
-
name: "
|
|
62
|
-
address: "
|
|
63
|
-
phone: "+
|
|
64
|
-
hours: "Mon–Fri:
|
|
62
|
+
name: "London, UK",
|
|
63
|
+
address: "10 Finsbury Square\nLondon, EC2A 1AF",
|
|
64
|
+
phone: "+44 20 7946 0200",
|
|
65
|
+
hours: "Mon–Fri: 9am–6pm\nSat: 10am–3pm",
|
|
65
66
|
directionsUrl: "https://maps.google.com"
|
|
66
67
|
},
|
|
67
68
|
{
|
|
68
|
-
name: "
|
|
69
|
-
address: "
|
|
70
|
-
phone: "+
|
|
71
|
-
hours: "Mon–Fri: 9am–6pm
|
|
69
|
+
name: "Tokyo, Japan",
|
|
70
|
+
address: "1-1-2 Marunouchi\nChiyoda-ku, Tokyo 100-0005",
|
|
71
|
+
phone: "+81 3-1234-5678",
|
|
72
|
+
hours: "Mon–Fri: 9am–6pm",
|
|
72
73
|
directionsUrl: "https://maps.google.com"
|
|
73
74
|
}
|
|
74
75
|
],
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
import { CompoundContainerProps } from "@/components/puck-base/container";
|
|
2
|
+
import type { Action } from "@/components/puck-base/core/types";
|
|
2
3
|
export interface LocationEntry {
|
|
3
4
|
name: string;
|
|
4
5
|
address?: string;
|
|
5
6
|
phone?: string;
|
|
6
7
|
hours?: string;
|
|
7
8
|
directionsUrl?: string;
|
|
9
|
+
directionsLabel?: string;
|
|
10
|
+
directionsAction?: Action;
|
|
8
11
|
}
|
|
9
12
|
export interface Location3Props {
|
|
10
13
|
heading?: string;
|
|
@@ -37,7 +37,7 @@ const Location3 = ({
|
|
|
37
37
|
allowFullScreen: true,
|
|
38
38
|
style: { filter: mapFilter }
|
|
39
39
|
}
|
|
40
|
-
) : /* @__PURE__ */ jsx("div", { className: "bg-muted text-muted-foreground flex h-full w-full items-center justify-center text-sm", children: "
|
|
40
|
+
) : /* @__PURE__ */ jsx("div", { className: "bg-muted text-muted-foreground flex h-full w-full items-center justify-center text-sm", children: "Map address not configured" }) }),
|
|
41
41
|
locations.length > 0 && /* @__PURE__ */ jsx("div", { className: cn("grid grid-cols-1 gap-5", colClass), children: locations.map((loc, i) => /* @__PURE__ */ jsxs(
|
|
42
42
|
"div",
|
|
43
43
|
{
|
|
@@ -104,11 +104,14 @@ const Location3 = ({
|
|
|
104
104
|
),
|
|
105
105
|
/* @__PURE__ */ jsx("span", { className: "whitespace-pre-line", children: loc.hours })
|
|
106
106
|
] }),
|
|
107
|
-
loc.directionsUrl && /* @__PURE__ */ jsx("div", { className: "mt-auto pt-2", children: /* @__PURE__ */ jsx(
|
|
107
|
+
(loc.directionsAction || loc.directionsUrl) && /* @__PURE__ */ jsx("div", { className: "mt-auto pt-2", children: /* @__PURE__ */ jsx(
|
|
108
108
|
CompoundButton,
|
|
109
109
|
{
|
|
110
|
-
label: "Get Directions",
|
|
111
|
-
|
|
110
|
+
label: loc.directionsLabel || "Get Directions",
|
|
111
|
+
action: loc.directionsAction ?? (loc.directionsUrl ? {
|
|
112
|
+
type: "external",
|
|
113
|
+
externalUrl: loc.directionsUrl
|
|
114
|
+
} : void 0),
|
|
112
115
|
variant: "outline",
|
|
113
116
|
size: "sm",
|
|
114
117
|
icon: "map-pin"
|
|
@@ -67,8 +67,8 @@ const conf = {
|
|
|
67
67
|
styles: createStylesField()
|
|
68
68
|
},
|
|
69
69
|
defaultProps: {
|
|
70
|
-
heading: "
|
|
71
|
-
description: "
|
|
70
|
+
heading: "Trusted by teams worldwide",
|
|
71
|
+
description: "The numbers behind the platform teams rely on every day.",
|
|
72
72
|
badge: {
|
|
73
73
|
label: "Platform",
|
|
74
74
|
url: "",
|
|
@@ -84,32 +84,32 @@ const conf = {
|
|
|
84
84
|
],
|
|
85
85
|
items: [
|
|
86
86
|
{
|
|
87
|
-
label: "
|
|
88
|
-
value: "
|
|
87
|
+
label: "Teams",
|
|
88
|
+
value: "10,000+",
|
|
89
89
|
percentage: 20.1,
|
|
90
90
|
direction: "increase",
|
|
91
91
|
polarity: "positive"
|
|
92
92
|
},
|
|
93
93
|
{
|
|
94
|
-
label: "
|
|
95
|
-
value: "
|
|
94
|
+
label: "Uptime",
|
|
95
|
+
value: "99.99%",
|
|
96
96
|
percentage: 2,
|
|
97
|
-
direction: "
|
|
98
|
-
polarity: "
|
|
97
|
+
direction: "increase",
|
|
98
|
+
polarity: "positive"
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
|
-
label: "
|
|
102
|
-
value: "
|
|
101
|
+
label: "Deployments",
|
|
102
|
+
value: "50M+",
|
|
103
103
|
percentage: 8,
|
|
104
104
|
direction: "increase",
|
|
105
105
|
polarity: "positive"
|
|
106
106
|
},
|
|
107
107
|
{
|
|
108
|
-
label: "
|
|
109
|
-
value: "
|
|
108
|
+
label: "Satisfaction",
|
|
109
|
+
value: "4.9/5",
|
|
110
110
|
percentage: 2,
|
|
111
111
|
direction: "increase",
|
|
112
|
-
polarity: "
|
|
112
|
+
polarity: "positive"
|
|
113
113
|
}
|
|
114
114
|
],
|
|
115
115
|
layout: "section",
|
|
@@ -37,35 +37,33 @@ const conf = {
|
|
|
37
37
|
},
|
|
38
38
|
defaultItemProps: {
|
|
39
39
|
metric: "100%",
|
|
40
|
-
title: "
|
|
40
|
+
title: "Platform metric",
|
|
41
41
|
variant: "light"
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
44
|
styles: createStylesField()
|
|
45
45
|
},
|
|
46
46
|
defaultProps: {
|
|
47
|
-
heading: "
|
|
48
|
-
description: "
|
|
47
|
+
heading: "Built for scale, loved by developers",
|
|
48
|
+
description: "From startups to enterprises, teams ship faster and more reliably with our platform.",
|
|
49
49
|
buttons: [
|
|
50
50
|
{
|
|
51
|
-
label: "
|
|
52
|
-
url: "/services",
|
|
51
|
+
label: "View case studies",
|
|
53
52
|
variant: "outline",
|
|
54
53
|
size: "default",
|
|
55
54
|
icon: "none"
|
|
56
55
|
},
|
|
57
56
|
{
|
|
58
|
-
label: "
|
|
59
|
-
url: "#",
|
|
57
|
+
label: "Get started",
|
|
60
58
|
variant: "default",
|
|
61
59
|
size: "default",
|
|
62
60
|
icon: "none"
|
|
63
61
|
}
|
|
64
62
|
],
|
|
65
63
|
items: [
|
|
66
|
-
{ metric: "
|
|
67
|
-
{ metric: "
|
|
68
|
-
{ metric: "
|
|
64
|
+
{ metric: "99.9%", title: "Platform reliability", variant: "dark" },
|
|
65
|
+
{ metric: "2x", title: "Faster deployments", variant: "light" },
|
|
66
|
+
{ metric: "150+", title: "Countries served", variant: "light" }
|
|
69
67
|
],
|
|
70
68
|
styles: createStylesDefaults()
|
|
71
69
|
},
|
|
@@ -42,19 +42,17 @@ const conf = {
|
|
|
42
42
|
styles: createStylesField()
|
|
43
43
|
},
|
|
44
44
|
defaultProps: {
|
|
45
|
-
heading: "
|
|
46
|
-
description: "
|
|
45
|
+
heading: "Why teams choose us",
|
|
46
|
+
description: "Ship with confidence using a platform designed for modern development teams.",
|
|
47
47
|
buttons: [
|
|
48
48
|
{
|
|
49
|
-
label: "
|
|
50
|
-
url: "#",
|
|
49
|
+
label: "Start building",
|
|
51
50
|
variant: "default",
|
|
52
51
|
size: "default",
|
|
53
52
|
icon: "none"
|
|
54
53
|
},
|
|
55
54
|
{
|
|
56
|
-
label: "
|
|
57
|
-
url: "#",
|
|
55
|
+
label: "Read the docs",
|
|
58
56
|
variant: "outline",
|
|
59
57
|
size: "default",
|
|
60
58
|
icon: "none"
|
|
@@ -62,19 +60,19 @@ const conf = {
|
|
|
62
60
|
],
|
|
63
61
|
items: [
|
|
64
62
|
{
|
|
65
|
-
metric: "
|
|
66
|
-
title: "
|
|
67
|
-
description: "
|
|
63
|
+
metric: "5,000+",
|
|
64
|
+
title: "Active teams",
|
|
65
|
+
description: "Engineering teams of all sizes trust our platform to ship production software daily."
|
|
68
66
|
},
|
|
69
67
|
{
|
|
70
|
-
metric: "
|
|
71
|
-
title: "
|
|
72
|
-
description: "
|
|
68
|
+
metric: "< 200ms",
|
|
69
|
+
title: "Median response time",
|
|
70
|
+
description: "Edge-optimized infrastructure delivers sub-200ms response times globally."
|
|
73
71
|
},
|
|
74
72
|
{
|
|
75
|
-
metric: "
|
|
76
|
-
title: "
|
|
77
|
-
description: "
|
|
73
|
+
metric: "3 min",
|
|
74
|
+
title: "Average setup time",
|
|
75
|
+
description: "Go from sign-up to your first deployment in under three minutes."
|
|
78
76
|
}
|
|
79
77
|
],
|
|
80
78
|
styles: createStylesDefaults()
|
|
@@ -26,7 +26,20 @@ const Stats3 = ({
|
|
|
26
26
|
/* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col gap-8 lg:basis-1/2", children: [
|
|
27
27
|
description && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: description }),
|
|
28
28
|
buttons.some((button) => button == null ? void 0 : button.label) && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-3 sm:flex-row", children: buttons.map(
|
|
29
|
-
(button, index) => (button == null ? void 0 : button.label) ? /* @__PURE__ */ jsx(
|
|
29
|
+
(button, index) => (button == null ? void 0 : button.label) ? /* @__PURE__ */ jsx(
|
|
30
|
+
CompoundButton,
|
|
31
|
+
{
|
|
32
|
+
label: button.label,
|
|
33
|
+
action: button.action,
|
|
34
|
+
variant: button.variant,
|
|
35
|
+
size: button.size,
|
|
36
|
+
icon: button.icon,
|
|
37
|
+
type: button.type,
|
|
38
|
+
disabled: button.disabled,
|
|
39
|
+
className: button.className
|
|
40
|
+
},
|
|
41
|
+
index
|
|
42
|
+
) : null
|
|
30
43
|
) })
|
|
31
44
|
] })
|
|
32
45
|
] }) }),
|
|
@@ -34,8 +34,8 @@ const conf = {
|
|
|
34
34
|
styles: createStylesField()
|
|
35
35
|
},
|
|
36
36
|
defaultProps: {
|
|
37
|
-
heading: "Compare
|
|
38
|
-
description: "
|
|
37
|
+
heading: "Compare plans",
|
|
38
|
+
description: "Find the right plan for your team.",
|
|
39
39
|
plans: [
|
|
40
40
|
{
|
|
41
41
|
name: "Starter",
|
|
@@ -23,7 +23,6 @@ const conf = {
|
|
|
23
23
|
features: [features.defaultItemProps],
|
|
24
24
|
button: {
|
|
25
25
|
label: "Choose",
|
|
26
|
-
url: "#",
|
|
27
26
|
variant: "default",
|
|
28
27
|
size: "default",
|
|
29
28
|
icon: "arrow-right"
|
|
@@ -36,31 +35,50 @@ const conf = {
|
|
|
36
35
|
},
|
|
37
36
|
defaultProps: {
|
|
38
37
|
badge: {
|
|
39
|
-
label: "
|
|
38
|
+
label: "Pricing",
|
|
40
39
|
url: "",
|
|
41
40
|
variant: "default"
|
|
42
41
|
},
|
|
43
|
-
heading: "
|
|
44
|
-
description: "
|
|
42
|
+
heading: "Simple, transparent pricing",
|
|
43
|
+
description: "Start free. Upgrade when you're ready. No hidden fees.",
|
|
45
44
|
buttons: [],
|
|
46
|
-
plans:
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
45
|
+
plans: [
|
|
46
|
+
{
|
|
47
|
+
name: "Free",
|
|
48
|
+
description: "For individuals",
|
|
49
|
+
price: "$0",
|
|
50
|
+
cycle: "month",
|
|
51
|
+
features: [
|
|
52
|
+
{ icon: "check", name: "1 project", description: "Get started with a single workspace" },
|
|
53
|
+
{ icon: "check", name: "Basic analytics", description: "Track page views and key events" },
|
|
54
|
+
{ icon: "check", name: "Community support", description: "Get help from our active community" }
|
|
55
|
+
],
|
|
56
|
+
button: {
|
|
57
|
+
label: "Get Started",
|
|
58
|
+
icon: "arrow-right",
|
|
59
|
+
variant: "outline",
|
|
60
|
+
size: "default"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: "Pro",
|
|
65
|
+
description: "For growing teams",
|
|
66
|
+
price: "$29",
|
|
67
|
+
cycle: "month",
|
|
68
|
+
features: [
|
|
69
|
+
{ icon: "check", name: "Unlimited projects", description: "No limits on workspaces or environments" },
|
|
70
|
+
{ icon: "check", name: "Advanced analytics", description: "Deep insights with custom dashboards" },
|
|
71
|
+
{ icon: "check", name: "Priority support", description: "Direct access to our engineering team" },
|
|
72
|
+
{ icon: "check", name: "Custom domains", description: "Connect your own domain with auto SSL" }
|
|
73
|
+
],
|
|
74
|
+
button: {
|
|
75
|
+
label: "Start Free Trial",
|
|
76
|
+
icon: "arrow-right",
|
|
77
|
+
variant: "default",
|
|
78
|
+
size: "default"
|
|
79
|
+
}
|
|
62
80
|
}
|
|
63
|
-
|
|
81
|
+
],
|
|
64
82
|
styles: createStylesDefaults()
|
|
65
83
|
},
|
|
66
84
|
render: Pricing
|
|
@@ -50,7 +50,6 @@ const conf = {
|
|
|
50
50
|
period: "per month",
|
|
51
51
|
button: {
|
|
52
52
|
label: "Get started",
|
|
53
|
-
url: "#",
|
|
54
53
|
variant: "outline",
|
|
55
54
|
size: "default",
|
|
56
55
|
icon: "none"
|
|
@@ -69,75 +68,72 @@ const conf = {
|
|
|
69
68
|
styles: createStylesField()
|
|
70
69
|
},
|
|
71
70
|
defaultProps: {
|
|
72
|
-
heading: "
|
|
73
|
-
description: "
|
|
71
|
+
heading: "Simple, transparent pricing",
|
|
72
|
+
description: "Start free. Upgrade when you're ready. No hidden fees.",
|
|
74
73
|
plans: [
|
|
75
74
|
{
|
|
76
75
|
badgeLabel: "",
|
|
77
|
-
title: "
|
|
78
|
-
description: "
|
|
79
|
-
price: "$
|
|
80
|
-
period: "per
|
|
76
|
+
title: "Free",
|
|
77
|
+
description: "For individuals getting started.",
|
|
78
|
+
price: "$0",
|
|
79
|
+
period: "per month",
|
|
81
80
|
button: {
|
|
82
|
-
label: "
|
|
83
|
-
url: "#",
|
|
81
|
+
label: "Get Started",
|
|
84
82
|
variant: "outline",
|
|
85
83
|
size: "default",
|
|
86
84
|
icon: "none"
|
|
87
85
|
},
|
|
88
86
|
featuresLabel: "What's included:",
|
|
89
87
|
features: [
|
|
90
|
-
{ title: "
|
|
91
|
-
{ title: "
|
|
92
|
-
{ title: "
|
|
93
|
-
{ title: "
|
|
88
|
+
{ title: "1 project" },
|
|
89
|
+
{ title: "Basic analytics" },
|
|
90
|
+
{ title: "Community support" },
|
|
91
|
+
{ title: "1 GB storage" }
|
|
94
92
|
],
|
|
95
93
|
isFeatured: false
|
|
96
94
|
},
|
|
97
95
|
{
|
|
98
96
|
badgeLabel: "Most popular",
|
|
99
|
-
title: "
|
|
100
|
-
description: "
|
|
101
|
-
price: "$
|
|
97
|
+
title: "Pro",
|
|
98
|
+
description: "For growing teams that need more power and flexibility.",
|
|
99
|
+
price: "$29",
|
|
102
100
|
period: "per month",
|
|
103
101
|
button: {
|
|
104
|
-
label: "Start
|
|
105
|
-
url: "#",
|
|
102
|
+
label: "Start Free Trial",
|
|
106
103
|
variant: "default",
|
|
107
104
|
size: "default",
|
|
108
105
|
icon: "none"
|
|
109
106
|
},
|
|
110
107
|
featuresLabel: "What's included:",
|
|
111
108
|
features: [
|
|
112
|
-
{ title: "
|
|
113
|
-
{ title: "
|
|
114
|
-
{ title: "
|
|
115
|
-
{ title: "
|
|
116
|
-
{ title: "
|
|
109
|
+
{ title: "Unlimited projects" },
|
|
110
|
+
{ title: "Advanced analytics" },
|
|
111
|
+
{ title: "Priority support" },
|
|
112
|
+
{ title: "Custom domains" },
|
|
113
|
+
{ title: "50 GB storage" }
|
|
117
114
|
],
|
|
118
115
|
isFeatured: true
|
|
119
116
|
},
|
|
120
117
|
{
|
|
121
118
|
badgeLabel: "",
|
|
122
|
-
title: "
|
|
123
|
-
description: "
|
|
124
|
-
price: "$
|
|
119
|
+
title: "Enterprise",
|
|
120
|
+
description: "For organizations that need advanced security and dedicated support.",
|
|
121
|
+
price: "$99",
|
|
125
122
|
period: "per month",
|
|
126
123
|
button: {
|
|
127
|
-
label: "
|
|
128
|
-
url: "#",
|
|
124
|
+
label: "Contact Sales",
|
|
129
125
|
variant: "outline",
|
|
130
126
|
size: "default",
|
|
131
127
|
icon: "none"
|
|
132
128
|
},
|
|
133
129
|
featuresLabel: "What's included:",
|
|
134
130
|
features: [
|
|
135
|
-
{ title: "
|
|
136
|
-
{ title: "
|
|
137
|
-
{ title: "
|
|
138
|
-
{ title: "
|
|
139
|
-
{ title: "
|
|
140
|
-
{ title: "
|
|
131
|
+
{ title: "Everything in Pro" },
|
|
132
|
+
{ title: "SSO and SAML" },
|
|
133
|
+
{ title: "Dedicated account manager" },
|
|
134
|
+
{ title: "99.99% uptime SLA" },
|
|
135
|
+
{ title: "Unlimited storage" },
|
|
136
|
+
{ title: "Custom integrations" }
|
|
141
137
|
],
|
|
142
138
|
isFeatured: false
|
|
143
139
|
}
|