antd-mobile 5.25.0 → 5.26.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 (100) hide show
  1. package/2x/bundle/antd-mobile.cjs.development.js +188 -121
  2. package/2x/bundle/antd-mobile.cjs.js +8 -8
  3. package/2x/bundle/antd-mobile.es.development.js +188 -121
  4. package/2x/bundle/antd-mobile.es.js +3936 -3910
  5. package/2x/bundle/antd-mobile.umd.development.js +188 -121
  6. package/2x/bundle/antd-mobile.umd.js +8 -8
  7. package/2x/bundle/css-vars-patch.css +399 -0
  8. package/2x/bundle/style.css +29 -5
  9. package/2x/cjs/components/calendar/calendar.js +9 -1
  10. package/2x/cjs/components/floating-bubble/floating-bubble.d.ts +8 -0
  11. package/2x/cjs/components/floating-bubble/floating-bubble.js +25 -5
  12. package/2x/cjs/components/form/form.d.ts +1 -1
  13. package/2x/cjs/components/image-uploader/image-uploader.css +16 -1
  14. package/2x/cjs/components/image-uploader/image-uploader.d.ts +4 -1
  15. package/2x/cjs/components/image-uploader/image-uploader.js +46 -9
  16. package/2x/cjs/components/image-uploader/preview-item.d.ts +2 -1
  17. package/2x/cjs/components/image-uploader/preview-item.js +5 -7
  18. package/2x/cjs/components/mask/mask.d.ts +1 -1
  19. package/2x/cjs/components/mask/mask.js +6 -2
  20. package/2x/cjs/components/notice-bar/notice-bar.css +13 -4
  21. package/2x/cjs/components/notice-bar/notice-bar.d.ts +10 -8
  22. package/2x/cjs/components/notice-bar/notice-bar.js +5 -2
  23. package/2x/cjs/components/stepper/stepper.d.ts +2 -0
  24. package/2x/cjs/components/stepper/stepper.js +55 -32
  25. package/2x/cjs/components/water-mark/water-mark.d.ts +1 -1
  26. package/2x/cjs/components/water-mark/water-mark.js +5 -1
  27. package/2x/es/components/calendar/calendar.js +9 -1
  28. package/2x/es/components/floating-bubble/floating-bubble.d.ts +8 -0
  29. package/2x/es/components/floating-bubble/floating-bubble.js +26 -6
  30. package/2x/es/components/form/form.d.ts +1 -1
  31. package/2x/es/components/image-uploader/image-uploader.css +16 -1
  32. package/2x/es/components/image-uploader/image-uploader.d.ts +4 -1
  33. package/2x/es/components/image-uploader/image-uploader.js +48 -11
  34. package/2x/es/components/image-uploader/preview-item.d.ts +2 -1
  35. package/2x/es/components/image-uploader/preview-item.js +6 -8
  36. package/2x/es/components/mask/mask.d.ts +1 -1
  37. package/2x/es/components/mask/mask.js +6 -2
  38. package/2x/es/components/notice-bar/notice-bar.css +13 -4
  39. package/2x/es/components/notice-bar/notice-bar.d.ts +10 -8
  40. package/2x/es/components/notice-bar/notice-bar.js +5 -2
  41. package/2x/es/components/stepper/stepper.d.ts +2 -0
  42. package/2x/es/components/stepper/stepper.js +55 -32
  43. package/2x/es/components/water-mark/water-mark.d.ts +1 -1
  44. package/2x/es/components/water-mark/water-mark.js +5 -1
  45. package/2x/package.json +9 -9
  46. package/bundle/antd-mobile.cjs.development.js +188 -121
  47. package/bundle/antd-mobile.cjs.js +8 -8
  48. package/bundle/antd-mobile.compatible.umd.js +1 -1
  49. package/bundle/antd-mobile.es.development.js +188 -121
  50. package/bundle/antd-mobile.es.js +3936 -3910
  51. package/bundle/antd-mobile.umd.development.js +188 -121
  52. package/bundle/antd-mobile.umd.js +8 -8
  53. package/bundle/css-vars-patch.css +312 -0
  54. package/bundle/style.css +1 -1
  55. package/cjs/components/calendar/calendar.js +9 -1
  56. package/cjs/components/floating-bubble/floating-bubble.d.ts +8 -0
  57. package/cjs/components/floating-bubble/floating-bubble.js +25 -5
  58. package/cjs/components/form/form.d.ts +1 -1
  59. package/cjs/components/image-uploader/image-uploader.css +15 -1
  60. package/cjs/components/image-uploader/image-uploader.d.ts +4 -1
  61. package/cjs/components/image-uploader/image-uploader.js +46 -9
  62. package/cjs/components/image-uploader/preview-item.d.ts +2 -1
  63. package/cjs/components/image-uploader/preview-item.js +5 -7
  64. package/cjs/components/mask/mask.d.ts +1 -1
  65. package/cjs/components/mask/mask.js +6 -2
  66. package/cjs/components/notice-bar/notice-bar.css +11 -4
  67. package/cjs/components/notice-bar/notice-bar.d.ts +10 -8
  68. package/cjs/components/notice-bar/notice-bar.js +5 -2
  69. package/cjs/components/stepper/stepper.d.ts +2 -0
  70. package/cjs/components/stepper/stepper.js +55 -32
  71. package/cjs/components/water-mark/water-mark.d.ts +1 -1
  72. package/cjs/components/water-mark/water-mark.js +5 -1
  73. package/es/components/calendar/calendar.js +9 -1
  74. package/es/components/floating-bubble/floating-bubble.d.ts +8 -0
  75. package/es/components/floating-bubble/floating-bubble.js +26 -6
  76. package/es/components/form/form.d.ts +1 -1
  77. package/es/components/image-uploader/image-uploader.css +15 -1
  78. package/es/components/image-uploader/image-uploader.d.ts +4 -1
  79. package/es/components/image-uploader/image-uploader.js +48 -11
  80. package/es/components/image-uploader/preview-item.d.ts +2 -1
  81. package/es/components/image-uploader/preview-item.js +6 -8
  82. package/es/components/mask/mask.d.ts +1 -1
  83. package/es/components/mask/mask.js +6 -2
  84. package/es/components/notice-bar/notice-bar.css +11 -4
  85. package/es/components/notice-bar/notice-bar.d.ts +10 -8
  86. package/es/components/notice-bar/notice-bar.js +5 -2
  87. package/es/components/stepper/stepper.d.ts +2 -0
  88. package/es/components/stepper/stepper.js +55 -32
  89. package/es/components/water-mark/water-mark.d.ts +1 -1
  90. package/es/components/water-mark/water-mark.js +5 -1
  91. package/package.json +9 -9
  92. package/umd/antd-mobile.js +1 -1
  93. package/2x/cjs/components/image/test/image.test.d.ts +0 -1
  94. package/2x/cjs/components/image/test/image.test.js +0 -73
  95. package/2x/es/components/image/test/image.test.d.ts +0 -1
  96. package/2x/es/components/image/test/image.test.js +0 -70
  97. package/cjs/components/image/test/image.test.d.ts +0 -1
  98. package/cjs/components/image/test/image.test.js +0 -73
  99. package/es/components/image/test/image.test.d.ts +0 -1
  100. package/es/components/image/test/image.test.js +0 -70
@@ -0,0 +1,399 @@
1
+ @supports not (color: var(--adm-color-text)) {
2
+ .adm-button {
3
+ color: #333333;
4
+ background-color: #ffffff;
5
+ font-size: 34px;
6
+ border-width: 2px;
7
+ border-style: solid;
8
+ border-color: #eeeeee;
9
+ border-radius: 8px;
10
+ }
11
+
12
+ .adm-button::before {
13
+ transform: translate(-2px, -2px);
14
+ border: 2px solid #000;
15
+ border-radius: 8px;
16
+ }
17
+
18
+ .adm-button-default.adm-button-fill-outline {
19
+ background-color: transparent;
20
+ border-color: #333333;
21
+ }
22
+
23
+ .adm-button-default.adm-button-fill-none {
24
+ background-color: transparent;
25
+ border-width: 0;
26
+ }
27
+
28
+ .adm-button:not(.adm-button-default) {
29
+ color: #ffffff;
30
+ }
31
+
32
+ .adm-button:not(.adm-button-default).adm-button-fill-outline {
33
+ background-color: transparent;
34
+ }
35
+
36
+ .adm-button:not(.adm-button-default).adm-button-fill-none {
37
+ background-color: transparent;
38
+ border-width: 0;
39
+ }
40
+
41
+ .adm-button-primary {
42
+ background-color: #1677ff;
43
+ border-color: #1677ff;
44
+ }
45
+
46
+ .adm-button-primary.adm-button-fill-outline,
47
+ .adm-button-primary.adm-button-fill-none {
48
+ color: #1677ff;
49
+ }
50
+
51
+ .adm-button-success {
52
+ background-color: #00b578;
53
+ border-color: #00b578;
54
+ }
55
+
56
+ .adm-button-success.adm-button-fill-outline,
57
+ .adm-button-success.adm-button-fill-none {
58
+ color: #00b578;
59
+ }
60
+
61
+ .adm-button-danger {
62
+ background-color: #00b578;
63
+ border-color: #00b578;
64
+ }
65
+
66
+ .adm-button-danger.adm-button-fill-outline,
67
+ .adm-button-danger.adm-button-fill-none {
68
+ color: #00b578;
69
+ }
70
+
71
+ .adm-button-warning {
72
+ background-color: #ff8f1f;
73
+ border-color: #ff8f1f;
74
+ }
75
+
76
+ .adm-button-warning.adm-button-fill-outline,
77
+ .adm-button-warning.adm-button-fill-none {
78
+ color: #ff8f1f;
79
+ }
80
+
81
+ .adm-button.adm-button-mini {
82
+ font-size: 26px;
83
+ }
84
+
85
+ .adm-button.adm-button-small {
86
+ padding-top: 6px;
87
+ padding-bottom: 6px;
88
+ font-size: 30px;
89
+ }
90
+
91
+ .adm-button.adm-button-large {
92
+ padding-top: 22px;
93
+ padding-bottom: 22px;
94
+ font-size: 36px;
95
+ }
96
+
97
+ .adm-button.adm-button-shape-rounded {
98
+ border-radius: 2000px;
99
+ }
100
+
101
+ .adm-button.adm-button-shape-rounded::before {
102
+ border-radius: 2000px;
103
+ }
104
+
105
+ .adm-button.adm-button-shape-rectangular {
106
+ border-radius: 0;
107
+ }
108
+
109
+ .adm-center-popup {
110
+ z-index: 1000;
111
+ }
112
+
113
+ .adm-center-popup-wrap {
114
+ min-width: 560px;
115
+ max-width: 75vw;
116
+ }
117
+
118
+ .adm-center-popup-body {
119
+ background-color: #ffffff;
120
+ border-radius: 16px;
121
+ }
122
+
123
+ .adm-error-block-image {
124
+ height: 200px;
125
+ width: auto;
126
+ }
127
+
128
+ .adm-error-block-description {
129
+ font-size: var(--adm-font-size-4);
130
+ }
131
+
132
+ .adm-error-block-description-title {
133
+ font-size: var(--adm-font-size-7);
134
+ }
135
+
136
+ .adm-error-block-full-page {
137
+ padding-top: calc(50vh - 400px);
138
+ }
139
+
140
+ .adm-error-block-full-page .adm-error-block-image {
141
+ height: 400px;
142
+ width: auto;
143
+ }
144
+
145
+ .adm-error-block-full-page .adm-error-block-description {
146
+ font-size: var(--adm-font-size-main);
147
+ }
148
+
149
+ .adm-error-block-full-page .adm-error-block-description-title {
150
+ color: #333333;
151
+ }
152
+
153
+ .adm-image {
154
+ width: auto;
155
+ height: auto;
156
+ }
157
+
158
+ .adm-image-tip {
159
+ background-color: #f5f5f5;
160
+ }
161
+
162
+ .adm-image-tip > svg {
163
+ color: #999999;
164
+ }
165
+
166
+ .adm-mask {
167
+ z-index: 1000;
168
+ }
169
+
170
+ .adm-modal-body {
171
+ font-size: 28px;
172
+ }
173
+
174
+ .adm-modal-title {
175
+ font-size: 36px;
176
+ }
177
+
178
+ .adm-modal-content {
179
+ font-size: 30px;
180
+ color: #333333;
181
+ }
182
+
183
+ .adm-modal-close {
184
+ color: #999999;
185
+ font-size: 36px;
186
+ }
187
+
188
+ .adm-modal-footer.adm-space.adm-space-vertical > .adm-space-item.adm-space-item {
189
+ margin-bottom: 40px;
190
+ }
191
+
192
+ .adm-modal-footer.adm-space.adm-space-vertical > .adm-space-item.adm-space-item:last-child {
193
+ margin-bottom: 0;
194
+ }
195
+
196
+ .adm-modal-footer .adm-modal-button {
197
+ font-size: 36px;
198
+ }
199
+
200
+ .adm-page-indicator-dot {
201
+ width: 6px;
202
+ height: 6px;
203
+ border-radius: 2px;
204
+ background: rgba(0, 0, 0, 0.2);
205
+ }
206
+
207
+ .adm-page-indicator-dot-active {
208
+ border-radius: 2px;
209
+ background: #1677ff;
210
+ }
211
+
212
+ .adm-page-indicator-color-white .adm-page-indicator-dot-active.adm-page-indicator-dot-active {
213
+ background: #ffffff;
214
+ }
215
+
216
+ .adm-page-indicator-horizontal .adm-page-indicator-dot {
217
+ margin-right: 6px;
218
+ }
219
+
220
+ .adm-page-indicator-horizontal .adm-page-indicator-dot-active {
221
+ width: 26px;
222
+ }
223
+
224
+ .adm-page-indicator-vertical .adm-page-indicator-dot {
225
+ margin-bottom: 6px;
226
+ }
227
+
228
+ .adm-page-indicator-vertical .adm-page-indicator-dot-active {
229
+ height: 26px;
230
+ }
231
+
232
+ .adm-popover-menu.adm-popover .adm-popover-inner-content {
233
+ padding: 0 !important;
234
+ }
235
+
236
+ .adm-popover-menu-item-text {
237
+ border-top: solid 2px #eeeeee;
238
+ }
239
+
240
+ .adm-popover-menu-item:active:not(.adm-popover-menu-item-disabled) {
241
+ background-color: #eeeeee;
242
+ }
243
+
244
+ .adm-popover-menu-item:active:not(.adm-popover-menu-item-disabled)::after {
245
+ border-bottom: solid 2px #eeeeee;
246
+ }
247
+
248
+ .adm-popover.adm-popover-dark.adm-popover-menu.adm-popover-menu .adm-popover-menu-item-text {
249
+ border-color: #333333;
250
+ }
251
+
252
+ .adm-popover.adm-popover-dark.adm-popover-menu.adm-popover-menu .adm-popover-menu-item:active:not(.adm-popover-menu-item-disabled) {
253
+ background-color: #333333;
254
+ }
255
+
256
+ .adm-popover.adm-popover-dark.adm-popover-menu.adm-popover-menu .adm-popover-menu-item:active:not(.adm-popover-menu-item-disabled)::after {
257
+ border-color: #333333;
258
+ }
259
+
260
+ .adm-popover.adm-popover-dark.adm-popover-menu.adm-popover-menu .adm-popover-inner.adm-popover-inner.adm-popover-inner {
261
+ background-color: rgba(0, 0, 0, 0.9);
262
+ }
263
+
264
+ .adm-popover {
265
+ z-index: 1030;
266
+ }
267
+
268
+ .adm-popover.adm-popover-dark {
269
+ color: #ffffff;
270
+ }
271
+
272
+ .adm-popover.adm-popover-dark .adm-popover-inner {
273
+ background-color: rgba(0, 0, 0, 0.75);
274
+ }
275
+
276
+ .adm-popover-inner {
277
+ background-color: #ffffff;
278
+ font-size: 30px;
279
+ }
280
+
281
+ .adm-popover-inner-content {
282
+ padding: 16px 24px;
283
+ }
284
+
285
+ .adm-popover-arrow {
286
+ display: none !important;
287
+ }
288
+
289
+ .adm-scroll-mask-left {
290
+ background: linear-gradient(to right, #ffffff, rgba(255, 255, 255, 0));
291
+ }
292
+
293
+ .adm-scroll-mask-right {
294
+ background: linear-gradient(to left, #ffffff, rgba(255, 255, 255, 0));
295
+ }
296
+
297
+ .adm-space-vertical > .adm-space-item {
298
+ margin-bottom: 16px;
299
+ }
300
+
301
+ .adm-space-horizontal > .adm-space-item {
302
+ margin-right: 16px;
303
+ }
304
+
305
+ .adm-space-horizontal.adm-space-wrap {
306
+ flex-wrap: wrap;
307
+ margin-bottom: -16px;
308
+ }
309
+
310
+ .adm-space-horizontal.adm-space-wrap > .adm-space-item {
311
+ padding-bottom: 16px;
312
+ }
313
+
314
+ .adm-spin-loading {
315
+ width: 64px;
316
+ height: 64px;
317
+ }
318
+
319
+ .adm-spin-loading-svg {
320
+ width: 100%;
321
+ height: 100%;
322
+ animation: adm-spin-loading-rotate 0.8s infinite linear;
323
+ }
324
+
325
+ .adm-spin-loading-svg > .adm-spin-loading-fill {
326
+ stroke: #999999;
327
+ }
328
+
329
+ .adm-swiper {
330
+ display: block;
331
+ width: 100%;
332
+ height: auto;
333
+ border-radius: 0;
334
+ }
335
+
336
+ .adm-swiper-track {
337
+ padding: 0;
338
+ }
339
+
340
+ .adm-swiper-horizontal .adm-swiper-track {
341
+ transform: translateX(0%);
342
+ }
343
+
344
+ .adm-swiper-horizontal .adm-swiper-track-inner {
345
+ width: 100%;
346
+ }
347
+
348
+ .adm-swiper-vertical .adm-swiper-track {
349
+ transform: translateY(0%);
350
+ }
351
+
352
+ .adm-swiper-vertical .adm-swiper-track-inner {
353
+ height: 100%;
354
+ }
355
+
356
+ .adm-tabs-header {
357
+ border-bottom: solid 2px #eeeeee;
358
+ }
359
+
360
+ .adm-tabs-tab {
361
+ font-size: 34px;
362
+ }
363
+
364
+ .adm-tabs-tab-active {
365
+ color: #1677ff;
366
+ }
367
+
368
+ .adm-tabs-tab-line {
369
+ height: 4px;
370
+ background: #1677ff;
371
+ border-radius: 4px;
372
+ }
373
+
374
+ .adm-tabs-content {
375
+ padding: 24px;
376
+ }
377
+
378
+ .adm-tabs-header-mask-left {
379
+ background: linear-gradient(to right, #ffffff, rgba(255, 255, 255, 0));
380
+ }
381
+
382
+ .adm-tabs-header-mask-right {
383
+ background: linear-gradient(to left, #ffffff, rgba(255, 255, 255, 0));
384
+ }
385
+
386
+ .adm-toast-mask .adm-toast-main {
387
+ font-size: 30px;
388
+ }
389
+
390
+ .adm-toast-loading.adm-toast-loading {
391
+ width: 96px;
392
+ height: 96px;
393
+ margin: 0 auto 16px;
394
+ }
395
+
396
+ .adm-toast-loading.adm-toast-loading .adm-spin-loading-fill {
397
+ stroke: #ffffff;
398
+ }
399
+ }
@@ -2360,10 +2360,17 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
2360
2360
 
2361
2361
  .adm-image-uploader {
2362
2362
  --cell-size: 160px;
2363
+ --gap: 24px;
2364
+ ---gap: var(--gap);
2365
+ ---gap-horizontal: var(--gap-horizontal, var(--gap));
2366
+ ---gap-vertical: var(--gap-vertical, var(--gap));
2363
2367
  }
2364
2368
 
2369
+ .adm-image-uploader-grid,
2365
2370
  .adm-image-uploader-space {
2366
- --gap: 24px;
2371
+ --gap: var(---gap);
2372
+ --gap-horizontal: var(---gap-horizontal);
2373
+ --gap-vertical: var(---gap-vertical);
2367
2374
  }
2368
2375
 
2369
2376
  .adm-image-uploader-cell {
@@ -2456,6 +2463,14 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
2456
2463
  border-radius: 8px;
2457
2464
  }
2458
2465
 
2466
+ .adm-image-uploader .adm-image-uploader-gap-measure {
2467
+ position: absolute;
2468
+ left: 0;
2469
+ top: 0;
2470
+ height: var(--gap-horizontal);
2471
+ width: 0;
2472
+ }
2473
+
2459
2474
  .adm-index-bar {
2460
2475
  --color: var(--adm-color-text);
2461
2476
  overflow: hidden;
@@ -2915,11 +2930,10 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
2915
2930
  --text-color: var(--adm-color-white);
2916
2931
  --font-size: var(--adm-font-size-7);
2917
2932
  --icon-font-size: var(--adm-font-size-10);
2918
- --height: 76px;
2933
+ --height: 80px;
2919
2934
  height: var(--height);
2920
2935
  box-sizing: border-box;
2921
2936
  font-size: var(--font-size);
2922
- line-height: var(--height);
2923
2937
  padding: 0 24px;
2924
2938
  display: flex;
2925
2939
  align-items: center;
@@ -2957,7 +2971,6 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
2957
2971
  flex-shrink: 0;
2958
2972
  margin-right: 16px;
2959
2973
  font-size: var(--icon-font-size);
2960
- line-height: var(--height);
2961
2974
  }
2962
2975
 
2963
2976
  .adm-notice-bar .adm-notice-bar-content {
@@ -2972,10 +2985,13 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
2972
2985
  .adm-notice-bar .adm-notice-bar-content .adm-notice-bar-content-inner {
2973
2986
  width: auto;
2974
2987
  transition-timing-function: linear;
2975
- position: absolute;
2976
2988
  white-space: nowrap;
2977
2989
  }
2978
2990
 
2991
+ .adm-notice-bar-wrap.adm-notice-bar .adm-notice-bar-content .adm-notice-bar-content-inner {
2992
+ white-space: normal;
2993
+ }
2994
+
2979
2995
  .adm-notice-bar .adm-notice-bar-right {
2980
2996
  flex-shrink: 0;
2981
2997
  margin-left: 24px;
@@ -2994,6 +3010,14 @@ a.adm-list-item:active:not(.adm-list-item-disabled):after {
2994
3010
  font-size: var(--adm-font-size-10);
2995
3011
  }
2996
3012
 
3013
+ .adm-notice-bar-wrap {
3014
+ height: auto;
3015
+ align-items: flex-start;
3016
+ padding-top: 16px;
3017
+ padding-bottom: 16px;
3018
+ line-height: 44px;
3019
+ }
3020
+
2997
3021
  .adm-number-keyboard-main {
2998
3022
  display: flex;
2999
3023
  flex-wrap: wrap;
@@ -131,11 +131,17 @@ const Calendar = (0, _react.forwardRef)((p, ref) => {
131
131
  let isSelect = false;
132
132
  let isBegin = false;
133
133
  let isEnd = false;
134
+ let isSelectRowBegin = false;
135
+ let isSelectRowEnd = false;
134
136
  if (dateRange) {
135
137
  const [begin, end] = dateRange;
136
138
  isBegin = d.isSame(begin, 'day');
137
139
  isEnd = d.isSame(end, 'day');
138
140
  isSelect = isBegin || isEnd || d.isAfter(begin, 'day') && d.isBefore(end, 'day');
141
+ if (isSelect) {
142
+ isSelectRowBegin = (cells.length % 7 === 0 || d.isSame(d.startOf('month'), 'day')) && !isBegin;
143
+ isSelectRowEnd = (cells.length % 7 === 6 || d.isSame(d.endOf('month'), 'day')) && !isEnd;
144
+ }
139
145
  }
140
146
  const inThisMonth = d.month() === current.month();
141
147
  const disabled = props.shouldDisableDate ? props.shouldDisableDate(d.toDate()) : maxDay && d.isAfter(maxDay, 'day') || minDay && d.isBefore(minDay, 'day');
@@ -145,7 +151,9 @@ const Calendar = (0, _react.forwardRef)((p, ref) => {
145
151
  [`${classPrefix}-cell-today`]: d.isSame(today, 'day'),
146
152
  [`${classPrefix}-cell-selected`]: isSelect,
147
153
  [`${classPrefix}-cell-selected-begin`]: isBegin,
148
- [`${classPrefix}-cell-selected-end`]: isEnd
154
+ [`${classPrefix}-cell-selected-end`]: isEnd,
155
+ [`${classPrefix}-cell-selected-row-begin`]: isSelectRowBegin,
156
+ [`${classPrefix}-cell-selected-row-end`]: isSelectRowEnd
149
157
  }),
150
158
  onClick: () => {
151
159
  if (!props.selectionMode) return;
@@ -1,9 +1,17 @@
1
1
  import React, { FC } from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
+ declare type Offset = {
4
+ x: number;
5
+ y: number;
6
+ };
3
7
  export declare type FloatingBubbleProps = {
4
8
  onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void;
5
9
  axis?: 'x' | 'y' | 'xy' | 'lock';
6
10
  magnetic?: 'x' | 'y';
7
11
  children?: React.ReactNode;
12
+ offset?: Offset;
13
+ defaultOffset?: Offset;
14
+ onOffsetChange?: (offset: Offset) => void;
8
15
  } & NativeProps<'--initial-position-left' | '--initial-position-right' | '--initial-position-top' | '--initial-position-bottom' | '--z-index' | '--edge-distance' | '--size' | '--border-radius' | '--background'>;
9
16
  export declare const FloatingBubble: FC<FloatingBubbleProps>;
17
+ export {};
@@ -13,12 +13,24 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
13
13
  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; }
14
14
  const classPrefix = `adm-floating-bubble`;
15
15
  const defaultProps = {
16
- axis: 'y'
16
+ axis: 'y',
17
+ defaultOffset: {
18
+ x: 0,
19
+ y: 0
20
+ }
17
21
  };
18
22
  const FloatingBubble = p => {
19
23
  const props = (0, _withDefaultProps.mergeProps)(defaultProps, p);
20
24
  const boundaryRef = (0, _react.useRef)(null);
21
25
  const buttonRef = (0, _react.useRef)(null);
26
+ const [innerValue, setInnerValue] = (0, _react.useState)(props.offset === undefined ? props.defaultOffset : props.offset);
27
+ (0, _react.useEffect)(() => {
28
+ if (props.offset === undefined) return;
29
+ api.start({
30
+ x: props.offset.x,
31
+ y: props.offset.y
32
+ });
33
+ }, [props.offset]);
22
34
  /**
23
35
  * memoize the `to` function
24
36
  * inside a component that renders frequently
@@ -29,11 +41,12 @@ const FloatingBubble = p => {
29
41
  y,
30
42
  opacity
31
43
  }, api] = (0, _web.useSpring)(() => ({
32
- x: 0,
33
- y: 0,
44
+ x: innerValue.x,
45
+ y: innerValue.y,
34
46
  opacity: 1
35
47
  }));
36
48
  const bind = (0, _react2.useDrag)(state => {
49
+ var _a;
37
50
  let nextX = state.offset[0];
38
51
  let nextY = state.offset[1];
39
52
  if (state.last && props.magnetic) {
@@ -62,10 +75,17 @@ const FloatingBubble = p => {
62
75
  }
63
76
  }
64
77
  }
65
- api.start({
78
+ const nextOffest = {
66
79
  x: nextX,
67
80
  y: nextY
68
- });
81
+ };
82
+ if (props.offset === undefined) {
83
+ // Uncontrolled mode
84
+ api.start(nextOffest);
85
+ } else {
86
+ setInnerValue(nextOffest);
87
+ }
88
+ (_a = props.onOffsetChange) === null || _a === void 0 ? void 0 : _a.call(props, nextOffest);
69
89
  // active status
70
90
  api.start({
71
91
  opacity: state.active ? 0.8 : 1
@@ -3,7 +3,7 @@ import { NativeProps } from '../../utils/native-props';
3
3
  import { ListProps } from '../list';
4
4
  import type { FormProps as RcFormProps, FormInstance as RCFormInstance } from 'rc-field-form';
5
5
  import { FormContextType } from './context';
6
- export declare type FormInstance = Pick<RCFormInstance, 'getFieldValue' | 'getFieldsValue' | 'getFieldError' | 'getFieldsError' | 'isFieldTouched' | 'isFieldsTouched' | 'resetFields' | 'setFields' | 'setFieldsValue' | 'submit' | 'validateFields'>;
6
+ export declare type FormInstance = Pick<RCFormInstance, 'getFieldValue' | 'getFieldsValue' | 'getFieldError' | 'getFieldsError' | 'isFieldTouched' | 'isFieldsTouched' | 'resetFields' | 'setFields' | 'setFieldValue' | 'setFieldsValue' | 'submit' | 'validateFields'>;
7
7
  export declare type FormProps = Pick<RcFormProps, 'form' | 'initialValues' | 'name' | 'preserve' | 'validateMessages' | 'validateTrigger' | 'onFieldsChange' | 'onFinish' | 'onFinishFailed' | 'onValuesChange' | 'children'> & NativeProps<'--border-inner' | '--border-top' | '--border-bottom' | '--prefix-width'> & Partial<FormContextType> & {
8
8
  footer?: ReactNode;
9
9
  mode?: ListProps['mode'];
@@ -1,9 +1,16 @@
1
1
  .adm-image-uploader {
2
2
  --cell-size: 160px;
3
+ --gap: 24px;
4
+ ---gap: var(--gap);
5
+ ---gap-horizontal: var(--gap-horizontal, var(--gap));
6
+ ---gap-vertical: var(--gap-vertical, var(--gap));
3
7
  }
4
8
 
9
+ .adm-image-uploader-grid,
5
10
  .adm-image-uploader-space {
6
- --gap: 24px;
11
+ --gap: var(---gap);
12
+ --gap-horizontal: var(---gap-horizontal);
13
+ --gap-vertical: var(---gap-vertical);
7
14
  }
8
15
 
9
16
  .adm-image-uploader-cell {
@@ -94,4 +101,12 @@
94
101
  width: 100%;
95
102
  height: 100%;
96
103
  border-radius: 8px;
104
+ }
105
+
106
+ .adm-image-uploader .adm-image-uploader-gap-measure {
107
+ position: absolute;
108
+ left: 0;
109
+ top: 0;
110
+ height: var(--gap-horizontal);
111
+ width: 0;
97
112
  }
@@ -1,6 +1,7 @@
1
1
  import React, { FC, InputHTMLAttributes } from 'react';
2
2
  import { NativeProps } from '../../utils/native-props';
3
3
  import type { ImageProps } from '../image';
4
+ import { GridProps } from '../grid';
4
5
  export declare type TaskStatus = 'pending' | 'fail' | 'success';
5
6
  export interface ImageUploadItem {
6
7
  key?: string | number;
@@ -18,6 +19,7 @@ export declare type UploadTask = Pick<Task, 'id' | 'status'>;
18
19
  export declare type ImageUploaderProps = {
19
20
  defaultValue?: ImageUploadItem[];
20
21
  value?: ImageUploadItem[];
22
+ columns?: GridProps['columns'];
21
23
  onChange?: (items: ImageUploadItem[]) => void;
22
24
  onUploadQueueChange?: (tasks: UploadTask[]) => void;
23
25
  accept?: string;
@@ -27,6 +29,7 @@ export declare type ImageUploaderProps = {
27
29
  disableUpload?: boolean;
28
30
  showUpload?: boolean;
29
31
  deletable?: boolean;
32
+ deleteIcon?: React.ReactNode;
30
33
  capture?: InputHTMLAttributes<unknown>['capture'];
31
34
  onPreview?: (index: number, item: ImageUploadItem) => void;
32
35
  beforeUpload?: (file: File, files: File[]) => Promise<File | null> | File | null;
@@ -37,6 +40,6 @@ export declare type ImageUploaderProps = {
37
40
  imageFit?: ImageProps['fit'];
38
41
  children?: React.ReactNode;
39
42
  renderItem?: (originNode: React.ReactElement, file: ImageUploadItem, fileList: ImageUploadItem[]) => React.ReactNode;
40
- } & NativeProps<'--cell-size'>;
43
+ } & NativeProps<'--cell-size' | '--gap' | '--gap-vertical' | '--gap-horizontal'>;
41
44
  export declare const ImageUploader: FC<ImageUploaderProps>;
42
45
  export {};