@nutui/nutui-react-taro 2.3.6 → 2.3.7

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 (105) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/esm/Address/style/style.css +1 -1
  3. package/dist/esm/Address.js +3 -3
  4. package/dist/esm/Audio.js +2 -2
  5. package/dist/esm/AvatarCropper.js +2 -2
  6. package/dist/esm/Button.js +1 -1
  7. package/dist/esm/Cascader/style/style.css +1 -1
  8. package/dist/esm/Cascader.js +2 -2
  9. package/dist/esm/Checkbox.js +1 -1
  10. package/dist/esm/CheckboxGroup.js +1 -1
  11. package/dist/esm/CircleProgress/style/style.css +1 -1
  12. package/dist/esm/Dialog/style/style.css +1 -1
  13. package/dist/esm/Dialog.js +2 -2
  14. package/dist/esm/Empty.js +2 -2
  15. package/dist/esm/ImagePreview/style/style.css +1 -1
  16. package/dist/esm/ImagePreview.js +2 -2
  17. package/dist/esm/NumberKeyboard.js +1 -1
  18. package/dist/esm/Popover/style/style.css +1 -1
  19. package/dist/esm/Table/style/style.css +1 -1
  20. package/dist/esm/Table.js +1 -1
  21. package/dist/esm/Tabs/style/style.css +1 -1
  22. package/dist/esm/Tabs.js +1 -1
  23. package/dist/esm/Tour/style/style.css +1 -1
  24. package/dist/esm/Uploader/style/style.css +1 -1
  25. package/dist/esm/Uploader.js +2 -2
  26. package/dist/esm/{address.taro-sTqrtuxC.js → address.taro-TWHlPzXv.js} +1 -1
  27. package/dist/esm/{audio.taro-ixcoTq7M.js → audio.taro-UpVxFvGk.js} +1 -1
  28. package/dist/esm/{avatarcropper.taro-OjudqSeT.js → avatarcropper.taro-_IENn5QL.js} +1 -1
  29. package/dist/esm/{button.taro-kZJrygfW.js → button.taro-3IIFy1M2.js} +7 -14
  30. package/dist/esm/{cascader.taro-DYMZD6ik.js → cascader.taro-QW13vwKb.js} +1 -1
  31. package/dist/esm/{checkbox.taro-doAmyAh6.js → checkbox.taro-xMxWdpyI.js} +14 -7
  32. package/dist/esm/{dialog.taro-UQN2mJZR.js → dialog.taro-z588FBZJ.js} +25 -4
  33. package/dist/esm/{empty.taro-vxcxYcB5.js → empty.taro-98NzV-31.js} +1 -1
  34. package/dist/esm/{imagepreview.taro-_dileEvw.js → imagepreview.taro-qDST6Lh4.js} +6 -2
  35. package/dist/esm/{numberkeyboard.taro-gJhSoXsl.js → numberkeyboard.taro-CyW0s9bI.js} +3 -2
  36. package/dist/esm/nutui-react.es.js +13 -13
  37. package/dist/esm/{table.taro-Zyemar_o.js → table.taro-d172EUh9.js} +1 -1
  38. package/dist/esm/{tabs.taro-uXbRqGVo.js → tabs.taro-aR3XROu9.js} +4 -4
  39. package/dist/esm/types/src/packages/checkbox/checkbox.d.ts +7 -6
  40. package/dist/esm/types/src/packages/checkbox/checkbox.taro.d.ts +7 -6
  41. package/dist/esm/types/src/packages/checkboxgroup/checkboxgroup.d.ts +3 -2
  42. package/dist/esm/types/src/packages/checkboxgroup/checkboxgroup.taro.d.ts +3 -2
  43. package/dist/esm/types/src/packages/checkboxgroup/context.d.ts +3 -1
  44. package/dist/esm/types/src/packages/checkboxgroup/types.d.ts +3 -0
  45. package/dist/esm/types/src/packages/configprovider/types.d.ts +1 -1
  46. package/dist/esm/types/src/packages/dialog/config.d.ts +9 -6
  47. package/dist/esm/types/src/packages/dialog/confirm.d.ts +3 -3
  48. package/dist/esm/types/src/packages/dialog/content.d.ts +1 -0
  49. package/dist/esm/types/src/packages/dialog/content.taro.d.ts +1 -0
  50. package/dist/esm/types/src/packages/dialog/dialog.d.ts +2 -2
  51. package/dist/esm/types/src/packages/dialog/dialog.taro.d.ts +2 -2
  52. package/dist/esm/types/src/packages/dialog/dialogwrap.d.ts +1 -0
  53. package/dist/esm/types/src/packages/dialog/index.d.ts +1 -0
  54. package/dist/esm/types/src/packages/imagepreview/imagepreview.d.ts +4 -1
  55. package/dist/esm/types/src/packages/imagepreview/imagepreview.taro.d.ts +4 -1
  56. package/dist/esm/types/src/packages/imagepreview/index.d.ts +1 -1
  57. package/dist/esm/types/src/packages/imagepreview/index.taro.d.ts +1 -1
  58. package/dist/esm/types/src/packages/numberkeyboard/numberkeyboard.d.ts +2 -1
  59. package/dist/esm/types/src/packages/numberkeyboard/numberkeyboard.taro.d.ts +2 -1
  60. package/dist/esm/types/src/utils/get-scroll-parent.d.ts +1 -0
  61. package/dist/esm/{uploader.taro-SAahCKRj.js → uploader.taro-a-U18v5C.js} +2 -2
  62. package/dist/locales/base.js +1 -1
  63. package/dist/locales/en-US.js +1 -1
  64. package/dist/locales/id-ID.js +1 -1
  65. package/dist/locales/tr-TR.js +1 -1
  66. package/dist/locales/zh-CN.js +1 -1
  67. package/dist/locales/zh-TW.js +1 -1
  68. package/dist/locales/zh-UG.js +1 -1
  69. package/dist/nutui.react.es.js +91 -23
  70. package/dist/nutui.react.umd.js +91 -23
  71. package/dist/packages/circleprogress/circleprogress.scss +3 -1
  72. package/dist/packages/dialog/dialog.scss +25 -0
  73. package/dist/packages/imagepreview/imagepreview.scss +24 -0
  74. package/dist/packages/popover/popover.scss +1 -1
  75. package/dist/packages/table/table.scss +12 -1
  76. package/dist/packages/tabs/tabs.scss +16 -1
  77. package/dist/packages/uploader/uploader.scss +4 -6
  78. package/dist/style.css +1 -1
  79. package/dist/style.mjs +1 -1
  80. package/dist/styles/variables-jmapp.scss +6 -0
  81. package/dist/styles/variables.scss +6 -0
  82. package/dist/types/packages/button/button.taro.d.ts +6 -2
  83. package/dist/types/packages/checkbox/checkbox.d.ts +7 -6
  84. package/dist/types/packages/checkbox/checkbox.taro.d.ts +7 -6
  85. package/dist/types/packages/checkboxgroup/checkboxgroup.d.ts +3 -2
  86. package/dist/types/packages/checkboxgroup/checkboxgroup.taro.d.ts +8 -3
  87. package/dist/types/packages/checkboxgroup/context.d.ts +3 -1
  88. package/dist/types/packages/checkboxgroup/types.d.ts +3 -0
  89. package/dist/types/packages/configprovider/types.d.ts +1 -1
  90. package/dist/types/packages/dialog/config.d.ts +9 -6
  91. package/dist/types/packages/dialog/confirm.d.ts +3 -3
  92. package/dist/types/packages/dialog/content.d.ts +1 -0
  93. package/dist/types/packages/dialog/content.taro.d.ts +1 -0
  94. package/dist/types/packages/dialog/dialog.d.ts +2 -2
  95. package/dist/types/packages/dialog/dialog.taro.d.ts +2 -2
  96. package/dist/types/packages/dialog/dialogwrap.d.ts +1 -0
  97. package/dist/types/packages/dialog/index.d.ts +1 -0
  98. package/dist/types/packages/imagepreview/imagepreview.d.ts +4 -1
  99. package/dist/types/packages/imagepreview/imagepreview.taro.d.ts +12 -1
  100. package/dist/types/packages/imagepreview/index.d.ts +1 -1
  101. package/dist/types/packages/imagepreview/index.taro.d.ts +1 -1
  102. package/dist/types/packages/numberkeyboard/numberkeyboard.d.ts +2 -1
  103. package/dist/types/packages/numberkeyboard/numberkeyboard.taro.d.ts +7 -2
  104. package/dist/types/utils/get-scroll-parent.d.ts +1 -0
  105. package/package.json +1 -1
@@ -5,7 +5,7 @@ var __publicField = (obj, key, value) => {
5
5
  return value;
6
6
  };
7
7
  /*!
8
- * @nutui/nutui-react-taro v2.3.6 Fri Jan 12 2024 15:51:36 GMT+0800 (China Standard Time)
8
+ * @nutui/nutui-react-taro v2.3.7 Fri Jan 19 2024 16:35:51 GMT+0800 (China Standard Time)
9
9
  * (c) 2023 @jdf2e.
10
10
  * Released under the MIT License.
11
11
  */
@@ -5309,7 +5309,12 @@ const Tabs = (props) => {
5309
5309
  activeType === "line" && /* @__PURE__ */ React__default.createElement(
5310
5310
  View,
5311
5311
  {
5312
- className: `${classPrefix$k}-titles-item-line`,
5312
+ className: classNames(
5313
+ `${classPrefix$k}-titles-item-line`,
5314
+ {
5315
+ [`${classPrefix$k}-titles-item-line-${direction}`]: true
5316
+ }
5317
+ ),
5313
5318
  style: tabsActiveStyle
5314
5319
  }
5315
5320
  ),
@@ -5325,9 +5330,7 @@ const Tabs = (props) => {
5325
5330
  View,
5326
5331
  {
5327
5332
  className: classNames(
5328
- {
5329
- ellipsis: true
5330
- },
5333
+ `${classPrefix$k}-ellipsis`,
5331
5334
  `${classPrefix$k}-titles-item-text`
5332
5335
  )
5333
5336
  },
@@ -7491,28 +7494,33 @@ const CheckboxGroupContext = createContext(null);
7491
7494
  const Context$1 = CheckboxGroupContext;
7492
7495
  const defaultProps$11 = {
7493
7496
  max: void 0,
7497
+ min: void 0,
7494
7498
  labelPosition: "right",
7495
7499
  direction: "vertical",
7496
7500
  onChange: (value) => {
7497
7501
  },
7502
+ onLimit: (type4) => {
7503
+ },
7498
7504
  options: []
7499
7505
  };
7500
7506
  const classPrefix$j = "nut-checkboxgroup";
7501
7507
  const CheckboxGroup = React__default.forwardRef(
7502
7508
  (props, ref) => {
7503
- const { children } = { ...defaultProps$11, ...props };
7504
7509
  const {
7510
+ children,
7505
7511
  className,
7506
7512
  disabled,
7507
7513
  onChange,
7508
7514
  value,
7509
7515
  defaultValue,
7510
7516
  max,
7517
+ min,
7518
+ onLimit,
7511
7519
  labelPosition,
7512
7520
  direction,
7513
7521
  options,
7514
7522
  ...rest
7515
- } = props;
7523
+ } = { ...defaultProps$11, ...props };
7516
7524
  useImperativeHandle(ref, () => ({
7517
7525
  toggle(state) {
7518
7526
  if (state === false) {
@@ -7557,7 +7565,7 @@ const CheckboxGroup = React__default.forwardRef(
7557
7565
  }
7558
7566
  );
7559
7567
  });
7560
- }, [options, max]);
7568
+ }, [options, max, min]);
7561
7569
  return /* @__PURE__ */ React__default.createElement(
7562
7570
  Context$1.Provider,
7563
7571
  {
@@ -7565,13 +7573,22 @@ const CheckboxGroup = React__default.forwardRef(
7565
7573
  labelPosition: labelPosition || "right",
7566
7574
  disabled,
7567
7575
  max,
7576
+ onLimit,
7568
7577
  value: _value,
7569
7578
  check: (value2) => {
7570
7579
  const combined = [..._value, value2];
7580
+ if (max !== void 0) {
7581
+ if (combined.length > max) {
7582
+ return onLimit == null ? void 0 : onLimit("max");
7583
+ }
7584
+ }
7571
7585
  setValue(combined);
7572
7586
  },
7573
7587
  uncheck: (value2) => {
7574
7588
  const reduced = _value.filter((item) => item !== value2);
7589
+ if (min !== void 0 && reduced.length < min) {
7590
+ return onLimit == null ? void 0 : onLimit("min");
7591
+ }
7575
7592
  setValue(reduced);
7576
7593
  }
7577
7594
  }
@@ -7707,10 +7724,6 @@ const Checkbox = (props) => {
7707
7724
  if (disabled)
7708
7725
  return;
7709
7726
  const latestChecked = !innerChecked;
7710
- if (ctx && ctx.max !== void 0) {
7711
- if (latestChecked && ctx.value.length >= ctx.max)
7712
- return;
7713
- }
7714
7727
  setChecked(latestChecked);
7715
7728
  };
7716
7729
  const renderButton = () => {
@@ -10939,6 +10952,7 @@ Menu.Item = MenuItem;
10939
10952
  const defaultProps$T = {
10940
10953
  ...ComponentDefaults,
10941
10954
  visible: false,
10955
+ rightActions: "",
10942
10956
  type: "default",
10943
10957
  custom: [],
10944
10958
  random: false,
@@ -10949,6 +10963,7 @@ const NumberKeyboard = (props) => {
10949
10963
  const { locale } = useConfig$1();
10950
10964
  const {
10951
10965
  title,
10966
+ rightActions,
10952
10967
  confirmText,
10953
10968
  visible,
10954
10969
  type: type4,
@@ -11058,7 +11073,7 @@ const NumberKeyboard = (props) => {
11058
11073
  className: `${classPrefix2}-header-close`,
11059
11074
  onClick: onConfirm
11060
11075
  },
11061
- locale.done
11076
+ rightActions || locale.done
11062
11077
  )), /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-body` }, /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-body-keys` }, keysList == null ? void 0 : keysList.map((item) => {
11063
11078
  return /* @__PURE__ */ React__default.createElement(NumberKeyboardKey, { key: item.id, item });
11064
11079
  })), type4 === "rightColumn" && /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-sidebar` }, /* @__PURE__ */ React__default.createElement(
@@ -12556,7 +12571,7 @@ const Preview = ({
12556
12571
  className: `nut-uploader-preview ${previewType}`,
12557
12572
  key: item.uid
12558
12573
  },
12559
- previewType === "picture" && deletable && /* @__PURE__ */ React__default.createElement(
12574
+ previewType === "picture" && !children && deletable && /* @__PURE__ */ React__default.createElement(
12560
12575
  j$3,
12561
12576
  {
12562
12577
  color: "rgba(0,0,0,0.6)",
@@ -13042,7 +13057,16 @@ const ActionSheet = (props) => {
13042
13057
  ActionSheet.defaultProps = defaultProps$H;
13043
13058
  ActionSheet.displayName = "NutActionSheet";
13044
13059
  const Content = (props) => {
13045
- const { visible, title, header, footer, footerDirection, onClick, children } = props;
13060
+ const {
13061
+ visible,
13062
+ title,
13063
+ header,
13064
+ footer,
13065
+ close: close2,
13066
+ footerDirection,
13067
+ onClick,
13068
+ children
13069
+ } = props;
13046
13070
  const classPrefix2 = "nut-dialog";
13047
13071
  const renderHeader = () => {
13048
13072
  return title ? /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-header` }, title) : null;
@@ -13068,6 +13092,7 @@ const Content = (props) => {
13068
13092
  style: props.style,
13069
13093
  onClick: (e2) => handleClick(e2)
13070
13094
  },
13095
+ close2,
13071
13096
  header,
13072
13097
  /* @__PURE__ */ React__default.createElement(
13073
13098
  "div",
@@ -13136,6 +13161,8 @@ const defaultProps$G = {
13136
13161
  disableConfirmButton: false,
13137
13162
  footerDirection: "horizontal",
13138
13163
  lockScroll: true,
13164
+ closeIconPosition: "top-right",
13165
+ closeIcon: false,
13139
13166
  beforeCancel: () => true,
13140
13167
  beforeClose: () => true,
13141
13168
  onOverlayClick: () => true
@@ -13164,6 +13191,8 @@ const BaseDialog = (props) => {
13164
13191
  confirmText,
13165
13192
  cancelText,
13166
13193
  overlay,
13194
+ closeIconPosition,
13195
+ closeIcon,
13167
13196
  onClose,
13168
13197
  onCancel,
13169
13198
  onConfirm,
@@ -13221,6 +13250,23 @@ const BaseDialog = (props) => {
13221
13250
  confirmText || locale.confirm
13222
13251
  ));
13223
13252
  };
13253
+ const renderCloseIcon = () => {
13254
+ if (!closeIcon)
13255
+ return null;
13256
+ const handleCancel = () => {
13257
+ if (!(beforeCancel == null ? void 0 : beforeCancel()))
13258
+ return;
13259
+ if (!(beforeClose == null ? void 0 : beforeClose()))
13260
+ return;
13261
+ onClose == null ? void 0 : onClose();
13262
+ onCancel == null ? void 0 : onCancel();
13263
+ };
13264
+ const closeClasses = classNames({
13265
+ [`${classPrefix2}-close`]: true,
13266
+ [`${classPrefix2}-close-${closeIconPosition}`]: true
13267
+ });
13268
+ return /* @__PURE__ */ React__default.createElement(View, { className: closeClasses, onClick: handleCancel }, React__default.isValidElement(closeIcon) ? closeIcon : /* @__PURE__ */ React__default.createElement(A$1, null));
13269
+ };
13224
13270
  const onHandleClickOverlay = (e2) => {
13225
13271
  if (closeOnOverlayClick && visible && e2.target === e2.currentTarget) {
13226
13272
  const closed = onOverlayClick && onOverlayClick();
@@ -13260,6 +13306,7 @@ const BaseDialog = (props) => {
13260
13306
  style,
13261
13307
  title,
13262
13308
  header,
13309
+ close: renderCloseIcon(),
13263
13310
  footer: renderFooter(),
13264
13311
  footerDirection,
13265
13312
  visible
@@ -16567,6 +16614,8 @@ const defaultProps$g = {
16567
16614
  closeOnContentClick: false,
16568
16615
  indicator: false,
16569
16616
  indicatorColor: "#fff",
16617
+ closeIcon: false,
16618
+ closeIconPosition: "top-right",
16570
16619
  showMenuByLongpress: false,
16571
16620
  onChange: (value) => {
16572
16621
  },
@@ -16585,6 +16634,8 @@ const ImagePreview = (props) => {
16585
16634
  indicator,
16586
16635
  autoPlay,
16587
16636
  closeOnContentClick,
16637
+ closeIcon,
16638
+ closeIconPosition,
16588
16639
  showMenuByLongpress,
16589
16640
  onClose
16590
16641
  } = props;
@@ -16800,7 +16851,15 @@ const ImagePreview = (props) => {
16800
16851
  )
16801
16852
  )
16802
16853
  ),
16803
- /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-index` }, active, "/", (images ? images.length : 0) + (videos ? videos.length : 0))
16854
+ /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-index` }, active, "/", (images ? images.length : 0) + (videos ? videos.length : 0)),
16855
+ closeIcon !== false ? /* @__PURE__ */ React__default.createElement(
16856
+ "div",
16857
+ {
16858
+ className: `${classPrefix2}-close ${closeIconPosition}`,
16859
+ onClick: onCloseInner
16860
+ },
16861
+ closeIcon === true ? /* @__PURE__ */ React__default.createElement(A$1, null) : closeIcon
16862
+ ) : null
16804
16863
  );
16805
16864
  };
16806
16865
  ImagePreview.defaultProps = defaultProps$g;
@@ -17297,16 +17356,25 @@ const Table = (props) => {
17297
17356
  return /* @__PURE__ */ React__default.createElement("div", { className: bodyClassPrefix, key: index }, renderBodyTds(item, index));
17298
17357
  });
17299
17358
  };
17300
- return /* @__PURE__ */ React__default.createElement("div", { className: cls, ...rest }, /* @__PURE__ */ React__default.createElement("div", { className: classNames(`${classPrefix2}-wrapper`), style }, /* @__PURE__ */ React__default.createElement(
17359
+ return /* @__PURE__ */ React__default.createElement("div", { className: cls, ...rest }, /* @__PURE__ */ React__default.createElement(
17301
17360
  "div",
17302
17361
  {
17303
- className: classNames(`${classPrefix2}-main`, {
17304
- [`${classPrefix2}-main-striped`]: striped
17305
- })
17362
+ className: classNames(
17363
+ `${classPrefix2}-wrapper ${isSticky ? `${classPrefix2}-wrapper-sticky` : ""}`
17364
+ ),
17365
+ style
17306
17366
  },
17307
- showHeader && /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-main-head` }, /* @__PURE__ */ React__default.createElement("div", { className: headerClassPrefix }, renderHeadCells())),
17308
- /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-main-body` }, renderBodyTrs())
17309
- )), isSticky ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(
17367
+ /* @__PURE__ */ React__default.createElement(
17368
+ "div",
17369
+ {
17370
+ className: classNames(`${classPrefix2}-main`, {
17371
+ [`${classPrefix2}-main-striped`]: striped
17372
+ })
17373
+ },
17374
+ showHeader && /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-main-head` }, /* @__PURE__ */ React__default.createElement("div", { className: headerClassPrefix }, renderHeadCells())),
17375
+ /* @__PURE__ */ React__default.createElement("div", { className: `${classPrefix2}-main-body` }, renderBodyTrs())
17376
+ )
17377
+ ), isSticky ? /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement(
17310
17378
  "div",
17311
17379
  {
17312
17380
  className: `${classPrefix2}-sticky-left`,
@@ -8,7 +8,7 @@ var __publicField = (obj, key, value) => {
8
8
  return value;
9
9
  };
10
10
  /*!
11
- * @nutui/nutui-react-taro v2.3.6 Fri Jan 12 2024 15:51:36 GMT+0800 (China Standard Time)
11
+ * @nutui/nutui-react-taro v2.3.7 Fri Jan 19 2024 16:35:51 GMT+0800 (China Standard Time)
12
12
  * (c) 2023 @jdf2e.
13
13
  * Released under the MIT License.
14
14
  */
@@ -5325,7 +5325,12 @@ var __publicField = (obj, key, value) => {
5325
5325
  activeType === "line" && /* @__PURE__ */ React.createElement(
5326
5326
  components.View,
5327
5327
  {
5328
- className: `${classPrefix$k}-titles-item-line`,
5328
+ className: classNames(
5329
+ `${classPrefix$k}-titles-item-line`,
5330
+ {
5331
+ [`${classPrefix$k}-titles-item-line-${direction}`]: true
5332
+ }
5333
+ ),
5329
5334
  style: tabsActiveStyle
5330
5335
  }
5331
5336
  ),
@@ -5341,9 +5346,7 @@ var __publicField = (obj, key, value) => {
5341
5346
  components.View,
5342
5347
  {
5343
5348
  className: classNames(
5344
- {
5345
- ellipsis: true
5346
- },
5349
+ `${classPrefix$k}-ellipsis`,
5347
5350
  `${classPrefix$k}-titles-item-text`
5348
5351
  )
5349
5352
  },
@@ -7507,28 +7510,33 @@ var __publicField = (obj, key, value) => {
7507
7510
  const Context$1 = CheckboxGroupContext;
7508
7511
  const defaultProps$11 = {
7509
7512
  max: void 0,
7513
+ min: void 0,
7510
7514
  labelPosition: "right",
7511
7515
  direction: "vertical",
7512
7516
  onChange: (value) => {
7513
7517
  },
7518
+ onLimit: (type2) => {
7519
+ },
7514
7520
  options: []
7515
7521
  };
7516
7522
  const classPrefix$j = "nut-checkboxgroup";
7517
7523
  const CheckboxGroup = React.forwardRef(
7518
7524
  (props, ref) => {
7519
- const { children } = { ...defaultProps$11, ...props };
7520
7525
  const {
7526
+ children,
7521
7527
  className,
7522
7528
  disabled,
7523
7529
  onChange,
7524
7530
  value,
7525
7531
  defaultValue,
7526
7532
  max,
7533
+ min,
7534
+ onLimit,
7527
7535
  labelPosition,
7528
7536
  direction,
7529
7537
  options,
7530
7538
  ...rest
7531
- } = props;
7539
+ } = { ...defaultProps$11, ...props };
7532
7540
  React.useImperativeHandle(ref, () => ({
7533
7541
  toggle(state) {
7534
7542
  if (state === false) {
@@ -7573,7 +7581,7 @@ var __publicField = (obj, key, value) => {
7573
7581
  }
7574
7582
  );
7575
7583
  });
7576
- }, [options, max]);
7584
+ }, [options, max, min]);
7577
7585
  return /* @__PURE__ */ React.createElement(
7578
7586
  Context$1.Provider,
7579
7587
  {
@@ -7581,13 +7589,22 @@ var __publicField = (obj, key, value) => {
7581
7589
  labelPosition: labelPosition || "right",
7582
7590
  disabled,
7583
7591
  max,
7592
+ onLimit,
7584
7593
  value: _value,
7585
7594
  check: (value2) => {
7586
7595
  const combined = [..._value, value2];
7596
+ if (max !== void 0) {
7597
+ if (combined.length > max) {
7598
+ return onLimit == null ? void 0 : onLimit("max");
7599
+ }
7600
+ }
7587
7601
  setValue(combined);
7588
7602
  },
7589
7603
  uncheck: (value2) => {
7590
7604
  const reduced = _value.filter((item) => item !== value2);
7605
+ if (min !== void 0 && reduced.length < min) {
7606
+ return onLimit == null ? void 0 : onLimit("min");
7607
+ }
7591
7608
  setValue(reduced);
7592
7609
  }
7593
7610
  }
@@ -7723,10 +7740,6 @@ var __publicField = (obj, key, value) => {
7723
7740
  if (disabled)
7724
7741
  return;
7725
7742
  const latestChecked = !innerChecked;
7726
- if (ctx && ctx.max !== void 0) {
7727
- if (latestChecked && ctx.value.length >= ctx.max)
7728
- return;
7729
- }
7730
7743
  setChecked(latestChecked);
7731
7744
  };
7732
7745
  const renderButton = () => {
@@ -10955,6 +10968,7 @@ var __publicField = (obj, key, value) => {
10955
10968
  const defaultProps$T = {
10956
10969
  ...ComponentDefaults,
10957
10970
  visible: false,
10971
+ rightActions: "",
10958
10972
  type: "default",
10959
10973
  custom: [],
10960
10974
  random: false,
@@ -10965,6 +10979,7 @@ var __publicField = (obj, key, value) => {
10965
10979
  const { locale } = useConfig$1();
10966
10980
  const {
10967
10981
  title,
10982
+ rightActions,
10968
10983
  confirmText,
10969
10984
  visible,
10970
10985
  type: type2,
@@ -11074,7 +11089,7 @@ var __publicField = (obj, key, value) => {
11074
11089
  className: `${classPrefix2}-header-close`,
11075
11090
  onClick: onConfirm
11076
11091
  },
11077
- locale.done
11092
+ rightActions || locale.done
11078
11093
  )), /* @__PURE__ */ React.createElement("div", { className: `${classPrefix2}-body` }, /* @__PURE__ */ React.createElement("div", { className: `${classPrefix2}-body-keys` }, keysList == null ? void 0 : keysList.map((item) => {
11079
11094
  return /* @__PURE__ */ React.createElement(NumberKeyboardKey, { key: item.id, item });
11080
11095
  })), type2 === "rightColumn" && /* @__PURE__ */ React.createElement("div", { className: `${classPrefix2}-sidebar` }, /* @__PURE__ */ React.createElement(
@@ -12572,7 +12587,7 @@ var __publicField = (obj, key, value) => {
12572
12587
  className: `nut-uploader-preview ${previewType}`,
12573
12588
  key: item.uid
12574
12589
  },
12575
- previewType === "picture" && deletable && /* @__PURE__ */ React.createElement(
12590
+ previewType === "picture" && !children && deletable && /* @__PURE__ */ React.createElement(
12576
12591
  j$3,
12577
12592
  {
12578
12593
  color: "rgba(0,0,0,0.6)",
@@ -13058,7 +13073,16 @@ var __publicField = (obj, key, value) => {
13058
13073
  ActionSheet.defaultProps = defaultProps$H;
13059
13074
  ActionSheet.displayName = "NutActionSheet";
13060
13075
  const Content = (props) => {
13061
- const { visible, title, header, footer, footerDirection, onClick, children } = props;
13076
+ const {
13077
+ visible,
13078
+ title,
13079
+ header,
13080
+ footer,
13081
+ close: close2,
13082
+ footerDirection,
13083
+ onClick,
13084
+ children
13085
+ } = props;
13062
13086
  const classPrefix2 = "nut-dialog";
13063
13087
  const renderHeader = () => {
13064
13088
  return title ? /* @__PURE__ */ React.createElement("div", { className: `${classPrefix2}-header` }, title) : null;
@@ -13084,6 +13108,7 @@ var __publicField = (obj, key, value) => {
13084
13108
  style: props.style,
13085
13109
  onClick: (e2) => handleClick(e2)
13086
13110
  },
13111
+ close2,
13087
13112
  header,
13088
13113
  /* @__PURE__ */ React.createElement(
13089
13114
  "div",
@@ -13152,6 +13177,8 @@ var __publicField = (obj, key, value) => {
13152
13177
  disableConfirmButton: false,
13153
13178
  footerDirection: "horizontal",
13154
13179
  lockScroll: true,
13180
+ closeIconPosition: "top-right",
13181
+ closeIcon: false,
13155
13182
  beforeCancel: () => true,
13156
13183
  beforeClose: () => true,
13157
13184
  onOverlayClick: () => true
@@ -13180,6 +13207,8 @@ var __publicField = (obj, key, value) => {
13180
13207
  confirmText,
13181
13208
  cancelText,
13182
13209
  overlay,
13210
+ closeIconPosition,
13211
+ closeIcon,
13183
13212
  onClose,
13184
13213
  onCancel,
13185
13214
  onConfirm,
@@ -13237,6 +13266,23 @@ var __publicField = (obj, key, value) => {
13237
13266
  confirmText || locale.confirm
13238
13267
  ));
13239
13268
  };
13269
+ const renderCloseIcon = () => {
13270
+ if (!closeIcon)
13271
+ return null;
13272
+ const handleCancel = () => {
13273
+ if (!(beforeCancel == null ? void 0 : beforeCancel()))
13274
+ return;
13275
+ if (!(beforeClose == null ? void 0 : beforeClose()))
13276
+ return;
13277
+ onClose == null ? void 0 : onClose();
13278
+ onCancel == null ? void 0 : onCancel();
13279
+ };
13280
+ const closeClasses = classNames({
13281
+ [`${classPrefix2}-close`]: true,
13282
+ [`${classPrefix2}-close-${closeIconPosition}`]: true
13283
+ });
13284
+ return /* @__PURE__ */ React.createElement(components.View, { className: closeClasses, onClick: handleCancel }, React.isValidElement(closeIcon) ? closeIcon : /* @__PURE__ */ React.createElement(A$1, null));
13285
+ };
13240
13286
  const onHandleClickOverlay = (e2) => {
13241
13287
  if (closeOnOverlayClick && visible && e2.target === e2.currentTarget) {
13242
13288
  const closed = onOverlayClick && onOverlayClick();
@@ -13276,6 +13322,7 @@ var __publicField = (obj, key, value) => {
13276
13322
  style,
13277
13323
  title,
13278
13324
  header,
13325
+ close: renderCloseIcon(),
13279
13326
  footer: renderFooter(),
13280
13327
  footerDirection,
13281
13328
  visible
@@ -16583,6 +16630,8 @@ var __publicField = (obj, key, value) => {
16583
16630
  closeOnContentClick: false,
16584
16631
  indicator: false,
16585
16632
  indicatorColor: "#fff",
16633
+ closeIcon: false,
16634
+ closeIconPosition: "top-right",
16586
16635
  showMenuByLongpress: false,
16587
16636
  onChange: (value) => {
16588
16637
  },
@@ -16601,6 +16650,8 @@ var __publicField = (obj, key, value) => {
16601
16650
  indicator,
16602
16651
  autoPlay,
16603
16652
  closeOnContentClick,
16653
+ closeIcon,
16654
+ closeIconPosition,
16604
16655
  showMenuByLongpress,
16605
16656
  onClose
16606
16657
  } = props;
@@ -16816,7 +16867,15 @@ var __publicField = (obj, key, value) => {
16816
16867
  )
16817
16868
  )
16818
16869
  ),
16819
- /* @__PURE__ */ React.createElement("div", { className: `${classPrefix2}-index` }, active, "/", (images ? images.length : 0) + (videos ? videos.length : 0))
16870
+ /* @__PURE__ */ React.createElement("div", { className: `${classPrefix2}-index` }, active, "/", (images ? images.length : 0) + (videos ? videos.length : 0)),
16871
+ closeIcon !== false ? /* @__PURE__ */ React.createElement(
16872
+ "div",
16873
+ {
16874
+ className: `${classPrefix2}-close ${closeIconPosition}`,
16875
+ onClick: onCloseInner
16876
+ },
16877
+ closeIcon === true ? /* @__PURE__ */ React.createElement(A$1, null) : closeIcon
16878
+ ) : null
16820
16879
  );
16821
16880
  };
16822
16881
  ImagePreview.defaultProps = defaultProps$g;
@@ -17313,16 +17372,25 @@ var __publicField = (obj, key, value) => {
17313
17372
  return /* @__PURE__ */ React.createElement("div", { className: bodyClassPrefix, key: index }, renderBodyTds(item, index));
17314
17373
  });
17315
17374
  };
17316
- return /* @__PURE__ */ React.createElement("div", { className: cls, ...rest }, /* @__PURE__ */ React.createElement("div", { className: classNames(`${classPrefix2}-wrapper`), style }, /* @__PURE__ */ React.createElement(
17375
+ return /* @__PURE__ */ React.createElement("div", { className: cls, ...rest }, /* @__PURE__ */ React.createElement(
17317
17376
  "div",
17318
17377
  {
17319
- className: classNames(`${classPrefix2}-main`, {
17320
- [`${classPrefix2}-main-striped`]: striped
17321
- })
17378
+ className: classNames(
17379
+ `${classPrefix2}-wrapper ${isSticky ? `${classPrefix2}-wrapper-sticky` : ""}`
17380
+ ),
17381
+ style
17322
17382
  },
17323
- showHeader && /* @__PURE__ */ React.createElement("div", { className: `${classPrefix2}-main-head` }, /* @__PURE__ */ React.createElement("div", { className: headerClassPrefix }, renderHeadCells())),
17324
- /* @__PURE__ */ React.createElement("div", { className: `${classPrefix2}-main-body` }, renderBodyTrs())
17325
- )), isSticky ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
17383
+ /* @__PURE__ */ React.createElement(
17384
+ "div",
17385
+ {
17386
+ className: classNames(`${classPrefix2}-main`, {
17387
+ [`${classPrefix2}-main-striped`]: striped
17388
+ })
17389
+ },
17390
+ showHeader && /* @__PURE__ */ React.createElement("div", { className: `${classPrefix2}-main-head` }, /* @__PURE__ */ React.createElement("div", { className: headerClassPrefix }, renderHeadCells())),
17391
+ /* @__PURE__ */ React.createElement("div", { className: `${classPrefix2}-main-body` }, renderBodyTrs())
17392
+ )
17393
+ ), isSticky ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(
17326
17394
  "div",
17327
17395
  {
17328
17396
  className: `${classPrefix2}-sticky-left`,
@@ -3,7 +3,9 @@
3
3
 
4
4
  &-hover {
5
5
  stroke: $circleprogress-primary-color;
6
- transition: stroke-dasharray 0.6s ease 0s, stroke 0.6s ease 0s;
6
+ transition:
7
+ stroke-dasharray 0.2s ease-in-out 0s,
8
+ stroke 0.2s ease 0s;
7
9
  }
8
10
 
9
11
  &-path {
@@ -32,6 +32,31 @@
32
32
  animation-duration: 0.3s;
33
33
  }
34
34
 
35
+ &-close {
36
+ position: absolute !important;
37
+ z-index: 1;
38
+ cursor: pointer;
39
+ width: $dialog-close-width;
40
+ height: $dialog-close-height;
41
+ display: flex;
42
+ justify-content: center;
43
+ align-items: center;
44
+ top: $dialog-close-top;
45
+ color: $dialog-close-color;
46
+
47
+ &-top-right {
48
+ right: $dialog-close-right;
49
+ }
50
+
51
+ &-top-left {
52
+ left: $dialog-close-left;
53
+ }
54
+
55
+ &:active {
56
+ opacity: 0.7;
57
+ }
58
+ }
59
+
35
60
  &-header {
36
61
  display: block;
37
62
  text-align: center;
@@ -26,6 +26,30 @@
26
26
  }
27
27
  }
28
28
 
29
+ &-close {
30
+ position: fixed;
31
+ display: flex;
32
+ align-items: center;
33
+ justify-content: center;
34
+ z-index: 2002;
35
+ background: transparent;
36
+ color: $white;
37
+ &.top-right {
38
+ top: 50px;
39
+ right: 20px;
40
+ }
41
+ &.top-left {
42
+ top: 50px;
43
+ left: 20px;
44
+ }
45
+ &.bottom {
46
+ bottom: 50px;
47
+ left: 0;
48
+ right: 0;
49
+ text-align: center;
50
+ }
51
+ }
52
+
29
53
  &-pop {
30
54
  height: 100%;
31
55
  background: transparent !important;
@@ -96,7 +96,7 @@
96
96
  border-bottom: 1px solid $popover-divider-color;
97
97
 
98
98
  &:last-child {
99
- margin-bottom: 2px;
99
+ margin-bottom: 0px;
100
100
  border-bottom: none;
101
101
  }
102
102