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