antd-mobile 5.36.1 → 5.37.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 (204) hide show
  1. package/2x/bundle/antd-mobile.cjs.development.js +355 -283
  2. package/2x/bundle/antd-mobile.cjs.js +7 -7
  3. package/2x/bundle/antd-mobile.es.development.js +355 -283
  4. package/2x/bundle/antd-mobile.es.js +5428 -5379
  5. package/2x/bundle/antd-mobile.umd.development.js +355 -283
  6. package/2x/bundle/antd-mobile.umd.js +7 -7
  7. package/2x/bundle/style.css +5 -8
  8. package/2x/cjs/components/card/card.css +5 -5
  9. package/2x/cjs/components/card/card.patch.css +21 -0
  10. package/2x/cjs/components/center-popup/center-popup.js +46 -43
  11. package/2x/cjs/components/check-list/check-list.js +15 -11
  12. package/2x/cjs/components/collapse/collapse.d.ts +9 -1
  13. package/2x/cjs/components/collapse/collapse.js +26 -28
  14. package/2x/cjs/components/config-provider/config-provider.d.ts +40 -2
  15. package/2x/cjs/components/dropdown/context.d.ts +2 -0
  16. package/2x/cjs/components/dropdown/context.js +10 -0
  17. package/2x/cjs/components/dropdown/dropdown.d.ts +11 -3
  18. package/2x/cjs/components/dropdown/dropdown.js +23 -16
  19. package/2x/cjs/components/dropdown/index.d.ts +1 -0
  20. package/2x/cjs/components/dropdown/item.d.ts +5 -1
  21. package/2x/cjs/components/dropdown/item.js +22 -8
  22. package/2x/cjs/components/form/form-item.d.ts +6 -5
  23. package/2x/cjs/components/form/form-item.js +25 -17
  24. package/2x/cjs/components/form/form.d.ts +1 -1
  25. package/2x/cjs/components/form/index.d.ts +1 -1
  26. package/2x/cjs/components/input/input.d.ts +3 -1
  27. package/2x/cjs/components/input/input.js +53 -51
  28. package/2x/cjs/components/list/list-item.d.ts +6 -2
  29. package/2x/cjs/components/list/list-item.js +16 -6
  30. package/2x/cjs/components/nav-bar/nav-bar.d.ts +4 -0
  31. package/2x/cjs/components/nav-bar/nav-bar.js +18 -13
  32. package/2x/cjs/components/notice-bar/notice-bar.css +0 -3
  33. package/2x/cjs/components/notice-bar/notice-bar.d.ts +3 -1
  34. package/2x/cjs/components/notice-bar/notice-bar.js +30 -25
  35. package/2x/cjs/components/number-keyboard/number-keyboard.d.ts +1 -1
  36. package/2x/cjs/components/number-keyboard/number-keyboard.js +14 -13
  37. package/2x/cjs/components/popup/popup-base-props.d.ts +3 -2
  38. package/2x/cjs/components/popup/popup-base-props.js +4 -0
  39. package/2x/cjs/components/popup/popup.js +5 -5
  40. package/2x/cjs/components/result/result.js +3 -10
  41. package/2x/cjs/components/result/use-result-icon.d.ts +3 -0
  42. package/2x/cjs/components/result/use-result-icon.js +37 -0
  43. package/2x/cjs/components/result-page/result-page.js +3 -10
  44. package/2x/cjs/components/search-bar/search-bar.d.ts +10 -2
  45. package/2x/cjs/components/search-bar/search-bar.js +34 -33
  46. package/2x/cjs/components/toast/toast.d.ts +2 -2
  47. package/2x/cjs/components/toast/toast.js +4 -4
  48. package/2x/cjs/components/virtual-input/virtual-input.d.ts +5 -5
  49. package/2x/cjs/components/virtual-input/virtual-input.js +26 -24
  50. package/2x/cjs/utils/is-node-with-content.d.ts +3 -0
  51. package/2x/cjs/utils/is-node-with-content.js +3 -0
  52. package/2x/cjs/utils/with-default-props.d.ts +7 -0
  53. package/2x/cjs/utils/with-default-props.js +21 -5
  54. package/2x/es/components/card/card.css +5 -5
  55. package/2x/es/components/card/card.patch.css +21 -0
  56. package/2x/es/components/center-popup/center-popup.js +45 -42
  57. package/2x/es/components/check-list/check-list.js +15 -11
  58. package/2x/es/components/collapse/collapse.d.ts +9 -1
  59. package/2x/es/components/collapse/collapse.js +26 -28
  60. package/2x/es/components/config-provider/config-provider.d.ts +40 -2
  61. package/2x/es/components/dropdown/context.d.ts +2 -0
  62. package/2x/es/components/dropdown/context.js +2 -0
  63. package/2x/es/components/dropdown/dropdown.d.ts +11 -3
  64. package/2x/es/components/dropdown/dropdown.js +24 -17
  65. package/2x/es/components/dropdown/index.d.ts +1 -0
  66. package/2x/es/components/dropdown/item.d.ts +5 -1
  67. package/2x/es/components/dropdown/item.js +22 -8
  68. package/2x/es/components/form/form-item.d.ts +6 -5
  69. package/2x/es/components/form/form-item.js +24 -16
  70. package/2x/es/components/form/form.d.ts +1 -1
  71. package/2x/es/components/form/index.d.ts +1 -1
  72. package/2x/es/components/input/input.d.ts +3 -1
  73. package/2x/es/components/input/input.js +52 -50
  74. package/2x/es/components/list/list-item.d.ts +6 -2
  75. package/2x/es/components/list/list-item.js +16 -6
  76. package/2x/es/components/nav-bar/nav-bar.d.ts +4 -0
  77. package/2x/es/components/nav-bar/nav-bar.js +18 -13
  78. package/2x/es/components/notice-bar/notice-bar.css +0 -3
  79. package/2x/es/components/notice-bar/notice-bar.d.ts +3 -1
  80. package/2x/es/components/notice-bar/notice-bar.js +29 -24
  81. package/2x/es/components/number-keyboard/number-keyboard.d.ts +1 -1
  82. package/2x/es/components/number-keyboard/number-keyboard.js +13 -12
  83. package/2x/es/components/popup/popup-base-props.d.ts +3 -2
  84. package/2x/es/components/popup/popup-base-props.js +3 -0
  85. package/2x/es/components/popup/popup.js +5 -5
  86. package/2x/es/components/result/result.js +3 -10
  87. package/2x/es/components/result/use-result-icon.d.ts +3 -0
  88. package/2x/es/components/result/use-result-icon.js +29 -0
  89. package/2x/es/components/result-page/result-page.js +3 -10
  90. package/2x/es/components/search-bar/search-bar.d.ts +10 -2
  91. package/2x/es/components/search-bar/search-bar.js +33 -32
  92. package/2x/es/components/toast/toast.d.ts +2 -2
  93. package/2x/es/components/toast/toast.js +3 -3
  94. package/2x/es/components/virtual-input/virtual-input.d.ts +5 -5
  95. package/2x/es/components/virtual-input/virtual-input.js +25 -23
  96. package/2x/es/utils/is-node-with-content.d.ts +3 -0
  97. package/2x/es/utils/is-node-with-content.js +3 -0
  98. package/2x/es/utils/with-default-props.d.ts +7 -0
  99. package/2x/es/utils/with-default-props.js +20 -5
  100. package/2x/package.json +1 -1
  101. package/bundle/antd-mobile.cjs.development.js +355 -283
  102. package/bundle/antd-mobile.cjs.js +7 -7
  103. package/bundle/antd-mobile.compatible.umd.js +1 -1
  104. package/bundle/antd-mobile.es.development.js +355 -283
  105. package/bundle/antd-mobile.es.js +5428 -5379
  106. package/bundle/antd-mobile.umd.development.js +355 -283
  107. package/bundle/antd-mobile.umd.js +7 -7
  108. package/bundle/style.css +1 -1
  109. package/cjs/components/card/card.css +5 -5
  110. package/cjs/components/card/card.patch.css +17 -0
  111. package/cjs/components/center-popup/center-popup.js +46 -43
  112. package/cjs/components/check-list/check-list.js +15 -11
  113. package/cjs/components/collapse/collapse.d.ts +9 -1
  114. package/cjs/components/collapse/collapse.js +26 -28
  115. package/cjs/components/config-provider/config-provider.d.ts +40 -2
  116. package/cjs/components/dropdown/context.d.ts +2 -0
  117. package/cjs/components/dropdown/context.js +10 -0
  118. package/cjs/components/dropdown/dropdown.d.ts +11 -3
  119. package/cjs/components/dropdown/dropdown.js +23 -16
  120. package/cjs/components/dropdown/index.d.ts +1 -0
  121. package/cjs/components/dropdown/item.d.ts +5 -1
  122. package/cjs/components/dropdown/item.js +22 -8
  123. package/cjs/components/form/form-item.d.ts +6 -5
  124. package/cjs/components/form/form-item.js +25 -17
  125. package/cjs/components/form/form.d.ts +1 -1
  126. package/cjs/components/form/index.d.ts +1 -1
  127. package/cjs/components/input/input.d.ts +3 -1
  128. package/cjs/components/input/input.js +53 -51
  129. package/cjs/components/list/list-item.d.ts +6 -2
  130. package/cjs/components/list/list-item.js +16 -6
  131. package/cjs/components/nav-bar/nav-bar.d.ts +4 -0
  132. package/cjs/components/nav-bar/nav-bar.js +18 -13
  133. package/cjs/components/notice-bar/notice-bar.css +0 -2
  134. package/cjs/components/notice-bar/notice-bar.d.ts +3 -1
  135. package/cjs/components/notice-bar/notice-bar.js +30 -25
  136. package/cjs/components/number-keyboard/number-keyboard.d.ts +1 -1
  137. package/cjs/components/number-keyboard/number-keyboard.js +14 -13
  138. package/cjs/components/popup/popup-base-props.d.ts +3 -2
  139. package/cjs/components/popup/popup-base-props.js +4 -0
  140. package/cjs/components/popup/popup.js +5 -5
  141. package/cjs/components/result/result.js +3 -10
  142. package/cjs/components/result/use-result-icon.d.ts +3 -0
  143. package/cjs/components/result/use-result-icon.js +37 -0
  144. package/cjs/components/result-page/result-page.js +3 -10
  145. package/cjs/components/search-bar/search-bar.d.ts +10 -2
  146. package/cjs/components/search-bar/search-bar.js +34 -33
  147. package/cjs/components/toast/toast.css +1 -1
  148. package/cjs/components/toast/toast.d.ts +2 -2
  149. package/cjs/components/toast/toast.js +4 -4
  150. package/cjs/components/virtual-input/virtual-input.d.ts +5 -5
  151. package/cjs/components/virtual-input/virtual-input.js +26 -24
  152. package/cjs/utils/is-node-with-content.d.ts +3 -0
  153. package/cjs/utils/is-node-with-content.js +3 -0
  154. package/cjs/utils/with-default-props.d.ts +7 -0
  155. package/cjs/utils/with-default-props.js +21 -5
  156. package/es/components/card/card.css +5 -5
  157. package/es/components/card/card.patch.css +17 -0
  158. package/es/components/center-popup/center-popup.js +45 -42
  159. package/es/components/check-list/check-list.js +15 -11
  160. package/es/components/collapse/collapse.d.ts +9 -1
  161. package/es/components/collapse/collapse.js +26 -28
  162. package/es/components/config-provider/config-provider.d.ts +40 -2
  163. package/es/components/dropdown/context.d.ts +2 -0
  164. package/es/components/dropdown/context.js +2 -0
  165. package/es/components/dropdown/dropdown.d.ts +11 -3
  166. package/es/components/dropdown/dropdown.js +24 -17
  167. package/es/components/dropdown/index.d.ts +1 -0
  168. package/es/components/dropdown/item.d.ts +5 -1
  169. package/es/components/dropdown/item.js +22 -8
  170. package/es/components/form/form-item.d.ts +6 -5
  171. package/es/components/form/form-item.js +24 -16
  172. package/es/components/form/form.d.ts +1 -1
  173. package/es/components/form/index.d.ts +1 -1
  174. package/es/components/input/input.d.ts +3 -1
  175. package/es/components/input/input.js +52 -50
  176. package/es/components/list/list-item.d.ts +6 -2
  177. package/es/components/list/list-item.js +16 -6
  178. package/es/components/nav-bar/nav-bar.d.ts +4 -0
  179. package/es/components/nav-bar/nav-bar.js +18 -13
  180. package/es/components/notice-bar/notice-bar.css +0 -2
  181. package/es/components/notice-bar/notice-bar.d.ts +3 -1
  182. package/es/components/notice-bar/notice-bar.js +29 -24
  183. package/es/components/number-keyboard/number-keyboard.d.ts +1 -1
  184. package/es/components/number-keyboard/number-keyboard.js +13 -12
  185. package/es/components/popup/popup-base-props.d.ts +3 -2
  186. package/es/components/popup/popup-base-props.js +3 -0
  187. package/es/components/popup/popup.js +5 -5
  188. package/es/components/result/result.js +3 -10
  189. package/es/components/result/use-result-icon.d.ts +3 -0
  190. package/es/components/result/use-result-icon.js +29 -0
  191. package/es/components/result-page/result-page.js +3 -10
  192. package/es/components/search-bar/search-bar.d.ts +10 -2
  193. package/es/components/search-bar/search-bar.js +33 -32
  194. package/es/components/toast/toast.css +1 -1
  195. package/es/components/toast/toast.d.ts +2 -2
  196. package/es/components/toast/toast.js +3 -3
  197. package/es/components/virtual-input/virtual-input.d.ts +5 -5
  198. package/es/components/virtual-input/virtual-input.js +25 -23
  199. package/es/utils/is-node-with-content.d.ts +3 -0
  200. package/es/utils/is-node-with-content.js +3 -0
  201. package/es/utils/with-default-props.d.ts +7 -0
  202. package/es/utils/with-default-props.js +20 -5
  203. package/package.json +1 -1
  204. package/umd/antd-mobile.js +1 -1
@@ -1,7 +1,7 @@
1
- import React from 'react';
2
1
  import type { ReactElement } from 'react';
3
- import type { InputProps } from '../input';
2
+ import React from 'react';
4
3
  import { NativeProps } from '../../utils/native-props';
4
+ import type { InputProps } from '../input';
5
5
  import { NumberKeyboardProps } from '../number-keyboard';
6
6
  export declare type VirtualInputProps = {
7
7
  onFocus?: () => void;
@@ -10,7 +10,7 @@ export declare type VirtualInputProps = {
10
10
  keyboard?: ReactElement<NumberKeyboardProps>;
11
11
  clearable?: boolean;
12
12
  onClear?: () => void;
13
- } & Pick<InputProps, 'value' | 'onChange' | 'placeholder' | 'disabled'> & NativeProps<'--font-size' | '--color' | '--placeholder-color' | '--disabled-color' | '--text-align' | '--caret-width' | '--caret-color'>;
13
+ } & Pick<InputProps, 'value' | 'onChange' | 'placeholder' | 'disabled' | 'clearIcon'> & NativeProps<'--font-size' | '--color' | '--placeholder-color' | '--disabled-color' | '--text-align' | '--caret-width' | '--caret-color'>;
14
14
  export declare type VirtualInputRef = {
15
15
  focus: () => void;
16
16
  blur: () => void;
@@ -19,10 +19,10 @@ export declare const VirtualInput: React.ForwardRefExoticComponent<{
19
19
  onFocus?: (() => void) | undefined;
20
20
  onBlur?: (() => void) | undefined;
21
21
  onClick?: ((e: React.MouseEvent<HTMLDivElement>) => void) | undefined;
22
- keyboard?: React.ReactElement<NumberKeyboardProps, string | React.JSXElementConstructor<any>> | undefined;
22
+ keyboard?: ReactElement<NumberKeyboardProps, string | React.JSXElementConstructor<any>> | undefined;
23
23
  clearable?: boolean | undefined;
24
24
  onClear?: (() => void) | undefined;
25
- } & Pick<InputProps, "value" | "onChange" | "disabled" | "placeholder"> & {
25
+ } & Pick<InputProps, "value" | "onChange" | "disabled" | "placeholder" | "clearIcon"> & {
26
26
  className?: string | undefined;
27
27
  style?: (React.CSSProperties & Partial<Record<"--color" | "--font-size" | "--placeholder-color" | "--text-align" | "--disabled-color" | "--caret-width" | "--caret-color", string>>) | undefined;
28
28
  tabIndex?: number | undefined;
@@ -1,24 +1,26 @@
1
+ import { useIsomorphicLayoutEffect } from 'ahooks';
2
+ import { CloseCircleFill } from 'antd-mobile-icons';
3
+ import classNames from 'classnames';
1
4
  import React, { forwardRef, useEffect, useImperativeHandle, useRef, useState } from 'react';
2
5
  import { withNativeProps } from '../../utils/native-props';
3
- import { mergeProps } from '../../utils/with-default-props';
4
6
  import { usePropsValue } from '../../utils/use-props-value';
5
- import classNames from 'classnames';
6
- import { CloseCircleFill } from 'antd-mobile-icons';
7
- import { useIsomorphicLayoutEffect } from 'ahooks';
7
+ import { mergeProp, mergeProps } from '../../utils/with-default-props';
8
8
  import { useConfig } from '../config-provider';
9
9
  const classPrefix = 'adm-virtual-input';
10
10
  const defaultProps = {
11
11
  defaultValue: ''
12
12
  };
13
- export const VirtualInput = forwardRef((p, ref) => {
14
- const props = mergeProps(defaultProps, p);
15
- const [value, setValue] = usePropsValue(props);
13
+ export const VirtualInput = forwardRef((props, ref) => {
14
+ const {
15
+ locale,
16
+ input: componentConfig = {}
17
+ } = useConfig();
18
+ const mergedProps = mergeProps(defaultProps, componentConfig, props);
19
+ const [value, setValue] = usePropsValue(mergedProps);
16
20
  const rootRef = useRef(null);
17
21
  const contentRef = useRef(null);
18
22
  const [hasFocus, setHasFocus] = useState(false);
19
- const {
20
- locale
21
- } = useConfig();
23
+ const clearIcon = mergeProp(React.createElement(CloseCircleFill, null), componentConfig.clearIcon, props.clearIcon);
22
24
  function scrollToEnd() {
23
25
  const root = rootRef.current;
24
26
  if (!root) return;
@@ -50,14 +52,14 @@ export const VirtualInput = forwardRef((p, ref) => {
50
52
  function onFocus() {
51
53
  var _a;
52
54
  setHasFocus(true);
53
- (_a = props.onFocus) === null || _a === void 0 ? void 0 : _a.call(props);
55
+ (_a = mergedProps.onFocus) === null || _a === void 0 ? void 0 : _a.call(mergedProps);
54
56
  }
55
57
  function onBlur() {
56
58
  var _a;
57
59
  setHasFocus(false);
58
- (_a = props.onBlur) === null || _a === void 0 ? void 0 : _a.call(props);
60
+ (_a = mergedProps.onBlur) === null || _a === void 0 ? void 0 : _a.call(mergedProps);
59
61
  }
60
- const keyboard = props.keyboard;
62
+ const keyboard = mergedProps.keyboard;
61
63
  const keyboardElement = keyboard && React.cloneElement(keyboard, {
62
64
  onInput: v => {
63
65
  var _a, _b;
@@ -84,36 +86,36 @@ export const VirtualInput = forwardRef((p, ref) => {
84
86
  },
85
87
  getContainer: null
86
88
  });
87
- return withNativeProps(props, React.createElement("div", {
89
+ return withNativeProps(mergedProps, React.createElement("div", {
88
90
  ref: rootRef,
89
91
  className: classNames(classPrefix, {
90
- [`${classPrefix}-disabled`]: props.disabled
92
+ [`${classPrefix}-disabled`]: mergedProps.disabled
91
93
  }),
92
- tabIndex: props.disabled ? undefined : 0,
94
+ tabIndex: mergedProps.disabled ? undefined : 0,
93
95
  role: 'textbox',
94
96
  onFocus: onFocus,
95
97
  onBlur: onBlur,
96
- onClick: props.onClick
98
+ onClick: mergedProps.onClick
97
99
  }, React.createElement("div", {
98
100
  className: `${classPrefix}-content`,
99
101
  ref: contentRef,
100
- "aria-disabled": props.disabled,
101
- "aria-label": props.placeholder
102
+ "aria-disabled": mergedProps.disabled,
103
+ "aria-label": mergedProps.placeholder
102
104
  }, value, React.createElement("div", {
103
105
  className: `${classPrefix}-caret-container`
104
106
  }, hasFocus && React.createElement("div", {
105
107
  className: `${classPrefix}-caret`
106
- }))), props.clearable && !!value && hasFocus && React.createElement("div", {
108
+ }))), mergedProps.clearable && !!value && hasFocus && React.createElement("div", {
107
109
  className: `${classPrefix}-clear`,
108
110
  onClick: e => {
109
111
  var _a;
110
112
  e.stopPropagation();
111
113
  setValue('');
112
- (_a = props.onClear) === null || _a === void 0 ? void 0 : _a.call(props);
114
+ (_a = mergedProps.onClear) === null || _a === void 0 ? void 0 : _a.call(mergedProps);
113
115
  },
114
116
  role: 'button',
115
117
  "aria-label": locale.Input.clear
116
- }, React.createElement(CloseCircleFill, null)), [undefined, null, ''].includes(value) && React.createElement("div", {
118
+ }, clearIcon), [undefined, null, ''].includes(value) && React.createElement("div", {
117
119
  className: `${classPrefix}-placeholder`
118
- }, props.placeholder), keyboardElement));
120
+ }, mergedProps.placeholder), keyboardElement));
119
121
  });
@@ -1,4 +1,7 @@
1
1
  import type { ReactNode } from 'react';
2
2
  declare type Regulated<T> = T extends null | undefined | false ? never : T;
3
+ /**
4
+ * Check if the `node` is visible Node (not null, undefined, or false)
5
+ */
3
6
  export declare function isNodeWithContent(node: ReactNode): node is Regulated<ReactNode>;
4
7
  export {};
@@ -1,3 +1,6 @@
1
+ /**
2
+ * Check if the `node` is visible Node (not null, undefined, or false)
3
+ */
1
4
  export function isNodeWithContent(node) {
2
5
  return node !== undefined && node !== null && node !== false;
3
6
  }
@@ -1,2 +1,9 @@
1
1
  export declare function mergeProps<A, B>(a: A, b: B): B & A;
2
2
  export declare function mergeProps<A, B, C>(a: A, b: B, c: C): C & B & A;
3
+ export declare function mergeProps<A, B, C, D>(a: A, b: B, c: C, d: D): D & C & B & A;
4
+ /**
5
+ * Merge props and return the first non-undefined value.
6
+ * The later has higher priority. e.g. (10, 1, 5) => 5 wins.
7
+ * This is useful with legacy props that have been deprecated.
8
+ */
9
+ export declare function mergeProp<T, DefaultT extends T = T>(defaultProp: DefaultT, ...propList: T[]): T | undefined;
@@ -1,11 +1,26 @@
1
1
  export function mergeProps(...items) {
2
2
  const ret = {};
3
3
  items.forEach(item => {
4
- Object.keys(item).forEach(key => {
5
- if (item[key] !== undefined) {
6
- ret[key] = item[key];
7
- }
8
- });
4
+ if (item) {
5
+ Object.keys(item).forEach(key => {
6
+ if (item[key] !== undefined) {
7
+ ret[key] = item[key];
8
+ }
9
+ });
10
+ }
9
11
  });
10
12
  return ret;
13
+ }
14
+ /**
15
+ * Merge props and return the first non-undefined value.
16
+ * The later has higher priority. e.g. (10, 1, 5) => 5 wins.
17
+ * This is useful with legacy props that have been deprecated.
18
+ */
19
+ export function mergeProp(defaultProp, ...propList) {
20
+ for (let i = propList.length - 1; i >= 0; i -= 1) {
21
+ if (propList[i] !== undefined) {
22
+ return propList[i];
23
+ }
24
+ }
25
+ return defaultProp;
11
26
  }
package/2x/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "antd-mobile",
3
- "version": "5.36.1",
3
+ "version": "5.37.0",
4
4
  "homepage": "https://github.com/ant-design/ant-design-mobile#readme",
5
5
  "bugs": {
6
6
  "url": "https://github.com/ant-design/ant-design-mobile/issues"