antd-mobile 5.22.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 (144) hide show
  1. package/2x/bundle/antd-mobile.cjs.development.js +803 -711
  2. package/2x/bundle/antd-mobile.cjs.js +8 -8
  3. package/2x/bundle/antd-mobile.compatible.umd.js +6831 -6752
  4. package/2x/bundle/antd-mobile.es.development.js +803 -711
  5. package/2x/bundle/antd-mobile.es.js +5266 -5200
  6. package/2x/bundle/antd-mobile.umd.development.js +803 -711
  7. package/2x/bundle/antd-mobile.umd.js +8 -8
  8. package/2x/bundle/style.css +128 -37
  9. package/2x/cjs/components/avatar/avatar.js +2 -2
  10. package/2x/cjs/components/dialog/dialog-action-button.d.ts +2 -2
  11. package/2x/cjs/components/empty/empty.d.ts +1 -0
  12. package/2x/cjs/components/empty/empty.js +1 -0
  13. package/2x/cjs/components/footer/footer.css +60 -0
  14. package/2x/cjs/components/footer/footer.d.ts +19 -0
  15. package/2x/cjs/components/footer/footer.js +83 -0
  16. package/2x/cjs/components/footer/index.d.ts +4 -0
  17. package/2x/cjs/components/footer/index.js +13 -0
  18. package/2x/cjs/components/image-uploader/image-uploader.d.ts +11 -1
  19. package/2x/cjs/components/image-uploader/image-uploader.js +42 -25
  20. package/2x/cjs/components/image-uploader/index.d.ts +1 -1
  21. package/2x/cjs/components/image-uploader/preview-item.js +5 -0
  22. package/2x/cjs/components/image-viewer/slides.js +2 -2
  23. package/2x/cjs/components/page-indicator/page-indicator.css +1 -0
  24. package/2x/cjs/components/picker/index.d.ts +2 -2
  25. package/2x/cjs/components/picker/picker.d.ts +1 -1
  26. package/2x/cjs/components/picker-view/picker-view.css +9 -0
  27. package/2x/cjs/components/picker-view/wheel.js +8 -4
  28. package/2x/cjs/components/rate/rate.css +6 -1
  29. package/2x/cjs/components/rate/rate.js +3 -1
  30. package/2x/cjs/components/slider/slider.css +15 -1
  31. package/2x/cjs/components/slider/slider.d.ts +1 -0
  32. package/2x/cjs/components/slider/slider.js +13 -2
  33. package/2x/cjs/components/slider/thumb.d.ts +1 -0
  34. package/2x/cjs/components/slider/thumb.js +4 -3
  35. package/2x/cjs/components/toast/toast.css +4 -3
  36. package/2x/cjs/index.d.ts +1 -0
  37. package/2x/cjs/index.js +8 -0
  38. package/2x/cjs/locales/zh-CN.js +1 -1
  39. package/2x/cjs/utils/measure-css-length.js +1 -1
  40. package/2x/es/components/avatar/avatar.js +1 -1
  41. package/2x/es/components/dialog/dialog-action-button.d.ts +2 -2
  42. package/2x/es/components/empty/empty.d.ts +1 -0
  43. package/2x/es/components/empty/empty.js +2 -0
  44. package/2x/es/components/footer/footer.css +60 -0
  45. package/2x/es/components/footer/footer.d.ts +19 -0
  46. package/2x/es/components/footer/footer.js +66 -0
  47. package/2x/es/components/footer/index.d.ts +4 -0
  48. package/2x/es/components/footer/index.js +3 -0
  49. package/2x/es/components/image-uploader/image-uploader.d.ts +11 -1
  50. package/2x/es/components/image-uploader/image-uploader.js +41 -25
  51. package/2x/es/components/image-uploader/index.d.ts +1 -1
  52. package/2x/es/components/image-uploader/preview-item.js +6 -1
  53. package/2x/es/components/image-viewer/slides.js +2 -2
  54. package/2x/es/components/page-indicator/page-indicator.css +1 -0
  55. package/2x/es/components/picker/index.d.ts +2 -2
  56. package/2x/es/components/picker/picker.d.ts +1 -1
  57. package/2x/es/components/picker-view/picker-view.css +9 -0
  58. package/2x/es/components/picker-view/wheel.js +8 -4
  59. package/2x/es/components/rate/rate.css +6 -1
  60. package/2x/es/components/rate/rate.js +3 -1
  61. package/2x/es/components/slider/slider.css +15 -1
  62. package/2x/es/components/slider/slider.d.ts +1 -0
  63. package/2x/es/components/slider/slider.js +12 -2
  64. package/2x/es/components/slider/thumb.d.ts +1 -0
  65. package/2x/es/components/slider/thumb.js +4 -3
  66. package/2x/es/components/toast/toast.css +4 -3
  67. package/2x/es/index.d.ts +1 -0
  68. package/2x/es/index.js +1 -0
  69. package/2x/es/locales/zh-CN.js +1 -1
  70. package/2x/es/utils/measure-css-length.js +1 -1
  71. package/2x/package.json +1 -1
  72. package/2x/umd/antd-mobile.js +6831 -6752
  73. package/bundle/antd-mobile.cjs.development.js +803 -711
  74. package/bundle/antd-mobile.cjs.js +8 -8
  75. package/bundle/antd-mobile.compatible.umd.js +6831 -6752
  76. package/bundle/antd-mobile.es.development.js +803 -711
  77. package/bundle/antd-mobile.es.js +5266 -5200
  78. package/bundle/antd-mobile.umd.development.js +803 -711
  79. package/bundle/antd-mobile.umd.js +8 -8
  80. package/bundle/style.css +1 -1
  81. package/cjs/components/avatar/avatar.js +2 -2
  82. package/cjs/components/dialog/dialog-action-button.d.ts +2 -2
  83. package/cjs/components/empty/empty.d.ts +1 -0
  84. package/cjs/components/empty/empty.js +1 -0
  85. package/cjs/components/footer/footer.css +51 -0
  86. package/cjs/components/footer/footer.d.ts +19 -0
  87. package/cjs/components/footer/footer.js +83 -0
  88. package/cjs/components/footer/index.d.ts +4 -0
  89. package/cjs/components/footer/index.js +13 -0
  90. package/cjs/components/image-uploader/image-uploader.d.ts +11 -1
  91. package/cjs/components/image-uploader/image-uploader.js +42 -25
  92. package/cjs/components/image-uploader/index.d.ts +1 -1
  93. package/cjs/components/image-uploader/preview-item.js +5 -0
  94. package/cjs/components/image-viewer/slides.js +2 -2
  95. package/cjs/components/page-indicator/page-indicator.css +1 -0
  96. package/cjs/components/picker/index.d.ts +2 -2
  97. package/cjs/components/picker/picker.d.ts +1 -1
  98. package/cjs/components/picker-view/picker-view.css +8 -0
  99. package/cjs/components/picker-view/wheel.js +8 -4
  100. package/cjs/components/rate/rate.css +5 -1
  101. package/cjs/components/rate/rate.js +3 -1
  102. package/cjs/components/slider/slider.css +14 -1
  103. package/cjs/components/slider/slider.d.ts +1 -0
  104. package/cjs/components/slider/slider.js +13 -2
  105. package/cjs/components/slider/thumb.d.ts +1 -0
  106. package/cjs/components/slider/thumb.js +4 -3
  107. package/cjs/components/toast/toast.css +4 -3
  108. package/cjs/index.d.ts +1 -0
  109. package/cjs/index.js +8 -0
  110. package/cjs/locales/zh-CN.js +1 -1
  111. package/cjs/utils/measure-css-length.js +1 -1
  112. package/es/components/avatar/avatar.js +1 -1
  113. package/es/components/dialog/dialog-action-button.d.ts +2 -2
  114. package/es/components/empty/empty.d.ts +1 -0
  115. package/es/components/empty/empty.js +2 -0
  116. package/es/components/footer/footer.css +51 -0
  117. package/es/components/footer/footer.d.ts +19 -0
  118. package/es/components/footer/footer.js +66 -0
  119. package/es/components/footer/index.d.ts +4 -0
  120. package/es/components/footer/index.js +3 -0
  121. package/es/components/image-uploader/image-uploader.d.ts +11 -1
  122. package/es/components/image-uploader/image-uploader.js +41 -25
  123. package/es/components/image-uploader/index.d.ts +1 -1
  124. package/es/components/image-uploader/preview-item.js +6 -1
  125. package/es/components/image-viewer/slides.js +2 -2
  126. package/es/components/page-indicator/page-indicator.css +1 -0
  127. package/es/components/picker/index.d.ts +2 -2
  128. package/es/components/picker/picker.d.ts +1 -1
  129. package/es/components/picker-view/picker-view.css +8 -0
  130. package/es/components/picker-view/wheel.js +8 -4
  131. package/es/components/rate/rate.css +5 -1
  132. package/es/components/rate/rate.js +3 -1
  133. package/es/components/slider/slider.css +14 -1
  134. package/es/components/slider/slider.d.ts +1 -0
  135. package/es/components/slider/slider.js +12 -2
  136. package/es/components/slider/thumb.d.ts +1 -0
  137. package/es/components/slider/thumb.js +4 -3
  138. package/es/components/toast/toast.css +4 -3
  139. package/es/index.d.ts +1 -0
  140. package/es/index.js +1 -0
  141. package/es/locales/zh-CN.js +1 -1
  142. package/es/utils/measure-css-length.js +1 -1
  143. package/package.json +1 -1
  144. package/umd/antd-mobile.js +1 -1
@@ -1,17 +1,25 @@
1
1
  import React, { FC, InputHTMLAttributes } from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
3
  import type { ImageProps } from '../image';
4
- export declare type TaskStatus = 'pending' | 'fail';
4
+ export declare type TaskStatus = 'pending' | 'fail' | 'success';
5
5
  export interface ImageUploadItem {
6
6
  key?: string | number;
7
7
  url: string;
8
8
  thumbnailUrl?: string;
9
9
  extra?: any;
10
10
  }
11
+ declare type Task = {
12
+ id: number;
13
+ url?: string;
14
+ file: File;
15
+ status: TaskStatus;
16
+ };
17
+ export declare type UploadTask = Pick<Task, 'id' | 'status'>;
11
18
  export declare type ImageUploaderProps = {
12
19
  defaultValue?: ImageUploadItem[];
13
20
  value?: ImageUploadItem[];
14
21
  onChange?: (items: ImageUploadItem[]) => void;
22
+ onUploadQueueChange?: (tasks: UploadTask[]) => void;
15
23
  accept?: string;
16
24
  multiple?: boolean;
17
25
  maxCount?: number;
@@ -28,5 +36,7 @@ export declare type ImageUploaderProps = {
28
36
  showFailed?: boolean;
29
37
  imageFit?: ImageProps['fit'];
30
38
  children?: React.ReactNode;
39
+ renderItem?: (originNode: React.ReactElement, file: ImageUploadItem, fileList: ImageUploadItem[]) => React.ReactNode;
31
40
  } & NativeProps<'--cell-size'>;
32
41
  export declare const ImageUploader: FC<ImageUploaderProps>;
42
+ export {};
@@ -35,10 +35,19 @@ export const ImageUploader = p => {
35
35
  return !value.some(fileItem => fileItem.url === task.url);
36
36
  }));
37
37
  }, [value]);
38
+ useIsomorphicLayoutEffect(() => {
39
+ var _a;
40
+
41
+ (_a = props.onUploadQueueChange) === null || _a === void 0 ? void 0 : _a.call(props, tasks.map(item => ({
42
+ id: item.id,
43
+ status: item.status
44
+ })));
45
+ }, [tasks]);
38
46
  const idCountRef = useRef(0);
39
47
  const {
40
48
  maxCount,
41
- onPreview
49
+ onPreview,
50
+ renderItem
42
51
  } = props;
43
52
 
44
53
  function processFile(file, fileList) {
@@ -99,6 +108,7 @@ export const ImageUploader = p => {
99
108
  return prev.map(task => {
100
109
  if (task.id === currentTask.id) {
101
110
  return Object.assign(Object.assign({}, task), {
111
+ status: 'success',
102
112
  url: result.url
103
113
  });
104
114
  }
@@ -146,36 +156,42 @@ export const ImageUploader = p => {
146
156
  (_a = imageViewerHandlerRef.current) === null || _a === void 0 ? void 0 : _a.close();
147
157
  });
148
158
  const showUpload = props.showUpload && (maxCount === 0 || value.length + tasks.length < maxCount);
159
+
160
+ const renderImages = () => {
161
+ return value.map((fileItem, index) => {
162
+ var _a, _b;
163
+
164
+ const originNode = React.createElement(PreviewItem, {
165
+ key: (_a = fileItem.key) !== null && _a !== void 0 ? _a : index,
166
+ url: (_b = fileItem.thumbnailUrl) !== null && _b !== void 0 ? _b : fileItem.url,
167
+ deletable: props.deletable,
168
+ imageFit: props.imageFit,
169
+ onClick: () => {
170
+ if (props.preview) {
171
+ previewImage(index);
172
+ }
173
+
174
+ onPreview && onPreview(index, fileItem);
175
+ },
176
+ onDelete: () => __awaiter(void 0, void 0, void 0, function* () {
177
+ var _c;
178
+
179
+ const canDelete = yield (_c = props.onDelete) === null || _c === void 0 ? void 0 : _c.call(props, fileItem);
180
+ if (canDelete === false) return;
181
+ setValue(value.filter((x, i) => i !== index));
182
+ })
183
+ });
184
+ return renderItem ? renderItem(originNode, fileItem, value) : originNode;
185
+ });
186
+ };
187
+
149
188
  return withNativeProps(props, React.createElement("div", {
150
189
  className: classPrefix
151
190
  }, React.createElement(Space, {
152
191
  className: `${classPrefix}-space`,
153
192
  wrap: true,
154
193
  block: true
155
- }, value.map((fileItem, index) => {
156
- var _a, _b;
157
-
158
- return React.createElement(PreviewItem, {
159
- key: (_a = fileItem.key) !== null && _a !== void 0 ? _a : index,
160
- url: (_b = fileItem.thumbnailUrl) !== null && _b !== void 0 ? _b : fileItem.url,
161
- deletable: props.deletable,
162
- imageFit: props.imageFit,
163
- onClick: () => {
164
- if (props.preview) {
165
- previewImage(index);
166
- }
167
-
168
- onPreview && onPreview(index, fileItem);
169
- },
170
- onDelete: () => __awaiter(void 0, void 0, void 0, function* () {
171
- var _c;
172
-
173
- const canDelete = yield (_c = props.onDelete) === null || _c === void 0 ? void 0 : _c.call(props, fileItem);
174
- if (canDelete === false) return;
175
- setValue(value.filter((x, i) => i !== index));
176
- })
177
- });
178
- }), tasks.map(task => {
194
+ }, renderImages(), tasks.map(task => {
179
195
  if (!props.showFailed && task.status === 'fail') {
180
196
  return null;
181
197
  }
@@ -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;
@@ -1,4 +1,4 @@
1
- import React, { useMemo } from 'react';
1
+ import React, { useLayoutEffect, useMemo } from 'react';
2
2
  import { CloseOutline } from 'antd-mobile-icons';
3
3
  import classNames from 'classnames';
4
4
  import Image from '../image';
@@ -28,6 +28,11 @@ const PreviewItem = props => {
28
28
 
29
29
  return '';
30
30
  }, [url, file]);
31
+ useLayoutEffect(() => {
32
+ return () => {
33
+ URL.revokeObjectURL(src);
34
+ };
35
+ }, [src]);
31
36
 
32
37
  function renderLoading() {
33
38
  return props.status === 'pending' && React.createElement("div", {
@@ -75,8 +75,8 @@ export const Slides = forwardRef((props, ref) => {
75
75
  style: {
76
76
  x: x.to(x => -x)
77
77
  }
78
- }, props.images.map(image => React.createElement(Slide, {
79
- key: image,
78
+ }, props.images.map((image, index) => React.createElement(Slide, {
79
+ key: index,
80
80
  image: image,
81
81
  onTap: props.onTap,
82
82
  maxZoom: props.maxZoom,
@@ -24,6 +24,7 @@
24
24
  background: var(--active-dot-color);
25
25
  }
26
26
  .adm-page-indicator-color-white {
27
+ --dot-color: rgba(255, 255, 255, 0.5);
27
28
  --active-dot-color: var(--adm-color-white);
28
29
  }
29
30
  .adm-page-indicator-horizontal {
@@ -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>>>;
@@ -118,3 +118,11 @@
118
118
  justify-content: center;
119
119
  align-items: center;
120
120
  }
121
+ .adm-picker-view-item-height-measure {
122
+ position: relative;
123
+ left: 0;
124
+ top: 0;
125
+ height: var(--item-height);
126
+ width: 0;
127
+ pointer-events: none;
128
+ }
@@ -32,11 +32,12 @@ export const Wheel = memo(props => {
32
32
  }));
33
33
  const draggingRef = useRef(false);
34
34
  const rootRef = useRef(null);
35
+ const itemHeightMeasureRef = useRef(null);
35
36
  const itemHeight = useRef(34);
36
37
  useIsomorphicLayoutEffect(() => {
37
- const root = rootRef.current;
38
- if (!root) return;
39
- itemHeight.current = measureCSSLength(window.getComputedStyle(root).getPropertyValue('--item-height'));
38
+ const itemHeightMeasure = itemHeightMeasureRef.current;
39
+ if (!itemHeightMeasure) return;
40
+ itemHeight.current = measureCSSLength(window.getComputedStyle(itemHeightMeasure).getPropertyValue('height'));
40
41
  });
41
42
  useIsomorphicLayoutEffect(() => {
42
43
  if (draggingRef.current) return;
@@ -153,7 +154,10 @@ export const Wheel = memo(props => {
153
154
 
154
155
  return React.createElement("div", {
155
156
  className: `${classPrefix}-column`
156
- }, React.createElement(animated.div, {
157
+ }, React.createElement("div", {
158
+ className: `${classPrefix}-item-height-measure`,
159
+ ref: itemHeightMeasureRef
160
+ }), React.createElement(animated.div, {
157
161
  ref: rootRef,
158
162
  style: {
159
163
  translateY: y
@@ -1,7 +1,8 @@
1
1
  .adm-rate {
2
2
  --star-size: 24px;
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;
@@ -34,3 +35,6 @@
34
35
  .adm-rate-star-readonly {
35
36
  cursor: unset;
36
37
  }
38
+ .adm-rate.adm-rate-half .adm-rate-star-half:not(.adm-rate-star-active) {
39
+ color: var(--inactive-color-half);
40
+ }
@@ -63,7 +63,9 @@ export const Rate = p => {
63
63
  filterTaps: true
64
64
  });
65
65
  return withNativeProps(props, React.createElement("div", Object.assign({
66
- className: classPrefix,
66
+ className: classNames(classPrefix, {
67
+ [`${classPrefix}-half`]: props.allowHalf
68
+ }),
67
69
  role: 'radiogroup',
68
70
  "aria-readonly": props.readOnly,
69
71
  ref: containerRef
@@ -92,11 +92,24 @@
92
92
  user-select: none;
93
93
  transform: translateX(-50%);
94
94
  }
95
- .adm-slider-disabled {
95
+ .adm-slider-disabled .adm-slider-mark,
96
+ .adm-slider-disabled .adm-slider-thumb-icon {
96
97
  opacity: 0.4;
97
98
  }
99
+ .adm-slider-disabled .adm-slider-tick-active::after,
100
+ .adm-slider-disabled .adm-slider-fill::after {
101
+ content: '';
102
+ position: absolute;
103
+ left: 0;
104
+ top: 0;
105
+ right: 0;
106
+ bottom: 0;
107
+ border-radius: inherit;
108
+ background-color: rgba(255, 255, 255, 0.6);
109
+ }
98
110
  .adm-slider-disabled .adm-slider-thumb {
99
111
  cursor: not-allowed;
112
+ box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.06);
100
113
  }
101
114
  .adm-slider-disabled .adm-slider-mark-text,
102
115
  .adm-slider-disabled .adm-slider-tick {
@@ -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'>;
@@ -7,6 +7,7 @@ import Thumb from './thumb';
7
7
  import { mergeProps } from '../../utils/with-default-props';
8
8
  import { nearest } from '../../utils/nearest';
9
9
  import { usePropsValue } from '../../utils/use-props-value';
10
+ import { devWarning } from '../../utils/dev-log';
10
11
  const classPrefix = `adm-slider`;
11
12
  const defaultProps = {
12
13
  min: 0,
@@ -15,7 +16,8 @@ const defaultProps = {
15
16
  ticks: false,
16
17
  range: false,
17
18
  disabled: false,
18
- popover: false
19
+ popover: false,
20
+ residentPopover: false
19
21
  };
20
22
  export const Slider = p => {
21
23
  var _a;
@@ -49,8 +51,15 @@ export const Slider = p => {
49
51
  (_a = props.onAfterChange) === null || _a === void 0 ? void 0 : _a.call(props, reverseValue(value));
50
52
  }
51
53
 
54
+ let propsValue = props.value;
55
+
56
+ if (props.range && typeof props.value === 'number') {
57
+ devWarning('Slider', 'When `range` prop is enabled, the `value` prop should be an array, like: [0, 0]');
58
+ propsValue = [0, props.value];
59
+ }
60
+
52
61
  const [rawValue, setRawValue] = usePropsValue({
53
- value: props.value,
62
+ value: propsValue,
54
63
  defaultValue: (_a = props.defaultValue) !== null && _a !== void 0 ? _a : props.range ? [min, min] : min,
55
64
  onChange: props.onChange
56
65
  });
@@ -136,6 +145,7 @@ export const Slider = p => {
136
145
  trackRef: trackRef,
137
146
  icon: icon,
138
147
  popover: props.popover,
148
+ residentPopover: props.residentPopover,
139
149
  onDrag: (position, first, last) => {
140
150
  if (first) {
141
151
  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;
@@ -11,8 +11,9 @@ const Thumb = props => {
11
11
  min,
12
12
  max,
13
13
  disabled,
14
- onDrag,
15
- icon
14
+ icon,
15
+ residentPopover,
16
+ onDrag
16
17
  } = props;
17
18
  const prevValue = useRef(value);
18
19
  const {
@@ -67,7 +68,7 @@ const Thumb = props => {
67
68
  }), renderPopoverContent ? React.createElement(Popover, {
68
69
  content: renderPopoverContent(value),
69
70
  placement: 'top',
70
- visible: dragging,
71
+ visible: residentPopover || dragging,
71
72
  getContainer: null,
72
73
  mode: 'dark'
73
74
  }, thumbElement) : thumbElement);
@@ -12,8 +12,7 @@
12
12
  left: 50%;
13
13
  transform: translate(-50%, -50%);
14
14
  width: auto;
15
- min-width: 96px;
16
- max-width: 200px;
15
+ max-width: 204px;
17
16
  max-height: 70%;
18
17
  overflow: auto;
19
18
  color: white;
@@ -27,9 +26,11 @@
27
26
  }
28
27
  .adm-toast-mask .adm-toast-main-text {
29
28
  padding: 12px;
29
+ min-width: 0px;
30
30
  }
31
31
  .adm-toast-mask .adm-toast-main-icon {
32
- padding: 35px 40px;
32
+ padding: 35px 12px;
33
+ min-width: 150px;
33
34
  }
34
35
  .adm-toast-mask .adm-toast-main-icon .adm-toast-icon {
35
36
  text-align: center;
package/es/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/es/index.js 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';
@@ -100,7 +100,7 @@ const zhCN = mergeLocale(base, {
100
100
  clear: '清除'
101
101
  },
102
102
  Mask: {
103
- name: '遮罩层'
103
+ name: '背景蒙层'
104
104
  },
105
105
  Modal: {
106
106
  ok: '我知道了'
@@ -3,7 +3,7 @@ import { devError } from './dev-log';
3
3
  export function measureCSSLength(raw) {
4
4
  if (raw === null || raw === undefined || raw === '') {
5
5
  if (isDev) {
6
- devError('Global', 'Seems like the you will encounter a style messed problem. Please check the browser environment to make sure it supports CSS variables.');
6
+ 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');
7
7
  }
8
8
 
9
9
  return 0;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antd-mobile",
3
- "version": "5.22.0",
3
+ "version": "5.23.0",
4
4
  "dependencies": {
5
5
  "@floating-ui/dom": "^1.0.0",
6
6
  "@react-spring/web": "^9.4.5",