@cntrl-site/components 0.1.21 → 0.1.23-alpha.0

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.js CHANGED
@@ -5,17 +5,17 @@ const react = require("react");
5
5
  const reactSplide = require("@splidejs/react-splide");
6
6
  const cn = require("classnames");
7
7
  const reactDom = require("react-dom");
8
- const wrapper = "ControlSlider-module__wrapper___sHEkd";
8
+ const wrapper$1 = "ControlSlider-module__wrapper___sHEkd";
9
9
  const hoverArrow = "ControlSlider-module__hoverArrow___A-dOH";
10
10
  const sliderItem = "ControlSlider-module__sliderItem___QQSkR";
11
11
  const sliderImage = "ControlSlider-module__sliderImage___9hRl-";
12
- const arrow$1 = "ControlSlider-module__arrow___05ghY";
12
+ const arrow$2 = "ControlSlider-module__arrow___05ghY";
13
13
  const arrowVertical$1 = "ControlSlider-module__arrowVertical___tBfVN";
14
- const nextArrow$1 = "ControlSlider-module__nextArrow___-30Yc";
15
- const arrowInner$1 = "ControlSlider-module__arrowInner___aEra3";
16
- const arrowIcon$1 = "ControlSlider-module__arrowIcon___S4ztF";
17
- const arrowImg$1 = "ControlSlider-module__arrowImg___2dwJW";
18
- const mirror$1 = "ControlSlider-module__mirror___brd6U";
14
+ const nextArrow$2 = "ControlSlider-module__nextArrow___-30Yc";
15
+ const arrowInner$2 = "ControlSlider-module__arrowInner___aEra3";
16
+ const arrowIcon$2 = "ControlSlider-module__arrowIcon___S4ztF";
17
+ const arrowImg$2 = "ControlSlider-module__arrowImg___2dwJW";
18
+ const mirror$2 = "ControlSlider-module__mirror___brd6U";
19
19
  const pagination = "ControlSlider-module__pagination___bicLF";
20
20
  const paginationInner = "ControlSlider-module__paginationInner___bT-P-";
21
21
  const paginationVertical = "ControlSlider-module__paginationVertical___zYqKw";
@@ -47,19 +47,19 @@ const bottomCenterAlignment = "ControlSlider-module__bottomCenterAlignment___c54
47
47
  const bottomRightAlignment = "ControlSlider-module__bottomRightAlignment___kEwrz";
48
48
  const clickOverlay = "ControlSlider-module__clickOverlay___DZA28";
49
49
  const contain$1 = "ControlSlider-module__contain___pLyq7";
50
- const cover$1 = "ControlSlider-module__cover___KdDat";
50
+ const cover$2 = "ControlSlider-module__cover___KdDat";
51
51
  const styles$3 = {
52
- wrapper,
52
+ wrapper: wrapper$1,
53
53
  hoverArrow,
54
54
  sliderItem,
55
55
  sliderImage,
56
- arrow: arrow$1,
56
+ arrow: arrow$2,
57
57
  arrowVertical: arrowVertical$1,
58
- nextArrow: nextArrow$1,
59
- arrowInner: arrowInner$1,
60
- arrowIcon: arrowIcon$1,
61
- arrowImg: arrowImg$1,
62
- mirror: mirror$1,
58
+ nextArrow: nextArrow$2,
59
+ arrowInner: arrowInner$2,
60
+ arrowIcon: arrowIcon$2,
61
+ arrowImg: arrowImg$2,
62
+ mirror: mirror$2,
63
63
  pagination,
64
64
  paginationInner,
65
65
  paginationVertical,
@@ -91,7 +91,7 @@ const styles$3 = {
91
91
  bottomRightAlignment,
92
92
  clickOverlay,
93
93
  contain: contain$1,
94
- cover: cover$1
94
+ cover: cover$2
95
95
  };
96
96
  const link$1 = "RichTextRenderer-module__link___BWeZ2";
97
97
  const styles$2 = {
@@ -345,7 +345,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
345
345
  className: cn(styles$3.arrowImg, styles$3.mirror)
346
346
  }
347
347
  ),
348
- !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon$1, { color: controls.color, className: cn(styles$3.arrowIcon, styles$3.arrowImg, styles$3.mirror) })
348
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon$2, { color: controls.color, className: cn(styles$3.arrowIcon, styles$3.arrowImg, styles$3.mirror) })
349
349
  ]
350
350
  }
351
351
  )
@@ -380,7 +380,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
380
380
  className: styles$3.arrowImg
381
381
  }
382
382
  ),
383
- !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon$1, { color: controls.color, className: cn(styles$3.arrowIcon, styles$3.arrowImg) })
383
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon$2, { color: controls.color, className: cn(styles$3.arrowIcon, styles$3.arrowImg) })
384
384
  ]
385
385
  }
386
386
  )
@@ -452,7 +452,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
452
452
  }
453
453
  ) });
454
454
  }
455
- function ArrowIcon$1({ color, className }) {
455
+ function ArrowIcon$2({ color, className }) {
456
456
  return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 10 18", className, children: /* @__PURE__ */ jsxRuntime.jsx("g", { id: "Symbols", stroke: "none", strokeWidth: "1", fillRule: "evenodd", children: /* @__PURE__ */ jsxRuntime.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)" }) }) });
457
457
  }
458
458
  const ControlSliderComponent = {
@@ -1051,12 +1051,12 @@ const ControlSliderComponent = {
1051
1051
  }
1052
1052
  };
1053
1053
  const imageRevealSlider = "ImageRevealSlider-module__imageRevealSlider___UE5Ob";
1054
- const image = "ImageRevealSlider-module__image___Qjt-e";
1054
+ const image$1 = "ImageRevealSlider-module__image___Qjt-e";
1055
1055
  const link = "ImageRevealSlider-module__link___N-iLG";
1056
1056
  const cursor = "ImageRevealSlider-module__cursor___2U03d";
1057
1057
  const styles = {
1058
1058
  imageRevealSlider,
1059
- image,
1059
+ image: image$1,
1060
1060
  link,
1061
1061
  cursor
1062
1062
  };
@@ -1625,17 +1625,17 @@ const contentStyle = "LightBox-module__contentStyle___Bgnsq";
1625
1625
  const imageStyle = "LightBox-module__imageStyle___tLIlB";
1626
1626
  const imgWrapper = "LightBox-module__imgWrapper___LuFUp";
1627
1627
  const contain = "LightBox-module__contain___8-yaS";
1628
- const cover = "LightBox-module__cover___hNvOG";
1629
- const caption = "LightBox-module__caption___b6L2I";
1628
+ const cover$1 = "LightBox-module__cover___hNvOG";
1629
+ const caption$1 = "LightBox-module__caption___b6L2I";
1630
1630
  const captionTextInner = "LightBox-module__captionTextInner___rCGNH";
1631
1631
  const lightboxSplide = "LightBox-module__lightboxSplide___XFuWC";
1632
- const arrow = "LightBox-module__arrow___iz38X";
1632
+ const arrow$1 = "LightBox-module__arrow___iz38X";
1633
1633
  const arrowVertical = "LightBox-module__arrowVertical___Zfz81";
1634
- const nextArrow = "LightBox-module__nextArrow___zkAQN";
1635
- const arrowInner = "LightBox-module__arrowInner___p48sW";
1636
- const arrowIcon = "LightBox-module__arrowIcon___3VaFf";
1637
- const arrowImg = "LightBox-module__arrowImg___pNV88";
1638
- const mirror = "LightBox-module__mirror___pjeXc";
1634
+ const nextArrow$1 = "LightBox-module__nextArrow___zkAQN";
1635
+ const arrowInner$1 = "LightBox-module__arrowInner___p48sW";
1636
+ const arrowIcon$1 = "LightBox-module__arrowIcon___3VaFf";
1637
+ const arrowImg$1 = "LightBox-module__arrowImg___pNV88";
1638
+ const mirror$1 = "LightBox-module__mirror___pjeXc";
1639
1639
  const thumbsWrapper = "LightBox-module__thumbsWrapper___GB-nU";
1640
1640
  const thumbsContainerVertical = "LightBox-module__thumbsContainerVertical___wttk5";
1641
1641
  const thumbsContainer = "LightBox-module__thumbsContainer___osSma";
@@ -1655,7 +1655,7 @@ const slideOutRight = "LightBox-module__slideOutRight___SK7eC";
1655
1655
  const slideOutTop = "LightBox-module__slideOutTop___Vgg0z";
1656
1656
  const slideOutBottom = "LightBox-module__slideOutBottom___nJ0Ef";
1657
1657
  const scaleSlide = "LightBox-module__scaleSlide___vZriG";
1658
- const classes = {
1658
+ const classes$1 = {
1659
1659
  hidden,
1660
1660
  heroImage,
1661
1661
  background,
@@ -1664,17 +1664,17 @@ const classes = {
1664
1664
  imageStyle,
1665
1665
  imgWrapper,
1666
1666
  contain,
1667
- cover,
1668
- caption,
1667
+ cover: cover$1,
1668
+ caption: caption$1,
1669
1669
  captionTextInner,
1670
1670
  lightboxSplide,
1671
- arrow,
1671
+ arrow: arrow$1,
1672
1672
  arrowVertical,
1673
- nextArrow,
1674
- arrowInner,
1675
- arrowIcon,
1676
- arrowImg,
1677
- mirror,
1673
+ nextArrow: nextArrow$1,
1674
+ arrowInner: arrowInner$1,
1675
+ arrowIcon: arrowIcon$1,
1676
+ arrowImg: arrowImg$1,
1677
+ mirror: mirror$1,
1678
1678
  thumbsWrapper,
1679
1679
  thumbsContainerVertical,
1680
1680
  thumbsContainer,
@@ -1739,10 +1739,10 @@ function getPaddingValues(img2) {
1739
1739
  };
1740
1740
  }
1741
1741
  function getDisplayedImageRect(img2) {
1742
- const container = img2.getBoundingClientRect();
1742
+ const container2 = img2.getBoundingClientRect();
1743
1743
  const padding = getPaddingValues(img2);
1744
- const containerW = Math.max(0, container.width - padding.left - padding.right);
1745
- const containerH = Math.max(0, container.height - padding.top - padding.bottom);
1744
+ const containerW = Math.max(0, container2.width - padding.left - padding.right);
1745
+ const containerH = Math.max(0, container2.height - padding.top - padding.bottom);
1746
1746
  const imgW = img2.naturalWidth;
1747
1747
  const imgH = img2.naturalHeight;
1748
1748
  const containerRatio = containerW / containerH;
@@ -1755,8 +1755,8 @@ function getDisplayedImageRect(img2) {
1755
1755
  renderedH = containerH;
1756
1756
  renderedW = containerH * imgRatio;
1757
1757
  }
1758
- const contentLeft = container.left + padding.left;
1759
- const contentTop = container.top + padding.top;
1758
+ const contentLeft = container2.left + padding.left;
1759
+ const contentTop = container2.top + padding.top;
1760
1760
  const offsetX = (containerW - renderedW) / 2 + contentLeft;
1761
1761
  const offsetY = (containerH - renderedH) / 2 + contentTop;
1762
1762
  return {
@@ -1767,13 +1767,13 @@ function getDisplayedImageRect(img2) {
1767
1767
  };
1768
1768
  }
1769
1769
  function getPaddedContainerBounds(img2) {
1770
- const container = img2.getBoundingClientRect();
1770
+ const container2 = img2.getBoundingClientRect();
1771
1771
  const padding = getPaddingValues(img2);
1772
1772
  return {
1773
- left: container.left + padding.left,
1774
- right: container.right - padding.right,
1775
- top: container.top + padding.top,
1776
- bottom: container.bottom - padding.bottom
1773
+ left: container2.left + padding.left,
1774
+ right: container2.right - padding.right,
1775
+ top: container2.top + padding.top,
1776
+ bottom: container2.bottom - padding.bottom
1777
1777
  };
1778
1778
  }
1779
1779
  function getColorAlpha(color) {
@@ -1797,76 +1797,76 @@ function getColorAlpha(color) {
1797
1797
  }
1798
1798
  function getAnimationClasses(type, direction) {
1799
1799
  const appearClass = (() => {
1800
- if (type === "fade in") return classes.fadeIn;
1800
+ if (type === "fade in") return classes$1.fadeIn;
1801
1801
  if (type === "slide in" || type === "mix") {
1802
1802
  switch (direction) {
1803
1803
  case "left":
1804
- return classes.slideInLeft;
1804
+ return classes$1.slideInLeft;
1805
1805
  case "right":
1806
- return classes.slideInRight;
1806
+ return classes$1.slideInRight;
1807
1807
  case "top":
1808
- return classes.slideInTop;
1808
+ return classes$1.slideInTop;
1809
1809
  case "bottom":
1810
- return classes.slideInBottom;
1810
+ return classes$1.slideInBottom;
1811
1811
  default:
1812
- return classes.slideInRight;
1812
+ return classes$1.slideInRight;
1813
1813
  }
1814
1814
  }
1815
- return classes.fadeIn;
1815
+ return classes$1.fadeIn;
1816
1816
  })();
1817
1817
  const backdropAppearClass = (() => {
1818
- if (type === "fade in" || type === "mix") return classes.fadeIn;
1818
+ if (type === "fade in" || type === "mix") return classes$1.fadeIn;
1819
1819
  if (type === "slide in") {
1820
1820
  switch (direction) {
1821
1821
  case "left":
1822
- return classes.slideInLeft;
1822
+ return classes$1.slideInLeft;
1823
1823
  case "right":
1824
- return classes.slideInRight;
1824
+ return classes$1.slideInRight;
1825
1825
  case "top":
1826
- return classes.slideInTop;
1826
+ return classes$1.slideInTop;
1827
1827
  case "bottom":
1828
- return classes.slideInBottom;
1828
+ return classes$1.slideInBottom;
1829
1829
  default:
1830
- return classes.slideInRight;
1830
+ return classes$1.slideInRight;
1831
1831
  }
1832
1832
  }
1833
- return classes.fadeIn;
1833
+ return classes$1.fadeIn;
1834
1834
  })();
1835
1835
  const backdropDisappearClass = (() => {
1836
- if (type === "fade in" || type === "mix") return classes.fadeOut;
1836
+ if (type === "fade in" || type === "mix") return classes$1.fadeOut;
1837
1837
  if (type === "slide in") {
1838
1838
  switch (direction) {
1839
1839
  case "left":
1840
- return classes.slideOutLeft;
1840
+ return classes$1.slideOutLeft;
1841
1841
  case "right":
1842
- return classes.slideOutRight;
1842
+ return classes$1.slideOutRight;
1843
1843
  case "top":
1844
- return classes.slideOutTop;
1844
+ return classes$1.slideOutTop;
1845
1845
  case "bottom":
1846
- return classes.slideOutBottom;
1846
+ return classes$1.slideOutBottom;
1847
1847
  default:
1848
- return classes.slideOutRight;
1848
+ return classes$1.slideOutRight;
1849
1849
  }
1850
1850
  }
1851
- return classes.fadeOut;
1851
+ return classes$1.fadeOut;
1852
1852
  })();
1853
1853
  const disappearClass = (() => {
1854
- if (type === "fade in") return classes.fadeOut;
1854
+ if (type === "fade in") return classes$1.fadeOut;
1855
1855
  if (type === "slide in" || type === "mix") {
1856
1856
  switch (direction) {
1857
1857
  case "left":
1858
- return classes.slideOutLeft;
1858
+ return classes$1.slideOutLeft;
1859
1859
  case "right":
1860
- return classes.slideOutRight;
1860
+ return classes$1.slideOutRight;
1861
1861
  case "top":
1862
- return classes.slideOutTop;
1862
+ return classes$1.slideOutTop;
1863
1863
  case "bottom":
1864
- return classes.slideOutBottom;
1864
+ return classes$1.slideOutBottom;
1865
1865
  default:
1866
- return classes.slideOutRight;
1866
+ return classes$1.slideOutRight;
1867
1867
  }
1868
1868
  }
1869
- return classes.fadeOut;
1869
+ return classes$1.fadeOut;
1870
1870
  })();
1871
1871
  return { appearClass, backdropAppearClass, backdropDisappearClass, disappearClass };
1872
1872
  }
@@ -1887,7 +1887,7 @@ const LightboxGallery = ({ settings, content, styles: styles2, portalId, activeE
1887
1887
  {
1888
1888
  src: url,
1889
1889
  alt: "Cover",
1890
- className: classes.heroImage,
1890
+ className: classes$1.heroImage,
1891
1891
  onClick: () => setOpen(true)
1892
1892
  }
1893
1893
  ),
@@ -1906,6 +1906,7 @@ const LightboxGallery = ({ settings, content, styles: styles2, portalId, activeE
1906
1906
  ] });
1907
1907
  };
1908
1908
  const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId, isEditor, metadata }) => {
1909
+ var _a;
1909
1910
  const [currentIndex, setCurrentIndex] = react.useState(0);
1910
1911
  const [splideKey, setSplideKey] = react.useState(0);
1911
1912
  const [isClosing, setIsClosing] = react.useState(false);
@@ -1926,8 +1927,8 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
1926
1927
  react.useEffect(() => {
1927
1928
  const handleLayoutChange = () => {
1928
1929
  setTimeout(() => {
1929
- var _a, _b;
1930
- (_b = (_a = lightboxRef.current) == null ? void 0 : _a.splide) == null ? void 0 : _b.refresh();
1930
+ var _a2, _b;
1931
+ (_b = (_a2 = lightboxRef.current) == null ? void 0 : _a2.splide) == null ? void 0 : _b.refresh();
1931
1932
  }, 16);
1932
1933
  };
1933
1934
  const handleComponentContentChange = () => {
@@ -1964,13 +1965,13 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
1964
1965
  }
1965
1966
  }, [onClose, area.color, isEditor]);
1966
1967
  const handleTriggerClick = (img2, clientX, clientY) => {
1967
- var _a, _b;
1968
+ var _a2, _b;
1968
1969
  if (!img2) return;
1969
1970
  if (triggers.type === "click" && triggers.switch === "image") {
1970
1971
  if (triggers.repeat === "close" && currentIndex === content.length - 1) {
1971
1972
  handleClose();
1972
1973
  } else {
1973
- (_a = lightboxRef.current) == null ? void 0 : _a.go("+1");
1974
+ (_a2 = lightboxRef.current) == null ? void 0 : _a2.go("+1");
1974
1975
  }
1975
1976
  } else if (triggers.type === "click" && triggers.switch === "50/50") {
1976
1977
  const rect = img2.getBoundingClientRect();
@@ -2025,21 +2026,21 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2025
2026
  };
2026
2027
  const handleThumbWrapperClick = (e) => {
2027
2028
  const target = e.target;
2028
- if (target.classList.contains(classes.thumbsWrapper) || target.classList.contains(classes.thumbsContainer)) {
2029
+ if (target.classList.contains(classes$1.thumbsWrapper) || target.classList.contains(classes$1.thumbsContainer)) {
2029
2030
  handleImageWrapperClick(e);
2030
2031
  }
2031
2032
  };
2032
2033
  react.useEffect(() => {
2033
2034
  if (!isOpen) return;
2034
2035
  const onKeyDown = (event) => {
2035
- var _a, _b;
2036
+ var _a2, _b;
2036
2037
  if (event.key === "Escape") {
2037
2038
  handleClose();
2038
2039
  return;
2039
2040
  }
2040
2041
  if (event.key === "ArrowRight") {
2041
2042
  setCurrentIndex((prev) => (prev + 1) % Math.max(content.length, 1));
2042
- (_a = lightboxRef.current) == null ? void 0 : _a.go("+1");
2043
+ (_a2 = lightboxRef.current) == null ? void 0 : _a2.go("+1");
2043
2044
  return;
2044
2045
  }
2045
2046
  if (event.key === "ArrowLeft") {
@@ -2103,7 +2104,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2103
2104
  }
2104
2105
  const preventScroll = (e) => {
2105
2106
  const target = e.target;
2106
- if (target && (target.closest(`.${classes.thumbsWrapper}`) || target.closest(`.${classes.thumbsContainer}`))) {
2107
+ if (target && (target.closest(`.${classes$1.thumbsWrapper}`) || target.closest(`.${classes$1.thumbsContainer}`))) {
2107
2108
  return;
2108
2109
  }
2109
2110
  if (slider.type === "slide") {
@@ -2125,7 +2126,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2125
2126
  react.useEffect(() => {
2126
2127
  if (!isOpen) return;
2127
2128
  const handleTouchEnd = (e) => {
2128
- var _a, _b;
2129
+ var _a2, _b;
2129
2130
  if (isClosingRef.current) {
2130
2131
  e.stopPropagation();
2131
2132
  return;
@@ -2135,10 +2136,10 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2135
2136
  return;
2136
2137
  }
2137
2138
  const target = e.target;
2138
- if (target && (target.closest(`.${classes.thumbsContainer}`) || target.closest(`.${classes.thumbItem}`))) {
2139
+ if (target && (target.closest(`.${classes$1.thumbsContainer}`) || target.closest(`.${classes$1.thumbItem}`))) {
2139
2140
  return;
2140
2141
  }
2141
- if (slider.type === "slide" && triggers.type === "drag" && ((_b = (_a = lightboxRef.current) == null ? void 0 : _a.splide) == null ? void 0 : _b.root)) {
2142
+ if (slider.type === "slide" && triggers.type === "drag" && ((_b = (_a2 = lightboxRef.current) == null ? void 0 : _a2.splide) == null ? void 0 : _b.root)) {
2142
2143
  const splideContainer = lightboxRef.current.splide.root;
2143
2144
  if (target && (splideContainer.contains(target) || splideContainer === target)) {
2144
2145
  return;
@@ -2177,9 +2178,9 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2177
2178
  }, [isOpen, handleClose, currentIndex, content]);
2178
2179
  const needsCustomVerticalDrag = (slider.type === "scale" || slider.type === "fade") && slider.direction === "vert" && triggers.type === "drag";
2179
2180
  react.useEffect(() => {
2180
- var _a, _b;
2181
- if (!isOpen || !needsCustomVerticalDrag || !((_b = (_a = lightboxRef.current) == null ? void 0 : _a.splide) == null ? void 0 : _b.root)) return;
2182
- const container = lightboxRef.current.splide.root;
2181
+ var _a2, _b;
2182
+ if (!isOpen || !needsCustomVerticalDrag || !((_b = (_a2 = lightboxRef.current) == null ? void 0 : _a2.splide) == null ? void 0 : _b.root)) return;
2183
+ const container2 = lightboxRef.current.splide.root;
2183
2184
  const DRAG_THRESHOLD = 30;
2184
2185
  const handleMove = (clientX, clientY) => {
2185
2186
  if (dragStartRef.current) {
@@ -2215,22 +2216,15 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2215
2216
  dragStartRef.current = null;
2216
2217
  };
2217
2218
  const handlePointerUp = (e) => {
2218
- if (!dragStartRef.current) {
2219
- document.removeEventListener("pointerup", handlePointerUp);
2220
- document.removeEventListener("pointercancel", handlePointerUp);
2221
- document.removeEventListener("pointermove", handlePointerMove);
2222
- return;
2219
+ if (dragStartRef.current) {
2220
+ handleUp(e.clientX, e.clientY);
2223
2221
  }
2224
- handleUp(e.clientX, e.clientY);
2225
2222
  document.removeEventListener("pointerup", handlePointerUp);
2226
2223
  document.removeEventListener("pointercancel", handlePointerUp);
2227
2224
  document.removeEventListener("pointermove", handlePointerMove);
2228
2225
  };
2229
2226
  const handleTouchEnd = (e) => {
2230
2227
  if (!dragStartRef.current) {
2231
- document.removeEventListener("touchend", handleTouchEnd);
2232
- document.removeEventListener("touchcancel", handleTouchEnd);
2233
- document.removeEventListener("touchmove", handleTouchMove);
2234
2228
  return;
2235
2229
  }
2236
2230
  if (e.changedTouches.length > 0) {
@@ -2257,11 +2251,11 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2257
2251
  document.addEventListener("touchcancel", handleTouchEnd);
2258
2252
  }
2259
2253
  };
2260
- container.addEventListener("pointerdown", handlePointerDown);
2261
- container.addEventListener("touchstart", handleTouchStart);
2254
+ container2.addEventListener("pointerdown", handlePointerDown);
2255
+ container2.addEventListener("touchstart", handleTouchStart);
2262
2256
  return () => {
2263
- container.removeEventListener("pointerdown", handlePointerDown);
2264
- container.removeEventListener("touchstart", handleTouchStart);
2257
+ container2.removeEventListener("pointerdown", handlePointerDown);
2258
+ container2.removeEventListener("touchstart", handleTouchStart);
2265
2259
  document.removeEventListener("pointermove", handlePointerMove);
2266
2260
  document.removeEventListener("pointerup", handlePointerUp);
2267
2261
  document.removeEventListener("pointercancel", handlePointerUp);
@@ -2286,7 +2280,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2286
2280
  "div",
2287
2281
  {
2288
2282
  ref: !isEditor ? animationTargetRef : null,
2289
- className: cn(classes.background, isClosing ? backdropDisappearClass : backdropAppearClass, { [classes.editor]: isEditor }, { [classes.hidden]: !isOpen }),
2283
+ className: cn(classes$1.background, isClosing ? backdropDisappearClass : backdropAppearClass, { [classes$1.editor]: isEditor }, { [classes$1.hidden]: !isOpen }),
2290
2284
  style: {
2291
2285
  ...backdropStyles,
2292
2286
  ...animationFinished && !isEditor && !isClosing ? { position: "absolute" } : {}
@@ -2297,7 +2291,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2297
2291
  "div",
2298
2292
  {
2299
2293
  ref: isEditor ? animationTargetRef : null,
2300
- className: cn(classes.contentStyle, !isClosing ? appearClass : disappearClass, { [classes.editor]: isEditor }, { [classes.hidden]: !isOpen }),
2294
+ className: cn(classes$1.contentStyle, !isClosing ? appearClass : disappearClass, { [classes$1.editor]: isEditor }, { [classes$1.hidden]: !isOpen }),
2301
2295
  style: {
2302
2296
  animationDuration: `${parseInt(appear.duration)}ms`,
2303
2297
  animationTimingFunction: "ease",
@@ -2309,7 +2303,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2309
2303
  {
2310
2304
  onMove: (splide) => setCurrentIndex(splide.index),
2311
2305
  ref: lightboxRef,
2312
- className: classes.lightboxSplide,
2306
+ className: classes$1.lightboxSplide,
2313
2307
  options: {
2314
2308
  arrows: false,
2315
2309
  speed: slider.duration ? parseInt(slider.duration) : 500,
@@ -2342,14 +2336,14 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2342
2336
  "--position-transform": transform || "none"
2343
2337
  };
2344
2338
  })() : { ...positionStyles, position: "absolute", padding, boxSizing: "border-box" };
2345
- return /* @__PURE__ */ jsxRuntime.jsx(reactSplide.SplideSlide, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.imgWrapper, onClick: handleImageWrapperClick, children: /* @__PURE__ */ jsxRuntime.jsx(
2339
+ return /* @__PURE__ */ jsxRuntime.jsx(reactSplide.SplideSlide, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes$1.imgWrapper, onClick: handleImageWrapperClick, children: /* @__PURE__ */ jsxRuntime.jsx(
2346
2340
  "img",
2347
2341
  {
2348
2342
  ref: index === currentIndex ? imageRef : null,
2349
- className: cn(classes.imageStyle, {
2350
- [classes.contain]: item.image.objectFit === "contain",
2351
- [classes.cover]: item.image.objectFit === "cover",
2352
- [classes.scaleSlide]: slider.type === "scale"
2343
+ className: cn(classes$1.imageStyle, {
2344
+ [classes$1.contain]: item.image.objectFit === "contain",
2345
+ [classes$1.cover]: item.image.objectFit === "cover",
2346
+ [classes$1.scaleSlide]: slider.type === "scale"
2353
2347
  }),
2354
2348
  src: item.image.url,
2355
2349
  alt: item.image.name ?? "",
@@ -2364,16 +2358,16 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2364
2358
  /* @__PURE__ */ jsxRuntime.jsx(
2365
2359
  "div",
2366
2360
  {
2367
- className: cn(classes.arrow, { [classes.arrowVertical]: slider.direction === "vert" }),
2361
+ className: cn(classes$1.arrow, { [classes$1.arrowVertical]: slider.direction === "vert" }),
2368
2362
  style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
2369
2363
  children: /* @__PURE__ */ jsxRuntime.jsxs(
2370
2364
  "button",
2371
2365
  {
2372
- className: classes.arrowInner,
2366
+ className: classes$1.arrowInner,
2373
2367
  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"})` },
2374
2368
  onClick: () => {
2375
- var _a;
2376
- return (_a = lightboxRef.current) == null ? void 0 : _a.go("-1");
2369
+ var _a2;
2370
+ return (_a2 = lightboxRef.current) == null ? void 0 : _a2.go("-1");
2377
2371
  },
2378
2372
  "aria-label": "Previous",
2379
2373
  children: [
@@ -2383,10 +2377,10 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2383
2377
  url: controls.arrowsImgUrl,
2384
2378
  fill: controls.color,
2385
2379
  hoverFill: controls.hover,
2386
- className: cn(classes.arrowImg, classes.mirror)
2380
+ className: cn(classes$1.arrowImg, classes$1.mirror)
2387
2381
  }
2388
2382
  ),
2389
- !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon, { color: controls.color, className: cn(classes.arrowIcon, classes.arrowImg, classes.mirror) })
2383
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon$1, { color: controls.color, className: cn(classes$1.arrowIcon, classes$1.arrowImg, classes$1.mirror) })
2390
2384
  ]
2391
2385
  }
2392
2386
  )
@@ -2395,16 +2389,16 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2395
2389
  /* @__PURE__ */ jsxRuntime.jsx(
2396
2390
  "div",
2397
2391
  {
2398
- className: cn(classes.arrow, classes.nextArrow, { [classes.arrowVertical]: slider.direction === "vert" }),
2392
+ className: cn(classes$1.arrow, classes$1.nextArrow, { [classes$1.arrowVertical]: slider.direction === "vert" }),
2399
2393
  style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
2400
2394
  children: /* @__PURE__ */ jsxRuntime.jsxs(
2401
2395
  "button",
2402
2396
  {
2403
- className: classes.arrowInner,
2397
+ className: classes$1.arrowInner,
2404
2398
  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"})` },
2405
2399
  onClick: () => {
2406
- var _a;
2407
- return (_a = lightboxRef.current) == null ? void 0 : _a.go("+1");
2400
+ var _a2;
2401
+ return (_a2 = lightboxRef.current) == null ? void 0 : _a2.go("+1");
2408
2402
  },
2409
2403
  "aria-label": "Next",
2410
2404
  children: [
@@ -2414,10 +2408,10 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2414
2408
  url: controls.arrowsImgUrl,
2415
2409
  fill: controls.color,
2416
2410
  hoverFill: controls.hover,
2417
- className: classes.arrowImg
2411
+ className: classes$1.arrowImg
2418
2412
  }
2419
2413
  ),
2420
- !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon, { color: controls.color, className: cn(classes.arrowIcon, classes.arrowImg) })
2414
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon$1, { color: controls.color, className: cn(classes$1.arrowIcon, classes$1.arrowImg) })
2421
2415
  ]
2422
2416
  }
2423
2417
  )
@@ -2428,14 +2422,14 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2428
2422
  const positionStyles = getPositionStyles(area.closeIconAlign, area.closeIconOffset, isEditor);
2429
2423
  const scaleTransform = `scale(${area.closeIconScale})`;
2430
2424
  const combinedTransform = positionStyles.transform ? `${positionStyles.transform} ${scaleTransform}` : scaleTransform;
2431
- return /* @__PURE__ */ jsxRuntime.jsx("button", { className: classes.closeButton, style: { ...positionStyles, transform: combinedTransform }, onClick: handleClose, "aria-label": "Close lightbox", children: /* @__PURE__ */ jsxRuntime.jsx(SvgImage, { url: area.closeIconUrl, fill: area.closeIconColor ?? "#000000", hoverFill: area.closeIconHover ?? "#cccccc" }) });
2425
+ return /* @__PURE__ */ jsxRuntime.jsx("button", { className: classes$1.closeButton, style: { ...positionStyles, transform: combinedTransform }, onClick: handleClose, "aria-label": "Close lightbox", children: /* @__PURE__ */ jsxRuntime.jsx(SvgImage, { url: area.closeIconUrl, fill: area.closeIconColor ?? "#000000", hoverFill: area.closeIconHover ?? "#cccccc" }) });
2432
2426
  })(),
2433
- imageCaption.isActive && lightboxStyles.imageCaption && (() => {
2427
+ imageCaption && imageCaption.isActive && lightboxStyles.imageCaption && ((_a = content[currentIndex]) == null ? void 0 : _a.imageCaption) && (() => {
2434
2428
  const { widthSettings, fontSettings, letterSpacing, textAlign, wordSpacing, fontSizeLineHeight, textAppearance, color } = lightboxStyles.imageCaption;
2435
2429
  return /* @__PURE__ */ jsxRuntime.jsx(
2436
2430
  "div",
2437
2431
  {
2438
- className: classes.caption,
2432
+ className: classes$1.caption,
2439
2433
  style: {
2440
2434
  ...getPositionStyles(imageCaption.alignment, imageCaption.offset, isEditor),
2441
2435
  fontFamily: fontSettings.fontFamily,
@@ -2457,7 +2451,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2457
2451
  "div",
2458
2452
  {
2459
2453
  "data-styles": "caption",
2460
- className: classes.captionTextInner,
2454
+ className: classes$1.captionTextInner,
2461
2455
  style: { ["--link-hover-color"]: imageCaption.hover },
2462
2456
  children: /* @__PURE__ */ jsxRuntime.jsx(RichTextRenderer, { content: content[currentIndex].imageCaption })
2463
2457
  }
@@ -2484,7 +2478,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2484
2478
  return /* @__PURE__ */ jsxRuntime.jsx(
2485
2479
  "div",
2486
2480
  {
2487
- className: classes.thumbsWrapper,
2481
+ className: classes$1.thumbsWrapper,
2488
2482
  onClick: (e) => handleThumbWrapperClick(e),
2489
2483
  style: {
2490
2484
  position: isEditor ? "absolute" : "fixed",
@@ -2503,11 +2497,11 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2503
2497
  children: /* @__PURE__ */ jsxRuntime.jsx(
2504
2498
  "div",
2505
2499
  {
2506
- className: cn(classes.thumbsContainer, {
2507
- [classes.thumbsContainerVertical]: slider.direction === "vert",
2508
- [classes.thumbsAlignStart]: thumbnail.align === "start",
2509
- [classes.thumbsAlignCenter]: thumbnail.align === "center",
2510
- [classes.thumbsAlignEnd]: thumbnail.align === "end"
2500
+ className: cn(classes$1.thumbsContainer, {
2501
+ [classes$1.thumbsContainerVertical]: slider.direction === "vert",
2502
+ [classes$1.thumbsAlignStart]: thumbnail.align === "start",
2503
+ [classes$1.thumbsAlignCenter]: thumbnail.align === "center",
2504
+ [classes$1.thumbsAlignEnd]: thumbnail.align === "end"
2511
2505
  }),
2512
2506
  style: {
2513
2507
  gap: scalingValue(thumbnail.grid.gap, isEditor),
@@ -2547,7 +2541,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2547
2541
  return /* @__PURE__ */ jsxRuntime.jsx(
2548
2542
  "button",
2549
2543
  {
2550
- className: classes.thumbItem,
2544
+ className: classes$1.thumbItem,
2551
2545
  style: {
2552
2546
  ...slider.direction === "horiz" && thumbnail.fit !== "fit" ? { height: scalingValue(activeSizeValue, isEditor) } : {},
2553
2547
  ...slider.direction === "vert" && thumbnail.fit !== "fit" ? { width: scalingValue(activeSizeValue, isEditor) } : {},
@@ -2558,15 +2552,15 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2558
2552
  ["--thumb-hover"]: thumbnail.activeState.opacity / 100
2559
2553
  },
2560
2554
  onClick: (e) => {
2561
- var _a;
2555
+ var _a2;
2562
2556
  e.stopPropagation();
2563
2557
  setCurrentIndex(index);
2564
- (_a = lightboxRef.current) == null ? void 0 : _a.go(index);
2558
+ (_a2 = lightboxRef.current) == null ? void 0 : _a2.go(index);
2565
2559
  },
2566
2560
  onMouseEnter: () => {
2567
- var _a;
2561
+ var _a2;
2568
2562
  if (thumbnail.triggers === "hov") {
2569
- (_a = lightboxRef.current) == null ? void 0 : _a.go(index);
2563
+ (_a2 = lightboxRef.current) == null ? void 0 : _a2.go(index);
2570
2564
  }
2571
2565
  },
2572
2566
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -2606,7 +2600,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2606
2600
  document.getElementById(portalId)
2607
2601
  );
2608
2602
  };
2609
- function ArrowIcon({ color, className }) {
2603
+ function ArrowIcon$1({ color, className }) {
2610
2604
  return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 10 18", className, children: /* @__PURE__ */ jsxRuntime.jsx("g", { id: "Symbols", stroke: "none", strokeWidth: "1", fillRule: "evenodd", children: /* @__PURE__ */ jsxRuntime.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)" }) }) });
2611
2605
  }
2612
2606
  const LightboxComponent = {
@@ -3667,9 +3661,1351 @@ const LightboxComponent = {
3667
3661
  required: ["settings", "content", "styles"]
3668
3662
  }
3669
3663
  };
3664
+ const container = "Testimonials-module__container___H14Dc";
3665
+ const wrapper = "Testimonials-module__wrapper___eCRwv";
3666
+ const cover = "Testimonials-module__cover___5I7Fh";
3667
+ const caption = "Testimonials-module__caption___-YQRG";
3668
+ const creds = "Testimonials-module__creds___KKvX1";
3669
+ const image = "Testimonials-module__image___nHD1Y";
3670
+ const icon = "Testimonials-module__icon___SstqT";
3671
+ const arrow = "Testimonials-module__arrow___NO6BN";
3672
+ const nextArrow = "Testimonials-module__nextArrow___L3G-W";
3673
+ const arrowInner = "Testimonials-module__arrowInner___GSjnA";
3674
+ const arrowIcon = "Testimonials-module__arrowIcon___fw7vy";
3675
+ const arrowImg = "Testimonials-module__arrowImg___7R9fl";
3676
+ const mirror = "Testimonials-module__mirror___JkFna";
3677
+ const classes = {
3678
+ container,
3679
+ wrapper,
3680
+ cover,
3681
+ caption,
3682
+ creds,
3683
+ image,
3684
+ icon,
3685
+ arrow,
3686
+ nextArrow,
3687
+ arrowInner,
3688
+ arrowIcon,
3689
+ arrowImg,
3690
+ mirror
3691
+ };
3692
+ function getAlignPosition(alignment, offset, isEditor) {
3693
+ const styles2 = {};
3694
+ const [vertical, horizontal] = alignment.split("-");
3695
+ if (vertical === "top") {
3696
+ styles2.top = "0";
3697
+ styles2.bottom = "auto";
3698
+ } else if (vertical === "middle") {
3699
+ styles2.top = "50%";
3700
+ styles2.bottom = "auto";
3701
+ } else if (vertical === "bottom") {
3702
+ styles2.top = "auto";
3703
+ styles2.bottom = "0";
3704
+ }
3705
+ if (horizontal === "left") {
3706
+ styles2.left = "0";
3707
+ styles2.right = "auto";
3708
+ } else if (horizontal === "center") {
3709
+ styles2.left = "50%";
3710
+ styles2.right = "auto";
3711
+ } else if (horizontal === "right") {
3712
+ styles2.left = "auto";
3713
+ styles2.right = "0";
3714
+ }
3715
+ if (vertical === "middle" && horizontal === "center") {
3716
+ styles2.transform = `translate(calc(-50% + ${scalingValue(offset.x, isEditor)}), calc(-50% + ${scalingValue(offset.y, isEditor)}))`;
3717
+ } else if (vertical === "middle") {
3718
+ styles2.transform = `translate(${scalingValue(offset.x, isEditor)}, calc(-50% + ${scalingValue(offset.y, isEditor)}))`;
3719
+ } else if (horizontal === "center") {
3720
+ styles2.transform = `translate(calc(-50% + ${scalingValue(offset.x, isEditor)}), ${scalingValue(offset.y, isEditor)})`;
3721
+ } else {
3722
+ styles2.transform = `translate(${scalingValue(offset.x, isEditor)}, ${scalingValue(offset.y, isEditor)})`;
3723
+ }
3724
+ return styles2;
3725
+ }
3726
+ const parseSpeedToMs = (speed) => {
3727
+ if (!speed) return 0;
3728
+ const match = speed.match(/^(\d+)(ms|s)$/);
3729
+ if (!match) return 0;
3730
+ const value = parseInt(match[1], 10);
3731
+ const unit = match[2];
3732
+ return unit === "s" ? value * 1e3 : value;
3733
+ };
3734
+ const Testimonials = ({ settings, content, styles: styles2, isEditor }) => {
3735
+ const sliderRef = react.useRef(null);
3736
+ const { general, card, controls } = settings;
3737
+ const { width, height } = card.dimensions;
3738
+ const perMove = settings.general.move === "one" ? 1 : settings.general.inView || 1;
3739
+ const perPage = settings.general.inView || 3;
3740
+ const isAutoplay = settings.general.autoplay === "on";
3741
+ const marqueePerMove = isAutoplay ? 1 : perMove;
3742
+ const speedMs = isAutoplay ? settings.general.speed ? parseSpeedToMs(settings.general.speed) : 0 : 500;
3743
+ const wrapperWidth = !isAutoplay ? scalingValue(width * perPage + settings.card.gap * (perPage - 1) + card.borders.width * 2 * perPage, isEditor ?? false) : void 0;
3744
+ const splideKey = `${general.autoplay}-${general.inView}`;
3745
+ react.useEffect(() => {
3746
+ var _a;
3747
+ if ((_a = sliderRef.current) == null ? void 0 : _a.splide) {
3748
+ const splide = sliderRef.current.splide;
3749
+ splide.options = {
3750
+ ...splide.options,
3751
+ autoplay: isAutoplay,
3752
+ perPage,
3753
+ perMove: marqueePerMove,
3754
+ interval: isAutoplay ? speedMs || 500 : 0,
3755
+ rewind: !isAutoplay
3756
+ };
3757
+ splide.refresh();
3758
+ }
3759
+ }, [general.autoplay, general.inView, isAutoplay, perPage, marqueePerMove, speedMs]);
3760
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3761
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.container, style: { justifyContent: settings.general.alignment }, children: /* @__PURE__ */ jsxRuntime.jsx(
3762
+ "div",
3763
+ {
3764
+ className: `${classes.wrapper}`,
3765
+ style: wrapperWidth ? { width: wrapperWidth } : void 0,
3766
+ children: /* @__PURE__ */ jsxRuntime.jsx(
3767
+ reactSplide.Splide,
3768
+ {
3769
+ ref: sliderRef,
3770
+ options: {
3771
+ type: "loop",
3772
+ fixedWidth: scalingValue(width + card.borders.width * 2, isEditor ?? false),
3773
+ ...settings.general.autoplay === "off" && {
3774
+ perPage,
3775
+ width: wrapperWidth
3776
+ },
3777
+ arrows: false,
3778
+ perMove: isAutoplay ? marqueePerMove : perMove,
3779
+ gap: scalingValue(settings.card.gap, isEditor ?? false),
3780
+ padding: 0,
3781
+ drag: false,
3782
+ autoplay: isAutoplay,
3783
+ speed: speedMs,
3784
+ // Transition duration (default to 500ms if not set)
3785
+ interval: speedMs,
3786
+ // Match speed for continuous marquee flow
3787
+ rewind: !isAutoplay,
3788
+ // Disable rewind for smooth marquee, enable for manual mode
3789
+ easing: "linear",
3790
+ direction: settings.general.direction === "left" ? "ltr" : "rtl",
3791
+ pagination: false,
3792
+ pauseOnHover: settings.general.pause === "hover",
3793
+ pauseOnFocus: settings.general.pause === "click"
3794
+ },
3795
+ children: content.map((item, index) => {
3796
+ var _a, _b, _c, _d, _e;
3797
+ const iconPositionStyles = getAlignPosition(settings.elements.icon.alignment, settings.elements.icon.offset, isEditor);
3798
+ return /* @__PURE__ */ jsxRuntime.jsx(reactSplide.SplideSlide, { children: /* @__PURE__ */ jsxRuntime.jsxs(
3799
+ "div",
3800
+ {
3801
+ style: {
3802
+ width: scalingValue(width + card.borders.width * 2, isEditor ?? false),
3803
+ height: scalingValue(height, isEditor ?? false),
3804
+ borderRadius: scalingValue(settings.card.corner, isEditor ?? false),
3805
+ border: `${scalingValue(settings.card.borders.width, isEditor ?? false)} solid ${settings.card.borders.color}`,
3806
+ overflow: "hidden",
3807
+ boxSizing: "border-box"
3808
+ },
3809
+ children: [
3810
+ /* @__PURE__ */ jsxRuntime.jsx(
3811
+ "img",
3812
+ {
3813
+ className: classes.image,
3814
+ src: (_a = item.image) == null ? void 0 : _a.url,
3815
+ alt: (_b = item.image) == null ? void 0 : _b.name,
3816
+ style: { objectFit: ((_c = item.image) == null ? void 0 : _c.objectFit) || "cover" }
3817
+ }
3818
+ ),
3819
+ /* @__PURE__ */ jsxRuntime.jsx(
3820
+ "div",
3821
+ {
3822
+ className: classes.cover,
3823
+ style: { background: settings.card.bgColor, borderRadius: `${scalingValue(settings.card.corner, isEditor ?? false)}` }
3824
+ }
3825
+ ),
3826
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
3827
+ /* @__PURE__ */ jsxRuntime.jsx(
3828
+ "img",
3829
+ {
3830
+ src: (_d = item.icon) == null ? void 0 : _d.url,
3831
+ alt: (_e = item.icon) == null ? void 0 : _e.name,
3832
+ className: classes.icon,
3833
+ style: {
3834
+ ...iconPositionStyles,
3835
+ transform: `${iconPositionStyles.transform || ""} scale(${settings.elements.icon.scale / 100})`
3836
+ }
3837
+ }
3838
+ ),
3839
+ /* @__PURE__ */ jsxRuntime.jsx(
3840
+ "div",
3841
+ {
3842
+ className: classes.caption,
3843
+ style: getAlignPosition(settings.elements.text.alignment, settings.elements.text.offset, isEditor),
3844
+ children: /* @__PURE__ */ jsxRuntime.jsx(RichTextRenderer, { content: item.imageCaption })
3845
+ }
3846
+ ),
3847
+ /* @__PURE__ */ jsxRuntime.jsx(
3848
+ "div",
3849
+ {
3850
+ className: classes.creds,
3851
+ style: getAlignPosition(settings.elements.creds.alignment, settings.elements.creds.offset, isEditor),
3852
+ children: /* @__PURE__ */ jsxRuntime.jsx(RichTextRenderer, { content: item.creds })
3853
+ }
3854
+ )
3855
+ ] })
3856
+ ]
3857
+ }
3858
+ ) }, index);
3859
+ })
3860
+ },
3861
+ splideKey
3862
+ )
3863
+ }
3864
+ ) }),
3865
+ controls.isActive && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
3866
+ /* @__PURE__ */ jsxRuntime.jsx(
3867
+ "div",
3868
+ {
3869
+ className: classes.arrow,
3870
+ style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
3871
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
3872
+ "button",
3873
+ {
3874
+ className: classes.arrowInner,
3875
+ style: { transform: `translate(${scalingValue(controls.offset.x, isEditor ?? false)}, ${scalingValue(controls.offset.y, isEditor ?? false)}) scale(${controls.scale / 100})` },
3876
+ onClick: () => {
3877
+ var _a;
3878
+ return (_a = sliderRef.current) == null ? void 0 : _a.go(isAutoplay ? "-1" : `-${perMove}`);
3879
+ },
3880
+ "aria-label": "Previous",
3881
+ children: [
3882
+ controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
3883
+ SvgImage,
3884
+ {
3885
+ url: controls.arrowsImgUrl,
3886
+ fill: controls.color,
3887
+ hoverFill: controls.hover,
3888
+ className: cn(classes.arrowImg, classes.mirror)
3889
+ }
3890
+ ),
3891
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon, { color: controls.color, className: cn(classes.arrowIcon, classes.arrowImg, classes.mirror) })
3892
+ ]
3893
+ }
3894
+ )
3895
+ }
3896
+ ),
3897
+ /* @__PURE__ */ jsxRuntime.jsx(
3898
+ "div",
3899
+ {
3900
+ className: cn(classes.arrow, classes.nextArrow),
3901
+ style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
3902
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
3903
+ "button",
3904
+ {
3905
+ className: classes.arrowInner,
3906
+ style: { transform: `translate(${scalingValue(controls.offset.x * -1, isEditor ?? false)}, ${scalingValue(controls.offset.y, isEditor ?? false)}) scale(${controls.scale / 100})` },
3907
+ onClick: () => {
3908
+ var _a;
3909
+ return (_a = sliderRef.current) == null ? void 0 : _a.go(isAutoplay ? "+1" : `+${perMove}`);
3910
+ },
3911
+ "aria-label": "Next",
3912
+ children: [
3913
+ controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
3914
+ SvgImage,
3915
+ {
3916
+ url: controls.arrowsImgUrl,
3917
+ fill: controls.color,
3918
+ hoverFill: controls.hover,
3919
+ className: classes.arrowImg
3920
+ }
3921
+ ),
3922
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon, { color: controls.color, className: cn(classes.arrowIcon, classes.arrowImg) })
3923
+ ]
3924
+ }
3925
+ )
3926
+ }
3927
+ )
3928
+ ] })
3929
+ ] });
3930
+ };
3931
+ function ArrowIcon({ color, className }) {
3932
+ return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 10 18", className, children: /* @__PURE__ */ jsxRuntime.jsx("g", { id: "Symbols", stroke: "none", strokeWidth: "1", fillRule: "evenodd", children: /* @__PURE__ */ jsxRuntime.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)" }) }) });
3933
+ }
3934
+ const TestimonialsComponent = {
3935
+ element: Testimonials,
3936
+ id: "testimonials",
3937
+ name: "Testimonials",
3938
+ preview: {
3939
+ type: "video",
3940
+ url: "https://cdn.cntrl.site/component-assets/testimonials.mp4"
3941
+ },
3942
+ defaultSize: {
3943
+ width: 700,
3944
+ height: 400
3945
+ },
3946
+ schema: {
3947
+ type: "object",
3948
+ properties: {
3949
+ settings: {
3950
+ layoutBased: true,
3951
+ type: "object",
3952
+ display: {
3953
+ type: "settings-block"
3954
+ },
3955
+ properties: {
3956
+ general: {
3957
+ icon: "thumbnail",
3958
+ type: "object",
3959
+ properties: {
3960
+ autoplay: {
3961
+ type: "string",
3962
+ title: "Autoplay",
3963
+ display: {
3964
+ type: "ratio-group",
3965
+ direction: "horizontal"
3966
+ },
3967
+ enum: ["on", "off"]
3968
+ },
3969
+ inView: {
3970
+ type: "number",
3971
+ title: "In View",
3972
+ min: 1,
3973
+ display: {
3974
+ type: "numeric-input"
3975
+ }
3976
+ },
3977
+ alignment: {
3978
+ type: "string",
3979
+ title: "Alignment",
3980
+ display: {
3981
+ type: "align-group",
3982
+ direction: "vertical"
3983
+ },
3984
+ enum: ["left", "center", "right"]
3985
+ },
3986
+ move: {
3987
+ type: "string",
3988
+ title: "Move",
3989
+ display: {
3990
+ type: "ratio-group",
3991
+ direction: "horizontal"
3992
+ },
3993
+ enum: ["one", "view"]
3994
+ },
3995
+ speed: {
3996
+ type: ["string", "null"],
3997
+ title: "Speed",
3998
+ display: {
3999
+ type: "step-selector"
4000
+ },
4001
+ enum: ["100ms", "250ms", "500ms", "1000ms", "1500ms", "2000ms"]
4002
+ },
4003
+ direction: {
4004
+ type: "string",
4005
+ display: {
4006
+ type: "ratio-group"
4007
+ },
4008
+ enum: ["left", "right"]
4009
+ },
4010
+ pause: {
4011
+ title: "Pause on",
4012
+ type: "string",
4013
+ display: {
4014
+ type: "ratio-group"
4015
+ },
4016
+ enum: ["hover", "click", "off"]
4017
+ }
4018
+ }
4019
+ },
4020
+ card: {
4021
+ icon: "card",
4022
+ type: "object",
4023
+ properties: {
4024
+ dimensions: {
4025
+ type: "object",
4026
+ title: "Size",
4027
+ display: {
4028
+ type: "group"
4029
+ },
4030
+ properties: {
4031
+ width: {
4032
+ type: "number",
4033
+ label: "W",
4034
+ scalingEnabled: true,
4035
+ display: {
4036
+ type: "numeric-input",
4037
+ visible: true
4038
+ }
4039
+ },
4040
+ height: {
4041
+ type: "number",
4042
+ label: "H",
4043
+ scalingEnabled: true,
4044
+ display: {
4045
+ type: "numeric-input",
4046
+ visible: true
4047
+ }
4048
+ }
4049
+ }
4050
+ },
4051
+ gap: {
4052
+ type: "number",
4053
+ title: "Gap",
4054
+ scalingEnabled: true,
4055
+ min: 0,
4056
+ display: {
4057
+ type: "numeric-input"
4058
+ }
4059
+ },
4060
+ corner: {
4061
+ type: "number",
4062
+ title: "Corners",
4063
+ scalingEnabled: true,
4064
+ min: 0,
4065
+ label: "icon:border-radius",
4066
+ display: {
4067
+ type: "numeric-input"
4068
+ }
4069
+ },
4070
+ borders: {
4071
+ type: "object",
4072
+ title: "Borders",
4073
+ display: {
4074
+ type: "group"
4075
+ },
4076
+ properties: {
4077
+ width: {
4078
+ type: "number",
4079
+ label: "icon:border-width",
4080
+ scalingEnabled: true,
4081
+ min: 0,
4082
+ display: {
4083
+ type: "numeric-input"
4084
+ }
4085
+ },
4086
+ color: {
4087
+ type: "string",
4088
+ display: {
4089
+ type: "settings-color-picker",
4090
+ format: "single"
4091
+ }
4092
+ }
4093
+ }
4094
+ },
4095
+ bgColor: {
4096
+ title: "BG color",
4097
+ type: "string",
4098
+ display: {
4099
+ type: "settings-color-picker",
4100
+ format: "single"
4101
+ }
4102
+ }
4103
+ }
4104
+ },
4105
+ elements: {
4106
+ title: "elements",
4107
+ icon: "star",
4108
+ type: "object",
4109
+ properties: {
4110
+ elements: {
4111
+ type: "string",
4112
+ display: {
4113
+ type: "ratio-group"
4114
+ },
4115
+ enum: ["text", "icon", "caption"]
4116
+ },
4117
+ text: {
4118
+ type: "object",
4119
+ display: {
4120
+ type: "group"
4121
+ },
4122
+ properties: {
4123
+ alignment: {
4124
+ type: "string",
4125
+ display: {
4126
+ type: "align-grid",
4127
+ visible: true
4128
+ },
4129
+ enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
4130
+ },
4131
+ offset: {
4132
+ type: "object",
4133
+ title: "Offset",
4134
+ display: {
4135
+ type: "group",
4136
+ visible: true
4137
+ },
4138
+ properties: {
4139
+ x: {
4140
+ type: "number",
4141
+ label: "X",
4142
+ scalingEnabled: true,
4143
+ display: {
4144
+ type: "numeric-input",
4145
+ visible: true
4146
+ }
4147
+ },
4148
+ y: {
4149
+ type: "number",
4150
+ label: "Y",
4151
+ scalingEnabled: true,
4152
+ display: {
4153
+ type: "numeric-input",
4154
+ visible: true
4155
+ }
4156
+ }
4157
+ }
4158
+ }
4159
+ }
4160
+ },
4161
+ icon: {
4162
+ type: "object",
4163
+ display: {
4164
+ type: "group"
4165
+ },
4166
+ properties: {
4167
+ alignment: {
4168
+ type: "string",
4169
+ display: {
4170
+ type: "align-grid"
4171
+ },
4172
+ enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
4173
+ },
4174
+ offset: {
4175
+ type: "object",
4176
+ title: "Offset",
4177
+ display: {
4178
+ type: "group"
4179
+ },
4180
+ properties: {
4181
+ x: {
4182
+ type: "number",
4183
+ label: "X",
4184
+ scalingEnabled: true,
4185
+ display: {
4186
+ type: "numeric-input",
4187
+ visible: true
4188
+ }
4189
+ },
4190
+ y: {
4191
+ type: "number",
4192
+ label: "Y",
4193
+ scalingEnabled: true,
4194
+ display: {
4195
+ type: "numeric-input",
4196
+ visible: true
4197
+ }
4198
+ }
4199
+ }
4200
+ },
4201
+ scale: {
4202
+ type: "number",
4203
+ title: "scale",
4204
+ min: 50,
4205
+ max: 600,
4206
+ display: {
4207
+ type: "range-control",
4208
+ visible: false
4209
+ }
4210
+ }
4211
+ }
4212
+ },
4213
+ creds: {
4214
+ type: "object",
4215
+ display: {
4216
+ type: "group"
4217
+ },
4218
+ properties: {
4219
+ alignment: {
4220
+ type: "string",
4221
+ display: {
4222
+ type: "align-grid"
4223
+ },
4224
+ enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
4225
+ },
4226
+ offset: {
4227
+ type: "object",
4228
+ title: "Offset",
4229
+ display: {
4230
+ type: "group"
4231
+ },
4232
+ properties: {
4233
+ x: {
4234
+ type: "number",
4235
+ label: "X",
4236
+ scalingEnabled: true,
4237
+ display: {
4238
+ type: "numeric-input",
4239
+ visible: true
4240
+ }
4241
+ },
4242
+ y: {
4243
+ type: "number",
4244
+ label: "Y",
4245
+ scalingEnabled: true,
4246
+ display: {
4247
+ type: "numeric-input",
4248
+ visible: true
4249
+ }
4250
+ }
4251
+ }
4252
+ }
4253
+ }
4254
+ }
4255
+ }
4256
+ },
4257
+ controls: {
4258
+ title: "controls",
4259
+ icon: "controls",
4260
+ tooltip: "Controls",
4261
+ type: "object",
4262
+ properties: {
4263
+ isActive: {
4264
+ type: "boolean",
4265
+ display: {
4266
+ type: "setting-toggle"
4267
+ }
4268
+ },
4269
+ arrowsImgUrl: {
4270
+ type: ["string", "null"],
4271
+ display: {
4272
+ type: "settings-image-input"
4273
+ }
4274
+ },
4275
+ offset: {
4276
+ type: "object",
4277
+ title: "Offset",
4278
+ display: {
4279
+ type: "group"
4280
+ },
4281
+ properties: {
4282
+ x: {
4283
+ type: "number",
4284
+ label: "X",
4285
+ scalingEnabled: true,
4286
+ display: {
4287
+ type: "numeric-input",
4288
+ visible: true
4289
+ }
4290
+ },
4291
+ y: {
4292
+ type: "number",
4293
+ label: "Y",
4294
+ scalingEnabled: true,
4295
+ display: {
4296
+ type: "numeric-input",
4297
+ visible: true
4298
+ }
4299
+ }
4300
+ }
4301
+ },
4302
+ scale: {
4303
+ type: "number",
4304
+ title: "scale",
4305
+ min: 50,
4306
+ max: 600,
4307
+ display: {
4308
+ type: "range-control"
4309
+ }
4310
+ },
4311
+ color: {
4312
+ title: "color",
4313
+ type: "string",
4314
+ display: {
4315
+ type: "settings-color-picker",
4316
+ format: "single"
4317
+ }
4318
+ },
4319
+ hover: {
4320
+ title: "hover",
4321
+ type: "string",
4322
+ display: {
4323
+ type: "settings-color-picker",
4324
+ format: "single"
4325
+ }
4326
+ }
4327
+ }
4328
+ }
4329
+ },
4330
+ default: {
4331
+ general: {
4332
+ autoplay: "off",
4333
+ inView: 3,
4334
+ alignment: "center",
4335
+ move: "one",
4336
+ speed: "3s",
4337
+ direction: "left",
4338
+ pause: "off"
4339
+ },
4340
+ card: {
4341
+ dimensions: {
4342
+ width: 0.15,
4343
+ height: 0.2
4344
+ },
4345
+ gap: 0.02,
4346
+ corner: 5e-3,
4347
+ borders: {
4348
+ width: 1e-3,
4349
+ color: "#000000"
4350
+ },
4351
+ bgColor: "rgba(255, 255, 255, 0.2)"
4352
+ },
4353
+ controls: {
4354
+ isActive: false,
4355
+ arrowsImgUrl: null,
4356
+ offset: {
4357
+ x: 0,
4358
+ y: 0
4359
+ },
4360
+ scale: 100,
4361
+ color: "#000000",
4362
+ hover: "#cccccc"
4363
+ },
4364
+ elements: {
4365
+ elements: "text",
4366
+ text: {
4367
+ alignment: "middle-left",
4368
+ offset: {
4369
+ x: 5e-3,
4370
+ y: 0
4371
+ }
4372
+ },
4373
+ icon: {
4374
+ alignment: "top-left",
4375
+ offset: {
4376
+ x: 0,
4377
+ y: 0
4378
+ },
4379
+ scale: 100
4380
+ },
4381
+ creds: {
4382
+ alignment: "bottom-left",
4383
+ offset: {
4384
+ x: 5e-3,
4385
+ y: -5e-3
4386
+ }
4387
+ }
4388
+ }
4389
+ },
4390
+ displayRules: [
4391
+ {
4392
+ if: {
4393
+ name: "general.autoplay",
4394
+ value: "off"
4395
+ },
4396
+ then: {
4397
+ name: "properties.general.properties.inView.display.visible",
4398
+ value: true
4399
+ }
4400
+ },
4401
+ {
4402
+ if: {
4403
+ name: "general.autoplay",
4404
+ value: "off"
4405
+ },
4406
+ then: {
4407
+ name: "properties.general.properties.alignment.display.visible",
4408
+ value: true
4409
+ }
4410
+ },
4411
+ {
4412
+ if: {
4413
+ name: "general.autoplay",
4414
+ value: "off"
4415
+ },
4416
+ then: {
4417
+ name: "properties.general.properties.move.display.visible",
4418
+ value: true
4419
+ }
4420
+ },
4421
+ {
4422
+ if: {
4423
+ name: "general.autoplay",
4424
+ value: "on"
4425
+ },
4426
+ then: {
4427
+ name: "properties.general.properties.inView.display.visible",
4428
+ value: false
4429
+ }
4430
+ },
4431
+ {
4432
+ if: {
4433
+ name: "general.autoplay",
4434
+ value: "on"
4435
+ },
4436
+ then: {
4437
+ name: "properties.general.properties.alignment.display.visible",
4438
+ value: false
4439
+ }
4440
+ },
4441
+ {
4442
+ if: {
4443
+ name: "general.autoplay",
4444
+ value: "on"
4445
+ },
4446
+ then: {
4447
+ name: "properties.general.properties.move.display.visible",
4448
+ value: false
4449
+ }
4450
+ },
4451
+ {
4452
+ if: {
4453
+ name: "general.autoplay",
4454
+ value: "on"
4455
+ },
4456
+ then: {
4457
+ name: "properties.general.properties.speed.display.visible",
4458
+ value: true
4459
+ }
4460
+ },
4461
+ {
4462
+ if: {
4463
+ name: "general.autoplay",
4464
+ value: "on"
4465
+ },
4466
+ then: {
4467
+ name: "properties.general.properties.direction.display.visible",
4468
+ value: true
4469
+ }
4470
+ },
4471
+ {
4472
+ if: {
4473
+ name: "general.autoplay",
4474
+ value: "on"
4475
+ },
4476
+ then: {
4477
+ name: "properties.general.properties.pause.display.visible",
4478
+ value: true
4479
+ }
4480
+ },
4481
+ {
4482
+ if: {
4483
+ name: "general.autoplay",
4484
+ value: "off"
4485
+ },
4486
+ then: {
4487
+ name: "properties.general.properties.speed.display.visible",
4488
+ value: false
4489
+ }
4490
+ },
4491
+ {
4492
+ if: {
4493
+ name: "general.autoplay",
4494
+ value: "off"
4495
+ },
4496
+ then: {
4497
+ name: "properties.general.properties.direction.display.visible",
4498
+ value: false
4499
+ }
4500
+ },
4501
+ {
4502
+ if: {
4503
+ name: "general.autoplay",
4504
+ value: "off"
4505
+ },
4506
+ then: {
4507
+ name: "properties.general.properties.pause.display.visible",
4508
+ value: false
4509
+ }
4510
+ },
4511
+ {
4512
+ if: {
4513
+ name: "elements.elements",
4514
+ value: "text"
4515
+ },
4516
+ then: {
4517
+ name: "properties.elements.properties.text.properties.alignment.display.visible",
4518
+ value: true
4519
+ }
4520
+ },
4521
+ {
4522
+ if: {
4523
+ name: "elements.elements",
4524
+ value: "text"
4525
+ },
4526
+ then: {
4527
+ name: "properties.elements.properties.text.properties.offset.display.visible",
4528
+ value: true
4529
+ }
4530
+ },
4531
+ {
4532
+ if: {
4533
+ name: "elements.elements",
4534
+ value: "text"
4535
+ },
4536
+ then: {
4537
+ name: "properties.elements.properties.icon.properties.alignment.display.visible",
4538
+ value: false
4539
+ }
4540
+ },
4541
+ {
4542
+ if: {
4543
+ name: "elements.elements",
4544
+ value: "text"
4545
+ },
4546
+ then: {
4547
+ name: "properties.elements.properties.icon.properties.offset.display.visible",
4548
+ value: false
4549
+ }
4550
+ },
4551
+ {
4552
+ if: {
4553
+ name: "elements.elements",
4554
+ value: "text"
4555
+ },
4556
+ then: {
4557
+ name: "properties.elements.properties.creds.properties.alignment.display.visible",
4558
+ value: false
4559
+ }
4560
+ },
4561
+ {
4562
+ if: {
4563
+ name: "elements.elements",
4564
+ value: "text"
4565
+ },
4566
+ then: {
4567
+ name: "properties.elements.properties.creds.properties.offset.display.visible",
4568
+ value: false
4569
+ }
4570
+ },
4571
+ {
4572
+ if: {
4573
+ name: "elements.elements",
4574
+ value: "icon"
4575
+ },
4576
+ then: {
4577
+ name: "properties.elements.properties.icon.properties.alignment.display.visible",
4578
+ value: true
4579
+ }
4580
+ },
4581
+ {
4582
+ if: {
4583
+ name: "elements.elements",
4584
+ value: "icon"
4585
+ },
4586
+ then: {
4587
+ name: "properties.elements.properties.icon.properties.offset.display.visible",
4588
+ value: true
4589
+ }
4590
+ },
4591
+ {
4592
+ if: {
4593
+ name: "elements.elements",
4594
+ value: "icon"
4595
+ },
4596
+ then: {
4597
+ name: "properties.elements.properties.text.properties.alignment.display.visible",
4598
+ value: false
4599
+ }
4600
+ },
4601
+ {
4602
+ if: {
4603
+ name: "elements.elements",
4604
+ value: "icon"
4605
+ },
4606
+ then: {
4607
+ name: "properties.elements.properties.text.properties.offset.display.visible",
4608
+ value: false
4609
+ }
4610
+ },
4611
+ {
4612
+ if: {
4613
+ name: "elements.elements",
4614
+ value: "icon"
4615
+ },
4616
+ then: {
4617
+ name: "properties.elements.properties.creds.properties.alignment.display.visible",
4618
+ value: false
4619
+ }
4620
+ },
4621
+ {
4622
+ if: {
4623
+ name: "elements.elements",
4624
+ value: "icon"
4625
+ },
4626
+ then: {
4627
+ name: "properties.elements.properties.creds.properties.offset.display.visible",
4628
+ value: false
4629
+ }
4630
+ },
4631
+ {
4632
+ if: {
4633
+ name: "elements.elements",
4634
+ value: "caption"
4635
+ },
4636
+ then: {
4637
+ name: "properties.elements.properties.creds.properties.alignment.display.visible",
4638
+ value: true
4639
+ }
4640
+ },
4641
+ {
4642
+ if: {
4643
+ name: "elements.elements",
4644
+ value: "caption"
4645
+ },
4646
+ then: {
4647
+ name: "properties.elements.properties.creds.properties.offset.display.visible",
4648
+ value: true
4649
+ }
4650
+ },
4651
+ {
4652
+ if: {
4653
+ name: "elements.elements",
4654
+ value: "caption"
4655
+ },
4656
+ then: {
4657
+ name: "properties.elements.properties.text.properties.alignment.display.visible",
4658
+ value: false
4659
+ }
4660
+ },
4661
+ {
4662
+ if: {
4663
+ name: "elements.elements",
4664
+ value: "caption"
4665
+ },
4666
+ then: {
4667
+ name: "properties.elements.properties.text.properties.offset.display.visible",
4668
+ value: false
4669
+ }
4670
+ },
4671
+ {
4672
+ if: {
4673
+ name: "elements.elements",
4674
+ value: "caption"
4675
+ },
4676
+ then: {
4677
+ name: "properties.elements.properties.icon.properties.alignment.display.visible",
4678
+ value: false
4679
+ }
4680
+ },
4681
+ {
4682
+ if: {
4683
+ name: "elements.elements",
4684
+ value: "caption"
4685
+ },
4686
+ then: {
4687
+ name: "properties.elements.properties.icon.properties.offset.display.visible",
4688
+ value: false
4689
+ }
4690
+ },
4691
+ {
4692
+ if: {
4693
+ name: "elements.elements",
4694
+ value: "icon"
4695
+ },
4696
+ then: {
4697
+ name: "properties.elements.properties.icon.properties.scale.display.visible",
4698
+ value: true
4699
+ }
4700
+ },
4701
+ {
4702
+ if: {
4703
+ name: "elements.elements",
4704
+ value: "text"
4705
+ },
4706
+ then: {
4707
+ name: "properties.elements.properties.icon.properties.scale.display.visible",
4708
+ value: false
4709
+ }
4710
+ },
4711
+ {
4712
+ if: {
4713
+ name: "elements.elements",
4714
+ value: "caption"
4715
+ },
4716
+ then: {
4717
+ name: "properties.elements.properties.icon.properties.scale.display.visible",
4718
+ value: false
4719
+ }
4720
+ }
4721
+ ]
4722
+ },
4723
+ content: {
4724
+ layoutBased: false,
4725
+ type: "array",
4726
+ settings: {
4727
+ addItemFromFileExplorer: true,
4728
+ defaultWidth: 500
4729
+ },
4730
+ items: {
4731
+ type: "object",
4732
+ properties: {
4733
+ image: {
4734
+ type: "object",
4735
+ label: "Image",
4736
+ display: {
4737
+ minWidth: 58,
4738
+ maxWidth: 108,
4739
+ type: "media-input"
4740
+ },
4741
+ properties: {
4742
+ url: {
4743
+ type: "string"
4744
+ },
4745
+ name: {
4746
+ type: "string"
4747
+ },
4748
+ objectFit: {
4749
+ type: "string",
4750
+ enum: ["cover", "contain"]
4751
+ }
4752
+ },
4753
+ required: ["url", "name"]
4754
+ },
4755
+ icon: {
4756
+ type: "object",
4757
+ label: "Icon",
4758
+ display: {
4759
+ minWidth: 58,
4760
+ maxWidth: 108,
4761
+ type: "media-input"
4762
+ },
4763
+ properties: {
4764
+ url: {
4765
+ type: "string"
4766
+ },
4767
+ name: {
4768
+ type: "string"
4769
+ },
4770
+ objectFit: {
4771
+ type: "string",
4772
+ enum: ["cover", "contain"]
4773
+ }
4774
+ },
4775
+ required: ["url", "name"]
4776
+ },
4777
+ imageCaption: {
4778
+ placeholder: "Add Text...",
4779
+ label: "Text",
4780
+ display: {
4781
+ type: "rich-text",
4782
+ minWidth: 300,
4783
+ maxWidth: 550
4784
+ }
4785
+ },
4786
+ creds: {
4787
+ placeholder: "Add Caption...",
4788
+ label: "Caption",
4789
+ display: {
4790
+ type: "rich-text",
4791
+ minWidth: 300,
4792
+ maxWidth: 550
4793
+ }
4794
+ }
4795
+ },
4796
+ required: ["image"]
4797
+ },
4798
+ default: [
4799
+ {
4800
+ image: {
4801
+ objectFit: "cover",
4802
+ url: "https://cdn.cntrl.site/component-assets/2.jpg",
4803
+ name: "Testimonial-1.png"
4804
+ },
4805
+ icon: {
4806
+ objectFit: "cover",
4807
+ url: "https://cdn.cntrl.site/projects/01GJ2SPNXG3V5P35ZA35YM1JTW/articles-assets/01KFXFA89BHQHVAJNAZCJMWDA1.png",
4808
+ name: ""
4809
+ },
4810
+ imageCaption: [
4811
+ {
4812
+ type: "paragraph",
4813
+ children: [{ text: "Innovative solutions redefine connectivity, enhancing user experience through seamless digital integration and efficiency." }]
4814
+ }
4815
+ ],
4816
+ creds: [
4817
+ {
4818
+ type: "paragraph",
4819
+ children: [{ text: "CEO @ Company" }]
4820
+ }
4821
+ ]
4822
+ },
4823
+ {
4824
+ image: {
4825
+ objectFit: "cover",
4826
+ url: "https://cdn.cntrl.site/component-assets/3.jpg",
4827
+ name: "Testimonial-2.png"
4828
+ },
4829
+ icon: {
4830
+ objectFit: "cover",
4831
+ url: "https://cdn.cntrl.site/projects/01GJ2SPNXG3V5P35ZA35YM1JTW/articles-assets/01KFXFA89BHQHVAJNAZCJMWDA1.png",
4832
+ name: ""
4833
+ },
4834
+ imageCaption: [
4835
+ {
4836
+ type: "paragraph",
4837
+ children: [{ text: "In the realm of digital innovation, transformative algorithms redefine connectivity, propelling unprecedented technological advancements." }]
4838
+ }
4839
+ ],
4840
+ creds: [
4841
+ {
4842
+ type: "paragraph",
4843
+ children: [{ text: "CEO @ Company" }]
4844
+ }
4845
+ ]
4846
+ },
4847
+ {
4848
+ image: {
4849
+ objectFit: "cover",
4850
+ url: "https://cdn.cntrl.site/component-assets/4.jpg",
4851
+ name: "Testimonial-3.png"
4852
+ },
4853
+ icon: {
4854
+ objectFit: "cover",
4855
+ url: "https://cdn.cntrl.site/projects/01GJ2SPNXG3V5P35ZA35YM1JTW/articles-assets/01KFXFA89BHQHVAJNAZCJMWDA1.png",
4856
+ name: ""
4857
+ },
4858
+ imageCaption: [
4859
+ {
4860
+ type: "paragraph",
4861
+ children: [{ text: "Harnessing innovative algorithms, this paradigm shift enhances computational efficiency and optimizes data processing frameworks." }]
4862
+ }
4863
+ ],
4864
+ creds: [
4865
+ {
4866
+ type: "paragraph",
4867
+ children: [{ text: "CEO @ Company" }]
4868
+ }
4869
+ ]
4870
+ }
4871
+ ]
4872
+ },
4873
+ styles: {
4874
+ layoutBased: true,
4875
+ type: "object",
4876
+ properties: {
4877
+ caption: {
4878
+ dataName: "caption",
4879
+ type: "object",
4880
+ properties: {
4881
+ fontSettings: {
4882
+ type: "object",
4883
+ display: {
4884
+ type: "font-settings"
4885
+ },
4886
+ properties: {
4887
+ fontFamily: {
4888
+ type: "string"
4889
+ },
4890
+ fontWeight: {
4891
+ type: "number"
4892
+ },
4893
+ fontStyle: {
4894
+ type: "string"
4895
+ }
4896
+ }
4897
+ },
4898
+ widthSettings: {
4899
+ display: {
4900
+ type: "text-width-control"
4901
+ },
4902
+ type: "object",
4903
+ properties: {
4904
+ width: {
4905
+ type: "number"
4906
+ },
4907
+ sizing: {
4908
+ type: "string",
4909
+ enum: ["auto", "manual"]
4910
+ }
4911
+ }
4912
+ },
4913
+ fontSizeLineHeight: {
4914
+ type: "object",
4915
+ display: {
4916
+ type: "font-size-line-height"
4917
+ },
4918
+ properties: {
4919
+ fontSize: {
4920
+ type: "number"
4921
+ },
4922
+ lineHeight: {
4923
+ type: "number"
4924
+ }
4925
+ }
4926
+ },
4927
+ letterSpacing: {
4928
+ display: {
4929
+ type: "letter-spacing-input"
4930
+ },
4931
+ type: "number"
4932
+ },
4933
+ wordSpacing: {
4934
+ display: {
4935
+ type: "word-spacing-input"
4936
+ },
4937
+ type: "number"
4938
+ },
4939
+ textAlign: {
4940
+ display: {
4941
+ type: "text-align-control"
4942
+ },
4943
+ type: "string",
4944
+ enum: ["left", "center", "right"]
4945
+ },
4946
+ textAppearance: {
4947
+ display: {
4948
+ type: "text-appearance"
4949
+ },
4950
+ properties: {
4951
+ textTransform: {
4952
+ type: "string",
4953
+ enum: ["none", "uppercase", "lowercase"]
4954
+ },
4955
+ textDecoration: {
4956
+ type: "string",
4957
+ enum: ["none", "underline"]
4958
+ },
4959
+ fontVariant: {
4960
+ type: "string",
4961
+ enum: ["normal", "small-caps"]
4962
+ }
4963
+ }
4964
+ },
4965
+ color: {
4966
+ display: {
4967
+ type: "style-panel-color-picker"
4968
+ },
4969
+ type: "string"
4970
+ }
4971
+ }
4972
+ }
4973
+ },
4974
+ default: {
4975
+ caption: {
4976
+ widthSettings: {
4977
+ width: 0.13,
4978
+ sizing: "auto"
4979
+ },
4980
+ fontSettings: {
4981
+ fontFamily: "Arial",
4982
+ fontWeight: 400,
4983
+ fontStyle: "normal"
4984
+ },
4985
+ fontSizeLineHeight: {
4986
+ fontSize: 0.02,
4987
+ lineHeight: 0.02
4988
+ },
4989
+ letterSpacing: 0,
4990
+ wordSpacing: 0,
4991
+ textAlign: "left",
4992
+ textAppearance: {
4993
+ textTransform: "none",
4994
+ textDecoration: "none",
4995
+ fontVariant: "normal"
4996
+ },
4997
+ color: "#000000"
4998
+ }
4999
+ }
5000
+ }
5001
+ },
5002
+ required: ["settings", "content", "styles"]
5003
+ }
5004
+ };
3670
5005
  const components = [
3671
5006
  ControlSliderComponent,
3672
5007
  ControlImageRevealSliderComponent,
3673
- LightboxComponent
5008
+ LightboxComponent,
5009
+ TestimonialsComponent
3674
5010
  ];
3675
5011
  exports.components = components;