antd-mobile 5.21.0 → 5.23.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 (192) hide show
  1. package/2x/bundle/antd-mobile.cjs.development.js +25816 -0
  2. package/2x/bundle/antd-mobile.cjs.js +8 -32
  3. package/2x/bundle/antd-mobile.compatible.umd.js +12093 -12569
  4. package/2x/bundle/antd-mobile.es.development.js +25796 -0
  5. package/2x/bundle/antd-mobile.es.js +8578 -8861
  6. package/2x/bundle/antd-mobile.umd.development.js +25818 -0
  7. package/2x/bundle/antd-mobile.umd.js +8 -32
  8. package/2x/bundle/style.css +149 -44
  9. package/2x/cjs/components/action-sheet/action-sheet.css +6 -2
  10. package/2x/cjs/components/action-sheet/action-sheet.d.ts +1 -0
  11. package/2x/cjs/components/action-sheet/action-sheet.js +2 -1
  12. package/2x/cjs/components/avatar/avatar.js +2 -2
  13. package/2x/cjs/components/check-list/check-list.css +1 -1
  14. package/2x/cjs/components/dialog/dialog-action-button.d.ts +2 -2
  15. package/2x/cjs/components/ellipsis/ellipsis.js +1 -0
  16. package/2x/cjs/components/empty/empty.d.ts +1 -0
  17. package/2x/cjs/components/empty/empty.js +1 -0
  18. package/2x/cjs/components/floating-panel/floating-panel.js +2 -2
  19. package/2x/cjs/components/footer/footer.css +60 -0
  20. package/2x/cjs/components/footer/footer.d.ts +19 -0
  21. package/2x/cjs/components/footer/footer.js +83 -0
  22. package/2x/cjs/components/footer/index.d.ts +4 -0
  23. package/2x/cjs/components/footer/index.js +13 -0
  24. package/2x/cjs/components/image-uploader/image-uploader.d.ts +11 -1
  25. package/2x/cjs/components/image-uploader/image-uploader.js +42 -25
  26. package/2x/cjs/components/image-uploader/index.d.ts +1 -1
  27. package/2x/cjs/components/image-uploader/preview-item.js +5 -0
  28. package/2x/cjs/components/image-viewer/image-viewer.js +4 -2
  29. package/2x/cjs/components/image-viewer/slides.js +2 -2
  30. package/2x/cjs/components/index-bar/index-bar.css +1 -1
  31. package/2x/cjs/components/page-indicator/page-indicator.css +2 -1
  32. package/2x/cjs/components/picker/index.d.ts +2 -2
  33. package/2x/cjs/components/picker/picker.d.ts +1 -1
  34. package/2x/cjs/components/picker-view/picker-view.css +9 -0
  35. package/2x/cjs/components/picker-view/wheel.js +8 -4
  36. package/2x/cjs/components/rate/rate.css +6 -1
  37. package/2x/cjs/components/rate/rate.js +3 -1
  38. package/2x/cjs/components/selector/selector.css +10 -0
  39. package/2x/cjs/components/selector/selector.d.ts +3 -2
  40. package/2x/cjs/components/selector/selector.js +1 -4
  41. package/2x/cjs/components/slider/slider.css +15 -1
  42. package/2x/cjs/components/slider/slider.d.ts +1 -0
  43. package/2x/cjs/components/slider/slider.js +13 -2
  44. package/2x/cjs/components/slider/thumb.d.ts +1 -0
  45. package/2x/cjs/components/slider/thumb.js +4 -3
  46. package/2x/cjs/components/tab-bar/tab-bar.css +2 -2
  47. package/2x/cjs/components/toast/toast.css +4 -3
  48. package/2x/cjs/index.d.ts +1 -0
  49. package/2x/cjs/index.js +8 -0
  50. package/2x/cjs/locales/zh-CN.js +1 -1
  51. package/2x/cjs/utils/measure-css-length.js +1 -1
  52. package/2x/es/components/action-sheet/action-sheet.css +6 -2
  53. package/2x/es/components/action-sheet/action-sheet.d.ts +1 -0
  54. package/2x/es/components/action-sheet/action-sheet.js +2 -1
  55. package/2x/es/components/avatar/avatar.js +1 -1
  56. package/2x/es/components/check-list/check-list.css +1 -1
  57. package/2x/es/components/dialog/dialog-action-button.d.ts +2 -2
  58. package/2x/es/components/ellipsis/ellipsis.js +1 -0
  59. package/2x/es/components/empty/empty.d.ts +1 -0
  60. package/2x/es/components/empty/empty.js +2 -0
  61. package/2x/es/components/floating-panel/floating-panel.js +2 -2
  62. package/2x/es/components/footer/footer.css +60 -0
  63. package/2x/es/components/footer/footer.d.ts +19 -0
  64. package/2x/es/components/footer/footer.js +66 -0
  65. package/2x/es/components/footer/index.d.ts +4 -0
  66. package/2x/es/components/footer/index.js +3 -0
  67. package/2x/es/components/image-uploader/image-uploader.d.ts +11 -1
  68. package/2x/es/components/image-uploader/image-uploader.js +41 -25
  69. package/2x/es/components/image-uploader/index.d.ts +1 -1
  70. package/2x/es/components/image-uploader/preview-item.js +6 -1
  71. package/2x/es/components/image-viewer/image-viewer.js +4 -2
  72. package/2x/es/components/image-viewer/slides.js +2 -2
  73. package/2x/es/components/index-bar/index-bar.css +1 -1
  74. package/2x/es/components/page-indicator/page-indicator.css +2 -1
  75. package/2x/es/components/picker/index.d.ts +2 -2
  76. package/2x/es/components/picker/picker.d.ts +1 -1
  77. package/2x/es/components/picker-view/picker-view.css +9 -0
  78. package/2x/es/components/picker-view/wheel.js +8 -4
  79. package/2x/es/components/rate/rate.css +6 -1
  80. package/2x/es/components/rate/rate.js +3 -1
  81. package/2x/es/components/selector/selector.css +10 -0
  82. package/2x/es/components/selector/selector.d.ts +3 -2
  83. package/2x/es/components/selector/selector.js +1 -3
  84. package/2x/es/components/slider/slider.css +15 -1
  85. package/2x/es/components/slider/slider.d.ts +1 -0
  86. package/2x/es/components/slider/slider.js +12 -2
  87. package/2x/es/components/slider/thumb.d.ts +1 -0
  88. package/2x/es/components/slider/thumb.js +4 -3
  89. package/2x/es/components/tab-bar/tab-bar.css +2 -2
  90. package/2x/es/components/toast/toast.css +4 -3
  91. package/2x/es/index.d.ts +1 -0
  92. package/2x/es/index.js +1 -0
  93. package/2x/es/locales/zh-CN.js +1 -1
  94. package/2x/es/utils/measure-css-length.js +1 -1
  95. package/2x/package.json +1 -1
  96. package/2x/umd/antd-mobile.js +12093 -12569
  97. package/bundle/antd-mobile.cjs.development.js +25816 -0
  98. package/bundle/antd-mobile.cjs.js +8 -32
  99. package/bundle/antd-mobile.compatible.umd.js +12093 -12569
  100. package/bundle/antd-mobile.es.development.js +25796 -0
  101. package/bundle/antd-mobile.es.js +8578 -8861
  102. package/bundle/antd-mobile.umd.development.js +25818 -0
  103. package/bundle/antd-mobile.umd.js +8 -32
  104. package/bundle/style.css +1 -1
  105. package/cjs/components/action-sheet/action-sheet.css +5 -2
  106. package/cjs/components/action-sheet/action-sheet.d.ts +1 -0
  107. package/cjs/components/action-sheet/action-sheet.js +2 -1
  108. package/cjs/components/avatar/avatar.js +2 -2
  109. package/cjs/components/check-list/check-list.css +1 -1
  110. package/cjs/components/dialog/dialog-action-button.d.ts +2 -2
  111. package/cjs/components/ellipsis/ellipsis.js +1 -0
  112. package/cjs/components/empty/empty.d.ts +1 -0
  113. package/cjs/components/empty/empty.js +1 -0
  114. package/cjs/components/floating-panel/floating-panel.js +2 -2
  115. package/cjs/components/footer/footer.css +51 -0
  116. package/cjs/components/footer/footer.d.ts +19 -0
  117. package/cjs/components/footer/footer.js +83 -0
  118. package/cjs/components/footer/index.d.ts +4 -0
  119. package/cjs/components/footer/index.js +13 -0
  120. package/cjs/components/image-uploader/image-uploader.d.ts +11 -1
  121. package/cjs/components/image-uploader/image-uploader.js +42 -25
  122. package/cjs/components/image-uploader/index.d.ts +1 -1
  123. package/cjs/components/image-uploader/preview-item.js +5 -0
  124. package/cjs/components/image-viewer/image-viewer.js +4 -2
  125. package/cjs/components/image-viewer/slides.js +2 -2
  126. package/cjs/components/index-bar/index-bar.css +1 -1
  127. package/cjs/components/page-indicator/page-indicator.css +2 -1
  128. package/cjs/components/picker/index.d.ts +2 -2
  129. package/cjs/components/picker/picker.d.ts +1 -1
  130. package/cjs/components/picker-view/picker-view.css +8 -0
  131. package/cjs/components/picker-view/wheel.js +8 -4
  132. package/cjs/components/rate/rate.css +5 -1
  133. package/cjs/components/rate/rate.js +3 -1
  134. package/cjs/components/selector/selector.css +9 -0
  135. package/cjs/components/selector/selector.d.ts +3 -2
  136. package/cjs/components/selector/selector.js +1 -4
  137. package/cjs/components/slider/slider.css +14 -1
  138. package/cjs/components/slider/slider.d.ts +1 -0
  139. package/cjs/components/slider/slider.js +13 -2
  140. package/cjs/components/slider/thumb.d.ts +1 -0
  141. package/cjs/components/slider/thumb.js +4 -3
  142. package/cjs/components/tab-bar/tab-bar.css +2 -2
  143. package/cjs/components/toast/toast.css +4 -3
  144. package/cjs/index.d.ts +1 -0
  145. package/cjs/index.js +8 -0
  146. package/cjs/locales/zh-CN.js +1 -1
  147. package/cjs/utils/measure-css-length.js +1 -1
  148. package/es/components/action-sheet/action-sheet.css +5 -2
  149. package/es/components/action-sheet/action-sheet.d.ts +1 -0
  150. package/es/components/action-sheet/action-sheet.js +2 -1
  151. package/es/components/avatar/avatar.js +1 -1
  152. package/es/components/check-list/check-list.css +1 -1
  153. package/es/components/dialog/dialog-action-button.d.ts +2 -2
  154. package/es/components/ellipsis/ellipsis.js +1 -0
  155. package/es/components/empty/empty.d.ts +1 -0
  156. package/es/components/empty/empty.js +2 -0
  157. package/es/components/floating-panel/floating-panel.js +2 -2
  158. package/es/components/footer/footer.css +51 -0
  159. package/es/components/footer/footer.d.ts +19 -0
  160. package/es/components/footer/footer.js +66 -0
  161. package/es/components/footer/index.d.ts +4 -0
  162. package/es/components/footer/index.js +3 -0
  163. package/es/components/image-uploader/image-uploader.d.ts +11 -1
  164. package/es/components/image-uploader/image-uploader.js +41 -25
  165. package/es/components/image-uploader/index.d.ts +1 -1
  166. package/es/components/image-uploader/preview-item.js +6 -1
  167. package/es/components/image-viewer/image-viewer.js +4 -2
  168. package/es/components/image-viewer/slides.js +2 -2
  169. package/es/components/index-bar/index-bar.css +1 -1
  170. package/es/components/page-indicator/page-indicator.css +2 -1
  171. package/es/components/picker/index.d.ts +2 -2
  172. package/es/components/picker/picker.d.ts +1 -1
  173. package/es/components/picker-view/picker-view.css +8 -0
  174. package/es/components/picker-view/wheel.js +8 -4
  175. package/es/components/rate/rate.css +5 -1
  176. package/es/components/rate/rate.js +3 -1
  177. package/es/components/selector/selector.css +9 -0
  178. package/es/components/selector/selector.d.ts +3 -2
  179. package/es/components/selector/selector.js +1 -3
  180. package/es/components/slider/slider.css +14 -1
  181. package/es/components/slider/slider.d.ts +1 -0
  182. package/es/components/slider/slider.js +12 -2
  183. package/es/components/slider/thumb.d.ts +1 -0
  184. package/es/components/slider/thumb.js +4 -3
  185. package/es/components/tab-bar/tab-bar.css +2 -2
  186. package/es/components/toast/toast.css +4 -3
  187. package/es/index.d.ts +1 -0
  188. package/es/index.js +1 -0
  189. package/es/locales/zh-CN.js +1 -1
  190. package/es/utils/measure-css-length.js +1 -1
  191. package/package.json +1 -1
  192. package/umd/antd-mobile.js +1 -1
@@ -60,10 +60,19 @@ const ImageUploader = p => {
60
60
  return !value.some(fileItem => fileItem.url === task.url);
61
61
  }));
62
62
  }, [value]);
63
+ (0, _ahooks.useIsomorphicLayoutEffect)(() => {
64
+ var _a;
65
+
66
+ (_a = props.onUploadQueueChange) === null || _a === void 0 ? void 0 : _a.call(props, tasks.map(item => ({
67
+ id: item.id,
68
+ status: item.status
69
+ })));
70
+ }, [tasks]);
63
71
  const idCountRef = (0, _react.useRef)(0);
64
72
  const {
65
73
  maxCount,
66
- onPreview
74
+ onPreview,
75
+ renderItem
67
76
  } = props;
68
77
 
69
78
  function processFile(file, fileList) {
@@ -124,6 +133,7 @@ const ImageUploader = p => {
124
133
  return prev.map(task => {
125
134
  if (task.id === currentTask.id) {
126
135
  return Object.assign(Object.assign({}, task), {
136
+ status: 'success',
127
137
  url: result.url
128
138
  });
129
139
  }
@@ -171,36 +181,43 @@ const ImageUploader = p => {
171
181
  (_a = imageViewerHandlerRef.current) === null || _a === void 0 ? void 0 : _a.close();
172
182
  });
173
183
  const showUpload = props.showUpload && (maxCount === 0 || value.length + tasks.length < maxCount);
184
+
185
+ const renderImages = () => {
186
+ return value.map((fileItem, index) => {
187
+ var _a, _b;
188
+
189
+ const originNode = _react.default.createElement(_previewItem.default, {
190
+ key: (_a = fileItem.key) !== null && _a !== void 0 ? _a : index,
191
+ url: (_b = fileItem.thumbnailUrl) !== null && _b !== void 0 ? _b : fileItem.url,
192
+ deletable: props.deletable,
193
+ imageFit: props.imageFit,
194
+ onClick: () => {
195
+ if (props.preview) {
196
+ previewImage(index);
197
+ }
198
+
199
+ onPreview && onPreview(index, fileItem);
200
+ },
201
+ onDelete: () => (0, _tslib.__awaiter)(void 0, void 0, void 0, function* () {
202
+ var _c;
203
+
204
+ const canDelete = yield (_c = props.onDelete) === null || _c === void 0 ? void 0 : _c.call(props, fileItem);
205
+ if (canDelete === false) return;
206
+ setValue(value.filter((x, i) => i !== index));
207
+ })
208
+ });
209
+
210
+ return renderItem ? renderItem(originNode, fileItem, value) : originNode;
211
+ });
212
+ };
213
+
174
214
  return (0, _nativeProps.withNativeProps)(props, _react.default.createElement("div", {
175
215
  className: classPrefix
176
216
  }, _react.default.createElement(_space.default, {
177
217
  className: `${classPrefix}-space`,
178
218
  wrap: true,
179
219
  block: true
180
- }, value.map((fileItem, index) => {
181
- var _a, _b;
182
-
183
- return _react.default.createElement(_previewItem.default, {
184
- key: (_a = fileItem.key) !== null && _a !== void 0 ? _a : index,
185
- url: (_b = fileItem.thumbnailUrl) !== null && _b !== void 0 ? _b : fileItem.url,
186
- deletable: props.deletable,
187
- imageFit: props.imageFit,
188
- onClick: () => {
189
- if (props.preview) {
190
- previewImage(index);
191
- }
192
-
193
- onPreview && onPreview(index, fileItem);
194
- },
195
- onDelete: () => (0, _tslib.__awaiter)(void 0, void 0, void 0, function* () {
196
- var _c;
197
-
198
- const canDelete = yield (_c = props.onDelete) === null || _c === void 0 ? void 0 : _c.call(props, fileItem);
199
- if (canDelete === false) return;
200
- setValue(value.filter((x, i) => i !== index));
201
- })
202
- });
203
- }), tasks.map(task => {
220
+ }, renderImages(), tasks.map(task => {
204
221
  if (!props.showFailed && task.status === 'fail') {
205
222
  return null;
206
223
  }
@@ -1,4 +1,4 @@
1
1
  import { ImageUploader } from './image-uploader';
2
2
  import './image-uploader.less';
3
- export type { ImageUploadItem, ImageUploaderProps } from './image-uploader';
3
+ export type { ImageUploadItem, ImageUploaderProps, UploadTask, } from './image-uploader';
4
4
  export default ImageUploader;
@@ -47,6 +47,11 @@ const PreviewItem = props => {
47
47
 
48
48
  return '';
49
49
  }, [url, file]);
50
+ (0, _react.useLayoutEffect)(() => {
51
+ return () => {
52
+ URL.revokeObjectURL(src);
53
+ };
54
+ }, [src]);
50
55
 
51
56
  function renderLoading() {
52
57
  return props.status === 'pending' && _react.default.createElement("div", {
@@ -41,7 +41,8 @@ const ImageViewer = p => {
41
41
  visible: props.visible,
42
42
  disableBodyScroll: false,
43
43
  opacity: 'thick',
44
- afterClose: props.afterClose
44
+ afterClose: props.afterClose,
45
+ destroyOnClose: true
45
46
  }, _react.default.createElement("div", {
46
47
  className: `${classPrefix}-content`
47
48
  }, props.image && _react.default.createElement(_slide.Slide, {
@@ -90,7 +91,8 @@ const MultiImageViewer = (0, _react.forwardRef)((p, ref) => {
90
91
  visible: props.visible,
91
92
  disableBodyScroll: false,
92
93
  opacity: 'thick',
93
- afterClose: props.afterClose
94
+ afterClose: props.afterClose,
95
+ destroyOnClose: true
94
96
  }, _react.default.createElement("div", {
95
97
  className: `${classPrefix}-content`
96
98
  }, props.images && _react.default.createElement(_slides.Slides, {
@@ -92,8 +92,8 @@ const Slides = (0, _react.forwardRef)((props, ref) => {
92
92
  style: {
93
93
  x: x.to(x => -x)
94
94
  }
95
- }, props.images.map(image => _react.default.createElement(_slide.Slide, {
96
- key: image,
95
+ }, props.images.map((image, index) => _react.default.createElement(_slide.Slide, {
96
+ key: index,
97
97
  image: image,
98
98
  onTap: props.onTap,
99
99
  maxZoom: props.maxZoom,
@@ -45,7 +45,7 @@
45
45
  .adm-index-bar-sidebar-bubble {
46
46
  position: absolute;
47
47
  top: 50%;
48
- right: 84px;
48
+ right: 120px;
49
49
  width: 94px;
50
50
  height: 94px;
51
51
  color: var(--adm-color-white);
@@ -1,7 +1,7 @@
1
1
  .adm-page-indicator {
2
2
  display: flex;
3
3
  width: auto;
4
- --dot-color: rgba(0, 0, 0, 0.2);
4
+ --dot-color: #dddddd;
5
5
  --active-dot-color: var(--adm-color-primary);
6
6
  --dot-size: 6px;
7
7
  --active-dot-size: 26px;
@@ -28,6 +28,7 @@
28
28
  }
29
29
 
30
30
  .adm-page-indicator-color-white {
31
+ --dot-color: rgba(255, 255, 255, 0.5);
31
32
  --active-dot-color: var(--adm-color-white);
32
33
  }
33
34
 
@@ -24,7 +24,7 @@ declare const _default: import("react").NamedExoticComponent<{
24
24
  popupStyle?: import("react").CSSProperties | undefined;
25
25
  } & Pick<import("../popup").PopupProps, "onClick" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation"> & {
26
26
  className?: string | undefined;
27
- style?: (import("react").CSSProperties & Partial<Record<"--item-height" | "--header-button-font-size" | "--title-font-size" | "--item-font-size", string>>) | undefined;
27
+ style?: (import("react").CSSProperties & Partial<Record<"--header-button-font-size" | "--title-font-size" | "--item-font-size" | "--item-height", string>>) | undefined;
28
28
  tabIndex?: number | undefined;
29
29
  } & import("react").AriaAttributes & import("react").RefAttributes<import("./picker").PickerActions>> & {
30
30
  readonly type: import("react").ForwardRefExoticComponent<{
@@ -49,7 +49,7 @@ declare const _default: import("react").NamedExoticComponent<{
49
49
  popupStyle?: import("react").CSSProperties | undefined;
50
50
  } & Pick<import("../popup").PopupProps, "onClick" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation"> & {
51
51
  className?: string | undefined;
52
- style?: (import("react").CSSProperties & Partial<Record<"--item-height" | "--header-button-font-size" | "--title-font-size" | "--item-font-size", string>>) | undefined;
52
+ style?: (import("react").CSSProperties & Partial<Record<"--header-button-font-size" | "--title-font-size" | "--item-font-size" | "--item-height", string>>) | undefined;
53
53
  tabIndex?: number | undefined;
54
54
  } & import("react").AriaAttributes & import("react").RefAttributes<import("./picker").PickerActions>>;
55
55
  } & {
@@ -51,6 +51,6 @@ export declare const Picker: React.MemoExoticComponent<React.ForwardRefExoticCom
51
51
  popupStyle?: React.CSSProperties | undefined;
52
52
  } & Pick<PopupProps, "onClick" | "destroyOnClose" | "forceRender" | "getContainer" | "afterShow" | "afterClose" | "stopPropagation"> & {
53
53
  className?: string | undefined;
54
- style?: (React.CSSProperties & Partial<Record<"--item-height" | "--header-button-font-size" | "--title-font-size" | "--item-font-size", string>>) | undefined;
54
+ style?: (React.CSSProperties & Partial<Record<"--header-button-font-size" | "--title-font-size" | "--item-font-size" | "--item-height", string>>) | undefined;
55
55
  tabIndex?: number | undefined;
56
56
  } & React.AriaAttributes & React.RefAttributes<PickerActions>>>;
@@ -133,4 +133,13 @@
133
133
  display: flex;
134
134
  justify-content: center;
135
135
  align-items: center;
136
+ }
137
+
138
+ .adm-picker-view-item-height-measure {
139
+ position: relative;
140
+ left: 0;
141
+ top: 0;
142
+ height: var(--item-height);
143
+ width: 0;
144
+ pointer-events: none;
136
145
  }
@@ -54,11 +54,12 @@ const Wheel = (0, _react.memo)(props => {
54
54
  }));
55
55
  const draggingRef = (0, _react.useRef)(false);
56
56
  const rootRef = (0, _react.useRef)(null);
57
+ const itemHeightMeasureRef = (0, _react.useRef)(null);
57
58
  const itemHeight = (0, _react.useRef)(34);
58
59
  (0, _ahooks.useIsomorphicLayoutEffect)(() => {
59
- const root = rootRef.current;
60
- if (!root) return;
61
- itemHeight.current = (0, _measureCssLength.measureCSSLength)(window.getComputedStyle(root).getPropertyValue('--item-height'));
60
+ const itemHeightMeasure = itemHeightMeasureRef.current;
61
+ if (!itemHeightMeasure) return;
62
+ itemHeight.current = (0, _measureCssLength.measureCSSLength)(window.getComputedStyle(itemHeightMeasure).getPropertyValue('height'));
62
63
  });
63
64
  (0, _ahooks.useIsomorphicLayoutEffect)(() => {
64
65
  if (draggingRef.current) return;
@@ -175,7 +176,10 @@ const Wheel = (0, _react.memo)(props => {
175
176
 
176
177
  return _react.default.createElement("div", {
177
178
  className: `${classPrefix}-column`
178
- }, _react.default.createElement(_web.animated.div, {
179
+ }, _react.default.createElement("div", {
180
+ className: `${classPrefix}-item-height-measure`,
181
+ ref: itemHeightMeasureRef
182
+ }), _react.default.createElement(_web.animated.div, {
179
183
  ref: rootRef,
180
184
  style: {
181
185
  translateY: y
@@ -1,7 +1,8 @@
1
1
  .adm-rate {
2
2
  --star-size: 48px;
3
3
  --active-color: #ffd21e;
4
- --inactive-color: var(--adm-color-border);
4
+ --inactive-color: #e5e5e5;
5
+ --inactive-color-half: #dbdbdb;
5
6
  display: inline-flex;
6
7
  touch-action: pan-y;
7
8
  -webkit-user-select: none;
@@ -38,4 +39,8 @@
38
39
 
39
40
  .adm-rate-star-readonly {
40
41
  cursor: unset;
42
+ }
43
+
44
+ .adm-rate.adm-rate-half .adm-rate-star-half:not(.adm-rate-star-active) {
45
+ color: var(--inactive-color-half);
41
46
  }
@@ -85,7 +85,9 @@ const Rate = p => {
85
85
  filterTaps: true
86
86
  });
87
87
  return (0, _nativeProps.withNativeProps)(props, _react.default.createElement("div", Object.assign({
88
- className: classPrefix,
88
+ className: (0, _classnames.default)(classPrefix, {
89
+ [`${classPrefix}-half`]: props.allowHalf
90
+ }),
89
91
  role: 'radiogroup',
90
92
  "aria-readonly": props.readOnly,
91
93
  ref: containerRef
@@ -7,6 +7,10 @@
7
7
  --checked-border: none;
8
8
  --border-radius: 4px;
9
9
  --padding: 16px 32px;
10
+ --gap: 16px;
11
+ ---gap: var(--gap);
12
+ ---gap-horizontal: var(--gap-horizontal, var(--gap));
13
+ ---gap-vertical: var(--gap-vertical, var(--gap));
10
14
  overflow: hidden;
11
15
  font-size: var(--adm-font-size-7);
12
16
  line-height: 1.4;
@@ -16,6 +20,12 @@
16
20
  --gap: 24px;
17
21
  }
18
22
 
23
+ .adm-selector .adm-grid {
24
+ --gap: var(---gap);
25
+ --gap-horizontal: var(---gap-horizontal);
26
+ --gap-vertical: var(---gap-vertical);
27
+ }
28
+
19
29
  .adm-selector-item {
20
30
  padding: var(--padding);
21
31
  position: relative;
@@ -1,5 +1,6 @@
1
1
  import React, { ReactNode } from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
+ import { GridProps } from '../grid';
3
4
  declare type SelectorValue = string | number;
4
5
  export interface SelectorOption<V> {
5
6
  label: ReactNode;
@@ -9,7 +10,7 @@ export interface SelectorOption<V> {
9
10
  }
10
11
  export declare type SelectorProps<V> = {
11
12
  options: SelectorOption<V>[];
12
- columns?: number;
13
+ columns?: GridProps['columns'];
13
14
  multiple?: boolean;
14
15
  disabled?: boolean;
15
16
  defaultValue?: V[];
@@ -18,6 +19,6 @@ export declare type SelectorProps<V> = {
18
19
  items: SelectorOption<V>[];
19
20
  }) => void;
20
21
  showCheckMark?: boolean;
21
- } & NativeProps<'--color' | '--checked-color' | '--text-color' | '--checked-text-color' | '--border' | '--checked-border' | '--border-radius' | '--padding'>;
22
+ } & NativeProps<'--color' | '--checked-color' | '--text-color' | '--checked-text-color' | '--border' | '--checked-border' | '--border-radius' | '--padding' | '--gap' | '--gap-vertical' | '--gap-horizontal'>;
22
23
  export declare const Selector: <V extends SelectorValue>(p: SelectorProps<V>) => React.ReactElement<any, string | React.JSXElementConstructor<any>>;
23
24
  export {};
@@ -17,8 +17,6 @@ var _space = _interopRequireDefault(require("../space"));
17
17
 
18
18
  var _grid = _interopRequireDefault(require("../grid"));
19
19
 
20
- var _convertPx = require("../../utils/convert-px");
21
-
22
20
  var _usePropsValue = require("../../utils/use-props-value");
23
21
 
24
22
  var _checkMark = require("./check-mark");
@@ -84,8 +82,7 @@ const Selector = p => {
84
82
  }, !props.columns && _react.default.createElement(_space.default, {
85
83
  wrap: true
86
84
  }, items), props.columns && _react.default.createElement(_grid.default, {
87
- columns: props.columns,
88
- gap: (0, _convertPx.convertPx)(8)
85
+ columns: props.columns
89
86
  }, items)));
90
87
  };
91
88
 
@@ -105,12 +105,26 @@
105
105
  transform: translateX(-50%);
106
106
  }
107
107
 
108
- .adm-slider-disabled {
108
+ .adm-slider-disabled .adm-slider-mark,
109
+ .adm-slider-disabled .adm-slider-thumb-icon {
109
110
  opacity: 0.4;
110
111
  }
111
112
 
113
+ .adm-slider-disabled .adm-slider-tick-active::after,
114
+ .adm-slider-disabled .adm-slider-fill::after {
115
+ content: '';
116
+ position: absolute;
117
+ left: 0;
118
+ top: 0;
119
+ right: 0;
120
+ bottom: 0;
121
+ border-radius: inherit;
122
+ background-color: rgba(255, 255, 255, 0.6);
123
+ }
124
+
112
125
  .adm-slider-disabled .adm-slider-thumb {
113
126
  cursor: not-allowed;
127
+ box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.06);
114
128
  }
115
129
 
116
130
  .adm-slider-disabled .adm-slider-mark-text,
@@ -14,6 +14,7 @@ export declare type SliderProps = {
14
14
  range?: boolean;
15
15
  icon?: ReactNode;
16
16
  popover?: boolean | ((value: number) => ReactNode);
17
+ residentPopover?: boolean;
17
18
  onChange?: (value: SliderValue) => void;
18
19
  onAfterChange?: (value: SliderValue) => void;
19
20
  } & NativeProps<'--fill-color'>;
@@ -23,6 +23,8 @@ var _nearest = require("../../utils/nearest");
23
23
 
24
24
  var _usePropsValue = require("../../utils/use-props-value");
25
25
 
26
+ var _devLog = require("../../utils/dev-log");
27
+
26
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
29
 
28
30
  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); }
@@ -37,7 +39,8 @@ const defaultProps = {
37
39
  ticks: false,
38
40
  range: false,
39
41
  disabled: false,
40
- popover: false
42
+ popover: false,
43
+ residentPopover: false
41
44
  };
42
45
 
43
46
  const Slider = p => {
@@ -72,8 +75,15 @@ const Slider = p => {
72
75
  (_a = props.onAfterChange) === null || _a === void 0 ? void 0 : _a.call(props, reverseValue(value));
73
76
  }
74
77
 
78
+ let propsValue = props.value;
79
+
80
+ if (props.range && typeof props.value === 'number') {
81
+ (0, _devLog.devWarning)('Slider', 'When `range` prop is enabled, the `value` prop should be an array, like: [0, 0]');
82
+ propsValue = [0, props.value];
83
+ }
84
+
75
85
  const [rawValue, setRawValue] = (0, _usePropsValue.usePropsValue)({
76
- value: props.value,
86
+ value: propsValue,
77
87
  defaultValue: (_a = props.defaultValue) !== null && _a !== void 0 ? _a : props.range ? [min, min] : min,
78
88
  onChange: props.onChange
79
89
  });
@@ -159,6 +169,7 @@ const Slider = p => {
159
169
  trackRef: trackRef,
160
170
  icon: icon,
161
171
  popover: props.popover,
172
+ residentPopover: props.residentPopover,
162
173
  onDrag: (position, first, last) => {
163
174
  if (first) {
164
175
  dragLockRef.current += 1;
@@ -9,6 +9,7 @@ declare type ThumbProps = {
9
9
  trackRef: RefObject<HTMLDivElement>;
10
10
  icon?: React.ReactNode;
11
11
  popover: boolean | ((value: number) => ReactNode);
12
+ residentPopover: boolean;
12
13
  } & NativeProps;
13
14
  declare const Thumb: FC<ThumbProps>;
14
15
  export default Thumb;
@@ -27,8 +27,9 @@ const Thumb = props => {
27
27
  min,
28
28
  max,
29
29
  disabled,
30
- onDrag,
31
- icon
30
+ icon,
31
+ residentPopover,
32
+ onDrag
32
33
  } = props;
33
34
  const prevValue = (0, _react.useRef)(value);
34
35
  const {
@@ -85,7 +86,7 @@ const Thumb = props => {
85
86
  }), renderPopoverContent ? _react.default.createElement(_popover.Popover, {
86
87
  content: renderPopoverContent(value),
87
88
  placement: 'top',
88
- visible: dragging,
89
+ visible: residentPopover || dragging,
89
90
  getContainer: null,
90
91
  mode: 'dark'
91
92
  }, thumbElement) : thumbElement);
@@ -9,7 +9,7 @@
9
9
 
10
10
  .adm-tab-bar-item {
11
11
  flex: 1;
12
- color: var(--adm-color-weak);
12
+ color: var(--adm-color-text-secondary);
13
13
  white-space: nowrap;
14
14
  padding: 8px 16px;
15
15
  width: -webkit-min-content;
@@ -29,7 +29,7 @@
29
29
  }
30
30
 
31
31
  .adm-tab-bar-item-title {
32
- font-size: var(--adm-font-size-3);
32
+ font-size: var(--adm-font-size-2);
33
33
  line-height: 30px;
34
34
  }
35
35
 
@@ -13,8 +13,7 @@
13
13
  left: 50%;
14
14
  transform: translate(-50%, -50%);
15
15
  width: auto;
16
- min-width: 192px;
17
- max-width: 400px;
16
+ max-width: 408px;
18
17
  max-height: 70%;
19
18
  overflow: auto;
20
19
  color: white;
@@ -29,10 +28,12 @@
29
28
 
30
29
  .adm-toast-mask .adm-toast-main-text {
31
30
  padding: 24px;
31
+ min-width: 0;
32
32
  }
33
33
 
34
34
  .adm-toast-mask .adm-toast-main-icon {
35
- padding: 70px 80px;
35
+ padding: 70px 24px;
36
+ min-width: 300px;
36
37
  }
37
38
 
38
39
  .adm-toast-mask .adm-toast-main-icon .adm-toast-icon {
package/2x/cjs/index.d.ts CHANGED
@@ -79,5 +79,6 @@ export { default as Toast } from './components/toast';
79
79
  export { default as TreeSelect } from './components/tree-select';
80
80
  export { default as VirtualInput } from './components/virtual-input';
81
81
  export { default as WaterMark } from './components/water-mark';
82
+ export { default as Footer } from './components/footer';
82
83
  export { createErrorBlock } from './components/error-block';
83
84
  export { reduceMotion, restoreMotion } from './utils/reduce-and-restore-motion';
package/2x/cjs/index.js CHANGED
@@ -171,6 +171,12 @@ Object.defineProperty(exports, "FloatingPanel", {
171
171
  return _floatingPanel.default;
172
172
  }
173
173
  });
174
+ Object.defineProperty(exports, "Footer", {
175
+ enumerable: true,
176
+ get: function () {
177
+ return _footer.default;
178
+ }
179
+ });
174
180
  Object.defineProperty(exports, "Form", {
175
181
  enumerable: true,
176
182
  get: function () {
@@ -662,6 +668,8 @@ var _virtualInput = _interopRequireDefault(require("./components/virtual-input")
662
668
 
663
669
  var _waterMark = _interopRequireDefault(require("./components/water-mark"));
664
670
 
671
+ var _footer = _interopRequireDefault(require("./components/footer"));
672
+
665
673
  var _reduceAndRestoreMotion = require("./utils/reduce-and-restore-motion");
666
674
 
667
675
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -109,7 +109,7 @@ const zhCN = (0, _mergeLocale.mergeLocale)(_base.base, {
109
109
  clear: '清除'
110
110
  },
111
111
  Mask: {
112
- name: '遮罩层'
112
+ name: '背景蒙层'
113
113
  },
114
114
  Modal: {
115
115
  ok: '我知道了'
@@ -12,7 +12,7 @@ var _devLog = require("./dev-log");
12
12
  function measureCSSLength(raw) {
13
13
  if (raw === null || raw === undefined || raw === '') {
14
14
  if (_isDev.isDev) {
15
- (0, _devLog.devError)('Global', 'Seems like the you will encounter a style messed problem. Please check the browser environment to make sure it supports CSS variables.');
15
+ (0, _devLog.devError)('Global', 'Something went wrong when calculating CSS length. Please report an issue at https://github.com/ant-design/ant-design-mobile/issues/new/choose');
16
16
  }
17
17
 
18
18
  return 0;
@@ -48,15 +48,19 @@
48
48
  }
49
49
 
50
50
  .adm-action-sheet-button-item-description {
51
- font-size: var(--adm-font-size-4);
51
+ font-size: var(--adm-font-size-6);
52
52
  color: var(--adm-color-weak);
53
- padding-top: 4px;
53
+ padding-top: 8px;
54
54
  }
55
55
 
56
56
  .adm-action-sheet-button-item-danger .adm-action-sheet-button-item-name {
57
57
  color: var(--adm-color-danger);
58
58
  }
59
59
 
60
+ .adm-action-sheet-button-item-bold .adm-action-sheet-button-item-name {
61
+ font-weight: bold;
62
+ }
63
+
60
64
  .adm-action-sheet-cancel {
61
65
  background-color: var(--adm-color-box);
62
66
  padding-top: 16px;
@@ -7,6 +7,7 @@ export declare type Action = {
7
7
  disabled?: boolean;
8
8
  description?: ReactNode;
9
9
  danger?: boolean;
10
+ bold?: boolean;
10
11
  onClick?: () => void;
11
12
  };
12
13
  export declare type ActionSheetProps = {
@@ -47,7 +47,8 @@ export const ActionSheet = p => {
47
47
  }, React.createElement("a", {
48
48
  className: classNames('adm-plain-anchor', `${classPrefix}-button-item`, {
49
49
  [`${classPrefix}-button-item-danger`]: action.danger,
50
- [`${classPrefix}-button-item-disabled`]: action.disabled
50
+ [`${classPrefix}-button-item-disabled`]: action.disabled,
51
+ [`${classPrefix}-button-item-bold`]: action.bold
51
52
  }),
52
53
  onClick: () => {
53
54
  var _a, _b, _c;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { withNativeProps } from '../../utils/native-props';
3
- import { Image } from '../../index';
3
+ import Image from '../image';
4
4
  import { mergeProps } from '../../utils/with-default-props';
5
5
  import { Fallback } from './fallback';
6
6
  const classPrefix = 'adm-avatar';
@@ -1,5 +1,5 @@
1
1
  .adm-check-list-item-extra {
2
- font-size: var(--adm-font-size-8);
2
+ font-size: var(--adm-font-size-10);
3
3
  line-height: 1;
4
4
  color: var(--adm-color-primary);
5
5
  }
@@ -1,8 +1,8 @@
1
- import { FC } from 'react';
1
+ import { FC, ReactNode } from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
3
  export declare type Action = {
4
4
  key: string | number;
5
- text: string;
5
+ text: ReactNode;
6
6
  disabled?: boolean;
7
7
  danger?: boolean;
8
8
  bold?: boolean;
@@ -23,6 +23,7 @@ export const Ellipsis = p => {
23
23
  function calcEllipsised() {
24
24
  const root = rootRef.current;
25
25
  if (!root) return;
26
+ if (!root.offsetParent) return;
26
27
  const originStyle = window.getComputedStyle(root);
27
28
  const container = document.createElement('div');
28
29
  const styleNames = Array.prototype.slice.apply(originStyle);
@@ -5,4 +5,5 @@ export declare type EmptyProps = {
5
5
  imageStyle?: React.CSSProperties;
6
6
  description?: ReactNode;
7
7
  } & NativeProps;
8
+ /** @deprecated Empty has been deprecated and will be removed in the next major version. */
8
9
  export declare const Empty: React.FC<EmptyProps>;
@@ -3,6 +3,8 @@ import classNames from 'classnames';
3
3
  import { withNativeProps } from '../../utils/native-props';
4
4
  import { EmptyIcon } from './empty-icon';
5
5
  const classPrefix = `adm-empty`;
6
+ /** @deprecated Empty has been deprecated and will be removed in the next major version. */
7
+
6
8
  export const Empty = props => {
7
9
  function renderImageNode() {
8
10
  const {