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

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
  },
@@ -2132,7 +2256,8 @@ const LightboxComponent = {
2132
2256
  type: "number",
2133
2257
  label: "H",
2134
2258
  display: {
2135
- type: "numeric-input"
2259
+ type: "numeric-input",
2260
+ visible: true
2136
2261
  }
2137
2262
  },
2138
2263
  width: {
@@ -2154,15 +2279,28 @@ const LightboxComponent = {
2154
2279
  },
2155
2280
  offset: {
2156
2281
  type: "object",
2282
+ title: "Offset",
2157
2283
  display: {
2158
- type: "offset-controls"
2284
+ type: "group"
2159
2285
  },
2160
2286
  properties: {
2161
2287
  x: {
2162
- type: "number"
2288
+ type: "number",
2289
+ label: "X",
2290
+ scalingEnabled: true,
2291
+ display: {
2292
+ type: "numeric-input",
2293
+ visible: true
2294
+ }
2163
2295
  },
2164
2296
  y: {
2165
- type: "number"
2297
+ type: "number",
2298
+ label: "Y",
2299
+ scalingEnabled: true,
2300
+ display: {
2301
+ type: "numeric-input",
2302
+ visible: true
2303
+ }
2166
2304
  }
2167
2305
  }
2168
2306
  },
@@ -2187,7 +2325,7 @@ const LightboxComponent = {
2187
2325
  scale: {
2188
2326
  type: "number",
2189
2327
  title: "Scale",
2190
- min: 0.5,
2328
+ min: 1,
2191
2329
  max: 5,
2192
2330
  step: 0.1,
2193
2331
  display: {
@@ -2224,15 +2362,28 @@ const LightboxComponent = {
2224
2362
  },
2225
2363
  offset: {
2226
2364
  type: "object",
2365
+ title: "Offset",
2227
2366
  display: {
2228
- type: "offset-controls"
2367
+ type: "group"
2229
2368
  },
2230
2369
  properties: {
2231
2370
  x: {
2232
- type: "number"
2371
+ type: "number",
2372
+ label: "X",
2373
+ scalingEnabled: true,
2374
+ display: {
2375
+ type: "numeric-input",
2376
+ visible: true
2377
+ }
2233
2378
  },
2234
2379
  y: {
2235
- type: "number"
2380
+ type: "number",
2381
+ label: "Y",
2382
+ scalingEnabled: true,
2383
+ display: {
2384
+ type: "numeric-input",
2385
+ visible: true
2386
+ }
2236
2387
  }
2237
2388
  }
2238
2389
  },
@@ -2278,16 +2429,29 @@ const LightboxComponent = {
2278
2429
  }
2279
2430
  },
2280
2431
  offset: {
2432
+ title: "Offset",
2281
2433
  type: "object",
2282
2434
  display: {
2283
- type: "offset-controls"
2435
+ type: "group"
2284
2436
  },
2285
2437
  properties: {
2286
2438
  x: {
2287
- type: "number"
2439
+ type: "number",
2440
+ label: "X",
2441
+ scalingEnabled: true,
2442
+ display: {
2443
+ type: "numeric-input",
2444
+ visible: true
2445
+ }
2288
2446
  },
2289
2447
  y: {
2290
- type: "number"
2448
+ type: "number",
2449
+ label: "Y",
2450
+ scalingEnabled: true,
2451
+ display: {
2452
+ type: "numeric-input",
2453
+ visible: true
2454
+ }
2291
2455
  }
2292
2456
  }
2293
2457
  },
@@ -2366,15 +2530,28 @@ const LightboxComponent = {
2366
2530
  },
2367
2531
  closeIconOffset: {
2368
2532
  type: "object",
2533
+ title: "Offset",
2369
2534
  display: {
2370
- type: "offset-controls"
2535
+ type: "group"
2371
2536
  },
2372
2537
  properties: {
2373
2538
  x: {
2374
- type: "number"
2539
+ type: "number",
2540
+ label: "X",
2541
+ scalingEnabled: true,
2542
+ display: {
2543
+ type: "numeric-input",
2544
+ visible: true
2545
+ }
2375
2546
  },
2376
2547
  y: {
2377
- type: "number"
2548
+ type: "number",
2549
+ label: "Y",
2550
+ scalingEnabled: true,
2551
+ display: {
2552
+ type: "numeric-input",
2553
+ visible: true
2554
+ }
2378
2555
  }
2379
2556
  }
2380
2557
  }
@@ -2400,16 +2577,29 @@ const LightboxComponent = {
2400
2577
  enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
2401
2578
  },
2402
2579
  offset: {
2580
+ title: "Offset",
2403
2581
  type: "object",
2404
2582
  display: {
2405
- type: "offset-controls"
2583
+ type: "group"
2406
2584
  },
2407
2585
  properties: {
2408
2586
  x: {
2409
- type: "number"
2587
+ type: "number",
2588
+ label: "X",
2589
+ scalingEnabled: true,
2590
+ display: {
2591
+ type: "numeric-input",
2592
+ visible: true
2593
+ }
2410
2594
  },
2411
2595
  y: {
2412
- type: "number"
2596
+ type: "number",
2597
+ label: "Y",
2598
+ scalingEnabled: true,
2599
+ display: {
2600
+ type: "numeric-input",
2601
+ visible: true
2602
+ }
2413
2603
  }
2414
2604
  }
2415
2605
  },
@@ -2435,18 +2625,18 @@ const LightboxComponent = {
2435
2625
  lightboxBlock: {
2436
2626
  appear: {
2437
2627
  type: "slide in",
2438
- duration: "1000ms",
2628
+ duration: "500ms",
2439
2629
  direction: "right",
2440
- repeat: "close"
2630
+ repeat: "loop"
2441
2631
  },
2442
2632
  triggers: {
2443
2633
  type: "click",
2444
- switch: "image",
2445
- duration: "2000ms"
2634
+ switch: "image"
2446
2635
  },
2447
2636
  slider: {
2448
2637
  type: "fade",
2449
- direction: "horiz"
2638
+ direction: "horiz",
2639
+ duration: "1000ms"
2450
2640
  },
2451
2641
  thumbnail: {
2452
2642
  isActive: true,
@@ -2455,12 +2645,12 @@ const LightboxComponent = {
2455
2645
  align: "center",
2456
2646
  triggers: "clk",
2457
2647
  grid: {
2458
- height: 60,
2459
- width: 60,
2460
- gap: 8
2648
+ height: 0.03,
2649
+ width: 0.03,
2650
+ gap: 8e-3
2461
2651
  },
2462
2652
  offset: { x: 0, y: 0 },
2463
- opacity: 100,
2653
+ opacity: 80,
2464
2654
  activeState: {
2465
2655
  scale: 1,
2466
2656
  opacity: 100
@@ -2512,7 +2702,7 @@ const LightboxComponent = {
2512
2702
  value: "vert"
2513
2703
  },
2514
2704
  then: {
2515
- name: "properties.lightboxBlock.properties.thumbnail.properties.position.display.direction",
2705
+ name: "properties.lightboxBlock.properties.thumbnail.properties.align.display.direction",
2516
2706
  value: "vertical"
2517
2707
  }
2518
2708
  },
@@ -2575,47 +2765,27 @@ const LightboxComponent = {
2575
2765
  name: "properties.lightboxBlock.properties.appear.properties.direction.display.visible",
2576
2766
  value: false
2577
2767
  }
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
2768
  }
2769
+ // {
2770
+ // if: {
2771
+ // name: 'lightboxBlock.triggers.type',
2772
+ // value: 'click'
2773
+ // },
2774
+ // then: {
2775
+ // name: 'properties.lightboxBlock.properties.slider.properties.switch.display.visible',
2776
+ // value: true
2777
+ // }
2778
+ // },
2779
+ // {
2780
+ // if: {
2781
+ // name: 'lightboxBlock.triggers.type',
2782
+ // value: 'drag'
2783
+ // },
2784
+ // then: {
2785
+ // name: 'properties.lightboxBlock.properties.slider.properties.switch.display.visible',
2786
+ // value: false
2787
+ // }
2788
+ // }
2619
2789
  ]
2620
2790
  },
2621
2791
  content: {