@nutui/nutui-react 3.0.6 → 3.0.8

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 (119) hide show
  1. package/CHANGELOG.md +51 -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/avatar/style/style.css +4 -0
  6. package/dist/cjs/packages/button/style/button.scss +4 -20
  7. package/dist/cjs/packages/button/style/style.css +4 -16
  8. package/dist/cjs/packages/calendar/style/style.css +4 -4
  9. package/dist/cjs/packages/cascader/cascader.js +2 -1
  10. package/dist/cjs/packages/cascader/style/style.css +4 -4
  11. package/dist/cjs/packages/collapse/style/style.css +22 -7
  12. package/dist/cjs/packages/collapseitem/collapseitem.js +46 -44
  13. package/dist/cjs/packages/collapseitem/style/collapseitem.scss +22 -5
  14. package/dist/cjs/packages/collapseitem/style/style.css +22 -7
  15. package/dist/cjs/packages/configprovider/types.d.ts +1 -1
  16. package/dist/cjs/packages/datepicker/style/style.css +4 -4
  17. package/dist/cjs/packages/dialog/confirm.d.ts +2 -3
  18. package/dist/cjs/packages/dialog/confirm.js +4 -18
  19. package/dist/cjs/packages/dialog/content.d.ts +11 -3
  20. package/dist/cjs/packages/dialog/dialog.d.ts +1 -1
  21. package/dist/cjs/packages/dialog/dialog.js +98 -69
  22. package/dist/cjs/packages/dialog/index.d.ts +1 -1
  23. package/dist/cjs/packages/dialog/style/dialog.scss +1 -0
  24. package/dist/cjs/packages/dialog/style/style.css +5 -16
  25. package/dist/cjs/packages/empty/style/style.css +4 -16
  26. package/dist/cjs/packages/image/style/image.scss +4 -1
  27. package/dist/cjs/packages/image/style/style.css +4 -0
  28. package/dist/cjs/packages/imagepreview/style/style.css +8 -4
  29. package/dist/cjs/packages/numberkeyboard/style/style.css +4 -4
  30. package/dist/cjs/packages/picker/style/style.css +4 -4
  31. package/dist/cjs/packages/popover/popover.js +72 -65
  32. package/dist/cjs/packages/popover/style/popover.scss +48 -51
  33. package/dist/cjs/packages/popover/style/style.css +64 -70
  34. package/dist/cjs/packages/popup/style/popup.scss +4 -4
  35. package/dist/cjs/packages/popup/style/style.css +4 -4
  36. package/dist/cjs/packages/resultpage/style/style.css +4 -16
  37. package/dist/cjs/packages/shortpassword/style/style.css +4 -4
  38. package/dist/cjs/packages/skeleton/skeleton.js +1 -2
  39. package/dist/cjs/packages/switch/switch.js +53 -8
  40. package/dist/cjs/packages/tabpane/tabpane.js +2 -2
  41. package/dist/cjs/packages/timeselect/style/style.css +4 -4
  42. package/dist/cjs/packages/tour/style/style.css +64 -70
  43. package/dist/cjs/types/spec/dialog/base.d.ts +50 -1
  44. package/dist/cjs/types/spec/dialog/base.js +7 -0
  45. package/dist/cjs/types/spec/dialog/h5.d.ts +4 -1
  46. package/dist/cjs/types/spec/dialog/taro.d.ts +8 -2
  47. package/dist/cjs/types/spec/popover/base.d.ts +7 -0
  48. package/dist/cjs/utils/get-rect-by-taro.js +10 -0
  49. package/dist/cjs/utils/lru.d.ts +8 -0
  50. package/dist/cjs/utils/lru.js +58 -0
  51. package/dist/es/packages/actionsheet/style/style.css +4 -4
  52. package/dist/es/packages/address/style/style.css +4 -4
  53. package/dist/es/packages/audio/style/style.css +4 -16
  54. package/dist/es/packages/avatar/style/style.css +4 -0
  55. package/dist/es/packages/button/style/button.scss +4 -20
  56. package/dist/es/packages/button/style/style.css +4 -16
  57. package/dist/es/packages/calendar/style/style.css +4 -4
  58. package/dist/es/packages/cascader/cascader.js +2 -1
  59. package/dist/es/packages/cascader/style/style.css +4 -4
  60. package/dist/es/packages/collapse/style/style.css +22 -7
  61. package/dist/es/packages/collapseitem/collapseitem.js +47 -45
  62. package/dist/es/packages/collapseitem/style/collapseitem.scss +22 -5
  63. package/dist/es/packages/collapseitem/style/style.css +22 -7
  64. package/dist/es/packages/configprovider/types.d.ts +1 -1
  65. package/dist/es/packages/datepicker/style/style.css +4 -4
  66. package/dist/es/packages/dialog/confirm.d.ts +2 -3
  67. package/dist/es/packages/dialog/confirm.js +1 -8
  68. package/dist/es/packages/dialog/content.d.ts +11 -3
  69. package/dist/es/packages/dialog/dialog.d.ts +1 -1
  70. package/dist/es/packages/dialog/dialog.js +98 -69
  71. package/dist/es/packages/dialog/index.d.ts +1 -1
  72. package/dist/es/packages/dialog/style/dialog.scss +1 -0
  73. package/dist/es/packages/dialog/style/style.css +5 -16
  74. package/dist/es/packages/empty/style/style.css +4 -16
  75. package/dist/es/packages/image/style/image.scss +4 -1
  76. package/dist/es/packages/image/style/style.css +4 -0
  77. package/dist/es/packages/imagepreview/style/style.css +8 -4
  78. package/dist/es/packages/numberkeyboard/style/style.css +4 -4
  79. package/dist/es/packages/picker/style/style.css +4 -4
  80. package/dist/es/packages/popover/popover.js +72 -65
  81. package/dist/es/packages/popover/style/popover.scss +48 -51
  82. package/dist/es/packages/popover/style/style.css +64 -70
  83. package/dist/es/packages/popup/style/popup.scss +4 -4
  84. package/dist/es/packages/popup/style/style.css +4 -4
  85. package/dist/es/packages/resultpage/style/style.css +4 -16
  86. package/dist/es/packages/shortpassword/style/style.css +4 -4
  87. package/dist/es/packages/skeleton/skeleton.js +1 -2
  88. package/dist/es/packages/switch/switch.js +53 -8
  89. package/dist/es/packages/tabpane/tabpane.js +2 -2
  90. package/dist/es/packages/timeselect/style/style.css +4 -4
  91. package/dist/es/packages/tour/style/style.css +64 -70
  92. package/dist/es/types/spec/dialog/base.d.ts +83 -1
  93. package/dist/es/types/spec/dialog/base.js +1 -1
  94. package/dist/es/types/spec/dialog/h5.d.ts +4 -1
  95. package/dist/es/types/spec/dialog/taro.d.ts +8 -2
  96. package/dist/es/types/spec/popover/base.d.ts +7 -0
  97. package/dist/es/utils/get-rect-by-taro.js +9 -0
  98. package/dist/es/utils/lru.d.ts +8 -0
  99. package/dist/es/utils/lru.js +49 -0
  100. package/dist/nutui.react.umd.js +278 -258
  101. package/dist/style.css +1 -1
  102. package/dist/style.scss +46 -46
  103. package/dist/styles/theme-jmapp.scss +1 -0
  104. package/dist/styles/themes/dark.css +1 -1
  105. package/dist/styles/themes/default.css +1 -1
  106. package/dist/styles/themes/jmapp.css +1 -1
  107. package/dist/styles/themes/jrkf.css +1 -1
  108. package/dist/styles/variables-jmapp.scss +215 -49
  109. package/dist/styles/variables-jrkf.scss +2 -13
  110. package/dist/styles/variables.scss +7 -14
  111. package/package.json +1 -1
  112. package/dist/cjs/packages/dialog/dialogwrap.d.ts +0 -4
  113. package/dist/cjs/packages/dialog/dialogwrap.js +0 -79
  114. package/dist/cjs/packages/dialog/types.d.ts +0 -57
  115. package/dist/cjs/packages/dialog/types.js +0 -11
  116. package/dist/es/packages/dialog/dialogwrap.d.ts +0 -4
  117. package/dist/es/packages/dialog/dialogwrap.js +0 -60
  118. package/dist/es/packages/dialog/types.d.ts +0 -57
  119. package/dist/es/packages/dialog/types.js +0 -1
@@ -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));
@@ -15,6 +15,10 @@
15
15
  border-radius: 50%;
16
16
  overflow: hidden;
17
17
  }
18
+ .nut-image-basic {
19
+ width: 100%;
20
+ height: 100%;
21
+ }
18
22
  .nut-image-loading {
19
23
  width: 100%;
20
24
  height: 100%;
@@ -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 {
@@ -79,6 +79,7 @@ export var Cascader = /*#__PURE__*/ forwardRef(function(props, ref) {
79
79
  });
80
80
  next.push({
81
81
  selected: val,
82
+ selectedText: opt === null || opt === void 0 ? void 0 : opt.text,
82
83
  pane: currentOptions
83
84
  });
84
85
  pathNodes.current[index] = opt;
@@ -369,7 +370,7 @@ export var Cascader = /*#__PURE__*/ forwardRef(function(props, ref) {
369
370
  }
370
371
  }, levels.map(function(pane, index) {
371
372
  return /*#__PURE__*/ React.createElement(Tabs.TabPane, {
372
- title: pane.selected || locale.select,
373
+ title: pane.selectedText || locale.select,
373
374
  key: index
374
375
  }, /*#__PURE__*/ React.createElement("div", {
375
376
  className: classPane
@@ -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));
@@ -1,10 +1,15 @@
1
+ import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
2
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
1
3
  import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
2
4
  import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
3
5
  import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
4
- import React, { useEffect, useContext, useRef, useMemo } from "react";
6
+ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
7
+ import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
8
+ import React, { useContext, useEffect, useMemo, useRef, useState } from "react";
5
9
  import classNames from "classnames";
6
10
  import { ComponentDefaults } from "../../utils/typings";
7
11
  import CollapseContext from "../collapse/context";
12
+ import { useRefState } from "../../hooks/use-ref-state";
8
13
  var defaultProps = _object_spread_props(_object_spread({}, ComponentDefaults), {
9
14
  title: null,
10
15
  name: '',
@@ -47,57 +52,50 @@ export var CollapseItem = function(props) {
47
52
  expanded,
48
53
  rotate
49
54
  ]);
50
- var handleClick = function() {
51
- if (!disabled) {
52
- context.updateValue(name);
53
- }
54
- };
55
- var onTransitionEnd = function() {
56
- if (expanded) {
57
- if (wrapperRef.current) {
58
- wrapperRef.current.style.height = '';
59
- }
60
- }
61
- };
62
- var getOffsetHeight = function() {
63
- var _contentRef_current;
64
- var height = (_contentRef_current = contentRef.current) === null || _contentRef_current === void 0 ? void 0 : _contentRef_current.offsetHeight;
65
- return height ? "".concat(height, "px") : '';
66
- };
67
- var toggle = function() {
68
- var start = expanded ? '0px' : getOffsetHeight();
69
- if (wrapperRef.current) {
70
- wrapperRef.current.style.height = start;
71
- }
72
- requestAnimationFrame(function() {
73
- requestAnimationFrame(function() {
74
- var end = expanded ? getOffsetHeight() : '0px';
75
- if (wrapperRef.current) {
76
- wrapperRef.current.style.height = end;
77
- }
55
+ var _useState = _sliced_to_array(useState(0), 2), tran = _useState[0], setTran = _useState[1];
56
+ var _useRefState = _sliced_to_array(useRefState(0), 2), currentHeight = _useRefState[0], setCurrentHeight = _useRefState[1];
57
+ var _useState1 = _sliced_to_array(useState(0), 2), wrapperHeight = _useState1[0], setWrapperHeight = _useState1[1];
58
+ var updateRectHeight = /*#__PURE__*/ function() {
59
+ var _ref = _async_to_generator(function() {
60
+ var height;
61
+ return _ts_generator(this, function(_state) {
62
+ height = contentRef.current.offsetHeight;
63
+ setCurrentHeight(height);
64
+ setWrapperHeight(expanded ? height : 0);
65
+ setTimeout(function() {
66
+ setTran(1);
67
+ });
68
+ return [
69
+ 2
70
+ ];
78
71
  });
79
72
  });
80
- };
81
- var init = useRef(true);
73
+ return function updateRectHeight() {
74
+ return _ref.apply(this, arguments);
75
+ };
76
+ }();
82
77
  useEffect(function() {
83
- if (init.current) {
84
- init.current = false;
85
- if (!expanded) {
86
- wrapperRef.current.style.height = '0px';
87
- }
88
- } else {
89
- toggle();
90
- }
78
+ updateRectHeight();
91
79
  }, [
80
+ children,
92
81
  expanded
93
82
  ]);
83
+ var toggle = function() {
84
+ var end = !expanded ? currentHeight.current : 0;
85
+ setWrapperHeight(end);
86
+ };
87
+ var handleClick = function() {
88
+ if (!disabled) {
89
+ context.updateValue(name);
90
+ toggle();
91
+ }
92
+ };
93
+ var _obj;
94
94
  return /*#__PURE__*/ React.createElement("div", _object_spread({
95
95
  className: classNames(classPrefix, className),
96
96
  style: style
97
97
  }, rest), /*#__PURE__*/ React.createElement("div", {
98
- className: classNames("".concat(classPrefix, "-header"), {
99
- disabled: disabled
100
- }),
98
+ className: classNames("".concat(classPrefix, "-header"), _define_property({}, "".concat(classPrefix, "-header-disabled"), disabled)),
101
99
  onClick: handleClick
102
100
  }, /*#__PURE__*/ React.createElement("div", {
103
101
  className: "".concat(classPrefix, "-title")
@@ -109,12 +107,16 @@ export var CollapseItem = function(props) {
109
107
  className: "".concat(classPrefix, "-icon"),
110
108
  style: iconStyle
111
109
  }, expandIcon || context.expandIcon))), /*#__PURE__*/ React.createElement("div", {
112
- className: "".concat(classPrefix, "-content"),
113
- onTransitionEnd: onTransitionEnd,
110
+ className: classNames((_obj = {}, _define_property(_obj, "".concat(classPrefix, "-content-wrapper"), true), _define_property(_obj, "".concat(classPrefix, "-content-wrapper-tran"), true), _obj)),
111
+ style: tran ? {
112
+ height: wrapperHeight
113
+ } : {},
114
114
  ref: wrapperRef
115
+ }, /*#__PURE__*/ React.createElement("div", {
116
+ className: "".concat(classPrefix, "-content")
115
117
  }, /*#__PURE__*/ React.createElement("div", {
116
118
  ref: contentRef,
117
119
  className: "".concat(classPrefix, "-content-text")
118
- }, children)));
120
+ }, children))));
119
121
  };
120
122
  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));