antd-mobile 5.11.1 → 5.11.2

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 (69) hide show
  1. package/2x/cjs/components/image-uploader/image-uploader.js +9 -2
  2. package/2x/cjs/components/list/list-item.js +7 -5
  3. package/2x/cjs/components/text-area/text-area.js +1 -1
  4. package/2x/cjs/components/virtual-input/virtual-input.js +2 -1
  5. package/2x/cjs/locales/base.d.ts +1 -0
  6. package/2x/cjs/locales/base.js +2 -1
  7. package/2x/cjs/locales/en-US.d.ts +1 -0
  8. package/2x/cjs/locales/es-ES.d.ts +1 -0
  9. package/2x/cjs/locales/fa-IR.d.ts +1 -0
  10. package/2x/cjs/locales/ko-KR.d.ts +1 -0
  11. package/2x/cjs/locales/zh-CN.d.ts +1 -0
  12. package/2x/cjs/locales/zh-CN.js +2 -1
  13. package/2x/cjs/locales/zh-HK.d.ts +1 -0
  14. package/2x/cjs/locales/zh-TW.d.ts +1 -0
  15. package/2x/cjs/utils/is-node-with-content.d.ts +4 -0
  16. package/2x/cjs/utils/is-node-with-content.js +10 -0
  17. package/2x/es/components/image-uploader/image-uploader.js +8 -2
  18. package/2x/es/components/list/list-item.js +6 -5
  19. package/2x/es/components/text-area/text-area.js +2 -2
  20. package/2x/es/components/virtual-input/virtual-input.js +2 -1
  21. package/2x/es/locales/base.d.ts +1 -0
  22. package/2x/es/locales/base.js +2 -1
  23. package/2x/es/locales/en-US.d.ts +1 -0
  24. package/2x/es/locales/es-ES.d.ts +1 -0
  25. package/2x/es/locales/fa-IR.d.ts +1 -0
  26. package/2x/es/locales/ko-KR.d.ts +1 -0
  27. package/2x/es/locales/zh-CN.d.ts +1 -0
  28. package/2x/es/locales/zh-CN.js +2 -1
  29. package/2x/es/locales/zh-HK.d.ts +1 -0
  30. package/2x/es/locales/zh-TW.d.ts +1 -0
  31. package/2x/es/utils/is-node-with-content.d.ts +4 -0
  32. package/2x/es/utils/is-node-with-content.js +3 -0
  33. package/2x/package.json +1 -1
  34. package/bundle/antd-mobile.cjs.js +22 -11
  35. package/bundle/antd-mobile.es.js +23 -12
  36. package/cjs/components/image-uploader/image-uploader.js +9 -2
  37. package/cjs/components/list/list-item.js +7 -5
  38. package/cjs/components/text-area/text-area.js +1 -1
  39. package/cjs/components/virtual-input/virtual-input.js +2 -1
  40. package/cjs/locales/base.d.ts +1 -0
  41. package/cjs/locales/base.js +2 -1
  42. package/cjs/locales/en-US.d.ts +1 -0
  43. package/cjs/locales/es-ES.d.ts +1 -0
  44. package/cjs/locales/fa-IR.d.ts +1 -0
  45. package/cjs/locales/ko-KR.d.ts +1 -0
  46. package/cjs/locales/zh-CN.d.ts +1 -0
  47. package/cjs/locales/zh-CN.js +2 -1
  48. package/cjs/locales/zh-HK.d.ts +1 -0
  49. package/cjs/locales/zh-TW.d.ts +1 -0
  50. package/cjs/utils/is-node-with-content.d.ts +4 -0
  51. package/cjs/utils/is-node-with-content.js +10 -0
  52. package/es/components/image-uploader/image-uploader.js +8 -2
  53. package/es/components/list/list-item.js +6 -5
  54. package/es/components/text-area/text-area.js +2 -2
  55. package/es/components/virtual-input/virtual-input.js +2 -1
  56. package/es/locales/base.d.ts +1 -0
  57. package/es/locales/base.js +2 -1
  58. package/es/locales/en-US.d.ts +1 -0
  59. package/es/locales/es-ES.d.ts +1 -0
  60. package/es/locales/fa-IR.d.ts +1 -0
  61. package/es/locales/ko-KR.d.ts +1 -0
  62. package/es/locales/zh-CN.d.ts +1 -0
  63. package/es/locales/zh-CN.js +2 -1
  64. package/es/locales/zh-HK.d.ts +1 -0
  65. package/es/locales/zh-TW.d.ts +1 -0
  66. package/es/utils/is-node-with-content.d.ts +4 -0
  67. package/es/utils/is-node-with-content.js +3 -0
  68. package/package.json +1 -1
  69. package/umd/antd-mobile.js +1 -1
@@ -25,6 +25,8 @@ var _space = _interopRequireDefault(require("../space"));
25
25
 
26
26
  var _nativeProps = require("../../utils/native-props");
27
27
 
28
+ var _configProvider = require("../config-provider");
29
+
28
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
31
 
30
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -46,6 +48,9 @@ const defaultProps = {
46
48
  };
47
49
 
48
50
  const ImageUploader = p => {
51
+ const {
52
+ locale
53
+ } = (0, _configProvider.useConfig)();
49
54
  const props = (0, _withDefaultProps.mergeProps)(defaultProps, p);
50
55
  const [value, setValue] = (0, _usePropsValue.usePropsValue)(props);
51
56
  const updateValue = (0, _ahooks.useMemoizedFn)(updater => {
@@ -218,7 +223,8 @@ const ImageUploader = p => {
218
223
  className: `${classPrefix}-upload-button-wrap`
219
224
  }, props.children ? props.children : _react.default.createElement("span", {
220
225
  className: `${classPrefix}-cell ${classPrefix}-upload-button`,
221
- role: 'button'
226
+ role: 'button',
227
+ "aria-label": locale.ImageUploader.upload
222
228
  }, _react.default.createElement("span", {
223
229
  className: `${classPrefix}-upload-button-icon`
224
230
  }, _react.default.createElement(_antdMobileIcons.AddOutline, null))), !props.disableUpload && _react.default.createElement("input", {
@@ -227,7 +233,8 @@ const ImageUploader = p => {
227
233
  multiple: props.multiple,
228
234
  type: 'file',
229
235
  className: `${classPrefix}-input`,
230
- onChange: onChange
236
+ onChange: onChange,
237
+ "aria-hidden": true
231
238
  })))));
232
239
  };
233
240
 
@@ -13,6 +13,8 @@ var _antdMobileIcons = require("antd-mobile-icons");
13
13
 
14
14
  var _classnames = _interopRequireDefault(require("classnames"));
15
15
 
16
+ var _isNodeWithContent = require("../../utils/is-node-with-content");
17
+
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
19
 
18
20
  const classPrefix = `adm-list-item`;
@@ -25,17 +27,17 @@ const ListItem = props => {
25
27
 
26
28
  const content = _react.default.createElement("div", {
27
29
  className: `${classPrefix}-content`
28
- }, props.prefix && _react.default.createElement("div", {
30
+ }, (0, _isNodeWithContent.isNodeWithContent)(props.prefix) && _react.default.createElement("div", {
29
31
  className: `${classPrefix}-content-prefix`
30
32
  }, props.prefix), _react.default.createElement("div", {
31
33
  className: `${classPrefix}-content-main`
32
- }, props.title && _react.default.createElement("div", {
34
+ }, (0, _isNodeWithContent.isNodeWithContent)(props.title) && _react.default.createElement("div", {
33
35
  className: `${classPrefix}-title`
34
- }, props.title), props.children, props.description && _react.default.createElement("div", {
36
+ }, props.title), props.children, (0, _isNodeWithContent.isNodeWithContent)(props.description) && _react.default.createElement("div", {
35
37
  className: `${classPrefix}-description`
36
- }, props.description)), props.extra && _react.default.createElement("div", {
38
+ }, props.description)), (0, _isNodeWithContent.isNodeWithContent)(props.extra) && _react.default.createElement("div", {
37
39
  className: `${classPrefix}-content-extra`
38
- }, props.extra), arrow && _react.default.createElement("div", {
40
+ }, props.extra), (0, _isNodeWithContent.isNodeWithContent)(arrow) && _react.default.createElement("div", {
39
41
  className: `${classPrefix}-content-arrow`
40
42
  }, arrow === true ? _react.default.createElement(_antdMobileIcons.RightOutline, null) : arrow));
41
43
 
@@ -57,7 +57,7 @@ const TextArea = (0, _react.forwardRef)((p, ref) => {
57
57
  (_a = nativeTextAreaRef.current) === null || _a === void 0 ? void 0 : _a.blur();
58
58
  }
59
59
  }));
60
- (0, _react.useEffect)(() => {
60
+ (0, _react.useLayoutEffect)(() => {
61
61
  if (!autoSize) return;
62
62
  const textArea = nativeTextAreaRef.current;
63
63
  if (!textArea) return;
@@ -105,7 +105,8 @@ const VirtualInput = (0, _react.forwardRef)((p, ref) => {
105
105
 
106
106
  (_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.blur();
107
107
  (_c = (_b = keyboard.props).onClose) === null || _c === void 0 ? void 0 : _c.call(_b);
108
- }
108
+ },
109
+ getContainer: null
109
110
  });
110
111
 
111
112
  return (0, _nativeProps.withNativeProps)(props, _react.default.createElement("div", {
@@ -86,6 +86,7 @@ export declare const base: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -92,7 +92,8 @@ const base = {
92
92
  }
93
93
  },
94
94
  ImageUploader: {
95
- uploading: 'Uploading...'
95
+ uploading: 'Uploading...',
96
+ upload: 'Upload'
96
97
  },
97
98
  InfiniteScroll: {
98
99
  noMore: 'No more'
@@ -86,6 +86,7 @@ declare const enUS: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,6 +86,7 @@ declare const esES: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,6 +86,7 @@ declare const faIR: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,6 +86,7 @@ declare const koKR: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,6 +86,7 @@ declare const zhCN: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -97,7 +97,8 @@ const zhCN = (0, _mergeLocale.mergeLocale)(_base.base, {
97
97
  }
98
98
  },
99
99
  ImageUploader: {
100
- uploading: '上传中...'
100
+ uploading: '上传中...',
101
+ upload: '上传'
101
102
  },
102
103
  InfiniteScroll: {
103
104
  noMore: '没有更多了'
@@ -86,6 +86,7 @@ declare const zhHK: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,6 +86,7 @@ declare const zhTW: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -0,0 +1,4 @@
1
+ import { ReactNode } from 'react';
2
+ declare type Regulated<T> = T extends null | undefined | false ? never : T;
3
+ export declare function isNodeWithContent(node: ReactNode): node is Regulated<ReactNode>;
4
+ export {};
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isNodeWithContent = isNodeWithContent;
7
+
8
+ function isNodeWithContent(node) {
9
+ return node !== undefined && node !== null && node !== false;
10
+ }
@@ -8,6 +8,7 @@ import { usePropsValue } from '../../utils/use-props-value';
8
8
  import { useIsomorphicLayoutEffect, useMemoizedFn, useUnmount } from 'ahooks';
9
9
  import Space from '../space';
10
10
  import { withNativeProps } from '../../utils/native-props';
11
+ import { useConfig } from '../config-provider';
11
12
  const classPrefix = `adm-image-uploader`;
12
13
  const defaultProps = {
13
14
  disableUpload: false,
@@ -22,6 +23,9 @@ const defaultProps = {
22
23
  imageFit: 'cover'
23
24
  };
24
25
  export const ImageUploader = p => {
26
+ const {
27
+ locale
28
+ } = useConfig();
25
29
  const props = mergeProps(defaultProps, p);
26
30
  const [value, setValue] = usePropsValue(props);
27
31
  const updateValue = useMemoizedFn(updater => {
@@ -194,7 +198,8 @@ export const ImageUploader = p => {
194
198
  className: `${classPrefix}-upload-button-wrap`
195
199
  }, props.children ? props.children : React.createElement("span", {
196
200
  className: `${classPrefix}-cell ${classPrefix}-upload-button`,
197
- role: 'button'
201
+ role: 'button',
202
+ "aria-label": locale.ImageUploader.upload
198
203
  }, React.createElement("span", {
199
204
  className: `${classPrefix}-upload-button-icon`
200
205
  }, React.createElement(AddOutline, null))), !props.disableUpload && React.createElement("input", {
@@ -203,6 +208,7 @@ export const ImageUploader = p => {
203
208
  multiple: props.multiple,
204
209
  type: 'file',
205
210
  className: `${classPrefix}-input`,
206
- onChange: onChange
211
+ onChange: onChange,
212
+ "aria-hidden": true
207
213
  })))));
208
214
  };
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { withNativeProps } from '../../utils/native-props';
3
3
  import { RightOutline } from 'antd-mobile-icons';
4
4
  import classNames from 'classnames';
5
+ import { isNodeWithContent } from '../../utils/is-node-with-content';
5
6
  const classPrefix = `adm-list-item`;
6
7
  export const ListItem = props => {
7
8
  var _a;
@@ -10,17 +11,17 @@ export const ListItem = props => {
10
11
  const arrow = props.arrow === undefined ? clickable : props.arrow;
11
12
  const content = React.createElement("div", {
12
13
  className: `${classPrefix}-content`
13
- }, props.prefix && React.createElement("div", {
14
+ }, isNodeWithContent(props.prefix) && React.createElement("div", {
14
15
  className: `${classPrefix}-content-prefix`
15
16
  }, props.prefix), React.createElement("div", {
16
17
  className: `${classPrefix}-content-main`
17
- }, props.title && React.createElement("div", {
18
+ }, isNodeWithContent(props.title) && React.createElement("div", {
18
19
  className: `${classPrefix}-title`
19
- }, props.title), props.children, props.description && React.createElement("div", {
20
+ }, props.title), props.children, isNodeWithContent(props.description) && React.createElement("div", {
20
21
  className: `${classPrefix}-description`
21
- }, props.description)), props.extra && React.createElement("div", {
22
+ }, props.description)), isNodeWithContent(props.extra) && React.createElement("div", {
22
23
  className: `${classPrefix}-content-extra`
23
- }, props.extra), arrow && React.createElement("div", {
24
+ }, props.extra), isNodeWithContent(arrow) && React.createElement("div", {
24
25
  className: `${classPrefix}-content-arrow`
25
26
  }, arrow === true ? React.createElement(RightOutline, null) : arrow));
26
27
  return withNativeProps(props, React.createElement(clickable ? 'a' : 'div', {
@@ -1,4 +1,4 @@
1
- import React, { forwardRef, useEffect, useImperativeHandle, useRef } from 'react';
1
+ import React, { forwardRef, useLayoutEffect, useImperativeHandle, useRef } from 'react';
2
2
  import { withNativeProps } from '../../utils/native-props';
3
3
  import { usePropsValue } from '../../utils/use-props-value';
4
4
  import { mergeProps } from '../../utils/with-default-props';
@@ -41,7 +41,7 @@ export const TextArea = forwardRef((p, ref) => {
41
41
  (_a = nativeTextAreaRef.current) === null || _a === void 0 ? void 0 : _a.blur();
42
42
  }
43
43
  }));
44
- useEffect(() => {
44
+ useLayoutEffect(() => {
45
45
  if (!autoSize) return;
46
46
  const textArea = nativeTextAreaRef.current;
47
47
  if (!textArea) return;
@@ -84,7 +84,8 @@ export const VirtualInput = forwardRef((p, ref) => {
84
84
 
85
85
  (_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.blur();
86
86
  (_c = (_b = keyboard.props).onClose) === null || _c === void 0 ? void 0 : _c.call(_b);
87
- }
87
+ },
88
+ getContainer: null
88
89
  });
89
90
  return withNativeProps(props, React.createElement("div", {
90
91
  ref: rootRef,
@@ -86,6 +86,7 @@ export declare const base: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,7 +86,8 @@ export const base = {
86
86
  }
87
87
  },
88
88
  ImageUploader: {
89
- uploading: 'Uploading...'
89
+ uploading: 'Uploading...',
90
+ upload: 'Upload'
90
91
  },
91
92
  InfiniteScroll: {
92
93
  noMore: 'No more'
@@ -86,6 +86,7 @@ declare const enUS: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,6 +86,7 @@ declare const esES: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,6 +86,7 @@ declare const faIR: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,6 +86,7 @@ declare const koKR: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,6 +86,7 @@ declare const zhCN: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -88,7 +88,8 @@ const zhCN = mergeLocale(base, {
88
88
  }
89
89
  },
90
90
  ImageUploader: {
91
- uploading: '上传中...'
91
+ uploading: '上传中...',
92
+ upload: '上传'
92
93
  },
93
94
  InfiniteScroll: {
94
95
  noMore: '没有更多了'
@@ -86,6 +86,7 @@ declare const zhHK: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -86,6 +86,7 @@ declare const zhTW: {
86
86
  };
87
87
  ImageUploader: {
88
88
  uploading: string;
89
+ upload: string;
89
90
  };
90
91
  InfiniteScroll: {
91
92
  noMore: string;
@@ -0,0 +1,4 @@
1
+ import { ReactNode } from 'react';
2
+ declare type Regulated<T> = T extends null | undefined | false ? never : T;
3
+ export declare function isNodeWithContent(node: ReactNode): node is Regulated<ReactNode>;
4
+ export {};
@@ -0,0 +1,3 @@
1
+ export function isNodeWithContent(node) {
2
+ return node !== undefined && node !== null && node !== false;
3
+ }
package/2x/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antd-mobile",
3
- "version": "5.11.1",
3
+ "version": "5.11.2",
4
4
  "dependencies": {
5
5
  "@floating-ui/dom": "^0.4.2",
6
6
  "@react-spring/web": "^9.4.4",
@@ -1323,7 +1323,8 @@ const base = {
1323
1323
  }
1324
1324
  },
1325
1325
  ImageUploader: {
1326
- uploading: "Uploading..."
1326
+ uploading: "Uploading...",
1327
+ upload: "Upload"
1327
1328
  },
1328
1329
  InfiniteScroll: {
1329
1330
  noMore: "No more"
@@ -1428,7 +1429,8 @@ const zhCN = mergeLocale(base, {
1428
1429
  }
1429
1430
  },
1430
1431
  ImageUploader: {
1431
- uploading: "\u4E0A\u4F20\u4E2D..."
1432
+ uploading: "\u4E0A\u4F20\u4E2D...",
1433
+ upload: "\u4E0A\u4F20"
1432
1434
  },
1433
1435
  InfiniteScroll: {
1434
1436
  noMore: "\u6CA1\u6709\u66F4\u591A\u4E86"
@@ -10354,6 +10356,9 @@ const List$1 = (p) => {
10354
10356
  className: `${classPrefix$$}-body-inner`
10355
10357
  }, props.children))));
10356
10358
  };
10359
+ function isNodeWithContent(node) {
10360
+ return node !== void 0 && node !== null && node !== false;
10361
+ }
10357
10362
  const classPrefix$_ = `adm-list-item`;
10358
10363
  const ListItem = (props) => {
10359
10364
  var _a;
@@ -10361,17 +10366,17 @@ const ListItem = (props) => {
10361
10366
  const arrow = props.arrow === void 0 ? clickable : props.arrow;
10362
10367
  const content = React__default["default"].createElement("div", {
10363
10368
  className: `${classPrefix$_}-content`
10364
- }, props.prefix && React__default["default"].createElement("div", {
10369
+ }, isNodeWithContent(props.prefix) && React__default["default"].createElement("div", {
10365
10370
  className: `${classPrefix$_}-content-prefix`
10366
10371
  }, props.prefix), React__default["default"].createElement("div", {
10367
10372
  className: `${classPrefix$_}-content-main`
10368
- }, props.title && React__default["default"].createElement("div", {
10373
+ }, isNodeWithContent(props.title) && React__default["default"].createElement("div", {
10369
10374
  className: `${classPrefix$_}-title`
10370
- }, props.title), props.children, props.description && React__default["default"].createElement("div", {
10375
+ }, props.title), props.children, isNodeWithContent(props.description) && React__default["default"].createElement("div", {
10371
10376
  className: `${classPrefix$_}-description`
10372
- }, props.description)), props.extra && React__default["default"].createElement("div", {
10377
+ }, props.description)), isNodeWithContent(props.extra) && React__default["default"].createElement("div", {
10373
10378
  className: `${classPrefix$_}-content-extra`
10374
- }, props.extra), arrow && React__default["default"].createElement("div", {
10379
+ }, props.extra), isNodeWithContent(arrow) && React__default["default"].createElement("div", {
10375
10380
  className: `${classPrefix$_}-content-arrow`
10376
10381
  }, arrow === true ? React__default["default"].createElement(antdMobileIcons.RightOutline, null) : arrow));
10377
10382
  return withNativeProps(props, React__default["default"].createElement(clickable ? "a" : "div", {
@@ -14166,6 +14171,9 @@ const defaultProps$t = {
14166
14171
  imageFit: "cover"
14167
14172
  };
14168
14173
  const ImageUploader = (p) => {
14174
+ const {
14175
+ locale
14176
+ } = useConfig();
14169
14177
  const props = mergeProps(defaultProps$t, p);
14170
14178
  const [value, setValue] = usePropsValue(props);
14171
14179
  const updateValue = ahooks.useMemoizedFn((updater) => {
@@ -14322,7 +14330,8 @@ const ImageUploader = (p) => {
14322
14330
  className: `${classPrefix$z}-upload-button-wrap`
14323
14331
  }, props.children ? props.children : React__default["default"].createElement("span", {
14324
14332
  className: `${classPrefix$z}-cell ${classPrefix$z}-upload-button`,
14325
- role: "button"
14333
+ role: "button",
14334
+ "aria-label": locale.ImageUploader.upload
14326
14335
  }, React__default["default"].createElement("span", {
14327
14336
  className: `${classPrefix$z}-upload-button-icon`
14328
14337
  }, React__default["default"].createElement(antdMobileIcons.AddOutline, null))), !props.disableUpload && React__default["default"].createElement("input", {
@@ -14331,7 +14340,8 @@ const ImageUploader = (p) => {
14331
14340
  multiple: props.multiple,
14332
14341
  type: "file",
14333
14342
  className: `${classPrefix$z}-input`,
14334
- onChange
14343
+ onChange,
14344
+ "aria-hidden": true
14335
14345
  })))));
14336
14346
  };
14337
14347
  var imageUploader = "";
@@ -17189,7 +17199,7 @@ const TextArea = React$1.forwardRef((p, ref) => {
17189
17199
  (_a = nativeTextAreaRef.current) === null || _a === void 0 ? void 0 : _a.blur();
17190
17200
  }
17191
17201
  }));
17192
- React$1.useEffect(() => {
17202
+ React$1.useLayoutEffect(() => {
17193
17203
  if (!autoSize)
17194
17204
  return;
17195
17205
  const textArea2 = nativeTextAreaRef.current;
@@ -17825,7 +17835,8 @@ const VirtualInput = React$1.forwardRef((p, ref) => {
17825
17835
  var _a, _b, _c;
17826
17836
  (_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.blur();
17827
17837
  (_c = (_b = keyboard.props).onClose) === null || _c === void 0 ? void 0 : _c.call(_b);
17828
- }
17838
+ },
17839
+ getContainer: null
17829
17840
  });
17830
17841
  return withNativeProps(props, React__default["default"].createElement("div", {
17831
17842
  ref: rootRef,
@@ -1,5 +1,5 @@
1
1
  import { __rest, __awaiter } from "tslib";
2
- import React$1, { useContext, useRef, useEffect, useMemo, useState, memo, forwardRef, useImperativeHandle, useCallback, createContext, cloneElement, createRef } from "react";
2
+ import React$1, { useContext, useRef, useEffect, useMemo, useState, memo, forwardRef, useImperativeHandle, useCallback, createContext, cloneElement, useLayoutEffect, createRef } from "react";
3
3
  import classNames from "classnames";
4
4
  import { useUnmountedRef, useUpdate, useMemoizedFn, useUpdateEffect, useIsomorphicLayoutEffect, createUpdateEffect, useThrottleFn, useDebounceEffect, useMount, useInViewport, useClickAway, useUnmount, useLockFn, useTimeout } from "ahooks";
5
5
  import { useSpring, animated, to } from "@react-spring/web";
@@ -1313,7 +1313,8 @@ const base = {
1313
1313
  }
1314
1314
  },
1315
1315
  ImageUploader: {
1316
- uploading: "Uploading..."
1316
+ uploading: "Uploading...",
1317
+ upload: "Upload"
1317
1318
  },
1318
1319
  InfiniteScroll: {
1319
1320
  noMore: "No more"
@@ -1418,7 +1419,8 @@ const zhCN = mergeLocale(base, {
1418
1419
  }
1419
1420
  },
1420
1421
  ImageUploader: {
1421
- uploading: "\u4E0A\u4F20\u4E2D..."
1422
+ uploading: "\u4E0A\u4F20\u4E2D...",
1423
+ upload: "\u4E0A\u4F20"
1422
1424
  },
1423
1425
  InfiniteScroll: {
1424
1426
  noMore: "\u6CA1\u6709\u66F4\u591A\u4E86"
@@ -10344,6 +10346,9 @@ const List$1 = (p) => {
10344
10346
  className: `${classPrefix$$}-body-inner`
10345
10347
  }, props.children))));
10346
10348
  };
10349
+ function isNodeWithContent(node) {
10350
+ return node !== void 0 && node !== null && node !== false;
10351
+ }
10347
10352
  const classPrefix$_ = `adm-list-item`;
10348
10353
  const ListItem = (props) => {
10349
10354
  var _a;
@@ -10351,17 +10356,17 @@ const ListItem = (props) => {
10351
10356
  const arrow2 = props.arrow === void 0 ? clickable : props.arrow;
10352
10357
  const content = React$1.createElement("div", {
10353
10358
  className: `${classPrefix$_}-content`
10354
- }, props.prefix && React$1.createElement("div", {
10359
+ }, isNodeWithContent(props.prefix) && React$1.createElement("div", {
10355
10360
  className: `${classPrefix$_}-content-prefix`
10356
10361
  }, props.prefix), React$1.createElement("div", {
10357
10362
  className: `${classPrefix$_}-content-main`
10358
- }, props.title && React$1.createElement("div", {
10363
+ }, isNodeWithContent(props.title) && React$1.createElement("div", {
10359
10364
  className: `${classPrefix$_}-title`
10360
- }, props.title), props.children, props.description && React$1.createElement("div", {
10365
+ }, props.title), props.children, isNodeWithContent(props.description) && React$1.createElement("div", {
10361
10366
  className: `${classPrefix$_}-description`
10362
- }, props.description)), props.extra && React$1.createElement("div", {
10367
+ }, props.description)), isNodeWithContent(props.extra) && React$1.createElement("div", {
10363
10368
  className: `${classPrefix$_}-content-extra`
10364
- }, props.extra), arrow2 && React$1.createElement("div", {
10369
+ }, props.extra), isNodeWithContent(arrow2) && React$1.createElement("div", {
10365
10370
  className: `${classPrefix$_}-content-arrow`
10366
10371
  }, arrow2 === true ? React$1.createElement(RightOutline, null) : arrow2));
10367
10372
  return withNativeProps(props, React$1.createElement(clickable ? "a" : "div", {
@@ -14156,6 +14161,9 @@ const defaultProps$t = {
14156
14161
  imageFit: "cover"
14157
14162
  };
14158
14163
  const ImageUploader = (p) => {
14164
+ const {
14165
+ locale
14166
+ } = useConfig();
14159
14167
  const props = mergeProps(defaultProps$t, p);
14160
14168
  const [value, setValue] = usePropsValue(props);
14161
14169
  const updateValue = useMemoizedFn((updater) => {
@@ -14312,7 +14320,8 @@ const ImageUploader = (p) => {
14312
14320
  className: `${classPrefix$z}-upload-button-wrap`
14313
14321
  }, props.children ? props.children : React$1.createElement("span", {
14314
14322
  className: `${classPrefix$z}-cell ${classPrefix$z}-upload-button`,
14315
- role: "button"
14323
+ role: "button",
14324
+ "aria-label": locale.ImageUploader.upload
14316
14325
  }, React$1.createElement("span", {
14317
14326
  className: `${classPrefix$z}-upload-button-icon`
14318
14327
  }, React$1.createElement(AddOutline, null))), !props.disableUpload && React$1.createElement("input", {
@@ -14321,7 +14330,8 @@ const ImageUploader = (p) => {
14321
14330
  multiple: props.multiple,
14322
14331
  type: "file",
14323
14332
  className: `${classPrefix$z}-input`,
14324
- onChange
14333
+ onChange,
14334
+ "aria-hidden": true
14325
14335
  })))));
14326
14336
  };
14327
14337
  var imageUploader = "";
@@ -17179,7 +17189,7 @@ const TextArea = forwardRef((p, ref) => {
17179
17189
  (_a = nativeTextAreaRef.current) === null || _a === void 0 ? void 0 : _a.blur();
17180
17190
  }
17181
17191
  }));
17182
- useEffect(() => {
17192
+ useLayoutEffect(() => {
17183
17193
  if (!autoSize)
17184
17194
  return;
17185
17195
  const textArea2 = nativeTextAreaRef.current;
@@ -17815,7 +17825,8 @@ const VirtualInput = forwardRef((p, ref) => {
17815
17825
  var _a, _b, _c;
17816
17826
  (_a = rootRef.current) === null || _a === void 0 ? void 0 : _a.blur();
17817
17827
  (_c = (_b = keyboard.props).onClose) === null || _c === void 0 ? void 0 : _c.call(_b);
17818
- }
17828
+ },
17829
+ getContainer: null
17819
17830
  });
17820
17831
  return withNativeProps(props, React$1.createElement("div", {
17821
17832
  ref: rootRef,