antd-mobile 5.31.1 → 5.32.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 (170) hide show
  1. package/2x/bundle/antd-mobile.cjs.development.js +281 -252
  2. package/2x/bundle/antd-mobile.cjs.js +9 -9
  3. package/2x/bundle/antd-mobile.es.development.js +282 -253
  4. package/2x/bundle/antd-mobile.es.js +4494 -4468
  5. package/2x/bundle/antd-mobile.umd.development.js +281 -252
  6. package/2x/bundle/antd-mobile.umd.js +9 -9
  7. package/2x/bundle/style.css +1 -0
  8. package/2x/cjs/components/calendar/convert.js +1 -6
  9. package/2x/cjs/components/capsule-tabs/capsule-tabs.js +2 -4
  10. package/2x/cjs/components/cascader/cascader.d.ts +2 -0
  11. package/2x/cjs/components/cascader/index.d.ts +1 -0
  12. package/2x/cjs/components/checkbox/checkbox.d.ts +2 -0
  13. package/2x/cjs/components/checkbox/checkbox.js +1 -0
  14. package/2x/cjs/components/checkbox/index.d.ts +1 -0
  15. package/2x/cjs/components/collapse/collapse.js +1 -1
  16. package/2x/cjs/components/date-picker/date-picker-date-utils.js +24 -36
  17. package/2x/cjs/components/date-picker/date-picker-week-utils.js +12 -18
  18. package/2x/cjs/components/date-picker-view/date-picker-view.d.ts +7 -5
  19. package/2x/cjs/components/date-picker-view/date-picker-view.js +8 -2
  20. package/2x/cjs/components/dropdown/dropdown.js +1 -1
  21. package/2x/cjs/components/footer/footer.js +17 -21
  22. package/2x/cjs/components/image-uploader/image-uploader.js +1 -3
  23. package/2x/cjs/components/input/input.js +5 -1
  24. package/2x/cjs/components/jumbo-tabs/jumbo-tabs.js +1 -1
  25. package/2x/cjs/components/modal/modal.js +11 -13
  26. package/2x/cjs/components/popover/popover.js +5 -7
  27. package/2x/cjs/components/popup/popup.js +3 -3
  28. package/2x/cjs/components/radio/radio.d.ts +1 -0
  29. package/2x/cjs/components/radio/radio.js +1 -0
  30. package/2x/cjs/components/rate/star.d.ts +1 -1
  31. package/2x/cjs/components/result/result.js +2 -2
  32. package/2x/cjs/components/safe-area/safe-area.d.ts +1 -1
  33. package/2x/cjs/components/safe-area/safe-area.js +1 -1
  34. package/2x/cjs/components/side-bar/side-bar.d.ts +1 -2
  35. package/2x/cjs/components/side-bar/side-bar.js +4 -2
  36. package/2x/cjs/components/skeleton/skeleton.d.ts +1 -1
  37. package/2x/cjs/components/stepper/stepper.js +1 -5
  38. package/2x/cjs/components/tab-bar/tab-bar.d.ts +1 -2
  39. package/2x/cjs/components/tab-bar/tab-bar.js +4 -2
  40. package/2x/cjs/components/tabs/tabs.js +1 -1
  41. package/2x/cjs/components/text-area/text-area.css +1 -0
  42. package/2x/cjs/components/tree-select/multiple.js +2 -6
  43. package/2x/cjs/components/virtual-input/virtual-input.js +1 -1
  44. package/2x/cjs/locales/ru-RU.d.ts +134 -0
  45. package/2x/cjs/locales/ru-RU.js +144 -0
  46. package/2x/es/components/calendar/convert.js +1 -6
  47. package/2x/es/components/capsule-tabs/capsule-tabs.js +3 -5
  48. package/2x/es/components/cascader/cascader.d.ts +2 -0
  49. package/2x/es/components/cascader/index.d.ts +1 -0
  50. package/2x/es/components/checkbox/checkbox.d.ts +2 -0
  51. package/2x/es/components/checkbox/checkbox.js +1 -0
  52. package/2x/es/components/checkbox/index.d.ts +1 -0
  53. package/2x/es/components/collapse/collapse.js +2 -2
  54. package/2x/es/components/date-picker/date-picker-date-utils.js +24 -36
  55. package/2x/es/components/date-picker/date-picker-week-utils.js +12 -18
  56. package/2x/es/components/date-picker-view/date-picker-view.d.ts +7 -5
  57. package/2x/es/components/date-picker-view/date-picker-view.js +8 -2
  58. package/2x/es/components/dropdown/dropdown.js +2 -2
  59. package/2x/es/components/footer/footer.js +17 -21
  60. package/2x/es/components/image-uploader/image-uploader.js +1 -3
  61. package/2x/es/components/input/input.js +5 -1
  62. package/2x/es/components/jumbo-tabs/jumbo-tabs.js +2 -2
  63. package/2x/es/components/modal/modal.js +11 -13
  64. package/2x/es/components/popover/popover.js +5 -7
  65. package/2x/es/components/popup/popup.js +3 -3
  66. package/2x/es/components/radio/radio.d.ts +1 -0
  67. package/2x/es/components/radio/radio.js +1 -0
  68. package/2x/es/components/rate/star.d.ts +1 -1
  69. package/2x/es/components/result/result.js +2 -2
  70. package/2x/es/components/safe-area/safe-area.d.ts +1 -1
  71. package/2x/es/components/safe-area/safe-area.js +1 -1
  72. package/2x/es/components/side-bar/side-bar.d.ts +1 -2
  73. package/2x/es/components/side-bar/side-bar.js +2 -2
  74. package/2x/es/components/skeleton/skeleton.d.ts +1 -1
  75. package/2x/es/components/stepper/stepper.js +1 -5
  76. package/2x/es/components/tab-bar/tab-bar.d.ts +1 -2
  77. package/2x/es/components/tab-bar/tab-bar.js +2 -2
  78. package/2x/es/components/tabs/tabs.js +2 -2
  79. package/2x/es/components/text-area/text-area.css +1 -0
  80. package/2x/es/components/tree-select/multiple.js +2 -6
  81. package/2x/es/components/virtual-input/virtual-input.js +1 -1
  82. package/2x/es/locales/ru-RU.d.ts +134 -0
  83. package/2x/es/locales/ru-RU.js +137 -0
  84. package/2x/package.json +2 -2
  85. package/bundle/antd-mobile.cjs.development.js +281 -252
  86. package/bundle/antd-mobile.cjs.js +9 -9
  87. package/bundle/antd-mobile.compatible.umd.js +1 -1
  88. package/bundle/antd-mobile.es.development.js +282 -253
  89. package/bundle/antd-mobile.es.js +4494 -4468
  90. package/bundle/antd-mobile.umd.development.js +281 -252
  91. package/bundle/antd-mobile.umd.js +9 -9
  92. package/bundle/style.css +1 -1
  93. package/cjs/components/calendar/convert.js +1 -6
  94. package/cjs/components/capsule-tabs/capsule-tabs.js +2 -4
  95. package/cjs/components/cascader/cascader.d.ts +2 -0
  96. package/cjs/components/cascader/index.d.ts +1 -0
  97. package/cjs/components/checkbox/checkbox.d.ts +2 -0
  98. package/cjs/components/checkbox/checkbox.js +1 -0
  99. package/cjs/components/checkbox/index.d.ts +1 -0
  100. package/cjs/components/collapse/collapse.js +1 -1
  101. package/cjs/components/date-picker/date-picker-date-utils.js +24 -36
  102. package/cjs/components/date-picker/date-picker-week-utils.js +12 -18
  103. package/cjs/components/date-picker-view/date-picker-view.d.ts +7 -5
  104. package/cjs/components/date-picker-view/date-picker-view.js +8 -2
  105. package/cjs/components/dropdown/dropdown.js +1 -1
  106. package/cjs/components/footer/footer.js +17 -21
  107. package/cjs/components/image-uploader/image-uploader.js +1 -3
  108. package/cjs/components/input/input.js +5 -1
  109. package/cjs/components/jumbo-tabs/jumbo-tabs.js +1 -1
  110. package/cjs/components/modal/modal.js +11 -13
  111. package/cjs/components/popover/popover.js +5 -7
  112. package/cjs/components/popup/popup.js +3 -3
  113. package/cjs/components/radio/radio.d.ts +1 -0
  114. package/cjs/components/radio/radio.js +1 -0
  115. package/cjs/components/rate/star.d.ts +1 -1
  116. package/cjs/components/result/result.js +2 -2
  117. package/cjs/components/safe-area/safe-area.d.ts +1 -1
  118. package/cjs/components/safe-area/safe-area.js +1 -1
  119. package/cjs/components/side-bar/side-bar.d.ts +1 -2
  120. package/cjs/components/side-bar/side-bar.js +4 -2
  121. package/cjs/components/skeleton/skeleton.d.ts +1 -1
  122. package/cjs/components/stepper/stepper.js +1 -5
  123. package/cjs/components/tab-bar/tab-bar.d.ts +1 -2
  124. package/cjs/components/tab-bar/tab-bar.js +4 -2
  125. package/cjs/components/tabs/tabs.js +1 -1
  126. package/cjs/components/text-area/text-area.css +1 -0
  127. package/cjs/components/tree-select/multiple.js +2 -6
  128. package/cjs/components/virtual-input/virtual-input.js +1 -1
  129. package/cjs/locales/ru-RU.d.ts +134 -0
  130. package/cjs/locales/ru-RU.js +144 -0
  131. package/es/components/calendar/convert.js +1 -6
  132. package/es/components/capsule-tabs/capsule-tabs.js +3 -5
  133. package/es/components/cascader/cascader.d.ts +2 -0
  134. package/es/components/cascader/index.d.ts +1 -0
  135. package/es/components/checkbox/checkbox.d.ts +2 -0
  136. package/es/components/checkbox/checkbox.js +1 -0
  137. package/es/components/checkbox/index.d.ts +1 -0
  138. package/es/components/collapse/collapse.js +2 -2
  139. package/es/components/date-picker/date-picker-date-utils.js +24 -36
  140. package/es/components/date-picker/date-picker-week-utils.js +12 -18
  141. package/es/components/date-picker-view/date-picker-view.d.ts +7 -5
  142. package/es/components/date-picker-view/date-picker-view.js +8 -2
  143. package/es/components/dropdown/dropdown.js +2 -2
  144. package/es/components/footer/footer.js +17 -21
  145. package/es/components/image-uploader/image-uploader.js +1 -3
  146. package/es/components/input/input.js +5 -1
  147. package/es/components/jumbo-tabs/jumbo-tabs.js +2 -2
  148. package/es/components/modal/modal.js +11 -13
  149. package/es/components/popover/popover.js +5 -7
  150. package/es/components/popup/popup.js +3 -3
  151. package/es/components/radio/radio.d.ts +1 -0
  152. package/es/components/radio/radio.js +1 -0
  153. package/es/components/rate/star.d.ts +1 -1
  154. package/es/components/result/result.js +2 -2
  155. package/es/components/safe-area/safe-area.d.ts +1 -1
  156. package/es/components/safe-area/safe-area.js +1 -1
  157. package/es/components/side-bar/side-bar.d.ts +1 -2
  158. package/es/components/side-bar/side-bar.js +2 -2
  159. package/es/components/skeleton/skeleton.d.ts +1 -1
  160. package/es/components/stepper/stepper.js +1 -5
  161. package/es/components/tab-bar/tab-bar.d.ts +1 -2
  162. package/es/components/tab-bar/tab-bar.js +2 -2
  163. package/es/components/tabs/tabs.js +2 -2
  164. package/es/components/text-area/text-area.css +1 -0
  165. package/es/components/tree-select/multiple.js +2 -6
  166. package/es/components/virtual-input/virtual-input.js +1 -1
  167. package/es/locales/ru-RU.d.ts +134 -0
  168. package/es/locales/ru-RU.js +137 -0
  169. package/package.json +2 -2
  170. package/umd/antd-mobile.js +1 -1
@@ -9323,18 +9323,18 @@ const defaultProps$12 = Object.assign(Object.assign({}, defaultPopupBaseProps),
9323
9323
  });
9324
9324
  const Popup$1 = (p) => {
9325
9325
  const props = mergeProps(defaultProps$12, p);
9326
+ const bodyCls = classNames(`${classPrefix$1k}-body`, props.bodyClassName, `${classPrefix$1k}-body-position-${props.position}`);
9326
9327
  const {
9327
9328
  locale
9328
9329
  } = useConfig();
9329
- const bodyCls = classNames(`${classPrefix$1k}-body`, props.bodyClassName, `${classPrefix$1k}-body-position-${props.position}`);
9330
9330
  const [active, setActive] = React$4.useState(props.visible);
9331
+ const ref = React$4.useRef(null);
9332
+ useLockScroll(ref, props.disableBodyScroll && active ? "strict" : false);
9331
9333
  useIsomorphicLayoutEffect$2(() => {
9332
9334
  if (props.visible) {
9333
9335
  setActive(true);
9334
9336
  }
9335
9337
  }, [props.visible]);
9336
- const ref = React$4.useRef(null);
9337
- useLockScroll(ref, props.disableBodyScroll && active ? "strict" : false);
9338
9338
  const unmountedRef = useUnmountedRef$1();
9339
9339
  const {
9340
9340
  percent
@@ -10124,12 +10124,8 @@ function usePropsValue(options) {
10124
10124
  return [stateRef.current, setState];
10125
10125
  }
10126
10126
  function convertValueToRange(selectionMode, value) {
10127
- if (selectionMode === void 0) {
10127
+ if (selectionMode === void 0 || value === null)
10128
10128
  return null;
10129
- }
10130
- if (value === null) {
10131
- return null;
10132
- }
10133
10129
  if (Array.isArray(value)) {
10134
10130
  return value;
10135
10131
  }
@@ -10702,9 +10698,7 @@ function traverseReactNode(children, fn) {
10702
10698
  handle(children);
10703
10699
  }
10704
10700
  const classPrefix$19 = `adm-capsule-tabs`;
10705
- const CapsuleTab = () => {
10706
- return null;
10707
- };
10701
+ const CapsuleTab = () => null;
10708
10702
  const CapsuleTabs = (props) => {
10709
10703
  var _a;
10710
10704
  const tabListContainerRef = React$4.useRef(null);
@@ -10713,7 +10707,7 @@ const CapsuleTabs = (props) => {
10713
10707
  let firstActiveKey = null;
10714
10708
  const panes = [];
10715
10709
  traverseReactNode(props.children, (child, index2) => {
10716
- if (!React__default.default.isValidElement(child))
10710
+ if (!React$4.isValidElement(child))
10717
10711
  return;
10718
10712
  const key = child.key;
10719
10713
  if (typeof key !== "string")
@@ -11659,7 +11653,7 @@ const Tabs$1 = (p) => {
11659
11653
  let firstActiveKey = null;
11660
11654
  const panes = [];
11661
11655
  traverseReactNode(props.children, (child, index2) => {
11662
- if (!React__default.default.isValidElement(child))
11656
+ if (!React$4.isValidElement(child))
11663
11657
  return;
11664
11658
  const key = child.key;
11665
11659
  if (typeof key !== "string")
@@ -12578,6 +12572,7 @@ const Checkbox$1 = React$4.forwardRef((p, ref) => {
12578
12572
  }, props.indeterminate ? React__default.default.createElement(IndeterminateIcon, null) : checked && React__default.default.createElement(CheckIcon, null));
12579
12573
  };
12580
12574
  return withNativeProps(props, React__default.default.createElement("label", {
12575
+ onClick: props.onClick,
12581
12576
  className: classNames(classPrefix$X, {
12582
12577
  [`${classPrefix$X}-checked`]: checked && !props.indeterminate,
12583
12578
  [`${classPrefix$X}-indeterminate`]: props.indeterminate,
@@ -12673,7 +12668,7 @@ const Collapse = (props) => {
12673
12668
  var _a;
12674
12669
  const panels = [];
12675
12670
  traverseReactNode(props.children, (child) => {
12676
- if (!React__default.default.isValidElement(child))
12671
+ if (!React$4.isValidElement(child))
12677
12672
  return;
12678
12673
  const key = child.key;
12679
12674
  if (typeof key !== "string")
@@ -12838,67 +12833,55 @@ function generateDatePickerColumns$2(selected, min2, max2, precision, renderLabe
12838
12833
  const lower = minYear;
12839
12834
  const upper = maxYear;
12840
12835
  const years = generateColumn(lower, upper, "year");
12841
- ret.push(years.map((v) => {
12842
- return {
12843
- label: renderLabel("year", v),
12844
- value: v.toString()
12845
- };
12846
- }));
12836
+ ret.push(years.map((v) => ({
12837
+ label: renderLabel("year", v),
12838
+ value: v.toString()
12839
+ })));
12847
12840
  }
12848
12841
  if (rank >= precisionRankRecord$1.month) {
12849
12842
  const lower = isInMinYear ? minMonth : 1;
12850
12843
  const upper = isInMaxYear ? maxMonth : 12;
12851
12844
  const months = generateColumn(lower, upper, "month");
12852
- ret.push(months.map((v) => {
12853
- return {
12854
- label: renderLabel("month", v),
12855
- value: v.toString()
12856
- };
12857
- }));
12845
+ ret.push(months.map((v) => ({
12846
+ label: renderLabel("month", v),
12847
+ value: v.toString()
12848
+ })));
12858
12849
  }
12859
12850
  if (rank >= precisionRankRecord$1.day) {
12860
12851
  const lower = isInMinMonth ? minDay : 1;
12861
12852
  const upper = isInMaxMonth ? maxDay : firstDayInSelectedMonth.daysInMonth();
12862
12853
  const days = generateColumn(lower, upper, "day");
12863
- ret.push(days.map((v) => {
12864
- return {
12865
- label: renderLabel("day", v),
12866
- value: v.toString()
12867
- };
12868
- }));
12854
+ ret.push(days.map((v) => ({
12855
+ label: renderLabel("day", v),
12856
+ value: v.toString()
12857
+ })));
12869
12858
  }
12870
12859
  if (rank >= precisionRankRecord$1.hour) {
12871
12860
  const lower = isInMinDay ? minHour : 0;
12872
12861
  const upper = isInMaxDay ? maxHour : 23;
12873
12862
  const hours = generateColumn(lower, upper, "hour");
12874
- ret.push(hours.map((v) => {
12875
- return {
12876
- label: renderLabel("hour", v),
12877
- value: v.toString()
12878
- };
12879
- }));
12863
+ ret.push(hours.map((v) => ({
12864
+ label: renderLabel("hour", v),
12865
+ value: v.toString()
12866
+ })));
12880
12867
  }
12881
12868
  if (rank >= precisionRankRecord$1.minute) {
12882
12869
  const lower = isInMinHour ? minMinute : 0;
12883
12870
  const upper = isInMaxHour ? maxMinute : 59;
12884
12871
  const minutes = generateColumn(lower, upper, "minute");
12885
- ret.push(minutes.map((v) => {
12886
- return {
12887
- label: renderLabel("minute", v),
12888
- value: v.toString()
12889
- };
12890
- }));
12872
+ ret.push(minutes.map((v) => ({
12873
+ label: renderLabel("minute", v),
12874
+ value: v.toString()
12875
+ })));
12891
12876
  }
12892
12877
  if (rank >= precisionRankRecord$1.second) {
12893
12878
  const lower = isInMinMinute ? minSecond : 0;
12894
12879
  const upper = isInMaxMinute ? maxSecond : 59;
12895
12880
  const seconds = generateColumn(lower, upper, "second");
12896
- ret.push(seconds.map((v) => {
12897
- return {
12898
- label: renderLabel("second", v),
12899
- value: v.toString()
12900
- };
12901
- }));
12881
+ ret.push(seconds.map((v) => ({
12882
+ label: renderLabel("second", v),
12883
+ value: v.toString()
12884
+ })));
12902
12885
  }
12903
12886
  if (tillNow) {
12904
12887
  ret[0].push({
@@ -12975,34 +12958,28 @@ function generateDatePickerColumns$1(selected, min2, max2, precision, renderLabe
12975
12958
  const lower = minYear;
12976
12959
  const upper = maxYear;
12977
12960
  const years = generateColumn(lower, upper, "year");
12978
- ret.push(years.map((v) => {
12979
- return {
12980
- label: renderLabel("year", v),
12981
- value: v.toString()
12982
- };
12983
- }));
12961
+ ret.push(years.map((v) => ({
12962
+ label: renderLabel("year", v),
12963
+ value: v.toString()
12964
+ })));
12984
12965
  }
12985
12966
  if (rank >= precisionRankRecord.week) {
12986
12967
  const lower = isInMinYear ? minWeek : 1;
12987
12968
  const upper = isInMaxYear ? maxWeek : selectedYearWeeks;
12988
12969
  const weeks = generateColumn(lower, upper, "week");
12989
- ret.push(weeks.map((v) => {
12990
- return {
12991
- label: renderLabel("week", v),
12992
- value: v.toString()
12993
- };
12994
- }));
12970
+ ret.push(weeks.map((v) => ({
12971
+ label: renderLabel("week", v),
12972
+ value: v.toString()
12973
+ })));
12995
12974
  }
12996
12975
  if (rank >= precisionRankRecord["week-day"]) {
12997
12976
  const lower = isInMinWeek ? minWeekday : 1;
12998
12977
  const upper = isInMaxWeek ? maxWeekday : 7;
12999
12978
  const weeks = generateColumn(lower, upper, "week-day");
13000
- ret.push(weeks.map((v) => {
13001
- return {
13002
- label: renderLabel("week-day", v),
13003
- value: v.toString()
13004
- };
13005
- }));
12979
+ ret.push(weeks.map((v) => ({
12980
+ label: renderLabel("week-day", v),
12981
+ value: v.toString()
12982
+ })));
13006
12983
  }
13007
12984
  return ret;
13008
12985
  }
@@ -13197,7 +13174,12 @@ const DatePickerView$1 = (p) => {
13197
13174
  defaultValue: (_a = props.defaultValue) !== null && _a !== void 0 ? _a : null
13198
13175
  });
13199
13176
  const mergedRenderLabel = useRenderLabel(renderLabel);
13200
- const pickerValue = React$4.useMemo(() => convertDateToStringArray(value, props.precision), [value, props.precision]);
13177
+ const pickerValue = React$4.useMemo(() => {
13178
+ if (value === null || value === void 0 ? void 0 : value.tillNow) {
13179
+ return [TILL_NOW, null, null];
13180
+ }
13181
+ return convertDateToStringArray(value, props.precision);
13182
+ }, [value, props.precision]);
13201
13183
  const onChange = React$4.useCallback((val) => {
13202
13184
  var _a2;
13203
13185
  const date4 = convertStringArrayToDate(val, props.precision);
@@ -13207,7 +13189,7 @@ const DatePickerView$1 = (p) => {
13207
13189
  }
13208
13190
  }, [props.onChange, props.precision]);
13209
13191
  return withNativeProps(props, React__default.default.createElement(PickerView, {
13210
- columns: (selected) => generateDatePickerColumns(selected, props.min, props.max, props.precision, mergedRenderLabel, props.filter),
13192
+ columns: (selected) => generateDatePickerColumns(selected, props.min, props.max, props.precision, mergedRenderLabel, props.filter, props.tillNow),
13211
13193
  loading: props.loading,
13212
13194
  loadingContent: props.loadingContent,
13213
13195
  value: pickerValue,
@@ -13477,7 +13459,7 @@ const Dropdown = React$4.forwardRef((p, ref) => {
13477
13459
  let popupForceRender = false;
13478
13460
  const items = [];
13479
13461
  const navs = React__default.default.Children.map(props.children, (child) => {
13480
- if (React__default.default.isValidElement(child)) {
13462
+ if (React$4.isValidElement(child)) {
13481
13463
  const childProps = Object.assign(Object.assign({}, child.props), {
13482
13464
  onClick: () => {
13483
13465
  changeActive(child.key);
@@ -19192,6 +19174,9 @@ const computePosition$1 = async (reference, floating, config2) => {
19192
19174
  middlewareData
19193
19175
  };
19194
19176
  };
19177
+ function evaluate(value, param) {
19178
+ return typeof value === "function" ? value(param) : value;
19179
+ }
19195
19180
  function expandPaddingObject(padding) {
19196
19181
  return {
19197
19182
  top: 0,
@@ -19237,7 +19222,7 @@ async function detectOverflow(state, options) {
19237
19222
  elementContext = "floating",
19238
19223
  altBoundary = false,
19239
19224
  padding = 0
19240
- } = options;
19225
+ } = evaluate(options, state);
19241
19226
  const paddingObject = getSideObjectFromPadding(padding);
19242
19227
  const altContext = elementContext === "floating" ? "reference" : "floating";
19243
19228
  const element = elements[altBoundary ? altContext : elementContext];
@@ -19281,10 +19266,6 @@ const arrow = (options) => ({
19281
19266
  name: "arrow",
19282
19267
  options,
19283
19268
  async fn(state) {
19284
- const {
19285
- element,
19286
- padding = 0
19287
- } = options || {};
19288
19269
  const {
19289
19270
  x,
19290
19271
  y,
@@ -19293,6 +19274,10 @@ const arrow = (options) => ({
19293
19274
  platform: platform2,
19294
19275
  elements
19295
19276
  } = state;
19277
+ const {
19278
+ element,
19279
+ padding = 0
19280
+ } = evaluate(options, state) || {};
19296
19281
  if (element == null) {
19297
19282
  return {};
19298
19283
  }
@@ -19316,17 +19301,20 @@ const arrow = (options) => ({
19316
19301
  clientSize = elements.floating[clientProp] || rects.floating[length];
19317
19302
  }
19318
19303
  const centerToReference = endDiff / 2 - startDiff / 2;
19319
- const min2 = paddingObject[minProp];
19320
- const max2 = clientSize - arrowDimensions[length] - paddingObject[maxProp];
19304
+ const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;
19305
+ const minPadding = min$1(paddingObject[minProp], largestPossiblePadding);
19306
+ const maxPadding = min$1(paddingObject[maxProp], largestPossiblePadding);
19307
+ const min$1$1 = minPadding;
19308
+ const max2 = clientSize - arrowDimensions[length] - maxPadding;
19321
19309
  const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
19322
- const offset2 = within(min2, center, max2);
19323
- const shouldAddOffset = getAlignment(placement) != null && center != offset2 && rects.reference[length] / 2 - (center < min2 ? paddingObject[minProp] : paddingObject[maxProp]) - arrowDimensions[length] / 2 < 0;
19324
- const alignmentOffset = shouldAddOffset ? center < min2 ? min2 - center : max2 - center : 0;
19310
+ const offset2 = within(min$1$1, center, max2);
19311
+ const shouldAddOffset = getAlignment(placement) != null && center != offset2 && rects.reference[length] / 2 - (center < min$1$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
19312
+ const alignmentOffset = shouldAddOffset ? center < min$1$1 ? min$1$1 - center : max2 - center : 0;
19325
19313
  return {
19326
19314
  [axis]: coords[axis] - alignmentOffset,
19327
19315
  data: {
19328
19316
  [axis]: offset2,
19329
- centerOffset: center - offset2
19317
+ centerOffset: center - offset2 + alignmentOffset
19330
19318
  }
19331
19319
  };
19332
19320
  }
@@ -19422,7 +19410,7 @@ const flip = function(options) {
19422
19410
  fallbackAxisSideDirection = "none",
19423
19411
  flipAlignment = true,
19424
19412
  ...detectOverflowOptions
19425
- } = options;
19413
+ } = evaluate(options, state);
19426
19414
  const side = getSide(placement);
19427
19415
  const isBasePlacement = getSide(initialPlacement) === initialPlacement;
19428
19416
  const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));
@@ -19510,13 +19498,13 @@ const hide = function(options) {
19510
19498
  name: "hide",
19511
19499
  options,
19512
19500
  async fn(state) {
19513
- const {
19514
- strategy = "referenceHidden",
19515
- ...detectOverflowOptions
19516
- } = options;
19517
19501
  const {
19518
19502
  rects
19519
19503
  } = state;
19504
+ const {
19505
+ strategy = "referenceHidden",
19506
+ ...detectOverflowOptions
19507
+ } = evaluate(options, state);
19520
19508
  switch (strategy) {
19521
19509
  case "referenceHidden": {
19522
19510
  const overflow = await detectOverflow(state, {
@@ -19551,7 +19539,7 @@ const hide = function(options) {
19551
19539
  }
19552
19540
  };
19553
19541
  };
19554
- async function convertValueToCoords(state, value) {
19542
+ async function convertValueToCoords(state, options) {
19555
19543
  const {
19556
19544
  placement,
19557
19545
  platform: platform2,
@@ -19563,7 +19551,7 @@ async function convertValueToCoords(state, value) {
19563
19551
  const isVertical = getMainAxisFromPlacement(placement) === "x";
19564
19552
  const mainAxisMulti = ["left", "top"].includes(side) ? -1 : 1;
19565
19553
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
19566
- const rawValue = typeof value === "function" ? value(state) : value;
19554
+ const rawValue = evaluate(options, state);
19567
19555
  let {
19568
19556
  mainAxis,
19569
19557
  crossAxis,
@@ -19589,19 +19577,19 @@ async function convertValueToCoords(state, value) {
19589
19577
  y: crossAxis * crossAxisMulti
19590
19578
  };
19591
19579
  }
19592
- const offset = function(value) {
19593
- if (value === void 0) {
19594
- value = 0;
19580
+ const offset = function(options) {
19581
+ if (options === void 0) {
19582
+ options = 0;
19595
19583
  }
19596
19584
  return {
19597
19585
  name: "offset",
19598
- options: value,
19586
+ options,
19599
19587
  async fn(state) {
19600
19588
  const {
19601
19589
  x,
19602
19590
  y
19603
19591
  } = state;
19604
- const diffCoords = await convertValueToCoords(state, value);
19592
+ const diffCoords = await convertValueToCoords(state, options);
19605
19593
  return {
19606
19594
  x: x + diffCoords.x,
19607
19595
  y: y + diffCoords.y,
@@ -19642,7 +19630,7 @@ const shift = function(options) {
19642
19630
  }
19643
19631
  },
19644
19632
  ...detectOverflowOptions
19645
- } = options;
19633
+ } = evaluate(options, state);
19646
19634
  const coords = {
19647
19635
  x,
19648
19636
  y
@@ -19699,7 +19687,7 @@ const limitShift = function(options) {
19699
19687
  offset: offset2 = 0,
19700
19688
  mainAxis: checkMainAxis = true,
19701
19689
  crossAxis: checkCrossAxis = true
19702
- } = options;
19690
+ } = evaluate(options, state);
19703
19691
  const coords = {
19704
19692
  x,
19705
19693
  y
@@ -19708,7 +19696,7 @@ const limitShift = function(options) {
19708
19696
  const crossAxis = getCrossAxis(mainAxis);
19709
19697
  let mainAxisCoord = coords[mainAxis];
19710
19698
  let crossAxisCoord = coords[crossAxis];
19711
- const rawOffset = typeof offset2 === "function" ? offset2(state) : offset2;
19699
+ const rawOffset = evaluate(offset2, state);
19712
19700
  const computedOffset = typeof rawOffset === "number" ? {
19713
19701
  mainAxis: rawOffset,
19714
19702
  crossAxis: 0
@@ -19757,19 +19745,10 @@ function isNode(value) {
19757
19745
  return value instanceof getWindow(value).Node;
19758
19746
  }
19759
19747
  function getNodeName(node) {
19760
- return isNode(node) ? (node.nodeName || "").toLowerCase() : "";
19761
- }
19762
- let uaString;
19763
- function getUAString() {
19764
- if (uaString) {
19765
- return uaString;
19748
+ if (isNode(node)) {
19749
+ return (node.nodeName || "").toLowerCase();
19766
19750
  }
19767
- const uaData = navigator.userAgentData;
19768
- if (uaData && Array.isArray(uaData.brands)) {
19769
- uaString = uaData.brands.map((item) => item.brand + "/" + item.version).join(" ");
19770
- return uaString;
19771
- }
19772
- return navigator.userAgent;
19751
+ return "#document";
19773
19752
  }
19774
19753
  function isHTMLElement(value) {
19775
19754
  return value instanceof getWindow(value).HTMLElement;
@@ -19781,8 +19760,7 @@ function isShadowRoot(node) {
19781
19760
  if (typeof ShadowRoot === "undefined") {
19782
19761
  return false;
19783
19762
  }
19784
- const OwnElement = getWindow(node).ShadowRoot;
19785
- return node instanceof OwnElement || node instanceof ShadowRoot;
19763
+ return node instanceof getWindow(node).ShadowRoot || node instanceof ShadowRoot;
19786
19764
  }
19787
19765
  function isOverflowElement(element) {
19788
19766
  const {
@@ -19797,16 +19775,14 @@ function isTableElement(element) {
19797
19775
  return ["table", "td", "th"].includes(getNodeName(element));
19798
19776
  }
19799
19777
  function isContainingBlock(element) {
19800
- const isFirefox = /firefox/i.test(getUAString());
19778
+ const safari = isSafari();
19801
19779
  const css = getComputedStyle$1(element);
19802
- const backdropFilter = css.backdropFilter || css.WebkitBackdropFilter;
19803
- return css.transform !== "none" || css.perspective !== "none" || (backdropFilter ? backdropFilter !== "none" : false) || isFirefox && css.willChange === "filter" || isFirefox && (css.filter ? css.filter !== "none" : false) || ["transform", "perspective"].some((value) => css.willChange.includes(value)) || ["paint", "layout", "strict", "content"].some((value) => {
19804
- const contain = css.contain;
19805
- return contain != null ? contain.includes(value) : false;
19806
- });
19780
+ return css.transform !== "none" || css.perspective !== "none" || !safari && (css.backdropFilter ? css.backdropFilter !== "none" : false) || !safari && (css.filter ? css.filter !== "none" : false) || ["transform", "perspective", "filter"].some((value) => (css.willChange || "").includes(value)) || ["paint", "layout", "strict", "content"].some((value) => (css.contain || "").includes(value));
19807
19781
  }
19808
- function isClientRectVisualViewportBased() {
19809
- return /^((?!chrome|android).)*safari/i.test(getUAString());
19782
+ function isSafari() {
19783
+ if (typeof CSS === "undefined" || !CSS.supports)
19784
+ return false;
19785
+ return CSS.supports("-webkit-backdrop-filter", "none");
19810
19786
  }
19811
19787
  function isLastTraversableNode(node) {
19812
19788
  return ["html", "body", "#document"].includes(getNodeName(node));
@@ -19814,10 +19790,15 @@ function isLastTraversableNode(node) {
19814
19790
  const min = Math.min;
19815
19791
  const max = Math.max;
19816
19792
  const round = Math.round;
19793
+ const floor = Math.floor;
19794
+ const createEmptyCoords = (v) => ({
19795
+ x: v,
19796
+ y: v
19797
+ });
19817
19798
  function getCssDimensions(element) {
19818
19799
  const css = getComputedStyle$1(element);
19819
- let width = parseFloat(css.width);
19820
- let height = parseFloat(css.height);
19800
+ let width = parseFloat(css.width) || 0;
19801
+ let height = parseFloat(css.height) || 0;
19821
19802
  const hasOffset = isHTMLElement(element);
19822
19803
  const offsetWidth = hasOffset ? element.offsetWidth : width;
19823
19804
  const offsetHeight = hasOffset ? element.offsetHeight : height;
@@ -19829,29 +19810,25 @@ function getCssDimensions(element) {
19829
19810
  return {
19830
19811
  width,
19831
19812
  height,
19832
- fallback: shouldFallback
19813
+ $: shouldFallback
19833
19814
  };
19834
19815
  }
19835
19816
  function unwrapElement(element) {
19836
19817
  return !isElement(element) ? element.contextElement : element;
19837
19818
  }
19838
- const FALLBACK_SCALE = {
19839
- x: 1,
19840
- y: 1
19841
- };
19842
19819
  function getScale(element) {
19843
19820
  const domElement = unwrapElement(element);
19844
19821
  if (!isHTMLElement(domElement)) {
19845
- return FALLBACK_SCALE;
19822
+ return createEmptyCoords(1);
19846
19823
  }
19847
19824
  const rect = domElement.getBoundingClientRect();
19848
19825
  const {
19849
19826
  width,
19850
19827
  height,
19851
- fallback
19828
+ $
19852
19829
  } = getCssDimensions(domElement);
19853
- let x = (fallback ? round(rect.width) : rect.width) / width;
19854
- let y = (fallback ? round(rect.height) : rect.height) / height;
19830
+ let x = ($ ? round(rect.width) : rect.width) / width;
19831
+ let y = ($ ? round(rect.height) : rect.height) / height;
19855
19832
  if (!x || !Number.isFinite(x)) {
19856
19833
  x = 1;
19857
19834
  }
@@ -19863,8 +19840,25 @@ function getScale(element) {
19863
19840
  y
19864
19841
  };
19865
19842
  }
19866
- function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
19843
+ const noOffsets = /* @__PURE__ */ createEmptyCoords(0);
19844
+ function getVisualOffsets(element, isFixed, floatingOffsetParent) {
19867
19845
  var _win$visualViewport, _win$visualViewport2;
19846
+ if (isFixed === void 0) {
19847
+ isFixed = true;
19848
+ }
19849
+ if (!isSafari()) {
19850
+ return noOffsets;
19851
+ }
19852
+ const win = element ? getWindow(element) : window;
19853
+ if (!floatingOffsetParent || isFixed && floatingOffsetParent !== win) {
19854
+ return noOffsets;
19855
+ }
19856
+ return {
19857
+ x: ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0,
19858
+ y: ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0
19859
+ };
19860
+ }
19861
+ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
19868
19862
  if (includeScale === void 0) {
19869
19863
  includeScale = false;
19870
19864
  }
@@ -19873,7 +19867,7 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
19873
19867
  }
19874
19868
  const clientRect = element.getBoundingClientRect();
19875
19869
  const domElement = unwrapElement(element);
19876
- let scale2 = FALLBACK_SCALE;
19870
+ let scale2 = createEmptyCoords(1);
19877
19871
  if (includeScale) {
19878
19872
  if (offsetParent) {
19879
19873
  if (isElement(offsetParent)) {
@@ -19883,28 +19877,27 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
19883
19877
  scale2 = getScale(element);
19884
19878
  }
19885
19879
  }
19886
- const win = domElement ? getWindow(domElement) : window;
19887
- const addVisualOffsets = isClientRectVisualViewportBased() && isFixedStrategy;
19888
- let x = (clientRect.left + (addVisualOffsets ? ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0 : 0)) / scale2.x;
19889
- let y = (clientRect.top + (addVisualOffsets ? ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0 : 0)) / scale2.y;
19880
+ const visualOffsets = getVisualOffsets(domElement, isFixedStrategy, offsetParent);
19881
+ let x = (clientRect.left + visualOffsets.x) / scale2.x;
19882
+ let y = (clientRect.top + visualOffsets.y) / scale2.y;
19890
19883
  let width = clientRect.width / scale2.x;
19891
19884
  let height = clientRect.height / scale2.y;
19892
19885
  if (domElement) {
19893
- const win2 = getWindow(domElement);
19886
+ const win = getWindow(domElement);
19894
19887
  const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
19895
- let currentIFrame = win2.frameElement;
19896
- while (currentIFrame && offsetParent && offsetWin !== win2) {
19888
+ let currentIFrame = win.frameElement;
19889
+ while (currentIFrame && offsetParent && offsetWin !== win) {
19897
19890
  const iframeScale = getScale(currentIFrame);
19898
19891
  const iframeRect = currentIFrame.getBoundingClientRect();
19899
19892
  const css = getComputedStyle(currentIFrame);
19900
- iframeRect.x += (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
19901
- iframeRect.y += (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
19893
+ const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
19894
+ const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
19902
19895
  x *= iframeScale.x;
19903
19896
  y *= iframeScale.y;
19904
19897
  width *= iframeScale.x;
19905
19898
  height *= iframeScale.y;
19906
- x += iframeRect.x;
19907
- y += iframeRect.y;
19899
+ x += left;
19900
+ y += top;
19908
19901
  currentIFrame = getWindow(currentIFrame).frameElement;
19909
19902
  }
19910
19903
  }
@@ -19945,14 +19938,8 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
19945
19938
  scrollLeft: 0,
19946
19939
  scrollTop: 0
19947
19940
  };
19948
- let scale2 = {
19949
- x: 1,
19950
- y: 1
19951
- };
19952
- const offsets = {
19953
- x: 0,
19954
- y: 0
19955
- };
19941
+ let scale2 = createEmptyCoords(1);
19942
+ const offsets = createEmptyCoords(0);
19956
19943
  if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== "fixed") {
19957
19944
  if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
19958
19945
  scroll = getNodeScroll(offsetParent);
@@ -20002,7 +19989,7 @@ function getParentNode(node) {
20002
19989
  function getNearestOverflowAncestor(node) {
20003
19990
  const parentNode = getParentNode(node);
20004
19991
  if (isLastTraversableNode(parentNode)) {
20005
- return parentNode.ownerDocument.body;
19992
+ return node.ownerDocument ? node.ownerDocument.body : node.body;
20006
19993
  }
20007
19994
  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
20008
19995
  return parentNode;
@@ -20033,7 +20020,7 @@ function getViewportRect(element, strategy) {
20033
20020
  if (visualViewport) {
20034
20021
  width = visualViewport.width;
20035
20022
  height = visualViewport.height;
20036
- const visualViewportBased = isClientRectVisualViewportBased();
20023
+ const visualViewportBased = isSafari();
20037
20024
  if (!visualViewportBased || visualViewportBased && strategy === "fixed") {
20038
20025
  x = visualViewport.offsetLeft;
20039
20026
  y = visualViewport.offsetTop;
@@ -20050,10 +20037,7 @@ function getInnerBoundingClientRect(element, strategy) {
20050
20037
  const clientRect = getBoundingClientRect(element, true, strategy === "fixed");
20051
20038
  const top = clientRect.top + element.clientTop;
20052
20039
  const left = clientRect.left + element.clientLeft;
20053
- const scale2 = isHTMLElement(element) ? getScale(element) : {
20054
- x: 1,
20055
- y: 1
20056
- };
20040
+ const scale2 = isHTMLElement(element) ? getScale(element) : createEmptyCoords(1);
20057
20041
  const width = element.clientWidth * scale2.x;
20058
20042
  const height = element.clientHeight * scale2.y;
20059
20043
  const x = left * scale2.x;
@@ -20074,19 +20058,22 @@ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy)
20074
20058
  } else if (isElement(clippingAncestor)) {
20075
20059
  rect = getInnerBoundingClientRect(clippingAncestor, strategy);
20076
20060
  } else {
20077
- const mutableRect = {
20078
- ...clippingAncestor
20061
+ const visualOffsets = getVisualOffsets(element);
20062
+ rect = {
20063
+ ...clippingAncestor,
20064
+ x: clippingAncestor.x - visualOffsets.x,
20065
+ y: clippingAncestor.y - visualOffsets.y
20079
20066
  };
20080
- if (isClientRectVisualViewportBased()) {
20081
- var _win$visualViewport, _win$visualViewport2;
20082
- const win = getWindow(element);
20083
- mutableRect.x -= ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0;
20084
- mutableRect.y -= ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0;
20085
- }
20086
- rect = mutableRect;
20087
20067
  }
20088
20068
  return rectToClientRect(rect);
20089
20069
  }
20070
+ function hasFixedPositionAncestor(element, stopNode) {
20071
+ const parentNode = getParentNode(element);
20072
+ if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
20073
+ return false;
20074
+ }
20075
+ return getComputedStyle$1(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode);
20076
+ }
20090
20077
  function getClippingElementAncestors(element, cache) {
20091
20078
  const cachedResult = cache.get(element);
20092
20079
  if (cachedResult) {
@@ -20098,11 +20085,11 @@ function getClippingElementAncestors(element, cache) {
20098
20085
  let currentNode = elementIsFixed ? getParentNode(element) : element;
20099
20086
  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
20100
20087
  const computedStyle = getComputedStyle$1(currentNode);
20101
- const containingBlock = isContainingBlock(currentNode);
20102
- if (computedStyle.position === "fixed") {
20088
+ const currentNodeIsContaining = isContainingBlock(currentNode);
20089
+ if (!currentNodeIsContaining && computedStyle.position === "fixed") {
20103
20090
  currentContainingBlockComputedStyle = null;
20104
20091
  }
20105
- const shouldDropCurrentNode = elementIsFixed ? !containingBlock && !currentContainingBlockComputedStyle : !containingBlock && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && ["absolute", "fixed"].includes(currentContainingBlockComputedStyle.position);
20092
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && ["absolute", "fixed"].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
20106
20093
  if (shouldDropCurrentNode) {
20107
20094
  result2 = result2.filter((ancestor) => ancestor !== currentNode);
20108
20095
  } else {
@@ -20178,21 +20165,19 @@ function getOffsetParent(element, polyfill) {
20178
20165
  function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
20179
20166
  const isOffsetParentAnElement = isHTMLElement(offsetParent);
20180
20167
  const documentElement = getDocumentElement(offsetParent);
20181
- const rect = getBoundingClientRect(element, true, strategy === "fixed", offsetParent);
20168
+ const isFixed = strategy === "fixed";
20169
+ const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
20182
20170
  let scroll = {
20183
20171
  scrollLeft: 0,
20184
20172
  scrollTop: 0
20185
20173
  };
20186
- const offsets = {
20187
- x: 0,
20188
- y: 0
20189
- };
20190
- if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== "fixed") {
20174
+ const offsets = createEmptyCoords(0);
20175
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
20191
20176
  if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
20192
20177
  scroll = getNodeScroll(offsetParent);
20193
20178
  }
20194
20179
  if (isHTMLElement(offsetParent)) {
20195
- const offsetRect = getBoundingClientRect(offsetParent, true);
20180
+ const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
20196
20181
  offsets.x = offsetRect.x + offsetParent.clientLeft;
20197
20182
  offsets.y = offsetRect.y + offsetParent.clientTop;
20198
20183
  } else if (documentElement) {
@@ -20234,34 +20219,92 @@ const platform = {
20234
20219
  getClientRects: (element) => Array.from(element.getClientRects()),
20235
20220
  isRTL: (element) => getComputedStyle$1(element).direction === "rtl"
20236
20221
  };
20222
+ function observeMove(element, onMove) {
20223
+ let io = null;
20224
+ let timeoutId;
20225
+ const root2 = getDocumentElement(element);
20226
+ function cleanup() {
20227
+ clearTimeout(timeoutId);
20228
+ io && io.disconnect();
20229
+ io = null;
20230
+ }
20231
+ function refresh(skip, threshold) {
20232
+ if (skip === void 0) {
20233
+ skip = false;
20234
+ }
20235
+ if (threshold === void 0) {
20236
+ threshold = 1;
20237
+ }
20238
+ cleanup();
20239
+ const {
20240
+ left,
20241
+ top,
20242
+ width,
20243
+ height
20244
+ } = element.getBoundingClientRect();
20245
+ if (!skip) {
20246
+ onMove();
20247
+ }
20248
+ if (!width || !height) {
20249
+ return;
20250
+ }
20251
+ const insetTop = floor(top);
20252
+ const insetRight = floor(root2.clientWidth - (left + width));
20253
+ const insetBottom = floor(root2.clientHeight - (top + height));
20254
+ const insetLeft = floor(left);
20255
+ const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px";
20256
+ let isFirstUpdate = true;
20257
+ io = new IntersectionObserver((entries) => {
20258
+ const ratio = entries[0].intersectionRatio;
20259
+ if (ratio !== threshold) {
20260
+ if (!isFirstUpdate) {
20261
+ return refresh();
20262
+ }
20263
+ if (!ratio) {
20264
+ timeoutId = setTimeout(() => {
20265
+ refresh(false, 1e-7);
20266
+ }, 100);
20267
+ } else {
20268
+ refresh(false, ratio);
20269
+ }
20270
+ }
20271
+ isFirstUpdate = false;
20272
+ }, {
20273
+ rootMargin,
20274
+ threshold: max(0, min(1, threshold)) || 1
20275
+ });
20276
+ io.observe(element);
20277
+ }
20278
+ refresh(true);
20279
+ return cleanup;
20280
+ }
20237
20281
  function autoUpdate(reference, floating, update2, options) {
20238
20282
  if (options === void 0) {
20239
20283
  options = {};
20240
20284
  }
20241
20285
  const {
20242
- ancestorScroll: _ancestorScroll = true,
20286
+ ancestorScroll = true,
20243
20287
  ancestorResize = true,
20244
20288
  elementResize = true,
20289
+ layoutShift = typeof IntersectionObserver === "function",
20245
20290
  animationFrame = false
20246
20291
  } = options;
20247
- const ancestorScroll = _ancestorScroll && !animationFrame;
20248
- const ancestors = ancestorScroll || ancestorResize ? [...isElement(reference) ? getOverflowAncestors(reference) : reference.contextElement ? getOverflowAncestors(reference.contextElement) : [], ...getOverflowAncestors(floating)] : [];
20292
+ const referenceEl = unwrapElement(reference);
20293
+ const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : [];
20249
20294
  ancestors.forEach((ancestor) => {
20250
20295
  ancestorScroll && ancestor.addEventListener("scroll", update2, {
20251
20296
  passive: true
20252
20297
  });
20253
20298
  ancestorResize && ancestor.addEventListener("resize", update2);
20254
20299
  });
20255
- let observer = null;
20300
+ const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update2) : null;
20301
+ let resizeObserver = null;
20256
20302
  if (elementResize) {
20257
- observer = new ResizeObserver(() => {
20258
- update2();
20259
- });
20260
- isElement(reference) && !animationFrame && observer.observe(reference);
20261
- if (!isElement(reference) && reference.contextElement && !animationFrame) {
20262
- observer.observe(reference.contextElement);
20303
+ resizeObserver = new ResizeObserver(update2);
20304
+ if (referenceEl && !animationFrame) {
20305
+ resizeObserver.observe(referenceEl);
20263
20306
  }
20264
- observer.observe(floating);
20307
+ resizeObserver.observe(floating);
20265
20308
  }
20266
20309
  let frameId;
20267
20310
  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
@@ -20278,13 +20321,13 @@ function autoUpdate(reference, floating, update2, options) {
20278
20321
  }
20279
20322
  update2();
20280
20323
  return () => {
20281
- var _observer;
20282
20324
  ancestors.forEach((ancestor) => {
20283
20325
  ancestorScroll && ancestor.removeEventListener("scroll", update2);
20284
20326
  ancestorResize && ancestor.removeEventListener("resize", update2);
20285
20327
  });
20286
- (_observer = observer) == null ? void 0 : _observer.disconnect();
20287
- observer = null;
20328
+ cleanupIo && cleanupIo();
20329
+ resizeObserver && resizeObserver.disconnect();
20330
+ resizeObserver = null;
20288
20331
  if (animationFrame) {
20289
20332
  cancelAnimationFrame(frameId);
20290
20333
  }
@@ -20382,13 +20425,11 @@ const Popover$1 = React$4.forwardRef((p, ref) => {
20382
20425
  defaultValue: props.defaultVisible,
20383
20426
  onChange: props.onVisibleChange
20384
20427
  });
20385
- React$4.useImperativeHandle(ref, () => {
20386
- return {
20387
- show: () => setVisible(true),
20388
- hide: () => setVisible(false),
20389
- visible
20390
- };
20391
- }, [visible]);
20428
+ React$4.useImperativeHandle(ref, () => ({
20429
+ show: () => setVisible(true),
20430
+ hide: () => setVisible(false),
20431
+ visible
20432
+ }), [visible]);
20392
20433
  const targetRef = React$4.useRef(null);
20393
20434
  const floatingRef = React$4.useRef(null);
20394
20435
  const arrowRef = React$4.useRef(null);
@@ -21448,9 +21489,7 @@ const ImageUploader$1 = (p) => {
21448
21489
  let files = [].slice.call(rawFiles);
21449
21490
  e2.target.value = "";
21450
21491
  if (props.beforeUpload) {
21451
- const postFiles = files.map((file) => {
21452
- return processFile(file, files);
21453
- });
21492
+ const postFiles = files.map((file) => processFile(file, files));
21454
21493
  yield Promise.all(postFiles).then((filesList) => {
21455
21494
  files = filesList.filter(Boolean);
21456
21495
  });
@@ -21924,7 +21963,10 @@ const Input$1 = React$4.forwardRef((p, ref) => {
21924
21963
  function checkValue() {
21925
21964
  let nextValue = value;
21926
21965
  if (props.type === "number") {
21927
- nextValue = nextValue && bound(parseFloat(nextValue), props.min, props.max).toString();
21966
+ const boundValue = nextValue && bound(parseFloat(nextValue), props.min, props.max).toString();
21967
+ if (Number(nextValue) !== Number(boundValue)) {
21968
+ nextValue = boundValue;
21969
+ }
21928
21970
  }
21929
21971
  if (nextValue !== value) {
21930
21972
  setValue2(nextValue);
@@ -22025,7 +22067,7 @@ const JumboTabs = (props) => {
22025
22067
  let firstActiveKey = null;
22026
22068
  const panes = [];
22027
22069
  traverseReactNode(props.children, (child, index2) => {
22028
- if (!React__default.default.isValidElement(child))
22070
+ if (!React$4.isValidElement(child))
22029
22071
  return;
22030
22072
  const key = child.key;
22031
22073
  if (typeof key !== "string")
@@ -22152,19 +22194,17 @@ const Modal = (p) => {
22152
22194
  direction: "vertical",
22153
22195
  block: true,
22154
22196
  className: classNames(cls("footer"), props.actions.length === 0 && cls("footer-empty"))
22155
- }, props.actions.map((action, index2) => {
22156
- return React__default.default.createElement(ModalActionButton, {
22157
- key: action.key,
22158
- action,
22159
- onAction: () => __awaiter(void 0, void 0, void 0, function* () {
22160
- var _a, _b, _c;
22161
- yield Promise.all([(_a = action.onClick) === null || _a === void 0 ? void 0 : _a.call(action), (_b = props.onAction) === null || _b === void 0 ? void 0 : _b.call(props, action, index2)]);
22162
- if (props.closeOnAction) {
22163
- (_c = props.onClose) === null || _c === void 0 ? void 0 : _c.call(props);
22164
- }
22165
- })
22166
- });
22167
- })));
22197
+ }, props.actions.map((action, index2) => React__default.default.createElement(ModalActionButton, {
22198
+ key: action.key,
22199
+ action,
22200
+ onAction: () => __awaiter(void 0, void 0, void 0, function* () {
22201
+ var _a, _b, _c;
22202
+ yield Promise.all([(_a = action.onClick) === null || _a === void 0 ? void 0 : _a.call(action), (_b = props.onAction) === null || _b === void 0 ? void 0 : _b.call(props, action, index2)]);
22203
+ if (props.closeOnAction) {
22204
+ (_c = props.onClose) === null || _c === void 0 ? void 0 : _c.call(props);
22205
+ }
22206
+ })
22207
+ }))));
22168
22208
  return React__default.default.createElement(CenterPopup, {
22169
22209
  className: classNames(cls(), props.className),
22170
22210
  style: props.style,
@@ -23036,6 +23076,7 @@ const Radio = (p) => {
23036
23076
  }, checked && React__default.default.createElement(CheckIcon, null));
23037
23077
  };
23038
23078
  return withNativeProps(props, React__default.default.createElement("label", {
23079
+ onClick: props.onClick,
23039
23080
  className: classNames(classPrefix$q, {
23040
23081
  [`${classPrefix$q}-checked`]: checked,
23041
23082
  [`${classPrefix$q}-disabled`]: disabled,
@@ -23165,9 +23206,9 @@ const Result$1 = (p) => {
23165
23206
  className: `${classPrefix$o}-icon`
23166
23207
  }, resultIcon), React__default.default.createElement("div", {
23167
23208
  className: `${classPrefix$o}-title`
23168
- }, title), description ? React__default.default.createElement("div", {
23209
+ }, title), !!description && React__default.default.createElement("div", {
23169
23210
  className: `${classPrefix$o}-description`
23170
- }, description) : null));
23211
+ }, description)));
23171
23212
  };
23172
23213
  const Result = Result$1;
23173
23214
  const resultPage = "";
@@ -23490,7 +23531,7 @@ const SideBar = (props) => {
23490
23531
  let firstActiveKey = null;
23491
23532
  const items = [];
23492
23533
  traverseReactNode(props.children, (child, index2) => {
23493
- if (!React__default.default.isValidElement(child))
23534
+ if (!React$4.isValidElement(child))
23494
23535
  return;
23495
23536
  const key = child.key;
23496
23537
  if (typeof key !== "string")
@@ -24515,11 +24556,7 @@ function InnerStepper(p, ref) {
24515
24556
  const formatValue = (value2) => {
24516
24557
  if (value2 === null)
24517
24558
  return "";
24518
- if (formatter) {
24519
- return formatter(value2);
24520
- } else {
24521
- return fixedValue(value2);
24522
- }
24559
+ return formatter ? formatter(value2) : fixedValue(value2);
24523
24560
  };
24524
24561
  const [mergedValue, setMergedValue] = _default(defaultValue, {
24525
24562
  value,
@@ -25356,7 +25393,7 @@ const TabBar = (p) => {
25356
25393
  let firstActiveKey = null;
25357
25394
  const items = [];
25358
25395
  traverseReactNode(props.children, (child, index2) => {
25359
- if (!React__default.default.isValidElement(child))
25396
+ if (!React$4.isValidElement(child))
25360
25397
  return;
25361
25398
  const key = child.key;
25362
25399
  if (typeof key !== "string")
@@ -26008,13 +26045,9 @@ const Multiple = (p) => {
26008
26045
  }
26009
26046
  const isLeaf = deep === index2 + 1;
26010
26047
  if (isLeaf) {
26011
- return React__default.default.createElement(React__default.default.Fragment, null, renderSelectAllLeafItem(columnOptions, index2), columnOptions.map((option) => {
26012
- return renderLeafItem(option);
26013
- }));
26048
+ return React__default.default.createElement(React__default.default.Fragment, null, renderSelectAllLeafItem(columnOptions, index2), columnOptions.map((option) => renderLeafItem(option)));
26014
26049
  }
26015
- return React__default.default.createElement(React__default.default.Fragment, null, renderSelectAllItem(columnOptions, index2), columnOptions.map((option) => {
26016
- return renderItem(option);
26017
- }));
26050
+ return React__default.default.createElement(React__default.default.Fragment, null, renderSelectAllItem(columnOptions, index2), columnOptions.map((option) => renderItem(option)));
26018
26051
  };
26019
26052
  const renderColumns = () => {
26020
26053
  var _a;
@@ -26148,7 +26181,7 @@ const VirtualInput$1 = React$4.forwardRef((p, ref) => {
26148
26181
  },
26149
26182
  role: "button",
26150
26183
  "aria-label": locale.Input.clear
26151
- }, React__default.default.createElement(CloseCircleFill, null)), !value && React__default.default.createElement("div", {
26184
+ }, React__default.default.createElement(CloseCircleFill, null)), [void 0, null, ""].includes(value) && React__default.default.createElement("div", {
26152
26185
  className: `${classPrefix$2}-placeholder`
26153
26186
  }, props.placeholder), keyboardElement));
26154
26187
  });
@@ -26266,31 +26299,27 @@ const Footer$1 = (p) => {
26266
26299
  className: classNames(classPrefix)
26267
26300
  }, label && React__default.default.createElement("div", {
26268
26301
  className: `${classPrefix}-label`
26269
- }, React__default.default.createElement(Divider, null, label)), links && links.length > 0 && React__default.default.createElement("div", {
26302
+ }, React__default.default.createElement(Divider, null, label)), !!(links === null || links === void 0 ? void 0 : links.length) && React__default.default.createElement("div", {
26270
26303
  className: `${classPrefix}-links`
26271
- }, links.map((link, index2) => {
26272
- return React__default.default.createElement(React__default.default.Fragment, {
26273
- key: index2
26274
- }, React__default.default.createElement("a", {
26275
- href: link.href,
26276
- rel: "noopener noreferrer",
26277
- onClick: (event) => clickLinkItem(link, index2, event)
26278
- }, link.text), index2 !== links.length - 1 && React__default.default.createElement(Divider, {
26279
- direction: "vertical"
26280
- }));
26281
- })), content && React__default.default.createElement("div", {
26304
+ }, links.map((link, index2) => React__default.default.createElement(React__default.default.Fragment, {
26305
+ key: index2
26306
+ }, React__default.default.createElement("a", {
26307
+ href: link.href,
26308
+ rel: "noopener noreferrer",
26309
+ onClick: (event) => clickLinkItem(link, index2, event)
26310
+ }, link.text), index2 !== links.length - 1 && React__default.default.createElement(Divider, {
26311
+ direction: "vertical"
26312
+ })))), content && React__default.default.createElement("div", {
26282
26313
  className: `${classPrefix}-content`
26283
26314
  }, content), chips && chips.length > 0 && React__default.default.createElement("div", {
26284
26315
  className: `${classPrefix}-chips`
26285
- }, chips.map((chip, index2) => {
26286
- return React__default.default.createElement("div", {
26287
- key: index2,
26288
- onClick: () => clickChipItem(chip, index2),
26289
- className: classNames(`${classPrefix}-chip`, {
26290
- [`${classPrefix}-chip-link`]: chip.type === "link"
26291
- })
26292
- }, chip.text);
26293
- }))));
26316
+ }, chips.map((chip, index2) => React__default.default.createElement("div", {
26317
+ key: index2,
26318
+ onClick: () => clickChipItem(chip, index2),
26319
+ className: classNames(`${classPrefix}-chip`, {
26320
+ [`${classPrefix}-chip-link`]: chip.type === "link"
26321
+ })
26322
+ }, chip.text)))));
26294
26323
  };
26295
26324
  const Footer = Footer$1;
26296
26325
  exports.ActionSheet = index$j;