@cntrl-site/sdk 1.22.11 → 1.22.13

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
  };
@@ -58,6 +58,29 @@ export declare const ControlSliderComponent: {
58
58
  };
59
59
  enum: string[];
60
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
+ };
61
84
  controls: {
62
85
  name: string;
63
86
  icon: string;
@@ -246,6 +269,10 @@ export declare const ControlSliderComponent: {
246
269
  color: string;
247
270
  hover: string;
248
271
  };
272
+ transition: {
273
+ type: string;
274
+ duration: string;
275
+ };
249
276
  pagination: {
250
277
  isActive: boolean;
251
278
  scale: number;
package/dist/index.js CHANGED
@@ -1243,6 +1243,7 @@ const imgWrapper = "ControlSlider-module__imgWrapper___UjEgB";
1243
1243
  const captionBlock = "ControlSlider-module__captionBlock___dJ6-j";
1244
1244
  const captionTextWrapper = "ControlSlider-module__captionTextWrapper___HFlpf";
1245
1245
  const captionText = "ControlSlider-module__captionText___uGBVc";
1246
+ const active = "ControlSlider-module__active___WZK4G";
1246
1247
  const withPointerEvents = "ControlSlider-module__withPointerEvents___t-18M";
1247
1248
  const topLeftAlignment = "ControlSlider-module__topLeftAlignment___zjnGM";
1248
1249
  const topCenterAlignment = "ControlSlider-module__topCenterAlignment___gD1xW";
@@ -1285,6 +1286,7 @@ const styles$2 = {
1285
1286
  captionBlock,
1286
1287
  captionTextWrapper,
1287
1288
  captionText,
1289
+ active,
1288
1290
  withPointerEvents,
1289
1291
  topLeftAlignment,
1290
1292
  topCenterAlignment,
@@ -1380,7 +1382,9 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1380
1382
  const [sliderDimensions, setSliderDimensions] = react.useState(void 0);
1381
1383
  const [wrapperRef, setWrapperRef] = react.useState(null);
1382
1384
  const [currentSlideIndex, setCurrentSlideIndex] = react.useState(0);
1383
- 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);
1384
1388
  const { x: controlsOffsetX, y: controlsOffsetY } = settings.controls.offset;
1385
1389
  const handleArrowClick = (dir) => {
1386
1390
  if (sliderRef) {
@@ -1400,7 +1404,15 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1400
1404
  observer.observe(wrapperRef);
1401
1405
  return () => observer.unobserve(wrapperRef);
1402
1406
  }, [wrapperRef]);
1403
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(styles$2.wrapper, { [styles$2.editor]: isEditor }), ref: setWrapperRef, children: [
1407
+ react.useEffect(() => {
1408
+ if (!sliderRef || prevSliderTypeRef.current === transition.type) return;
1409
+ setKey((prev) => prev + 1);
1410
+ prevSliderTypeRef.current = transition.type;
1411
+ }, [transition.type]);
1412
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(styles$2.wrapper, { [styles$2.editor]: isEditor }), ref: setWrapperRef, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: styles$2.sliderInner, style: {
1413
+ width: sliderDimensions ? sliderDimensions.width : "100%",
1414
+ height: sliderDimensions ? sliderDimensions.height : "100%"
1415
+ }, children: [
1404
1416
  settings.caption.isActive && /* @__PURE__ */ jsxRuntime.jsx(
1405
1417
  "div",
1406
1418
  {
@@ -1412,8 +1424,9 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1412
1424
  children: content.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
1413
1425
  "div",
1414
1426
  {
1415
- className: cn(styles$2.captionText, alignmentClassName[settings.caption.alignment], {
1416
- [styles$2.withPointerEvents]: index === currentSlideIndex && isEditor
1427
+ className: cn(styles$2.captionText, alignmentClassName[caption.alignment], {
1428
+ [styles$2.withPointerEvents]: index === currentSlideIndex && isEditor,
1429
+ [styles$2.active]: index === currentSlideIndex
1417
1430
  }),
1418
1431
  style: {
1419
1432
  fontFamily: fontSettings.fontFamily,
@@ -1429,7 +1442,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1429
1442
  textDecoration: textAppearance.textDecoration ?? "none",
1430
1443
  fontVariant: textAppearance.fontVariant ?? "normal",
1431
1444
  color,
1432
- opacity: index === currentSlideIndex ? 1 : 0
1445
+ transitionDuration: transition.duration ? `${Math.round(parseInt(transition.duration) / 2)}ms` : "500ms"
1433
1446
  },
1434
1447
  children: /* @__PURE__ */ jsxRuntime.jsx(
1435
1448
  "div",
@@ -1437,10 +1450,10 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1437
1450
  "data-styles": "caption",
1438
1451
  className: styles$2.captionTextInner,
1439
1452
  style: {
1440
- "--link-hover-color": settings.caption.hover,
1453
+ "--link-hover-color": caption.hover,
1441
1454
  position: "relative",
1442
- top: scalingValue(settings.caption.offset.y, isEditor),
1443
- left: scalingValue(settings.caption.offset.x, isEditor)
1455
+ top: scalingValue(caption.offset.y, isEditor),
1456
+ left: scalingValue(caption.offset.x, isEditor)
1444
1457
  },
1445
1458
  children: /* @__PURE__ */ jsxRuntime.jsx(RichTextRenderer, { content: item.imageCaption })
1446
1459
  }
@@ -1461,26 +1474,24 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1461
1474
  ref: setSliderRef,
1462
1475
  options: {
1463
1476
  arrows: false,
1464
- speed: 600,
1465
- autoplay: isEditor ? false : settings.triggers.autoPlay !== null,
1466
- ...settings.triggers.autoPlay !== null && {
1467
- interval: parseInt(settings.triggers.autoPlay) * 1e3
1477
+ speed: transition.duration ? parseInt(transition.duration) : 500,
1478
+ autoplay: isEditor ? false : triggers.autoPlay !== null,
1479
+ ...triggers.autoPlay !== null && {
1480
+ interval: parseInt(triggers.autoPlay) * 1e3
1468
1481
  },
1469
- direction: direction === "horizontal" ? "ltr" : "ttb",
1482
+ direction: direction === "horiz" || transition.type === "fade in" ? "ltr" : "ttb",
1470
1483
  pagination: false,
1471
- drag: settings.triggers.triggersList.drag,
1484
+ drag: triggers.triggersList.drag,
1472
1485
  perPage: 1,
1473
- width: sliderDimensions ? sliderDimensions == null ? void 0 : sliderDimensions.width : "100%",
1474
- height: sliderDimensions ? sliderDimensions == null ? void 0 : sliderDimensions.height : "100%",
1475
- type: "loop"
1486
+ width: sliderDimensions ? sliderDimensions.width : "100%",
1487
+ height: sliderDimensions ? sliderDimensions.height : "100%",
1488
+ type: transition.type === "fade in" ? "fade" : "loop",
1489
+ rewind: true
1476
1490
  },
1477
1491
  children: content.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(reactSplide.SplideSlide, { children: /* @__PURE__ */ jsxRuntime.jsx(
1478
1492
  "div",
1479
1493
  {
1480
1494
  className: styles$2.sliderItem,
1481
- style: {
1482
- ...sliderDimensions
1483
- },
1484
1495
  children: /* @__PURE__ */ jsxRuntime.jsx(
1485
1496
  "div",
1486
1497
  {
@@ -1500,18 +1511,19 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1500
1511
  )
1501
1512
  }
1502
1513
  ) }, index))
1503
- }
1514
+ },
1515
+ key
1504
1516
  ),
1505
- settings.controls.isActive && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1517
+ controls.isActive && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1506
1518
  /* @__PURE__ */ jsxRuntime.jsx(
1507
1519
  "div",
1508
1520
  {
1509
1521
  className: cn(styles$2.arrow, {
1510
- [styles$2.arrowVertical]: settings.direction === "vertical"
1522
+ [styles$2.arrowVertical]: direction === "vert"
1511
1523
  }),
1512
1524
  style: {
1513
- color: settings.controls.color,
1514
- ["--arrow-hover-color"]: settings.controls.hover
1525
+ color: controls.color,
1526
+ ["--arrow-hover-color"]: controls.hover
1515
1527
  },
1516
1528
  children: /* @__PURE__ */ jsxRuntime.jsxs(
1517
1529
  "button",
@@ -1521,19 +1533,19 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1521
1533
  },
1522
1534
  className: styles$2.arrowInner,
1523
1535
  style: {
1524
- transform: `translate(${scalingValue(controlsOffsetX, isEditor)}, ${scalingValue(controlsOffsetY * (direction === "horizontal" ? 1 : -1), isEditor)}) scale(${settings.controls.scale / 100}) rotate(${direction === "horizontal" ? "0deg" : "90deg"})`
1536
+ transform: `translate(${scalingValue(controlsOffsetX, isEditor)}, ${scalingValue(controlsOffsetY * (direction === "horiz" ? 1 : -1), isEditor)}) scale(${settings.controls.scale / 100}) rotate(${direction === "horiz" ? "0deg" : "90deg"})`
1525
1537
  },
1526
1538
  children: [
1527
- settings.controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
1539
+ controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
1528
1540
  SvgImage,
1529
1541
  {
1530
- url: settings.controls.arrowsImgUrl,
1531
- fill: settings.controls.color,
1532
- hoverFill: settings.controls.hover,
1542
+ url: controls.arrowsImgUrl,
1543
+ fill: controls.color,
1544
+ hoverFill: controls.hover,
1533
1545
  className: cn(styles$2.arrowImg, styles$2.mirror)
1534
1546
  }
1535
1547
  ),
1536
- !settings.controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon, { color: settings.controls.color, className: cn(styles$2.arrowIcon, styles$2.arrowImg, styles$2.mirror) })
1548
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(ArrowIcon, { color: controls.color, className: cn(styles$2.arrowIcon, styles$2.arrowImg, styles$2.mirror) })
1537
1549
  ]
1538
1550
  }
1539
1551
  )
@@ -1543,11 +1555,11 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1543
1555
  "div",
1544
1556
  {
1545
1557
  className: cn(styles$2.arrow, styles$2.nextArrow, {
1546
- [styles$2.arrowVertical]: settings.direction === "vertical"
1558
+ [styles$2.arrowVertical]: direction === "vert"
1547
1559
  }),
1548
1560
  style: {
1549
- color: settings.controls.color,
1550
- ["--arrow-hover-color"]: settings.controls.hover
1561
+ color: controls.color,
1562
+ ["--arrow-hover-color"]: controls.hover
1551
1563
  },
1552
1564
  children: /* @__PURE__ */ jsxRuntime.jsxs(
1553
1565
  "button",
@@ -1555,26 +1567,26 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1555
1567
  className: styles$2.arrowInner,
1556
1568
  onClick: () => handleArrowClick("+1"),
1557
1569
  style: {
1558
- 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"})`
1559
1571
  },
1560
1572
  children: [
1561
- settings.controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
1573
+ controls.arrowsImgUrl && /* @__PURE__ */ jsxRuntime.jsx(
1562
1574
  SvgImage,
1563
1575
  {
1564
- url: settings.controls.arrowsImgUrl,
1565
- fill: settings.controls.color,
1566
- hoverFill: settings.controls.hover,
1576
+ url: controls.arrowsImgUrl,
1577
+ fill: controls.color,
1578
+ hoverFill: controls.hover,
1567
1579
  className: styles$2.arrowImg
1568
1580
  }
1569
1581
  ),
1570
- !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) })
1571
1583
  ]
1572
1584
  }
1573
1585
  )
1574
1586
  }
1575
1587
  )
1576
1588
  ] }),
1577
- settings.triggers.triggersList.click && /* @__PURE__ */ jsxRuntime.jsx(
1589
+ triggers.triggersList.click && /* @__PURE__ */ jsxRuntime.jsx(
1578
1590
  "div",
1579
1591
  {
1580
1592
  className: styles$2.clickOverlay,
@@ -1585,27 +1597,27 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1585
1597
  }
1586
1598
  }
1587
1599
  ),
1588
- settings.pagination.isActive && /* @__PURE__ */ jsxRuntime.jsx(
1600
+ pagination2.isActive && /* @__PURE__ */ jsxRuntime.jsx(
1589
1601
  "div",
1590
1602
  {
1591
1603
  className: cn(styles$2.pagination, {
1592
- [styles$2.paginationInsideBottom]: settings.pagination.position === "inside-1" && settings.direction === "horizontal",
1593
- [styles$2.paginationInsideTop]: settings.pagination.position === "inside-2" && settings.direction === "horizontal",
1594
- [styles$2.paginationOutsideBottom]: settings.pagination.position === "outside-1" && settings.direction === "horizontal",
1595
- [styles$2.paginationOutsideTop]: settings.pagination.position === "outside-2" && settings.direction === "horizontal",
1596
- [styles$2.paginationInsideLeft]: settings.pagination.position === "inside-1" && settings.direction === "vertical",
1597
- [styles$2.paginationInsideRight]: settings.pagination.position === "inside-2" && settings.direction === "vertical",
1598
- [styles$2.paginationOutsideLeft]: settings.pagination.position === "outside-1" && settings.direction === "vertical",
1599
- [styles$2.paginationOutsideRight]: settings.pagination.position === "outside-2" && settings.direction === "vertical",
1600
- [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"
1601
1613
  }),
1602
1614
  children: /* @__PURE__ */ jsxRuntime.jsx(
1603
1615
  "div",
1604
1616
  {
1605
1617
  className: styles$2.paginationInner,
1606
1618
  style: {
1607
- backgroundColor: settings.pagination.colors[2],
1608
- 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"})`
1609
1621
  },
1610
1622
  children: content.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
1611
1623
  "button",
@@ -1623,8 +1635,8 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1623
1635
  [styles$2.activeDot]: index === currentSlideIndex
1624
1636
  }),
1625
1637
  style: {
1626
- backgroundColor: index === currentSlideIndex ? settings.pagination.colors[0] : settings.pagination.colors[1],
1627
- ["--pagination-hover-color"]: settings.pagination.hover
1638
+ backgroundColor: index === currentSlideIndex ? pagination2.colors[0] : pagination2.colors[1],
1639
+ ["--pagination-hover-color"]: pagination2.hover
1628
1640
  }
1629
1641
  }
1630
1642
  )
@@ -1635,7 +1647,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1635
1647
  )
1636
1648
  }
1637
1649
  )
1638
- ] });
1650
+ ] }) });
1639
1651
  }
1640
1652
  function ArrowIcon({ color, className }) {
1641
1653
  return /* @__PURE__ */ jsxRuntime.jsx("svg", { viewBox: "0 0 10 18", className, children: /* @__PURE__ */ jsxRuntime.jsx("g", { id: "Symbols", stroke: "none", strokeWidth: "1", fillRule: "evenodd", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M-3.70710678,4.29289322 C-3.34662282,3.93240926 -2.77939176,3.90467972 -2.38710056,4.20970461 L-2.29289322,4.29289322 L5,11.585 L12.2928932,4.29289322 C12.6533772,3.93240926 13.2206082,3.90467972 13.6128994,4.20970461 L13.7071068,4.29289322 C14.0675907,4.65337718 14.0953203,5.22060824 13.7902954,5.61289944 L13.7071068,5.70710678 L5.70710678,13.7071068 C5.34662282,14.0675907 4.77939176,14.0953203 4.38710056,13.7902954 L4.29289322,13.7071068 L-3.70710678,5.70710678 C-4.09763107,5.31658249 -4.09763107,4.68341751 -3.70710678,4.29289322 Z", id: "Shape-Copy", fill: color, transform: "translate(5, 9) rotate(-90) translate(-5, -9)" }) }) });
@@ -1695,9 +1707,32 @@ const ControlSliderComponent = {
1695
1707
  tooltip: "Direction",
1696
1708
  type: "string",
1697
1709
  display: {
1698
- type: "direction-enum"
1710
+ type: "ratio-group"
1699
1711
  },
1700
- 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
+ }
1701
1736
  },
1702
1737
  controls: {
1703
1738
  name: "controls",
@@ -1887,6 +1922,10 @@ const ControlSliderComponent = {
1887
1922
  color: "#000000",
1888
1923
  hover: "#cccccc"
1889
1924
  },
1925
+ transition: {
1926
+ type: "slide",
1927
+ duration: "500ms"
1928
+ },
1890
1929
  pagination: {
1891
1930
  isActive: true,
1892
1931
  scale: 50,
@@ -1898,7 +1937,7 @@ const ControlSliderComponent = {
1898
1937
  colors: ["#cccccc", "#cccccc", "#000000"],
1899
1938
  hover: "#cccccc"
1900
1939
  },
1901
- direction: "horizontal",
1940
+ direction: "horiz",
1902
1941
  caption: {
1903
1942
  offset: {
1904
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) => {
@@ -1224,6 +1224,7 @@ const imgWrapper = "ControlSlider-module__imgWrapper___UjEgB";
1224
1224
  const captionBlock = "ControlSlider-module__captionBlock___dJ6-j";
1225
1225
  const captionTextWrapper = "ControlSlider-module__captionTextWrapper___HFlpf";
1226
1226
  const captionText = "ControlSlider-module__captionText___uGBVc";
1227
+ const active = "ControlSlider-module__active___WZK4G";
1227
1228
  const withPointerEvents = "ControlSlider-module__withPointerEvents___t-18M";
1228
1229
  const topLeftAlignment = "ControlSlider-module__topLeftAlignment___zjnGM";
1229
1230
  const topCenterAlignment = "ControlSlider-module__topCenterAlignment___gD1xW";
@@ -1266,6 +1267,7 @@ const styles$2 = {
1266
1267
  captionBlock,
1267
1268
  captionTextWrapper,
1268
1269
  captionText,
1270
+ active,
1269
1271
  withPointerEvents,
1270
1272
  topLeftAlignment,
1271
1273
  topCenterAlignment,
@@ -1361,7 +1363,9 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1361
1363
  const [sliderDimensions, setSliderDimensions] = useState(void 0);
1362
1364
  const [wrapperRef, setWrapperRef] = useState(null);
1363
1365
  const [currentSlideIndex, setCurrentSlideIndex] = useState(0);
1364
- 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);
1365
1369
  const { x: controlsOffsetX, y: controlsOffsetY } = settings.controls.offset;
1366
1370
  const handleArrowClick = (dir) => {
1367
1371
  if (sliderRef) {
@@ -1381,7 +1385,15 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1381
1385
  observer.observe(wrapperRef);
1382
1386
  return () => observer.unobserve(wrapperRef);
1383
1387
  }, [wrapperRef]);
1384
- return /* @__PURE__ */ jsxs("div", { className: cn(styles$2.wrapper, { [styles$2.editor]: isEditor }), ref: setWrapperRef, children: [
1388
+ useEffect(() => {
1389
+ if (!sliderRef || prevSliderTypeRef.current === transition.type) return;
1390
+ setKey((prev) => prev + 1);
1391
+ prevSliderTypeRef.current = transition.type;
1392
+ }, [transition.type]);
1393
+ return /* @__PURE__ */ jsx("div", { className: cn(styles$2.wrapper, { [styles$2.editor]: isEditor }), ref: setWrapperRef, children: /* @__PURE__ */ jsxs("div", { className: styles$2.sliderInner, style: {
1394
+ width: sliderDimensions ? sliderDimensions.width : "100%",
1395
+ height: sliderDimensions ? sliderDimensions.height : "100%"
1396
+ }, children: [
1385
1397
  settings.caption.isActive && /* @__PURE__ */ jsx(
1386
1398
  "div",
1387
1399
  {
@@ -1393,8 +1405,9 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1393
1405
  children: content.map((item, index) => /* @__PURE__ */ jsx(
1394
1406
  "div",
1395
1407
  {
1396
- className: cn(styles$2.captionText, alignmentClassName[settings.caption.alignment], {
1397
- [styles$2.withPointerEvents]: index === currentSlideIndex && isEditor
1408
+ className: cn(styles$2.captionText, alignmentClassName[caption.alignment], {
1409
+ [styles$2.withPointerEvents]: index === currentSlideIndex && isEditor,
1410
+ [styles$2.active]: index === currentSlideIndex
1398
1411
  }),
1399
1412
  style: {
1400
1413
  fontFamily: fontSettings.fontFamily,
@@ -1410,7 +1423,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1410
1423
  textDecoration: textAppearance.textDecoration ?? "none",
1411
1424
  fontVariant: textAppearance.fontVariant ?? "normal",
1412
1425
  color,
1413
- opacity: index === currentSlideIndex ? 1 : 0
1426
+ transitionDuration: transition.duration ? `${Math.round(parseInt(transition.duration) / 2)}ms` : "500ms"
1414
1427
  },
1415
1428
  children: /* @__PURE__ */ jsx(
1416
1429
  "div",
@@ -1418,10 +1431,10 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1418
1431
  "data-styles": "caption",
1419
1432
  className: styles$2.captionTextInner,
1420
1433
  style: {
1421
- "--link-hover-color": settings.caption.hover,
1434
+ "--link-hover-color": caption.hover,
1422
1435
  position: "relative",
1423
- top: scalingValue(settings.caption.offset.y, isEditor),
1424
- left: scalingValue(settings.caption.offset.x, isEditor)
1436
+ top: scalingValue(caption.offset.y, isEditor),
1437
+ left: scalingValue(caption.offset.x, isEditor)
1425
1438
  },
1426
1439
  children: /* @__PURE__ */ jsx(RichTextRenderer, { content: item.imageCaption })
1427
1440
  }
@@ -1442,26 +1455,24 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1442
1455
  ref: setSliderRef,
1443
1456
  options: {
1444
1457
  arrows: false,
1445
- speed: 600,
1446
- autoplay: isEditor ? false : settings.triggers.autoPlay !== null,
1447
- ...settings.triggers.autoPlay !== null && {
1448
- interval: parseInt(settings.triggers.autoPlay) * 1e3
1458
+ speed: transition.duration ? parseInt(transition.duration) : 500,
1459
+ autoplay: isEditor ? false : triggers.autoPlay !== null,
1460
+ ...triggers.autoPlay !== null && {
1461
+ interval: parseInt(triggers.autoPlay) * 1e3
1449
1462
  },
1450
- direction: direction === "horizontal" ? "ltr" : "ttb",
1463
+ direction: direction === "horiz" || transition.type === "fade in" ? "ltr" : "ttb",
1451
1464
  pagination: false,
1452
- drag: settings.triggers.triggersList.drag,
1465
+ drag: triggers.triggersList.drag,
1453
1466
  perPage: 1,
1454
- width: sliderDimensions ? sliderDimensions == null ? void 0 : sliderDimensions.width : "100%",
1455
- height: sliderDimensions ? sliderDimensions == null ? void 0 : sliderDimensions.height : "100%",
1456
- type: "loop"
1467
+ width: sliderDimensions ? sliderDimensions.width : "100%",
1468
+ height: sliderDimensions ? sliderDimensions.height : "100%",
1469
+ type: transition.type === "fade in" ? "fade" : "loop",
1470
+ rewind: true
1457
1471
  },
1458
1472
  children: content.map((item, index) => /* @__PURE__ */ jsx(SplideSlide, { children: /* @__PURE__ */ jsx(
1459
1473
  "div",
1460
1474
  {
1461
1475
  className: styles$2.sliderItem,
1462
- style: {
1463
- ...sliderDimensions
1464
- },
1465
1476
  children: /* @__PURE__ */ jsx(
1466
1477
  "div",
1467
1478
  {
@@ -1481,18 +1492,19 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1481
1492
  )
1482
1493
  }
1483
1494
  ) }, index))
1484
- }
1495
+ },
1496
+ key
1485
1497
  ),
1486
- settings.controls.isActive && /* @__PURE__ */ jsxs(Fragment, { children: [
1498
+ controls.isActive && /* @__PURE__ */ jsxs(Fragment, { children: [
1487
1499
  /* @__PURE__ */ jsx(
1488
1500
  "div",
1489
1501
  {
1490
1502
  className: cn(styles$2.arrow, {
1491
- [styles$2.arrowVertical]: settings.direction === "vertical"
1503
+ [styles$2.arrowVertical]: direction === "vert"
1492
1504
  }),
1493
1505
  style: {
1494
- color: settings.controls.color,
1495
- ["--arrow-hover-color"]: settings.controls.hover
1506
+ color: controls.color,
1507
+ ["--arrow-hover-color"]: controls.hover
1496
1508
  },
1497
1509
  children: /* @__PURE__ */ jsxs(
1498
1510
  "button",
@@ -1502,19 +1514,19 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1502
1514
  },
1503
1515
  className: styles$2.arrowInner,
1504
1516
  style: {
1505
- transform: `translate(${scalingValue(controlsOffsetX, isEditor)}, ${scalingValue(controlsOffsetY * (direction === "horizontal" ? 1 : -1), isEditor)}) scale(${settings.controls.scale / 100}) rotate(${direction === "horizontal" ? "0deg" : "90deg"})`
1517
+ transform: `translate(${scalingValue(controlsOffsetX, isEditor)}, ${scalingValue(controlsOffsetY * (direction === "horiz" ? 1 : -1), isEditor)}) scale(${settings.controls.scale / 100}) rotate(${direction === "horiz" ? "0deg" : "90deg"})`
1506
1518
  },
1507
1519
  children: [
1508
- settings.controls.arrowsImgUrl && /* @__PURE__ */ jsx(
1520
+ controls.arrowsImgUrl && /* @__PURE__ */ jsx(
1509
1521
  SvgImage,
1510
1522
  {
1511
- url: settings.controls.arrowsImgUrl,
1512
- fill: settings.controls.color,
1513
- hoverFill: settings.controls.hover,
1523
+ url: controls.arrowsImgUrl,
1524
+ fill: controls.color,
1525
+ hoverFill: controls.hover,
1514
1526
  className: cn(styles$2.arrowImg, styles$2.mirror)
1515
1527
  }
1516
1528
  ),
1517
- !settings.controls.arrowsImgUrl && /* @__PURE__ */ jsx(ArrowIcon, { color: settings.controls.color, className: cn(styles$2.arrowIcon, styles$2.arrowImg, styles$2.mirror) })
1529
+ !controls.arrowsImgUrl && /* @__PURE__ */ jsx(ArrowIcon, { color: controls.color, className: cn(styles$2.arrowIcon, styles$2.arrowImg, styles$2.mirror) })
1518
1530
  ]
1519
1531
  }
1520
1532
  )
@@ -1524,11 +1536,11 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1524
1536
  "div",
1525
1537
  {
1526
1538
  className: cn(styles$2.arrow, styles$2.nextArrow, {
1527
- [styles$2.arrowVertical]: settings.direction === "vertical"
1539
+ [styles$2.arrowVertical]: direction === "vert"
1528
1540
  }),
1529
1541
  style: {
1530
- color: settings.controls.color,
1531
- ["--arrow-hover-color"]: settings.controls.hover
1542
+ color: controls.color,
1543
+ ["--arrow-hover-color"]: controls.hover
1532
1544
  },
1533
1545
  children: /* @__PURE__ */ jsxs(
1534
1546
  "button",
@@ -1536,26 +1548,26 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1536
1548
  className: styles$2.arrowInner,
1537
1549
  onClick: () => handleArrowClick("+1"),
1538
1550
  style: {
1539
- 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"})`
1540
1552
  },
1541
1553
  children: [
1542
- settings.controls.arrowsImgUrl && /* @__PURE__ */ jsx(
1554
+ controls.arrowsImgUrl && /* @__PURE__ */ jsx(
1543
1555
  SvgImage,
1544
1556
  {
1545
- url: settings.controls.arrowsImgUrl,
1546
- fill: settings.controls.color,
1547
- hoverFill: settings.controls.hover,
1557
+ url: controls.arrowsImgUrl,
1558
+ fill: controls.color,
1559
+ hoverFill: controls.hover,
1548
1560
  className: styles$2.arrowImg
1549
1561
  }
1550
1562
  ),
1551
- !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) })
1552
1564
  ]
1553
1565
  }
1554
1566
  )
1555
1567
  }
1556
1568
  )
1557
1569
  ] }),
1558
- settings.triggers.triggersList.click && /* @__PURE__ */ jsx(
1570
+ triggers.triggersList.click && /* @__PURE__ */ jsx(
1559
1571
  "div",
1560
1572
  {
1561
1573
  className: styles$2.clickOverlay,
@@ -1566,27 +1578,27 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1566
1578
  }
1567
1579
  }
1568
1580
  ),
1569
- settings.pagination.isActive && /* @__PURE__ */ jsx(
1581
+ pagination2.isActive && /* @__PURE__ */ jsx(
1570
1582
  "div",
1571
1583
  {
1572
1584
  className: cn(styles$2.pagination, {
1573
- [styles$2.paginationInsideBottom]: settings.pagination.position === "inside-1" && settings.direction === "horizontal",
1574
- [styles$2.paginationInsideTop]: settings.pagination.position === "inside-2" && settings.direction === "horizontal",
1575
- [styles$2.paginationOutsideBottom]: settings.pagination.position === "outside-1" && settings.direction === "horizontal",
1576
- [styles$2.paginationOutsideTop]: settings.pagination.position === "outside-2" && settings.direction === "horizontal",
1577
- [styles$2.paginationInsideLeft]: settings.pagination.position === "inside-1" && settings.direction === "vertical",
1578
- [styles$2.paginationInsideRight]: settings.pagination.position === "inside-2" && settings.direction === "vertical",
1579
- [styles$2.paginationOutsideLeft]: settings.pagination.position === "outside-1" && settings.direction === "vertical",
1580
- [styles$2.paginationOutsideRight]: settings.pagination.position === "outside-2" && settings.direction === "vertical",
1581
- [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"
1582
1594
  }),
1583
1595
  children: /* @__PURE__ */ jsx(
1584
1596
  "div",
1585
1597
  {
1586
1598
  className: styles$2.paginationInner,
1587
1599
  style: {
1588
- backgroundColor: settings.pagination.colors[2],
1589
- 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"})`
1590
1602
  },
1591
1603
  children: content.map((_, index) => /* @__PURE__ */ jsx(
1592
1604
  "button",
@@ -1604,8 +1616,8 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1604
1616
  [styles$2.activeDot]: index === currentSlideIndex
1605
1617
  }),
1606
1618
  style: {
1607
- backgroundColor: index === currentSlideIndex ? settings.pagination.colors[0] : settings.pagination.colors[1],
1608
- ["--pagination-hover-color"]: settings.pagination.hover
1619
+ backgroundColor: index === currentSlideIndex ? pagination2.colors[0] : pagination2.colors[1],
1620
+ ["--pagination-hover-color"]: pagination2.hover
1609
1621
  }
1610
1622
  }
1611
1623
  )
@@ -1616,7 +1628,7 @@ function ControlSlider({ settings, content, styles: sliderStyles, isEditor }) {
1616
1628
  )
1617
1629
  }
1618
1630
  )
1619
- ] });
1631
+ ] }) });
1620
1632
  }
1621
1633
  function ArrowIcon({ color, className }) {
1622
1634
  return /* @__PURE__ */ jsx("svg", { viewBox: "0 0 10 18", className, children: /* @__PURE__ */ jsx("g", { id: "Symbols", stroke: "none", strokeWidth: "1", fillRule: "evenodd", children: /* @__PURE__ */ jsx("path", { d: "M-3.70710678,4.29289322 C-3.34662282,3.93240926 -2.77939176,3.90467972 -2.38710056,4.20970461 L-2.29289322,4.29289322 L5,11.585 L12.2928932,4.29289322 C12.6533772,3.93240926 13.2206082,3.90467972 13.6128994,4.20970461 L13.7071068,4.29289322 C14.0675907,4.65337718 14.0953203,5.22060824 13.7902954,5.61289944 L13.7071068,5.70710678 L5.70710678,13.7071068 C5.34662282,14.0675907 4.77939176,14.0953203 4.38710056,13.7902954 L4.29289322,13.7071068 L-3.70710678,5.70710678 C-4.09763107,5.31658249 -4.09763107,4.68341751 -3.70710678,4.29289322 Z", id: "Shape-Copy", fill: color, transform: "translate(5, 9) rotate(-90) translate(-5, -9)" }) }) });
@@ -1676,9 +1688,32 @@ const ControlSliderComponent = {
1676
1688
  tooltip: "Direction",
1677
1689
  type: "string",
1678
1690
  display: {
1679
- type: "direction-enum"
1691
+ type: "ratio-group"
1680
1692
  },
1681
- 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
+ }
1682
1717
  },
1683
1718
  controls: {
1684
1719
  name: "controls",
@@ -1868,6 +1903,10 @@ const ControlSliderComponent = {
1868
1903
  color: "#000000",
1869
1904
  hover: "#cccccc"
1870
1905
  },
1906
+ transition: {
1907
+ type: "slide",
1908
+ duration: "500ms"
1909
+ },
1871
1910
  pagination: {
1872
1911
  isActive: true,
1873
1912
  scale: 50,
@@ -1879,7 +1918,7 @@ const ControlSliderComponent = {
1879
1918
  colors: ["#cccccc", "#cccccc", "#000000"],
1880
1919
  hover: "#cccccc"
1881
1920
  },
1882
- direction: "horizontal",
1921
+ direction: "horiz",
1883
1922
  caption: {
1884
1923
  offset: {
1885
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__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: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.11",
3
+ "version": "1.22.13",
4
4
  "description": "Generic SDK for use in public websites.",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",