@cntrl-site/sdk 1.22.9 → 1.22.12

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.
@@ -52,7 +52,11 @@ type Triggers = {
52
52
  type SliderSettings = {
53
53
  controls: SliderControls;
54
54
  pagination: SliderPagination;
55
- direction: 'horizontal' | 'vertical';
55
+ direction: 'horiz' | 'vert';
56
+ transition: {
57
+ type: 'slide' | 'fade in';
58
+ duration: string;
59
+ };
56
60
  caption: SliderCaption;
57
61
  triggers: Triggers;
58
62
  };
@@ -21,6 +21,7 @@ export declare const ControlSliderComponent: {
21
21
  triggers: {
22
22
  name: string;
23
23
  icon: string;
24
+ tooltip: string;
24
25
  type: string;
25
26
  properties: {
26
27
  triggersList: {
@@ -50,15 +51,40 @@ export declare const ControlSliderComponent: {
50
51
  direction: {
51
52
  name: string;
52
53
  icon: string;
54
+ tooltip: string;
53
55
  type: string;
54
56
  display: {
55
57
  type: string;
56
58
  };
57
59
  enum: string[];
58
60
  };
61
+ transition: {
62
+ name: string;
63
+ icon: string;
64
+ tooltip: string;
65
+ type: string;
66
+ properties: {
67
+ type: {
68
+ type: string;
69
+ display: {
70
+ type: string;
71
+ };
72
+ enum: string[];
73
+ };
74
+ duration: {
75
+ type: string;
76
+ label: string;
77
+ display: {
78
+ type: string;
79
+ };
80
+ enum: string[];
81
+ };
82
+ };
83
+ };
59
84
  controls: {
60
85
  name: string;
61
86
  icon: string;
87
+ tooltip: string;
62
88
  type: string;
63
89
  properties: {
64
90
  isActive: {
@@ -117,6 +143,7 @@ export declare const ControlSliderComponent: {
117
143
  pagination: {
118
144
  name: string;
119
145
  icon: string;
146
+ tooltip: string;
120
147
  type: string;
121
148
  properties: {
122
149
  isActive: {
@@ -181,6 +208,7 @@ export declare const ControlSliderComponent: {
181
208
  caption: {
182
209
  name: string;
183
210
  icon: string;
211
+ tooltip: string;
184
212
  type: string;
185
213
  properties: {
186
214
  isActive: {
@@ -241,6 +269,10 @@ export declare const ControlSliderComponent: {
241
269
  color: string;
242
270
  hover: string;
243
271
  };
272
+ transition: {
273
+ type: string;
274
+ duration: string;
275
+ };
244
276
  pagination: {
245
277
  isActive: boolean;
246
278
  scale: number;
package/dist/index.js CHANGED
@@ -1224,6 +1224,7 @@ const nextArrow = "ControlSlider-module__nextArrow___-30Yc";
1224
1224
  const arrowInner = "ControlSlider-module__arrowInner___aEra3";
1225
1225
  const arrowIcon = "ControlSlider-module__arrowIcon___S4ztF";
1226
1226
  const arrowImg = "ControlSlider-module__arrowImg___2dwJW";
1227
+ const mirror = "ControlSlider-module__mirror___brd6U";
1227
1228
  const pagination = "ControlSlider-module__pagination___bicLF";
1228
1229
  const paginationInner = "ControlSlider-module__paginationInner___bT-P-";
1229
1230
  const paginationVertical = "ControlSlider-module__paginationVertical___zYqKw";
@@ -1242,6 +1243,7 @@ const imgWrapper = "ControlSlider-module__imgWrapper___UjEgB";
1242
1243
  const captionBlock = "ControlSlider-module__captionBlock___dJ6-j";
1243
1244
  const captionTextWrapper = "ControlSlider-module__captionTextWrapper___HFlpf";
1244
1245
  const captionText = "ControlSlider-module__captionText___uGBVc";
1246
+ const active = "ControlSlider-module__active___WZK4G";
1245
1247
  const withPointerEvents = "ControlSlider-module__withPointerEvents___t-18M";
1246
1248
  const topLeftAlignment = "ControlSlider-module__topLeftAlignment___zjnGM";
1247
1249
  const topCenterAlignment = "ControlSlider-module__topCenterAlignment___gD1xW";
@@ -1265,6 +1267,7 @@ const styles$2 = {
1265
1267
  arrowInner,
1266
1268
  arrowIcon,
1267
1269
  arrowImg,
1270
+ mirror,
1268
1271
  pagination,
1269
1272
  paginationInner,
1270
1273
  paginationVertical,
@@ -1283,6 +1286,7 @@ const styles$2 = {
1283
1286
  captionBlock,
1284
1287
  captionTextWrapper,
1285
1288
  captionText,
1289
+ active,
1286
1290
  withPointerEvents,
1287
1291
  topLeftAlignment,
1288
1292
  topCenterAlignment,
@@ -1378,7 +1382,9 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1378
1382
  const [sliderDimensions, setSliderDimensions] = react.useState(void 0);
1379
1383
  const [wrapperRef, setWrapperRef] = react.useState(null);
1380
1384
  const [currentSlideIndex, setCurrentSlideIndex] = react.useState(0);
1381
- const { direction } = settings;
1385
+ const [key, setKey] = react.useState(0);
1386
+ const { direction, transition, controls, pagination: pagination2, caption, triggers } = settings;
1387
+ const prevSliderTypeRef = react.useRef(transition.type);
1382
1388
  const { x: controlsOffsetX, y: controlsOffsetY } = settings.controls.offset;
1383
1389
  const handleArrowClick = (dir) => {
1384
1390
  if (sliderRef) {
@@ -1398,6 +1404,11 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1398
1404
  observer.observe(wrapperRef);
1399
1405
  return () => observer.unobserve(wrapperRef);
1400
1406
  }, [wrapperRef]);
1407
+ react.useEffect(() => {
1408
+ if (!sliderRef || prevSliderTypeRef.current === transition.type) return;
1409
+ setKey((prev) => prev + 1);
1410
+ prevSliderTypeRef.current = transition.type;
1411
+ }, [transition.type]);
1401
1412
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(styles$2.wrapper, { [styles$2.editor]: isEditor }), ref: setWrapperRef, children: [
1402
1413
  settings.caption.isActive && /* @__PURE__ */ jsxRuntime.jsx(
1403
1414
  "div",
@@ -1410,8 +1421,9 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1410
1421
  children: content.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
1411
1422
  "div",
1412
1423
  {
1413
- className: cn(styles$2.captionText, alignmentClassName[settings.caption.alignment], {
1414
- [styles$2.withPointerEvents]: index === currentSlideIndex && isEditor
1424
+ className: cn(styles$2.captionText, alignmentClassName[caption.alignment], {
1425
+ [styles$2.withPointerEvents]: index === currentSlideIndex && isEditor,
1426
+ [styles$2.active]: index === currentSlideIndex
1415
1427
  }),
1416
1428
  style: {
1417
1429
  fontFamily: fontSettings.fontFamily,
@@ -1427,7 +1439,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1427
1439
  textDecoration: textAppearance.textDecoration ?? "none",
1428
1440
  fontVariant: textAppearance.fontVariant ?? "normal",
1429
1441
  color,
1430
- opacity: index === currentSlideIndex ? 1 : 0
1442
+ transitionDuration: transition.duration ? `${Math.round(parseInt(transition.duration) / 2)}ms` : "500ms"
1431
1443
  },
1432
1444
  children: /* @__PURE__ */ jsxRuntime.jsx(
1433
1445
  "div",
@@ -1435,10 +1447,10 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1435
1447
  "data-styles": "caption",
1436
1448
  className: styles$2.captionTextInner,
1437
1449
  style: {
1438
- "--link-hover-color": settings.caption.hover,
1450
+ "--link-hover-color": caption.hover,
1439
1451
  position: "relative",
1440
- top: scalingValue(settings.caption.offset.y, isEditor),
1441
- left: scalingValue(settings.caption.offset.x, isEditor)
1452
+ top: scalingValue(caption.offset.y, isEditor),
1453
+ left: scalingValue(caption.offset.x, isEditor)
1442
1454
  },
1443
1455
  children: /* @__PURE__ */ jsxRuntime.jsx(RichTextRenderer, { content: item.imageCaption })
1444
1456
  }
@@ -1459,18 +1471,19 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1459
1471
  ref: setSliderRef,
1460
1472
  options: {
1461
1473
  arrows: false,
1462
- speed: 600,
1463
- autoplay: isEditor ? false : settings.triggers.autoPlay !== null,
1464
- ...settings.triggers.autoPlay !== null && {
1465
- interval: parseInt(settings.triggers.autoPlay) * 1e3
1474
+ speed: transition.duration ? parseInt(transition.duration) : 500,
1475
+ autoplay: isEditor ? false : triggers.autoPlay !== null,
1476
+ ...triggers.autoPlay !== null && {
1477
+ interval: parseInt(triggers.autoPlay) * 1e3
1466
1478
  },
1467
- direction: direction === "horizontal" ? "ltr" : "ttb",
1479
+ direction: direction === "horiz" || transition.type === "fade in" ? "ltr" : "ttb",
1468
1480
  pagination: false,
1469
- drag: settings.triggers.triggersList.drag,
1481
+ drag: triggers.triggersList.drag,
1470
1482
  perPage: 1,
1471
1483
  width: sliderDimensions ? sliderDimensions == null ? void 0 : sliderDimensions.width : "100%",
1472
1484
  height: sliderDimensions ? sliderDimensions == null ? void 0 : sliderDimensions.height : "100%",
1473
- type: "loop"
1485
+ type: transition.type === "fade in" ? "fade" : "loop",
1486
+ rewind: true
1474
1487
  },
1475
1488
  children: content.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(reactSplide.SplideSlide, { children: /* @__PURE__ */ jsxRuntime.jsx(
1476
1489
  "div",
@@ -1498,18 +1511,19 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1498
1511
  )
1499
1512
  }
1500
1513
  ) }, index))
1501
- }
1514
+ },
1515
+ key
1502
1516
  ),
1503
- settings.controls.isActive && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1517
+ controls.isActive && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1504
1518
  /* @__PURE__ */ jsxRuntime.jsx(
1505
1519
  "div",
1506
1520
  {
1507
1521
  className: cn(styles$2.arrow, {
1508
- [styles$2.arrowVertical]: settings.direction === "vertical"
1522
+ [styles$2.arrowVertical]: direction === "vert"
1509
1523
  }),
1510
1524
  style: {
1511
- color: settings.controls.color,
1512
- ["--arrow-hover-color"]: settings.controls.hover
1525
+ color: controls.color,
1526
+ ["--arrow-hover-color"]: controls.hover
1513
1527
  },
1514
1528
  children: /* @__PURE__ */ jsxRuntime.jsxs(
1515
1529
  "button",
@@ -1519,19 +1533,19 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1519
1533
  },
1520
1534
  className: styles$2.arrowInner,
1521
1535
  style: {
1522
- transform: `translate(${scalingValue(controlsOffsetX, isEditor)}, ${scalingValue(controlsOffsetY * (direction === "horizontal" ? 1 : -1), isEditor)}) scale(${settings.controls.scale / 100}) rotate(${direction === "horizontal" ? "180deg" : "-90deg"})`
1536
+ transform: `translate(${scalingValue(controlsOffsetX, isEditor)}, ${scalingValue(controlsOffsetY * (direction === "horiz" ? 1 : -1), isEditor)}) scale(${settings.controls.scale / 100}) rotate(${direction === "horiz" ? "0deg" : "90deg"})`
1523
1537
  },
1524
1538
  children: [
1525
- settings.controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
1539
+ controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
1526
1540
  SvgImage,
1527
1541
  {
1528
- url: settings.controls.arrowsImgUrl,
1529
- fill: settings.controls.color,
1530
- hoverFill: settings.controls.hover,
1531
- className: styles$2.arrowImg
1542
+ url: controls.arrowsImgUrl,
1543
+ fill: controls.color,
1544
+ hoverFill: controls.hover,
1545
+ className: cn(styles$2.arrowImg, styles$2.mirror)
1532
1546
  }
1533
1547
  ),
1534
- !settings.controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon, { color: settings.controls.color, className: cn(styles$2.arrowIcon, styles$2.arrowImg) })
1548
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon, { color: controls.color, className: cn(styles$2.arrowIcon, styles$2.arrowImg, styles$2.mirror) })
1535
1549
  ]
1536
1550
  }
1537
1551
  )
@@ -1541,11 +1555,11 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1541
1555
  "div",
1542
1556
  {
1543
1557
  className: cn(styles$2.arrow, styles$2.nextArrow, {
1544
- [styles$2.arrowVertical]: settings.direction === "vertical"
1558
+ [styles$2.arrowVertical]: direction === "vert"
1545
1559
  }),
1546
1560
  style: {
1547
- color: settings.controls.color,
1548
- ["--arrow-hover-color"]: settings.controls.hover
1561
+ color: controls.color,
1562
+ ["--arrow-hover-color"]: controls.hover
1549
1563
  },
1550
1564
  children: /* @__PURE__ */ jsxRuntime.jsxs(
1551
1565
  "button",
@@ -1553,26 +1567,26 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1553
1567
  className: styles$2.arrowInner,
1554
1568
  onClick: () => handleArrowClick("+1"),
1555
1569
  style: {
1556
- transform: `translate(${scalingValue(controlsOffsetX * (direction === "horizontal" ? -1 : 1), isEditor)}, ${scalingValue(controlsOffsetY, isEditor)}) scale(${settings.controls.scale / 100}) rotate(${direction === "horizontal" ? "0deg" : "90deg"})`
1570
+ transform: `translate(${scalingValue(controlsOffsetX * (direction === "horiz" ? -1 : 1), isEditor)}, ${scalingValue(controlsOffsetY, isEditor)}) scale(${settings.controls.scale / 100}) rotate(${direction === "horiz" ? "0deg" : "90deg"})`
1557
1571
  },
1558
1572
  children: [
1559
- settings.controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
1573
+ controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
1560
1574
  SvgImage,
1561
1575
  {
1562
- url: settings.controls.arrowsImgUrl,
1563
- fill: settings.controls.color,
1564
- hoverFill: settings.controls.hover,
1576
+ url: controls.arrowsImgUrl,
1577
+ fill: controls.color,
1578
+ hoverFill: controls.hover,
1565
1579
  className: styles$2.arrowImg
1566
1580
  }
1567
1581
  ),
1568
- !settings.controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon, { color: settings.controls.color, className: cn(styles$2.arrowIcon, styles$2.arrowImg) })
1582
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon, { color: controls.color, className: cn(styles$2.arrowIcon, styles$2.arrowImg) })
1569
1583
  ]
1570
1584
  }
1571
1585
  )
1572
1586
  }
1573
1587
  )
1574
1588
  ] }),
1575
- settings.triggers.triggersList.click && /* @__PURE__ */ jsxRuntime.jsx(
1589
+ triggers.triggersList.click && /* @__PURE__ */ jsxRuntime.jsx(
1576
1590
  "div",
1577
1591
  {
1578
1592
  className: styles$2.clickOverlay,
@@ -1583,27 +1597,27 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1583
1597
  }
1584
1598
  }
1585
1599
  ),
1586
- settings.pagination.isActive && /* @__PURE__ */ jsxRuntime.jsx(
1600
+ pagination2.isActive && /* @__PURE__ */ jsxRuntime.jsx(
1587
1601
  "div",
1588
1602
  {
1589
1603
  className: cn(styles$2.pagination, {
1590
- [styles$2.paginationInsideBottom]: settings.pagination.position === "inside-1" && settings.direction === "horizontal",
1591
- [styles$2.paginationInsideTop]: settings.pagination.position === "inside-2" && settings.direction === "horizontal",
1592
- [styles$2.paginationOutsideBottom]: settings.pagination.position === "outside-1" && settings.direction === "horizontal",
1593
- [styles$2.paginationOutsideTop]: settings.pagination.position === "outside-2" && settings.direction === "horizontal",
1594
- [styles$2.paginationInsideLeft]: settings.pagination.position === "inside-1" && settings.direction === "vertical",
1595
- [styles$2.paginationInsideRight]: settings.pagination.position === "inside-2" && settings.direction === "vertical",
1596
- [styles$2.paginationOutsideLeft]: settings.pagination.position === "outside-1" && settings.direction === "vertical",
1597
- [styles$2.paginationOutsideRight]: settings.pagination.position === "outside-2" && settings.direction === "vertical",
1598
- [styles$2.paginationVertical]: settings.direction === "vertical"
1604
+ [styles$2.paginationInsideBottom]: pagination2.position === "inside-1" && direction === "horiz",
1605
+ [styles$2.paginationInsideTop]: pagination2.position === "inside-2" && direction === "horiz",
1606
+ [styles$2.paginationOutsideBottom]: pagination2.position === "outside-1" && direction === "horiz",
1607
+ [styles$2.paginationOutsideTop]: pagination2.position === "outside-2" && direction === "horiz",
1608
+ [styles$2.paginationInsideLeft]: pagination2.position === "inside-1" && direction === "vert",
1609
+ [styles$2.paginationInsideRight]: pagination2.position === "inside-2" && direction === "vert",
1610
+ [styles$2.paginationOutsideLeft]: pagination2.position === "outside-1" && direction === "vert",
1611
+ [styles$2.paginationOutsideRight]: pagination2.position === "outside-2" && direction === "vert",
1612
+ [styles$2.paginationVertical]: direction === "vert"
1599
1613
  }),
1600
1614
  children: /* @__PURE__ */ jsxRuntime.jsx(
1601
1615
  "div",
1602
1616
  {
1603
1617
  className: styles$2.paginationInner,
1604
1618
  style: {
1605
- backgroundColor: settings.pagination.colors[0],
1606
- transform: `scale(${settings.pagination.scale / 100}) translate(${scalingValue(settings.pagination.offset.x, isEditor)}, ${scalingValue(settings.pagination.offset.y, isEditor)}) rotate(${settings.direction === "horizontal" ? "0deg" : "90deg"})`
1619
+ backgroundColor: pagination2.colors[2],
1620
+ transform: `scale(${pagination2.scale / 100}) translate(${scalingValue(pagination2.offset.x, isEditor)}, ${scalingValue(pagination2.offset.y, isEditor)}) rotate(${direction === "horiz" ? "0deg" : "90deg"})`
1607
1621
  },
1608
1622
  children: content.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
1609
1623
  "button",
@@ -1621,8 +1635,8 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1621
1635
  [styles$2.activeDot]: index === currentSlideIndex
1622
1636
  }),
1623
1637
  style: {
1624
- backgroundColor: settings.pagination.colors[1],
1625
- ["--pagination-hover-color"]: settings.pagination.hover
1638
+ backgroundColor: index === currentSlideIndex ? pagination2.colors[0] : pagination2.colors[1],
1639
+ ["--pagination-hover-color"]: pagination2.hover
1626
1640
  }
1627
1641
  }
1628
1642
  )
@@ -1660,6 +1674,7 @@ const ControlSliderComponent = {
1660
1674
  triggers: {
1661
1675
  name: "triggers",
1662
1676
  icon: "target",
1677
+ tooltip: "Triggers",
1663
1678
  type: "object",
1664
1679
  properties: {
1665
1680
  triggersList: {
@@ -1689,15 +1704,40 @@ const ControlSliderComponent = {
1689
1704
  direction: {
1690
1705
  name: "direction",
1691
1706
  icon: "horizontal-resize",
1707
+ tooltip: "Direction",
1692
1708
  type: "string",
1693
1709
  display: {
1694
- type: "direction-enum"
1710
+ type: "ratio-group"
1695
1711
  },
1696
- enum: ["horizontal", "vertical"]
1712
+ enum: ["horiz", "vert"]
1713
+ },
1714
+ transition: {
1715
+ name: "transit",
1716
+ icon: "transition",
1717
+ tooltip: "Transition",
1718
+ type: "object",
1719
+ properties: {
1720
+ type: {
1721
+ type: "string",
1722
+ display: {
1723
+ type: "ratio-group"
1724
+ },
1725
+ enum: ["slide", "fade in"]
1726
+ },
1727
+ duration: {
1728
+ type: "string",
1729
+ label: "hourglass-icon",
1730
+ display: {
1731
+ type: "step-selector"
1732
+ },
1733
+ enum: ["100ms", "250ms", "500ms", "1000ms"]
1734
+ }
1735
+ }
1697
1736
  },
1698
1737
  controls: {
1699
1738
  name: "controls",
1700
1739
  icon: "controls",
1740
+ tooltip: "Controls",
1701
1741
  type: "object",
1702
1742
  properties: {
1703
1743
  isActive: {
@@ -1756,6 +1796,7 @@ const ControlSliderComponent = {
1756
1796
  pagination: {
1757
1797
  name: "nav",
1758
1798
  icon: "pagination",
1799
+ tooltip: "Navigation",
1759
1800
  type: "object",
1760
1801
  properties: {
1761
1802
  isActive: {
@@ -1818,8 +1859,9 @@ const ControlSliderComponent = {
1818
1859
  }
1819
1860
  },
1820
1861
  caption: {
1821
- name: "desc",
1862
+ name: "Caption",
1822
1863
  icon: "text-icon",
1864
+ tooltip: "Caption",
1823
1865
  type: "object",
1824
1866
  properties: {
1825
1867
  isActive: {
@@ -1880,6 +1922,10 @@ const ControlSliderComponent = {
1880
1922
  color: "#000000",
1881
1923
  hover: "#cccccc"
1882
1924
  },
1925
+ transition: {
1926
+ type: "slide",
1927
+ duration: "500ms"
1928
+ },
1883
1929
  pagination: {
1884
1930
  isActive: true,
1885
1931
  scale: 50,
@@ -1888,10 +1934,10 @@ const ControlSliderComponent = {
1888
1934
  x: 0,
1889
1935
  y: 0
1890
1936
  },
1891
- colors: ["#000000", "#cccccc"],
1937
+ colors: ["#cccccc", "#cccccc", "#000000"],
1892
1938
  hover: "#cccccc"
1893
1939
  },
1894
- direction: "horizontal",
1940
+ direction: "horiz",
1895
1941
  caption: {
1896
1942
  offset: {
1897
1943
  x: 0,
package/dist/index.mjs CHANGED
@@ -4,7 +4,7 @@ import { z } from "zod";
4
4
  import UAParser from "ua-parser-js";
5
5
  import * as MP4Box from "mp4box";
6
6
  import { jsx, Fragment, jsxs } from "react/jsx-runtime";
7
- import { useState, useEffect } from "react";
7
+ import { useState, useEffect, useRef } from "react";
8
8
  import { Splide, SplideSlide } from "@splidejs/react-splide";
9
9
  import cn from "classnames";
10
10
  var SectionHeightMode = /* @__PURE__ */ ((SectionHeightMode2) => {
@@ -1205,6 +1205,7 @@ const nextArrow = "ControlSlider-module__nextArrow___-30Yc";
1205
1205
  const arrowInner = "ControlSlider-module__arrowInner___aEra3";
1206
1206
  const arrowIcon = "ControlSlider-module__arrowIcon___S4ztF";
1207
1207
  const arrowImg = "ControlSlider-module__arrowImg___2dwJW";
1208
+ const mirror = "ControlSlider-module__mirror___brd6U";
1208
1209
  const pagination = "ControlSlider-module__pagination___bicLF";
1209
1210
  const paginationInner = "ControlSlider-module__paginationInner___bT-P-";
1210
1211
  const paginationVertical = "ControlSlider-module__paginationVertical___zYqKw";
@@ -1223,6 +1224,7 @@ const imgWrapper = "ControlSlider-module__imgWrapper___UjEgB";
1223
1224
  const captionBlock = "ControlSlider-module__captionBlock___dJ6-j";
1224
1225
  const captionTextWrapper = "ControlSlider-module__captionTextWrapper___HFlpf";
1225
1226
  const captionText = "ControlSlider-module__captionText___uGBVc";
1227
+ const active = "ControlSlider-module__active___WZK4G";
1226
1228
  const withPointerEvents = "ControlSlider-module__withPointerEvents___t-18M";
1227
1229
  const topLeftAlignment = "ControlSlider-module__topLeftAlignment___zjnGM";
1228
1230
  const topCenterAlignment = "ControlSlider-module__topCenterAlignment___gD1xW";
@@ -1246,6 +1248,7 @@ const styles$2 = {
1246
1248
  arrowInner,
1247
1249
  arrowIcon,
1248
1250
  arrowImg,
1251
+ mirror,
1249
1252
  pagination,
1250
1253
  paginationInner,
1251
1254
  paginationVertical,
@@ -1264,6 +1267,7 @@ const styles$2 = {
1264
1267
  captionBlock,
1265
1268
  captionTextWrapper,
1266
1269
  captionText,
1270
+ active,
1267
1271
  withPointerEvents,
1268
1272
  topLeftAlignment,
1269
1273
  topCenterAlignment,
@@ -1359,7 +1363,9 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1359
1363
  const [sliderDimensions, setSliderDimensions] = useState(void 0);
1360
1364
  const [wrapperRef, setWrapperRef] = useState(null);
1361
1365
  const [currentSlideIndex, setCurrentSlideIndex] = useState(0);
1362
- const { direction } = settings;
1366
+ const [key, setKey] = useState(0);
1367
+ const { direction, transition, controls, pagination: pagination2, caption, triggers } = settings;
1368
+ const prevSliderTypeRef = useRef(transition.type);
1363
1369
  const { x: controlsOffsetX, y: controlsOffsetY } = settings.controls.offset;
1364
1370
  const handleArrowClick = (dir) => {
1365
1371
  if (sliderRef) {
@@ -1379,6 +1385,11 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1379
1385
  observer.observe(wrapperRef);
1380
1386
  return () => observer.unobserve(wrapperRef);
1381
1387
  }, [wrapperRef]);
1388
+ useEffect(() => {
1389
+ if (!sliderRef || prevSliderTypeRef.current === transition.type) return;
1390
+ setKey((prev) => prev + 1);
1391
+ prevSliderTypeRef.current = transition.type;
1392
+ }, [transition.type]);
1382
1393
  return /* @__PURE__ */ jsxs("div", { className: cn(styles$2.wrapper, { [styles$2.editor]: isEditor }), ref: setWrapperRef, children: [
1383
1394
  settings.caption.isActive && /* @__PURE__ */ jsx(
1384
1395
  "div",
@@ -1391,8 +1402,9 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1391
1402
  children: content.map((item, index) => /* @__PURE__ */ jsx(
1392
1403
  "div",
1393
1404
  {
1394
- className: cn(styles$2.captionText, alignmentClassName[settings.caption.alignment], {
1395
- [styles$2.withPointerEvents]: index === currentSlideIndex && isEditor
1405
+ className: cn(styles$2.captionText, alignmentClassName[caption.alignment], {
1406
+ [styles$2.withPointerEvents]: index === currentSlideIndex && isEditor,
1407
+ [styles$2.active]: index === currentSlideIndex
1396
1408
  }),
1397
1409
  style: {
1398
1410
  fontFamily: fontSettings.fontFamily,
@@ -1408,7 +1420,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1408
1420
  textDecoration: textAppearance.textDecoration ?? "none",
1409
1421
  fontVariant: textAppearance.fontVariant ?? "normal",
1410
1422
  color,
1411
- opacity: index === currentSlideIndex ? 1 : 0
1423
+ transitionDuration: transition.duration ? `${Math.round(parseInt(transition.duration) / 2)}ms` : "500ms"
1412
1424
  },
1413
1425
  children: /* @__PURE__ */ jsx(
1414
1426
  "div",
@@ -1416,10 +1428,10 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1416
1428
  "data-styles": "caption",
1417
1429
  className: styles$2.captionTextInner,
1418
1430
  style: {
1419
- "--link-hover-color": settings.caption.hover,
1431
+ "--link-hover-color": caption.hover,
1420
1432
  position: "relative",
1421
- top: scalingValue(settings.caption.offset.y, isEditor),
1422
- left: scalingValue(settings.caption.offset.x, isEditor)
1433
+ top: scalingValue(caption.offset.y, isEditor),
1434
+ left: scalingValue(caption.offset.x, isEditor)
1423
1435
  },
1424
1436
  children: /* @__PURE__ */ jsx(RichTextRenderer, { content: item.imageCaption })
1425
1437
  }
@@ -1440,18 +1452,19 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1440
1452
  ref: setSliderRef,
1441
1453
  options: {
1442
1454
  arrows: false,
1443
- speed: 600,
1444
- autoplay: isEditor ? false : settings.triggers.autoPlay !== null,
1445
- ...settings.triggers.autoPlay !== null && {
1446
- interval: parseInt(settings.triggers.autoPlay) * 1e3
1455
+ speed: transition.duration ? parseInt(transition.duration) : 500,
1456
+ autoplay: isEditor ? false : triggers.autoPlay !== null,
1457
+ ...triggers.autoPlay !== null && {
1458
+ interval: parseInt(triggers.autoPlay) * 1e3
1447
1459
  },
1448
- direction: direction === "horizontal" ? "ltr" : "ttb",
1460
+ direction: direction === "horiz" || transition.type === "fade in" ? "ltr" : "ttb",
1449
1461
  pagination: false,
1450
- drag: settings.triggers.triggersList.drag,
1462
+ drag: triggers.triggersList.drag,
1451
1463
  perPage: 1,
1452
1464
  width: sliderDimensions ? sliderDimensions == null ? void 0 : sliderDimensions.width : "100%",
1453
1465
  height: sliderDimensions ? sliderDimensions == null ? void 0 : sliderDimensions.height : "100%",
1454
- type: "loop"
1466
+ type: transition.type === "fade in" ? "fade" : "loop",
1467
+ rewind: true
1455
1468
  },
1456
1469
  children: content.map((item, index) => /* @__PURE__ */ jsx(SplideSlide, { children: /* @__PURE__ */ jsx(
1457
1470
  "div",
@@ -1479,18 +1492,19 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1479
1492
  )
1480
1493
  }
1481
1494
  ) }, index))
1482
- }
1495
+ },
1496
+ key
1483
1497
  ),
1484
- settings.controls.isActive && /* @__PURE__ */ jsxs(Fragment, { children: [
1498
+ controls.isActive && /* @__PURE__ */ jsxs(Fragment, { children: [
1485
1499
  /* @__PURE__ */ jsx(
1486
1500
  "div",
1487
1501
  {
1488
1502
  className: cn(styles$2.arrow, {
1489
- [styles$2.arrowVertical]: settings.direction === "vertical"
1503
+ [styles$2.arrowVertical]: direction === "vert"
1490
1504
  }),
1491
1505
  style: {
1492
- color: settings.controls.color,
1493
- ["--arrow-hover-color"]: settings.controls.hover
1506
+ color: controls.color,
1507
+ ["--arrow-hover-color"]: controls.hover
1494
1508
  },
1495
1509
  children: /* @__PURE__ */ jsxs(
1496
1510
  "button",
@@ -1500,19 +1514,19 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1500
1514
  },
1501
1515
  className: styles$2.arrowInner,
1502
1516
  style: {
1503
- transform: `translate(${scalingValue(controlsOffsetX, isEditor)}, ${scalingValue(controlsOffsetY * (direction === "horizontal" ? 1 : -1), isEditor)}) scale(${settings.controls.scale / 100}) rotate(${direction === "horizontal" ? "180deg" : "-90deg"})`
1517
+ transform: `translate(${scalingValue(controlsOffsetX, isEditor)}, ${scalingValue(controlsOffsetY * (direction === "horiz" ? 1 : -1), isEditor)}) scale(${settings.controls.scale / 100}) rotate(${direction === "horiz" ? "0deg" : "90deg"})`
1504
1518
  },
1505
1519
  children: [
1506
- settings.controls.arrowsImgUrl && /* @__PURE__ */ jsx(
1520
+ controls.arrowsImgUrl && /* @__PURE__ */ jsx(
1507
1521
  SvgImage,
1508
1522
  {
1509
- url: settings.controls.arrowsImgUrl,
1510
- fill: settings.controls.color,
1511
- hoverFill: settings.controls.hover,
1512
- className: styles$2.arrowImg
1523
+ url: controls.arrowsImgUrl,
1524
+ fill: controls.color,
1525
+ hoverFill: controls.hover,
1526
+ className: cn(styles$2.arrowImg, styles$2.mirror)
1513
1527
  }
1514
1528
  ),
1515
- !settings.controls.arrowsImgUrl && /* @__PURE__ */ jsx(ArrowIcon, { color: settings.controls.color, className: cn(styles$2.arrowIcon, styles$2.arrowImg) })
1529
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsx(ArrowIcon, { color: controls.color, className: cn(styles$2.arrowIcon, styles$2.arrowImg, styles$2.mirror) })
1516
1530
  ]
1517
1531
  }
1518
1532
  )
@@ -1522,11 +1536,11 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1522
1536
  "div",
1523
1537
  {
1524
1538
  className: cn(styles$2.arrow, styles$2.nextArrow, {
1525
- [styles$2.arrowVertical]: settings.direction === "vertical"
1539
+ [styles$2.arrowVertical]: direction === "vert"
1526
1540
  }),
1527
1541
  style: {
1528
- color: settings.controls.color,
1529
- ["--arrow-hover-color"]: settings.controls.hover
1542
+ color: controls.color,
1543
+ ["--arrow-hover-color"]: controls.hover
1530
1544
  },
1531
1545
  children: /* @__PURE__ */ jsxs(
1532
1546
  "button",
@@ -1534,26 +1548,26 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1534
1548
  className: styles$2.arrowInner,
1535
1549
  onClick: () => handleArrowClick("+1"),
1536
1550
  style: {
1537
- transform: `translate(${scalingValue(controlsOffsetX * (direction === "horizontal" ? -1 : 1), isEditor)}, ${scalingValue(controlsOffsetY, isEditor)}) scale(${settings.controls.scale / 100}) rotate(${direction === "horizontal" ? "0deg" : "90deg"})`
1551
+ transform: `translate(${scalingValue(controlsOffsetX * (direction === "horiz" ? -1 : 1), isEditor)}, ${scalingValue(controlsOffsetY, isEditor)}) scale(${settings.controls.scale / 100}) rotate(${direction === "horiz" ? "0deg" : "90deg"})`
1538
1552
  },
1539
1553
  children: [
1540
- settings.controls.arrowsImgUrl && /* @__PURE__ */ jsx(
1554
+ controls.arrowsImgUrl && /* @__PURE__ */ jsx(
1541
1555
  SvgImage,
1542
1556
  {
1543
- url: settings.controls.arrowsImgUrl,
1544
- fill: settings.controls.color,
1545
- hoverFill: settings.controls.hover,
1557
+ url: controls.arrowsImgUrl,
1558
+ fill: controls.color,
1559
+ hoverFill: controls.hover,
1546
1560
  className: styles$2.arrowImg
1547
1561
  }
1548
1562
  ),
1549
- !settings.controls.arrowsImgUrl && /* @__PURE__ */ jsx(ArrowIcon, { color: settings.controls.color, className: cn(styles$2.arrowIcon, styles$2.arrowImg) })
1563
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsx(ArrowIcon, { color: controls.color, className: cn(styles$2.arrowIcon, styles$2.arrowImg) })
1550
1564
  ]
1551
1565
  }
1552
1566
  )
1553
1567
  }
1554
1568
  )
1555
1569
  ] }),
1556
- settings.triggers.triggersList.click && /* @__PURE__ */ jsx(
1570
+ triggers.triggersList.click && /* @__PURE__ */ jsx(
1557
1571
  "div",
1558
1572
  {
1559
1573
  className: styles$2.clickOverlay,
@@ -1564,27 +1578,27 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1564
1578
  }
1565
1579
  }
1566
1580
  ),
1567
- settings.pagination.isActive && /* @__PURE__ */ jsx(
1581
+ pagination2.isActive && /* @__PURE__ */ jsx(
1568
1582
  "div",
1569
1583
  {
1570
1584
  className: cn(styles$2.pagination, {
1571
- [styles$2.paginationInsideBottom]: settings.pagination.position === "inside-1" && settings.direction === "horizontal",
1572
- [styles$2.paginationInsideTop]: settings.pagination.position === "inside-2" && settings.direction === "horizontal",
1573
- [styles$2.paginationOutsideBottom]: settings.pagination.position === "outside-1" && settings.direction === "horizontal",
1574
- [styles$2.paginationOutsideTop]: settings.pagination.position === "outside-2" && settings.direction === "horizontal",
1575
- [styles$2.paginationInsideLeft]: settings.pagination.position === "inside-1" && settings.direction === "vertical",
1576
- [styles$2.paginationInsideRight]: settings.pagination.position === "inside-2" && settings.direction === "vertical",
1577
- [styles$2.paginationOutsideLeft]: settings.pagination.position === "outside-1" && settings.direction === "vertical",
1578
- [styles$2.paginationOutsideRight]: settings.pagination.position === "outside-2" && settings.direction === "vertical",
1579
- [styles$2.paginationVertical]: settings.direction === "vertical"
1585
+ [styles$2.paginationInsideBottom]: pagination2.position === "inside-1" && direction === "horiz",
1586
+ [styles$2.paginationInsideTop]: pagination2.position === "inside-2" && direction === "horiz",
1587
+ [styles$2.paginationOutsideBottom]: pagination2.position === "outside-1" && direction === "horiz",
1588
+ [styles$2.paginationOutsideTop]: pagination2.position === "outside-2" && direction === "horiz",
1589
+ [styles$2.paginationInsideLeft]: pagination2.position === "inside-1" && direction === "vert",
1590
+ [styles$2.paginationInsideRight]: pagination2.position === "inside-2" && direction === "vert",
1591
+ [styles$2.paginationOutsideLeft]: pagination2.position === "outside-1" && direction === "vert",
1592
+ [styles$2.paginationOutsideRight]: pagination2.position === "outside-2" && direction === "vert",
1593
+ [styles$2.paginationVertical]: direction === "vert"
1580
1594
  }),
1581
1595
  children: /* @__PURE__ */ jsx(
1582
1596
  "div",
1583
1597
  {
1584
1598
  className: styles$2.paginationInner,
1585
1599
  style: {
1586
- backgroundColor: settings.pagination.colors[0],
1587
- transform: `scale(${settings.pagination.scale / 100}) translate(${scalingValue(settings.pagination.offset.x, isEditor)}, ${scalingValue(settings.pagination.offset.y, isEditor)}) rotate(${settings.direction === "horizontal" ? "0deg" : "90deg"})`
1600
+ backgroundColor: pagination2.colors[2],
1601
+ transform: `scale(${pagination2.scale / 100}) translate(${scalingValue(pagination2.offset.x, isEditor)}, ${scalingValue(pagination2.offset.y, isEditor)}) rotate(${direction === "horiz" ? "0deg" : "90deg"})`
1588
1602
  },
1589
1603
  children: content.map((_, index) => /* @__PURE__ */ jsx(
1590
1604
  "button",
@@ -1602,8 +1616,8 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1602
1616
  [styles$2.activeDot]: index === currentSlideIndex
1603
1617
  }),
1604
1618
  style: {
1605
- backgroundColor: settings.pagination.colors[1],
1606
- ["--pagination-hover-color"]: settings.pagination.hover
1619
+ backgroundColor: index === currentSlideIndex ? pagination2.colors[0] : pagination2.colors[1],
1620
+ ["--pagination-hover-color"]: pagination2.hover
1607
1621
  }
1608
1622
  }
1609
1623
  )
@@ -1641,6 +1655,7 @@ const ControlSliderComponent = {
1641
1655
  triggers: {
1642
1656
  name: "triggers",
1643
1657
  icon: "target",
1658
+ tooltip: "Triggers",
1644
1659
  type: "object",
1645
1660
  properties: {
1646
1661
  triggersList: {
@@ -1670,15 +1685,40 @@ const ControlSliderComponent = {
1670
1685
  direction: {
1671
1686
  name: "direction",
1672
1687
  icon: "horizontal-resize",
1688
+ tooltip: "Direction",
1673
1689
  type: "string",
1674
1690
  display: {
1675
- type: "direction-enum"
1691
+ type: "ratio-group"
1676
1692
  },
1677
- enum: ["horizontal", "vertical"]
1693
+ enum: ["horiz", "vert"]
1694
+ },
1695
+ transition: {
1696
+ name: "transit",
1697
+ icon: "transition",
1698
+ tooltip: "Transition",
1699
+ type: "object",
1700
+ properties: {
1701
+ type: {
1702
+ type: "string",
1703
+ display: {
1704
+ type: "ratio-group"
1705
+ },
1706
+ enum: ["slide", "fade in"]
1707
+ },
1708
+ duration: {
1709
+ type: "string",
1710
+ label: "hourglass-icon",
1711
+ display: {
1712
+ type: "step-selector"
1713
+ },
1714
+ enum: ["100ms", "250ms", "500ms", "1000ms"]
1715
+ }
1716
+ }
1678
1717
  },
1679
1718
  controls: {
1680
1719
  name: "controls",
1681
1720
  icon: "controls",
1721
+ tooltip: "Controls",
1682
1722
  type: "object",
1683
1723
  properties: {
1684
1724
  isActive: {
@@ -1737,6 +1777,7 @@ const ControlSliderComponent = {
1737
1777
  pagination: {
1738
1778
  name: "nav",
1739
1779
  icon: "pagination",
1780
+ tooltip: "Navigation",
1740
1781
  type: "object",
1741
1782
  properties: {
1742
1783
  isActive: {
@@ -1799,8 +1840,9 @@ const ControlSliderComponent = {
1799
1840
  }
1800
1841
  },
1801
1842
  caption: {
1802
- name: "desc",
1843
+ name: "Caption",
1803
1844
  icon: "text-icon",
1845
+ tooltip: "Caption",
1804
1846
  type: "object",
1805
1847
  properties: {
1806
1848
  isActive: {
@@ -1861,6 +1903,10 @@ const ControlSliderComponent = {
1861
1903
  color: "#000000",
1862
1904
  hover: "#cccccc"
1863
1905
  },
1906
+ transition: {
1907
+ type: "slide",
1908
+ duration: "500ms"
1909
+ },
1864
1910
  pagination: {
1865
1911
  isActive: true,
1866
1912
  scale: 50,
@@ -1869,10 +1915,10 @@ const ControlSliderComponent = {
1869
1915
  x: 0,
1870
1916
  y: 0
1871
1917
  },
1872
- colors: ["#000000", "#cccccc"],
1918
+ colors: ["#cccccc", "#cccccc", "#000000"],
1873
1919
  hover: "#cccccc"
1874
1920
  },
1875
- direction: "horizontal",
1921
+ direction: "horiz",
1876
1922
  caption: {
1877
1923
  offset: {
1878
1924
  x: 0,
package/dist/sdk.css CHANGED
@@ -1 +1 @@
1
- .ControlSlider-module__wrapper___sHEkd{position:relative;width:100%;height:100%}.ControlSlider-module__slider___R3i9-{width:100%;height:100%}.ControlSlider-module__sliderItems___1MgPL{display:flex;overflow:hidden;width:100%;height:100%;transition:transform .3s ease-in-out}.ControlSlider-module__sliderItem___QQSkR{width:100%;height:100%;display:flex;position:relative}.ControlSlider-module__sliderImage___9hRl-{width:100%;height:100%;object-fit:cover}.ControlSlider-module__arrow___05ghY{position:absolute;display:flex;align-items:center;justify-content:center;border:none;background-color:transparent;top:50%;left:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);z-index:1;transform:translate(-50%,-50%);padding:0;width:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw);height:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw)}.ControlSlider-module__arrow___05ghY.ControlSlider-module__arrowVertical___tBfVN{left:50%;top:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);transform:translate(-50%,-50%)}.ControlSlider-module__nextArrow___-30Yc{left:unset;right:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);transform:translate(50%,-50%)}.ControlSlider-module__nextArrow___-30Yc.ControlSlider-module__arrowVertical___tBfVN{left:50%;right:unset;top:unset;bottom:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);transform:translate(-50%,50%)}.ControlSlider-module__arrowInner___aEra3{all:unset;cursor:pointer;width:100%;height:100%}.ControlSlider-module__arrowInner___aEra3:hover .ControlSlider-module__arrowIcon___S4ztF path{fill:var(--arrow-hover-color)!important}.ControlSlider-module__arrowImg___2dwJW{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ControlSlider-module__arrowIcon___S4ztF{width:100%;height:100%}.ControlSlider-module__arrowIcon___S4ztF path{transition:fill .15s ease-in-out}.ControlSlider-module__prevIcon___v8NAK{transform:rotate(180deg)}.ControlSlider-module__pagination___bicLF{position:absolute;z-index:1;border-radius:50%}.ControlSlider-module__paginationInner___bT-P-{display:flex;gap:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);padding-top:calc(var(--is-editor, 0) * .6944444444vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * .6944444444vw);padding-bottom:calc(var(--is-editor, 0) * .6944444444vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * .6944444444vw);padding-left:calc(var(--is-editor, 0) * 1.25vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.25vw);padding-right:calc(var(--is-editor, 0) * 1.25vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.25vw);border-radius:calc(var(--is-editor, 0) * 2.3611111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.3611111111vw)}.ControlSlider-module__paginationVertical___zYqKw{flex-direction:column}.ControlSlider-module__paginationItem___nTRbk{all:unset;flex-shrink:0;position:relative;width:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);height:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);cursor:pointer}.ControlSlider-module__paginationItem___nTRbk:hover .ControlSlider-module__dot___p1Qun{background-color:var(--pagination-hover-color)!important}.ControlSlider-module__dot___p1Qun{border-radius:50%;scale:.5;transition:background-color .3s ease-in-out,transform .3s ease-in-out;width:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);height:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw)}.ControlSlider-module__activeDot___LHFaj{transform:scale(2)}.ControlSlider-module__paginationInsideBottom___R3FWn{bottom:0;left:50%;transform:translate(-50%)}.ControlSlider-module__paginationInsideTop___V-qb-{left:50%;transform:translate(-50%);top:0}.ControlSlider-module__paginationOutsideBottom___14w8D{left:50%;transform:translate(-50%);bottom:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationOutsideTop___SCLqB{left:50%;transform:translate(-50%);top:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationInsideLeft___yOBRZ{top:50%;transform:translateY(-50%);left:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationInsideRight___Rtt3o{top:50%;transform:translateY(-50%);right:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationOutsideLeft___lahaw{top:50%;transform:translateY(-50%);left:calc(var(--is-editor, 0) * -5.4861111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -5.4861111111vw)}.ControlSlider-module__paginationOutsideRight___EtuQa{top:50%;transform:translateY(-50%);right:calc(var(--is-editor, 0) * -5.4861111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -5.4861111111vw)}.ControlSlider-module__imgWrapper___UjEgB,.ControlSlider-module__wrapperInner___DLAWV{width:100%;height:100%}.ControlSlider-module__captionBlock___dJ6-j{pointer-events:none;position:absolute;top:0;z-index:1;left:0;right:0;bottom:0}.ControlSlider-module__captionTextWrapper___HFlpf{position:relative;width:100%;height:100%}.ControlSlider-module__captionText___uGBVc{pointer-events:none;max-width:100%;transition:opacity .3s ease-in-out;position:absolute;display:inline-block;white-space:pre-wrap;overflow-wrap:break-word}.ControlSlider-module__withPointerEvents___t-18M{pointer-events:auto}.ControlSlider-module__absolute___KxmYB{position:absolute}.ControlSlider-module__topLeftAlignment___zjnGM{top:0;left:0}.ControlSlider-module__topCenterAlignment___gD1xW{top:0;left:50%;transform:translate(-50%)}.ControlSlider-module__topRightAlignment___NMapS{top:0;right:0}.ControlSlider-module__middleLeftAlignment___OnUrY{top:50%;transform:translateY(-50%);left:0}.ControlSlider-module__middleCenterAlignment___Tdkl0{top:50%;transform:translate(-50%,-50%);left:50%}.ControlSlider-module__middleRightAlignment___wEbfX{top:50%;transform:translateY(-50%);right:0}.ControlSlider-module__bottomLeftAlignment___cTP2-{bottom:0;left:0}.ControlSlider-module__bottomCenterAlignment___c54fB{bottom:0;left:50%;transform:translate(-50%)}.ControlSlider-module__bottomRightAlignment___kEwrz{bottom:0;right:0}.ControlSlider-module__clickOverlay___DZA28{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.ControlSlider-module__contain___pLyq7{object-fit:contain}.ControlSlider-module__cover___KdDat{object-fit:cover}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}.RichTextRenderer-module__link___BWeZ2{color:inherit;cursor:pointer;pointer-events:auto;transition:color .2s ease}.RichTextRenderer-module__link___BWeZ2:hover{color:var(--link-hover-color)}.SvgImage-module__svg___q3xE-{width:100%;height:100%;color:transparent;display:inline-block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--fill);transition:background-color .2s;-webkit-mask:var(--svg) no-repeat center/contain;mask:var(--svg) no-repeat center/contain}.SvgImage-module__svg___q3xE-:hover{background-color:var(--hover-fill)}.SvgImage-module__img___VsTm-{width:100%;height:100%;object-fit:contain}
1
+ .ControlSlider-module__wrapper___sHEkd{position:relative;width:100%;height:100%}.ControlSlider-module__slider___R3i9-{width:100%;height:100%}.ControlSlider-module__sliderItems___1MgPL{display:flex;overflow:hidden;width:100%;height:100%;transition:transform .3s ease-in-out}.ControlSlider-module__sliderItem___QQSkR{width:100%;height:100%;display:flex;position:relative}.ControlSlider-module__sliderImage___9hRl-{width:100%;height:100%;object-fit:cover}.ControlSlider-module__arrow___05ghY{position:absolute;display:flex;align-items:center;justify-content:center;border:none;background-color:transparent;top:50%;left:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);z-index:1;transform:translate(-50%,-50%);padding:0;width:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw);height:calc(var(--is-editor, 0) * 2.0833333333vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.0833333333vw)}.ControlSlider-module__arrow___05ghY.ControlSlider-module__arrowVertical___tBfVN{left:50%;top:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);transform:translate(-50%,-50%)}.ControlSlider-module__nextArrow___-30Yc{left:unset;right:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);transform:translate(50%,-50%)}.ControlSlider-module__nextArrow___-30Yc.ControlSlider-module__arrowVertical___tBfVN{left:50%;right:unset;top:unset;bottom:calc(var(--is-editor, 0) * -1.3888888889vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -1.3888888889vw);transform:translate(-50%,50%)}.ControlSlider-module__arrowInner___aEra3{all:unset;cursor:pointer;width:100%;height:100%}.ControlSlider-module__arrowInner___aEra3:hover .ControlSlider-module__arrowIcon___S4ztF path{fill:var(--arrow-hover-color)!important}.ControlSlider-module__arrowImg___2dwJW{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ControlSlider-module__arrowIcon___S4ztF{width:100%;height:100%}.ControlSlider-module__arrowIcon___S4ztF path{transition:fill .15s ease-in-out}.ControlSlider-module__mirror___brd6U{transform:translate(-50%,-50%) scaleX(-1)}.ControlSlider-module__arrowVertical___tBfVN.ControlSlider-module__mirror___brd6U{transform:translate(-50%,-50%) scaleY(-1)}.ControlSlider-module__pagination___bicLF{position:absolute;z-index:1;border-radius:50%}.ControlSlider-module__paginationInner___bT-P-{display:flex;gap:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);padding-top:calc(var(--is-editor, 0) * .6944444444vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * .6944444444vw);padding-bottom:calc(var(--is-editor, 0) * .6944444444vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * .6944444444vw);padding-left:calc(var(--is-editor, 0) * 1.25vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.25vw);padding-right:calc(var(--is-editor, 0) * 1.25vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.25vw);border-radius:calc(var(--is-editor, 0) * 2.3611111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 2.3611111111vw)}.ControlSlider-module__paginationVertical___zYqKw{flex-direction:column}.ControlSlider-module__paginationItem___nTRbk{all:unset;flex-shrink:0;position:relative;width:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);height:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);cursor:pointer}.ControlSlider-module__paginationItem___nTRbk:hover .ControlSlider-module__dot___p1Qun{background-color:var(--pagination-hover-color)!important}.ControlSlider-module__dot___p1Qun{border-radius:50%;scale:.5;transition:background-color .3s ease-in-out,transform .3s ease-in-out;width:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw);height:calc(var(--is-editor, 0) * 1.1111111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * 1.1111111111vw)}.ControlSlider-module__activeDot___LHFaj{transform:scale(2)}.ControlSlider-module__paginationInsideBottom___R3FWn{bottom:0;left:50%;transform:translate(-50%)}.ControlSlider-module__paginationInsideTop___V-qb-{left:50%;transform:translate(-50%);top:0}.ControlSlider-module__paginationOutsideBottom___14w8D{left:50%;transform:translate(-50%);bottom:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationOutsideTop___SCLqB{left:50%;transform:translate(-50%);top:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationInsideLeft___yOBRZ{top:50%;transform:translateY(-50%);left:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationInsideRight___Rtt3o{top:50%;transform:translateY(-50%);right:calc(var(--is-editor, 0) * -2.4305555556vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -2.4305555556vw)}.ControlSlider-module__paginationOutsideLeft___lahaw{top:50%;transform:translateY(-50%);left:calc(var(--is-editor, 0) * -5.4861111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -5.4861111111vw)}.ControlSlider-module__paginationOutsideRight___EtuQa{top:50%;transform:translateY(-50%);right:calc(var(--is-editor, 0) * -5.4861111111vw / var(--cntrl-reverse-layout-deviation, 1) + (1 - var(--is-editor, 0)) * -5.4861111111vw)}.ControlSlider-module__imgWrapper___UjEgB,.ControlSlider-module__wrapperInner___DLAWV{width:100%;height:100%}.ControlSlider-module__captionBlock___dJ6-j{pointer-events:none;position:absolute;top:0;z-index:1;left:0;right:0;bottom:0}.ControlSlider-module__captionTextWrapper___HFlpf{position:relative;width:100%;height:100%}.ControlSlider-module__captionText___uGBVc{pointer-events:none;max-width:100%;transition-property:opacity;transition-timing-function:ease-in-out;position:absolute;display:inline-block;white-space:pre-wrap;overflow-wrap:break-word;opacity:0}.ControlSlider-module__captionText___uGBVc.ControlSlider-module__active___WZK4G{opacity:1}.ControlSlider-module__withPointerEvents___t-18M{pointer-events:auto}.ControlSlider-module__absolute___KxmYB{position:absolute}.ControlSlider-module__topLeftAlignment___zjnGM{top:0;left:0}.ControlSlider-module__topCenterAlignment___gD1xW{top:0;left:50%;transform:translate(-50%)}.ControlSlider-module__topRightAlignment___NMapS{top:0;right:0}.ControlSlider-module__middleLeftAlignment___OnUrY{top:50%;transform:translateY(-50%);left:0}.ControlSlider-module__middleCenterAlignment___Tdkl0{top:50%;transform:translate(-50%,-50%);left:50%}.ControlSlider-module__middleRightAlignment___wEbfX{top:50%;transform:translateY(-50%);right:0}.ControlSlider-module__bottomLeftAlignment___cTP2-{bottom:0;left:0}.ControlSlider-module__bottomCenterAlignment___c54fB{bottom:0;left:50%;transform:translate(-50%)}.ControlSlider-module__bottomRightAlignment___kEwrz{bottom:0;right:0}.ControlSlider-module__clickOverlay___DZA28{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.ControlSlider-module__contain___pLyq7{object-fit:contain}.ControlSlider-module__cover___KdDat{object-fit:cover}@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:-ms-flexbox;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:center;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;-ms-flex-negative:0;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}.RichTextRenderer-module__link___BWeZ2{color:inherit;cursor:pointer;pointer-events:auto;transition:color .2s ease}.RichTextRenderer-module__link___BWeZ2:hover{color:var(--link-hover-color)}.SvgImage-module__svg___q3xE-{width:100%;height:100%;color:transparent;display:inline-block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:var(--fill);transition:background-color .2s;-webkit-mask:var(--svg) no-repeat center/contain;mask:var(--svg) no-repeat center/contain}.SvgImage-module__svg___q3xE-:hover{background-color:var(--hover-fill)}.SvgImage-module__img___VsTm-{width:100%;height:100%;object-fit:contain}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cntrl-site/sdk",
3
- "version": "1.22.9",
3
+ "version": "1.22.12",
4
4
  "description": "Generic SDK for use in public websites.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",