@arco-design/mobile-react 2.27.5 → 2.28.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.
Files changed (107) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.en-US.md +2 -2
  3. package/README.md +2 -2
  4. package/cjs/_helpers/hooks.d.ts +1 -0
  5. package/cjs/_helpers/hooks.js +43 -27
  6. package/cjs/badge/style/css/index.css +12 -0
  7. package/cjs/badge/style/index.less +3 -3
  8. package/cjs/button/style/css/index.css +4 -0
  9. package/cjs/button/style/index.less +1 -1
  10. package/cjs/cell/style/css/index.css +7 -0
  11. package/cjs/cell/style/index.less +4 -1
  12. package/cjs/checkbox/style/css/index.css +13 -0
  13. package/cjs/checkbox/style/index.less +3 -3
  14. package/cjs/collapse/collapse.js +12 -6
  15. package/cjs/form/style/css/index.css +16 -0
  16. package/cjs/form/style/index.less +4 -4
  17. package/cjs/image-preview/index.js +2 -1
  18. package/cjs/radio/style/css/index.css +8 -0
  19. package/cjs/radio/style/index.less +2 -2
  20. package/cjs/rate/index.js +5 -3
  21. package/cjs/rate/style/css/index.css +4 -0
  22. package/cjs/rate/style/index.less +4 -0
  23. package/cjs/sticky/index.d.ts +5 -0
  24. package/cjs/sticky/index.js +20 -7
  25. package/cjs/switch/index.js +7 -2
  26. package/cjs/switch/style/css/index.css +44 -0
  27. package/cjs/switch/style/index.less +19 -7
  28. package/cjs/tabs/demo/style/css/mobile.css +11 -0
  29. package/cjs/tabs/demo/style/mobile.less +5 -1
  30. package/cjs/tabs/index.js +14 -5
  31. package/cjs/tabs/style/css/index.css +32 -7
  32. package/cjs/tabs/style/index.less +9 -14
  33. package/cjs/tabs/tab-cell-underline.js +14 -5
  34. package/cjs/tabs/tab-cell.js +15 -7
  35. package/cjs/tabs/tab-pane.js +4 -3
  36. package/cjs/tabs/type.d.ts +1 -0
  37. package/dist/index.js +92 -40
  38. package/dist/index.min.js +3 -3
  39. package/dist/style.css +134 -7
  40. package/dist/style.min.css +1 -1
  41. package/esm/_helpers/hooks.d.ts +1 -0
  42. package/esm/_helpers/hooks.js +41 -27
  43. package/esm/badge/style/css/index.css +12 -0
  44. package/esm/badge/style/index.less +3 -3
  45. package/esm/button/style/css/index.css +4 -0
  46. package/esm/button/style/index.less +1 -1
  47. package/esm/cell/style/css/index.css +7 -0
  48. package/esm/cell/style/index.less +4 -1
  49. package/esm/checkbox/style/css/index.css +13 -0
  50. package/esm/checkbox/style/index.less +3 -3
  51. package/esm/collapse/collapse.js +14 -8
  52. package/esm/form/style/css/index.css +16 -0
  53. package/esm/form/style/index.less +4 -4
  54. package/esm/image-preview/index.js +2 -1
  55. package/esm/radio/style/css/index.css +8 -0
  56. package/esm/radio/style/index.less +2 -2
  57. package/esm/rate/index.js +5 -3
  58. package/esm/rate/style/css/index.css +4 -0
  59. package/esm/rate/style/index.less +4 -0
  60. package/esm/sticky/index.d.ts +5 -0
  61. package/esm/sticky/index.js +20 -7
  62. package/esm/switch/index.js +9 -4
  63. package/esm/switch/style/css/index.css +44 -0
  64. package/esm/switch/style/index.less +19 -7
  65. package/esm/tabs/demo/style/css/mobile.css +11 -0
  66. package/esm/tabs/demo/style/mobile.less +5 -1
  67. package/esm/tabs/index.js +16 -7
  68. package/esm/tabs/style/css/index.css +32 -7
  69. package/esm/tabs/style/index.less +9 -14
  70. package/esm/tabs/tab-cell-underline.js +14 -6
  71. package/esm/tabs/tab-cell.js +15 -8
  72. package/esm/tabs/tab-pane.js +4 -3
  73. package/esm/tabs/type.d.ts +1 -0
  74. package/package.json +3 -3
  75. package/umd/_helpers/hooks.d.ts +1 -0
  76. package/umd/_helpers/hooks.js +43 -27
  77. package/umd/badge/style/css/index.css +12 -0
  78. package/umd/badge/style/index.less +3 -3
  79. package/umd/button/style/css/index.css +4 -0
  80. package/umd/button/style/index.less +1 -1
  81. package/umd/cell/style/css/index.css +7 -0
  82. package/umd/cell/style/index.less +4 -1
  83. package/umd/checkbox/style/css/index.css +13 -0
  84. package/umd/checkbox/style/index.less +3 -3
  85. package/umd/collapse/collapse.js +12 -6
  86. package/umd/form/style/css/index.css +16 -0
  87. package/umd/form/style/index.less +4 -4
  88. package/umd/image-preview/index.js +2 -1
  89. package/umd/radio/style/css/index.css +8 -0
  90. package/umd/radio/style/index.less +2 -2
  91. package/umd/rate/index.js +5 -3
  92. package/umd/rate/style/css/index.css +4 -0
  93. package/umd/rate/style/index.less +4 -0
  94. package/umd/sticky/index.d.ts +5 -0
  95. package/umd/sticky/index.js +20 -7
  96. package/umd/switch/index.js +7 -2
  97. package/umd/switch/style/css/index.css +44 -0
  98. package/umd/switch/style/index.less +19 -7
  99. package/umd/tabs/demo/style/css/mobile.css +11 -0
  100. package/umd/tabs/demo/style/mobile.less +5 -1
  101. package/umd/tabs/index.js +14 -5
  102. package/umd/tabs/style/css/index.css +32 -7
  103. package/umd/tabs/style/index.less +9 -14
  104. package/umd/tabs/tab-cell-underline.js +16 -9
  105. package/umd/tabs/tab-cell.js +17 -11
  106. package/umd/tabs/tab-pane.js +4 -3
  107. package/umd/tabs/type.d.ts +1 -0
package/dist/index.js CHANGED
@@ -406,7 +406,7 @@
406
406
  type = 'to';
407
407
  }
408
408
 
409
- var targetTop = Math.max(0, type === 'by' ? initTop + target : target);
409
+ var targetTop = type === 'by' ? initTop + target : target;
410
410
  var start = Date.now();
411
411
 
412
412
  var fn = function fn() {
@@ -3165,6 +3165,20 @@
3165
3165
  var result = [state, setValidState];
3166
3166
  return result;
3167
3167
  }
3168
+ function useSameRefState(initialValue) {
3169
+ var _a = React.useState(initialValue),
3170
+ state = _a[0],
3171
+ setState = _a[1];
3172
+
3173
+ var stateRef = React.useRef(state);
3174
+
3175
+ var setStateProxy = function setStateProxy(data) {
3176
+ stateRef.current = data;
3177
+ setState(data);
3178
+ };
3179
+
3180
+ return [state, stateRef, setStateProxy];
3181
+ }
3168
3182
  function useRefState(initialValue) {
3169
3183
  var _a = React.useState(initialValue),
3170
3184
  state = _a[0],
@@ -3707,6 +3721,7 @@
3707
3721
  renderUnderline = props.renderUnderline,
3708
3722
  getTabRect = props.getTabRect,
3709
3723
  getTabCenterLeft = props.getTabCenterLeft;
3724
+ var useRtl = React.useContext(GlobalContext).useRtl;
3710
3725
 
3711
3726
  var _a = React.useState({}),
3712
3727
  underlineStyle = _a[0],
@@ -3727,6 +3742,7 @@
3727
3742
  var isVertical = tabDirection === 'vertical';
3728
3743
  var maxScaleWithDefault = caterpillarMaxScale || 2;
3729
3744
  var translateZStr = translateZ ? ' translateZ(0)' : '';
3745
+ var rtlRatio = isVertical && useRtl ? -1 : 1;
3730
3746
  React.useImperativeHandle(ref, function () {
3731
3747
  return {
3732
3748
  setCaterpillarAnimate: setCaterpillarAnimate,
@@ -3798,11 +3814,13 @@
3798
3814
  }
3799
3815
 
3800
3816
  function getDescIndex() {
3801
- if (distance > 0) {
3817
+ var comparedDis = distance * rtlRatio;
3818
+
3819
+ if (comparedDis > 0) {
3802
3820
  return activeIndex - 1;
3803
3821
  }
3804
3822
 
3805
- if (distance < 0) {
3823
+ if (comparedDis < 0) {
3806
3824
  return activeIndex + 1;
3807
3825
  }
3808
3826
 
@@ -3824,7 +3842,8 @@
3824
3842
  var currentLeft = getLineLeft(activeIndex);
3825
3843
  var descIndex = getDescIndex();
3826
3844
  var descLeft = getLineLeft(descIndex);
3827
- var moveRatio = wrapWidth ? distance / wrapWidth : 0;
3845
+ var comparedDis = distance * rtlRatio;
3846
+ var moveRatio = wrapWidth ? comparedDis / wrapWidth : 0;
3828
3847
  var leftOffset = moveRatio * (currentLeft - descLeft);
3829
3848
  var direc = isVertical ? 'X' : 'Y';
3830
3849
  var transStyle = useCaterpillar && !jumpingDis && !underlineAdaptive ? caterpillarProperty === 'size' ? (_a = {}, _a[isVertical ? 'width' : 'height'] = 100 * getLineScale(moveRatio) + "%", _a.willChange = 'width', _a) : {
@@ -3837,7 +3856,7 @@
3837
3856
  var currentWidth = getLineWidth(activeIndex);
3838
3857
  var descWidth = getLineWidth(descIndex);
3839
3858
  var widthOffset = moveRatio * (currentWidth - descWidth);
3840
- adaptiveStyle = (_b = {}, _b[isVertical ? 'width' : 'height'] = distance > 0 ? currentWidth - widthOffset : currentWidth + widthOffset, _b.willChange = 'width', _b);
3859
+ adaptiveStyle = (_b = {}, _b[isVertical ? 'width' : 'height'] = comparedDis > 0 ? currentWidth - widthOffset : currentWidth + widthOffset, _b.willChange = 'width', _b);
3841
3860
  adaptiveOuterStyle = isVertical ? {
3842
3861
  width: 'auto'
3843
3862
  } : {
@@ -3854,7 +3873,7 @@
3854
3873
  };
3855
3874
  return {
3856
3875
  outer: __assign$2(__assign$2({
3857
- transform: "translate" + direc + "(" + (distance > 0 ? currentLeft - leftOffset : currentLeft + leftOffset) + "px)" + translateZStr
3876
+ transform: "translate" + direc + "(" + (comparedDis > 0 ? currentLeft - leftOffset : currentLeft + leftOffset) + "px)" + translateZStr
3858
3877
  }, outerSize), adaptiveOuterStyle),
3859
3878
  inner: __assign$2(__assign$2({}, transStyle), adaptiveStyle)
3860
3879
  };
@@ -3980,6 +3999,7 @@
3980
3999
  translateZ = props.translateZ,
3981
4000
  tabBarStopPropagation = props.tabBarStopPropagation;
3982
4001
  var prefix = prefixCls + "-tab-cell";
4002
+ var useRtl = React.useContext(GlobalContext).useRtl;
3983
4003
  var domRef = React.useRef(null);
3984
4004
  var underlineRef = React.useRef(null);
3985
4005
  var allCellRectRef = React.useRef([]);
@@ -4174,20 +4194,20 @@
4174
4194
  }
4175
4195
 
4176
4196
  function getCellStyle(index) {
4197
+ var _a, _b;
4198
+
4177
4199
  if (!isVertical) {
4178
4200
  return {};
4179
4201
  }
4180
4202
 
4203
+ var marginStart = useRtl ? 'marginRight' : 'marginLeft';
4204
+ var marginEnd = useRtl ? 'marginLeft' : 'marginRight';
4205
+
4181
4206
  if (index === 0) {
4182
- return {
4183
- marginRight: cellGutter,
4184
- marginLeft: getCellPadding('left')
4185
- };
4207
+ return _a = {}, _a[marginEnd] = cellGutter, _a[marginStart] = getCellPadding('left'), _a;
4186
4208
  }
4187
4209
 
4188
- return {
4189
- marginRight: index === tabs.length - 1 ? void 0 : cellGutter
4190
- };
4210
+ return _b = {}, _b[marginEnd] = index === tabs.length - 1 ? void 0 : cellGutter, _b;
4191
4211
  }
4192
4212
 
4193
4213
  function renderBarItem(tab, index) {
@@ -4766,7 +4786,8 @@
4766
4786
  autoHeight = props.autoHeight,
4767
4787
  swipeEnergySaving = props.swipeEnergySaving,
4768
4788
  changeIndex = props.changeIndex,
4769
- onScroll = props.onScroll;
4789
+ onScroll = props.onScroll,
4790
+ rtlRatio = props.rtlRatio;
4770
4791
  var domRef = React.useRef(null);
4771
4792
  var panesRef = React.useRef([]);
4772
4793
  var autoScrollingRef = React.useRef(false);
@@ -4965,7 +4986,7 @@
4965
4986
  var translateStr = translateZ ? ' translateZ(0)' : '';
4966
4987
  var sizeStyle = tabDirection === 'vertical' ? {
4967
4988
  width: 100 * panes.length + "%",
4968
- transform: "translateX(" + (distance - wrapWidth * activeIndex) + "px)" + translateStr
4989
+ transform: "translateX(" + (distance - wrapWidth * activeIndex * rtlRatio) + "px)" + translateStr
4969
4990
  } : {
4970
4991
  height: 100 * panes.length + "%",
4971
4992
  transform: "translateY(" + (distance - wrapHeight * activeIndex) + "px)" + translateStr
@@ -4993,7 +5014,7 @@
4993
5014
 
4994
5015
  var translateStr = translateZ ? ' translateZ(0)' : '';
4995
5016
  var sizeStyle = tabDirection === 'vertical' ? {
4996
- transform: "translateX(" + (distance - wrapWidth * (activeIndex - index)) + "px)" + translateStr
5017
+ transform: "translateX(" + (distance - wrapWidth * (activeIndex - index) * rtlRatio) + "px)" + translateStr
4997
5018
  } : {
4998
5019
  transform: "translateY(" + (distance - wrapHeight * (activeIndex - index)) + "px)" + translateStr
4999
5020
  };
@@ -5175,6 +5196,7 @@
5175
5196
  tabBarStopPropagation = _6 === void 0 ? true : _6,
5176
5197
  _7 = props.swipeEnergySaving,
5177
5198
  swipeEnergySaving = _7 === void 0 ? false : _7;
5199
+ var useRtl = React.useContext(GlobalContext).useRtl;
5178
5200
  var domRef = React.useRef(null);
5179
5201
  var cellRef = React.useRef(null);
5180
5202
  var paneRef = React.useRef(null);
@@ -5226,6 +5248,8 @@
5226
5248
  var allPanes = getAllPanes();
5227
5249
  var tabDirection = ['top', 'bottom'].indexOf(tabBarPosition) !== -1 ? 'vertical' : 'horizontal';
5228
5250
  var canSwipe = mode === 'swipe' && !disabled && swipeable && tabDirection === 'vertical' && tabs.length > 1;
5251
+ var horizontalUseRtl = tabDirection === 'vertical' && useRtl;
5252
+ var rtlRatio = horizontalUseRtl ? -1 : 1;
5229
5253
  React.useImperativeHandle(ref, function () {
5230
5254
  return {
5231
5255
  dom: domRef.current,
@@ -5343,6 +5367,7 @@
5343
5367
  var posDisY = touchMoveY - touchStartYRef.current;
5344
5368
  var absDisX = Math.abs(posDisX);
5345
5369
  var absDisY = Math.abs(posDisY);
5370
+ var comparedDis = posDisX * rtlRatio;
5346
5371
 
5347
5372
  if (scrollingRef.current === null) {
5348
5373
  scrollingRef.current = absDisX < absDisY;
@@ -5360,10 +5385,10 @@
5360
5385
  return;
5361
5386
  }
5362
5387
 
5363
- if (activeIndexRef.current === 0 && posDisX > 0 || activeIndexRef.current === tabs.length - 1 && posDisX < 0) {
5388
+ if (activeIndexRef.current === 0 && comparedDis > 0 || activeIndexRef.current === tabs.length - 1 && comparedDis < 0) {
5364
5389
  if (!touchStoppedRef.current && absDisX > stopTouchThreshold) {
5365
5390
  touchStoppedRef.current = true;
5366
- onTouchStopped && onTouchStopped(posDisX >= 0 ? -1 : 1);
5391
+ onTouchStopped && onTouchStopped(comparedDis >= 0 ? -1 : 1);
5367
5392
  }
5368
5393
 
5369
5394
  setDistance(0);
@@ -5413,10 +5438,11 @@
5413
5438
  var index = activeIndexRef.current;
5414
5439
  var needJump = Math.abs(dis) > maxSlice && Math.abs(dis) > distanceToChangeTab || Math.abs(speed) > speedToChangeTab;
5415
5440
  var newIndex = index;
5441
+ var comparedDis = dis * rtlRatio;
5416
5442
 
5417
- if (dis > 0 && needJump) {
5443
+ if (comparedDis > 0 && needJump) {
5418
5444
  newIndex = index - 1;
5419
- } else if (dis < 0 && needJump) {
5445
+ } else if (comparedDis < 0 && needJump) {
5420
5446
  newIndex = index + 1;
5421
5447
  }
5422
5448
 
@@ -5560,7 +5586,8 @@
5560
5586
  tabPaneExtra: tabPaneExtra,
5561
5587
  autoHeight: autoHeight,
5562
5588
  onScroll: onScroll,
5563
- swipeEnergySaving: swipeEnergySaving
5589
+ swipeEnergySaving: swipeEnergySaving,
5590
+ rtlRatio: rtlRatio
5564
5591
  }, commonProps)));
5565
5592
  });
5566
5593
  });
@@ -5721,6 +5748,22 @@
5721
5748
  });
5722
5749
  framePendingRef.current = true;
5723
5750
  }, [containerEventHandler]);
5751
+ var updatePlaceholderLayoutInner = React.useCallback(function () {
5752
+ if (placeholderRef.current) {
5753
+ var contentHeight = contentCalculateHeightRef.current; // 当元素吸顶时,默认有一个占位的元素占住该元素的位置,避免布局产生抖动
5754
+ // @en When an element is sticky to the top, a placeholder element occupies the element's position by default to avoid jitter in the layout
5755
+
5756
+ placeholderRef.current.style.height = (isStickyRef.current ? contentHeight : 0) + "px";
5757
+ }
5758
+ }, []);
5759
+ var updatePlaceholderLayout = React.useCallback(function () {
5760
+ if (contentRef.current) {
5761
+ var contentClientRect = contentRef.current.getBoundingClientRect();
5762
+ contentCalculateHeightRef.current = contentClientRect.height;
5763
+ }
5764
+
5765
+ updatePlaceholderLayoutInner();
5766
+ }, []);
5724
5767
  React.useEffect(function () {
5725
5768
  var containerEle = getActualContainer(getContainer);
5726
5769
  containerRef.current = containerEle || document.body;
@@ -5743,18 +5786,15 @@
5743
5786
  };
5744
5787
  }, [getContainer, getScrollContainer, recalculatePosition]);
5745
5788
  React.useEffect(function () {
5746
- if (placeholderRef.current) {
5747
- // 当元素吸顶时,默认有一个占位的元素占住该元素的位置,避免布局产生抖动
5748
- // @en When an element is sticky to the top, a placeholder element occupies the element's position by default to avoid jitter in the layout
5749
- placeholderRef.current.style.height = (isStickyRef.current ? contentCalculateHeightRef.current : 0) + "px";
5750
- }
5789
+ updatePlaceholderLayoutInner();
5751
5790
  }, [isSticky, wasSticky]);
5752
5791
  React.useImperativeHandle(ref, function () {
5753
5792
  return {
5754
5793
  dom: contentRef.current,
5755
- recalculatePosition: recalculatePosition
5794
+ recalculatePosition: recalculatePosition,
5795
+ updatePlaceholderLayout: updatePlaceholderLayout
5756
5796
  };
5757
- }, [recalculatePosition]);
5797
+ }, [recalculatePosition, updatePlaceholderLayout]);
5758
5798
  var computedStyle = React.useMemo(function () {
5759
5799
  return __assign$2(__assign$2({}, style || {}), stickyStateStyle);
5760
5800
  }, [stickyStateStyle, style]);
@@ -10167,7 +10207,13 @@
10167
10207
  var groupKey = React.useContext(CollapseKeyContext).key;
10168
10208
  var CollapseContext = allContexts[groupKey] || {};
10169
10209
  var groupContext = React.useContext(CollapseContext) || {};
10170
- var opened = React.useMemo(function () {
10210
+
10211
+ var _l = useSameRefState(false),
10212
+ opened = _l[0],
10213
+ openedRef = _l[1],
10214
+ setOpened = _l[2];
10215
+
10216
+ React.useEffect(function () {
10171
10217
  var show = false; // 优先级: group > children
10172
10218
  // @en Priority: group > children
10173
10219
 
@@ -10181,7 +10227,7 @@
10181
10227
  show = itemActive;
10182
10228
  }
10183
10229
 
10184
- return show;
10230
+ setOpened(show);
10185
10231
  }, [value, active, itemActive, groupContext.isGroup, groupContext.value]);
10186
10232
 
10187
10233
  var getContentHeight = function getContentHeight() {
@@ -10199,8 +10245,8 @@
10199
10245
  contentWrapRef.current.style.height = newHeight;
10200
10246
  var transTimeout = convertCssDuration(contentWrapRef.current, 'transitionDuration');
10201
10247
  setTimeout(function () {
10202
- return contentWrapRef.current && (contentWrapRef.current.style.height = opened ? 'auto' : '0px');
10203
- }, opened ? transTimeout : 20);
10248
+ return contentWrapRef.current && (contentWrapRef.current.style.height = openedRef.current ? 'auto' : '0px');
10249
+ }, openedRef.current ? transTimeout : 20);
10204
10250
  };
10205
10251
 
10206
10252
  var toggleOpened = function toggleOpened() {
@@ -10223,10 +10269,10 @@
10223
10269
  }
10224
10270
 
10225
10271
  var height = getContentHeight();
10226
- contentWrapRef.current.style.height = opened ? contentHeightRef.current + "px" : '0px';
10272
+ contentWrapRef.current.style.height = openedRef.current ? contentHeightRef.current + "px" : '0px';
10227
10273
  nextTick(function () {
10228
10274
  contentHeightRef.current = height;
10229
- resetHeight(opened ? height + "px" : '0px');
10275
+ resetHeight(openedRef.current ? height + "px" : '0px');
10230
10276
  });
10231
10277
  };
10232
10278
 
@@ -20203,7 +20249,8 @@
20203
20249
  return /*#__PURE__*/React__default["default"].createElement(Carousel, __assign$2({
20204
20250
  autoPlay: false,
20205
20251
  loop: loop,
20206
- lazyloadCount: lazyloadCount
20252
+ lazyloadCount: lazyloadCount,
20253
+ stopPropagation: false
20207
20254
  }, carouselProps), (allImages || []).map(function (image, index) {
20208
20255
  var innerNode = /*#__PURE__*/React__default["default"].createElement("div", {
20209
20256
  key: index,
@@ -24718,7 +24765,8 @@
24718
24765
  }
24719
24766
 
24720
24767
  return /*#__PURE__*/React__default["default"].createElement(ContextLayout, null, function (_a) {
24721
- var prefixCls = _a.prefixCls;
24768
+ var prefixCls = _a.prefixCls,
24769
+ useRtl = _a.useRtl;
24722
24770
  return /*#__PURE__*/React__default["default"].createElement("div", {
24723
24771
  role: "slider",
24724
24772
  "aria-valuemin": 0,
@@ -24734,6 +24782,7 @@
24734
24782
  // 对内的index从1开始,方便计算
24735
24783
  // @en The index of the pair starts from 1, which is convenient for calculation
24736
24784
  var index = i + 1;
24785
+ var halfIndex = allowHalf ? index - 0.5 : index;
24737
24786
  var status = getIconStatus(index);
24738
24787
  return /*#__PURE__*/React__default["default"].createElement("div", {
24739
24788
  key: index,
@@ -24744,12 +24793,12 @@
24744
24793
  }, renderRateIcon(prefixCls + "-rate", status, index), /*#__PURE__*/React__default["default"].createElement("div", {
24745
24794
  className: prefixCls + "-rate-icon-click-half left",
24746
24795
  onClick: function onClick() {
24747
- return handleStarIndexChange(allowHalf ? index - 0.5 : index);
24796
+ return handleStarIndexChange(useRtl ? index : halfIndex);
24748
24797
  }
24749
24798
  }), /*#__PURE__*/React__default["default"].createElement("div", {
24750
24799
  className: prefixCls + "-rate-icon-click-half right",
24751
24800
  onClick: function onClick() {
24752
- return handleStarIndexChange(index);
24801
+ return handleStarIndexChange(useRtl ? halfIndex : index);
24753
24802
  }
24754
24803
  }));
24755
24804
  }));
@@ -27578,6 +27627,7 @@
27578
27627
  });
27579
27628
 
27580
27629
  var Switch = /*#__PURE__*/React.forwardRef(function (props, ref) {
27630
+ var useRtl = React.useContext(GlobalContext).useRtl;
27581
27631
  var system = useSystem();
27582
27632
  var className = props.className,
27583
27633
  style = props.style,
@@ -27645,13 +27695,15 @@
27645
27695
 
27646
27696
  var touchEndX = e.changedTouches && e.changedTouches[0] ? e.changedTouches[0].clientX : 0;
27647
27697
  var distance = touchEndX - touchStartX;
27698
+ var swipeRight = useRtl ? distance < 0 : distance > 0;
27699
+ var swipeLeft = useRtl ? distance > 0 : distance < 0;
27648
27700
  var newChecked = false; // 右滑打开
27649
27701
  // @en Swipe right to open
27650
27702
 
27651
- if (distance > 0) {
27703
+ if (swipeRight) {
27652
27704
  newChecked = true; // 左滑关闭
27653
27705
  // @en Swipe left to close
27654
- } else if (distance < 0) {
27706
+ } else if (swipeLeft) {
27655
27707
  newChecked = false; // 点击时取反
27656
27708
  // @en Invert on clicking
27657
27709
  } else {