antd-mobile 5.37.0 → 5.38.0

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 (198) hide show
  1. package/2x/README.md +2 -2
  2. package/2x/bundle/antd-mobile.cjs.development.js +3012 -1806
  3. package/2x/bundle/antd-mobile.cjs.js +7 -7
  4. package/2x/bundle/antd-mobile.es.development.js +3014 -1808
  5. package/2x/bundle/antd-mobile.es.js +7937 -7154
  6. package/2x/bundle/antd-mobile.umd.development.js +3012 -1806
  7. package/2x/bundle/antd-mobile.umd.js +7 -7
  8. package/2x/bundle/css-vars-patch.css +42 -0
  9. package/2x/bundle/style.css +186 -49
  10. package/2x/cjs/components/calendar-picker/calendar-picker.js +12 -6
  11. package/2x/cjs/components/calendar-picker-view/calendar-picker-view.d.ts +4 -1
  12. package/2x/cjs/components/calendar-picker-view/calendar-picker-view.js +69 -26
  13. package/2x/cjs/components/calendar-picker-view/useSyncScroll.d.ts +2 -0
  14. package/2x/cjs/components/calendar-picker-view/useSyncScroll.js +39 -0
  15. package/2x/cjs/components/card/card.css +1 -0
  16. package/2x/cjs/components/card/card.d.ts +2 -1
  17. package/2x/cjs/components/card/card.js +7 -3
  18. package/2x/cjs/components/card/card.patch.css +8 -0
  19. package/2x/cjs/components/date-picker/date-picker-quarter-utils.d.ts +7 -0
  20. package/2x/cjs/components/date-picker/date-picker-quarter-utils.js +77 -0
  21. package/2x/cjs/components/date-picker/date-picker-utils.d.ts +3 -2
  22. package/2x/cjs/components/date-picker/date-picker-utils.js +7 -0
  23. package/2x/cjs/components/image-uploader/image-uploader.js +2 -2
  24. package/2x/cjs/components/input/input.d.ts +2 -2
  25. package/2x/cjs/components/input/input.js +1 -0
  26. package/2x/cjs/components/nav-bar/nav-bar.js +6 -6
  27. package/2x/cjs/components/notice-bar/notice-bar.css +30 -4
  28. package/2x/cjs/components/notice-bar/notice-bar.d.ts +5 -1
  29. package/2x/cjs/components/notice-bar/notice-bar.js +7 -3
  30. package/2x/cjs/components/search-bar/search-bar.d.ts +2 -2
  31. package/2x/cjs/components/search-bar/search-bar.js +1 -0
  32. package/2x/cjs/components/segmented/index.d.ts +4 -0
  33. package/2x/cjs/components/segmented/index.js +10 -0
  34. package/2x/cjs/components/segmented/segmented.css +113 -0
  35. package/2x/cjs/components/segmented/segmented.d.ts +21 -0
  36. package/2x/cjs/components/segmented/segmented.js +57 -0
  37. package/2x/cjs/components/segmented/segmented.patch.css +41 -0
  38. package/2x/cjs/components/tab-bar/tab-bar.d.ts +1 -0
  39. package/2x/cjs/components/tab-bar/tab-bar.js +2 -0
  40. package/2x/cjs/components/tabs/tabs.js +1 -1
  41. package/2x/cjs/components/toast/methods.js +9 -3
  42. package/2x/cjs/global/css-vars-patch.css +42 -0
  43. package/2x/cjs/index.d.ts +2 -0
  44. package/2x/cjs/index.js +7 -0
  45. package/2x/cjs/locales/cnr-ME.d.ts +139 -0
  46. package/2x/cjs/locales/cnr-ME.js +149 -0
  47. package/2x/cjs/locales/hr-HR.d.ts +139 -0
  48. package/2x/cjs/locales/hr-HR.js +149 -0
  49. package/2x/cjs/locales/kk-KZ.js +6 -6
  50. package/2x/cjs/locales/sr-RS.d.ts +139 -0
  51. package/2x/cjs/locales/sr-RS.js +149 -0
  52. package/2x/cjs/utils/render-imperatively.d.ts +1 -0
  53. package/2x/cjs/utils/render-imperatively.js +6 -3
  54. package/2x/es/components/calendar-picker/calendar-picker.js +11 -5
  55. package/2x/es/components/calendar-picker-view/calendar-picker-view.d.ts +4 -1
  56. package/2x/es/components/calendar-picker-view/calendar-picker-view.js +67 -25
  57. package/2x/es/components/calendar-picker-view/useSyncScroll.d.ts +2 -0
  58. package/2x/es/components/calendar-picker-view/useSyncScroll.js +33 -0
  59. package/2x/es/components/card/card.css +1 -0
  60. package/2x/es/components/card/card.d.ts +2 -1
  61. package/2x/es/components/card/card.js +7 -3
  62. package/2x/es/components/card/card.patch.css +8 -0
  63. package/2x/es/components/date-picker/date-picker-quarter-utils.d.ts +7 -0
  64. package/2x/es/components/date-picker/date-picker-quarter-utils.js +68 -0
  65. package/2x/es/components/date-picker/date-picker-utils.d.ts +3 -2
  66. package/2x/es/components/date-picker/date-picker-utils.js +7 -0
  67. package/2x/es/components/image-uploader/image-uploader.js +2 -2
  68. package/2x/es/components/input/input.d.ts +2 -2
  69. package/2x/es/components/input/input.js +1 -0
  70. package/2x/es/components/nav-bar/nav-bar.js +7 -7
  71. package/2x/es/components/notice-bar/notice-bar.css +30 -4
  72. package/2x/es/components/notice-bar/notice-bar.d.ts +5 -1
  73. package/2x/es/components/notice-bar/notice-bar.js +7 -3
  74. package/2x/es/components/search-bar/search-bar.d.ts +2 -2
  75. package/2x/es/components/search-bar/search-bar.js +1 -0
  76. package/2x/es/components/segmented/index.d.ts +4 -0
  77. package/2x/es/components/segmented/index.js +3 -0
  78. package/2x/es/components/segmented/segmented.css +113 -0
  79. package/2x/es/components/segmented/segmented.d.ts +21 -0
  80. package/2x/es/components/segmented/segmented.js +48 -0
  81. package/2x/es/components/segmented/segmented.patch.css +41 -0
  82. package/2x/es/components/tab-bar/tab-bar.d.ts +1 -0
  83. package/2x/es/components/tab-bar/tab-bar.js +2 -0
  84. package/2x/es/components/tabs/tabs.js +1 -1
  85. package/2x/es/components/toast/methods.js +9 -3
  86. package/2x/es/global/css-vars-patch.css +42 -0
  87. package/2x/es/index.d.ts +2 -0
  88. package/2x/es/index.js +1 -0
  89. package/2x/es/locales/cnr-ME.d.ts +139 -0
  90. package/2x/es/locales/cnr-ME.js +142 -0
  91. package/2x/es/locales/hr-HR.d.ts +139 -0
  92. package/2x/es/locales/hr-HR.js +142 -0
  93. package/2x/es/locales/kk-KZ.js +6 -6
  94. package/2x/es/locales/sr-RS.d.ts +139 -0
  95. package/2x/es/locales/sr-RS.js +142 -0
  96. package/2x/es/utils/render-imperatively.d.ts +1 -0
  97. package/2x/es/utils/render-imperatively.js +6 -3
  98. package/2x/package.json +3 -2
  99. package/README.md +2 -2
  100. package/bundle/antd-mobile.cjs.development.js +3012 -1806
  101. package/bundle/antd-mobile.cjs.js +7 -7
  102. package/bundle/antd-mobile.compatible.umd.js +1 -1
  103. package/bundle/antd-mobile.es.development.js +3014 -1808
  104. package/bundle/antd-mobile.es.js +7937 -7154
  105. package/bundle/antd-mobile.umd.development.js +3012 -1806
  106. package/bundle/antd-mobile.umd.js +7 -7
  107. package/bundle/css-vars-patch.css +32 -0
  108. package/bundle/style.css +1 -1
  109. package/cjs/components/calendar-picker/calendar-picker.js +12 -6
  110. package/cjs/components/calendar-picker-view/calendar-picker-view.d.ts +4 -1
  111. package/cjs/components/calendar-picker-view/calendar-picker-view.js +69 -26
  112. package/cjs/components/calendar-picker-view/useSyncScroll.d.ts +2 -0
  113. package/cjs/components/calendar-picker-view/useSyncScroll.js +39 -0
  114. package/cjs/components/card/card.css +1 -0
  115. package/cjs/components/card/card.d.ts +2 -1
  116. package/cjs/components/card/card.js +7 -3
  117. package/cjs/components/card/card.patch.css +6 -0
  118. package/cjs/components/date-picker/date-picker-quarter-utils.d.ts +7 -0
  119. package/cjs/components/date-picker/date-picker-quarter-utils.js +77 -0
  120. package/cjs/components/date-picker/date-picker-utils.d.ts +3 -2
  121. package/cjs/components/date-picker/date-picker-utils.js +7 -0
  122. package/cjs/components/image-uploader/image-uploader.js +2 -2
  123. package/cjs/components/input/input.d.ts +2 -2
  124. package/cjs/components/input/input.js +1 -0
  125. package/cjs/components/nav-bar/nav-bar.js +6 -6
  126. package/cjs/components/notice-bar/notice-bar.css +25 -4
  127. package/cjs/components/notice-bar/notice-bar.d.ts +5 -1
  128. package/cjs/components/notice-bar/notice-bar.js +7 -3
  129. package/cjs/components/search-bar/search-bar.d.ts +2 -2
  130. package/cjs/components/search-bar/search-bar.js +1 -0
  131. package/cjs/components/segmented/index.d.ts +4 -0
  132. package/cjs/components/segmented/index.js +10 -0
  133. package/cjs/components/segmented/segmented.css +97 -0
  134. package/cjs/components/segmented/segmented.d.ts +21 -0
  135. package/cjs/components/segmented/segmented.js +57 -0
  136. package/cjs/components/segmented/segmented.patch.css +32 -0
  137. package/cjs/components/tab-bar/tab-bar.d.ts +1 -0
  138. package/cjs/components/tab-bar/tab-bar.js +2 -0
  139. package/cjs/components/tabs/tabs.js +1 -1
  140. package/cjs/components/toast/methods.js +9 -3
  141. package/cjs/global/css-vars-patch.css +32 -0
  142. package/cjs/index.d.ts +2 -0
  143. package/cjs/index.js +7 -0
  144. package/cjs/locales/cnr-ME.d.ts +139 -0
  145. package/cjs/locales/cnr-ME.js +149 -0
  146. package/cjs/locales/hr-HR.d.ts +139 -0
  147. package/cjs/locales/hr-HR.js +149 -0
  148. package/cjs/locales/kk-KZ.js +6 -6
  149. package/cjs/locales/sr-RS.d.ts +139 -0
  150. package/cjs/locales/sr-RS.js +149 -0
  151. package/cjs/utils/render-imperatively.d.ts +1 -0
  152. package/cjs/utils/render-imperatively.js +6 -3
  153. package/es/components/calendar-picker/calendar-picker.js +11 -5
  154. package/es/components/calendar-picker-view/calendar-picker-view.d.ts +4 -1
  155. package/es/components/calendar-picker-view/calendar-picker-view.js +67 -25
  156. package/es/components/calendar-picker-view/useSyncScroll.d.ts +2 -0
  157. package/es/components/calendar-picker-view/useSyncScroll.js +33 -0
  158. package/es/components/card/card.css +1 -0
  159. package/es/components/card/card.d.ts +2 -1
  160. package/es/components/card/card.js +7 -3
  161. package/es/components/card/card.patch.css +6 -0
  162. package/es/components/date-picker/date-picker-quarter-utils.d.ts +7 -0
  163. package/es/components/date-picker/date-picker-quarter-utils.js +68 -0
  164. package/es/components/date-picker/date-picker-utils.d.ts +3 -2
  165. package/es/components/date-picker/date-picker-utils.js +7 -0
  166. package/es/components/image-uploader/image-uploader.js +2 -2
  167. package/es/components/input/input.d.ts +2 -2
  168. package/es/components/input/input.js +1 -0
  169. package/es/components/nav-bar/nav-bar.js +7 -7
  170. package/es/components/notice-bar/notice-bar.css +25 -4
  171. package/es/components/notice-bar/notice-bar.d.ts +5 -1
  172. package/es/components/notice-bar/notice-bar.js +7 -3
  173. package/es/components/search-bar/search-bar.d.ts +2 -2
  174. package/es/components/search-bar/search-bar.js +1 -0
  175. package/es/components/segmented/index.d.ts +4 -0
  176. package/es/components/segmented/index.js +3 -0
  177. package/es/components/segmented/segmented.css +97 -0
  178. package/es/components/segmented/segmented.d.ts +21 -0
  179. package/es/components/segmented/segmented.js +48 -0
  180. package/es/components/segmented/segmented.patch.css +32 -0
  181. package/es/components/tab-bar/tab-bar.d.ts +1 -0
  182. package/es/components/tab-bar/tab-bar.js +2 -0
  183. package/es/components/tabs/tabs.js +1 -1
  184. package/es/components/toast/methods.js +9 -3
  185. package/es/global/css-vars-patch.css +32 -0
  186. package/es/index.d.ts +2 -0
  187. package/es/index.js +1 -0
  188. package/es/locales/cnr-ME.d.ts +139 -0
  189. package/es/locales/cnr-ME.js +142 -0
  190. package/es/locales/hr-HR.d.ts +139 -0
  191. package/es/locales/hr-HR.js +142 -0
  192. package/es/locales/kk-KZ.js +6 -6
  193. package/es/locales/sr-RS.d.ts +139 -0
  194. package/es/locales/sr-RS.js +142 -0
  195. package/es/utils/render-imperatively.d.ts +1 -0
  196. package/es/utils/render-imperatively.js +6 -3
  197. package/package.json +3 -2
  198. package/umd/antd-mobile.js +1 -1
@@ -316,6 +316,48 @@
316
316
  padding-bottom: 16px;
317
317
  }
318
318
 
319
+ .adm-segmented {
320
+ color: #666;
321
+ background-color: #f5f5f5;
322
+ transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
323
+ }
324
+
325
+ .adm-segmented-item {
326
+ transition: color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
327
+ }
328
+
329
+ .adm-segmented-item-selected {
330
+ background-color: #fff;
331
+ box-shadow: 0 4px 16px -4px rgba(0, 0, 0, 0.05), 0 2px 8px -2px rgba(0, 0, 0, 0.07), 0 0 2px 0 rgba(0, 0, 0, 0.08);
332
+ color: #333;
333
+ }
334
+
335
+ .adm-segmented-item-disabled {
336
+ color: #999;
337
+ }
338
+
339
+ .adm-segmented-thumb {
340
+ background-color: #fff;
341
+ box-shadow: 0 4px 16px -4px rgba(0, 0, 0, 0.05), 0 2px 8px -2px rgba(0, 0, 0, 0.07), 0 0 2px 0 rgba(0, 0, 0, 0.08);
342
+ }
343
+
344
+ .adm-segmented-thumb-motion-appear-active {
345
+ transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), width 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
346
+ }
347
+
348
+ /* ---- mixins part starts ---- */
349
+
350
+ .segmented-disabled-item {
351
+ color: #999;
352
+ }
353
+
354
+ .segmented-item-selected {
355
+ background-color: #fff;
356
+ box-shadow: 0 4px 16px -4px rgba(0, 0, 0, 0.05), 0 2px 8px -2px rgba(0, 0, 0, 0.07), 0 0 2px 0 rgba(0, 0, 0, 0.08);
357
+ }
358
+
359
+ /* ---- mixins part ends ---- */
360
+
319
361
  .adm-spin-loading {
320
362
  width: 64px;
321
363
  height: 64px;
@@ -661,51 +661,6 @@ div.adm-px-tester {
661
661
  text-align: center;
662
662
  }
663
663
 
664
- .adm-divider-horizontal {
665
- display: flex;
666
- align-items: center;
667
- margin: 32px 0;
668
- border-width: 0;
669
- border-color: var(--adm-color-border);
670
- border-style: solid;
671
- color: var(--adm-color-weak);
672
- font-size: 28px;
673
- }
674
-
675
- .adm-divider-left.adm-divider-horizontal:before {
676
- max-width: 10%;
677
- }
678
-
679
- .adm-divider-right.adm-divider-horizontal:after {
680
- max-width: 10%;
681
- }
682
-
683
- .adm-divider-horizontal:after,
684
- .adm-divider-horizontal:before {
685
- flex: auto;
686
- display: block;
687
- content: "";
688
- border-style: inherit;
689
- border-color: inherit;
690
- border-width: 2px 0 0;
691
- }
692
-
693
- .adm-divider-horizontal .adm-divider-content {
694
- flex: none;
695
- padding: 0 32px;
696
- }
697
-
698
- .adm-divider-vertical {
699
- position: relative;
700
- top: -.06em;
701
- display: inline-block;
702
- height: .9em;
703
- margin: 0 32px;
704
- vertical-align: middle;
705
- border-top: 0;
706
- border-left: 2px solid var(--adm-color-border);
707
- }
708
-
709
664
  .adm-calendar-picker .adm-calendar-picker-title,
710
665
  .adm-calendar-picker .adm-calendar-picker-view-title,
711
666
  .adm-calendar-picker .adm-calendar-picker-popup-title,
@@ -1321,6 +1276,51 @@ div.adm-px-tester {
1321
1276
  text-align: center;
1322
1277
  }
1323
1278
 
1279
+ .adm-divider-horizontal {
1280
+ display: flex;
1281
+ align-items: center;
1282
+ margin: 32px 0;
1283
+ border-width: 0;
1284
+ border-color: var(--adm-color-border);
1285
+ border-style: solid;
1286
+ color: var(--adm-color-weak);
1287
+ font-size: 28px;
1288
+ }
1289
+
1290
+ .adm-divider-left.adm-divider-horizontal:before {
1291
+ max-width: 10%;
1292
+ }
1293
+
1294
+ .adm-divider-right.adm-divider-horizontal:after {
1295
+ max-width: 10%;
1296
+ }
1297
+
1298
+ .adm-divider-horizontal:after,
1299
+ .adm-divider-horizontal:before {
1300
+ flex: auto;
1301
+ display: block;
1302
+ content: "";
1303
+ border-style: inherit;
1304
+ border-color: inherit;
1305
+ border-width: 2px 0 0;
1306
+ }
1307
+
1308
+ .adm-divider-horizontal .adm-divider-content {
1309
+ flex: none;
1310
+ padding: 0 32px;
1311
+ }
1312
+
1313
+ .adm-divider-vertical {
1314
+ position: relative;
1315
+ top: -.06em;
1316
+ display: inline-block;
1317
+ height: .9em;
1318
+ margin: 0 32px;
1319
+ vertical-align: middle;
1320
+ border-top: 0;
1321
+ border-left: 2px solid var(--adm-color-border);
1322
+ }
1323
+
1324
1324
  .adm-capsule-tabs {
1325
1325
  position: relative;
1326
1326
  min-width: 0;
@@ -1408,6 +1408,7 @@ div.adm-px-tester {
1408
1408
  display: flex;
1409
1409
  justify-content: space-between;
1410
1410
  align-items: center;
1411
+ gap: var(--adm-card-header-gap, 16px);
1411
1412
  box-sizing: border-box;
1412
1413
  padding: var(--adm-card-header-padding-block, 24px) 0;
1413
1414
  }
@@ -3577,6 +3578,8 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
3577
3578
  --font-size: var(--adm-font-size-7);
3578
3579
  --icon-font-size: var(--adm-font-size-10);
3579
3580
  --height: 80px;
3581
+ --adm-notice-bar-border-radius: 8px;
3582
+ --adm-notice-bar-border-width: 2px;
3580
3583
  height: var(--height);
3581
3584
  box-sizing: border-box;
3582
3585
  font-size: var(--font-size);
@@ -3584,9 +3587,9 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
3584
3587
  display: flex;
3585
3588
  align-items: center;
3586
3589
  justify-content: space-between;
3587
- border: solid 2px var(--border-color);
3588
- border-left: none;
3589
- border-right: none;
3590
+ border: solid var(--adm-notice-bar-border-width) var(--border-color);
3591
+ border-left-width: 0;
3592
+ border-right-width: 0;
3590
3593
  background-color: var(--background-color);
3591
3594
  color: var(--text-color);
3592
3595
  }
@@ -3604,7 +3607,7 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
3604
3607
  .adm-notice-bar.adm-notice-bar-error {
3605
3608
  --background-color: var(--adm-color-danger);
3606
3609
  --border-color: #d9281e;
3607
- --text-color: #ffffff;
3610
+ --text-color: #fff;
3608
3611
  }
3609
3612
 
3610
3613
  .adm-notice-bar.adm-notice-bar-info {
@@ -3613,6 +3616,12 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
3613
3616
  --text-color: var(--adm-color-primary);
3614
3617
  }
3615
3618
 
3619
+ .adm-notice-bar.adm-notice-bar-success {
3620
+ --background-color: #d1fff0;
3621
+ --border-color: #a8f0d8;
3622
+ --text-color: var(--adm-color-success);
3623
+ }
3624
+
3616
3625
  .adm-notice-bar .adm-notice-bar-left {
3617
3626
  flex-shrink: 0;
3618
3627
  margin-right: 16px;
@@ -3663,6 +3672,24 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
3663
3672
  line-height: 44px;
3664
3673
  }
3665
3674
 
3675
+ .adm-notice-bar-neutral {
3676
+ border-radius: var(--adm-notice-bar-border-radius);
3677
+ }
3678
+
3679
+ .adm-notice-bar-rounded {
3680
+ border-radius: 2000px;
3681
+ }
3682
+
3683
+ .adm-notice-bar-bordered {
3684
+ border-left-width: var(--adm-notice-bar-border-width);
3685
+ border-right-width: var(--adm-notice-bar-border-width);
3686
+ }
3687
+
3688
+ .adm-notice-bar-without-border {
3689
+ border-top-width: 0;
3690
+ border-bottom-width: 0;
3691
+ }
3692
+
3666
3693
  .adm-number-keyboard-main {
3667
3694
  display: flex;
3668
3695
  flex-wrap: wrap;
@@ -4467,6 +4494,116 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
4467
4494
  background: var(--adm-color-background);
4468
4495
  }
4469
4496
 
4497
+ .adm-segmented {
4498
+ --segmented-background: var(--adm-color-fill-content);
4499
+ --segmented-item-color: var(--adm-color-text-secondary);
4500
+ --segmented-item-selected-background: var(--adm-color-background);
4501
+ --segmented-item-selected-color: var(--adm-color-text);
4502
+ --segmented-item-disabled-color: var(--adm-color-weak);
4503
+ --transition-time-function: cubic-bezier(.645, .045, .355, 1);
4504
+ display: inline-block;
4505
+ padding: 4px;
4506
+ color: var(--segmented-item-color);
4507
+ background-color: var(--segmented-background);
4508
+ border-radius: 4px;
4509
+ transition: all .3s var(--transition-time-function);
4510
+ }
4511
+
4512
+ .adm-segmented-group {
4513
+ position: relative;
4514
+ display: flex;
4515
+ align-items: stretch;
4516
+ justify-items: flex-start;
4517
+ width: 100%;
4518
+ }
4519
+
4520
+ .adm-segmented.adm-segmented-block {
4521
+ display: flex;
4522
+ }
4523
+
4524
+ .adm-segmented.adm-segmented-block .adm-segmented-item {
4525
+ flex: 1;
4526
+ min-width: 0;
4527
+ }
4528
+
4529
+ .adm-segmented-item {
4530
+ position: relative;
4531
+ text-align: center;
4532
+ cursor: pointer;
4533
+ transition: color .3s var(--transition-time-function);
4534
+ }
4535
+
4536
+ .adm-segmented-item-selected {
4537
+ background-color: var(--segmented-item-selected-background);
4538
+ border-radius: 4px;
4539
+ box-shadow: 0 4px 16px -4px rgba(0,0,0,.05),0 2px 8px -2px rgba(0,0,0,.07),0 0 2px rgba(0,0,0,.08);
4540
+ color: var(--segmented-item-selected-color);
4541
+ }
4542
+
4543
+ .adm-segmented-item-label {
4544
+ min-height: 20px;
4545
+ padding: 0 22px;
4546
+ line-height: 56px;
4547
+ overflow: hidden;
4548
+ white-space: nowrap;
4549
+ text-overflow: ellipsis;
4550
+ word-break: keep-all;
4551
+ }
4552
+
4553
+ .adm-segmented-item-icon+* {
4554
+ margin-left: 12px;
4555
+ }
4556
+
4557
+ .adm-segmented-item-input {
4558
+ position: absolute;
4559
+ top: 0;
4560
+ left: 0;
4561
+ width: 0;
4562
+ height: 0;
4563
+ opacity: 0;
4564
+ pointer-events: none;
4565
+ }
4566
+
4567
+ .adm-segmented-item-disabled {
4568
+ color: var(--segmented-item-disabled-color);
4569
+ cursor: not-allowed;
4570
+ }
4571
+
4572
+ .adm-segmented-thumb {
4573
+ background-color: var(--segmented-item-selected-background);
4574
+ border-radius: 4px;
4575
+ box-shadow: 0 4px 16px -4px rgba(0,0,0,.05),0 2px 8px -2px rgba(0,0,0,.07),0 0 2px rgba(0,0,0,.08);
4576
+ position: absolute;
4577
+ top: 0;
4578
+ left: 0;
4579
+ width: 0;
4580
+ height: 100%;
4581
+ padding: 8px 0;
4582
+ }
4583
+
4584
+ .adm-segmented-thumb-motion-appear-active {
4585
+ transition: transform .3s var(--transition-time-function),width .3s var(--transition-time-function);
4586
+ will-change: transform,width;
4587
+ }
4588
+
4589
+ .segmented-disabled-item {
4590
+ color: var(--segmented-item-disabled-color);
4591
+ cursor: not-allowed;
4592
+ }
4593
+
4594
+ .segmented-item-selected {
4595
+ background-color: var(--segmented-item-selected-background);
4596
+ border-radius: 4px;
4597
+ box-shadow: 0 4px 16px -4px rgba(0,0,0,.05),0 2px 8px -2px rgba(0,0,0,.07),0 0 2px rgba(0,0,0,.08);
4598
+ }
4599
+
4600
+ .segmented-text-ellipsis {
4601
+ overflow: hidden;
4602
+ white-space: nowrap;
4603
+ text-overflow: ellipsis;
4604
+ word-break: keep-all;
4605
+ }
4606
+
4470
4607
  .adm-selector {
4471
4608
  --color: var(--adm-color-fill-content);
4472
4609
  --checked-color: var(--adm-color-wathet);
@@ -5,18 +5,19 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.CalendarPicker = void 0;
7
7
  var _tslib = require("tslib");
8
+ var _classnames = _interopRequireDefault(require("classnames"));
8
9
  var _react = _interopRequireWildcard(require("react"));
9
10
  var _nativeProps = require("../../utils/native-props");
10
- var _classnames = _interopRequireDefault(require("classnames"));
11
+ var _withDefaultProps = require("../../utils/with-default-props");
11
12
  var _button = _interopRequireDefault(require("../button"));
13
+ var _calendarPickerView = _interopRequireDefault(require("../calendar-picker-view"));
14
+ var _calendarPickerView2 = require("../calendar-picker-view/calendar-picker-view");
15
+ var _configProvider = require("../config-provider");
12
16
  var _divider = _interopRequireDefault(require("../divider"));
13
17
  var _popup = _interopRequireDefault(require("../popup"));
14
- var _withDefaultProps = require("../../utils/with-default-props");
15
- var _configProvider = require("../config-provider");
16
- var _calendarPickerView = _interopRequireDefault(require("../calendar-picker-view"));
17
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
21
  const classPrefix = 'adm-calendar-picker';
21
22
  const defaultProps = {
22
23
  weekStartsOn: 'Sunday',
@@ -45,6 +46,9 @@ const CalendarPicker = (0, _react.forwardRef)((p, ref) => {
45
46
  getContainer
46
47
  } = props,
47
48
  calendarViewProps = (0, _tslib.__rest)(props, ["visible", "confirmText", "popupClassName", "popupStyle", "popupBodyStyle", "forceRender", "closeOnMaskClick", "onClose", "onConfirm", "onMaskClick", "getContainer"]);
49
+ const viewContext = _react.default.useMemo(() => ({
50
+ visible: !!visible
51
+ }), [visible]);
48
52
  const footer = _react.default.createElement("div", {
49
53
  className: `${classPrefix}-footer`
50
54
  }, _react.default.createElement(_divider.default, null), _react.default.createElement("div", {
@@ -84,8 +88,10 @@ const CalendarPicker = (0, _react.forwardRef)((p, ref) => {
84
88
  }
85
89
  },
86
90
  getContainer: getContainer
91
+ }, _react.default.createElement(_calendarPickerView2.Context.Provider, {
92
+ value: viewContext
87
93
  }, _react.default.createElement(_calendarPickerView.default, Object.assign({
88
94
  ref: calendarRef
89
- }, calendarViewProps)), footer)));
95
+ }, calendarViewProps))), footer)));
90
96
  });
91
97
  exports.CalendarPicker = CalendarPicker;
@@ -1,13 +1,16 @@
1
1
  import React from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
3
  import { DateRange, Page } from './convert';
4
+ export declare const Context: React.Context<{
5
+ visible: boolean;
6
+ }>;
4
7
  export declare type CalendarPickerViewRef = {
5
8
  jumpTo: (page: Page | ((page: Page) => Page)) => void;
6
9
  jumpToToday: () => void;
7
10
  getDateRange: () => DateRange;
8
11
  };
9
12
  export declare type CalendarPickerViewProps = {
10
- title?: React.ReactNode;
13
+ title?: React.ReactNode | false;
11
14
  confirmText?: string;
12
15
  weekStartsOn?: 'Monday' | 'Sunday';
13
16
  renderTop?: (date: Date) => React.ReactNode;
@@ -3,23 +3,28 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.CalendarPickerView = void 0;
7
- var _react = _interopRequireWildcard(require("react"));
8
- var _nativeProps = require("../../utils/native-props");
9
- var _dayjs = _interopRequireDefault(require("dayjs"));
6
+ exports.Context = exports.CalendarPickerView = void 0;
10
7
  var _classnames = _interopRequireDefault(require("classnames"));
11
- var _withDefaultProps = require("../../utils/with-default-props");
12
- var _configProvider = require("../config-provider");
8
+ var _dayjs = _interopRequireDefault(require("dayjs"));
13
9
  var _isoWeek = _interopRequireDefault(require("dayjs/plugin/isoWeek"));
14
10
  var _isSameOrBefore = _interopRequireDefault(require("dayjs/plugin/isSameOrBefore"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _nativeProps = require("../../utils/native-props");
15
13
  var _usePropsValue = require("../../utils/use-props-value");
14
+ var _withDefaultProps = require("../../utils/with-default-props");
15
+ var _configProvider = require("../config-provider");
16
16
  var _convert = require("./convert");
17
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
+ var _useSyncScroll = _interopRequireDefault(require("./useSyncScroll"));
18
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
21
  _dayjs.default.extend(_isoWeek.default);
21
22
  _dayjs.default.extend(_isSameOrBefore.default);
22
23
  const classPrefix = 'adm-calendar-picker-view';
24
+ const Context = _react.default.createContext({
25
+ visible: false
26
+ });
27
+ exports.Context = Context;
23
28
  const defaultProps = {
24
29
  weekStartsOn: 'Sunday',
25
30
  defaultValue: null,
@@ -29,6 +34,7 @@ const defaultProps = {
29
34
  };
30
35
  const CalendarPickerView = (0, _react.forwardRef)((p, ref) => {
31
36
  var _a;
37
+ const bodyRef = (0, _react.useRef)(null);
32
38
  const today = (0, _dayjs.default)();
33
39
  const props = (0, _withDefaultProps.mergeProps)(defaultProps, p);
34
40
  const {
@@ -53,6 +59,34 @@ const CalendarPickerView = (0, _react.forwardRef)((p, ref) => {
53
59
  });
54
60
  const [intermediate, setIntermediate] = (0, _react.useState)(false);
55
61
  const [current, setCurrent] = (0, _react.useState)(() => (0, _dayjs.default)(dateRange ? dateRange[0] : today).date(1));
62
+ const onDateChange = v => {
63
+ if (v) {
64
+ setCurrent((0, _dayjs.default)(v[0]).date(1));
65
+ }
66
+ setDateRange(v);
67
+ };
68
+ const showHeader = props.title !== false;
69
+ // =============================== Scroll ===============================
70
+ const context = (0, _react.useContext)(Context);
71
+ const scrollTo = (0, _useSyncScroll.default)(current, context.visible, bodyRef);
72
+ // ============================== Boundary ==============================
73
+ // 记录默认的 min 和 max,并在外部的值超出边界时自动扩充
74
+ const [defaultMin, setDefaultMin] = (0, _react.useState)(current);
75
+ const [defaultMax, setDefaultMax] = (0, _react.useState)(() => current.add(6, 'month'));
76
+ (0, _react.useEffect)(() => {
77
+ if (dateRange) {
78
+ const [startDate, endDate] = dateRange;
79
+ if (!props.min && startDate && (0, _dayjs.default)(startDate).isBefore(defaultMin)) {
80
+ setDefaultMin((0, _dayjs.default)(startDate).date(1));
81
+ }
82
+ if (!props.max && endDate && (0, _dayjs.default)(endDate).isAfter(defaultMax)) {
83
+ setDefaultMax((0, _dayjs.default)(endDate).endOf('month'));
84
+ }
85
+ }
86
+ }, [dateRange]);
87
+ const maxDay = (0, _react.useMemo)(() => props.max ? (0, _dayjs.default)(props.max) : defaultMax, [props.max, defaultMax]);
88
+ const minDay = (0, _react.useMemo)(() => props.min ? (0, _dayjs.default)(props.min) : defaultMin, [props.min, defaultMin]);
89
+ // ================================ Refs ================================
56
90
  (0, _react.useImperativeHandle)(ref, () => ({
57
91
  jumpTo: pageOrPageGenerator => {
58
92
  let page;
@@ -64,20 +98,23 @@ const CalendarPickerView = (0, _react.forwardRef)((p, ref) => {
64
98
  } else {
65
99
  page = pageOrPageGenerator;
66
100
  }
67
- setCurrent((0, _convert.convertPageToDayjs)(page));
101
+ const next = (0, _convert.convertPageToDayjs)(page);
102
+ setCurrent(next);
103
+ scrollTo(next);
68
104
  },
69
105
  jumpToToday: () => {
70
- setCurrent((0, _dayjs.default)().date(1));
106
+ const next = (0, _dayjs.default)().date(1);
107
+ setCurrent(next);
108
+ scrollTo(next);
71
109
  },
72
110
  getDateRange: () => dateRange
73
111
  }));
112
+ // =============================== Render ===============================
74
113
  const header = _react.default.createElement("div", {
75
114
  className: `${classPrefix}-header`
76
115
  }, _react.default.createElement("div", {
77
116
  className: `${classPrefix}-title`
78
117
  }, (_a = props.title) !== null && _a !== void 0 ? _a : locale.Calendar.title));
79
- const maxDay = (0, _react.useMemo)(() => props.max ? (0, _dayjs.default)(props.max) : current.add(6, 'month'), [props.max, current]);
80
- const minDay = (0, _react.useMemo)(() => props.min ? (0, _dayjs.default)(props.min) : current, [props.min, current]);
81
118
  function renderBody() {
82
119
  var _a;
83
120
  const cells = [];
@@ -85,13 +122,21 @@ const CalendarPickerView = (0, _react.forwardRef)((p, ref) => {
85
122
  // 遍历月份
86
123
  while (monthIterator.isSameOrBefore(maxDay, 'month')) {
87
124
  const year = monthIterator.year();
88
- const month = monthIterator.month();
125
+ const month = monthIterator.month() + 1;
89
126
  const renderMap = {
90
127
  year,
91
- month: month + 1
128
+ month
92
129
  };
130
+ const yearMonth = `${year}-${month}`;
131
+ // 获取需要预先填充的空格,如果是 7 天则不需要填充
132
+ const presetEmptyCellCount = props.weekStartsOn === 'Monday' ? monthIterator.date(1).isoWeekday() - 1 : monthIterator.date(1).isoWeekday();
133
+ const presetEmptyCells = presetEmptyCellCount == 7 ? null : Array(presetEmptyCellCount).fill(null).map((_, index) => _react.default.createElement("div", {
134
+ key: index,
135
+ className: `${classPrefix}-cell`
136
+ }));
93
137
  cells.push(_react.default.createElement("div", {
94
- key: `${year}-${month}`
138
+ key: yearMonth,
139
+ "data-year-month": yearMonth
95
140
  }, _react.default.createElement("div", {
96
141
  className: `${classPrefix}-title`
97
142
  }, (_a = locale.Calendar.yearAndMonth) === null || _a === void 0 ? void 0 : _a.replace(/\${(.*?)}/g, (_, variable) => {
@@ -99,10 +144,7 @@ const CalendarPickerView = (0, _react.forwardRef)((p, ref) => {
99
144
  return (_a = renderMap[variable]) === null || _a === void 0 ? void 0 : _a.toString();
100
145
  })), _react.default.createElement("div", {
101
146
  className: `${classPrefix}-cells`
102
- }, Array(props.weekStartsOn === 'Monday' ? monthIterator.date(1).isoWeekday() - 1 : monthIterator.date(1).isoWeekday()).fill(null).map((_, index) => _react.default.createElement("div", {
103
- key: index,
104
- className: `${classPrefix}-cell`
105
- })), Array(monthIterator.daysInMonth()).fill(null).map((_, index) => {
147
+ }, presetEmptyCells, Array(monthIterator.daysInMonth()).fill(null).map((_, index) => {
106
148
  var _a;
107
149
  const d = monthIterator.date(index + 1);
108
150
  let isSelect = false;
@@ -162,27 +204,27 @@ const CalendarPickerView = (0, _react.forwardRef)((p, ref) => {
162
204
  }
163
205
  if (props.selectionMode === 'single') {
164
206
  if (props.allowClear && shouldClear()) {
165
- setDateRange(null);
207
+ onDateChange(null);
166
208
  return;
167
209
  }
168
- setDateRange([date, date]);
210
+ onDateChange([date, date]);
169
211
  } else if (props.selectionMode === 'range') {
170
212
  if (!dateRange) {
171
- setDateRange([date, date]);
213
+ onDateChange([date, date]);
172
214
  setIntermediate(true);
173
215
  return;
174
216
  }
175
217
  if (shouldClear()) {
176
- setDateRange(null);
218
+ onDateChange(null);
177
219
  setIntermediate(false);
178
220
  return;
179
221
  }
180
222
  if (intermediate) {
181
223
  const another = dateRange[0];
182
- setDateRange(another > date ? [date, another] : [another, date]);
224
+ onDateChange(another > date ? [date, another] : [another, date]);
183
225
  setIntermediate(false);
184
226
  } else {
185
- setDateRange([date, date]);
227
+ onDateChange([date, date]);
186
228
  setIntermediate(true);
187
229
  }
188
230
  }
@@ -200,7 +242,8 @@ const CalendarPickerView = (0, _react.forwardRef)((p, ref) => {
200
242
  return cells;
201
243
  }
202
244
  const body = _react.default.createElement("div", {
203
- className: `${classPrefix}-body`
245
+ className: `${classPrefix}-body`,
246
+ ref: bodyRef
204
247
  }, renderBody());
205
248
  const mark = _react.default.createElement("div", {
206
249
  className: `${classPrefix}-mark`
@@ -210,6 +253,6 @@ const CalendarPickerView = (0, _react.forwardRef)((p, ref) => {
210
253
  }, item)));
211
254
  return (0, _nativeProps.withNativeProps)(props, _react.default.createElement("div", {
212
255
  className: classPrefix
213
- }, header, mark, body));
256
+ }, showHeader && header, mark, body));
214
257
  });
215
258
  exports.CalendarPickerView = CalendarPickerView;
@@ -0,0 +1,2 @@
1
+ import type { Dayjs } from 'dayjs';
2
+ export default function useSyncScroll(current: Dayjs, visible: boolean, bodyRef: React.RefObject<HTMLDivElement>): (date: Dayjs) => void;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = useSyncScroll;
7
+ var _rcUtil = require("rc-util");
8
+ var _react = require("react");
9
+ function useSyncScroll(current, visible, bodyRef) {
10
+ const rafRef = (0, _react.useRef)();
11
+ const clean = () => {
12
+ if (rafRef.current) {
13
+ cancelAnimationFrame(rafRef.current);
14
+ }
15
+ };
16
+ const scrollTo = (0, _rcUtil.useEvent)(date => {
17
+ clean();
18
+ rafRef.current = requestAnimationFrame(() => {
19
+ if (bodyRef.current) {
20
+ const yearMonth = date.format('YYYY-M');
21
+ const target = bodyRef.current.querySelector(`[data-year-month="${yearMonth}"]`);
22
+ if (target) {
23
+ // Scroll to the top of view
24
+ target.scrollIntoView({
25
+ block: 'start',
26
+ inline: 'nearest'
27
+ });
28
+ }
29
+ }
30
+ });
31
+ });
32
+ (0, _react.useEffect)(() => {
33
+ if (visible && current) {
34
+ scrollTo(current);
35
+ return clean;
36
+ }
37
+ }, [current, visible]);
38
+ return scrollTo;
39
+ }
@@ -9,6 +9,7 @@
9
9
  display: flex;
10
10
  justify-content: space-between;
11
11
  align-items: center;
12
+ gap: var(--adm-card-header-gap, 16px);
12
13
  box-sizing: border-box;
13
14
  padding: var(--adm-card-header-padding-block, 24px) 0;
14
15
  }
@@ -1,8 +1,9 @@
1
+ import type { CSSProperties, FC, ReactNode } from 'react';
1
2
  import React from 'react';
2
- import type { FC, ReactNode, CSSProperties } from 'react';
3
3
  import { NativeProps } from '../../utils/native-props';
4
4
  export declare type CardProps = {
5
5
  title?: ReactNode;
6
+ icon?: ReactNode;
6
7
  extra?: ReactNode;
7
8
  headerStyle?: CSSProperties;
8
9
  headerClassName?: string;