@razorpay/blade 10.5.0 → 10.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18453,6 +18453,7 @@ function _objectSpread$13(target) { for (var i = 1; i < arguments.length; i++) {
18453
18453
  var Indicators = function Indicators(props) {
18454
18454
  var _useCarouselContext = useCarouselContext(),
18455
18455
  carouselId = _useCarouselContext.carouselId,
18456
+ isResponsive = _useCarouselContext.isResponsive,
18456
18457
  visibleItems = _useCarouselContext.visibleItems;
18457
18458
  return /*#__PURE__*/jsx(BaseBox, _objectSpread$13(_objectSpread$13({
18458
18459
  display: "flex",
@@ -18463,7 +18464,6 @@ var Indicators = function Indicators(props) {
18463
18464
  label: 'Slides'
18464
18465
  })), {}, {
18465
18466
  children: new Array(props.totalItems).fill(0).map(function (_, idx) {
18466
- var isResponsive = visibleItems === 'autofit';
18467
18467
  var _visibleItems = visibleItems;
18468
18468
  if (isResponsive) {
18469
18469
  _visibleItems = 1;
@@ -18624,6 +18624,28 @@ var getCarouselItemId = function getCarouselItemId(containerId, index) {
18624
18624
 
18625
18625
  var CAROUSEL_AUTOPLAY_INTERVAL = 6000;
18626
18626
 
18627
+ /**
18628
+ * Hook to run an effect on dependencies change after the component has *mounted*.
18629
+ * Core difference from `useEffect` is this will trigger effects after the very first render.
18630
+ *
18631
+ * @param effectCallback `useEffect` callback
18632
+ * @param dependencies `useEffect` dependencies
18633
+ */
18634
+ var useDidUpdate = function useDidUpdate(effectCallback, dependencies) {
18635
+ var isMounted = useRef(false);
18636
+ useEffect(function () {
18637
+ if (isMounted.current) {
18638
+ // run normally after the very first render / mount
18639
+ return effectCallback();
18640
+ }
18641
+ isMounted.current = true;
18642
+ return undefined;
18643
+
18644
+ // we don't want to rerun every time effectCallback changes
18645
+ // eslint-disable-next-line react-hooks/exhaustive-deps
18646
+ }, dependencies);
18647
+ };
18648
+
18627
18649
  function ownKeys$11(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
18628
18650
  function _objectSpread$10(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$11(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$11(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
18629
18651
  var Controls = function Controls(_ref) {
@@ -18699,7 +18721,6 @@ var CarouselContainer = /*#__PURE__*/styled(BaseBox).withConfig({
18699
18721
  flexWrap: 'nowrap',
18700
18722
  scrollSnapType: 'x mandatory',
18701
18723
  scrollSnapPointsY: "repeat(100%)",
18702
- scrollBehavior: 'smooth',
18703
18724
  msOverflowStyle: 'none' /* IE and Edge */,
18704
18725
  scrollbarWidth: 'none' /* Firefox */,
18705
18726
 
@@ -18920,6 +18941,8 @@ var Carousel = function Carousel(_ref4) {
18920
18941
 
18921
18942
  // Sync the indicators with scroll
18922
18943
  React__default.useEffect(function () {
18944
+ // do not sync indicators on desktop, we are already in sync because we can only use the next/prev buttons
18945
+ if (!isMobile) return;
18923
18946
  var carouselContainer = containerRef.current;
18924
18947
  if (!carouselContainer) return;
18925
18948
  var handleScroll = debounce_1(function () {
@@ -18948,7 +18971,7 @@ var Carousel = function Carousel(_ref4) {
18948
18971
  return function () {
18949
18972
  carouselContainer === null || carouselContainer === void 0 ? void 0 : carouselContainer.removeEventListener('scroll', handleScroll);
18950
18973
  };
18951
- }, [_visibleItems, isResponsive, shouldAddStartEndSpacing]);
18974
+ }, [_visibleItems, isMobile, isResponsive, shouldAddStartEndSpacing]);
18952
18975
 
18953
18976
  // auto play
18954
18977
  useInterval(function () {
@@ -18960,7 +18983,8 @@ var Carousel = function Carousel(_ref4) {
18960
18983
  });
18961
18984
  var carouselContext = React__default.useMemo(function () {
18962
18985
  return {
18963
- visibleItems: visibleItems,
18986
+ isResponsive: isResponsive,
18987
+ visibleItems: _visibleItems,
18964
18988
  carouselItemWidth: carouselItemWidth,
18965
18989
  carouselContainerRef: containerRef,
18966
18990
  setActiveIndicator: setActiveIndicator,
@@ -18970,8 +18994,8 @@ var Carousel = function Carousel(_ref4) {
18970
18994
  startEndMargin: startEndMargin,
18971
18995
  shouldAddStartEndSpacing: shouldAddStartEndSpacing
18972
18996
  };
18973
- }, [id, startEndMargin, visibleItems, carouselItemWidth, totalNumberOfSlides, activeSlide, shouldAddStartEndSpacing]);
18974
- React__default.useEffect(function () {
18997
+ }, [id, startEndMargin, isResponsive, _visibleItems, carouselItemWidth, totalNumberOfSlides, activeSlide, shouldAddStartEndSpacing]);
18998
+ useDidUpdate(function () {
18975
18999
  onChange === null || onChange === void 0 ? void 0 : onChange(activeSlide);
18976
19000
  }, [activeSlide, onChange]);
18977
19001
  return /*#__PURE__*/jsx(CarouselContext.Provider, {
@@ -19074,6 +19098,7 @@ var StyledCarouselItem = /*#__PURE__*/styled(BaseBox).withConfig({
19074
19098
  componentId: "sc-56ppo3-0"
19075
19099
  })(function (_ref) {
19076
19100
  var visibleItems = _ref.visibleItems,
19101
+ isResponsive = _ref.isResponsive,
19077
19102
  shouldAddStartEndSpacing = _ref.shouldAddStartEndSpacing,
19078
19103
  shouldHaveStartSpacing = _ref.shouldHaveStartSpacing,
19079
19104
  shouldHaveEndSpacing = _ref.shouldHaveEndSpacing,
@@ -19083,7 +19108,6 @@ var StyledCarouselItem = /*#__PURE__*/styled(BaseBox).withConfig({
19083
19108
  }),
19084
19109
  matchedDeviceType = _useBreakpoint.matchedDeviceType;
19085
19110
  var isMobile = matchedDeviceType === 'mobile';
19086
- var isResponsive = visibleItems === 'autofit';
19087
19111
  var gap = isMobile ? theme.spacing[4] : theme.spacing[5];
19088
19112
  var calculatedWidth = "calc(100% / ".concat(visibleItems, " - ").concat(gap, "px * (").concat(visibleItems, " - 1) / ").concat(visibleItems, ")");
19089
19113
  return _objectSpread$$({
@@ -19109,6 +19133,7 @@ var CarouselItem = function CarouselItem(_ref2) {
19109
19133
  var _useCarouselContext = useCarouselContext(),
19110
19134
  totalNumberOfSlides = _useCarouselContext.totalNumberOfSlides,
19111
19135
  visibleItems = _useCarouselContext.visibleItems,
19136
+ isResponsive = _useCarouselContext.isResponsive,
19112
19137
  carouselItemWidth = _useCarouselContext.carouselItemWidth,
19113
19138
  shouldAddStartEndSpacing = _useCarouselContext.shouldAddStartEndSpacing;
19114
19139
  var _useTheme = useTheme(),
@@ -19123,6 +19148,7 @@ var CarouselItem = function CarouselItem(_ref2) {
19123
19148
  id: id,
19124
19149
  isMobile: isMobile,
19125
19150
  "data-slide-index": index,
19151
+ isResponsive: isResponsive,
19126
19152
  visibleItems: visibleItems,
19127
19153
  maxWidth: carouselItemWidth,
19128
19154
  shouldAddStartEndSpacing: shouldAddStartEndSpacing,
@@ -28655,28 +28681,6 @@ var CollapsibleButton = /*#__PURE__*/assignWithoutSideEffects( /*#__PURE__*/forw
28655
28681
  componentId: MetaConstants.CollapsibleButton
28656
28682
  });
28657
28683
 
28658
- /**
28659
- * Hook to run an effect on dependencies change after the component has *mounted*.
28660
- * Core difference from `useEffect` is this will trigger effects after the very first render.
28661
- *
28662
- * @param effectCallback `useEffect` callback
28663
- * @param dependencies `useEffect` dependencies
28664
- */
28665
- var useDidUpdate = function useDidUpdate(effectCallback, dependencies) {
28666
- var isMounted = useRef(false);
28667
- useEffect(function () {
28668
- if (isMounted.current) {
28669
- // run normally after the very first render / mount
28670
- return effectCallback();
28671
- }
28672
- isMounted.current = true;
28673
- return undefined;
28674
-
28675
- // we don't want to rerun every time effectCallback changes
28676
- // eslint-disable-next-line react-hooks/exhaustive-deps
28677
- }, dependencies);
28678
- };
28679
-
28680
28684
  function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
28681
28685
  function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty$1(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
28682
28686
  /**