@razorpay/blade 11.30.4 → 11.30.5

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,4 +1,5 @@
1
1
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
2
3
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
4
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
5
  import styled from 'styled-components';
@@ -20,6 +21,7 @@ import '../../utils/metaAttribute/index.js';
20
21
  import { useVerifyAllowedChildren } from '../../utils/useVerifyAllowedChildren/useVerifyAllowedChildren.js';
21
22
  import '../BladeProvider/index.js';
22
23
  import { useFirstRender } from '../../utils/useFirstRender.js';
24
+ import '../Box/styledProps/index.js';
23
25
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
24
26
  import { Box } from '../Box/Box.js';
25
27
  import { NavigationButton } from './NavigationButton/NavigationButton.js';
@@ -32,7 +34,9 @@ import useTheme from '../BladeProvider/useTheme.js';
32
34
  import { useInterval } from '../../utils/useInterval.js';
33
35
  import { metaAttribute } from '../../utils/metaAttribute/metaAttribute.web.js';
34
36
  import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
37
+ import { getStyledProps } from '../Box/styledProps/getStyledProps.js';
35
38
 
39
+ var _excluded = ["autoPlay", "visibleItems", "showIndicators", "navigationButtonPosition", "children", "shouldAddStartEndSpacing", "carouselItemWidth", "scrollOverlayColor", "accessibilityLabel", "onChange", "indicatorVariant", "navigationButtonVariant", "carouselItemAlignment", "height"];
36
40
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
37
41
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
38
42
  var Controls = function Controls(_ref) {
@@ -103,6 +107,7 @@ var CarouselContainer = /*#__PURE__*/styled(BaseBox).withConfig({
103
107
  };
104
108
  return _objectSpread({
105
109
  width: '100%',
110
+ height: '100%',
106
111
  overflowX: 'scroll',
107
112
  display: 'flex',
108
113
  flexWrap: 'nowrap',
@@ -224,7 +229,9 @@ var Carousel = function Carousel(_ref4) {
224
229
  _ref4$navigationButto2 = _ref4.navigationButtonVariant,
225
230
  navigationButtonVariant = _ref4$navigationButto2 === void 0 ? 'filled' : _ref4$navigationButto2,
226
231
  _ref4$carouselItemAli = _ref4.carouselItemAlignment,
227
- carouselItemAlignment = _ref4$carouselItemAli === void 0 ? 'start' : _ref4$carouselItemAli;
232
+ carouselItemAlignment = _ref4$carouselItemAli === void 0 ? 'start' : _ref4$carouselItemAli,
233
+ height = _ref4.height,
234
+ props = _objectWithoutProperties(_ref4, _excluded);
228
235
  var _useTheme = useTheme(),
229
236
  platform = _useTheme.platform;
230
237
  var _React$useState = React__default.useState(0),
@@ -423,7 +430,7 @@ var Carousel = function Carousel(_ref4) {
423
430
  }, activeSlide, [onChange]);
424
431
  return /*#__PURE__*/jsx(CarouselContext.Provider, {
425
432
  value: carouselContext,
426
- children: /*#__PURE__*/jsxs(BaseBox, _objectSpread(_objectSpread({}, metaAttribute({
433
+ children: /*#__PURE__*/jsxs(BaseBox, _objectSpread(_objectSpread(_objectSpread({}, metaAttribute({
427
434
  name: MetaConstants.Carousel
428
435
  })), {}, {
429
436
  // stop autoplaying when any elements in carousel is in focus
@@ -454,6 +461,8 @@ var Carousel = function Carousel(_ref4) {
454
461
  display: "flex",
455
462
  alignItems: "center",
456
463
  flexDirection: "column",
464
+ height: height
465
+ }, getStyledProps(props)), {}, {
457
466
  children: [/*#__PURE__*/jsxs(BaseBox, {
458
467
  width: "100%",
459
468
  position: "relative",
@@ -461,6 +470,7 @@ var Carousel = function Carousel(_ref4) {
461
470
  alignItems: "center",
462
471
  gap: "spacing.4",
463
472
  flexDirection: "row",
473
+ height: "100%",
464
474
  children: [shouldShowPrevButton && shouldNavButtonsFloat ? /*#__PURE__*/jsx(BaseBox, {
465
475
  zIndex: 2,
466
476
  position: "absolute",
@@ -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, usePrevious } 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 { useFirstRender } from '~utils/useFirstRender';\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};\n\nconst Controls = ({\n showIndicators,\n navigationButtonPosition,\n activeIndicator,\n totalSlides,\n onIndicatorButtonClick,\n onNextButtonClick,\n onPreviousButtonClick,\n indicatorVariant,\n navigationButtonVariant,\n}: ControlsProp): React.ReactElement => {\n if (navigationButtonPosition === 'bottom') {\n return (\n <Box marginTop=\"spacing.7\" display=\"flex\" alignItems=\"center\" gap=\"spacing.4\">\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={onPreviousButtonClick}\n />\n {showIndicators ? (\n <Indicators\n onClick={onIndicatorButtonClick}\n activeIndex={activeIndicator}\n totalItems={totalSlides}\n variant={indicatorVariant}\n />\n ) : null}\n <NavigationButton\n onClick={onNextButtonClick}\n type=\"next\"\n variant={navigationButtonVariant}\n />\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.effective),\n transitionProperty: 'opacity',\n };\n\n return {\n width: '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};\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 },\n ref,\n ) => {\n return (\n <CarouselContainer\n tabIndex={0}\n ref={ref}\n showOverlay={Boolean(scrollOverlayColor)}\n scrollOverlayColor={scrollOverlayColor}\n 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 },\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\n/**\n * A custom hook which syncs an effect with a state\n * While ignoring the first render & only running the effect when the state changes\n */\nfunction useSyncUpdateEffect<T>(\n effect: React.EffectCallback,\n stateToSyncWith: T,\n deps: React.DependencyList,\n) {\n const isFirst = useFirstRender();\n const prevState = usePrevious<T>(stateToSyncWith);\n\n React.useEffect(() => {\n if (!isFirst) {\n // if the state is the same as the previous state\n // we don't want to run the effect\n if (prevState === stateToSyncWith) return;\n return effect();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stateToSyncWith, ...deps]);\n}\n\nconst Carousel = ({\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}: CarouselProps): React.ReactElement => {\n const { platform } = useTheme();\n const [activeSlide, setActiveSlide] = React.useState(0);\n const [activeIndicator, setActiveIndicator] = React.useState(0);\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('carousel');\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\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 React.useLayoutEffect(() => {\n // Do not calculate if not needed\n if (!isResponsive && !shouldAddStartEndSpacing) return;\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(id, 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 }, [id, isResponsive, shouldAddStartEndSpacing]);\n\n const goToSlideIndex = (slideIndex: number) => {\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(id, 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: 'smooth',\n });\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\n // we want to check the center of the screen\n if (isResponsive && shouldAddStartEndSpacing) {\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 setActiveIndicator(goTo);\n setActiveSlide(goTo);\n }, 50);\n\n carouselContainer.addEventListener('scroll', handleScroll);\n\n return () => {\n carouselContainer?.removeEventListener('scroll', handleScroll);\n };\n }, [_visibleItems, isMobile, isResponsive, shouldAddStartEndSpacing]);\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 const carouselContext = React.useMemo<CarouselContextProps>(() => {\n return {\n isResponsive,\n visibleItems: _visibleItems,\n carouselItemWidth,\n carouselContainerRef: containerRef,\n setActiveIndicator,\n carouselId: id,\n totalNumberOfSlides,\n activeSlide,\n startEndMargin,\n shouldAddStartEndSpacing,\n };\n }, [\n id,\n startEndMargin,\n isResponsive,\n _visibleItems,\n carouselItemWidth,\n totalNumberOfSlides,\n activeSlide,\n shouldAddStartEndSpacing,\n ]);\n\n useSyncUpdateEffect(\n () => {\n onChange?.(activeSlide);\n },\n activeSlide,\n [onChange],\n );\n\n return (\n <CarouselContext.Provider value={carouselContext}>\n <BaseBox\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 >\n <BaseBox\n width=\"100%\"\n position=\"relative\"\n display=\"flex\"\n alignItems=\"center\"\n gap=\"spacing.4\"\n flexDirection=\"row\"\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={id}\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 >\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 />\n </BaseBox>\n </CarouselContext.Provider>\n );\n};\n\nexport { Carousel };\n"],"names":["Controls","_ref","showIndicators","navigationButtonPosition","activeIndicator","totalSlides","onIndicatorButtonClick","onNextButtonClick","onPreviousButtonClick","indicatorVariant","navigationButtonVariant","_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","effective","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","tabIndex","Boolean","base","m","makeAccessible","role","roleDescription","label","Children","map","child","index","shouldHaveStartSpacing","shouldHaveEndSpacing","carouselItemNode","cloneElement","id","minWidth","useSyncUpdateEffect","effect","stateToSyncWith","deps","isFirst","useFirstRender","prevState","usePrevious","useEffect","_toConsumableArray","Carousel","_ref4","autoPlay","_ref4$visibleItems","visibleItems","_ref4$showIndicators","_ref4$navigationButto","_ref4$shouldAddStartE","carouselItemWidth","onChange","_ref4$indicatorVarian","_ref4$navigationButto2","_ref4$carouselItemAli","_useTheme","useTheme","platform","_React$useState","useState","_React$useState2","_slicedToArray","activeSlide","setActiveSlide","_React$useState3","_React$useState4","setActiveIndicator","_React$useState5","_React$useState6","shouldPauseAutoplay","setShouldPauseAutoplay","_React$useState7","_React$useState8","setStartEndMargin","containerRef","useRef","isMobile","useId","useVerifyAllowedChildren","componentName","allowedComponents","componentIds","CarouselItem","_React$useState9","_React$useState10","setScrollStart","_React$useState11","_React$useState12","setScrollEnd","isResponsive","_visibleItems","isNavButtonsOnSide","shouldNavButtonsFloat","totalNumberOfSlides","count","numberOfIndicators","Math","ceil","shouldShowPrevButton","shouldShowNextButton","useLayoutEffect","_carouselItem$getBoun","_containerRef$current","current","carouselItemId","getCarouselItemId","carouselItem","querySelector","carouselItemLeft","getBoundingClientRect","carouselContainerLeft","goToSlideIndex","slideIndex","_ref5","scrollLeft","scroll","behavior","goToNextSlide","container","scrollWidth","offsetWidth","goToPreviousSlide","carouselContainer","handleScroll","throttle","addEventListener","removeEventListener","debounce","carouselBB","xOffset","pointX","pointY","element","document","elementFromPoint","closest","Number","getAttribute","goTo","useInterval","delay","CAROUSEL_AUTOPLAY_INTERVAL","enable","carouselContext","useMemo","carouselContainerRef","carouselId","CarouselContext","Provider","value","metaAttribute","name","MetaConstants","onFocus","e","currentTarget","contains","relatedTarget","onBlur","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","flexDirection","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 { 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, usePrevious } 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 { useFirstRender } from '~utils/useFirstRender';\nimport { getStyledProps } from '~components/Box/styledProps';\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};\n\nconst Controls = ({\n showIndicators,\n navigationButtonPosition,\n activeIndicator,\n totalSlides,\n onIndicatorButtonClick,\n onNextButtonClick,\n onPreviousButtonClick,\n indicatorVariant,\n navigationButtonVariant,\n}: ControlsProp): React.ReactElement => {\n if (navigationButtonPosition === 'bottom') {\n return (\n <Box marginTop=\"spacing.7\" display=\"flex\" alignItems=\"center\" gap=\"spacing.4\">\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={onPreviousButtonClick}\n />\n {showIndicators ? (\n <Indicators\n onClick={onIndicatorButtonClick}\n activeIndex={activeIndicator}\n totalItems={totalSlides}\n variant={indicatorVariant}\n />\n ) : null}\n <NavigationButton\n onClick={onNextButtonClick}\n type=\"next\"\n variant={navigationButtonVariant}\n />\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.effective),\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};\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 },\n ref,\n ) => {\n return (\n <CarouselContainer\n tabIndex={0}\n ref={ref}\n showOverlay={Boolean(scrollOverlayColor)}\n scrollOverlayColor={scrollOverlayColor}\n 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 },\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\n/**\n * A custom hook which syncs an effect with a state\n * While ignoring the first render & only running the effect when the state changes\n */\nfunction useSyncUpdateEffect<T>(\n effect: React.EffectCallback,\n stateToSyncWith: T,\n deps: React.DependencyList,\n) {\n const isFirst = useFirstRender();\n const prevState = usePrevious<T>(stateToSyncWith);\n\n React.useEffect(() => {\n if (!isFirst) {\n // if the state is the same as the previous state\n // we don't want to run the effect\n if (prevState === stateToSyncWith) return;\n return effect();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stateToSyncWith, ...deps]);\n}\n\nconst Carousel = ({\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 ...props\n}: CarouselProps): React.ReactElement => {\n const { platform } = useTheme();\n const [activeSlide, setActiveSlide] = React.useState(0);\n const [activeIndicator, setActiveIndicator] = React.useState(0);\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('carousel');\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\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 React.useLayoutEffect(() => {\n // Do not calculate if not needed\n if (!isResponsive && !shouldAddStartEndSpacing) return;\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(id, 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 }, [id, isResponsive, shouldAddStartEndSpacing]);\n\n const goToSlideIndex = (slideIndex: number) => {\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(id, 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: 'smooth',\n });\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\n // we want to check the center of the screen\n if (isResponsive && shouldAddStartEndSpacing) {\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 setActiveIndicator(goTo);\n setActiveSlide(goTo);\n }, 50);\n\n carouselContainer.addEventListener('scroll', handleScroll);\n\n return () => {\n carouselContainer?.removeEventListener('scroll', handleScroll);\n };\n }, [_visibleItems, isMobile, isResponsive, shouldAddStartEndSpacing]);\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 const carouselContext = React.useMemo<CarouselContextProps>(() => {\n return {\n isResponsive,\n visibleItems: _visibleItems,\n carouselItemWidth,\n carouselContainerRef: containerRef,\n setActiveIndicator,\n carouselId: id,\n totalNumberOfSlides,\n activeSlide,\n startEndMargin,\n shouldAddStartEndSpacing,\n };\n }, [\n id,\n startEndMargin,\n isResponsive,\n _visibleItems,\n carouselItemWidth,\n totalNumberOfSlides,\n activeSlide,\n shouldAddStartEndSpacing,\n ]);\n\n useSyncUpdateEffect(\n () => {\n onChange?.(activeSlide);\n },\n activeSlide,\n [onChange],\n );\n\n return (\n <CarouselContext.Provider value={carouselContext}>\n <BaseBox\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(props)}\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={id}\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 >\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 />\n </BaseBox>\n </CarouselContext.Provider>\n );\n};\n\nexport { Carousel };\n"],"names":["Controls","_ref","showIndicators","navigationButtonPosition","activeIndicator","totalSlides","onIndicatorButtonClick","onNextButtonClick","onPreviousButtonClick","indicatorVariant","navigationButtonVariant","_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","effective","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","tabIndex","Boolean","base","m","makeAccessible","role","roleDescription","label","Children","map","child","index","shouldHaveStartSpacing","shouldHaveEndSpacing","carouselItemNode","cloneElement","id","minWidth","useSyncUpdateEffect","effect","stateToSyncWith","deps","isFirst","useFirstRender","prevState","usePrevious","useEffect","_toConsumableArray","Carousel","_ref4","autoPlay","_ref4$visibleItems","visibleItems","_ref4$showIndicators","_ref4$navigationButto","_ref4$shouldAddStartE","carouselItemWidth","onChange","_ref4$indicatorVarian","_ref4$navigationButto2","_ref4$carouselItemAli","props","_objectWithoutProperties","_excluded","_useTheme","useTheme","platform","_React$useState","useState","_React$useState2","_slicedToArray","activeSlide","setActiveSlide","_React$useState3","_React$useState4","setActiveIndicator","_React$useState5","_React$useState6","shouldPauseAutoplay","setShouldPauseAutoplay","_React$useState7","_React$useState8","setStartEndMargin","containerRef","useRef","isMobile","useId","useVerifyAllowedChildren","componentName","allowedComponents","componentIds","CarouselItem","_React$useState9","_React$useState10","setScrollStart","_React$useState11","_React$useState12","setScrollEnd","isResponsive","_visibleItems","isNavButtonsOnSide","shouldNavButtonsFloat","totalNumberOfSlides","count","numberOfIndicators","Math","ceil","shouldShowPrevButton","shouldShowNextButton","useLayoutEffect","_carouselItem$getBoun","_containerRef$current","current","carouselItemId","getCarouselItemId","carouselItem","querySelector","carouselItemLeft","getBoundingClientRect","carouselContainerLeft","goToSlideIndex","slideIndex","_ref5","scrollLeft","scroll","behavior","goToNextSlide","container","scrollWidth","offsetWidth","goToPreviousSlide","carouselContainer","handleScroll","throttle","addEventListener","removeEventListener","debounce","carouselBB","xOffset","pointX","pointY","element","document","elementFromPoint","closest","Number","getAttribute","goTo","useInterval","delay","CAROUSEL_AUTOPLAY_INTERVAL","enable","carouselContext","useMemo","carouselContainerRef","carouselId","CarouselContext","Provider","value","metaAttribute","name","MetaConstants","onFocus","e","currentTarget","contains","relatedTarget","onBlur","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","flexDirection","getStyledProps","zIndex"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
2
3
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
4
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
5
  import styled from 'styled-components';
@@ -20,6 +21,7 @@ import '../../utils/metaAttribute/index.js';
20
21
  import { useVerifyAllowedChildren } from '../../utils/useVerifyAllowedChildren/useVerifyAllowedChildren.js';
21
22
  import '../BladeProvider/index.js';
22
23
  import { useFirstRender } from '../../utils/useFirstRender.js';
24
+ import '../Box/styledProps/index.js';
23
25
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
24
26
  import { Box } from '../Box/Box.js';
25
27
  import { NavigationButton } from './NavigationButton/NavigationButton.js';
@@ -32,7 +34,9 @@ import useTheme from '../BladeProvider/useTheme.js';
32
34
  import { useInterval } from '../../utils/useInterval.js';
33
35
  import { metaAttribute } from '../../utils/metaAttribute/metaAttribute.web.js';
34
36
  import { MetaConstants } from '../../utils/metaAttribute/metaConstants.js';
37
+ import { getStyledProps } from '../Box/styledProps/getStyledProps.js';
35
38
 
39
+ var _excluded = ["autoPlay", "visibleItems", "showIndicators", "navigationButtonPosition", "children", "shouldAddStartEndSpacing", "carouselItemWidth", "scrollOverlayColor", "accessibilityLabel", "onChange", "indicatorVariant", "navigationButtonVariant", "carouselItemAlignment", "height"];
36
40
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
37
41
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
38
42
  var Controls = function Controls(_ref) {
@@ -103,6 +107,7 @@ var CarouselContainer = /*#__PURE__*/styled(BaseBox).withConfig({
103
107
  };
104
108
  return _objectSpread({
105
109
  width: '100%',
110
+ height: '100%',
106
111
  overflowX: 'scroll',
107
112
  display: 'flex',
108
113
  flexWrap: 'nowrap',
@@ -224,7 +229,9 @@ var Carousel = function Carousel(_ref4) {
224
229
  _ref4$navigationButto2 = _ref4.navigationButtonVariant,
225
230
  navigationButtonVariant = _ref4$navigationButto2 === void 0 ? 'filled' : _ref4$navigationButto2,
226
231
  _ref4$carouselItemAli = _ref4.carouselItemAlignment,
227
- carouselItemAlignment = _ref4$carouselItemAli === void 0 ? 'start' : _ref4$carouselItemAli;
232
+ carouselItemAlignment = _ref4$carouselItemAli === void 0 ? 'start' : _ref4$carouselItemAli,
233
+ height = _ref4.height,
234
+ props = _objectWithoutProperties(_ref4, _excluded);
228
235
  var _useTheme = useTheme(),
229
236
  platform = _useTheme.platform;
230
237
  var _React$useState = React__default.useState(0),
@@ -423,7 +430,7 @@ var Carousel = function Carousel(_ref4) {
423
430
  }, activeSlide, [onChange]);
424
431
  return /*#__PURE__*/jsx(CarouselContext.Provider, {
425
432
  value: carouselContext,
426
- children: /*#__PURE__*/jsxs(BaseBox, _objectSpread(_objectSpread({}, metaAttribute({
433
+ children: /*#__PURE__*/jsxs(BaseBox, _objectSpread(_objectSpread(_objectSpread({}, metaAttribute({
427
434
  name: MetaConstants.Carousel
428
435
  })), {}, {
429
436
  // stop autoplaying when any elements in carousel is in focus
@@ -454,6 +461,8 @@ var Carousel = function Carousel(_ref4) {
454
461
  display: "flex",
455
462
  alignItems: "center",
456
463
  flexDirection: "column",
464
+ height: height
465
+ }, getStyledProps(props)), {}, {
457
466
  children: [/*#__PURE__*/jsxs(BaseBox, {
458
467
  width: "100%",
459
468
  position: "relative",
@@ -461,6 +470,7 @@ var Carousel = function Carousel(_ref4) {
461
470
  alignItems: "center",
462
471
  gap: "spacing.4",
463
472
  flexDirection: "row",
473
+ height: "100%",
464
474
  children: [shouldShowPrevButton && shouldNavButtonsFloat ? /*#__PURE__*/jsx(BaseBox, {
465
475
  zIndex: 2,
466
476
  position: "absolute",
@@ -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, usePrevious } 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 { useFirstRender } from '~utils/useFirstRender';\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};\n\nconst Controls = ({\n showIndicators,\n navigationButtonPosition,\n activeIndicator,\n totalSlides,\n onIndicatorButtonClick,\n onNextButtonClick,\n onPreviousButtonClick,\n indicatorVariant,\n navigationButtonVariant,\n}: ControlsProp): React.ReactElement => {\n if (navigationButtonPosition === 'bottom') {\n return (\n <Box marginTop=\"spacing.7\" display=\"flex\" alignItems=\"center\" gap=\"spacing.4\">\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={onPreviousButtonClick}\n />\n {showIndicators ? (\n <Indicators\n onClick={onIndicatorButtonClick}\n activeIndex={activeIndicator}\n totalItems={totalSlides}\n variant={indicatorVariant}\n />\n ) : null}\n <NavigationButton\n onClick={onNextButtonClick}\n type=\"next\"\n variant={navigationButtonVariant}\n />\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.effective),\n transitionProperty: 'opacity',\n };\n\n return {\n width: '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};\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 },\n ref,\n ) => {\n return (\n <CarouselContainer\n tabIndex={0}\n ref={ref}\n showOverlay={Boolean(scrollOverlayColor)}\n scrollOverlayColor={scrollOverlayColor}\n 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 },\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\n/**\n * A custom hook which syncs an effect with a state\n * While ignoring the first render & only running the effect when the state changes\n */\nfunction useSyncUpdateEffect<T>(\n effect: React.EffectCallback,\n stateToSyncWith: T,\n deps: React.DependencyList,\n) {\n const isFirst = useFirstRender();\n const prevState = usePrevious<T>(stateToSyncWith);\n\n React.useEffect(() => {\n if (!isFirst) {\n // if the state is the same as the previous state\n // we don't want to run the effect\n if (prevState === stateToSyncWith) return;\n return effect();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stateToSyncWith, ...deps]);\n}\n\nconst Carousel = ({\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}: CarouselProps): React.ReactElement => {\n const { platform } = useTheme();\n const [activeSlide, setActiveSlide] = React.useState(0);\n const [activeIndicator, setActiveIndicator] = React.useState(0);\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('carousel');\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\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 React.useLayoutEffect(() => {\n // Do not calculate if not needed\n if (!isResponsive && !shouldAddStartEndSpacing) return;\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(id, 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 }, [id, isResponsive, shouldAddStartEndSpacing]);\n\n const goToSlideIndex = (slideIndex: number) => {\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(id, 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: 'smooth',\n });\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\n // we want to check the center of the screen\n if (isResponsive && shouldAddStartEndSpacing) {\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 setActiveIndicator(goTo);\n setActiveSlide(goTo);\n }, 50);\n\n carouselContainer.addEventListener('scroll', handleScroll);\n\n return () => {\n carouselContainer?.removeEventListener('scroll', handleScroll);\n };\n }, [_visibleItems, isMobile, isResponsive, shouldAddStartEndSpacing]);\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 const carouselContext = React.useMemo<CarouselContextProps>(() => {\n return {\n isResponsive,\n visibleItems: _visibleItems,\n carouselItemWidth,\n carouselContainerRef: containerRef,\n setActiveIndicator,\n carouselId: id,\n totalNumberOfSlides,\n activeSlide,\n startEndMargin,\n shouldAddStartEndSpacing,\n };\n }, [\n id,\n startEndMargin,\n isResponsive,\n _visibleItems,\n carouselItemWidth,\n totalNumberOfSlides,\n activeSlide,\n shouldAddStartEndSpacing,\n ]);\n\n useSyncUpdateEffect(\n () => {\n onChange?.(activeSlide);\n },\n activeSlide,\n [onChange],\n );\n\n return (\n <CarouselContext.Provider value={carouselContext}>\n <BaseBox\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 >\n <BaseBox\n width=\"100%\"\n position=\"relative\"\n display=\"flex\"\n alignItems=\"center\"\n gap=\"spacing.4\"\n flexDirection=\"row\"\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={id}\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 >\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 />\n </BaseBox>\n </CarouselContext.Provider>\n );\n};\n\nexport { Carousel };\n"],"names":["Controls","_ref","showIndicators","navigationButtonPosition","activeIndicator","totalSlides","onIndicatorButtonClick","onNextButtonClick","onPreviousButtonClick","indicatorVariant","navigationButtonVariant","_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","effective","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","tabIndex","Boolean","base","m","makeAccessible","role","roleDescription","label","Children","map","child","index","shouldHaveStartSpacing","shouldHaveEndSpacing","carouselItemNode","cloneElement","id","minWidth","useSyncUpdateEffect","effect","stateToSyncWith","deps","isFirst","useFirstRender","prevState","usePrevious","useEffect","_toConsumableArray","Carousel","_ref4","autoPlay","_ref4$visibleItems","visibleItems","_ref4$showIndicators","_ref4$navigationButto","_ref4$shouldAddStartE","carouselItemWidth","onChange","_ref4$indicatorVarian","_ref4$navigationButto2","_ref4$carouselItemAli","_useTheme","useTheme","platform","_React$useState","useState","_React$useState2","_slicedToArray","activeSlide","setActiveSlide","_React$useState3","_React$useState4","setActiveIndicator","_React$useState5","_React$useState6","shouldPauseAutoplay","setShouldPauseAutoplay","_React$useState7","_React$useState8","setStartEndMargin","containerRef","useRef","isMobile","useId","useVerifyAllowedChildren","componentName","allowedComponents","componentIds","CarouselItem","_React$useState9","_React$useState10","setScrollStart","_React$useState11","_React$useState12","setScrollEnd","isResponsive","_visibleItems","isNavButtonsOnSide","shouldNavButtonsFloat","totalNumberOfSlides","count","numberOfIndicators","Math","ceil","shouldShowPrevButton","shouldShowNextButton","useLayoutEffect","_carouselItem$getBoun","_containerRef$current","current","carouselItemId","getCarouselItemId","carouselItem","querySelector","carouselItemLeft","getBoundingClientRect","carouselContainerLeft","goToSlideIndex","slideIndex","_ref5","scrollLeft","scroll","behavior","goToNextSlide","container","scrollWidth","offsetWidth","goToPreviousSlide","carouselContainer","handleScroll","throttle","addEventListener","removeEventListener","debounce","carouselBB","xOffset","pointX","pointY","element","document","elementFromPoint","closest","Number","getAttribute","goTo","useInterval","delay","CAROUSEL_AUTOPLAY_INTERVAL","enable","carouselContext","useMemo","carouselContainerRef","carouselId","CarouselContext","Provider","value","metaAttribute","name","MetaConstants","onFocus","e","currentTarget","contains","relatedTarget","onBlur","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","flexDirection","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 { 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, usePrevious } 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 { useFirstRender } from '~utils/useFirstRender';\nimport { getStyledProps } from '~components/Box/styledProps';\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};\n\nconst Controls = ({\n showIndicators,\n navigationButtonPosition,\n activeIndicator,\n totalSlides,\n onIndicatorButtonClick,\n onNextButtonClick,\n onPreviousButtonClick,\n indicatorVariant,\n navigationButtonVariant,\n}: ControlsProp): React.ReactElement => {\n if (navigationButtonPosition === 'bottom') {\n return (\n <Box marginTop=\"spacing.7\" display=\"flex\" alignItems=\"center\" gap=\"spacing.4\">\n <NavigationButton\n type=\"previous\"\n variant={navigationButtonVariant}\n onClick={onPreviousButtonClick}\n />\n {showIndicators ? (\n <Indicators\n onClick={onIndicatorButtonClick}\n activeIndex={activeIndicator}\n totalItems={totalSlides}\n variant={indicatorVariant}\n />\n ) : null}\n <NavigationButton\n onClick={onNextButtonClick}\n type=\"next\"\n variant={navigationButtonVariant}\n />\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.effective),\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};\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 },\n ref,\n ) => {\n return (\n <CarouselContainer\n tabIndex={0}\n ref={ref}\n showOverlay={Boolean(scrollOverlayColor)}\n scrollOverlayColor={scrollOverlayColor}\n 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 },\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\n/**\n * A custom hook which syncs an effect with a state\n * While ignoring the first render & only running the effect when the state changes\n */\nfunction useSyncUpdateEffect<T>(\n effect: React.EffectCallback,\n stateToSyncWith: T,\n deps: React.DependencyList,\n) {\n const isFirst = useFirstRender();\n const prevState = usePrevious<T>(stateToSyncWith);\n\n React.useEffect(() => {\n if (!isFirst) {\n // if the state is the same as the previous state\n // we don't want to run the effect\n if (prevState === stateToSyncWith) return;\n return effect();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stateToSyncWith, ...deps]);\n}\n\nconst Carousel = ({\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 ...props\n}: CarouselProps): React.ReactElement => {\n const { platform } = useTheme();\n const [activeSlide, setActiveSlide] = React.useState(0);\n const [activeIndicator, setActiveIndicator] = React.useState(0);\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('carousel');\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\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 React.useLayoutEffect(() => {\n // Do not calculate if not needed\n if (!isResponsive && !shouldAddStartEndSpacing) return;\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(id, 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 }, [id, isResponsive, shouldAddStartEndSpacing]);\n\n const goToSlideIndex = (slideIndex: number) => {\n if (!containerRef.current) return;\n\n const carouselItemId = getCarouselItemId(id, 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: 'smooth',\n });\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\n // we want to check the center of the screen\n if (isResponsive && shouldAddStartEndSpacing) {\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 setActiveIndicator(goTo);\n setActiveSlide(goTo);\n }, 50);\n\n carouselContainer.addEventListener('scroll', handleScroll);\n\n return () => {\n carouselContainer?.removeEventListener('scroll', handleScroll);\n };\n }, [_visibleItems, isMobile, isResponsive, shouldAddStartEndSpacing]);\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 const carouselContext = React.useMemo<CarouselContextProps>(() => {\n return {\n isResponsive,\n visibleItems: _visibleItems,\n carouselItemWidth,\n carouselContainerRef: containerRef,\n setActiveIndicator,\n carouselId: id,\n totalNumberOfSlides,\n activeSlide,\n startEndMargin,\n shouldAddStartEndSpacing,\n };\n }, [\n id,\n startEndMargin,\n isResponsive,\n _visibleItems,\n carouselItemWidth,\n totalNumberOfSlides,\n activeSlide,\n shouldAddStartEndSpacing,\n ]);\n\n useSyncUpdateEffect(\n () => {\n onChange?.(activeSlide);\n },\n activeSlide,\n [onChange],\n );\n\n return (\n <CarouselContext.Provider value={carouselContext}>\n <BaseBox\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(props)}\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={id}\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 >\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 />\n </BaseBox>\n </CarouselContext.Provider>\n );\n};\n\nexport { Carousel };\n"],"names":["Controls","_ref","showIndicators","navigationButtonPosition","activeIndicator","totalSlides","onIndicatorButtonClick","onNextButtonClick","onPreviousButtonClick","indicatorVariant","navigationButtonVariant","_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","effective","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","tabIndex","Boolean","base","m","makeAccessible","role","roleDescription","label","Children","map","child","index","shouldHaveStartSpacing","shouldHaveEndSpacing","carouselItemNode","cloneElement","id","minWidth","useSyncUpdateEffect","effect","stateToSyncWith","deps","isFirst","useFirstRender","prevState","usePrevious","useEffect","_toConsumableArray","Carousel","_ref4","autoPlay","_ref4$visibleItems","visibleItems","_ref4$showIndicators","_ref4$navigationButto","_ref4$shouldAddStartE","carouselItemWidth","onChange","_ref4$indicatorVarian","_ref4$navigationButto2","_ref4$carouselItemAli","props","_objectWithoutProperties","_excluded","_useTheme","useTheme","platform","_React$useState","useState","_React$useState2","_slicedToArray","activeSlide","setActiveSlide","_React$useState3","_React$useState4","setActiveIndicator","_React$useState5","_React$useState6","shouldPauseAutoplay","setShouldPauseAutoplay","_React$useState7","_React$useState8","setStartEndMargin","containerRef","useRef","isMobile","useId","useVerifyAllowedChildren","componentName","allowedComponents","componentIds","CarouselItem","_React$useState9","_React$useState10","setScrollStart","_React$useState11","_React$useState12","setScrollEnd","isResponsive","_visibleItems","isNavButtonsOnSide","shouldNavButtonsFloat","totalNumberOfSlides","count","numberOfIndicators","Math","ceil","shouldShowPrevButton","shouldShowNextButton","useLayoutEffect","_carouselItem$getBoun","_containerRef$current","current","carouselItemId","getCarouselItemId","carouselItem","querySelector","carouselItemLeft","getBoundingClientRect","carouselContainerLeft","goToSlideIndex","slideIndex","_ref5","scrollLeft","scroll","behavior","goToNextSlide","container","scrollWidth","offsetWidth","goToPreviousSlide","carouselContainer","handleScroll","throttle","addEventListener","removeEventListener","debounce","carouselBB","xOffset","pointX","pointY","element","document","elementFromPoint","closest","Number","getAttribute","goTo","useInterval","delay","CAROUSEL_AUTOPLAY_INTERVAL","enable","carouselContext","useMemo","carouselContainerRef","carouselId","CarouselContext","Provider","value","metaAttribute","name","MetaConstants","onFocus","e","currentTarget","contains","relatedTarget","onBlur","onMouseEnter","onMouseLeave","onTouchStart","onTouchEnd","flexDirection","getStyledProps","zIndex"],"mappings":"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"}
@@ -5153,9 +5153,10 @@ type CarouselProps = {
5153
5153
  * @default undefined
5154
5154
  */
5155
5155
  accessibilityLabel?: string;
5156
- };
5156
+ height?: BoxProps['height'];
5157
+ } & StyledPropsBlade;
5157
5158
 
5158
- declare const Carousel: ({ autoPlay, visibleItems, showIndicators, navigationButtonPosition, children, shouldAddStartEndSpacing, carouselItemWidth, scrollOverlayColor, accessibilityLabel, onChange, indicatorVariant, navigationButtonVariant, carouselItemAlignment, }: CarouselProps) => React__default.ReactElement;
5159
+ declare const Carousel: ({ autoPlay, visibleItems, showIndicators, navigationButtonPosition, children, shouldAddStartEndSpacing, carouselItemWidth, scrollOverlayColor, accessibilityLabel, onChange, indicatorVariant, navigationButtonVariant, carouselItemAlignment, height, ...props }: CarouselProps) => React__default.ReactElement;
5159
5160
 
5160
5161
  type CarouselItemProps = {
5161
5162
  id?: string;
@@ -4289,7 +4289,8 @@ type CarouselProps = {
4289
4289
  * @default undefined
4290
4290
  */
4291
4291
  accessibilityLabel?: string;
4292
- };
4292
+ height?: BoxProps['height'];
4293
+ } & StyledPropsBlade;
4293
4294
 
4294
4295
  declare const Carousel: ({ autoPlay, showIndicators, children, carouselItemWidth, accessibilityLabel, onChange, indicatorVariant, navigationButtonVariant, }: CarouselProps) => React__default.ReactElement;
4295
4296
 
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": "11.30.4",
4
+ "version": "11.30.5",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=18.12.1"