antd-mobile 5.42.3 → 5.43.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 (202) hide show
  1. package/2x/bundle/antd-mobile.cjs.development.js +2383 -2054
  2. package/2x/bundle/antd-mobile.cjs.js +8 -7
  3. package/2x/bundle/antd-mobile.es.development.js +1545 -1216
  4. package/2x/bundle/antd-mobile.es.js +9230 -8978
  5. package/2x/bundle/antd-mobile.umd.development.js +2380 -2051
  6. package/2x/bundle/antd-mobile.umd.js +8 -7
  7. package/2x/bundle/style.css +116 -90
  8. package/2x/cjs/components/cascader/cascader.css +5 -0
  9. package/2x/cjs/components/cascader/cascader.d.ts +5 -3
  10. package/2x/cjs/components/cascader/cascader.js +6 -7
  11. package/2x/cjs/components/cascader/index.d.ts +2 -1
  12. package/2x/cjs/components/cascader-view/cascader-view.d.ts +8 -2
  13. package/2x/cjs/components/cascader-view/cascader-view.js +13 -10
  14. package/2x/cjs/components/cascader-view/index.d.ts +1 -1
  15. package/2x/cjs/components/date-picker/date-picker-date-utils.js +4 -10
  16. package/2x/cjs/components/date-picker/date-picker-week-utils.js +4 -4
  17. package/2x/cjs/components/date-picker/date-picker.d.ts +1 -1
  18. package/2x/cjs/components/date-picker/index.d.ts +1 -1
  19. package/2x/cjs/components/dropdown/dropdown.d.ts +6 -0
  20. package/2x/cjs/components/dropdown/dropdown.js +38 -7
  21. package/2x/cjs/components/dropdown/index.d.ts +3 -0
  22. package/2x/cjs/components/error-block/create-error-block.d.ts +3 -4
  23. package/2x/cjs/components/error-block/create-error-block.js +2 -2
  24. package/2x/cjs/components/error-block/images/busy.js +94 -89
  25. package/2x/cjs/components/error-block/images/default.js +170 -165
  26. package/2x/cjs/components/error-block/images/disconnected.js +127 -122
  27. package/2x/cjs/components/error-block/images/empty.js +123 -118
  28. package/2x/cjs/components/error-block/images/index.d.ts +1 -1
  29. package/2x/cjs/components/error-block/images/index.js +2 -2
  30. package/2x/cjs/components/floating-panel/floating-panel.d.ts +2 -0
  31. package/2x/cjs/components/floating-panel/floating-panel.js +7 -3
  32. package/2x/cjs/components/form/form-item.js +19 -11
  33. package/2x/cjs/components/form/index.d.ts +1 -1
  34. package/2x/cjs/components/input/input.d.ts +4 -2
  35. package/2x/cjs/components/input/input.js +6 -4
  36. package/2x/cjs/components/list/list-item.js +1 -1
  37. package/2x/cjs/components/notice-bar/notice-bar.js +2 -1
  38. package/2x/cjs/components/passcode-input/passcode-input.css +20 -0
  39. package/2x/cjs/components/passcode-input/passcode-input.d.ts +2 -0
  40. package/2x/cjs/components/passcode-input/passcode-input.js +6 -3
  41. package/2x/cjs/components/popover/popover.js +11 -1
  42. package/2x/cjs/components/popover/use-showing-guard.d.ts +12 -0
  43. package/2x/cjs/components/popover/use-showing-guard.js +40 -0
  44. package/2x/cjs/components/search-bar/search-bar.js +4 -5
  45. package/2x/cjs/components/segmented/segmented.css +1 -0
  46. package/2x/cjs/components/swipe-action/swipe-action.js +37 -21
  47. package/2x/cjs/components/swiper/index.d.ts +3 -1
  48. package/2x/cjs/components/swiper/swiper.d.ts +9 -2
  49. package/2x/cjs/components/swiper/swiper.js +36 -18
  50. package/2x/cjs/components/text-area/text-area.d.ts +1 -1
  51. package/2x/cjs/components/text-area/text-area.js +4 -3
  52. package/2x/cjs/components/virtual-input/use-click-outside.js +6 -4
  53. package/2x/cjs/utils/convert-px.js +7 -2
  54. package/2x/es/components/cascader/cascader.css +5 -0
  55. package/2x/es/components/cascader/cascader.d.ts +5 -3
  56. package/2x/es/components/cascader/cascader.js +7 -8
  57. package/2x/es/components/cascader/index.d.ts +2 -1
  58. package/2x/es/components/cascader-view/cascader-view.d.ts +8 -2
  59. package/2x/es/components/cascader-view/cascader-view.js +12 -9
  60. package/2x/es/components/cascader-view/index.d.ts +1 -1
  61. package/2x/es/components/date-picker/date-picker-date-utils.js +4 -9
  62. package/2x/es/components/date-picker/date-picker-week-utils.js +4 -4
  63. package/2x/es/components/date-picker/date-picker.d.ts +1 -1
  64. package/2x/es/components/date-picker/index.d.ts +1 -1
  65. package/2x/es/components/dropdown/dropdown.d.ts +6 -0
  66. package/2x/es/components/dropdown/dropdown.js +39 -8
  67. package/2x/es/components/dropdown/index.d.ts +3 -0
  68. package/2x/es/components/error-block/create-error-block.d.ts +3 -4
  69. package/2x/es/components/error-block/create-error-block.js +2 -2
  70. package/2x/es/components/error-block/images/busy.js +94 -89
  71. package/2x/es/components/error-block/images/default.js +170 -165
  72. package/2x/es/components/error-block/images/disconnected.js +127 -122
  73. package/2x/es/components/error-block/images/empty.js +123 -118
  74. package/2x/es/components/error-block/images/index.d.ts +1 -1
  75. package/2x/es/components/error-block/images/index.js +2 -2
  76. package/2x/es/components/floating-panel/floating-panel.d.ts +2 -0
  77. package/2x/es/components/floating-panel/floating-panel.js +7 -3
  78. package/2x/es/components/form/form-item.js +19 -11
  79. package/2x/es/components/form/index.d.ts +1 -1
  80. package/2x/es/components/input/input.d.ts +4 -2
  81. package/2x/es/components/input/input.js +6 -4
  82. package/2x/es/components/list/list-item.js +1 -1
  83. package/2x/es/components/notice-bar/notice-bar.js +2 -1
  84. package/2x/es/components/passcode-input/passcode-input.css +20 -0
  85. package/2x/es/components/passcode-input/passcode-input.d.ts +2 -0
  86. package/2x/es/components/passcode-input/passcode-input.js +6 -3
  87. package/2x/es/components/popover/popover.js +11 -1
  88. package/2x/es/components/popover/use-showing-guard.d.ts +12 -0
  89. package/2x/es/components/popover/use-showing-guard.js +34 -0
  90. package/2x/es/components/search-bar/search-bar.js +4 -5
  91. package/2x/es/components/segmented/segmented.css +1 -0
  92. package/2x/es/components/swipe-action/swipe-action.js +37 -21
  93. package/2x/es/components/swiper/index.d.ts +3 -1
  94. package/2x/es/components/swiper/swiper.d.ts +9 -2
  95. package/2x/es/components/swiper/swiper.js +35 -19
  96. package/2x/es/components/text-area/text-area.d.ts +1 -1
  97. package/2x/es/components/text-area/text-area.js +4 -3
  98. package/2x/es/components/virtual-input/use-click-outside.js +7 -4
  99. package/2x/es/utils/convert-px.js +7 -2
  100. package/2x/package.json +1 -1
  101. package/bundle/antd-mobile.cjs.development.js +2383 -2054
  102. package/bundle/antd-mobile.cjs.js +8 -7
  103. package/bundle/antd-mobile.compatible.umd.js +1 -1
  104. package/bundle/antd-mobile.es.development.js +1545 -1216
  105. package/bundle/antd-mobile.es.js +9230 -8978
  106. package/bundle/antd-mobile.umd.development.js +2380 -2051
  107. package/bundle/antd-mobile.umd.js +8 -7
  108. package/bundle/style.css +1 -1
  109. package/cjs/components/cascader/cascader.css +4 -0
  110. package/cjs/components/cascader/cascader.d.ts +5 -3
  111. package/cjs/components/cascader/cascader.js +6 -7
  112. package/cjs/components/cascader/index.d.ts +2 -1
  113. package/cjs/components/cascader-view/cascader-view.d.ts +8 -2
  114. package/cjs/components/cascader-view/cascader-view.js +13 -10
  115. package/cjs/components/cascader-view/index.d.ts +1 -1
  116. package/cjs/components/date-picker/date-picker-date-utils.js +4 -10
  117. package/cjs/components/date-picker/date-picker-week-utils.js +4 -4
  118. package/cjs/components/date-picker/date-picker.d.ts +1 -1
  119. package/cjs/components/date-picker/index.d.ts +1 -1
  120. package/cjs/components/dropdown/dropdown.d.ts +6 -0
  121. package/cjs/components/dropdown/dropdown.js +38 -7
  122. package/cjs/components/dropdown/index.d.ts +3 -0
  123. package/cjs/components/error-block/create-error-block.d.ts +3 -4
  124. package/cjs/components/error-block/create-error-block.js +2 -2
  125. package/cjs/components/error-block/images/busy.js +94 -89
  126. package/cjs/components/error-block/images/default.js +170 -165
  127. package/cjs/components/error-block/images/disconnected.js +127 -122
  128. package/cjs/components/error-block/images/empty.js +123 -118
  129. package/cjs/components/error-block/images/index.d.ts +1 -1
  130. package/cjs/components/error-block/images/index.js +2 -2
  131. package/cjs/components/floating-panel/floating-panel.d.ts +2 -0
  132. package/cjs/components/floating-panel/floating-panel.js +7 -3
  133. package/cjs/components/form/form-item.js +19 -11
  134. package/cjs/components/form/index.d.ts +1 -1
  135. package/cjs/components/input/input.d.ts +4 -2
  136. package/cjs/components/input/input.js +6 -4
  137. package/cjs/components/list/list-item.js +1 -1
  138. package/cjs/components/notice-bar/notice-bar.js +2 -1
  139. package/cjs/components/passcode-input/passcode-input.css +15 -0
  140. package/cjs/components/passcode-input/passcode-input.d.ts +2 -0
  141. package/cjs/components/passcode-input/passcode-input.js +6 -3
  142. package/cjs/components/popover/popover.js +11 -1
  143. package/cjs/components/popover/use-showing-guard.d.ts +12 -0
  144. package/cjs/components/popover/use-showing-guard.js +40 -0
  145. package/cjs/components/search-bar/search-bar.js +4 -5
  146. package/cjs/components/segmented/segmented.css +1 -0
  147. package/cjs/components/swipe-action/swipe-action.js +37 -21
  148. package/cjs/components/swiper/index.d.ts +3 -1
  149. package/cjs/components/swiper/swiper.d.ts +9 -2
  150. package/cjs/components/swiper/swiper.js +36 -18
  151. package/cjs/components/text-area/text-area.d.ts +1 -1
  152. package/cjs/components/text-area/text-area.js +4 -3
  153. package/cjs/components/virtual-input/use-click-outside.js +6 -4
  154. package/cjs/utils/convert-px.js +7 -2
  155. package/es/components/cascader/cascader.css +4 -0
  156. package/es/components/cascader/cascader.d.ts +5 -3
  157. package/es/components/cascader/cascader.js +7 -8
  158. package/es/components/cascader/index.d.ts +2 -1
  159. package/es/components/cascader-view/cascader-view.d.ts +8 -2
  160. package/es/components/cascader-view/cascader-view.js +12 -9
  161. package/es/components/cascader-view/index.d.ts +1 -1
  162. package/es/components/date-picker/date-picker-date-utils.js +4 -9
  163. package/es/components/date-picker/date-picker-week-utils.js +4 -4
  164. package/es/components/date-picker/date-picker.d.ts +1 -1
  165. package/es/components/date-picker/index.d.ts +1 -1
  166. package/es/components/dropdown/dropdown.d.ts +6 -0
  167. package/es/components/dropdown/dropdown.js +39 -8
  168. package/es/components/dropdown/index.d.ts +3 -0
  169. package/es/components/error-block/create-error-block.d.ts +3 -4
  170. package/es/components/error-block/create-error-block.js +2 -2
  171. package/es/components/error-block/images/busy.js +94 -89
  172. package/es/components/error-block/images/default.js +170 -165
  173. package/es/components/error-block/images/disconnected.js +127 -122
  174. package/es/components/error-block/images/empty.js +123 -118
  175. package/es/components/error-block/images/index.d.ts +1 -1
  176. package/es/components/error-block/images/index.js +2 -2
  177. package/es/components/floating-panel/floating-panel.d.ts +2 -0
  178. package/es/components/floating-panel/floating-panel.js +7 -3
  179. package/es/components/form/form-item.js +19 -11
  180. package/es/components/form/index.d.ts +1 -1
  181. package/es/components/input/input.d.ts +4 -2
  182. package/es/components/input/input.js +6 -4
  183. package/es/components/list/list-item.js +1 -1
  184. package/es/components/notice-bar/notice-bar.js +2 -1
  185. package/es/components/passcode-input/passcode-input.css +15 -0
  186. package/es/components/passcode-input/passcode-input.d.ts +2 -0
  187. package/es/components/passcode-input/passcode-input.js +6 -3
  188. package/es/components/popover/popover.js +11 -1
  189. package/es/components/popover/use-showing-guard.d.ts +12 -0
  190. package/es/components/popover/use-showing-guard.js +34 -0
  191. package/es/components/search-bar/search-bar.js +4 -5
  192. package/es/components/segmented/segmented.css +1 -0
  193. package/es/components/swipe-action/swipe-action.js +37 -21
  194. package/es/components/swiper/index.d.ts +3 -1
  195. package/es/components/swiper/swiper.d.ts +9 -2
  196. package/es/components/swiper/swiper.js +35 -19
  197. package/es/components/text-area/text-area.d.ts +1 -1
  198. package/es/components/text-area/text-area.js +4 -3
  199. package/es/components/virtual-input/use-click-outside.js +7 -4
  200. package/es/utils/convert-px.js +7 -2
  201. package/package.json +1 -1
  202. package/umd/antd-mobile.js +1 -1
@@ -93,7 +93,7 @@ export const TextArea = forwardRef((p, ref) => {
93
93
  }
94
94
  return withNativeProps(props, React.createElement("div", {
95
95
  className: classPrefix
96
- }, React.createElement("textarea", {
96
+ }, React.createElement("textarea", Object.assign({
97
97
  ref: nativeTextAreaRef,
98
98
  className: `${classPrefix}-element`,
99
99
  rows: rows,
@@ -129,9 +129,10 @@ export const TextArea = forwardRef((p, ref) => {
129
129
  onFocus: props.onFocus,
130
130
  onBlur: props.onBlur,
131
131
  onClick: props.onClick,
132
- onKeyDown: handleKeydown,
132
+ onKeyDown: handleKeydown
133
+ }, {
133
134
  enterKeyHint: props.enterKeyHint
134
- }), count, autoSize && React.createElement("textarea", {
135
+ })), count, autoSize && React.createElement("textarea", {
135
136
  ref: hiddenTextAreaRef,
136
137
  className: `${classPrefix}-element ${classPrefix}-element-hidden`,
137
138
  value: value,
@@ -1,12 +1,14 @@
1
+ import { useEvent } from 'rc-util';
1
2
  import { useEffect } from 'react';
2
3
  // 监听点击组件外部的事件
3
4
  function useClickOutside(handler, ref, hasKeyboardProps = false) {
5
+ const stableHandler = useEvent(handler);
4
6
  useEffect(() => {
5
7
  function handleClick(event) {
6
8
  if (!ref.current || ref.current.contains(event.target)) {
7
9
  return;
8
10
  }
9
- handler(event);
11
+ stableHandler(event); // 使用 ref 中的 handler
10
12
  }
11
13
  // 向前兼容逻辑:
12
14
  // 1. 对于有键盘属性的 VirtualInput,在捕获阶段监听:
@@ -15,10 +17,11 @@ function useClickOutside(handler, ref, hasKeyboardProps = false) {
15
17
  // 这种情况通常是 VirtualInput + NumberKeyboard 为兄弟关系,在以前版本中点击 NumberKeyboard **不会**触发 VirtualInput 的 blur 事件
16
18
  // 原先原理:通过 NumberKeyboard 内部 onMouseDown 时 preventDefault 阻止的 VirtualInput 内原生的 blur 事件
17
19
  // 新的原理:NumberKeyboard 的 Popup 默认会 stopPropagation click, 这里在冒泡阶段监听不到,不会调用 VirtualInput 的 onBlur 回调(非原生事件)。
18
- document.addEventListener('click', handleClick, hasKeyboardProps ? true : false);
20
+ document.addEventListener('click', handleClick, hasKeyboardProps);
19
21
  return () => {
20
- document.removeEventListener('click', handleClick, hasKeyboardProps ? true : false);
22
+ document.removeEventListener('click', handleClick, hasKeyboardProps);
21
23
  };
22
- }, [handler, ref]);
24
+ }, [ref]); // 只依赖 ref,不依赖 handler
23
25
  }
26
+
24
27
  export default useClickOutside;
@@ -1,9 +1,11 @@
1
1
  import { canUseDom } from './can-use-dom';
2
- import { isDev } from './is-dev';
3
2
  import { devError } from './dev-log';
3
+ import { isDev } from './is-dev';
4
4
  let tenPxTester = null;
5
5
  let tester = null;
6
- if (canUseDom) {
6
+ function initialize() {
7
+ if (tenPxTester !== null) return;
8
+ if (!canUseDom || !document.body) return;
7
9
  tenPxTester = document.createElement('div');
8
10
  tenPxTester.className = 'adm-px-tester';
9
11
  tenPxTester.style.setProperty('--size', '10');
@@ -18,6 +20,9 @@ if (canUseDom) {
18
20
  }
19
21
  }
20
22
  export function convertPx(px) {
23
+ if (tenPxTester === null) {
24
+ initialize();
25
+ }
21
26
  if (tenPxTester === null || tester === null) return px;
22
27
  if (tenPxTester.getBoundingClientRect().height === 10) {
23
28
  return px;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antd-mobile",
3
- "version": "5.42.3",
3
+ "version": "5.43.0",
4
4
  "homepage": "https://github.com/ant-design/ant-design-mobile#readme",
5
5
  "bugs": {
6
6
  "url": "https://github.com/ant-design/ant-design-mobile/issues"