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