@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
@@ -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));
29
+ font-size: var(--nutui-quickenter-title-font-size, var(--nutui-font-text));
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));
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-text-small));
91
+ color: var(--nutui-quickenter-item-title-color, var(--nutui-color-title));
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
+ }
@@ -251,6 +251,9 @@
251
251
  }
252
252
  }
253
253
  @keyframes popup-slide-top-exit {
254
+ from {
255
+ transform: translate3d(0, 0%, 0);
256
+ }
254
257
  to {
255
258
  transform: translate3d(0, -100%, 0);
256
259
  }
@@ -275,6 +278,9 @@
275
278
  }
276
279
  }
277
280
  @keyframes popup-slide-right-exit {
281
+ from {
282
+ transform: translate3d(0%, 0, 0);
283
+ }
278
284
  to {
279
285
  transform: translate3d(100%, 0, 0);
280
286
  }
@@ -285,7 +291,7 @@
285
291
  animation-name: popup-slide-right-enter;
286
292
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
287
293
  }
288
- .nut-popup-slide-right-exit {
294
+ .nut-popup-slide-right-exit-active {
289
295
  animation-fill-mode: both;
290
296
  animation-name: popup-slide-right-exit;
291
297
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -298,20 +304,23 @@
298
304
  transform: translate3d(0, 0%, 0);
299
305
  }
300
306
  }
301
- @keyframes slide-bottom-exit {
307
+ @keyframes popup-slide-bottom-exit {
308
+ from {
309
+ transform: translate3d(0, 0%, 0);
310
+ }
302
311
  to {
303
312
  transform: translate3d(0, 100%, 0);
304
313
  }
305
314
  }
306
315
  .nut-popup-slide-bottom-enter-active, .nut-popup-slide-bottom-appear-active {
307
- transform: translate(0, 0);
316
+ transform: translate3d(0, 0, 0);
308
317
  animation-fill-mode: both;
309
318
  animation-name: popup-slide-bottom-enter;
310
319
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
311
320
  }
312
- .nut-popup-slide-bottom-exit {
321
+ .nut-popup-slide-bottom-exit-active {
313
322
  animation-fill-mode: both;
314
- animation-name: slide-bottom-exit;
323
+ animation-name: popup-slide-bottom-exit;
315
324
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
316
325
  }
317
326
  @keyframes popup-slide-left-enter {
@@ -323,17 +332,20 @@
323
332
  }
324
333
  }
325
334
  @keyframes popup-slide-left-exit {
335
+ from {
336
+ transform: translate3d(0%, 0, 0);
337
+ }
326
338
  to {
327
339
  transform: translate3d(-100%, 0, 0);
328
340
  }
329
341
  }
330
342
  .nut-popup-slide-left-enter-active, .nut-popup-slide-left-appear-active {
331
- transform: translate(0, 0);
343
+ transform: translate3d(0, 0, 0);
332
344
  animation-fill-mode: both;
333
345
  animation-name: popup-slide-left-enter;
334
346
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
335
347
  }
336
- .nut-popup-slide-left-exit-active, .nut-popup-slide-left-exit-done {
348
+ .nut-popup-slide-left-exit-active {
337
349
  animation-fill-mode: both;
338
350
  animation-name: popup-slide-left-exit;
339
351
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -251,6 +251,9 @@
251
251
  }
252
252
  }
253
253
  @keyframes popup-slide-top-exit {
254
+ from {
255
+ transform: translate3d(0, 0%, 0);
256
+ }
254
257
  to {
255
258
  transform: translate3d(0, -100%, 0);
256
259
  }
@@ -275,6 +278,9 @@
275
278
  }
276
279
  }
277
280
  @keyframes popup-slide-right-exit {
281
+ from {
282
+ transform: translate3d(0%, 0, 0);
283
+ }
278
284
  to {
279
285
  transform: translate3d(100%, 0, 0);
280
286
  }
@@ -285,7 +291,7 @@
285
291
  animation-name: popup-slide-right-enter;
286
292
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
287
293
  }
288
- .nut-popup-slide-right-exit {
294
+ .nut-popup-slide-right-exit-active {
289
295
  animation-fill-mode: both;
290
296
  animation-name: popup-slide-right-exit;
291
297
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -298,20 +304,23 @@
298
304
  transform: translate3d(0, 0%, 0);
299
305
  }
300
306
  }
301
- @keyframes slide-bottom-exit {
307
+ @keyframes popup-slide-bottom-exit {
308
+ from {
309
+ transform: translate3d(0, 0%, 0);
310
+ }
302
311
  to {
303
312
  transform: translate3d(0, 100%, 0);
304
313
  }
305
314
  }
306
315
  .nut-popup-slide-bottom-enter-active, .nut-popup-slide-bottom-appear-active {
307
- transform: translate(0, 0);
316
+ transform: translate3d(0, 0, 0);
308
317
  animation-fill-mode: both;
309
318
  animation-name: popup-slide-bottom-enter;
310
319
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
311
320
  }
312
- .nut-popup-slide-bottom-exit {
321
+ .nut-popup-slide-bottom-exit-active {
313
322
  animation-fill-mode: both;
314
- animation-name: slide-bottom-exit;
323
+ animation-name: popup-slide-bottom-exit;
315
324
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
316
325
  }
317
326
  @keyframes popup-slide-left-enter {
@@ -323,17 +332,20 @@
323
332
  }
324
333
  }
325
334
  @keyframes popup-slide-left-exit {
335
+ from {
336
+ transform: translate3d(0%, 0, 0);
337
+ }
326
338
  to {
327
339
  transform: translate3d(-100%, 0, 0);
328
340
  }
329
341
  }
330
342
  .nut-popup-slide-left-enter-active, .nut-popup-slide-left-appear-active {
331
- transform: translate(0, 0);
343
+ transform: translate3d(0, 0, 0);
332
344
  animation-fill-mode: both;
333
345
  animation-name: popup-slide-left-enter;
334
346
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
335
347
  }
336
- .nut-popup-slide-left-exit-active, .nut-popup-slide-left-exit-done {
348
+ .nut-popup-slide-left-exit-active {
337
349
  animation-fill-mode: both;
338
350
  animation-name: popup-slide-left-exit;
339
351
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -251,6 +251,9 @@
251
251
  }
252
252
  }
253
253
  @keyframes popup-slide-top-exit {
254
+ from {
255
+ transform: translate3d(0, 0%, 0);
256
+ }
254
257
  to {
255
258
  transform: translate3d(0, -100%, 0);
256
259
  }
@@ -275,6 +278,9 @@
275
278
  }
276
279
  }
277
280
  @keyframes popup-slide-right-exit {
281
+ from {
282
+ transform: translate3d(0%, 0, 0);
283
+ }
278
284
  to {
279
285
  transform: translate3d(100%, 0, 0);
280
286
  }
@@ -285,7 +291,7 @@
285
291
  animation-name: popup-slide-right-enter;
286
292
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
287
293
  }
288
- .nut-popup-slide-right-exit {
294
+ .nut-popup-slide-right-exit-active {
289
295
  animation-fill-mode: both;
290
296
  animation-name: popup-slide-right-exit;
291
297
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -298,20 +304,23 @@
298
304
  transform: translate3d(0, 0%, 0);
299
305
  }
300
306
  }
301
- @keyframes slide-bottom-exit {
307
+ @keyframes popup-slide-bottom-exit {
308
+ from {
309
+ transform: translate3d(0, 0%, 0);
310
+ }
302
311
  to {
303
312
  transform: translate3d(0, 100%, 0);
304
313
  }
305
314
  }
306
315
  .nut-popup-slide-bottom-enter-active, .nut-popup-slide-bottom-appear-active {
307
- transform: translate(0, 0);
316
+ transform: translate3d(0, 0, 0);
308
317
  animation-fill-mode: both;
309
318
  animation-name: popup-slide-bottom-enter;
310
319
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
311
320
  }
312
- .nut-popup-slide-bottom-exit {
321
+ .nut-popup-slide-bottom-exit-active {
313
322
  animation-fill-mode: both;
314
- animation-name: slide-bottom-exit;
323
+ animation-name: popup-slide-bottom-exit;
315
324
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
316
325
  }
317
326
  @keyframes popup-slide-left-enter {
@@ -323,17 +332,20 @@
323
332
  }
324
333
  }
325
334
  @keyframes popup-slide-left-exit {
335
+ from {
336
+ transform: translate3d(0%, 0, 0);
337
+ }
326
338
  to {
327
339
  transform: translate3d(-100%, 0, 0);
328
340
  }
329
341
  }
330
342
  .nut-popup-slide-left-enter-active, .nut-popup-slide-left-appear-active {
331
- transform: translate(0, 0);
343
+ transform: translate3d(0, 0, 0);
332
344
  animation-fill-mode: both;
333
345
  animation-name: popup-slide-left-enter;
334
346
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
335
347
  }
336
- .nut-popup-slide-left-exit-active, .nut-popup-slide-left-exit-done {
348
+ .nut-popup-slide-left-exit-active {
337
349
  animation-fill-mode: both;
338
350
  animation-name: popup-slide-left-exit;
339
351
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -262,3 +262,6 @@ export * from './spec/audio/taro';
262
262
  export * from './spec/steps/base';
263
263
  export * from './spec/steps/h5';
264
264
  export * from './spec/steps/taro';
265
+ export * from './spec/quickenter/base';
266
+ export * from './spec/quickenter/h5';
267
+ export * from './spec/quickenter/taro';
@@ -262,3 +262,6 @@ export * from "./spec/audio/taro";
262
262
  export * from "./spec/steps/base";
263
263
  export * from "./spec/steps/h5";
264
264
  export * from "./spec/steps/taro";
265
+ export * from "./spec/quickenter/base";
266
+ export * from "./spec/quickenter/h5";
267
+ export * from "./spec/quickenter/taro";
@@ -0,0 +1,44 @@
1
+ import { ReactNode } from 'react';
2
+ import { BaseProps } from '../../base/props';
3
+ export type QuickEnterRef = QuickEnterActions;
4
+ export type QuickEnterActions = {
5
+ open: () => void;
6
+ close: () => void;
7
+ };
8
+ export interface QuickEnterOption extends Record<string, any> {
9
+ title?: string;
10
+ icon?: ReactNode;
11
+ type?: string;
12
+ url?: string;
13
+ badge?: boolean | ReactNode;
14
+ badgeProps?: any;
15
+ }
16
+ export interface BaseQuickEnter<POPUP_PROPS = any> extends BaseProps {
17
+ /**
18
+ * 是否可见
19
+ */
20
+ visible?: boolean
21
+ /**
22
+ * 标题
23
+ */
24
+ title?: ReactNode
25
+ /**
26
+ * 选项列表
27
+ */
28
+ options?: QuickEnterOption[]
29
+ /**
30
+ * 透传给 Popup 组件的属性
31
+ */
32
+ popupProps?: POPUP_PROPS
33
+ /**
34
+ * 是否在点击遮罩层后关闭
35
+ */
36
+ closeOnOverlayClick?: boolean
37
+ /**
38
+ * 自定义关闭图标
39
+ */
40
+ closeIcon?: ReactNode
41
+ onClose?: () => void;
42
+ onChange?: (item: QuickEnterOption, index: number) => void;
43
+ children?: ReactNode;
44
+ }
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,5 @@
1
+ import { BaseQuickEnter, QuickEnterOption } from './base';
2
+ import { WebPopupProps } from '../popup/h5';
3
+ export interface WebQuickEnterProps extends BaseQuickEnter<WebPopupProps> {
4
+ }
5
+ export type { QuickEnterOption };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,5 @@
1
+ import { BaseQuickEnter, QuickEnterOption } from './base';
2
+ import { TaroPopupProps } from '../popup/taro';
3
+ export interface TaroQuickEnterProps extends BaseQuickEnter<TaroPopupProps> {
4
+ }
5
+ export type { QuickEnterOption };
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,15 @@
1
+ import React from 'react';
2
+ export type TransitionStatus = 'entering' | 'entered' | 'exiting' | 'exited' | 'unmounted';
3
+ interface CSSTransitionProps {
4
+ in?: boolean;
5
+ timeout?: number;
6
+ classNames?: string;
7
+ nodeRef?: React.RefObject<any>;
8
+ mountOnEnter?: boolean;
9
+ unmountOnExit?: boolean;
10
+ onEntered?: () => void;
11
+ onExited?: () => void;
12
+ children: React.ReactElement;
13
+ }
14
+ declare const ConfigurableCSSTransition: React.FC<CSSTransitionProps>;
15
+ export default ConfigurableCSSTransition;
@@ -0,0 +1,79 @@
1
+ import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
2
+ import React, { useState, useEffect, useRef, cloneElement, useCallback } from "react";
3
+ var ConfigurableCSSTransition = function(props) {
4
+ var inPhase = props.in, _props_timeout = props.timeout, timeout = _props_timeout === void 0 ? 300 : _props_timeout, tmp = props.classNames, baseClassName = tmp === void 0 ? '' : tmp, nodeRef = props.nodeRef, mountOnEnter = props.mountOnEnter, unmountOnExit = props.unmountOnExit, onEntered = props.onEntered, onExited = props.onExited, children = props.children;
5
+ var _useState = _sliced_to_array(useState(function() {
6
+ if (inPhase) return 'entered';
7
+ return unmountOnExit || mountOnEnter ? 'unmounted' : 'exited';
8
+ }), 2), status = _useState[0], setStatus = _useState[1];
9
+ var _useState1 = _sliced_to_array(useState(function() {
10
+ if (inPhase) return "".concat(baseClassName, "-enter-done");
11
+ return "".concat(baseClassName, "-exit-done");
12
+ }), 2), classes = _useState1[0], setClasses = _useState1[1];
13
+ var timerRef = useRef(null);
14
+ var statusRef = useRef(status);
15
+ var prevInPhase = useRef(inPhase);
16
+ var updateStatus = useCallback(function(nextStatus) {
17
+ statusRef.current = nextStatus;
18
+ setStatus(nextStatus);
19
+ }, []);
20
+ var enter = useCallback(function() {
21
+ if (timerRef.current) clearTimeout(timerRef.current);
22
+ if (statusRef.current === 'unmounted') {
23
+ updateStatus('exited');
24
+ }
25
+ updateStatus('entering');
26
+ setClasses("".concat(baseClassName, "-enter ").concat(baseClassName, "-enter-active"));
27
+ timerRef.current = setTimeout(function() {
28
+ updateStatus('entered');
29
+ setClasses("".concat(baseClassName, "-enter-done"));
30
+ onEntered === null || onEntered === void 0 ? void 0 : onEntered();
31
+ }, timeout);
32
+ }, [
33
+ baseClassName,
34
+ onEntered,
35
+ timeout,
36
+ updateStatus
37
+ ]);
38
+ var exit = useCallback(function() {
39
+ if (timerRef.current) clearTimeout(timerRef.current);
40
+ updateStatus('exiting');
41
+ setClasses("".concat(baseClassName, "-exit ").concat(baseClassName, "-exit-active"));
42
+ timerRef.current = setTimeout(function() {
43
+ updateStatus('exited');
44
+ setClasses("".concat(baseClassName, "-exit-done"));
45
+ if (unmountOnExit) {
46
+ updateStatus('unmounted');
47
+ }
48
+ onExited === null || onExited === void 0 ? void 0 : onExited();
49
+ }, timeout);
50
+ }, [
51
+ baseClassName,
52
+ onExited,
53
+ timeout,
54
+ unmountOnExit,
55
+ updateStatus
56
+ ]);
57
+ useEffect(function() {
58
+ if (prevInPhase.current !== inPhase) {
59
+ if (inPhase) {
60
+ enter();
61
+ } else {
62
+ exit();
63
+ }
64
+ prevInPhase.current = inPhase;
65
+ }
66
+ return function() {
67
+ if (timerRef.current) clearTimeout(timerRef.current);
68
+ };
69
+ }, [
70
+ inPhase,
71
+ enter,
72
+ exit
73
+ ]);
74
+ if (status === 'unmounted') return null;
75
+ return /*#__PURE__*/ cloneElement(children, {
76
+ className: "".concat(children.props.className || '', " ").concat(classes)
77
+ });
78
+ };
79
+ export default ConfigurableCSSTransition;