@royaloperahouse/harmonic 0.1.8-j → 0.1.8-l

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.
@@ -8,5 +8,6 @@ declare const Swipe: React.ForwardRefExoticComponent<{
8
8
  infinite?: boolean | undefined;
9
9
  slidesOffsetBefore?: number | undefined;
10
10
  onIndexChange?: ((index: number) => void) | undefined;
11
+ onActiveChange?: ((value: boolean) => void) | undefined;
11
12
  } & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<SwipeRef>>;
12
13
  export default Swipe;
@@ -1 +1,2 @@
1
1
  export declare const getVisibleIndexes: (currentIndex: number, slideWidths: number[], containerWidth: number, slidesLength: number) => number[];
2
+ export declare const getMovedSlides: (delta: number, slideWidths: number[]) => number;
@@ -3,6 +3,8 @@ export declare const GRID_VALUES: {
3
3
  desktop: {
4
4
  gapsNumber: number;
5
5
  columnsNumber: number;
6
+ gapsNumberOffset: number;
7
+ columnsNumberOffset: number;
6
8
  largeCard: {
7
9
  gapsPerSlide: number;
8
10
  columnsPerSlide: number;
@@ -19,6 +21,6 @@ export declare const GRID_VALUES: {
19
21
  gapsPerSlide: number;
20
22
  };
21
23
  };
22
- export declare const getCardSlideDesktopStyles: (type: CarouselType) => string;
24
+ export declare const getCardSlideDesktopStyles: (type: CarouselType, isActive?: boolean | undefined) => string;
23
25
  export declare const getCardSlideMobileStyles: () => string;
24
26
  export declare const getImageSlideStyles: (imageHeight: number) => string;
@@ -5900,7 +5900,8 @@ var Navigation = function Navigation(_ref) {
5900
5900
  menuData = _ref.menuData,
5901
5901
  onSearch = _ref.onSearch,
5902
5902
  onLink = _ref.onLink,
5903
- crest = _ref.crest,
5903
+ _ref$crest = _ref.crest,
5904
+ crest = _ref$crest === void 0 ? true : _ref$crest,
5904
5905
  className = _ref.className;
5905
5906
  var _useState = React.useState(dataNavTop),
5906
5907
  navTopData = _useState[0],
@@ -7315,6 +7316,8 @@ var GRID_VALUES = {
7315
7316
  desktop: {
7316
7317
  gapsNumber: 13,
7317
7318
  columnsNumber: 13,
7319
+ gapsNumberOffset: 15,
7320
+ columnsNumberOffset: 14,
7318
7321
  largeCard: {
7319
7322
  gapsPerSlide: 4,
7320
7323
  columnsPerSlide: 5
@@ -7342,16 +7345,20 @@ var calculateSlideGapsSpace = function calculateSlideGapsSpace(gapsPerSlide) {
7342
7345
  return "calc(" + GRID_COLUMN_GAP + " * " + gapsPerSlide + ")";
7343
7346
  };
7344
7347
  // Slide styles
7345
- var getCardSlideDesktopStyles = function getCardSlideDesktopStyles(type) {
7348
+ var getCardSlideDesktopStyles = function getCardSlideDesktopStyles(type, isActive) {
7346
7349
  var _GRID_VALUES$desktop = GRID_VALUES.desktop,
7347
7350
  gapsNumber = _GRID_VALUES$desktop.gapsNumber,
7348
- columnsNumber = _GRID_VALUES$desktop.columnsNumber;
7351
+ columnsNumber = _GRID_VALUES$desktop.columnsNumber,
7352
+ columnsNumberOffset = _GRID_VALUES$desktop.columnsNumberOffset,
7353
+ gapsNumberOffset = _GRID_VALUES$desktop.gapsNumberOffset;
7349
7354
  var _ref = type === exports.CarouselType.LargeCard ? GRID_VALUES.desktop.largeCard : GRID_VALUES.desktop.smallCard,
7350
7355
  gapsPerSlide = _ref.gapsPerSlide,
7351
7356
  columnsPerSlide = _ref.columnsPerSlide;
7352
- var gapsSpaceInMainGrid = calculateGapsSpaceInMainGrid(gapsNumber);
7357
+ var columns = isActive ? columnsNumberOffset : columnsNumber;
7358
+ var gaps = isActive ? gapsNumberOffset : gapsNumber;
7359
+ var gapsSpaceInMainGrid = calculateGapsSpaceInMainGrid(gaps);
7353
7360
  var slideGapsSpace = calculateSlideGapsSpace(gapsPerSlide);
7354
- return "\n width: calc( (" + columnsPerSlide + " * (100% - " + gapsSpaceInMainGrid + ") / " + columnsNumber + ") + " + slideGapsSpace + " );\n margin-right: " + GRID_COLUMN_GAP + ";\n ";
7361
+ return "\n width: calc( (" + columnsPerSlide + " * (100% - " + gapsSpaceInMainGrid + ") / " + columns + ") + " + slideGapsSpace + " );\n margin-right: " + GRID_COLUMN_GAP + ";\n ";
7355
7362
  };
7356
7363
  var getCardSlideMobileStyles = function getCardSlideMobileStyles() {
7357
7364
  var _GRID_VALUES$mobile = GRID_VALUES.mobile,
@@ -7375,8 +7382,9 @@ var ImageCarouselWrapper = /*#__PURE__*/styled__default.div(_templateObject$N ||
7375
7382
  return "&&& {\n .swipe-slide > figure {\n " + getImageSlideStyles(imagesHeightDevice) + "\n }\n }";
7376
7383
  });
7377
7384
  var CardsCarouselWrapper = /*#__PURE__*/styled__default.div(_templateObject2$A || (_templateObject2$A = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n ", "\n\n @media ", " {\n && {\n .swipe-slide {\n ", "\n }\n }\n}}"])), function (_ref3) {
7378
- var type = _ref3.type;
7379
- return "\n & {\n .swipe-slide {\n " + getCardSlideDesktopStyles(type) + "\n }\n }\n ";
7385
+ var type = _ref3.type,
7386
+ isActive = _ref3.isActive;
7387
+ return "\n & {\n .swipe-slide {\n " + getCardSlideDesktopStyles(type, isActive) + "\n }\n }\n ";
7380
7388
  }, devices.mobile, /*#__PURE__*/getCardSlideMobileStyles());
7381
7389
  var TitleButtonsGrid = /*#__PURE__*/styled__default(Grid)(_templateObject3$o || (_templateObject3$o = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n margin-bottom: 28px;\n\n @media ", " {\n padding-bottom: 0;\n }\n\n @media ", " {\n margin-bottom: 20px;\n }\n"])), devices.mobile, devices.mobile);
7382
7390
  var CarouselInfoWrapper = /*#__PURE__*/styled__default.div(_templateObject4$j || (_templateObject4$j = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n user-select: text;\n"])));
@@ -7394,10 +7402,12 @@ var SwipeGridWrapper = /*#__PURE__*/styled__default(GridItem)(_templateObject8$5
7394
7402
  var _templateObject$O, _templateObject2$B;
7395
7403
  var SWIPE_SLIDE_CLASS_NAME = 'swipe-slide';
7396
7404
  var SwipeContainer = /*#__PURE__*/styled__default.div(_templateObject$O || (_templateObject$O = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n position: relative;\n overflow: hidden;\n width: 100%;\n touch-action: pan-y;\n"])));
7397
- var SwipeTrack = /*#__PURE__*/styled__default.div(_templateObject2$B || (_templateObject2$B = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n transition: ", ";\n transform: translateX(", "px);\n\n .", " {\n flex-shrink: 0;\n }\n"])), function (props) {
7398
- return props.transitioning ? 'transform 0.3s ease-in-out' : 'none';
7399
- }, function (props) {
7400
- return props.translateX;
7405
+ var SwipeTrack = /*#__PURE__*/styled__default.div(_templateObject2$B || (_templateObject2$B = /*#__PURE__*/_taggedTemplateLiteralLoose(["\n display: flex;\n transition: ", ";\n transform: translateX(", ");\n\n .", " {\n flex-shrink: 0;\n }\n"])), function (_ref) {
7406
+ var transitioning = _ref.transitioning;
7407
+ return transitioning ? 'transform 0.3s ease' : 'none';
7408
+ }, function (_ref2) {
7409
+ var translateX = _ref2.translateX;
7410
+ return translateX + "px";
7401
7411
  }, SWIPE_SLIDE_CLASS_NAME);
7402
7412
 
7403
7413
  /**
@@ -7425,9 +7435,26 @@ var getVisibleIndexes = function getVisibleIndexes(currentIndex, slideWidths, co
7425
7435
  }
7426
7436
  return visible;
7427
7437
  };
7438
+ var getMovedSlides = function getMovedSlides(delta, slideWidths) {
7439
+ var absDelta = Math.abs(delta);
7440
+ var movedSlides = 0;
7441
+ var accumulated = 0;
7442
+ for (var i = 0; i < slideWidths.length; i++) {
7443
+ accumulated += slideWidths[i];
7444
+ // Allow partial slide (e.g. 50% of next slide) to count
7445
+ var partialThreshold = slideWidths[i] * 0.5;
7446
+ if (absDelta > accumulated - partialThreshold) {
7447
+ movedSlides++;
7448
+ } else {
7449
+ break;
7450
+ }
7451
+ }
7452
+ return movedSlides;
7453
+ };
7428
7454
 
7429
- var _excluded$h = ["children", "infinite", "onIndexChange", "slidesOffsetBefore"];
7455
+ var _excluded$h = ["children", "infinite", "onIndexChange", "slidesOffsetBefore", "onActiveChange"];
7430
7456
  var MAX_CLONES_NUMBER = 6;
7457
+ var CLICK_DRAG_THRESHOLD = 20;
7431
7458
  var getClonesCount = function getClonesCount(infinite, childrenLength) {
7432
7459
  if (!infinite) return 0;
7433
7460
  if (childrenLength > MAX_CLONES_NUMBER) return MAX_CLONES_NUMBER;
@@ -7447,13 +7474,29 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
7447
7474
  onIndexChange = _ref.onIndexChange,
7448
7475
  _ref$slidesOffsetBefo = _ref.slidesOffsetBefore,
7449
7476
  slidesOffsetBefore = _ref$slidesOffsetBefo === void 0 ? 0 : _ref$slidesOffsetBefo,
7477
+ onActiveChange = _ref.onActiveChange,
7450
7478
  props = _objectWithoutPropertiesLoose(_ref, _excluded$h);
7451
7479
  var containerRef = React.useRef(null);
7452
7480
  var childRefs = React.useRef([]);
7453
7481
  var startX = React.useRef(0);
7454
7482
  var currentTranslate = React.useRef(0);
7455
7483
  var isDragging = React.useRef(false);
7484
+ var isMouseDown = React.useRef(false);
7485
+ var isActive = React.useRef(false);
7486
+ var isClickPrevented = React.useRef(false);
7456
7487
  var uniqueIdRef = React.useRef(generateDomElementId());
7488
+ var _useState = React.useState(null),
7489
+ dragTranslateX = _useState[0],
7490
+ setDragTranslateX = _useState[1];
7491
+ var _useState2 = React.useState(false),
7492
+ transitioning = _useState2[0],
7493
+ setTransitioning = _useState2[1];
7494
+ var _useState3 = React.useState([]),
7495
+ slideWidths = _useState3[0],
7496
+ setSlideWidths = _useState3[1];
7497
+ var _useState4 = React.useState(0),
7498
+ containerWidth = _useState4[0],
7499
+ setContainerWidth = _useState4[1];
7457
7500
  var _useMemo = React.useMemo(function () {
7458
7501
  var count = getClonesCount(infinite, children.length);
7459
7502
  var leftClones = infinite ? children.slice(-count) : [];
@@ -7466,65 +7509,74 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
7466
7509
  }, [children, infinite]),
7467
7510
  slides = _useMemo.slides,
7468
7511
  clonesCount = _useMemo.clonesCount;
7469
- // Set the initial index to clonesCount (so the first real slide is shown)
7470
- var _useState = React.useState(infinite ? clonesCount : 0),
7471
- currentIndex = _useState[0],
7472
- setCurrentIndex = _useState[1];
7473
- var _useState2 = React.useState(false),
7474
- transitioning = _useState2[0],
7475
- setTransitioning = _useState2[1];
7476
- var _useState3 = React.useState([]),
7477
- slideWidths = _useState3[0],
7478
- setSlideWidths = _useState3[1];
7479
- var _useState4 = React.useState(0),
7480
- containerWidth = _useState4[0],
7481
- setContainerWidth = _useState4[1];
7512
+ var _useState5 = React.useState(infinite ? clonesCount : 0),
7513
+ currentIndex = _useState5[0],
7514
+ setCurrentIndex = _useState5[1];
7482
7515
  React.useEffect(function () {
7483
7516
  if (!onIndexChange) return;
7484
7517
  if (!infinite) {
7485
7518
  onIndexChange(currentIndex);
7486
- return;
7519
+ } else {
7520
+ var offset = currentIndex - clonesCount + children.length;
7521
+ var realIndex = offset % children.length;
7522
+ onIndexChange(realIndex);
7487
7523
  }
7488
- var offset = currentIndex - clonesCount + children.length;
7489
- var realIndex = offset % children.length;
7490
- onIndexChange(realIndex);
7491
- }, [currentIndex, onIndexChange, infinite, children.length]);
7492
- // Update dimensions
7524
+ }, [currentIndex, onIndexChange, infinite, children.length, clonesCount]);
7493
7525
  var updateDimensions = React.useCallback(function () {
7494
7526
  if (containerRef.current) setContainerWidth(containerRef.current.offsetWidth);
7495
7527
  if (childRefs.current.length) setSlideWidths(childRefs.current.map(getSlidedWidth));
7496
7528
  }, []);
7497
7529
  React.useEffect(function () {
7498
- var animationFrameRequestId = requestAnimationFrame(function () {
7499
- updateDimensions();
7500
- });
7530
+ var animationFrameRequestId = requestAnimationFrame(updateDimensions);
7501
7531
  return function () {
7502
- cancelAnimationFrame(animationFrameRequestId);
7532
+ return cancelAnimationFrame(animationFrameRequestId);
7503
7533
  };
7504
7534
  }, [children]);
7505
7535
  React.useEffect(function () {
7506
7536
  var observer = new ResizeObserver(updateDimensions);
7507
7537
  if (containerRef.current) observer.observe(containerRef.current);
7508
7538
  return function () {
7509
- observer.disconnect();
7539
+ return observer.disconnect();
7510
7540
  };
7511
7541
  }, [children]);
7512
- // Compute current translate X value by summing widths of all slides before currentIndex.
7542
+ var setIsActive = function setIsActive() {
7543
+ if (!isActive.current) {
7544
+ isActive.current = true;
7545
+ onActiveChange == null || onActiveChange(true);
7546
+ }
7547
+ };
7513
7548
  var getTranslateX = function getTranslateX() {
7514
- var slideOffset = slidesOffsetBefore - slideWidths.slice(0, currentIndex).reduce(function (acc, width) {
7549
+ var offset = slidesOffsetBefore - slideWidths.slice(0, currentIndex).reduce(function (acc, width) {
7515
7550
  return acc + width;
7516
7551
  }, 0);
7517
- return slideOffset + (slidesOffsetBefore || 0); // Apply offsetBefore
7552
+ return offset + (slidesOffsetBefore || 0);
7553
+ };
7554
+ var navigateOnSwipeEnd = function navigateOnSwipeEnd() {
7555
+ var delta = currentTranslate.current - getTranslateX();
7556
+ var direction = delta > 0 ? -1 : 1;
7557
+ var movedSlides = getMovedSlides(delta, slideWidths);
7558
+ if (Math.abs(delta) > 20) {
7559
+ movedSlides = Math.max(1, movedSlides);
7560
+ var targetIndex = currentIndex + direction * movedSlides;
7561
+ var finalIndex = infinite ? targetIndex : Math.max(0, Math.min(slides.length - 1, targetIndex));
7562
+ setTransitioning(true);
7563
+ setCurrentIndex(finalIndex);
7564
+ } else {
7565
+ setTransitioning(true);
7566
+ setCurrentIndex(function (prev) {
7567
+ return prev;
7568
+ });
7569
+ }
7570
+ setDragTranslateX(null);
7518
7571
  };
7519
7572
  var canMoveNext = function canMoveNext() {
7520
7573
  var totalVisibleWidth = slideWidths.slice(currentIndex).reduce(function (acc, width) {
7521
7574
  return acc + width;
7522
7575
  }, 0);
7523
- // In non-infinite mode, only move if there is more to show
7524
7576
  return infinite || totalVisibleWidth > containerWidth - (slidesOffsetBefore || 0);
7525
7577
  };
7526
7578
  var handleTransitionEnd = function handleTransitionEnd() {
7527
- setTransitioning(false); // Reset transitioning after animation ends
7579
+ setTransitioning(false);
7528
7580
  if (!infinite) return;
7529
7581
  if (currentIndex >= children.length + clonesCount) {
7530
7582
  setCurrentIndex(clonesCount);
@@ -7533,22 +7585,16 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
7533
7585
  }
7534
7586
  };
7535
7587
  var goToPrev = function goToPrev() {
7536
- if (transitioning) return; // Prevent clicks during transition
7537
- if (currentIndex === 0 && !infinite) {
7538
- setTransitioning(false); // Reset immediately if no more slides
7539
- return;
7540
- }
7588
+ if (transitioning) return;
7589
+ setIsActive();
7541
7590
  setTransitioning(true);
7542
7591
  setCurrentIndex(function (prev) {
7543
7592
  return infinite ? prev - 1 : Math.max(0, prev - 1);
7544
7593
  });
7545
7594
  };
7546
7595
  var goToNext = function goToNext() {
7547
- if (transitioning || !canMoveNext()) return; // Prevent clicks during transition
7548
- if (currentIndex === children.length - 1 && !infinite) {
7549
- setTransitioning(false); // Reset immediately if no more slides
7550
- return;
7551
- }
7596
+ if (transitioning || !canMoveNext()) return;
7597
+ setIsActive();
7552
7598
  setTransitioning(true);
7553
7599
  setCurrentIndex(function (prev) {
7554
7600
  return infinite ? prev + 1 : Math.min(children.length - 1, prev + 1);
@@ -7561,26 +7607,70 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
7561
7607
  };
7562
7608
  });
7563
7609
  var handleTouchStart = function handleTouchStart(e) {
7610
+ setIsActive();
7564
7611
  startX.current = e.touches[0].clientX;
7565
7612
  isDragging.current = true;
7613
+ isClickPrevented.current = false;
7566
7614
  setTransitioning(false);
7567
7615
  };
7568
7616
  var handleTouchMove = function handleTouchMove(e) {
7569
7617
  if (!isDragging.current) return;
7570
7618
  var deltaX = e.touches[0].clientX - startX.current;
7571
- currentTranslate.current = getTranslateX() + deltaX;
7619
+ if (Math.abs(deltaX) > CLICK_DRAG_THRESHOLD) {
7620
+ isClickPrevented.current = true;
7621
+ }
7622
+ var visualOffset = getTranslateX() + deltaX;
7623
+ currentTranslate.current = visualOffset;
7624
+ setDragTranslateX(visualOffset);
7572
7625
  };
7573
7626
  var handleTouchEnd = function handleTouchEnd() {
7574
7627
  isDragging.current = false;
7575
- setTransitioning(true);
7576
- if (currentTranslate.current > getTranslateX()) {
7577
- goToPrev();
7578
- } else if (currentTranslate.current < getTranslateX()) {
7579
- goToNext();
7628
+ navigateOnSwipeEnd();
7629
+ };
7630
+ var handleMouseMove = function handleMouseMove(e) {
7631
+ if (!isDragging.current || !isMouseDown.current || transitioning) return;
7632
+ var deltaX = e.clientX - startX.current;
7633
+ if (Math.abs(deltaX) > CLICK_DRAG_THRESHOLD) {
7634
+ isClickPrevented.current = true;
7580
7635
  }
7636
+ var visualOffset = getTranslateX() + deltaX;
7637
+ currentTranslate.current = visualOffset;
7638
+ setDragTranslateX(visualOffset);
7639
+ };
7640
+ var _handleMouseUp = function handleMouseUp() {
7641
+ if (!isDragging.current || !isMouseDown.current) return;
7642
+ isDragging.current = false;
7643
+ isMouseDown.current = false;
7644
+ window.removeEventListener('mousemove', handleMouseMove);
7645
+ window.removeEventListener('mouseup', _handleMouseUp);
7646
+ if (!isClickPrevented.current) {
7647
+ setDragTranslateX(null);
7648
+ return;
7649
+ }
7650
+ navigateOnSwipeEnd();
7651
+ };
7652
+ var handleMouseDown = function handleMouseDown(e) {
7653
+ if (transitioning || e.button !== 0) return;
7654
+ e.preventDefault();
7655
+ setIsActive();
7656
+ startX.current = e.clientX;
7657
+ isDragging.current = true;
7658
+ isMouseDown.current = true;
7659
+ isClickPrevented.current = false;
7660
+ setTransitioning(false);
7661
+ window.addEventListener('mousemove', handleMouseMove);
7662
+ window.addEventListener('mouseup', _handleMouseUp);
7581
7663
  };
7582
7664
  var onSlideFocus = function onSlideFocus(isVisible, index) {
7583
- if (!isVisible) setCurrentIndex(index);
7665
+ if (!isVisible) {
7666
+ setCurrentIndex(index);
7667
+ }
7668
+ };
7669
+ var onClickCapture = function onClickCapture(e) {
7670
+ if (isClickPrevented.current) {
7671
+ e.preventDefault();
7672
+ e.stopPropagation();
7673
+ }
7584
7674
  };
7585
7675
  var visibleIndexes = getVisibleIndexes(currentIndex, slideWidths, containerWidth, slides.length);
7586
7676
  return /*#__PURE__*/React__default.createElement(SwipeContainer, Object.assign({
@@ -7588,11 +7678,12 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
7588
7678
  onTouchStart: handleTouchStart,
7589
7679
  onTouchMove: handleTouchMove,
7590
7680
  onTouchEnd: handleTouchEnd,
7681
+ onMouseDown: handleMouseDown,
7591
7682
  className: "swipe"
7592
7683
  }, props), /*#__PURE__*/React__default.createElement(SwipeTrack, {
7593
7684
  className: "swipe-track-wrapper",
7594
- translateX: getTranslateX(),
7595
- transitioning: transitioning,
7685
+ translateX: dragTranslateX !== null ? dragTranslateX : getTranslateX(),
7686
+ transitioning: transitioning && dragTranslateX === null,
7596
7687
  onTransitionEnd: handleTransitionEnd
7597
7688
  }, slides.map(function (child, index) {
7598
7689
  var isVisible = visibleIndexes.includes(index);
@@ -7605,7 +7696,8 @@ var Swipe = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
7605
7696
  },
7606
7697
  onFocus: function onFocus() {
7607
7698
  return onSlideFocus(isVisible, index);
7608
- }
7699
+ },
7700
+ onClickCapture: onClickCapture
7609
7701
  });
7610
7702
  })));
7611
7703
  });
@@ -7659,19 +7751,23 @@ var Carousel = function Carousel(_ref) {
7659
7751
  }, [useOffset, active]);
7660
7752
  var onNext = function onNext() {
7661
7753
  var _swipeRef$current;
7662
- if (useOffset && !active) setActive(true);
7663
7754
  (_swipeRef$current = swipeRef.current) == null || _swipeRef$current.nextSlide();
7664
7755
  };
7665
7756
  var onPrev = function onPrev() {
7666
7757
  var _swipeRef$current2;
7667
- if (useOffset && !active) setActive(true);
7668
7758
  (_swipeRef$current2 = swipeRef.current) == null || _swipeRef$current2.prevSlide();
7669
7759
  };
7760
+ var onActiveChangeHandler = function onActiveChangeHandler(value) {
7761
+ if (useOffset && !active) {
7762
+ setActive(value);
7763
+ }
7764
+ };
7670
7765
  var carouselTitleId = "carousel-title-" + title;
7671
7766
  var Wrapper = type === exports.CarouselType.Image ? ImageCarouselWrapper : CardsCarouselWrapper;
7672
7767
  return /*#__PURE__*/React__default.createElement(Wrapper, {
7673
7768
  className: className,
7674
7769
  type: type,
7770
+ isActive: active,
7675
7771
  imagesHeightDevice: imagesHeightDevice,
7676
7772
  imagesHeightDesktop: imagesHeightDesktop,
7677
7773
  role: "region",
@@ -7710,6 +7806,9 @@ var Carousel = function Carousel(_ref) {
7710
7806
  columnStartDevice: 2,
7711
7807
  columnSpanDevice: 13
7712
7808
  }, /*#__PURE__*/React__default.createElement(Swipe, {
7809
+ onActiveChange: function onActiveChange(value) {
7810
+ return onActiveChangeHandler(value);
7811
+ },
7713
7812
  "data-testid": "carousel-swipe",
7714
7813
  ref: swipeRef,
7715
7814
  infinite: infinite,