@razorpay/blade 12.46.2 → 12.47.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../../src/components/Carousel/constants.ts"],"sourcesContent":["const CAROUSEL_AUTOPLAY_INTERVAL = 6000;\n\nconst componentIds = {\n CarouselItem: 'CarouselItem',\n};\n\nexport { CAROUSEL_AUTOPLAY_INTERVAL, componentIds };\n"],"names":["CAROUSEL_AUTOPLAY_INTERVAL"],"mappings":"AAAM,IAAAA,0BAA0B,CAAG;;;;"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../../src/components/Carousel/constants.ts"],"sourcesContent":["const CAROUSEL_AUTOPLAY_INTERVAL = 6000;\n/*\n Button have width of 34px in desktop , value from left /right should be 34px/2 = 17px.\n In mobile we have 24px width of button , value from left /right should be 24px/2 = 12px. (but currently we don't support overlap in mobile)\n*/\nconst CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET = '-17px';\n\nconst componentIds = {\n CarouselItem: 'CarouselItem',\n};\n\nexport { CAROUSEL_AUTOPLAY_INTERVAL, componentIds, CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET };\n"],"names":["CAROUSEL_AUTOPLAY_INTERVAL"],"mappings":"AAAM,IAAAA,0BAA0B,CAAG;;;;"}
@@ -7,7 +7,7 @@ import { Indicators } from './Indicators/Indicators.js';
7
7
  import './NavigationButton/index.js';
8
8
  import { CarouselContext } from './CarouselContext.js';
9
9
  import { getCarouselItemId } from './utils.js';
10
- import { componentIds, CAROUSEL_AUTOPLAY_INTERVAL } from './constants.js';
10
+ import { componentIds, CAROUSEL_AUTOPLAY_INTERVAL, CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET } from './constants.js';
11
11
  import getIn from '../../utils/lodashButBetter/get.js';
12
12
  import throttle from '../../utils/lodashButBetter/throttle.js';
13
13
  import debounce from '../../utils/lodashButBetter/debounce.js';
@@ -74,7 +74,7 @@ var Controls = function Controls(_ref) {
74
74
  }) : null]
75
75
  });
76
76
  }
77
- if (showIndicators && navigationButtonPosition === 'side') {
77
+ if (showIndicators && (navigationButtonPosition === 'side' || navigationButtonPosition === 'side-overlap')) {
78
78
  return /*#__PURE__*/jsx(Box, {
79
79
  marginTop: "spacing.7",
80
80
  children: /*#__PURE__*/jsx(Indicators, {
@@ -287,6 +287,7 @@ var _Carousel = function _Carousel(_ref4, ref) {
287
287
  showIndicators = false;
288
288
  }
289
289
  var showNavigationButtons = showNavigationButtonProp || !isMobile;
290
+ var isNavigationButtonPositionSideOverlap = navigationButtonPosition === 'side-overlap';
290
291
  var isNavButtonsOnSide = !isResponsive && navigationButtonPosition === 'side';
291
292
  var shouldNavButtonsFloat = isResponsive && navigationButtonPosition === 'side';
292
293
  var totalNumberOfSlides = React__default.Children.count(children);
@@ -493,10 +494,10 @@ var _Carousel = function _Carousel(_ref4, ref) {
493
494
  gap: "spacing.4",
494
495
  flexDirection: "row",
495
496
  height: "100%",
496
- children: [shouldShowPrevButton && shouldNavButtonsFloat ? /*#__PURE__*/jsx(BaseBox, {
497
+ children: [shouldShowPrevButton && (shouldNavButtonsFloat || isNavigationButtonPositionSideOverlap) ? /*#__PURE__*/jsx(BaseBox, {
497
498
  zIndex: 2,
498
499
  position: "absolute",
499
- left: "spacing.11",
500
+ left: isNavigationButtonPositionSideOverlap ? CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET : 'spacing.11',
500
501
  children: /*#__PURE__*/jsx(NavigationButton, {
501
502
  type: "previous",
502
503
  variant: navigationButtonVariant,
@@ -520,10 +521,10 @@ var _Carousel = function _Carousel(_ref4, ref) {
520
521
  snapAlign: snapAlign,
521
522
  gap: gap,
522
523
  children: children
523
- }), shouldShowNextButton && shouldNavButtonsFloat ? /*#__PURE__*/jsx(BaseBox, {
524
+ }), shouldShowNextButton && (shouldNavButtonsFloat || isNavigationButtonPositionSideOverlap) ? /*#__PURE__*/jsx(BaseBox, {
524
525
  zIndex: 2,
525
526
  position: "absolute",
526
- right: "spacing.11",
527
+ right: isNavigationButtonPositionSideOverlap ? CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET : 'spacing.11',
527
528
  children: /*#__PURE__*/jsx(NavigationButton, {
528
529
  onClick: goToNextSlide,
529
530
  type: "next",
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.web.js","sources":["../../../../../../src/components/Carousel/Carousel.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable consistent-return */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable react/jsx-no-useless-fragment */\nimport type { CSSObject } from 'styled-components';\nimport styled from 'styled-components';\nimport React from 'react';\nimport { Indicators } from './Indicators/Indicators';\nimport { NavigationButton } from './NavigationButton';\nimport type { CarouselProps } from './types';\nimport type { CarouselContextProps } from './CarouselContext';\nimport { CarouselContext } from './CarouselContext';\nimport { getCarouselItemId } from './utils';\nimport { CAROUSEL_AUTOPLAY_INTERVAL, componentIds } from './constants';\nimport getIn from '~utils/lodashButBetter/get';\nimport throttle from '~utils/lodashButBetter/throttle';\nimport debounce from '~utils/lodashButBetter/debounce';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { castWebType, makeMotionTime, useInterval } from '~utils';\nimport { useId } from '~utils/useId';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useVerifyAllowedChildren } from '~utils/useVerifyAllowedChildren/useVerifyAllowedChildren';\nimport { useTheme } from '~components/BladeProvider';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { useControllableState } from '~utils/useControllable';\nimport { useIsomorphicLayoutEffect } from '~utils/useIsomorphicLayoutEffect';\nimport { useDidUpdate } from '~utils/useDidUpdate';\nimport type { BladeElementRef } from '~utils/types';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype ControlsProp = Required<\n Pick<\n CarouselProps,\n 'indicatorVariant' | 'showIndicators' | 'navigationButtonVariant' | 'navigationButtonPosition'\n >\n> & {\n activeIndicator: number;\n totalSlides: number;\n onIndicatorButtonClick: (index: number) => void;\n onNextButtonClick: () => void;\n onPreviousButtonClick: () => void;\n showNavigationButtons: boolean;\n};\n\nconst Controls = ({\n showIndicators,\n navigationButtonPosition,\n activeIndicator,\n totalSlides,\n onIndicatorButtonClick,\n onNextButtonClick,\n onPreviousButtonClick,\n indicatorVariant,\n navigationButtonVariant,\n showNavigationButtons,\n}: ControlsProp): React.ReactElement => {\n if (navigationButtonPosition === 'bottom') {\n return (\n <Box marginTop=\"spacing.7\" display=\"flex\" alignItems=\"center\" gap=\"spacing.4\">\n {showNavigationButtons ? (\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={onPreviousButtonClick}\n />\n ) : null}\n {showIndicators ? (\n <Indicators\n onClick={onIndicatorButtonClick}\n activeIndex={activeIndicator}\n totalItems={totalSlides}\n variant={indicatorVariant}\n />\n ) : null}\n {showNavigationButtons ? (\n <NavigationButton\n onClick={onNextButtonClick}\n type=\"next\"\n variant={navigationButtonVariant}\n />\n ) : null}\n </Box>\n );\n }\n\n if (showIndicators && navigationButtonPosition === 'side') {\n return (\n <Box marginTop=\"spacing.7\">\n <Indicators\n onClick={onIndicatorButtonClick}\n activeIndex={activeIndicator}\n totalItems={totalSlides}\n variant={indicatorVariant}\n />\n </Box>\n );\n }\n\n return <></>;\n};\n\nconst CarouselContainer = styled(BaseBox)<{\n showOverlay?: boolean;\n scrollOverlayColor: CarouselProps['scrollOverlayColor'];\n isScrollAtStart: boolean;\n isScrollAtEnd: boolean;\n}>(({ theme, showOverlay, scrollOverlayColor, isScrollAtStart, isScrollAtEnd }) => {\n const gradientStop1: string = getIn(theme.colors, scrollOverlayColor!);\n const gradientStop2 = 'hsla(0, 0%, 100%, 0)';\n\n const overlayCommonStyle: CSSObject = {\n content: \"''\",\n position: 'absolute',\n top: 0,\n width: '100px',\n height: '100%',\n transitionDuration: castWebType(makeMotionTime(theme.motion.duration.gentle)),\n transitionTimingFunction: castWebType(theme.motion.easing.standard),\n transitionProperty: 'opacity',\n };\n\n return {\n width: '100%',\n height: '100%',\n overflowX: 'scroll',\n display: 'flex',\n flexWrap: 'nowrap',\n scrollSnapType: 'x mandatory',\n scrollSnapPointsY: `repeat(100%)`,\n msOverflowStyle: 'none' /* IE and Edge */,\n scrollbarWidth: 'none' /* Firefox */,\n /* Needed to work on iOS Safari */\n webkitOverflowScrolling: 'touch',\n msScrollSnapType: 'mandatory',\n scrollSnapPointsX: 'repeat(100%)',\n msScrollSnapPointsX: 'repeat(100%)',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n ...(showOverlay && {\n '&::before': {\n ...overlayCommonStyle,\n background: `linear-gradient(to right, ${gradientStop1}, ${gradientStop2})`,\n left: -1,\n opacity: isScrollAtStart ? 0 : 1,\n pointerEvents: 'none',\n },\n '&::after': {\n ...overlayCommonStyle,\n background: `linear-gradient(to left, ${gradientStop1}, ${gradientStop2})`,\n right: -1,\n opacity: isScrollAtEnd ? 0 : 1,\n pointerEvents: 'none',\n },\n }),\n };\n});\n\ntype CarouselBodyProps = {\n children: React.ReactNode;\n totalSlides: number;\n shouldAddStartEndSpacing?: boolean;\n idPrefix: string;\n scrollOverlayColor: CarouselProps['scrollOverlayColor'];\n isScrollAtStart: boolean;\n isScrollAtEnd: boolean;\n carouselItemAlignment: CarouselProps['carouselItemAlignment'];\n accessibilityLabel?: string;\n startEndMargin: number;\n snapAlign?: CarouselProps['snapAlign'];\n gap?: CarouselProps['gap'];\n};\n\nconst CarouselBody = React.forwardRef<HTMLDivElement, CarouselBodyProps>(\n (\n {\n children,\n totalSlides,\n shouldAddStartEndSpacing,\n idPrefix,\n scrollOverlayColor,\n isScrollAtStart,\n isScrollAtEnd,\n carouselItemAlignment,\n accessibilityLabel,\n startEndMargin,\n snapAlign,\n gap,\n },\n ref,\n ) => {\n return (\n <CarouselContainer\n tabIndex={0}\n ref={ref}\n showOverlay={Boolean(scrollOverlayColor)}\n scrollOverlayColor={scrollOverlayColor}\n gap={gap ?? { base: 'spacing.4', m: 'spacing.5' }}\n isScrollAtStart={isScrollAtStart}\n isScrollAtEnd={isScrollAtEnd}\n alignItems={carouselItemAlignment}\n {...makeAccessible({\n role: 'group',\n roleDescription: 'carousel',\n label: accessibilityLabel,\n })}\n >\n {React.Children.map(children, (child, index) => {\n const shouldHaveStartSpacing = shouldAddStartEndSpacing && index === 0;\n const shouldHaveEndSpacing = shouldAddStartEndSpacing && index === totalSlides - 1;\n const carouselItemNode: React.ReactElement = React.cloneElement(\n child as React.ReactElement,\n {\n index,\n id: `${idPrefix}-carousel-item-${index}`,\n shouldHaveStartSpacing,\n shouldHaveEndSpacing,\n snapAlign,\n gap,\n },\n );\n\n // Safari doesn't include the margin in the bounding box calculation\n // Thus have to add an additional box to the end of the carousel to ensure we can scroll past the last item\n // https://stackoverflow.com/questions/75509058/safari-does-not-include-margins-to-the-scroll-width\n if (shouldHaveEndSpacing) {\n return (\n <>\n {carouselItemNode}\n {<BaseBox minWidth={`${startEndMargin}px`} />}\n </>\n );\n }\n return carouselItemNode;\n })}\n </CarouselContainer>\n );\n },\n);\n\nconst _Carousel = (\n {\n autoPlay,\n visibleItems = 1,\n showIndicators = true,\n navigationButtonPosition = 'bottom',\n children,\n shouldAddStartEndSpacing = false,\n carouselItemWidth,\n scrollOverlayColor,\n accessibilityLabel,\n onChange,\n indicatorVariant = 'gray',\n navigationButtonVariant = 'filled',\n carouselItemAlignment = 'start',\n height,\n defaultActiveSlide,\n activeSlide: activeSlideProp,\n showNavigationButtons: showNavigationButtonProp = true,\n snapAlign,\n gap,\n ...rest\n }: CarouselProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const { platform } = useTheme();\n const [activeIndicator, setActiveIndicator] = React.useState(0);\n const [activeSlide, setActiveSlide] = useControllableState({\n defaultValue: defaultActiveSlide ?? 0,\n value: activeSlideProp,\n onChange: (value) => {\n onChange?.(value);\n },\n });\n const [shouldPauseAutoplay, setShouldPauseAutoplay] = React.useState(false);\n const [startEndMargin, setStartEndMargin] = React.useState(0);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const isMobile = platform === 'onMobile';\n const id = useId();\n const carouselId = `carousel-${id}`;\n\n useVerifyAllowedChildren({\n componentName: 'Carousel',\n allowedComponents: [componentIds.CarouselItem],\n children,\n });\n\n const [isScrollAtStart, setScrollStart] = React.useState(\n // on mobile we do not want to render the overlay\n isMobile ? true : !shouldAddStartEndSpacing,\n );\n const [isScrollAtEnd, setScrollEnd] = React.useState(isMobile);\n\n const isResponsive = visibleItems === 'autofit';\n let _visibleItems = visibleItems as 1 | 2 | 3;\n if (isMobile) {\n _visibleItems = 1;\n navigationButtonPosition = 'bottom';\n }\n if (isResponsive) {\n _visibleItems = 1;\n }\n\n // A special case where we hide the indicators when the carousel is responsive\n // Because indicators become useless since it's not aparent which carousel item is active\n // and how many carousel items are visible at a time\n if (isResponsive && !shouldAddStartEndSpacing && !isMobile) {\n showIndicators = false;\n }\n const showNavigationButtons = showNavigationButtonProp || !isMobile;\n\n const isNavButtonsOnSide = !isResponsive && navigationButtonPosition === 'side';\n const shouldNavButtonsFloat = isResponsive && navigationButtonPosition === 'side';\n const totalNumberOfSlides = React.Children.count(children);\n const numberOfIndicators = Math.ceil(totalNumberOfSlides / _visibleItems);\n\n // hide next/prev button on reaching start/end when carousel is responsive\n // in non-responsive carousel we always show the next/prev buttons to allow looping\n const shouldShowPrevButton = isResponsive ? activeSlide !== 0 : true;\n const shouldShowNextButton = isResponsive ? activeSlide !== totalNumberOfSlides - 1 : true;\n\n // calculate the start/end margin so that we can\n // deduct that margin when scrolling to a carousel item with goToSlideIndex\n useIsomorphicLayoutEffect(() => {\n // Do not calculate if not needed\n if (!isResponsive && !shouldAddStartEndSpacing) return;\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(carouselId, 0);\n const carouselItem = containerRef.current.querySelector(carouselItemId);\n if (!carouselItem) return;\n\n const carouselItemLeft = carouselItem.getBoundingClientRect().left ?? 0;\n const carouselContainerLeft = containerRef.current.getBoundingClientRect().left ?? 0;\n\n setStartEndMargin(carouselItemLeft - carouselContainerLeft);\n }, [carouselId, isResponsive, shouldAddStartEndSpacing]);\n\n const scrollToSlide = (slideIndex: number, shouldAnimate = true) => {\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(carouselId, slideIndex * _visibleItems);\n const carouselItem = containerRef.current.querySelector(carouselItemId);\n if (!carouselItem) return;\n\n const carouselItemLeft =\n carouselItem.getBoundingClientRect().left -\n (containerRef.current.getBoundingClientRect().left ?? 0);\n const left = containerRef.current.scrollLeft + carouselItemLeft;\n\n containerRef.current.scroll({\n left: left - startEndMargin,\n behavior: shouldAnimate ? 'smooth' : 'auto',\n });\n };\n\n const goToSlideIndex = (slideIndex: number) => {\n setActiveSlide(() => slideIndex);\n setActiveIndicator(slideIndex);\n };\n\n const goToNextSlide = () => {\n let slideIndex = activeSlide + 1;\n if (slideIndex >= numberOfIndicators) {\n slideIndex = 0;\n }\n\n // an edge case where if carousel is responsive\n // and shouldHaveStartEndSpacing is set to false\n // there can be a case where numberOfIndicators is set to 10 but\n // visually there is 3 or 4 items, in those cases we want to check if we reached the\n // end of the scroll container if so we wrap around\n if (containerRef.current) {\n const container = containerRef.current;\n const scrollLeft = container.scrollLeft;\n const scrollWidth = container.scrollWidth - container.offsetWidth;\n if (scrollLeft === scrollWidth) {\n slideIndex = 0;\n }\n }\n\n goToSlideIndex(slideIndex);\n };\n\n const goToPreviousSlide = () => {\n let slideIndex = activeSlide - 1;\n if (activeSlide <= 0) {\n slideIndex = numberOfIndicators - 1;\n }\n goToSlideIndex(slideIndex);\n };\n\n // Scroll overlay gradient show/hide based on if scrolled to start or end\n React.useEffect(() => {\n // if shouldAddStartEndSpacing is true, we don't need to hide/show the overlay based on the scroll position\n // because the gap is there so it won't overlap with the card anyway\n if (shouldAddStartEndSpacing) return;\n if (isMobile) return;\n\n const carouselContainer = containerRef.current;\n if (!carouselContainer) return;\n\n const handleScroll = throttle(() => {\n const scrollWidth = carouselContainer?.scrollWidth - carouselContainer.offsetWidth;\n setScrollStart(carouselContainer?.scrollLeft === 0);\n setScrollEnd(carouselContainer?.scrollLeft === scrollWidth);\n }, 500);\n\n carouselContainer.addEventListener('scroll', handleScroll);\n\n return () => {\n carouselContainer?.removeEventListener('scroll', handleScroll);\n };\n }, [isMobile, shouldAddStartEndSpacing]);\n\n // Sync the indicators with scroll\n React.useEffect(() => {\n const carouselContainer = containerRef.current;\n if (!carouselContainer) return;\n\n const handleScroll = debounce(() => {\n // carousel bounding box\n const carouselBB = carouselContainer.getBoundingClientRect();\n // By default we check the far left side of the screen\n let xOffset = 0.1;\n // when the carousel is responsive & has spacing OR when center aligned\n // we want to check the center of the screen\n if ((isResponsive && shouldAddStartEndSpacing) || snapAlign === 'center') {\n xOffset = 0.5;\n }\n\n const pointX = carouselBB.left + carouselBB.width * xOffset;\n const pointY = carouselBB.top + carouselBB.height * 0.5;\n const element = document.elementFromPoint(pointX, pointY);\n const carouselItem = element?.closest('[data-slide-index]');\n if (!carouselItem) {\n return;\n }\n\n const slideIndex = Number(carouselItem?.getAttribute('data-slide-index'));\n const goTo = Math.ceil(slideIndex / _visibleItems);\n setActiveSlide(() => goTo);\n setActiveIndicator(goTo);\n }, 50);\n\n carouselContainer.addEventListener('scroll', handleScroll);\n\n return () => {\n carouselContainer?.removeEventListener('scroll', handleScroll);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [_visibleItems, isMobile, isResponsive, shouldAddStartEndSpacing, snapAlign]);\n\n // auto play\n useInterval(\n () => {\n goToNextSlide();\n },\n {\n delay: CAROUSEL_AUTOPLAY_INTERVAL,\n // only enable if autoplay is true & user's intent isn't to interact with carousel\n enable: autoPlay && !shouldPauseAutoplay,\n },\n );\n\n // set initial active slide on mount\n useIsomorphicLayoutEffect(() => {\n if (!id) return;\n goToSlideIndex(activeSlide);\n scrollToSlide(activeSlide, false);\n }, [id]);\n\n // Scroll the carousel to the active slide\n useDidUpdate(() => {\n scrollToSlide(activeSlide);\n }, [activeSlide]);\n\n const carouselContext = React.useMemo<CarouselContextProps>(() => {\n return {\n isResponsive,\n visibleItems: _visibleItems,\n carouselItemWidth,\n carouselContainerRef: containerRef,\n setActiveIndicator,\n carouselId,\n totalNumberOfSlides,\n activeSlide,\n startEndMargin,\n shouldAddStartEndSpacing,\n };\n }, [\n carouselId,\n startEndMargin,\n isResponsive,\n _visibleItems,\n carouselItemWidth,\n totalNumberOfSlides,\n activeSlide,\n shouldAddStartEndSpacing,\n ]);\n\n return (\n <CarouselContext.Provider value={carouselContext}>\n <BaseBox\n ref={ref as never}\n {...metaAttribute({ name: MetaConstants.Carousel })}\n // stop autoplaying when any elements in carousel is in focus\n onFocus={(e: React.FocusEvent) => {\n if (!e.currentTarget.contains(e.relatedTarget)) {\n setShouldPauseAutoplay(true);\n }\n }}\n onBlur={(e: React.FocusEvent) => {\n if (!e.currentTarget.contains(e.relatedTarget)) {\n setShouldPauseAutoplay(false);\n }\n }}\n // stop autplay when user hover overs the carousel\n onMouseEnter={() => {\n setShouldPauseAutoplay(true);\n }}\n onMouseLeave={() => {\n setShouldPauseAutoplay(false);\n }}\n onTouchStart={() => {\n setShouldPauseAutoplay(true);\n }}\n onTouchEnd={() => {\n setShouldPauseAutoplay(false);\n }}\n display=\"flex\"\n alignItems=\"center\"\n flexDirection=\"column\"\n height={height}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <BaseBox\n width=\"100%\"\n position=\"relative\"\n display=\"flex\"\n alignItems=\"center\"\n gap=\"spacing.4\"\n flexDirection=\"row\"\n height=\"100%\"\n >\n {shouldShowPrevButton && shouldNavButtonsFloat ? (\n <BaseBox zIndex={2} position=\"absolute\" left=\"spacing.11\">\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={goToPreviousSlide}\n />\n </BaseBox>\n ) : null}\n {isNavButtonsOnSide ? (\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={goToPreviousSlide}\n />\n ) : null}\n <CarouselBody\n idPrefix={carouselId}\n startEndMargin={startEndMargin}\n totalSlides={totalNumberOfSlides}\n shouldAddStartEndSpacing={shouldAddStartEndSpacing}\n scrollOverlayColor={scrollOverlayColor}\n isScrollAtStart={isScrollAtStart}\n isScrollAtEnd={isScrollAtEnd}\n ref={containerRef}\n carouselItemAlignment={carouselItemAlignment}\n accessibilityLabel={accessibilityLabel}\n snapAlign={snapAlign}\n gap={gap}\n >\n {children}\n </CarouselBody>\n {shouldShowNextButton && shouldNavButtonsFloat ? (\n <BaseBox zIndex={2} position=\"absolute\" right=\"spacing.11\">\n <NavigationButton\n onClick={goToNextSlide}\n type=\"next\"\n variant={navigationButtonVariant}\n />\n </BaseBox>\n ) : null}\n {isNavButtonsOnSide ? (\n <NavigationButton\n onClick={goToNextSlide}\n type=\"next\"\n variant={navigationButtonVariant}\n />\n ) : null}\n </BaseBox>\n <Controls\n totalSlides={numberOfIndicators}\n activeIndicator={activeIndicator}\n showIndicators={showIndicators}\n navigationButtonPosition={navigationButtonPosition}\n onIndicatorButtonClick={goToSlideIndex}\n onNextButtonClick={goToNextSlide}\n onPreviousButtonClick={goToPreviousSlide}\n indicatorVariant={indicatorVariant}\n navigationButtonVariant={navigationButtonVariant}\n showNavigationButtons={showNavigationButtons}\n />\n </BaseBox>\n </CarouselContext.Provider>\n );\n};\n\nconst Carousel = React.forwardRef(_Carousel);\n\nexport { Carousel };\n"],"names":["Controls","_ref","showIndicators","navigationButtonPosition","activeIndicator","totalSlides","onIndicatorButtonClick","onNextButtonClick","onPreviousButtonClick","indicatorVariant","navigationButtonVariant","showNavigationButtons","_jsxs","Box","marginTop","display","alignItems","gap","children","_jsx","NavigationButton","type","variant","onClick","Indicators","activeIndex","totalItems","_Fragment","CarouselContainer","styled","BaseBox","withConfig","displayName","componentId","_ref2","theme","showOverlay","scrollOverlayColor","isScrollAtStart","isScrollAtEnd","gradientStop1","getIn","colors","gradientStop2","overlayCommonStyle","content","position","top","width","height","transitionDuration","castWebType","makeMotionTime","motion","duration","gentle","transitionTimingFunction","easing","standard","transitionProperty","_objectSpread","overflowX","flexWrap","scrollSnapType","scrollSnapPointsY","msOverflowStyle","scrollbarWidth","webkitOverflowScrolling","msScrollSnapType","scrollSnapPointsX","msScrollSnapPointsX","background","concat","left","opacity","pointerEvents","right","CarouselBody","React","forwardRef","_ref3","ref","shouldAddStartEndSpacing","idPrefix","carouselItemAlignment","accessibilityLabel","startEndMargin","snapAlign","tabIndex","Boolean","base","m","makeAccessible","role","roleDescription","label","Children","map","child","index","shouldHaveStartSpacing","shouldHaveEndSpacing","carouselItemNode","cloneElement","id","minWidth","_Carousel","_ref4","autoPlay","_ref4$visibleItems","visibleItems","_ref4$showIndicators","_ref4$navigationButto","_ref4$shouldAddStartE","carouselItemWidth","onChange","_ref4$indicatorVarian","_ref4$navigationButto2","_ref4$carouselItemAli","defaultActiveSlide","activeSlideProp","activeSlide","_ref4$showNavigationB","showNavigationButtonProp","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","platform","_React$useState","useState","_React$useState2","_slicedToArray","setActiveIndicator","_useControllableState","useControllableState","defaultValue","value","_useControllableState2","setActiveSlide","_React$useState3","_React$useState4","shouldPauseAutoplay","setShouldPauseAutoplay","_React$useState5","_React$useState6","setStartEndMargin","containerRef","useRef","isMobile","useId","carouselId","useVerifyAllowedChildren","componentName","allowedComponents","componentIds","CarouselItem","_React$useState7","_React$useState8","setScrollStart","_React$useState9","_React$useState10","setScrollEnd","isResponsive","_visibleItems","isNavButtonsOnSide","shouldNavButtonsFloat","totalNumberOfSlides","count","numberOfIndicators","Math","ceil","shouldShowPrevButton","shouldShowNextButton","useIsomorphicLayoutEffect","_carouselItem$getBoun","_containerRef$current","current","carouselItemId","getCarouselItemId","carouselItem","querySelector","carouselItemLeft","getBoundingClientRect","carouselContainerLeft","scrollToSlide","slideIndex","_containerRef$current2","shouldAnimate","arguments","length","undefined","scrollLeft","scroll","behavior","goToSlideIndex","goToNextSlide","container","scrollWidth","offsetWidth","goToPreviousSlide","useEffect","carouselContainer","handleScroll","throttle","addEventListener","removeEventListener","debounce","carouselBB","xOffset","pointX","pointY","element","document","elementFromPoint","closest","Number","getAttribute","goTo","useInterval","delay","CAROUSEL_AUTOPLAY_INTERVAL","enable","useDidUpdate","carouselContext","useMemo","carouselContainerRef","CarouselContext","Provider","metaAttribute","name","MetaConstants","Carousel","onFocus","e","currentTarget","contains","relatedTarget","onBlur","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","flexDirection","getStyledProps","makeAnalyticsAttribute","zIndex"],"mappings":"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"}
1
+ {"version":3,"file":"Carousel.web.js","sources":["../../../../../../src/components/Carousel/Carousel.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable consistent-return */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable react/jsx-no-useless-fragment */\nimport type { CSSObject } from 'styled-components';\nimport styled from 'styled-components';\nimport React from 'react';\nimport { Indicators } from './Indicators/Indicators';\nimport { NavigationButton } from './NavigationButton';\nimport type { CarouselProps } from './types';\nimport type { CarouselContextProps } from './CarouselContext';\nimport { CarouselContext } from './CarouselContext';\nimport { getCarouselItemId } from './utils';\nimport {\n CAROUSEL_AUTOPLAY_INTERVAL,\n componentIds,\n CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET,\n} from './constants';\nimport getIn from '~utils/lodashButBetter/get';\nimport throttle from '~utils/lodashButBetter/throttle';\nimport debounce from '~utils/lodashButBetter/debounce';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { castWebType, makeMotionTime, useInterval } from '~utils';\nimport { useId } from '~utils/useId';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useVerifyAllowedChildren } from '~utils/useVerifyAllowedChildren/useVerifyAllowedChildren';\nimport { useTheme } from '~components/BladeProvider';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { useControllableState } from '~utils/useControllable';\nimport { useIsomorphicLayoutEffect } from '~utils/useIsomorphicLayoutEffect';\nimport { useDidUpdate } from '~utils/useDidUpdate';\nimport type { BladeElementRef } from '~utils/types';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype ControlsProp = Required<\n Pick<\n CarouselProps,\n 'indicatorVariant' | 'showIndicators' | 'navigationButtonVariant' | 'navigationButtonPosition'\n >\n> & {\n activeIndicator: number;\n totalSlides: number;\n onIndicatorButtonClick: (index: number) => void;\n onNextButtonClick: () => void;\n onPreviousButtonClick: () => void;\n showNavigationButtons: boolean;\n};\n\nconst Controls = ({\n showIndicators,\n navigationButtonPosition,\n activeIndicator,\n totalSlides,\n onIndicatorButtonClick,\n onNextButtonClick,\n onPreviousButtonClick,\n indicatorVariant,\n navigationButtonVariant,\n showNavigationButtons,\n}: ControlsProp): React.ReactElement => {\n if (navigationButtonPosition === 'bottom') {\n return (\n <Box marginTop=\"spacing.7\" display=\"flex\" alignItems=\"center\" gap=\"spacing.4\">\n {showNavigationButtons ? (\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={onPreviousButtonClick}\n />\n ) : null}\n {showIndicators ? (\n <Indicators\n onClick={onIndicatorButtonClick}\n activeIndex={activeIndicator}\n totalItems={totalSlides}\n variant={indicatorVariant}\n />\n ) : null}\n {showNavigationButtons ? (\n <NavigationButton\n onClick={onNextButtonClick}\n type=\"next\"\n variant={navigationButtonVariant}\n />\n ) : null}\n </Box>\n );\n }\n\n if (\n showIndicators &&\n (navigationButtonPosition === 'side' || navigationButtonPosition === 'side-overlap')\n ) {\n return (\n <Box marginTop=\"spacing.7\">\n <Indicators\n onClick={onIndicatorButtonClick}\n activeIndex={activeIndicator}\n totalItems={totalSlides}\n variant={indicatorVariant}\n />\n </Box>\n );\n }\n\n return <></>;\n};\n\nconst CarouselContainer = styled(BaseBox)<{\n showOverlay?: boolean;\n scrollOverlayColor: CarouselProps['scrollOverlayColor'];\n isScrollAtStart: boolean;\n isScrollAtEnd: boolean;\n}>(({ theme, showOverlay, scrollOverlayColor, isScrollAtStart, isScrollAtEnd }) => {\n const gradientStop1: string = getIn(theme.colors, scrollOverlayColor!);\n const gradientStop2 = 'hsla(0, 0%, 100%, 0)';\n\n const overlayCommonStyle: CSSObject = {\n content: \"''\",\n position: 'absolute',\n top: 0,\n width: '100px',\n height: '100%',\n transitionDuration: castWebType(makeMotionTime(theme.motion.duration.gentle)),\n transitionTimingFunction: castWebType(theme.motion.easing.standard),\n transitionProperty: 'opacity',\n };\n\n return {\n width: '100%',\n height: '100%',\n overflowX: 'scroll',\n display: 'flex',\n flexWrap: 'nowrap',\n scrollSnapType: 'x mandatory',\n scrollSnapPointsY: `repeat(100%)`,\n msOverflowStyle: 'none' /* IE and Edge */,\n scrollbarWidth: 'none' /* Firefox */,\n /* Needed to work on iOS Safari */\n webkitOverflowScrolling: 'touch',\n msScrollSnapType: 'mandatory',\n scrollSnapPointsX: 'repeat(100%)',\n msScrollSnapPointsX: 'repeat(100%)',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n ...(showOverlay && {\n '&::before': {\n ...overlayCommonStyle,\n background: `linear-gradient(to right, ${gradientStop1}, ${gradientStop2})`,\n left: -1,\n opacity: isScrollAtStart ? 0 : 1,\n pointerEvents: 'none',\n },\n '&::after': {\n ...overlayCommonStyle,\n background: `linear-gradient(to left, ${gradientStop1}, ${gradientStop2})`,\n right: -1,\n opacity: isScrollAtEnd ? 0 : 1,\n pointerEvents: 'none',\n },\n }),\n };\n});\n\ntype CarouselBodyProps = {\n children: React.ReactNode;\n totalSlides: number;\n shouldAddStartEndSpacing?: boolean;\n idPrefix: string;\n scrollOverlayColor: CarouselProps['scrollOverlayColor'];\n isScrollAtStart: boolean;\n isScrollAtEnd: boolean;\n carouselItemAlignment: CarouselProps['carouselItemAlignment'];\n accessibilityLabel?: string;\n startEndMargin: number;\n snapAlign?: CarouselProps['snapAlign'];\n gap?: CarouselProps['gap'];\n};\n\nconst CarouselBody = React.forwardRef<HTMLDivElement, CarouselBodyProps>(\n (\n {\n children,\n totalSlides,\n shouldAddStartEndSpacing,\n idPrefix,\n scrollOverlayColor,\n isScrollAtStart,\n isScrollAtEnd,\n carouselItemAlignment,\n accessibilityLabel,\n startEndMargin,\n snapAlign,\n gap,\n },\n ref,\n ) => {\n return (\n <CarouselContainer\n tabIndex={0}\n ref={ref}\n showOverlay={Boolean(scrollOverlayColor)}\n scrollOverlayColor={scrollOverlayColor}\n gap={gap ?? { base: 'spacing.4', m: 'spacing.5' }}\n isScrollAtStart={isScrollAtStart}\n isScrollAtEnd={isScrollAtEnd}\n alignItems={carouselItemAlignment}\n {...makeAccessible({\n role: 'group',\n roleDescription: 'carousel',\n label: accessibilityLabel,\n })}\n >\n {React.Children.map(children, (child, index) => {\n const shouldHaveStartSpacing = shouldAddStartEndSpacing && index === 0;\n const shouldHaveEndSpacing = shouldAddStartEndSpacing && index === totalSlides - 1;\n const carouselItemNode: React.ReactElement = React.cloneElement(\n child as React.ReactElement,\n {\n index,\n id: `${idPrefix}-carousel-item-${index}`,\n shouldHaveStartSpacing,\n shouldHaveEndSpacing,\n snapAlign,\n gap,\n },\n );\n\n // Safari doesn't include the margin in the bounding box calculation\n // Thus have to add an additional box to the end of the carousel to ensure we can scroll past the last item\n // https://stackoverflow.com/questions/75509058/safari-does-not-include-margins-to-the-scroll-width\n if (shouldHaveEndSpacing) {\n return (\n <>\n {carouselItemNode}\n {<BaseBox minWidth={`${startEndMargin}px`} />}\n </>\n );\n }\n return carouselItemNode;\n })}\n </CarouselContainer>\n );\n },\n);\n\nconst _Carousel = (\n {\n autoPlay,\n visibleItems = 1,\n showIndicators = true,\n navigationButtonPosition = 'bottom',\n children,\n shouldAddStartEndSpacing = false,\n carouselItemWidth,\n scrollOverlayColor,\n accessibilityLabel,\n onChange,\n indicatorVariant = 'gray',\n navigationButtonVariant = 'filled',\n carouselItemAlignment = 'start',\n height,\n defaultActiveSlide,\n activeSlide: activeSlideProp,\n showNavigationButtons: showNavigationButtonProp = true,\n snapAlign,\n gap,\n ...rest\n }: CarouselProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const { platform } = useTheme();\n const [activeIndicator, setActiveIndicator] = React.useState(0);\n const [activeSlide, setActiveSlide] = useControllableState({\n defaultValue: defaultActiveSlide ?? 0,\n value: activeSlideProp,\n onChange: (value) => {\n onChange?.(value);\n },\n });\n const [shouldPauseAutoplay, setShouldPauseAutoplay] = React.useState(false);\n const [startEndMargin, setStartEndMargin] = React.useState(0);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const isMobile = platform === 'onMobile';\n const id = useId();\n const carouselId = `carousel-${id}`;\n\n useVerifyAllowedChildren({\n componentName: 'Carousel',\n allowedComponents: [componentIds.CarouselItem],\n children,\n });\n\n const [isScrollAtStart, setScrollStart] = React.useState(\n // on mobile we do not want to render the overlay\n isMobile ? true : !shouldAddStartEndSpacing,\n );\n const [isScrollAtEnd, setScrollEnd] = React.useState(isMobile);\n\n const isResponsive = visibleItems === 'autofit';\n let _visibleItems = visibleItems as 1 | 2 | 3;\n if (isMobile) {\n _visibleItems = 1;\n navigationButtonPosition = 'bottom';\n }\n if (isResponsive) {\n _visibleItems = 1;\n }\n\n // A special case where we hide the indicators when the carousel is responsive\n // Because indicators become useless since it's not aparent which carousel item is active\n // and how many carousel items are visible at a time\n if (isResponsive && !shouldAddStartEndSpacing && !isMobile) {\n showIndicators = false;\n }\n const showNavigationButtons = showNavigationButtonProp || !isMobile;\n const isNavigationButtonPositionSideOverlap = navigationButtonPosition === 'side-overlap';\n\n const isNavButtonsOnSide = !isResponsive && navigationButtonPosition === 'side';\n\n const shouldNavButtonsFloat = isResponsive && navigationButtonPosition === 'side';\n const totalNumberOfSlides = React.Children.count(children);\n const numberOfIndicators = Math.ceil(totalNumberOfSlides / _visibleItems);\n\n // hide next/prev button on reaching start/end when carousel is responsive\n // in non-responsive carousel we always show the next/prev buttons to allow looping\n const shouldShowPrevButton = isResponsive ? activeSlide !== 0 : true;\n const shouldShowNextButton = isResponsive ? activeSlide !== totalNumberOfSlides - 1 : true;\n\n // calculate the start/end margin so that we can\n // deduct that margin when scrolling to a carousel item with goToSlideIndex\n useIsomorphicLayoutEffect(() => {\n // Do not calculate if not needed\n if (!isResponsive && !shouldAddStartEndSpacing) return;\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(carouselId, 0);\n const carouselItem = containerRef.current.querySelector(carouselItemId);\n if (!carouselItem) return;\n\n const carouselItemLeft = carouselItem.getBoundingClientRect().left ?? 0;\n const carouselContainerLeft = containerRef.current.getBoundingClientRect().left ?? 0;\n\n setStartEndMargin(carouselItemLeft - carouselContainerLeft);\n }, [carouselId, isResponsive, shouldAddStartEndSpacing]);\n\n const scrollToSlide = (slideIndex: number, shouldAnimate = true) => {\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(carouselId, slideIndex * _visibleItems);\n const carouselItem = containerRef.current.querySelector(carouselItemId);\n if (!carouselItem) return;\n\n const carouselItemLeft =\n carouselItem.getBoundingClientRect().left -\n (containerRef.current.getBoundingClientRect().left ?? 0);\n const left = containerRef.current.scrollLeft + carouselItemLeft;\n\n containerRef.current.scroll({\n left: left - startEndMargin,\n behavior: shouldAnimate ? 'smooth' : 'auto',\n });\n };\n\n const goToSlideIndex = (slideIndex: number) => {\n setActiveSlide(() => slideIndex);\n setActiveIndicator(slideIndex);\n };\n\n const goToNextSlide = () => {\n let slideIndex = activeSlide + 1;\n if (slideIndex >= numberOfIndicators) {\n slideIndex = 0;\n }\n\n // an edge case where if carousel is responsive\n // and shouldHaveStartEndSpacing is set to false\n // there can be a case where numberOfIndicators is set to 10 but\n // visually there is 3 or 4 items, in those cases we want to check if we reached the\n // end of the scroll container if so we wrap around\n if (containerRef.current) {\n const container = containerRef.current;\n const scrollLeft = container.scrollLeft;\n const scrollWidth = container.scrollWidth - container.offsetWidth;\n if (scrollLeft === scrollWidth) {\n slideIndex = 0;\n }\n }\n\n goToSlideIndex(slideIndex);\n };\n\n const goToPreviousSlide = () => {\n let slideIndex = activeSlide - 1;\n if (activeSlide <= 0) {\n slideIndex = numberOfIndicators - 1;\n }\n goToSlideIndex(slideIndex);\n };\n\n // Scroll overlay gradient show/hide based on if scrolled to start or end\n React.useEffect(() => {\n // if shouldAddStartEndSpacing is true, we don't need to hide/show the overlay based on the scroll position\n // because the gap is there so it won't overlap with the card anyway\n if (shouldAddStartEndSpacing) return;\n if (isMobile) return;\n\n const carouselContainer = containerRef.current;\n if (!carouselContainer) return;\n\n const handleScroll = throttle(() => {\n const scrollWidth = carouselContainer?.scrollWidth - carouselContainer.offsetWidth;\n setScrollStart(carouselContainer?.scrollLeft === 0);\n setScrollEnd(carouselContainer?.scrollLeft === scrollWidth);\n }, 500);\n\n carouselContainer.addEventListener('scroll', handleScroll);\n\n return () => {\n carouselContainer?.removeEventListener('scroll', handleScroll);\n };\n }, [isMobile, shouldAddStartEndSpacing]);\n\n // Sync the indicators with scroll\n React.useEffect(() => {\n const carouselContainer = containerRef.current;\n if (!carouselContainer) return;\n\n const handleScroll = debounce(() => {\n // carousel bounding box\n const carouselBB = carouselContainer.getBoundingClientRect();\n // By default we check the far left side of the screen\n let xOffset = 0.1;\n // when the carousel is responsive & has spacing OR when center aligned\n // we want to check the center of the screen\n if ((isResponsive && shouldAddStartEndSpacing) || snapAlign === 'center') {\n xOffset = 0.5;\n }\n\n const pointX = carouselBB.left + carouselBB.width * xOffset;\n const pointY = carouselBB.top + carouselBB.height * 0.5;\n const element = document.elementFromPoint(pointX, pointY);\n const carouselItem = element?.closest('[data-slide-index]');\n if (!carouselItem) {\n return;\n }\n\n const slideIndex = Number(carouselItem?.getAttribute('data-slide-index'));\n const goTo = Math.ceil(slideIndex / _visibleItems);\n setActiveSlide(() => goTo);\n setActiveIndicator(goTo);\n }, 50);\n\n carouselContainer.addEventListener('scroll', handleScroll);\n\n return () => {\n carouselContainer?.removeEventListener('scroll', handleScroll);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [_visibleItems, isMobile, isResponsive, shouldAddStartEndSpacing, snapAlign]);\n\n // auto play\n useInterval(\n () => {\n goToNextSlide();\n },\n {\n delay: CAROUSEL_AUTOPLAY_INTERVAL,\n // only enable if autoplay is true & user's intent isn't to interact with carousel\n enable: autoPlay && !shouldPauseAutoplay,\n },\n );\n\n // set initial active slide on mount\n useIsomorphicLayoutEffect(() => {\n if (!id) return;\n goToSlideIndex(activeSlide);\n scrollToSlide(activeSlide, false);\n }, [id]);\n\n // Scroll the carousel to the active slide\n useDidUpdate(() => {\n scrollToSlide(activeSlide);\n }, [activeSlide]);\n\n const carouselContext = React.useMemo<CarouselContextProps>(() => {\n return {\n isResponsive,\n visibleItems: _visibleItems,\n carouselItemWidth,\n carouselContainerRef: containerRef,\n setActiveIndicator,\n carouselId,\n totalNumberOfSlides,\n activeSlide,\n startEndMargin,\n shouldAddStartEndSpacing,\n };\n }, [\n carouselId,\n startEndMargin,\n isResponsive,\n _visibleItems,\n carouselItemWidth,\n totalNumberOfSlides,\n activeSlide,\n shouldAddStartEndSpacing,\n ]);\n\n return (\n <CarouselContext.Provider value={carouselContext}>\n <BaseBox\n ref={ref as never}\n {...metaAttribute({ name: MetaConstants.Carousel })}\n // stop autoplaying when any elements in carousel is in focus\n onFocus={(e: React.FocusEvent) => {\n if (!e.currentTarget.contains(e.relatedTarget)) {\n setShouldPauseAutoplay(true);\n }\n }}\n onBlur={(e: React.FocusEvent) => {\n if (!e.currentTarget.contains(e.relatedTarget)) {\n setShouldPauseAutoplay(false);\n }\n }}\n // stop autplay when user hover overs the carousel\n onMouseEnter={() => {\n setShouldPauseAutoplay(true);\n }}\n onMouseLeave={() => {\n setShouldPauseAutoplay(false);\n }}\n onTouchStart={() => {\n setShouldPauseAutoplay(true);\n }}\n onTouchEnd={() => {\n setShouldPauseAutoplay(false);\n }}\n display=\"flex\"\n alignItems=\"center\"\n flexDirection=\"column\"\n height={height}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <BaseBox\n width=\"100%\"\n position=\"relative\"\n display=\"flex\"\n alignItems=\"center\"\n gap=\"spacing.4\"\n flexDirection=\"row\"\n height=\"100%\"\n >\n {shouldShowPrevButton &&\n (shouldNavButtonsFloat || isNavigationButtonPositionSideOverlap) ? (\n <BaseBox\n zIndex={2}\n position=\"absolute\"\n left={\n isNavigationButtonPositionSideOverlap\n ? CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET\n : 'spacing.11'\n }\n >\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={goToPreviousSlide}\n />\n </BaseBox>\n ) : null}\n {isNavButtonsOnSide ? (\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={goToPreviousSlide}\n />\n ) : null}\n <CarouselBody\n idPrefix={carouselId}\n startEndMargin={startEndMargin}\n totalSlides={totalNumberOfSlides}\n shouldAddStartEndSpacing={shouldAddStartEndSpacing}\n scrollOverlayColor={scrollOverlayColor}\n isScrollAtStart={isScrollAtStart}\n isScrollAtEnd={isScrollAtEnd}\n ref={containerRef}\n carouselItemAlignment={carouselItemAlignment}\n accessibilityLabel={accessibilityLabel}\n snapAlign={snapAlign}\n gap={gap}\n >\n {children}\n </CarouselBody>\n {shouldShowNextButton &&\n (shouldNavButtonsFloat || isNavigationButtonPositionSideOverlap) ? (\n <BaseBox\n zIndex={2}\n position=\"absolute\"\n right={\n isNavigationButtonPositionSideOverlap\n ? CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET\n : 'spacing.11'\n }\n >\n <NavigationButton\n onClick={goToNextSlide}\n type=\"next\"\n variant={navigationButtonVariant}\n />\n </BaseBox>\n ) : null}\n {isNavButtonsOnSide ? (\n <NavigationButton\n onClick={goToNextSlide}\n type=\"next\"\n variant={navigationButtonVariant}\n />\n ) : null}\n </BaseBox>\n <Controls\n totalSlides={numberOfIndicators}\n activeIndicator={activeIndicator}\n showIndicators={showIndicators}\n navigationButtonPosition={navigationButtonPosition}\n onIndicatorButtonClick={goToSlideIndex}\n onNextButtonClick={goToNextSlide}\n onPreviousButtonClick={goToPreviousSlide}\n indicatorVariant={indicatorVariant}\n navigationButtonVariant={navigationButtonVariant}\n showNavigationButtons={showNavigationButtons}\n />\n </BaseBox>\n </CarouselContext.Provider>\n );\n};\n\nconst Carousel = React.forwardRef(_Carousel);\n\nexport { Carousel };\n"],"names":["Controls","_ref","showIndicators","navigationButtonPosition","activeIndicator","totalSlides","onIndicatorButtonClick","onNextButtonClick","onPreviousButtonClick","indicatorVariant","navigationButtonVariant","showNavigationButtons","_jsxs","Box","marginTop","display","alignItems","gap","children","_jsx","NavigationButton","type","variant","onClick","Indicators","activeIndex","totalItems","_Fragment","CarouselContainer","styled","BaseBox","withConfig","displayName","componentId","_ref2","theme","showOverlay","scrollOverlayColor","isScrollAtStart","isScrollAtEnd","gradientStop1","getIn","colors","gradientStop2","overlayCommonStyle","content","position","top","width","height","transitionDuration","castWebType","makeMotionTime","motion","duration","gentle","transitionTimingFunction","easing","standard","transitionProperty","_objectSpread","overflowX","flexWrap","scrollSnapType","scrollSnapPointsY","msOverflowStyle","scrollbarWidth","webkitOverflowScrolling","msScrollSnapType","scrollSnapPointsX","msScrollSnapPointsX","background","concat","left","opacity","pointerEvents","right","CarouselBody","React","forwardRef","_ref3","ref","shouldAddStartEndSpacing","idPrefix","carouselItemAlignment","accessibilityLabel","startEndMargin","snapAlign","tabIndex","Boolean","base","m","makeAccessible","role","roleDescription","label","Children","map","child","index","shouldHaveStartSpacing","shouldHaveEndSpacing","carouselItemNode","cloneElement","id","minWidth","_Carousel","_ref4","autoPlay","_ref4$visibleItems","visibleItems","_ref4$showIndicators","_ref4$navigationButto","_ref4$shouldAddStartE","carouselItemWidth","onChange","_ref4$indicatorVarian","_ref4$navigationButto2","_ref4$carouselItemAli","defaultActiveSlide","activeSlideProp","activeSlide","_ref4$showNavigationB","showNavigationButtonProp","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","platform","_React$useState","useState","_React$useState2","_slicedToArray","setActiveIndicator","_useControllableState","useControllableState","defaultValue","value","_useControllableState2","setActiveSlide","_React$useState3","_React$useState4","shouldPauseAutoplay","setShouldPauseAutoplay","_React$useState5","_React$useState6","setStartEndMargin","containerRef","useRef","isMobile","useId","carouselId","useVerifyAllowedChildren","componentName","allowedComponents","componentIds","CarouselItem","_React$useState7","_React$useState8","setScrollStart","_React$useState9","_React$useState10","setScrollEnd","isResponsive","_visibleItems","isNavigationButtonPositionSideOverlap","isNavButtonsOnSide","shouldNavButtonsFloat","totalNumberOfSlides","count","numberOfIndicators","Math","ceil","shouldShowPrevButton","shouldShowNextButton","useIsomorphicLayoutEffect","_carouselItem$getBoun","_containerRef$current","current","carouselItemId","getCarouselItemId","carouselItem","querySelector","carouselItemLeft","getBoundingClientRect","carouselContainerLeft","scrollToSlide","slideIndex","_containerRef$current2","shouldAnimate","arguments","length","undefined","scrollLeft","scroll","behavior","goToSlideIndex","goToNextSlide","container","scrollWidth","offsetWidth","goToPreviousSlide","useEffect","carouselContainer","handleScroll","throttle","addEventListener","removeEventListener","debounce","carouselBB","xOffset","pointX","pointY","element","document","elementFromPoint","closest","Number","getAttribute","goTo","useInterval","delay","CAROUSEL_AUTOPLAY_INTERVAL","enable","useDidUpdate","carouselContext","useMemo","carouselContainerRef","CarouselContext","Provider","metaAttribute","name","MetaConstants","Carousel","onFocus","e","currentTarget","contains","relatedTarget","onBlur","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","flexDirection","getStyledProps","makeAnalyticsAttribute","zIndex","CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoDA,IAAMA,QAAQ,GAAG,SAAXA,QAAQA,CAAAC,IAAA,EAW0B;AAAA,EAAA,IAVtCC,cAAc,GAAAD,IAAA,CAAdC,cAAc;IACdC,wBAAwB,GAAAF,IAAA,CAAxBE,wBAAwB;IACxBC,eAAe,GAAAH,IAAA,CAAfG,eAAe;IACfC,WAAW,GAAAJ,IAAA,CAAXI,WAAW;IACXC,sBAAsB,GAAAL,IAAA,CAAtBK,sBAAsB;IACtBC,iBAAiB,GAAAN,IAAA,CAAjBM,iBAAiB;IACjBC,qBAAqB,GAAAP,IAAA,CAArBO,qBAAqB;IACrBC,gBAAgB,GAAAR,IAAA,CAAhBQ,gBAAgB;IAChBC,uBAAuB,GAAAT,IAAA,CAAvBS,uBAAuB;IACvBC,qBAAqB,GAAAV,IAAA,CAArBU,qBAAqB,CAAA;EAErB,IAAIR,wBAAwB,KAAK,QAAQ,EAAE;IACzC,oBACES,IAAA,CAACC,GAAG,EAAA;AAACC,MAAAA,SAAS,EAAC,WAAW;AAACC,MAAAA,OAAO,EAAC,MAAM;AAACC,MAAAA,UAAU,EAAC,QAAQ;AAACC,MAAAA,GAAG,EAAC,WAAW;AAAAC,MAAAA,QAAA,EAC1EP,CAAAA,qBAAqB,gBACpBQ,GAAA,CAACC,gBAAgB,EAAA;AACfC,QAAAA,IAAI,EAAC,UAAU;AACfC,QAAAA,OAAO,EAAEZ,uBAAwB;AACjCa,QAAAA,OAAO,EAAEf,qBAAAA;OACV,CAAC,GACA,IAAI,EACPN,cAAc,gBACbiB,GAAA,CAACK,UAAU,EAAA;AACTD,QAAAA,OAAO,EAAEjB,sBAAuB;AAChCmB,QAAAA,WAAW,EAAErB,eAAgB;AAC7BsB,QAAAA,UAAU,EAAErB,WAAY;AACxBiB,QAAAA,OAAO,EAAEb,gBAAAA;OACV,CAAC,GACA,IAAI,EACPE,qBAAqB,gBACpBQ,GAAA,CAACC,gBAAgB,EAAA;AACfG,QAAAA,OAAO,EAAEhB,iBAAkB;AAC3Bc,QAAAA,IAAI,EAAC,MAAM;AACXC,QAAAA,OAAO,EAAEZ,uBAAAA;OACV,CAAC,GACA,IAAI,CAAA;AAAA,KACL,CAAC,CAAA;AAEV,GAAA;EAEA,IACER,cAAc,KACbC,wBAAwB,KAAK,MAAM,IAAIA,wBAAwB,KAAK,cAAc,CAAC,EACpF;IACA,oBACEgB,GAAA,CAACN,GAAG,EAAA;AAACC,MAAAA,SAAS,EAAC,WAAW;MAAAI,QAAA,eACxBC,GAAA,CAACK,UAAU,EAAA;AACTD,QAAAA,OAAO,EAAEjB,sBAAuB;AAChCmB,QAAAA,WAAW,EAAErB,eAAgB;AAC7BsB,QAAAA,UAAU,EAAErB,WAAY;AACxBiB,QAAAA,OAAO,EAAEb,gBAAAA;OACV,CAAA;AAAC,KACC,CAAC,CAAA;AAEV,GAAA;AAEA,EAAA,oBAAOU,GAAA,CAAAQ,QAAA,EAAA,EAAI,CAAC,CAAA;AACd,CAAC,CAAA;AAED,IAAMC,iBAAiB,gBAAGC,MAAM,CAACC,OAAO,CAAC,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,gCAAA;EAAAC,WAAA,EAAA,UAAA;AAAA,CAKtC,CAAA,CAAA,UAAAC,KAAA,EAAgF;AAAA,EAAA,IAA7EC,KAAK,GAAAD,KAAA,CAALC,KAAK;IAAEC,WAAW,GAAAF,KAAA,CAAXE,WAAW;IAAEC,kBAAkB,GAAAH,KAAA,CAAlBG,kBAAkB;IAAEC,eAAe,GAAAJ,KAAA,CAAfI,eAAe;IAAEC,aAAa,GAAAL,KAAA,CAAbK,aAAa,CAAA;EAC1E,IAAMC,aAAqB,GAAGC,KAAK,CAACN,KAAK,CAACO,MAAM,EAAEL,kBAAmB,CAAC,CAAA;EACtE,IAAMM,aAAa,GAAG,sBAAsB,CAAA;AAE5C,EAAA,IAAMC,kBAA6B,GAAG;AACpCC,IAAAA,OAAO,EAAE,IAAI;AACbC,IAAAA,QAAQ,EAAE,UAAU;AACpBC,IAAAA,GAAG,EAAE,CAAC;AACNC,IAAAA,KAAK,EAAE,OAAO;AACdC,IAAAA,MAAM,EAAE,MAAM;AACdC,IAAAA,kBAAkB,EAAEC,WAAW,CAACC,cAAc,CAACjB,KAAK,CAACkB,MAAM,CAACC,QAAQ,CAACC,MAAM,CAAC,CAAC;IAC7EC,wBAAwB,EAAEL,WAAW,CAAChB,KAAK,CAACkB,MAAM,CAACI,MAAM,CAACC,QAAQ,CAAC;AACnEC,IAAAA,kBAAkB,EAAE,SAAA;GACrB,CAAA;AAED,EAAA,OAAAC,aAAA,CAAA;AACEZ,IAAAA,KAAK,EAAE,MAAM;AACbC,IAAAA,MAAM,EAAE,MAAM;AACdY,IAAAA,SAAS,EAAE,QAAQ;AACnB9C,IAAAA,OAAO,EAAE,MAAM;AACf+C,IAAAA,QAAQ,EAAE,QAAQ;AAClBC,IAAAA,cAAc,EAAE,aAAa;AAC7BC,IAAAA,iBAAiB,EAAgB,cAAA;IACjCC,eAAe,EAAE,MAAM;IACvBC,cAAc,EAAE,MAAM;;AACtB;AACAC,IAAAA,uBAAuB,EAAE,OAAO;AAChCC,IAAAA,gBAAgB,EAAE,WAAW;AAC7BC,IAAAA,iBAAiB,EAAE,cAAc;AACjCC,IAAAA,mBAAmB,EAAE,cAAc;AACnC,IAAA,sBAAsB,EAAE;AACtBvD,MAAAA,OAAO,EAAE,MAAA;AACX,KAAA;AAAC,GAAA,EACGqB,WAAW,IAAI;AACjB,IAAA,WAAW,EAAAwB,aAAA,CAAAA,aAAA,KACNhB,kBAAkB,CAAA,EAAA,EAAA,EAAA;MACrB2B,UAAU,EAAA,4BAAA,CAAAC,MAAA,CAA+BhC,aAAa,QAAAgC,MAAA,CAAK7B,aAAa,EAAG,GAAA,CAAA;MAC3E8B,IAAI,EAAE,CAAC,CAAC;AACRC,MAAAA,OAAO,EAAEpC,eAAe,GAAG,CAAC,GAAG,CAAC;AAChCqC,MAAAA,aAAa,EAAE,MAAA;KAChB,CAAA;AACD,IAAA,UAAU,EAAAf,aAAA,CAAAA,aAAA,KACLhB,kBAAkB,CAAA,EAAA,EAAA,EAAA;MACrB2B,UAAU,EAAA,2BAAA,CAAAC,MAAA,CAA8BhC,aAAa,QAAAgC,MAAA,CAAK7B,aAAa,EAAG,GAAA,CAAA;MAC1EiC,KAAK,EAAE,CAAC,CAAC;AACTF,MAAAA,OAAO,EAAEnC,aAAa,GAAG,CAAC,GAAG,CAAC;AAC9BoC,MAAAA,aAAa,EAAE,MAAA;AAAM,KAAA,CAAA;GAExB,CAAA,CAAA;AAEL,CAAC,CAAC,CAAA;AAiBF,IAAME,YAAY,gBAAGC,cAAK,CAACC,UAAU,CACnC,UAAAC,KAAA,EAeEC,GAAG,EACA;AAAA,EAAA,IAdD/D,QAAQ,GAAA8D,KAAA,CAAR9D,QAAQ;IACRb,WAAW,GAAA2E,KAAA,CAAX3E,WAAW;IACX6E,wBAAwB,GAAAF,KAAA,CAAxBE,wBAAwB;IACxBC,QAAQ,GAAAH,KAAA,CAARG,QAAQ;IACR9C,kBAAkB,GAAA2C,KAAA,CAAlB3C,kBAAkB;IAClBC,eAAe,GAAA0C,KAAA,CAAf1C,eAAe;IACfC,aAAa,GAAAyC,KAAA,CAAbzC,aAAa;IACb6C,qBAAqB,GAAAJ,KAAA,CAArBI,qBAAqB;IACrBC,kBAAkB,GAAAL,KAAA,CAAlBK,kBAAkB;IAClBC,cAAc,GAAAN,KAAA,CAAdM,cAAc;IACdC,SAAS,GAAAP,KAAA,CAATO,SAAS;IACTtE,GAAG,GAAA+D,KAAA,CAAH/D,GAAG,CAAA;AAIL,EAAA,oBACEE,GAAA,CAACS,iBAAiB,EAAAgC,aAAA,CAAAA,aAAA,CAAA;AAChB4B,IAAAA,QAAQ,EAAE,CAAE;AACZP,IAAAA,GAAG,EAAEA,GAAI;AACT7C,IAAAA,WAAW,EAAEqD,OAAO,CAACpD,kBAAkB,CAAE;AACzCA,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCpB,IAAAA,GAAG,EAAEA,GAAG,KAAA,IAAA,IAAHA,GAAG,KAAA,KAAA,CAAA,GAAHA,GAAG,GAAI;AAAEyE,MAAAA,IAAI,EAAE,WAAW;AAAEC,MAAAA,CAAC,EAAE,WAAA;KAAc;AAClDrD,IAAAA,eAAe,EAAEA,eAAgB;AACjCC,IAAAA,aAAa,EAAEA,aAAc;AAC7BvB,IAAAA,UAAU,EAAEoE,qBAAAA;AAAsB,GAAA,EAC9BQ,cAAc,CAAC;AACjBC,IAAAA,IAAI,EAAE,OAAO;AACbC,IAAAA,eAAe,EAAE,UAAU;AAC3BC,IAAAA,KAAK,EAAEV,kBAAAA;AACT,GAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AAAAnE,IAAAA,QAAA,EAED4D,cAAK,CAACkB,QAAQ,CAACC,GAAG,CAAC/E,QAAQ,EAAE,UAACgF,KAAK,EAAEC,KAAK,EAAK;AAC9C,MAAA,IAAMC,sBAAsB,GAAGlB,wBAAwB,IAAIiB,KAAK,KAAK,CAAC,CAAA;MACtE,IAAME,oBAAoB,GAAGnB,wBAAwB,IAAIiB,KAAK,KAAK9F,WAAW,GAAG,CAAC,CAAA;AAClF,MAAA,IAAMiG,gBAAoC,gBAAGxB,cAAK,CAACyB,YAAY,CAC7DL,KAAK,EACL;AACEC,QAAAA,KAAK,EAALA,KAAK;QACLK,EAAE,EAAA,EAAA,CAAAhC,MAAA,CAAKW,QAAQ,qBAAAX,MAAA,CAAkB2B,KAAK,CAAE;AACxCC,QAAAA,sBAAsB,EAAtBA,sBAAsB;AACtBC,QAAAA,oBAAoB,EAApBA,oBAAoB;AACpBd,QAAAA,SAAS,EAATA,SAAS;AACTtE,QAAAA,GAAG,EAAHA,GAAAA;AACF,OACF,CAAC,CAAA;;AAED;AACA;AACA;AACA,MAAA,IAAIoF,oBAAoB,EAAE;QACxB,oBACEzF,IAAA,CAAAe,QAAA,EAAA;AAAAT,UAAAA,QAAA,EACGoF,CAAAA,gBAAgB,eAChBnF,GAAA,CAACW,OAAO,EAAA;YAAC2E,QAAQ,EAAA,EAAA,CAAAjC,MAAA,CAAKc,cAAc,EAAA,IAAA,CAAA;AAAK,WAAE,CAAC,CAAA;AAAA,SAC7C,CAAC,CAAA;AAEP,OAAA;AACA,MAAA,OAAOgB,gBAAgB,CAAA;KACxB,CAAA;AAAC,GAAA,CACe,CAAC,CAAA;AAExB,CACF,CAAC,CAAA;AAED,IAAMI,SAAS,GAAG,SAAZA,SAASA,CAAAC,KAAA,EAuBb1B,GAA+B,EACR;AAAA,EAAA,IAtBrB2B,QAAQ,GAAAD,KAAA,CAARC,QAAQ;IAAAC,kBAAA,GAAAF,KAAA,CACRG,YAAY;AAAZA,IAAAA,YAAY,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,CAAC,GAAAA,kBAAA;IAAAE,oBAAA,GAAAJ,KAAA,CAChBzG,cAAc;AAAdA,IAAAA,cAAc,GAAA6G,oBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,oBAAA;IAAAC,qBAAA,GAAAL,KAAA,CACrBxG,wBAAwB;AAAxBA,IAAAA,wBAAwB,GAAA6G,qBAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,qBAAA;IACnC9F,QAAQ,GAAAyF,KAAA,CAARzF,QAAQ;IAAA+F,qBAAA,GAAAN,KAAA,CACRzB,wBAAwB;AAAxBA,IAAAA,wBAAwB,GAAA+B,qBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,qBAAA;IAChCC,iBAAiB,GAAAP,KAAA,CAAjBO,iBAAiB;IACjB7E,kBAAkB,GAAAsE,KAAA,CAAlBtE,kBAAkB;IAClBgD,kBAAkB,GAAAsB,KAAA,CAAlBtB,kBAAkB;IAClB8B,SAAQ,GAAAR,KAAA,CAARQ,QAAQ;IAAAC,qBAAA,GAAAT,KAAA,CACRlG,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAA2G,qBAAA,KAAG,KAAA,CAAA,GAAA,MAAM,GAAAA,qBAAA;IAAAC,sBAAA,GAAAV,KAAA,CACzBjG,uBAAuB;AAAvBA,IAAAA,uBAAuB,GAAA2G,sBAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,sBAAA;IAAAC,qBAAA,GAAAX,KAAA,CAClCvB,qBAAqB;AAArBA,IAAAA,qBAAqB,GAAAkC,qBAAA,KAAG,KAAA,CAAA,GAAA,OAAO,GAAAA,qBAAA;IAC/BrE,MAAM,GAAA0D,KAAA,CAAN1D,MAAM;IACNsE,kBAAkB,GAAAZ,KAAA,CAAlBY,kBAAkB;IACLC,eAAe,GAAAb,KAAA,CAA5Bc,WAAW;IAAAC,qBAAA,GAAAf,KAAA,CACXhG,qBAAqB;AAAEgH,IAAAA,wBAAwB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;IACtDnC,SAAS,GAAAoB,KAAA,CAATpB,SAAS;IACTtE,GAAG,GAAA0F,KAAA,CAAH1F,GAAG;AACA2G,IAAAA,IAAI,GAAAC,wBAAA,CAAAlB,KAAA,EAAAmB,SAAA,CAAA,CAAA;AAIT,EAAA,IAAAC,SAAA,GAAqBC,QAAQ,EAAE;IAAvBC,QAAQ,GAAAF,SAAA,CAARE,QAAQ,CAAA;AAChB,EAAA,IAAAC,eAAA,GAA8CpD,cAAK,CAACqD,QAAQ,CAAC,CAAC,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAH,eAAA,EAAA,CAAA,CAAA;AAAxD9H,IAAAA,eAAe,GAAAgI,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,kBAAkB,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;EAC1C,IAAAG,qBAAA,GAAsCC,oBAAoB,CAAC;AACzDC,MAAAA,YAAY,EAAElB,kBAAkB,KAAA,IAAA,IAAlBA,kBAAkB,KAAlBA,KAAAA,CAAAA,GAAAA,kBAAkB,GAAI,CAAC;AACrCmB,MAAAA,KAAK,EAAElB,eAAe;AACtBL,MAAAA,QAAQ,EAAE,SAAAA,QAACuB,CAAAA,KAAK,EAAK;AACnBvB,QAAAA,SAAQ,aAARA,SAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,SAAQ,CAAGuB,KAAK,CAAC,CAAA;AACnB,OAAA;AACF,KAAC,CAAC;IAAAC,sBAAA,GAAAN,cAAA,CAAAE,qBAAA,EAAA,CAAA,CAAA;AANKd,IAAAA,WAAW,GAAAkB,sBAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,cAAc,GAAAD,sBAAA,CAAA,CAAA,CAAA,CAAA;AAOlC,EAAA,IAAAE,gBAAA,GAAsD/D,cAAK,CAACqD,QAAQ,CAAC,KAAK,CAAC;IAAAW,gBAAA,GAAAT,cAAA,CAAAQ,gBAAA,EAAA,CAAA,CAAA;AAApEE,IAAAA,mBAAmB,GAAAD,gBAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,sBAAsB,GAAAF,gBAAA,CAAA,CAAA,CAAA,CAAA;AAClD,EAAA,IAAAG,gBAAA,GAA4CnE,cAAK,CAACqD,QAAQ,CAAC,CAAC,CAAC;IAAAe,gBAAA,GAAAb,cAAA,CAAAY,gBAAA,EAAA,CAAA,CAAA;AAAtD3D,IAAAA,cAAc,GAAA4D,gBAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,iBAAiB,GAAAD,gBAAA,CAAA,CAAA,CAAA,CAAA;AACxC,EAAA,IAAME,YAAY,GAAGtE,cAAK,CAACuE,MAAM,CAAiB,IAAI,CAAC,CAAA;AACvD,EAAA,IAAMC,QAAQ,GAAGrB,QAAQ,KAAK,UAAU,CAAA;AACxC,EAAA,IAAMzB,EAAE,GAAG+C,KAAK,EAAE,CAAA;AAClB,EAAA,IAAMC,UAAU,GAAA,WAAA,CAAAhF,MAAA,CAAegC,EAAE,CAAE,CAAA;AAEnCiD,EAAAA,wBAAwB,CAAC;AACvBC,IAAAA,aAAa,EAAE,UAAU;AACzBC,IAAAA,iBAAiB,EAAE,CAACC,YAAY,CAACC,YAAY,CAAC;AAC9C3I,IAAAA,QAAQ,EAARA,QAAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,IAAA4I,gBAAA,GAA0ChF,cAAK,CAACqD,QAAQ;AACtD;AACAmB,IAAAA,QAAQ,GAAG,IAAI,GAAG,CAACpE,wBACrB,CAAC;IAAA6E,gBAAA,GAAA1B,cAAA,CAAAyB,gBAAA,EAAA,CAAA,CAAA;AAHMxH,IAAAA,eAAe,GAAAyH,gBAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,cAAc,GAAAD,gBAAA,CAAA,CAAA,CAAA,CAAA;AAItC,EAAA,IAAAE,gBAAA,GAAsCnF,cAAK,CAACqD,QAAQ,CAACmB,QAAQ,CAAC;IAAAY,iBAAA,GAAA7B,cAAA,CAAA4B,gBAAA,EAAA,CAAA,CAAA;AAAvD1H,IAAAA,aAAa,GAAA2H,iBAAA,CAAA,CAAA,CAAA;AAAEC,IAAAA,YAAY,GAAAD,iBAAA,CAAA,CAAA,CAAA,CAAA;AAElC,EAAA,IAAME,YAAY,GAAGtD,YAAY,KAAK,SAAS,CAAA;EAC/C,IAAIuD,aAAa,GAAGvD,YAAyB,CAAA;AAC7C,EAAA,IAAIwC,QAAQ,EAAE;AACZe,IAAAA,aAAa,GAAG,CAAC,CAAA;AACjBlK,IAAAA,wBAAwB,GAAG,QAAQ,CAAA;AACrC,GAAA;AACA,EAAA,IAAIiK,YAAY,EAAE;AAChBC,IAAAA,aAAa,GAAG,CAAC,CAAA;AACnB,GAAA;;AAEA;AACA;AACA;AACA,EAAA,IAAID,YAAY,IAAI,CAAClF,wBAAwB,IAAI,CAACoE,QAAQ,EAAE;AAC1DpJ,IAAAA,cAAc,GAAG,KAAK,CAAA;AACxB,GAAA;AACA,EAAA,IAAMS,qBAAqB,GAAGgH,wBAAwB,IAAI,CAAC2B,QAAQ,CAAA;AACnE,EAAA,IAAMgB,qCAAqC,GAAGnK,wBAAwB,KAAK,cAAc,CAAA;AAEzF,EAAA,IAAMoK,kBAAkB,GAAG,CAACH,YAAY,IAAIjK,wBAAwB,KAAK,MAAM,CAAA;AAE/E,EAAA,IAAMqK,qBAAqB,GAAGJ,YAAY,IAAIjK,wBAAwB,KAAK,MAAM,CAAA;EACjF,IAAMsK,mBAAmB,GAAG3F,cAAK,CAACkB,QAAQ,CAAC0E,KAAK,CAACxJ,QAAQ,CAAC,CAAA;EAC1D,IAAMyJ,kBAAkB,GAAGC,IAAI,CAACC,IAAI,CAACJ,mBAAmB,GAAGJ,aAAa,CAAC,CAAA;;AAEzE;AACA;EACA,IAAMS,oBAAoB,GAAGV,YAAY,GAAG3C,WAAW,KAAK,CAAC,GAAG,IAAI,CAAA;EACpE,IAAMsD,oBAAoB,GAAGX,YAAY,GAAG3C,WAAW,KAAKgD,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAAA;;AAE1F;AACA;AACAO,EAAAA,yBAAyB,CAAC,YAAM;IAAA,IAAAC,qBAAA,EAAAC,qBAAA,CAAA;AAC9B;AACA,IAAA,IAAI,CAACd,YAAY,IAAI,CAAClF,wBAAwB,EAAE,OAAA;AAChD,IAAA,IAAI,CAACkE,YAAY,CAAC+B,OAAO,EAAE,OAAA;AAE3B,IAAA,IAAMC,cAAc,GAAGC,iBAAiB,CAAC7B,UAAU,EAAE,CAAC,CAAC,CAAA;IACvD,IAAM8B,YAAY,GAAGlC,YAAY,CAAC+B,OAAO,CAACI,aAAa,CAACH,cAAc,CAAC,CAAA;IACvE,IAAI,CAACE,YAAY,EAAE,OAAA;AAEnB,IAAA,IAAME,gBAAgB,GAAAP,CAAAA,qBAAA,GAAGK,YAAY,CAACG,qBAAqB,EAAE,CAAChH,IAAI,MAAAwG,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAI,CAAC,CAAA;AACvE,IAAA,IAAMS,qBAAqB,GAAAR,CAAAA,qBAAA,GAAG9B,YAAY,CAAC+B,OAAO,CAACM,qBAAqB,EAAE,CAAChH,IAAI,MAAA,IAAA,IAAAyG,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAI,CAAC,CAAA;AAEpF/B,IAAAA,iBAAiB,CAACqC,gBAAgB,GAAGE,qBAAqB,CAAC,CAAA;GAC5D,EAAE,CAAClC,UAAU,EAAEY,YAAY,EAAElF,wBAAwB,CAAC,CAAC,CAAA;AAExD,EAAA,IAAMyG,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,UAAkB,EAA2B;AAAA,IAAA,IAAAC,sBAAA,CAAA;AAAA,IAAA,IAAzBC,aAAa,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,IAAI,CAAA;AAC7D,IAAA,IAAI,CAAC3C,YAAY,CAAC+B,OAAO,EAAE,OAAA;IAE3B,IAAMC,cAAc,GAAGC,iBAAiB,CAAC7B,UAAU,EAAEoC,UAAU,GAAGvB,aAAa,CAAC,CAAA;IAChF,IAAMiB,YAAY,GAAGlC,YAAY,CAAC+B,OAAO,CAACI,aAAa,CAACH,cAAc,CAAC,CAAA;IACvE,IAAI,CAACE,YAAY,EAAE,OAAA;IAEnB,IAAME,gBAAgB,GACpBF,YAAY,CAACG,qBAAqB,EAAE,CAAChH,IAAI,IAAAoH,CAAAA,sBAAA,GACxCzC,YAAY,CAAC+B,OAAO,CAACM,qBAAqB,EAAE,CAAChH,IAAI,MAAAoH,IAAAA,IAAAA,sBAAA,KAAAA,KAAAA,CAAAA,GAAAA,sBAAA,GAAI,CAAC,CAAC,CAAA;IAC1D,IAAMpH,IAAI,GAAG2E,YAAY,CAAC+B,OAAO,CAACe,UAAU,GAAGV,gBAAgB,CAAA;AAE/DpC,IAAAA,YAAY,CAAC+B,OAAO,CAACgB,MAAM,CAAC;MAC1B1H,IAAI,EAAEA,IAAI,GAAGa,cAAc;AAC3B8G,MAAAA,QAAQ,EAAEN,aAAa,GAAG,QAAQ,GAAG,MAAA;AACvC,KAAC,CAAC,CAAA;GACH,CAAA;AAED,EAAA,IAAMO,cAAc,GAAG,SAAjBA,cAAcA,CAAIT,UAAkB,EAAK;AAC7ChD,IAAAA,cAAc,CAAC,YAAA;AAAA,MAAA,OAAMgD,UAAU,CAAA;KAAC,CAAA,CAAA;IAChCtD,kBAAkB,CAACsD,UAAU,CAAC,CAAA;GAC/B,CAAA;AAED,EAAA,IAAMU,aAAa,GAAG,SAAhBA,aAAaA,GAAS;AAC1B,IAAA,IAAIV,UAAU,GAAGnE,WAAW,GAAG,CAAC,CAAA;IAChC,IAAImE,UAAU,IAAIjB,kBAAkB,EAAE;AACpCiB,MAAAA,UAAU,GAAG,CAAC,CAAA;AAChB,KAAA;;AAEA;AACA;AACA;AACA;AACA;IACA,IAAIxC,YAAY,CAAC+B,OAAO,EAAE;AACxB,MAAA,IAAMoB,SAAS,GAAGnD,YAAY,CAAC+B,OAAO,CAAA;AACtC,MAAA,IAAMe,UAAU,GAAGK,SAAS,CAACL,UAAU,CAAA;MACvC,IAAMM,WAAW,GAAGD,SAAS,CAACC,WAAW,GAAGD,SAAS,CAACE,WAAW,CAAA;MACjE,IAAIP,UAAU,KAAKM,WAAW,EAAE;AAC9BZ,QAAAA,UAAU,GAAG,CAAC,CAAA;AAChB,OAAA;AACF,KAAA;IAEAS,cAAc,CAACT,UAAU,CAAC,CAAA;GAC3B,CAAA;AAED,EAAA,IAAMc,iBAAiB,GAAG,SAApBA,iBAAiBA,GAAS;AAC9B,IAAA,IAAId,UAAU,GAAGnE,WAAW,GAAG,CAAC,CAAA;IAChC,IAAIA,WAAW,IAAI,CAAC,EAAE;MACpBmE,UAAU,GAAGjB,kBAAkB,GAAG,CAAC,CAAA;AACrC,KAAA;IACA0B,cAAc,CAACT,UAAU,CAAC,CAAA;GAC3B,CAAA;;AAED;EACA9G,cAAK,CAAC6H,SAAS,CAAC,YAAM;AACpB;AACA;AACA,IAAA,IAAIzH,wBAAwB,EAAE,OAAA;AAC9B,IAAA,IAAIoE,QAAQ,EAAE,OAAA;AAEd,IAAA,IAAMsD,iBAAiB,GAAGxD,YAAY,CAAC+B,OAAO,CAAA;IAC9C,IAAI,CAACyB,iBAAiB,EAAE,OAAA;AAExB,IAAA,IAAMC,YAAY,GAAGC,QAAQ,CAAC,YAAM;AAClC,MAAA,IAAMN,WAAW,GAAG,CAAAI,iBAAiB,KAAjBA,IAAAA,IAAAA,iBAAiB,KAAjBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAiB,CAAEJ,WAAW,IAAGI,iBAAiB,CAACH,WAAW,CAAA;MAClFzC,cAAc,CAAC,CAAA4C,iBAAiB,KAAjBA,IAAAA,IAAAA,iBAAiB,KAAjBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAiB,CAAEV,UAAU,MAAK,CAAC,CAAC,CAAA;MACnD/B,YAAY,CAAC,CAAAyC,iBAAiB,KAAjBA,IAAAA,IAAAA,iBAAiB,KAAjBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAiB,CAAEV,UAAU,MAAKM,WAAW,CAAC,CAAA;KAC5D,EAAE,GAAG,CAAC,CAAA;AAEPI,IAAAA,iBAAiB,CAACG,gBAAgB,CAAC,QAAQ,EAAEF,YAAY,CAAC,CAAA;AAE1D,IAAA,OAAO,YAAM;MACXD,iBAAiB,KAAA,IAAA,IAAjBA,iBAAiB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjBA,iBAAiB,CAAEI,mBAAmB,CAAC,QAAQ,EAAEH,YAAY,CAAC,CAAA;KAC/D,CAAA;AACH,GAAC,EAAE,CAACvD,QAAQ,EAAEpE,wBAAwB,CAAC,CAAC,CAAA;;AAExC;EACAJ,cAAK,CAAC6H,SAAS,CAAC,YAAM;AACpB,IAAA,IAAMC,iBAAiB,GAAGxD,YAAY,CAAC+B,OAAO,CAAA;IAC9C,IAAI,CAACyB,iBAAiB,EAAE,OAAA;AAExB,IAAA,IAAMC,YAAY,GAAGI,QAAQ,CAAC,YAAM;AAClC;AACA,MAAA,IAAMC,UAAU,GAAGN,iBAAiB,CAACnB,qBAAqB,EAAE,CAAA;AAC5D;MACA,IAAI0B,OAAO,GAAG,GAAG,CAAA;AACjB;AACA;AACA,MAAA,IAAK/C,YAAY,IAAIlF,wBAAwB,IAAKK,SAAS,KAAK,QAAQ,EAAE;AACxE4H,QAAAA,OAAO,GAAG,GAAG,CAAA;AACf,OAAA;MAEA,IAAMC,MAAM,GAAGF,UAAU,CAACzI,IAAI,GAAGyI,UAAU,CAAClK,KAAK,GAAGmK,OAAO,CAAA;MAC3D,IAAME,MAAM,GAAGH,UAAU,CAACnK,GAAG,GAAGmK,UAAU,CAACjK,MAAM,GAAG,GAAG,CAAA;MACvD,IAAMqK,OAAO,GAAGC,QAAQ,CAACC,gBAAgB,CAACJ,MAAM,EAAEC,MAAM,CAAC,CAAA;MACzD,IAAM/B,YAAY,GAAGgC,OAAO,KAAPA,IAAAA,IAAAA,OAAO,KAAPA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,OAAO,CAAEG,OAAO,CAAC,oBAAoB,CAAC,CAAA;MAC3D,IAAI,CAACnC,YAAY,EAAE;AACjB,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,IAAMM,UAAU,GAAG8B,MAAM,CAACpC,YAAY,KAAZA,IAAAA,IAAAA,YAAY,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAEqC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAA;MACzE,IAAMC,IAAI,GAAGhD,IAAI,CAACC,IAAI,CAACe,UAAU,GAAGvB,aAAa,CAAC,CAAA;AAClDzB,MAAAA,cAAc,CAAC,YAAA;AAAA,QAAA,OAAMgF,IAAI,CAAA;OAAC,CAAA,CAAA;MAC1BtF,kBAAkB,CAACsF,IAAI,CAAC,CAAA;KACzB,EAAE,EAAE,CAAC,CAAA;AAENhB,IAAAA,iBAAiB,CAACG,gBAAgB,CAAC,QAAQ,EAAEF,YAAY,CAAC,CAAA;AAE1D,IAAA,OAAO,YAAM;MACXD,iBAAiB,KAAA,IAAA,IAAjBA,iBAAiB,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjBA,iBAAiB,CAAEI,mBAAmB,CAAC,QAAQ,EAAEH,YAAY,CAAC,CAAA;KAC/D,CAAA;AACD;AACF,GAAC,EAAE,CAACxC,aAAa,EAAEf,QAAQ,EAAEc,YAAY,EAAElF,wBAAwB,EAAEK,SAAS,CAAC,CAAC,CAAA;;AAEhF;AACAsI,EAAAA,WAAW,CACT,YAAM;AACJvB,IAAAA,aAAa,EAAE,CAAA;AACjB,GAAC,EACD;AACEwB,IAAAA,KAAK,EAAEC,0BAA0B;AACjC;IACAC,MAAM,EAAEpH,QAAQ,IAAI,CAACmC,mBAAAA;AACvB,GACF,CAAC,CAAA;;AAED;AACAiC,EAAAA,yBAAyB,CAAC,YAAM;IAC9B,IAAI,CAACxE,EAAE,EAAE,OAAA;IACT6F,cAAc,CAAC5E,WAAW,CAAC,CAAA;AAC3BkE,IAAAA,aAAa,CAAClE,WAAW,EAAE,KAAK,CAAC,CAAA;AACnC,GAAC,EAAE,CAACjB,EAAE,CAAC,CAAC,CAAA;;AAER;AACAyH,EAAAA,YAAY,CAAC,YAAM;IACjBtC,aAAa,CAAClE,WAAW,CAAC,CAAA;AAC5B,GAAC,EAAE,CAACA,WAAW,CAAC,CAAC,CAAA;AAEjB,EAAA,IAAMyG,eAAe,GAAGpJ,cAAK,CAACqJ,OAAO,CAAuB,YAAM;IAChE,OAAO;AACL/D,MAAAA,YAAY,EAAZA,YAAY;AACZtD,MAAAA,YAAY,EAAEuD,aAAa;AAC3BnD,MAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBkH,MAAAA,oBAAoB,EAAEhF,YAAY;AAClCd,MAAAA,kBAAkB,EAAlBA,kBAAkB;AAClBkB,MAAAA,UAAU,EAAVA,UAAU;AACViB,MAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBhD,MAAAA,WAAW,EAAXA,WAAW;AACXnC,MAAAA,cAAc,EAAdA,cAAc;AACdJ,MAAAA,wBAAwB,EAAxBA,wBAAAA;KACD,CAAA;AACH,GAAC,EAAE,CACDsE,UAAU,EACVlE,cAAc,EACd8E,YAAY,EACZC,aAAa,EACbnD,iBAAiB,EACjBuD,mBAAmB,EACnBhD,WAAW,EACXvC,wBAAwB,CACzB,CAAC,CAAA;AAEF,EAAA,oBACE/D,GAAA,CAACkN,eAAe,CAACC,QAAQ,EAAA;AAAC5F,IAAAA,KAAK,EAAEwF,eAAgB;IAAAhN,QAAA,eAC/CN,IAAA,CAACkB,OAAO,EAAA8B,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAA;AACNqB,MAAAA,GAAG,EAAEA,GAAAA;AAAa,KAAA,EACdsJ,aAAa,CAAC;MAAEC,IAAI,EAAEC,aAAa,CAACC,QAAAA;AAAS,KAAC,CAAC,CAAA,EAAA,EAAA,EAAA;AACnD;AACAC,MAAAA,OAAO,EAAE,SAAAA,OAACC,CAAAA,CAAmB,EAAK;QAChC,IAAI,CAACA,CAAC,CAACC,aAAa,CAACC,QAAQ,CAACF,CAAC,CAACG,aAAa,CAAC,EAAE;UAC9C/F,sBAAsB,CAAC,IAAI,CAAC,CAAA;AAC9B,SAAA;OACA;AACFgG,MAAAA,MAAM,EAAE,SAAAA,MAACJ,CAAAA,CAAmB,EAAK;QAC/B,IAAI,CAACA,CAAC,CAACC,aAAa,CAACC,QAAQ,CAACF,CAAC,CAACG,aAAa,CAAC,EAAE;UAC9C/F,sBAAsB,CAAC,KAAK,CAAC,CAAA;AAC/B,SAAA;AACF,OAAA;AACA;AAAA;MACAiG,YAAY,EAAE,SAAAA,YAAAA,GAAM;QAClBjG,sBAAsB,CAAC,IAAI,CAAC,CAAA;OAC5B;MACFkG,YAAY,EAAE,SAAAA,YAAAA,GAAM;QAClBlG,sBAAsB,CAAC,KAAK,CAAC,CAAA;OAC7B;MACFmG,YAAY,EAAE,SAAAA,YAAAA,GAAM;QAClBnG,sBAAsB,CAAC,IAAI,CAAC,CAAA;OAC5B;MACFoG,UAAU,EAAE,SAAAA,UAAAA,GAAM;QAChBpG,sBAAsB,CAAC,KAAK,CAAC,CAAA;OAC7B;AACFjI,MAAAA,OAAO,EAAC,MAAM;AACdC,MAAAA,UAAU,EAAC,QAAQ;AACnBqO,MAAAA,aAAa,EAAC,QAAQ;AACtBpM,MAAAA,MAAM,EAAEA,MAAAA;KACJqM,EAAAA,cAAc,CAAC1H,IAAI,CAAC,GACpB2H,sBAAsB,CAAC3H,IAAI,CAAC,CAAA,EAAA,EAAA,EAAA;MAAA1G,QAAA,EAAA,cAEhCN,IAAA,CAACkB,OAAO,EAAA;AACNkB,QAAAA,KAAK,EAAC,MAAM;AACZF,QAAAA,QAAQ,EAAC,UAAU;AACnB/B,QAAAA,OAAO,EAAC,MAAM;AACdC,QAAAA,UAAU,EAAC,QAAQ;AACnBC,QAAAA,GAAG,EAAC,WAAW;AACfoO,QAAAA,aAAa,EAAC,KAAK;AACnBpM,QAAAA,MAAM,EAAC,MAAM;QAAA/B,QAAA,EAAA,CAEZ4J,oBAAoB,KACpBN,qBAAqB,IAAIF,qCAAqC,CAAC,gBAC9DnJ,GAAA,CAACW,OAAO,EAAA;AACN0N,UAAAA,MAAM,EAAE,CAAE;AACV1M,UAAAA,QAAQ,EAAC,UAAU;AACnB2B,UAAAA,IAAI,EACF6F,qCAAqC,GACjCmF,kCAAkC,GAClC,YACL;UAAAvO,QAAA,eAEDC,GAAA,CAACC,gBAAgB,EAAA;AACfC,YAAAA,IAAI,EAAC,UAAU;AACfC,YAAAA,OAAO,EAAEZ,uBAAwB;AACjCa,YAAAA,OAAO,EAAEmL,iBAAAA;WACV,CAAA;SACM,CAAC,GACR,IAAI,EACPnC,kBAAkB,gBACjBpJ,GAAA,CAACC,gBAAgB,EAAA;AACfC,UAAAA,IAAI,EAAC,UAAU;AACfC,UAAAA,OAAO,EAAEZ,uBAAwB;AACjCa,UAAAA,OAAO,EAAEmL,iBAAAA;AAAkB,SAC5B,CAAC,GACA,IAAI,eACRvL,GAAA,CAAC0D,YAAY,EAAA;AACXM,UAAAA,QAAQ,EAAEqE,UAAW;AACrBlE,UAAAA,cAAc,EAAEA,cAAe;AAC/BjF,UAAAA,WAAW,EAAEoK,mBAAoB;AACjCvF,UAAAA,wBAAwB,EAAEA,wBAAyB;AACnD7C,UAAAA,kBAAkB,EAAEA,kBAAmB;AACvCC,UAAAA,eAAe,EAAEA,eAAgB;AACjCC,UAAAA,aAAa,EAAEA,aAAc;AAC7B0C,UAAAA,GAAG,EAAEmE,YAAa;AAClBhE,UAAAA,qBAAqB,EAAEA,qBAAsB;AAC7CC,UAAAA,kBAAkB,EAAEA,kBAAmB;AACvCE,UAAAA,SAAS,EAAEA,SAAU;AACrBtE,UAAAA,GAAG,EAAEA,GAAI;AAAAC,UAAAA,QAAA,EAERA,QAAAA;SACW,CAAC,EACd6J,oBAAoB,KACpBP,qBAAqB,IAAIF,qCAAqC,CAAC,gBAC9DnJ,GAAA,CAACW,OAAO,EAAA;AACN0N,UAAAA,MAAM,EAAE,CAAE;AACV1M,UAAAA,QAAQ,EAAC,UAAU;AACnB8B,UAAAA,KAAK,EACH0F,qCAAqC,GACjCmF,kCAAkC,GAClC,YACL;UAAAvO,QAAA,eAEDC,GAAA,CAACC,gBAAgB,EAAA;AACfG,YAAAA,OAAO,EAAE+K,aAAc;AACvBjL,YAAAA,IAAI,EAAC,MAAM;AACXC,YAAAA,OAAO,EAAEZ,uBAAAA;WACV,CAAA;SACM,CAAC,GACR,IAAI,EACP6J,kBAAkB,gBACjBpJ,GAAA,CAACC,gBAAgB,EAAA;AACfG,UAAAA,OAAO,EAAE+K,aAAc;AACvBjL,UAAAA,IAAI,EAAC,MAAM;AACXC,UAAAA,OAAO,EAAEZ,uBAAAA;SACV,CAAC,GACA,IAAI,CAAA;AAAA,OACD,CAAC,eACVS,GAAA,CAACnB,QAAQ,EAAA;AACPK,QAAAA,WAAW,EAAEsK,kBAAmB;AAChCvK,QAAAA,eAAe,EAAEA,eAAgB;AACjCF,QAAAA,cAAc,EAAEA,cAAe;AAC/BC,QAAAA,wBAAwB,EAAEA,wBAAyB;AACnDG,QAAAA,sBAAsB,EAAE+L,cAAe;AACvC9L,QAAAA,iBAAiB,EAAE+L,aAAc;AACjC9L,QAAAA,qBAAqB,EAAEkM,iBAAkB;AACzCjM,QAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,QAAAA,uBAAuB,EAAEA,uBAAwB;AACjDC,QAAAA,qBAAqB,EAAEA,qBAAAA;AAAsB,OAC9C,CAAC,CAAA;KACK,CAAA,CAAA;AAAC,GACc,CAAC,CAAA;AAE/B,CAAC,CAAA;AAED,IAAM+N,QAAQ,gBAAG5J,cAAK,CAACC,UAAU,CAAC2B,SAAS;;;;"}
@@ -1,7 +1,12 @@
1
1
  var CAROUSEL_AUTOPLAY_INTERVAL = 6000;
2
+ /*
3
+ Button have width of 34px in desktop , value from left /right should be 34px/2 = 17px.
4
+ In mobile we have 24px width of button , value from left /right should be 24px/2 = 12px. (but currently we don't support overlap in mobile)
5
+ */
6
+ var CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET = '-17px';
2
7
  var componentIds = {
3
8
  CarouselItem: 'CarouselItem'
4
9
  };
5
10
 
6
- export { CAROUSEL_AUTOPLAY_INTERVAL, componentIds };
11
+ export { CAROUSEL_AUTOPLAY_INTERVAL, CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET, componentIds };
7
12
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../../../src/components/Carousel/constants.ts"],"sourcesContent":["const CAROUSEL_AUTOPLAY_INTERVAL = 6000;\n\nconst componentIds = {\n CarouselItem: 'CarouselItem',\n};\n\nexport { CAROUSEL_AUTOPLAY_INTERVAL, componentIds };\n"],"names":["CAROUSEL_AUTOPLAY_INTERVAL","componentIds","CarouselItem"],"mappings":"AAAMA,IAAAA,0BAA0B,GAAG,KAAI;AAEvC,IAAMC,YAAY,GAAG;AACnBC,EAAAA,YAAY,EAAE,cAAA;AAChB;;;;"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../../../src/components/Carousel/constants.ts"],"sourcesContent":["const CAROUSEL_AUTOPLAY_INTERVAL = 6000;\n/*\n Button have width of 34px in desktop , value from left /right should be 34px/2 = 17px.\n In mobile we have 24px width of button , value from left /right should be 24px/2 = 12px. (but currently we don't support overlap in mobile)\n*/\nconst CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET = '-17px';\n\nconst componentIds = {\n CarouselItem: 'CarouselItem',\n};\n\nexport { CAROUSEL_AUTOPLAY_INTERVAL, componentIds, CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET };\n"],"names":["CAROUSEL_AUTOPLAY_INTERVAL","CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET","componentIds","CarouselItem"],"mappings":"AAAMA,IAAAA,0BAA0B,GAAG,KAAI;AACvC;AACA;AACA;AACA;AACMC,IAAAA,kCAAkC,GAAG,QAAO;AAElD,IAAMC,YAAY,GAAG;AACnBC,EAAAA,YAAY,EAAE,cAAA;AAChB;;;;"}
@@ -7,7 +7,7 @@ import { Indicators } from './Indicators/Indicators.js';
7
7
  import './NavigationButton/index.js';
8
8
  import { CarouselContext } from './CarouselContext.js';
9
9
  import { getCarouselItemId } from './utils.js';
10
- import { componentIds, CAROUSEL_AUTOPLAY_INTERVAL } from './constants.js';
10
+ import { componentIds, CAROUSEL_AUTOPLAY_INTERVAL, CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET } from './constants.js';
11
11
  import getIn from '../../utils/lodashButBetter/get.js';
12
12
  import throttle from '../../utils/lodashButBetter/throttle.js';
13
13
  import debounce from '../../utils/lodashButBetter/debounce.js';
@@ -74,7 +74,7 @@ var Controls = function Controls(_ref) {
74
74
  }) : null]
75
75
  });
76
76
  }
77
- if (showIndicators && navigationButtonPosition === 'side') {
77
+ if (showIndicators && (navigationButtonPosition === 'side' || navigationButtonPosition === 'side-overlap')) {
78
78
  return /*#__PURE__*/jsx(Box, {
79
79
  marginTop: "spacing.7",
80
80
  children: /*#__PURE__*/jsx(Indicators, {
@@ -287,6 +287,7 @@ var _Carousel = function _Carousel(_ref4, ref) {
287
287
  showIndicators = false;
288
288
  }
289
289
  var showNavigationButtons = showNavigationButtonProp || !isMobile;
290
+ var isNavigationButtonPositionSideOverlap = navigationButtonPosition === 'side-overlap';
290
291
  var isNavButtonsOnSide = !isResponsive && navigationButtonPosition === 'side';
291
292
  var shouldNavButtonsFloat = isResponsive && navigationButtonPosition === 'side';
292
293
  var totalNumberOfSlides = React__default.Children.count(children);
@@ -493,10 +494,10 @@ var _Carousel = function _Carousel(_ref4, ref) {
493
494
  gap: "spacing.4",
494
495
  flexDirection: "row",
495
496
  height: "100%",
496
- children: [shouldShowPrevButton && shouldNavButtonsFloat ? /*#__PURE__*/jsx(BaseBox, {
497
+ children: [shouldShowPrevButton && (shouldNavButtonsFloat || isNavigationButtonPositionSideOverlap) ? /*#__PURE__*/jsx(BaseBox, {
497
498
  zIndex: 2,
498
499
  position: "absolute",
499
- left: "spacing.11",
500
+ left: isNavigationButtonPositionSideOverlap ? CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET : 'spacing.11',
500
501
  children: /*#__PURE__*/jsx(NavigationButton, {
501
502
  type: "previous",
502
503
  variant: navigationButtonVariant,
@@ -520,10 +521,10 @@ var _Carousel = function _Carousel(_ref4, ref) {
520
521
  snapAlign: snapAlign,
521
522
  gap: gap,
522
523
  children: children
523
- }), shouldShowNextButton && shouldNavButtonsFloat ? /*#__PURE__*/jsx(BaseBox, {
524
+ }), shouldShowNextButton && (shouldNavButtonsFloat || isNavigationButtonPositionSideOverlap) ? /*#__PURE__*/jsx(BaseBox, {
524
525
  zIndex: 2,
525
526
  position: "absolute",
526
- right: "spacing.11",
527
+ right: isNavigationButtonPositionSideOverlap ? CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET : 'spacing.11',
527
528
  children: /*#__PURE__*/jsx(NavigationButton, {
528
529
  onClick: goToNextSlide,
529
530
  type: "next",
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.web.js","sources":["../../../../../../src/components/Carousel/Carousel.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable consistent-return */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable react/jsx-no-useless-fragment */\nimport type { CSSObject } from 'styled-components';\nimport styled from 'styled-components';\nimport React from 'react';\nimport { Indicators } from './Indicators/Indicators';\nimport { NavigationButton } from './NavigationButton';\nimport type { CarouselProps } from './types';\nimport type { CarouselContextProps } from './CarouselContext';\nimport { CarouselContext } from './CarouselContext';\nimport { getCarouselItemId } from './utils';\nimport { CAROUSEL_AUTOPLAY_INTERVAL, componentIds } from './constants';\nimport getIn from '~utils/lodashButBetter/get';\nimport throttle from '~utils/lodashButBetter/throttle';\nimport debounce from '~utils/lodashButBetter/debounce';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { castWebType, makeMotionTime, useInterval } from '~utils';\nimport { useId } from '~utils/useId';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useVerifyAllowedChildren } from '~utils/useVerifyAllowedChildren/useVerifyAllowedChildren';\nimport { useTheme } from '~components/BladeProvider';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { useControllableState } from '~utils/useControllable';\nimport { useIsomorphicLayoutEffect } from '~utils/useIsomorphicLayoutEffect';\nimport { useDidUpdate } from '~utils/useDidUpdate';\nimport type { BladeElementRef } from '~utils/types';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype ControlsProp = Required<\n Pick<\n CarouselProps,\n 'indicatorVariant' | 'showIndicators' | 'navigationButtonVariant' | 'navigationButtonPosition'\n >\n> & {\n activeIndicator: number;\n totalSlides: number;\n onIndicatorButtonClick: (index: number) => void;\n onNextButtonClick: () => void;\n onPreviousButtonClick: () => void;\n showNavigationButtons: boolean;\n};\n\nconst Controls = ({\n showIndicators,\n navigationButtonPosition,\n activeIndicator,\n totalSlides,\n onIndicatorButtonClick,\n onNextButtonClick,\n onPreviousButtonClick,\n indicatorVariant,\n navigationButtonVariant,\n showNavigationButtons,\n}: ControlsProp): React.ReactElement => {\n if (navigationButtonPosition === 'bottom') {\n return (\n <Box marginTop=\"spacing.7\" display=\"flex\" alignItems=\"center\" gap=\"spacing.4\">\n {showNavigationButtons ? (\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={onPreviousButtonClick}\n />\n ) : null}\n {showIndicators ? (\n <Indicators\n onClick={onIndicatorButtonClick}\n activeIndex={activeIndicator}\n totalItems={totalSlides}\n variant={indicatorVariant}\n />\n ) : null}\n {showNavigationButtons ? (\n <NavigationButton\n onClick={onNextButtonClick}\n type=\"next\"\n variant={navigationButtonVariant}\n />\n ) : null}\n </Box>\n );\n }\n\n if (showIndicators && navigationButtonPosition === 'side') {\n return (\n <Box marginTop=\"spacing.7\">\n <Indicators\n onClick={onIndicatorButtonClick}\n activeIndex={activeIndicator}\n totalItems={totalSlides}\n variant={indicatorVariant}\n />\n </Box>\n );\n }\n\n return <></>;\n};\n\nconst CarouselContainer = styled(BaseBox)<{\n showOverlay?: boolean;\n scrollOverlayColor: CarouselProps['scrollOverlayColor'];\n isScrollAtStart: boolean;\n isScrollAtEnd: boolean;\n}>(({ theme, showOverlay, scrollOverlayColor, isScrollAtStart, isScrollAtEnd }) => {\n const gradientStop1: string = getIn(theme.colors, scrollOverlayColor!);\n const gradientStop2 = 'hsla(0, 0%, 100%, 0)';\n\n const overlayCommonStyle: CSSObject = {\n content: \"''\",\n position: 'absolute',\n top: 0,\n width: '100px',\n height: '100%',\n transitionDuration: castWebType(makeMotionTime(theme.motion.duration.gentle)),\n transitionTimingFunction: castWebType(theme.motion.easing.standard),\n transitionProperty: 'opacity',\n };\n\n return {\n width: '100%',\n height: '100%',\n overflowX: 'scroll',\n display: 'flex',\n flexWrap: 'nowrap',\n scrollSnapType: 'x mandatory',\n scrollSnapPointsY: `repeat(100%)`,\n msOverflowStyle: 'none' /* IE and Edge */,\n scrollbarWidth: 'none' /* Firefox */,\n /* Needed to work on iOS Safari */\n webkitOverflowScrolling: 'touch',\n msScrollSnapType: 'mandatory',\n scrollSnapPointsX: 'repeat(100%)',\n msScrollSnapPointsX: 'repeat(100%)',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n ...(showOverlay && {\n '&::before': {\n ...overlayCommonStyle,\n background: `linear-gradient(to right, ${gradientStop1}, ${gradientStop2})`,\n left: -1,\n opacity: isScrollAtStart ? 0 : 1,\n pointerEvents: 'none',\n },\n '&::after': {\n ...overlayCommonStyle,\n background: `linear-gradient(to left, ${gradientStop1}, ${gradientStop2})`,\n right: -1,\n opacity: isScrollAtEnd ? 0 : 1,\n pointerEvents: 'none',\n },\n }),\n };\n});\n\ntype CarouselBodyProps = {\n children: React.ReactNode;\n totalSlides: number;\n shouldAddStartEndSpacing?: boolean;\n idPrefix: string;\n scrollOverlayColor: CarouselProps['scrollOverlayColor'];\n isScrollAtStart: boolean;\n isScrollAtEnd: boolean;\n carouselItemAlignment: CarouselProps['carouselItemAlignment'];\n accessibilityLabel?: string;\n startEndMargin: number;\n snapAlign?: CarouselProps['snapAlign'];\n gap?: CarouselProps['gap'];\n};\n\nconst CarouselBody = React.forwardRef<HTMLDivElement, CarouselBodyProps>(\n (\n {\n children,\n totalSlides,\n shouldAddStartEndSpacing,\n idPrefix,\n scrollOverlayColor,\n isScrollAtStart,\n isScrollAtEnd,\n carouselItemAlignment,\n accessibilityLabel,\n startEndMargin,\n snapAlign,\n gap,\n },\n ref,\n ) => {\n return (\n <CarouselContainer\n tabIndex={0}\n ref={ref}\n showOverlay={Boolean(scrollOverlayColor)}\n scrollOverlayColor={scrollOverlayColor}\n gap={gap ?? { base: 'spacing.4', m: 'spacing.5' }}\n isScrollAtStart={isScrollAtStart}\n isScrollAtEnd={isScrollAtEnd}\n alignItems={carouselItemAlignment}\n {...makeAccessible({\n role: 'group',\n roleDescription: 'carousel',\n label: accessibilityLabel,\n })}\n >\n {React.Children.map(children, (child, index) => {\n const shouldHaveStartSpacing = shouldAddStartEndSpacing && index === 0;\n const shouldHaveEndSpacing = shouldAddStartEndSpacing && index === totalSlides - 1;\n const carouselItemNode: React.ReactElement = React.cloneElement(\n child as React.ReactElement,\n {\n index,\n id: `${idPrefix}-carousel-item-${index}`,\n shouldHaveStartSpacing,\n shouldHaveEndSpacing,\n snapAlign,\n gap,\n },\n );\n\n // Safari doesn't include the margin in the bounding box calculation\n // Thus have to add an additional box to the end of the carousel to ensure we can scroll past the last item\n // https://stackoverflow.com/questions/75509058/safari-does-not-include-margins-to-the-scroll-width\n if (shouldHaveEndSpacing) {\n return (\n <>\n {carouselItemNode}\n {<BaseBox minWidth={`${startEndMargin}px`} />}\n </>\n );\n }\n return carouselItemNode;\n })}\n </CarouselContainer>\n );\n },\n);\n\nconst _Carousel = (\n {\n autoPlay,\n visibleItems = 1,\n showIndicators = true,\n navigationButtonPosition = 'bottom',\n children,\n shouldAddStartEndSpacing = false,\n carouselItemWidth,\n scrollOverlayColor,\n accessibilityLabel,\n onChange,\n indicatorVariant = 'gray',\n navigationButtonVariant = 'filled',\n carouselItemAlignment = 'start',\n height,\n defaultActiveSlide,\n activeSlide: activeSlideProp,\n showNavigationButtons: showNavigationButtonProp = true,\n snapAlign,\n gap,\n ...rest\n }: CarouselProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const { platform } = useTheme();\n const [activeIndicator, setActiveIndicator] = React.useState(0);\n const [activeSlide, setActiveSlide] = useControllableState({\n defaultValue: defaultActiveSlide ?? 0,\n value: activeSlideProp,\n onChange: (value) => {\n onChange?.(value);\n },\n });\n const [shouldPauseAutoplay, setShouldPauseAutoplay] = React.useState(false);\n const [startEndMargin, setStartEndMargin] = React.useState(0);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const isMobile = platform === 'onMobile';\n const id = useId();\n const carouselId = `carousel-${id}`;\n\n useVerifyAllowedChildren({\n componentName: 'Carousel',\n allowedComponents: [componentIds.CarouselItem],\n children,\n });\n\n const [isScrollAtStart, setScrollStart] = React.useState(\n // on mobile we do not want to render the overlay\n isMobile ? true : !shouldAddStartEndSpacing,\n );\n const [isScrollAtEnd, setScrollEnd] = React.useState(isMobile);\n\n const isResponsive = visibleItems === 'autofit';\n let _visibleItems = visibleItems as 1 | 2 | 3;\n if (isMobile) {\n _visibleItems = 1;\n navigationButtonPosition = 'bottom';\n }\n if (isResponsive) {\n _visibleItems = 1;\n }\n\n // A special case where we hide the indicators when the carousel is responsive\n // Because indicators become useless since it's not aparent which carousel item is active\n // and how many carousel items are visible at a time\n if (isResponsive && !shouldAddStartEndSpacing && !isMobile) {\n showIndicators = false;\n }\n const showNavigationButtons = showNavigationButtonProp || !isMobile;\n\n const isNavButtonsOnSide = !isResponsive && navigationButtonPosition === 'side';\n const shouldNavButtonsFloat = isResponsive && navigationButtonPosition === 'side';\n const totalNumberOfSlides = React.Children.count(children);\n const numberOfIndicators = Math.ceil(totalNumberOfSlides / _visibleItems);\n\n // hide next/prev button on reaching start/end when carousel is responsive\n // in non-responsive carousel we always show the next/prev buttons to allow looping\n const shouldShowPrevButton = isResponsive ? activeSlide !== 0 : true;\n const shouldShowNextButton = isResponsive ? activeSlide !== totalNumberOfSlides - 1 : true;\n\n // calculate the start/end margin so that we can\n // deduct that margin when scrolling to a carousel item with goToSlideIndex\n useIsomorphicLayoutEffect(() => {\n // Do not calculate if not needed\n if (!isResponsive && !shouldAddStartEndSpacing) return;\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(carouselId, 0);\n const carouselItem = containerRef.current.querySelector(carouselItemId);\n if (!carouselItem) return;\n\n const carouselItemLeft = carouselItem.getBoundingClientRect().left ?? 0;\n const carouselContainerLeft = containerRef.current.getBoundingClientRect().left ?? 0;\n\n setStartEndMargin(carouselItemLeft - carouselContainerLeft);\n }, [carouselId, isResponsive, shouldAddStartEndSpacing]);\n\n const scrollToSlide = (slideIndex: number, shouldAnimate = true) => {\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(carouselId, slideIndex * _visibleItems);\n const carouselItem = containerRef.current.querySelector(carouselItemId);\n if (!carouselItem) return;\n\n const carouselItemLeft =\n carouselItem.getBoundingClientRect().left -\n (containerRef.current.getBoundingClientRect().left ?? 0);\n const left = containerRef.current.scrollLeft + carouselItemLeft;\n\n containerRef.current.scroll({\n left: left - startEndMargin,\n behavior: shouldAnimate ? 'smooth' : 'auto',\n });\n };\n\n const goToSlideIndex = (slideIndex: number) => {\n setActiveSlide(() => slideIndex);\n setActiveIndicator(slideIndex);\n };\n\n const goToNextSlide = () => {\n let slideIndex = activeSlide + 1;\n if (slideIndex >= numberOfIndicators) {\n slideIndex = 0;\n }\n\n // an edge case where if carousel is responsive\n // and shouldHaveStartEndSpacing is set to false\n // there can be a case where numberOfIndicators is set to 10 but\n // visually there is 3 or 4 items, in those cases we want to check if we reached the\n // end of the scroll container if so we wrap around\n if (containerRef.current) {\n const container = containerRef.current;\n const scrollLeft = container.scrollLeft;\n const scrollWidth = container.scrollWidth - container.offsetWidth;\n if (scrollLeft === scrollWidth) {\n slideIndex = 0;\n }\n }\n\n goToSlideIndex(slideIndex);\n };\n\n const goToPreviousSlide = () => {\n let slideIndex = activeSlide - 1;\n if (activeSlide <= 0) {\n slideIndex = numberOfIndicators - 1;\n }\n goToSlideIndex(slideIndex);\n };\n\n // Scroll overlay gradient show/hide based on if scrolled to start or end\n React.useEffect(() => {\n // if shouldAddStartEndSpacing is true, we don't need to hide/show the overlay based on the scroll position\n // because the gap is there so it won't overlap with the card anyway\n if (shouldAddStartEndSpacing) return;\n if (isMobile) return;\n\n const carouselContainer = containerRef.current;\n if (!carouselContainer) return;\n\n const handleScroll = throttle(() => {\n const scrollWidth = carouselContainer?.scrollWidth - carouselContainer.offsetWidth;\n setScrollStart(carouselContainer?.scrollLeft === 0);\n setScrollEnd(carouselContainer?.scrollLeft === scrollWidth);\n }, 500);\n\n carouselContainer.addEventListener('scroll', handleScroll);\n\n return () => {\n carouselContainer?.removeEventListener('scroll', handleScroll);\n };\n }, [isMobile, shouldAddStartEndSpacing]);\n\n // Sync the indicators with scroll\n React.useEffect(() => {\n const carouselContainer = containerRef.current;\n if (!carouselContainer) return;\n\n const handleScroll = debounce(() => {\n // carousel bounding box\n const carouselBB = carouselContainer.getBoundingClientRect();\n // By default we check the far left side of the screen\n let xOffset = 0.1;\n // when the carousel is responsive & has spacing OR when center aligned\n // we want to check the center of the screen\n if ((isResponsive && shouldAddStartEndSpacing) || snapAlign === 'center') {\n xOffset = 0.5;\n }\n\n const pointX = carouselBB.left + carouselBB.width * xOffset;\n const pointY = carouselBB.top + carouselBB.height * 0.5;\n const element = document.elementFromPoint(pointX, pointY);\n const carouselItem = element?.closest('[data-slide-index]');\n if (!carouselItem) {\n return;\n }\n\n const slideIndex = Number(carouselItem?.getAttribute('data-slide-index'));\n const goTo = Math.ceil(slideIndex / _visibleItems);\n setActiveSlide(() => goTo);\n setActiveIndicator(goTo);\n }, 50);\n\n carouselContainer.addEventListener('scroll', handleScroll);\n\n return () => {\n carouselContainer?.removeEventListener('scroll', handleScroll);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [_visibleItems, isMobile, isResponsive, shouldAddStartEndSpacing, snapAlign]);\n\n // auto play\n useInterval(\n () => {\n goToNextSlide();\n },\n {\n delay: CAROUSEL_AUTOPLAY_INTERVAL,\n // only enable if autoplay is true & user's intent isn't to interact with carousel\n enable: autoPlay && !shouldPauseAutoplay,\n },\n );\n\n // set initial active slide on mount\n useIsomorphicLayoutEffect(() => {\n if (!id) return;\n goToSlideIndex(activeSlide);\n scrollToSlide(activeSlide, false);\n }, [id]);\n\n // Scroll the carousel to the active slide\n useDidUpdate(() => {\n scrollToSlide(activeSlide);\n }, [activeSlide]);\n\n const carouselContext = React.useMemo<CarouselContextProps>(() => {\n return {\n isResponsive,\n visibleItems: _visibleItems,\n carouselItemWidth,\n carouselContainerRef: containerRef,\n setActiveIndicator,\n carouselId,\n totalNumberOfSlides,\n activeSlide,\n startEndMargin,\n shouldAddStartEndSpacing,\n };\n }, [\n carouselId,\n startEndMargin,\n isResponsive,\n _visibleItems,\n carouselItemWidth,\n totalNumberOfSlides,\n activeSlide,\n shouldAddStartEndSpacing,\n ]);\n\n return (\n <CarouselContext.Provider value={carouselContext}>\n <BaseBox\n ref={ref as never}\n {...metaAttribute({ name: MetaConstants.Carousel })}\n // stop autoplaying when any elements in carousel is in focus\n onFocus={(e: React.FocusEvent) => {\n if (!e.currentTarget.contains(e.relatedTarget)) {\n setShouldPauseAutoplay(true);\n }\n }}\n onBlur={(e: React.FocusEvent) => {\n if (!e.currentTarget.contains(e.relatedTarget)) {\n setShouldPauseAutoplay(false);\n }\n }}\n // stop autplay when user hover overs the carousel\n onMouseEnter={() => {\n setShouldPauseAutoplay(true);\n }}\n onMouseLeave={() => {\n setShouldPauseAutoplay(false);\n }}\n onTouchStart={() => {\n setShouldPauseAutoplay(true);\n }}\n onTouchEnd={() => {\n setShouldPauseAutoplay(false);\n }}\n display=\"flex\"\n alignItems=\"center\"\n flexDirection=\"column\"\n height={height}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <BaseBox\n width=\"100%\"\n position=\"relative\"\n display=\"flex\"\n alignItems=\"center\"\n gap=\"spacing.4\"\n flexDirection=\"row\"\n height=\"100%\"\n >\n {shouldShowPrevButton && shouldNavButtonsFloat ? (\n <BaseBox zIndex={2} position=\"absolute\" left=\"spacing.11\">\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={goToPreviousSlide}\n />\n </BaseBox>\n ) : null}\n {isNavButtonsOnSide ? (\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={goToPreviousSlide}\n />\n ) : null}\n <CarouselBody\n idPrefix={carouselId}\n startEndMargin={startEndMargin}\n totalSlides={totalNumberOfSlides}\n shouldAddStartEndSpacing={shouldAddStartEndSpacing}\n scrollOverlayColor={scrollOverlayColor}\n isScrollAtStart={isScrollAtStart}\n isScrollAtEnd={isScrollAtEnd}\n ref={containerRef}\n carouselItemAlignment={carouselItemAlignment}\n accessibilityLabel={accessibilityLabel}\n snapAlign={snapAlign}\n gap={gap}\n >\n {children}\n </CarouselBody>\n {shouldShowNextButton && shouldNavButtonsFloat ? (\n <BaseBox zIndex={2} position=\"absolute\" right=\"spacing.11\">\n <NavigationButton\n onClick={goToNextSlide}\n type=\"next\"\n variant={navigationButtonVariant}\n />\n </BaseBox>\n ) : null}\n {isNavButtonsOnSide ? (\n <NavigationButton\n onClick={goToNextSlide}\n type=\"next\"\n variant={navigationButtonVariant}\n />\n ) : null}\n </BaseBox>\n <Controls\n totalSlides={numberOfIndicators}\n activeIndicator={activeIndicator}\n showIndicators={showIndicators}\n navigationButtonPosition={navigationButtonPosition}\n onIndicatorButtonClick={goToSlideIndex}\n onNextButtonClick={goToNextSlide}\n onPreviousButtonClick={goToPreviousSlide}\n indicatorVariant={indicatorVariant}\n navigationButtonVariant={navigationButtonVariant}\n showNavigationButtons={showNavigationButtons}\n />\n </BaseBox>\n </CarouselContext.Provider>\n );\n};\n\nconst Carousel = React.forwardRef(_Carousel);\n\nexport { Carousel };\n"],"names":["Controls","_ref","showIndicators","navigationButtonPosition","activeIndicator","totalSlides","onIndicatorButtonClick","onNextButtonClick","onPreviousButtonClick","indicatorVariant","navigationButtonVariant","showNavigationButtons","_jsxs","Box","marginTop","display","alignItems","gap","children","_jsx","NavigationButton","type","variant","onClick","Indicators","activeIndex","totalItems","_Fragment","CarouselContainer","styled","BaseBox","withConfig","displayName","componentId","_ref2","theme","showOverlay","scrollOverlayColor","isScrollAtStart","isScrollAtEnd","gradientStop1","getIn","colors","gradientStop2","overlayCommonStyle","content","position","top","width","height","transitionDuration","castWebType","makeMotionTime","motion","duration","gentle","transitionTimingFunction","easing","standard","transitionProperty","_objectSpread","overflowX","flexWrap","scrollSnapType","scrollSnapPointsY","msOverflowStyle","scrollbarWidth","webkitOverflowScrolling","msScrollSnapType","scrollSnapPointsX","msScrollSnapPointsX","background","concat","left","opacity","pointerEvents","right","CarouselBody","React","forwardRef","_ref3","ref","shouldAddStartEndSpacing","idPrefix","carouselItemAlignment","accessibilityLabel","startEndMargin","snapAlign","tabIndex","Boolean","base","m","makeAccessible","role","roleDescription","label","Children","map","child","index","shouldHaveStartSpacing","shouldHaveEndSpacing","carouselItemNode","cloneElement","id","minWidth","_Carousel","_ref4","autoPlay","_ref4$visibleItems","visibleItems","_ref4$showIndicators","_ref4$navigationButto","_ref4$shouldAddStartE","carouselItemWidth","onChange","_ref4$indicatorVarian","_ref4$navigationButto2","_ref4$carouselItemAli","defaultActiveSlide","activeSlideProp","activeSlide","_ref4$showNavigationB","showNavigationButtonProp","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","platform","_React$useState","useState","_React$useState2","_slicedToArray","setActiveIndicator","_useControllableState","useControllableState","defaultValue","value","_useControllableState2","setActiveSlide","_React$useState3","_React$useState4","shouldPauseAutoplay","setShouldPauseAutoplay","_React$useState5","_React$useState6","setStartEndMargin","containerRef","useRef","isMobile","useId","carouselId","useVerifyAllowedChildren","componentName","allowedComponents","componentIds","CarouselItem","_React$useState7","_React$useState8","setScrollStart","_React$useState9","_React$useState10","setScrollEnd","isResponsive","_visibleItems","isNavButtonsOnSide","shouldNavButtonsFloat","totalNumberOfSlides","count","numberOfIndicators","Math","ceil","shouldShowPrevButton","shouldShowNextButton","useIsomorphicLayoutEffect","_carouselItem$getBoun","_containerRef$current","current","carouselItemId","getCarouselItemId","carouselItem","querySelector","carouselItemLeft","getBoundingClientRect","carouselContainerLeft","scrollToSlide","slideIndex","_containerRef$current2","shouldAnimate","arguments","length","undefined","scrollLeft","scroll","behavior","goToSlideIndex","goToNextSlide","container","scrollWidth","offsetWidth","goToPreviousSlide","useEffect","carouselContainer","handleScroll","throttle","addEventListener","removeEventListener","debounce","carouselBB","xOffset","pointX","pointY","element","document","elementFromPoint","closest","Number","getAttribute","goTo","useInterval","delay","CAROUSEL_AUTOPLAY_INTERVAL","enable","useDidUpdate","carouselContext","useMemo","carouselContainerRef","CarouselContext","Provider","metaAttribute","name","MetaConstants","Carousel","onFocus","e","currentTarget","contains","relatedTarget","onBlur","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","flexDirection","getStyledProps","makeAnalyticsAttribute","zIndex"],"mappings":"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"}
1
+ {"version":3,"file":"Carousel.web.js","sources":["../../../../../../src/components/Carousel/Carousel.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable consistent-return */\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable react/jsx-no-useless-fragment */\nimport type { CSSObject } from 'styled-components';\nimport styled from 'styled-components';\nimport React from 'react';\nimport { Indicators } from './Indicators/Indicators';\nimport { NavigationButton } from './NavigationButton';\nimport type { CarouselProps } from './types';\nimport type { CarouselContextProps } from './CarouselContext';\nimport { CarouselContext } from './CarouselContext';\nimport { getCarouselItemId } from './utils';\nimport {\n CAROUSEL_AUTOPLAY_INTERVAL,\n componentIds,\n CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET,\n} from './constants';\nimport getIn from '~utils/lodashButBetter/get';\nimport throttle from '~utils/lodashButBetter/throttle';\nimport debounce from '~utils/lodashButBetter/debounce';\nimport { Box } from '~components/Box';\nimport BaseBox from '~components/Box/BaseBox';\nimport { castWebType, makeMotionTime, useInterval } from '~utils';\nimport { useId } from '~utils/useId';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useVerifyAllowedChildren } from '~utils/useVerifyAllowedChildren/useVerifyAllowedChildren';\nimport { useTheme } from '~components/BladeProvider';\nimport { getStyledProps } from '~components/Box/styledProps';\nimport { useControllableState } from '~utils/useControllable';\nimport { useIsomorphicLayoutEffect } from '~utils/useIsomorphicLayoutEffect';\nimport { useDidUpdate } from '~utils/useDidUpdate';\nimport type { BladeElementRef } from '~utils/types';\nimport { makeAnalyticsAttribute } from '~utils/makeAnalyticsAttribute';\n\ntype ControlsProp = Required<\n Pick<\n CarouselProps,\n 'indicatorVariant' | 'showIndicators' | 'navigationButtonVariant' | 'navigationButtonPosition'\n >\n> & {\n activeIndicator: number;\n totalSlides: number;\n onIndicatorButtonClick: (index: number) => void;\n onNextButtonClick: () => void;\n onPreviousButtonClick: () => void;\n showNavigationButtons: boolean;\n};\n\nconst Controls = ({\n showIndicators,\n navigationButtonPosition,\n activeIndicator,\n totalSlides,\n onIndicatorButtonClick,\n onNextButtonClick,\n onPreviousButtonClick,\n indicatorVariant,\n navigationButtonVariant,\n showNavigationButtons,\n}: ControlsProp): React.ReactElement => {\n if (navigationButtonPosition === 'bottom') {\n return (\n <Box marginTop=\"spacing.7\" display=\"flex\" alignItems=\"center\" gap=\"spacing.4\">\n {showNavigationButtons ? (\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={onPreviousButtonClick}\n />\n ) : null}\n {showIndicators ? (\n <Indicators\n onClick={onIndicatorButtonClick}\n activeIndex={activeIndicator}\n totalItems={totalSlides}\n variant={indicatorVariant}\n />\n ) : null}\n {showNavigationButtons ? (\n <NavigationButton\n onClick={onNextButtonClick}\n type=\"next\"\n variant={navigationButtonVariant}\n />\n ) : null}\n </Box>\n );\n }\n\n if (\n showIndicators &&\n (navigationButtonPosition === 'side' || navigationButtonPosition === 'side-overlap')\n ) {\n return (\n <Box marginTop=\"spacing.7\">\n <Indicators\n onClick={onIndicatorButtonClick}\n activeIndex={activeIndicator}\n totalItems={totalSlides}\n variant={indicatorVariant}\n />\n </Box>\n );\n }\n\n return <></>;\n};\n\nconst CarouselContainer = styled(BaseBox)<{\n showOverlay?: boolean;\n scrollOverlayColor: CarouselProps['scrollOverlayColor'];\n isScrollAtStart: boolean;\n isScrollAtEnd: boolean;\n}>(({ theme, showOverlay, scrollOverlayColor, isScrollAtStart, isScrollAtEnd }) => {\n const gradientStop1: string = getIn(theme.colors, scrollOverlayColor!);\n const gradientStop2 = 'hsla(0, 0%, 100%, 0)';\n\n const overlayCommonStyle: CSSObject = {\n content: \"''\",\n position: 'absolute',\n top: 0,\n width: '100px',\n height: '100%',\n transitionDuration: castWebType(makeMotionTime(theme.motion.duration.gentle)),\n transitionTimingFunction: castWebType(theme.motion.easing.standard),\n transitionProperty: 'opacity',\n };\n\n return {\n width: '100%',\n height: '100%',\n overflowX: 'scroll',\n display: 'flex',\n flexWrap: 'nowrap',\n scrollSnapType: 'x mandatory',\n scrollSnapPointsY: `repeat(100%)`,\n msOverflowStyle: 'none' /* IE and Edge */,\n scrollbarWidth: 'none' /* Firefox */,\n /* Needed to work on iOS Safari */\n webkitOverflowScrolling: 'touch',\n msScrollSnapType: 'mandatory',\n scrollSnapPointsX: 'repeat(100%)',\n msScrollSnapPointsX: 'repeat(100%)',\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n ...(showOverlay && {\n '&::before': {\n ...overlayCommonStyle,\n background: `linear-gradient(to right, ${gradientStop1}, ${gradientStop2})`,\n left: -1,\n opacity: isScrollAtStart ? 0 : 1,\n pointerEvents: 'none',\n },\n '&::after': {\n ...overlayCommonStyle,\n background: `linear-gradient(to left, ${gradientStop1}, ${gradientStop2})`,\n right: -1,\n opacity: isScrollAtEnd ? 0 : 1,\n pointerEvents: 'none',\n },\n }),\n };\n});\n\ntype CarouselBodyProps = {\n children: React.ReactNode;\n totalSlides: number;\n shouldAddStartEndSpacing?: boolean;\n idPrefix: string;\n scrollOverlayColor: CarouselProps['scrollOverlayColor'];\n isScrollAtStart: boolean;\n isScrollAtEnd: boolean;\n carouselItemAlignment: CarouselProps['carouselItemAlignment'];\n accessibilityLabel?: string;\n startEndMargin: number;\n snapAlign?: CarouselProps['snapAlign'];\n gap?: CarouselProps['gap'];\n};\n\nconst CarouselBody = React.forwardRef<HTMLDivElement, CarouselBodyProps>(\n (\n {\n children,\n totalSlides,\n shouldAddStartEndSpacing,\n idPrefix,\n scrollOverlayColor,\n isScrollAtStart,\n isScrollAtEnd,\n carouselItemAlignment,\n accessibilityLabel,\n startEndMargin,\n snapAlign,\n gap,\n },\n ref,\n ) => {\n return (\n <CarouselContainer\n tabIndex={0}\n ref={ref}\n showOverlay={Boolean(scrollOverlayColor)}\n scrollOverlayColor={scrollOverlayColor}\n gap={gap ?? { base: 'spacing.4', m: 'spacing.5' }}\n isScrollAtStart={isScrollAtStart}\n isScrollAtEnd={isScrollAtEnd}\n alignItems={carouselItemAlignment}\n {...makeAccessible({\n role: 'group',\n roleDescription: 'carousel',\n label: accessibilityLabel,\n })}\n >\n {React.Children.map(children, (child, index) => {\n const shouldHaveStartSpacing = shouldAddStartEndSpacing && index === 0;\n const shouldHaveEndSpacing = shouldAddStartEndSpacing && index === totalSlides - 1;\n const carouselItemNode: React.ReactElement = React.cloneElement(\n child as React.ReactElement,\n {\n index,\n id: `${idPrefix}-carousel-item-${index}`,\n shouldHaveStartSpacing,\n shouldHaveEndSpacing,\n snapAlign,\n gap,\n },\n );\n\n // Safari doesn't include the margin in the bounding box calculation\n // Thus have to add an additional box to the end of the carousel to ensure we can scroll past the last item\n // https://stackoverflow.com/questions/75509058/safari-does-not-include-margins-to-the-scroll-width\n if (shouldHaveEndSpacing) {\n return (\n <>\n {carouselItemNode}\n {<BaseBox minWidth={`${startEndMargin}px`} />}\n </>\n );\n }\n return carouselItemNode;\n })}\n </CarouselContainer>\n );\n },\n);\n\nconst _Carousel = (\n {\n autoPlay,\n visibleItems = 1,\n showIndicators = true,\n navigationButtonPosition = 'bottom',\n children,\n shouldAddStartEndSpacing = false,\n carouselItemWidth,\n scrollOverlayColor,\n accessibilityLabel,\n onChange,\n indicatorVariant = 'gray',\n navigationButtonVariant = 'filled',\n carouselItemAlignment = 'start',\n height,\n defaultActiveSlide,\n activeSlide: activeSlideProp,\n showNavigationButtons: showNavigationButtonProp = true,\n snapAlign,\n gap,\n ...rest\n }: CarouselProps,\n ref: React.Ref<BladeElementRef>,\n): React.ReactElement => {\n const { platform } = useTheme();\n const [activeIndicator, setActiveIndicator] = React.useState(0);\n const [activeSlide, setActiveSlide] = useControllableState({\n defaultValue: defaultActiveSlide ?? 0,\n value: activeSlideProp,\n onChange: (value) => {\n onChange?.(value);\n },\n });\n const [shouldPauseAutoplay, setShouldPauseAutoplay] = React.useState(false);\n const [startEndMargin, setStartEndMargin] = React.useState(0);\n const containerRef = React.useRef<HTMLDivElement>(null);\n const isMobile = platform === 'onMobile';\n const id = useId();\n const carouselId = `carousel-${id}`;\n\n useVerifyAllowedChildren({\n componentName: 'Carousel',\n allowedComponents: [componentIds.CarouselItem],\n children,\n });\n\n const [isScrollAtStart, setScrollStart] = React.useState(\n // on mobile we do not want to render the overlay\n isMobile ? true : !shouldAddStartEndSpacing,\n );\n const [isScrollAtEnd, setScrollEnd] = React.useState(isMobile);\n\n const isResponsive = visibleItems === 'autofit';\n let _visibleItems = visibleItems as 1 | 2 | 3;\n if (isMobile) {\n _visibleItems = 1;\n navigationButtonPosition = 'bottom';\n }\n if (isResponsive) {\n _visibleItems = 1;\n }\n\n // A special case where we hide the indicators when the carousel is responsive\n // Because indicators become useless since it's not aparent which carousel item is active\n // and how many carousel items are visible at a time\n if (isResponsive && !shouldAddStartEndSpacing && !isMobile) {\n showIndicators = false;\n }\n const showNavigationButtons = showNavigationButtonProp || !isMobile;\n const isNavigationButtonPositionSideOverlap = navigationButtonPosition === 'side-overlap';\n\n const isNavButtonsOnSide = !isResponsive && navigationButtonPosition === 'side';\n\n const shouldNavButtonsFloat = isResponsive && navigationButtonPosition === 'side';\n const totalNumberOfSlides = React.Children.count(children);\n const numberOfIndicators = Math.ceil(totalNumberOfSlides / _visibleItems);\n\n // hide next/prev button on reaching start/end when carousel is responsive\n // in non-responsive carousel we always show the next/prev buttons to allow looping\n const shouldShowPrevButton = isResponsive ? activeSlide !== 0 : true;\n const shouldShowNextButton = isResponsive ? activeSlide !== totalNumberOfSlides - 1 : true;\n\n // calculate the start/end margin so that we can\n // deduct that margin when scrolling to a carousel item with goToSlideIndex\n useIsomorphicLayoutEffect(() => {\n // Do not calculate if not needed\n if (!isResponsive && !shouldAddStartEndSpacing) return;\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(carouselId, 0);\n const carouselItem = containerRef.current.querySelector(carouselItemId);\n if (!carouselItem) return;\n\n const carouselItemLeft = carouselItem.getBoundingClientRect().left ?? 0;\n const carouselContainerLeft = containerRef.current.getBoundingClientRect().left ?? 0;\n\n setStartEndMargin(carouselItemLeft - carouselContainerLeft);\n }, [carouselId, isResponsive, shouldAddStartEndSpacing]);\n\n const scrollToSlide = (slideIndex: number, shouldAnimate = true) => {\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(carouselId, slideIndex * _visibleItems);\n const carouselItem = containerRef.current.querySelector(carouselItemId);\n if (!carouselItem) return;\n\n const carouselItemLeft =\n carouselItem.getBoundingClientRect().left -\n (containerRef.current.getBoundingClientRect().left ?? 0);\n const left = containerRef.current.scrollLeft + carouselItemLeft;\n\n containerRef.current.scroll({\n left: left - startEndMargin,\n behavior: shouldAnimate ? 'smooth' : 'auto',\n });\n };\n\n const goToSlideIndex = (slideIndex: number) => {\n setActiveSlide(() => slideIndex);\n setActiveIndicator(slideIndex);\n };\n\n const goToNextSlide = () => {\n let slideIndex = activeSlide + 1;\n if (slideIndex >= numberOfIndicators) {\n slideIndex = 0;\n }\n\n // an edge case where if carousel is responsive\n // and shouldHaveStartEndSpacing is set to false\n // there can be a case where numberOfIndicators is set to 10 but\n // visually there is 3 or 4 items, in those cases we want to check if we reached the\n // end of the scroll container if so we wrap around\n if (containerRef.current) {\n const container = containerRef.current;\n const scrollLeft = container.scrollLeft;\n const scrollWidth = container.scrollWidth - container.offsetWidth;\n if (scrollLeft === scrollWidth) {\n slideIndex = 0;\n }\n }\n\n goToSlideIndex(slideIndex);\n };\n\n const goToPreviousSlide = () => {\n let slideIndex = activeSlide - 1;\n if (activeSlide <= 0) {\n slideIndex = numberOfIndicators - 1;\n }\n goToSlideIndex(slideIndex);\n };\n\n // Scroll overlay gradient show/hide based on if scrolled to start or end\n React.useEffect(() => {\n // if shouldAddStartEndSpacing is true, we don't need to hide/show the overlay based on the scroll position\n // because the gap is there so it won't overlap with the card anyway\n if (shouldAddStartEndSpacing) return;\n if (isMobile) return;\n\n const carouselContainer = containerRef.current;\n if (!carouselContainer) return;\n\n const handleScroll = throttle(() => {\n const scrollWidth = carouselContainer?.scrollWidth - carouselContainer.offsetWidth;\n setScrollStart(carouselContainer?.scrollLeft === 0);\n setScrollEnd(carouselContainer?.scrollLeft === scrollWidth);\n }, 500);\n\n carouselContainer.addEventListener('scroll', handleScroll);\n\n return () => {\n carouselContainer?.removeEventListener('scroll', handleScroll);\n };\n }, [isMobile, shouldAddStartEndSpacing]);\n\n // Sync the indicators with scroll\n React.useEffect(() => {\n const carouselContainer = containerRef.current;\n if (!carouselContainer) return;\n\n const handleScroll = debounce(() => {\n // carousel bounding box\n const carouselBB = carouselContainer.getBoundingClientRect();\n // By default we check the far left side of the screen\n let xOffset = 0.1;\n // when the carousel is responsive & has spacing OR when center aligned\n // we want to check the center of the screen\n if ((isResponsive && shouldAddStartEndSpacing) || snapAlign === 'center') {\n xOffset = 0.5;\n }\n\n const pointX = carouselBB.left + carouselBB.width * xOffset;\n const pointY = carouselBB.top + carouselBB.height * 0.5;\n const element = document.elementFromPoint(pointX, pointY);\n const carouselItem = element?.closest('[data-slide-index]');\n if (!carouselItem) {\n return;\n }\n\n const slideIndex = Number(carouselItem?.getAttribute('data-slide-index'));\n const goTo = Math.ceil(slideIndex / _visibleItems);\n setActiveSlide(() => goTo);\n setActiveIndicator(goTo);\n }, 50);\n\n carouselContainer.addEventListener('scroll', handleScroll);\n\n return () => {\n carouselContainer?.removeEventListener('scroll', handleScroll);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [_visibleItems, isMobile, isResponsive, shouldAddStartEndSpacing, snapAlign]);\n\n // auto play\n useInterval(\n () => {\n goToNextSlide();\n },\n {\n delay: CAROUSEL_AUTOPLAY_INTERVAL,\n // only enable if autoplay is true & user's intent isn't to interact with carousel\n enable: autoPlay && !shouldPauseAutoplay,\n },\n );\n\n // set initial active slide on mount\n useIsomorphicLayoutEffect(() => {\n if (!id) return;\n goToSlideIndex(activeSlide);\n scrollToSlide(activeSlide, false);\n }, [id]);\n\n // Scroll the carousel to the active slide\n useDidUpdate(() => {\n scrollToSlide(activeSlide);\n }, [activeSlide]);\n\n const carouselContext = React.useMemo<CarouselContextProps>(() => {\n return {\n isResponsive,\n visibleItems: _visibleItems,\n carouselItemWidth,\n carouselContainerRef: containerRef,\n setActiveIndicator,\n carouselId,\n totalNumberOfSlides,\n activeSlide,\n startEndMargin,\n shouldAddStartEndSpacing,\n };\n }, [\n carouselId,\n startEndMargin,\n isResponsive,\n _visibleItems,\n carouselItemWidth,\n totalNumberOfSlides,\n activeSlide,\n shouldAddStartEndSpacing,\n ]);\n\n return (\n <CarouselContext.Provider value={carouselContext}>\n <BaseBox\n ref={ref as never}\n {...metaAttribute({ name: MetaConstants.Carousel })}\n // stop autoplaying when any elements in carousel is in focus\n onFocus={(e: React.FocusEvent) => {\n if (!e.currentTarget.contains(e.relatedTarget)) {\n setShouldPauseAutoplay(true);\n }\n }}\n onBlur={(e: React.FocusEvent) => {\n if (!e.currentTarget.contains(e.relatedTarget)) {\n setShouldPauseAutoplay(false);\n }\n }}\n // stop autplay when user hover overs the carousel\n onMouseEnter={() => {\n setShouldPauseAutoplay(true);\n }}\n onMouseLeave={() => {\n setShouldPauseAutoplay(false);\n }}\n onTouchStart={() => {\n setShouldPauseAutoplay(true);\n }}\n onTouchEnd={() => {\n setShouldPauseAutoplay(false);\n }}\n display=\"flex\"\n alignItems=\"center\"\n flexDirection=\"column\"\n height={height}\n {...getStyledProps(rest)}\n {...makeAnalyticsAttribute(rest)}\n >\n <BaseBox\n width=\"100%\"\n position=\"relative\"\n display=\"flex\"\n alignItems=\"center\"\n gap=\"spacing.4\"\n flexDirection=\"row\"\n height=\"100%\"\n >\n {shouldShowPrevButton &&\n (shouldNavButtonsFloat || isNavigationButtonPositionSideOverlap) ? (\n <BaseBox\n zIndex={2}\n position=\"absolute\"\n left={\n isNavigationButtonPositionSideOverlap\n ? CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET\n : 'spacing.11'\n }\n >\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={goToPreviousSlide}\n />\n </BaseBox>\n ) : null}\n {isNavButtonsOnSide ? (\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={goToPreviousSlide}\n />\n ) : null}\n <CarouselBody\n idPrefix={carouselId}\n startEndMargin={startEndMargin}\n totalSlides={totalNumberOfSlides}\n shouldAddStartEndSpacing={shouldAddStartEndSpacing}\n scrollOverlayColor={scrollOverlayColor}\n isScrollAtStart={isScrollAtStart}\n isScrollAtEnd={isScrollAtEnd}\n ref={containerRef}\n carouselItemAlignment={carouselItemAlignment}\n accessibilityLabel={accessibilityLabel}\n snapAlign={snapAlign}\n gap={gap}\n >\n {children}\n </CarouselBody>\n {shouldShowNextButton &&\n (shouldNavButtonsFloat || isNavigationButtonPositionSideOverlap) ? (\n <BaseBox\n zIndex={2}\n position=\"absolute\"\n right={\n isNavigationButtonPositionSideOverlap\n ? CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET\n : 'spacing.11'\n }\n >\n <NavigationButton\n onClick={goToNextSlide}\n type=\"next\"\n variant={navigationButtonVariant}\n />\n </BaseBox>\n ) : null}\n {isNavButtonsOnSide ? (\n <NavigationButton\n onClick={goToNextSlide}\n type=\"next\"\n variant={navigationButtonVariant}\n />\n ) : null}\n </BaseBox>\n <Controls\n totalSlides={numberOfIndicators}\n activeIndicator={activeIndicator}\n showIndicators={showIndicators}\n navigationButtonPosition={navigationButtonPosition}\n onIndicatorButtonClick={goToSlideIndex}\n onNextButtonClick={goToNextSlide}\n onPreviousButtonClick={goToPreviousSlide}\n indicatorVariant={indicatorVariant}\n navigationButtonVariant={navigationButtonVariant}\n showNavigationButtons={showNavigationButtons}\n />\n </BaseBox>\n </CarouselContext.Provider>\n );\n};\n\nconst Carousel = React.forwardRef(_Carousel);\n\nexport { Carousel };\n"],"names":["Controls","_ref","showIndicators","navigationButtonPosition","activeIndicator","totalSlides","onIndicatorButtonClick","onNextButtonClick","onPreviousButtonClick","indicatorVariant","navigationButtonVariant","showNavigationButtons","_jsxs","Box","marginTop","display","alignItems","gap","children","_jsx","NavigationButton","type","variant","onClick","Indicators","activeIndex","totalItems","_Fragment","CarouselContainer","styled","BaseBox","withConfig","displayName","componentId","_ref2","theme","showOverlay","scrollOverlayColor","isScrollAtStart","isScrollAtEnd","gradientStop1","getIn","colors","gradientStop2","overlayCommonStyle","content","position","top","width","height","transitionDuration","castWebType","makeMotionTime","motion","duration","gentle","transitionTimingFunction","easing","standard","transitionProperty","_objectSpread","overflowX","flexWrap","scrollSnapType","scrollSnapPointsY","msOverflowStyle","scrollbarWidth","webkitOverflowScrolling","msScrollSnapType","scrollSnapPointsX","msScrollSnapPointsX","background","concat","left","opacity","pointerEvents","right","CarouselBody","React","forwardRef","_ref3","ref","shouldAddStartEndSpacing","idPrefix","carouselItemAlignment","accessibilityLabel","startEndMargin","snapAlign","tabIndex","Boolean","base","m","makeAccessible","role","roleDescription","label","Children","map","child","index","shouldHaveStartSpacing","shouldHaveEndSpacing","carouselItemNode","cloneElement","id","minWidth","_Carousel","_ref4","autoPlay","_ref4$visibleItems","visibleItems","_ref4$showIndicators","_ref4$navigationButto","_ref4$shouldAddStartE","carouselItemWidth","onChange","_ref4$indicatorVarian","_ref4$navigationButto2","_ref4$carouselItemAli","defaultActiveSlide","activeSlideProp","activeSlide","_ref4$showNavigationB","showNavigationButtonProp","rest","_objectWithoutProperties","_excluded","_useTheme","useTheme","platform","_React$useState","useState","_React$useState2","_slicedToArray","setActiveIndicator","_useControllableState","useControllableState","defaultValue","value","_useControllableState2","setActiveSlide","_React$useState3","_React$useState4","shouldPauseAutoplay","setShouldPauseAutoplay","_React$useState5","_React$useState6","setStartEndMargin","containerRef","useRef","isMobile","useId","carouselId","useVerifyAllowedChildren","componentName","allowedComponents","componentIds","CarouselItem","_React$useState7","_React$useState8","setScrollStart","_React$useState9","_React$useState10","setScrollEnd","isResponsive","_visibleItems","isNavigationButtonPositionSideOverlap","isNavButtonsOnSide","shouldNavButtonsFloat","totalNumberOfSlides","count","numberOfIndicators","Math","ceil","shouldShowPrevButton","shouldShowNextButton","useIsomorphicLayoutEffect","_carouselItem$getBoun","_containerRef$current","current","carouselItemId","getCarouselItemId","carouselItem","querySelector","carouselItemLeft","getBoundingClientRect","carouselContainerLeft","scrollToSlide","slideIndex","_containerRef$current2","shouldAnimate","arguments","length","undefined","scrollLeft","scroll","behavior","goToSlideIndex","goToNextSlide","container","scrollWidth","offsetWidth","goToPreviousSlide","useEffect","carouselContainer","handleScroll","throttle","addEventListener","removeEventListener","debounce","carouselBB","xOffset","pointX","pointY","element","document","elementFromPoint","closest","Number","getAttribute","goTo","useInterval","delay","CAROUSEL_AUTOPLAY_INTERVAL","enable","useDidUpdate","carouselContext","useMemo","carouselContainerRef","CarouselContext","Provider","metaAttribute","name","MetaConstants","Carousel","onFocus","e","currentTarget","contains","relatedTarget","onBlur","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","flexDirection","getStyledProps","makeAnalyticsAttribute","zIndex","CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET"],"mappings":"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"}
@@ -1,7 +1,12 @@
1
1
  var CAROUSEL_AUTOPLAY_INTERVAL = 6000;
2
+ /*
3
+ Button have width of 34px in desktop , value from left /right should be 34px/2 = 17px.
4
+ In mobile we have 24px width of button , value from left /right should be 24px/2 = 12px. (but currently we don't support overlap in mobile)
5
+ */
6
+ var CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET = '-17px';
2
7
  var componentIds = {
3
8
  CarouselItem: 'CarouselItem'
4
9
  };
5
10
 
6
- export { CAROUSEL_AUTOPLAY_INTERVAL, componentIds };
11
+ export { CAROUSEL_AUTOPLAY_INTERVAL, CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET, componentIds };
7
12
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../../../src/components/Carousel/constants.ts"],"sourcesContent":["const CAROUSEL_AUTOPLAY_INTERVAL = 6000;\n\nconst componentIds = {\n CarouselItem: 'CarouselItem',\n};\n\nexport { CAROUSEL_AUTOPLAY_INTERVAL, componentIds };\n"],"names":["CAROUSEL_AUTOPLAY_INTERVAL","componentIds","CarouselItem"],"mappings":"AAAMA,IAAAA,0BAA0B,GAAG,KAAI;AAEvC,IAAMC,YAAY,GAAG;AACnBC,EAAAA,YAAY,EAAE,cAAA;AAChB;;;;"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../../../src/components/Carousel/constants.ts"],"sourcesContent":["const CAROUSEL_AUTOPLAY_INTERVAL = 6000;\n/*\n Button have width of 34px in desktop , value from left /right should be 34px/2 = 17px.\n In mobile we have 24px width of button , value from left /right should be 24px/2 = 12px. (but currently we don't support overlap in mobile)\n*/\nconst CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET = '-17px';\n\nconst componentIds = {\n CarouselItem: 'CarouselItem',\n};\n\nexport { CAROUSEL_AUTOPLAY_INTERVAL, componentIds, CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET };\n"],"names":["CAROUSEL_AUTOPLAY_INTERVAL","CAROUSEL_SIDE_OVERLAP_VALUE_OFFSET","componentIds","CarouselItem"],"mappings":"AAAMA,IAAAA,0BAA0B,GAAG,KAAI;AACvC;AACA;AACA;AACA;AACMC,IAAAA,kCAAkC,GAAG,QAAO;AAElD,IAAMC,YAAY,GAAG;AACnBC,EAAAA,YAAY,EAAE,cAAA;AAChB;;;;"}
@@ -12552,7 +12552,7 @@ declare const Carousel: React__default.ForwardRefExoticComponent<{
12552
12552
  autoPlay?: boolean | undefined;
12553
12553
  showIndicators?: boolean | undefined;
12554
12554
  scrollOverlayColor?: ("feedback.background.neutral.subtle" | "feedback.background.neutral.intense" | "feedback.background.information.subtle" | "feedback.background.information.intense" | "feedback.background.negative.subtle" | "feedback.background.negative.intense" | "feedback.background.notice.subtle" | "feedback.background.notice.intense" | "feedback.background.positive.subtle" | "feedback.background.positive.intense" | "surface.background.gray.subtle" | "surface.background.gray.moderate" | "surface.background.gray.intense" | "surface.background.primary.subtle" | "surface.background.primary.intense" | "surface.background.sea.subtle" | "surface.background.sea.intense" | "surface.background.cloud.subtle" | "surface.background.cloud.intense" | "interactive.background.neutral.fadedHighlighted" | "interactive.background.neutral.disabled" | "interactive.background.neutral.default" | "interactive.background.neutral.highlighted" | "interactive.background.neutral.faded" | "interactive.background.information.fadedHighlighted" | "interactive.background.information.disabled" | "interactive.background.information.default" | "interactive.background.information.highlighted" | "interactive.background.information.faded" | "interactive.background.negative.fadedHighlighted" | "interactive.background.negative.disabled" | "interactive.background.negative.default" | "interactive.background.negative.highlighted" | "interactive.background.negative.faded" | "interactive.background.notice.fadedHighlighted" | "interactive.background.notice.disabled" | "interactive.background.notice.default" | "interactive.background.notice.highlighted" | "interactive.background.notice.faded" | "interactive.background.positive.fadedHighlighted" | "interactive.background.positive.disabled" | "interactive.background.positive.default" | "interactive.background.positive.highlighted" | "interactive.background.positive.faded" | "interactive.background.staticBlack.fadedHighlighted" | "interactive.background.staticBlack.disabled" | "interactive.background.staticBlack.default" | "interactive.background.staticBlack.highlighted" | "interactive.background.staticBlack.faded" | "interactive.background.staticWhite.fadedHighlighted" | "interactive.background.staticWhite.disabled" | "interactive.background.staticWhite.default" | "interactive.background.staticWhite.highlighted" | "interactive.background.staticWhite.faded" | "interactive.background.gray.fadedHighlighted" | "interactive.background.gray.disabled" | "interactive.background.gray.default" | "interactive.background.gray.highlighted" | "interactive.background.gray.faded" | "interactive.background.primary.fadedHighlighted" | "interactive.background.primary.disabled" | "interactive.background.primary.default" | "interactive.background.primary.highlighted" | "interactive.background.primary.faded" | "overlay.background.subtle" | "overlay.background.moderate") | undefined;
12555
- navigationButtonPosition?: "bottom" | "side" | undefined;
12555
+ navigationButtonPosition?: "bottom" | "side" | "side-overlap" | undefined;
12556
12556
  navigationButtonVariant?: "filled" | "stroked" | undefined;
12557
12557
  indicatorVariant?: "gray" | "blue" | "white" | undefined;
12558
12558
  carouselItemWidth?: Platform.Select<{
@@ -13234,7 +13234,7 @@ type CarouselProps = {
13234
13234
  *
13235
13235
  * @default 'bottom'
13236
13236
  */
13237
- navigationButtonPosition?: 'bottom' | 'side';
13237
+ navigationButtonPosition?: 'bottom' | 'side' | 'side-overlap';
13238
13238
  /**
13239
13239
  * Variant to be used depending on the emphasis you want to give to the navigation buttons
13240
13240
  *
@@ -8021,7 +8021,7 @@ declare const Carousel: react__default.ForwardRefExoticComponent<{
8021
8021
  autoPlay?: boolean | undefined;
8022
8022
  showIndicators?: boolean | undefined;
8023
8023
  scrollOverlayColor?: ("feedback.background.neutral.subtle" | "feedback.background.neutral.intense" | "feedback.background.information.subtle" | "feedback.background.information.intense" | "feedback.background.negative.subtle" | "feedback.background.negative.intense" | "feedback.background.notice.subtle" | "feedback.background.notice.intense" | "feedback.background.positive.subtle" | "feedback.background.positive.intense" | "surface.background.gray.subtle" | "surface.background.gray.moderate" | "surface.background.gray.intense" | "surface.background.primary.subtle" | "surface.background.primary.intense" | "surface.background.sea.subtle" | "surface.background.sea.intense" | "surface.background.cloud.subtle" | "surface.background.cloud.intense" | "interactive.background.neutral.fadedHighlighted" | "interactive.background.neutral.disabled" | "interactive.background.neutral.default" | "interactive.background.neutral.highlighted" | "interactive.background.neutral.faded" | "interactive.background.information.fadedHighlighted" | "interactive.background.information.disabled" | "interactive.background.information.default" | "interactive.background.information.highlighted" | "interactive.background.information.faded" | "interactive.background.negative.fadedHighlighted" | "interactive.background.negative.disabled" | "interactive.background.negative.default" | "interactive.background.negative.highlighted" | "interactive.background.negative.faded" | "interactive.background.notice.fadedHighlighted" | "interactive.background.notice.disabled" | "interactive.background.notice.default" | "interactive.background.notice.highlighted" | "interactive.background.notice.faded" | "interactive.background.positive.fadedHighlighted" | "interactive.background.positive.disabled" | "interactive.background.positive.default" | "interactive.background.positive.highlighted" | "interactive.background.positive.faded" | "interactive.background.staticBlack.fadedHighlighted" | "interactive.background.staticBlack.disabled" | "interactive.background.staticBlack.default" | "interactive.background.staticBlack.highlighted" | "interactive.background.staticBlack.faded" | "interactive.background.staticWhite.fadedHighlighted" | "interactive.background.staticWhite.disabled" | "interactive.background.staticWhite.default" | "interactive.background.staticWhite.highlighted" | "interactive.background.staticWhite.faded" | "interactive.background.gray.fadedHighlighted" | "interactive.background.gray.disabled" | "interactive.background.gray.default" | "interactive.background.gray.highlighted" | "interactive.background.gray.faded" | "interactive.background.primary.fadedHighlighted" | "interactive.background.primary.disabled" | "interactive.background.primary.default" | "interactive.background.primary.highlighted" | "interactive.background.primary.faded" | "overlay.background.subtle" | "overlay.background.moderate") | undefined;
8024
- navigationButtonPosition?: "bottom" | "side" | undefined;
8024
+ navigationButtonPosition?: "bottom" | "side" | "side-overlap" | undefined;
8025
8025
  navigationButtonVariant?: "filled" | "stroked" | undefined;
8026
8026
  indicatorVariant?: "gray" | "blue" | "white" | undefined;
8027
8027
  carouselItemWidth?: Platform.Select<{
@@ -8491,7 +8491,7 @@ type CarouselProps = {
8491
8491
  *
8492
8492
  * @default 'bottom'
8493
8493
  */
8494
- navigationButtonPosition?: 'bottom' | 'side';
8494
+ navigationButtonPosition?: 'bottom' | 'side' | 'side-overlap';
8495
8495
  /**
8496
8496
  * Variant to be used depending on the emphasis you want to give to the navigation buttons
8497
8497
  *
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@razorpay/blade",
3
3
  "description": "The Design System that powers Razorpay",
4
- "version": "12.46.2",
4
+ "version": "12.47.0",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=18.12.1"