@nutui/nutui-react 3.0.6 → 3.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/CHANGELOG.md +34 -15
  2. package/dist/cjs/packages/actionsheet/style/style.css +4 -4
  3. package/dist/cjs/packages/address/style/style.css +4 -4
  4. package/dist/cjs/packages/audio/style/style.css +4 -16
  5. package/dist/cjs/packages/button/style/button.scss +4 -20
  6. package/dist/cjs/packages/button/style/style.css +4 -16
  7. package/dist/cjs/packages/calendar/style/style.css +4 -4
  8. package/dist/cjs/packages/cascader/style/style.css +4 -4
  9. package/dist/cjs/packages/collapse/style/style.css +22 -7
  10. package/dist/cjs/packages/collapseitem/collapseitem.js +46 -44
  11. package/dist/cjs/packages/collapseitem/style/collapseitem.scss +22 -5
  12. package/dist/cjs/packages/collapseitem/style/style.css +22 -7
  13. package/dist/cjs/packages/configprovider/types.d.ts +1 -1
  14. package/dist/cjs/packages/datepicker/style/style.css +4 -4
  15. package/dist/cjs/packages/dialog/confirm.d.ts +2 -3
  16. package/dist/cjs/packages/dialog/confirm.js +4 -18
  17. package/dist/cjs/packages/dialog/content.d.ts +11 -3
  18. package/dist/cjs/packages/dialog/dialog.d.ts +1 -1
  19. package/dist/cjs/packages/dialog/dialog.js +98 -69
  20. package/dist/cjs/packages/dialog/index.d.ts +1 -1
  21. package/dist/cjs/packages/dialog/style/style.css +4 -16
  22. package/dist/cjs/packages/empty/style/style.css +4 -16
  23. package/dist/cjs/packages/imagepreview/style/style.css +4 -4
  24. package/dist/cjs/packages/numberkeyboard/style/style.css +4 -4
  25. package/dist/cjs/packages/picker/style/style.css +4 -4
  26. package/dist/cjs/packages/popover/popover.js +72 -65
  27. package/dist/cjs/packages/popover/style/popover.scss +48 -51
  28. package/dist/cjs/packages/popover/style/style.css +64 -70
  29. package/dist/cjs/packages/popup/style/popup.scss +4 -4
  30. package/dist/cjs/packages/popup/style/style.css +4 -4
  31. package/dist/cjs/packages/resultpage/style/style.css +4 -16
  32. package/dist/cjs/packages/shortpassword/style/style.css +4 -4
  33. package/dist/cjs/packages/switch/switch.js +2 -2
  34. package/dist/cjs/packages/tabpane/tabpane.js +2 -2
  35. package/dist/cjs/packages/timeselect/style/style.css +4 -4
  36. package/dist/cjs/packages/tour/style/style.css +64 -70
  37. package/dist/cjs/types/spec/dialog/base.d.ts +50 -1
  38. package/dist/cjs/types/spec/dialog/base.js +7 -0
  39. package/dist/cjs/types/spec/dialog/h5.d.ts +4 -1
  40. package/dist/cjs/types/spec/dialog/taro.d.ts +8 -2
  41. package/dist/cjs/types/spec/popover/base.d.ts +7 -0
  42. package/dist/cjs/utils/get-rect-by-taro.js +10 -0
  43. package/dist/cjs/utils/lru.d.ts +8 -0
  44. package/dist/cjs/utils/lru.js +58 -0
  45. package/dist/es/packages/actionsheet/style/style.css +4 -4
  46. package/dist/es/packages/address/style/style.css +4 -4
  47. package/dist/es/packages/audio/style/style.css +4 -16
  48. package/dist/es/packages/button/style/button.scss +4 -20
  49. package/dist/es/packages/button/style/style.css +4 -16
  50. package/dist/es/packages/calendar/style/style.css +4 -4
  51. package/dist/es/packages/cascader/style/style.css +4 -4
  52. package/dist/es/packages/collapse/style/style.css +22 -7
  53. package/dist/es/packages/collapseitem/collapseitem.js +47 -45
  54. package/dist/es/packages/collapseitem/style/collapseitem.scss +22 -5
  55. package/dist/es/packages/collapseitem/style/style.css +22 -7
  56. package/dist/es/packages/configprovider/types.d.ts +1 -1
  57. package/dist/es/packages/datepicker/style/style.css +4 -4
  58. package/dist/es/packages/dialog/confirm.d.ts +2 -3
  59. package/dist/es/packages/dialog/confirm.js +1 -8
  60. package/dist/es/packages/dialog/content.d.ts +11 -3
  61. package/dist/es/packages/dialog/dialog.d.ts +1 -1
  62. package/dist/es/packages/dialog/dialog.js +98 -69
  63. package/dist/es/packages/dialog/index.d.ts +1 -1
  64. package/dist/es/packages/dialog/style/style.css +4 -16
  65. package/dist/es/packages/empty/style/style.css +4 -16
  66. package/dist/es/packages/imagepreview/style/style.css +4 -4
  67. package/dist/es/packages/numberkeyboard/style/style.css +4 -4
  68. package/dist/es/packages/picker/style/style.css +4 -4
  69. package/dist/es/packages/popover/popover.js +72 -65
  70. package/dist/es/packages/popover/style/popover.scss +48 -51
  71. package/dist/es/packages/popover/style/style.css +64 -70
  72. package/dist/es/packages/popup/style/popup.scss +4 -4
  73. package/dist/es/packages/popup/style/style.css +4 -4
  74. package/dist/es/packages/resultpage/style/style.css +4 -16
  75. package/dist/es/packages/shortpassword/style/style.css +4 -4
  76. package/dist/es/packages/switch/switch.js +2 -2
  77. package/dist/es/packages/tabpane/tabpane.js +2 -2
  78. package/dist/es/packages/timeselect/style/style.css +4 -4
  79. package/dist/es/packages/tour/style/style.css +64 -70
  80. package/dist/es/types/spec/dialog/base.d.ts +83 -1
  81. package/dist/es/types/spec/dialog/base.js +1 -1
  82. package/dist/es/types/spec/dialog/h5.d.ts +4 -1
  83. package/dist/es/types/spec/dialog/taro.d.ts +8 -2
  84. package/dist/es/types/spec/popover/base.d.ts +7 -0
  85. package/dist/es/utils/get-rect-by-taro.js +9 -0
  86. package/dist/es/utils/lru.d.ts +8 -0
  87. package/dist/es/utils/lru.js +49 -0
  88. package/dist/nutui.react.umd.js +227 -249
  89. package/dist/style.css +1 -1
  90. package/dist/style.scss +42 -42
  91. package/dist/styles/theme-jmapp.scss +1 -0
  92. package/dist/styles/themes/jmapp.css +1 -1
  93. package/dist/styles/variables-jmapp.scss +214 -49
  94. package/dist/styles/variables-jrkf.scss +2 -13
  95. package/dist/styles/variables.scss +3 -14
  96. package/package.json +1 -1
  97. package/dist/cjs/packages/dialog/dialogwrap.d.ts +0 -4
  98. package/dist/cjs/packages/dialog/dialogwrap.js +0 -79
  99. package/dist/cjs/packages/dialog/types.d.ts +0 -57
  100. package/dist/cjs/packages/dialog/types.js +0 -11
  101. package/dist/es/packages/dialog/dialogwrap.d.ts +0 -4
  102. package/dist/es/packages/dialog/dialogwrap.js +0 -60
  103. package/dist/es/packages/dialog/types.d.ts +0 -57
  104. package/dist/es/packages/dialog/types.js +0 -1
@@ -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 {
@@ -411,12 +411,13 @@
411
411
  top: 50%;
412
412
  transform: rotate(90deg) translateY(-50%);
413
413
  }
414
- .nut-popover-arrow-left.nut-popover-arrow-left-start {
414
+ .nut-popover-arrow-left.nut-popover-arrow-left-top {
415
415
  top: 16px;
416
416
  right: -8px;
417
417
  transform: rotate(90deg) translateY(0%);
418
418
  }
419
- .nut-popover-arrow-left.nut-popover-arrow-left-end {
419
+ .nut-popover-arrow-left.nut-popover-arrow-left-bottom {
420
+ top: auto;
420
421
  bottom: 16px;
421
422
  right: -8px;
422
423
  transform: rotate(90deg) translateY(0%);
@@ -429,12 +430,12 @@
429
430
  left: -6px;
430
431
  transform: rotate(-90deg) translateY(-50%);
431
432
  }
432
- .nut-popover-arrow-right.nut-popover-arrow-right-start {
433
+ .nut-popover-arrow-right.nut-popover-arrow-right-top {
433
434
  top: 16px;
434
435
  left: -8px;
435
436
  transform: rotate(-90deg) translateY(0%);
436
437
  }
437
- .nut-popover-arrow-right.nut-popover-arrow-right-end {
438
+ .nut-popover-arrow-right.nut-popover-arrow-right-bottom {
438
439
  bottom: 16px;
439
440
  left: -8px;
440
441
  transform: rotate(-90deg) translateY(0%);
@@ -449,57 +450,51 @@
449
450
  max-height: initial;
450
451
  overflow-y: initial;
451
452
  }
452
- .nut-popover .nut-popover-content .nut-popover-menu-item {
453
+ .nut-popover .nut-popover-content-group {
454
+ padding: 0 var(--nutui-popover-padding, 8px);
455
+ }
456
+ .nut-popover .nut-popover-content .nut-popover-item {
453
457
  display: flex;
454
458
  align-items: center;
455
459
  justify-content: center;
456
- padding: 0 var(--nutui-popover-menu-item-padding, 8px);
457
460
  border-bottom: 1px solid var(--nutui-popover-divider-color, var(--nutui-color-border, rgba(0, 0, 0, 0.06)));
458
- max-width: var(--nutui-popover-menu-item-width, 160px);
461
+ max-width: var(--nutui-popover-item-width, 160px);
459
462
  word-wrap: break-word;
460
463
  }
461
- .nut-popover .nut-popover-content .nut-popover-menu-item:last-child {
464
+ .nut-popover .nut-popover-content .nut-popover-item:last-child {
462
465
  margin-bottom: 0px;
463
466
  border-bottom: none;
464
467
  }
465
- .nut-popover .nut-popover-content .nut-popover-menu-item-icon {
468
+ .nut-popover .nut-popover-content .nut-popover-item-icon, .nut-popover .nut-popover-content .nut-popover-item-action-icon {
466
469
  display: flex;
467
470
  justify-content: center;
468
471
  align-items: center;
469
- width: 12px;
470
- height: 12px;
471
- font-size: 12px;
472
+ width: var(--nutui-font-size-s, 12px);
473
+ height: var(--nutui-font-size-s, 12px);
474
+ font-size: var(--nutui-font-size-s, 12px);
475
+ }
476
+ .nut-popover .nut-popover-content .nut-popover-item-icon .nut-icon, .nut-popover .nut-popover-content .nut-popover-item-action-icon .nut-icon {
477
+ width: var(--nutui-font-size-s, 12px);
478
+ height: var(--nutui-font-size-s, 12px);
479
+ font-size: var(--nutui-font-size-s, 12px);
472
480
  }
473
- .nut-popover .nut-popover-content .nut-popover-menu-item-icon .nut-icon {
474
- width: 12px;
475
- height: 12px;
476
- font-size: 12px;
481
+ .nut-popover .nut-popover-content .nut-popover-item-icon {
482
+ margin-right: var(--nutui-spacing-xxs, 4px);
477
483
  }
478
- .nut-popover .nut-popover-content .nut-popover-menu-item-name {
484
+ .nut-popover .nut-popover-content .nut-popover-item-name {
479
485
  width: calc(100% - 34px);
480
486
  word-break: keep-all;
481
- margin: 0 8px 0 4px;
482
487
  flex: 1;
483
488
  }
484
- .nut-popover .nut-popover-content .nut-popover-menu-item-action-icon {
485
- display: flex;
486
- justify-content: center;
487
- align-items: center;
488
- width: 12px;
489
- height: 12px;
490
- font-size: 12px;
489
+ .nut-popover .nut-popover-content .nut-popover-item-action-icon {
491
490
  color: var(--nutui-color-text, #505259);
491
+ margin-left: var(--nutui-spacing-base, 8px);
492
492
  }
493
- .nut-popover .nut-popover-content .nut-popover-menu-item-action-icon .nut-icon {
494
- width: 12px;
495
- height: 12px;
496
- font-size: 12px;
497
- }
498
- .nut-popover .nut-popover-content .nut-popover-menu-item.nut-popover-menu-disabled {
493
+ .nut-popover .nut-popover-content .nut-popover-item.nut-popover-item-disabled {
499
494
  color: var(--nutui-popover-disable-color, var(--nutui-color-text-disabled, #c2c4cc));
500
495
  cursor: not-allowed;
501
496
  }
502
- .nut-popover .nut-popover-content .nut-popover-menu-item.nut-popover-menu-taroitem {
497
+ .nut-popover .nut-popover-content .nut-popover-item.nut-popover-taroitem {
503
498
  display: flex;
504
499
  }
505
500
  .nut-popover .nut-popover-content-top .nut-popover-arrow-top {
@@ -507,18 +502,18 @@
507
502
  transform-origin: center left;
508
503
  transform: rotate(180deg) translateX(-50%);
509
504
  }
510
- .nut-popover .nut-popover-content-top-end {
505
+ .nut-popover .nut-popover-content-top-right {
511
506
  right: 0;
512
507
  }
513
- .nut-popover .nut-popover-content-top-end .nut-popover-arrow-top-end {
508
+ .nut-popover .nut-popover-content-top-right .nut-popover-arrow-top-right {
514
509
  right: 16px;
515
510
  bottom: -3.5px;
516
511
  transform: rotate(180deg) translateX(0%);
517
512
  }
518
- .nut-popover .nut-popover-content-top-start {
513
+ .nut-popover .nut-popover-content-top-left {
519
514
  left: 0;
520
515
  }
521
- .nut-popover .nut-popover-content-top-start .nut-popover-arrow-top-start {
516
+ .nut-popover .nut-popover-content-top-left .nut-popover-arrow-top-left {
522
517
  left: 16px;
523
518
  bottom: -3.5px;
524
519
  transform: rotate(180deg) translateX(0%);
@@ -527,30 +522,30 @@
527
522
  left: 50%;
528
523
  transform: translateX(-50%);
529
524
  }
530
- .nut-popover .nut-popover-content-bottom-end {
525
+ .nut-popover .nut-popover-content-bottom-right {
531
526
  right: 0;
532
527
  }
533
- .nut-popover .nut-popover-content-bottom-end .nut-popover-arrow-bottom-end {
528
+ .nut-popover .nut-popover-content-bottom-right .nut-popover-arrow-bottom-right {
534
529
  right: 16px;
535
530
  transform: translateX(0%);
536
531
  }
537
- .nut-popover .nut-popover-content-bottom-start {
532
+ .nut-popover .nut-popover-content-bottom-left {
538
533
  left: 0;
539
534
  }
540
- .nut-popover .nut-popover-content-bottom-start .nut-popover-arrow-bottom-start {
535
+ .nut-popover .nut-popover-content-bottom-left .nut-popover-arrow-bottom-left {
541
536
  left: 16px;
542
537
  transform: translateX(0%);
543
538
  }
544
- .nut-popover .nut-popover-content-left-end {
539
+ .nut-popover .nut-popover-content-left-bottom {
545
540
  bottom: 0;
546
541
  }
547
- .nut-popover .nut-popover-content-left-start {
542
+ .nut-popover .nut-popover-content-left-top {
548
543
  top: 0;
549
544
  }
550
- .nut-popover .nut-popover-content-right-end {
545
+ .nut-popover .nut-popover-content-right-bottom {
551
546
  bottom: 0;
552
547
  }
553
- .nut-popover .nut-popover-content-right-start {
548
+ .nut-popover .nut-popover-content-right-top {
554
549
  top: 0;
555
550
  }
556
551
 
@@ -565,19 +560,18 @@
565
560
  background: var(--nutui-popover-text-color, var(--nutui-color-mask, rgba(0, 0, 0, 0.7))) !important;
566
561
  color: var(--nutui-popover-content-background-color, #ffffff) !important;
567
562
  }
568
- .nut-popover-dark .nut-popover-content .nut-popover-menu-item-action-icon {
563
+ .nut-popover-dark .nut-popover-content .nut-popover-item-action-icon {
569
564
  color: rgba(255, 255, 255, 0.8);
570
565
  }
571
566
 
572
- [dir=rtl] .nut-popover .nut-popover-content .nut-popover-menu-item-name,
573
- .nut-rtl .nut-popover .nut-popover-content .nut-popover-menu-item-name {
567
+ [dir=rtl] .nut-popover .nut-popover-content .nut-popover-item-name,
568
+ .nut-rtl .nut-popover .nut-popover-content .nut-popover-item-name {
574
569
  margin-left: 0;
575
570
  margin-right: 4px;
576
571
  }
577
- [dir=rtl] .nut-popover .nut-popover-content .nut-popover-menu-item-action-icon,
578
- .nut-rtl .nut-popover .nut-popover-content .nut-popover-menu-item-action-icon {
572
+ [dir=rtl] .nut-popover .nut-popover-content .nut-popover-item-action-icon,
573
+ .nut-rtl .nut-popover .nut-popover-content .nut-popover-item-action-icon {
579
574
  right: auto;
580
- left: var(--nutui-popover-menu-item-padding, 8px);
581
575
  }
582
576
  [dir=rtl] .nut-popover .nut-popover-content-top .nut-popover-arrow-top,
583
577
  .nut-rtl .nut-popover .nut-popover-content-top .nut-popover-arrow-top {
@@ -585,23 +579,23 @@
585
579
  right: 50%;
586
580
  transform: translateX(50%);
587
581
  }
588
- [dir=rtl] .nut-popover .nut-popover-content-top-end,
589
- .nut-rtl .nut-popover .nut-popover-content-top-end {
582
+ [dir=rtl] .nut-popover .nut-popover-content-top-right,
583
+ .nut-rtl .nut-popover .nut-popover-content-top-right {
590
584
  right: auto;
591
585
  left: 0;
592
586
  }
593
- [dir=rtl] .nut-popover .nut-popover-content-top-end .nut-popover-arrow-top-end,
594
- .nut-rtl .nut-popover .nut-popover-content-top-end .nut-popover-arrow-top-end {
587
+ [dir=rtl] .nut-popover .nut-popover-content-top-right .nut-popover-arrow-top-right,
588
+ .nut-rtl .nut-popover .nut-popover-content-top-right .nut-popover-arrow-top-right {
595
589
  right: auto;
596
590
  left: 16px;
597
591
  }
598
- [dir=rtl] .nut-popover .nut-popover-content-top-start,
599
- .nut-rtl .nut-popover .nut-popover-content-top-start {
592
+ [dir=rtl] .nut-popover .nut-popover-content-top-left,
593
+ .nut-rtl .nut-popover .nut-popover-content-top-left {
600
594
  left: auto;
601
595
  right: 0;
602
596
  }
603
- [dir=rtl] .nut-popover .nut-popover-content-top-start .nut-popover-arrow-top-start,
604
- .nut-rtl .nut-popover .nut-popover-content-top-start .nut-popover-arrow-top-start {
597
+ [dir=rtl] .nut-popover .nut-popover-content-top-left .nut-popover-arrow-top-left,
598
+ .nut-rtl .nut-popover .nut-popover-content-top-left .nut-popover-arrow-top-left {
605
599
  left: auto;
606
600
  right: 16px;
607
601
  }
@@ -611,23 +605,23 @@
611
605
  right: 50%;
612
606
  transform: translateX(50%);
613
607
  }
614
- [dir=rtl] .nut-popover .nut-popover-content-bottom-end,
615
- .nut-rtl .nut-popover .nut-popover-content-bottom-end {
608
+ [dir=rtl] .nut-popover .nut-popover-content-bottom-right,
609
+ .nut-rtl .nut-popover .nut-popover-content-bottom-right {
616
610
  right: auto;
617
611
  left: 0;
618
612
  }
619
- [dir=rtl] .nut-popover .nut-popover-content-bottom-end .nut-popover-arrow-bottom-end,
620
- .nut-rtl .nut-popover .nut-popover-content-bottom-end .nut-popover-arrow-bottom-end {
613
+ [dir=rtl] .nut-popover .nut-popover-content-bottom-right .nut-popover-arrow-bottom-right,
614
+ .nut-rtl .nut-popover .nut-popover-content-bottom-right .nut-popover-arrow-bottom-right {
621
615
  right: auto;
622
616
  left: 16px;
623
617
  }
624
- [dir=rtl] .nut-popover .nut-popover-content-bottom-start,
625
- .nut-rtl .nut-popover .nut-popover-content-bottom-start {
618
+ [dir=rtl] .nut-popover .nut-popover-content-bottom-left,
619
+ .nut-rtl .nut-popover .nut-popover-content-bottom-left {
626
620
  left: auto;
627
621
  right: 0;
628
622
  }
629
- [dir=rtl] .nut-popover .nut-popover-content-bottom-start .nut-popover-arrow-bottom-start,
630
- .nut-rtl .nut-popover .nut-popover-content-bottom-start .nut-popover-arrow-bottom-start {
623
+ [dir=rtl] .nut-popover .nut-popover-content-bottom-left .nut-popover-arrow-bottom-left,
624
+ .nut-rtl .nut-popover .nut-popover-content-bottom-left .nut-popover-arrow-bottom-left {
631
625
  left: auto;
632
626
  right: 16px;
633
627
  }
@@ -1,2 +1,51 @@
1
- export interface BaseDialog {
1
+ import { ReactNode, ForwardRefExoticComponent, PropsWithChildren } from 'react';
2
+ import type { MouseEvent, CSSProperties } from 'react';
3
+ import { WebOverlayProps } from "../../../types";
4
+ import { BasicComponent } from "../../../utils/typings";
5
+ export type DialogConfigType = {
6
+ prefixCls?: string;
7
+ simple?: boolean;
8
+ };
9
+ export type DialogCloseIconPosition = 'top-right' | 'top-left' | 'bottom';
10
+ export type DialogFooterDirection = 'horizontal' | 'vertical';
11
+ export interface BaseContentProps extends BasicComponent {
12
+ visible: boolean;
13
+ title: ReactNode;
14
+ header: ReactNode;
15
+ footer: ReactNode;
16
+ close: ReactNode;
17
+ footerDirection: DialogFooterDirection;
2
18
  }
19
+ export interface DialogWrapProps extends WebOverlayProps, Omit<BaseContentProps, 'onClick'> {
20
+ visible: boolean;
21
+ overlay: boolean;
22
+ overlayStyle: CSSProperties;
23
+ overlayClassName: string;
24
+ onCancel: () => void;
25
+ onClose: () => void;
26
+ onOverlayClick: (e: MouseEvent) => boolean | void;
27
+ }
28
+ export interface BaseDialog extends DialogWrapProps {
29
+ content: ReactNode;
30
+ confirmText: ReactNode;
31
+ cancelText: ReactNode;
32
+ hideConfirmButton: boolean;
33
+ hideCancelButton: boolean;
34
+ disableConfirmButton: boolean;
35
+ closeIconPosition: DialogCloseIconPosition;
36
+ closeIcon: boolean | ReactNode;
37
+ beforeClose: () => boolean;
38
+ beforeCancel: () => boolean;
39
+ onConfirm: (e?: MouseEvent<HTMLButtonElement>) => PromiseLike<any> | void;
40
+ }
41
+ export type DialogReturnProps = {
42
+ update: (newConfig: Partial<BaseDialog>) => void;
43
+ close: () => void;
44
+ };
45
+ export interface DialogComponent extends ForwardRefExoticComponent<PropsWithChildren<Partial<BaseDialog>>> {
46
+ confirm: (props: Partial<BaseDialog>) => DialogReturnProps;
47
+ alert: (props: Partial<BaseDialog>) => DialogReturnProps;
48
+ config: (config: DialogConfigType) => void;
49
+ destroyAll: () => void;
50
+ }
51
+ export declare const destroyList: Array<() => void>;
@@ -2,3 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
+ Object.defineProperty(exports, "destroyList", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return destroyList;
9
+ }
10
+ });
11
+ var destroyList = [];
@@ -1,3 +1,6 @@
1
- import { BaseDialog } from './base';
1
+ import { BaseDialog, BaseContentProps } from './base';
2
+ export interface WebContentProps extends BaseContentProps {
3
+ onClick: (event: MouseEvent) => void;
4
+ }
2
5
  export interface WebDialogProps extends BaseDialog {
3
6
  }
@@ -1,3 +1,9 @@
1
- import { BaseDialog } from './base';
2
- export interface TaroDialogProps extends BaseDialog {
1
+ import { ITouchEvent } from '@tarojs/components';
2
+ import { BaseDialog, BaseContentProps } from './base';
3
+ export interface TaroContentProps extends BaseContentProps {
4
+ onClick: (event: ITouchEvent) => void;
5
+ }
6
+ export interface TaroDialogProps extends Omit<BaseDialog, 'onOverlayClick' | 'onClick'> {
7
+ onClick: (event: ITouchEvent) => void;
8
+ onOverlayClick: (event: ITouchEvent) => boolean | void;
3
9
  }
@@ -12,6 +12,13 @@ export interface PopoverList {
12
12
  onClick?: (e: any) => void;
13
13
  };
14
14
  }
15
+ export interface WrapperPosition {
16
+ width: number;
17
+ height: number;
18
+ left: number;
19
+ top: number;
20
+ right: number;
21
+ }
15
22
  export type BasePopover<POPUP_PROPS> = POPUP_PROPS & BaseProps & {
16
23
  theme: UITheme;
17
24
  location: FullPosition;
@@ -16,11 +16,14 @@ _export(exports, {
16
16
  return makeRect;
17
17
  }
18
18
  });
19
+ var _interop_require_default = require("@swc/helpers/_/_interop_require_default");
19
20
  var _async_to_generator = require("@swc/helpers/_/_async_to_generator");
20
21
  var _sliced_to_array = require("@swc/helpers/_/_sliced_to_array");
21
22
  var _ts_generator = require("@swc/helpers/_/_ts_generator");
22
23
  var _taro = require("@tarojs/taro");
24
+ var _lru = /*#__PURE__*/ _interop_require_default._(require("./lru"));
23
25
  var _useclientrect = require("../hooks/use-client-rect");
26
+ var lru = new _lru.default(10);
24
27
  function makeRect(width, height) {
25
28
  return {
26
29
  top: 0,
@@ -48,8 +51,15 @@ var getRectByTaro = /*#__PURE__*/ function() {
48
51
  return [
49
52
  2,
50
53
  new Promise(function(resolve, reject) {
54
+ if (lru.has(element)) {
55
+ resolve(lru.get(element));
56
+ return;
57
+ }
51
58
  (0, _taro.createSelectorQuery)().select("#".concat(harmonyId || element.uid)).boundingClientRect().exec(function(param) {
52
59
  var _param = (0, _sliced_to_array._)(param, 1), rects = _param[0];
60
+ if (rects) {
61
+ lru.set(element, rects);
62
+ }
53
63
  resolve(rects);
54
64
  });
55
65
  })
@@ -0,0 +1,8 @@
1
+ export default class MiniLru {
2
+ private cache;
3
+ private capacity;
4
+ constructor(capacity: number);
5
+ get(key: any): any | null;
6
+ set(key: any, value: any): void;
7
+ has(key: any): boolean;
8
+ }
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return MiniLru;
9
+ }
10
+ });
11
+ var _class_call_check = require("@swc/helpers/_/_class_call_check");
12
+ var _create_class = require("@swc/helpers/_/_create_class");
13
+ var _define_property = require("@swc/helpers/_/_define_property");
14
+ var MiniLru = /*#__PURE__*/ function() {
15
+ "use strict";
16
+ function MiniLru(capacity) {
17
+ (0, _class_call_check._)(this, MiniLru);
18
+ (0, _define_property._)(this, "cache", void 0);
19
+ (0, _define_property._)(this, "capacity", void 0);
20
+ if (capacity <= 0) {
21
+ throw new Error('Cache capacity must be a positive number');
22
+ }
23
+ this.cache = new Map();
24
+ this.capacity = capacity;
25
+ }
26
+ (0, _create_class._)(MiniLru, [
27
+ {
28
+ key: "get",
29
+ value: function get(key) {
30
+ if (this.cache.has(key)) {
31
+ var value = this.cache.get(key);
32
+ this.cache.delete(key);
33
+ this.cache.set(key, value);
34
+ return value;
35
+ }
36
+ return null;
37
+ }
38
+ },
39
+ {
40
+ key: "set",
41
+ value: function set(key, value) {
42
+ if (this.cache.has(key)) {
43
+ this.cache.delete(key);
44
+ } else if (this.cache.size >= this.capacity) {
45
+ this.cache.delete(this.cache.keys().next().value);
46
+ }
47
+ this.cache.set(key, value);
48
+ }
49
+ },
50
+ {
51
+ key: "has",
52
+ value: function has(key) {
53
+ return this.cache.has(key);
54
+ }
55
+ }
56
+ ]);
57
+ return MiniLru;
58
+ }();
@@ -60,7 +60,7 @@
60
60
 
61
61
  .nut-popup {
62
62
  position: fixed;
63
- min-height: 46%;
63
+ min-height: 26%;
64
64
  max-height: 100%;
65
65
  background-color: var(--nutui-overlay-content-bg-color, var(--nutui-color-background-overlay, #ffffff));
66
66
  -webkit-overflow-scrolling: touch;
@@ -198,12 +198,12 @@
198
198
  transform: scale(0.8);
199
199
  }
200
200
  }
201
- .nut-popup-slide-default-enter-active {
201
+ .nut-popup-slide-none-enter-active {
202
202
  animation-fill-mode: both;
203
203
  animation-name: popup-scale-fade-in;
204
204
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
205
205
  }
206
- .nut-popup-slide-default-exit-active {
206
+ .nut-popup-slide-none-exit-active {
207
207
  animation-fill-mode: both;
208
208
  animation-name: popup-scale-fade-out;
209
209
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -330,7 +330,7 @@
330
330
  animation-name: popup-slide-left-exit;
331
331
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
332
332
  }
333
- .nut-popup-slide-default-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
333
+ .nut-popup-slide-none-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
334
334
  display: none;
335
335
  }
336
336
  .nut-popup .nut-overflow-hidden {
@@ -178,7 +178,7 @@
178
178
 
179
179
  .nut-popup {
180
180
  position: fixed;
181
- min-height: 46%;
181
+ min-height: 26%;
182
182
  max-height: 100%;
183
183
  background-color: var(--nutui-overlay-content-bg-color, var(--nutui-color-background-overlay, #ffffff));
184
184
  -webkit-overflow-scrolling: touch;
@@ -316,12 +316,12 @@
316
316
  transform: scale(0.8);
317
317
  }
318
318
  }
319
- .nut-popup-slide-default-enter-active {
319
+ .nut-popup-slide-none-enter-active {
320
320
  animation-fill-mode: both;
321
321
  animation-name: popup-scale-fade-in;
322
322
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
323
323
  }
324
- .nut-popup-slide-default-exit-active {
324
+ .nut-popup-slide-none-exit-active {
325
325
  animation-fill-mode: both;
326
326
  animation-name: popup-scale-fade-out;
327
327
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
@@ -448,7 +448,7 @@
448
448
  animation-name: popup-slide-left-exit;
449
449
  animation-duration: var(--nutui-popup-animation-duration, 0.3s);
450
450
  }
451
- .nut-popup-slide-default-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
451
+ .nut-popup-slide-none-exit-done.nut-popup, .nut-popup-slide-center-exit-done.nut-popup, .nut-popup-slide-left-exit-done.nut-popup, .nut-popup-slide-right-exit-done.nut-popup, .nut-popup-slide-top-exit-done.nut-popup, .nut-popup-slide-bottom-exit-done.nut-popup {
452
452
  display: none;
453
453
  }
454
454
  .nut-popup .nut-overflow-hidden {
@@ -94,18 +94,6 @@
94
94
  .nut-button-round {
95
95
  border-radius: var(--nutui-button-border-radius, var(--nutui-radius-s, 6px));
96
96
  }
97
- .nut-button-round-xlarge {
98
- border-radius: var(--nutui-button-xlarge-border-radius, var(--nutui-radius-base, 8px));
99
- }
100
- .nut-button-round-large {
101
- border-radius: var(--nutui-button-large-border-radius, var(--nutui-radius-base, 8px));
102
- }
103
- .nut-button-round-small {
104
- border-radius: var(--nutui-button-small-border-radius, var(--nutui-radius-s, 6px));
105
- }
106
- .nut-button-round-mini {
107
- border-radius: var(--nutui-button-mini-border-radius, var(--nutui-radius-xs, 4px));
108
- }
109
97
  .nut-button-default {
110
98
  padding: var(--nutui-button-default-padding, 0px 12px);
111
99
  border-style: solid;
@@ -131,7 +119,7 @@
131
119
  height: var(--nutui-button-xlarge-height, 48px);
132
120
  padding: var(--nutui-button-xlarge-padding, 0px 24px);
133
121
  font-size: var(--nutui-button-xlarge-font-size, var(--nutui-font-size-xl, 18px));
134
- border-radius: var(--nutui-radius-base, 8px);
122
+ border-radius: var(--nutui-button-xlarge-border-radius, var(--nutui-radius-base, 8px));
135
123
  }
136
124
  .nut-button-xlarge .nut-button-text {
137
125
  margin-left: var(--nutui-button-xlarge-text-icon-margin, 6px);
@@ -151,7 +139,7 @@
151
139
  height: var(--nutui-button-large-height, 40px);
152
140
  padding: var(--nutui-button-large-padding, 0px 16px);
153
141
  font-size: var(--nutui-button-large-font-size, var(--nutui-font-size-l, 16px));
154
- border-radius: var(--nutui-radius-s, 6px);
142
+ border-radius: var(--nutui-button-large-border-radius, var(--nutui-radius-base, 8px));
155
143
  }
156
144
  .nut-button-large .nut-button-text {
157
145
  margin-left: var(--nutui-button-xlarge-text-icon-margin, 6px);
@@ -171,7 +159,7 @@
171
159
  height: var(--nutui-button-small-height, 28px);
172
160
  padding: var(--nutui-button-small-padding, 0px 8px);
173
161
  font-size: var(--nutui-button-small-font-size, var(--nutui-font-size-s, 12px));
174
- border-radius: var(--nutui-radius-xs, 4px);
162
+ border-radius: var(--nutui-button-small-border-radius, var(--nutui-radius-s, 6px));
175
163
  }
176
164
  .nut-button-small .nut-icon {
177
165
  font-size: var(--nutui-button-small-font-size, var(--nutui-font-size-s, 12px));
@@ -185,7 +173,7 @@
185
173
  height: var(--nutui-button-mini-height, 24px);
186
174
  padding: var(--nutui-button-mini-padding, 0px 8px);
187
175
  font-size: var(--nutui-button-mini-font-size, var(--nutui-font-size-xs, 11px));
188
- border-radius: var(--nutui-radius-xs, 4px);
176
+ border-radius: var(--nutui-button-mini-border-radius, var(--nutui-radius-xs, 4px));
189
177
  }
190
178
  .nut-button-mini .nut-icon {
191
179
  font-size: var(--nutui-button-mini-font-size, var(--nutui-font-size-xs, 11px));
@@ -101,22 +101,6 @@
101
101
 
102
102
  &-round {
103
103
  border-radius: $button-border-radius;
104
-
105
- &-xlarge {
106
- border-radius: $button-xlarge-border-radius;
107
- }
108
-
109
- &-large {
110
- border-radius: $button-large-border-radius;
111
- }
112
-
113
- &-small {
114
- border-radius: $button-small-border-radius;
115
- }
116
-
117
- &-mini {
118
- border-radius: $button-mini-border-radius;
119
- }
120
104
  }
121
105
 
122
106
  &-default {
@@ -155,7 +139,7 @@
155
139
  height: $button-xlarge-height;
156
140
  padding: $button-xlarge-padding;
157
141
  font-size: $button-xlarge-font-size;
158
- border-radius: $radius-base;
142
+ border-radius: $button-xlarge-border-radius;
159
143
 
160
144
  .nut-button-text {
161
145
  margin-left: $button-xlarge-text-icon-margin;
@@ -178,7 +162,7 @@
178
162
  height: $button-large-height;
179
163
  padding: $button-large-padding;
180
164
  font-size: $button-large-font-size;
181
- border-radius: $radius-s;
165
+ border-radius: $button-large-border-radius;
182
166
 
183
167
  .nut-button-text {
184
168
  margin-left: $button-xlarge-text-icon-margin;
@@ -202,7 +186,7 @@
202
186
  height: $button-small-height;
203
187
  padding: $button-small-padding;
204
188
  font-size: $button-small-font-size;
205
- border-radius: $radius-xs;
189
+ border-radius: $button-small-border-radius;
206
190
 
207
191
  .nut-icon {
208
192
  font-size: $button-small-font-size;
@@ -219,7 +203,7 @@
219
203
  height: $button-mini-height;
220
204
  padding: $button-mini-padding;
221
205
  font-size: $button-mini-font-size;
222
- border-radius: $radius-xs;
206
+ border-radius: $button-mini-border-radius;
223
207
 
224
208
  .nut-icon {
225
209
  font-size: $button-mini-font-size;