@nutui/nutui-react 3.0.6 → 3.0.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 (104) hide show
  1. package/CHANGELOG.md +34 -15
  2. package/dist/cjs/packages/actionsheet/style/style.css +4 -4
  3. package/dist/cjs/packages/address/style/style.css +4 -4
  4. package/dist/cjs/packages/audio/style/style.css +4 -16
  5. package/dist/cjs/packages/button/style/button.scss +4 -20
  6. package/dist/cjs/packages/button/style/style.css +4 -16
  7. package/dist/cjs/packages/calendar/style/style.css +4 -4
  8. package/dist/cjs/packages/cascader/style/style.css +4 -4
  9. package/dist/cjs/packages/collapse/style/style.css +22 -7
  10. package/dist/cjs/packages/collapseitem/collapseitem.js +46 -44
  11. package/dist/cjs/packages/collapseitem/style/collapseitem.scss +22 -5
  12. package/dist/cjs/packages/collapseitem/style/style.css +22 -7
  13. package/dist/cjs/packages/configprovider/types.d.ts +1 -1
  14. package/dist/cjs/packages/datepicker/style/style.css +4 -4
  15. package/dist/cjs/packages/dialog/confirm.d.ts +2 -3
  16. package/dist/cjs/packages/dialog/confirm.js +4 -18
  17. package/dist/cjs/packages/dialog/content.d.ts +11 -3
  18. package/dist/cjs/packages/dialog/dialog.d.ts +1 -1
  19. package/dist/cjs/packages/dialog/dialog.js +98 -69
  20. package/dist/cjs/packages/dialog/index.d.ts +1 -1
  21. package/dist/cjs/packages/dialog/style/style.css +4 -16
  22. package/dist/cjs/packages/empty/style/style.css +4 -16
  23. package/dist/cjs/packages/imagepreview/style/style.css +4 -4
  24. package/dist/cjs/packages/numberkeyboard/style/style.css +4 -4
  25. package/dist/cjs/packages/picker/style/style.css +4 -4
  26. package/dist/cjs/packages/popover/popover.js +72 -65
  27. package/dist/cjs/packages/popover/style/popover.scss +48 -51
  28. package/dist/cjs/packages/popover/style/style.css +64 -70
  29. package/dist/cjs/packages/popup/style/popup.scss +4 -4
  30. package/dist/cjs/packages/popup/style/style.css +4 -4
  31. package/dist/cjs/packages/resultpage/style/style.css +4 -16
  32. package/dist/cjs/packages/shortpassword/style/style.css +4 -4
  33. package/dist/cjs/packages/switch/switch.js +2 -2
  34. package/dist/cjs/packages/tabpane/tabpane.js +2 -2
  35. package/dist/cjs/packages/timeselect/style/style.css +4 -4
  36. package/dist/cjs/packages/tour/style/style.css +64 -70
  37. package/dist/cjs/types/spec/dialog/base.d.ts +50 -1
  38. package/dist/cjs/types/spec/dialog/base.js +7 -0
  39. package/dist/cjs/types/spec/dialog/h5.d.ts +4 -1
  40. package/dist/cjs/types/spec/dialog/taro.d.ts +8 -2
  41. package/dist/cjs/types/spec/popover/base.d.ts +7 -0
  42. package/dist/cjs/utils/get-rect-by-taro.js +10 -0
  43. package/dist/cjs/utils/lru.d.ts +8 -0
  44. package/dist/cjs/utils/lru.js +58 -0
  45. package/dist/es/packages/actionsheet/style/style.css +4 -4
  46. package/dist/es/packages/address/style/style.css +4 -4
  47. package/dist/es/packages/audio/style/style.css +4 -16
  48. package/dist/es/packages/button/style/button.scss +4 -20
  49. package/dist/es/packages/button/style/style.css +4 -16
  50. package/dist/es/packages/calendar/style/style.css +4 -4
  51. package/dist/es/packages/cascader/style/style.css +4 -4
  52. package/dist/es/packages/collapse/style/style.css +22 -7
  53. package/dist/es/packages/collapseitem/collapseitem.js +47 -45
  54. package/dist/es/packages/collapseitem/style/collapseitem.scss +22 -5
  55. package/dist/es/packages/collapseitem/style/style.css +22 -7
  56. package/dist/es/packages/configprovider/types.d.ts +1 -1
  57. package/dist/es/packages/datepicker/style/style.css +4 -4
  58. package/dist/es/packages/dialog/confirm.d.ts +2 -3
  59. package/dist/es/packages/dialog/confirm.js +1 -8
  60. package/dist/es/packages/dialog/content.d.ts +11 -3
  61. package/dist/es/packages/dialog/dialog.d.ts +1 -1
  62. package/dist/es/packages/dialog/dialog.js +98 -69
  63. package/dist/es/packages/dialog/index.d.ts +1 -1
  64. package/dist/es/packages/dialog/style/style.css +4 -16
  65. package/dist/es/packages/empty/style/style.css +4 -16
  66. package/dist/es/packages/imagepreview/style/style.css +4 -4
  67. package/dist/es/packages/numberkeyboard/style/style.css +4 -4
  68. package/dist/es/packages/picker/style/style.css +4 -4
  69. package/dist/es/packages/popover/popover.js +72 -65
  70. package/dist/es/packages/popover/style/popover.scss +48 -51
  71. package/dist/es/packages/popover/style/style.css +64 -70
  72. package/dist/es/packages/popup/style/popup.scss +4 -4
  73. package/dist/es/packages/popup/style/style.css +4 -4
  74. package/dist/es/packages/resultpage/style/style.css +4 -16
  75. package/dist/es/packages/shortpassword/style/style.css +4 -4
  76. package/dist/es/packages/switch/switch.js +2 -2
  77. package/dist/es/packages/tabpane/tabpane.js +2 -2
  78. package/dist/es/packages/timeselect/style/style.css +4 -4
  79. package/dist/es/packages/tour/style/style.css +64 -70
  80. package/dist/es/types/spec/dialog/base.d.ts +83 -1
  81. package/dist/es/types/spec/dialog/base.js +1 -1
  82. package/dist/es/types/spec/dialog/h5.d.ts +4 -1
  83. package/dist/es/types/spec/dialog/taro.d.ts +8 -2
  84. package/dist/es/types/spec/popover/base.d.ts +7 -0
  85. package/dist/es/utils/get-rect-by-taro.js +9 -0
  86. package/dist/es/utils/lru.d.ts +8 -0
  87. package/dist/es/utils/lru.js +49 -0
  88. package/dist/nutui.react.umd.js +227 -249
  89. package/dist/style.css +1 -1
  90. package/dist/style.scss +42 -42
  91. package/dist/styles/theme-jmapp.scss +1 -0
  92. package/dist/styles/themes/jmapp.css +1 -1
  93. package/dist/styles/variables-jmapp.scss +214 -49
  94. package/dist/styles/variables-jrkf.scss +2 -13
  95. package/dist/styles/variables.scss +3 -14
  96. package/package.json +1 -1
  97. package/dist/cjs/packages/dialog/dialogwrap.d.ts +0 -4
  98. package/dist/cjs/packages/dialog/dialogwrap.js +0 -79
  99. package/dist/cjs/packages/dialog/types.d.ts +0 -57
  100. package/dist/cjs/packages/dialog/types.js +0 -11
  101. package/dist/es/packages/dialog/dialogwrap.d.ts +0 -4
  102. package/dist/es/packages/dialog/dialogwrap.js +0 -60
  103. package/dist/es/packages/dialog/types.d.ts +0 -57
  104. package/dist/es/packages/dialog/types.js +0 -1
package/CHANGELOG.md CHANGED
@@ -1,21 +1,40 @@
1
+ # v3.0.7
2
+ `2025-04-03`
3
+
4
+
5
+ * :sparkles: feat(jdesign): 修订变量名 (#3127)
6
+ * :sparkles: feat(collapse): 适配鸿蒙 (#3139)
7
+ * :bug: fix(tabs): 兼容16的处理 (#3150)
8
+ * :bug: fix(dialog):修复函数式调用时 hidecancel 不生效问题 (#3145)
9
+ * :bug: fix(button): 样式变量无法生效问题修复 (#3142)
10
+ * :bug: fix(Popup): 调整最小高度设定为 26% (#3144)
11
+ * :bug: fix: popover 无法关闭的问题,删除无用代码和无用的样式变量 (#3129)
12
+ * :bug: fix: contribution img failed to display (#3141)
13
+ * :bug: fix(switch): 简化props使用 (#3132)
14
+ * :bug: fix: tabbar config json (#3134)
15
+ * 🪵 refactor(dialog): 抽离types到标准spec下,去掉web h5 wrap层 (#3147)
16
+ * 🏡 chore: 修复正式环境的 publicPath (#3137)
17
+
18
+
1
19
  # v3.0.6
20
+
2
21
  `2025-03-28`
3
22
 
4
- * :sparkles: feat(skeleton): v15 (#3086)
5
- * :sparkles: feat(Tabbar): v15 样式适配;增加 icon/value/title 的function类型,支持根据active状态渲染不同数据;增加 onDoubleClick 事件 (#3110)
6
- * :sparkles: feat(indicator): 增加 UI 变体的类型 (#3114)
7
- * :sparkles: feat(switch): 异步切换支持受控loading态 (#3122)
8
- * :sparkles: feat(notify): v15 (#3082)
9
- * :sparkles: feat(lottie): 支持京东小程序 (#3080)
10
- * :sparkles: feat(demoblock): code block scrolling behavior, CodesandBox function and copyCode styles (#3106)
11
- * :bug: fix(searchbar): 支付宝小程序设置 enableInPageRenderInput 后无法触发 onChange (#3130)
12
- * :bug: fix: doc css (#3126)
13
- * :bug: fix(overlay): 扩大点击范围 (#3117)
14
- * :bug: fix(pickerview): 解决小程序获取高度计算错误 (#3120)
15
- * :bug: fix(badge): 修正css变量定义 (#3123)
16
- * :bug: fix: update pkgjson title (#3119)
17
- * 🪵 refactor(badge): 支持禁用模式 (#3118)
18
- * 🏡 chore: support ui review (#3121)
23
+ - :sparkles: feat(skeleton): v15 (#3086)
24
+ - :sparkles: feat(Tabbar): v15 样式适配;增加 icon/value/title 的function类型,支持根据active状态渲染不同数据;增加 onDoubleClick 事件 (#3110)
25
+ - :sparkles: feat(indicator): 增加 UI 变体的类型 (#3114)
26
+ - :sparkles: feat(switch): 异步切换支持受控loading态 (#3122)
27
+ - :sparkles: feat(notify): v15 (#3082)
28
+ - :sparkles: feat(lottie): 支持京东小程序 (#3080)
29
+ - :sparkles: feat(demoblock): code block scrolling behavior, CodesandBox function and copyCode styles (#3106)
30
+ - :bug: fix(searchbar): 支付宝小程序设置 enableInPageRenderInput 后无法触发 onChange (#3130)
31
+ - :bug: fix: doc css (#3126)
32
+ - :bug: fix(overlay): 扩大点击范围 (#3117)
33
+ - :bug: fix(pickerview): 解决小程序获取高度计算错误 (#3120)
34
+ - :bug: fix(badge): 修正css变量定义 (#3123)
35
+ - :bug: fix: update pkgjson title (#3119)
36
+ - 🪵 refactor(badge): 支持禁用模式 (#3118)
37
+ - 🏡 chore: support ui review (#3121)
19
38
 
20
39
  # v3.0.5
21
40
 
@@ -60,7 +60,7 @@
60
60
 
61
61
  .nut-popup {
62
62
  position: fixed;
63
- min-height: 46%;
63
+ min-height: 26%;
64
64
  max-height: 100%;
65
65
  background-color: var(--nutui-overlay-content-bg-color, var(--nutui-color-background-overlay, #ffffff));
66
66
  -webkit-overflow-scrolling: touch;
@@ -198,12 +198,12 @@
198
198
  transform: scale(0.8);
199
199
  }
200
200
  }
201
- .nut-popup-slide-default-enter-active {
201
+ .nut-popup-slide-none-enter-active {
202
202
  animation-fill-mode: both;
203
203
  animation-name: popup-scale-fade-in;
204
204
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
205
205
  }
206
- .nut-popup-slide-default-exit-active {
206
+ .nut-popup-slide-none-exit-active {
207
207
  animation-fill-mode: both;
208
208
  animation-name: popup-scale-fade-out;
209
209
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -330,7 +330,7 @@
330
330
  animation-name: popup-slide-left-exit;
331
331
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
332
332
  }
333
- .nut-popup-slide-default-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
333
+ .nut-popup-slide-none-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
334
334
  display: none;
335
335
  }
336
336
  .nut-popup .nut-overflow-hidden {
@@ -178,7 +178,7 @@
178
178
 
179
179
  .nut-popup {
180
180
  position: fixed;
181
- min-height: 46%;
181
+ min-height: 26%;
182
182
  max-height: 100%;
183
183
  background-color: var(--nutui-overlay-content-bg-color, var(--nutui-color-background-overlay, #ffffff));
184
184
  -webkit-overflow-scrolling: touch;
@@ -316,12 +316,12 @@
316
316
  transform: scale(0.8);
317
317
  }
318
318
  }
319
- .nut-popup-slide-default-enter-active {
319
+ .nut-popup-slide-none-enter-active {
320
320
  animation-fill-mode: both;
321
321
  animation-name: popup-scale-fade-in;
322
322
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
323
323
  }
324
- .nut-popup-slide-default-exit-active {
324
+ .nut-popup-slide-none-exit-active {
325
325
  animation-fill-mode: both;
326
326
  animation-name: popup-scale-fade-out;
327
327
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -448,7 +448,7 @@
448
448
  animation-name: popup-slide-left-exit;
449
449
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
450
450
  }
451
- .nut-popup-slide-default-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
451
+ .nut-popup-slide-none-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
452
452
  display: none;
453
453
  }
454
454
  .nut-popup .nut-overflow-hidden {
@@ -94,18 +94,6 @@
94
94
  .nut-button-round {
95
95
  border-radius: var(--nutui-button-border-radius, var(--nutui-radius-s, 6px));
96
96
  }
97
- .nut-button-round-xlarge {
98
- border-radius: var(--nutui-button-xlarge-border-radius, var(--nutui-radius-base, 8px));
99
- }
100
- .nut-button-round-large {
101
- border-radius: var(--nutui-button-large-border-radius, var(--nutui-radius-base, 8px));
102
- }
103
- .nut-button-round-small {
104
- border-radius: var(--nutui-button-small-border-radius, var(--nutui-radius-s, 6px));
105
- }
106
- .nut-button-round-mini {
107
- border-radius: var(--nutui-button-mini-border-radius, var(--nutui-radius-xs, 4px));
108
- }
109
97
  .nut-button-default {
110
98
  padding: var(--nutui-button-default-padding, 0px 12px);
111
99
  border-style: solid;
@@ -131,7 +119,7 @@
131
119
  height: var(--nutui-button-xlarge-height, 48px);
132
120
  padding: var(--nutui-button-xlarge-padding, 0px 24px);
133
121
  font-size: var(--nutui-button-xlarge-font-size, var(--nutui-font-size-xl, 18px));
134
- border-radius: var(--nutui-radius-base, 8px);
122
+ border-radius: var(--nutui-button-xlarge-border-radius, var(--nutui-radius-base, 8px));
135
123
  }
136
124
  .nut-button-xlarge .nut-button-text {
137
125
  margin-left: var(--nutui-button-xlarge-text-icon-margin, 6px);
@@ -151,7 +139,7 @@
151
139
  height: var(--nutui-button-large-height, 40px);
152
140
  padding: var(--nutui-button-large-padding, 0px 16px);
153
141
  font-size: var(--nutui-button-large-font-size, var(--nutui-font-size-l, 16px));
154
- border-radius: var(--nutui-radius-s, 6px);
142
+ border-radius: var(--nutui-button-large-border-radius, var(--nutui-radius-base, 8px));
155
143
  }
156
144
  .nut-button-large .nut-button-text {
157
145
  margin-left: var(--nutui-button-xlarge-text-icon-margin, 6px);
@@ -171,7 +159,7 @@
171
159
  height: var(--nutui-button-small-height, 28px);
172
160
  padding: var(--nutui-button-small-padding, 0px 8px);
173
161
  font-size: var(--nutui-button-small-font-size, var(--nutui-font-size-s, 12px));
174
- border-radius: var(--nutui-radius-xs, 4px);
162
+ border-radius: var(--nutui-button-small-border-radius, var(--nutui-radius-s, 6px));
175
163
  }
176
164
  .nut-button-small .nut-icon {
177
165
  font-size: var(--nutui-button-small-font-size, var(--nutui-font-size-s, 12px));
@@ -185,7 +173,7 @@
185
173
  height: var(--nutui-button-mini-height, 24px);
186
174
  padding: var(--nutui-button-mini-padding, 0px 8px);
187
175
  font-size: var(--nutui-button-mini-font-size, var(--nutui-font-size-xs, 11px));
188
- border-radius: var(--nutui-radius-xs, 4px);
176
+ border-radius: var(--nutui-button-mini-border-radius, var(--nutui-radius-xs, 4px));
189
177
  }
190
178
  .nut-button-mini .nut-icon {
191
179
  font-size: var(--nutui-button-mini-font-size, var(--nutui-font-size-xs, 11px));
@@ -101,22 +101,6 @@
101
101
 
102
102
  &-round {
103
103
  border-radius: $button-border-radius;
104
-
105
- &-xlarge {
106
- border-radius: $button-xlarge-border-radius;
107
- }
108
-
109
- &-large {
110
- border-radius: $button-large-border-radius;
111
- }
112
-
113
- &-small {
114
- border-radius: $button-small-border-radius;
115
- }
116
-
117
- &-mini {
118
- border-radius: $button-mini-border-radius;
119
- }
120
104
  }
121
105
 
122
106
  &-default {
@@ -155,7 +139,7 @@
155
139
  height: $button-xlarge-height;
156
140
  padding: $button-xlarge-padding;
157
141
  font-size: $button-xlarge-font-size;
158
- border-radius: $radius-base;
142
+ border-radius: $button-xlarge-border-radius;
159
143
 
160
144
  .nut-button-text {
161
145
  margin-left: $button-xlarge-text-icon-margin;
@@ -178,7 +162,7 @@
178
162
  height: $button-large-height;
179
163
  padding: $button-large-padding;
180
164
  font-size: $button-large-font-size;
181
- border-radius: $radius-s;
165
+ border-radius: $button-large-border-radius;
182
166
 
183
167
  .nut-button-text {
184
168
  margin-left: $button-xlarge-text-icon-margin;
@@ -202,7 +186,7 @@
202
186
  height: $button-small-height;
203
187
  padding: $button-small-padding;
204
188
  font-size: $button-small-font-size;
205
- border-radius: $radius-xs;
189
+ border-radius: $button-small-border-radius;
206
190
 
207
191
  .nut-icon {
208
192
  font-size: $button-small-font-size;
@@ -219,7 +203,7 @@
219
203
  height: $button-mini-height;
220
204
  padding: $button-mini-padding;
221
205
  font-size: $button-mini-font-size;
222
- border-radius: $radius-xs;
206
+ border-radius: $button-mini-border-radius;
223
207
 
224
208
  .nut-icon {
225
209
  font-size: $button-mini-font-size;
@@ -94,18 +94,6 @@
94
94
  .nut-button-round {
95
95
  border-radius: var(--nutui-button-border-radius, var(--nutui-radius-s, 6px));
96
96
  }
97
- .nut-button-round-xlarge {
98
- border-radius: var(--nutui-button-xlarge-border-radius, var(--nutui-radius-base, 8px));
99
- }
100
- .nut-button-round-large {
101
- border-radius: var(--nutui-button-large-border-radius, var(--nutui-radius-base, 8px));
102
- }
103
- .nut-button-round-small {
104
- border-radius: var(--nutui-button-small-border-radius, var(--nutui-radius-s, 6px));
105
- }
106
- .nut-button-round-mini {
107
- border-radius: var(--nutui-button-mini-border-radius, var(--nutui-radius-xs, 4px));
108
- }
109
97
  .nut-button-default {
110
98
  padding: var(--nutui-button-default-padding, 0px 12px);
111
99
  border-style: solid;
@@ -131,7 +119,7 @@
131
119
  height: var(--nutui-button-xlarge-height, 48px);
132
120
  padding: var(--nutui-button-xlarge-padding, 0px 24px);
133
121
  font-size: var(--nutui-button-xlarge-font-size, var(--nutui-font-size-xl, 18px));
134
- border-radius: var(--nutui-radius-base, 8px);
122
+ border-radius: var(--nutui-button-xlarge-border-radius, var(--nutui-radius-base, 8px));
135
123
  }
136
124
  .nut-button-xlarge .nut-button-text {
137
125
  margin-left: var(--nutui-button-xlarge-text-icon-margin, 6px);
@@ -151,7 +139,7 @@
151
139
  height: var(--nutui-button-large-height, 40px);
152
140
  padding: var(--nutui-button-large-padding, 0px 16px);
153
141
  font-size: var(--nutui-button-large-font-size, var(--nutui-font-size-l, 16px));
154
- border-radius: var(--nutui-radius-s, 6px);
142
+ border-radius: var(--nutui-button-large-border-radius, var(--nutui-radius-base, 8px));
155
143
  }
156
144
  .nut-button-large .nut-button-text {
157
145
  margin-left: var(--nutui-button-xlarge-text-icon-margin, 6px);
@@ -171,7 +159,7 @@
171
159
  height: var(--nutui-button-small-height, 28px);
172
160
  padding: var(--nutui-button-small-padding, 0px 8px);
173
161
  font-size: var(--nutui-button-small-font-size, var(--nutui-font-size-s, 12px));
174
- border-radius: var(--nutui-radius-xs, 4px);
162
+ border-radius: var(--nutui-button-small-border-radius, var(--nutui-radius-s, 6px));
175
163
  }
176
164
  .nut-button-small .nut-icon {
177
165
  font-size: var(--nutui-button-small-font-size, var(--nutui-font-size-s, 12px));
@@ -185,7 +173,7 @@
185
173
  height: var(--nutui-button-mini-height, 24px);
186
174
  padding: var(--nutui-button-mini-padding, 0px 8px);
187
175
  font-size: var(--nutui-button-mini-font-size, var(--nutui-font-size-xs, 11px));
188
- border-radius: var(--nutui-radius-xs, 4px);
176
+ border-radius: var(--nutui-button-mini-border-radius, var(--nutui-radius-xs, 4px));
189
177
  }
190
178
  .nut-button-mini .nut-icon {
191
179
  font-size: var(--nutui-button-mini-font-size, var(--nutui-font-size-xs, 11px));
@@ -60,7 +60,7 @@
60
60
 
61
61
  .nut-popup {
62
62
  position: fixed;
63
- min-height: 46%;
63
+ min-height: 26%;
64
64
  max-height: 100%;
65
65
  background-color: var(--nutui-overlay-content-bg-color, var(--nutui-color-background-overlay, #ffffff));
66
66
  -webkit-overflow-scrolling: touch;
@@ -198,12 +198,12 @@
198
198
  transform: scale(0.8);
199
199
  }
200
200
  }
201
- .nut-popup-slide-default-enter-active {
201
+ .nut-popup-slide-none-enter-active {
202
202
  animation-fill-mode: both;
203
203
  animation-name: popup-scale-fade-in;
204
204
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
205
205
  }
206
- .nut-popup-slide-default-exit-active {
206
+ .nut-popup-slide-none-exit-active {
207
207
  animation-fill-mode: both;
208
208
  animation-name: popup-scale-fade-out;
209
209
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -330,7 +330,7 @@
330
330
  animation-name: popup-slide-left-exit;
331
331
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
332
332
  }
333
- .nut-popup-slide-default-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
333
+ .nut-popup-slide-none-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
334
334
  display: none;
335
335
  }
336
336
  .nut-popup .nut-overflow-hidden {
@@ -60,7 +60,7 @@
60
60
 
61
61
  .nut-popup {
62
62
  position: fixed;
63
- min-height: 46%;
63
+ min-height: 26%;
64
64
  max-height: 100%;
65
65
  background-color: var(--nutui-overlay-content-bg-color, var(--nutui-color-background-overlay, #ffffff));
66
66
  -webkit-overflow-scrolling: touch;
@@ -198,12 +198,12 @@
198
198
  transform: scale(0.8);
199
199
  }
200
200
  }
201
- .nut-popup-slide-default-enter-active {
201
+ .nut-popup-slide-none-enter-active {
202
202
  animation-fill-mode: both;
203
203
  animation-name: popup-scale-fade-in;
204
204
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
205
205
  }
206
- .nut-popup-slide-default-exit-active {
206
+ .nut-popup-slide-none-exit-active {
207
207
  animation-fill-mode: both;
208
208
  animation-name: popup-scale-fade-out;
209
209
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -330,7 +330,7 @@
330
330
  animation-name: popup-slide-left-exit;
331
331
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
332
332
  }
333
- .nut-popup-slide-default-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
333
+ .nut-popup-slide-none-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
334
334
  display: none;
335
335
  }
336
336
  .nut-popup .nut-overflow-hidden {
@@ -40,8 +40,12 @@
40
40
  left: 16px;
41
41
  bottom: 0;
42
42
  border-bottom: var(--nutui-collapse-item-header-border-bottom, 1px solid var(--nutui-color-border, rgba(0, 0, 0, 0.06)));
43
- -webkit-transform: scaleY(0.5);
44
- transform: scaleY(0.5);
43
+ /* #ifdef harmony */
44
+ transform: scale(1, 1);
45
+ /* #endif */
46
+ /* #ifndef harmony */
47
+ transform: scale(1, 0.5);
48
+ /* #endif */
45
49
  }
46
50
  .nut-collapse-item-title {
47
51
  color: var(--nutui-collapse-item-color, var(--nutui-color-title, #1a1a1a));
@@ -74,23 +78,34 @@
74
78
  transform-origin: center;
75
79
  transition: transform 0.3s;
76
80
  }
77
- .nut-collapse-item-header.disabled {
81
+ .nut-collapse-item-header-disabled {
78
82
  color: var(--nutui-collapse-item-disabled-color, var(--nutui-color-text-disabled, #c2c4cc));
79
83
  }
80
- .nut-collapse-item-header.disabled .nut-collapse-item-title {
84
+ .nut-collapse-item-header-disabled .nut-collapse-item-title {
81
85
  color: var(--nutui-collapse-item-disabled-color, var(--nutui-color-text-disabled, #c2c4cc));
82
86
  }
83
- .nut-collapse-item-header.disabled .nut-collapse-item-icon {
87
+ .nut-collapse-item-header-disabled .nut-collapse-item-icon {
84
88
  color: var(--nutui-collapse-item-disabled-color, var(--nutui-color-text-disabled, #c2c4cc));
85
89
  }
86
- .nut-collapse-item-content {
90
+ .nut-collapse-item-content-wrapper {
91
+ width: 100%;
92
+ position: relative;
93
+ box-sizing: border-box;
87
94
  overflow: hidden;
95
+ }
96
+ .nut-collapse-item-content-wrapper-tran {
97
+ transition: all 0.3s linear;
98
+ }
99
+ .nut-collapse-item-content {
88
100
  display: block;
101
+ position: absolute;
102
+ height: auto;
103
+ width: 100%;
104
+ box-sizing: border-box;
89
105
  color: var(--nutui-collapse-wrapper-content-color, var(--nutui-color-text, #505259));
90
106
  font-size: var(--nutui-collapse-wrapper-content-font-size, var(--nutui-font-size-base, 14px));
91
107
  line-height: var(--nutui-collapse-wrapper-content-line-height, 1.5);
92
108
  background-color: var(--nutui-collapse-wrapper-content-background-color, var(--nutui-color-background-overlay, #ffffff));
93
- transition: all 0.3s linear;
94
109
  }
95
110
  .nut-collapse-item-content-text {
96
111
  color: var(--nutui-collapse-wrapper-content-color, var(--nutui-color-text, #505259));
@@ -10,13 +10,18 @@ Object.defineProperty(exports, "CollapseItem", {
10
10
  });
11
11
  var _interop_require_default = require("@swc/helpers/_/_interop_require_default");
12
12
  var _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
13
+ var _async_to_generator = require("@swc/helpers/_/_async_to_generator");
14
+ var _define_property = require("@swc/helpers/_/_define_property");
13
15
  var _object_spread = require("@swc/helpers/_/_object_spread");
14
16
  var _object_spread_props = require("@swc/helpers/_/_object_spread_props");
15
17
  var _object_without_properties = require("@swc/helpers/_/_object_without_properties");
18
+ var _sliced_to_array = require("@swc/helpers/_/_sliced_to_array");
19
+ var _ts_generator = require("@swc/helpers/_/_ts_generator");
16
20
  var _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
17
21
  var _classnames = /*#__PURE__*/ _interop_require_default._(require("classnames"));
18
22
  var _typings = require("../../utils/typings");
19
23
  var _context = /*#__PURE__*/ _interop_require_default._(require("../collapse/context"));
24
+ var _userefstate = require("../../hooks/use-ref-state");
20
25
  var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _typings.ComponentDefaults), {
21
26
  title: null,
22
27
  name: '',
@@ -59,57 +64,50 @@ var CollapseItem = function CollapseItem(props) {
59
64
  expanded,
60
65
  rotate
61
66
  ]);
62
- var handleClick = function handleClick() {
63
- if (!disabled) {
64
- context.updateValue(name);
65
- }
66
- };
67
- var onTransitionEnd = function onTransitionEnd() {
68
- if (expanded) {
69
- if (wrapperRef.current) {
70
- wrapperRef.current.style.height = '';
71
- }
72
- }
73
- };
74
- var getOffsetHeight = function getOffsetHeight() {
75
- var _contentRef_current;
76
- var height = (_contentRef_current = contentRef.current) === null || _contentRef_current === void 0 ? void 0 : _contentRef_current.offsetHeight;
77
- return height ? "".concat(height, "px") : '';
78
- };
79
- var toggle = function toggle() {
80
- var start = expanded ? '0px' : getOffsetHeight();
81
- if (wrapperRef.current) {
82
- wrapperRef.current.style.height = start;
83
- }
84
- requestAnimationFrame(function() {
85
- requestAnimationFrame(function() {
86
- var end = expanded ? getOffsetHeight() : '0px';
87
- if (wrapperRef.current) {
88
- wrapperRef.current.style.height = end;
89
- }
67
+ var _useState = (0, _sliced_to_array._)((0, _react.useState)(0), 2), tran = _useState[0], setTran = _useState[1];
68
+ var _useRefState = (0, _sliced_to_array._)((0, _userefstate.useRefState)(0), 2), currentHeight = _useRefState[0], setCurrentHeight = _useRefState[1];
69
+ var _useState1 = (0, _sliced_to_array._)((0, _react.useState)(0), 2), wrapperHeight = _useState1[0], setWrapperHeight = _useState1[1];
70
+ var updateRectHeight = /*#__PURE__*/ function() {
71
+ var _ref = (0, _async_to_generator._)(function() {
72
+ var height;
73
+ return (0, _ts_generator._)(this, function(_state) {
74
+ height = contentRef.current.offsetHeight;
75
+ setCurrentHeight(height);
76
+ setWrapperHeight(expanded ? height : 0);
77
+ setTimeout(function() {
78
+ setTran(1);
79
+ });
80
+ return [
81
+ 2
82
+ ];
90
83
  });
91
84
  });
92
- };
93
- var init = (0, _react.useRef)(true);
85
+ return function updateRectHeight() {
86
+ return _ref.apply(this, arguments);
87
+ };
88
+ }();
94
89
  (0, _react.useEffect)(function() {
95
- if (init.current) {
96
- init.current = false;
97
- if (!expanded) {
98
- wrapperRef.current.style.height = '0px';
99
- }
100
- } else {
101
- toggle();
102
- }
90
+ updateRectHeight();
103
91
  }, [
92
+ children,
104
93
  expanded
105
94
  ]);
95
+ var toggle = function toggle() {
96
+ var end = !expanded ? currentHeight.current : 0;
97
+ setWrapperHeight(end);
98
+ };
99
+ var handleClick = function handleClick() {
100
+ if (!disabled) {
101
+ context.updateValue(name);
102
+ toggle();
103
+ }
104
+ };
105
+ var _obj;
106
106
  return /*#__PURE__*/ _react.default.createElement("div", (0, _object_spread._)({
107
107
  className: (0, _classnames.default)(classPrefix, className),
108
108
  style: style
109
109
  }, rest), /*#__PURE__*/ _react.default.createElement("div", {
110
- className: (0, _classnames.default)("".concat(classPrefix, "-header"), {
111
- disabled: disabled
112
- }),
110
+ className: (0, _classnames.default)("".concat(classPrefix, "-header"), (0, _define_property._)({}, "".concat(classPrefix, "-header-disabled"), disabled)),
113
111
  onClick: handleClick
114
112
  }, /*#__PURE__*/ _react.default.createElement("div", {
115
113
  className: "".concat(classPrefix, "-title")
@@ -121,12 +119,16 @@ var CollapseItem = function CollapseItem(props) {
121
119
  className: "".concat(classPrefix, "-icon"),
122
120
  style: iconStyle
123
121
  }, expandIcon || context.expandIcon))), /*#__PURE__*/ _react.default.createElement("div", {
124
- className: "".concat(classPrefix, "-content"),
125
- onTransitionEnd: onTransitionEnd,
122
+ className: (0, _classnames.default)((_obj = {}, (0, _define_property._)(_obj, "".concat(classPrefix, "-content-wrapper"), true), (0, _define_property._)(_obj, "".concat(classPrefix, "-content-wrapper-tran"), true), _obj)),
123
+ style: tran ? {
124
+ height: wrapperHeight
125
+ } : {},
126
126
  ref: wrapperRef
127
+ }, /*#__PURE__*/ _react.default.createElement("div", {
128
+ className: "".concat(classPrefix, "-content")
127
129
  }, /*#__PURE__*/ _react.default.createElement("div", {
128
130
  ref: contentRef,
129
131
  className: "".concat(classPrefix, "-content-text")
130
- }, children)));
132
+ }, children))));
131
133
  };
132
134
  CollapseItem.displayName = 'NutCollapseItem';
@@ -38,8 +38,12 @@
38
38
  left: 16px;
39
39
  bottom: 0;
40
40
  border-bottom: $collapse-item-header-border-bottom;
41
- -webkit-transform: scaleY(0.5);
42
- transform: scaleY(0.5);
41
+ /* #ifdef harmony */
42
+ transform: scale(1, 1);
43
+ /* #endif */
44
+ /* #ifndef harmony */
45
+ transform: scale(1, 0.5);
46
+ /* #endif */
43
47
  }
44
48
  }
45
49
 
@@ -78,7 +82,7 @@
78
82
  transition: transform 0.3s;
79
83
  }
80
84
 
81
- &-header.disabled {
85
+ &-header-disabled {
82
86
  color: $collapse-item-disabled-color;
83
87
 
84
88
  .nut-collapse-item-title {
@@ -90,14 +94,26 @@
90
94
  }
91
95
  }
92
96
 
93
- &-content {
97
+ &-content-wrapper {
98
+ width: 100%;
99
+ position: relative;
100
+ box-sizing: border-box;
94
101
  overflow: hidden;
102
+ &-tran {
103
+ transition: all 0.3s linear;
104
+ }
105
+ }
106
+
107
+ &-content {
95
108
  display: block;
109
+ position: absolute;
110
+ height: auto;
111
+ width: 100%;
112
+ box-sizing: border-box;
96
113
  color: $collapse-wrapper-content-color;
97
114
  font-size: $collapse-wrapper-content-font-size;
98
115
  line-height: $collapse-wrapper-content-line-height;
99
116
  background-color: $collapse-wrapper-content-background-color;
100
- transition: all 0.3s linear;
101
117
 
102
118
  &-text {
103
119
  color: $collapse-wrapper-content-color;
@@ -105,6 +121,7 @@
105
121
  }
106
122
  }
107
123
  }
124
+
108
125
  [dir='rtl'] .nut-collapse-item,
109
126
  .nut-rtl .nut-collapse-item {
110
127
  &-icon {
@@ -40,8 +40,12 @@
40
40
  left: 16px;
41
41
  bottom: 0;
42
42
  border-bottom: var(--nutui-collapse-item-header-border-bottom, 1px solid var(--nutui-color-border, rgba(0, 0, 0, 0.06)));
43
- -webkit-transform: scaleY(0.5);
44
- transform: scaleY(0.5);
43
+ /* #ifdef harmony */
44
+ transform: scale(1, 1);
45
+ /* #endif */
46
+ /* #ifndef harmony */
47
+ transform: scale(1, 0.5);
48
+ /* #endif */
45
49
  }
46
50
  .nut-collapse-item-title {
47
51
  color: var(--nutui-collapse-item-color, var(--nutui-color-title, #1a1a1a));
@@ -74,23 +78,34 @@
74
78
  transform-origin: center;
75
79
  transition: transform 0.3s;
76
80
  }
77
- .nut-collapse-item-header.disabled {
81
+ .nut-collapse-item-header-disabled {
78
82
  color: var(--nutui-collapse-item-disabled-color, var(--nutui-color-text-disabled, #c2c4cc));
79
83
  }
80
- .nut-collapse-item-header.disabled .nut-collapse-item-title {
84
+ .nut-collapse-item-header-disabled .nut-collapse-item-title {
81
85
  color: var(--nutui-collapse-item-disabled-color, var(--nutui-color-text-disabled, #c2c4cc));
82
86
  }
83
- .nut-collapse-item-header.disabled .nut-collapse-item-icon {
87
+ .nut-collapse-item-header-disabled .nut-collapse-item-icon {
84
88
  color: var(--nutui-collapse-item-disabled-color, var(--nutui-color-text-disabled, #c2c4cc));
85
89
  }
86
- .nut-collapse-item-content {
90
+ .nut-collapse-item-content-wrapper {
91
+ width: 100%;
92
+ position: relative;
93
+ box-sizing: border-box;
87
94
  overflow: hidden;
95
+ }
96
+ .nut-collapse-item-content-wrapper-tran {
97
+ transition: all 0.3s linear;
98
+ }
99
+ .nut-collapse-item-content {
88
100
  display: block;
101
+ position: absolute;
102
+ height: auto;
103
+ width: 100%;
104
+ box-sizing: border-box;
89
105
  color: var(--nutui-collapse-wrapper-content-color, var(--nutui-color-text, #505259));
90
106
  font-size: var(--nutui-collapse-wrapper-content-font-size, var(--nutui-font-size-base, 14px));
91
107
  line-height: var(--nutui-collapse-wrapper-content-line-height, 1.5);
92
108
  background-color: var(--nutui-collapse-wrapper-content-background-color, var(--nutui-color-background-overlay, #ffffff));
93
- transition: all 0.3s linear;
94
109
  }
95
110
  .nut-collapse-item-content-text {
96
111
  color: var(--nutui-collapse-wrapper-content-color, var(--nutui-color-text, #505259));