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.
Files changed (52) hide show
  1. package/dist/components/puck-base/image.js +1 -1
  2. package/dist/components/puck-block/banner-sections/dual-row-marquee/dual-row-marquee.js +77 -53
  3. package/dist/components/puck-block/contact-sections/tab-locations/tab-locations.js +71 -55
  4. package/dist/components/puck-block/feature-sections/tab-feature/component.js +1 -1
  5. package/dist/components/puck-block/gallery-sections/image-carousel/index.d.ts +14 -1
  6. package/dist/components/puck-block/gallery-sections/interactive-portfolio/interactive-portfolio.js +165 -104
  7. package/dist/components/puck-block/gallery-sections/masonry-grid/index.d.ts +17 -1
  8. package/dist/components/puck-block/gallery-sections/masonry-grid/masonry-grid.js +56 -31
  9. package/dist/components/puck-block/gallery-sections/portfolio-cards/index.d.ts +17 -1
  10. package/dist/components/puck-block/gallery-sections/portfolio-cards/portfolio-cards.js +40 -12
  11. package/dist/components/puck-block/gallery-sections/props.d.ts +31 -2
  12. package/dist/components/puck-block/gallery-sections/props.js +17 -4
  13. package/dist/components/puck-block/gallery-sections/scroll-parallax/scroll-parallax.js +68 -37
  14. package/dist/components/puck-block/gallery-sections/scroll-parallax-portfolio/scroll-parallax-portfolio.js +308 -151
  15. package/dist/components/puck-block/gallery-sections/static-grid/index.d.ts +17 -1
  16. package/dist/components/puck-block/header-sections/centered-navbar/centered-navbar.js +94 -14
  17. package/dist/components/puck-block/hero-sections/grid-expand-hero/index.d.ts +17 -1
  18. package/dist/components/puck-block/hero-sections/inline-image-hero/inline-image-hero.js +59 -28
  19. package/dist/components/puck-block/hero-sections/multi-image-grid-hero/index.d.ts +17 -1
  20. package/dist/components/puck-block/hero-sections/props.d.ts +34 -2
  21. package/dist/components/puck-block/hero-sections/props.js +18 -4
  22. package/dist/components/puck-block/hero-sections/tab-hero/component.js +1 -1
  23. package/dist/components/puck-block/index.d.ts +1 -0
  24. package/dist/components/puck-block/location-sections/index.d.ts +3 -0
  25. package/dist/components/puck-block/location-sections/location-1/index.js +102 -0
  26. package/dist/components/puck-block/location-sections/location-1/location.d.ts +0 -3
  27. package/dist/components/puck-block/location-sections/location-1/location.js +139 -0
  28. package/dist/components/puck-block/location-sections/location-2/index.js +126 -0
  29. package/dist/components/puck-block/location-sections/location-2/location.d.ts +0 -3
  30. package/dist/components/puck-block/location-sections/location-2/location.js +133 -0
  31. package/dist/components/puck-block/location-sections/location-3/index.js +109 -0
  32. package/dist/components/puck-block/location-sections/location-3/location.d.ts +0 -3
  33. package/dist/components/puck-block/location-sections/location-3/location.js +140 -0
  34. package/dist/components/puck-block/location-sections/props.d.ts +0 -3
  35. package/dist/components/puck-block/metrics-sections/tab-stats/tab-stats.js +1 -1
  36. package/dist/components/puck-block/pricing-sections/pricing-comparison-table/component.js +134 -33
  37. package/dist/components/puck-block/pricing-sections/tab-pricing-grid/component.js +86 -40
  38. package/dist/components/puck-block/pricing-sections/tab-single-pricing/component.js +1 -1
  39. package/dist/components/puck-block/registry.generated.d.ts +228 -6
  40. package/dist/components/puck-block/registry.generated.js +157 -138
  41. package/dist/components/puck-block/showcase-sections/tab-timeline/component.js +1 -1
  42. package/dist/components/puck-block/testimonial-sections/bento-testimonial/component.js +157 -83
  43. package/dist/components/puck-block/testimonial-sections/centered-testimonial/component.js +71 -28
  44. package/dist/components/puck-block/testimonial-sections/image-testimonial/component.js +66 -29
  45. package/dist/components/puck-block/testimonial-sections/image-testimonial-carousel/component.js +1 -1
  46. package/dist/components/puck-block/testimonial-sections/tab-testimonial/component.js +4 -4
  47. package/dist/components/puck-block/testimonial-sections/testimonial-card-grid/component.js +2 -2
  48. package/dist/components/puck-block/testimonial-sections/testimonial-carousel/component.js +1 -1
  49. package/dist/components/puck-core/core/props/form.js +25 -1
  50. package/dist/components/puck-core/fields/location-field.js +4 -1
  51. package/dist/index.js +6 -0
  52. package/package.json +4 -1
@@ -57,7 +57,7 @@ function CompoundImageBase(props) {
57
57
  {
58
58
  src: props.src,
59
59
  alt: props.alt,
60
- className: cn("block h-full w-full object-cover", props.className)
60
+ className: cn("block h-full w-full", props.className)
61
61
  }
62
62
  );
63
63
  }
@@ -1,11 +1,7 @@
1
- "use client";
2
1
  import { jsxs, jsx } from "react/jsx-runtime";
3
- import { useMediaQuery } from "../../../../hooks/use-media-query.js";
4
- import { useScroll, useTransform, motion } from "framer-motion";
5
- import React__default, { useRef } from "react";
2
+ import React__default from "react";
6
3
  import { cn } from "../../../../utils/css-utils.js";
7
4
  import { SectionWrapper } from "../../../puck-core/section-wrapper.js";
8
- import { useScrollContainer } from "../../../../hooks/use-scroll-container.js";
9
5
  const DualRowMarquee = (props) => {
10
6
  const {
11
7
  headingsTop = [],
@@ -20,68 +16,96 @@ const DualRowMarquee = (props) => {
20
16
  style: sectionStyle,
21
17
  css
22
18
  } = styles ?? {};
23
- const sectionRef = useRef(null);
24
- const [scrollContainerRef] = useScrollContainer(sectionRef);
25
- const { scrollYProgress } = useScroll({
26
- target: sectionRef,
27
- ...scrollContainerRef.current ? { container: scrollContainerRef } : {},
28
- offset: ["start end", "end start"]
29
- });
30
- const isMobile = useMediaQuery("(max-width: 991px)");
31
- const headingTopTranslate = useTransform(
32
- scrollYProgress,
33
- [0, 1],
34
- isMobile ? ["5%", "0%"] : ["25%", "0%"]
35
- );
36
- const headingBottomTranslate = useTransform(
37
- scrollYProgress,
38
- [0, 1],
39
- isMobile ? ["-5%", "0%"] : ["-25%", "0%"]
40
- );
41
- const renderHeadings = (headings, translate) => /* @__PURE__ */ jsx(
42
- motion.div,
43
- {
44
- className: "grid auto-cols-max grid-flow-col grid-cols-[max-content] items-center justify-around py-2",
45
- style: { x: translate },
46
- children: headings.map((heading, index) => /* @__PURE__ */ jsxs(React__default.Fragment, { children: [
47
- /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center whitespace-nowrap px-4 text-center lg:text-left", children: /* @__PURE__ */ jsx("h1", { className: "text-xl font-bold md:text-2xl", children: heading.title }) }),
48
- /* @__PURE__ */ jsx("div", { className: "relative w-full overflow-hidden", children: /* @__PURE__ */ jsx(
49
- "img",
50
- {
51
- src: heading.image.src,
52
- alt: heading.image.alt,
53
- className: "aspect-square size-full max-h-16 object-cover"
54
- }
55
- ) })
56
- ] }, index))
57
- }
58
- );
19
+ const renderHeadings = (headings) => {
20
+ const repeated = [...headings, ...headings, ...headings];
21
+ return /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center py-2", children: repeated.map((heading, index) => /* @__PURE__ */ jsxs(React__default.Fragment, { children: [
22
+ /* @__PURE__ */ jsx("div", { className: "flex shrink-0 items-center justify-center whitespace-nowrap px-4 text-center lg:text-left", children: /* @__PURE__ */ jsx("h1", { className: "text-xl font-bold md:text-2xl", children: heading.title }) }),
23
+ /* @__PURE__ */ jsx("div", { className: "relative shrink-0 overflow-hidden", children: /* @__PURE__ */ jsx(
24
+ "img",
25
+ {
26
+ src: heading.image.src,
27
+ alt: heading.image.alt,
28
+ className: "h-8 object-contain"
29
+ }
30
+ ) })
31
+ ] }, index)) });
32
+ };
59
33
  return /* @__PURE__ */ jsxs(
60
34
  SectionWrapper,
61
35
  {
62
- ref: sectionRef,
63
- className: cn("flex w-screen max-w-full flex-col justify-end overflow-hidden", sectionClassName),
36
+ className: cn(
37
+ "flex w-screen max-w-full flex-col justify-end overflow-hidden",
38
+ sectionClassName
39
+ ),
64
40
  style: sectionStyle,
65
41
  css,
66
42
  children: [
67
- /* @__PURE__ */ jsx("div", { className: "flex justify-end", children: Array(2).fill(0).map((_, index) => /* @__PURE__ */ jsx(React__default.Fragment, { children: renderHeadings(headingsTop, headingTopTranslate) }, index)) }),
68
- /* @__PURE__ */ jsx("div", { className: "flex justify-start", children: Array(2).fill(0).map((_, index) => /* @__PURE__ */ jsx(React__default.Fragment, { children: renderHeadings(headingsBottom, headingBottomTranslate) }, index)) })
43
+ /* @__PURE__ */ jsx("div", { className: "flex animate-marquee-top", children: Array(2).fill(0).map((_, index) => /* @__PURE__ */ jsx(React__default.Fragment, { children: renderHeadings(headingsTop) }, index)) }),
44
+ /* @__PURE__ */ jsx("div", { className: "flex animate-marquee-bottom", children: Array(2).fill(0).map((_, index) => /* @__PURE__ */ jsx(React__default.Fragment, { children: renderHeadings(headingsBottom) }, index)) })
69
45
  ]
70
46
  }
71
47
  );
72
48
  };
73
49
  const DualRowMarqueeDefaults = {
74
50
  headingsTop: [
75
- { title: "Brand Name", image: { src: "https://picsum.photos/seed/banner-dual-1/100/100", alt: "Brand Name 1" } },
76
- { title: "Brand Name", image: { src: "https://picsum.photos/seed/banner-dual-2/100/100", alt: "Brand Name 2" } },
77
- { title: "Brand Name", image: { src: "https://picsum.photos/seed/banner-dual-3/100/100", alt: "Brand Name 3" } },
78
- { title: "Brand Name", image: { src: "https://picsum.photos/seed/banner-dual-4/100/100", alt: "Brand Name 4" } }
51
+ {
52
+ title: "Brand Name",
53
+ image: {
54
+ src: "https://picsum.photos/seed/banner-dual-1/100/100",
55
+ alt: "Brand Name 1"
56
+ }
57
+ },
58
+ {
59
+ title: "Brand Name",
60
+ image: {
61
+ src: "https://picsum.photos/seed/banner-dual-2/100/100",
62
+ alt: "Brand Name 2"
63
+ }
64
+ },
65
+ {
66
+ title: "Brand Name",
67
+ image: {
68
+ src: "https://picsum.photos/seed/banner-dual-3/100/100",
69
+ alt: "Brand Name 3"
70
+ }
71
+ },
72
+ {
73
+ title: "Brand Name",
74
+ image: {
75
+ src: "https://picsum.photos/seed/banner-dual-4/100/100",
76
+ alt: "Brand Name 4"
77
+ }
78
+ }
79
79
  ],
80
80
  headingsBottom: [
81
- { title: "Brand Name", image: { src: "https://picsum.photos/seed/banner-dual-5/100/100", alt: "Brand Name 5" } },
82
- { title: "Brand Name", image: { src: "https://picsum.photos/seed/banner-dual-6/100/100", alt: "Brand Name 6" } },
83
- { title: "Brand Name", image: { src: "https://picsum.photos/seed/banner-dual-7/100/100", alt: "Brand Name 7" } },
84
- { title: "Brand Name", image: { src: "https://picsum.photos/seed/banner-dual-8/100/100", alt: "Brand Name 8" } }
81
+ {
82
+ title: "Brand Name",
83
+ image: {
84
+ src: "https://picsum.photos/seed/banner-dual-5/100/100",
85
+ alt: "Brand Name 5"
86
+ }
87
+ },
88
+ {
89
+ title: "Brand Name",
90
+ image: {
91
+ src: "https://picsum.photos/seed/banner-dual-6/100/100",
92
+ alt: "Brand Name 6"
93
+ }
94
+ },
95
+ {
96
+ title: "Brand Name",
97
+ image: {
98
+ src: "https://picsum.photos/seed/banner-dual-7/100/100",
99
+ alt: "Brand Name 7"
100
+ }
101
+ },
102
+ {
103
+ title: "Brand Name",
104
+ image: {
105
+ src: "https://picsum.photos/seed/banner-dual-8/100/100",
106
+ alt: "Brand Name 8"
107
+ }
108
+ }
85
109
  ]
86
110
  };
87
111
  export {
@@ -10,62 +10,75 @@ const TabLocations = (props) => {
10
10
  ...TabLocationsDefaults,
11
11
  ...props
12
12
  };
13
- const { className: sectionClassName, style: sectionStyle, css, mediaType = "map" } = styles ?? {};
14
- return /* @__PURE__ */ jsx(SectionWrapper, { className: cn("px-[5%] py-8 md:py-12 lg:py-14", sectionClassName), style: sectionStyle, css, children: /* @__PURE__ */ jsxs("div", { className: "container", children: [
15
- /* @__PURE__ */ jsxs("div", { className: "mb-12 flex max-w-lg flex-col justify-start md:mb-18 lg:mb-20", children: [
16
- /* @__PURE__ */ jsx("p", { className: "mb-3 font-semibold md:mb-4", children: tagline }),
17
- /* @__PURE__ */ jsx("h2", { className: "mb-5 text-5xl font-bold md:mb-6 md:text-7xl lg:text-8xl", children: heading }),
18
- /* @__PURE__ */ jsx("p", { className: "md:text-md", children: description })
19
- ] }),
20
- /* @__PURE__ */ jsxs(
21
- Tabs,
22
- {
23
- defaultValue: (_a = tabs[0]) == null ? void 0 : _a.value,
24
- className: "relative grid auto-cols-fr grid-cols-1 gap-12 md:grid-cols-[.5fr_1fr] md:gap-y-16 lg:gap-x-20 lg:gap-y-16",
25
- children: [
26
- /* @__PURE__ */ jsx(TabsList, { className: "relative grid h-full auto-cols-fr grid-cols-1 gap-x-4 gap-y-10", children: tabs.map((tab, index) => /* @__PURE__ */ jsx(
27
- TabsTrigger,
28
- {
29
- value: tab.value,
30
- className: "items-start justify-start border-0 border-l-2 border-border-primary border-transparent px-0 py-0 pl-8 data-[state=active]:border-black data-[state=active]:bg-background-primary data-[state=active]:text-text-primary",
31
- children: /* @__PURE__ */ jsxs("div", { className: "text-left", children: [
32
- /* @__PURE__ */ jsx("h3", { className: "mb-3 text-xl font-bold md:mb-4 md:text-2xl", children: tab.title }),
33
- /* @__PURE__ */ jsxs("p", { className: "inline-block whitespace-normal", children: [
34
- /* @__PURE__ */ jsx("span", { className: "block", children: tab.addressLine1 }),
35
- /* @__PURE__ */ jsx("span", { className: "block", children: tab.addressLine2 })
36
- ] }),
37
- /* @__PURE__ */ jsx("div", { className: "mt-5 font-semibold md:mt-6", children: /* @__PURE__ */ jsx("p", { children: tab.buttonLabel }) })
38
- ] })
39
- },
40
- index
41
- )) }),
42
- /* @__PURE__ */ jsx("div", { children: tabs.map((tab) => /* @__PURE__ */ jsx(
43
- TabsContent,
44
- {
45
- value: tab.value,
46
- className: "data-[state=active]:animate-tabs",
47
- children: /* @__PURE__ */ jsx("div", { className: "relative size-full", children: mediaType === "map" ? /* @__PURE__ */ jsx("a", { href: tab.mapUrl, className: "block", children: /* @__PURE__ */ jsx(
48
- CompoundImage,
13
+ const {
14
+ className: sectionClassName,
15
+ style: sectionStyle,
16
+ css,
17
+ mediaType = "map"
18
+ } = styles ?? {};
19
+ return /* @__PURE__ */ jsx(
20
+ SectionWrapper,
21
+ {
22
+ className: cn("px-[5%] py-8 md:py-12 lg:py-14", sectionClassName),
23
+ style: sectionStyle,
24
+ css,
25
+ children: /* @__PURE__ */ jsxs("div", { className: "container", children: [
26
+ /* @__PURE__ */ jsxs("div", { className: "mb-12 flex max-w-lg flex-col justify-start md:mb-18 lg:mb-20", children: [
27
+ /* @__PURE__ */ jsx("p", { className: "mb-3 font-semibold md:mb-4", children: tagline }),
28
+ /* @__PURE__ */ jsx("h2", { className: "mb-5 text-5xl font-bold md:mb-6 md:text-7xl lg:text-8xl", children: heading }),
29
+ /* @__PURE__ */ jsx("p", { className: "md:text-md", children: description })
30
+ ] }),
31
+ /* @__PURE__ */ jsxs(
32
+ Tabs,
33
+ {
34
+ defaultValue: (_a = tabs[0]) == null ? void 0 : _a.value,
35
+ className: "relative grid auto-cols-fr grid-cols-1 gap-12 md:grid-cols-[.5fr_1fr] md:gap-y-16 lg:gap-x-20 lg:gap-y-16",
36
+ children: [
37
+ /* @__PURE__ */ jsx(TabsList, { className: "relative grid h-full auto-cols-fr grid-cols-1 gap-x-4 gap-y-10", children: tabs.map((tab, index) => /* @__PURE__ */ jsx(
38
+ TabsTrigger,
49
39
  {
50
- src: tab.image.src,
51
- alt: tab.image.alt,
52
- className: "size-full object-cover"
53
- }
54
- ) }) : /* @__PURE__ */ jsx(
55
- CompoundImage,
40
+ value: tab.value,
41
+ className: "items-start justify-start border-0 border-l-2 border-border-primary border-transparent px-0 py-0 pl-8 data-[state=active]:border-black data-[state=active]:bg-background-primary data-[state=active]:text-text-primary",
42
+ children: /* @__PURE__ */ jsxs("div", { className: "text-left", children: [
43
+ /* @__PURE__ */ jsx("h3", { className: "mb-3 text-xl font-bold md:mb-4 md:text-2xl", children: tab.title }),
44
+ /* @__PURE__ */ jsxs("p", { className: "inline-block whitespace-normal", children: [
45
+ /* @__PURE__ */ jsx("span", { className: "block", children: tab.addressLine1 }),
46
+ /* @__PURE__ */ jsx("span", { className: "block", children: tab.addressLine2 })
47
+ ] }),
48
+ /* @__PURE__ */ jsx("div", { className: "mt-5 font-semibold md:mt-6", children: /* @__PURE__ */ jsx("p", { children: tab.buttonLabel }) })
49
+ ] })
50
+ },
51
+ index
52
+ )) }),
53
+ /* @__PURE__ */ jsx("div", { children: tabs.map((tab) => /* @__PURE__ */ jsx(
54
+ TabsContent,
56
55
  {
57
- src: tab.image.src,
58
- alt: tab.image.alt,
59
- className: "size-full object-cover"
60
- }
61
- ) })
62
- },
63
- tab.value
64
- )) })
65
- ]
66
- }
67
- )
68
- ] }) });
56
+ value: tab.value,
57
+ className: "animate-tabs",
58
+ children: /* @__PURE__ */ jsx("div", { className: "relative size-full", children: mediaType === "map" ? /* @__PURE__ */ jsx("a", { href: tab.mapUrl, className: "block", children: /* @__PURE__ */ jsx(
59
+ CompoundImage,
60
+ {
61
+ src: tab.image.src,
62
+ alt: tab.image.alt,
63
+ className: "size-full object-cover"
64
+ }
65
+ ) }) : /* @__PURE__ */ jsx(
66
+ CompoundImage,
67
+ {
68
+ src: tab.image.src,
69
+ alt: tab.image.alt,
70
+ className: "size-full object-cover"
71
+ }
72
+ ) })
73
+ },
74
+ tab.value
75
+ )) })
76
+ ]
77
+ }
78
+ )
79
+ ] })
80
+ }
81
+ );
69
82
  };
70
83
  const TabLocationsDefaults = {
71
84
  tagline: "Tagline",
@@ -73,7 +86,10 @@ const TabLocationsDefaults = {
73
86
  description: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
74
87
  button: { label: "Submit" },
75
88
  buttons: [],
76
- image: { src: "https://picsum.photos/seed/contact-tab/800/600", alt: "Placeholder" },
89
+ image: {
90
+ src: "https://picsum.photos/seed/contact-tab/800/600",
91
+ alt: "Placeholder"
92
+ },
77
93
  email: "",
78
94
  phone: "",
79
95
  address: "",
@@ -51,7 +51,7 @@ const TabFeature = (props) => {
51
51
  TabsContent,
52
52
  {
53
53
  value: tab.value,
54
- className: "data-[state=active]:animate-tabs",
54
+ className: "animate-tabs",
55
55
  children: [
56
56
  tab.image && !tab.videoUrl && /* @__PURE__ */ jsx(
57
57
  CompoundImage,
@@ -89,8 +89,21 @@ declare const conf: {
89
89
  }];
90
90
  };
91
91
  slidesPerView: {
92
- readonly type: "text";
92
+ readonly type: "select";
93
93
  readonly label: "Slides Per View";
94
+ readonly options: readonly [{
95
+ readonly label: "1";
96
+ readonly value: "1";
97
+ }, {
98
+ readonly label: "1 → 2 (responsive)";
99
+ readonly value: "1-md2";
100
+ }, {
101
+ readonly label: "2 → 3 (responsive)";
102
+ readonly value: "2-md3";
103
+ }, {
104
+ readonly label: "2 → 4 (responsive)";
105
+ readonly value: "2-md4";
106
+ }];
94
107
  };
95
108
  slideOverflow: {
96
109
  readonly type: "radio";