vant 4.0.0-beta.0 → 4.0.0-beta.1

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 (131) hide show
  1. package/README.md +13 -9
  2. package/changelog.generated.md +191 -150
  3. package/es/badge/Badge.mjs +1 -1
  4. package/es/calendar/Calendar.mjs +3 -4
  5. package/es/collapse/Collapse.d.ts +8 -1
  6. package/es/collapse/Collapse.mjs +28 -1
  7. package/es/collapse/index.d.ts +1 -1
  8. package/es/collapse-item/CollapseItem.mjs +3 -1
  9. package/es/composables/use-global-z-index.d.ts +4 -0
  10. package/es/composables/use-global-z-index.mjs +9 -0
  11. package/es/composables/use-height.d.ts +1 -1
  12. package/es/composables/use-height.mjs +8 -2
  13. package/es/composables/use-lock-scroll.mjs +3 -1
  14. package/es/composables/use-placeholder.mjs +1 -1
  15. package/es/config-provider/ConfigProvider.d.ts +13 -3
  16. package/es/config-provider/ConfigProvider.mjs +25 -9
  17. package/es/config-provider/index.d.ts +8 -2
  18. package/es/dialog/index.css +1 -1
  19. package/es/dropdown-menu/DropdownMenu.mjs +2 -1
  20. package/es/empty/Empty.d.ts +1 -1
  21. package/es/empty/Empty.mjs +281 -16
  22. package/es/field/Field.mjs +4 -1
  23. package/es/field/types.d.ts +1 -0
  24. package/es/field/utils.d.ts +1 -0
  25. package/es/field/utils.mjs +8 -2
  26. package/es/image-preview/ImagePreviewItem.mjs +1 -1
  27. package/es/image-preview/index.css +1 -1
  28. package/es/index-bar/IndexBar.mjs +3 -2
  29. package/es/index.d.ts +2 -1
  30. package/es/index.mjs +4 -1
  31. package/es/list/List.mjs +2 -1
  32. package/es/number-keyboard/NumberKeyboard.mjs +1 -2
  33. package/es/number-keyboard/NumberKeyboardKey.mjs +2 -2
  34. package/es/password-input/PasswordInput.mjs +1 -1
  35. package/es/picker/Picker.d.ts +2 -1
  36. package/es/picker/Picker.mjs +9 -2
  37. package/es/picker/PickerColumn.d.ts +2 -1
  38. package/es/picker/PickerColumn.mjs +5 -4
  39. package/es/picker/index.d.ts +2 -1
  40. package/es/popover/Popover.mjs +28 -27
  41. package/es/popup/Popup.mjs +6 -5
  42. package/es/popup/index.css +1 -1
  43. package/es/pull-refresh/PullRefresh.mjs +7 -3
  44. package/es/rate/Rate.mjs +1 -1
  45. package/es/search/index.css +1 -1
  46. package/es/slider/Slider.mjs +1 -1
  47. package/es/space/Space.d.ts +48 -0
  48. package/es/space/Space.mjs +87 -0
  49. package/es/space/index.css +1 -0
  50. package/es/space/index.d.ts +37 -0
  51. package/es/space/index.mjs +8 -0
  52. package/es/space/style/index.d.ts +1 -0
  53. package/es/space/style/index.mjs +2 -0
  54. package/es/stepper/Stepper.mjs +1 -1
  55. package/es/sticky/Sticky.mjs +2 -1
  56. package/es/swipe/Swipe.mjs +1 -1
  57. package/es/swipe-cell/SwipeCell.mjs +1 -1
  58. package/es/tabs/Tabs.mjs +12 -2
  59. package/es/tabs/TabsContent.mjs +4 -0
  60. package/es/vue-tsx-shim.d.ts +7 -0
  61. package/lib/badge/Badge.js +1 -1
  62. package/lib/calendar/Calendar.js +3 -4
  63. package/lib/collapse/Collapse.d.ts +8 -1
  64. package/lib/collapse/Collapse.js +28 -1
  65. package/lib/collapse/index.d.ts +1 -1
  66. package/lib/collapse-item/CollapseItem.js +3 -1
  67. package/lib/composables/use-global-z-index.d.ts +4 -0
  68. package/lib/composables/use-global-z-index.js +28 -0
  69. package/lib/composables/use-height.d.ts +1 -1
  70. package/lib/composables/use-height.js +8 -2
  71. package/lib/composables/use-lock-scroll.js +3 -1
  72. package/lib/composables/use-placeholder.js +1 -1
  73. package/lib/config-provider/ConfigProvider.d.ts +13 -3
  74. package/lib/config-provider/ConfigProvider.js +23 -7
  75. package/lib/config-provider/index.d.ts +8 -2
  76. package/lib/dialog/index.css +1 -1
  77. package/lib/dropdown-menu/DropdownMenu.js +2 -1
  78. package/lib/empty/Empty.d.ts +1 -1
  79. package/lib/empty/Empty.js +281 -16
  80. package/lib/field/Field.js +3 -0
  81. package/lib/field/types.d.ts +1 -0
  82. package/lib/field/utils.d.ts +1 -0
  83. package/lib/field/utils.js +8 -2
  84. package/lib/image-preview/ImagePreviewItem.js +1 -1
  85. package/lib/image-preview/index.css +1 -1
  86. package/lib/index-bar/IndexBar.js +3 -2
  87. package/lib/index.css +1 -1
  88. package/lib/index.d.ts +2 -1
  89. package/lib/index.js +4 -1
  90. package/lib/list/List.js +2 -1
  91. package/lib/number-keyboard/NumberKeyboard.js +1 -2
  92. package/lib/number-keyboard/NumberKeyboardKey.js +2 -2
  93. package/lib/password-input/PasswordInput.js +1 -1
  94. package/lib/picker/Picker.d.ts +2 -1
  95. package/lib/picker/Picker.js +9 -2
  96. package/lib/picker/PickerColumn.d.ts +2 -1
  97. package/lib/picker/PickerColumn.js +5 -4
  98. package/lib/picker/index.d.ts +2 -1
  99. package/lib/popover/Popover.js +27 -26
  100. package/lib/popup/Popup.js +6 -5
  101. package/lib/popup/index.css +1 -1
  102. package/lib/pull-refresh/PullRefresh.js +6 -2
  103. package/lib/rate/Rate.js +1 -1
  104. package/lib/search/index.css +1 -1
  105. package/lib/slider/Slider.js +1 -1
  106. package/lib/space/Space.d.ts +48 -0
  107. package/lib/space/Space.js +106 -0
  108. package/lib/space/index.css +1 -0
  109. package/lib/space/index.d.ts +37 -0
  110. package/lib/space/index.js +30 -0
  111. package/lib/space/style/index.d.ts +1 -0
  112. package/lib/space/style/index.js +2 -0
  113. package/lib/stepper/Stepper.js +1 -1
  114. package/lib/sticky/Sticky.js +2 -1
  115. package/lib/swipe/Swipe.js +1 -1
  116. package/lib/swipe-cell/SwipeCell.js +1 -1
  117. package/lib/tabs/Tabs.js +12 -2
  118. package/lib/tabs/TabsContent.js +4 -0
  119. package/lib/vant.cjs.js +1332 -1101
  120. package/lib/vant.es.js +1440 -1100
  121. package/lib/vant.js +1285 -1102
  122. package/lib/vant.min.js +1 -1
  123. package/lib/vue-tsx-shim.d.ts +7 -0
  124. package/{vetur → lib}/web-types.json +2304 -2203
  125. package/package.json +6 -11
  126. package/es/empty/Images.d.ts +0 -4
  127. package/es/empty/Images.mjs +0 -271
  128. package/lib/empty/Images.d.ts +0 -4
  129. package/lib/empty/Images.js +0 -290
  130. package/vetur/attributes.json +0 -3530
  131. package/vetur/tags.json +0 -1212
@@ -15,8 +15,13 @@ function isEmptyValue(value) {
15
15
  return !value;
16
16
  }
17
17
  function runSyncRule(value, rule) {
18
- if (rule.required && isEmptyValue(value)) {
19
- return false;
18
+ if (isEmptyValue(value)) {
19
+ if (rule.required) {
20
+ return false;
21
+ }
22
+ if (rule.validateEmpty === false) {
23
+ return true;
24
+ }
20
25
  }
21
26
  if (rule.pattern && !rule.pattern.test(String(value))) {
22
27
  return false;
@@ -93,6 +98,7 @@ export {
93
98
  endComposing,
94
99
  getRuleMessage,
95
100
  getStringLength,
101
+ isEmptyValue,
96
102
  mapInputType,
97
103
  resizeTextarea,
98
104
  runRuleValidator,
@@ -225,7 +225,7 @@ var stdin_default = defineComponent({
225
225
  };
226
226
  return _createVNode(SwipeItem, {
227
227
  "class": bem("swipe-item"),
228
- "onTouchstart": onTouchStart,
228
+ "onTouchstartPassive": onTouchStart,
229
229
  "onTouchmove": onTouchMove,
230
230
  "onTouchend": onTouchEnd,
231
231
  "onTouchcancel": onTouchEnd
@@ -1 +1 @@
1
- body{--van-image-preview-index-text-color: var(--van-white);--van-image-preview-index-font-size: var(--van-font-size-md);--van-image-preview-index-line-height: var(--van-line-height-md);--van-image-preview-index-text-shadow: 0 1px 1px var(--van-gray-8);--van-image-preview-overlay-background: rgba(0, 0, 0, .9);--van-image-preview-close-icon-size: 22px;--van-image-preview-close-icon-color: var(--van-gray-5);--van-image-preview-close-icon-margin: var(--van-padding-md);--van-image-preview-close-icon-z-index: 1}.van-image-preview{position:fixed;top:0;left:0;width:100%;height:100%;background-color:transparent;transform:none}.van-image-preview__swipe{height:100%}.van-image-preview__swipe-item{display:flex;align-items:center;justify-content:center;overflow:hidden}.van-image-preview__cover{position:absolute;top:0;left:0}.van-image-preview__image{width:100%;transition-property:transform}.van-image-preview__image--vertical{width:auto;height:100%}.van-image-preview__image img{-webkit-user-drag:none}.van-image-preview__image .van-image__error{top:30%;height:40%}.van-image-preview__image .van-image__error-icon{font-size:36px}.van-image-preview__image .van-image__loading{background-color:transparent}.van-image-preview__index{position:absolute;top:var(--van-padding-md);left:50%;color:var(--van-image-preview-index-text-color);font-size:var(--van-image-preview-index-font-size);line-height:var(--van-image-preview-index-line-height);text-shadow:var(--van-image-preview-index-text-shadow);transform:translate(-50%)}.van-image-preview__overlay{background:var(--van-image-preview-overlay-background)}.van-image-preview__close-icon{position:absolute;z-index:var(--van-image-preview-close-icon-z-index);color:var(--van-image-preview-close-icon-color);font-size:var(--van-image-preview-close-icon-size)}.van-image-preview__close-icon--top-left{top:var(--van-image-preview-close-icon-margin);left:var(--van-image-preview-close-icon-margin)}.van-image-preview__close-icon--top-right{top:var(--van-image-preview-close-icon-margin);right:var(--van-image-preview-close-icon-margin)}.van-image-preview__close-icon--bottom-left{bottom:var(--van-image-preview-close-icon-margin);left:var(--van-image-preview-close-icon-margin)}.van-image-preview__close-icon--bottom-right{right:var(--van-image-preview-close-icon-margin);bottom:var(--van-image-preview-close-icon-margin)}
1
+ body{--van-image-preview-index-text-color: var(--van-white);--van-image-preview-index-font-size: var(--van-font-size-md);--van-image-preview-index-line-height: var(--van-line-height-md);--van-image-preview-index-text-shadow: 0 1px 1px var(--van-gray-8);--van-image-preview-overlay-background: rgba(0, 0, 0, .9);--van-image-preview-close-icon-size: 22px;--van-image-preview-close-icon-color: var(--van-gray-5);--van-image-preview-close-icon-margin: var(--van-padding-md);--van-image-preview-close-icon-z-index: 1}.van-image-preview{position:fixed;top:0;left:0;width:100%;height:100%;max-width:none;background-color:transparent;transform:none}.van-image-preview__swipe{height:100%}.van-image-preview__swipe-item{display:flex;align-items:center;justify-content:center;overflow:hidden}.van-image-preview__cover{position:absolute;top:0;left:0}.van-image-preview__image{width:100%;transition-property:transform}.van-image-preview__image--vertical{width:auto;height:100%}.van-image-preview__image img{-webkit-user-drag:none}.van-image-preview__image .van-image__error{top:30%;height:40%}.van-image-preview__image .van-image__error-icon{font-size:36px}.van-image-preview__image .van-image__loading{background-color:transparent}.van-image-preview__index{position:absolute;top:var(--van-padding-md);left:50%;color:var(--van-image-preview-index-text-color);font-size:var(--van-image-preview-index-font-size);line-height:var(--van-image-preview-index-line-height);text-shadow:var(--van-image-preview-index-text-shadow);transform:translate(-50%)}.van-image-preview__overlay{background:var(--van-image-preview-overlay-background)}.van-image-preview__close-icon{position:absolute;z-index:var(--van-image-preview-close-icon-z-index);color:var(--van-image-preview-close-icon-color);font-size:var(--van-image-preview-close-icon-size)}.van-image-preview__close-icon--top-left{top:var(--van-image-preview-close-icon-margin);left:var(--van-image-preview-close-icon-margin)}.van-image-preview__close-icon--top-right{top:var(--van-image-preview-close-icon-margin);right:var(--van-image-preview-close-icon-margin)}.van-image-preview__close-icon--bottom-left{bottom:var(--van-image-preview-close-icon-margin);left:var(--van-image-preview-close-icon-margin)}.van-image-preview__close-icon--bottom-right{right:var(--van-image-preview-close-icon-margin);bottom:var(--van-image-preview-close-icon-margin)}
@@ -121,7 +121,8 @@ var stdin_default = defineComponent({
121
121
  nextTick(onScroll);
122
122
  };
123
123
  useEventListener("scroll", onScroll, {
124
- target: scrollParent
124
+ target: scrollParent,
125
+ passive: true
125
126
  });
126
127
  onMounted(init);
127
128
  watch(() => props.indexList, init);
@@ -196,7 +197,7 @@ var stdin_default = defineComponent({
196
197
  "class": bem("sidebar"),
197
198
  "style": sidebarStyle.value,
198
199
  "onClick": onClickSidebar,
199
- "onTouchstart": touch.start,
200
+ "onTouchstartPassive": touch.start,
200
201
  "onTouchmove": onTouchMove
201
202
  }, [renderIndexes()]);
202
203
  useExpose({
package/es/index.d.ts CHANGED
@@ -67,6 +67,7 @@ export * from "./sidebar";
67
67
  export * from "./sidebar-item";
68
68
  export * from "./skeleton";
69
69
  export * from "./slider";
70
+ export * from "./space";
70
71
  export * from "./step";
71
72
  export * from "./stepper";
72
73
  export * from "./steps";
@@ -91,4 +92,4 @@ declare namespace _default {
91
92
  }
92
93
  export default _default;
93
94
  export function install(app: any): void;
94
- export const version: "4.0.0-beta.0";
95
+ export const version: "4.0.0-beta.1";
package/es/index.mjs CHANGED
@@ -66,6 +66,7 @@ import { Sidebar } from "./sidebar/index.mjs";
66
66
  import { SidebarItem } from "./sidebar-item/index.mjs";
67
67
  import { Skeleton } from "./skeleton/index.mjs";
68
68
  import { Slider } from "./slider/index.mjs";
69
+ import { Space } from "./space/index.mjs";
69
70
  import { Step } from "./step/index.mjs";
70
71
  import { Stepper } from "./stepper/index.mjs";
71
72
  import { Steps } from "./steps/index.mjs";
@@ -84,7 +85,7 @@ import { TimePicker } from "./time-picker/index.mjs";
84
85
  import { Toast } from "./toast/index.mjs";
85
86
  import { TreeSelect } from "./tree-select/index.mjs";
86
87
  import { Uploader } from "./uploader/index.mjs";
87
- const version = "4.0.0-beta.0";
88
+ const version = "4.0.0-beta.1";
88
89
  function install(app) {
89
90
  const components = [
90
91
  ActionBar,
@@ -155,6 +156,7 @@ function install(app) {
155
156
  SidebarItem,
156
157
  Skeleton,
157
158
  Slider,
159
+ Space,
158
160
  Step,
159
161
  Stepper,
160
162
  Steps,
@@ -251,6 +253,7 @@ export * from "./sidebar/index.mjs";
251
253
  export * from "./sidebar-item/index.mjs";
252
254
  export * from "./skeleton/index.mjs";
253
255
  export * from "./slider/index.mjs";
256
+ export * from "./space/index.mjs";
254
257
  export * from "./step/index.mjs";
255
258
  export * from "./stepper/index.mjs";
256
259
  export * from "./steps/index.mjs";
package/es/list/List.mjs CHANGED
@@ -115,7 +115,8 @@ var stdin_default = defineComponent({
115
115
  check
116
116
  });
117
117
  useEventListener("scroll", check, {
118
- target: scrollParent
118
+ target: scrollParent,
119
+ passive: true
119
120
  });
120
121
  return () => {
121
122
  var _a;
@@ -204,9 +204,8 @@ var stdin_default = defineComponent({
204
204
  unfit: !props.safeAreaInsetBottom,
205
205
  "with-title": !!Title
206
206
  }),
207
- "onTouchstart": stopPropagation,
208
207
  "onAnimationend": onAnimationEnd,
209
- "onWebkitAnimationEnd": onAnimationEnd
208
+ "onTouchstartPassive": stopPropagation
210
209
  }, [Title, _createVNode("div", {
211
210
  "class": bem("body")
212
211
  }, [_createVNode("div", {
@@ -74,8 +74,8 @@ var stdin_default = defineComponent({
74
74
  "class": bem("wrapper", {
75
75
  wider: props.wider
76
76
  }),
77
- "onTouchstart": onTouchStart,
78
- "onTouchmove": onTouchMove,
77
+ "onTouchstartPassive": onTouchStart,
78
+ "onTouchmovePassive": onTouchMove,
79
79
  "onTouchend": onTouchEnd,
80
80
  "onTouchcancel": onTouchEnd
81
81
  }, [_createVNode("div", {
@@ -66,7 +66,7 @@ var stdin_default = defineComponent({
66
66
  "class": [bem("security"), {
67
67
  [BORDER_SURROUND]: !props.gutter
68
68
  }],
69
- "onTouchstart": onTouchStart
69
+ "onTouchstartPassive": onTouchStart
70
70
  }, [renderPoints()]), info && _createVNode("div", {
71
71
  "class": bem(props.errorInfo ? "error-info" : "info")
72
72
  }, [info])]);
@@ -101,7 +101,7 @@ declare const _default: import("vue").DefineComponent<{
101
101
  default: PickerToolbarPosition;
102
102
  };
103
103
  columnsFieldNames: PropType<PickerFieldNames>;
104
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "change" | "cancel" | "confirm")[], "update:modelValue" | "change" | "cancel" | "confirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
104
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "change" | "cancel" | "clickOption" | "confirm")[], "update:modelValue" | "change" | "cancel" | "clickOption" | "confirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
105
105
  title: StringConstructor;
106
106
  loading: BooleanConstructor;
107
107
  readonly: BooleanConstructor;
@@ -142,6 +142,7 @@ declare const _default: import("vue").DefineComponent<{
142
142
  onChange?: ((...args: any[]) => any) | undefined;
143
143
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
144
144
  onCancel?: ((...args: any[]) => any) | undefined;
145
+ onClickOption?: ((...args: any[]) => any) | undefined;
145
146
  onConfirm?: ((...args: any[]) => any) | undefined;
146
147
  }, {
147
148
  modelValue: Numeric[];
@@ -28,7 +28,7 @@ const pickerProps = extend({}, pickerSharedProps, {
28
28
  var stdin_default = defineComponent({
29
29
  name,
30
30
  props: pickerProps,
31
- emits: ["confirm", "cancel", "change", "update:modelValue"],
31
+ emits: ["confirm", "cancel", "change", "clickOption", "update:modelValue"],
32
32
  setup(props, {
33
33
  emit,
34
34
  slots
@@ -80,6 +80,12 @@ var stdin_default = defineComponent({
80
80
  selectedOptions: selectedOptions.value
81
81
  });
82
82
  };
83
+ const onClickOption = (currentOption, columnIndex) => emit("clickOption", {
84
+ columnIndex,
85
+ currentOption,
86
+ selectedValues: selectedValues.value,
87
+ selectedOptions: selectedOptions.value
88
+ });
83
89
  const confirm = () => {
84
90
  children.forEach((child) => child.stopMomentum());
85
91
  emit("confirm", {
@@ -133,7 +139,8 @@ var stdin_default = defineComponent({
133
139
  "optionHeight": optionHeight.value,
134
140
  "swipeDuration": props.swipeDuration,
135
141
  "visibleOptionNum": props.visibleOptionNum,
136
- "onChange": (value) => onChange(value, columnIndex)
142
+ "onChange": (value) => onChange(value, columnIndex),
143
+ "onClickOption": (option) => onClickOption(option, columnIndex)
137
144
  }, {
138
145
  option: slots.option
139
146
  }));
@@ -25,7 +25,7 @@ declare const _default: import("vue").DefineComponent<{
25
25
  type: (NumberConstructor | StringConstructor)[];
26
26
  required: true;
27
27
  };
28
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "change"[], "change", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
28
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("change" | "clickOption")[], "change" | "clickOption", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
29
29
  value: (NumberConstructor | StringConstructor)[];
30
30
  fields: {
31
31
  type: PropType<Required<PickerFieldNames>>;
@@ -51,6 +51,7 @@ declare const _default: import("vue").DefineComponent<{
51
51
  };
52
52
  }>> & {
53
53
  onChange?: ((...args: any[]) => any) | undefined;
54
+ onClickOption?: ((...args: any[]) => any) | undefined;
54
55
  }, {
55
56
  readonly: boolean;
56
57
  allowHtml: boolean;
@@ -22,7 +22,7 @@ var stdin_default = defineComponent({
22
22
  swipeDuration: makeRequiredProp(numericProp),
23
23
  visibleOptionNum: makeRequiredProp(numericProp)
24
24
  },
25
- emits: ["change"],
25
+ emits: ["change", "clickOption"],
26
26
  setup(props, {
27
27
  emit,
28
28
  slots
@@ -54,13 +54,14 @@ var stdin_default = defineComponent({
54
54
  }
55
55
  currentOffset.value = offset;
56
56
  };
57
- const onClickItem = (index) => {
57
+ const onClickOption = (index) => {
58
58
  if (moving || props.readonly) {
59
59
  return;
60
60
  }
61
61
  transitionEndTrigger = null;
62
62
  currentDuration.value = DEFAULT_DURATION;
63
63
  updateValueByIndex(index);
64
+ emit("clickOption", props.options[index]);
64
65
  };
65
66
  const getIndexByOffset = (offset) => clamp(Math.round(-offset / props.optionHeight), 0, count() - 1);
66
67
  const momentum = (distance, duration) => {
@@ -145,7 +146,7 @@ var stdin_default = defineComponent({
145
146
  disabled,
146
147
  selected: value === props.value
147
148
  }), option.className],
148
- onClick: () => onClickItem(index)
149
+ onClick: () => onClickOption(index)
149
150
  };
150
151
  const childData = {
151
152
  class: "van-ellipsis",
@@ -166,7 +167,7 @@ var stdin_default = defineComponent({
166
167
  });
167
168
  return () => _createVNode("div", {
168
169
  "class": bem(),
169
- "onTouchstart": onTouchStart,
170
+ "onTouchstartPassive": onTouchStart,
170
171
  "onTouchmove": onTouchMove,
171
172
  "onTouchend": onTouchEnd,
172
173
  "onTouchcancel": onTouchEnd
@@ -36,7 +36,7 @@ export declare const Picker: import("../utils").WithInstall<import("vue").Define
36
36
  default: import("./types").PickerToolbarPosition;
37
37
  };
38
38
  columnsFieldNames: import("vue").PropType<import("./types").PickerFieldNames>;
39
- }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "change" | "cancel" | "confirm")[], "update:modelValue" | "change" | "cancel" | "confirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
39
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "change" | "cancel" | "clickOption" | "confirm")[], "update:modelValue" | "change" | "cancel" | "clickOption" | "confirm", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
40
40
  title: StringConstructor;
41
41
  loading: BooleanConstructor;
42
42
  readonly: BooleanConstructor;
@@ -77,6 +77,7 @@ export declare const Picker: import("../utils").WithInstall<import("vue").Define
77
77
  onChange?: ((...args: any[]) => any) | undefined;
78
78
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
79
79
  onCancel?: ((...args: any[]) => any) | undefined;
80
+ onClickOption?: ((...args: any[]) => any) | undefined;
80
81
  onConfirm?: ((...args: any[]) => any) | undefined;
81
82
  }, {
82
83
  modelValue: import("../utils").Numeric[];
@@ -1,5 +1,5 @@
1
1
  import { mergeProps as _mergeProps, Fragment as _Fragment, createVNode as _createVNode } from "vue";
2
- import { ref, watch, nextTick, onMounted, onBeforeUnmount, defineComponent } from "vue";
2
+ import { ref, watch, nextTick, onMounted, watchEffect, onBeforeUnmount, defineComponent } from "vue";
3
3
  import { createPopper, offsetModifier } from "@vant/popperjs";
4
4
  import { pick, extend, truthProp, numericProp, unknownProp, BORDER_BOTTOM, makeArrayProp, makeStringProp, createNamespace } from "../utils/index.mjs";
5
5
  import { useClickAway } from "@vant/use";
@@ -41,24 +41,26 @@ var stdin_default = defineComponent({
41
41
  attrs
42
42
  }) {
43
43
  let popper;
44
+ const popupRef = ref();
44
45
  const wrapperRef = ref();
45
46
  const popoverRef = ref();
47
+ const getPopoverOptions = () => ({
48
+ placement: props.placement,
49
+ modifiers: [{
50
+ name: "computeStyles",
51
+ options: {
52
+ adaptive: false,
53
+ gpuAcceleration: false
54
+ }
55
+ }, extend({}, offsetModifier, {
56
+ options: {
57
+ offset: props.offset
58
+ }
59
+ })]
60
+ });
46
61
  const createPopperInstance = () => {
47
62
  if (wrapperRef.value && popoverRef.value) {
48
- return createPopper(wrapperRef.value, popoverRef.value.popupRef.value, {
49
- placement: props.placement,
50
- modifiers: [{
51
- name: "computeStyles",
52
- options: {
53
- adaptive: false,
54
- gpuAcceleration: false
55
- }
56
- }, extend({}, offsetModifier, {
57
- options: {
58
- offset: props.offset
59
- }
60
- })]
61
- });
63
+ return createPopper(wrapperRef.value, popoverRef.value.popupRef.value, getPopoverOptions());
62
64
  }
63
65
  return null;
64
66
  };
@@ -70,9 +72,7 @@ var stdin_default = defineComponent({
70
72
  if (!popper) {
71
73
  popper = createPopperInstance();
72
74
  } else {
73
- popper.setOptions({
74
- placement: props.placement
75
- });
75
+ popper.setOptions(getPopoverOptions());
76
76
  }
77
77
  });
78
78
  };
@@ -82,10 +82,6 @@ var stdin_default = defineComponent({
82
82
  updateShow(!props.show);
83
83
  }
84
84
  };
85
- const onTouchstart = (event) => {
86
- event.stopPropagation();
87
- emit("touchstart", event);
88
- };
89
85
  const onClickAction = (action, index) => {
90
86
  if (action.disabled) {
91
87
  return;
@@ -96,7 +92,7 @@ var stdin_default = defineComponent({
96
92
  }
97
93
  };
98
94
  const onClickAway = () => {
99
- if (props.closeOnClickOutside && (!props.overlay || props.closeOnClickOverlay)) {
95
+ if (props.show && props.closeOnClickOutside && (!props.overlay || props.closeOnClickOverlay)) {
100
96
  updateShow(false);
101
97
  }
102
98
  };
@@ -136,15 +132,21 @@ var stdin_default = defineComponent({
136
132
  "onClick": () => onClickAction(action, index)
137
133
  }, [renderActionContent(action, index)]);
138
134
  };
139
- onMounted(updateLocation);
135
+ onMounted(() => {
136
+ updateLocation();
137
+ watchEffect(() => {
138
+ var _a;
139
+ popupRef.value = (_a = popoverRef.value) == null ? void 0 : _a.popupRef.value;
140
+ });
141
+ });
140
142
  onBeforeUnmount(() => {
141
143
  if (popper) {
142
144
  popper.destroy();
143
145
  popper = null;
144
146
  }
145
147
  });
146
- watch(() => [props.show, props.placement], updateLocation);
147
- useClickAway(wrapperRef, onClickAway, {
148
+ watch(() => [props.show, props.offset, props.placement], updateLocation);
149
+ useClickAway([wrapperRef, popupRef], onClickAway, {
148
150
  eventName: "touchstart"
149
151
  });
150
152
  return () => {
@@ -159,7 +161,6 @@ var stdin_default = defineComponent({
159
161
  "position": "",
160
162
  "transition": "van-popover-zoom",
161
163
  "lockScroll": false,
162
- "onTouchstart": onTouchstart,
163
164
  "onUpdate:show": updateShow
164
165
  }, attrs, pick(props, popupProps)), {
165
166
  default: () => [props.showArrow && _createVNode("div", {
@@ -7,6 +7,7 @@ import { useExpose } from "../composables/use-expose.mjs";
7
7
  import { useLockScroll } from "../composables/use-lock-scroll.mjs";
8
8
  import { useLazyRender } from "../composables/use-lazy-render.mjs";
9
9
  import { POPUP_TOGGLE_KEY } from "../composables/on-popup-reopen.mjs";
10
+ import { useGlobalZIndex } from "../composables/use-global-z-index.mjs";
10
11
  import { Icon } from "../icon/index.mjs";
11
12
  import { Overlay } from "../overlay/index.mjs";
12
13
  const popupProps = extend({}, popupSharedProps, {
@@ -22,7 +23,6 @@ const popupProps = extend({}, popupSharedProps, {
22
23
  safeAreaInsetBottom: Boolean
23
24
  });
24
25
  const [name, bem] = createNamespace("popup");
25
- let globalZIndex = 2e3;
26
26
  var stdin_default = defineComponent({
27
27
  name,
28
28
  inheritAttrs: false,
@@ -50,11 +50,8 @@ var stdin_default = defineComponent({
50
50
  });
51
51
  const open = () => {
52
52
  if (!opened) {
53
- if (props.zIndex !== void 0) {
54
- globalZIndex = +props.zIndex;
55
- }
56
53
  opened = true;
57
- zIndex.value = ++globalZIndex;
54
+ zIndex.value = props.zIndex !== void 0 ? +props.zIndex : useGlobalZIndex();
58
55
  emit("open");
59
56
  }
60
57
  };
@@ -83,6 +80,8 @@ var stdin_default = defineComponent({
83
80
  "zIndex": zIndex.value,
84
81
  "duration": props.duration,
85
82
  "customStyle": props.overlayStyle,
83
+ "role": props.closeOnClickOverlay ? "button" : void 0,
84
+ "tabindex": props.closeOnClickOverlay ? 0 : void 0,
86
85
  "onClick": onClickOverlay
87
86
  }, {
88
87
  default: slots["overlay-content"]
@@ -119,6 +118,8 @@ var stdin_default = defineComponent({
119
118
  return _withDirectives(_createVNode("div", _mergeProps({
120
119
  "ref": popupRef,
121
120
  "style": style.value,
121
+ "role": "dialog",
122
+ "tabindex": 0,
122
123
  "class": [bem({
123
124
  round,
124
125
  [position]: position
@@ -1 +1 @@
1
- body{--van-popup-background: var(--van-background-2);--van-popup-transition: transform var(--van-duration-base);--van-popup-round-radius: 16px;--van-popup-close-icon-size: 22px;--van-popup-close-icon-color: var(--van-gray-5);--van-popup-close-icon-margin: 16px;--van-popup-close-icon-z-index: 1}.van-overflow-hidden{overflow:hidden!important}.van-popup{position:fixed;max-height:100%;overflow-y:auto;background:var(--van-popup-background);transition:var(--van-popup-transition);-webkit-overflow-scrolling:touch}.van-popup--center{top:50%;left:50%;transform:translate3d(-50%,-50%,0)}.van-popup--center.van-popup--round{border-radius:var(--van-popup-round-radius)}.van-popup--top{top:0;left:0;width:100%}.van-popup--top.van-popup--round{border-radius:0 0 var(--van-popup-round-radius) var(--van-popup-round-radius)}.van-popup--right{top:50%;right:0;transform:translate3d(0,-50%,0)}.van-popup--right.van-popup--round{border-radius:var(--van-popup-round-radius) 0 0 var(--van-popup-round-radius)}.van-popup--bottom{bottom:0;left:0;width:100%}.van-popup--bottom.van-popup--round{border-radius:var(--van-popup-round-radius) var(--van-popup-round-radius) 0 0}.van-popup--left{top:50%;left:0;transform:translate3d(0,-50%,0)}.van-popup--left.van-popup--round{border-radius:0 var(--van-popup-round-radius) var(--van-popup-round-radius) 0}.van-popup-slide-top-enter-active,.van-popup-slide-left-enter-active,.van-popup-slide-right-enter-active,.van-popup-slide-bottom-enter-active{transition-timing-function:var(--van-ease-out)}.van-popup-slide-top-leave-active,.van-popup-slide-left-leave-active,.van-popup-slide-right-leave-active,.van-popup-slide-bottom-leave-active{transition-timing-function:var(--van-ease-in)}.van-popup-slide-top-enter-from,.van-popup-slide-top-leave-active{transform:translate3d(0,-100%,0)}.van-popup-slide-right-enter-from,.van-popup-slide-right-leave-active{transform:translate3d(100%,-50%,0)}.van-popup-slide-bottom-enter-from,.van-popup-slide-bottom-leave-active{transform:translate3d(0,100%,0)}.van-popup-slide-left-enter-from,.van-popup-slide-left-leave-active{transform:translate3d(-100%,-50%,0)}.van-popup__close-icon{position:absolute;z-index:var(--van-popup-close-icon-z-index);color:var(--van-popup-close-icon-color);font-size:var(--van-popup-close-icon-size)}.van-popup__close-icon--top-left{top:var(--van-popup-close-icon-margin);left:var(--van-popup-close-icon-margin)}.van-popup__close-icon--top-right{top:var(--van-popup-close-icon-margin);right:var(--van-popup-close-icon-margin)}.van-popup__close-icon--bottom-left{bottom:var(--van-popup-close-icon-margin);left:var(--van-popup-close-icon-margin)}.van-popup__close-icon--bottom-right{right:var(--van-popup-close-icon-margin);bottom:var(--van-popup-close-icon-margin)}
1
+ body{--van-popup-background: var(--van-background-2);--van-popup-transition: transform var(--van-duration-base);--van-popup-round-radius: 16px;--van-popup-close-icon-size: 22px;--van-popup-close-icon-color: var(--van-gray-5);--van-popup-close-icon-margin: 16px;--van-popup-close-icon-z-index: 1}.van-overflow-hidden{overflow:hidden!important}.van-popup{position:fixed;max-height:100%;overflow-y:auto;box-sizing:border-box;background:var(--van-popup-background);transition:var(--van-popup-transition);-webkit-overflow-scrolling:touch}.van-popup--center{top:50%;left:0;right:0;width:-webkit-fit-content;width:fit-content;max-width:calc(100vw - var(--van-padding-md) * 2);margin:0 auto;transform:translateY(-50%)}.van-popup--center.van-popup--round{border-radius:var(--van-popup-round-radius)}.van-popup--top{top:0;left:0;width:100%}.van-popup--top.van-popup--round{border-radius:0 0 var(--van-popup-round-radius) var(--van-popup-round-radius)}.van-popup--right{top:50%;right:0;transform:translate3d(0,-50%,0)}.van-popup--right.van-popup--round{border-radius:var(--van-popup-round-radius) 0 0 var(--van-popup-round-radius)}.van-popup--bottom{bottom:0;left:0;width:100%}.van-popup--bottom.van-popup--round{border-radius:var(--van-popup-round-radius) var(--van-popup-round-radius) 0 0}.van-popup--left{top:50%;left:0;transform:translate3d(0,-50%,0)}.van-popup--left.van-popup--round{border-radius:0 var(--van-popup-round-radius) var(--van-popup-round-radius) 0}.van-popup-slide-top-enter-active,.van-popup-slide-left-enter-active,.van-popup-slide-right-enter-active,.van-popup-slide-bottom-enter-active{transition-timing-function:var(--van-ease-out)}.van-popup-slide-top-leave-active,.van-popup-slide-left-leave-active,.van-popup-slide-right-leave-active,.van-popup-slide-bottom-leave-active{transition-timing-function:var(--van-ease-in)}.van-popup-slide-top-enter-from,.van-popup-slide-top-leave-active{transform:translate3d(0,-100%,0)}.van-popup-slide-right-enter-from,.van-popup-slide-right-leave-active{transform:translate3d(100%,-50%,0)}.van-popup-slide-bottom-enter-from,.van-popup-slide-bottom-leave-active{transform:translate3d(0,100%,0)}.van-popup-slide-left-enter-from,.van-popup-slide-left-leave-active{transform:translate3d(-100%,-50%,0)}.van-popup__close-icon{position:absolute;z-index:var(--van-popup-close-icon-z-index);color:var(--van-popup-close-icon-color);font-size:var(--van-popup-close-icon-size)}.van-popup__close-icon--top-left{top:var(--van-popup-close-icon-margin);left:var(--van-popup-close-icon-margin)}.van-popup__close-icon--top-right{top:var(--van-popup-close-icon-margin);right:var(--van-popup-close-icon-margin)}.van-popup__close-icon--bottom-left{bottom:var(--van-popup-close-icon-margin);left:var(--van-popup-close-icon-margin)}.van-popup__close-icon--bottom-right{right:var(--van-popup-close-icon-margin);bottom:var(--van-popup-close-icon-margin)}
@@ -1,7 +1,7 @@
1
1
  import { createVNode as _createVNode } from "vue";
2
2
  import { ref, watch, reactive, nextTick, defineComponent } from "vue";
3
3
  import { numericProp, getScrollTop, preventDefault, createNamespace, makeNumericProp } from "../utils/index.mjs";
4
- import { useScrollParent } from "@vant/use";
4
+ import { useEventListener, useScrollParent } from "@vant/use";
5
5
  import { useTouch } from "../composables/use-touch.mjs";
6
6
  import { Loading } from "../loading/index.mjs";
7
7
  const [name, bem, t] = createNamespace("pull-refresh");
@@ -29,6 +29,7 @@ var stdin_default = defineComponent({
29
29
  }) {
30
30
  let reachTop;
31
31
  const root = ref();
32
+ const track = ref();
32
33
  const scrollParent = useScrollParent(root);
33
34
  const state = reactive({
34
35
  status: "normal",
@@ -161,6 +162,9 @@ var stdin_default = defineComponent({
161
162
  setStatus(0, false);
162
163
  }
163
164
  });
165
+ useEventListener("touchmove", onTouchMove, {
166
+ target: track
167
+ });
164
168
  return () => {
165
169
  var _a;
166
170
  const trackStyle = {
@@ -171,10 +175,10 @@ var stdin_default = defineComponent({
171
175
  "ref": root,
172
176
  "class": bem()
173
177
  }, [_createVNode("div", {
178
+ "ref": track,
174
179
  "class": bem("track"),
175
180
  "style": trackStyle,
176
- "onTouchstart": onTouchStart,
177
- "onTouchmove": onTouchMove,
181
+ "onTouchstartPassive": onTouchStart,
178
182
  "onTouchend": onTouchEnd,
179
183
  "onTouchcancel": onTouchEnd
180
184
  }, [_createVNode("div", {
package/es/rate/Rate.mjs CHANGED
@@ -207,7 +207,7 @@ var stdin_default = defineComponent({
207
207
  "tabindex": props.disabled ? void 0 : 0,
208
208
  "aria-disabled": props.disabled,
209
209
  "aria-readonly": props.readonly,
210
- "onTouchstart": onTouchStart,
210
+ "onTouchstartPassive": onTouchStart,
211
211
  "onTouchmove": onTouchMove
212
212
  }, [list.value.map(renderStar)]);
213
213
  }
@@ -1 +1 @@
1
- body{--van-search-padding: 10px var(--van-padding-sm);--van-search-background: var(--van-background-2);--van-search-content-background: var(--van-background);--van-search-input-height: 34px;--van-search-label-padding: 0 5px;--van-search-label-color: var(--van-text-color);--van-search-label-font-size: var(--van-font-size-md);--van-search-left-icon-color: var(--van-gray-6);--van-search-action-padding: 0 var(--van-padding-xs);--van-search-action-text-color: var(--van-text-color);--van-search-action-font-size: var(--van-font-size-md)}.van-search{display:flex;align-items:center;box-sizing:border-box;padding:var(--van-search-padding);background:var(--van-search-background)}.van-search__content{display:flex;flex:1;padding-left:var(--van-padding-sm);background:var(--van-search-content-background);border-radius:var(--van-radius-sm)}.van-search__content--round{border-radius:var(--van-radius-max)}.van-search__label{padding:var(--van-search-label-padding);color:var(--van-search-label-color);font-size:var(--van-search-label-font-size);line-height:var(--van-search-input-height)}.van-search__field{flex:1;padding:5px var(--van-padding-xs) 5px 0;background-color:transparent}.van-search__field .van-field__left-icon{color:var(--van-search-left-icon-color)}.van-search--show-action{padding-right:0}.van-search input::-webkit-search-decoration,.van-search input::-webkit-search-cancel-button,.van-search input::-webkit-search-results-button,.van-search input::-webkit-search-results-decoration{display:none}.van-search__action{padding:var(--van-search-action-padding);color:var(--van-search-action-text-color);font-size:var(--van-search-action-font-size);line-height:var(--van-search-input-height);cursor:pointer;-webkit-user-select:none;user-select:none}.van-search__action:active{background-color:var(--van-active-color)}
1
+ body{--van-search-padding: 10px var(--van-padding-sm);--van-search-background: var(--van-background-2);--van-search-content-background: var(--van-background);--van-search-input-height: 34px;--van-search-label-padding: 0 5px;--van-search-label-color: var(--van-text-color);--van-search-label-font-size: var(--van-font-size-md);--van-search-left-icon-color: var(--van-gray-6);--van-search-action-padding: 0 var(--van-padding-xs);--van-search-action-text-color: var(--van-text-color);--van-search-action-font-size: var(--van-font-size-md)}.van-search{display:flex;align-items:center;box-sizing:border-box;padding:var(--van-search-padding);background:var(--van-search-background)}.van-search__content{display:flex;flex:1;padding-left:var(--van-padding-sm);background:var(--van-search-content-background);border-radius:var(--van-radius-sm)}.van-search__content--round{border-radius:var(--van-radius-max)}.van-search__label{padding:var(--van-search-label-padding);color:var(--van-search-label-color);font-size:var(--van-search-label-font-size);line-height:var(--van-search-input-height)}.van-search__field{flex:1;align-items:center;padding:0 var(--van-padding-xs) 0 0;height:var(--van-search-input-height);background-color:transparent}.van-search__field .van-field__left-icon{color:var(--van-search-left-icon-color)}.van-search--show-action{padding-right:0}.van-search input::-webkit-search-decoration,.van-search input::-webkit-search-cancel-button,.van-search input::-webkit-search-results-button,.van-search input::-webkit-search-results-decoration{display:none}.van-search__action{padding:var(--van-search-action-padding);color:var(--van-search-action-text-color);font-size:var(--van-search-action-font-size);line-height:var(--van-search-input-height);cursor:pointer;-webkit-user-select:none;user-select:none}.van-search__action:active{background-color:var(--van-active-color)}
@@ -234,7 +234,7 @@ var stdin_default = defineComponent({
234
234
  "aria-disabled": props.disabled || void 0,
235
235
  "aria-readonly": props.readonly || void 0,
236
236
  "aria-orientation": props.vertical ? "vertical" : "horizontal",
237
- "onTouchstart": (event) => {
237
+ "onTouchstartPassive": (event) => {
238
238
  if (typeof index === "number") {
239
239
  buttonIndex = index;
240
240
  }
@@ -0,0 +1,48 @@
1
+ import { ExtractPropTypes, PropType } from 'vue';
2
+ export declare type SpaceSize = number | string;
3
+ export declare type SpaceAlign = 'start' | 'end' | 'center' | 'baseline';
4
+ declare const spaceProps: {
5
+ align: PropType<SpaceAlign>;
6
+ direction: {
7
+ type: PropType<"vertical" | "horizontal">;
8
+ default: string;
9
+ };
10
+ size: {
11
+ type: PropType<string | number | [SpaceSize, SpaceSize]>;
12
+ default: number;
13
+ };
14
+ wrap: BooleanConstructor;
15
+ fill: BooleanConstructor;
16
+ };
17
+ export declare type SpaceProps = ExtractPropTypes<typeof spaceProps>;
18
+ declare const _default: import("vue").DefineComponent<{
19
+ align: PropType<SpaceAlign>;
20
+ direction: {
21
+ type: PropType<"vertical" | "horizontal">;
22
+ default: string;
23
+ };
24
+ size: {
25
+ type: PropType<string | number | [SpaceSize, SpaceSize]>;
26
+ default: number;
27
+ };
28
+ wrap: BooleanConstructor;
29
+ fill: BooleanConstructor;
30
+ }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
31
+ align: PropType<SpaceAlign>;
32
+ direction: {
33
+ type: PropType<"vertical" | "horizontal">;
34
+ default: string;
35
+ };
36
+ size: {
37
+ type: PropType<string | number | [SpaceSize, SpaceSize]>;
38
+ default: number;
39
+ };
40
+ wrap: BooleanConstructor;
41
+ fill: BooleanConstructor;
42
+ }>>, {
43
+ fill: boolean;
44
+ size: string | number | [SpaceSize, SpaceSize];
45
+ wrap: boolean;
46
+ direction: "vertical" | "horizontal";
47
+ }>;
48
+ export default _default;