@cntrl-site/components 0.1.9 → 0.1.10-alpha.1

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/index.mjs CHANGED
@@ -3,17 +3,17 @@ import React, { useState, useEffect, useRef, useCallback } from "react";
3
3
  import { Splide, SplideSlide } from "@splidejs/react-splide";
4
4
  import cn from "classnames";
5
5
  import { createPortal } from "react-dom";
6
- const wrapper = "ControlSlider-module__wrapper___sHEkd";
6
+ const wrapper$1 = "ControlSlider-module__wrapper___sHEkd";
7
7
  const hoverArrow = "ControlSlider-module__hoverArrow___A-dOH";
8
8
  const sliderItem = "ControlSlider-module__sliderItem___QQSkR";
9
9
  const sliderImage = "ControlSlider-module__sliderImage___9hRl-";
10
- const arrow$1 = "ControlSlider-module__arrow___05ghY";
10
+ const arrow$2 = "ControlSlider-module__arrow___05ghY";
11
11
  const arrowVertical$1 = "ControlSlider-module__arrowVertical___tBfVN";
12
- const nextArrow$1 = "ControlSlider-module__nextArrow___-30Yc";
13
- const arrowInner$1 = "ControlSlider-module__arrowInner___aEra3";
14
- const arrowIcon = "ControlSlider-module__arrowIcon___S4ztF";
15
- const arrowImg$1 = "ControlSlider-module__arrowImg___2dwJW";
16
- const mirror$1 = "ControlSlider-module__mirror___brd6U";
12
+ const nextArrow$2 = "ControlSlider-module__nextArrow___-30Yc";
13
+ const arrowInner$2 = "ControlSlider-module__arrowInner___aEra3";
14
+ const arrowIcon$1 = "ControlSlider-module__arrowIcon___S4ztF";
15
+ const arrowImg$2 = "ControlSlider-module__arrowImg___2dwJW";
16
+ const mirror$2 = "ControlSlider-module__mirror___brd6U";
17
17
  const pagination = "ControlSlider-module__pagination___bicLF";
18
18
  const paginationInner = "ControlSlider-module__paginationInner___bT-P-";
19
19
  const paginationVertical = "ControlSlider-module__paginationVertical___zYqKw";
@@ -45,19 +45,19 @@ const bottomCenterAlignment = "ControlSlider-module__bottomCenterAlignment___c54
45
45
  const bottomRightAlignment = "ControlSlider-module__bottomRightAlignment___kEwrz";
46
46
  const clickOverlay = "ControlSlider-module__clickOverlay___DZA28";
47
47
  const contain$1 = "ControlSlider-module__contain___pLyq7";
48
- const cover$1 = "ControlSlider-module__cover___KdDat";
48
+ const cover$2 = "ControlSlider-module__cover___KdDat";
49
49
  const styles$3 = {
50
- wrapper,
50
+ wrapper: wrapper$1,
51
51
  hoverArrow,
52
52
  sliderItem,
53
53
  sliderImage,
54
- arrow: arrow$1,
54
+ arrow: arrow$2,
55
55
  arrowVertical: arrowVertical$1,
56
- nextArrow: nextArrow$1,
57
- arrowInner: arrowInner$1,
58
- arrowIcon,
59
- arrowImg: arrowImg$1,
60
- mirror: mirror$1,
56
+ nextArrow: nextArrow$2,
57
+ arrowInner: arrowInner$2,
58
+ arrowIcon: arrowIcon$1,
59
+ arrowImg: arrowImg$2,
60
+ mirror: mirror$2,
61
61
  pagination,
62
62
  paginationInner,
63
63
  paginationVertical,
@@ -89,7 +89,7 @@ const styles$3 = {
89
89
  bottomRightAlignment,
90
90
  clickOverlay,
91
91
  contain: contain$1,
92
- cover: cover$1
92
+ cover: cover$2
93
93
  };
94
94
  const link$1 = "RichTextRenderer-module__link___BWeZ2";
95
95
  const styles$2 = {
@@ -343,7 +343,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
343
343
  className: cn(styles$3.arrowImg, styles$3.mirror)
344
344
  }
345
345
  ),
346
- !controls.arrowsImgUrl && /* @__PURE__ */ jsx(ArrowIcon, { color: controls.color, className: cn(styles$3.arrowIcon, styles$3.arrowImg, styles$3.mirror) })
346
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsx(ArrowIcon$1, { color: controls.color, className: cn(styles$3.arrowIcon, styles$3.arrowImg, styles$3.mirror) })
347
347
  ]
348
348
  }
349
349
  )
@@ -378,7 +378,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
378
378
  className: styles$3.arrowImg
379
379
  }
380
380
  ),
381
- !controls.arrowsImgUrl && /* @__PURE__ */ jsx(ArrowIcon, { color: controls.color, className: cn(styles$3.arrowIcon, styles$3.arrowImg) })
381
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsx(ArrowIcon$1, { color: controls.color, className: cn(styles$3.arrowIcon, styles$3.arrowImg) })
382
382
  ]
383
383
  }
384
384
  )
@@ -450,7 +450,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
450
450
  }
451
451
  ) });
452
452
  }
453
- function ArrowIcon({ color, className }) {
453
+ function ArrowIcon$1({ color, className }) {
454
454
  return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 10 18", className, children: /* @__PURE__ */ jsx("g", { id: "Symbols", stroke: "none", strokeWidth: "1", fillRule: "evenodd", children: /* @__PURE__ */ jsx("path", { d: "M-3.70710678,4.29289322 C-3.34662282,3.93240926 -2.77939176,3.90467972 -2.38710056,4.20970461 L-2.29289322,4.29289322 L5,11.585 L12.2928932,4.29289322 C12.6533772,3.93240926 13.2206082,3.90467972 13.6128994,4.20970461 L13.7071068,4.29289322 C14.0675907,4.65337718 14.0953203,5.22060824 13.7902954,5.61289944 L13.7071068,5.70710678 L5.70710678,13.7071068 C5.34662282,14.0675907 4.77939176,14.0953203 4.38710056,13.7902954 L4.29289322,13.7071068 L-3.70710678,5.70710678 C-4.09763107,5.31658249 -4.09763107,4.68341751 -3.70710678,4.29289322 Z", id: "Shape-Copy", fill: color, transform: "translate(5, 9) rotate(-90) translate(-5, -9)" }) }) });
455
455
  }
456
456
  const ControlSliderComponent = {
@@ -1622,16 +1622,16 @@ const contentStyle = "LightBox-module__contentStyle___Bgnsq";
1622
1622
  const imageStyle = "LightBox-module__imageStyle___tLIlB";
1623
1623
  const imgWrapper = "LightBox-module__imgWrapper___LuFUp";
1624
1624
  const contain = "LightBox-module__contain___8-yaS";
1625
- const cover = "LightBox-module__cover___hNvOG";
1626
- const caption = "LightBox-module__caption___b6L2I";
1625
+ const cover$1 = "LightBox-module__cover___hNvOG";
1626
+ const caption$1 = "LightBox-module__caption___b6L2I";
1627
1627
  const captionTextInner = "LightBox-module__captionTextInner___rCGNH";
1628
1628
  const lightboxSplide = "LightBox-module__lightboxSplide___XFuWC";
1629
- const arrow = "LightBox-module__arrow___iz38X";
1629
+ const arrow$1 = "LightBox-module__arrow___iz38X";
1630
1630
  const arrowVertical = "LightBox-module__arrowVertical___Zfz81";
1631
- const nextArrow = "LightBox-module__nextArrow___zkAQN";
1632
- const arrowInner = "LightBox-module__arrowInner___p48sW";
1633
- const arrowImg = "LightBox-module__arrowImg___pNV88";
1634
- const mirror = "LightBox-module__mirror___pjeXc";
1631
+ const nextArrow$1 = "LightBox-module__nextArrow___zkAQN";
1632
+ const arrowInner$1 = "LightBox-module__arrowInner___p48sW";
1633
+ const arrowImg$1 = "LightBox-module__arrowImg___pNV88";
1634
+ const mirror$1 = "LightBox-module__mirror___pjeXc";
1635
1635
  const thumbsContainerVertical = "LightBox-module__thumbsContainerVertical___wttk5";
1636
1636
  const thumbsContainer = "LightBox-module__thumbsContainer___osSma";
1637
1637
  const thumbsAlignStart = "LightBox-module__thumbsAlignStart___MO6tY";
@@ -1650,7 +1650,7 @@ const slideOutRight = "LightBox-module__slideOutRight___SK7eC";
1650
1650
  const slideOutTop = "LightBox-module__slideOutTop___Vgg0z";
1651
1651
  const slideOutBottom = "LightBox-module__slideOutBottom___nJ0Ef";
1652
1652
  const scaleSlide = "LightBox-module__scaleSlide___vZriG";
1653
- const classes = {
1653
+ const classes$1 = {
1654
1654
  heroImage,
1655
1655
  background,
1656
1656
  editor,
@@ -1658,16 +1658,16 @@ const classes = {
1658
1658
  imageStyle,
1659
1659
  imgWrapper,
1660
1660
  contain,
1661
- cover,
1662
- caption,
1661
+ cover: cover$1,
1662
+ caption: caption$1,
1663
1663
  captionTextInner,
1664
1664
  lightboxSplide,
1665
- arrow,
1665
+ arrow: arrow$1,
1666
1666
  arrowVertical,
1667
- nextArrow,
1668
- arrowInner,
1669
- arrowImg,
1670
- mirror,
1667
+ nextArrow: nextArrow$1,
1668
+ arrowInner: arrowInner$1,
1669
+ arrowImg: arrowImg$1,
1670
+ mirror: mirror$1,
1671
1671
  thumbsContainerVertical,
1672
1672
  thumbsContainer,
1673
1673
  thumbsAlignStart,
@@ -1767,76 +1767,76 @@ function getColorAlpha(color) {
1767
1767
  }
1768
1768
  function getAnimationClasses(type, direction) {
1769
1769
  const appearClass = (() => {
1770
- if (type === "fade in") return classes.fadeIn;
1770
+ if (type === "fade in") return classes$1.fadeIn;
1771
1771
  if (type === "slide in" || type === "mix") {
1772
1772
  switch (direction) {
1773
1773
  case "left":
1774
- return classes.slideInLeft;
1774
+ return classes$1.slideInLeft;
1775
1775
  case "right":
1776
- return classes.slideInRight;
1776
+ return classes$1.slideInRight;
1777
1777
  case "top":
1778
- return classes.slideInTop;
1778
+ return classes$1.slideInTop;
1779
1779
  case "bottom":
1780
- return classes.slideInBottom;
1780
+ return classes$1.slideInBottom;
1781
1781
  default:
1782
- return classes.slideInRight;
1782
+ return classes$1.slideInRight;
1783
1783
  }
1784
1784
  }
1785
- return classes.fadeIn;
1785
+ return classes$1.fadeIn;
1786
1786
  })();
1787
1787
  const backdropAppearClass = (() => {
1788
- if (type === "fade in" || type === "mix") return classes.fadeIn;
1788
+ if (type === "fade in" || type === "mix") return classes$1.fadeIn;
1789
1789
  if (type === "slide in") {
1790
1790
  switch (direction) {
1791
1791
  case "left":
1792
- return classes.slideInLeft;
1792
+ return classes$1.slideInLeft;
1793
1793
  case "right":
1794
- return classes.slideInRight;
1794
+ return classes$1.slideInRight;
1795
1795
  case "top":
1796
- return classes.slideInTop;
1796
+ return classes$1.slideInTop;
1797
1797
  case "bottom":
1798
- return classes.slideInBottom;
1798
+ return classes$1.slideInBottom;
1799
1799
  default:
1800
- return classes.slideInRight;
1800
+ return classes$1.slideInRight;
1801
1801
  }
1802
1802
  }
1803
- return classes.fadeIn;
1803
+ return classes$1.fadeIn;
1804
1804
  })();
1805
1805
  const backdropDisappearClass = (() => {
1806
- if (type === "fade in" || type === "mix") return classes.fadeOut;
1806
+ if (type === "fade in" || type === "mix") return classes$1.fadeOut;
1807
1807
  if (type === "slide in") {
1808
1808
  switch (direction) {
1809
1809
  case "left":
1810
- return classes.slideOutLeft;
1810
+ return classes$1.slideOutLeft;
1811
1811
  case "right":
1812
- return classes.slideOutRight;
1812
+ return classes$1.slideOutRight;
1813
1813
  case "top":
1814
- return classes.slideOutTop;
1814
+ return classes$1.slideOutTop;
1815
1815
  case "bottom":
1816
- return classes.slideOutBottom;
1816
+ return classes$1.slideOutBottom;
1817
1817
  default:
1818
- return classes.slideOutRight;
1818
+ return classes$1.slideOutRight;
1819
1819
  }
1820
1820
  }
1821
- return classes.fadeOut;
1821
+ return classes$1.fadeOut;
1822
1822
  })();
1823
1823
  const disappearClass = (() => {
1824
- if (type === "fade in") return classes.fadeOut;
1824
+ if (type === "fade in") return classes$1.fadeOut;
1825
1825
  if (type === "slide in" || type === "mix") {
1826
1826
  switch (direction) {
1827
1827
  case "left":
1828
- return classes.slideOutLeft;
1828
+ return classes$1.slideOutLeft;
1829
1829
  case "right":
1830
- return classes.slideOutRight;
1830
+ return classes$1.slideOutRight;
1831
1831
  case "top":
1832
- return classes.slideOutTop;
1832
+ return classes$1.slideOutTop;
1833
1833
  case "bottom":
1834
- return classes.slideOutBottom;
1834
+ return classes$1.slideOutBottom;
1835
1835
  default:
1836
- return classes.slideOutRight;
1836
+ return classes$1.slideOutRight;
1837
1837
  }
1838
1838
  }
1839
- return classes.fadeOut;
1839
+ return classes$1.fadeOut;
1840
1840
  })();
1841
1841
  return { appearClass, backdropAppearClass, backdropDisappearClass, disappearClass };
1842
1842
  }
@@ -1857,7 +1857,7 @@ const LightboxGallery = ({ settings, content, styles: styles2, portalId, activeE
1857
1857
  {
1858
1858
  src: url,
1859
1859
  alt: "Cover",
1860
- className: classes.heroImage,
1860
+ className: classes$1.heroImage,
1861
1861
  onClick: () => setOpen(true)
1862
1862
  }
1863
1863
  ),
@@ -2079,7 +2079,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2079
2079
  return;
2080
2080
  }
2081
2081
  const target = e.target;
2082
- if (target && (target.closest(`.${classes.thumbsContainer}`) || target.closest(`.${classes.thumbItem}`))) {
2082
+ if (target && (target.closest(`.${classes$1.thumbsContainer}`) || target.closest(`.${classes$1.thumbItem}`))) {
2083
2083
  return;
2084
2084
  }
2085
2085
  if (e.touches.length === 0 && e.changedTouches.length > 0) {
@@ -2127,7 +2127,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2127
2127
  "div",
2128
2128
  {
2129
2129
  ref: !isEditor ? animationTargetRef : null,
2130
- className: cn(classes.background, isClosing ? backdropDisappearClass : backdropAppearClass, { [classes.editor]: isEditor }),
2130
+ className: cn(classes$1.background, isClosing ? backdropDisappearClass : backdropAppearClass, { [classes$1.editor]: isEditor }),
2131
2131
  style: {
2132
2132
  ...backdropStyles,
2133
2133
  ...animationFinished && !isEditor && !isClosing ? { position: "absolute" } : {}
@@ -2138,7 +2138,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2138
2138
  "div",
2139
2139
  {
2140
2140
  ref: isEditor ? animationTargetRef : null,
2141
- className: cn(classes.contentStyle, !isClosing ? appearClass : disappearClass, { [classes.editor]: isEditor }),
2141
+ className: cn(classes$1.contentStyle, !isClosing ? appearClass : disappearClass, { [classes$1.editor]: isEditor }),
2142
2142
  style: {
2143
2143
  animationDuration: `${parseInt(appear.duration)}ms`,
2144
2144
  animationTimingFunction: "ease",
@@ -2150,7 +2150,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2150
2150
  {
2151
2151
  onMove: (splide) => setCurrentIndex(splide.index),
2152
2152
  ref: lightboxRef,
2153
- className: classes.lightboxSplide,
2153
+ className: classes$1.lightboxSplide,
2154
2154
  options: {
2155
2155
  arrows: false,
2156
2156
  speed: slider.duration ? parseInt(slider.duration) : 500,
@@ -2178,14 +2178,14 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2178
2178
  "--position-transform": transform || "none"
2179
2179
  };
2180
2180
  })() : { ...positionStyles, position: "absolute", padding, boxSizing: "border-box" };
2181
- return /* @__PURE__ */ jsx(SplideSlide, { children: /* @__PURE__ */ jsx("div", { className: classes.imgWrapper, onClick: handleImageWrapperClick, children: /* @__PURE__ */ jsx(
2181
+ return /* @__PURE__ */ jsx(SplideSlide, { children: /* @__PURE__ */ jsx("div", { className: classes$1.imgWrapper, onClick: handleImageWrapperClick, children: /* @__PURE__ */ jsx(
2182
2182
  "img",
2183
2183
  {
2184
2184
  ref: index === currentIndex ? imageRef : null,
2185
- className: cn(classes.imageStyle, {
2186
- [classes.contain]: item.image.objectFit === "contain",
2187
- [classes.cover]: item.image.objectFit === "cover",
2188
- [classes.scaleSlide]: slider.type === "scale"
2185
+ className: cn(classes$1.imageStyle, {
2186
+ [classes$1.contain]: item.image.objectFit === "contain",
2187
+ [classes$1.cover]: item.image.objectFit === "cover",
2188
+ [classes$1.scaleSlide]: slider.type === "scale"
2189
2189
  }),
2190
2190
  onClick: item.image.objectFit !== "contain" ? onImageClick : void 0,
2191
2191
  src: item.image.url,
@@ -2201,12 +2201,12 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2201
2201
  /* @__PURE__ */ jsx(
2202
2202
  "div",
2203
2203
  {
2204
- className: cn(classes.arrow, { [classes.arrowVertical]: slider.direction === "vert" }),
2204
+ className: cn(classes$1.arrow, { [classes$1.arrowVertical]: slider.direction === "vert" }),
2205
2205
  style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
2206
2206
  children: /* @__PURE__ */ jsx(
2207
2207
  "button",
2208
2208
  {
2209
- className: classes.arrowInner,
2209
+ className: classes$1.arrowInner,
2210
2210
  style: { transform: `translate(${scalingValue(controls.offset.x, isEditor)}, ${scalingValue(controls.offset.y * (slider.direction === "horiz" ? 1 : -1), isEditor)}) scale(${controls.scale}) rotate(${slider.direction === "horiz" ? "0deg" : "90deg"})` },
2211
2211
  onClick: () => {
2212
2212
  var _a;
@@ -2219,7 +2219,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2219
2219
  url: controls.arrowsImgUrl,
2220
2220
  fill: controls.color,
2221
2221
  hoverFill: controls.hover,
2222
- className: cn(classes.arrowImg, classes.mirror)
2222
+ className: cn(classes$1.arrowImg, classes$1.mirror)
2223
2223
  }
2224
2224
  )
2225
2225
  }
@@ -2229,12 +2229,12 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2229
2229
  /* @__PURE__ */ jsx(
2230
2230
  "div",
2231
2231
  {
2232
- className: cn(classes.arrow, classes.nextArrow, { [classes.arrowVertical]: slider.direction === "vert" }),
2232
+ className: cn(classes$1.arrow, classes$1.nextArrow, { [classes$1.arrowVertical]: slider.direction === "vert" }),
2233
2233
  style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
2234
2234
  children: /* @__PURE__ */ jsx(
2235
2235
  "button",
2236
2236
  {
2237
- className: classes.arrowInner,
2237
+ className: classes$1.arrowInner,
2238
2238
  style: { transform: `translate(${scalingValue(controls.offset.x * (slider.direction === "horiz" ? -1 : 1), isEditor)}, ${scalingValue(controls.offset.y, isEditor)}) scale(${controls.scale}) rotate(${slider.direction === "horiz" ? "0deg" : "90deg"})` },
2239
2239
  onClick: () => {
2240
2240
  var _a;
@@ -2247,7 +2247,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2247
2247
  url: controls.arrowsImgUrl,
2248
2248
  fill: controls.color,
2249
2249
  hoverFill: controls.hover,
2250
- className: classes.arrowImg
2250
+ className: classes$1.arrowImg
2251
2251
  }
2252
2252
  )
2253
2253
  }
@@ -2259,12 +2259,12 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2259
2259
  const positionStyles = getPositionStyles(area.closeIconAlign, area.closeIconOffset, isEditor);
2260
2260
  const scaleTransform = `scale(${area.closeIconScale})`;
2261
2261
  const combinedTransform = positionStyles.transform ? `${positionStyles.transform} ${scaleTransform}` : scaleTransform;
2262
- return /* @__PURE__ */ jsx("button", { className: classes.closeButton, style: { ...positionStyles, transform: combinedTransform }, onClick: handleClose, "aria-label": "Close lightbox", children: /* @__PURE__ */ jsx(SvgImage, { url: area.closeIconUrl }) });
2262
+ return /* @__PURE__ */ jsx("button", { className: classes$1.closeButton, style: { ...positionStyles, transform: combinedTransform }, onClick: handleClose, "aria-label": "Close lightbox", children: /* @__PURE__ */ jsx(SvgImage, { url: area.closeIconUrl }) });
2263
2263
  })(),
2264
2264
  caption2.isActive && /* @__PURE__ */ jsx(
2265
2265
  "div",
2266
2266
  {
2267
- className: classes.caption,
2267
+ className: classes$1.caption,
2268
2268
  style: {
2269
2269
  ...getPositionStyles(caption2.alignment, caption2.offset, isEditor),
2270
2270
  fontFamily: fontSettings.fontFamily,
@@ -2286,7 +2286,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2286
2286
  "div",
2287
2287
  {
2288
2288
  "data-styles": "caption",
2289
- className: classes.captionTextInner,
2289
+ className: classes$1.captionTextInner,
2290
2290
  style: { ["--link-hover-color"]: caption2.hover },
2291
2291
  children: /* @__PURE__ */ jsx(RichTextRenderer, { content: content[currentIndex].imageCaption })
2292
2292
  }
@@ -2296,11 +2296,11 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2296
2296
  thumbnail.isActive && /* @__PURE__ */ jsx(
2297
2297
  "div",
2298
2298
  {
2299
- className: cn(classes.thumbsContainer, {
2300
- [classes.thumbsContainerVertical]: slider.direction === "vert",
2301
- [classes.thumbsAlignStart]: thumbnail.align === "start",
2302
- [classes.thumbsAlignCenter]: thumbnail.align === "center",
2303
- [classes.thumbsAlignEnd]: thumbnail.align === "end"
2299
+ className: cn(classes$1.thumbsContainer, {
2300
+ [classes$1.thumbsContainerVertical]: slider.direction === "vert",
2301
+ [classes$1.thumbsAlignStart]: thumbnail.align === "start",
2302
+ [classes$1.thumbsAlignCenter]: thumbnail.align === "center",
2303
+ [classes$1.thumbsAlignEnd]: thumbnail.align === "end"
2304
2304
  }),
2305
2305
  style: {
2306
2306
  position: isEditor ? "absolute" : "fixed",
@@ -2334,7 +2334,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2334
2334
  return /* @__PURE__ */ jsx(
2335
2335
  "button",
2336
2336
  {
2337
- className: classes.thumbItem,
2337
+ className: classes$1.thumbItem,
2338
2338
  style: {
2339
2339
  ...slider.direction === "horiz" && thumbnail.fit !== "fit" ? { height: scalingValue(activeSizeValue, isEditor) } : {},
2340
2340
  ...slider.direction === "vert" && thumbnail.fit !== "fit" ? { width: scalingValue(activeSizeValue, isEditor) } : {},
@@ -3426,10 +3426,946 @@ const LightboxComponent = {
3426
3426
  required: ["settings", "content", "styles"]
3427
3427
  }
3428
3428
  };
3429
+ const wrapper = "Testimonials-module__wrapper___eCRwv";
3430
+ const cover = "Testimonials-module__cover___5I7Fh";
3431
+ const caption = "Testimonials-module__caption___-YQRG";
3432
+ const creds = "Testimonials-module__creds___KKvX1";
3433
+ const icon = "Testimonials-module__icon___SstqT";
3434
+ const arrow = "Testimonials-module__arrow___NO6BN";
3435
+ const nextArrow = "Testimonials-module__nextArrow___L3G-W";
3436
+ const arrowInner = "Testimonials-module__arrowInner___GSjnA";
3437
+ const arrowIcon = "Testimonials-module__arrowIcon___fw7vy";
3438
+ const arrowImg = "Testimonials-module__arrowImg___7R9fl";
3439
+ const mirror = "Testimonials-module__mirror___JkFna";
3440
+ const classes = {
3441
+ wrapper,
3442
+ cover,
3443
+ caption,
3444
+ creds,
3445
+ icon,
3446
+ arrow,
3447
+ nextArrow,
3448
+ arrowInner,
3449
+ arrowIcon,
3450
+ arrowImg,
3451
+ mirror
3452
+ };
3453
+ function getAlignPosition(alignment, offset, isEditor) {
3454
+ const styles2 = {};
3455
+ const [vertical, horizontal] = alignment.split("-");
3456
+ if (vertical === "top") {
3457
+ styles2.top = "0";
3458
+ styles2.bottom = "auto";
3459
+ } else if (vertical === "middle") {
3460
+ styles2.top = "50%";
3461
+ styles2.bottom = "auto";
3462
+ } else if (vertical === "bottom") {
3463
+ styles2.top = "auto";
3464
+ styles2.bottom = "0";
3465
+ }
3466
+ if (horizontal === "left") {
3467
+ styles2.left = "0";
3468
+ styles2.right = "auto";
3469
+ } else if (horizontal === "center") {
3470
+ styles2.left = "50%";
3471
+ styles2.right = "auto";
3472
+ } else if (horizontal === "right") {
3473
+ styles2.left = "auto";
3474
+ styles2.right = "0";
3475
+ }
3476
+ if (vertical === "middle" && horizontal === "center") {
3477
+ styles2.transform = `translate(calc(-50% + ${scalingValue(offset.x, isEditor)}), calc(-50% + ${scalingValue(offset.y, isEditor)}))`;
3478
+ } else if (vertical === "middle") {
3479
+ styles2.transform = `translate(${scalingValue(offset.x, isEditor)}, calc(-50% + ${scalingValue(offset.y, isEditor)}))`;
3480
+ } else if (horizontal === "center") {
3481
+ styles2.transform = `translate(calc(-50% + ${scalingValue(offset.x, isEditor)}), ${scalingValue(offset.y, isEditor)})`;
3482
+ } else {
3483
+ styles2.transform = `translate(${scalingValue(offset.x, isEditor)}, ${scalingValue(offset.y, isEditor)})`;
3484
+ }
3485
+ return styles2;
3486
+ }
3487
+ const Testimonials = ({ settings, content, styles: styles2 }) => {
3488
+ const sliderRef = useRef(null);
3489
+ const { general, card, controls } = settings;
3490
+ const { width, height } = card.dimensions;
3491
+ const perMove = settings.general.move === "one" ? 1 : settings.general.inView || 1;
3492
+ const perPage = settings.general.inView || 3;
3493
+ const wrapperWidth = !settings.general.autoplay ? width * perPage + settings.card.gap * (perPage - 1) + card.borderWidth * 2 : void 0;
3494
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
3495
+ /* @__PURE__ */ jsx("div", { style: { overflow: "hidden", display: "flex", justifyContent: settings.general.alignment }, children: /* @__PURE__ */ jsx(
3496
+ "div",
3497
+ {
3498
+ className: `${classes.wrapper}`,
3499
+ style: wrapperWidth ? { width: `${scalingValue(wrapperWidth, false)}` } : void 0,
3500
+ children: /* @__PURE__ */ jsx(
3501
+ Splide,
3502
+ {
3503
+ ref: sliderRef,
3504
+ options: {
3505
+ type: "loop",
3506
+ fixedWidth: width,
3507
+ ...!settings.general.autoplay && {
3508
+ perPage,
3509
+ width: wrapperWidth
3510
+ },
3511
+ arrows: false,
3512
+ perMove,
3513
+ gap: settings.card.gap,
3514
+ padding: 0,
3515
+ autoplay: settings.general.autoplay,
3516
+ speed: settings.general.speed,
3517
+ interval: settings.general.autoplay ? settings.general.speed : 0,
3518
+ rewind: true,
3519
+ easing: "linear",
3520
+ direction: settings.general.direction === "left" ? "ltr" : "rtl",
3521
+ pagination: false,
3522
+ pauseOnHover: settings.general.pause === "hover",
3523
+ pauseOnFocus: settings.general.pause === "click"
3524
+ },
3525
+ children: content.map((item, index) => {
3526
+ var _a, _b, _c, _d, _e;
3527
+ return /* @__PURE__ */ jsx(SplideSlide, { children: /* @__PURE__ */ jsxs("div", { style: { width: `${width}px`, height: `${height}px`, borderRadius: `${settings.card.corner}px`, border: `${settings.card.borderWidth}px solid ${settings.card.borderColor}`, backgroundColor: settings.card.bgColor, overflow: "hidden", boxSizing: "border-box" }, children: [
3528
+ /* @__PURE__ */ jsx("img", { src: (_a = item.image) == null ? void 0 : _a.url, alt: (_b = item.image) == null ? void 0 : _b.name, style: { width: "100%", height: "100%", objectFit: ((_c = item.image) == null ? void 0 : _c.objectFit) || "cover" } }),
3529
+ /* @__PURE__ */ jsx("div", { className: classes.cover, style: { background: settings.elements.cover.gradient, borderRadius: `${settings.card.corner}px` } }),
3530
+ /* @__PURE__ */ jsxs("div", { children: [
3531
+ /* @__PURE__ */ jsx("img", { src: (_d = item.icon) == null ? void 0 : _d.url, alt: (_e = item.icon) == null ? void 0 : _e.name, className: classes.icon, style: getAlignPosition(settings.elements.icon.alignment, settings.elements.icon.offset) }),
3532
+ /* @__PURE__ */ jsx("div", { className: classes.caption, style: getAlignPosition(settings.elements.text.alignment, settings.elements.text.offset), children: /* @__PURE__ */ jsx(RichTextRenderer, { content: item.imageCaption }) }),
3533
+ /* @__PURE__ */ jsx("div", { className: classes.creds, style: getAlignPosition(settings.elements.creds.alignment, settings.elements.creds.offset), children: /* @__PURE__ */ jsx(RichTextRenderer, { content: item.creds }) })
3534
+ ] })
3535
+ ] }) }, index);
3536
+ })
3537
+ }
3538
+ )
3539
+ }
3540
+ ) }),
3541
+ controls.isActive && /* @__PURE__ */ jsxs(Fragment, { children: [
3542
+ /* @__PURE__ */ jsx(
3543
+ "div",
3544
+ {
3545
+ className: classes.arrow,
3546
+ style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
3547
+ children: /* @__PURE__ */ jsxs(
3548
+ "button",
3549
+ {
3550
+ className: classes.arrowInner,
3551
+ style: { transform: `translate(${scalingValue(controls.offset.x, false)}, ${scalingValue(controls.offset.y, false)}) scale(${controls.scale / 100})` },
3552
+ onClick: () => {
3553
+ var _a;
3554
+ return (_a = sliderRef.current) == null ? void 0 : _a.go("-1");
3555
+ },
3556
+ "aria-label": "Previous",
3557
+ children: [
3558
+ controls.arrowsImgUrl && /* @__PURE__ */ jsx(
3559
+ SvgImage,
3560
+ {
3561
+ url: controls.arrowsImgUrl,
3562
+ fill: controls.color,
3563
+ hoverFill: controls.hover,
3564
+ className: cn(classes.arrowImg, classes.mirror)
3565
+ }
3566
+ ),
3567
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsx(ArrowIcon, { color: controls.color, className: cn(classes.arrowIcon, classes.arrowImg, classes.mirror) })
3568
+ ]
3569
+ }
3570
+ )
3571
+ }
3572
+ ),
3573
+ /* @__PURE__ */ jsx(
3574
+ "div",
3575
+ {
3576
+ className: cn(classes.arrow, classes.nextArrow),
3577
+ style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
3578
+ children: /* @__PURE__ */ jsxs(
3579
+ "button",
3580
+ {
3581
+ className: classes.arrowInner,
3582
+ style: { transform: `translate(${scalingValue(controls.offset.x * -1, false)}, ${scalingValue(controls.offset.y, false)}) scale(${controls.scale / 100})` },
3583
+ onClick: () => {
3584
+ var _a;
3585
+ return (_a = sliderRef.current) == null ? void 0 : _a.go("+1");
3586
+ },
3587
+ "aria-label": "Next",
3588
+ children: [
3589
+ controls.arrowsImgUrl && /* @__PURE__ */ jsx(
3590
+ SvgImage,
3591
+ {
3592
+ url: controls.arrowsImgUrl,
3593
+ fill: controls.color,
3594
+ hoverFill: controls.hover,
3595
+ className: classes.arrowImg
3596
+ }
3597
+ ),
3598
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsx(ArrowIcon, { color: controls.color, className: cn(classes.arrowIcon, classes.arrowImg) })
3599
+ ]
3600
+ }
3601
+ )
3602
+ }
3603
+ )
3604
+ ] })
3605
+ ] });
3606
+ };
3607
+ function ArrowIcon({ color, className }) {
3608
+ return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 10 18", className, children: /* @__PURE__ */ jsx("g", { id: "Symbols", stroke: "none", strokeWidth: "1", fillRule: "evenodd", children: /* @__PURE__ */ jsx("path", { d: "M-3.70710678,4.29289322 C-3.34662282,3.93240926 -2.77939176,3.90467972 -2.38710056,4.20970461 L-2.29289322,4.29289322 L5,11.585 L12.2928932,4.29289322 C12.6533772,3.93240926 13.2206082,3.90467972 13.6128994,4.20970461 L13.7071068,4.29289322 C14.0675907,4.65337718 14.0953203,5.22060824 13.7902954,5.61289944 L13.7071068,5.70710678 L5.70710678,13.7071068 C5.34662282,14.0675907 4.77939176,14.0953203 4.38710056,13.7902954 L4.29289322,13.7071068 L-3.70710678,5.70710678 C-4.09763107,5.31658249 -4.09763107,4.68341751 -3.70710678,4.29289322 Z", id: "Shape-Copy", fill: color, transform: "translate(5, 9) rotate(-90) translate(-5, -9)" }) }) });
3609
+ }
3610
+ const TestimonialsComponent = {
3611
+ element: Testimonials,
3612
+ id: "testimonials",
3613
+ name: "Testimonials",
3614
+ preview: {
3615
+ type: "video",
3616
+ url: "https://cdn.cntrl.site/component-assets/testimonials.mp4"
3617
+ },
3618
+ defaultSize: {
3619
+ width: 700,
3620
+ height: 400
3621
+ },
3622
+ schema: {
3623
+ type: "object",
3624
+ properties: {
3625
+ settings: {
3626
+ layoutBased: true,
3627
+ type: "object",
3628
+ display: {
3629
+ type: "settings-block"
3630
+ },
3631
+ properties: {
3632
+ general: {
3633
+ title: "general",
3634
+ icon: "thumbnail",
3635
+ tooltip: "General",
3636
+ type: "object",
3637
+ properties: {
3638
+ autoplay: {
3639
+ type: "boolean",
3640
+ display: {
3641
+ type: "ratio-group",
3642
+ direction: "horizontal"
3643
+ },
3644
+ enum: ["on", "off"]
3645
+ },
3646
+ inView: {
3647
+ type: "number",
3648
+ title: "In View",
3649
+ min: 1,
3650
+ display: {
3651
+ type: "numeric-input"
3652
+ }
3653
+ },
3654
+ alignment: {
3655
+ type: "string",
3656
+ title: "Align",
3657
+ display: {
3658
+ type: "align-group",
3659
+ direction: "horizontal"
3660
+ },
3661
+ enum: ["start", "center", "end"]
3662
+ },
3663
+ move: {
3664
+ type: "string",
3665
+ display: {
3666
+ type: "ratio-group",
3667
+ direction: "horizontal"
3668
+ },
3669
+ enum: ["one", "view"]
3670
+ },
3671
+ speed: {
3672
+ type: "number",
3673
+ title: "Speed",
3674
+ min: 100,
3675
+ max: 1e4,
3676
+ step: 100,
3677
+ display: {
3678
+ type: "numeric-input"
3679
+ }
3680
+ },
3681
+ direction: {
3682
+ type: "string",
3683
+ display: {
3684
+ type: "ratio-group"
3685
+ },
3686
+ enum: ["left", "right"]
3687
+ },
3688
+ pause: {
3689
+ title: "Pause on",
3690
+ type: "string",
3691
+ display: {
3692
+ type: "ratio-group"
3693
+ },
3694
+ enum: ["hover", "click", "off"]
3695
+ }
3696
+ }
3697
+ },
3698
+ card: {
3699
+ title: "card",
3700
+ icon: "card",
3701
+ tooltip: "Card",
3702
+ type: "object",
3703
+ properties: {
3704
+ dimensions: {
3705
+ type: "object",
3706
+ title: "Size",
3707
+ display: {
3708
+ type: "group"
3709
+ },
3710
+ properties: {
3711
+ width: {
3712
+ type: "number",
3713
+ label: "W",
3714
+ scalingEnabled: true,
3715
+ display: {
3716
+ type: "numeric-input",
3717
+ visible: true
3718
+ }
3719
+ },
3720
+ height: {
3721
+ type: "number",
3722
+ label: "H",
3723
+ scalingEnabled: true,
3724
+ display: {
3725
+ type: "numeric-input",
3726
+ visible: true
3727
+ }
3728
+ }
3729
+ }
3730
+ },
3731
+ gap: {
3732
+ type: "number",
3733
+ title: "Gap",
3734
+ scalingEnabled: true,
3735
+ min: 0,
3736
+ display: {
3737
+ type: "numeric-input"
3738
+ }
3739
+ },
3740
+ corner: {
3741
+ type: "number",
3742
+ title: "Corners",
3743
+ scalingEnabled: true,
3744
+ min: 0,
3745
+ display: {
3746
+ type: "numeric-input"
3747
+ }
3748
+ },
3749
+ borders: {
3750
+ type: "object",
3751
+ title: "Borders",
3752
+ display: {
3753
+ type: "group"
3754
+ },
3755
+ properties: {
3756
+ borderWidth: {
3757
+ type: "number",
3758
+ title: "Borders",
3759
+ scalingEnabled: true,
3760
+ min: 0,
3761
+ display: {
3762
+ type: "numeric-input"
3763
+ }
3764
+ },
3765
+ borderColor: {
3766
+ title: "Border Color",
3767
+ type: "string",
3768
+ display: {
3769
+ type: "settings-color-picker",
3770
+ format: "single"
3771
+ }
3772
+ }
3773
+ }
3774
+ },
3775
+ bgColor: {
3776
+ title: "BG color",
3777
+ type: "string",
3778
+ display: {
3779
+ type: "settings-color-picker",
3780
+ format: "single"
3781
+ }
3782
+ }
3783
+ }
3784
+ },
3785
+ elements: {
3786
+ title: "elements",
3787
+ icon: "star",
3788
+ tooltip: "Elements",
3789
+ type: "object",
3790
+ properties: {
3791
+ text: {
3792
+ type: "object",
3793
+ title: "Text",
3794
+ display: {
3795
+ type: "group"
3796
+ },
3797
+ properties: {
3798
+ alignment: {
3799
+ type: "string",
3800
+ display: {
3801
+ type: "position-selector"
3802
+ },
3803
+ enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
3804
+ },
3805
+ offset: {
3806
+ type: "object",
3807
+ title: "Offset",
3808
+ display: {
3809
+ type: "group"
3810
+ },
3811
+ properties: {
3812
+ x: {
3813
+ type: "number",
3814
+ label: "X",
3815
+ scalingEnabled: true,
3816
+ display: {
3817
+ type: "numeric-input",
3818
+ visible: true
3819
+ }
3820
+ },
3821
+ y: {
3822
+ type: "number",
3823
+ label: "Y",
3824
+ scalingEnabled: true,
3825
+ display: {
3826
+ type: "numeric-input",
3827
+ visible: true
3828
+ }
3829
+ }
3830
+ }
3831
+ }
3832
+ }
3833
+ },
3834
+ icon: {
3835
+ type: "object",
3836
+ title: "Icon",
3837
+ display: {
3838
+ type: "group"
3839
+ },
3840
+ properties: {
3841
+ alignment: {
3842
+ type: "string",
3843
+ display: {
3844
+ type: "position-selector"
3845
+ },
3846
+ enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
3847
+ },
3848
+ offset: {
3849
+ type: "object",
3850
+ title: "Offset",
3851
+ display: {
3852
+ type: "group"
3853
+ },
3854
+ properties: {
3855
+ x: {
3856
+ type: "number",
3857
+ label: "X",
3858
+ scalingEnabled: true,
3859
+ display: {
3860
+ type: "numeric-input",
3861
+ visible: true
3862
+ }
3863
+ },
3864
+ y: {
3865
+ type: "number",
3866
+ label: "Y",
3867
+ scalingEnabled: true,
3868
+ display: {
3869
+ type: "numeric-input",
3870
+ visible: true
3871
+ }
3872
+ }
3873
+ }
3874
+ },
3875
+ scale: {
3876
+ type: "number",
3877
+ title: "scale",
3878
+ min: 50,
3879
+ max: 600,
3880
+ display: {
3881
+ type: "range-control"
3882
+ }
3883
+ }
3884
+ }
3885
+ },
3886
+ creds: {
3887
+ type: "object",
3888
+ title: "Credentials",
3889
+ display: {
3890
+ type: "group"
3891
+ },
3892
+ properties: {
3893
+ alignment: {
3894
+ type: "string",
3895
+ display: {
3896
+ type: "position-selector"
3897
+ },
3898
+ enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
3899
+ },
3900
+ offset: {
3901
+ type: "object",
3902
+ title: "Offset",
3903
+ display: {
3904
+ type: "group"
3905
+ },
3906
+ properties: {
3907
+ x: {
3908
+ type: "number",
3909
+ label: "X",
3910
+ scalingEnabled: true,
3911
+ display: {
3912
+ type: "numeric-input",
3913
+ visible: true
3914
+ }
3915
+ },
3916
+ y: {
3917
+ type: "number",
3918
+ label: "Y",
3919
+ scalingEnabled: true,
3920
+ display: {
3921
+ type: "numeric-input",
3922
+ visible: true
3923
+ }
3924
+ }
3925
+ }
3926
+ }
3927
+ }
3928
+ },
3929
+ cover: {
3930
+ type: "object",
3931
+ title: "Cover",
3932
+ display: {
3933
+ type: "group"
3934
+ },
3935
+ properties: {
3936
+ gradient: {
3937
+ title: "Gradient",
3938
+ type: "string",
3939
+ display: {
3940
+ type: "settings-color-picker",
3941
+ format: "gradient"
3942
+ }
3943
+ }
3944
+ }
3945
+ }
3946
+ }
3947
+ },
3948
+ controls: {
3949
+ title: "controls",
3950
+ icon: "controls",
3951
+ tooltip: "Controls",
3952
+ type: "object",
3953
+ properties: {
3954
+ isActive: {
3955
+ type: "boolean",
3956
+ display: {
3957
+ type: "setting-toggle"
3958
+ }
3959
+ },
3960
+ arrowsImgUrl: {
3961
+ type: ["string", "null"],
3962
+ display: {
3963
+ type: "settings-image-input"
3964
+ }
3965
+ },
3966
+ offset: {
3967
+ type: "object",
3968
+ title: "Offset",
3969
+ display: {
3970
+ type: "group"
3971
+ },
3972
+ properties: {
3973
+ x: {
3974
+ type: "number",
3975
+ label: "X",
3976
+ scalingEnabled: true,
3977
+ display: {
3978
+ type: "numeric-input",
3979
+ visible: true
3980
+ }
3981
+ },
3982
+ y: {
3983
+ type: "number",
3984
+ label: "Y",
3985
+ scalingEnabled: true,
3986
+ display: {
3987
+ type: "numeric-input",
3988
+ visible: true
3989
+ }
3990
+ }
3991
+ }
3992
+ },
3993
+ scale: {
3994
+ type: "number",
3995
+ title: "scale",
3996
+ min: 50,
3997
+ max: 600,
3998
+ display: {
3999
+ type: "range-control"
4000
+ }
4001
+ },
4002
+ color: {
4003
+ title: "color",
4004
+ type: "string",
4005
+ display: {
4006
+ type: "settings-color-picker",
4007
+ format: "single"
4008
+ }
4009
+ },
4010
+ hover: {
4011
+ title: "hover",
4012
+ type: "string",
4013
+ display: {
4014
+ type: "settings-color-picker",
4015
+ format: "single"
4016
+ }
4017
+ }
4018
+ }
4019
+ }
4020
+ },
4021
+ default: {
4022
+ general: {
4023
+ autoplay: true,
4024
+ inView: 3,
4025
+ alignment: "center",
4026
+ move: "one",
4027
+ speed: 3e3,
4028
+ direction: "left",
4029
+ pause: "hover"
4030
+ },
4031
+ card: {
4032
+ dimensions: {
4033
+ width: 300,
4034
+ height: 400
4035
+ },
4036
+ gap: 20,
4037
+ corner: 10,
4038
+ borderWidth: 0,
4039
+ borderColor: "#000000",
4040
+ bgColor: "#ffffff"
4041
+ },
4042
+ controls: {
4043
+ isActive: false,
4044
+ arrowsImgUrl: null,
4045
+ offset: {
4046
+ x: 0,
4047
+ y: 0
4048
+ },
4049
+ scale: 100,
4050
+ color: "#000000",
4051
+ hover: "#cccccc"
4052
+ },
4053
+ elements: {
4054
+ text: {
4055
+ alignment: "bottom-center",
4056
+ offset: {
4057
+ x: 0,
4058
+ y: 0
4059
+ }
4060
+ },
4061
+ icon: {
4062
+ alignment: "top-left",
4063
+ offset: {
4064
+ x: 0,
4065
+ y: 0
4066
+ },
4067
+ scale: 100
4068
+ },
4069
+ creds: {
4070
+ alignment: "bottom-center",
4071
+ offset: {
4072
+ x: 0,
4073
+ y: 0
4074
+ }
4075
+ },
4076
+ cover: {
4077
+ gradient: ""
4078
+ }
4079
+ }
4080
+ }
4081
+ },
4082
+ content: {
4083
+ layoutBased: false,
4084
+ type: "array",
4085
+ settings: {
4086
+ addItemFromFileExplorer: true,
4087
+ defaultWidth: 500
4088
+ },
4089
+ items: {
4090
+ type: "object",
4091
+ properties: {
4092
+ image: {
4093
+ type: "object",
4094
+ label: "Image",
4095
+ display: {
4096
+ minWidth: 58,
4097
+ maxWidth: 108,
4098
+ type: "media-input"
4099
+ },
4100
+ properties: {
4101
+ url: {
4102
+ type: "string"
4103
+ },
4104
+ name: {
4105
+ type: "string"
4106
+ },
4107
+ objectFit: {
4108
+ type: "string",
4109
+ enum: ["cover", "contain"]
4110
+ }
4111
+ },
4112
+ required: ["url", "name"]
4113
+ },
4114
+ icon: {
4115
+ type: "object",
4116
+ label: "Icon",
4117
+ display: {
4118
+ minWidth: 58,
4119
+ maxWidth: 108,
4120
+ type: "media-input"
4121
+ },
4122
+ properties: {
4123
+ url: {
4124
+ type: "string"
4125
+ },
4126
+ name: {
4127
+ type: "string"
4128
+ },
4129
+ objectFit: {
4130
+ type: "string",
4131
+ enum: ["cover", "contain"]
4132
+ }
4133
+ },
4134
+ required: ["url", "name"]
4135
+ },
4136
+ imageCaption: {
4137
+ placeholder: "Add Caption...",
4138
+ label: "Description",
4139
+ display: {
4140
+ type: "rich-text",
4141
+ minWidth: 300,
4142
+ maxWidth: 550
4143
+ }
4144
+ },
4145
+ creds: {
4146
+ placeholder: "Add Credentials...",
4147
+ label: "Credentials",
4148
+ display: {
4149
+ type: "rich-text",
4150
+ minWidth: 300,
4151
+ maxWidth: 550
4152
+ }
4153
+ }
4154
+ },
4155
+ required: ["image"]
4156
+ },
4157
+ default: [
4158
+ {
4159
+ image: {
4160
+ objectFit: "cover",
4161
+ url: "https://cdn.cntrl.site/component-assets/2.jpg",
4162
+ name: "Testimonial-1.png"
4163
+ },
4164
+ icon: {
4165
+ objectFit: "cover",
4166
+ url: "",
4167
+ name: ""
4168
+ },
4169
+ imageCaption: [
4170
+ {
4171
+ type: "paragraph",
4172
+ children: [{ text: "" }]
4173
+ }
4174
+ ],
4175
+ creds: [
4176
+ {
4177
+ type: "paragraph",
4178
+ children: [{ text: "" }]
4179
+ }
4180
+ ]
4181
+ },
4182
+ {
4183
+ image: {
4184
+ objectFit: "cover",
4185
+ url: "https://cdn.cntrl.site/component-assets/3.jpg",
4186
+ name: "Testimonial-2.png"
4187
+ },
4188
+ icon: {
4189
+ objectFit: "cover",
4190
+ url: "",
4191
+ name: ""
4192
+ },
4193
+ imageCaption: [
4194
+ {
4195
+ type: "paragraph",
4196
+ children: [{ text: "" }]
4197
+ }
4198
+ ],
4199
+ creds: [
4200
+ {
4201
+ type: "paragraph",
4202
+ children: [{ text: "" }]
4203
+ }
4204
+ ]
4205
+ },
4206
+ {
4207
+ image: {
4208
+ objectFit: "cover",
4209
+ url: "https://cdn.cntrl.site/component-assets/4.jpg",
4210
+ name: "Testimonial-3.png"
4211
+ },
4212
+ icon: {
4213
+ objectFit: "cover",
4214
+ url: "",
4215
+ name: ""
4216
+ },
4217
+ imageCaption: [
4218
+ {
4219
+ type: "paragraph",
4220
+ children: [{ text: "" }]
4221
+ }
4222
+ ],
4223
+ creds: [
4224
+ {
4225
+ type: "paragraph",
4226
+ children: [{ text: "" }]
4227
+ }
4228
+ ]
4229
+ }
4230
+ ]
4231
+ },
4232
+ styles: {
4233
+ layoutBased: true,
4234
+ type: "object",
4235
+ properties: {
4236
+ caption: {
4237
+ dataName: "caption",
4238
+ type: "object",
4239
+ properties: {
4240
+ fontSettings: {
4241
+ type: "object",
4242
+ display: {
4243
+ type: "font-settings"
4244
+ },
4245
+ properties: {
4246
+ fontFamily: {
4247
+ type: "string"
4248
+ },
4249
+ fontWeight: {
4250
+ type: "number"
4251
+ },
4252
+ fontStyle: {
4253
+ type: "string"
4254
+ }
4255
+ }
4256
+ },
4257
+ widthSettings: {
4258
+ display: {
4259
+ type: "text-width-control"
4260
+ },
4261
+ type: "object",
4262
+ properties: {
4263
+ width: {
4264
+ type: "number"
4265
+ },
4266
+ sizing: {
4267
+ type: "string",
4268
+ enum: ["auto", "manual"]
4269
+ }
4270
+ }
4271
+ },
4272
+ fontSizeLineHeight: {
4273
+ type: "object",
4274
+ display: {
4275
+ type: "font-size-line-height"
4276
+ },
4277
+ properties: {
4278
+ fontSize: {
4279
+ type: "number"
4280
+ },
4281
+ lineHeight: {
4282
+ type: "number"
4283
+ }
4284
+ }
4285
+ },
4286
+ letterSpacing: {
4287
+ display: {
4288
+ type: "letter-spacing-input"
4289
+ },
4290
+ type: "number"
4291
+ },
4292
+ wordSpacing: {
4293
+ display: {
4294
+ type: "word-spacing-input"
4295
+ },
4296
+ type: "number"
4297
+ },
4298
+ textAlign: {
4299
+ display: {
4300
+ type: "text-align-control"
4301
+ },
4302
+ type: "string",
4303
+ enum: ["left", "center", "right"]
4304
+ },
4305
+ textAppearance: {
4306
+ display: {
4307
+ type: "text-appearance"
4308
+ },
4309
+ properties: {
4310
+ textTransform: {
4311
+ type: "string",
4312
+ enum: ["none", "uppercase", "lowercase"]
4313
+ },
4314
+ textDecoration: {
4315
+ type: "string",
4316
+ enum: ["none", "underline"]
4317
+ },
4318
+ fontVariant: {
4319
+ type: "string",
4320
+ enum: ["normal", "small-caps"]
4321
+ }
4322
+ }
4323
+ },
4324
+ color: {
4325
+ display: {
4326
+ type: "style-panel-color-picker"
4327
+ },
4328
+ type: "string"
4329
+ }
4330
+ }
4331
+ }
4332
+ },
4333
+ default: {
4334
+ caption: {
4335
+ widthSettings: {
4336
+ width: 0.13,
4337
+ sizing: "auto"
4338
+ },
4339
+ fontSettings: {
4340
+ fontFamily: "Arial",
4341
+ fontWeight: 400,
4342
+ fontStyle: "normal"
4343
+ },
4344
+ fontSizeLineHeight: {
4345
+ fontSize: 0.02,
4346
+ lineHeight: 0.02
4347
+ },
4348
+ letterSpacing: 0,
4349
+ wordSpacing: 0,
4350
+ textAlign: "left",
4351
+ textAppearance: {
4352
+ textTransform: "none",
4353
+ textDecoration: "none",
4354
+ fontVariant: "normal"
4355
+ },
4356
+ color: "#000000"
4357
+ }
4358
+ }
4359
+ }
4360
+ },
4361
+ required: ["settings", "content", "styles"]
4362
+ }
4363
+ };
3429
4364
  const components = [
3430
4365
  ControlSliderComponent,
3431
4366
  ControlImageRevealSliderComponent,
3432
- LightboxComponent
4367
+ LightboxComponent,
4368
+ TestimonialsComponent
3433
4369
  ];
3434
4370
  export {
3435
4371
  components