@arco-design/mobile-react 2.37.0 → 2.38.1

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 (330) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.en-US.md +2 -2
  3. package/README.md +2 -2
  4. package/cjs/action-sheet/index.d.ts +2 -2
  5. package/cjs/action-sheet/style/css/index.css +18 -0
  6. package/cjs/avatar/style/css/index.css +18 -0
  7. package/cjs/badge/index.d.ts +2 -1
  8. package/cjs/badge/index.js +1 -1
  9. package/cjs/badge/style/css/index.css +26 -4
  10. package/cjs/badge/style/index.less +4 -2
  11. package/cjs/button/style/css/index.css +18 -0
  12. package/cjs/carousel/style/css/index.css +18 -0
  13. package/cjs/cell/style/css/index.css +18 -0
  14. package/cjs/checkbox/style/css/index.css +18 -0
  15. package/cjs/circle-progress/style/css/index.css +18 -0
  16. package/cjs/collapse/style/css/index.css +18 -0
  17. package/cjs/count-down/style/css/index.css +18 -0
  18. package/cjs/date-picker/style/css/index.css +18 -0
  19. package/cjs/dialog/index.d.ts +7 -6
  20. package/cjs/dialog/index.js +4 -1
  21. package/cjs/dialog/style/css/index.css +26 -4
  22. package/cjs/dialog/style/index.less +4 -2
  23. package/cjs/divider/style/css/index.css +18 -0
  24. package/cjs/dropdown/style/css/index.css +18 -0
  25. package/cjs/dropdown-menu/style/css/index.css +18 -0
  26. package/cjs/ellipsis/style/css/index.css +18 -0
  27. package/cjs/form/style/css/index.css +18 -0
  28. package/cjs/grid/style/css/index.css +18 -0
  29. package/cjs/image/style/css/index.css +18 -0
  30. package/cjs/image-picker/index.d.ts +1 -1
  31. package/cjs/image-picker/index.js +1 -0
  32. package/cjs/image-picker/style/css/index.css +18 -0
  33. package/cjs/image-picker/type.d.ts +11 -5
  34. package/cjs/image-preview/style/css/index.css +18 -0
  35. package/cjs/index-bar/style/css/index.css +18 -0
  36. package/cjs/input/style/css/index.css +18 -0
  37. package/cjs/keyboard/style/css/index.css +18 -0
  38. package/cjs/load-more/style/css/index.css +18 -0
  39. package/cjs/loading/style/css/index.css +18 -0
  40. package/cjs/masking/index.d.ts +11 -5
  41. package/cjs/masking/index.js +2 -0
  42. package/cjs/masking/style/css/index.css +18 -0
  43. package/cjs/nav-bar/style/css/index.css +18 -0
  44. package/cjs/notice-bar/style/css/index.css +18 -0
  45. package/cjs/notify/style/css/index.css +18 -0
  46. package/cjs/pagination/style/css/index.css +18 -0
  47. package/cjs/picker/style/css/index.css +18 -0
  48. package/cjs/picker-view/style/css/index.css +18 -0
  49. package/cjs/popover/style/css/index.css +18 -0
  50. package/cjs/popover/style/css/menu.css +18 -0
  51. package/cjs/popup/index.d.ts +3 -3
  52. package/cjs/popup/index.js +1 -0
  53. package/cjs/popup/style/css/index.css +35 -0
  54. package/cjs/popup/style/index.less +36 -3
  55. package/cjs/popup-swiper/index.d.ts +2 -2
  56. package/cjs/popup-swiper/index.js +20 -3
  57. package/cjs/popup-swiper/style/css/index.css +18 -0
  58. package/cjs/progress/style/css/index.css +18 -0
  59. package/cjs/pull-refresh/style/css/index.css +18 -0
  60. package/cjs/radio/style/css/index.css +18 -0
  61. package/cjs/rate/style/css/index.css +18 -0
  62. package/cjs/search-bar/style/css/index.css +18 -0
  63. package/cjs/skeleton/style/css/index.css +18 -0
  64. package/cjs/slider/style/css/index.css +18 -0
  65. package/cjs/stepper/style/css/index.css +18 -0
  66. package/cjs/steps/style/css/index.css +18 -0
  67. package/cjs/sticky/style/css/index.css +18 -0
  68. package/cjs/swipe-action/style/css/index.css +18 -0
  69. package/cjs/swipe-load/style/css/index.css +18 -0
  70. package/cjs/switch/style/css/index.css +18 -0
  71. package/cjs/tab-bar/style/css/index.css +18 -0
  72. package/cjs/tabs/index.js +7 -3
  73. package/cjs/tabs/style/css/index.css +18 -0
  74. package/cjs/tabs/tab-cell.js +9 -1
  75. package/cjs/tabs/type.d.ts +5 -0
  76. package/cjs/tag/style/css/index.css +18 -0
  77. package/cjs/textarea/style/css/index.css +18 -0
  78. package/cjs/toast/style/css/index.css +18 -0
  79. package/cjs/transition/index.d.ts +9 -3
  80. package/cjs/transition/index.js +36 -6
  81. package/cjs/transition/style/css/index.css +22 -4
  82. package/cjs/transition/style/index.less +2 -2
  83. package/cjs/uploader/style/css/index.css +18 -0
  84. package/dist/index.js +83 -22
  85. package/dist/index.min.js +4 -4
  86. package/dist/style.css +1049 -6
  87. package/dist/style.min.css +1 -1
  88. package/esm/action-sheet/index.d.ts +2 -2
  89. package/esm/action-sheet/style/css/index.css +18 -0
  90. package/esm/avatar/style/css/index.css +18 -0
  91. package/esm/badge/index.d.ts +2 -1
  92. package/esm/badge/index.js +1 -1
  93. package/esm/badge/style/css/index.css +26 -4
  94. package/esm/badge/style/index.less +4 -2
  95. package/esm/button/style/css/index.css +18 -0
  96. package/esm/carousel/style/css/index.css +18 -0
  97. package/esm/cell/style/css/index.css +18 -0
  98. package/esm/checkbox/style/css/index.css +18 -0
  99. package/esm/circle-progress/style/css/index.css +18 -0
  100. package/esm/collapse/style/css/index.css +18 -0
  101. package/esm/count-down/style/css/index.css +18 -0
  102. package/esm/date-picker/style/css/index.css +18 -0
  103. package/esm/dialog/index.d.ts +7 -6
  104. package/esm/dialog/index.js +4 -1
  105. package/esm/dialog/style/css/index.css +26 -4
  106. package/esm/dialog/style/index.less +4 -2
  107. package/esm/divider/style/css/index.css +18 -0
  108. package/esm/dropdown/style/css/index.css +18 -0
  109. package/esm/dropdown-menu/style/css/index.css +18 -0
  110. package/esm/ellipsis/style/css/index.css +18 -0
  111. package/esm/form/style/css/index.css +18 -0
  112. package/esm/grid/style/css/index.css +18 -0
  113. package/esm/image/style/css/index.css +18 -0
  114. package/esm/image-picker/index.d.ts +1 -1
  115. package/esm/image-picker/index.js +1 -0
  116. package/esm/image-picker/style/css/index.css +18 -0
  117. package/esm/image-picker/type.d.ts +11 -5
  118. package/esm/image-preview/style/css/index.css +18 -0
  119. package/esm/index-bar/style/css/index.css +18 -0
  120. package/esm/input/style/css/index.css +18 -0
  121. package/esm/keyboard/style/css/index.css +18 -0
  122. package/esm/load-more/style/css/index.css +18 -0
  123. package/esm/loading/style/css/index.css +18 -0
  124. package/esm/masking/index.d.ts +11 -5
  125. package/esm/masking/index.js +2 -0
  126. package/esm/masking/style/css/index.css +18 -0
  127. package/esm/nav-bar/style/css/index.css +18 -0
  128. package/esm/notice-bar/style/css/index.css +18 -0
  129. package/esm/notify/style/css/index.css +18 -0
  130. package/esm/pagination/style/css/index.css +18 -0
  131. package/esm/picker/style/css/index.css +18 -0
  132. package/esm/picker-view/style/css/index.css +18 -0
  133. package/esm/popover/style/css/index.css +18 -0
  134. package/esm/popover/style/css/menu.css +18 -0
  135. package/esm/popup/index.d.ts +3 -3
  136. package/esm/popup/index.js +1 -0
  137. package/esm/popup/style/css/index.css +35 -0
  138. package/esm/popup/style/index.less +36 -3
  139. package/esm/popup-swiper/index.d.ts +2 -2
  140. package/esm/popup-swiper/index.js +20 -3
  141. package/esm/popup-swiper/style/css/index.css +18 -0
  142. package/esm/progress/style/css/index.css +18 -0
  143. package/esm/pull-refresh/style/css/index.css +18 -0
  144. package/esm/radio/style/css/index.css +18 -0
  145. package/esm/rate/style/css/index.css +18 -0
  146. package/esm/search-bar/style/css/index.css +18 -0
  147. package/esm/skeleton/style/css/index.css +18 -0
  148. package/esm/slider/style/css/index.css +18 -0
  149. package/esm/stepper/style/css/index.css +18 -0
  150. package/esm/steps/style/css/index.css +18 -0
  151. package/esm/sticky/style/css/index.css +18 -0
  152. package/esm/swipe-action/style/css/index.css +18 -0
  153. package/esm/swipe-load/style/css/index.css +18 -0
  154. package/esm/switch/style/css/index.css +18 -0
  155. package/esm/tab-bar/style/css/index.css +18 -0
  156. package/esm/tabs/index.js +7 -3
  157. package/esm/tabs/style/css/index.css +18 -0
  158. package/esm/tabs/tab-cell.js +9 -1
  159. package/esm/tabs/type.d.ts +5 -0
  160. package/esm/tag/style/css/index.css +18 -0
  161. package/esm/textarea/style/css/index.css +18 -0
  162. package/esm/toast/style/css/index.css +18 -0
  163. package/esm/transition/index.d.ts +9 -3
  164. package/esm/transition/index.js +32 -7
  165. package/esm/transition/style/css/index.css +22 -4
  166. package/esm/transition/style/index.less +2 -2
  167. package/esm/uploader/style/css/index.css +18 -0
  168. package/esnext/action-sheet/index.d.ts +2 -2
  169. package/esnext/action-sheet/style/css/index.css +18 -0
  170. package/esnext/avatar/style/css/index.css +18 -0
  171. package/esnext/badge/index.d.ts +2 -1
  172. package/esnext/badge/index.js +1 -1
  173. package/esnext/badge/style/css/index.css +26 -4
  174. package/esnext/badge/style/index.less +4 -2
  175. package/esnext/button/style/css/index.css +18 -0
  176. package/esnext/carousel/style/css/index.css +18 -0
  177. package/esnext/cell/style/css/index.css +18 -0
  178. package/esnext/checkbox/style/css/index.css +18 -0
  179. package/esnext/circle-progress/style/css/index.css +18 -0
  180. package/esnext/collapse/style/css/index.css +18 -0
  181. package/esnext/count-down/style/css/index.css +18 -0
  182. package/esnext/date-picker/style/css/index.css +18 -0
  183. package/esnext/dialog/index.d.ts +7 -6
  184. package/esnext/dialog/index.js +1 -1
  185. package/esnext/dialog/style/css/index.css +26 -4
  186. package/esnext/dialog/style/index.less +4 -2
  187. package/esnext/divider/style/css/index.css +18 -0
  188. package/esnext/dropdown/style/css/index.css +18 -0
  189. package/esnext/dropdown-menu/style/css/index.css +18 -0
  190. package/esnext/ellipsis/style/css/index.css +18 -0
  191. package/esnext/form/style/css/index.css +18 -0
  192. package/esnext/grid/style/css/index.css +18 -0
  193. package/esnext/image/style/css/index.css +18 -0
  194. package/esnext/image-picker/index.d.ts +1 -1
  195. package/esnext/image-picker/index.js +1 -1
  196. package/esnext/image-picker/style/css/index.css +18 -0
  197. package/esnext/image-picker/type.d.ts +11 -5
  198. package/esnext/image-preview/style/css/index.css +18 -0
  199. package/esnext/index-bar/style/css/index.css +18 -0
  200. package/esnext/input/style/css/index.css +18 -0
  201. package/esnext/keyboard/style/css/index.css +18 -0
  202. package/esnext/load-more/style/css/index.css +18 -0
  203. package/esnext/loading/style/css/index.css +18 -0
  204. package/esnext/masking/index.d.ts +11 -5
  205. package/esnext/masking/index.js +3 -3
  206. package/esnext/masking/style/css/index.css +18 -0
  207. package/esnext/nav-bar/style/css/index.css +18 -0
  208. package/esnext/notice-bar/style/css/index.css +18 -0
  209. package/esnext/notify/style/css/index.css +18 -0
  210. package/esnext/pagination/style/css/index.css +18 -0
  211. package/esnext/picker/style/css/index.css +18 -0
  212. package/esnext/picker-view/style/css/index.css +18 -0
  213. package/esnext/popover/style/css/index.css +18 -0
  214. package/esnext/popover/style/css/menu.css +18 -0
  215. package/esnext/popup/index.d.ts +3 -3
  216. package/esnext/popup/index.js +1 -1
  217. package/esnext/popup/style/css/index.css +35 -0
  218. package/esnext/popup/style/index.less +36 -3
  219. package/esnext/popup-swiper/index.d.ts +2 -2
  220. package/esnext/popup-swiper/index.js +7 -2
  221. package/esnext/popup-swiper/style/css/index.css +18 -0
  222. package/esnext/progress/style/css/index.css +18 -0
  223. package/esnext/pull-refresh/style/css/index.css +18 -0
  224. package/esnext/radio/style/css/index.css +18 -0
  225. package/esnext/rate/style/css/index.css +18 -0
  226. package/esnext/search-bar/style/css/index.css +18 -0
  227. package/esnext/skeleton/style/css/index.css +18 -0
  228. package/esnext/slider/style/css/index.css +18 -0
  229. package/esnext/stepper/style/css/index.css +18 -0
  230. package/esnext/steps/style/css/index.css +18 -0
  231. package/esnext/sticky/style/css/index.css +18 -0
  232. package/esnext/swipe-action/style/css/index.css +18 -0
  233. package/esnext/swipe-load/style/css/index.css +18 -0
  234. package/esnext/switch/style/css/index.css +18 -0
  235. package/esnext/tab-bar/style/css/index.css +18 -0
  236. package/esnext/tabs/index.js +3 -2
  237. package/esnext/tabs/style/css/index.css +18 -0
  238. package/esnext/tabs/tab-cell.js +8 -1
  239. package/esnext/tabs/type.d.ts +5 -0
  240. package/esnext/tag/style/css/index.css +18 -0
  241. package/esnext/textarea/style/css/index.css +18 -0
  242. package/esnext/toast/style/css/index.css +18 -0
  243. package/esnext/transition/index.d.ts +9 -3
  244. package/esnext/transition/index.js +28 -3
  245. package/esnext/transition/style/css/index.css +22 -4
  246. package/esnext/transition/style/index.less +2 -2
  247. package/esnext/uploader/style/css/index.css +18 -0
  248. package/package.json +3 -3
  249. package/style/css/public.css +18 -0
  250. package/tokens/mixin/index.less +31 -2
  251. package/umd/action-sheet/index.d.ts +2 -2
  252. package/umd/action-sheet/style/css/index.css +18 -0
  253. package/umd/avatar/style/css/index.css +18 -0
  254. package/umd/badge/index.d.ts +2 -1
  255. package/umd/badge/index.js +1 -1
  256. package/umd/badge/style/css/index.css +26 -4
  257. package/umd/badge/style/index.less +4 -2
  258. package/umd/button/style/css/index.css +18 -0
  259. package/umd/carousel/style/css/index.css +18 -0
  260. package/umd/cell/style/css/index.css +18 -0
  261. package/umd/checkbox/style/css/index.css +18 -0
  262. package/umd/circle-progress/style/css/index.css +18 -0
  263. package/umd/collapse/style/css/index.css +18 -0
  264. package/umd/count-down/style/css/index.css +18 -0
  265. package/umd/date-picker/style/css/index.css +18 -0
  266. package/umd/dialog/index.d.ts +7 -6
  267. package/umd/dialog/index.js +4 -1
  268. package/umd/dialog/style/css/index.css +26 -4
  269. package/umd/dialog/style/index.less +4 -2
  270. package/umd/divider/style/css/index.css +18 -0
  271. package/umd/dropdown/style/css/index.css +18 -0
  272. package/umd/dropdown-menu/style/css/index.css +18 -0
  273. package/umd/ellipsis/style/css/index.css +18 -0
  274. package/umd/form/style/css/index.css +18 -0
  275. package/umd/grid/style/css/index.css +18 -0
  276. package/umd/image/style/css/index.css +18 -0
  277. package/umd/image-picker/index.d.ts +1 -1
  278. package/umd/image-picker/index.js +1 -0
  279. package/umd/image-picker/style/css/index.css +18 -0
  280. package/umd/image-picker/type.d.ts +11 -5
  281. package/umd/image-preview/style/css/index.css +18 -0
  282. package/umd/index-bar/style/css/index.css +18 -0
  283. package/umd/input/style/css/index.css +18 -0
  284. package/umd/keyboard/style/css/index.css +18 -0
  285. package/umd/load-more/style/css/index.css +18 -0
  286. package/umd/loading/style/css/index.css +18 -0
  287. package/umd/masking/index.d.ts +11 -5
  288. package/umd/masking/index.js +2 -0
  289. package/umd/masking/style/css/index.css +18 -0
  290. package/umd/nav-bar/style/css/index.css +18 -0
  291. package/umd/notice-bar/style/css/index.css +18 -0
  292. package/umd/notify/style/css/index.css +18 -0
  293. package/umd/pagination/style/css/index.css +18 -0
  294. package/umd/picker/style/css/index.css +18 -0
  295. package/umd/picker-view/style/css/index.css +18 -0
  296. package/umd/popover/style/css/index.css +18 -0
  297. package/umd/popover/style/css/menu.css +18 -0
  298. package/umd/popup/index.d.ts +3 -3
  299. package/umd/popup/index.js +1 -0
  300. package/umd/popup/style/css/index.css +35 -0
  301. package/umd/popup/style/index.less +36 -3
  302. package/umd/popup-swiper/index.d.ts +2 -2
  303. package/umd/popup-swiper/index.js +20 -3
  304. package/umd/popup-swiper/style/css/index.css +18 -0
  305. package/umd/progress/style/css/index.css +18 -0
  306. package/umd/pull-refresh/style/css/index.css +18 -0
  307. package/umd/radio/style/css/index.css +18 -0
  308. package/umd/rate/style/css/index.css +18 -0
  309. package/umd/search-bar/style/css/index.css +18 -0
  310. package/umd/skeleton/style/css/index.css +18 -0
  311. package/umd/slider/style/css/index.css +18 -0
  312. package/umd/stepper/style/css/index.css +18 -0
  313. package/umd/steps/style/css/index.css +18 -0
  314. package/umd/sticky/style/css/index.css +18 -0
  315. package/umd/swipe-action/style/css/index.css +18 -0
  316. package/umd/swipe-load/style/css/index.css +18 -0
  317. package/umd/switch/style/css/index.css +18 -0
  318. package/umd/tab-bar/style/css/index.css +18 -0
  319. package/umd/tabs/index.js +7 -3
  320. package/umd/tabs/style/css/index.css +18 -0
  321. package/umd/tabs/tab-cell.js +9 -1
  322. package/umd/tabs/type.d.ts +5 -0
  323. package/umd/tag/style/css/index.css +18 -0
  324. package/umd/textarea/style/css/index.css +18 -0
  325. package/umd/toast/style/css/index.css +18 -0
  326. package/umd/transition/index.d.ts +9 -3
  327. package/umd/transition/index.js +36 -6
  328. package/umd/transition/style/css/index.css +22 -4
  329. package/umd/transition/style/index.less +2 -2
  330. package/umd/uploader/style/css/index.css +18 -0
@@ -1,8 +1,12 @@
1
1
  @import '../../../style/mixin.less';
2
2
 
3
3
  .set-popup-transform(@transform) {
4
- &-enter, &-exit-active, &-exit-done {
4
+
5
+ &-enter,
6
+ &-exit-active,
7
+ &-exit-done {
5
8
  transform: @transform;
9
+
6
10
  &.translateZ {
7
11
  transform: @transform translateZ(2PX);
8
12
  }
@@ -14,63 +18,92 @@
14
18
  &-left {
15
19
  .set-popup-transform(translate(-100%, 0));
16
20
  }
21
+
17
22
  &-right {
18
23
  .set-popup-transform(translate(100%, 0));
19
24
  }
25
+
20
26
  &-top {
21
27
  .set-popup-transform(translate(0, -100%));
22
28
  }
29
+
23
30
  &-bottom {
24
31
  .set-popup-transform(translate(0, 100%));
25
32
  }
26
33
  }
27
- &-content, &-mask {
34
+
35
+ &-content,
36
+ &-mask {
28
37
  &[class*="-enter-active"] {
29
38
  &.translateZ {
30
39
  transform: translateZ(2PX);
31
40
  }
41
+
32
42
  transform: translate(0, 0);
33
43
  .use-var(transition, popup-enter-transition);
34
44
  }
35
45
  }
46
+
36
47
  [class*="-exit-active"] {
37
48
  .use-var(transition, popup-exit-transition);
38
49
  }
50
+
39
51
  &-content {
52
+ &[class*="-enter-active"] {
53
+ transition-duration: var(--builtin-transition-popup-slide-enter-duration, 450ms);
54
+ }
55
+ &[class*="-exit-active"] {
56
+ transition-duration: var(--builtin-transition-popup-slide-exit-duration, 240ms);
57
+ }
40
58
  &.need-bottom-offset {
59
+ padding-bottom: constant(safe-area-inset-bottom);
41
60
  padding-bottom: env(safe-area-inset-bottom);
42
61
  }
62
+
43
63
  &.left {
44
64
  left: 0;
45
65
  top: 0;
46
66
  height: 100%;
47
67
  }
68
+
48
69
  &.top {
49
70
  left: 0;
50
71
  top: 0;
51
72
  width: 100%;
52
73
  }
74
+
53
75
  &.right {
54
76
  right: 0;
55
77
  top: 0;
56
78
  height: 100%;
57
79
  }
80
+
58
81
  &.bottom {
59
82
  left: 0;
60
83
  bottom: 0;
61
84
  width: 100%;
62
85
  }
86
+
63
87
  &.translateZ {
64
88
  transform: translateZ(2PX);
65
89
  }
90
+
66
91
  .use-var(background, popup-content-background);
67
92
  position: fixed;
68
- z-index: @full-screen-z-index + 1;
93
+ z-index: @full-screen-z-index+1;
69
94
  }
95
+
70
96
  &-mask {
97
+ &[class*="-enter-active"] {
98
+ transition-duration: var(--builtin-transition-fade-enter-duration, 450ms);
99
+ }
100
+ &[class*="-exit-active"] {
101
+ transition-duration: var(--builtin-transition-fade-exit-duration, 240ms);
102
+ }
71
103
  &.translateZ {
72
104
  transform: translateZ(1PX);
73
105
  }
106
+
74
107
  position: fixed;
75
108
  width: 100%;
76
109
  height: 100%;
@@ -73,11 +73,11 @@ declare const _default: React.ForwardRefExoticComponent<PopupSwiperProps & React
73
73
  * @param {string | PopupSwiperProps} config Configuration
74
74
  * @returns {{ close: () => void; update: (newConfig: PopupSwiperProps) => void; }}
75
75
  */
76
- open: (config: Pick<import("../context-provider").WithGlobalContext<PopupSwiperProps & React.RefAttributes<PopupSwiperRef>>, "ref" | "className" | "children" | "direction" | "context" | "key" | "translateZ" | "getScrollContainer" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "getContainer" | "mountOnEnter" | "unmountOnExit" | "onClose" | "maskClass" | "maskStyle" | "contentClass" | "contentStyle" | "maskTransitionType" | "contentTransitionType" | "maskTransitionTimeout" | "contentTransitionTimeout" | "maskClosable" | "animatingClosable" | "orientationDirection" | "preventBodyScroll" | "initialBodyOverflow" | "gestureOutOfControl" | "onOpen" | "onMaskClick" | "onPreventTouchMove" | "needBottomOffset" | "percentToClose" | "distanceToClose" | "speedToClose" | "allowSwipeDirections" | "exitDirection"> & {
76
+ open: (config: Pick<import("../context-provider").WithGlobalContext<PopupSwiperProps & React.RefAttributes<PopupSwiperRef>>, "ref" | "className" | "children" | "direction" | "context" | "key" | "translateZ" | "getScrollContainer" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "getContainer" | "mountOnEnter" | "unmountOnExit" | "onClose" | "maskClass" | "maskStyle" | "contentClass" | "contentStyle" | "maskTransitionType" | "contentTransitionType" | "contentTransitionVarType" | "maskTransitionTimeout" | "contentTransitionTimeout" | "maskClosable" | "animatingClosable" | "orientationDirection" | "preventBodyScroll" | "initialBodyOverflow" | "gestureOutOfControl" | "onOpen" | "onMaskClick" | "onPreventTouchMove" | "needBottomOffset" | "percentToClose" | "distanceToClose" | "speedToClose" | "allowSwipeDirections" | "exitDirection"> & {
77
77
  key?: string | undefined;
78
78
  }, context?: import("../context-provider").GlobalContextParams | undefined) => {
79
79
  close: () => void;
80
- update: (newConfig: Pick<import("../context-provider").WithGlobalContext<PopupSwiperProps & React.RefAttributes<PopupSwiperRef>>, "ref" | "className" | "children" | "direction" | "context" | "key" | "translateZ" | "getScrollContainer" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "getContainer" | "mountOnEnter" | "unmountOnExit" | "onClose" | "maskClass" | "maskStyle" | "contentClass" | "contentStyle" | "maskTransitionType" | "contentTransitionType" | "maskTransitionTimeout" | "contentTransitionTimeout" | "maskClosable" | "animatingClosable" | "orientationDirection" | "preventBodyScroll" | "initialBodyOverflow" | "gestureOutOfControl" | "onOpen" | "onMaskClick" | "onPreventTouchMove" | "needBottomOffset" | "percentToClose" | "distanceToClose" | "speedToClose" | "allowSwipeDirections" | "exitDirection"> & {
80
+ update: (newConfig: Pick<import("../context-provider").WithGlobalContext<PopupSwiperProps & React.RefAttributes<PopupSwiperRef>>, "ref" | "className" | "children" | "direction" | "context" | "key" | "translateZ" | "getScrollContainer" | "onTouchStart" | "onTouchMove" | "onTouchEnd" | "getContainer" | "mountOnEnter" | "unmountOnExit" | "onClose" | "maskClass" | "maskStyle" | "contentClass" | "contentStyle" | "maskTransitionType" | "contentTransitionType" | "contentTransitionVarType" | "maskTransitionTimeout" | "contentTransitionTimeout" | "maskClosable" | "animatingClosable" | "orientationDirection" | "preventBodyScroll" | "initialBodyOverflow" | "gestureOutOfControl" | "onOpen" | "onMaskClick" | "onPreventTouchMove" | "needBottomOffset" | "percentToClose" | "distanceToClose" | "speedToClose" | "allowSwipeDirections" | "exitDirection"> & {
81
81
  key?: string | undefined;
82
82
  }) => void;
83
83
  };
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
3
- var _excluded = ["className", "visible", "children", "maskStyle", "contentStyle", "direction", "percentToClose", "distanceToClose", "speedToClose", "allowSwipeDirections", "exitDirection", "onTouchMove", "onTouchStart", "onTouchEnd", "onOpen", "onClose", "close"];
3
+ var _excluded = ["className", "visible", "children", "maskStyle", "contentStyle", "direction", "percentToClose", "distanceToClose", "speedToClose", "allowSwipeDirections", "exitDirection", "onTouchMove", "onTouchStart", "onTouchEnd", "onOpen", "onClose", "close", "maskTransitionTimeout", "contentTransitionTimeout"];
4
4
  import React, { useRef, forwardRef, useImperativeHandle, useCallback, useState, useEffect, useMemo } from 'react';
5
5
  import { cls, componentWrapper, nextTick } from '@arco-design/mobile-utils';
6
6
  import { ContextLayout, CompWithGlobalContext } from '../context-provider';
@@ -30,6 +30,16 @@ var PopupSwiper = /*#__PURE__*/forwardRef(function (props, ref) {
30
30
  _onOpen = props.onOpen,
31
31
  _onClose = props.onClose,
32
32
  close = props.close,
33
+ _props$maskTransition = props.maskTransitionTimeout,
34
+ maskTransitionTimeout = _props$maskTransition === void 0 ? {
35
+ enter: 450,
36
+ exit: 240
37
+ } : _props$maskTransition,
38
+ _props$contentTransit = props.contentTransitionTimeout,
39
+ contentTransitionTimeout = _props$contentTransit === void 0 ? {
40
+ enter: 450,
41
+ exit: 240
42
+ } : _props$contentTransit,
33
43
  otherProps = _objectWithoutPropertiesLoose(props, _excluded);
34
44
 
35
45
  var _useState = useState(visible),
@@ -178,7 +188,12 @@ var PopupSwiper = /*#__PURE__*/forwardRef(function (props, ref) {
178
188
  setDistance({
179
189
  direction: 'X',
180
190
  value: 0
181
- });
191
+ }); // 动画完成后需重置
192
+ // @en Reset after animation is complete
193
+
194
+ setTimeout(function () {
195
+ setHasTrans(false);
196
+ }, Math.max(typeof maskTransitionTimeout === 'number' ? maskTransitionTimeout : (maskTransitionTimeout == null ? void 0 : maskTransitionTimeout.exit) || 0, typeof contentTransitionTimeout === 'number' ? contentTransitionTimeout : (contentTransitionTimeout == null ? void 0 : contentTransitionTimeout.exit) || 0, 240));
182
197
  }
183
198
 
184
199
  touchStartTimeRef.current = 0;
@@ -243,7 +258,9 @@ var PopupSwiper = /*#__PURE__*/forwardRef(function (props, ref) {
243
258
  maskStyle: _extends({}, maskStyle || {}, {
244
259
  opacity: percent ? 1 - percent : void 0
245
260
  }),
246
- contentStyle: getContentStyle()
261
+ contentStyle: getContentStyle(),
262
+ maskTransitionTimeout: maskTransitionTimeout,
263
+ contentTransitionTimeout: contentTransitionTimeout
247
264
  }, otherProps), children);
248
265
  });
249
266
  });
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
package/esm/tabs/index.js CHANGED
@@ -363,13 +363,14 @@ var Tabs = /*#__PURE__*/forwardRef(function (props, ref) {
363
363
  cellRef.current && cellRef.current.scrollToCenter();
364
364
  }
365
365
 
366
+ setCellTrans(true);
367
+ setPaneTrans(true);
368
+
366
369
  if (!touchStartedRef.current || posAdjustingRef.current || scrollingRef.current || !touchMovedRef.current) {
367
370
  return;
368
371
  }
369
372
 
370
373
  touchStartedRef.current = false;
371
- setCellTrans(true);
372
- setPaneTrans(true);
373
374
  var touchEndTime = new Date().getTime();
374
375
  var dis = distanceRef.current;
375
376
  var speed = dis / (touchEndTime - touchStartTimeRef.current) * 1000;
@@ -503,7 +504,10 @@ var Tabs = /*#__PURE__*/forwardRef(function (props, ref) {
503
504
  renderTabBarInner: renderTabBarInner,
504
505
  tabBarStyle: tabBarStyle,
505
506
  tabBarClass: tabBarClass,
506
- tabBarStopPropagation: tabBarStopPropagation
507
+ tabBarStopPropagation: tabBarStopPropagation,
508
+ onUnderlineFirstShow: function onUnderlineFirstShow() {
509
+ return setCellTrans(true);
510
+ }
507
511
  }, commonProps);
508
512
 
509
513
  var CellComp = /*#__PURE__*/React.createElement(TabCell, cellProps);
@@ -75,6 +75,24 @@
75
75
  * }
76
76
  * ```
77
77
  */
78
+ /**
79
+ * 为属性设置 transition 变量
80
+ * @desc {en} set the transition variable for the attribute
81
+ * @param @transitionVariable transition 变量名
82
+ * @param @transitionVariable {en} transition variable name
83
+ * @param @backupVariable 备份变量名
84
+ * @param @backupVariable {en} backup variable name
85
+ * @param @property css属性名
86
+ * @param @property {en} css property
87
+ * @example
88
+ * ```
89
+ * @import '@arco-design/mobile-react/style/mixin.less';
90
+ *
91
+ * .demo {
92
+ * .use-transition-var(builtin-transition-fade-enter-duration, transition-fade-duration);
93
+ * }
94
+ * ```
95
+ */
78
96
  /**
79
97
  * 在常规模式和 rtl 模式下为属性设置 arco 提供的 token 变量
80
98
  * @desc {en} set the token variable provided by Arco for the attribute in regular mode and RTL mode
@@ -51,7 +51,8 @@ var TabCell = /*#__PURE__*/forwardRef(function (props, ref) {
51
51
  tabBarStyle = props.tabBarStyle,
52
52
  tabBarClass = props.tabBarClass,
53
53
  translateZ = props.translateZ,
54
- tabBarStopPropagation = props.tabBarStopPropagation;
54
+ tabBarStopPropagation = props.tabBarStopPropagation,
55
+ onUnderlineFirstShow = props.onUnderlineFirstShow;
55
56
  var prefix = prefixCls + "-tab-cell";
56
57
 
57
58
  var _useContext = useContext(GlobalContext),
@@ -130,6 +131,13 @@ var TabCell = /*#__PURE__*/forwardRef(function (props, ref) {
130
131
  useEffect(function () {
131
132
  updateScrollPosition();
132
133
  }, [activeIndex, wrapSize]);
134
+ useEffect(function () {
135
+ // underline 首次展示时,通知父组件启用 cellTrans
136
+ // @en When underline is first shown, notify parent component to enable cellTrans
137
+ if (showLine && onUnderlineFirstShow) {
138
+ onUnderlineFirstShow();
139
+ }
140
+ }, [showLine]);
133
141
  useUpdateEffect(function () {
134
142
  var _underlineRef$current2;
135
143
 
@@ -533,6 +533,11 @@ export interface TabCellProps extends Pick<TabsProps, 'tabs' | 'type' | 'onTabCl
533
533
  * @en Does the touch event of the current TabBar require stopPropagation
534
534
  */
535
535
  tabBarStopPropagation: boolean;
536
+ /**
537
+ * underline 首次展示时的回调
538
+ * @en Callback when underline is first shown
539
+ */
540
+ onUnderlineFirstShow?: () => void;
536
541
  }
537
542
  export interface TabCellRef {
538
543
  /**