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
@@ -59,8 +59,24 @@ export interface GallerySectionBaseProps {
59
59
  }
60
60
  export declare const galleryStyleFields: {
61
61
  readonly columns: {
62
- readonly type: "text";
62
+ readonly type: "select";
63
63
  readonly label: "Columns";
64
+ readonly options: readonly [{
65
+ readonly label: "1";
66
+ readonly value: "1";
67
+ }, {
68
+ readonly label: "2";
69
+ readonly value: "2";
70
+ }, {
71
+ readonly label: "3";
72
+ readonly value: "3";
73
+ }, {
74
+ readonly label: "2 → 3 (responsive)";
75
+ readonly value: "2-lg3";
76
+ }, {
77
+ readonly label: "2 → 4 (responsive)";
78
+ readonly value: "2-lg4";
79
+ }];
64
80
  };
65
81
  readonly gap: {
66
82
  readonly type: "radio";
@@ -118,8 +134,21 @@ export declare const galleryStyleFields: {
118
134
  }];
119
135
  };
120
136
  readonly slidesPerView: {
121
- readonly type: "text";
137
+ readonly type: "select";
122
138
  readonly label: "Slides Per View";
139
+ readonly options: readonly [{
140
+ readonly label: "1";
141
+ readonly value: "1";
142
+ }, {
143
+ readonly label: "1 → 2 (responsive)";
144
+ readonly value: "1-md2";
145
+ }, {
146
+ readonly label: "2 → 3 (responsive)";
147
+ readonly value: "2-md3";
148
+ }, {
149
+ readonly label: "2 → 4 (responsive)";
150
+ readonly value: "2-md4";
151
+ }];
123
152
  };
124
153
  readonly slideOverflow: {
125
154
  readonly type: "radio";
@@ -144,8 +173,18 @@ export declare const galleryStyleFields: {
144
173
  }];
145
174
  };
146
175
  readonly slideBasis: {
147
- readonly type: "text";
176
+ readonly type: "select";
148
177
  readonly label: "Slide Basis";
178
+ readonly options: readonly [{
179
+ readonly label: "4/5";
180
+ readonly value: "4/5";
181
+ }, {
182
+ readonly label: "45%";
183
+ readonly value: "45%";
184
+ }, {
185
+ readonly label: "30%";
186
+ readonly value: "30%";
187
+ }];
149
188
  };
150
189
  readonly bordered: {
151
190
  readonly type: "radio";
@@ -1,7 +1,14 @@
1
1
  const galleryStyleFields = {
2
2
  columns: {
3
- type: "text",
4
- label: "Columns"
3
+ type: "select",
4
+ label: "Columns",
5
+ options: [
6
+ { label: "1", value: "1" },
7
+ { label: "2", value: "2" },
8
+ { label: "3", value: "3" },
9
+ { label: "2 → 3 (responsive)", value: "2-lg3" },
10
+ { label: "2 → 4 (responsive)", value: "2-lg4" }
11
+ ]
5
12
  },
6
13
  gap: {
7
14
  type: "radio",
@@ -44,8 +51,14 @@ const galleryStyleFields = {
44
51
  ]
45
52
  },
46
53
  slidesPerView: {
47
- type: "text",
48
- label: "Slides Per View"
54
+ type: "select",
55
+ label: "Slides Per View",
56
+ options: [
57
+ { label: "1", value: "1" },
58
+ { label: "1 → 2 (responsive)", value: "1-md2" },
59
+ { label: "2 → 3 (responsive)", value: "2-md3" },
60
+ { label: "2 → 4 (responsive)", value: "2-md4" }
61
+ ]
49
62
  },
50
63
  slideOverflow: {
51
64
  type: "radio",
@@ -64,8 +77,13 @@ const galleryStyleFields = {
64
77
  ]
65
78
  },
66
79
  slideBasis: {
67
- type: "text",
68
- label: "Slide Basis"
80
+ type: "select",
81
+ label: "Slide Basis",
82
+ options: [
83
+ { label: "4/5", value: "4/5" },
84
+ { label: "45%", value: "45%" },
85
+ { label: "30%", value: "30%" }
86
+ ]
69
87
  },
70
88
  bordered: {
71
89
  type: "radio",
@@ -5,13 +5,19 @@ import { useScroll, useTransform, motion } from "framer-motion";
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 ScrollParallax = (props) => {
10
11
  const { heading, description, images, styles } = {
11
12
  ...ScrollParallaxDefaults,
12
13
  ...props
13
14
  };
14
- const { className: sectionClassName, style: sectionStyle, css } = styles ?? {};
15
+ const {
16
+ className: sectionClassName,
17
+ style: sectionStyle,
18
+ css
19
+ } = styles ?? {};
20
+ const { isEditor } = useEditorContext();
15
21
  const transformRef = useRef(null);
16
22
  const [scrollContainerRef] = useScrollContainer(transformRef);
17
23
  const { scrollYProgress } = useScroll({
@@ -19,27 +25,61 @@ const ScrollParallax = (props) => {
19
25
  ...scrollContainerRef.current ? { container: scrollContainerRef } : {}
20
26
  });
21
27
  const x = useTransform(scrollYProgress, [0, 1], ["0%", "-100%"]);
22
- return /* @__PURE__ */ jsxs(SectionWrapper, { ref: transformRef, className: cn(sectionClassName), style: sectionStyle, css, children: [
23
- /* @__PURE__ */ jsx("div", { className: "px-[5%] pt-16 md:pt-24 lg:pt-28", children: /* @__PURE__ */ jsxs("div", { className: "container text-center", children: [
24
- /* @__PURE__ */ jsx("h2", { className: "rb-5 mb-5 text-5xl font-bold md:mb-6 md:text-7xl lg:text-8xl", children: heading }),
25
- /* @__PURE__ */ jsx("p", { className: "md:text-md", children: description })
26
- ] }) }),
27
- /* @__PURE__ */ jsx("div", { className: "h-[400vh]", children: /* @__PURE__ */ jsx("div", { className: "sticky top-0 mt-[-10vh] flex h-screen w-screen max-w-full flex-col items-start justify-center overflow-hidden px-[5%] md:mt-0", children: /* @__PURE__ */ jsx(
28
- motion.div,
28
+ if (isEditor) {
29
+ return /* @__PURE__ */ jsxs(
30
+ SectionWrapper,
29
31
  {
30
- style: { x },
31
- className: "flex w-[150vh] items-center gap-x-6 sm:w-[200vh] md:gap-x-8 lg:w-[400vh]",
32
- children: images.map((image, index) => /* @__PURE__ */ jsx("a", { className: "inline-block max-w-full", children: /* @__PURE__ */ jsx("div", { className: "relative size-full max-w-full overflow-hidden", children: /* @__PURE__ */ jsx(
33
- CompoundImage,
32
+ ref: transformRef,
33
+ className: cn(sectionClassName),
34
+ style: sectionStyle,
35
+ css,
36
+ children: [
37
+ /* @__PURE__ */ jsx("div", { className: "px-[5%] pt-16 md:pt-24 lg:pt-28", children: /* @__PURE__ */ jsxs("div", { className: "container text-center", children: [
38
+ /* @__PURE__ */ jsx("h2", { className: "rb-5 mb-5 text-5xl font-bold md:mb-6 md:text-7xl lg:text-8xl", children: heading }),
39
+ /* @__PURE__ */ jsx("p", { className: "md:text-md", children: description })
40
+ ] }) }),
41
+ /* @__PURE__ */ jsx("div", { className: "px-[5%] py-12", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-6 sm:grid-cols-2 lg:grid-cols-3", children: images.map((image, index) => /* @__PURE__ */ jsx("div", { className: "overflow-hidden", children: /* @__PURE__ */ jsx(
42
+ CompoundImage,
43
+ {
44
+ className: "aspect-video w-full object-cover",
45
+ src: image.src,
46
+ alt: image.alt
47
+ }
48
+ ) }, index)) }) })
49
+ ]
50
+ }
51
+ );
52
+ }
53
+ return /* @__PURE__ */ jsxs(
54
+ SectionWrapper,
55
+ {
56
+ ref: transformRef,
57
+ className: cn(sectionClassName),
58
+ style: sectionStyle,
59
+ css,
60
+ children: [
61
+ /* @__PURE__ */ jsx("div", { className: "px-[5%] pt-16 md:pt-24 lg:pt-28", children: /* @__PURE__ */ jsxs("div", { className: "container text-center", children: [
62
+ /* @__PURE__ */ jsx("h2", { className: "rb-5 mb-5 text-5xl font-bold md:mb-6 md:text-7xl lg:text-8xl", children: heading }),
63
+ /* @__PURE__ */ jsx("p", { className: "md:text-md", children: description })
64
+ ] }) }),
65
+ /* @__PURE__ */ jsx("div", { className: "h-[400vh]", children: /* @__PURE__ */ jsx("div", { className: "sticky top-0 mt-[-10vh] flex h-screen w-screen max-w-full flex-col items-start justify-center overflow-hidden px-[5%] md:mt-0", children: /* @__PURE__ */ jsx(
66
+ motion.div,
34
67
  {
35
- className: "h-[80vh] max-h-[25rem] object-cover sm:max-h-[30rem] sm:w-[90vw] md:max-h-[40rem] md:w-[80vw] lg:max-h-none",
36
- src: image.src,
37
- alt: image.alt
68
+ style: { x },
69
+ className: "flex w-[150vh] items-center gap-x-6 sm:w-[200vh] md:gap-x-8 lg:w-[400vh]",
70
+ children: images.map((image, index) => /* @__PURE__ */ jsx("a", { className: "inline-block max-w-full", children: /* @__PURE__ */ jsx("div", { className: "relative size-full max-w-full overflow-hidden", children: /* @__PURE__ */ jsx(
71
+ CompoundImage,
72
+ {
73
+ className: "h-[80vh] max-h-[25rem] object-cover sm:max-h-[30rem] sm:w-[90vw] md:max-h-[40rem] md:w-[80vw] lg:max-h-none",
74
+ src: image.src,
75
+ alt: image.alt
76
+ }
77
+ ) }) }, index))
38
78
  }
39
- ) }) }, index))
40
- }
41
- ) }) })
42
- ] });
79
+ ) }) })
80
+ ]
81
+ }
82
+ );
43
83
  };
44
84
  const ScrollParallaxDefaults = {
45
85
  tagline: "",
@@ -48,9 +88,18 @@ const ScrollParallaxDefaults = {
48
88
  button: { label: "View all" },
49
89
  buttons: [],
50
90
  images: [
51
- { src: "https://picsum.photos/seed/scroll-1/1200/800", alt: "Gallery image 1" },
52
- { src: "https://picsum.photos/seed/scroll-2/1200/800", alt: "Gallery image 2" },
53
- { src: "https://picsum.photos/seed/scroll-3/1200/800", alt: "Gallery image 3" }
91
+ {
92
+ src: "https://picsum.photos/seed/scroll-1/1200/800",
93
+ alt: "Gallery image 1"
94
+ },
95
+ {
96
+ src: "https://picsum.photos/seed/scroll-2/1200/800",
97
+ alt: "Gallery image 2"
98
+ },
99
+ {
100
+ src: "https://picsum.photos/seed/scroll-3/1200/800",
101
+ alt: "Gallery image 3"
102
+ }
54
103
  ],
55
104
  projects: [],
56
105
  hoverLinks: [],