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