antd-mobile 5.31.0 → 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 (182) hide show
  1. package/2x/bundle/antd-mobile.cjs.development.js +283 -254
  2. package/2x/bundle/antd-mobile.cjs.js +9 -9
  3. package/2x/bundle/antd-mobile.es.development.js +284 -255
  4. package/2x/bundle/antd-mobile.es.js +4494 -4468
  5. package/2x/bundle/antd-mobile.umd.development.js +283 -254
  6. package/2x/bundle/antd-mobile.umd.js +9 -9
  7. package/2x/bundle/style.css +3 -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/form/form-subscribe.js +1 -1
  23. package/2x/cjs/components/image-uploader/image-uploader.js +1 -3
  24. package/2x/cjs/components/input/input.js +5 -1
  25. package/2x/cjs/components/jumbo-tabs/jumbo-tabs.js +1 -1
  26. package/2x/cjs/components/modal/modal.js +11 -13
  27. package/2x/cjs/components/notice-bar/notice-bar.css +2 -0
  28. package/2x/cjs/components/popover/popover.js +5 -7
  29. package/2x/cjs/components/popup/popup.js +3 -3
  30. package/2x/cjs/components/radio/radio.d.ts +1 -0
  31. package/2x/cjs/components/radio/radio.js +1 -0
  32. package/2x/cjs/components/rate/star.d.ts +1 -1
  33. package/2x/cjs/components/result/result.js +2 -2
  34. package/2x/cjs/components/safe-area/safe-area.d.ts +1 -1
  35. package/2x/cjs/components/safe-area/safe-area.js +1 -1
  36. package/2x/cjs/components/side-bar/side-bar.d.ts +1 -2
  37. package/2x/cjs/components/side-bar/side-bar.js +4 -2
  38. package/2x/cjs/components/skeleton/skeleton.d.ts +1 -1
  39. package/2x/cjs/components/stepper/stepper.js +1 -5
  40. package/2x/cjs/components/swiper/swiper.js +1 -1
  41. package/2x/cjs/components/tab-bar/tab-bar.d.ts +1 -2
  42. package/2x/cjs/components/tab-bar/tab-bar.js +4 -2
  43. package/2x/cjs/components/tabs/tabs.js +1 -1
  44. package/2x/cjs/components/text-area/text-area.css +1 -0
  45. package/2x/cjs/components/tree-select/multiple.js +2 -6
  46. package/2x/cjs/components/virtual-input/virtual-input.js +1 -1
  47. package/2x/cjs/locales/ru-RU.d.ts +134 -0
  48. package/2x/cjs/locales/ru-RU.js +144 -0
  49. package/2x/es/components/calendar/convert.js +1 -6
  50. package/2x/es/components/capsule-tabs/capsule-tabs.js +3 -5
  51. package/2x/es/components/cascader/cascader.d.ts +2 -0
  52. package/2x/es/components/cascader/index.d.ts +1 -0
  53. package/2x/es/components/checkbox/checkbox.d.ts +2 -0
  54. package/2x/es/components/checkbox/checkbox.js +1 -0
  55. package/2x/es/components/checkbox/index.d.ts +1 -0
  56. package/2x/es/components/collapse/collapse.js +2 -2
  57. package/2x/es/components/date-picker/date-picker-date-utils.js +24 -36
  58. package/2x/es/components/date-picker/date-picker-week-utils.js +12 -18
  59. package/2x/es/components/date-picker-view/date-picker-view.d.ts +7 -5
  60. package/2x/es/components/date-picker-view/date-picker-view.js +8 -2
  61. package/2x/es/components/dropdown/dropdown.js +2 -2
  62. package/2x/es/components/footer/footer.js +17 -21
  63. package/2x/es/components/form/form-subscribe.js +1 -1
  64. package/2x/es/components/image-uploader/image-uploader.js +1 -3
  65. package/2x/es/components/input/input.js +5 -1
  66. package/2x/es/components/jumbo-tabs/jumbo-tabs.js +2 -2
  67. package/2x/es/components/modal/modal.js +11 -13
  68. package/2x/es/components/notice-bar/notice-bar.css +2 -0
  69. package/2x/es/components/popover/popover.js +5 -7
  70. package/2x/es/components/popup/popup.js +3 -3
  71. package/2x/es/components/radio/radio.d.ts +1 -0
  72. package/2x/es/components/radio/radio.js +1 -0
  73. package/2x/es/components/rate/star.d.ts +1 -1
  74. package/2x/es/components/result/result.js +2 -2
  75. package/2x/es/components/safe-area/safe-area.d.ts +1 -1
  76. package/2x/es/components/safe-area/safe-area.js +1 -1
  77. package/2x/es/components/side-bar/side-bar.d.ts +1 -2
  78. package/2x/es/components/side-bar/side-bar.js +2 -2
  79. package/2x/es/components/skeleton/skeleton.d.ts +1 -1
  80. package/2x/es/components/stepper/stepper.js +1 -5
  81. package/2x/es/components/swiper/swiper.js +1 -1
  82. package/2x/es/components/tab-bar/tab-bar.d.ts +1 -2
  83. package/2x/es/components/tab-bar/tab-bar.js +2 -2
  84. package/2x/es/components/tabs/tabs.js +2 -2
  85. package/2x/es/components/text-area/text-area.css +1 -0
  86. package/2x/es/components/tree-select/multiple.js +2 -6
  87. package/2x/es/components/virtual-input/virtual-input.js +1 -1
  88. package/2x/es/locales/ru-RU.d.ts +134 -0
  89. package/2x/es/locales/ru-RU.js +137 -0
  90. package/2x/package.json +2 -2
  91. package/bundle/antd-mobile.cjs.development.js +283 -254
  92. package/bundle/antd-mobile.cjs.js +9 -9
  93. package/bundle/antd-mobile.compatible.umd.js +1 -1
  94. package/bundle/antd-mobile.es.development.js +284 -255
  95. package/bundle/antd-mobile.es.js +4494 -4468
  96. package/bundle/antd-mobile.umd.development.js +283 -254
  97. package/bundle/antd-mobile.umd.js +9 -9
  98. package/bundle/style.css +1 -1
  99. package/cjs/components/calendar/convert.js +1 -6
  100. package/cjs/components/capsule-tabs/capsule-tabs.js +2 -4
  101. package/cjs/components/cascader/cascader.d.ts +2 -0
  102. package/cjs/components/cascader/index.d.ts +1 -0
  103. package/cjs/components/checkbox/checkbox.d.ts +2 -0
  104. package/cjs/components/checkbox/checkbox.js +1 -0
  105. package/cjs/components/checkbox/index.d.ts +1 -0
  106. package/cjs/components/collapse/collapse.js +1 -1
  107. package/cjs/components/date-picker/date-picker-date-utils.js +24 -36
  108. package/cjs/components/date-picker/date-picker-week-utils.js +12 -18
  109. package/cjs/components/date-picker-view/date-picker-view.d.ts +7 -5
  110. package/cjs/components/date-picker-view/date-picker-view.js +8 -2
  111. package/cjs/components/dropdown/dropdown.js +1 -1
  112. package/cjs/components/footer/footer.js +17 -21
  113. package/cjs/components/form/form-subscribe.js +1 -1
  114. package/cjs/components/image-uploader/image-uploader.js +1 -3
  115. package/cjs/components/input/input.js +5 -1
  116. package/cjs/components/jumbo-tabs/jumbo-tabs.js +1 -1
  117. package/cjs/components/modal/modal.js +11 -13
  118. package/cjs/components/notice-bar/notice-bar.css +2 -0
  119. package/cjs/components/popover/popover.js +5 -7
  120. package/cjs/components/popup/popup.js +3 -3
  121. package/cjs/components/radio/radio.d.ts +1 -0
  122. package/cjs/components/radio/radio.js +1 -0
  123. package/cjs/components/rate/star.d.ts +1 -1
  124. package/cjs/components/result/result.js +2 -2
  125. package/cjs/components/safe-area/safe-area.d.ts +1 -1
  126. package/cjs/components/safe-area/safe-area.js +1 -1
  127. package/cjs/components/side-bar/side-bar.d.ts +1 -2
  128. package/cjs/components/side-bar/side-bar.js +4 -2
  129. package/cjs/components/skeleton/skeleton.d.ts +1 -1
  130. package/cjs/components/stepper/stepper.js +1 -5
  131. package/cjs/components/swiper/swiper.js +1 -1
  132. package/cjs/components/tab-bar/tab-bar.d.ts +1 -2
  133. package/cjs/components/tab-bar/tab-bar.js +4 -2
  134. package/cjs/components/tabs/tabs.js +1 -1
  135. package/cjs/components/text-area/text-area.css +1 -0
  136. package/cjs/components/tree-select/multiple.js +2 -6
  137. package/cjs/components/virtual-input/virtual-input.js +1 -1
  138. package/cjs/locales/ru-RU.d.ts +134 -0
  139. package/cjs/locales/ru-RU.js +144 -0
  140. package/es/components/calendar/convert.js +1 -6
  141. package/es/components/capsule-tabs/capsule-tabs.js +3 -5
  142. package/es/components/cascader/cascader.d.ts +2 -0
  143. package/es/components/cascader/index.d.ts +1 -0
  144. package/es/components/checkbox/checkbox.d.ts +2 -0
  145. package/es/components/checkbox/checkbox.js +1 -0
  146. package/es/components/checkbox/index.d.ts +1 -0
  147. package/es/components/collapse/collapse.js +2 -2
  148. package/es/components/date-picker/date-picker-date-utils.js +24 -36
  149. package/es/components/date-picker/date-picker-week-utils.js +12 -18
  150. package/es/components/date-picker-view/date-picker-view.d.ts +7 -5
  151. package/es/components/date-picker-view/date-picker-view.js +8 -2
  152. package/es/components/dropdown/dropdown.js +2 -2
  153. package/es/components/footer/footer.js +17 -21
  154. package/es/components/form/form-subscribe.js +1 -1
  155. package/es/components/image-uploader/image-uploader.js +1 -3
  156. package/es/components/input/input.js +5 -1
  157. package/es/components/jumbo-tabs/jumbo-tabs.js +2 -2
  158. package/es/components/modal/modal.js +11 -13
  159. package/es/components/notice-bar/notice-bar.css +2 -0
  160. package/es/components/popover/popover.js +5 -7
  161. package/es/components/popup/popup.js +3 -3
  162. package/es/components/radio/radio.d.ts +1 -0
  163. package/es/components/radio/radio.js +1 -0
  164. package/es/components/rate/star.d.ts +1 -1
  165. package/es/components/result/result.js +2 -2
  166. package/es/components/safe-area/safe-area.d.ts +1 -1
  167. package/es/components/safe-area/safe-area.js +1 -1
  168. package/es/components/side-bar/side-bar.d.ts +1 -2
  169. package/es/components/side-bar/side-bar.js +2 -2
  170. package/es/components/skeleton/skeleton.d.ts +1 -1
  171. package/es/components/stepper/stepper.js +1 -5
  172. package/es/components/swiper/swiper.js +1 -1
  173. package/es/components/tab-bar/tab-bar.d.ts +1 -2
  174. package/es/components/tab-bar/tab-bar.js +2 -2
  175. package/es/components/tabs/tabs.js +2 -2
  176. package/es/components/text-area/text-area.css +1 -0
  177. package/es/components/tree-select/multiple.js +2 -6
  178. package/es/components/virtual-input/virtual-input.js +1 -1
  179. package/es/locales/ru-RU.d.ts +134 -0
  180. package/es/locales/ru-RU.js +137 -0
  181. package/package.json +2 -2
  182. package/umd/antd-mobile.js +1 -1
@@ -1,5 +1,5 @@
1
1
  import * as React$4 from "react";
2
- import React__default, { useContext, useRef, useMemo, useEffect, useState as useState$1, useCallback, useLayoutEffect as useLayoutEffect$2, forwardRef, useImperativeHandle, memo, createContext, cloneElement } from "react";
2
+ import React__default, { useContext, useRef, useMemo, useEffect, useState as useState$1, useCallback, useLayoutEffect as useLayoutEffect$2, forwardRef, useImperativeHandle, memo, isValidElement, createContext, cloneElement } from "react";
3
3
  import * as ReactDOM from "react-dom";
4
4
  import { unstable_batchedUpdates, createPortal, findDOMNode } from "react-dom";
5
5
  const global$2 = "";
@@ -9301,18 +9301,18 @@ const defaultProps$12 = Object.assign(Object.assign({}, defaultPopupBaseProps),
9301
9301
  });
9302
9302
  const Popup$1 = (p) => {
9303
9303
  const props = mergeProps(defaultProps$12, p);
9304
+ const bodyCls = classNames(`${classPrefix$1k}-body`, props.bodyClassName, `${classPrefix$1k}-body-position-${props.position}`);
9304
9305
  const {
9305
9306
  locale
9306
9307
  } = useConfig();
9307
- const bodyCls = classNames(`${classPrefix$1k}-body`, props.bodyClassName, `${classPrefix$1k}-body-position-${props.position}`);
9308
9308
  const [active, setActive] = useState$1(props.visible);
9309
+ const ref = useRef(null);
9310
+ useLockScroll(ref, props.disableBodyScroll && active ? "strict" : false);
9309
9311
  useIsomorphicLayoutEffect$2(() => {
9310
9312
  if (props.visible) {
9311
9313
  setActive(true);
9312
9314
  }
9313
9315
  }, [props.visible]);
9314
- const ref = useRef(null);
9315
- useLockScroll(ref, props.disableBodyScroll && active ? "strict" : false);
9316
9316
  const unmountedRef = useUnmountedRef$1();
9317
9317
  const {
9318
9318
  percent
@@ -10102,12 +10102,8 @@ function usePropsValue(options) {
10102
10102
  return [stateRef.current, setState];
10103
10103
  }
10104
10104
  function convertValueToRange(selectionMode, value) {
10105
- if (selectionMode === void 0) {
10105
+ if (selectionMode === void 0 || value === null)
10106
10106
  return null;
10107
- }
10108
- if (value === null) {
10109
- return null;
10110
- }
10111
10107
  if (Array.isArray(value)) {
10112
10108
  return value;
10113
10109
  }
@@ -10680,9 +10676,7 @@ function traverseReactNode(children, fn) {
10680
10676
  handle(children);
10681
10677
  }
10682
10678
  const classPrefix$19 = `adm-capsule-tabs`;
10683
- const CapsuleTab = () => {
10684
- return null;
10685
- };
10679
+ const CapsuleTab = () => null;
10686
10680
  const CapsuleTabs = (props) => {
10687
10681
  var _a;
10688
10682
  const tabListContainerRef = useRef(null);
@@ -10691,7 +10685,7 @@ const CapsuleTabs = (props) => {
10691
10685
  let firstActiveKey = null;
10692
10686
  const panes = [];
10693
10687
  traverseReactNode(props.children, (child, index2) => {
10694
- if (!React__default.isValidElement(child))
10688
+ if (!isValidElement(child))
10695
10689
  return;
10696
10690
  const key = child.key;
10697
10691
  if (typeof key !== "string")
@@ -11637,7 +11631,7 @@ const Tabs$1 = (p) => {
11637
11631
  let firstActiveKey = null;
11638
11632
  const panes = [];
11639
11633
  traverseReactNode(props.children, (child, index2) => {
11640
- if (!React__default.isValidElement(child))
11634
+ if (!isValidElement(child))
11641
11635
  return;
11642
11636
  const key = child.key;
11643
11637
  if (typeof key !== "string")
@@ -12556,6 +12550,7 @@ const Checkbox$1 = forwardRef((p, ref) => {
12556
12550
  }, props.indeterminate ? React__default.createElement(IndeterminateIcon, null) : checked && React__default.createElement(CheckIcon, null));
12557
12551
  };
12558
12552
  return withNativeProps(props, React__default.createElement("label", {
12553
+ onClick: props.onClick,
12559
12554
  className: classNames(classPrefix$X, {
12560
12555
  [`${classPrefix$X}-checked`]: checked && !props.indeterminate,
12561
12556
  [`${classPrefix$X}-indeterminate`]: props.indeterminate,
@@ -12651,7 +12646,7 @@ const Collapse = (props) => {
12651
12646
  var _a;
12652
12647
  const panels = [];
12653
12648
  traverseReactNode(props.children, (child) => {
12654
- if (!React__default.isValidElement(child))
12649
+ if (!isValidElement(child))
12655
12650
  return;
12656
12651
  const key = child.key;
12657
12652
  if (typeof key !== "string")
@@ -12816,67 +12811,55 @@ function generateDatePickerColumns$2(selected, min2, max2, precision, renderLabe
12816
12811
  const lower = minYear;
12817
12812
  const upper = maxYear;
12818
12813
  const years = generateColumn(lower, upper, "year");
12819
- ret.push(years.map((v) => {
12820
- return {
12821
- label: renderLabel("year", v),
12822
- value: v.toString()
12823
- };
12824
- }));
12814
+ ret.push(years.map((v) => ({
12815
+ label: renderLabel("year", v),
12816
+ value: v.toString()
12817
+ })));
12825
12818
  }
12826
12819
  if (rank >= precisionRankRecord$1.month) {
12827
12820
  const lower = isInMinYear ? minMonth : 1;
12828
12821
  const upper = isInMaxYear ? maxMonth : 12;
12829
12822
  const months = generateColumn(lower, upper, "month");
12830
- ret.push(months.map((v) => {
12831
- return {
12832
- label: renderLabel("month", v),
12833
- value: v.toString()
12834
- };
12835
- }));
12823
+ ret.push(months.map((v) => ({
12824
+ label: renderLabel("month", v),
12825
+ value: v.toString()
12826
+ })));
12836
12827
  }
12837
12828
  if (rank >= precisionRankRecord$1.day) {
12838
12829
  const lower = isInMinMonth ? minDay : 1;
12839
12830
  const upper = isInMaxMonth ? maxDay : firstDayInSelectedMonth.daysInMonth();
12840
12831
  const days = generateColumn(lower, upper, "day");
12841
- ret.push(days.map((v) => {
12842
- return {
12843
- label: renderLabel("day", v),
12844
- value: v.toString()
12845
- };
12846
- }));
12832
+ ret.push(days.map((v) => ({
12833
+ label: renderLabel("day", v),
12834
+ value: v.toString()
12835
+ })));
12847
12836
  }
12848
12837
  if (rank >= precisionRankRecord$1.hour) {
12849
12838
  const lower = isInMinDay ? minHour : 0;
12850
12839
  const upper = isInMaxDay ? maxHour : 23;
12851
12840
  const hours = generateColumn(lower, upper, "hour");
12852
- ret.push(hours.map((v) => {
12853
- return {
12854
- label: renderLabel("hour", v),
12855
- value: v.toString()
12856
- };
12857
- }));
12841
+ ret.push(hours.map((v) => ({
12842
+ label: renderLabel("hour", v),
12843
+ value: v.toString()
12844
+ })));
12858
12845
  }
12859
12846
  if (rank >= precisionRankRecord$1.minute) {
12860
12847
  const lower = isInMinHour ? minMinute : 0;
12861
12848
  const upper = isInMaxHour ? maxMinute : 59;
12862
12849
  const minutes = generateColumn(lower, upper, "minute");
12863
- ret.push(minutes.map((v) => {
12864
- return {
12865
- label: renderLabel("minute", v),
12866
- value: v.toString()
12867
- };
12868
- }));
12850
+ ret.push(minutes.map((v) => ({
12851
+ label: renderLabel("minute", v),
12852
+ value: v.toString()
12853
+ })));
12869
12854
  }
12870
12855
  if (rank >= precisionRankRecord$1.second) {
12871
12856
  const lower = isInMinMinute ? minSecond : 0;
12872
12857
  const upper = isInMaxMinute ? maxSecond : 59;
12873
12858
  const seconds = generateColumn(lower, upper, "second");
12874
- ret.push(seconds.map((v) => {
12875
- return {
12876
- label: renderLabel("second", v),
12877
- value: v.toString()
12878
- };
12879
- }));
12859
+ ret.push(seconds.map((v) => ({
12860
+ label: renderLabel("second", v),
12861
+ value: v.toString()
12862
+ })));
12880
12863
  }
12881
12864
  if (tillNow) {
12882
12865
  ret[0].push({
@@ -12953,34 +12936,28 @@ function generateDatePickerColumns$1(selected, min2, max2, precision, renderLabe
12953
12936
  const lower = minYear;
12954
12937
  const upper = maxYear;
12955
12938
  const years = generateColumn(lower, upper, "year");
12956
- ret.push(years.map((v) => {
12957
- return {
12958
- label: renderLabel("year", v),
12959
- value: v.toString()
12960
- };
12961
- }));
12939
+ ret.push(years.map((v) => ({
12940
+ label: renderLabel("year", v),
12941
+ value: v.toString()
12942
+ })));
12962
12943
  }
12963
12944
  if (rank >= precisionRankRecord.week) {
12964
12945
  const lower = isInMinYear ? minWeek : 1;
12965
12946
  const upper = isInMaxYear ? maxWeek : selectedYearWeeks;
12966
12947
  const weeks = generateColumn(lower, upper, "week");
12967
- ret.push(weeks.map((v) => {
12968
- return {
12969
- label: renderLabel("week", v),
12970
- value: v.toString()
12971
- };
12972
- }));
12948
+ ret.push(weeks.map((v) => ({
12949
+ label: renderLabel("week", v),
12950
+ value: v.toString()
12951
+ })));
12973
12952
  }
12974
12953
  if (rank >= precisionRankRecord["week-day"]) {
12975
12954
  const lower = isInMinWeek ? minWeekday : 1;
12976
12955
  const upper = isInMaxWeek ? maxWeekday : 7;
12977
12956
  const weeks = generateColumn(lower, upper, "week-day");
12978
- ret.push(weeks.map((v) => {
12979
- return {
12980
- label: renderLabel("week-day", v),
12981
- value: v.toString()
12982
- };
12983
- }));
12957
+ ret.push(weeks.map((v) => ({
12958
+ label: renderLabel("week-day", v),
12959
+ value: v.toString()
12960
+ })));
12984
12961
  }
12985
12962
  return ret;
12986
12963
  }
@@ -13175,7 +13152,12 @@ const DatePickerView$1 = (p) => {
13175
13152
  defaultValue: (_a = props.defaultValue) !== null && _a !== void 0 ? _a : null
13176
13153
  });
13177
13154
  const mergedRenderLabel = useRenderLabel(renderLabel);
13178
- const pickerValue = useMemo(() => convertDateToStringArray(value, props.precision), [value, props.precision]);
13155
+ const pickerValue = useMemo(() => {
13156
+ if (value === null || value === void 0 ? void 0 : value.tillNow) {
13157
+ return [TILL_NOW, null, null];
13158
+ }
13159
+ return convertDateToStringArray(value, props.precision);
13160
+ }, [value, props.precision]);
13179
13161
  const onChange = useCallback((val) => {
13180
13162
  var _a2;
13181
13163
  const date4 = convertStringArrayToDate(val, props.precision);
@@ -13185,7 +13167,7 @@ const DatePickerView$1 = (p) => {
13185
13167
  }
13186
13168
  }, [props.onChange, props.precision]);
13187
13169
  return withNativeProps(props, React__default.createElement(PickerView, {
13188
- columns: (selected) => generateDatePickerColumns(selected, props.min, props.max, props.precision, mergedRenderLabel, props.filter),
13170
+ columns: (selected) => generateDatePickerColumns(selected, props.min, props.max, props.precision, mergedRenderLabel, props.filter, props.tillNow),
13189
13171
  loading: props.loading,
13190
13172
  loadingContent: props.loadingContent,
13191
13173
  value: pickerValue,
@@ -13455,7 +13437,7 @@ const Dropdown = forwardRef((p, ref) => {
13455
13437
  let popupForceRender = false;
13456
13438
  const items = [];
13457
13439
  const navs = React__default.Children.map(props.children, (child) => {
13458
- if (React__default.isValidElement(child)) {
13440
+ if (isValidElement(child)) {
13459
13441
  const childProps = Object.assign(Object.assign({}, child.props), {
13460
13442
  onClick: () => {
13461
13443
  changeActive(child.key);
@@ -19170,6 +19152,9 @@ const computePosition$1 = async (reference, floating, config2) => {
19170
19152
  middlewareData
19171
19153
  };
19172
19154
  };
19155
+ function evaluate(value, param) {
19156
+ return typeof value === "function" ? value(param) : value;
19157
+ }
19173
19158
  function expandPaddingObject(padding) {
19174
19159
  return {
19175
19160
  top: 0,
@@ -19215,7 +19200,7 @@ async function detectOverflow(state, options) {
19215
19200
  elementContext = "floating",
19216
19201
  altBoundary = false,
19217
19202
  padding = 0
19218
- } = options;
19203
+ } = evaluate(options, state);
19219
19204
  const paddingObject = getSideObjectFromPadding(padding);
19220
19205
  const altContext = elementContext === "floating" ? "reference" : "floating";
19221
19206
  const element = elements[altBoundary ? altContext : elementContext];
@@ -19259,10 +19244,6 @@ const arrow = (options) => ({
19259
19244
  name: "arrow",
19260
19245
  options,
19261
19246
  async fn(state) {
19262
- const {
19263
- element,
19264
- padding = 0
19265
- } = options || {};
19266
19247
  const {
19267
19248
  x,
19268
19249
  y,
@@ -19271,6 +19252,10 @@ const arrow = (options) => ({
19271
19252
  platform: platform2,
19272
19253
  elements
19273
19254
  } = state;
19255
+ const {
19256
+ element,
19257
+ padding = 0
19258
+ } = evaluate(options, state) || {};
19274
19259
  if (element == null) {
19275
19260
  return {};
19276
19261
  }
@@ -19294,17 +19279,20 @@ const arrow = (options) => ({
19294
19279
  clientSize = elements.floating[clientProp] || rects.floating[length];
19295
19280
  }
19296
19281
  const centerToReference = endDiff / 2 - startDiff / 2;
19297
- const min2 = paddingObject[minProp];
19298
- const max2 = clientSize - arrowDimensions[length] - paddingObject[maxProp];
19282
+ const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;
19283
+ const minPadding = min$1(paddingObject[minProp], largestPossiblePadding);
19284
+ const maxPadding = min$1(paddingObject[maxProp], largestPossiblePadding);
19285
+ const min$1$1 = minPadding;
19286
+ const max2 = clientSize - arrowDimensions[length] - maxPadding;
19299
19287
  const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
19300
- const offset2 = within(min2, center, max2);
19301
- const shouldAddOffset = getAlignment(placement) != null && center != offset2 && rects.reference[length] / 2 - (center < min2 ? paddingObject[minProp] : paddingObject[maxProp]) - arrowDimensions[length] / 2 < 0;
19302
- const alignmentOffset = shouldAddOffset ? center < min2 ? min2 - center : max2 - center : 0;
19288
+ const offset2 = within(min$1$1, center, max2);
19289
+ const shouldAddOffset = getAlignment(placement) != null && center != offset2 && rects.reference[length] / 2 - (center < min$1$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
19290
+ const alignmentOffset = shouldAddOffset ? center < min$1$1 ? min$1$1 - center : max2 - center : 0;
19303
19291
  return {
19304
19292
  [axis]: coords[axis] - alignmentOffset,
19305
19293
  data: {
19306
19294
  [axis]: offset2,
19307
- centerOffset: center - offset2
19295
+ centerOffset: center - offset2 + alignmentOffset
19308
19296
  }
19309
19297
  };
19310
19298
  }
@@ -19400,7 +19388,7 @@ const flip = function(options) {
19400
19388
  fallbackAxisSideDirection = "none",
19401
19389
  flipAlignment = true,
19402
19390
  ...detectOverflowOptions
19403
- } = options;
19391
+ } = evaluate(options, state);
19404
19392
  const side = getSide(placement);
19405
19393
  const isBasePlacement = getSide(initialPlacement) === initialPlacement;
19406
19394
  const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));
@@ -19488,13 +19476,13 @@ const hide = function(options) {
19488
19476
  name: "hide",
19489
19477
  options,
19490
19478
  async fn(state) {
19491
- const {
19492
- strategy = "referenceHidden",
19493
- ...detectOverflowOptions
19494
- } = options;
19495
19479
  const {
19496
19480
  rects
19497
19481
  } = state;
19482
+ const {
19483
+ strategy = "referenceHidden",
19484
+ ...detectOverflowOptions
19485
+ } = evaluate(options, state);
19498
19486
  switch (strategy) {
19499
19487
  case "referenceHidden": {
19500
19488
  const overflow = await detectOverflow(state, {
@@ -19529,7 +19517,7 @@ const hide = function(options) {
19529
19517
  }
19530
19518
  };
19531
19519
  };
19532
- async function convertValueToCoords(state, value) {
19520
+ async function convertValueToCoords(state, options) {
19533
19521
  const {
19534
19522
  placement,
19535
19523
  platform: platform2,
@@ -19541,7 +19529,7 @@ async function convertValueToCoords(state, value) {
19541
19529
  const isVertical = getMainAxisFromPlacement(placement) === "x";
19542
19530
  const mainAxisMulti = ["left", "top"].includes(side) ? -1 : 1;
19543
19531
  const crossAxisMulti = rtl && isVertical ? -1 : 1;
19544
- const rawValue = typeof value === "function" ? value(state) : value;
19532
+ const rawValue = evaluate(options, state);
19545
19533
  let {
19546
19534
  mainAxis,
19547
19535
  crossAxis,
@@ -19567,19 +19555,19 @@ async function convertValueToCoords(state, value) {
19567
19555
  y: crossAxis * crossAxisMulti
19568
19556
  };
19569
19557
  }
19570
- const offset = function(value) {
19571
- if (value === void 0) {
19572
- value = 0;
19558
+ const offset = function(options) {
19559
+ if (options === void 0) {
19560
+ options = 0;
19573
19561
  }
19574
19562
  return {
19575
19563
  name: "offset",
19576
- options: value,
19564
+ options,
19577
19565
  async fn(state) {
19578
19566
  const {
19579
19567
  x,
19580
19568
  y
19581
19569
  } = state;
19582
- const diffCoords = await convertValueToCoords(state, value);
19570
+ const diffCoords = await convertValueToCoords(state, options);
19583
19571
  return {
19584
19572
  x: x + diffCoords.x,
19585
19573
  y: y + diffCoords.y,
@@ -19620,7 +19608,7 @@ const shift = function(options) {
19620
19608
  }
19621
19609
  },
19622
19610
  ...detectOverflowOptions
19623
- } = options;
19611
+ } = evaluate(options, state);
19624
19612
  const coords = {
19625
19613
  x,
19626
19614
  y
@@ -19677,7 +19665,7 @@ const limitShift = function(options) {
19677
19665
  offset: offset2 = 0,
19678
19666
  mainAxis: checkMainAxis = true,
19679
19667
  crossAxis: checkCrossAxis = true
19680
- } = options;
19668
+ } = evaluate(options, state);
19681
19669
  const coords = {
19682
19670
  x,
19683
19671
  y
@@ -19686,7 +19674,7 @@ const limitShift = function(options) {
19686
19674
  const crossAxis = getCrossAxis(mainAxis);
19687
19675
  let mainAxisCoord = coords[mainAxis];
19688
19676
  let crossAxisCoord = coords[crossAxis];
19689
- const rawOffset = typeof offset2 === "function" ? offset2(state) : offset2;
19677
+ const rawOffset = evaluate(offset2, state);
19690
19678
  const computedOffset = typeof rawOffset === "number" ? {
19691
19679
  mainAxis: rawOffset,
19692
19680
  crossAxis: 0
@@ -19735,19 +19723,10 @@ function isNode(value) {
19735
19723
  return value instanceof getWindow(value).Node;
19736
19724
  }
19737
19725
  function getNodeName(node) {
19738
- return isNode(node) ? (node.nodeName || "").toLowerCase() : "";
19739
- }
19740
- let uaString;
19741
- function getUAString() {
19742
- if (uaString) {
19743
- return uaString;
19744
- }
19745
- const uaData = navigator.userAgentData;
19746
- if (uaData && Array.isArray(uaData.brands)) {
19747
- uaString = uaData.brands.map((item) => item.brand + "/" + item.version).join(" ");
19748
- return uaString;
19726
+ if (isNode(node)) {
19727
+ return (node.nodeName || "").toLowerCase();
19749
19728
  }
19750
- return navigator.userAgent;
19729
+ return "#document";
19751
19730
  }
19752
19731
  function isHTMLElement(value) {
19753
19732
  return value instanceof getWindow(value).HTMLElement;
@@ -19759,8 +19738,7 @@ function isShadowRoot(node) {
19759
19738
  if (typeof ShadowRoot === "undefined") {
19760
19739
  return false;
19761
19740
  }
19762
- const OwnElement = getWindow(node).ShadowRoot;
19763
- return node instanceof OwnElement || node instanceof ShadowRoot;
19741
+ return node instanceof getWindow(node).ShadowRoot || node instanceof ShadowRoot;
19764
19742
  }
19765
19743
  function isOverflowElement(element) {
19766
19744
  const {
@@ -19775,16 +19753,14 @@ function isTableElement(element) {
19775
19753
  return ["table", "td", "th"].includes(getNodeName(element));
19776
19754
  }
19777
19755
  function isContainingBlock(element) {
19778
- const isFirefox = /firefox/i.test(getUAString());
19756
+ const safari = isSafari();
19779
19757
  const css = getComputedStyle$1(element);
19780
- const backdropFilter = css.backdropFilter || css.WebkitBackdropFilter;
19781
- 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) => {
19782
- const contain = css.contain;
19783
- return contain != null ? contain.includes(value) : false;
19784
- });
19758
+ 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));
19785
19759
  }
19786
- function isClientRectVisualViewportBased() {
19787
- return /^((?!chrome|android).)*safari/i.test(getUAString());
19760
+ function isSafari() {
19761
+ if (typeof CSS === "undefined" || !CSS.supports)
19762
+ return false;
19763
+ return CSS.supports("-webkit-backdrop-filter", "none");
19788
19764
  }
19789
19765
  function isLastTraversableNode(node) {
19790
19766
  return ["html", "body", "#document"].includes(getNodeName(node));
@@ -19792,10 +19768,15 @@ function isLastTraversableNode(node) {
19792
19768
  const min = Math.min;
19793
19769
  const max = Math.max;
19794
19770
  const round = Math.round;
19771
+ const floor = Math.floor;
19772
+ const createEmptyCoords = (v) => ({
19773
+ x: v,
19774
+ y: v
19775
+ });
19795
19776
  function getCssDimensions(element) {
19796
19777
  const css = getComputedStyle$1(element);
19797
- let width = parseFloat(css.width);
19798
- let height = parseFloat(css.height);
19778
+ let width = parseFloat(css.width) || 0;
19779
+ let height = parseFloat(css.height) || 0;
19799
19780
  const hasOffset = isHTMLElement(element);
19800
19781
  const offsetWidth = hasOffset ? element.offsetWidth : width;
19801
19782
  const offsetHeight = hasOffset ? element.offsetHeight : height;
@@ -19807,29 +19788,25 @@ function getCssDimensions(element) {
19807
19788
  return {
19808
19789
  width,
19809
19790
  height,
19810
- fallback: shouldFallback
19791
+ $: shouldFallback
19811
19792
  };
19812
19793
  }
19813
19794
  function unwrapElement(element) {
19814
19795
  return !isElement(element) ? element.contextElement : element;
19815
19796
  }
19816
- const FALLBACK_SCALE = {
19817
- x: 1,
19818
- y: 1
19819
- };
19820
19797
  function getScale(element) {
19821
19798
  const domElement = unwrapElement(element);
19822
19799
  if (!isHTMLElement(domElement)) {
19823
- return FALLBACK_SCALE;
19800
+ return createEmptyCoords(1);
19824
19801
  }
19825
19802
  const rect = domElement.getBoundingClientRect();
19826
19803
  const {
19827
19804
  width,
19828
19805
  height,
19829
- fallback
19806
+ $
19830
19807
  } = getCssDimensions(domElement);
19831
- let x = (fallback ? round(rect.width) : rect.width) / width;
19832
- let y = (fallback ? round(rect.height) : rect.height) / height;
19808
+ let x = ($ ? round(rect.width) : rect.width) / width;
19809
+ let y = ($ ? round(rect.height) : rect.height) / height;
19833
19810
  if (!x || !Number.isFinite(x)) {
19834
19811
  x = 1;
19835
19812
  }
@@ -19841,8 +19818,25 @@ function getScale(element) {
19841
19818
  y
19842
19819
  };
19843
19820
  }
19844
- function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
19821
+ const noOffsets = /* @__PURE__ */ createEmptyCoords(0);
19822
+ function getVisualOffsets(element, isFixed, floatingOffsetParent) {
19845
19823
  var _win$visualViewport, _win$visualViewport2;
19824
+ if (isFixed === void 0) {
19825
+ isFixed = true;
19826
+ }
19827
+ if (!isSafari()) {
19828
+ return noOffsets;
19829
+ }
19830
+ const win = element ? getWindow(element) : window;
19831
+ if (!floatingOffsetParent || isFixed && floatingOffsetParent !== win) {
19832
+ return noOffsets;
19833
+ }
19834
+ return {
19835
+ x: ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0,
19836
+ y: ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0
19837
+ };
19838
+ }
19839
+ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {
19846
19840
  if (includeScale === void 0) {
19847
19841
  includeScale = false;
19848
19842
  }
@@ -19851,7 +19845,7 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
19851
19845
  }
19852
19846
  const clientRect = element.getBoundingClientRect();
19853
19847
  const domElement = unwrapElement(element);
19854
- let scale2 = FALLBACK_SCALE;
19848
+ let scale2 = createEmptyCoords(1);
19855
19849
  if (includeScale) {
19856
19850
  if (offsetParent) {
19857
19851
  if (isElement(offsetParent)) {
@@ -19861,28 +19855,27 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
19861
19855
  scale2 = getScale(element);
19862
19856
  }
19863
19857
  }
19864
- const win = domElement ? getWindow(domElement) : window;
19865
- const addVisualOffsets = isClientRectVisualViewportBased() && isFixedStrategy;
19866
- let x = (clientRect.left + (addVisualOffsets ? ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0 : 0)) / scale2.x;
19867
- let y = (clientRect.top + (addVisualOffsets ? ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0 : 0)) / scale2.y;
19858
+ const visualOffsets = getVisualOffsets(domElement, isFixedStrategy, offsetParent);
19859
+ let x = (clientRect.left + visualOffsets.x) / scale2.x;
19860
+ let y = (clientRect.top + visualOffsets.y) / scale2.y;
19868
19861
  let width = clientRect.width / scale2.x;
19869
19862
  let height = clientRect.height / scale2.y;
19870
19863
  if (domElement) {
19871
- const win2 = getWindow(domElement);
19864
+ const win = getWindow(domElement);
19872
19865
  const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;
19873
- let currentIFrame = win2.frameElement;
19874
- while (currentIFrame && offsetParent && offsetWin !== win2) {
19866
+ let currentIFrame = win.frameElement;
19867
+ while (currentIFrame && offsetParent && offsetWin !== win) {
19875
19868
  const iframeScale = getScale(currentIFrame);
19876
19869
  const iframeRect = currentIFrame.getBoundingClientRect();
19877
19870
  const css = getComputedStyle(currentIFrame);
19878
- iframeRect.x += (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
19879
- iframeRect.y += (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
19871
+ const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
19872
+ const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
19880
19873
  x *= iframeScale.x;
19881
19874
  y *= iframeScale.y;
19882
19875
  width *= iframeScale.x;
19883
19876
  height *= iframeScale.y;
19884
- x += iframeRect.x;
19885
- y += iframeRect.y;
19877
+ x += left;
19878
+ y += top;
19886
19879
  currentIFrame = getWindow(currentIFrame).frameElement;
19887
19880
  }
19888
19881
  }
@@ -19923,14 +19916,8 @@ function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
19923
19916
  scrollLeft: 0,
19924
19917
  scrollTop: 0
19925
19918
  };
19926
- let scale2 = {
19927
- x: 1,
19928
- y: 1
19929
- };
19930
- const offsets = {
19931
- x: 0,
19932
- y: 0
19933
- };
19919
+ let scale2 = createEmptyCoords(1);
19920
+ const offsets = createEmptyCoords(0);
19934
19921
  if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== "fixed") {
19935
19922
  if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
19936
19923
  scroll = getNodeScroll(offsetParent);
@@ -19980,7 +19967,7 @@ function getParentNode(node) {
19980
19967
  function getNearestOverflowAncestor(node) {
19981
19968
  const parentNode = getParentNode(node);
19982
19969
  if (isLastTraversableNode(parentNode)) {
19983
- return parentNode.ownerDocument.body;
19970
+ return node.ownerDocument ? node.ownerDocument.body : node.body;
19984
19971
  }
19985
19972
  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {
19986
19973
  return parentNode;
@@ -20011,7 +19998,7 @@ function getViewportRect(element, strategy) {
20011
19998
  if (visualViewport) {
20012
19999
  width = visualViewport.width;
20013
20000
  height = visualViewport.height;
20014
- const visualViewportBased = isClientRectVisualViewportBased();
20001
+ const visualViewportBased = isSafari();
20015
20002
  if (!visualViewportBased || visualViewportBased && strategy === "fixed") {
20016
20003
  x = visualViewport.offsetLeft;
20017
20004
  y = visualViewport.offsetTop;
@@ -20028,10 +20015,7 @@ function getInnerBoundingClientRect(element, strategy) {
20028
20015
  const clientRect = getBoundingClientRect(element, true, strategy === "fixed");
20029
20016
  const top = clientRect.top + element.clientTop;
20030
20017
  const left = clientRect.left + element.clientLeft;
20031
- const scale2 = isHTMLElement(element) ? getScale(element) : {
20032
- x: 1,
20033
- y: 1
20034
- };
20018
+ const scale2 = isHTMLElement(element) ? getScale(element) : createEmptyCoords(1);
20035
20019
  const width = element.clientWidth * scale2.x;
20036
20020
  const height = element.clientHeight * scale2.y;
20037
20021
  const x = left * scale2.x;
@@ -20052,19 +20036,22 @@ function getClientRectFromClippingAncestor(element, clippingAncestor, strategy)
20052
20036
  } else if (isElement(clippingAncestor)) {
20053
20037
  rect = getInnerBoundingClientRect(clippingAncestor, strategy);
20054
20038
  } else {
20055
- const mutableRect = {
20056
- ...clippingAncestor
20039
+ const visualOffsets = getVisualOffsets(element);
20040
+ rect = {
20041
+ ...clippingAncestor,
20042
+ x: clippingAncestor.x - visualOffsets.x,
20043
+ y: clippingAncestor.y - visualOffsets.y
20057
20044
  };
20058
- if (isClientRectVisualViewportBased()) {
20059
- var _win$visualViewport, _win$visualViewport2;
20060
- const win = getWindow(element);
20061
- mutableRect.x -= ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0;
20062
- mutableRect.y -= ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0;
20063
- }
20064
- rect = mutableRect;
20065
20045
  }
20066
20046
  return rectToClientRect(rect);
20067
20047
  }
20048
+ function hasFixedPositionAncestor(element, stopNode) {
20049
+ const parentNode = getParentNode(element);
20050
+ if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {
20051
+ return false;
20052
+ }
20053
+ return getComputedStyle$1(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode);
20054
+ }
20068
20055
  function getClippingElementAncestors(element, cache) {
20069
20056
  const cachedResult = cache.get(element);
20070
20057
  if (cachedResult) {
@@ -20076,11 +20063,11 @@ function getClippingElementAncestors(element, cache) {
20076
20063
  let currentNode = elementIsFixed ? getParentNode(element) : element;
20077
20064
  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {
20078
20065
  const computedStyle = getComputedStyle$1(currentNode);
20079
- const containingBlock = isContainingBlock(currentNode);
20080
- if (computedStyle.position === "fixed") {
20066
+ const currentNodeIsContaining = isContainingBlock(currentNode);
20067
+ if (!currentNodeIsContaining && computedStyle.position === "fixed") {
20081
20068
  currentContainingBlockComputedStyle = null;
20082
20069
  }
20083
- const shouldDropCurrentNode = elementIsFixed ? !containingBlock && !currentContainingBlockComputedStyle : !containingBlock && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && ["absolute", "fixed"].includes(currentContainingBlockComputedStyle.position);
20070
+ const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && ["absolute", "fixed"].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);
20084
20071
  if (shouldDropCurrentNode) {
20085
20072
  result2 = result2.filter((ancestor) => ancestor !== currentNode);
20086
20073
  } else {
@@ -20156,21 +20143,19 @@ function getOffsetParent(element, polyfill) {
20156
20143
  function getRectRelativeToOffsetParent(element, offsetParent, strategy) {
20157
20144
  const isOffsetParentAnElement = isHTMLElement(offsetParent);
20158
20145
  const documentElement = getDocumentElement(offsetParent);
20159
- const rect = getBoundingClientRect(element, true, strategy === "fixed", offsetParent);
20146
+ const isFixed = strategy === "fixed";
20147
+ const rect = getBoundingClientRect(element, true, isFixed, offsetParent);
20160
20148
  let scroll = {
20161
20149
  scrollLeft: 0,
20162
20150
  scrollTop: 0
20163
20151
  };
20164
- const offsets = {
20165
- x: 0,
20166
- y: 0
20167
- };
20168
- if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== "fixed") {
20152
+ const offsets = createEmptyCoords(0);
20153
+ if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
20169
20154
  if (getNodeName(offsetParent) !== "body" || isOverflowElement(documentElement)) {
20170
20155
  scroll = getNodeScroll(offsetParent);
20171
20156
  }
20172
20157
  if (isHTMLElement(offsetParent)) {
20173
- const offsetRect = getBoundingClientRect(offsetParent, true);
20158
+ const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
20174
20159
  offsets.x = offsetRect.x + offsetParent.clientLeft;
20175
20160
  offsets.y = offsetRect.y + offsetParent.clientTop;
20176
20161
  } else if (documentElement) {
@@ -20212,34 +20197,92 @@ const platform = {
20212
20197
  getClientRects: (element) => Array.from(element.getClientRects()),
20213
20198
  isRTL: (element) => getComputedStyle$1(element).direction === "rtl"
20214
20199
  };
20200
+ function observeMove(element, onMove) {
20201
+ let io = null;
20202
+ let timeoutId;
20203
+ const root2 = getDocumentElement(element);
20204
+ function cleanup() {
20205
+ clearTimeout(timeoutId);
20206
+ io && io.disconnect();
20207
+ io = null;
20208
+ }
20209
+ function refresh(skip, threshold) {
20210
+ if (skip === void 0) {
20211
+ skip = false;
20212
+ }
20213
+ if (threshold === void 0) {
20214
+ threshold = 1;
20215
+ }
20216
+ cleanup();
20217
+ const {
20218
+ left,
20219
+ top,
20220
+ width,
20221
+ height
20222
+ } = element.getBoundingClientRect();
20223
+ if (!skip) {
20224
+ onMove();
20225
+ }
20226
+ if (!width || !height) {
20227
+ return;
20228
+ }
20229
+ const insetTop = floor(top);
20230
+ const insetRight = floor(root2.clientWidth - (left + width));
20231
+ const insetBottom = floor(root2.clientHeight - (top + height));
20232
+ const insetLeft = floor(left);
20233
+ const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px";
20234
+ let isFirstUpdate = true;
20235
+ io = new IntersectionObserver((entries) => {
20236
+ const ratio = entries[0].intersectionRatio;
20237
+ if (ratio !== threshold) {
20238
+ if (!isFirstUpdate) {
20239
+ return refresh();
20240
+ }
20241
+ if (!ratio) {
20242
+ timeoutId = setTimeout(() => {
20243
+ refresh(false, 1e-7);
20244
+ }, 100);
20245
+ } else {
20246
+ refresh(false, ratio);
20247
+ }
20248
+ }
20249
+ isFirstUpdate = false;
20250
+ }, {
20251
+ rootMargin,
20252
+ threshold: max(0, min(1, threshold)) || 1
20253
+ });
20254
+ io.observe(element);
20255
+ }
20256
+ refresh(true);
20257
+ return cleanup;
20258
+ }
20215
20259
  function autoUpdate(reference, floating, update2, options) {
20216
20260
  if (options === void 0) {
20217
20261
  options = {};
20218
20262
  }
20219
20263
  const {
20220
- ancestorScroll: _ancestorScroll = true,
20264
+ ancestorScroll = true,
20221
20265
  ancestorResize = true,
20222
20266
  elementResize = true,
20267
+ layoutShift = typeof IntersectionObserver === "function",
20223
20268
  animationFrame = false
20224
20269
  } = options;
20225
- const ancestorScroll = _ancestorScroll && !animationFrame;
20226
- const ancestors = ancestorScroll || ancestorResize ? [...isElement(reference) ? getOverflowAncestors(reference) : reference.contextElement ? getOverflowAncestors(reference.contextElement) : [], ...getOverflowAncestors(floating)] : [];
20270
+ const referenceEl = unwrapElement(reference);
20271
+ const ancestors = ancestorScroll || ancestorResize ? [...referenceEl ? getOverflowAncestors(referenceEl) : [], ...getOverflowAncestors(floating)] : [];
20227
20272
  ancestors.forEach((ancestor) => {
20228
20273
  ancestorScroll && ancestor.addEventListener("scroll", update2, {
20229
20274
  passive: true
20230
20275
  });
20231
20276
  ancestorResize && ancestor.addEventListener("resize", update2);
20232
20277
  });
20233
- let observer = null;
20278
+ const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update2) : null;
20279
+ let resizeObserver = null;
20234
20280
  if (elementResize) {
20235
- observer = new ResizeObserver(() => {
20236
- update2();
20237
- });
20238
- isElement(reference) && !animationFrame && observer.observe(reference);
20239
- if (!isElement(reference) && reference.contextElement && !animationFrame) {
20240
- observer.observe(reference.contextElement);
20281
+ resizeObserver = new ResizeObserver(update2);
20282
+ if (referenceEl && !animationFrame) {
20283
+ resizeObserver.observe(referenceEl);
20241
20284
  }
20242
- observer.observe(floating);
20285
+ resizeObserver.observe(floating);
20243
20286
  }
20244
20287
  let frameId;
20245
20288
  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;
@@ -20256,13 +20299,13 @@ function autoUpdate(reference, floating, update2, options) {
20256
20299
  }
20257
20300
  update2();
20258
20301
  return () => {
20259
- var _observer;
20260
20302
  ancestors.forEach((ancestor) => {
20261
20303
  ancestorScroll && ancestor.removeEventListener("scroll", update2);
20262
20304
  ancestorResize && ancestor.removeEventListener("resize", update2);
20263
20305
  });
20264
- (_observer = observer) == null ? void 0 : _observer.disconnect();
20265
- observer = null;
20306
+ cleanupIo && cleanupIo();
20307
+ resizeObserver && resizeObserver.disconnect();
20308
+ resizeObserver = null;
20266
20309
  if (animationFrame) {
20267
20310
  cancelAnimationFrame(frameId);
20268
20311
  }
@@ -20360,13 +20403,11 @@ const Popover$1 = forwardRef((p, ref) => {
20360
20403
  defaultValue: props.defaultVisible,
20361
20404
  onChange: props.onVisibleChange
20362
20405
  });
20363
- useImperativeHandle(ref, () => {
20364
- return {
20365
- show: () => setVisible(true),
20366
- hide: () => setVisible(false),
20367
- visible
20368
- };
20369
- }, [visible]);
20406
+ useImperativeHandle(ref, () => ({
20407
+ show: () => setVisible(true),
20408
+ hide: () => setVisible(false),
20409
+ visible
20410
+ }), [visible]);
20370
20411
  const targetRef = useRef(null);
20371
20412
  const floatingRef = useRef(null);
20372
20413
  const arrowRef = useRef(null);
@@ -20812,7 +20853,7 @@ const FormSubscribe = (props) => {
20812
20853
  const update2 = useUpdate$1();
20813
20854
  const form = useContext(Context$1);
20814
20855
  const value = form.getFieldsValue(props.to);
20815
- const childNode = React__default.useMemo(() => props.children(value, form), [JSON.stringify(value)]);
20856
+ const childNode = React__default.useMemo(() => props.children(value, form), [JSON.stringify(value), props.children]);
20816
20857
  return React__default.createElement(React__default.Fragment, null, childNode, props.to.map((namePath) => React__default.createElement(Watcher, {
20817
20858
  key: namePath.toString(),
20818
20859
  form,
@@ -21426,9 +21467,7 @@ const ImageUploader$1 = (p) => {
21426
21467
  let files = [].slice.call(rawFiles);
21427
21468
  e2.target.value = "";
21428
21469
  if (props.beforeUpload) {
21429
- const postFiles = files.map((file) => {
21430
- return processFile(file, files);
21431
- });
21470
+ const postFiles = files.map((file) => processFile(file, files));
21432
21471
  yield Promise.all(postFiles).then((filesList) => {
21433
21472
  files = filesList.filter(Boolean);
21434
21473
  });
@@ -21902,7 +21941,10 @@ const Input$1 = forwardRef((p, ref) => {
21902
21941
  function checkValue() {
21903
21942
  let nextValue = value;
21904
21943
  if (props.type === "number") {
21905
- nextValue = nextValue && bound(parseFloat(nextValue), props.min, props.max).toString();
21944
+ const boundValue = nextValue && bound(parseFloat(nextValue), props.min, props.max).toString();
21945
+ if (Number(nextValue) !== Number(boundValue)) {
21946
+ nextValue = boundValue;
21947
+ }
21906
21948
  }
21907
21949
  if (nextValue !== value) {
21908
21950
  setValue2(nextValue);
@@ -22003,7 +22045,7 @@ const JumboTabs = (props) => {
22003
22045
  let firstActiveKey = null;
22004
22046
  const panes = [];
22005
22047
  traverseReactNode(props.children, (child, index2) => {
22006
- if (!React__default.isValidElement(child))
22048
+ if (!isValidElement(child))
22007
22049
  return;
22008
22050
  const key = child.key;
22009
22051
  if (typeof key !== "string")
@@ -22130,19 +22172,17 @@ const Modal = (p) => {
22130
22172
  direction: "vertical",
22131
22173
  block: true,
22132
22174
  className: classNames(cls("footer"), props.actions.length === 0 && cls("footer-empty"))
22133
- }, props.actions.map((action, index2) => {
22134
- return React__default.createElement(ModalActionButton, {
22135
- key: action.key,
22136
- action,
22137
- onAction: () => __awaiter(void 0, void 0, void 0, function* () {
22138
- var _a, _b, _c;
22139
- 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)]);
22140
- if (props.closeOnAction) {
22141
- (_c = props.onClose) === null || _c === void 0 ? void 0 : _c.call(props);
22142
- }
22143
- })
22144
- });
22145
- })));
22175
+ }, props.actions.map((action, index2) => React__default.createElement(ModalActionButton, {
22176
+ key: action.key,
22177
+ action,
22178
+ onAction: () => __awaiter(void 0, void 0, void 0, function* () {
22179
+ var _a, _b, _c;
22180
+ 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)]);
22181
+ if (props.closeOnAction) {
22182
+ (_c = props.onClose) === null || _c === void 0 ? void 0 : _c.call(props);
22183
+ }
22184
+ })
22185
+ }))));
22146
22186
  return React__default.createElement(CenterPopup, {
22147
22187
  className: classNames(cls(), props.className),
22148
22188
  style: props.style,
@@ -23014,6 +23054,7 @@ const Radio = (p) => {
23014
23054
  }, checked && React__default.createElement(CheckIcon, null));
23015
23055
  };
23016
23056
  return withNativeProps(props, React__default.createElement("label", {
23057
+ onClick: props.onClick,
23017
23058
  className: classNames(classPrefix$q, {
23018
23059
  [`${classPrefix$q}-checked`]: checked,
23019
23060
  [`${classPrefix$q}-disabled`]: disabled,
@@ -23143,9 +23184,9 @@ const Result$1 = (p) => {
23143
23184
  className: `${classPrefix$o}-icon`
23144
23185
  }, resultIcon), React__default.createElement("div", {
23145
23186
  className: `${classPrefix$o}-title`
23146
- }, title), description ? React__default.createElement("div", {
23187
+ }, title), !!description && React__default.createElement("div", {
23147
23188
  className: `${classPrefix$o}-description`
23148
- }, description) : null));
23189
+ }, description)));
23149
23190
  };
23150
23191
  const Result = Result$1;
23151
23192
  const resultPage = "";
@@ -23468,7 +23509,7 @@ const SideBar = (props) => {
23468
23509
  let firstActiveKey = null;
23469
23510
  const items = [];
23470
23511
  traverseReactNode(props.children, (child, index2) => {
23471
- if (!React__default.isValidElement(child))
23512
+ if (!isValidElement(child))
23472
23513
  return;
23473
23514
  const key = child.key;
23474
23515
  if (typeof key !== "string")
@@ -24493,11 +24534,7 @@ function InnerStepper(p, ref) {
24493
24534
  const formatValue = (value2) => {
24494
24535
  if (value2 === null)
24495
24536
  return "";
24496
- if (formatter) {
24497
- return formatter(value2);
24498
- } else {
24499
- return fixedValue(value2);
24500
- }
24537
+ return formatter ? formatter(value2) : fixedValue(value2);
24501
24538
  };
24502
24539
  const [mergedValue, setMergedValue] = _default(defaultValue, {
24503
24540
  value,
@@ -25108,10 +25145,10 @@ const Swiper = forwardRef(staged_1((p, ref) => {
25108
25145
  var _a;
25109
25146
  const roundedIndex = Math.round(index2);
25110
25147
  const targetIndex = loop2 ? modulus(roundedIndex, count) : bound(roundedIndex, 0, count - 1);
25111
- setCurrent(targetIndex);
25112
25148
  if (targetIndex !== getCurrent()) {
25113
25149
  (_a = props.onIndexChange) === null || _a === void 0 ? void 0 : _a.call(props, targetIndex);
25114
25150
  }
25151
+ setCurrent(targetIndex);
25115
25152
  api.start({
25116
25153
  position: (loop2 ? roundedIndex : boundIndex(roundedIndex)) * 100,
25117
25154
  immediate
@@ -25334,7 +25371,7 @@ const TabBar = (p) => {
25334
25371
  let firstActiveKey = null;
25335
25372
  const items = [];
25336
25373
  traverseReactNode(props.children, (child, index2) => {
25337
- if (!React__default.isValidElement(child))
25374
+ if (!isValidElement(child))
25338
25375
  return;
25339
25376
  const key = child.key;
25340
25377
  if (typeof key !== "string")
@@ -25986,13 +26023,9 @@ const Multiple = (p) => {
25986
26023
  }
25987
26024
  const isLeaf = deep === index2 + 1;
25988
26025
  if (isLeaf) {
25989
- return React__default.createElement(React__default.Fragment, null, renderSelectAllLeafItem(columnOptions, index2), columnOptions.map((option) => {
25990
- return renderLeafItem(option);
25991
- }));
26026
+ return React__default.createElement(React__default.Fragment, null, renderSelectAllLeafItem(columnOptions, index2), columnOptions.map((option) => renderLeafItem(option)));
25992
26027
  }
25993
- return React__default.createElement(React__default.Fragment, null, renderSelectAllItem(columnOptions, index2), columnOptions.map((option) => {
25994
- return renderItem(option);
25995
- }));
26028
+ return React__default.createElement(React__default.Fragment, null, renderSelectAllItem(columnOptions, index2), columnOptions.map((option) => renderItem(option)));
25996
26029
  };
25997
26030
  const renderColumns = () => {
25998
26031
  var _a;
@@ -26126,7 +26159,7 @@ const VirtualInput$1 = forwardRef((p, ref) => {
26126
26159
  },
26127
26160
  role: "button",
26128
26161
  "aria-label": locale.Input.clear
26129
- }, React__default.createElement(CloseCircleFill, null)), !value && React__default.createElement("div", {
26162
+ }, React__default.createElement(CloseCircleFill, null)), [void 0, null, ""].includes(value) && React__default.createElement("div", {
26130
26163
  className: `${classPrefix$2}-placeholder`
26131
26164
  }, props.placeholder), keyboardElement));
26132
26165
  });
@@ -26244,31 +26277,27 @@ const Footer$1 = (p) => {
26244
26277
  className: classNames(classPrefix)
26245
26278
  }, label && React__default.createElement("div", {
26246
26279
  className: `${classPrefix}-label`
26247
- }, React__default.createElement(Divider, null, label)), links && links.length > 0 && React__default.createElement("div", {
26280
+ }, React__default.createElement(Divider, null, label)), !!(links === null || links === void 0 ? void 0 : links.length) && React__default.createElement("div", {
26248
26281
  className: `${classPrefix}-links`
26249
- }, links.map((link, index2) => {
26250
- return React__default.createElement(React__default.Fragment, {
26251
- key: index2
26252
- }, React__default.createElement("a", {
26253
- href: link.href,
26254
- rel: "noopener noreferrer",
26255
- onClick: (event) => clickLinkItem(link, index2, event)
26256
- }, link.text), index2 !== links.length - 1 && React__default.createElement(Divider, {
26257
- direction: "vertical"
26258
- }));
26259
- })), content && React__default.createElement("div", {
26282
+ }, links.map((link, index2) => React__default.createElement(React__default.Fragment, {
26283
+ key: index2
26284
+ }, React__default.createElement("a", {
26285
+ href: link.href,
26286
+ rel: "noopener noreferrer",
26287
+ onClick: (event) => clickLinkItem(link, index2, event)
26288
+ }, link.text), index2 !== links.length - 1 && React__default.createElement(Divider, {
26289
+ direction: "vertical"
26290
+ })))), content && React__default.createElement("div", {
26260
26291
  className: `${classPrefix}-content`
26261
26292
  }, content), chips && chips.length > 0 && React__default.createElement("div", {
26262
26293
  className: `${classPrefix}-chips`
26263
- }, chips.map((chip, index2) => {
26264
- return React__default.createElement("div", {
26265
- key: index2,
26266
- onClick: () => clickChipItem(chip, index2),
26267
- className: classNames(`${classPrefix}-chip`, {
26268
- [`${classPrefix}-chip-link`]: chip.type === "link"
26269
- })
26270
- }, chip.text);
26271
- }))));
26294
+ }, chips.map((chip, index2) => React__default.createElement("div", {
26295
+ key: index2,
26296
+ onClick: () => clickChipItem(chip, index2),
26297
+ className: classNames(`${classPrefix}-chip`, {
26298
+ [`${classPrefix}-chip-link`]: chip.type === "link"
26299
+ })
26300
+ }, chip.text)))));
26272
26301
  };
26273
26302
  const Footer = Footer$1;
26274
26303
  export {