@cntrl-site/components 0.1.14-alpha.3 → 0.1.14

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
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const jsxRuntime = require("react/jsx-runtime");
4
- const react = require("react");
4
+ 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");
@@ -13,7 +13,7 @@ const arrow$1 = "ControlSlider-module__arrow___05ghY";
13
13
  const arrowVertical$1 = "ControlSlider-module__arrowVertical___tBfVN";
14
14
  const nextArrow$1 = "ControlSlider-module__nextArrow___-30Yc";
15
15
  const arrowInner$1 = "ControlSlider-module__arrowInner___aEra3";
16
- const arrowIcon$1 = "ControlSlider-module__arrowIcon___S4ztF";
16
+ const arrowIcon = "ControlSlider-module__arrowIcon___S4ztF";
17
17
  const arrowImg$1 = "ControlSlider-module__arrowImg___2dwJW";
18
18
  const mirror$1 = "ControlSlider-module__mirror___brd6U";
19
19
  const pagination = "ControlSlider-module__pagination___bicLF";
@@ -57,7 +57,7 @@ const styles$3 = {
57
57
  arrowVertical: arrowVertical$1,
58
58
  nextArrow: nextArrow$1,
59
59
  arrowInner: arrowInner$1,
60
- arrowIcon: arrowIcon$1,
60
+ arrowIcon,
61
61
  arrowImg: arrowImg$1,
62
62
  mirror: mirror$1,
63
63
  pagination,
@@ -135,8 +135,8 @@ const styles$1 = {
135
135
  img
136
136
  };
137
137
  const SvgImage = ({ url, fill = "#000000", hoverFill = "#CCCCCC", className = "" }) => {
138
- const [supportsMask, setSupportsMask] = react.useState(true);
139
- react.useEffect(() => {
138
+ const [supportsMask, setSupportsMask] = React.useState(true);
139
+ React.useEffect(() => {
140
140
  if (typeof window !== "undefined" && window.CSS) {
141
141
  const supported = CSS.supports("mask-image", 'url("")') || CSS.supports("-webkit-mask-image", 'url("")');
142
142
  setSupportsMask(supported);
@@ -170,21 +170,21 @@ const alignmentClassName = {
170
170
  "bottom-right": styles$3.bottomRightAlignment
171
171
  };
172
172
  function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
173
- const [sliderRef, setSliderRef] = react.useState(null);
174
- const { widthSettings, fontSettings, letterSpacing, textAlign, wordSpacing, fontSizeLineHeight, textAppearance, color } = sliderStyles.caption;
175
- const [sliderDimensions, setSliderDimensions] = react.useState(void 0);
176
- const [wrapperRef, setWrapperRef] = react.useState(null);
177
- const [currentSlideIndex, setCurrentSlideIndex] = react.useState(0);
178
- const [key, setKey] = react.useState(0);
179
- const { direction, transition, controls, pagination: pagination2, caption: caption2, triggers } = settings;
180
- const prevSliderTypeRef = react.useRef(transition.type);
173
+ const [sliderRef, setSliderRef] = React.useState(null);
174
+ const { widthSettings, fontSettings, letterSpacing, textAlign, wordSpacing, fontSizeLineHeight, textAppearance, color } = sliderStyles.imageCaption;
175
+ const [sliderDimensions, setSliderDimensions] = React.useState(void 0);
176
+ const [wrapperRef, setWrapperRef] = React.useState(null);
177
+ const [currentSlideIndex, setCurrentSlideIndex] = React.useState(0);
178
+ const [key, setKey] = React.useState(0);
179
+ const { direction, transition, controls, pagination: pagination2, imageCaption, triggers } = settings;
180
+ const prevSliderTypeRef = React.useRef(transition.type);
181
181
  const { x: controlsOffsetX, y: controlsOffsetY } = settings.controls.offset;
182
182
  const handleArrowClick = (dir) => {
183
183
  if (sliderRef) {
184
184
  sliderRef.go(dir);
185
185
  }
186
186
  };
187
- react.useEffect(() => {
187
+ React.useEffect(() => {
188
188
  if (!wrapperRef) return;
189
189
  const observer = new ResizeObserver((entries) => {
190
190
  if (!sliderRef) return;
@@ -197,7 +197,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
197
197
  observer.observe(wrapperRef);
198
198
  return () => observer.unobserve(wrapperRef);
199
199
  }, [wrapperRef]);
200
- react.useEffect(() => {
200
+ React.useEffect(() => {
201
201
  if (!sliderRef || prevSliderTypeRef.current === transition.type) return;
202
202
  setKey((prev) => prev + 1);
203
203
  prevSliderTypeRef.current = transition.type;
@@ -212,7 +212,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
212
212
  backgroundColor: transition.backgroundColor && transition.type === "fade in" ? transition.backgroundColor : "transparent"
213
213
  },
214
214
  children: [
215
- settings.caption.isActive && /* @__PURE__ */ jsxRuntime.jsx(
215
+ settings.imageCaption.isActive && /* @__PURE__ */ jsxRuntime.jsx(
216
216
  "div",
217
217
  {
218
218
  className: cn(styles$3.captionBlock),
@@ -223,7 +223,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
223
223
  children: content.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
224
224
  "div",
225
225
  {
226
- className: cn(styles$3.captionText, alignmentClassName[caption2.alignment], {
226
+ className: cn(styles$3.captionText, alignmentClassName[imageCaption.alignment], {
227
227
  [styles$3.withPointerEvents]: index === currentSlideIndex && isEditor,
228
228
  [styles$3.active]: index === currentSlideIndex
229
229
  }),
@@ -246,13 +246,13 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
246
246
  children: /* @__PURE__ */ jsxRuntime.jsx(
247
247
  "div",
248
248
  {
249
- "data-styles": "caption",
249
+ "data-styles": "imageCaption",
250
250
  className: styles$3.captionTextInner,
251
251
  style: {
252
- "--link-hover-color": caption2.hover,
252
+ "--link-hover-color": imageCaption.hover,
253
253
  position: "relative",
254
- top: scalingValue(caption2.offset.y, isEditor),
255
- left: scalingValue(caption2.offset.x, isEditor)
254
+ top: scalingValue(imageCaption.offset.y, isEditor),
255
+ left: scalingValue(imageCaption.offset.x, isEditor)
256
256
  },
257
257
  children: /* @__PURE__ */ jsxRuntime.jsx(RichTextRenderer, { content: item.imageCaption })
258
258
  }
@@ -345,7 +345,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
345
345
  className: cn(styles$3.arrowImg, styles$3.mirror)
346
346
  }
347
347
  ),
348
- !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon$1, { color: controls.color, className: cn(styles$3.arrowIcon, styles$3.arrowImg, styles$3.mirror) })
348
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon, { color: controls.color, className: cn(styles$3.arrowIcon, styles$3.arrowImg, styles$3.mirror) })
349
349
  ]
350
350
  }
351
351
  )
@@ -380,7 +380,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
380
380
  className: styles$3.arrowImg
381
381
  }
382
382
  ),
383
- !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon$1, { color: controls.color, className: cn(styles$3.arrowIcon, styles$3.arrowImg) })
383
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon, { color: controls.color, className: cn(styles$3.arrowIcon, styles$3.arrowImg) })
384
384
  ]
385
385
  }
386
386
  )
@@ -452,7 +452,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
452
452
  }
453
453
  ) });
454
454
  }
455
- function ArrowIcon$1({ color, className }) {
455
+ function ArrowIcon({ 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 = {
@@ -705,7 +705,7 @@ const ControlSliderComponent = {
705
705
  }
706
706
  }
707
707
  },
708
- caption: {
708
+ imageCaption: {
709
709
  title: "Caption",
710
710
  icon: "text-icon",
711
711
  tooltip: "Caption",
@@ -799,7 +799,7 @@ const ControlSliderComponent = {
799
799
  hover: "#cccccc"
800
800
  },
801
801
  direction: "horiz",
802
- caption: {
802
+ imageCaption: {
803
803
  offset: {
804
804
  x: 0,
805
805
  y: 0
@@ -922,7 +922,7 @@ const ControlSliderComponent = {
922
922
  layoutBased: true,
923
923
  type: "object",
924
924
  properties: {
925
- caption: {
925
+ imageCaption: {
926
926
  dataName: "caption",
927
927
  type: "object",
928
928
  properties: {
@@ -1020,7 +1020,7 @@ const ControlSliderComponent = {
1020
1020
  }
1021
1021
  },
1022
1022
  default: {
1023
- caption: {
1023
+ imageCaption: {
1024
1024
  widthSettings: {
1025
1025
  width: 0.13,
1026
1026
  sizing: "auto"
@@ -1102,19 +1102,19 @@ async function calculateImageWidthHeight(imgUrl, sizeType, customWidth, randomRa
1102
1102
  return { width, height, finalWidth: `${width}px` };
1103
1103
  }
1104
1104
  function ImageRevealSlider({ settings, content, isEditor }) {
1105
- const [divRef, setDivRef] = react.useState(null);
1106
- const [placedImages, setPlacedImages] = react.useState([]);
1107
- const [counter, setCounter] = react.useState(0);
1108
- const imageIdCounter = react.useRef(0);
1109
- const [cursorCenter, setCursorCenter] = react.useState({ x: 0, y: 0 });
1110
- const [cursorScale, setCursorScale] = react.useState(1);
1111
- const [customCursorImg, setCustomCursorImg] = react.useState("none");
1112
- const lastMousePos = react.useRef({ x: 0, y: 0 });
1113
- const [isInside, setIsInside] = react.useState(false);
1105
+ const [divRef, setDivRef] = React.useState(null);
1106
+ const [placedImages, setPlacedImages] = React.useState([]);
1107
+ const [counter, setCounter] = React.useState(0);
1108
+ const imageIdCounter = React.useRef(0);
1109
+ const [cursorCenter, setCursorCenter] = React.useState({ x: 0, y: 0 });
1110
+ const [cursorScale, setCursorScale] = React.useState(1);
1111
+ const [customCursorImg, setCustomCursorImg] = React.useState("none");
1112
+ const lastMousePos = React.useRef({ x: 0, y: 0 });
1113
+ const [isInside, setIsInside] = React.useState(false);
1114
1114
  const { sizeType, imageWidth: customWidth, randomRangeImageWidth: randomRange } = settings.imageSize;
1115
1115
  const { revealPosition, visible } = settings.position;
1116
1116
  const { cursorType, target, defaultCursorScale, defaultCursor, hoverCursorScale, hoverCursor } = settings.cursor;
1117
- react.useEffect(() => {
1117
+ React.useEffect(() => {
1118
1118
  if (!divRef) return;
1119
1119
  const updateCursorPosition = (clientX, clientY) => {
1120
1120
  const rect = divRef.getBoundingClientRect();
@@ -1165,7 +1165,7 @@ function ImageRevealSlider({ settings, content, isEditor }) {
1165
1165
  defaultCursorScale,
1166
1166
  placedImages
1167
1167
  ]);
1168
- react.useEffect(() => {
1168
+ React.useEffect(() => {
1169
1169
  if (!isInside) {
1170
1170
  setCustomCursorImg("none");
1171
1171
  setCursorScale(0);
@@ -1198,7 +1198,7 @@ function ImageRevealSlider({ settings, content, isEditor }) {
1198
1198
  width: finalWidth
1199
1199
  };
1200
1200
  };
1201
- react.useEffect(() => {
1201
+ React.useEffect(() => {
1202
1202
  if (!divRef || content.length === 0) return;
1203
1203
  const rect = divRef.getBoundingClientRect();
1204
1204
  const containerWidth = rect.width;
@@ -1213,7 +1213,7 @@ function ImageRevealSlider({ settings, content, isEditor }) {
1213
1213
  };
1214
1214
  placeImages();
1215
1215
  }, [sizeType, customWidth, randomRange, revealPosition, divRef]);
1216
- react.useEffect(() => {
1216
+ React.useEffect(() => {
1217
1217
  if (visible === "last One") {
1218
1218
  setPlacedImages((prev) => prev.length > 0 ? [prev[prev.length - 1]] : []);
1219
1219
  }
@@ -1617,7 +1617,6 @@ const ControlImageRevealSliderComponent = {
1617
1617
  }
1618
1618
  }
1619
1619
  };
1620
- const hidden = "LightBox-module__hidden___9s-9x";
1621
1620
  const heroImage = "LightBox-module__heroImage___sTxNF";
1622
1621
  const background = "LightBox-module__background___rm9ml";
1623
1622
  const editor = "LightBox-module__editor___4ACaY";
@@ -1633,10 +1632,8 @@ const arrow = "LightBox-module__arrow___iz38X";
1633
1632
  const arrowVertical = "LightBox-module__arrowVertical___Zfz81";
1634
1633
  const nextArrow = "LightBox-module__nextArrow___zkAQN";
1635
1634
  const arrowInner = "LightBox-module__arrowInner___p48sW";
1636
- const arrowIcon = "LightBox-module__arrowIcon___3VaFf";
1637
1635
  const arrowImg = "LightBox-module__arrowImg___pNV88";
1638
1636
  const mirror = "LightBox-module__mirror___pjeXc";
1639
- const thumbsWrapper = "LightBox-module__thumbsWrapper___GB-nU";
1640
1637
  const thumbsContainerVertical = "LightBox-module__thumbsContainerVertical___wttk5";
1641
1638
  const thumbsContainer = "LightBox-module__thumbsContainer___osSma";
1642
1639
  const thumbsAlignStart = "LightBox-module__thumbsAlignStart___MO6tY";
@@ -1656,7 +1653,6 @@ const slideOutTop = "LightBox-module__slideOutTop___Vgg0z";
1656
1653
  const slideOutBottom = "LightBox-module__slideOutBottom___nJ0Ef";
1657
1654
  const scaleSlide = "LightBox-module__scaleSlide___vZriG";
1658
1655
  const classes = {
1659
- hidden,
1660
1656
  heroImage,
1661
1657
  background,
1662
1658
  editor,
@@ -1672,10 +1668,8 @@ const classes = {
1672
1668
  arrowVertical,
1673
1669
  nextArrow,
1674
1670
  arrowInner,
1675
- arrowIcon,
1676
1671
  arrowImg,
1677
1672
  mirror,
1678
- thumbsWrapper,
1679
1673
  thumbsContainerVertical,
1680
1674
  thumbsContainer,
1681
1675
  thumbsAlignStart,
@@ -1731,13 +1725,8 @@ const getPositionStyles = (position, offset, isEditor) => {
1731
1725
  };
1732
1726
  function getDisplayedImageRect(img2) {
1733
1727
  const container = img2.getBoundingClientRect();
1734
- const style = window.getComputedStyle(img2);
1735
- const paddingTop = parseFloat(style.paddingTop) || 0;
1736
- const paddingRight = parseFloat(style.paddingRight) || 0;
1737
- const paddingBottom = parseFloat(style.paddingBottom) || 0;
1738
- const paddingLeft = parseFloat(style.paddingLeft) || 0;
1739
- const containerW = Math.max(0, container.width - paddingLeft - paddingRight);
1740
- const containerH = Math.max(0, container.height - paddingTop - paddingBottom);
1728
+ const containerW = container.width;
1729
+ const containerH = container.height;
1741
1730
  const imgW = img2.naturalWidth;
1742
1731
  const imgH = img2.naturalHeight;
1743
1732
  const containerRatio = containerW / containerH;
@@ -1750,10 +1739,8 @@ function getDisplayedImageRect(img2) {
1750
1739
  renderedH = containerH;
1751
1740
  renderedW = containerH * imgRatio;
1752
1741
  }
1753
- const contentLeft = container.left + paddingLeft;
1754
- const contentTop = container.top + paddingTop;
1755
- const offsetX = (containerW - renderedW) / 2 + contentLeft;
1756
- const offsetY = (containerH - renderedH) / 2 + contentTop;
1742
+ const offsetX = (containerW - renderedW) / 2 + container.left;
1743
+ const offsetY = (containerH - renderedH) / 2 + container.top;
1757
1744
  return {
1758
1745
  x: offsetX,
1759
1746
  y: offsetY,
@@ -1856,9 +1843,9 @@ function getAnimationClasses(type, direction) {
1856
1843
  return { appearClass, backdropAppearClass, backdropDisappearClass, disappearClass };
1857
1844
  }
1858
1845
  const LightboxGallery = ({ settings, content, styles: styles2, portalId, activeEvent, isEditor }) => {
1859
- const [open, setOpen] = react.useState(false);
1846
+ const [open, setOpen] = React.useState(false);
1860
1847
  const { url } = settings.thumbnailBlock.cover;
1861
- react.useEffect(() => {
1848
+ React.useEffect(() => {
1862
1849
  if (activeEvent === "close") {
1863
1850
  setOpen(false);
1864
1851
  }
@@ -1891,22 +1878,22 @@ const LightboxGallery = ({ settings, content, styles: styles2, portalId, activeE
1891
1878
  ] });
1892
1879
  };
1893
1880
  const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId, isEditor }) => {
1894
- const [currentIndex, setCurrentIndex] = react.useState(0);
1895
- const [splideKey, setSplideKey] = react.useState(0);
1896
- const [isClosing, setIsClosing] = react.useState(false);
1897
- const [animationFinished, setAnimationFinished] = react.useState(false);
1898
- const [thumbnailDimensions, setThumbnailDimensions] = react.useState({});
1899
- const lightboxRef = react.useRef(null);
1900
- const prevSliderTypeRef = react.useRef(null);
1901
- const imageRef = react.useRef(null);
1902
- const isClosingRef = react.useRef(false);
1903
- const animationTargetRef = react.useRef(null);
1904
- const animationEndHandlerRef = react.useRef(null);
1905
- const appearAnimationEndHandlerRef = react.useRef(null);
1906
- const { appear, triggers, slider, thumbnail, controls, area, caption: caption2, layout } = settings.lightboxBlock;
1907
- const { widthSettings, fontSettings, letterSpacing, textAlign, wordSpacing, fontSizeLineHeight, textAppearance, color } = lightboxStyles.caption;
1881
+ const [currentIndex, setCurrentIndex] = React.useState(0);
1882
+ const [splideKey, setSplideKey] = React.useState(0);
1883
+ const [isClosing, setIsClosing] = React.useState(false);
1884
+ const [animationFinished, setAnimationFinished] = React.useState(false);
1885
+ const [thumbnailDimensions, setThumbnailDimensions] = React.useState({});
1886
+ const lightboxRef = React.useRef(null);
1887
+ const prevSliderTypeRef = React.useRef(null);
1888
+ const imageRef = React.useRef(null);
1889
+ const isClosingRef = React.useRef(false);
1890
+ const animationTargetRef = React.useRef(null);
1891
+ const animationEndHandlerRef = React.useRef(null);
1892
+ const appearAnimationEndHandlerRef = React.useRef(null);
1893
+ const { appear, triggers, slider, thumbnail, controls, area, imageCaption, layout } = settings.lightboxBlock;
1894
+ const { widthSettings, fontSettings, letterSpacing, textAlign, wordSpacing, fontSizeLineHeight, textAppearance, color } = lightboxStyles.imageCaption;
1908
1895
  const { appearClass, backdropAppearClass, backdropDisappearClass, disappearClass } = getAnimationClasses(appear.type, appear.direction);
1909
- react.useEffect(() => {
1896
+ React.useEffect(() => {
1910
1897
  const handleLayoutChange = () => {
1911
1898
  setTimeout(() => {
1912
1899
  var _a, _b;
@@ -1923,7 +1910,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
1923
1910
  window.removeEventListener("ArticleEditor.ComponentContent:change", handleComponentContentChange);
1924
1911
  };
1925
1912
  }, []);
1926
- const handleClose = react.useCallback(() => {
1913
+ const handleClose = React.useCallback(() => {
1927
1914
  const isMobile = window.matchMedia("(max-width: 768px)").matches;
1928
1915
  const colorAlpha = getColorAlpha(area.color);
1929
1916
  if (isMobile && !isEditor && colorAlpha > 0.9) {
@@ -1970,19 +1957,6 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
1970
1957
  (_b = lightboxRef.current) == null ? void 0 : _b.go(dir);
1971
1958
  }
1972
1959
  };
1973
- const isClickInImagePadding = (img2, clientX, clientY) => {
1974
- const rect = img2.getBoundingClientRect();
1975
- const style = window.getComputedStyle(img2);
1976
- const paddingTop = parseFloat(style.paddingTop) || 0;
1977
- const paddingRight = parseFloat(style.paddingRight) || 0;
1978
- const paddingBottom = parseFloat(style.paddingBottom) || 0;
1979
- const paddingLeft = parseFloat(style.paddingLeft) || 0;
1980
- const contentLeft = rect.left + paddingLeft;
1981
- const contentRight = rect.right - paddingRight;
1982
- const contentTop = rect.top + paddingTop;
1983
- const contentBottom = rect.bottom - paddingBottom;
1984
- return clientX < contentLeft || clientX > contentRight || clientY < contentTop || clientY > contentBottom;
1985
- };
1986
1960
  const handleImageWrapperClick = (e) => {
1987
1961
  const currentImage = content[currentIndex];
1988
1962
  const isCover = (currentImage == null ? void 0 : currentImage.image.objectFit) === "cover";
@@ -2000,16 +1974,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2000
1974
  let inside;
2001
1975
  if (isCover && imageRef.current) {
2002
1976
  const imgRect = imageRef.current.getBoundingClientRect();
2003
- const style = window.getComputedStyle(imageRef.current);
2004
- const paddingTop = parseFloat(style.paddingTop) || 0;
2005
- const paddingRight = parseFloat(style.paddingRight) || 0;
2006
- const paddingBottom = parseFloat(style.paddingBottom) || 0;
2007
- const paddingLeft = parseFloat(style.paddingLeft) || 0;
2008
- const contentLeft = imgRect.left + paddingLeft;
2009
- const contentRight = imgRect.right - paddingRight;
2010
- const contentTop = imgRect.top + paddingTop;
2011
- const contentBottom = imgRect.bottom - paddingBottom;
2012
- inside = clientX >= contentLeft && clientX <= contentRight && clientY >= contentTop && clientY <= contentBottom;
1977
+ inside = clientX >= imgRect.left && clientX <= imgRect.right && clientY >= imgRect.top && clientY <= imgRect.bottom;
2013
1978
  } else {
2014
1979
  const rect = imageRef.current ? getDisplayedImageRect(imageRef.current) : null;
2015
1980
  if (!rect) {
@@ -2026,13 +1991,9 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2026
1991
  };
2027
1992
  const onImageClick = (e) => {
2028
1993
  e.stopPropagation();
2029
- if (isClickInImagePadding(e.currentTarget, e.clientX, e.clientY)) {
2030
- handleClose();
2031
- return;
2032
- }
2033
1994
  handleTriggerClick(e.currentTarget, e.clientX, e.clientY);
2034
1995
  };
2035
- react.useEffect(() => {
1996
+ React.useEffect(() => {
2036
1997
  if (!isOpen) return;
2037
1998
  const onKeyDown = (event) => {
2038
1999
  var _a, _b;
@@ -2055,10 +2016,9 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2055
2016
  window.removeEventListener("keydown", onKeyDown);
2056
2017
  };
2057
2018
  }, [isOpen, handleClose, content.length]);
2058
- react.useEffect(() => {
2019
+ React.useEffect(() => {
2059
2020
  if (isOpen) {
2060
2021
  setCurrentIndex(0);
2061
- setSplideKey((prev) => prev + 1);
2062
2022
  isClosingRef.current = false;
2063
2023
  setIsClosing(false);
2064
2024
  setAnimationFinished(false);
@@ -2072,13 +2032,13 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2072
2032
  setAnimationFinished(false);
2073
2033
  };
2074
2034
  }, [isOpen]);
2075
- react.useEffect(() => {
2035
+ React.useEffect(() => {
2076
2036
  if (prevSliderTypeRef.current !== null && prevSliderTypeRef.current !== slider.type) {
2077
2037
  setSplideKey((prev) => prev + 1);
2078
2038
  }
2079
2039
  prevSliderTypeRef.current = slider.type;
2080
2040
  }, [slider.type]);
2081
- react.useEffect(() => {
2041
+ React.useEffect(() => {
2082
2042
  if (!isOpen) return;
2083
2043
  const originalOverflow = document.body.style.overflow;
2084
2044
  const isMobile = window.matchMedia("(max-width: 768px)").matches;
@@ -2113,7 +2073,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2113
2073
  setAnimationFinished(false);
2114
2074
  };
2115
2075
  }, [isOpen, isEditor, area.color]);
2116
- react.useEffect(() => {
2076
+ React.useEffect(() => {
2117
2077
  if (!isOpen) return;
2118
2078
  const handleTouchEnd = (e) => {
2119
2079
  if (isClosingRef.current) {
@@ -2162,14 +2122,14 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2162
2122
  animationTimingFunction: "ease",
2163
2123
  animationFillMode: "both"
2164
2124
  };
2165
- if (!document.getElementById(portalId)) return null;
2125
+ if (!isOpen && !isClosing) return null;
2166
2126
  return reactDom.createPortal(
2167
2127
  /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2168
2128
  /* @__PURE__ */ jsxRuntime.jsx(
2169
2129
  "div",
2170
2130
  {
2171
2131
  ref: !isEditor ? animationTargetRef : null,
2172
- className: cn(classes.background, isClosing ? backdropDisappearClass : backdropAppearClass, { [classes.editor]: isEditor }, { [classes.hidden]: !isOpen }),
2132
+ className: cn(classes.background, isClosing ? backdropDisappearClass : backdropAppearClass, { [classes.editor]: isEditor }),
2173
2133
  style: {
2174
2134
  ...backdropStyles,
2175
2135
  ...animationFinished && !isEditor && !isClosing ? { position: "absolute" } : {}
@@ -2180,7 +2140,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2180
2140
  "div",
2181
2141
  {
2182
2142
  ref: isEditor ? animationTargetRef : null,
2183
- className: cn(classes.contentStyle, !isClosing ? appearClass : disappearClass, { [classes.editor]: isEditor }, { [classes.hidden]: !isOpen }),
2143
+ className: cn(classes.contentStyle, !isClosing ? appearClass : disappearClass, { [classes.editor]: isEditor }),
2184
2144
  style: {
2185
2145
  animationDuration: `${parseInt(appear.duration)}ms`,
2186
2146
  animationTimingFunction: "ease",
@@ -2204,8 +2164,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2204
2164
  height: "100%",
2205
2165
  type: slider.type === "fade" || slider.type === "scale" ? "fade" : "loop",
2206
2166
  padding: 0,
2207
- rewind: (slider.type === "scale" || slider.type === "fade") && triggers.repeat === "loop",
2208
- start: 0
2167
+ rewind: (slider.type === "scale" || slider.type === "fade") && triggers.repeat === "loop"
2209
2168
  },
2210
2169
  style: { "--splide-speed": slider.duration },
2211
2170
  children: content.map((item, index) => {
@@ -2240,13 +2199,13 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2240
2199
  },
2241
2200
  splideKey
2242
2201
  ),
2243
- controls.isActive && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2202
+ controls.isActive && controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
2244
2203
  /* @__PURE__ */ jsxRuntime.jsx(
2245
2204
  "div",
2246
2205
  {
2247
2206
  className: cn(classes.arrow, { [classes.arrowVertical]: slider.direction === "vert" }),
2248
2207
  style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
2249
- children: /* @__PURE__ */ jsxRuntime.jsxs(
2208
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2250
2209
  "button",
2251
2210
  {
2252
2211
  className: classes.arrowInner,
@@ -2256,18 +2215,15 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2256
2215
  return (_a = lightboxRef.current) == null ? void 0 : _a.go("-1");
2257
2216
  },
2258
2217
  "aria-label": "Previous",
2259
- children: [
2260
- controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
2261
- SvgImage,
2262
- {
2263
- url: controls.arrowsImgUrl,
2264
- fill: controls.color,
2265
- hoverFill: controls.hover,
2266
- className: cn(classes.arrowImg, classes.mirror)
2267
- }
2268
- ),
2269
- !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon, { color: controls.color, className: cn(classes.arrowIcon, classes.arrowImg, classes.mirror) })
2270
- ]
2218
+ children: controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
2219
+ SvgImage,
2220
+ {
2221
+ url: controls.arrowsImgUrl,
2222
+ fill: controls.color,
2223
+ hoverFill: controls.hover,
2224
+ className: cn(classes.arrowImg, classes.mirror)
2225
+ }
2226
+ )
2271
2227
  }
2272
2228
  )
2273
2229
  }
@@ -2277,7 +2233,7 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2277
2233
  {
2278
2234
  className: cn(classes.arrow, classes.nextArrow, { [classes.arrowVertical]: slider.direction === "vert" }),
2279
2235
  style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
2280
- children: /* @__PURE__ */ jsxRuntime.jsxs(
2236
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2281
2237
  "button",
2282
2238
  {
2283
2239
  className: classes.arrowInner,
@@ -2287,18 +2243,15 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2287
2243
  return (_a = lightboxRef.current) == null ? void 0 : _a.go("+1");
2288
2244
  },
2289
2245
  "aria-label": "Next",
2290
- children: [
2291
- controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
2292
- SvgImage,
2293
- {
2294
- url: controls.arrowsImgUrl,
2295
- fill: controls.color,
2296
- hoverFill: controls.hover,
2297
- className: classes.arrowImg
2298
- }
2299
- ),
2300
- !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon, { color: controls.color, className: cn(classes.arrowIcon, classes.arrowImg) })
2301
- ]
2246
+ children: controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
2247
+ SvgImage,
2248
+ {
2249
+ url: controls.arrowsImgUrl,
2250
+ fill: controls.color,
2251
+ hoverFill: controls.hover,
2252
+ className: classes.arrowImg
2253
+ }
2254
+ )
2302
2255
  }
2303
2256
  )
2304
2257
  }
@@ -2308,14 +2261,14 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2308
2261
  const positionStyles = getPositionStyles(area.closeIconAlign, area.closeIconOffset, isEditor);
2309
2262
  const scaleTransform = `scale(${area.closeIconScale})`;
2310
2263
  const combinedTransform = positionStyles.transform ? `${positionStyles.transform} ${scaleTransform}` : scaleTransform;
2311
- return /* @__PURE__ */ jsxRuntime.jsx("button", { className: classes.closeButton, style: { ...positionStyles, transform: combinedTransform }, onClick: handleClose, "aria-label": "Close lightbox", children: /* @__PURE__ */ jsxRuntime.jsx(SvgImage, { url: area.closeIconUrl, fill: area.closeIconColor, hoverFill: area.closeIconHover }) });
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 }) });
2312
2265
  })(),
2313
- caption2.isActive && /* @__PURE__ */ jsxRuntime.jsx(
2266
+ imageCaption.isActive && /* @__PURE__ */ jsxRuntime.jsx(
2314
2267
  "div",
2315
2268
  {
2316
2269
  className: classes.caption,
2317
2270
  style: {
2318
- ...getPositionStyles(caption2.alignment, caption2.offset, isEditor),
2271
+ ...getPositionStyles(imageCaption.alignment, imageCaption.offset, isEditor),
2319
2272
  fontFamily: fontSettings.fontFamily,
2320
2273
  fontWeight: fontSettings.fontWeight,
2321
2274
  fontStyle: fontSettings.fontStyle,
@@ -2334,147 +2287,104 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2334
2287
  children: /* @__PURE__ */ jsxRuntime.jsx(
2335
2288
  "div",
2336
2289
  {
2337
- "data-styles": "caption",
2290
+ "data-styles": "imageCaption",
2338
2291
  className: classes.captionTextInner,
2339
- style: { ["--link-hover-color"]: caption2.hover },
2292
+ style: { ["--link-hover-color"]: imageCaption.hover },
2340
2293
  children: /* @__PURE__ */ jsxRuntime.jsx(RichTextRenderer, { content: content[currentIndex].imageCaption })
2341
2294
  }
2342
2295
  )
2343
2296
  }
2344
2297
  ),
2345
- thumbnail.isActive && (() => {
2346
- const [vertical, horizontal] = thumbnail.position.split("-");
2347
- const effectivePosition = slider.direction === "horiz" ? `${vertical}-left` : thumbnail.position;
2348
- const thumbsPositionStyles = getPositionStyles(effectivePosition, thumbnail.offset, isEditor);
2349
- const getJustifyContent = () => {
2350
- if (slider.direction === "horiz") {
2351
- if (horizontal === "left") return "flex-start";
2352
- if (horizontal === "center") return "center";
2353
- if (horizontal === "right") return "flex-end";
2354
- } else {
2355
- if (vertical === "top") return "flex-start";
2356
- if (vertical === "middle") return "center";
2357
- if (vertical === "bottom") return "flex-end";
2358
- }
2359
- return "flex-start";
2360
- };
2361
- return /* @__PURE__ */ jsxRuntime.jsx(
2362
- "div",
2363
- {
2364
- className: classes.thumbsWrapper,
2365
- style: {
2366
- position: isEditor ? "absolute" : "fixed",
2367
- ...thumbsPositionStyles,
2368
- ...slider.direction === "horiz" ? {
2369
- maxWidth: "100vw",
2370
- width: "100vw",
2371
- overflowX: "auto",
2372
- overflowY: "hidden"
2373
- } : {
2374
- maxHeight: "100vh",
2375
- overflowY: "auto",
2376
- overflowX: "hidden"
2298
+ thumbnail.isActive && /* @__PURE__ */ jsxRuntime.jsx(
2299
+ "div",
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"
2306
+ }),
2307
+ style: {
2308
+ position: isEditor ? "absolute" : "fixed",
2309
+ gap: scalingValue(thumbnail.grid.gap, isEditor),
2310
+ ...getPositionStyles(thumbnail.position, thumbnail.offset, isEditor)
2311
+ },
2312
+ children: content.map((item, index) => {
2313
+ const isActive = index === currentIndex;
2314
+ const thumbDims = thumbnailDimensions[index];
2315
+ const baseSizeValue = thumbnail.grid.size;
2316
+ const activeSizeValue = baseSizeValue * (isActive ? thumbnail.activeState.scale : 1);
2317
+ const getFitDimensions = () => {
2318
+ if (thumbnail.fit !== "fit" || !thumbDims) return {};
2319
+ const aspectRatio = thumbDims.width / thumbDims.height;
2320
+ if (slider.direction === "horiz") {
2321
+ const heightValue = activeSizeValue;
2322
+ const widthValue = heightValue * aspectRatio;
2323
+ return {
2324
+ width: scalingValue(widthValue, isEditor),
2325
+ height: scalingValue(heightValue, isEditor)
2326
+ };
2327
+ } else {
2328
+ const widthValue = activeSizeValue;
2329
+ const heightValue = widthValue / aspectRatio;
2330
+ return {
2331
+ width: scalingValue(widthValue, isEditor),
2332
+ height: scalingValue(heightValue, isEditor)
2333
+ };
2377
2334
  }
2378
- },
2379
- children: /* @__PURE__ */ jsxRuntime.jsx(
2380
- "div",
2335
+ };
2336
+ return /* @__PURE__ */ jsxRuntime.jsx(
2337
+ "button",
2381
2338
  {
2382
- className: cn(classes.thumbsContainer, {
2383
- [classes.thumbsContainerVertical]: slider.direction === "vert",
2384
- [classes.thumbsAlignStart]: thumbnail.align === "start",
2385
- [classes.thumbsAlignCenter]: thumbnail.align === "center",
2386
- [classes.thumbsAlignEnd]: thumbnail.align === "end"
2387
- }),
2339
+ className: classes.thumbItem,
2388
2340
  style: {
2389
- gap: scalingValue(thumbnail.grid.gap, isEditor),
2390
- justifyContent: getJustifyContent()
2341
+ ...slider.direction === "horiz" && thumbnail.fit !== "fit" ? { height: scalingValue(activeSizeValue, isEditor) } : {},
2342
+ ...slider.direction === "vert" && thumbnail.fit !== "fit" ? { width: scalingValue(activeSizeValue, isEditor) } : {},
2343
+ ...thumbnail.fit === "cover" ? { width: scalingValue(activeSizeValue, isEditor), height: scalingValue(activeSizeValue, isEditor) } : {},
2344
+ ...thumbnail.fit === "fit" ? getFitDimensions() : {},
2345
+ transition: isActive ? "all 0.2s ease" : "none",
2346
+ opacity: isActive ? thumbnail.activeState.opacity / 100 : thumbnail.opacity / 100,
2347
+ ["--thumb-hover"]: thumbnail.activeState.opacity / 100
2348
+ },
2349
+ onClick: (e) => {
2350
+ var _a;
2351
+ e.stopPropagation();
2352
+ setCurrentIndex(index);
2353
+ (_a = lightboxRef.current) == null ? void 0 : _a.go(index);
2354
+ },
2355
+ onMouseEnter: () => {
2356
+ var _a;
2357
+ if (thumbnail.triggers === "hov") {
2358
+ (_a = lightboxRef.current) == null ? void 0 : _a.go(index);
2359
+ }
2391
2360
  },
2392
- children: content.map((item, index) => {
2393
- const isActive = index === currentIndex;
2394
- const thumbDims = thumbnailDimensions[index];
2395
- const baseSizeValue = thumbnail.grid.size;
2396
- const activeSizeValue = baseSizeValue * (isActive ? thumbnail.activeState.scale : 1);
2397
- const getFitDimensions = () => {
2398
- if (thumbnail.fit !== "fit") return {};
2399
- if (!thumbDims) {
2400
- if (slider.direction === "horiz") {
2401
- return { height: scalingValue(activeSizeValue, isEditor) };
2402
- } else {
2403
- return { width: scalingValue(activeSizeValue, isEditor) };
2361
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2362
+ "img",
2363
+ {
2364
+ src: item.image.url,
2365
+ alt: item.image.name ?? "",
2366
+ onLoad: (e) => {
2367
+ const img2 = e.currentTarget;
2368
+ if (img2.naturalWidth && img2.naturalHeight) {
2369
+ setThumbnailDimensions((prev) => ({
2370
+ ...prev,
2371
+ [index]: { width: img2.naturalWidth, height: img2.naturalHeight }
2372
+ }));
2404
2373
  }
2405
- }
2406
- const aspectRatio = thumbDims.width / thumbDims.height;
2407
- if (slider.direction === "horiz") {
2408
- const heightValue = activeSizeValue;
2409
- const widthValue = heightValue * aspectRatio;
2410
- return {
2411
- width: scalingValue(widthValue, isEditor),
2412
- height: scalingValue(heightValue, isEditor)
2413
- };
2414
- } else {
2415
- const widthValue = activeSizeValue;
2416
- const heightValue = widthValue / aspectRatio;
2417
- return {
2418
- width: scalingValue(widthValue, isEditor),
2419
- height: scalingValue(heightValue, isEditor)
2420
- };
2421
- }
2422
- };
2423
- return /* @__PURE__ */ jsxRuntime.jsx(
2424
- "button",
2425
- {
2426
- className: classes.thumbItem,
2427
- style: {
2428
- ...slider.direction === "horiz" && thumbnail.fit !== "fit" ? { height: scalingValue(activeSizeValue, isEditor) } : {},
2429
- ...slider.direction === "vert" && thumbnail.fit !== "fit" ? { width: scalingValue(activeSizeValue, isEditor) } : {},
2430
- ...thumbnail.fit === "cover" ? { width: scalingValue(activeSizeValue, isEditor), height: scalingValue(activeSizeValue, isEditor) } : {},
2431
- ...getFitDimensions(),
2432
- transition: isActive ? "all 0.25s ease-out" : "none",
2433
- opacity: isActive ? thumbnail.activeState.opacity / 100 : thumbnail.opacity / 100,
2434
- ["--thumb-hover"]: thumbnail.activeState.opacity / 100
2435
- },
2436
- onClick: (e) => {
2437
- var _a;
2438
- e.stopPropagation();
2439
- setCurrentIndex(index);
2440
- (_a = lightboxRef.current) == null ? void 0 : _a.go(index);
2441
- },
2442
- onMouseEnter: () => {
2443
- var _a;
2444
- if (thumbnail.triggers === "hov") {
2445
- (_a = lightboxRef.current) == null ? void 0 : _a.go(index);
2446
- }
2447
- },
2448
- children: /* @__PURE__ */ jsxRuntime.jsx(
2449
- "img",
2450
- {
2451
- src: item.image.url,
2452
- alt: item.image.name ?? "",
2453
- onLoad: (e) => {
2454
- const img2 = e.currentTarget;
2455
- if (img2.naturalWidth && img2.naturalHeight) {
2456
- setThumbnailDimensions((prev) => ({
2457
- ...prev,
2458
- [index]: { width: img2.naturalWidth, height: img2.naturalHeight }
2459
- }));
2460
- }
2461
- },
2462
- style: {
2463
- objectFit: thumbnail.fit === "cover" ? "cover" : "contain",
2464
- ...thumbnail.fit === "fit" ? { maxWidth: "100%", maxHeight: "100%", objectFit: "contain" } : {},
2465
- ...thumbnail.fit === "cover" ? { width: "100%", height: "100%" } : {}
2466
- }
2467
- }
2468
- )
2469
2374
  },
2470
- `${item.image.name}-${index}`
2471
- );
2472
- })
2473
- }
2474
- )
2475
- }
2476
- );
2477
- })()
2375
+ style: {
2376
+ objectFit: thumbnail.fit === "cover" ? "cover" : "contain",
2377
+ ...thumbnail.fit === "fit" ? { maxWidth: "100%", maxHeight: "100%", objectFit: "contain" } : {},
2378
+ ...thumbnail.fit === "cover" && slider.direction === "horiz" ? { width: "100%", height: "100%" } : {}
2379
+ }
2380
+ }
2381
+ )
2382
+ },
2383
+ `${item.image.name}-${index}`
2384
+ );
2385
+ })
2386
+ }
2387
+ )
2478
2388
  ]
2479
2389
  }
2480
2390
  )
@@ -2482,9 +2392,6 @@ const Lightbox = ({ isOpen, onClose, content, lightboxStyles, settings, portalId
2482
2392
  document.getElementById(portalId)
2483
2393
  );
2484
2394
  };
2485
- function ArrowIcon({ color, className }) {
2486
- 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)" }) }) });
2487
- }
2488
2395
  const LightboxComponent = {
2489
2396
  element: LightboxGallery,
2490
2397
  id: "lightbox",
@@ -2982,26 +2889,10 @@ const LightboxComponent = {
2982
2889
  }
2983
2890
  }
2984
2891
  }
2985
- },
2986
- closeIconColor: {
2987
- title: "Color",
2988
- type: "string",
2989
- display: {
2990
- type: "settings-color-picker",
2991
- format: "single"
2992
- }
2993
- },
2994
- closeIconHover: {
2995
- title: "Hover",
2996
- type: "string",
2997
- display: {
2998
- type: "settings-color-picker",
2999
- format: "single"
3000
- }
3001
2892
  }
3002
2893
  }
3003
2894
  },
3004
- caption: {
2895
+ imageCaption: {
3005
2896
  title: "DESC",
3006
2897
  icon: "text-icon",
3007
2898
  tooltip: "Description",
@@ -3106,7 +2997,7 @@ const LightboxComponent = {
3106
2997
  padding: { top: 0.06, right: 0, bottom: 0.06, left: 0 }
3107
2998
  },
3108
2999
  controls: {
3109
- isActive: false,
3000
+ isActive: true,
3110
3001
  arrowsImgUrl: null,
3111
3002
  offset: { x: 0, y: 0 },
3112
3003
  scale: 1,
@@ -3117,13 +3008,11 @@ const LightboxComponent = {
3117
3008
  color: "rgba(28,31,34,0.9)",
3118
3009
  blur: 0,
3119
3010
  closeIconUrl: null,
3120
- closeIconColor: "#000000",
3121
- closeIconHover: "#cccccc",
3122
3011
  closeIconAlign: "top-right",
3123
3012
  closeIconOffset: { x: 0, y: 0 },
3124
3013
  closeIconScale: 1
3125
3014
  },
3126
- caption: {
3015
+ imageCaption: {
3127
3016
  isActive: true,
3128
3017
  alignment: "middle-center",
3129
3018
  offset: { x: 0, y: 0 },
@@ -3176,7 +3065,7 @@ const LightboxComponent = {
3176
3065
  padding: { top: 0.06, right: 0.05, bottom: 0.06, left: 0.05 }
3177
3066
  },
3178
3067
  controls: {
3179
- isActive: false,
3068
+ isActive: true,
3180
3069
  arrowsImgUrl: null,
3181
3070
  offset: { x: 0, y: 0 },
3182
3071
  scale: 1,
@@ -3187,13 +3076,11 @@ const LightboxComponent = {
3187
3076
  color: "rgba(28,31,34,0.9)",
3188
3077
  blur: 0,
3189
3078
  closeIconUrl: null,
3190
- closeIconColor: "#000000",
3191
- closeIconHover: "#cccccc",
3192
3079
  closeIconAlign: "top-right",
3193
3080
  closeIconOffset: { x: 0, y: 0 },
3194
3081
  closeIconScale: 1
3195
3082
  },
3196
- caption: {
3083
+ imageCaption: {
3197
3084
  isActive: true,
3198
3085
  alignment: "middle-center",
3199
3086
  offset: { x: 0, y: 0 },
@@ -3246,7 +3133,7 @@ const LightboxComponent = {
3246
3133
  padding: { top: 0.06, right: 0.1, bottom: 0.06, left: 0.1 }
3247
3134
  },
3248
3135
  controls: {
3249
- isActive: false,
3136
+ isActive: true,
3250
3137
  arrowsImgUrl: null,
3251
3138
  offset: { x: 0, y: 0 },
3252
3139
  scale: 1,
@@ -3257,13 +3144,11 @@ const LightboxComponent = {
3257
3144
  color: "rgba(28,31,34,0.9)",
3258
3145
  blur: 0,
3259
3146
  closeIconUrl: null,
3260
- closeIconColor: "#000000",
3261
- closeIconHover: "#cccccc",
3262
3147
  closeIconAlign: "top-right",
3263
3148
  closeIconOffset: { x: 0, y: 0 },
3264
3149
  closeIconScale: 1
3265
3150
  },
3266
- caption: {
3151
+ imageCaption: {
3267
3152
  isActive: true,
3268
3153
  alignment: "middle-center",
3269
3154
  offset: { x: 0, y: 0 },
@@ -3415,7 +3300,7 @@ const LightboxComponent = {
3415
3300
  layoutBased: true,
3416
3301
  type: "object",
3417
3302
  properties: {
3418
- caption: {
3303
+ imageCaption: {
3419
3304
  dataName: "caption",
3420
3305
  type: "object",
3421
3306
  properties: {
@@ -3513,7 +3398,7 @@ const LightboxComponent = {
3513
3398
  }
3514
3399
  },
3515
3400
  default: {
3516
- caption: {
3401
+ imageCaption: {
3517
3402
  widthSettings: {
3518
3403
  width: 0.13,
3519
3404
  sizing: "auto"