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
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { image } from "../../../puck-base/core/fields.js";
|
|
2
2
|
import { Faq2 } from "./faq-2.js";
|
|
3
3
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
4
4
|
const defaultItems = [
|
|
5
5
|
{
|
|
6
|
-
question: "
|
|
7
|
-
answer: "
|
|
6
|
+
question: "How long does setup take?",
|
|
7
|
+
answer: "Most teams are up and running in under 5 minutes. Just connect your repo and you're good to go."
|
|
8
8
|
},
|
|
9
9
|
{
|
|
10
|
-
question: "
|
|
11
|
-
answer: "
|
|
10
|
+
question: "Do you integrate with my existing tools?",
|
|
11
|
+
answer: "Yes — we integrate with GitHub, GitLab, Slack, Jira, Linear, and 50+ other tools out of the box."
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
|
-
question: "
|
|
15
|
-
answer: "
|
|
14
|
+
question: "What kind of support do you offer?",
|
|
15
|
+
answer: "Free plans get community support. Pro and Enterprise plans include priority email and live chat support."
|
|
16
16
|
},
|
|
17
17
|
{
|
|
18
|
-
question: "
|
|
19
|
-
answer: "
|
|
18
|
+
question: "Can I migrate from another platform?",
|
|
19
|
+
answer: "We offer free migration assistance for teams on Pro and Enterprise plans. Most migrations take less than a day."
|
|
20
20
|
}
|
|
21
21
|
];
|
|
22
22
|
const conf = {
|
|
@@ -48,9 +48,9 @@ const conf = {
|
|
|
48
48
|
styles: createStylesField()
|
|
49
49
|
},
|
|
50
50
|
defaultProps: {
|
|
51
|
-
heading: "
|
|
51
|
+
heading: "Common questions about getting started",
|
|
52
52
|
items: defaultItems,
|
|
53
|
-
image:
|
|
53
|
+
image: { src: "https://images.pexels.com/photos/3183150/pexels-photo-3183150.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Tech team collaborating at a modern office workspace" },
|
|
54
54
|
imagePosition: "right",
|
|
55
55
|
styles: createStylesDefaults()
|
|
56
56
|
},
|
|
@@ -23,7 +23,13 @@ const Bento = ({
|
|
|
23
23
|
spacing: "tight"
|
|
24
24
|
}
|
|
25
25
|
),
|
|
26
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
26
|
+
/* @__PURE__ */ jsx("div", { className: cn(
|
|
27
|
+
"grid gap-8",
|
|
28
|
+
cards.length === 1 && "grid-cols-1",
|
|
29
|
+
cards.length === 2 && "grid-cols-1 sm:grid-cols-2",
|
|
30
|
+
cards.length === 3 && "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
|
|
31
|
+
cards.length >= 4 && "grid-cols-1 grid-rows-2 sm:grid-cols-2 lg:grid-cols-3"
|
|
32
|
+
), children: cards == null ? void 0 : cards.map((card, index) => /* @__PURE__ */ jsx(
|
|
27
33
|
CompoundCard,
|
|
28
34
|
{
|
|
29
35
|
image: card.image,
|
|
@@ -31,12 +37,15 @@ const Bento = ({
|
|
|
31
37
|
heading: card.heading,
|
|
32
38
|
description: card.description,
|
|
33
39
|
button: card.button,
|
|
34
|
-
className: cn(
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
className: cn(
|
|
41
|
+
cards.length >= 4 && {
|
|
42
|
+
"[grid-area:1/1/2/3]": index === 0,
|
|
43
|
+
"aspect-square [grid-area:1/3/2/4]": index === 1,
|
|
44
|
+
"aspect-square [grid-area:2/1/3/2]": index === 2,
|
|
45
|
+
"[grid-area:2/2/3/4]": index === 3
|
|
46
|
+
},
|
|
47
|
+
cards.length === 3 && index === 0 && "sm:col-span-2 lg:col-span-1"
|
|
48
|
+
)
|
|
40
49
|
},
|
|
41
50
|
index
|
|
42
51
|
)) })
|
|
@@ -17,13 +17,26 @@ const conf = {
|
|
|
17
17
|
url: "",
|
|
18
18
|
variant: "default"
|
|
19
19
|
},
|
|
20
|
-
heading: "
|
|
21
|
-
description: "
|
|
20
|
+
heading: "Everything you need to ship faster",
|
|
21
|
+
description: "Powerful features designed for modern teams.",
|
|
22
22
|
buttons: [],
|
|
23
|
-
cards:
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
cards: [
|
|
24
|
+
{
|
|
25
|
+
...cards.defaultItemProps,
|
|
26
|
+
heading: "Real-time Collaboration",
|
|
27
|
+
description: "Edit together with your team — no conflicts, no waiting."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
...cards.defaultItemProps,
|
|
31
|
+
heading: "Smart Automation",
|
|
32
|
+
description: "Automate repetitive tasks and focus on what matters."
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
...cards.defaultItemProps,
|
|
36
|
+
heading: "Built-in Analytics",
|
|
37
|
+
description: "Track performance with dashboards that update in real time."
|
|
38
|
+
}
|
|
39
|
+
],
|
|
27
40
|
styles: createStylesDefaults()
|
|
28
41
|
},
|
|
29
42
|
render: Bento
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { button, image, contentFields } from "../../../puck-base/core/fields.js";
|
|
2
2
|
import { FeatureCards } from "./feature-cards.js";
|
|
3
3
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
4
4
|
const conf = {
|
|
@@ -23,6 +23,7 @@ const conf = {
|
|
|
23
23
|
},
|
|
24
24
|
cards: {
|
|
25
25
|
type: "array",
|
|
26
|
+
max: 9,
|
|
26
27
|
getItemSummary: (item, index = 0) => item.heading || `Card ${index + 1}`,
|
|
27
28
|
arrayFields: {
|
|
28
29
|
image,
|
|
@@ -31,12 +32,11 @@ const conf = {
|
|
|
31
32
|
button
|
|
32
33
|
},
|
|
33
34
|
defaultItemProps: {
|
|
34
|
-
image:
|
|
35
|
-
heading: "
|
|
36
|
-
description: "
|
|
35
|
+
image: { src: "https://images.pexels.com/photos/546819/pexels-photo-546819.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Developer screen showing lines of code with syntax highlighting" },
|
|
36
|
+
heading: "Feature highlight",
|
|
37
|
+
description: "A brief explanation of this feature and why it matters.",
|
|
37
38
|
button: {
|
|
38
39
|
label: "",
|
|
39
|
-
url: "",
|
|
40
40
|
variant: "link",
|
|
41
41
|
size: "default",
|
|
42
42
|
icon: "move-right"
|
|
@@ -46,10 +46,10 @@ const conf = {
|
|
|
46
46
|
styles: createStylesField()
|
|
47
47
|
},
|
|
48
48
|
defaultProps: {
|
|
49
|
-
heading: "
|
|
50
|
-
description: "
|
|
49
|
+
heading: "Why teams choose us",
|
|
50
|
+
description: "Simple tools that solve complex problems — so you can focus on building great products.",
|
|
51
51
|
badge: {
|
|
52
|
-
label: "
|
|
52
|
+
label: "Features",
|
|
53
53
|
url: "",
|
|
54
54
|
variant: "default"
|
|
55
55
|
},
|
|
@@ -58,12 +58,11 @@ const conf = {
|
|
|
58
58
|
columns: 3,
|
|
59
59
|
cards: [
|
|
60
60
|
{
|
|
61
|
-
image:
|
|
62
|
-
heading: "
|
|
63
|
-
description: "
|
|
61
|
+
image: { src: "https://images.pexels.com/photos/546819/pexels-photo-546819.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Developer screen showing lines of code with syntax highlighting" },
|
|
62
|
+
heading: "Lightning-fast deploys",
|
|
63
|
+
description: "Push to production in seconds with zero-downtime deployments.",
|
|
64
64
|
button: {
|
|
65
65
|
label: "",
|
|
66
|
-
url: "",
|
|
67
66
|
variant: "link",
|
|
68
67
|
size: "default",
|
|
69
68
|
icon: "move-right"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { image } from "../../../puck-base/core/fields.js";
|
|
2
2
|
import { FeatureShowcase } from "./feature-showcase.js";
|
|
3
3
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
4
4
|
const conf = {
|
|
@@ -29,21 +29,21 @@ const conf = {
|
|
|
29
29
|
styles: createStylesField()
|
|
30
30
|
},
|
|
31
31
|
defaultProps: {
|
|
32
|
-
heading: "
|
|
33
|
-
description: "
|
|
34
|
-
image:
|
|
32
|
+
heading: "Designed for speed and clarity",
|
|
33
|
+
description: "Every detail is crafted to help your team move faster without sacrificing quality.",
|
|
34
|
+
image: { src: "https://images.pexels.com/photos/577210/pexels-photo-577210.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Sleek laptop showcasing data analytics and graphs on the screen in a bright room." },
|
|
35
35
|
features: [
|
|
36
36
|
{
|
|
37
|
-
title: "
|
|
38
|
-
description: "
|
|
37
|
+
title: "Instant preview",
|
|
38
|
+
description: "See changes in real time before they go live."
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
|
-
title: "
|
|
42
|
-
description: "
|
|
41
|
+
title: "Version control",
|
|
42
|
+
description: "Roll back to any previous version with one click."
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
|
-
title: "
|
|
46
|
-
description: "
|
|
45
|
+
title: "Team permissions",
|
|
46
|
+
description: "Fine-grained access control for every project."
|
|
47
47
|
}
|
|
48
48
|
],
|
|
49
49
|
layout: "image-right",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { buttons } from "../../../puck-base/core/fields.js";
|
|
1
|
+
import { icon, buttons } from "../../../puck-base/core/fields.js";
|
|
2
2
|
import { IconGrid } from "./icon-grid.js";
|
|
3
3
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
4
4
|
const conf = {
|
|
@@ -19,12 +19,7 @@ const conf = {
|
|
|
19
19
|
max: 12,
|
|
20
20
|
getItemSummary: (item, i = 0) => item.title || `Feature ${i + 1}`,
|
|
21
21
|
arrayFields: {
|
|
22
|
-
icon
|
|
23
|
-
type: "text",
|
|
24
|
-
ai: {
|
|
25
|
-
instructions: "Use a Lucide icon name in kebab-case (e.g. book-open, target, compass, zap, shield, globe, heart, star, rocket, lock, clock, check, sparkles, pen-tool, layers, users, message-circle). Any valid Lucide icon name works."
|
|
26
|
-
}
|
|
27
|
-
},
|
|
22
|
+
icon,
|
|
28
23
|
title: { type: "text" },
|
|
29
24
|
description: { type: "textarea" }
|
|
30
25
|
},
|
|
@@ -37,27 +32,27 @@ const conf = {
|
|
|
37
32
|
styles: createStylesField()
|
|
38
33
|
},
|
|
39
34
|
defaultProps: {
|
|
40
|
-
heading: "
|
|
41
|
-
description: "
|
|
35
|
+
heading: "Built for every workflow",
|
|
36
|
+
description: "From planning to launch, we've got you covered.",
|
|
42
37
|
columns: 3,
|
|
43
38
|
features: [
|
|
44
39
|
{
|
|
45
40
|
icon: "zap",
|
|
46
|
-
title: "
|
|
47
|
-
description: "
|
|
41
|
+
title: "API First",
|
|
42
|
+
description: "Build on a robust, well-documented API."
|
|
48
43
|
},
|
|
49
44
|
{
|
|
50
45
|
icon: "shield",
|
|
51
|
-
title: "
|
|
52
|
-
description: "
|
|
46
|
+
title: "Enterprise Security",
|
|
47
|
+
description: "SOC 2 compliant with end-to-end encryption."
|
|
53
48
|
},
|
|
54
|
-
{ icon: "globe", title: "Global", description: "
|
|
55
|
-
{ icon: "heart", title: "
|
|
56
|
-
{ icon: "rocket", title: "
|
|
49
|
+
{ icon: "globe", title: "Global CDN", description: "Sub-50ms response times worldwide." },
|
|
50
|
+
{ icon: "heart", title: "24/7 Support", description: "Expert help whenever you need it." },
|
|
51
|
+
{ icon: "rocket", title: "Cloud Native", description: "Serverless infrastructure that scales automatically." },
|
|
57
52
|
{
|
|
58
53
|
icon: "sparkles",
|
|
59
|
-
title: "
|
|
60
|
-
description: "
|
|
54
|
+
title: "Custom Integrations",
|
|
55
|
+
description: "Connect with the tools your team already uses."
|
|
61
56
|
}
|
|
62
57
|
],
|
|
63
58
|
styles: createStylesDefaults()
|
|
@@ -42,45 +42,40 @@ const conf = {
|
|
|
42
42
|
styles: createStylesField()
|
|
43
43
|
},
|
|
44
44
|
defaultProps: {
|
|
45
|
-
heading: "
|
|
46
|
-
description: "
|
|
45
|
+
heading: "Powerful under the hood",
|
|
46
|
+
description: "Advanced capabilities that scale with your business.",
|
|
47
47
|
layout: "grid",
|
|
48
48
|
columns: 3,
|
|
49
49
|
features: [
|
|
50
50
|
{
|
|
51
|
-
icon: "
|
|
52
|
-
title: "
|
|
53
|
-
description: "
|
|
51
|
+
icon: "test-tube-diagonal",
|
|
52
|
+
title: "Automated Testing",
|
|
53
|
+
description: "Run your test suite on every push with parallel execution and smart retries."
|
|
54
54
|
},
|
|
55
55
|
{
|
|
56
|
-
icon: "
|
|
57
|
-
title: "
|
|
58
|
-
description: "
|
|
56
|
+
icon: "git-branch",
|
|
57
|
+
title: "CI/CD Pipeline",
|
|
58
|
+
description: "Fully managed continuous integration and deployment with zero configuration."
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
|
-
icon: "
|
|
62
|
-
title: "
|
|
63
|
-
description: "
|
|
61
|
+
icon: "scroll-text",
|
|
62
|
+
title: "Real-time Logs",
|
|
63
|
+
description: "Stream logs from any environment with powerful search and filtering."
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
|
-
icon: "
|
|
67
|
-
title: "
|
|
68
|
-
description: "
|
|
66
|
+
icon: "globe",
|
|
67
|
+
title: "Custom Domains",
|
|
68
|
+
description: "Connect your own domains with automatic SSL provisioning and renewal."
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
|
-
icon: "
|
|
72
|
-
title: "
|
|
73
|
-
description: "
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
icon: "moon",
|
|
77
|
-
title: "Reflective Accents",
|
|
78
|
-
description: "360° reflective details and a blinker attachment loop for visibility during dawn and dusk hikes."
|
|
71
|
+
icon: "webhook",
|
|
72
|
+
title: "Webhooks",
|
|
73
|
+
description: "Trigger external services and workflows with configurable webhook events."
|
|
79
74
|
}
|
|
80
75
|
],
|
|
81
76
|
image: {
|
|
82
77
|
src: getPlaceholderImageUrl("1200x800", "Product Image"),
|
|
83
|
-
alt: "
|
|
78
|
+
alt: "Platform features overview"
|
|
84
79
|
},
|
|
85
80
|
styles: createStylesDefaults()
|
|
86
81
|
},
|
|
@@ -61,33 +61,28 @@ const conf = {
|
|
|
61
61
|
styles: createStylesField()
|
|
62
62
|
},
|
|
63
63
|
defaultProps: {
|
|
64
|
-
companyName: "
|
|
65
|
-
tagLine: "Build
|
|
66
|
-
address: "
|
|
64
|
+
companyName: "Acme Inc",
|
|
65
|
+
tagLine: "Build faster. Ship with confidence.",
|
|
66
|
+
address: "123 Market St\nSan Francisco, CA 94105\n© 2024 Acme, Inc.",
|
|
67
67
|
navigation: [
|
|
68
|
-
{
|
|
69
|
-
label: "Home",
|
|
70
|
-
url: "/",
|
|
71
|
-
items: []
|
|
72
|
-
},
|
|
73
68
|
{
|
|
74
69
|
label: "Product",
|
|
75
70
|
items: [
|
|
76
71
|
{
|
|
77
|
-
label: "
|
|
78
|
-
url: "/
|
|
72
|
+
label: "Features",
|
|
73
|
+
url: "/features"
|
|
79
74
|
},
|
|
80
75
|
{
|
|
81
|
-
label: "
|
|
82
|
-
url: "/
|
|
76
|
+
label: "Pricing",
|
|
77
|
+
url: "/pricing"
|
|
83
78
|
},
|
|
84
79
|
{
|
|
85
|
-
label: "
|
|
86
|
-
url: "/
|
|
80
|
+
label: "Changelog",
|
|
81
|
+
url: "/changelog"
|
|
87
82
|
},
|
|
88
83
|
{
|
|
89
|
-
label: "
|
|
90
|
-
url: "/
|
|
84
|
+
label: "Docs",
|
|
85
|
+
url: "/docs"
|
|
91
86
|
}
|
|
92
87
|
]
|
|
93
88
|
},
|
|
@@ -95,19 +90,19 @@ const conf = {
|
|
|
95
90
|
label: "Company",
|
|
96
91
|
items: [
|
|
97
92
|
{
|
|
98
|
-
label: "About
|
|
93
|
+
label: "About",
|
|
99
94
|
url: "/about"
|
|
100
95
|
},
|
|
101
96
|
{
|
|
102
|
-
label: "
|
|
103
|
-
url: "/
|
|
97
|
+
label: "Blog",
|
|
98
|
+
url: "/blog"
|
|
104
99
|
},
|
|
105
100
|
{
|
|
106
|
-
label: "
|
|
107
|
-
url: "/
|
|
101
|
+
label: "Careers",
|
|
102
|
+
url: "/careers"
|
|
108
103
|
},
|
|
109
104
|
{
|
|
110
|
-
label: "Contact
|
|
105
|
+
label: "Contact",
|
|
111
106
|
url: "/contact"
|
|
112
107
|
}
|
|
113
108
|
]
|
|
@@ -2,8 +2,8 @@ import { description, heading } from "../../../puck-base/core/fields.js";
|
|
|
2
2
|
import { Gallery } from "./gallery.js";
|
|
3
3
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
4
4
|
const defaultImage = {
|
|
5
|
-
src: "https://
|
|
6
|
-
alt: "
|
|
5
|
+
src: "https://images.pexels.com/photos/3888151/pexels-photo-3888151.jpeg?auto=compress&cs=tinysrgb&w=1200",
|
|
6
|
+
alt: "Developer workspace with laptop showing code",
|
|
7
7
|
caption: ""
|
|
8
8
|
};
|
|
9
9
|
const conf = {
|
|
@@ -52,12 +52,16 @@ const conf = {
|
|
|
52
52
|
})
|
|
53
53
|
},
|
|
54
54
|
defaultProps: {
|
|
55
|
-
heading: "
|
|
56
|
-
description: "A
|
|
57
|
-
images:
|
|
58
|
-
|
|
59
|
-
alt:
|
|
60
|
-
|
|
55
|
+
heading: "Product Showcase",
|
|
56
|
+
description: "A visual tour of our platform's key features and interfaces.",
|
|
57
|
+
images: [
|
|
58
|
+
{ src: "https://images.pexels.com/photos/3888151/pexels-photo-3888151.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Developer workspace with laptop showing program code on screen", caption: "" },
|
|
59
|
+
{ src: "https://images.pexels.com/photos/546819/pexels-photo-546819.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "MacBook Pro displaying lines of code with colorful syntax highlighting", caption: "" },
|
|
60
|
+
{ src: "https://images.pexels.com/photos/574071/pexels-photo-574071.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Computer monitor showing colorful code on dark background", caption: "" },
|
|
61
|
+
{ src: "https://images.pexels.com/photos/4218883/pexels-photo-4218883.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Clean workspace with computer displaying code editor", caption: "" },
|
|
62
|
+
{ src: "https://images.pexels.com/photos/270404/pexels-photo-270404.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Source code displayed on computer screen in developer office", caption: "" },
|
|
63
|
+
{ src: "https://images.pexels.com/photos/577585/pexels-photo-577585.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Minimalist developer desk setup with laptop and coffee", caption: "" }
|
|
64
|
+
],
|
|
61
65
|
styles: createStylesDefaults({ columns: 3, gap: "md", aspectRatio: "auto" })
|
|
62
66
|
},
|
|
63
67
|
render: Gallery
|
|
@@ -59,21 +59,29 @@ const Gallery2 = ({
|
|
|
59
59
|
/* @__PURE__ */ jsx(
|
|
60
60
|
"button",
|
|
61
61
|
{
|
|
62
|
-
onClick: () =>
|
|
62
|
+
onClick: (e) => {
|
|
63
|
+
e.stopPropagation();
|
|
64
|
+
emblaApi == null ? void 0 : emblaApi.scrollPrev();
|
|
65
|
+
},
|
|
66
|
+
style: { pointerEvents: "auto" },
|
|
63
67
|
disabled: !canScrollPrev,
|
|
64
|
-
className: "absolute left-4 top-1/2 -translate-y-1/2 z-10 flex h-10 w-10 items-center justify-center rounded-full bg-background/90 shadow-md transition hover:bg-background disabled:opacity-30",
|
|
68
|
+
className: "absolute left-4 top-1/2 -translate-y-1/2 z-10 flex h-10 w-10 items-center justify-center rounded-full bg-background/90 shadow-md transition hover:bg-background disabled:opacity-30 cursor-pointer",
|
|
65
69
|
"aria-label": "Previous image",
|
|
66
|
-
children: /* @__PURE__ */ jsx(ChevronLeft, { className: "h-5 w-5 text-foreground" })
|
|
70
|
+
children: /* @__PURE__ */ jsx(ChevronLeft, { className: "h-5 w-5 text-foreground", style: { pointerEvents: "none" } })
|
|
67
71
|
}
|
|
68
72
|
),
|
|
69
73
|
/* @__PURE__ */ jsx(
|
|
70
74
|
"button",
|
|
71
75
|
{
|
|
72
|
-
onClick: () =>
|
|
76
|
+
onClick: (e) => {
|
|
77
|
+
e.stopPropagation();
|
|
78
|
+
emblaApi == null ? void 0 : emblaApi.scrollNext();
|
|
79
|
+
},
|
|
80
|
+
style: { pointerEvents: "auto" },
|
|
73
81
|
disabled: !canScrollNext,
|
|
74
|
-
className: "absolute right-4 top-1/2 -translate-y-1/2 z-10 flex h-10 w-10 items-center justify-center rounded-full bg-background/90 shadow-md transition hover:bg-background disabled:opacity-30",
|
|
82
|
+
className: "absolute right-4 top-1/2 -translate-y-1/2 z-10 flex h-10 w-10 items-center justify-center rounded-full bg-background/90 shadow-md transition hover:bg-background disabled:opacity-30 cursor-pointer",
|
|
75
83
|
"aria-label": "Next image",
|
|
76
|
-
children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-5 w-5 text-foreground" })
|
|
84
|
+
children: /* @__PURE__ */ jsx(ChevronRight, { className: "h-5 w-5 text-foreground", style: { pointerEvents: "none" } })
|
|
77
85
|
}
|
|
78
86
|
)
|
|
79
87
|
] })
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Gallery2 } from "./gallery-2.js";
|
|
2
2
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
3
3
|
const defaultImage = {
|
|
4
|
-
src: "https://
|
|
5
|
-
alt: "
|
|
4
|
+
src: "https://images.pexels.com/photos/3861969/pexels-photo-3861969.jpeg?auto=compress&cs=tinysrgb&w=1200",
|
|
5
|
+
alt: "Developer working at desk with multiple monitors showing code"
|
|
6
6
|
};
|
|
7
7
|
const conf = {
|
|
8
8
|
fields: {
|
|
@@ -19,7 +19,7 @@ const conf = {
|
|
|
19
19
|
max: 10,
|
|
20
20
|
getItemSummary: (item, index = 0) => item.alt || `Image ${index + 1}`,
|
|
21
21
|
arrayFields: {
|
|
22
|
-
src: { type: "image", label: "
|
|
22
|
+
src: { type: "image", label: "Image" },
|
|
23
23
|
alt: { type: "text", label: "Alt Text" }
|
|
24
24
|
},
|
|
25
25
|
defaultItemProps: defaultImage
|
|
@@ -27,12 +27,13 @@ const conf = {
|
|
|
27
27
|
styles: createStylesField()
|
|
28
28
|
},
|
|
29
29
|
defaultProps: {
|
|
30
|
-
heading: "
|
|
31
|
-
description: "
|
|
32
|
-
images:
|
|
33
|
-
|
|
34
|
-
alt:
|
|
35
|
-
|
|
30
|
+
heading: "Built by developers, for developers",
|
|
31
|
+
description: "Explore how teams use our tools to design, build, and ship products that make an impact.",
|
|
32
|
+
images: [
|
|
33
|
+
{ src: "https://images.pexels.com/photos/3861969/pexels-photo-3861969.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Developer working at desk with multiple monitors showing code" },
|
|
34
|
+
{ src: "https://images.pexels.com/photos/1181677/pexels-photo-1181677.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Two developers collaborating on code at a shared workspace" },
|
|
35
|
+
{ src: "https://images.pexels.com/photos/3183150/pexels-photo-3183150.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Tech team collaborating around laptops at a modern office table" }
|
|
36
|
+
],
|
|
36
37
|
styles: createStylesDefaults()
|
|
37
38
|
},
|
|
38
39
|
render: Gallery2
|
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { getPlaceholderImageUrl } from "../../../puck-base/core/fields.js";
|
|
2
1
|
import { Gallery3 } from "./gallery-3.js";
|
|
3
2
|
import { createStylesDefaults, createStylesField } from "../../../puck-base/core/styles.js";
|
|
4
|
-
const
|
|
5
|
-
src:
|
|
6
|
-
alt:
|
|
7
|
-
caption: ""
|
|
8
|
-
}
|
|
3
|
+
const pexelsImages = [
|
|
4
|
+
{ src: "https://images.pexels.com/photos/113850/pexels-photo-113850.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Technology desktop showing colorful source code on screen", caption: "" },
|
|
5
|
+
{ src: "https://images.pexels.com/photos/196644/pexels-photo-196644.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Top-down view of laptop displaying code in a modern workspace", caption: "" },
|
|
6
|
+
{ src: "https://images.pexels.com/photos/6424590/pexels-photo-6424590.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Close-up of laptop screen showing programming code", caption: "" },
|
|
7
|
+
{ src: "https://images.pexels.com/photos/1181671/pexels-photo-1181671.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Developer focused on coding at laptop in a bright workspace", caption: "" },
|
|
8
|
+
{ src: "https://images.pexels.com/photos/3888151/pexels-photo-3888151.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Modern laptop with program code on screen at workplace", caption: "" },
|
|
9
|
+
{ src: "https://images.pexels.com/photos/3183150/pexels-photo-3183150.jpeg?auto=compress&cs=tinysrgb&w=1200", alt: "Tech team working together at a collaborative desk setup", caption: "" }
|
|
10
|
+
];
|
|
11
|
+
const makeDefaultImage = (i) => pexelsImages[i % pexelsImages.length];
|
|
9
12
|
const conf = {
|
|
10
13
|
fields: {
|
|
11
14
|
heading: {
|
|
@@ -21,7 +24,7 @@ const conf = {
|
|
|
21
24
|
max: 9,
|
|
22
25
|
getItemSummary: (item, index = 0) => item.alt || `Image ${index + 1}`,
|
|
23
26
|
arrayFields: {
|
|
24
|
-
src: { type: "image", label: "
|
|
27
|
+
src: { type: "image", label: "Image" },
|
|
25
28
|
alt: { type: "text", label: "Alt Text" },
|
|
26
29
|
caption: { type: "text", label: "Caption" }
|
|
27
30
|
},
|
|
@@ -30,24 +33,24 @@ const conf = {
|
|
|
30
33
|
showCaptions: {
|
|
31
34
|
type: "radio",
|
|
32
35
|
options: [
|
|
33
|
-
{ label: "
|
|
34
|
-
{ label: "
|
|
36
|
+
{ label: "Show", value: true },
|
|
37
|
+
{ label: "Hide", value: false }
|
|
35
38
|
]
|
|
36
39
|
},
|
|
37
40
|
styles: createStylesField({
|
|
38
41
|
gap: {
|
|
39
42
|
type: "radio",
|
|
40
43
|
options: [
|
|
41
|
-
{ label: "
|
|
42
|
-
{ label: "
|
|
43
|
-
{ label: "
|
|
44
|
+
{ label: "Compact", value: "sm" },
|
|
45
|
+
{ label: "Default", value: "md" },
|
|
46
|
+
{ label: "Spacious", value: "lg" }
|
|
44
47
|
]
|
|
45
48
|
}
|
|
46
49
|
})
|
|
47
50
|
},
|
|
48
51
|
defaultProps: {
|
|
49
|
-
heading: "
|
|
50
|
-
description: "A curated
|
|
52
|
+
heading: "Design that speaks for itself",
|
|
53
|
+
description: "A curated look at the interfaces and experiences our platform helps bring to life.",
|
|
51
54
|
images: Array.from({ length: 6 }, (_, i) => makeDefaultImage(i)),
|
|
52
55
|
showCaptions: true,
|
|
53
56
|
styles: createStylesDefaults({ gap: "md" })
|
|
@@ -18,8 +18,11 @@ type SecondaryNavigationItem = NavigationLink & {
|
|
|
18
18
|
};
|
|
19
19
|
type NavigationItem = NavigationLink & {
|
|
20
20
|
url?: string;
|
|
21
|
+
action?: Action;
|
|
21
22
|
description?: string;
|
|
22
|
-
cta?: CompoundButtonProps
|
|
23
|
+
cta?: CompoundButtonProps & {
|
|
24
|
+
url?: string;
|
|
25
|
+
};
|
|
23
26
|
items?: SubmenuLink[];
|
|
24
27
|
};
|
|
25
28
|
export interface HeaderProps extends ILayoutProps {
|