dune-react 0.0.10 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/dist/components/puck-base/article-card.js +1 -1
  2. package/dist/components/puck-base/button.d.ts +0 -1
  3. package/dist/components/puck-base/button.js +3 -3
  4. package/dist/components/puck-base/card.js +0 -1
  5. package/dist/components/puck-base/content.js +0 -1
  6. package/dist/components/puck-base/core/fields.d.ts +1 -23
  7. package/dist/components/puck-base/core/fields.js +6 -7
  8. package/dist/components/puck-base/core/styles.d.ts +102 -33
  9. package/dist/components/puck-base/core/styles.js +45 -81
  10. package/dist/components/puck-base/core/with-editable.d.ts +4 -9
  11. package/dist/components/puck-base/core/with-editable.js +43 -62
  12. package/dist/components/puck-base/{action-field.d.ts → fields/action-field.d.ts} +1 -1
  13. package/dist/components/puck-base/{action-field.js → fields/action-field.js} +91 -16
  14. package/dist/components/puck-base/fields/auto-field.d.ts +0 -1
  15. package/dist/components/puck-base/fields/auto-field.js +2 -90
  16. package/dist/components/puck-base/form.js +0 -1
  17. package/dist/components/puck-base/index.d.ts +1 -1
  18. package/dist/components/puck-base/navigation-menu.d.ts +18 -0
  19. package/dist/components/puck-base/navigation-menu.js +202 -0
  20. package/dist/components/puck-block/cta-sections/banner-cta-1/banner-cta.d.ts +2 -1
  21. package/dist/components/puck-block/cta-sections/banner-cta-1/banner-cta.js +6 -5
  22. package/dist/components/puck-block/cta-sections/banner-cta-1/index.js +2 -2
  23. package/dist/components/puck-block/cta-sections/gradient-cta-1/gradient-cta.js +34 -12
  24. package/dist/components/puck-block/cta-sections/promo-section-1/index.js +1 -2
  25. package/dist/components/puck-block/cta-sections/promo-section-1/promo-section.js +2 -2
  26. package/dist/components/puck-block/faq-sections/accordion-1/accordion.js +8 -3
  27. package/dist/components/puck-block/feature-sections/feature-cards-1/index.js +0 -2
  28. package/dist/components/puck-block/feature-sections/icon-grid-1/icon-grid.js +1 -1
  29. package/dist/components/puck-block/gallery-sections/gallery-1/index.js +1 -1
  30. package/dist/components/puck-block/gallery-sections/gallery-2/gallery-2.js +14 -6
  31. package/dist/components/puck-block/gallery-sections/gallery-2/index.js +1 -1
  32. package/dist/components/puck-block/header-sections/header-1/header.d.ts +4 -1
  33. package/dist/components/puck-block/header-sections/header-1/header.js +26 -19
  34. package/dist/components/puck-block/header-sections/header-1/index.js +13 -18
  35. package/dist/components/puck-block/hero-sections/fullscreen-hero-1/fullscreen-hero.js +15 -2
  36. package/dist/components/puck-block/hero-sections/fullscreen-hero-1/index.js +0 -1
  37. package/dist/components/puck-block/hero-sections/gradient-hero-1/gradient-hero.js +2 -2
  38. package/dist/components/puck-block/hero-sections/gradient-hero-1/index.js +1 -0
  39. package/dist/components/puck-block/hero-sections/grid-hero-1/grid-hero.js +1 -1
  40. package/dist/components/puck-block/hero-sections/hero-1/hero.js +1 -1
  41. package/dist/components/puck-block/hero-sections/image-hero-1/image-hero.d.ts +0 -1
  42. package/dist/components/puck-block/hero-sections/image-hero-1/image-hero.js +1 -1
  43. package/dist/components/puck-block/hero-sections/image-hero-1/index.js +21 -4
  44. package/dist/components/puck-block/hero-sections/video-hero-1/video-hero.js +1 -1
  45. package/dist/components/puck-block/location-sections/location-1/index.js +0 -3
  46. package/dist/components/puck-block/location-sections/location-1/location.d.ts +1 -0
  47. package/dist/components/puck-block/location-sections/location-1/location.js +1 -2
  48. package/dist/components/puck-block/location-sections/location-2/index.js +0 -3
  49. package/dist/components/puck-block/location-sections/location-2/location.d.ts +1 -0
  50. package/dist/components/puck-block/location-sections/location-2/location.js +1 -2
  51. package/dist/components/puck-block/location-sections/location-3/location.d.ts +2 -0
  52. package/dist/components/puck-block/location-sections/location-3/location.js +5 -2
  53. package/dist/components/puck-block/metrics-sections/stats-2/index.js +0 -2
  54. package/dist/components/puck-block/metrics-sections/stats-2/stats-2.js +0 -1
  55. package/dist/components/puck-block/metrics-sections/stats-3/index.js +0 -2
  56. package/dist/components/puck-block/metrics-sections/stats-3/stats-3.js +14 -1
  57. package/dist/components/puck-block/pricing-sections/pricing-1/index.js +0 -2
  58. package/dist/components/puck-block/pricing-sections/pricing-2/index.js +0 -4
  59. package/dist/components/puck-block/showcase-sections/before-after-1/index.js +0 -1
  60. package/dist/components/puck-block/showcase-sections/case-study-1/case-study.js +1 -1
  61. package/dist/components/puck-block/showcase-sections/case-study-1/index.js +1 -1
  62. package/dist/components/puck-block/team-sections/team-grid-1/index.js +1 -1
  63. package/dist/components/puck-block/team-sections/team-grid-2/index.js +0 -2
  64. package/dist/components/puck-block/testimonial-sections/logo-marquee-1/index.js +1 -1
  65. package/dist/components/puck-block/testimonial-sections/logo-marquee-1/logo-marquee.js +1 -1
  66. package/dist/components/puck-block/testimonial-sections/review-section-1/index.js +1 -1
  67. package/dist/components/puck-block/testimonial-sections/testimonials-1/testimonials.js +30 -10
  68. package/dist/components/puck-block/text-sections/articles-1/articles.js +1 -1
  69. package/dist/components/puck-block/text-sections/articles-1/index.js +1 -2
  70. package/dist/components/puck-block/text-sections/content-section-1/content-section.js +0 -1
  71. package/dist/components/puck-block/text-sections/content-section-1/index.js +0 -2
  72. package/dist/components/puck-block/text-sections/tab-section-1/tab-section.js +7 -3
  73. package/dist/components/shadcn/navigation-menu.js +8 -33
  74. package/dist/index.js +1 -1
  75. package/package.json +2 -2
@@ -3,11 +3,15 @@ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
3
  import { useState, Fragment as Fragment$1 } from "react";
4
4
  import { cn } from "../../../../utils/css-utils.js";
5
5
  import { Button } from "../../../shadcn/button.js";
6
- import { NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuLink, NavigationMenuTrigger, NavigationMenuContent } from "../../../shadcn/navigation-menu.js";
6
+ import { NavigationMenu, NavigationMenuList, NavigationMenuItem, NavigationMenuLink, NavigationMenuTrigger, NavigationMenuContent } from "../../../puck-base/navigation-menu.js";
7
7
  import { MoveRight, X, Menu } from "lucide-react";
8
8
  import { registerOverlayPortal } from "@puckeditor/core";
9
9
  import { CompoundButton } from "../../../puck-base/button.js";
10
10
  import { ErrorBoundary } from "../../../puck-base/error-boundary.js";
11
+ import { resolveActionUrl } from "../../../puck-base/core/types.js";
12
+ function coerceAction(action, legacyUrl) {
13
+ return action ?? (legacyUrl ? /^https?:\/\//i.test(legacyUrl) ? { type: "external", externalUrl: legacyUrl } : { type: "page", pageUrl: legacyUrl } : void 0);
14
+ }
11
15
  const HEADER_SECTION_VARS = {
12
16
  dark: {
13
17
  "--background": "oklch(0.145 0 0)",
@@ -38,7 +42,9 @@ const Header = ({
38
42
  return /* @__PURE__ */ jsx(ErrorBoundary, { children: /* @__PURE__ */ jsx(
39
43
  "header",
40
44
  {
41
- className: cn("bg-background text-foreground sticky top-0 left-0 z-40 w-full"),
45
+ className: cn(
46
+ "bg-background text-foreground sticky top-0 left-0 z-40 w-full"
47
+ ),
42
48
  style: {
43
49
  ...(styles == null ? void 0 : styles.backgroundColor) ? { backgroundColor: styles.backgroundColor } : {},
44
50
  ...sectionVars
@@ -46,11 +52,11 @@ const Header = ({
46
52
  children: /* @__PURE__ */ jsxs("div", { className: "relative container mx-auto flex min-h-20 flex-row items-center gap-4 lg:grid lg:grid-cols-[auto_1fr_auto]", children: [
47
53
  /* @__PURE__ */ jsx("div", { className: "flex lg:justify-start", children: /* @__PURE__ */ jsx("p", { className: "font-semibold whitespace-nowrap", children: companyName }) }),
48
54
  /* @__PURE__ */ jsx("div", { className: "hidden flex-row items-center justify-center gap-4 lg:flex", children: Array.isArray(navigation) && navigation.length > 0 ? /* @__PURE__ */ jsx(NavigationMenu, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx(NavigationMenuList, { className: "flex flex-row justify-center gap-4", children: navigation.map((item, index) => {
49
- var _a, _b;
55
+ var _a;
50
56
  return /* @__PURE__ */ jsx(NavigationMenuItem, { children: item.url ? /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsx(
51
57
  CompoundButton,
52
58
  {
53
- url: item.url,
59
+ action: coerceAction(item.action, item.url),
54
60
  label: item.label,
55
61
  variant: "ghost"
56
62
  }
@@ -69,20 +75,22 @@ const Header = ({
69
75
  /* @__PURE__ */ jsx("p", { className: "text-base", children: item.label }),
70
76
  item.description ? /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-sm", children: item.description }) : null
71
77
  ] }),
72
- ((_a = item.cta) == null ? void 0 : _a.url) ? /* @__PURE__ */ jsx(
73
- CompoundButton,
74
- {
75
- label: item.cta.label,
76
- url: item.cta.url,
77
- action: item.cta.action,
78
- variant: item.cta.variant,
79
- size: item.cta.size,
80
- icon: item.cta.icon,
81
- className: "mt-10"
82
- }
83
- ) : null
78
+ (() => {
79
+ const ctaAction = item.cta && coerceAction(item.cta.action, item.cta.url);
80
+ return ctaAction && resolveActionUrl(ctaAction) ? /* @__PURE__ */ jsx(
81
+ CompoundButton,
82
+ {
83
+ label: item.cta.label,
84
+ action: ctaAction,
85
+ variant: item.cta.variant,
86
+ size: item.cta.size,
87
+ icon: item.cta.icon,
88
+ className: "mt-10"
89
+ }
90
+ ) : null;
91
+ })()
84
92
  ] }),
85
- /* @__PURE__ */ jsx("div", { className: "flex h-full flex-col justify-end text-sm", children: (_b = item.items) == null ? void 0 : _b.map((subItem, index2) => /* @__PURE__ */ jsxs(
93
+ /* @__PURE__ */ jsx("div", { className: "flex h-full flex-col justify-end text-sm", children: (_a = item.items) == null ? void 0 : _a.map((subItem, index2) => /* @__PURE__ */ jsxs(
86
94
  NavigationMenuLink,
87
95
  {
88
96
  href: subItem.url,
@@ -105,8 +113,7 @@ const Header = ({
105
113
  variant: item.variant,
106
114
  size: item.size,
107
115
  icon: item.icon,
108
- url: item.url,
109
- action: item.action,
116
+ action: coerceAction(item.action, item.url),
110
117
  className: cn({
111
118
  "hidden md:inline": item.isHiddenOnMobile === "true"
112
119
  })
@@ -77,28 +77,23 @@ const defaultNavigationItems = [
77
77
  ];
78
78
  const defaultActionItems = [
79
79
  {
80
- label: "Book a demo",
81
- url: "#",
82
- variant: "ghost",
83
- icon: "none",
84
- divider: "true",
85
- isHiddenOnMobile: "true"
86
- },
87
- {
88
- label: "Sign in",
89
- url: "#",
90
- variant: "outline",
91
- icon: "none",
92
- divider: "false",
93
- isHiddenOnMobile: "false"
94
- },
95
- {
96
- label: "Get started",
80
+ label: "Get Start",
97
81
  url: "#",
82
+ action: {
83
+ type: "email",
84
+ pageUrl: "",
85
+ externalUrl: "#",
86
+ openInNewTab: "false",
87
+ email: "",
88
+ subject: "",
89
+ phone: "",
90
+ sectionId: "",
91
+ downloadUrl: ""
92
+ },
98
93
  variant: "default",
99
94
  icon: "none",
100
95
  divider: "false",
101
- isHiddenOnMobile: "true"
96
+ isHiddenOnMobile: "false"
102
97
  }
103
98
  ];
104
99
  const conf = {
@@ -15,7 +15,7 @@ const FullscreenHero = ({
15
15
  backgroundImage,
16
16
  styles
17
17
  }) => {
18
- const sectionStyle = (styles == null ? void 0 : styles.sectionStyle) ?? "dark";
18
+ const sectionStyle = styles == null ? void 0 : styles.sectionStyle;
19
19
  const overlay = (styles == null ? void 0 : styles.overlay) ?? "dark";
20
20
  const backgroundColor = styles == null ? void 0 : styles.backgroundColor;
21
21
  const padding = styles == null ? void 0 : styles.padding;
@@ -60,7 +60,20 @@ function Content({ badge, heading, description, buttons }) {
60
60
  /* @__PURE__ */ jsx("hr", { className: "w-full my-4 border-foreground/20" }),
61
61
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col md:flex-row justify-between items-start md:items-end gap-6 mt-4", children: [
62
62
  description && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-base leading-relaxed max-w-lg", children: description }),
63
- buttons && buttons.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex gap-4", children: buttons.map((btn, i) => /* @__PURE__ */ jsx(CompoundButton, { ...btn }, i)) })
63
+ buttons && buttons.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex gap-4", children: buttons.map((btn, i) => /* @__PURE__ */ jsx(
64
+ CompoundButton,
65
+ {
66
+ label: btn.label,
67
+ action: btn.action,
68
+ variant: btn.variant,
69
+ size: btn.size,
70
+ icon: btn.icon,
71
+ type: btn.type,
72
+ disabled: btn.disabled,
73
+ className: btn.className
74
+ },
75
+ i
76
+ )) })
64
77
  ] })
65
78
  ] });
66
79
  }
@@ -32,7 +32,6 @@ const conf = {
32
32
  buttons: [
33
33
  {
34
34
  label: "Get Started",
35
- url: "#",
36
35
  variant: "default",
37
36
  size: "default",
38
37
  icon: "none"
@@ -15,7 +15,7 @@ const GradientHero = ({
15
15
  CompoundContainer,
16
16
  {
17
17
  padding: styles == null ? void 0 : styles.padding,
18
- sectionStyle: (styles == null ? void 0 : styles.sectionStyle) ?? "dark",
18
+ sectionStyle: styles == null ? void 0 : styles.sectionStyle,
19
19
  backgroundColor: styles == null ? void 0 : styles.backgroundColor,
20
20
  children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-4xl text-center", children: [
21
21
  badge && /* @__PURE__ */ jsx("span", { className: "bg-primary/10 text-primary mb-6 inline-block rounded-full px-3 py-1 text-xs font-medium", children: badge.label }),
@@ -34,7 +34,7 @@ const GradientHero = ({
34
34
  CompoundButton,
35
35
  {
36
36
  label: btn.label,
37
- url: btn.url,
37
+ action: btn.action,
38
38
  variant: btn.variant,
39
39
  size: btn.size,
40
40
  icon: btn.icon
@@ -25,6 +25,7 @@ const conf = {
25
25
  { label: "Get Started Free", icon: "move-right", variant: "default" }
26
26
  ],
27
27
  styles: createStylesDefaults({
28
+ sectionStyle: "dark",
28
29
  gradientFrom: "var(--primary)",
29
30
  gradientTo: "var(--chart-2)"
30
31
  })
@@ -73,7 +73,7 @@ const GridHero = ({
73
73
  CompoundButton,
74
74
  {
75
75
  label: button.label,
76
- url: button.url,
76
+ action: button.action,
77
77
  variant: button.variant,
78
78
  size: button.size,
79
79
  className: button.variant === "outline" ? "border-foreground border-2" : void 0
@@ -127,7 +127,7 @@ const HeroContent = ({
127
127
  CompoundButton,
128
128
  {
129
129
  label: button.label,
130
- url: button.url,
130
+ action: button.action,
131
131
  variant: button.variant,
132
132
  size: button.size,
133
133
  icon: button.icon
@@ -14,7 +14,6 @@ export interface ImageHeroProps {
14
14
  padding?: CompoundContainerProps["padding"];
15
15
  sectionStyle?: CompoundContainerProps["sectionStyle"];
16
16
  backgroundColor?: string;
17
- backgroundImage?: string;
18
17
  overlay?: "none" | "dark" | "gradient";
19
18
  align?: "left" | "center";
20
19
  minHeight?: "medium" | "large" | "full";
@@ -74,7 +74,7 @@ const ImageHero = ({
74
74
  CompoundButton,
75
75
  {
76
76
  label: button.label,
77
- url: button.url,
77
+ action: button.action,
78
78
  variant: button.variant,
79
79
  size: button.size,
80
80
  icon: button.icon
@@ -1,6 +1,25 @@
1
1
  import { buttons, badge } from "../../../puck-base/core/fields.js";
2
+ import { heroStylesDefaults, createStylesField, sectionOverlay } from "../../../puck-base/core/styles.js";
2
3
  import { ImageHero } from "./image-hero.js";
3
- import { heroStylesDefaults, heroStylesField } from "../../../puck-base/core/styles.js";
4
+ const imageHeroStylesField = createStylesField({
5
+ overlay: sectionOverlay,
6
+ align: {
7
+ type: "radio",
8
+ options: [
9
+ { label: "Left", value: "left" },
10
+ { label: "Center", value: "center" }
11
+ ]
12
+ },
13
+ minHeight: {
14
+ type: "select",
15
+ label: "Min Height",
16
+ options: [
17
+ { label: "Medium", value: "medium" },
18
+ { label: "Large", value: "large" },
19
+ { label: "Full", value: "full" }
20
+ ]
21
+ }
22
+ });
4
23
  const conf = {
5
24
  fields: {
6
25
  heading: { type: "text", contentEditable: true },
@@ -15,7 +34,7 @@ const conf = {
15
34
  stream: false
16
35
  }
17
36
  },
18
- styles: heroStylesField
37
+ styles: imageHeroStylesField
19
38
  },
20
39
  defaultProps: {
21
40
  heading: "Your Story Starts Here",
@@ -24,14 +43,12 @@ const conf = {
24
43
  buttons: [
25
44
  {
26
45
  label: "Get Started",
27
- url: "#",
28
46
  variant: "default",
29
47
  size: "lg",
30
48
  icon: "none"
31
49
  },
32
50
  {
33
51
  label: "Learn More",
34
- url: "#",
35
52
  variant: "outline",
36
53
  size: "lg",
37
54
  icon: "none"
@@ -13,7 +13,7 @@ const VideoHero = ({
13
13
  CompoundContainer,
14
14
  {
15
15
  padding: styles == null ? void 0 : styles.padding,
16
- sectionStyle: (styles == null ? void 0 : styles.sectionStyle) ?? "dark",
16
+ sectionStyle: styles == null ? void 0 : styles.sectionStyle,
17
17
  backgroundColor: styles == null ? void 0 : styles.backgroundColor,
18
18
  children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 items-center gap-12 lg:grid-cols-2", children: [
19
19
  /* @__PURE__ */ jsx(
@@ -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",
@@ -84,7 +83,6 @@ const conf = {
84
83
  buttons: [
85
84
  {
86
85
  label: "Call to visit",
87
- url: "tel:+12345678900",
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,
@@ -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",
@@ -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,
@@ -1,10 +1,12 @@
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
+ directionsAction?: Action;
8
10
  }
9
11
  export interface Location3Props {
10
12
  heading?: string;
@@ -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
110
  label: "Get Directions",
111
- url: loc.directionsUrl,
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"
@@ -49,14 +49,12 @@ const conf = {
49
49
  buttons: [
50
50
  {
51
51
  label: "Explore our programs",
52
- url: "/services",
53
52
  variant: "outline",
54
53
  size: "default",
55
54
  icon: "none"
56
55
  },
57
56
  {
58
57
  label: "Schedule your first session",
59
- url: "#",
60
58
  variant: "default",
61
59
  size: "default",
62
60
  icon: "none"
@@ -24,7 +24,6 @@ const Stats2 = ({
24
24
  CompoundButton,
25
25
  {
26
26
  label: btn.label,
27
- url: btn.url,
28
27
  action: btn.action,
29
28
  variant: btn.variant,
30
29
  size: btn.size,
@@ -47,14 +47,12 @@ const conf = {
47
47
  buttons: [
48
48
  {
49
49
  label: "Get started",
50
- url: "#",
51
50
  variant: "default",
52
51
  size: "default",
53
52
  icon: "none"
54
53
  },
55
54
  {
56
55
  label: "Learn more",
57
- url: "#",
58
56
  variant: "outline",
59
57
  size: "default",
60
58
  icon: "none"
@@ -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(CompoundButton, { ...button }, index) : null
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
  ] }) }),
@@ -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"
@@ -55,7 +54,6 @@ const conf = {
55
54
  })),
56
55
  button: {
57
56
  label: "Sign up today",
58
- url: "#",
59
57
  icon: "arrow-right",
60
58
  variant: "outline",
61
59
  size: "default"
@@ -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"
@@ -80,7 +79,6 @@ const conf = {
80
79
  period: "per session",
81
80
  button: {
82
81
  label: "Schedule a session",
83
- url: "#",
84
82
  variant: "outline",
85
83
  size: "default",
86
84
  icon: "none"
@@ -102,7 +100,6 @@ const conf = {
102
100
  period: "per month",
103
101
  button: {
104
102
  label: "Start your program",
105
- url: "#",
106
103
  variant: "default",
107
104
  size: "default",
108
105
  icon: "none"
@@ -125,7 +122,6 @@ const conf = {
125
122
  period: "per month",
126
123
  button: {
127
124
  label: "Join the intensive",
128
- url: "#",
129
125
  variant: "outline",
130
126
  size: "default",
131
127
  icon: "none"
@@ -58,7 +58,6 @@ const conf = {
58
58
  ],
59
59
  button: {
60
60
  label: "Get started free",
61
- url: "#",
62
61
  action: actionDefaults,
63
62
  variant: "default",
64
63
  size: "lg",
@@ -13,7 +13,7 @@ const CaseStudy = ({
13
13
  CompoundContainer,
14
14
  {
15
15
  padding: styles == null ? void 0 : styles.padding,
16
- sectionStyle: (styles == null ? void 0 : styles.sectionStyle) ?? "muted",
16
+ sectionStyle: styles == null ? void 0 : styles.sectionStyle,
17
17
  backgroundColor: styles == null ? void 0 : styles.backgroundColor,
18
18
  children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-4xl", children: [
19
19
  (logo == null ? void 0 : logo.src) && /* @__PURE__ */ jsx("span", { className: "mb-8 inline-block opacity-60", children: /* @__PURE__ */ jsx(CompoundImage, { src: logo.src, alt: logo.alt || "", className: "h-8 w-auto" }) }),
@@ -27,7 +27,7 @@ const conf = {
27
27
  ],
28
28
  quote: "This product changed everything for our team. We can't imagine going back.",
29
29
  author: "Jane Doe, CEO at Acme",
30
- styles: createStylesDefaults()
30
+ styles: createStylesDefaults({ sectionStyle: "muted" })
31
31
  },
32
32
  render: CaseStudy
33
33
  };
@@ -5,7 +5,7 @@ const defaultMember = {
5
5
  name: "Jane Smith",
6
6
  role: "CEO & Co-founder",
7
7
  image: {
8
- src: "https://dummyimage.com/600x600/f5f4f4/101010.png&text=Team+Member",
8
+ src: "https://picsum.photos/seed/Team%20Member/600/600",
9
9
  alt: "Team member"
10
10
  },
11
11
  bio: "Leading the team with 10+ years of experience in the industry."
@@ -32,7 +32,6 @@ const conf = {
32
32
  buttons: [
33
33
  {
34
34
  label: "Get started",
35
- url: "#",
36
35
  action: { type: "external", pageUrl: "", externalUrl: "#", openInNewTab: "false", email: "", subject: "", phone: "", sectionId: "", downloadUrl: "" },
37
36
  variant: "default",
38
37
  size: "default",
@@ -40,7 +39,6 @@ const conf = {
40
39
  },
41
40
  {
42
41
  label: "Schedule a consultation",
43
- url: "#",
44
42
  action: { type: "external", pageUrl: "", externalUrl: "#", openInNewTab: "false", email: "", subject: "", phone: "", sectionId: "", downloadUrl: "" },
45
43
  variant: "secondary",
46
44
  size: "default",
@@ -40,7 +40,7 @@ const conf = {
40
40
  logoPlaceholder("DataFlow"),
41
41
  logoPlaceholder("CloudNet")
42
42
  ],
43
- styles: createStylesDefaults({ speed: "normal" })
43
+ styles: createStylesDefaults({ sectionStyle: "muted", speed: "normal" })
44
44
  },
45
45
  render: LogoMarquee
46
46
  };
@@ -14,7 +14,7 @@ const LogoMarquee = ({
14
14
  CompoundContainer,
15
15
  {
16
16
  padding: styles == null ? void 0 : styles.padding,
17
- sectionStyle: (styles == null ? void 0 : styles.sectionStyle) ?? "muted",
17
+ sectionStyle: styles == null ? void 0 : styles.sectionStyle,
18
18
  backgroundColor: styles == null ? void 0 : styles.backgroundColor,
19
19
  children: [
20
20
  heading && /* @__PURE__ */ jsx("p", { className: "text-muted-foreground mb-8 text-center text-sm font-medium tracking-wider uppercase", children: heading }),
@@ -5,7 +5,7 @@ const defaultReview = {
5
5
  author: "Alex Johnson",
6
6
  role: "Verified Buyer",
7
7
  avatar: {
8
- src: "https://dummyimage.com/200x200/f5f4f4/101010.png&text=AJ",
8
+ src: "https://picsum.photos/seed/AJ/200/200",
9
9
  alt: "Reviewer avatar"
10
10
  },
11
11
  rating: 5,