dune-react 0.0.22 → 0.0.24

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 (131) hide show
  1. package/dist/components/puck-base/image.js +1 -1
  2. package/dist/components/puck-block/banner-sections/css-marquee-banner/css-marquee-banner.js +13 -13
  3. package/dist/components/puck-block/banner-sections/dual-row-marquee/dual-row-marquee.js +77 -53
  4. package/dist/components/puck-block/banner-sections/scroll-driven-marquee/scroll-driven-marquee.js +8 -6
  5. package/dist/components/puck-block/banner-sections/scroll-parallax-text/scroll-parallax-text.js +3 -1
  6. package/dist/components/puck-block/contact-sections/contact-cards-grid/contact-cards-grid.js +1 -1
  7. package/dist/components/puck-block/contact-sections/form-with-media/form-with-media.js +1 -1
  8. package/dist/components/puck-block/contact-sections/header-form-cards/header-form-cards.js +1 -1
  9. package/dist/components/puck-block/contact-sections/header-info-fullwidth/header-info-fullwidth.js +2 -2
  10. package/dist/components/puck-block/contact-sections/info-cards-media/info-cards-media.js +2 -2
  11. package/dist/components/puck-block/contact-sections/split-info-form/split-info-form.js +1 -1
  12. package/dist/components/puck-block/contact-sections/tab-locations/tab-locations.js +71 -55
  13. package/dist/components/puck-block/cta-sections/mouse-track-cta/mouse-track-cta.js +4 -4
  14. package/dist/components/puck-block/cta-sections/side-media-cta/side-media-cta.js +1 -1
  15. package/dist/components/puck-block/cta-sections/text-block-cta/text-block-cta.js +2 -2
  16. package/dist/components/puck-block/feature-sections/feature-cards-grid/component.js +1 -1
  17. package/dist/components/puck-block/feature-sections/feature-list-split/component.js +1 -1
  18. package/dist/components/puck-block/feature-sections/tab-feature/component.js +4 -4
  19. package/dist/components/puck-block/feature-sections/text-media-split/component.js +1 -1
  20. package/dist/components/puck-block/footer-sections/centered-minimal-footer/centered-minimal-footer.js +72 -18
  21. package/dist/components/puck-block/footer-sections/centered-minimal-footer/index.d.ts +79 -0
  22. package/dist/components/puck-block/footer-sections/centered-minimal-footer/index.js +43 -1
  23. package/dist/components/puck-block/footer-sections/compact-newsletter-footer/index.d.ts +41 -0
  24. package/dist/components/puck-block/footer-sections/contact-links-footer/contact-links-footer.js +4 -3
  25. package/dist/components/puck-block/footer-sections/contact-links-footer/index.d.ts +86 -0
  26. package/dist/components/puck-block/footer-sections/contact-links-footer/index.js +1 -1
  27. package/dist/components/puck-block/footer-sections/cta-links-footer/cta-links-footer.js +3 -2
  28. package/dist/components/puck-block/footer-sections/cta-links-footer/index.d.ts +37 -0
  29. package/dist/components/puck-block/footer-sections/cta-links-footer/index.js +1 -1
  30. package/dist/components/puck-block/footer-sections/links-newsletter-footer/index.d.ts +54 -0
  31. package/dist/components/puck-block/footer-sections/newsletter-links-footer/index.d.ts +41 -0
  32. package/dist/components/puck-block/footer-sections/newsletter-top-links-footer/index.d.ts +54 -0
  33. package/dist/components/puck-block/footer-sections/props.d.ts +3 -0
  34. package/dist/components/puck-block/gallery-sections/fullscreen-portfolio/fullscreen-portfolio.js +1 -1
  35. package/dist/components/puck-block/gallery-sections/image-carousel/index.d.ts +14 -1
  36. package/dist/components/puck-block/gallery-sections/interactive-portfolio/interactive-portfolio.js +166 -105
  37. package/dist/components/puck-block/gallery-sections/masonry-grid/index.d.ts +17 -1
  38. package/dist/components/puck-block/gallery-sections/masonry-grid/masonry-grid.js +56 -31
  39. package/dist/components/puck-block/gallery-sections/portfolio-cards/index.d.ts +17 -1
  40. package/dist/components/puck-block/gallery-sections/portfolio-cards/portfolio-cards.js +41 -13
  41. package/dist/components/puck-block/gallery-sections/portfolio-divider/portfolio-divider.js +1 -1
  42. package/dist/components/puck-block/gallery-sections/props.d.ts +42 -3
  43. package/dist/components/puck-block/gallery-sections/props.js +24 -6
  44. package/dist/components/puck-block/gallery-sections/scroll-parallax/scroll-parallax.js +71 -22
  45. package/dist/components/puck-block/gallery-sections/scroll-parallax-portfolio/scroll-parallax-portfolio.js +284 -159
  46. package/dist/components/puck-block/gallery-sections/split-carousel/index.d.ts +11 -1
  47. package/dist/components/puck-block/gallery-sections/static-grid/index.d.ts +17 -1
  48. package/dist/components/puck-block/header-sections/centered-navbar/centered-navbar.js +95 -14
  49. package/dist/components/puck-block/header-sections/drawer-navbar/drawer-navbar.js +4 -3
  50. package/dist/components/puck-block/header-sections/floating-bordered-navbar/floating-bordered-navbar.js +5 -4
  51. package/dist/components/puck-block/header-sections/fullscreen-overlay-navbar/fullscreen-overlay-navbar.js +4 -3
  52. package/dist/components/puck-block/header-sections/mega-menu-navbar/mega-menu-navbar.js +3 -2
  53. package/dist/components/puck-block/header-sections/props.d.ts +3 -0
  54. package/dist/components/puck-block/header-sections/standard-navbar/standard-navbar.js +3 -2
  55. package/dist/components/puck-block/hero-sections/carousel-hero/component.js +3 -3
  56. package/dist/components/puck-block/hero-sections/column-scroll-hero/component.js +8 -8
  57. package/dist/components/puck-block/hero-sections/dual-marquee-hero/component.js +6 -6
  58. package/dist/components/puck-block/hero-sections/fullscreen-video-hero/component.js +1 -1
  59. package/dist/components/puck-block/hero-sections/grid-expand-hero/component.js +26 -17
  60. package/dist/components/puck-block/hero-sections/grid-expand-hero/index.d.ts +17 -1
  61. package/dist/components/puck-block/hero-sections/horizontal-marquee-hero/component.js +3 -3
  62. package/dist/components/puck-block/hero-sections/inline-image-hero/inline-image-hero.js +59 -28
  63. package/dist/components/puck-block/hero-sections/mouse-track-hero/component.js +60 -19
  64. package/dist/components/puck-block/hero-sections/multi-image-grid-hero/index.d.ts +17 -1
  65. package/dist/components/puck-block/hero-sections/multi-image-grid-hero/multi-image-grid-hero.js +2 -2
  66. package/dist/components/puck-block/hero-sections/overlapping-image-hero/overlapping-image-hero.js +3 -3
  67. package/dist/components/puck-block/hero-sections/parallax-images-hero/component.js +18 -6
  68. package/dist/components/puck-block/hero-sections/props.d.ts +34 -2
  69. package/dist/components/puck-block/hero-sections/props.js +18 -4
  70. package/dist/components/puck-block/hero-sections/scatter-parallax-hero/component.js +9 -7
  71. package/dist/components/puck-block/hero-sections/scroll-expand-video-hero/component.js +7 -5
  72. package/dist/components/puck-block/hero-sections/scroll-zoom-hero/component.js +5 -3
  73. package/dist/components/puck-block/hero-sections/sticky-expand-hero/component.js +1 -1
  74. package/dist/components/puck-block/hero-sections/sticky-expand-hero/index.d.ts +13 -5
  75. package/dist/components/puck-block/hero-sections/sticky-expand-hero/index.js +2 -2
  76. package/dist/components/puck-block/hero-sections/sticky-video-hero/component.js +2 -2
  77. package/dist/components/puck-block/hero-sections/tab-hero/component.js +5 -5
  78. package/dist/components/puck-block/hero-sections/three-image-parallax-hero/component.js +3 -3
  79. package/dist/components/puck-block/hero-sections/vertical-gallery-hero/component.js +6 -6
  80. package/dist/components/puck-block/hero-sections/zoom-grid-hero/component.js +14 -12
  81. package/dist/components/puck-block/index.d.ts +1 -0
  82. package/dist/components/puck-block/location-sections/index.d.ts +3 -0
  83. package/dist/components/puck-block/location-sections/location-1/index.js +102 -0
  84. package/dist/components/puck-block/location-sections/location-1/location.d.ts +0 -3
  85. package/dist/components/puck-block/location-sections/location-1/location.js +139 -0
  86. package/dist/components/puck-block/location-sections/location-2/index.js +126 -0
  87. package/dist/components/puck-block/location-sections/location-2/location.d.ts +0 -3
  88. package/dist/components/puck-block/location-sections/location-2/location.js +133 -0
  89. package/dist/components/puck-block/location-sections/location-3/index.js +109 -0
  90. package/dist/components/puck-block/location-sections/location-3/location.d.ts +0 -3
  91. package/dist/components/puck-block/location-sections/location-3/location.js +140 -0
  92. package/dist/components/puck-block/location-sections/props.d.ts +0 -3
  93. package/dist/components/puck-block/metrics-sections/center-media-stats/center-media-stats.js +1 -1
  94. package/dist/components/puck-block/metrics-sections/header-stats-row/header-stats-row.js +1 -1
  95. package/dist/components/puck-block/metrics-sections/mixed-grid-stats/mixed-grid-stats.js +2 -2
  96. package/dist/components/puck-block/metrics-sections/split-stats/split-stats.js +1 -1
  97. package/dist/components/puck-block/metrics-sections/tab-stats/tab-stats.js +4 -4
  98. package/dist/components/puck-block/pricing-sections/pricing-comparison-table/component.js +134 -33
  99. package/dist/components/puck-block/pricing-sections/pricing-comparison-table/index.d.ts +47 -0
  100. package/dist/components/puck-block/pricing-sections/pricing-comparison-table/index.js +34 -0
  101. package/dist/components/puck-block/pricing-sections/split-pricing/component.js +3 -3
  102. package/dist/components/puck-block/pricing-sections/tab-pricing-grid/component.js +86 -40
  103. package/dist/components/puck-block/pricing-sections/tab-single-pricing/component.js +1 -1
  104. package/dist/components/puck-block/registry.generated.d.ts +501 -12
  105. package/dist/components/puck-block/registry.generated.js +157 -138
  106. package/dist/components/puck-block/showcase-sections/tab-timeline/component.js +2 -2
  107. package/dist/components/puck-block/testimonial-sections/bento-testimonial/component.js +157 -83
  108. package/dist/components/puck-block/testimonial-sections/centered-testimonial/component.js +71 -28
  109. package/dist/components/puck-block/testimonial-sections/image-testimonial/component.js +66 -29
  110. package/dist/components/puck-block/testimonial-sections/image-testimonial-carousel/component.js +1 -1
  111. package/dist/components/puck-block/testimonial-sections/tab-testimonial/component.js +6 -6
  112. package/dist/components/puck-block/testimonial-sections/testimonial-card-grid/component.js +2 -2
  113. package/dist/components/puck-block/testimonial-sections/testimonial-carousel/component.js +1 -1
  114. package/dist/components/puck-block/text-sections/prose-content/component.js +1 -1
  115. package/dist/components/puck-block/text-sections/side-media-content/component.js +1 -1
  116. package/dist/components/puck-block/text-sections/sticky-text-multi-image/component.js +3 -3
  117. package/dist/components/puck-core/core/props/form.js +25 -1
  118. package/dist/components/puck-core/core/props/media.js +6 -1
  119. package/dist/components/puck-core/fields/array-field.d.ts +7 -0
  120. package/dist/components/puck-core/fields/array-field.js +229 -0
  121. package/dist/components/puck-core/fields/auto-field.js +11 -0
  122. package/dist/components/puck-core/fields/image-upload-field.js +1 -1
  123. package/dist/components/puck-core/fields/index.d.ts +1 -0
  124. package/dist/components/puck-core/fields/location-field.js +4 -1
  125. package/dist/components/puck-core/fields/object-field.js +1 -1
  126. package/dist/index.js +6 -0
  127. package/dist/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@19.2.4/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +59 -0
  128. package/dist/node_modules/.pnpm/@dnd-kit_core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@dnd-kit/core/dist/core.esm.js +3093 -0
  129. package/dist/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_@dnd-kit_core@6.3.1_react-dom@19.2.4_react@19.2.4__react@19.2.4__react@19.2.4/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +592 -0
  130. package/dist/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@19.2.4/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +301 -0
  131. package/package.json +7 -1
@@ -5,24 +5,47 @@ import { useScroll, useTransform, motion, useSpring, easeOut, easeInOut } from "
5
5
  import { cn } from "../../../../utils/css-utils.js";
6
6
  import { SectionWrapper } from "../../../puck-core/section-wrapper.js";
7
7
  import { useScrollContainer } from "../../../../hooks/use-scroll-container.js";
8
+ import { useEditorContext } from "../../../puck-core/core/context/editor-context.js";
8
9
  import { CompoundImage } from "../../../puck-base/image.js";
9
10
  const ScrollParallaxPortfolio = (props) => {
10
- const { projects, styles } = {
11
+ const { projects: projects2, styles } = {
11
12
  ...ScrollParallaxPortfolioDefaults,
12
13
  ...props
13
14
  };
14
- const { className: sectionClassName, style: sectionStyle, css, animation = "threeImageParallax" } = styles ?? {};
15
+ const {
16
+ className: sectionClassName,
17
+ style: sectionStyle,
18
+ css,
19
+ animation = "threeImageParallax"
20
+ } = styles ?? {};
15
21
  if (animation === "scaleOpacity") {
16
- return /* @__PURE__ */ jsx(ScaleOpacityVariant, { projects, sectionClassName, sectionStyle, css });
22
+ return /* @__PURE__ */ jsx(
23
+ ScaleOpacityVariant,
24
+ {
25
+ projects: projects2,
26
+ sectionClassName,
27
+ sectionStyle,
28
+ css
29
+ }
30
+ );
17
31
  }
18
- return /* @__PURE__ */ jsx(ThreeImageParallaxVariant, { projects, sectionClassName, sectionStyle, css });
32
+ return /* @__PURE__ */ jsx(
33
+ ThreeImageParallaxVariant,
34
+ {
35
+ projects: projects2,
36
+ sectionClassName,
37
+ sectionStyle,
38
+ css
39
+ }
40
+ );
19
41
  };
20
42
  const ThreeImageParallaxVariant = ({
21
- projects,
43
+ projects: projects2,
22
44
  sectionClassName,
23
45
  sectionStyle,
24
46
  css
25
47
  }) => {
48
+ const { isEditor } = useEditorContext();
26
49
  const transformRef = useRef(null);
27
50
  const [scrollContainerRef] = useScrollContainer(transformRef);
28
51
  const { scrollYProgress } = useScroll({
@@ -35,19 +58,29 @@ const ThreeImageParallaxVariant = ({
35
58
  restDelta: 1e-3,
36
59
  mass: 0.5
37
60
  });
38
- const computedStyles = projects.map((_, index) => {
39
- const blockOffset = projects.length ? index / projects.length : 0;
61
+ const computedStyles = projects2.map((_, index) => {
62
+ const blockOffset = projects2.length ? index / projects2.length : 0;
40
63
  return {
41
64
  headerStyles: {
42
65
  opacity: useTransform(
43
66
  smoothProgress,
44
- [45e-4 + blockOffset, 0.022 + blockOffset, 0.06 + blockOffset, 0.082 + blockOffset],
67
+ [
68
+ 45e-4 + blockOffset,
69
+ 0.022 + blockOffset,
70
+ 0.06 + blockOffset,
71
+ 0.082 + blockOffset
72
+ ],
45
73
  [0, 1, 1, 0],
46
74
  { ease: easeInOut }
47
75
  ),
48
76
  scale: useTransform(
49
77
  smoothProgress,
50
- [0 + blockOffset, 0.022 + blockOffset, 0.06 + blockOffset, 0.082 + blockOffset],
78
+ [
79
+ 0 + blockOffset,
80
+ 0.022 + blockOffset,
81
+ 0.06 + blockOffset,
82
+ 0.082 + blockOffset
83
+ ],
51
84
  [0.9, 1, 1, 0.9],
52
85
  { ease: easeInOut }
53
86
  )
@@ -70,159 +103,265 @@ const ThreeImageParallaxVariant = ({
70
103
  }
71
104
  };
72
105
  });
73
- return /* @__PURE__ */ jsxs(SectionWrapper, { className: cn("relative px-[5%]", sectionClassName), style: sectionStyle, css, children: [
74
- /* @__PURE__ */ jsx("div", { ref: transformRef, className: "container", children: /* @__PURE__ */ jsx("div", { className: "py-6 md:py-8 lg:py-10", children: projects.map((project, index) => {
75
- var _a, _b, _c, _d, _e, _f;
76
- return /* @__PURE__ */ jsxs(
77
- "div",
78
- {
79
- className: cn("relative flex h-[500vh] flex-col", {
80
- "mt-[-40vh]": index > 0
81
- }),
82
- children: [
83
- /* @__PURE__ */ jsx(
84
- motion.div,
85
- {
86
- className: "sticky top-0 flex h-[150vh] justify-center",
87
- style: computedStyles[index].headerStyles,
88
- children: /* @__PURE__ */ jsxs("div", { className: "absolute top-[50vh] -z-10 flex w-full max-w-lg flex-col items-center text-center", children: [
89
- /* @__PURE__ */ jsx("h3", { className: "text-5xl font-bold md:text-7xl lg:text-8xl", children: project.title }),
90
- project.tags && /* @__PURE__ */ jsx("div", { className: "mt-4 flex flex-wrap justify-center gap-2", children: project.tags.map((tag, tagIndex) => /* @__PURE__ */ jsx("li", { className: "flex", children: /* @__PURE__ */ jsx("div", { className: "inline-flex border border-neutral-lightest bg-background-secondary px-2 py-1 text-sm font-semibold text-text-primary", children: tag.label }) }, tagIndex)) })
91
- ] })
92
- }
93
- ),
94
- /* @__PURE__ */ jsxs("div", { className: "sticky top-0 z-10 flex h-screen items-center justify-center overflow-hidden", children: [
95
- /* @__PURE__ */ jsx("a", { href: "#", className: "inline-block max-w-full", children: /* @__PURE__ */ jsx("div", { className: "flex h-screen w-full max-w-lg items-center justify-center overflow-hidden", children: /* @__PURE__ */ jsx(
96
- CompoundImage,
97
- {
98
- src: ((_a = project.imageCenter) == null ? void 0 : _a.src) ?? project.image.src,
99
- alt: ((_b = project.imageCenter) == null ? void 0 : _b.alt) ?? project.image.alt,
100
- className: "size-full object-contain"
101
- }
102
- ) }) }),
103
- /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 left-0 right-auto z-20 hidden h-screen w-full max-w-xxs lg:flex", children: /* @__PURE__ */ jsx(
104
- motion.div,
106
+ return /* @__PURE__ */ jsxs(
107
+ SectionWrapper,
108
+ {
109
+ className: cn("relative px-[5%]", sectionClassName),
110
+ style: sectionStyle,
111
+ css,
112
+ children: [
113
+ /* @__PURE__ */ jsx("div", { ref: transformRef, className: "container", children: /* @__PURE__ */ jsx("div", { className: "py-6 md:py-8 lg:py-10", children: projects2.map((project, index) => {
114
+ var _a, _b, _c, _d, _e, _f;
115
+ return /* @__PURE__ */ jsxs(
116
+ "div",
117
+ {
118
+ className: cn(
119
+ "relative flex flex-col",
120
+ isEditor ? "h-auto mb-12" : "h-[500vh]",
105
121
  {
106
- className: "relative w-full pt-[100vh]",
107
- style: computedStyles[index].imageLeftStyles,
108
- children: /* @__PURE__ */ jsx(
109
- CompoundImage,
110
- {
111
- src: ((_c = project.imageLeft) == null ? void 0 : _c.src) ?? project.image.src,
112
- alt: ((_d = project.imageLeft) == null ? void 0 : _d.alt) ?? project.image.alt,
113
- className: "w-full object-contain"
114
- }
115
- )
122
+ "mt-[-40vh]": !isEditor && index > 0
116
123
  }
117
- ) }),
118
- /* @__PURE__ */ jsx("div", { className: "absolute inset-y-0 left-auto right-0 z-20 hidden h-screen w-full max-w-xxs lg:flex", children: /* @__PURE__ */ jsx(
119
- motion.div,
120
- {
121
- className: "relative w-full pt-[100vh]",
122
- style: computedStyles[index].imageRightStyles,
123
- children: /* @__PURE__ */ jsx(
124
- CompoundImage,
125
- {
126
- src: ((_e = project.imageRight) == null ? void 0 : _e.src) ?? project.image.src,
127
- alt: ((_f = project.imageRight) == null ? void 0 : _f.alt) ?? project.image.alt,
128
- className: "w-full object-contain"
129
- }
130
- )
131
- }
132
- ) })
133
- ] }),
134
- /* @__PURE__ */ jsx("div", { className: "absolute inset-0 -z-10 mt-[100vh]" })
135
- ]
136
- },
137
- index
138
- );
139
- }) }) }),
140
- /* @__PURE__ */ jsx("div", { className: "h-screen" })
141
- ] });
124
+ ),
125
+ children: [
126
+ /* @__PURE__ */ jsx(
127
+ motion.div,
128
+ {
129
+ className: cn(
130
+ "flex justify-center",
131
+ isEditor ? "relative h-auto py-8" : "sticky top-0 h-[150vh]"
132
+ ),
133
+ style: isEditor ? { opacity: 1, scale: 1 } : computedStyles[index].headerStyles,
134
+ children: /* @__PURE__ */ jsxs(
135
+ "div",
136
+ {
137
+ className: cn(
138
+ "-z-10 flex w-full max-w-lg flex-col items-center text-center",
139
+ isEditor ? "relative" : "absolute top-[50vh]"
140
+ ),
141
+ children: [
142
+ /* @__PURE__ */ jsx("h3", { className: "text-5xl font-bold md:text-7xl lg:text-8xl", children: project.title }),
143
+ project.tags && /* @__PURE__ */ jsx("div", { className: "mt-4 flex flex-wrap justify-center gap-2", children: project.tags.map((tag, tagIndex) => /* @__PURE__ */ jsx("li", { className: "flex", children: /* @__PURE__ */ jsx("div", { className: "inline-flex border border-neutral-lightest bg-background-secondary px-2 py-1 text-sm font-semibold text-text-primary", children: tag.label }) }, tagIndex)) })
144
+ ]
145
+ }
146
+ )
147
+ }
148
+ ),
149
+ /* @__PURE__ */ jsxs(
150
+ "div",
151
+ {
152
+ className: cn(
153
+ "z-10 flex items-center justify-center overflow-hidden",
154
+ isEditor ? "relative h-auto" : "sticky top-0 h-screen"
155
+ ),
156
+ children: [
157
+ /* @__PURE__ */ jsx("a", { href: "#", className: "inline-block max-w-full", children: /* @__PURE__ */ jsx(
158
+ "div",
159
+ {
160
+ className: cn(
161
+ "flex w-full max-w-5xl items-center justify-center overflow-hidden",
162
+ isEditor ? "h-auto" : "h-screen"
163
+ ),
164
+ children: /* @__PURE__ */ jsx(
165
+ CompoundImage,
166
+ {
167
+ src: ((_a = project.imageCenter) == null ? void 0 : _a.src) ?? project.image.src,
168
+ alt: ((_b = project.imageCenter) == null ? void 0 : _b.alt) ?? project.image.alt,
169
+ className: "size-full object-contain"
170
+ }
171
+ )
172
+ }
173
+ ) }),
174
+ /* @__PURE__ */ jsx(
175
+ "div",
176
+ {
177
+ className: cn(
178
+ "absolute inset-y-0 left-0 right-auto z-20 hidden w-full max-w-xs lg:flex",
179
+ isEditor ? "h-auto" : "h-screen"
180
+ ),
181
+ children: /* @__PURE__ */ jsx(
182
+ motion.div,
183
+ {
184
+ className: cn(
185
+ "relative w-full",
186
+ isEditor ? "pt-0" : "pt-[100vh]"
187
+ ),
188
+ style: isEditor ? { y: 0 } : computedStyles[index].imageLeftStyles,
189
+ children: /* @__PURE__ */ jsx(
190
+ CompoundImage,
191
+ {
192
+ src: ((_c = project.imageLeft) == null ? void 0 : _c.src) ?? project.image.src,
193
+ alt: ((_d = project.imageLeft) == null ? void 0 : _d.alt) ?? project.image.alt,
194
+ className: "w-full object-contain"
195
+ }
196
+ )
197
+ }
198
+ )
199
+ }
200
+ ),
201
+ /* @__PURE__ */ jsx(
202
+ "div",
203
+ {
204
+ className: cn(
205
+ "absolute inset-y-0 left-auto right-0 z-20 hidden w-full max-w-xs lg:flex",
206
+ isEditor ? "h-auto" : "h-screen"
207
+ ),
208
+ children: /* @__PURE__ */ jsx(
209
+ motion.div,
210
+ {
211
+ className: cn(
212
+ "relative w-full",
213
+ isEditor ? "pt-0" : "pt-[100vh]"
214
+ ),
215
+ style: isEditor ? { y: 0 } : computedStyles[index].imageRightStyles,
216
+ children: /* @__PURE__ */ jsx(
217
+ CompoundImage,
218
+ {
219
+ src: ((_e = project.imageRight) == null ? void 0 : _e.src) ?? project.image.src,
220
+ alt: ((_f = project.imageRight) == null ? void 0 : _f.alt) ?? project.image.alt,
221
+ className: "w-full object-contain"
222
+ }
223
+ )
224
+ }
225
+ )
226
+ }
227
+ )
228
+ ]
229
+ }
230
+ ),
231
+ !isEditor && /* @__PURE__ */ jsx("div", { className: "absolute inset-0 -z-10 mt-[100vh]" })
232
+ ]
233
+ },
234
+ index
235
+ );
236
+ }) }) }),
237
+ !isEditor && /* @__PURE__ */ jsx("div", { className: "h-screen" })
238
+ ]
239
+ }
240
+ );
142
241
  };
143
242
  const ScaleOpacityVariant = ({
144
- projects,
243
+ projects: projects2,
145
244
  sectionClassName,
146
245
  sectionStyle,
147
246
  css
148
247
  }) => {
248
+ const { isEditor } = useEditorContext();
149
249
  const containerRef = useRef(null);
150
250
  const [scrollContainerRef] = useScrollContainer(containerRef);
151
251
  const { scrollYProgress } = useScroll({
152
252
  target: containerRef,
153
253
  ...scrollContainerRef.current ? { container: scrollContainerRef } : {}
154
254
  });
155
- return /* @__PURE__ */ jsx(SectionWrapper, { ref: containerRef, className: cn("relative px-[5%]", sectionClassName), style: sectionStyle, css, children: /* @__PURE__ */ jsx("div", { className: "h-[300vh]", children: /* @__PURE__ */ jsx("div", { className: "sticky top-0 flex h-screen items-center justify-center", children: projects.map((project, index) => {
156
- const segmentSize = 1 / projects.length;
157
- const start = index * segmentSize;
158
- const end = start + segmentSize;
159
- const opacity = useTransform(
160
- scrollYProgress,
161
- [start, start + segmentSize * 0.15, end - segmentSize * 0.15, end],
162
- [0, 1, 1, 0]
163
- );
164
- const scale = useTransform(
165
- scrollYProgress,
166
- [start, start + segmentSize * 0.15, end - segmentSize * 0.15, end],
167
- [0.8, 1, 1, 0.8]
168
- );
169
- return /* @__PURE__ */ jsx(
170
- motion.div,
171
- {
172
- style: { opacity, scale },
173
- className: "absolute inset-0 flex items-center justify-center",
174
- children: /* @__PURE__ */ jsxs("div", { className: "container max-w-4xl border border-border-primary bg-background-primary p-8 md:p-12", children: [
175
- /* @__PURE__ */ jsx("div", { className: "mb-6", children: /* @__PURE__ */ jsx(
176
- CompoundImage,
177
- {
178
- src: project.image.src,
179
- alt: project.image.alt,
180
- className: "aspect-video w-full object-cover"
181
- }
182
- ) }),
183
- /* @__PURE__ */ jsx("h3", { className: "mb-2 text-2xl font-bold md:text-3xl", children: project.title }),
184
- /* @__PURE__ */ jsx("p", { children: project.description }),
185
- project.tags && /* @__PURE__ */ jsx("div", { className: "mt-4 flex flex-wrap gap-2", children: project.tags.map((tag, tagIndex) => /* @__PURE__ */ jsx(
186
- "span",
187
- {
188
- className: "bg-background-secondary px-2 py-1 text-sm font-semibold",
189
- children: tag.label
190
- },
191
- tagIndex
192
- )) })
193
- ] })
194
- },
195
- index
196
- );
197
- }) }) }) });
255
+ return /* @__PURE__ */ jsx(
256
+ SectionWrapper,
257
+ {
258
+ ref: containerRef,
259
+ className: cn("relative px-[5%]", sectionClassName),
260
+ style: sectionStyle,
261
+ css,
262
+ children: /* @__PURE__ */ jsx("div", { className: isEditor ? "h-auto" : "h-[300vh]", children: /* @__PURE__ */ jsx(
263
+ "div",
264
+ {
265
+ className: cn(
266
+ "flex items-center justify-center",
267
+ isEditor ? "relative flex-col gap-8 py-12" : "sticky top-0 h-screen"
268
+ ),
269
+ children: projects2.map((project, index) => {
270
+ const segmentSize = 1 / projects2.length;
271
+ const start = index * segmentSize;
272
+ const end = start + segmentSize;
273
+ const opacity = useTransform(
274
+ scrollYProgress,
275
+ [
276
+ start,
277
+ start + segmentSize * 0.15,
278
+ end - segmentSize * 0.15,
279
+ end
280
+ ],
281
+ [0, 1, 1, 0]
282
+ );
283
+ const scale = useTransform(
284
+ scrollYProgress,
285
+ [
286
+ start,
287
+ start + segmentSize * 0.15,
288
+ end - segmentSize * 0.15,
289
+ end
290
+ ],
291
+ [0.8, 1, 1, 0.8]
292
+ );
293
+ return /* @__PURE__ */ jsx(
294
+ motion.div,
295
+ {
296
+ style: isEditor ? { opacity: 1, scale: 1 } : { opacity, scale },
297
+ className: cn(
298
+ "flex items-center justify-center",
299
+ isEditor ? "relative w-full" : "absolute inset-0"
300
+ ),
301
+ children: /* @__PURE__ */ jsxs("div", { className: "container max-w-4xl border border-border-primary bg-background-primary p-8 md:p-12", children: [
302
+ /* @__PURE__ */ jsx("div", { className: "mb-6", children: /* @__PURE__ */ jsx(
303
+ CompoundImage,
304
+ {
305
+ src: project.image.src,
306
+ alt: project.image.alt,
307
+ className: "aspect-video w-full object-cover"
308
+ }
309
+ ) }),
310
+ /* @__PURE__ */ jsx("h3", { className: "mb-2 text-2xl font-bold md:text-3xl", children: project.title }),
311
+ /* @__PURE__ */ jsx("p", { children: project.description }),
312
+ project.tags && /* @__PURE__ */ jsx("div", { className: "mt-4 flex flex-wrap gap-2", children: project.tags.map((tag, tagIndex) => /* @__PURE__ */ jsx(
313
+ "span",
314
+ {
315
+ className: "bg-background-secondary px-2 py-1 text-sm font-semibold",
316
+ children: tag.label
317
+ },
318
+ tagIndex
319
+ )) })
320
+ ] })
321
+ },
322
+ index
323
+ );
324
+ })
325
+ }
326
+ ) })
327
+ }
328
+ );
198
329
  };
199
- const defaultProject = {
200
- title: "Project name",
201
- description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique.",
202
- image: {
203
- src: "https://picsum.photos/seed/scroll-port/1200/800",
204
- alt: "Relume placeholder image"
330
+ const projects = [
331
+ {
332
+ title: "Project name",
333
+ description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique.",
334
+ image: { src: "https://images.unsplash.com/photo-1547658719-da2b51169166?w=1200&h=800&fit=crop", alt: "Web design workspace" },
335
+ url: "#",
336
+ button: { label: "View project" },
337
+ tags: [{ label: "Tag one", url: "#" }, { label: "Tag two", url: "#" }, { label: "Tag three", url: "#" }],
338
+ imageCenter: { src: "https://images.unsplash.com/photo-1559028012-481c04fa702d?w=1000&h=660&fit=crop", alt: "Web design process" },
339
+ imageLeft: { src: "https://images.unsplash.com/photo-1581291518857-4e27b48ff24e?w=600&h=400&fit=crop", alt: "Wireframe sketches" },
340
+ imageRight: { src: "https://images.unsplash.com/photo-1551288049-bebda4e38f71?w=600&h=400&fit=crop", alt: "Analytics dashboard" }
205
341
  },
206
- url: "#",
207
- button: { label: "View project" },
208
- tags: [
209
- { label: "Tag one", url: "#" },
210
- { label: "Tag two", url: "#" },
211
- { label: "Tag three", url: "#" }
212
- ],
213
- imageCenter: {
214
- src: "https://picsum.photos/seed/scroll-port-center/800/1000",
215
- alt: "Relume placeholder center"
342
+ {
343
+ title: "Project name",
344
+ description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique.",
345
+ image: { src: "https://images.unsplash.com/photo-1626785774573-4b799315345d?w=1200&h=800&fit=crop", alt: "Design studio" },
346
+ url: "#",
347
+ button: { label: "View project" },
348
+ tags: [{ label: "Tag one", url: "#" }, { label: "Tag two", url: "#" }, { label: "Tag three", url: "#" }],
349
+ imageCenter: { src: "https://images.unsplash.com/photo-1618004912476-29818d81ae2e?w=1000&h=660&fit=crop", alt: "Colorful abstract shapes" },
350
+ imageLeft: { src: "https://images.unsplash.com/photo-1561070791-2526d30994b5?w=600&h=400&fit=crop", alt: "Brand color palette" },
351
+ imageRight: { src: "https://images.unsplash.com/photo-1611532736597-de2d4265fba3?w=600&h=400&fit=crop", alt: "Typography design" }
216
352
  },
217
- imageLeft: {
218
- src: "https://picsum.photos/seed/scroll-port-left/400/600",
219
- alt: "Relume placeholder left"
220
- },
221
- imageRight: {
222
- src: "https://picsum.photos/seed/scroll-port-right/400/600",
223
- alt: "Relume placeholder right"
353
+ {
354
+ title: "Project name",
355
+ description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique.",
356
+ image: { src: "https://images.unsplash.com/photo-1512941937669-90a1b58e7e9c?w=1200&h=800&fit=crop", alt: "Mobile device" },
357
+ url: "#",
358
+ button: { label: "View project" },
359
+ tags: [{ label: "Tag one", url: "#" }, { label: "Tag two", url: "#" }, { label: "Tag three", url: "#" }],
360
+ imageCenter: { src: "https://images.unsplash.com/photo-1551650975-87deedd944c3?w=1000&h=660&fit=crop", alt: "App mockup" },
361
+ imageLeft: { src: "https://images.unsplash.com/photo-1522542550221-31fd19575a2d?w=600&h=400&fit=crop", alt: "Wireframe sketches" },
362
+ imageRight: { src: "https://images.unsplash.com/photo-1586953208448-b95a79798f07?w=600&h=400&fit=crop", alt: "Mobile app in use" }
224
363
  }
225
- };
364
+ ];
226
365
  const ScrollParallaxPortfolioDefaults = {
227
366
  tagline: "",
228
367
  heading: "",
@@ -230,21 +369,7 @@ const ScrollParallaxPortfolioDefaults = {
230
369
  button: { label: "View all" },
231
370
  buttons: [],
232
371
  images: [],
233
- projects: [
234
- { ...defaultProject },
235
- {
236
- ...defaultProject,
237
- imageCenter: { src: "https://picsum.photos/seed/spp-c2/800/1000", alt: "Center 2" },
238
- imageLeft: { src: "https://picsum.photos/seed/spp-l2/400/600", alt: "Left 2" },
239
- imageRight: { src: "https://picsum.photos/seed/spp-r2/400/600", alt: "Right 2" }
240
- },
241
- {
242
- ...defaultProject,
243
- imageCenter: { src: "https://picsum.photos/seed/spp-c3/800/1000", alt: "Center 3" },
244
- imageLeft: { src: "https://picsum.photos/seed/spp-l3/400/600", alt: "Left 3" },
245
- imageRight: { src: "https://picsum.photos/seed/spp-r3/400/600", alt: "Right 3" }
246
- }
247
- ],
372
+ projects,
248
373
  hoverLinks: [],
249
374
  styles: {
250
375
  animation: "threeImageParallax"
@@ -56,8 +56,18 @@ declare const conf: {
56
56
  };
57
57
  };
58
58
  slideBasis: {
59
- readonly type: "text";
59
+ readonly type: "select";
60
60
  readonly label: "Slide Basis";
61
+ readonly options: readonly [{
62
+ readonly label: "4/5";
63
+ readonly value: "4/5";
64
+ }, {
65
+ readonly label: "45%";
66
+ readonly value: "45%";
67
+ }, {
68
+ readonly label: "30%";
69
+ readonly value: "30%";
70
+ }];
61
71
  };
62
72
  };
63
73
  };
@@ -56,8 +56,24 @@ declare const conf: {
56
56
  };
57
57
  };
58
58
  columns: {
59
- readonly type: "text";
59
+ readonly type: "select";
60
60
  readonly label: "Columns";
61
+ readonly options: readonly [{
62
+ readonly label: "1";
63
+ readonly value: "1";
64
+ }, {
65
+ readonly label: "2";
66
+ readonly value: "2";
67
+ }, {
68
+ readonly label: "3";
69
+ readonly value: "3";
70
+ }, {
71
+ readonly label: "2 → 3 (responsive)";
72
+ readonly value: "2-lg3";
73
+ }, {
74
+ readonly label: "2 → 4 (responsive)";
75
+ readonly value: "2-lg4";
76
+ }];
61
77
  };
62
78
  gap: {
63
79
  readonly type: "radio";