@cntrl-site/components 0.1.0-alpha.2 → 0.1.0-alpha.21

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
@@ -565,15 +565,28 @@ const ControlSliderComponent = {
565
565
  },
566
566
  offset: {
567
567
  type: "object",
568
+ title: "Offset",
568
569
  display: {
569
- type: "offset-controls"
570
+ type: "group"
570
571
  },
571
572
  properties: {
572
573
  x: {
573
- type: "number"
574
+ type: "number",
575
+ label: "X",
576
+ scalingEnabled: true,
577
+ display: {
578
+ type: "numeric-input",
579
+ visible: true
580
+ }
574
581
  },
575
582
  y: {
576
- type: "number"
583
+ type: "number",
584
+ label: "Y",
585
+ scalingEnabled: true,
586
+ display: {
587
+ type: "numeric-input",
588
+ visible: true
589
+ }
577
590
  }
578
591
  }
579
592
  },
@@ -626,15 +639,28 @@ const ControlSliderComponent = {
626
639
  },
627
640
  offset: {
628
641
  type: "object",
642
+ title: "Offset",
629
643
  display: {
630
- type: "offset-controls"
644
+ type: "group"
631
645
  },
632
646
  properties: {
633
647
  x: {
634
- type: "number"
648
+ type: "number",
649
+ label: "X",
650
+ scalingEnabled: true,
651
+ display: {
652
+ type: "numeric-input",
653
+ visible: true
654
+ }
635
655
  },
636
656
  y: {
637
- type: "number"
657
+ type: "number",
658
+ label: "Y",
659
+ scalingEnabled: true,
660
+ display: {
661
+ type: "numeric-input",
662
+ visible: true
663
+ }
638
664
  }
639
665
  }
640
666
  },
@@ -690,14 +716,26 @@ const ControlSliderComponent = {
690
716
  offset: {
691
717
  type: "object",
692
718
  display: {
693
- type: "offset-controls"
719
+ type: "group"
694
720
  },
695
721
  properties: {
696
722
  x: {
697
- type: "number"
723
+ type: "number",
724
+ label: "X",
725
+ scalingEnabled: true,
726
+ display: {
727
+ type: "numeric-input",
728
+ visible: true
729
+ }
698
730
  },
699
731
  y: {
700
- type: "number"
732
+ type: "number",
733
+ label: "Y",
734
+ scalingEnabled: true,
735
+ display: {
736
+ type: "numeric-input",
737
+ visible: true
738
+ }
701
739
  }
702
740
  }
703
741
  },
@@ -1443,7 +1481,9 @@ const ControlImageRevealSliderComponent = {
1443
1481
  }
1444
1482
  }
1445
1483
  };
1484
+ const background = "Lightbox-module__background___wf1Ii";
1446
1485
  const backdropStyle = "Lightbox-module__backdropStyle___y7avj";
1486
+ const editor = "Lightbox-module__editor___Vh82D";
1447
1487
  const contentStyle = "Lightbox-module__contentStyle___FzFaW";
1448
1488
  const imageStyle = "Lightbox-module__imageStyle___Qb7f5";
1449
1489
  const imgWrapper = "Lightbox-module__imgWrapper___cdytV";
@@ -1463,7 +1503,6 @@ const thumbsAlignStart = "Lightbox-module__thumbsAlignStart___uiFIV";
1463
1503
  const thumbsAlignCenter = "Lightbox-module__thumbsAlignCenter___sbUPA";
1464
1504
  const thumbsAlignEnd = "Lightbox-module__thumbsAlignEnd___OA9N4";
1465
1505
  const thumbItem = "Lightbox-module__thumbItem___zROyu";
1466
- const thumbImage = "Lightbox-module__thumbImage___xGakV";
1467
1506
  const closeButton = "Lightbox-module__closeButton___r3Dur";
1468
1507
  const fadeIn = "Lightbox-module__fadeIn___sHwRK";
1469
1508
  const slideInLeft = "Lightbox-module__slideInLeft___P-XRo";
@@ -1472,7 +1511,9 @@ const slideInTop = "Lightbox-module__slideInTop___XRKCs";
1472
1511
  const slideInBottom = "Lightbox-module__slideInBottom___TYOBS";
1473
1512
  const scaleSlide = "Lightbox-module__scaleSlide___wS7d4";
1474
1513
  const styles = {
1514
+ background,
1475
1515
  backdropStyle,
1516
+ editor,
1476
1517
  contentStyle,
1477
1518
  imageStyle,
1478
1519
  imgWrapper,
@@ -1492,7 +1533,6 @@ const styles = {
1492
1533
  thumbsAlignCenter,
1493
1534
  thumbsAlignEnd,
1494
1535
  thumbItem,
1495
- thumbImage,
1496
1536
  closeButton,
1497
1537
  fadeIn,
1498
1538
  slideInLeft,
@@ -1501,7 +1541,7 @@ const styles = {
1501
1541
  slideInBottom,
1502
1542
  scaleSlide
1503
1543
  };
1504
- const getPositionStyles = (position, offset) => {
1544
+ const getPositionStyles = (position, offset, isEditor) => {
1505
1545
  const styles2 = {};
1506
1546
  const [vertical, horizontal] = position.split("-");
1507
1547
  if (vertical === "top") {
@@ -1525,17 +1565,42 @@ const getPositionStyles = (position, offset) => {
1525
1565
  styles2.right = "0";
1526
1566
  }
1527
1567
  if (vertical === "middle" && horizontal === "center") {
1528
- styles2.transform = `translate(calc(-50% + ${offset.x}px), calc(-50% + ${offset.y}px))`;
1568
+ styles2.transform = `translate(calc(-50% + ${scalingValue(offset.x, isEditor)}), calc(-50% + ${scalingValue(offset.y, isEditor)}))`;
1529
1569
  } else if (vertical === "middle") {
1530
- styles2.transform = `translate(${offset.x}px, calc(-50% + ${offset.y}px))`;
1570
+ styles2.transform = `translate(${scalingValue(offset.x, isEditor)}, calc(-50% + ${scalingValue(offset.y, isEditor)}))`;
1531
1571
  } else if (horizontal === "center") {
1532
- styles2.transform = `translate(calc(-50% + ${offset.x}px), ${offset.y}px)`;
1572
+ styles2.transform = `translate(calc(-50% + ${scalingValue(offset.x, isEditor)}), ${scalingValue(offset.y, isEditor)})`;
1533
1573
  } else {
1534
- styles2.transform = `translate(${offset.x}px, ${offset.y}px)`;
1574
+ styles2.transform = `translate(${scalingValue(offset.x, isEditor)}, ${scalingValue(offset.y, isEditor)})`;
1535
1575
  }
1536
1576
  return styles2;
1537
1577
  };
1538
- function LightboxGallery({ settings, content, styles: styles2, portalId, activeEvent, isEditor = true }) {
1578
+ function getDisplayedImageRect(img2) {
1579
+ const container = img2.getBoundingClientRect();
1580
+ const containerW = container.width;
1581
+ const containerH = container.height;
1582
+ const imgW = img2.naturalWidth;
1583
+ const imgH = img2.naturalHeight;
1584
+ const containerRatio = containerW / containerH;
1585
+ const imgRatio = imgW / imgH;
1586
+ let renderedW, renderedH;
1587
+ if (imgRatio > containerRatio) {
1588
+ renderedW = containerW;
1589
+ renderedH = containerW / imgRatio;
1590
+ } else {
1591
+ renderedH = containerH;
1592
+ renderedW = containerH * imgRatio;
1593
+ }
1594
+ const offsetX = (containerW - renderedW) / 2 + container.left;
1595
+ const offsetY = (containerH - renderedH) / 2 + container.top;
1596
+ return {
1597
+ x: offsetX,
1598
+ y: offsetY,
1599
+ width: renderedW,
1600
+ height: renderedH
1601
+ };
1602
+ }
1603
+ function LightboxGallery({ settings, content, styles: styles2, portalId, activeEvent, isEditor }) {
1539
1604
  const [open, setOpen] = React.useState(false);
1540
1605
  const { url } = settings.thumbnailBlock.cover;
1541
1606
  React.useEffect(() => {
@@ -1556,13 +1621,16 @@ function LightboxGallery({ settings, content, styles: styles2, portalId, activeE
1556
1621
  onClick: () => setOpen(true)
1557
1622
  }
1558
1623
  ),
1559
- /* @__PURE__ */ jsxRuntime.jsx(Lightbox, { isOpen: open, onClose: () => setOpen(false), content, settings, portalId, isEditor })
1624
+ /* @__PURE__ */ jsxRuntime.jsx(Lightbox, { isOpen: open, onClose: () => setOpen(false), content, settings, styles: styles2, portalId, isEditor })
1560
1625
  ] });
1561
1626
  }
1562
- const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = true, closeOnEsc = true, portalId, isEditor }) => {
1627
+ const Lightbox = ({ isOpen, onClose, content, styles: lightboxStyles, settings, closeOnBackdropClick = true, closeOnEsc = true, portalId, isEditor }) => {
1628
+ const { widthSettings, fontSettings, letterSpacing, textAlign, wordSpacing, fontSizeLineHeight, textAppearance, color } = lightboxStyles.caption;
1563
1629
  const [currentIndex, setCurrentIndex] = React.useState(0);
1630
+ const [splideKey, setSplideKey] = React.useState(0);
1564
1631
  const lightboxRef = React.useRef(null);
1565
- const resizeObserverRef = React.useRef(null);
1632
+ const prevSliderTypeRef = React.useRef(null);
1633
+ const imageRef = React.useRef(null);
1566
1634
  const { appear, triggers, slider, thumbnail, controls, area, caption: caption2, layout } = settings.lightboxBlock;
1567
1635
  const handleBackdropClick = (e) => {
1568
1636
  if (!closeOnBackdropClick) return;
@@ -1576,6 +1644,23 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
1576
1644
  onClose();
1577
1645
  }
1578
1646
  };
1647
+ const handleContentClick = (e) => {
1648
+ if (!closeOnBackdropClick) return;
1649
+ const target = e.target;
1650
+ const currentTarget = e.currentTarget;
1651
+ if (target === currentTarget) {
1652
+ onClose();
1653
+ return;
1654
+ }
1655
+ const isImg = target.tagName === "IMG" || target.closest("img");
1656
+ const isButton = target.tagName === "BUTTON" || target.closest("button");
1657
+ const isSplide = target.closest(".splide") || target.closest('[class*="splide"]');
1658
+ const isCaption = target.closest(`.${styles.caption}`);
1659
+ const isThumbnail = target.closest(`.${styles.thumbsContainer}`);
1660
+ if (!isImg && !isButton && !isSplide && !isCaption && !isThumbnail) {
1661
+ onClose();
1662
+ }
1663
+ };
1579
1664
  const onImageClick = (e) => {
1580
1665
  var _a, _b;
1581
1666
  if (triggers.type === "click" && triggers.switch === "image") {
@@ -1623,48 +1708,24 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
1623
1708
  if (isOpen) setCurrentIndex(0);
1624
1709
  }, [isOpen]);
1625
1710
  React.useEffect(() => {
1626
- if (!isOpen) return;
1627
- if (resizeObserverRef.current) {
1628
- resizeObserverRef.current.disconnect();
1629
- resizeObserverRef.current = null;
1711
+ if (prevSliderTypeRef.current !== null && prevSliderTypeRef.current !== slider.type) {
1712
+ setSplideKey((prev) => prev + 1);
1630
1713
  }
1631
- const timeoutId = setTimeout(() => {
1632
- const activeSlide = document.querySelector(".splide__slide.is-active");
1633
- if (!activeSlide) return;
1634
- const img2 = activeSlide.querySelector("img");
1635
- const container = activeSlide.querySelector(`.${styles.imgWrapper}`);
1636
- if (!img2 || !container) return;
1637
- const updateImageSize = () => {
1638
- if (!img2.naturalWidth || !img2.naturalHeight) return;
1639
- const imageAspectRatio = img2.naturalWidth / img2.naturalHeight;
1640
- const containerWidth = container.clientWidth;
1641
- const containerHeight = container.clientHeight;
1642
- const containerAspectRatio = containerWidth / containerHeight;
1643
- if (imageAspectRatio > containerAspectRatio) {
1644
- img2.style.width = "100%";
1645
- } else {
1646
- img2.style.height = "100%";
1647
- }
1648
- };
1649
- if (img2.complete) {
1650
- updateImageSize();
1651
- } else {
1652
- img2.onload = updateImageSize;
1653
- }
1654
- resizeObserverRef.current = new ResizeObserver(() => {
1655
- updateImageSize();
1656
- });
1657
- resizeObserverRef.current.observe(container);
1658
- resizeObserverRef.current.observe(img2);
1659
- }, 0);
1714
+ prevSliderTypeRef.current = slider.type;
1715
+ }, [slider.type]);
1716
+ React.useEffect(() => {
1717
+ if (!isOpen) return;
1718
+ const originalOverflow = document.body.style.overflow;
1719
+ document.body.style.overflow = "hidden";
1720
+ document.body.style.backgroundColor = area.color;
1721
+ const preventScroll = (e) => e.preventDefault();
1722
+ document.addEventListener("touchmove", preventScroll, { passive: false });
1660
1723
  return () => {
1661
- clearTimeout(timeoutId);
1662
- if (resizeObserverRef.current) {
1663
- resizeObserverRef.current.disconnect();
1664
- resizeObserverRef.current = null;
1665
- }
1724
+ document.body.style.overflow = originalOverflow;
1725
+ document.removeEventListener("touchmove", preventScroll);
1726
+ document.body.style.backgroundColor = "";
1666
1727
  };
1667
- }, [isOpen, currentIndex, content]);
1728
+ }, [isOpen]);
1668
1729
  const handleArrowClick = (dir) => {
1669
1730
  var _a;
1670
1731
  (_a = lightboxRef.current) == null ? void 0 : _a.go(dir);
@@ -1707,233 +1768,295 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
1707
1768
  }
1708
1769
  return styles.fadeIn;
1709
1770
  })();
1771
+ React.useEffect(() => {
1772
+ if (!isOpen || !closeOnBackdropClick) return;
1773
+ const handleTouchEnd = (e) => {
1774
+ if (e.touches.length === 0 && e.changedTouches.length > 0) {
1775
+ const rect = imageRef.current ? getDisplayedImageRect(imageRef.current) : null;
1776
+ if (!rect) return;
1777
+ const touch = e.changedTouches[0];
1778
+ const inside = touch.clientX >= rect.x && touch.clientX <= rect.x + rect.width && touch.clientY >= rect.y && touch.clientY <= rect.y + rect.height;
1779
+ if (!inside) {
1780
+ onClose();
1781
+ }
1782
+ }
1783
+ };
1784
+ const timeoutId = setTimeout(() => {
1785
+ document.addEventListener("touchend", handleTouchEnd, { passive: true });
1786
+ }, 100);
1787
+ return () => {
1788
+ clearTimeout(timeoutId);
1789
+ document.removeEventListener("touchend", handleTouchEnd);
1790
+ };
1791
+ }, [isOpen, closeOnBackdropClick, onClose, currentIndex]);
1710
1792
  if (!isOpen) return null;
1711
1793
  return reactDom.createPortal(
1712
- /* @__PURE__ */ jsxRuntime.jsx(
1713
- "div",
1714
- {
1715
- className: cn(styles.backdropStyle, backdropAppearClass, { [styles.editor]: isEditor }),
1716
- style: { backgroundColor: area.color, backdropFilter: `blur(${area.blur}px)`, animationDuration: `${backdropDurationMs}ms`, animationTimingFunction: "ease", animationFillMode: "both" },
1717
- onClick: handleBackdropClick,
1718
- children: /* @__PURE__ */ jsxRuntime.jsxs(
1719
- "div",
1720
- {
1721
- className: cn(styles.contentStyle, appearClass),
1722
- style: {
1723
- padding: `${layout.padding.top}px ${layout.padding.right}px ${layout.padding.bottom}px ${layout.padding.left}px`,
1724
- animationDuration: `${appearDurationMs}ms`,
1725
- animationTimingFunction: "ease",
1726
- animationFillMode: "both",
1727
- ...appear.type === "mix" && { animationDelay: `${backdropDurationMs}ms` },
1728
- "--splide-speed": triggers.duration || "500ms"
1729
- },
1730
- children: [
1731
- /* @__PURE__ */ jsxRuntime.jsx(
1732
- reactSplide.Splide,
1733
- {
1734
- onMove: (splide) => {
1735
- setCurrentIndex(splide.index);
1736
- },
1737
- ref: lightboxRef,
1738
- className: styles.lightboxSplide,
1739
- options: {
1740
- arrows: false,
1741
- speed: triggers.duration ? parseInt(triggers.duration) : 500,
1742
- direction: slider.direction === "horiz" || slider.type === "fade" || slider.type === "scale" ? "ltr" : "ttb",
1743
- pagination: false,
1744
- drag: triggers.type === "drag",
1745
- perPage: 1,
1746
- width: "100%",
1747
- height: "100%",
1748
- type: slider.type === "fade" || slider.type === "scale" ? "fade" : "loop",
1749
- padding: 0,
1750
- rewind: (slider.type === "scale" || slider.type === "fade") && appear.repeat !== "close"
1751
- },
1752
- style: { "--splide-speed": triggers.duration || "500ms" },
1753
- children: content.map((item, index) => {
1754
- const positionStyles = getPositionStyles(layout.position, layout.offset);
1755
- const imageStyle2 = slider.type === "scale" ? (() => {
1756
- const { transform, ...restStyles } = positionStyles;
1757
- return {
1758
- ...restStyles,
1759
- "--position-transform": transform || "none"
1760
- };
1761
- })() : positionStyles;
1762
- return /* @__PURE__ */ jsxRuntime.jsx(reactSplide.SplideSlide, { children: /* @__PURE__ */ jsxRuntime.jsx(
1763
- "div",
1764
- {
1765
- className: styles.imgWrapper,
1766
- onClick: handleImageWrapperClick,
1767
- style: {
1768
- padding: `${layout.padding.top}px ${layout.padding.right}px ${layout.padding.bottom}px ${layout.padding.left}px`
1769
- },
1770
- children: /* @__PURE__ */ jsxRuntime.jsx(
1771
- "img",
1772
- {
1773
- className: cn(styles.imageStyle, {
1774
- [styles.contain]: item.image.objectFit === "contain",
1775
- [styles.cover]: item.image.objectFit === "cover",
1776
- [styles.scaleSlide]: slider.type === "scale"
1777
- }),
1778
- src: item.image.url,
1779
- alt: item.image.name ?? "",
1780
- onClick: onImageClick,
1781
- style: imageStyle2
1782
- }
1783
- )
1784
- }
1785
- ) }, index);
1786
- })
1787
- }
1788
- ),
1789
- controls.isActive && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1794
+ /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1795
+ /* @__PURE__ */ jsxRuntime.jsx(
1796
+ "div",
1797
+ {
1798
+ className: cn(styles.background, backdropAppearClass),
1799
+ style: {
1800
+ ...isEditor && { display: "none" },
1801
+ backgroundColor: area.color,
1802
+ backdropFilter: `blur(${area.blur}px)`,
1803
+ animationDuration: `${backdropDurationMs}ms`,
1804
+ animationTimingFunction: "ease",
1805
+ animationFillMode: "both"
1806
+ }
1807
+ }
1808
+ ),
1809
+ /* @__PURE__ */ jsxRuntime.jsx(
1810
+ "div",
1811
+ {
1812
+ className: cn(styles.backdropStyle, { [styles.editor]: isEditor }),
1813
+ style: { ...isEditor && { backgroundColor: area.color, backdropFilter: `blur(${area.blur}px)` } },
1814
+ onClick: handleBackdropClick,
1815
+ onTouchEnd: handleBackdropClick,
1816
+ onTouchStart: handleBackdropClick,
1817
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
1818
+ "div",
1819
+ {
1820
+ className: cn(styles.contentStyle, appearClass),
1821
+ onClick: handleContentClick,
1822
+ style: {
1823
+ animationDuration: `${appearDurationMs}ms`,
1824
+ animationTimingFunction: "ease",
1825
+ animationFillMode: "both",
1826
+ ...appear.type === "mix" && { animationDelay: `${backdropDurationMs / 2}ms` },
1827
+ "--splide-speed": slider.duration || "500ms"
1828
+ },
1829
+ children: [
1790
1830
  /* @__PURE__ */ jsxRuntime.jsx(
1831
+ reactSplide.Splide,
1832
+ {
1833
+ onMove: (splide) => {
1834
+ setCurrentIndex(splide.index);
1835
+ },
1836
+ ref: lightboxRef,
1837
+ className: styles.lightboxSplide,
1838
+ options: {
1839
+ arrows: false,
1840
+ speed: slider.duration ? parseInt(slider.duration) : 500,
1841
+ direction: slider.direction === "horiz" || slider.type === "fade" || slider.type === "scale" ? "ltr" : "ttb",
1842
+ pagination: false,
1843
+ drag: triggers.type === "drag",
1844
+ perPage: 1,
1845
+ width: "100%",
1846
+ height: "100%",
1847
+ type: slider.type === "fade" || slider.type === "scale" ? "fade" : "loop",
1848
+ padding: 0,
1849
+ rewind: (slider.type === "scale" || slider.type === "fade") && appear.repeat !== "close"
1850
+ },
1851
+ style: { "--splide-speed": slider.duration || "500ms" },
1852
+ children: content.map((item, index) => {
1853
+ const positionStyles = getPositionStyles(layout.position, layout.offset, isEditor);
1854
+ const imageStyle2 = slider.type === "scale" ? (() => {
1855
+ const { transform, ...restStyles } = positionStyles;
1856
+ return {
1857
+ ...restStyles,
1858
+ "--position-transform": transform || "none"
1859
+ };
1860
+ })() : positionStyles;
1861
+ return /* @__PURE__ */ jsxRuntime.jsx(reactSplide.SplideSlide, { children: /* @__PURE__ */ jsxRuntime.jsx(
1862
+ "div",
1863
+ {
1864
+ className: styles.imgWrapper,
1865
+ onClick: handleImageWrapperClick,
1866
+ style: { padding: scalingValue(layout.padding.top, isEditor) + " " + scalingValue(layout.padding.right, isEditor) + " " + scalingValue(layout.padding.bottom, isEditor) + " " + scalingValue(layout.padding.left, isEditor) },
1867
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1868
+ "img",
1869
+ {
1870
+ ref: imageRef,
1871
+ className: cn(styles.imageStyle, {
1872
+ [styles.contain]: item.image.objectFit === "contain",
1873
+ [styles.cover]: item.image.objectFit === "cover",
1874
+ [styles.scaleSlide]: slider.type === "scale"
1875
+ }),
1876
+ src: item.image.url,
1877
+ alt: item.image.name ?? "",
1878
+ onClick: onImageClick,
1879
+ style: imageStyle2
1880
+ }
1881
+ )
1882
+ }
1883
+ ) }, index);
1884
+ })
1885
+ },
1886
+ splideKey
1887
+ ),
1888
+ controls.isActive && controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1889
+ /* @__PURE__ */ jsxRuntime.jsx(
1890
+ "div",
1891
+ {
1892
+ className: cn(styles.arrow, { [styles.arrowVertical]: slider.direction === "vert" }),
1893
+ style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
1894
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1895
+ "button",
1896
+ {
1897
+ className: styles.arrowInner,
1898
+ style: {
1899
+ 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"})`
1900
+ },
1901
+ onClick: (e) => {
1902
+ handleArrowClick("-1");
1903
+ },
1904
+ children: controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
1905
+ SvgImage,
1906
+ {
1907
+ url: controls.arrowsImgUrl,
1908
+ fill: controls.color,
1909
+ hoverFill: controls.hover,
1910
+ className: cn(styles.arrowImg, styles.mirror)
1911
+ }
1912
+ )
1913
+ }
1914
+ )
1915
+ }
1916
+ ),
1917
+ /* @__PURE__ */ jsxRuntime.jsx(
1918
+ "div",
1919
+ {
1920
+ className: cn(styles.arrow, styles.nextArrow, { [styles.arrowVertical]: slider.direction === "vert" }),
1921
+ style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
1922
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1923
+ "button",
1924
+ {
1925
+ className: styles.arrowInner,
1926
+ style: {
1927
+ 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"})`
1928
+ },
1929
+ onClick: (e) => {
1930
+ handleArrowClick("+1");
1931
+ },
1932
+ "aria-label": "Next",
1933
+ children: controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
1934
+ SvgImage,
1935
+ {
1936
+ url: controls.arrowsImgUrl,
1937
+ fill: controls.color,
1938
+ hoverFill: controls.hover,
1939
+ className: styles.arrowImg
1940
+ }
1941
+ )
1942
+ }
1943
+ )
1944
+ }
1945
+ )
1946
+ ] }),
1947
+ area.closeIconUrl && (() => {
1948
+ const positionStyles = getPositionStyles(area.closeIconAlign, area.closeIconOffset, isEditor);
1949
+ const scaleTransform = `scale(${area.closeIconScale})`;
1950
+ const combinedTransform = positionStyles.transform ? `${positionStyles.transform} ${scaleTransform}` : scaleTransform;
1951
+ return /* @__PURE__ */ jsxRuntime.jsx(
1952
+ "button",
1953
+ {
1954
+ className: styles.closeButton,
1955
+ style: {
1956
+ ...positionStyles,
1957
+ transform: combinedTransform
1958
+ },
1959
+ onClick: onClose,
1960
+ children: /* @__PURE__ */ jsxRuntime.jsx(SvgImage, { url: area.closeIconUrl })
1961
+ }
1962
+ );
1963
+ })(),
1964
+ caption2.isActive && /* @__PURE__ */ jsxRuntime.jsx(
1791
1965
  "div",
1792
1966
  {
1793
- className: cn(styles.arrow, { [styles.arrowVertical]: slider.direction === "vert" }),
1794
- style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
1967
+ className: styles.caption,
1968
+ style: {
1969
+ ...getPositionStyles(caption2.alignment, caption2.offset, isEditor),
1970
+ fontFamily: fontSettings.fontFamily,
1971
+ fontWeight: fontSettings.fontWeight,
1972
+ fontStyle: fontSettings.fontStyle,
1973
+ width: widthSettings.sizing === "auto" ? "max-content" : scalingValue(widthSettings.width, isEditor),
1974
+ letterSpacing: scalingValue(letterSpacing, isEditor),
1975
+ wordSpacing: scalingValue(wordSpacing, isEditor),
1976
+ textAlign,
1977
+ fontSize: scalingValue(fontSizeLineHeight.fontSize, isEditor),
1978
+ lineHeight: scalingValue(fontSizeLineHeight.lineHeight, isEditor),
1979
+ textTransform: textAppearance.textTransform ?? "none",
1980
+ textDecoration: textAppearance.textDecoration ?? "none",
1981
+ fontVariant: textAppearance.fontVariant ?? "normal",
1982
+ color,
1983
+ transitionDuration: slider.duration ? `${Math.round(parseInt(slider.duration) / 2)}ms` : "500ms"
1984
+ },
1985
+ onClick: (e) => e.stopPropagation(),
1795
1986
  children: /* @__PURE__ */ jsxRuntime.jsx(
1796
- "button",
1987
+ "div",
1797
1988
  {
1798
- className: styles.arrowInner,
1989
+ "data-styles": "caption",
1990
+ className: styles.captionTextInner,
1799
1991
  style: {
1800
- transform: `translate(${scalingValue(controls.offset.x)}, ${scalingValue(controls.offset.y * (slider.direction === "horiz" ? 1 : -1))}) scale(${controls.scale}) rotate(${slider.direction === "horiz" ? "0deg" : "90deg"})`
1801
- },
1802
- onClick: (e) => {
1803
- handleArrowClick("-1");
1992
+ position: "relative"
1804
1993
  },
1805
- children: controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
1806
- SvgImage,
1807
- {
1808
- url: controls.arrowsImgUrl,
1809
- fill: controls.color,
1810
- hoverFill: controls.hover,
1811
- className: cn(styles.arrowImg, styles.mirror)
1812
- }
1813
- )
1994
+ children: /* @__PURE__ */ jsxRuntime.jsx(RichTextRenderer, { content: content[currentIndex].imageCaption })
1814
1995
  }
1815
1996
  )
1816
1997
  }
1817
1998
  ),
1818
- /* @__PURE__ */ jsxRuntime.jsx(
1999
+ thumbnail.isActive && /* @__PURE__ */ jsxRuntime.jsx(
1819
2000
  "div",
1820
2001
  {
1821
- className: cn(styles.arrow, styles.nextArrow, { [styles.arrowVertical]: slider.direction === "vert" }),
1822
- style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
1823
- children: /* @__PURE__ */ jsxRuntime.jsx(
1824
- "button",
2002
+ className: cn(
2003
+ styles.thumbsContainer,
1825
2004
  {
1826
- className: styles.arrowInner,
1827
- style: {
1828
- transform: `translate(${scalingValue(controls.offset.x * (slider.direction === "horiz" ? -1 : 1))}, ${scalingValue(controls.offset.y)}) scale(${controls.scale}) rotate(${slider.direction === "horiz" ? "0deg" : "90deg"})`
1829
- },
1830
- onClick: (e) => {
1831
- handleArrowClick("+1");
1832
- },
1833
- "aria-label": "Next",
1834
- children: controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
1835
- SvgImage,
1836
- {
1837
- url: controls.arrowsImgUrl,
1838
- fill: controls.color,
1839
- hoverFill: controls.hover,
1840
- className: styles.arrowImg
1841
- }
1842
- )
2005
+ [styles.thumbsContainerVertical]: slider.direction === "vert",
2006
+ [styles.thumbsAlignStart]: thumbnail.align === "start",
2007
+ [styles.thumbsAlignCenter]: thumbnail.align === "center",
2008
+ [styles.thumbsAlignEnd]: thumbnail.align === "end"
1843
2009
  }
1844
- )
1845
- }
1846
- )
1847
- ] }),
1848
- area.closeIconUrl && (() => {
1849
- const positionStyles = getPositionStyles(area.closeIconAlign, area.closeIconOffset);
1850
- const scaleTransform = `scale(${area.closeIconScale})`;
1851
- const combinedTransform = positionStyles.transform ? `${positionStyles.transform} ${scaleTransform}` : scaleTransform;
1852
- return /* @__PURE__ */ jsxRuntime.jsx(
1853
- "button",
1854
- {
1855
- className: styles.closeButton,
2010
+ ),
1856
2011
  style: {
1857
- ...positionStyles,
1858
- transform: combinedTransform
2012
+ gap: `${scalingValue(thumbnail.grid.gap, isEditor)}`,
2013
+ ...getPositionStyles(thumbnail.position, thumbnail.offset, isEditor)
1859
2014
  },
1860
- onClick: onClose,
1861
- children: /* @__PURE__ */ jsxRuntime.jsx(SvgImage, { url: area.closeIconUrl })
1862
- }
1863
- );
1864
- })(),
1865
- caption2.isActive && /* @__PURE__ */ jsxRuntime.jsx(
1866
- "div",
1867
- {
1868
- className: styles.caption,
1869
- style: {
1870
- ...getPositionStyles(caption2.alignment, caption2.offset),
1871
- ["--link-hover-color"]: caption2.hover
1872
- },
1873
- children: /* @__PURE__ */ jsxRuntime.jsx(RichTextRenderer, { content: content[currentIndex].imageCaption })
1874
- }
1875
- ),
1876
- thumbnail.isActive && /* @__PURE__ */ jsxRuntime.jsx(
1877
- "div",
1878
- {
1879
- className: cn(
1880
- styles.thumbsContainer,
1881
- {
1882
- [styles.thumbsContainerVertical]: slider.direction === "vert",
1883
- [styles.thumbsAlignStart]: thumbnail.align === "start",
1884
- [styles.thumbsAlignCenter]: thumbnail.align === "center",
1885
- [styles.thumbsAlignEnd]: thumbnail.align === "end"
1886
- }
1887
- ),
1888
- style: {
1889
- gap: `${thumbnail.grid.gap}px`,
1890
- ...slider.direction === "horiz" ? { height: `${thumbnail.grid.height}px` } : {},
1891
- ...slider.direction === "vert" ? { width: `${thumbnail.grid.width}px` } : {},
1892
- ...getPositionStyles(thumbnail.position, thumbnail.offset)
1893
- },
1894
- children: content.map((item, index) => {
1895
- const isActive = index === currentIndex;
1896
- return /* @__PURE__ */ jsxRuntime.jsx(
1897
- "button",
1898
- {
1899
- className: styles.thumbItem,
1900
- style: {
1901
- transform: `scale(${isActive ? thumbnail.activeState.scale : 1})`,
1902
- ...slider.direction === "horiz" ? { height: "100%" } : {},
1903
- ...slider.direction === "vert" ? { width: "100%" } : {},
1904
- opacity: isActive ? thumbnail.activeState.opacity : thumbnail.opacity,
1905
- ["--thumb-hover"]: thumbnail.activeState.opacity
1906
- },
1907
- onClick: (e) => {
1908
- var _a;
1909
- e.stopPropagation();
1910
- setCurrentIndex(index);
1911
- (_a = lightboxRef.current) == null ? void 0 : _a.go(index);
1912
- },
1913
- children: /* @__PURE__ */ jsxRuntime.jsx(
1914
- "img",
1915
- {
1916
- src: item.image.url,
1917
- alt: item.image.name ?? "",
1918
- className: styles.thumbImage,
1919
- style: {
1920
- objectFit: thumbnail.fit === "cover" ? "cover" : "contain",
1921
- ...slider.direction === "horiz" ? { height: "100%" } : {},
1922
- ...slider.direction === "vert" ? { width: "100%" } : {}
2015
+ children: content.map((item, index) => {
2016
+ const isActive = index === currentIndex;
2017
+ return /* @__PURE__ */ jsxRuntime.jsx(
2018
+ "button",
2019
+ {
2020
+ className: styles.thumbItem,
2021
+ style: {
2022
+ ...slider.direction === "horiz" ? { height: isActive ? `${scalingValue(thumbnail.grid.height * (isActive ? thumbnail.activeState.scale : 1), isEditor)}` : `${scalingValue(thumbnail.grid.height, isEditor)}` } : {},
2023
+ ...slider.direction === "vert" ? { width: isActive ? `${scalingValue(thumbnail.grid.width * (isActive ? thumbnail.activeState.scale : 1), isEditor)}` : `${scalingValue(thumbnail.grid.width, isEditor)}` } : {},
2024
+ ...thumbnail.fit === "cover" && slider.direction === "horiz" ? { width: isActive ? `${scalingValue(thumbnail.grid.width * (isActive ? thumbnail.activeState.scale : 1), isEditor)}` : `${scalingValue(thumbnail.grid.width, isEditor)}` } : {},
2025
+ ...thumbnail.fit === "cover" && slider.direction === "vert" ? { height: isActive ? `${scalingValue(thumbnail.grid.height * (isActive ? thumbnail.activeState.scale : 1), isEditor)}` : `${scalingValue(thumbnail.grid.height, isEditor)}` } : {},
2026
+ transition: isActive ? "all 0.2s ease" : "none",
2027
+ opacity: isActive ? thumbnail.activeState.opacity / 100 : thumbnail.opacity / 100,
2028
+ ["--thumb-hover"]: thumbnail.activeState.opacity / 100
2029
+ },
2030
+ onClick: (e) => {
2031
+ var _a;
2032
+ e.stopPropagation();
2033
+ setCurrentIndex(index);
2034
+ (_a = lightboxRef.current) == null ? void 0 : _a.go(index);
2035
+ },
2036
+ children: /* @__PURE__ */ jsxRuntime.jsx(
2037
+ "img",
2038
+ {
2039
+ src: item.image.url,
2040
+ alt: item.image.name ?? "",
2041
+ style: {
2042
+ objectFit: thumbnail.fit === "cover" ? "cover" : "contain",
2043
+ ...thumbnail.fit === "fit" ? { maxWidth: "100%", maxHeight: "100%", objectFit: "contain" } : {},
2044
+ ...thumbnail.fit === "cover" && slider.direction === "horiz" ? { width: "100%", height: "100%" } : {}
2045
+ }
1923
2046
  }
1924
- }
1925
- )
1926
- },
1927
- `${item.image.url}-${index}`
1928
- );
1929
- })
1930
- }
1931
- )
1932
- ]
1933
- }
1934
- )
1935
- }
1936
- ),
2047
+ )
2048
+ },
2049
+ `${item.image.url}-${index}`
2050
+ );
2051
+ })
2052
+ }
2053
+ )
2054
+ ]
2055
+ }
2056
+ )
2057
+ }
2058
+ )
2059
+ ] }),
1937
2060
  document.getElementById(portalId)
1938
2061
  );
1939
2062
  };
@@ -1946,8 +2069,8 @@ const LightboxComponent = {
1946
2069
  url: "https://cdn.cntrl.site/projects/01GJ2SPDSH73MC92WW7ZA2CWBY/articles-assets/01KA24CHYZXJBZ0Q714B05A7VD.mp4"
1947
2070
  },
1948
2071
  defaultSize: {
1949
- width: 400,
1950
- height: 400
2072
+ width: 440,
2073
+ height: 550
1951
2074
  },
1952
2075
  schema: {
1953
2076
  type: "object",
@@ -1972,6 +2095,7 @@ const LightboxComponent = {
1972
2095
  url: {
1973
2096
  type: "string",
1974
2097
  display: {
2098
+ mode: "cover",
1975
2099
  type: "settings-image-input"
1976
2100
  }
1977
2101
  }
@@ -2044,14 +2168,6 @@ const LightboxComponent = {
2044
2168
  type: "ratio-group"
2045
2169
  },
2046
2170
  enum: ["image", "50/50"]
2047
- },
2048
- duration: {
2049
- type: "string",
2050
- label: "T",
2051
- display: {
2052
- type: "step-selector"
2053
- },
2054
- enum: ["100ms", "250ms", "500ms", "1000ms", "1500ms", "2000ms"]
2055
2171
  }
2056
2172
  }
2057
2173
  },
@@ -2074,6 +2190,14 @@ const LightboxComponent = {
2074
2190
  type: "ratio-group"
2075
2191
  },
2076
2192
  enum: ["horiz", "vert"]
2193
+ },
2194
+ duration: {
2195
+ type: "string",
2196
+ label: "T",
2197
+ display: {
2198
+ type: "step-selector"
2199
+ },
2200
+ enum: ["100ms", "250ms", "500ms", "1000ms", "1500ms", "2000ms"]
2077
2201
  }
2078
2202
  }
2079
2203
  },
@@ -2131,13 +2255,16 @@ const LightboxComponent = {
2131
2255
  height: {
2132
2256
  type: "number",
2133
2257
  label: "H",
2258
+ scalingEnabled: true,
2134
2259
  display: {
2135
- type: "numeric-input"
2260
+ type: "numeric-input",
2261
+ visible: true
2136
2262
  }
2137
2263
  },
2138
2264
  width: {
2139
2265
  type: "number",
2140
2266
  label: "W",
2267
+ scalingEnabled: true,
2141
2268
  display: {
2142
2269
  type: "numeric-input",
2143
2270
  visible: false
@@ -2146,6 +2273,7 @@ const LightboxComponent = {
2146
2273
  gap: {
2147
2274
  type: "number",
2148
2275
  label: "Gap",
2276
+ scalingEnabled: true,
2149
2277
  display: {
2150
2278
  type: "numeric-input"
2151
2279
  }
@@ -2154,15 +2282,28 @@ const LightboxComponent = {
2154
2282
  },
2155
2283
  offset: {
2156
2284
  type: "object",
2285
+ title: "Offset",
2157
2286
  display: {
2158
- type: "offset-controls"
2287
+ type: "group"
2159
2288
  },
2160
2289
  properties: {
2161
2290
  x: {
2162
- type: "number"
2291
+ type: "number",
2292
+ label: "X",
2293
+ scalingEnabled: true,
2294
+ display: {
2295
+ type: "numeric-input",
2296
+ visible: true
2297
+ }
2163
2298
  },
2164
2299
  y: {
2165
- type: "number"
2300
+ type: "number",
2301
+ label: "Y",
2302
+ scalingEnabled: true,
2303
+ display: {
2304
+ type: "numeric-input",
2305
+ visible: true
2306
+ }
2166
2307
  }
2167
2308
  }
2168
2309
  },
@@ -2187,7 +2328,7 @@ const LightboxComponent = {
2187
2328
  scale: {
2188
2329
  type: "number",
2189
2330
  title: "Scale",
2190
- min: 0.5,
2331
+ min: 1,
2191
2332
  max: 5,
2192
2333
  step: 0.1,
2193
2334
  display: {
@@ -2224,15 +2365,28 @@ const LightboxComponent = {
2224
2365
  },
2225
2366
  offset: {
2226
2367
  type: "object",
2368
+ title: "Offset",
2227
2369
  display: {
2228
- type: "offset-controls"
2370
+ type: "group"
2229
2371
  },
2230
2372
  properties: {
2231
2373
  x: {
2232
- type: "number"
2374
+ type: "number",
2375
+ label: "X",
2376
+ scalingEnabled: true,
2377
+ display: {
2378
+ type: "numeric-input",
2379
+ visible: true
2380
+ }
2233
2381
  },
2234
2382
  y: {
2235
- type: "number"
2383
+ type: "number",
2384
+ label: "Y",
2385
+ scalingEnabled: true,
2386
+ display: {
2387
+ type: "numeric-input",
2388
+ visible: true
2389
+ }
2236
2390
  }
2237
2391
  }
2238
2392
  },
@@ -2278,16 +2432,29 @@ const LightboxComponent = {
2278
2432
  }
2279
2433
  },
2280
2434
  offset: {
2435
+ title: "Offset",
2281
2436
  type: "object",
2282
2437
  display: {
2283
- type: "offset-controls"
2438
+ type: "group"
2284
2439
  },
2285
2440
  properties: {
2286
2441
  x: {
2287
- type: "number"
2442
+ type: "number",
2443
+ label: "X",
2444
+ scalingEnabled: true,
2445
+ display: {
2446
+ type: "numeric-input",
2447
+ visible: true
2448
+ }
2288
2449
  },
2289
2450
  y: {
2290
- type: "number"
2451
+ type: "number",
2452
+ label: "Y",
2453
+ scalingEnabled: true,
2454
+ display: {
2455
+ type: "numeric-input",
2456
+ visible: true
2457
+ }
2291
2458
  }
2292
2459
  }
2293
2460
  },
@@ -2366,15 +2533,28 @@ const LightboxComponent = {
2366
2533
  },
2367
2534
  closeIconOffset: {
2368
2535
  type: "object",
2536
+ title: "Offset",
2369
2537
  display: {
2370
- type: "offset-controls"
2538
+ type: "group"
2371
2539
  },
2372
2540
  properties: {
2373
2541
  x: {
2374
- type: "number"
2542
+ type: "number",
2543
+ label: "X",
2544
+ scalingEnabled: true,
2545
+ display: {
2546
+ type: "numeric-input",
2547
+ visible: true
2548
+ }
2375
2549
  },
2376
2550
  y: {
2377
- type: "number"
2551
+ type: "number",
2552
+ label: "Y",
2553
+ scalingEnabled: true,
2554
+ display: {
2555
+ type: "numeric-input",
2556
+ visible: true
2557
+ }
2378
2558
  }
2379
2559
  }
2380
2560
  }
@@ -2400,16 +2580,29 @@ const LightboxComponent = {
2400
2580
  enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
2401
2581
  },
2402
2582
  offset: {
2583
+ title: "Offset",
2403
2584
  type: "object",
2404
2585
  display: {
2405
- type: "offset-controls"
2586
+ type: "group"
2406
2587
  },
2407
2588
  properties: {
2408
2589
  x: {
2409
- type: "number"
2590
+ type: "number",
2591
+ label: "X",
2592
+ scalingEnabled: true,
2593
+ display: {
2594
+ type: "numeric-input",
2595
+ visible: true
2596
+ }
2410
2597
  },
2411
2598
  y: {
2412
- type: "number"
2599
+ type: "number",
2600
+ label: "Y",
2601
+ scalingEnabled: true,
2602
+ display: {
2603
+ type: "numeric-input",
2604
+ visible: true
2605
+ }
2413
2606
  }
2414
2607
  }
2415
2608
  },
@@ -2435,18 +2628,18 @@ const LightboxComponent = {
2435
2628
  lightboxBlock: {
2436
2629
  appear: {
2437
2630
  type: "slide in",
2438
- duration: "1000ms",
2631
+ duration: "500ms",
2439
2632
  direction: "right",
2440
- repeat: "close"
2633
+ repeat: "loop"
2441
2634
  },
2442
2635
  triggers: {
2443
2636
  type: "click",
2444
- switch: "image",
2445
- duration: "2000ms"
2637
+ switch: "image"
2446
2638
  },
2447
2639
  slider: {
2448
2640
  type: "fade",
2449
- direction: "horiz"
2641
+ direction: "horiz",
2642
+ duration: "1000ms"
2450
2643
  },
2451
2644
  thumbnail: {
2452
2645
  isActive: true,
@@ -2455,12 +2648,12 @@ const LightboxComponent = {
2455
2648
  align: "center",
2456
2649
  triggers: "clk",
2457
2650
  grid: {
2458
- height: 60,
2459
- width: 60,
2460
- gap: 8
2651
+ height: 0.03,
2652
+ width: 0.03,
2653
+ gap: 8e-3
2461
2654
  },
2462
2655
  offset: { x: 0, y: 0 },
2463
- opacity: 100,
2656
+ opacity: 80,
2464
2657
  activeState: {
2465
2658
  scale: 1,
2466
2659
  opacity: 100
@@ -2512,7 +2705,7 @@ const LightboxComponent = {
2512
2705
  value: "vert"
2513
2706
  },
2514
2707
  then: {
2515
- name: "properties.lightboxBlock.properties.thumbnail.properties.position.display.direction",
2708
+ name: "properties.lightboxBlock.properties.thumbnail.properties.align.display.direction",
2516
2709
  value: "vertical"
2517
2710
  }
2518
2711
  },
@@ -2575,47 +2768,27 @@ const LightboxComponent = {
2575
2768
  name: "properties.lightboxBlock.properties.appear.properties.direction.display.visible",
2576
2769
  value: false
2577
2770
  }
2578
- },
2579
- {
2580
- if: {
2581
- name: "lightboxBlock.triggers.type",
2582
- value: "click"
2583
- },
2584
- then: {
2585
- name: "properties.lightboxBlock.properties.triggers.properties.duration.display.visible",
2586
- value: true
2587
- }
2588
- },
2589
- {
2590
- if: {
2591
- name: "lightboxBlock.triggers.type",
2592
- value: "click"
2593
- },
2594
- then: {
2595
- name: "properties.lightboxBlock.properties.triggers.properties.switch.display.visible",
2596
- value: true
2597
- }
2598
- },
2599
- {
2600
- if: {
2601
- name: "lightboxBlock.triggers.type",
2602
- value: "drag"
2603
- },
2604
- then: {
2605
- name: "properties.lightboxBlock.properties.triggers.properties.duration.display.visible",
2606
- value: false
2607
- }
2608
- },
2609
- {
2610
- if: {
2611
- name: "lightboxBlock.triggers.type",
2612
- value: "drag"
2613
- },
2614
- then: {
2615
- name: "properties.lightboxBlock.properties.triggers.properties.switch.display.visible",
2616
- value: false
2617
- }
2618
2771
  }
2772
+ // {
2773
+ // if: {
2774
+ // name: 'lightboxBlock.triggers.type',
2775
+ // value: 'click'
2776
+ // },
2777
+ // then: {
2778
+ // name: 'properties.lightboxBlock.properties.slider.properties.switch.display.visible',
2779
+ // value: true
2780
+ // }
2781
+ // },
2782
+ // {
2783
+ // if: {
2784
+ // name: 'lightboxBlock.triggers.type',
2785
+ // value: 'drag'
2786
+ // },
2787
+ // then: {
2788
+ // name: 'properties.lightboxBlock.properties.slider.properties.switch.display.visible',
2789
+ // value: false
2790
+ // }
2791
+ // }
2619
2792
  ]
2620
2793
  },
2621
2794
  content: {