antd-mobile 5.0.0-rc.23 → 5.0.0-rc.27

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 (251) hide show
  1. package/2x/README.md +6 -6
  2. package/2x/cjs/components/button/button.css +2 -2
  3. package/2x/cjs/components/calendar/calendar.js +3 -1
  4. package/2x/cjs/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
  5. package/2x/cjs/components/date-picker/date-picker.d.ts +1 -1
  6. package/2x/cjs/components/date-picker-view/date-picker-view.d.ts +3 -2
  7. package/2x/cjs/components/dialog/dialog.css +4 -0
  8. package/2x/cjs/components/dropdown/dropdown.css +0 -4
  9. package/2x/cjs/components/dropdown/item.js +3 -1
  10. package/2x/cjs/components/ellipsis/ellipsis.js +3 -1
  11. package/2x/cjs/components/empty/empty.css +1 -1
  12. package/2x/cjs/components/floating-bubble/floating-bubble.css +1 -0
  13. package/2x/cjs/components/floating-panel/floating-panel.d.ts +7 -5
  14. package/2x/cjs/components/floating-panel/floating-panel.js +11 -1
  15. package/2x/cjs/components/form/form-item.css +4 -6
  16. package/2x/cjs/components/form/form-item.d.ts +2 -2
  17. package/2x/cjs/components/form/form-item.js +9 -5
  18. package/2x/cjs/components/form/form.css +3 -3
  19. package/2x/cjs/components/form/form.d.ts +5 -4
  20. package/2x/cjs/components/form/index.css +7 -9
  21. package/2x/cjs/components/form/index.d.ts +5 -4
  22. package/2x/cjs/components/image-uploader/image-uploader.js +1 -1
  23. package/2x/cjs/components/image-viewer/image-viewer.css +2 -0
  24. package/2x/cjs/components/image-viewer/image-viewer.js +12 -2
  25. package/2x/cjs/components/image-viewer/slide.js +11 -7
  26. package/2x/cjs/components/image-viewer/slides.d.ts +1 -1
  27. package/2x/cjs/components/index-bar/index-bar.css +2 -1
  28. package/2x/cjs/components/input/input.d.ts +6 -2
  29. package/2x/cjs/components/input/input.js +23 -3
  30. package/2x/cjs/components/list/list.css +8 -10
  31. package/2x/cjs/components/picker/picker.css +10 -2
  32. package/2x/cjs/components/picker/picker.d.ts +2 -1
  33. package/2x/cjs/components/picker/picker.js +3 -1
  34. package/2x/cjs/components/picker-view/picker-view.css +2 -1
  35. package/2x/cjs/components/picker-view/picker-view.d.ts +1 -1
  36. package/2x/cjs/components/picker-view/wheel.js +4 -2
  37. package/2x/cjs/components/popover/arrow.d.ts +3 -0
  38. package/2x/cjs/components/popover/arrow.js +26 -0
  39. package/2x/cjs/components/popover/index.d.ts +10 -20
  40. package/2x/cjs/components/popover/index.js +4 -2
  41. package/2x/cjs/components/popover/popover-menu.css +63 -0
  42. package/2x/cjs/components/popover/popover-menu.d.ts +17 -0
  43. package/{cjs/components/popover/pop-menu.js → 2x/cjs/components/popover/popover-menu.js} +23 -26
  44. package/2x/cjs/components/popover/popover.css +90 -318
  45. package/2x/cjs/components/popover/popover.d.ts +9 -8
  46. package/2x/cjs/components/popover/popover.js +11 -17
  47. package/2x/cjs/components/radio/radio.js +2 -3
  48. package/2x/cjs/components/selector/selector.css +14 -6
  49. package/2x/cjs/components/selector/selector.d.ts +2 -1
  50. package/2x/cjs/components/selector/selector.js +3 -2
  51. package/2x/cjs/components/swiper/swiper.js +1 -1
  52. package/2x/cjs/components/tabs/tabs.js +2 -2
  53. package/2x/cjs/components/text-area/text-area.css +9 -9
  54. package/2x/cjs/components/text-area/text-area.d.ts +2 -2
  55. package/2x/cjs/components/text-area/text-area.js +41 -32
  56. package/2x/cjs/components/virtual-input/virtual-input.js +3 -1
  57. package/2x/cjs/utils/get-scroll-parent.js +1 -1
  58. package/2x/cjs/utils/use-ref-state.js +1 -1
  59. package/2x/cjs/utils/use-resize-effect.js +1 -3
  60. package/2x/cjs/utils/use-tab-list-scroll.js +1 -3
  61. package/2x/es/components/button/button.css +2 -2
  62. package/2x/es/components/calendar/calendar.js +3 -2
  63. package/2x/es/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
  64. package/2x/es/components/date-picker/date-picker.d.ts +1 -1
  65. package/2x/es/components/date-picker-view/date-picker-view.d.ts +3 -2
  66. package/2x/es/components/dialog/dialog.css +4 -0
  67. package/2x/es/components/dropdown/dropdown.css +0 -4
  68. package/2x/es/components/dropdown/item.js +3 -1
  69. package/2x/es/components/ellipsis/ellipsis.js +3 -2
  70. package/2x/es/components/empty/empty.css +1 -1
  71. package/2x/es/components/floating-bubble/floating-bubble.css +1 -0
  72. package/2x/es/components/floating-panel/floating-panel.d.ts +7 -5
  73. package/2x/es/components/floating-panel/floating-panel.js +9 -1
  74. package/2x/es/components/form/form-item.css +4 -6
  75. package/2x/es/components/form/form-item.d.ts +2 -2
  76. package/2x/es/components/form/form-item.js +9 -5
  77. package/2x/es/components/form/form.css +3 -3
  78. package/2x/es/components/form/form.d.ts +5 -4
  79. package/2x/es/components/form/index.css +7 -9
  80. package/2x/es/components/form/index.d.ts +5 -4
  81. package/2x/es/components/image-uploader/image-uploader.js +3 -3
  82. package/2x/es/components/image-viewer/image-viewer.css +2 -0
  83. package/2x/es/components/image-viewer/image-viewer.js +13 -3
  84. package/2x/es/components/image-viewer/slide.js +11 -7
  85. package/2x/es/components/image-viewer/slides.d.ts +1 -1
  86. package/2x/es/components/index-bar/index-bar.css +2 -1
  87. package/2x/es/components/input/input.d.ts +6 -2
  88. package/2x/es/components/input/input.js +22 -4
  89. package/2x/es/components/list/list.css +8 -10
  90. package/2x/es/components/picker/picker.css +10 -2
  91. package/2x/es/components/picker/picker.d.ts +2 -1
  92. package/2x/es/components/picker/picker.js +3 -1
  93. package/2x/es/components/picker-view/picker-view.css +2 -1
  94. package/2x/es/components/picker-view/picker-view.d.ts +1 -1
  95. package/2x/es/components/picker-view/wheel.js +4 -3
  96. package/2x/es/components/popover/arrow.d.ts +3 -0
  97. package/2x/es/components/popover/arrow.js +12 -0
  98. package/2x/es/components/popover/index.d.ts +10 -20
  99. package/2x/es/components/popover/index.js +3 -2
  100. package/2x/es/components/popover/popover-menu.css +63 -0
  101. package/2x/es/components/popover/popover-menu.d.ts +17 -0
  102. package/2x/es/components/popover/popover-menu.js +52 -0
  103. package/2x/es/components/popover/popover.css +90 -318
  104. package/2x/es/components/popover/popover.d.ts +9 -8
  105. package/2x/es/components/popover/popover.js +10 -17
  106. package/2x/es/components/radio/radio.js +2 -3
  107. package/2x/es/components/selector/selector.css +14 -6
  108. package/2x/es/components/selector/selector.d.ts +2 -1
  109. package/2x/es/components/selector/selector.js +3 -2
  110. package/2x/es/components/swiper/swiper.js +3 -3
  111. package/2x/es/components/tabs/tabs.js +4 -4
  112. package/2x/es/components/text-area/text-area.css +9 -9
  113. package/2x/es/components/text-area/text-area.d.ts +2 -2
  114. package/2x/es/components/text-area/text-area.js +41 -31
  115. package/2x/es/components/virtual-input/virtual-input.js +3 -2
  116. package/2x/es/utils/get-scroll-parent.js +1 -1
  117. package/2x/es/utils/use-ref-state.js +2 -2
  118. package/2x/es/utils/use-resize-effect.js +2 -3
  119. package/2x/es/utils/use-tab-list-scroll.js +2 -3
  120. package/2x/package.json +5 -5
  121. package/README.md +6 -6
  122. package/cjs/components/button/button.css +2 -2
  123. package/cjs/components/calendar/calendar.js +3 -1
  124. package/cjs/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
  125. package/cjs/components/date-picker/date-picker.d.ts +1 -1
  126. package/cjs/components/date-picker-view/date-picker-view.d.ts +3 -2
  127. package/cjs/components/dialog/dialog.css +3 -0
  128. package/cjs/components/dropdown/dropdown.css +0 -3
  129. package/cjs/components/dropdown/item.js +3 -1
  130. package/cjs/components/ellipsis/ellipsis.js +3 -1
  131. package/cjs/components/empty/empty.css +1 -1
  132. package/cjs/components/floating-bubble/floating-bubble.css +1 -0
  133. package/cjs/components/floating-panel/floating-panel.d.ts +7 -5
  134. package/cjs/components/floating-panel/floating-panel.js +11 -1
  135. package/cjs/components/form/form-item.css +4 -5
  136. package/cjs/components/form/form-item.d.ts +2 -2
  137. package/cjs/components/form/form-item.js +9 -5
  138. package/cjs/components/form/form.css +3 -3
  139. package/cjs/components/form/form.d.ts +5 -4
  140. package/cjs/components/form/index.css +7 -8
  141. package/cjs/components/form/index.d.ts +5 -4
  142. package/cjs/components/image-uploader/image-uploader.js +1 -1
  143. package/cjs/components/image-viewer/image-viewer.css +2 -0
  144. package/cjs/components/image-viewer/image-viewer.js +12 -2
  145. package/cjs/components/image-viewer/slide.js +11 -7
  146. package/cjs/components/image-viewer/slides.d.ts +1 -1
  147. package/cjs/components/index-bar/index-bar.css +2 -1
  148. package/cjs/components/input/input.d.ts +6 -2
  149. package/cjs/components/input/input.js +23 -3
  150. package/cjs/components/list/list.css +7 -9
  151. package/cjs/components/picker/picker.css +9 -2
  152. package/cjs/components/picker/picker.d.ts +2 -1
  153. package/cjs/components/picker/picker.js +3 -1
  154. package/cjs/components/picker-view/picker-view.css +2 -1
  155. package/cjs/components/picker-view/picker-view.d.ts +1 -1
  156. package/cjs/components/picker-view/wheel.js +4 -2
  157. package/cjs/components/popover/arrow.d.ts +3 -0
  158. package/cjs/components/popover/arrow.js +26 -0
  159. package/cjs/components/popover/index.d.ts +10 -20
  160. package/cjs/components/popover/index.js +4 -2
  161. package/cjs/components/popover/popover-menu.css +52 -0
  162. package/cjs/components/popover/popover-menu.d.ts +17 -0
  163. package/{2x/cjs/components/popover/pop-menu.js → cjs/components/popover/popover-menu.js} +23 -26
  164. package/cjs/components/popover/popover.css +83 -276
  165. package/cjs/components/popover/popover.d.ts +9 -8
  166. package/cjs/components/popover/popover.js +11 -17
  167. package/cjs/components/radio/radio.js +2 -3
  168. package/cjs/components/selector/selector.css +14 -6
  169. package/cjs/components/selector/selector.d.ts +2 -1
  170. package/cjs/components/selector/selector.js +3 -2
  171. package/cjs/components/swiper/swiper.js +1 -1
  172. package/cjs/components/tabs/tabs.js +2 -2
  173. package/cjs/components/text-area/text-area.css +9 -9
  174. package/cjs/components/text-area/text-area.d.ts +2 -2
  175. package/cjs/components/text-area/text-area.js +41 -32
  176. package/cjs/components/virtual-input/virtual-input.js +3 -1
  177. package/cjs/utils/get-scroll-parent.js +1 -1
  178. package/cjs/utils/use-ref-state.js +1 -1
  179. package/cjs/utils/use-resize-effect.js +1 -3
  180. package/cjs/utils/use-tab-list-scroll.js +1 -3
  181. package/es/components/button/button.css +2 -2
  182. package/es/components/calendar/calendar.js +3 -2
  183. package/es/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
  184. package/es/components/date-picker/date-picker.d.ts +1 -1
  185. package/es/components/date-picker-view/date-picker-view.d.ts +3 -2
  186. package/es/components/dialog/dialog.css +3 -0
  187. package/es/components/dropdown/dropdown.css +0 -3
  188. package/es/components/dropdown/item.js +3 -1
  189. package/es/components/ellipsis/ellipsis.js +3 -2
  190. package/es/components/empty/empty.css +1 -1
  191. package/es/components/floating-bubble/floating-bubble.css +1 -0
  192. package/es/components/floating-panel/floating-panel.d.ts +7 -5
  193. package/es/components/floating-panel/floating-panel.js +9 -1
  194. package/es/components/form/form-item.css +4 -5
  195. package/es/components/form/form-item.d.ts +2 -2
  196. package/es/components/form/form-item.js +9 -5
  197. package/es/components/form/form.css +3 -3
  198. package/es/components/form/form.d.ts +5 -4
  199. package/es/components/form/index.css +7 -8
  200. package/es/components/form/index.d.ts +5 -4
  201. package/es/components/image-uploader/image-uploader.js +3 -3
  202. package/es/components/image-viewer/image-viewer.css +2 -0
  203. package/es/components/image-viewer/image-viewer.js +13 -3
  204. package/es/components/image-viewer/slide.js +11 -7
  205. package/es/components/image-viewer/slides.d.ts +1 -1
  206. package/es/components/index-bar/index-bar.css +2 -1
  207. package/es/components/input/input.d.ts +6 -2
  208. package/es/components/input/input.js +22 -4
  209. package/es/components/list/list.css +7 -9
  210. package/es/components/picker/picker.css +9 -2
  211. package/es/components/picker/picker.d.ts +2 -1
  212. package/es/components/picker/picker.js +3 -1
  213. package/es/components/picker-view/picker-view.css +2 -1
  214. package/es/components/picker-view/picker-view.d.ts +1 -1
  215. package/es/components/picker-view/wheel.js +4 -3
  216. package/es/components/popover/arrow.d.ts +3 -0
  217. package/es/components/popover/arrow.js +12 -0
  218. package/es/components/popover/index.d.ts +10 -20
  219. package/es/components/popover/index.js +3 -2
  220. package/es/components/popover/popover-menu.css +52 -0
  221. package/es/components/popover/popover-menu.d.ts +17 -0
  222. package/es/components/popover/popover-menu.js +52 -0
  223. package/es/components/popover/popover.css +83 -276
  224. package/es/components/popover/popover.d.ts +9 -8
  225. package/es/components/popover/popover.js +10 -17
  226. package/es/components/radio/radio.js +2 -3
  227. package/es/components/selector/selector.css +14 -6
  228. package/es/components/selector/selector.d.ts +2 -1
  229. package/es/components/selector/selector.js +3 -2
  230. package/es/components/swiper/swiper.js +3 -3
  231. package/es/components/tabs/tabs.js +4 -4
  232. package/es/components/text-area/text-area.css +9 -9
  233. package/es/components/text-area/text-area.d.ts +2 -2
  234. package/es/components/text-area/text-area.js +41 -31
  235. package/es/components/virtual-input/virtual-input.js +3 -2
  236. package/es/utils/get-scroll-parent.js +1 -1
  237. package/es/utils/use-ref-state.js +2 -2
  238. package/es/utils/use-resize-effect.js +2 -3
  239. package/es/utils/use-tab-list-scroll.js +2 -3
  240. package/package.json +5 -5
  241. package/umd/antd-mobile.js +1 -1
  242. package/2x/cjs/components/popover/animation.css +0 -111
  243. package/2x/cjs/components/popover/pop-menu.d.ts +0 -28
  244. package/2x/es/components/popover/animation.css +0 -111
  245. package/2x/es/components/popover/pop-menu.d.ts +0 -28
  246. package/2x/es/components/popover/pop-menu.js +0 -54
  247. package/cjs/components/popover/animation.css +0 -96
  248. package/cjs/components/popover/pop-menu.d.ts +0 -28
  249. package/es/components/popover/animation.css +0 -96
  250. package/es/components/popover/pop-menu.d.ts +0 -28
  251. package/es/components/popover/pop-menu.js +0 -54
@@ -1,6 +1,6 @@
1
1
  .adm-form .adm-list.adm-list {
2
- --padding-left: 40px;
3
- --padding-right: 40px;
2
+ --padding-left: 32px;
3
+ --padding-right: 24px;
4
4
  }
5
5
 
6
6
  .adm-form-horizontal .adm-list.adm-list {
@@ -13,7 +13,7 @@
13
13
  }
14
14
 
15
15
  .adm-form .adm-form-footer {
16
- padding: 24px;
16
+ padding: 40px 24px;
17
17
  }
18
18
 
19
19
  .adm-form-item + .adm-form-item {
@@ -31,13 +31,15 @@
31
31
  .adm-form-item-label-required {
32
32
  position: absolute;
33
33
  left: -0.6em;
34
- top: 0.2em;
34
+ top: 0;
35
+ font-family: SimSun, sans-serif;
35
36
  color: var(--adm-color-danger);
36
37
  user-select: none;
37
38
  }
38
39
 
39
40
  .adm-form-item-footer {
40
41
  color: var(--adm-color-danger);
42
+ margin-top: 8px;
41
43
  }
42
44
 
43
45
  .adm-form-item.adm-form-item-hidden {
@@ -45,12 +47,8 @@
45
47
  }
46
48
 
47
49
  .adm-form-vertical .adm-form-item-label {
48
- margin-bottom: 8px;
49
50
  font-size: 30px;
50
- }
51
-
52
- .adm-form-vertical .adm-form-item-footer {
53
- margin-top: 8px;
51
+ margin-bottom: 8px;
54
52
  }
55
53
 
56
54
  .adm-form-horizontal .adm-list-item-content-prefix {
@@ -2,13 +2,14 @@
2
2
  import './index.less';
3
3
  import { useForm } from 'rc-field-form';
4
4
  export declare type FormLayout = 'vertical' | 'horizontal';
5
- export type { FormProps } from './form';
6
- export type { FormInstance } from 'rc-field-form';
7
- declare const _default: import("react").ForwardRefExoticComponent<import("rc-field-form").FormProps<any> & import("../../utils/native-props").NativeProps<never> & Partial<import("./context").FormContextType> & {
5
+ export type { FormProps, FormInstance } from './form';
6
+ export type { FormItemProps } from './form-item';
7
+ export type { ValidateMessages, FieldData, NamePath, } from 'rc-field-form/es/interface';
8
+ declare const _default: import("react").ForwardRefExoticComponent<Pick<import("rc-field-form").FormProps<any>, "children" | "form" | "name" | "initialValues" | "preserve" | "validateMessages" | "validateTrigger" | "onFieldsChange" | "onFinish" | "onFinishFailed" | "onValuesChange"> & import("../../utils/native-props").NativeProps<never> & Partial<import("./context").FormContextType> & {
8
9
  footer?: import("react").ReactNode;
9
10
  layout?: "horizontal" | "vertical" | undefined;
10
11
  mode?: "default" | "card" | undefined;
11
- } & import("react").RefAttributes<import("rc-field-form").FormInstance<any>>> & {
12
+ } & import("react").RefAttributes<Pick<import("rc-field-form").FormInstance<any>, "submit" | "getFieldValue" | "getFieldsValue" | "getFieldError" | "getFieldsError" | "isFieldTouched" | "isFieldsTouched" | "resetFields" | "setFields" | "setFieldsValue" | "validateFields">>> & {
12
13
  Item: import("react").FC<import("./form-item").FormItemProps>;
13
14
  Header: import("react").FC<{}>;
14
15
  useForm: typeof useForm;
@@ -1,11 +1,11 @@
1
1
  import { __awaiter } from "tslib";
2
- import React, { useLayoutEffect, useRef, useState } from 'react';
2
+ import React, { useRef, useState } from 'react';
3
3
  import { AddOutline } from 'antd-mobile-icons';
4
4
  import { mergeProps } from '../../utils/with-default-props';
5
5
  import ImageViewer from '../image-viewer';
6
6
  import PreviewItem from './preview-item';
7
7
  import { usePropsValue } from '../../utils/use-props-value';
8
- import { useMemoizedFn, useUnmount } from 'ahooks';
8
+ import { useIsomorphicLayoutEffect, useMemoizedFn, useUnmount } from 'ahooks';
9
9
  import Space from '../space';
10
10
  import { withNativeProps } from '../../utils/native-props';
11
11
  const classPrefix = `adm-image-uploader`;
@@ -26,7 +26,7 @@ export const ImageUploader = p => {
26
26
  setValue(updater(value));
27
27
  });
28
28
  const [tasks, setTasks] = useState([]);
29
- useLayoutEffect(() => {
29
+ useIsomorphicLayoutEffect(() => {
30
30
  setTasks(prev => prev.filter(task => {
31
31
  if (task.url === undefined) return true;
32
32
  return !value.some(fileItem => fileItem.url === task.url);
@@ -11,6 +11,7 @@
11
11
  position: relative;
12
12
  z-index: 1;
13
13
  cursor: grab;
14
+ touch-action: none;
14
15
  }
15
16
 
16
17
  .adm-image-viewer-slides-inner {
@@ -37,6 +38,7 @@
37
38
  width: 100%;
38
39
  height: 100%;
39
40
  cursor: grab;
41
+ touch-action: none;
40
42
  }
41
43
 
42
44
  .adm-image-viewer-image-wrapper {
@@ -1,4 +1,4 @@
1
- import React, { forwardRef } from 'react';
1
+ import React, { forwardRef, useImperativeHandle, useRef, useState } from 'react';
2
2
  import { mergeProps } from '../../utils/with-default-props';
3
3
  import { renderToContainer } from '../../utils/render-to-container';
4
4
  import Mask from '../mask';
@@ -35,6 +35,16 @@ const multiDefaultProps = Object.assign(Object.assign({}, defaultProps), {
35
35
  });
36
36
  export const MultiImageViewer = forwardRef((p, ref) => {
37
37
  const props = mergeProps(multiDefaultProps, p);
38
+ const [defaultIndex, setDefaultIndex] = useState(props.defaultIndex);
39
+ const slidesRef = useRef(null);
40
+ useImperativeHandle(ref, () => ({
41
+ swipeTo: (index, immediate) => {
42
+ var _a;
43
+
44
+ setDefaultIndex(index);
45
+ (_a = slidesRef.current) === null || _a === void 0 ? void 0 : _a.swipeTo(index, immediate);
46
+ }
47
+ }));
38
48
  const node = React.createElement(Mask, {
39
49
  visible: props.visible,
40
50
  disableBodyScroll: false,
@@ -43,8 +53,8 @@ export const MultiImageViewer = forwardRef((p, ref) => {
43
53
  }, React.createElement("div", {
44
54
  className: `${classPrefix}-content`
45
55
  }, props.images && React.createElement(Slides, {
46
- ref: ref,
47
- defaultIndex: props.defaultIndex,
56
+ ref: slidesRef,
57
+ defaultIndex: defaultIndex,
48
58
  onIndexChange: props.onIndexChange,
49
59
  images: props.images,
50
60
  onTap: () => {
@@ -22,7 +22,7 @@ export const Slide = props => {
22
22
  const pinchLockRef = useRef(false);
23
23
  useGesture({
24
24
  onDrag: state => {
25
- if (state.tap && state.elapsedTime > 0) {
25
+ if (state.tap && state.elapsedTime > 0 && state.elapsedTime < 1000) {
26
26
  // 判断点击时间>0是为了过滤掉非正常操作,例如用户长按选择图片之后的取消操作(也是一次点击)
27
27
  props.onTap();
28
28
  return;
@@ -81,13 +81,16 @@ export const Slide = props => {
81
81
  target: controlRef,
82
82
  drag: {
83
83
  // filterTaps: true,
84
- from: () => [x.get(), y.get()]
84
+ from: () => [x.get(), y.get()],
85
+ pointer: {
86
+ touch: true
87
+ }
85
88
  },
86
89
  pinch: {
87
- from: () => [zoom.get(), 0]
88
- },
89
- pointer: {
90
- touch: true
90
+ from: () => [zoom.get(), 0],
91
+ pointer: {
92
+ touch: true
93
+ }
91
94
  }
92
95
  });
93
96
  return React.createElement("div", {
@@ -109,6 +112,7 @@ export const Slide = props => {
109
112
  }
110
113
  }, React.createElement("img", {
111
114
  src: props.image,
112
- draggable: false
115
+ draggable: false,
116
+ alt: props.image
113
117
  }))));
114
118
  };
@@ -7,6 +7,6 @@ export declare type SlidesType = {
7
7
  onIndexChange?: (index: number) => void;
8
8
  };
9
9
  export declare type SlidesRef = {
10
- swipeTo: (index: number, immediate: boolean) => void;
10
+ swipeTo: (index: number, immediate?: boolean) => void;
11
11
  };
12
12
  export declare const Slides: React.ForwardRefExoticComponent<SlidesType & React.RefAttributes<SlidesRef>>;
@@ -33,7 +33,7 @@
33
33
  top: 50%;
34
34
  right: 0;
35
35
  transform: translateY(-50%);
36
- z-index: 3;
36
+ z-index: 910;
37
37
  overflow: visible;
38
38
  color: var(--adm-color-weak);
39
39
  font-size: 24px;
@@ -89,6 +89,7 @@
89
89
 
90
90
  .adm-index-bar-sticky .adm-index-bar-anchor-title {
91
91
  position: sticky;
92
+ z-index: 900;
92
93
  top: var(--sticky-offset-top);
93
94
  left: 0;
94
95
  }
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
3
  declare type NativeInputProps = React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>;
4
- export declare type InputProps = Pick<NativeInputProps, 'maxLength' | 'minLength' | 'max' | 'min' | 'autoComplete' | 'pattern' | 'inputMode' | 'type' | 'onFocus' | 'onBlur' | 'autoCapitalize' | 'autoCorrect' | 'onKeyDown' | 'onKeyUp'> & {
4
+ export declare type InputProps = Pick<NativeInputProps, 'maxLength' | 'minLength' | 'autoComplete' | 'pattern' | 'inputMode' | 'type' | 'onFocus' | 'onBlur' | 'autoCapitalize' | 'autoCorrect' | 'onKeyDown' | 'onKeyUp' | 'onCompositionStart' | 'onCompositionEnd'> & {
5
5
  value?: string;
6
6
  defaultValue?: string;
7
7
  onChange?: (val: string) => void;
@@ -13,13 +13,15 @@ export declare type InputProps = Pick<NativeInputProps, 'maxLength' | 'minLength
13
13
  id?: string;
14
14
  onEnterPress?: (e: React.KeyboardEvent<HTMLInputElement>) => void;
15
15
  enterKeyHint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send';
16
+ min?: number;
17
+ max?: number;
16
18
  } & NativeProps<'--font-size' | '--color' | '--placeholder-color' | '--text-align'>;
17
19
  export declare type InputRef = {
18
20
  clear: () => void;
19
21
  focus: () => void;
20
22
  blur: () => void;
21
23
  };
22
- export declare const Input: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "pattern" | "max" | "min" | "type" | "onFocus" | "onBlur" | "onKeyDown" | "onKeyUp" | "autoCapitalize" | "autoCorrect" | "inputMode" | "autoComplete" | "maxLength" | "minLength"> & {
24
+ export declare const Input: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "pattern" | "type" | "onCompositionEnd" | "onCompositionStart" | "onFocus" | "onBlur" | "onKeyDown" | "onKeyUp" | "autoCapitalize" | "autoCorrect" | "inputMode" | "autoComplete" | "maxLength" | "minLength"> & {
23
25
  value?: string | undefined;
24
26
  defaultValue?: string | undefined;
25
27
  onChange?: ((val: string) => void) | undefined;
@@ -31,5 +33,7 @@ export declare const Input: React.ForwardRefExoticComponent<Pick<React.DetailedH
31
33
  id?: string | undefined;
32
34
  onEnterPress?: ((e: React.KeyboardEvent<HTMLInputElement>) => void) | undefined;
33
35
  enterKeyHint?: "enter" | "search" | "done" | "go" | "next" | "previous" | "send" | undefined;
36
+ min?: number | undefined;
37
+ max?: number | undefined;
34
38
  } & NativeProps<"--color" | "--font-size" | "--placeholder-color" | "--text-align"> & React.RefAttributes<InputRef>>;
35
39
  export {};
@@ -1,9 +1,11 @@
1
- import React, { useState, forwardRef, useImperativeHandle, useRef, useLayoutEffect } from 'react';
1
+ import React, { useState, forwardRef, useImperativeHandle, useRef } from 'react';
2
2
  import { usePropsValue } from '../../utils/use-props-value';
3
3
  import { CloseCircleFill } from 'antd-mobile-icons';
4
4
  import { withNativeProps } from '../../utils/native-props';
5
5
  import { mergeProps } from '../../utils/with-default-props';
6
6
  import classNames from 'classnames';
7
+ import { useIsomorphicLayoutEffect } from 'ahooks';
8
+ import { bound } from '../../utils/bound';
7
9
  const classPrefix = `adm-input`;
8
10
  const defaultProps = {
9
11
  defaultValue: ''
@@ -39,7 +41,7 @@ export const Input = forwardRef((p, ref) => {
39
41
  (_a = props.onKeyDown) === null || _a === void 0 ? void 0 : _a.call(props, e);
40
42
  };
41
43
 
42
- useLayoutEffect(() => {
44
+ useIsomorphicLayoutEffect(() => {
43
45
  var _a;
44
46
 
45
47
  if (!props.enterKeyHint) return;
@@ -50,6 +52,19 @@ export const Input = forwardRef((p, ref) => {
50
52
  (_a = nativeInputRef.current) === null || _a === void 0 ? void 0 : _a.removeAttribute('enterkeyhint');
51
53
  };
52
54
  }, [props.enterKeyHint]);
55
+
56
+ function checkValue() {
57
+ let nextValue = value;
58
+
59
+ if (props.type === 'number') {
60
+ nextValue = bound(parseFloat(nextValue), props.min, props.max).toString();
61
+ }
62
+
63
+ if (nextValue !== value) {
64
+ setValue(nextValue);
65
+ }
66
+ }
67
+
53
68
  return withNativeProps(props, React.createElement("div", {
54
69
  className: classNames(`${classPrefix}`, props.disabled && `${classPrefix}-disabled`)
55
70
  }, React.createElement("input", {
@@ -69,6 +84,7 @@ export const Input = forwardRef((p, ref) => {
69
84
  var _a;
70
85
 
71
86
  setHasFocus(false);
87
+ checkValue();
72
88
  (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props, e);
73
89
  },
74
90
  id: props.id,
@@ -86,8 +102,10 @@ export const Input = forwardRef((p, ref) => {
86
102
  autoCapitalize: props.autoCapitalize,
87
103
  autoCorrect: props.autoCorrect,
88
104
  onKeyDown: handleKeydown,
89
- onKeyUp: props.onKeyUp
90
- }), props.clearable && !!value && React.createElement("div", {
105
+ onKeyUp: props.onKeyUp,
106
+ onCompositionStart: props.onCompositionStart,
107
+ onCompositionEnd: props.onCompositionEnd
108
+ }), props.clearable && !!value && !props.readOnly && React.createElement("div", {
91
109
  className: `${classPrefix}-clear`,
92
110
  onMouseDown: e => {
93
111
  e.preventDefault();
@@ -1,5 +1,5 @@
1
1
  .adm-list {
2
- --header-font-size: 28px;
2
+ --header-font-size: 30px;
3
3
  --prefix-width: 'auto';
4
4
  --prefix-padding-right: 24px;
5
5
  --align-items: center;
@@ -15,9 +15,7 @@
15
15
  .adm-list-header {
16
16
  color: var(--adm-color-weak);
17
17
  font-size: var(--header-font-size);
18
- padding-left: var(--padding-left);
19
- padding-right: var(--padding-right);
20
- margin: 32px 0 8px;
18
+ padding: 16px var(--padding-right) 16px var(--padding-left);
21
19
  }
22
20
 
23
21
  .adm-list-body {
@@ -43,6 +41,10 @@
43
41
  border-radius: 16px;
44
42
  }
45
43
 
44
+ .adm-list-card .adm-list-header {
45
+ padding-left: 0;
46
+ }
47
+
46
48
  .adm-list-item {
47
49
  display: block;
48
50
  padding-left: var(--padding-left);
@@ -99,11 +101,11 @@
99
101
  pointer-events: none;
100
102
  }
101
103
 
102
- a.adm-list-item:active {
104
+ a.adm-list-item:active:not(.adm-list-item-disabled) {
103
105
  background-color: var(--active-background-color);
104
106
  }
105
107
 
106
- a.adm-list-item:active::after {
108
+ a.adm-list-item:active:not(.adm-list-item-disabled)::after {
107
109
  content: ' ';
108
110
  display: block;
109
111
  position: absolute;
@@ -111,8 +113,4 @@ a.adm-list-item:active::after {
111
113
  bottom: -2px;
112
114
  left: 0;
113
115
  border-bottom: var(--border-inner);
114
- }
115
-
116
- a.adm-list-item.adm-list-item-disabled:active {
117
- background-color: unset;
118
116
  }
@@ -1,10 +1,18 @@
1
1
  .adm-picker {
2
+ --header-button-font-size: 30px;
3
+ --title-font-size: 30px;
4
+ --item-font-size: 32px;
2
5
  width: 100%;
3
6
  height: 600px;
4
7
  overflow: hidden;
5
8
  position: relative;
6
9
  display: flex;
7
10
  flex-direction: column;
11
+ ---item-font-size: var(--item-font-size);
12
+ }
13
+
14
+ .adm-picker .adm-picker-view.adm-picker-view {
15
+ --item-font-size: var(---item-font-size);
8
16
  }
9
17
 
10
18
  .adm-picker-header {
@@ -17,14 +25,14 @@
17
25
  }
18
26
 
19
27
  .adm-picker-header-button {
20
- font-size: 30px;
28
+ font-size: var(--header-button-font-size);
21
29
  display: inline-block;
22
30
  padding: 16px 16px;
23
31
  }
24
32
 
25
33
  .adm-picker-header-title {
26
34
  padding: 8px 8px;
27
- font-size: 30px;
35
+ font-size: var(--title-font-size);
28
36
  color: var(--adm-color-text);
29
37
  text-align: center;
30
38
  flex: 1;
@@ -10,10 +10,11 @@ export declare type PickerProps = {
10
10
  onConfirm?: (value: PickerValue[], extend: PickerValueExtend) => void;
11
11
  onCancel?: () => void;
12
12
  onClose?: () => void;
13
+ closeOnMaskClick?: boolean;
13
14
  visible?: boolean;
14
15
  title?: ReactNode;
15
16
  confirmText?: ReactNode;
16
17
  cancelText?: ReactNode;
17
18
  children?: (items: (PickerColumnItem | null)[]) => ReactNode;
18
- } & Pick<PopupProps, 'getContainer' | 'afterShow' | 'afterClose' | 'onClick' | 'stopPropagation'> & NativeProps;
19
+ } & Pick<PopupProps, 'getContainer' | 'afterShow' | 'afterClose' | 'onClick' | 'stopPropagation'> & NativeProps<'--header-button-font-size' | '--title-font-size' | '--item-font-size'>;
19
20
  export declare const Picker: React.NamedExoticComponent<PickerProps>;
@@ -11,7 +11,8 @@ import { useMemoizedFn } from 'ahooks';
11
11
  import SafeArea from '../safe-area';
12
12
  const classPrefix = `adm-picker`;
13
13
  const defaultProps = {
14
- defaultValue: []
14
+ defaultValue: [],
15
+ closeOnMaskClick: true
15
16
  };
16
17
  export const Picker = memo(p => {
17
18
  var _a;
@@ -89,6 +90,7 @@ export const Picker = memo(p => {
89
90
  onMaskClick: () => {
90
91
  var _a, _b;
91
92
 
93
+ if (!props.closeOnMaskClick) return;
92
94
  (_a = props.onCancel) === null || _a === void 0 ? void 0 : _a.call(props);
93
95
  (_b = props.onClose) === null || _b === void 0 ? void 0 : _b.call(props);
94
96
  },
@@ -1,5 +1,6 @@
1
1
  .adm-picker-view {
2
2
  --height: 480px;
3
+ --item-font-size: 32px;
3
4
  height: var(--height);
4
5
  width: 100%;
5
6
  display: flex;
@@ -44,7 +45,7 @@
44
45
  }
45
46
 
46
47
  .adm-picker-view-column-item {
47
- font-size: 32px;
48
+ font-size: var(--item-font-size);
48
49
  padding: 0 12px;
49
50
  height: 68px;
50
51
  display: flex;
@@ -14,5 +14,5 @@ export declare type PickerViewProps = {
14
14
  value?: PickerValue[];
15
15
  defaultValue?: PickerValue[];
16
16
  onChange?: (value: PickerValue[], extend: PickerValueExtend) => void;
17
- } & NativeProps<'--height'>;
17
+ } & NativeProps<'--height' | '--item-font-size'>;
18
18
  export declare const PickerView: React.NamedExoticComponent<PickerViewProps>;
@@ -1,10 +1,11 @@
1
- import React, { memo, useLayoutEffect, useRef } from 'react';
1
+ import React, { memo, useRef } from 'react';
2
2
  import { useSpring, animated } from '@react-spring/web';
3
3
  import { useDrag } from '@use-gesture/react';
4
4
  import { convertPx } from '../../utils/convert-px';
5
5
  import { rubberbandIfOutOfBounds } from '../../utils/rubberband';
6
6
  import { bound } from '../../utils/bound';
7
7
  import isEqual from 'lodash/isEqual';
8
+ import { useIsomorphicLayoutEffect } from 'ahooks';
8
9
  const classPrefix = `adm-picker-view`;
9
10
  export const Wheel = memo(props => {
10
11
  const itemHeight = convertPx(34);
@@ -29,7 +30,7 @@ export const Wheel = memo(props => {
29
30
  }
30
31
  }));
31
32
  const draggingRef = useRef(false);
32
- useLayoutEffect(() => {
33
+ useIsomorphicLayoutEffect(() => {
33
34
  if (draggingRef.current) return;
34
35
  if (!value) return;
35
36
  const targetIndex = column.findIndex(item => item.value === value);
@@ -40,7 +41,7 @@ export const Wheel = memo(props => {
40
41
  immediate: y.goal !== finalPosition
41
42
  });
42
43
  }, [value, column]);
43
- useLayoutEffect(() => {
44
+ useIsomorphicLayoutEffect(() => {
44
45
  if (column.length === 0) {
45
46
  if (value !== null) {
46
47
  onSelect(null);
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { NativeProps } from '../../utils/native-props';
3
+ export declare const Arrow: React.NamedExoticComponent<NativeProps<never>>;
@@ -0,0 +1,12 @@
1
+ import React, { memo } from 'react';
2
+ import { withNativeProps } from '../../utils/native-props';
3
+ export const Arrow = memo(props => {
4
+ return withNativeProps(props, React.createElement("svg", {
5
+ viewBox: '0 0 30 16'
6
+ }, React.createElement("g", {
7
+ transform: 'translate(-1300.000000, -841.000000)',
8
+ fill: 'currentColor'
9
+ }, React.createElement("path", {
10
+ d: 'M1300,841 L1330,841 L1318.07289,855.312538 C1316.65863,857.009645 1314.13637,857.238942 1312.43926,855.824685 C1312.25341,855.669808 1312.08199,855.49839 1311.92711,855.312538 L1300,841 L1300,841 Z'
11
+ }))));
12
+ });
@@ -1,31 +1,21 @@
1
1
  /// <reference types="react" />
2
2
  import './popover.less';
3
- export type { BasePopoverProps, PopoverRef } from './popover';
4
- export type { PopMenuProps, Action } from './pop-menu';
3
+ import './popover-menu.less';
4
+ export type { PopoverProps, PopoverRef } from './popover';
5
+ export type { PopoverMenuProps, Action } from './popover-menu';
5
6
  declare const _default: import("react").ForwardRefExoticComponent<{
6
- getContainer?: (() => HTMLElement) | undefined;
7
+ getContainer?: HTMLElement | (() => HTMLElement) | null | undefined;
7
8
  destroyOnHide?: boolean | undefined;
8
9
  children: import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, any> | null) | (new (props: any) => import("react").Component<any, any, any>)>;
9
10
  mode?: "dark" | "light" | undefined;
10
11
  trigger?: "click" | undefined;
11
- placement: "left" | "right" | "bottom" | "top" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom";
12
+ placement?: "left" | "right" | "bottom" | "top" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | undefined;
12
13
  stopPropagation?: "click"[] | undefined;
13
- } & Pick<import("rc-tooltip/lib/Tooltip").TooltipProps, "visible" | "zIndex" | "align" | "defaultVisible" | "onVisibleChange" | "overlayStyle" | "overlayClassName"> & import("../../utils/native-props").NativeProps<"--z-index"> & {
14
14
  content: import("react").ReactNode;
15
- } & import("react").RefAttributes<import("./popover").PopoverRef>> & {
16
- Menu: <T extends import("./pop-menu").Action = import("./pop-menu").Action>(props: {
17
- getContainer?: (() => HTMLElement) | undefined;
18
- destroyOnHide?: boolean | undefined;
19
- children: import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, any> | null) | (new (props: any) => import("react").Component<any, any, any>)>;
20
- mode?: "dark" | "light" | undefined;
21
- trigger?: "click" | undefined;
22
- placement: "left" | "right" | "bottom" | "top" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom";
23
- stopPropagation?: "click"[] | undefined;
24
- } & Pick<import("rc-tooltip/lib/Tooltip").TooltipProps, "visible" | "zIndex" | "align" | "defaultVisible" | "onVisibleChange" | "overlayStyle" | "overlayClassName"> & import("../../utils/native-props").NativeProps<"--z-index"> & {
25
- actions: T[];
26
- onAction?: ((text: T) => void) | undefined;
27
- } & {
28
- ref?: ((instance: import("./popover").PopoverRef | null) => void) | import("react").RefObject<import("./popover").PopoverRef> | null | undefined;
29
- }) => import("react").ReactElement<any, string | ((props: any) => import("react").ReactElement<any, any> | null) | (new (props: any) => import("react").Component<any, any, any>)>;
15
+ } & Pick<import("rc-tooltip/lib/Tooltip").TooltipProps, "visible" | "align" | "defaultVisible" | "onVisibleChange"> & import("../../utils/native-props").NativeProps<"--z-index"> & import("react").RefAttributes<import("./popover").PopoverRef>> & {
16
+ Menu: import("react").ForwardRefExoticComponent<Pick<import("./popover").PopoverProps, "children" | "style" | "visible" | "className" | "tabIndex" | "mode" | "align" | "getContainer" | "stopPropagation" | "trigger" | "defaultVisible" | "onVisibleChange" | "placement" | "destroyOnHide"> & {
17
+ actions: import("./popover-menu").Action[];
18
+ onAction?: ((item: import("./popover-menu").Action) => void) | undefined;
19
+ } & import("react").RefAttributes<import("./popover").PopoverRef>>;
30
20
  };
31
21
  export default _default;
@@ -1,7 +1,8 @@
1
1
  import "./popover.css";
2
+ import "./popover-menu.css";
2
3
  import { attachPropertiesToComponent } from '../../utils/attach-properties-to-component';
3
- import { PopMenu } from './pop-menu';
4
+ import { PopoverMenu } from './popover-menu';
4
5
  import { Popover } from './popover';
5
6
  export default attachPropertiesToComponent(Popover, {
6
- Menu: PopMenu
7
+ Menu: PopoverMenu
7
8
  });
@@ -0,0 +1,63 @@
1
+ .adm-popover-menu {
2
+ --border-color: var(--adm-border-color);
3
+ }
4
+
5
+ .adm-popover-menu.adm-popover {
6
+ --content-padding: 0;
7
+ }
8
+
9
+ .adm-popover-menu-list {
10
+ overflow: hidden;
11
+ min-width: 240px;
12
+ }
13
+
14
+ .adm-popover-menu-list-inner {
15
+ margin-top: -2px;
16
+ }
17
+
18
+ .adm-popover-menu-item {
19
+ display: flex;
20
+ padding-left: 40px;
21
+ justify-content: flex-start;
22
+ align-items: center;
23
+ position: relative;
24
+ }
25
+
26
+ .adm-popover-menu-item-icon {
27
+ flex: none;
28
+ padding-right: 16px;
29
+ font-size: 40px;
30
+ }
31
+
32
+ .adm-popover-menu-item-text {
33
+ flex: auto;
34
+ padding: 28px 40px 28px 0;
35
+ border-top: solid 2px var(--border-color);
36
+ }
37
+
38
+ .adm-popover-menu-item-disabled {
39
+ cursor: not-allowed;
40
+ }
41
+
42
+ .adm-popover-menu-item-disabled > * {
43
+ opacity: 0.4;
44
+ }
45
+
46
+ .adm-popover-menu-item:active:not(.adm-popover-menu-item-disabled) {
47
+ background-color: var(--border-color);
48
+ }
49
+
50
+ .adm-popover-menu-item:active:not(.adm-popover-menu-item-disabled)::after {
51
+ content: ' ';
52
+ display: block;
53
+ position: absolute;
54
+ width: 100%;
55
+ bottom: -2px;
56
+ left: 0;
57
+ border-bottom: solid 2px var(--border-color);
58
+ }
59
+
60
+ .adm-popover.adm-popover-dark.adm-popover-menu {
61
+ --border-color: #333333;
62
+ --background: rgba(0, 0, 0, 0.9);
63
+ }
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import { PopoverProps, PopoverRef } from './popover';
3
+ export declare type Action = {
4
+ text: React.ReactNode;
5
+ icon?: React.ReactNode;
6
+ disabled?: boolean;
7
+ key?: string | number;
8
+ onClick?: () => void;
9
+ };
10
+ export declare type PopoverMenuProps = Omit<PopoverProps, 'content'> & {
11
+ actions: Action[];
12
+ onAction?: (item: Action) => void;
13
+ };
14
+ export declare const PopoverMenu: React.ForwardRefExoticComponent<Pick<PopoverProps, "children" | "style" | "visible" | "className" | "tabIndex" | "mode" | "align" | "getContainer" | "stopPropagation" | "trigger" | "defaultVisible" | "onVisibleChange" | "placement" | "destroyOnHide"> & {
15
+ actions: Action[];
16
+ onAction?: ((item: Action) => void) | undefined;
17
+ } & React.RefAttributes<PopoverRef>>;