@cntrl-site/components 0.1.0-2 → 0.1.0-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.mjs CHANGED
@@ -270,7 +270,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
270
270
  options: {
271
271
  arrows: false,
272
272
  speed: transition.duration ? parseInt(transition.duration) : 500,
273
- autoplay: isEditor ? false : triggers.autoPlay !== null,
273
+ autoplay: triggers.autoPlay !== null,
274
274
  ...triggers.autoPlay !== null && {
275
275
  interval: parseInt(triggers.autoPlay) * 1e3
276
276
  },
@@ -467,6 +467,9 @@ const ControlSliderComponent = {
467
467
  settings: {
468
468
  layoutBased: true,
469
469
  type: "object",
470
+ display: {
471
+ type: "settings-block"
472
+ },
470
473
  properties: {
471
474
  triggers: {
472
475
  title: "triggers",
@@ -1188,6 +1191,9 @@ const ControlImageRevealSliderComponent = {
1188
1191
  settings: {
1189
1192
  layoutBased: true,
1190
1193
  type: "object",
1194
+ display: {
1195
+ type: "settings-block"
1196
+ },
1191
1197
  properties: {
1192
1198
  imageSize: {
1193
1199
  title: "IMG SIZE",
@@ -1448,9 +1454,14 @@ const nextArrow = "LightBox-module__nextArrow___zkAQN";
1448
1454
  const arrowInner = "LightBox-module__arrowInner___p48sW";
1449
1455
  const arrowImg = "LightBox-module__arrowImg___pNV88";
1450
1456
  const mirror = "LightBox-module__mirror___pjeXc";
1457
+ const thumbsContainerVertical = "LightBox-module__thumbsContainerVertical___wttk5";
1451
1458
  const thumbsContainer = "LightBox-module__thumbsContainer___osSma";
1459
+ const thumbsAlignStart = "LightBox-module__thumbsAlignStart___MO6tY";
1460
+ const thumbsAlignCenter = "LightBox-module__thumbsAlignCenter___Q4sUx";
1461
+ const thumbsAlignEnd = "LightBox-module__thumbsAlignEnd___p4y9R";
1452
1462
  const thumbItem = "LightBox-module__thumbItem___HvnF3";
1453
1463
  const thumbImage = "LightBox-module__thumbImage___OJ19m";
1464
+ const closeButton = "LightBox-module__closeButton___g2khP";
1454
1465
  const fadeIn = "LightBox-module__fadeIn___0m5GW";
1455
1466
  const slideInLeft = "LightBox-module__slideInLeft___gPYwC";
1456
1467
  const slideInRight = "LightBox-module__slideInRight___S-pPp";
@@ -1470,25 +1481,70 @@ const styles = {
1470
1481
  arrowInner,
1471
1482
  arrowImg,
1472
1483
  mirror,
1484
+ thumbsContainerVertical,
1473
1485
  thumbsContainer,
1486
+ thumbsAlignStart,
1487
+ thumbsAlignCenter,
1488
+ thumbsAlignEnd,
1474
1489
  thumbItem,
1475
1490
  thumbImage,
1491
+ closeButton,
1476
1492
  fadeIn,
1477
1493
  slideInLeft,
1478
1494
  slideInRight,
1479
1495
  slideInTop,
1480
1496
  slideInBottom
1481
1497
  };
1482
- function LightboxGallery({ settings, content, styles: styles2, portalId }) {
1498
+ const getPositionStyles = (position, offset) => {
1499
+ const styles2 = {};
1500
+ const [vertical, horizontal] = position.split("-");
1501
+ if (vertical === "top") {
1502
+ styles2.top = `${offset.y}px`;
1503
+ styles2.bottom = "auto";
1504
+ } else if (vertical === "middle") {
1505
+ styles2.top = "50%";
1506
+ styles2.bottom = "auto";
1507
+ } else if (vertical === "bottom") {
1508
+ styles2.top = "auto";
1509
+ styles2.bottom = `${offset.y}px`;
1510
+ }
1511
+ if (horizontal === "left") {
1512
+ styles2.left = `${offset.x}px`;
1513
+ styles2.right = "auto";
1514
+ } else if (horizontal === "center") {
1515
+ styles2.left = "50%";
1516
+ styles2.right = "auto";
1517
+ } else if (horizontal === "right") {
1518
+ styles2.left = "auto";
1519
+ styles2.right = `${offset.x}px`;
1520
+ }
1521
+ if (vertical === "middle" && horizontal === "center") {
1522
+ styles2.transform = `translate(calc(-50% + ${offset.x}px), calc(-50% + ${offset.y}px))`;
1523
+ } else if (vertical === "middle") {
1524
+ styles2.transform = `translateY(calc(-50% + ${offset.y}px))`;
1525
+ } else if (horizontal === "center") {
1526
+ styles2.transform = `translateX(calc(-50% + ${offset.x}px))`;
1527
+ }
1528
+ return styles2;
1529
+ };
1530
+ function LightboxGallery({ settings, content, styles: styles2, portalId, activeEvent }) {
1483
1531
  const [open, setOpen] = React.useState(false);
1484
- const { url: coverUrl } = settings.cover;
1485
- return /* @__PURE__ */ jsxs("div", { children: [
1532
+ const { url } = settings.thumbnailBlock.cover;
1533
+ useEffect(() => {
1534
+ if (activeEvent === "close") {
1535
+ setOpen(false);
1536
+ }
1537
+ if (activeEvent === "open") {
1538
+ setOpen(true);
1539
+ }
1540
+ }, [activeEvent]);
1541
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
1486
1542
  /* @__PURE__ */ jsx(
1487
1543
  "img",
1488
1544
  {
1489
- src: coverUrl,
1545
+ src: url,
1490
1546
  alt: "Cover",
1491
- style: { width: "100%", height: "100%", cursor: "pointer" },
1547
+ style: { width: "100%", height: "100%", cursor: "pointer", objectFit: "cover" },
1492
1548
  onClick: () => setOpen(true)
1493
1549
  }
1494
1550
  ),
@@ -1496,9 +1552,9 @@ function LightboxGallery({ settings, content, styles: styles2, portalId }) {
1496
1552
  ] });
1497
1553
  }
1498
1554
  const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = true, closeOnEsc = true, portalId }) => {
1499
- var _a;
1500
1555
  const [currentIndex, setCurrentIndex] = React.useState(0);
1501
1556
  const lightboxRef = useRef(null);
1557
+ const { appear, triggers, slider, thumbnail, controls, area, caption: caption2, layout } = settings.lightboxBlock;
1502
1558
  const handleBackdropClick = (e) => {
1503
1559
  if (!closeOnBackdropClick) return;
1504
1560
  if (e.target === e.currentTarget) {
@@ -1512,12 +1568,12 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
1512
1568
  }
1513
1569
  };
1514
1570
  const onImageClick = (e) => {
1515
- var _a2, _b;
1516
- if (settings.triggers.type === "click" && settings.triggers.switch === "image") {
1571
+ var _a, _b;
1572
+ if (triggers.type === "click" && triggers.switch === "image") {
1517
1573
  e.stopPropagation();
1518
- (_a2 = lightboxRef.current) == null ? void 0 : _a2.go("+1");
1574
+ (_a = lightboxRef.current) == null ? void 0 : _a.go("+1");
1519
1575
  }
1520
- if (settings.triggers.type === "click" && settings.triggers.switch === "50/50") {
1576
+ if (triggers.type === "click" && triggers.switch === "50/50") {
1521
1577
  e.stopPropagation();
1522
1578
  const img2 = e.currentTarget;
1523
1579
  const rect = img2.getBoundingClientRect();
@@ -1526,7 +1582,7 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
1526
1582
  const imgWidth = rect.width;
1527
1583
  const imgHeight = rect.height;
1528
1584
  let dir;
1529
- if (settings.slider.direction === "horiz") {
1585
+ if (slider.direction === "horiz") {
1530
1586
  dir = clickX < imgWidth / 2 ? "-1" : "+1";
1531
1587
  } else {
1532
1588
  dir = clickY < imgHeight / 2 ? "-1" : "+1";
@@ -1558,15 +1614,14 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
1558
1614
  if (isOpen) setCurrentIndex(0);
1559
1615
  }, [isOpen]);
1560
1616
  const handleArrowClick = (dir) => {
1561
- var _a2;
1562
- (_a2 = lightboxRef.current) == null ? void 0 : _a2.go(dir);
1617
+ var _a;
1618
+ (_a = lightboxRef.current) == null ? void 0 : _a.go(dir);
1563
1619
  };
1564
- const appearDurationMs = ((_a = settings.appear) == null ? void 0 : _a.duration) ? parseInt(settings.appear.duration) : 300;
1620
+ const appearDurationMs = appear.duration ? parseInt(appear.duration) : 300;
1565
1621
  const appearClass = (() => {
1566
- var _a2, _b;
1567
- if (((_a2 = settings.appear) == null ? void 0 : _a2.type) === "fade in") return styles.fadeIn;
1568
- if (((_b = settings.appear) == null ? void 0 : _b.type) === "slide in") {
1569
- switch (settings.appear.direction) {
1622
+ if (appear.type === "fade in") return styles.fadeIn;
1623
+ if (appear.type === "slide in") {
1624
+ switch (appear.direction) {
1570
1625
  case "left":
1571
1626
  return styles.slideInLeft;
1572
1627
  case "right":
@@ -1587,17 +1642,18 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
1587
1642
  "div",
1588
1643
  {
1589
1644
  className: cn(styles.backdropStyle, styles.fadeIn),
1590
- style: { backgroundColor: settings.area.color, backdropFilter: `blur(${settings.area.blur}px)`, animationDuration: `${appearDurationMs}ms`, animationTimingFunction: "ease", animationFillMode: "both" },
1645
+ style: { backgroundColor: area.color, backdropFilter: `blur(${area.blur}px)`, animationDuration: `${appearDurationMs}ms`, animationTimingFunction: "ease", animationFillMode: "both" },
1591
1646
  onClick: handleBackdropClick,
1592
1647
  children: /* @__PURE__ */ jsxs(
1593
1648
  "div",
1594
1649
  {
1595
1650
  className: cn(styles.contentStyle, appearClass),
1596
1651
  style: {
1597
- padding: `${settings.layout.padding.top}px ${settings.layout.padding.right}px ${settings.layout.padding.bottom}px ${settings.layout.padding.left}px`,
1652
+ padding: `${layout.padding.top}px ${layout.padding.right}px ${layout.padding.bottom}px ${layout.padding.left}px`,
1598
1653
  animationDuration: `${appearDurationMs}ms`,
1599
1654
  animationTimingFunction: "ease",
1600
- animationFillMode: "both"
1655
+ animationFillMode: "both",
1656
+ "--splide-speed": triggers.duration || "500ms"
1601
1657
  },
1602
1658
  children: [
1603
1659
  /* @__PURE__ */ jsx(
@@ -1609,23 +1665,27 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
1609
1665
  ref: lightboxRef,
1610
1666
  options: {
1611
1667
  arrows: false,
1612
- speed: settings.triggers.duration ? parseInt(settings.triggers.duration) : 500,
1613
- direction: settings.slider.direction === "horiz" || settings.slider.type === "fade" ? "ltr" : "ttb",
1668
+ speed: triggers.duration ? parseInt(triggers.duration) : 500,
1669
+ direction: slider.direction === "horiz" || slider.type === "fade" || slider.type === "scale" ? "ltr" : "ttb",
1614
1670
  pagination: false,
1615
- drag: settings.triggers.type === "drag",
1671
+ drag: triggers.type === "drag",
1616
1672
  perPage: 1,
1617
1673
  width: "100%",
1618
1674
  height: "100%",
1619
- type: settings.slider.type === "fade" ? "fade" : "loop",
1675
+ type: slider.type === "fade" || slider.type === "scale" ? "fade" : "loop",
1620
1676
  padding: 0,
1621
- rewind: false
1677
+ rewind: (slider.type === "scale" || slider.type === "fade") && appear.repeat !== "close"
1678
+ },
1679
+ style: {
1680
+ "--splide-speed": triggers.duration || "500ms"
1622
1681
  },
1623
1682
  children: content.map((item, index) => /* @__PURE__ */ jsx(SplideSlide, { children: /* @__PURE__ */ jsx("div", { className: styles.imgWrapper, onClick: handleImageWrapperClick, children: /* @__PURE__ */ jsx(
1624
1683
  "img",
1625
1684
  {
1626
1685
  className: cn(styles.imageStyle, {
1627
1686
  [styles.contain]: item.image.objectFit === "contain",
1628
- [styles.cover]: item.image.objectFit === "cover"
1687
+ [styles.cover]: item.image.objectFit === "cover",
1688
+ [styles.scaleSlide]: slider.type === "scale"
1629
1689
  }),
1630
1690
  src: item.image.url,
1631
1691
  alt: item.image.name ?? "",
@@ -1634,28 +1694,28 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
1634
1694
  ) }) }, index))
1635
1695
  }
1636
1696
  ),
1637
- settings.controls.isActive && /* @__PURE__ */ jsxs(Fragment, { children: [
1697
+ controls.isActive && /* @__PURE__ */ jsxs(Fragment, { children: [
1638
1698
  /* @__PURE__ */ jsx(
1639
1699
  "div",
1640
1700
  {
1641
- className: cn(styles.arrow, { [styles.arrowVertical]: settings.slider.direction === "vert" }),
1642
- style: { color: settings.controls.color, ["--arrow-hover-color"]: settings.controls.hover },
1701
+ className: cn(styles.arrow, { [styles.arrowVertical]: slider.direction === "vert" }),
1702
+ style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
1643
1703
  children: /* @__PURE__ */ jsx(
1644
1704
  "button",
1645
1705
  {
1646
1706
  className: styles.arrowInner,
1647
1707
  style: {
1648
- transform: `translate(${scalingValue(settings.controls.offset.x)}, ${scalingValue(settings.controls.offset.y * (settings.slider.direction === "horiz" ? 1 : -1))}) scale(${settings.controls.scale / 100}) rotate(${settings.slider.direction === "horiz" ? "0deg" : "90deg"})`
1708
+ transform: `translate(${scalingValue(controls.offset.x)}, ${scalingValue(controls.offset.y * (slider.direction === "horiz" ? 1 : -1))}) scale(${controls.scale}) rotate(${slider.direction === "horiz" ? "0deg" : "90deg"})`
1649
1709
  },
1650
1710
  onClick: (e) => {
1651
1711
  handleArrowClick("-1");
1652
1712
  },
1653
- children: settings.controls.arrowsImgUrl && /* @__PURE__ */ jsx(
1713
+ children: controls.arrowsImgUrl && /* @__PURE__ */ jsx(
1654
1714
  SvgImage,
1655
1715
  {
1656
- url: settings.controls.arrowsImgUrl,
1657
- fill: settings.controls.color,
1658
- hoverFill: settings.controls.hover,
1716
+ url: controls.arrowsImgUrl,
1717
+ fill: controls.color,
1718
+ hoverFill: controls.hover,
1659
1719
  className: cn(styles.arrowImg, styles.mirror)
1660
1720
  }
1661
1721
  )
@@ -1666,25 +1726,25 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
1666
1726
  /* @__PURE__ */ jsx(
1667
1727
  "div",
1668
1728
  {
1669
- className: cn(styles.arrow, styles.nextArrow, { [styles.arrowVertical]: settings.slider.direction === "vert" }),
1670
- style: { color: settings.controls.color, ["--arrow-hover-color"]: settings.controls.hover },
1729
+ className: cn(styles.arrow, styles.nextArrow, { [styles.arrowVertical]: slider.direction === "vert" }),
1730
+ style: { color: controls.color, ["--arrow-hover-color"]: controls.hover },
1671
1731
  children: /* @__PURE__ */ jsx(
1672
1732
  "button",
1673
1733
  {
1674
1734
  className: styles.arrowInner,
1675
1735
  style: {
1676
- transform: `translate(${scalingValue(settings.controls.offset.x * (settings.slider.direction === "horiz" ? -1 : 1))}, ${scalingValue(settings.controls.offset.y)}) scale(${settings.controls.scale / 100}) rotate(${settings.slider.direction === "horiz" ? "0deg" : "90deg"})`
1736
+ transform: `translate(${scalingValue(controls.offset.x * (slider.direction === "horiz" ? -1 : 1))}, ${scalingValue(controls.offset.y)}) scale(${controls.scale}) rotate(${slider.direction === "horiz" ? "0deg" : "90deg"})`
1677
1737
  },
1678
1738
  onClick: (e) => {
1679
1739
  handleArrowClick("+1");
1680
1740
  },
1681
1741
  "aria-label": "Next",
1682
- children: settings.controls.arrowsImgUrl && /* @__PURE__ */ jsx(
1742
+ children: controls.arrowsImgUrl && /* @__PURE__ */ jsx(
1683
1743
  SvgImage,
1684
1744
  {
1685
- url: settings.controls.arrowsImgUrl,
1686
- fill: settings.controls.color,
1687
- hoverFill: settings.controls.hover,
1745
+ url: controls.arrowsImgUrl,
1746
+ fill: controls.color,
1747
+ hoverFill: controls.hover,
1688
1748
  className: styles.arrowImg
1689
1749
  }
1690
1750
  )
@@ -1693,15 +1753,41 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
1693
1753
  }
1694
1754
  )
1695
1755
  ] }),
1696
- settings.area.closeIconUrl && /* @__PURE__ */ jsx("button", { className: styles.closeButton, style: { top: settings.area.closeIconOffset.y, left: settings.area.closeIconOffset.x }, onClick: onClose, children: /* @__PURE__ */ jsx(SvgImage, { url: settings.area.closeIconUrl, fill: settings.area.color }) }),
1697
- settings.caption.isActive && /* @__PURE__ */ jsx("div", { className: styles.caption, style: { top: settings.caption.offset.y, left: settings.caption.offset.x, color: settings.caption.color }, children: /* @__PURE__ */ jsx(RichTextRenderer, { content: content[currentIndex].imageCaption }) }),
1698
- settings.thumbnail.isActive && /* @__PURE__ */ jsx(
1756
+ area.closeIconUrl && (() => {
1757
+ const positionStyles = getPositionStyles(area.closeIconAlign, area.closeIconOffset);
1758
+ const scaleTransform = `scale(${area.closeIconScale})`;
1759
+ const combinedTransform = positionStyles.transform ? `${positionStyles.transform} ${scaleTransform}` : scaleTransform;
1760
+ return /* @__PURE__ */ jsx(
1761
+ "button",
1762
+ {
1763
+ className: styles.closeButton,
1764
+ style: {
1765
+ ...positionStyles,
1766
+ transform: combinedTransform
1767
+ },
1768
+ onClick: onClose,
1769
+ children: /* @__PURE__ */ jsx(SvgImage, { url: area.closeIconUrl })
1770
+ }
1771
+ );
1772
+ })(),
1773
+ caption2.isActive && /* @__PURE__ */ jsx("div", { className: styles.caption, style: { top: caption2.offset.y, left: caption2.offset.x }, children: /* @__PURE__ */ jsx(RichTextRenderer, { content: content[currentIndex].imageCaption }) }),
1774
+ thumbnail.isActive && /* @__PURE__ */ jsx(
1699
1775
  "div",
1700
1776
  {
1701
- className: cn(styles.thumbsContainer),
1777
+ className: cn(
1778
+ styles.thumbsContainer,
1779
+ {
1780
+ [styles.thumbsContainerVertical]: slider.direction === "vert",
1781
+ [styles.thumbsAlignStart]: thumbnail.align === "start",
1782
+ [styles.thumbsAlignCenter]: thumbnail.align === "center",
1783
+ [styles.thumbsAlignEnd]: thumbnail.align === "end"
1784
+ }
1785
+ ),
1702
1786
  style: {
1703
- gap: `${settings.thumbnail.grid.gap}px`,
1704
- height: `${settings.thumbnail.grid.height}px`
1787
+ gap: `${thumbnail.grid.gap}px`,
1788
+ ...slider.direction === "horiz" ? { height: `${thumbnail.grid.height}px` } : {},
1789
+ ...slider.direction === "vert" ? { width: `${thumbnail.grid.width}px` } : {},
1790
+ ...getPositionStyles(thumbnail.position, thumbnail.offset)
1705
1791
  },
1706
1792
  children: content.map((item, index) => {
1707
1793
  const isActive = index === currentIndex;
@@ -1710,16 +1796,17 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
1710
1796
  {
1711
1797
  className: styles.thumbItem,
1712
1798
  style: {
1713
- transform: `scale(${isActive ? settings.thumbnail.activeState.scale : 1})`,
1714
- height: "100%",
1715
- opacity: isActive ? settings.thumbnail.activeState.opacity : settings.thumbnail.opacity,
1716
- ["--thumb-hover"]: settings.thumbnail.activeState.opacity
1799
+ transform: `scale(${isActive ? thumbnail.activeState.scale : 1})`,
1800
+ ...slider.direction === "horiz" ? { height: "100%" } : {},
1801
+ ...slider.direction === "vert" ? { width: "100%" } : {},
1802
+ opacity: isActive ? thumbnail.activeState.opacity : thumbnail.opacity,
1803
+ ["--thumb-hover"]: thumbnail.activeState.opacity
1717
1804
  },
1718
1805
  onClick: (e) => {
1719
- var _a2;
1806
+ var _a;
1720
1807
  e.stopPropagation();
1721
1808
  setCurrentIndex(index);
1722
- (_a2 = lightboxRef.current) == null ? void 0 : _a2.go(index);
1809
+ (_a = lightboxRef.current) == null ? void 0 : _a.go(index);
1723
1810
  },
1724
1811
  children: /* @__PURE__ */ jsx(
1725
1812
  "img",
@@ -1727,7 +1814,11 @@ const Lightbox = ({ isOpen, onClose, content, settings, closeOnBackdropClick = t
1727
1814
  src: item.image.url,
1728
1815
  alt: item.image.name ?? "",
1729
1816
  className: styles.thumbImage,
1730
- style: { objectFit: settings.thumbnail.fit === "cover" ? "cover" : "contain" }
1817
+ style: {
1818
+ objectFit: thumbnail.fit === "cover" ? "cover" : "contain",
1819
+ ...slider.direction === "horiz" ? { height: "100%" } : {},
1820
+ ...slider.direction === "vert" ? { width: "100%" } : {}
1821
+ }
1731
1822
  }
1732
1823
  )
1733
1824
  },
@@ -1763,218 +1854,215 @@ const LightboxComponent = {
1763
1854
  layoutBased: true,
1764
1855
  type: "object",
1765
1856
  properties: {
1766
- cover: {
1767
- title: "COVER",
1768
- icon: "image",
1769
- tooltip: "Cover Image",
1857
+ thumbnailBlock: {
1858
+ display: {
1859
+ type: "settings-block",
1860
+ triggerEvent: "close"
1861
+ },
1770
1862
  type: "object",
1771
1863
  properties: {
1772
- url: {
1773
- type: "string",
1774
- display: {
1775
- type: "settings-image-input"
1864
+ cover: {
1865
+ title: "COVER",
1866
+ icon: "cover",
1867
+ tooltip: "Cover Image",
1868
+ type: "object",
1869
+ properties: {
1870
+ url: {
1871
+ type: "string",
1872
+ display: {
1873
+ type: "settings-image-input"
1874
+ }
1875
+ }
1776
1876
  }
1777
1877
  }
1778
1878
  }
1779
1879
  },
1780
- appear: {
1781
- title: "APPEAR",
1782
- icon: "transition",
1783
- tooltip: "Appearance",
1784
- type: "object",
1785
- properties: {
1786
- type: {
1787
- type: "string",
1788
- display: {
1789
- type: "ratio-group"
1790
- },
1791
- enum: ["slide in", "fade in", "mix"]
1792
- },
1793
- duration: {
1794
- type: "string",
1795
- label: "hourglass-icon",
1796
- display: {
1797
- type: "step-selector"
1798
- },
1799
- enum: ["100ms", "250ms", "500ms", "1000ms", "1500ms", "2000ms"]
1800
- },
1801
- direction: {
1802
- type: "string",
1803
- title: "FROM",
1804
- display: {
1805
- visible: false,
1806
- type: "direction-control"
1807
- },
1808
- enum: ["top", "bottom", "left", "right"]
1809
- },
1810
- repeat: {
1811
- type: "string",
1812
- title: "Repeat",
1813
- display: {
1814
- type: "ratio-group"
1815
- },
1816
- enum: ["close", "loop"]
1817
- }
1818
- }
1819
- },
1820
- triggers: {
1821
- title: "TRIGGERS",
1822
- icon: "target",
1823
- tooltip: "Triggers",
1824
- type: "object",
1825
- properties: {
1826
- type: {
1827
- type: "string",
1828
- display: {
1829
- type: "ratio-group"
1830
- },
1831
- enum: ["click", "drag", "scroll"]
1832
- },
1833
- switch: {
1834
- type: "string",
1835
- display: {
1836
- type: "ratio-group"
1837
- },
1838
- enum: ["image", "50/50"]
1839
- },
1840
- duration: {
1841
- type: "string",
1842
- label: "hourglass-icon",
1843
- display: {
1844
- type: "step-selector"
1845
- },
1846
- enum: ["100ms", "250ms", "500ms", "1000ms", "1500ms", "2000ms"]
1847
- }
1848
- }
1849
- },
1850
- slider: {
1851
- title: "SLIDER",
1852
- icon: "horizontal-resize",
1853
- tooltip: "Slider",
1854
- type: "object",
1855
- properties: {
1856
- type: {
1857
- type: "string",
1858
- display: {
1859
- type: "ratio-group"
1860
- },
1861
- enum: ["slide", "fade", "scale"]
1862
- },
1863
- direction: {
1864
- type: "string",
1865
- display: {
1866
- visible: false,
1867
- type: "ratio-group"
1868
- },
1869
- enum: ["horiz", "vert"]
1870
- }
1871
- }
1872
- },
1873
- thumbnail: {
1874
- title: "THUMB",
1875
- icon: "pagination",
1876
- tooltip: "Thumbnail",
1880
+ lightboxBlock: {
1881
+ display: {
1882
+ type: "settings-block",
1883
+ triggerEvent: "open"
1884
+ },
1877
1885
  type: "object",
1878
1886
  properties: {
1879
- isActive: {
1880
- type: "boolean",
1881
- display: {
1882
- type: "setting-toggle"
1887
+ appear: {
1888
+ title: "APPEAR",
1889
+ icon: "transition",
1890
+ tooltip: "Appearance",
1891
+ type: "object",
1892
+ properties: {
1893
+ type: {
1894
+ type: "string",
1895
+ display: {
1896
+ type: "ratio-group"
1897
+ },
1898
+ enum: ["slide in", "fade in", "mix"]
1899
+ },
1900
+ duration: {
1901
+ type: "string",
1902
+ label: "T",
1903
+ display: {
1904
+ type: "step-selector"
1905
+ },
1906
+ enum: ["100ms", "250ms", "500ms", "1000ms", "1500ms", "2000ms"]
1907
+ },
1908
+ direction: {
1909
+ type: "string",
1910
+ title: "FROM",
1911
+ display: {
1912
+ visible: true,
1913
+ type: "direction-control"
1914
+ },
1915
+ enum: ["top", "left", "right", "bottom"]
1916
+ },
1917
+ repeat: {
1918
+ type: "string",
1919
+ title: "Repeat",
1920
+ display: {
1921
+ type: "ratio-group"
1922
+ },
1923
+ enum: ["close", "loop"]
1924
+ }
1883
1925
  }
1884
1926
  },
1885
- position: {
1886
- display: {
1887
- type: "align-grid"
1888
- },
1889
- type: "string",
1890
- enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
1891
- },
1892
- fit: {
1893
- type: "string",
1894
- display: {
1895
- type: "ratio-group"
1896
- },
1897
- enum: ["cover", "fit"]
1898
- },
1899
- align: {
1900
- type: "string",
1901
- title: "Align",
1902
- display: {
1903
- type: "ratio-group"
1904
- },
1905
- enum: ["top", "center", "bottom"]
1906
- },
1907
1927
  triggers: {
1908
- type: "string",
1909
- title: "Triggers",
1910
- display: {
1911
- type: "ratio-group"
1912
- },
1913
- enum: ["click", "hover"]
1914
- },
1915
- grid: {
1928
+ title: "TRIGGERS",
1929
+ icon: "target",
1930
+ tooltip: "Triggers",
1916
1931
  type: "object",
1917
- title: "Grid",
1918
- display: {
1919
- type: "group"
1920
- },
1921
1932
  properties: {
1922
- height: {
1923
- type: "number",
1924
- label: "H",
1933
+ type: {
1934
+ type: "string",
1925
1935
  display: {
1926
- type: "numeric-input"
1927
- }
1936
+ type: "ratio-group"
1937
+ },
1938
+ enum: ["click", "drag"]
1928
1939
  },
1929
- gap: {
1930
- type: "number",
1931
- label: "Gap",
1940
+ switch: {
1941
+ type: "string",
1932
1942
  display: {
1933
- type: "numeric-input"
1934
- }
1943
+ type: "ratio-group"
1944
+ },
1945
+ enum: ["image", "50/50"]
1946
+ },
1947
+ duration: {
1948
+ type: "string",
1949
+ label: "T",
1950
+ display: {
1951
+ type: "step-selector"
1952
+ },
1953
+ enum: ["100ms", "250ms", "500ms", "1000ms", "1500ms", "2000ms"]
1935
1954
  }
1936
1955
  }
1937
1956
  },
1938
- offset: {
1957
+ slider: {
1958
+ title: "SLIDER",
1959
+ icon: "horizontal-resize",
1960
+ tooltip: "Slider",
1939
1961
  type: "object",
1940
- display: {
1941
- type: "offset-controls"
1942
- },
1943
1962
  properties: {
1944
- x: {
1945
- type: "number"
1963
+ type: {
1964
+ type: "string",
1965
+ display: {
1966
+ type: "ratio-group"
1967
+ },
1968
+ enum: ["slide", "fade", "scale"]
1946
1969
  },
1947
- y: {
1948
- type: "number"
1970
+ direction: {
1971
+ type: "string",
1972
+ display: {
1973
+ type: "ratio-group"
1974
+ },
1975
+ enum: ["horiz", "vert"]
1949
1976
  }
1950
1977
  }
1951
1978
  },
1952
- opacity: {
1953
- type: "number",
1954
- title: "Opacity",
1955
- label: "icon:opacity",
1956
- min: 0,
1957
- max: 100,
1958
- step: 1,
1959
- display: {
1960
- type: "numeric-input"
1961
- }
1962
- },
1963
- activeState: {
1979
+ thumbnail: {
1980
+ title: "THUMB",
1981
+ icon: "thumbnail",
1982
+ tooltip: "Thumbnail",
1964
1983
  type: "object",
1965
- title: "ACTIVE",
1966
- display: {
1967
- type: "group"
1968
- },
1969
1984
  properties: {
1970
- scale: {
1971
- type: "number",
1972
- title: "Scale",
1973
- min: 1,
1974
- max: 2,
1975
- step: 0.1,
1985
+ isActive: {
1986
+ type: "boolean",
1976
1987
  display: {
1977
- type: "range-control"
1988
+ type: "setting-toggle"
1989
+ }
1990
+ },
1991
+ position: {
1992
+ display: {
1993
+ type: "align-grid"
1994
+ },
1995
+ type: "string",
1996
+ enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
1997
+ },
1998
+ fit: {
1999
+ type: "string",
2000
+ display: {
2001
+ type: "ratio-group"
2002
+ },
2003
+ enum: ["cover", "fit"]
2004
+ },
2005
+ align: {
2006
+ type: "string",
2007
+ title: "Align",
2008
+ display: {
2009
+ type: "align-group",
2010
+ direction: "horizontal"
2011
+ },
2012
+ enum: ["start", "center", "end"]
2013
+ },
2014
+ triggers: {
2015
+ type: "string",
2016
+ title: "Triggers",
2017
+ display: {
2018
+ type: "ratio-group",
2019
+ direction: "horizontal"
2020
+ },
2021
+ enum: ["clk", "hov"]
2022
+ },
2023
+ grid: {
2024
+ type: "object",
2025
+ title: "Grid",
2026
+ display: {
2027
+ type: "group"
2028
+ },
2029
+ properties: {
2030
+ height: {
2031
+ type: "number",
2032
+ label: "H",
2033
+ display: {
2034
+ type: "numeric-input"
2035
+ }
2036
+ },
2037
+ width: {
2038
+ type: "number",
2039
+ label: "W",
2040
+ display: {
2041
+ type: "numeric-input",
2042
+ visible: false
2043
+ }
2044
+ },
2045
+ gap: {
2046
+ type: "number",
2047
+ label: "Gap",
2048
+ display: {
2049
+ type: "numeric-input"
2050
+ }
2051
+ }
2052
+ }
2053
+ },
2054
+ offset: {
2055
+ type: "object",
2056
+ display: {
2057
+ type: "offset-controls"
2058
+ },
2059
+ properties: {
2060
+ x: {
2061
+ type: "number"
2062
+ },
2063
+ y: {
2064
+ type: "number"
2065
+ }
1978
2066
  }
1979
2067
  },
1980
2068
  opacity: {
@@ -1987,278 +2075,322 @@ const LightboxComponent = {
1987
2075
  display: {
1988
2076
  type: "numeric-input"
1989
2077
  }
1990
- }
1991
- }
1992
- }
1993
- }
1994
- },
1995
- layout: {
1996
- title: "LAYOUT",
1997
- icon: "layout",
1998
- tooltip: "Layout",
1999
- type: "object",
2000
- properties: {
2001
- position: {
2002
- display: {
2003
- type: "align-grid"
2004
- },
2005
- type: "string",
2006
- enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
2007
- },
2008
- offset: {
2009
- type: "object",
2010
- display: {
2011
- type: "offset-controls"
2012
- },
2013
- properties: {
2014
- x: {
2015
- type: "number"
2016
2078
  },
2017
- y: {
2018
- type: "number"
2079
+ activeState: {
2080
+ type: "object",
2081
+ title: "ACTIVE",
2082
+ display: {
2083
+ type: "group"
2084
+ },
2085
+ properties: {
2086
+ scale: {
2087
+ type: "number",
2088
+ title: "Scale",
2089
+ min: 0.5,
2090
+ max: 5,
2091
+ step: 0.1,
2092
+ display: {
2093
+ type: "range-control"
2094
+ }
2095
+ },
2096
+ opacity: {
2097
+ type: "number",
2098
+ title: "Opacity",
2099
+ label: "icon:opacity",
2100
+ min: 0,
2101
+ max: 100,
2102
+ step: 1,
2103
+ display: {
2104
+ type: "numeric-input"
2105
+ }
2106
+ }
2107
+ }
2019
2108
  }
2020
2109
  }
2021
2110
  },
2022
- padding: {
2111
+ layout: {
2112
+ title: "LAYOUT",
2113
+ icon: "layout",
2114
+ tooltip: "Layout",
2023
2115
  type: "object",
2024
- title: "Padding",
2025
- display: {
2026
- type: "padding-controls"
2027
- },
2028
2116
  properties: {
2029
- top: {
2030
- type: "number"
2031
- },
2032
- right: {
2033
- type: "number"
2117
+ position: {
2118
+ display: {
2119
+ type: "align-grid"
2120
+ },
2121
+ type: "string",
2122
+ enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
2034
2123
  },
2035
- bottom: {
2036
- type: "number"
2124
+ offset: {
2125
+ type: "object",
2126
+ display: {
2127
+ type: "offset-controls"
2128
+ },
2129
+ properties: {
2130
+ x: {
2131
+ type: "number"
2132
+ },
2133
+ y: {
2134
+ type: "number"
2135
+ }
2136
+ }
2037
2137
  },
2038
- left: {
2039
- type: "number"
2138
+ padding: {
2139
+ type: "object",
2140
+ title: "Padding",
2141
+ display: {
2142
+ type: "padding-controls"
2143
+ },
2144
+ properties: {
2145
+ top: {
2146
+ type: "number"
2147
+ },
2148
+ left: {
2149
+ type: "number"
2150
+ },
2151
+ right: {
2152
+ type: "number"
2153
+ },
2154
+ bottom: {
2155
+ type: "number"
2156
+ }
2157
+ }
2040
2158
  }
2041
2159
  }
2042
- }
2043
- }
2044
- },
2045
- controls: {
2046
- title: "CONTROLS",
2047
- icon: "controls",
2048
- tooltip: "Controls",
2049
- type: "object",
2050
- properties: {
2051
- isActive: {
2052
- type: "boolean",
2053
- display: {
2054
- type: "setting-toggle"
2055
- }
2056
- },
2057
- arrowsImgUrl: {
2058
- type: ["string", "null"],
2059
- display: {
2060
- type: "settings-image-input"
2061
- }
2062
2160
  },
2063
- offset: {
2161
+ controls: {
2162
+ title: "CONTROLS",
2163
+ icon: "controls",
2164
+ tooltip: "Controls",
2064
2165
  type: "object",
2065
- display: {
2066
- type: "offset-controls"
2067
- },
2068
2166
  properties: {
2069
- x: {
2070
- type: "number"
2167
+ isActive: {
2168
+ type: "boolean",
2169
+ display: {
2170
+ type: "setting-toggle"
2171
+ }
2071
2172
  },
2072
- y: {
2073
- type: "number"
2173
+ arrowsImgUrl: {
2174
+ type: ["string", "null"],
2175
+ display: {
2176
+ type: "settings-image-input"
2177
+ }
2178
+ },
2179
+ offset: {
2180
+ type: "object",
2181
+ display: {
2182
+ type: "offset-controls"
2183
+ },
2184
+ properties: {
2185
+ x: {
2186
+ type: "number"
2187
+ },
2188
+ y: {
2189
+ type: "number"
2190
+ }
2191
+ }
2192
+ },
2193
+ scale: {
2194
+ type: "number",
2195
+ title: "Scale",
2196
+ min: 0.5,
2197
+ max: 5,
2198
+ step: 0.1,
2199
+ display: {
2200
+ type: "range-control"
2201
+ }
2202
+ },
2203
+ color: {
2204
+ title: "Color",
2205
+ type: "string",
2206
+ display: {
2207
+ type: "settings-color-picker",
2208
+ format: "single"
2209
+ }
2210
+ },
2211
+ hover: {
2212
+ title: "Hover",
2213
+ type: "string",
2214
+ display: {
2215
+ type: "settings-color-picker",
2216
+ format: "single"
2217
+ }
2074
2218
  }
2075
2219
  }
2076
2220
  },
2077
- scale: {
2078
- type: "number",
2079
- title: "Scale",
2080
- min: 0,
2081
- max: 1,
2082
- display: {
2083
- type: "range-control"
2084
- }
2085
- },
2086
- color: {
2087
- title: "Color",
2088
- type: "string",
2089
- display: {
2090
- type: "settings-color-picker",
2091
- format: "single"
2092
- }
2093
- },
2094
- hover: {
2095
- title: "Hover",
2096
- type: "string",
2097
- display: {
2098
- type: "settings-color-picker",
2099
- format: "single"
2100
- }
2101
- }
2102
- }
2103
- },
2104
- area: {
2105
- title: "AREA",
2106
- icon: "background",
2107
- tooltip: "Area",
2108
- type: "object",
2109
- properties: {
2110
- color: {
2111
- type: "string",
2112
- display: {
2113
- type: "settings-color-picker",
2114
- format: "single"
2115
- }
2116
- },
2117
- blur: {
2118
- type: "number",
2119
- label: "icon:blur",
2120
- display: {
2121
- type: "numeric-input"
2122
- }
2123
- },
2124
- closeIconUrl: {
2125
- type: ["string", "null"],
2126
- title: "CLOSE ICON",
2127
- display: {
2128
- type: "settings-image-input"
2129
- }
2130
- },
2131
- closeIconAlign: {
2132
- display: {
2133
- type: "align-grid",
2134
- direction: "horizontal"
2135
- },
2136
- type: "string",
2137
- enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
2138
- },
2139
- closeIconOffset: {
2221
+ area: {
2222
+ title: "AREA",
2223
+ icon: "area",
2224
+ tooltip: "Area",
2140
2225
  type: "object",
2141
- display: {
2142
- type: "offset-controls"
2143
- },
2144
2226
  properties: {
2145
- x: {
2146
- type: "number"
2227
+ color: {
2228
+ type: "string",
2229
+ display: {
2230
+ type: "settings-color-picker",
2231
+ format: "single"
2232
+ }
2147
2233
  },
2148
- y: {
2149
- type: "number"
2234
+ blur: {
2235
+ type: "number",
2236
+ label: "icon:blur",
2237
+ display: {
2238
+ type: "numeric-input"
2239
+ }
2240
+ },
2241
+ closeIconUrl: {
2242
+ type: ["string", "null"],
2243
+ title: "CLOSE ICON",
2244
+ display: {
2245
+ type: "settings-image-input"
2246
+ }
2247
+ },
2248
+ closeIconAlign: {
2249
+ display: {
2250
+ type: "align-grid",
2251
+ direction: "horizontal"
2252
+ },
2253
+ type: "string",
2254
+ enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
2255
+ },
2256
+ closeIconScale: {
2257
+ type: "number",
2258
+ title: "Scale",
2259
+ min: 0.5,
2260
+ max: 5,
2261
+ step: 0.1,
2262
+ display: {
2263
+ type: "range-control"
2264
+ }
2265
+ },
2266
+ closeIconOffset: {
2267
+ type: "object",
2268
+ display: {
2269
+ type: "offset-controls"
2270
+ },
2271
+ properties: {
2272
+ x: {
2273
+ type: "number"
2274
+ },
2275
+ y: {
2276
+ type: "number"
2277
+ }
2278
+ }
2150
2279
  }
2151
2280
  }
2152
- }
2153
- }
2154
- },
2155
- caption: {
2156
- title: "DESC",
2157
- icon: "text-icon",
2158
- tooltip: "Description",
2159
- type: "object",
2160
- properties: {
2161
- alignment: {
2162
- type: "string",
2163
- display: {
2164
- type: "align-grid"
2165
- },
2166
- enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
2167
2281
  },
2168
- offset: {
2282
+ caption: {
2283
+ title: "DESC",
2284
+ icon: "text-icon",
2285
+ tooltip: "Description",
2169
2286
  type: "object",
2170
- display: {
2171
- type: "offset-controls"
2172
- },
2173
2287
  properties: {
2174
- x: {
2175
- type: "number"
2288
+ isActive: {
2289
+ type: "boolean",
2290
+ display: {
2291
+ type: "setting-toggle"
2292
+ }
2176
2293
  },
2177
- y: {
2178
- type: "number"
2294
+ alignment: {
2295
+ type: "string",
2296
+ display: {
2297
+ type: "align-grid"
2298
+ },
2299
+ enum: ["top-left", "top-center", "top-right", "middle-left", "middle-center", "middle-right", "bottom-left", "bottom-center", "bottom-right"]
2300
+ },
2301
+ offset: {
2302
+ type: "object",
2303
+ display: {
2304
+ type: "offset-controls"
2305
+ },
2306
+ properties: {
2307
+ x: {
2308
+ type: "number"
2309
+ },
2310
+ y: {
2311
+ type: "number"
2312
+ }
2313
+ }
2314
+ },
2315
+ hover: {
2316
+ title: "Hover",
2317
+ type: "string",
2318
+ display: {
2319
+ type: "settings-color-picker",
2320
+ format: "single"
2321
+ }
2179
2322
  }
2180
2323
  }
2181
- },
2182
- color: {
2183
- title: "Color",
2184
- type: "string",
2185
- display: {
2186
- type: "settings-color-picker",
2187
- format: "single"
2188
- }
2189
- },
2190
- hover: {
2191
- title: "Hover",
2192
- type: "string",
2193
- display: {
2194
- type: "settings-color-picker",
2195
- format: "single"
2196
- }
2197
2324
  }
2198
2325
  }
2199
2326
  }
2200
2327
  },
2201
2328
  default: {
2202
- cover: {
2203
- url: "https://cdn.cntrl.site/projects/01JJKT02AWY2FGN2QJ7A173RNZ/articles-assets/01K7ERMHNP08T27H1649S67NZV.png"
2204
- },
2205
- appear: {
2206
- type: "slide in",
2207
- duration: "1000ms",
2208
- direction: "right",
2209
- repeat: "close"
2210
- },
2211
- triggers: {
2212
- type: "click",
2213
- switch: "image",
2214
- duration: "2000ms"
2215
- },
2216
- slider: {
2217
- type: "fade",
2218
- direction: "horiz"
2329
+ thumbnailBlock: {
2330
+ cover: {
2331
+ url: "https://cdn.cntrl.site/projects/01JJKT02AWY2FGN2QJ7A173RNZ/articles-assets/01K7ERMHNP08T27H1649S67NZV.png"
2332
+ }
2219
2333
  },
2220
- thumbnail: {
2221
- isActive: true,
2222
- position: "bottom-center",
2223
- fit: "cover",
2224
- align: "center",
2225
- triggers: "click",
2226
- grid: {
2227
- height: 60,
2228
- gap: 8
2334
+ lightboxBlock: {
2335
+ appear: {
2336
+ type: "slide in",
2337
+ duration: "1000ms",
2338
+ direction: "right",
2339
+ repeat: "close"
2340
+ },
2341
+ triggers: {
2342
+ type: "click",
2343
+ switch: "image",
2344
+ duration: "2000ms"
2229
2345
  },
2230
- offset: { x: 0, y: 0 },
2231
- opacity: 100,
2232
- activeState: {
2346
+ slider: {
2347
+ type: "fade",
2348
+ direction: "horiz"
2349
+ },
2350
+ thumbnail: {
2351
+ isActive: true,
2352
+ position: "bottom-center",
2353
+ fit: "cover",
2354
+ align: "center",
2355
+ triggers: "clk",
2356
+ grid: {
2357
+ height: 60,
2358
+ gap: 8
2359
+ },
2360
+ offset: { x: 0, y: 0 },
2361
+ opacity: 100,
2362
+ activeState: {
2363
+ scale: 1,
2364
+ opacity: 100
2365
+ }
2366
+ },
2367
+ layout: {
2368
+ position: "middle-center",
2369
+ offset: { x: 0, y: 0 },
2370
+ padding: { top: 0, right: 0, bottom: 0, left: 0 }
2371
+ },
2372
+ controls: {
2373
+ isActive: true,
2374
+ arrowsImgUrl: null,
2375
+ offset: { x: 0, y: 0 },
2233
2376
  scale: 1,
2234
- opacity: 100
2377
+ color: "#000000",
2378
+ hover: "#cccccc"
2379
+ },
2380
+ area: {
2381
+ color: "rgba(0,0,0,0.9)",
2382
+ blur: 0,
2383
+ closeIconUrl: null,
2384
+ closeIconAlign: "top-right",
2385
+ closeIconOffset: { x: 0, y: 0 },
2386
+ closeIconScale: 1
2387
+ },
2388
+ caption: {
2389
+ isActive: true,
2390
+ alignment: "middle-center",
2391
+ offset: { x: 0, y: 0 },
2392
+ hover: "#cccccc"
2235
2393
  }
2236
- },
2237
- layout: {
2238
- position: "middle-center",
2239
- offset: { x: 0, y: 0 },
2240
- padding: { top: 0, right: 0, bottom: 0, left: 0 }
2241
- },
2242
- controls: {
2243
- isActive: true,
2244
- arrowsImgUrl: null,
2245
- offset: { x: 0, y: 0 },
2246
- scale: 1,
2247
- color: "#000000",
2248
- hover: "#cccccc"
2249
- },
2250
- area: {
2251
- color: "rgba(0,0,0,0.9)",
2252
- blur: 0,
2253
- closeIconUrl: null,
2254
- closeIconAlign: "top-right",
2255
- closeIconOffset: { x: 12, y: 12 }
2256
- },
2257
- caption: {
2258
- alignment: "middle-center",
2259
- offset: { x: 0, y: 0 },
2260
- color: "#000000",
2261
- hover: "#cccccc"
2262
2394
  }
2263
2395
  },
2264
2396
  displayRules: [
@@ -2269,7 +2401,67 @@ const LightboxComponent = {
2269
2401
  },
2270
2402
  then: {
2271
2403
  value: true,
2272
- name: "properties.appear.properties.direction.display.visible"
2404
+ name: "properties.lightboxBlock.properties.appear.properties.direction.display.visible"
2405
+ }
2406
+ },
2407
+ {
2408
+ if: {
2409
+ name: "slider.direction",
2410
+ value: "vert"
2411
+ },
2412
+ then: {
2413
+ name: "properties.lightboxBlock.properties.thumbnail.properties.position.display.direction",
2414
+ value: "vertical"
2415
+ }
2416
+ },
2417
+ {
2418
+ if: {
2419
+ name: "triggers.type",
2420
+ value: "drag"
2421
+ },
2422
+ then: {
2423
+ name: "properties.lightboxBlock.properties.triggers.properties.switch.display.visible",
2424
+ value: false
2425
+ }
2426
+ },
2427
+ {
2428
+ if: {
2429
+ name: "triggers.type",
2430
+ value: "drag"
2431
+ },
2432
+ then: {
2433
+ name: "properties.lightboxBlock.properties.triggers.properties.duration.display.visible",
2434
+ value: false
2435
+ }
2436
+ },
2437
+ {
2438
+ if: {
2439
+ name: "slider.direction",
2440
+ value: "vert"
2441
+ },
2442
+ then: {
2443
+ name: "properties.lightboxBlock.properties.thumbnail.properties.grid.properties.width.display.visible",
2444
+ value: true
2445
+ }
2446
+ },
2447
+ {
2448
+ if: {
2449
+ name: "slider.direction",
2450
+ value: "vert"
2451
+ },
2452
+ then: {
2453
+ name: "properties.lightboxBlock.properties.thumbnail.properties.grid.properties.height.display.visible",
2454
+ value: false
2455
+ }
2456
+ },
2457
+ {
2458
+ if: {
2459
+ name: "appear.type",
2460
+ value: "fade in"
2461
+ },
2462
+ then: {
2463
+ name: "properties.lightboxBlock.properties.appear.properties.direction.display.visible",
2464
+ value: false
2273
2465
  }
2274
2466
  }
2275
2467
  ]
@@ -2286,9 +2478,9 @@ const LightboxComponent = {
2286
2478
  properties: {
2287
2479
  image: {
2288
2480
  type: "object",
2481
+ label: "Image",
2289
2482
  display: {
2290
2483
  type: "media-input",
2291
- label: "Image",
2292
2484
  minWidth: 58,
2293
2485
  maxWidth: 108
2294
2486
  },
@@ -2307,10 +2499,10 @@ const LightboxComponent = {
2307
2499
  required: ["url", "name"]
2308
2500
  },
2309
2501
  imageCaption: {
2502
+ label: "Description",
2503
+ placeholder: "Add Caption...",
2310
2504
  display: {
2311
2505
  type: "rich-text",
2312
- label: "Description",
2313
- placeholder: "Add Caption...",
2314
2506
  minWidth: 300,
2315
2507
  maxWidth: 550
2316
2508
  }