@nutui/nutui-react-taro 3.0.19-cpp.26-beta.1 → 3.0.19-cpp.26-beta.2

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 (134) hide show
  1. package/dist/cjs/locales/base.d.ts +3 -0
  2. package/dist/cjs/locales/en-US.js +4 -1
  3. package/dist/cjs/locales/id-ID.js +4 -1
  4. package/dist/cjs/locales/ja-JP.js +4 -1
  5. package/dist/cjs/locales/tr-TR.js +4 -1
  6. package/dist/cjs/locales/zh-CN.js +4 -1
  7. package/dist/cjs/locales/zh-TW.js +4 -1
  8. package/dist/cjs/locales/zh-UG.js +4 -1
  9. package/dist/cjs/packages/actionsheet/style/style.harmony.css +19 -7
  10. package/dist/cjs/packages/address/style/style.harmony.css +19 -7
  11. package/dist/cjs/packages/calendar/style/style.harmony.css +19 -7
  12. package/dist/cjs/packages/cascader/style/style.harmony.css +19 -7
  13. package/dist/cjs/packages/configprovider/types.d.ts +1 -1
  14. package/dist/cjs/packages/datepicker/style/style.harmony.css +19 -7
  15. package/dist/cjs/packages/imagepreview/style/style.harmony.css +19 -7
  16. package/dist/cjs/packages/numberkeyboard/style/style.harmony.css +19 -7
  17. package/dist/cjs/packages/nutui.react.build.d.ts +3 -1
  18. package/dist/cjs/packages/nutui.react.build.js +18 -14
  19. package/dist/cjs/packages/nutui.react.d.ts +4 -1
  20. package/dist/cjs/packages/nutui.react.js +19 -14
  21. package/dist/cjs/packages/nutui.react.scss.d.ts +1 -0
  22. package/dist/cjs/packages/nutui.react.scss.js +1 -0
  23. package/dist/cjs/packages/overlay/overlay.js +11 -17
  24. package/dist/cjs/packages/picker/style/style.harmony.css +19 -7
  25. package/dist/cjs/packages/popover/style/style.harmony.css +19 -7
  26. package/dist/cjs/packages/popup/popup.js +171 -99
  27. package/dist/cjs/packages/popup/style/popup.scss +19 -8
  28. package/dist/cjs/packages/popup/style/style.css +19 -7
  29. package/dist/cjs/packages/popup/style/style.harmony.css +19 -7
  30. package/dist/cjs/packages/popup/style-jmapp/popup.scss +19 -8
  31. package/dist/cjs/packages/popup/style-jmapp/style.css +19 -7
  32. package/dist/cjs/packages/popup/style-jrkf/popup.scss +19 -8
  33. package/dist/cjs/packages/popup/style-jrkf/style.css +19 -7
  34. package/dist/cjs/packages/quickenter/index.d.ts +3 -0
  35. package/dist/cjs/packages/quickenter/index.js +13 -0
  36. package/dist/cjs/packages/quickenter/quickenter.d.ts +4 -0
  37. package/dist/cjs/packages/quickenter/quickenter.js +147 -0
  38. package/dist/cjs/packages/quickenter/style/css.js +2 -0
  39. package/dist/cjs/packages/quickenter/style/index.js +2 -0
  40. package/dist/cjs/packages/quickenter/style/quickenter.scss +110 -0
  41. package/dist/cjs/packages/quickenter/style/style.css +99 -0
  42. package/dist/cjs/packages/quickenter/style/style.harmony.css +500 -0
  43. package/dist/cjs/packages/quickenter/style-jmapp/css.js +2 -0
  44. package/dist/cjs/packages/quickenter/style-jmapp/index.js +2 -0
  45. package/dist/cjs/packages/quickenter/style-jmapp/quickenter.scss +110 -0
  46. package/dist/cjs/packages/quickenter/style-jmapp/style.css +99 -0
  47. package/dist/cjs/packages/quickenter/style-jrkf/css.js +2 -0
  48. package/dist/cjs/packages/quickenter/style-jrkf/index.js +2 -0
  49. package/dist/cjs/packages/quickenter/style-jrkf/quickenter.scss +110 -0
  50. package/dist/cjs/packages/quickenter/style-jrkf/style.css +99 -0
  51. package/dist/cjs/packages/shortpassword/style/style.harmony.css +19 -7
  52. package/dist/cjs/packages/timeselect/style/style.harmony.css +19 -7
  53. package/dist/cjs/packages/tour/style/style.harmony.css +19 -7
  54. package/dist/cjs/types/index.d.ts +3 -0
  55. package/dist/cjs/types/index.js +3 -0
  56. package/dist/cjs/types/spec/quickenter/base.d.ts +26 -0
  57. package/dist/cjs/types/spec/quickenter/base.js +4 -0
  58. package/dist/cjs/types/spec/quickenter/h5.d.ts +5 -0
  59. package/dist/cjs/types/spec/quickenter/h5.js +4 -0
  60. package/dist/cjs/types/spec/quickenter/taro.d.ts +5 -0
  61. package/dist/cjs/types/spec/quickenter/taro.js +4 -0
  62. package/dist/cjs/utils/taro/ConfigurableCSSTransition.d.ts +15 -0
  63. package/dist/cjs/utils/taro/ConfigurableCSSTransition.js +90 -0
  64. package/dist/es/locales/base.d.ts +3 -0
  65. package/dist/es/locales/en-US.js +4 -1
  66. package/dist/es/locales/id-ID.js +4 -1
  67. package/dist/es/locales/ja-JP.js +4 -1
  68. package/dist/es/locales/tr-TR.js +4 -1
  69. package/dist/es/locales/zh-CN.js +4 -1
  70. package/dist/es/locales/zh-TW.js +4 -1
  71. package/dist/es/locales/zh-UG.js +4 -1
  72. package/dist/es/packages/actionsheet/style/style.harmony.css +19 -7
  73. package/dist/es/packages/address/style/style.harmony.css +19 -7
  74. package/dist/es/packages/calendar/style/style.harmony.css +19 -7
  75. package/dist/es/packages/cascader/style/style.harmony.css +19 -7
  76. package/dist/es/packages/configprovider/types.d.ts +1 -1
  77. package/dist/es/packages/datepicker/style/style.harmony.css +19 -7
  78. package/dist/es/packages/imagepreview/style/style.harmony.css +19 -7
  79. package/dist/es/packages/numberkeyboard/style/style.harmony.css +19 -7
  80. package/dist/es/packages/nutui.react.build.d.ts +3 -1
  81. package/dist/es/packages/nutui.react.build.js +3 -1
  82. package/dist/es/packages/overlay/overlay.js +11 -17
  83. package/dist/es/packages/picker/style/style.harmony.css +19 -7
  84. package/dist/es/packages/popover/style/style.harmony.css +19 -7
  85. package/dist/es/packages/popup/popup.js +172 -101
  86. package/dist/es/packages/popup/style/popup.scss +19 -8
  87. package/dist/es/packages/popup/style/style.css +19 -7
  88. package/dist/es/packages/popup/style/style.harmony.css +19 -7
  89. package/dist/es/packages/popup/style-jmapp/popup.scss +19 -8
  90. package/dist/es/packages/popup/style-jmapp/style.css +19 -7
  91. package/dist/es/packages/popup/style-jrkf/popup.scss +19 -8
  92. package/dist/es/packages/popup/style-jrkf/style.css +19 -7
  93. package/dist/es/packages/quickenter/index.d.ts +3 -0
  94. package/dist/es/packages/quickenter/index.js +2 -0
  95. package/dist/es/packages/quickenter/quickenter.d.ts +4 -0
  96. package/dist/es/packages/quickenter/quickenter.js +135 -0
  97. package/dist/es/packages/quickenter/style/css.js +2 -0
  98. package/dist/es/packages/quickenter/style/index.js +2 -0
  99. package/dist/es/packages/quickenter/style/quickenter.scss +110 -0
  100. package/dist/es/packages/quickenter/style/style.css +99 -0
  101. package/dist/es/packages/quickenter/style/style.harmony.css +500 -0
  102. package/dist/es/packages/quickenter/style-jmapp/css.js +2 -0
  103. package/dist/es/packages/quickenter/style-jmapp/index.js +2 -0
  104. package/dist/es/packages/quickenter/style-jmapp/quickenter.scss +110 -0
  105. package/dist/es/packages/quickenter/style-jmapp/style.css +99 -0
  106. package/dist/es/packages/quickenter/style-jrkf/css.js +2 -0
  107. package/dist/es/packages/quickenter/style-jrkf/index.js +2 -0
  108. package/dist/es/packages/quickenter/style-jrkf/quickenter.scss +110 -0
  109. package/dist/es/packages/quickenter/style-jrkf/style.css +99 -0
  110. package/dist/es/packages/shortpassword/style/style.harmony.css +19 -7
  111. package/dist/es/packages/timeselect/style/style.harmony.css +19 -7
  112. package/dist/es/packages/tour/style/style.harmony.css +19 -7
  113. package/dist/es/types/index.d.ts +3 -0
  114. package/dist/es/types/index.js +3 -0
  115. package/dist/es/types/spec/quickenter/base.d.ts +44 -0
  116. package/dist/es/types/spec/quickenter/base.js +1 -0
  117. package/dist/es/types/spec/quickenter/h5.d.ts +5 -0
  118. package/dist/es/types/spec/quickenter/h5.js +1 -0
  119. package/dist/es/types/spec/quickenter/taro.d.ts +5 -0
  120. package/dist/es/types/spec/quickenter/taro.js +1 -0
  121. package/dist/es/utils/taro/ConfigurableCSSTransition.d.ts +15 -0
  122. package/dist/es/utils/taro/ConfigurableCSSTransition.js +79 -0
  123. package/dist/nutui.react.umd.js +582 -295
  124. package/dist/style-jmapp.css +1 -1
  125. package/dist/style-jmapp.scss +31 -30
  126. package/dist/style-jrkf.css +1 -1
  127. package/dist/style-jrkf.scss +27 -26
  128. package/dist/style.css +1 -1
  129. package/dist/style.scss +30 -29
  130. package/dist/styles/variables-daojia.scss +36 -0
  131. package/dist/styles/variables-jmapp.scss +36 -0
  132. package/dist/styles/variables-jrkf.scss +36 -0
  133. package/dist/styles/variables.scss +36 -0
  134. package/package.json +1 -1
@@ -219,6 +219,9 @@
219
219
  }
220
220
 
221
221
  @keyframes popup-slide-top-exit {
222
+ from {
223
+ transform: translate3d(0, 0%, 0);
224
+ }
222
225
  to {
223
226
  transform: translate3d(0, -100%, 0);
224
227
  }
@@ -249,6 +252,9 @@
249
252
  }
250
253
 
251
254
  @keyframes popup-slide-right-exit {
255
+ from {
256
+ transform: translate3d(0%, 0, 0);
257
+ }
252
258
  to {
253
259
  transform: translate3d(100%, 0, 0);
254
260
  }
@@ -262,7 +268,7 @@
262
268
  animation-duration: $popup-animation-duration;
263
269
  }
264
270
 
265
- &-right-exit {
271
+ &-right-exit-active {
266
272
  animation-fill-mode: both;
267
273
  animation-name: popup-slide-right-exit;
268
274
  animation-duration: $popup-animation-duration;
@@ -278,7 +284,10 @@
278
284
  }
279
285
  }
280
286
 
281
- @keyframes slide-bottom-exit {
287
+ @keyframes popup-slide-bottom-exit {
288
+ from {
289
+ transform: translate3d(0, 0%, 0);
290
+ }
282
291
  to {
283
292
  transform: translate3d(0, 100%, 0);
284
293
  }
@@ -286,15 +295,15 @@
286
295
 
287
296
  &-bottom-enter-active,
288
297
  &-bottom-appear-active {
289
- transform: translate(0, 0);
298
+ transform: translate3d(0, 0, 0);
290
299
  animation-fill-mode: both;
291
300
  animation-name: popup-slide-bottom-enter;
292
301
  animation-duration: $popup-animation-duration;
293
302
  }
294
303
 
295
- &-bottom-exit {
304
+ &-bottom-exit-active {
296
305
  animation-fill-mode: both;
297
- animation-name: slide-bottom-exit;
306
+ animation-name: popup-slide-bottom-exit;
298
307
  animation-duration: $popup-animation-duration;
299
308
  }
300
309
 
@@ -309,6 +318,9 @@
309
318
  }
310
319
 
311
320
  @keyframes popup-slide-left-exit {
321
+ from {
322
+ transform: translate3d(0%, 0, 0);
323
+ }
312
324
  to {
313
325
  transform: translate3d(-100%, 0, 0);
314
326
  }
@@ -316,14 +328,13 @@
316
328
 
317
329
  &-left-enter-active,
318
330
  &-left-appear-active {
319
- transform: translate(0, 0);
331
+ transform: translate3d(0, 0, 0);
320
332
  animation-fill-mode: both;
321
333
  animation-name: popup-slide-left-enter;
322
334
  animation-duration: $popup-animation-duration;
323
335
  }
324
336
 
325
- &-left-exit-active,
326
- &-left-exit-done {
337
+ &-left-exit-active {
327
338
  animation-fill-mode: both;
328
339
  animation-name: popup-slide-left-exit;
329
340
  animation-duration: $popup-animation-duration;
@@ -197,6 +197,9 @@
197
197
  }
198
198
  }
199
199
  @keyframes popup-slide-top-exit {
200
+ from {
201
+ transform: translate3d(0, 0%, 0);
202
+ }
200
203
  to {
201
204
  transform: translate3d(0, -100%, 0);
202
205
  }
@@ -221,6 +224,9 @@
221
224
  }
222
225
  }
223
226
  @keyframes popup-slide-right-exit {
227
+ from {
228
+ transform: translate3d(0%, 0, 0);
229
+ }
224
230
  to {
225
231
  transform: translate3d(100%, 0, 0);
226
232
  }
@@ -231,7 +237,7 @@
231
237
  animation-name: popup-slide-right-enter;
232
238
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
233
239
  }
234
- .nut-popup-slide-right-exit {
240
+ .nut-popup-slide-right-exit-active {
235
241
  animation-fill-mode: both;
236
242
  animation-name: popup-slide-right-exit;
237
243
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -244,20 +250,23 @@
244
250
  transform: translate3d(0, 0%, 0);
245
251
  }
246
252
  }
247
- @keyframes slide-bottom-exit {
253
+ @keyframes popup-slide-bottom-exit {
254
+ from {
255
+ transform: translate3d(0, 0%, 0);
256
+ }
248
257
  to {
249
258
  transform: translate3d(0, 100%, 0);
250
259
  }
251
260
  }
252
261
  .nut-popup-slide-bottom-enter-active, .nut-popup-slide-bottom-appear-active {
253
- transform: translate(0, 0);
262
+ transform: translate3d(0, 0, 0);
254
263
  animation-fill-mode: both;
255
264
  animation-name: popup-slide-bottom-enter;
256
265
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
257
266
  }
258
- .nut-popup-slide-bottom-exit {
267
+ .nut-popup-slide-bottom-exit-active {
259
268
  animation-fill-mode: both;
260
- animation-name: slide-bottom-exit;
269
+ animation-name: popup-slide-bottom-exit;
261
270
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
262
271
  }
263
272
  @keyframes popup-slide-left-enter {
@@ -269,17 +278,20 @@
269
278
  }
270
279
  }
271
280
  @keyframes popup-slide-left-exit {
281
+ from {
282
+ transform: translate3d(0%, 0, 0);
283
+ }
272
284
  to {
273
285
  transform: translate3d(-100%, 0, 0);
274
286
  }
275
287
  }
276
288
  .nut-popup-slide-left-enter-active, .nut-popup-slide-left-appear-active {
277
- transform: translate(0, 0);
289
+ transform: translate3d(0, 0, 0);
278
290
  animation-fill-mode: both;
279
291
  animation-name: popup-slide-left-enter;
280
292
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
281
293
  }
282
- .nut-popup-slide-left-exit-active, .nut-popup-slide-left-exit-done {
294
+ .nut-popup-slide-left-exit-active {
283
295
  animation-fill-mode: both;
284
296
  animation-name: popup-slide-left-exit;
285
297
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -219,6 +219,9 @@
219
219
  }
220
220
 
221
221
  @keyframes popup-slide-top-exit {
222
+ from {
223
+ transform: translate3d(0, 0%, 0);
224
+ }
222
225
  to {
223
226
  transform: translate3d(0, -100%, 0);
224
227
  }
@@ -249,6 +252,9 @@
249
252
  }
250
253
 
251
254
  @keyframes popup-slide-right-exit {
255
+ from {
256
+ transform: translate3d(0%, 0, 0);
257
+ }
252
258
  to {
253
259
  transform: translate3d(100%, 0, 0);
254
260
  }
@@ -262,7 +268,7 @@
262
268
  animation-duration: $popup-animation-duration;
263
269
  }
264
270
 
265
- &-right-exit {
271
+ &-right-exit-active {
266
272
  animation-fill-mode: both;
267
273
  animation-name: popup-slide-right-exit;
268
274
  animation-duration: $popup-animation-duration;
@@ -278,7 +284,10 @@
278
284
  }
279
285
  }
280
286
 
281
- @keyframes slide-bottom-exit {
287
+ @keyframes popup-slide-bottom-exit {
288
+ from {
289
+ transform: translate3d(0, 0%, 0);
290
+ }
282
291
  to {
283
292
  transform: translate3d(0, 100%, 0);
284
293
  }
@@ -286,15 +295,15 @@
286
295
 
287
296
  &-bottom-enter-active,
288
297
  &-bottom-appear-active {
289
- transform: translate(0, 0);
298
+ transform: translate3d(0, 0, 0);
290
299
  animation-fill-mode: both;
291
300
  animation-name: popup-slide-bottom-enter;
292
301
  animation-duration: $popup-animation-duration;
293
302
  }
294
303
 
295
- &-bottom-exit {
304
+ &-bottom-exit-active {
296
305
  animation-fill-mode: both;
297
- animation-name: slide-bottom-exit;
306
+ animation-name: popup-slide-bottom-exit;
298
307
  animation-duration: $popup-animation-duration;
299
308
  }
300
309
 
@@ -309,6 +318,9 @@
309
318
  }
310
319
 
311
320
  @keyframes popup-slide-left-exit {
321
+ from {
322
+ transform: translate3d(0%, 0, 0);
323
+ }
312
324
  to {
313
325
  transform: translate3d(-100%, 0, 0);
314
326
  }
@@ -316,14 +328,13 @@
316
328
 
317
329
  &-left-enter-active,
318
330
  &-left-appear-active {
319
- transform: translate(0, 0);
331
+ transform: translate3d(0, 0, 0);
320
332
  animation-fill-mode: both;
321
333
  animation-name: popup-slide-left-enter;
322
334
  animation-duration: $popup-animation-duration;
323
335
  }
324
336
 
325
- &-left-exit-active,
326
- &-left-exit-done {
337
+ &-left-exit-active {
327
338
  animation-fill-mode: both;
328
339
  animation-name: popup-slide-left-exit;
329
340
  animation-duration: $popup-animation-duration;
@@ -197,6 +197,9 @@
197
197
  }
198
198
  }
199
199
  @keyframes popup-slide-top-exit {
200
+ from {
201
+ transform: translate3d(0, 0%, 0);
202
+ }
200
203
  to {
201
204
  transform: translate3d(0, -100%, 0);
202
205
  }
@@ -221,6 +224,9 @@
221
224
  }
222
225
  }
223
226
  @keyframes popup-slide-right-exit {
227
+ from {
228
+ transform: translate3d(0%, 0, 0);
229
+ }
224
230
  to {
225
231
  transform: translate3d(100%, 0, 0);
226
232
  }
@@ -231,7 +237,7 @@
231
237
  animation-name: popup-slide-right-enter;
232
238
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
233
239
  }
234
- .nut-popup-slide-right-exit {
240
+ .nut-popup-slide-right-exit-active {
235
241
  animation-fill-mode: both;
236
242
  animation-name: popup-slide-right-exit;
237
243
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -244,20 +250,23 @@
244
250
  transform: translate3d(0, 0%, 0);
245
251
  }
246
252
  }
247
- @keyframes slide-bottom-exit {
253
+ @keyframes popup-slide-bottom-exit {
254
+ from {
255
+ transform: translate3d(0, 0%, 0);
256
+ }
248
257
  to {
249
258
  transform: translate3d(0, 100%, 0);
250
259
  }
251
260
  }
252
261
  .nut-popup-slide-bottom-enter-active, .nut-popup-slide-bottom-appear-active {
253
- transform: translate(0, 0);
262
+ transform: translate3d(0, 0, 0);
254
263
  animation-fill-mode: both;
255
264
  animation-name: popup-slide-bottom-enter;
256
265
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
257
266
  }
258
- .nut-popup-slide-bottom-exit {
267
+ .nut-popup-slide-bottom-exit-active {
259
268
  animation-fill-mode: both;
260
- animation-name: slide-bottom-exit;
269
+ animation-name: popup-slide-bottom-exit;
261
270
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
262
271
  }
263
272
  @keyframes popup-slide-left-enter {
@@ -269,17 +278,20 @@
269
278
  }
270
279
  }
271
280
  @keyframes popup-slide-left-exit {
281
+ from {
282
+ transform: translate3d(0%, 0, 0);
283
+ }
272
284
  to {
273
285
  transform: translate3d(-100%, 0, 0);
274
286
  }
275
287
  }
276
288
  .nut-popup-slide-left-enter-active, .nut-popup-slide-left-appear-active {
277
- transform: translate(0, 0);
289
+ transform: translate3d(0, 0, 0);
278
290
  animation-fill-mode: both;
279
291
  animation-name: popup-slide-left-enter;
280
292
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
281
293
  }
282
- .nut-popup-slide-left-exit-active, .nut-popup-slide-left-exit-done {
294
+ .nut-popup-slide-left-exit-active {
283
295
  animation-fill-mode: both;
284
296
  animation-name: popup-slide-left-exit;
285
297
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -0,0 +1,3 @@
1
+ import QuickEnter from "./quickenter";
2
+ export type { TaroQuickEnterProps as QuickEnterProps } from "../../types";
3
+ export default QuickEnter;
@@ -0,0 +1,2 @@
1
+ import QuickEnter from "./quickenter";
2
+ export default QuickEnter;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { QuickEnterActions, TaroQuickEnterProps } from "../../types";
3
+ declare const QuickEnter: React.ForwardRefExoticComponent<Partial<TaroQuickEnterProps> & React.RefAttributes<QuickEnterActions>>;
4
+ export default QuickEnter;
@@ -0,0 +1,135 @@
1
+ import { _ as _define_property } from "@swc/helpers/_/_define_property";
2
+ import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
3
+ import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
4
+ import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties";
5
+ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
6
+ import React, { useImperativeHandle } from "react";
7
+ import { View } from "@tarojs/components";
8
+ import Taro from "@tarojs/taro";
9
+ import classNames from "classnames";
10
+ import { Close } from "@nutui/icons-react-taro";
11
+ import Popup from "../popup/index";
12
+ import SafeArea from "../safearea/index";
13
+ import { ComponentDefaults } from "../../utils/typings";
14
+ import { usePropsValue } from "../../hooks/use-props-value";
15
+ import Badge from "../badge/index";
16
+ import { useConfig } from "../configprovider";
17
+ var defaultProps = _object_spread_props(_object_spread({}, ComponentDefaults), {
18
+ options: [],
19
+ visible: false,
20
+ closeOnOverlayClick: true
21
+ });
22
+ var InternalQuickEnter = function(props, ref) {
23
+ var _ref = _object_spread({}, defaultProps, props), children = _ref.children, visible = _ref.visible, title = _ref.title, _ref_options = _ref.options, options = _ref_options === void 0 ? [] : _ref_options, closeOnOverlayClick = _ref.closeOnOverlayClick, _ref_popupProps = _ref.popupProps, popupProps = _ref_popupProps === void 0 ? {} : _ref_popupProps, className = _ref.className, style = _ref.style, onClose = _ref.onClose, onChange = _ref.onChange, closeIcon = _ref.closeIcon, rest = _object_without_properties(_ref, [
24
+ "children",
25
+ "visible",
26
+ "title",
27
+ "options",
28
+ "closeOnOverlayClick",
29
+ "popupProps",
30
+ "className",
31
+ "style",
32
+ "onClose",
33
+ "onChange",
34
+ "closeIcon"
35
+ ]);
36
+ var locale = useConfig().locale;
37
+ var mergedTitle = title || locale.quickenter.title;
38
+ var classPrefix = 'nut-quickenter';
39
+ var classes = classNames(classPrefix, className);
40
+ var _usePropsValue = _sliced_to_array(usePropsValue({
41
+ value: props.visible,
42
+ defaultValue: false,
43
+ finalValue: false,
44
+ onChange: function(v) {
45
+ if (!v) {
46
+ var _props_onClose;
47
+ (_props_onClose = props.onClose) === null || _props_onClose === void 0 ? void 0 : _props_onClose.call(props);
48
+ }
49
+ }
50
+ }), 2), innerVisible = _usePropsValue[0], setInnerVisible = _usePropsValue[1];
51
+ var actions = {
52
+ open: function() {
53
+ setInnerVisible(true);
54
+ },
55
+ close: function() {
56
+ setInnerVisible(false);
57
+ }
58
+ };
59
+ useImperativeHandle(ref, function() {
60
+ return actions;
61
+ });
62
+ var onCancelEvent = function() {
63
+ setInnerVisible(false);
64
+ };
65
+ var handleItemClick = function(item, index) {
66
+ if (item.url) {
67
+ Taro.navigateTo({
68
+ url: item.url
69
+ });
70
+ }
71
+ onChange === null || onChange === void 0 ? void 0 : onChange(item, index);
72
+ };
73
+ var renderTitleBar = function() {
74
+ return /*#__PURE__*/ React.createElement(View, {
75
+ className: "".concat(classPrefix, "-control")
76
+ }, /*#__PURE__*/ React.createElement(View, {
77
+ className: "".concat(classPrefix, "-title")
78
+ }, mergedTitle), /*#__PURE__*/ React.createElement(View, {
79
+ className: "".concat(classPrefix, "-close-btn"),
80
+ onClick: function(e) {
81
+ e.stopPropagation();
82
+ onCancelEvent();
83
+ }
84
+ }, closeIcon || /*#__PURE__*/ React.createElement(Close, null)));
85
+ };
86
+ var renderContent = function() {
87
+ return /*#__PURE__*/ React.createElement(View, {
88
+ className: classNames("".concat(classPrefix, "-content"), _define_property({}, "".concat(classPrefix, "-content-scrollable"), options.length > 8))
89
+ }, /*#__PURE__*/ React.createElement(View, {
90
+ className: "".concat(classPrefix, "-list")
91
+ }, options.map(function(item, index) {
92
+ var _item_badgeProps;
93
+ var _item_badge;
94
+ return /*#__PURE__*/ React.createElement(View, {
95
+ key: index,
96
+ className: "".concat(classPrefix, "-item"),
97
+ onClick: function() {
98
+ return handleItemClick(item, index);
99
+ }
100
+ }, /*#__PURE__*/ React.createElement(View, {
101
+ className: "".concat(classPrefix, "-item-icon")
102
+ }, /*#__PURE__*/ React.createElement(Badge, _object_spread_props(_object_spread({}, item.badgeProps), {
103
+ value: (_item_badge = item.badge) !== null && _item_badge !== void 0 ? _item_badge : (_item_badgeProps = item.badgeProps) === null || _item_badgeProps === void 0 ? void 0 : _item_badgeProps.value
104
+ }), item.icon)), /*#__PURE__*/ React.createElement(View, {
105
+ className: "".concat(classPrefix, "-item-title")
106
+ }, item.title));
107
+ })));
108
+ };
109
+ var renderQuickEnterElement = function() {
110
+ return /*#__PURE__*/ React.createElement(View, _object_spread({
111
+ className: classes,
112
+ style: style
113
+ }, rest), renderTitleBar(), children, renderContent());
114
+ };
115
+ return /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(Popup, _object_spread_props(_object_spread({
116
+ style: {
117
+ background: 'transparent'
118
+ }
119
+ }, popupProps), {
120
+ overlayStyle: {
121
+ background: 'transparent'
122
+ },
123
+ visible: innerVisible,
124
+ position: "top",
125
+ onOverlayClick: function() {
126
+ if (!closeOnOverlayClick) return;
127
+ onCancelEvent();
128
+ },
129
+ onClose: onCancelEvent
130
+ }), /*#__PURE__*/ React.createElement(SafeArea, {
131
+ position: "top"
132
+ }), renderQuickEnterElement()));
133
+ };
134
+ var QuickEnter = /*#__PURE__*/ React.forwardRef(InternalQuickEnter);
135
+ export default QuickEnter;
@@ -0,0 +1,2 @@
1
+ import '../../popup/style/css';
2
+ import './style.css';
@@ -0,0 +1,2 @@
1
+ import '../../popup/style';
2
+ import './quickenter.scss';
@@ -0,0 +1,110 @@
1
+ .nut-quickenter {
2
+ width: 100%;
3
+ max-height: $quickenter-max-height; // Limit height for scrolling
4
+ background: $quickenter-bg-color;
5
+ border-radius: 0 0 12px 12px;
6
+ overflow: hidden;
7
+ box-sizing: border-box;
8
+ display: flex;
9
+ flex-direction: column;
10
+
11
+ &-control {
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: space-between;
15
+ padding: 30px 16px 0;
16
+ box-sizing: border-box;
17
+ }
18
+
19
+ &-title {
20
+ flex: 1;
21
+ overflow: hidden;
22
+ text-overflow: ellipsis;
23
+ white-space: nowrap;
24
+ text-align: left;
25
+ color: $quickenter-title-color;
26
+ font-size: $quickenter-title-font-size;
27
+ }
28
+
29
+ &-close-btn {
30
+ color: $quickenter-close-icon-color;
31
+ display: flex;
32
+ align-items: center;
33
+ justify-content: center;
34
+
35
+ svg,
36
+ .nut-icon {
37
+ width: $quickenter-close-icon-size;
38
+ height: $quickenter-close-icon-size;
39
+ }
40
+ }
41
+
42
+ &-content {
43
+ flex: 1;
44
+ padding: 10px 28px;
45
+ overflow-y: hidden; // Default: no scrolling
46
+ box-sizing: border-box;
47
+
48
+ &-scrollable {
49
+ overflow-y: auto; // Only scroll when > 8 items
50
+ -webkit-overflow-scrolling: touch;
51
+ }
52
+ }
53
+
54
+ &-list {
55
+ display: flex;
56
+ flex-wrap: wrap;
57
+ align-items: flex-start;
58
+ width: 100%;
59
+ }
60
+
61
+ &-item {
62
+ display: flex;
63
+ flex-direction: column;
64
+ align-items: center;
65
+ justify-content: flex-start;
66
+ width: 56px;
67
+ padding: 0 0 12px 0; // Reduced from 16px to ensure 2 rows fit in 256px
68
+ box-sizing: border-box;
69
+ cursor: pointer;
70
+
71
+ // Calculate gap for 4 items per row: (100% - 4 * 56px) / 3
72
+ margin-right: calc((100% - 224px) / 3);
73
+
74
+ &:nth-child(4n) {
75
+ margin-right: 0;
76
+ }
77
+
78
+ &-icon {
79
+ width: 56px;
80
+ height: 56px;
81
+ display: flex;
82
+ align-items: center;
83
+ justify-content: center;
84
+ border-radius: 50%;
85
+ background: $quickenter-item-icon-bg-color;
86
+ color: $quickenter-item-icon-color;
87
+ margin-bottom: 8px;
88
+ flex-shrink: 0;
89
+
90
+ svg,
91
+ .nut-icon {
92
+ width: 22px;
93
+ height: 22px;
94
+ }
95
+ }
96
+
97
+ &-title {
98
+ font-size: $quickenter-item-title-font-size;
99
+ color: $quickenter-item-title-color;
100
+ text-align: center;
101
+ line-height: 1.4;
102
+ // Allow multi-line if text is long, preventing truncation
103
+ white-space: normal;
104
+ word-wrap: break-word;
105
+ width: 72px; // Allow text to be slightly wider than icon
106
+ margin-left: -8px; // Center 72px title over 56px icon
107
+ margin-right: -8px;
108
+ }
109
+ }
110
+ }
@@ -0,0 +1,99 @@
1
+ /* #ifdef harmony */
2
+ /* #endif */
3
+ /* #ifndef harmony */
4
+ /* #endif */
5
+ .nut-quickenter {
6
+ width: 100%;
7
+ max-height: var(--nutui-quickenter-max-height, 256px);
8
+ background: var(--nutui-quickenter-bg-color, #f5f5f5);
9
+ border-radius: 0 0 12px 12px;
10
+ overflow: hidden;
11
+ box-sizing: border-box;
12
+ display: flex;
13
+ flex-direction: column;
14
+ }
15
+ .nut-quickenter-control {
16
+ display: flex;
17
+ align-items: center;
18
+ justify-content: space-between;
19
+ padding: 30px 16px 0;
20
+ box-sizing: border-box;
21
+ }
22
+ .nut-quickenter-title {
23
+ flex: 1;
24
+ overflow: hidden;
25
+ text-overflow: ellipsis;
26
+ white-space: nowrap;
27
+ text-align: left;
28
+ color: var(--nutui-quickenter-title-color, var(--nutui-color-title, #1a1a1a));
29
+ font-size: var(--nutui-quickenter-title-font-size, var(--nutui-font-size-base, 14px));
30
+ }
31
+ .nut-quickenter-close-btn {
32
+ color: var(--nutui-quickenter-close-icon-color, #808080);
33
+ display: flex;
34
+ align-items: center;
35
+ justify-content: center;
36
+ }
37
+ .nut-quickenter-close-btn svg,
38
+ .nut-quickenter-close-btn .nut-icon {
39
+ width: var(--nutui-quickenter-close-icon-size, 12px);
40
+ height: var(--nutui-quickenter-close-icon-size, 12px);
41
+ }
42
+ .nut-quickenter-content {
43
+ flex: 1;
44
+ padding: 10px 28px;
45
+ overflow-y: hidden;
46
+ box-sizing: border-box;
47
+ }
48
+ .nut-quickenter-content-scrollable {
49
+ overflow-y: auto;
50
+ -webkit-overflow-scrolling: touch;
51
+ }
52
+ .nut-quickenter-list {
53
+ display: flex;
54
+ flex-wrap: wrap;
55
+ align-items: flex-start;
56
+ width: 100%;
57
+ }
58
+ .nut-quickenter-item {
59
+ display: flex;
60
+ flex-direction: column;
61
+ align-items: center;
62
+ justify-content: flex-start;
63
+ width: 56px;
64
+ padding: 0 0 12px 0;
65
+ box-sizing: border-box;
66
+ cursor: pointer;
67
+ margin-right: calc((100% - 224px) / 3);
68
+ }
69
+ .nut-quickenter-item:nth-child(4n) {
70
+ margin-right: 0;
71
+ }
72
+ .nut-quickenter-item-icon {
73
+ width: 56px;
74
+ height: 56px;
75
+ display: flex;
76
+ align-items: center;
77
+ justify-content: center;
78
+ border-radius: 50%;
79
+ background: var(--nutui-quickenter-item-icon-bg-color, #ffffff);
80
+ color: var(--nutui-quickenter-item-icon-color, var(--nutui-color-title, #1a1a1a));
81
+ margin-bottom: 8px;
82
+ flex-shrink: 0;
83
+ }
84
+ .nut-quickenter-item-icon svg,
85
+ .nut-quickenter-item-icon .nut-icon {
86
+ width: 22px;
87
+ height: 22px;
88
+ }
89
+ .nut-quickenter-item-title {
90
+ font-size: var(--nutui-quickenter-item-title-font-size, var(--nutui-font-size-s, 12px));
91
+ color: var(--nutui-quickenter-item-title-color, var(--nutui-color-title, #1a1a1a));
92
+ text-align: center;
93
+ line-height: 1.4;
94
+ white-space: normal;
95
+ word-wrap: break-word;
96
+ width: 72px;
97
+ margin-left: -8px;
98
+ margin-right: -8px;
99
+ }