@cntrl-site/components 0.1.9 → 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 = {
@@ -1624,16 +1624,16 @@ const contentStyle = "LightBox-module__contentStyle___Bgnsq";
1624
1624
  const imageStyle = "LightBox-module__imageStyle___tLIlB";
1625
1625
  const imgWrapper = "LightBox-module__imgWrapper___LuFUp";
1626
1626
  const contain = "LightBox-module__contain___8-yaS";
1627
- const cover = "LightBox-module__cover___hNvOG";
1628
- const caption = "LightBox-module__caption___b6L2I";
1627
+ const cover$1 = "LightBox-module__cover___hNvOG";
1628
+ const caption$1 = "LightBox-module__caption___b6L2I";
1629
1629
  const captionTextInner = "LightBox-module__captionTextInner___rCGNH";
1630
1630
  const lightboxSplide = "LightBox-module__lightboxSplide___XFuWC";
1631
- const arrow = "LightBox-module__arrow___iz38X";
1631
+ const arrow$1 = "LightBox-module__arrow___iz38X";
1632
1632
  const arrowVertical = "LightBox-module__arrowVertical___Zfz81";
1633
- const nextArrow = "LightBox-module__nextArrow___zkAQN";
1634
- const arrowInner = "LightBox-module__arrowInner___p48sW";
1635
- const arrowImg = "LightBox-module__arrowImg___pNV88";
1636
- 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";
1637
1637
  const thumbsContainerVertical = "LightBox-module__thumbsContainerVertical___wttk5";
1638
1638
  const thumbsContainer = "LightBox-module__thumbsContainer___osSma";
1639
1639
  const thumbsAlignStart = "LightBox-module__thumbsAlignStart___MO6tY";
@@ -1652,7 +1652,7 @@ const slideOutRight = "LightBox-module__slideOutRight___SK7eC";
1652
1652
  const slideOutTop = "LightBox-module__slideOutTop___Vgg0z";
1653
1653
  const slideOutBottom = "LightBox-module__slideOutBottom___nJ0Ef";
1654
1654
  const scaleSlide = "LightBox-module__scaleSlide___vZriG";
1655
- const classes = {
1655
+ const classes$1 = {
1656
1656
  heroImage,
1657
1657
  background,
1658
1658
  editor,
@@ -1660,16 +1660,16 @@ const classes = {
1660
1660
  imageStyle,
1661
1661
  imgWrapper,
1662
1662
  contain,
1663
- cover,
1664
- caption,
1663
+ cover: cover$1,
1664
+ caption: caption$1,
1665
1665
  captionTextInner,
1666
1666
  lightboxSplide,
1667
- arrow,
1667
+ arrow: arrow$1,
1668
1668
  arrowVertical,
1669
- nextArrow,
1670
- arrowInner,
1671
- arrowImg,
1672
- mirror,
1669
+ nextArrow: nextArrow$1,
1670
+ arrowInner: arrowInner$1,
1671
+ arrowImg: arrowImg$1,
1672
+ mirror: mirror$1,
1673
1673
  thumbsContainerVertical,
1674
1674
  thumbsContainer,
1675
1675
  thumbsAlignStart,
@@ -1769,76 +1769,76 @@ function getColorAlpha(color) {
1769
1769
  }
1770
1770
  function getAnimationClasses(type, direction) {
1771
1771
  const appearClass = (() => {
1772
- if (type === "fade in") return classes.fadeIn;
1772
+ if (type === "fade in") return classes$1.fadeIn;
1773
1773
  if (type === "slide in" || type === "mix") {
1774
1774
  switch (direction) {
1775
1775
  case "left":
1776
- return classes.slideInLeft;
1776
+ return classes$1.slideInLeft;
1777
1777
  case "right":
1778
- return classes.slideInRight;
1778
+ return classes$1.slideInRight;
1779
1779
  case "top":
1780
- return classes.slideInTop;
1780
+ return classes$1.slideInTop;
1781
1781
  case "bottom":
1782
- return classes.slideInBottom;
1782
+ return classes$1.slideInBottom;
1783
1783
  default:
1784
- return classes.slideInRight;
1784
+ return classes$1.slideInRight;
1785
1785
  }
1786
1786
  }
1787
- return classes.fadeIn;
1787
+ return classes$1.fadeIn;
1788
1788
  })();
1789
1789
  const backdropAppearClass = (() => {
1790
- if (type === "fade in" || type === "mix") return classes.fadeIn;
1790
+ if (type === "fade in" || type === "mix") return classes$1.fadeIn;
1791
1791
  if (type === "slide in") {
1792
1792
  switch (direction) {
1793
1793
  case "left":
1794
- return classes.slideInLeft;
1794
+ return classes$1.slideInLeft;
1795
1795
  case "right":
1796
- return classes.slideInRight;
1796
+ return classes$1.slideInRight;
1797
1797
  case "top":
1798
- return classes.slideInTop;
1798
+ return classes$1.slideInTop;
1799
1799
  case "bottom":
1800
- return classes.slideInBottom;
1800
+ return classes$1.slideInBottom;
1801
1801
  default:
1802
- return classes.slideInRight;
1802
+ return classes$1.slideInRight;
1803
1803
  }
1804
1804
  }
1805
- return classes.fadeIn;
1805
+ return classes$1.fadeIn;
1806
1806
  })();
1807
1807
  const backdropDisappearClass = (() => {
1808
- if (type === "fade in" || type === "mix") return classes.fadeOut;
1808
+ if (type === "fade in" || type === "mix") return classes$1.fadeOut;
1809
1809
  if (type === "slide in") {
1810
1810
  switch (direction) {
1811
1811
  case "left":
1812
- return classes.slideOutLeft;
1812
+ return classes$1.slideOutLeft;
1813
1813
  case "right":
1814
- return classes.slideOutRight;
1814
+ return classes$1.slideOutRight;
1815
1815
  case "top":
1816
- return classes.slideOutTop;
1816
+ return classes$1.slideOutTop;
1817
1817
  case "bottom":
1818
- return classes.slideOutBottom;
1818
+ return classes$1.slideOutBottom;
1819
1819
  default:
1820
- return classes.slideOutRight;
1820
+ return classes$1.slideOutRight;
1821
1821
  }
1822
1822
  }
1823
- return classes.fadeOut;
1823
+ return classes$1.fadeOut;
1824
1824
  })();
1825
1825
  const disappearClass = (() => {
1826
- if (type === "fade in") return classes.fadeOut;
1826
+ if (type === "fade in") return classes$1.fadeOut;
1827
1827
  if (type === "slide in" || type === "mix") {
1828
1828
  switch (direction) {
1829
1829
  case "left":
1830
- return classes.slideOutLeft;
1830
+ return classes$1.slideOutLeft;
1831
1831
  case "right":
1832
- return classes.slideOutRight;
1832
+ return classes$1.slideOutRight;
1833
1833
  case "top":
1834
- return classes.slideOutTop;
1834
+ return classes$1.slideOutTop;
1835
1835
  case "bottom":
1836
- return classes.slideOutBottom;
1836
+ return classes$1.slideOutBottom;
1837
1837
  default:
1838
- return classes.slideOutRight;
1838
+ return classes$1.slideOutRight;
1839
1839
  }
1840
1840
  }
1841
- return classes.fadeOut;
1841
+ return classes$1.fadeOut;
1842
1842
  })();
1843
1843
  return { appearClass, backdropAppearClass, backdropDisappearClass, disappearClass };
1844
1844
  }
@@ -1859,7 +1859,7 @@ const LightboxGallery = ({ settings, content, styles: styles2, portalId, activeE
1859
1859
  {
1860
1860
  src: url,
1861
1861
  alt: "Cover",
1862
- className: classes.heroImage,
1862
+ className: classes$1.heroImage,
1863
1863
  onClick: () => setOpen(true)
1864
1864
  }
1865
1865
  ),
@@ -2081,7 +2081,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2081
2081
  return;
2082
2082
  }
2083
2083
  const target = e.target;
2084
- if (target && (target.closest(`.${classes.thumbsContainer}`) || target.closest(`.${classes.thumbItem}`))) {
2084
+ if (target && (target.closest(`.${classes$1.thumbsContainer}`) || target.closest(`.${classes$1.thumbItem}`))) {
2085
2085
  return;
2086
2086
  }
2087
2087
  if (e.touches.length === 0 && e.changedTouches.length > 0) {
@@ -2129,7 +2129,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2129
2129
  "div",
2130
2130
  {
2131
2131
  ref: !isEditor ? animationTargetRef : null,
2132
- className: cn(classes.background, isClosing ? backdropDisappearClass : backdropAppearClass, { [classes.editor]: isEditor }),
2132
+ className: cn(classes$1.background, isClosing ? backdropDisappearClass : backdropAppearClass, { [classes$1.editor]: isEditor }),
2133
2133
  style: {
2134
2134
  ...backdropStyles,
2135
2135
  ...animationFinished && !isEditor && !isClosing ? { position: "absolute" } : {}
@@ -2140,7 +2140,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2140
2140
  "div",
2141
2141
  {
2142
2142
  ref: isEditor ? animationTargetRef : null,
2143
- className: cn(classes.contentStyle, !isClosing ? appearClass : disappearClass, { [classes.editor]: isEditor }),
2143
+ className: cn(classes$1.contentStyle, !isClosing ? appearClass : disappearClass, { [classes$1.editor]: isEditor }),
2144
2144
  style: {
2145
2145
  animationDuration: `${parseInt(appear.duration)}ms`,
2146
2146
  animationTimingFunction: "ease",
@@ -2152,7 +2152,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2152
2152
  {
2153
2153
  onMove: (splide) => setCurrentIndex(splide.index),
2154
2154
  ref: lightboxRef,
2155
- className: classes.lightboxSplide,
2155
+ className: classes$1.lightboxSplide,
2156
2156
  options: {
2157
2157
  arrows: false,
2158
2158
  speed: slider.duration ? parseInt(slider.duration) : 500,
@@ -2180,14 +2180,14 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2180
2180
  "--position-transform": transform || "none"
2181
2181
  };
2182
2182
  })() : { ...positionStyles, position: "absolute", padding, boxSizing: "border-box" };
2183
- 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(
2184
2184
  "img",
2185
2185
  {
2186
2186
  ref: index === currentIndex ? imageRef : null,
2187
- className: cn(classes.imageStyle, {
2188
- [classes.contain]: item.image.objectFit === "contain",
2189
- [classes.cover]: item.image.objectFit === "cover",
2190
- [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"
2191
2191
  }),
2192
2192
  onClick: item.image.objectFit !== "contain" ? onImageClick : void 0,
2193
2193
  src: item.image.url,
@@ -2203,12 +2203,12 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2203
2203
  /* @__PURE__ */ jsxRuntime.jsx(
2204
2204
  "div",
2205
2205
  {
2206
- className: cn(classes.arrow, { [classes.arrowVertical]: slider.direction === "vert" }),
2206
+ className: cn(classes$1.arrow, { [classes$1.arrowVertical]: slider.direction === "vert" }),
2207
2207
  style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
2208
2208
  children: /* @__PURE__ */ jsxRuntime.jsx(
2209
2209
  "button",
2210
2210
  {
2211
- className: classes.arrowInner,
2211
+ className: classes$1.arrowInner,
2212
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"})` },
2213
2213
  onClick: () => {
2214
2214
  var _a;
@@ -2221,7 +2221,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2221
2221
  url: controls.arrowsImgUrl,
2222
2222
  fill: controls.color,
2223
2223
  hoverFill: controls.hover,
2224
- className: cn(classes.arrowImg, classes.mirror)
2224
+ className: cn(classes$1.arrowImg, classes$1.mirror)
2225
2225
  }
2226
2226
  )
2227
2227
  }
@@ -2231,12 +2231,12 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2231
2231
  /* @__PURE__ */ jsxRuntime.jsx(
2232
2232
  "div",
2233
2233
  {
2234
- 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" }),
2235
2235
  style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
2236
2236
  children: /* @__PURE__ */ jsxRuntime.jsx(
2237
2237
  "button",
2238
2238
  {
2239
- className: classes.arrowInner,
2239
+ className: classes$1.arrowInner,
2240
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"})` },
2241
2241
  onClick: () => {
2242
2242
  var _a;
@@ -2249,7 +2249,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2249
2249
  url: controls.arrowsImgUrl,
2250
2250
  fill: controls.color,
2251
2251
  hoverFill: controls.hover,
2252
- className: classes.arrowImg
2252
+ className: classes$1.arrowImg
2253
2253
  }
2254
2254
  )
2255
2255
  }
@@ -2261,12 +2261,12 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2261
2261
  const positionStyles = getPositionStyles(area.closeIconAlign, area.closeIconOffset, isEditor);
2262
2262
  const scaleTransform = `scale(${area.closeIconScale})`;
2263
2263
  const combinedTransform = positionStyles.transform ? `${positionStyles.transform} ${scaleTransform}` : scaleTransform;
2264
- 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 }) });
2265
2265
  })(),
2266
2266
  caption2.isActive && /* @__PURE__ */ jsxRuntime.jsx(
2267
2267
  "div",
2268
2268
  {
2269
- className: classes.caption,
2269
+ className: classes$1.caption,
2270
2270
  style: {
2271
2271
  ...getPositionStyles(caption2.alignment, caption2.offset, isEditor),
2272
2272
  fontFamily: fontSettings.fontFamily,
@@ -2288,7 +2288,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2288
2288
  "div",
2289
2289
  {
2290
2290
  "data-styles": "caption",
2291
- className: classes.captionTextInner,
2291
+ className: classes$1.captionTextInner,
2292
2292
  style: { ["--link-hover-color"]: caption2.hover },
2293
2293
  children: /* @__PURE__ */ jsxRuntime.jsx(RichTextRenderer, { content: content[currentIndex].imageCaption })
2294
2294
  }
@@ -2298,11 +2298,11 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2298
2298
  thumbnail.isActive && /* @__PURE__ */ jsxRuntime.jsx(
2299
2299
  "div",
2300
2300
  {
2301
- className: cn(classes.thumbsContainer, {
2302
- [classes.thumbsContainerVertical]: slider.direction === "vert",
2303
- [classes.thumbsAlignStart]: thumbnail.align === "start",
2304
- [classes.thumbsAlignCenter]: thumbnail.align === "center",
2305
- [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"
2306
2306
  }),
2307
2307
  style: {
2308
2308
  position: isEditor ? "absolute" : "fixed",
@@ -2336,7 +2336,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2336
2336
  return /* @__PURE__ */ jsxRuntime.jsx(
2337
2337
  "button",
2338
2338
  {
2339
- className: classes.thumbItem,
2339
+ className: classes$1.thumbItem,
2340
2340
  style: {
2341
2341
  ...slider.direction === "horiz" && thumbnail.fit !== "fit" ? { height: scalingValue(activeSizeValue, isEditor) } : {},
2342
2342
  ...slider.direction === "vert" && thumbnail.fit !== "fit" ? { width: scalingValue(activeSizeValue, isEditor) } : {},
@@ -3428,9 +3428,930 @@ const LightboxComponent = {
3428
3428
  required: ["settings", "content", "styles"]
3429
3429
  }
3430
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
+ };
3431
4351
  const components = [
3432
4352
  ControlSliderComponent,
3433
4353
  ControlImageRevealSliderComponent,
3434
- LightboxComponent
4354
+ LightboxComponent,
4355
+ TestimonialsComponent
3435
4356
  ];
3436
4357
  exports.components = components;