@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
@@ -22,7 +22,7 @@
22
22
  _objectWithoutPropertiesLoose2 = _interopRequireDefault(_objectWithoutPropertiesLoose2);
23
23
  _react = _interopRequireWildcard(_react);
24
24
  _popup = _interopRequireDefault(_popup);
25
- var _excluded = ["className", "visible", "children", "maskStyle", "contentStyle", "direction", "percentToClose", "distanceToClose", "speedToClose", "allowSwipeDirections", "exitDirection", "onTouchMove", "onTouchStart", "onTouchEnd", "onOpen", "onClose", "close"];
25
+ var _excluded = ["className", "visible", "children", "maskStyle", "contentStyle", "direction", "percentToClose", "distanceToClose", "speedToClose", "allowSwipeDirections", "exitDirection", "onTouchMove", "onTouchStart", "onTouchEnd", "onOpen", "onClose", "close", "maskTransitionTimeout", "contentTransitionTimeout"];
26
26
 
27
27
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
28
28
 
@@ -51,6 +51,16 @@
51
51
  _onOpen = props.onOpen,
52
52
  _onClose = props.onClose,
53
53
  close = props.close,
54
+ _props$maskTransition = props.maskTransitionTimeout,
55
+ maskTransitionTimeout = _props$maskTransition === void 0 ? {
56
+ enter: 450,
57
+ exit: 240
58
+ } : _props$maskTransition,
59
+ _props$contentTransit = props.contentTransitionTimeout,
60
+ contentTransitionTimeout = _props$contentTransit === void 0 ? {
61
+ enter: 450,
62
+ exit: 240
63
+ } : _props$contentTransit,
54
64
  otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
55
65
 
56
66
  var _useState = (0, _react.useState)(visible),
@@ -199,7 +209,12 @@
199
209
  setDistance({
200
210
  direction: 'X',
201
211
  value: 0
202
- });
212
+ }); // 动画完成后需重置
213
+ // @en Reset after animation is complete
214
+
215
+ setTimeout(function () {
216
+ setHasTrans(false);
217
+ }, 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));
203
218
  }
204
219
 
205
220
  touchStartTimeRef.current = 0;
@@ -264,7 +279,9 @@
264
279
  maskStyle: (0, _extends2.default)({}, maskStyle || {}, {
265
280
  opacity: percent ? 1 - percent : void 0
266
281
  }),
267
- contentStyle: getContentStyle()
282
+ contentStyle: getContentStyle(),
283
+ maskTransitionTimeout: maskTransitionTimeout,
284
+ contentTransitionTimeout: contentTransitionTimeout
268
285
  }, otherProps), children);
269
286
  });
270
287
  });
@@ -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/umd/tabs/index.js CHANGED
@@ -389,13 +389,14 @@
389
389
  cellRef.current && cellRef.current.scrollToCenter();
390
390
  }
391
391
 
392
+ setCellTrans(true);
393
+ setPaneTrans(true);
394
+
392
395
  if (!touchStartedRef.current || posAdjustingRef.current || scrollingRef.current || !touchMovedRef.current) {
393
396
  return;
394
397
  }
395
398
 
396
399
  touchStartedRef.current = false;
397
- setCellTrans(true);
398
- setPaneTrans(true);
399
400
  var touchEndTime = new Date().getTime();
400
401
  var dis = distanceRef.current;
401
402
  var speed = dis / (touchEndTime - touchStartTimeRef.current) * 1000;
@@ -528,7 +529,10 @@
528
529
  renderTabBarInner: renderTabBarInner,
529
530
  tabBarStyle: tabBarStyle,
530
531
  tabBarClass: tabBarClass,
531
- tabBarStopPropagation: tabBarStopPropagation
532
+ tabBarStopPropagation: tabBarStopPropagation,
533
+ onUnderlineFirstShow: function onUnderlineFirstShow() {
534
+ return setCellTrans(true);
535
+ }
532
536
  }, commonProps);
533
537
 
534
538
  var CellComp = /*#__PURE__*/_react.default.createElement(_tabCell.default, 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
@@ -72,7 +72,8 @@
72
72
  tabBarStyle = props.tabBarStyle,
73
73
  tabBarClass = props.tabBarClass,
74
74
  translateZ = props.translateZ,
75
- tabBarStopPropagation = props.tabBarStopPropagation;
75
+ tabBarStopPropagation = props.tabBarStopPropagation,
76
+ onUnderlineFirstShow = props.onUnderlineFirstShow;
76
77
  var prefix = prefixCls + "-tab-cell";
77
78
 
78
79
  var _useContext = (0, _react.useContext)(_contextProvider.GlobalContext),
@@ -151,6 +152,13 @@
151
152
  (0, _react.useEffect)(function () {
152
153
  updateScrollPosition();
153
154
  }, [activeIndex, wrapSize]);
155
+ (0, _react.useEffect)(function () {
156
+ // underline 首次展示时,通知父组件启用 cellTrans
157
+ // @en When underline is first shown, notify parent component to enable cellTrans
158
+ if (showLine && onUnderlineFirstShow) {
159
+ onUnderlineFirstShow();
160
+ }
161
+ }, [showLine]);
154
162
  (0, _helpers.useUpdateEffect)(function () {
155
163
  var _underlineRef$current2;
156
164
 
@@ -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
  /**
@@ -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
@@ -1,11 +1,11 @@
1
- import React from 'react';
2
- import { CSSTransitionProps } from 'react-transition-group/CSSTransition';
1
+ import type { ReactNode } from 'react';
2
+ import type { CSSTransitionProps } from 'react-transition-group/CSSTransition';
3
3
  export declare type TransitionProps = Omit<CSSTransitionProps, 'timeout'> & {
4
4
  /**
5
5
  * 待执行动画内容
6
6
  * @en Animation content to be executed
7
7
  */
8
- children?: React.ReactNode;
8
+ children?: ReactNode;
9
9
  /**
10
10
  * 待执行动画css类名
11
11
  * @en Css classname of the animation to be executed
@@ -37,6 +37,12 @@ export declare type TransitionProps = Omit<CSSTransitionProps, 'timeout'> & {
37
37
  * @default true
38
38
  */
39
39
  unmountOnExit?: boolean;
40
+ /**
41
+ * 动画时长变量标识
42
+ * @en Animation duration variable identifier
43
+ * @default type 属性值
44
+ */
45
+ transitionVarType?: string;
40
46
  };
41
47
  /**
42
48
  * react-transition-group/CSSTransition 的简单封装。