@tiny-design/react 1.3.0 → 1.5.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.
- package/es/alert/style/_index.scss +2 -2
- package/es/alert/style/index.css +2 -2
- package/es/auto-complete/style/_index.scss +4 -5
- package/es/auto-complete/style/index.css +4 -5
- package/es/breadcrumb/style/index.css +1 -1
- package/es/breadcrumb/types.d.ts +1 -1
- package/es/button/style/_index.scss +16 -11
- package/es/button/style/index.css +40 -19
- package/es/calendar/style/_index.scss +9 -9
- package/es/calendar/style/index.css +9 -9
- package/es/card/style/index.css +3 -3
- package/es/cascader/style/_index.scss +9 -9
- package/es/cascader/style/index.css +9 -9
- package/es/checkbox/style/_index.scss +9 -12
- package/es/checkbox/style/index.css +9 -12
- package/es/collapse/style/index.css +3 -3
- package/es/color-picker/style/_index.scss +7 -7
- package/es/color-picker/style/index.css +4 -4
- package/es/date-picker/style/_index.scss +1 -1
- package/es/date-picker/style/index.css +1 -1
- package/es/descriptions/style/_index.scss +5 -6
- package/es/descriptions/style/index.css +6 -6
- package/es/empty/style/_index.scss +1 -1
- package/es/empty/style/index.css +1 -1
- package/es/form/style/_index.scss +5 -6
- package/es/form/style/index.css +4 -4
- package/es/index.d.ts +2 -1
- package/es/index.js +2 -1
- package/es/input/style/_index.scss +5 -4
- package/es/input/style/_mixin.scss +1 -1
- package/es/input/style/index.css +21 -20
- package/es/input-number/input-number.js +11 -5
- package/es/input-number/input-number.js.map +1 -1
- package/es/input-number/style/_index.scss +5 -3
- package/es/input-number/style/index.css +13 -11
- package/es/input-otp/style/_index.scss +1 -1
- package/es/input-otp/style/index.css +8 -8
- package/es/list/style/_index.scss +3 -3
- package/es/list/style/index.css +3 -3
- package/es/marquee/index.d.ts +1 -0
- package/es/marquee/index.js +9 -0
- package/es/marquee/index.js.map +1 -0
- package/es/marquee/marquee.d.ts +8 -0
- package/es/marquee/marquee.js +42 -0
- package/es/marquee/marquee.js.map +1 -0
- package/es/marquee/style/_index.scss +77 -0
- package/es/marquee/style/index.css +64 -0
- package/es/marquee/style/index.d.ts +1 -0
- package/es/marquee/style/index.js +1 -0
- package/es/marquee/types.d.ts +21 -0
- package/es/native-select/style/index.css +4 -4
- package/es/notification/style/_index.scss +1 -1
- package/es/notification/style/index.css +1 -1
- package/es/pop-confirm/style/_index.scss +5 -1
- package/es/pop-confirm/style/index.css +5 -1
- package/es/popup/style/_index.scss +9 -9
- package/es/popup/style/index.css +10 -10
- package/es/radio/style/_index.scss +5 -8
- package/es/radio/style/index.css +5 -8
- package/es/segmented/style/_index.scss +10 -10
- package/es/segmented/style/index.css +9 -9
- package/es/select/style/_index.scss +16 -17
- package/es/select/style/index.css +15 -16
- package/es/slider/style/_index.scss +1 -9
- package/es/slider/style/index.css +1 -6
- package/es/speed-dial/style/_index.scss +8 -9
- package/es/speed-dial/style/index.css +7 -7
- package/es/statistic/style/_index.scss +2 -2
- package/es/statistic/style/index.css +2 -2
- package/es/style/_component.scss +1 -0
- package/es/style/base.css +81 -3
- package/es/table/style/_index.scss +6 -6
- package/es/table/style/index.css +5 -5
- package/es/tag/style/_index.scss +24 -0
- package/es/tag/style/index.css +21 -1
- package/es/tag/types.d.ts +2 -1
- package/es/tag/types.js +7 -2
- package/es/tag/types.js.map +1 -1
- package/es/textarea/style/index.css +2 -2
- package/es/time-picker/style/_index.scss +14 -1
- package/es/time-picker/style/index.css +11 -1
- package/es/time-picker/time-panel.js +28 -28
- package/es/time-picker/time-panel.js.map +1 -1
- package/es/time-picker/time-picker.js +50 -29
- package/es/time-picker/time-picker.js.map +1 -1
- package/es/timeline/style/_index.scss +3 -3
- package/es/timeline/style/index.css +3 -3
- package/es/tooltip/style/index.css +1 -1
- package/es/transfer/style/_index.scss +4 -4
- package/es/transfer/style/index.css +4 -4
- package/es/tree/style/index.css +1 -1
- package/es/typography/style/_index.scss +2 -2
- package/es/typography/style/index.css +2 -2
- package/es/upload/style/_index.scss +4 -4
- package/es/upload/style/index.css +4 -4
- package/lib/alert/style/_index.scss +2 -2
- package/lib/alert/style/index.css +2 -2
- package/lib/auto-complete/style/_index.scss +4 -5
- package/lib/auto-complete/style/index.css +4 -5
- package/lib/breadcrumb/style/index.css +1 -1
- package/lib/breadcrumb/types.d.ts +1 -1
- package/lib/button/style/_index.scss +16 -11
- package/lib/button/style/index.css +40 -19
- package/lib/calendar/style/_index.scss +9 -9
- package/lib/calendar/style/index.css +9 -9
- package/lib/card/style/index.css +3 -3
- package/lib/cascader/style/_index.scss +9 -9
- package/lib/cascader/style/index.css +9 -9
- package/lib/checkbox/style/_index.scss +9 -12
- package/lib/checkbox/style/index.css +9 -12
- package/lib/collapse/style/index.css +3 -3
- package/lib/color-picker/style/_index.scss +7 -7
- package/lib/color-picker/style/index.css +4 -4
- package/lib/date-picker/style/_index.scss +1 -1
- package/lib/date-picker/style/index.css +1 -1
- package/lib/descriptions/style/_index.scss +5 -6
- package/lib/descriptions/style/index.css +6 -6
- package/lib/empty/style/_index.scss +1 -1
- package/lib/empty/style/index.css +1 -1
- package/lib/form/style/_index.scss +5 -6
- package/lib/form/style/index.css +4 -4
- package/lib/index.d.ts +2 -1
- package/lib/index.js +76 -74
- package/lib/input/style/_index.scss +5 -4
- package/lib/input/style/_mixin.scss +1 -1
- package/lib/input/style/index.css +21 -20
- package/lib/input-number/input-number.js +11 -5
- package/lib/input-number/input-number.js.map +1 -1
- package/lib/input-number/style/_index.scss +5 -3
- package/lib/input-number/style/index.css +13 -11
- package/lib/input-otp/style/_index.scss +1 -1
- package/lib/input-otp/style/index.css +8 -8
- package/lib/list/style/_index.scss +3 -3
- package/lib/list/style/index.css +3 -3
- package/lib/marquee/index.js +8 -0
- package/lib/marquee/index.js.map +1 -0
- package/lib/marquee/marquee.d.ts +8 -0
- package/lib/marquee/marquee.js +45 -0
- package/lib/marquee/marquee.js.map +1 -0
- package/lib/marquee/style/_index.scss +77 -0
- package/lib/marquee/style/index.css +64 -0
- package/lib/marquee/style/index.d.ts +1 -0
- package/lib/marquee/style/index.js +1 -0
- package/lib/marquee/types.d.ts +21 -0
- package/lib/native-select/style/index.css +4 -4
- package/lib/notification/style/_index.scss +1 -1
- package/lib/notification/style/index.css +1 -1
- package/lib/pop-confirm/style/_index.scss +5 -1
- package/lib/pop-confirm/style/index.css +5 -1
- package/lib/popup/style/_index.scss +9 -9
- package/lib/popup/style/index.css +10 -10
- package/lib/radio/style/_index.scss +5 -8
- package/lib/radio/style/index.css +5 -8
- package/lib/segmented/style/_index.scss +10 -10
- package/lib/segmented/style/index.css +9 -9
- package/lib/select/style/_index.scss +16 -17
- package/lib/select/style/index.css +15 -16
- package/lib/slider/style/_index.scss +1 -9
- package/lib/slider/style/index.css +1 -6
- package/lib/speed-dial/style/_index.scss +8 -9
- package/lib/speed-dial/style/index.css +7 -7
- package/lib/statistic/style/_index.scss +2 -2
- package/lib/statistic/style/index.css +2 -2
- package/lib/style/_component.scss +1 -0
- package/lib/style/base.css +81 -3
- package/lib/table/style/_index.scss +6 -6
- package/lib/table/style/index.css +5 -5
- package/lib/tag/style/_index.scss +24 -0
- package/lib/tag/style/index.css +21 -1
- package/lib/tag/types.d.ts +2 -1
- package/lib/tag/types.js +7 -2
- package/lib/tag/types.js.map +1 -1
- package/lib/textarea/style/index.css +2 -2
- package/lib/time-picker/style/_index.scss +14 -1
- package/lib/time-picker/style/index.css +11 -1
- package/lib/time-picker/time-panel.js +28 -28
- package/lib/time-picker/time-panel.js.map +1 -1
- package/lib/time-picker/time-picker.js +50 -29
- package/lib/time-picker/time-picker.js.map +1 -1
- package/lib/timeline/style/_index.scss +3 -3
- package/lib/timeline/style/index.css +3 -3
- package/lib/tooltip/style/index.css +1 -1
- package/lib/transfer/style/_index.scss +4 -4
- package/lib/transfer/style/index.css +4 -4
- package/lib/tree/style/index.css +1 -1
- package/lib/typography/style/_index.scss +2 -2
- package/lib/typography/style/index.css +2 -2
- package/lib/upload/style/_index.scss +4 -4
- package/lib/upload/style/index.css +4 -4
- package/package.json +3 -3
package/lib/style/base.css
CHANGED
|
@@ -27,19 +27,26 @@
|
|
|
27
27
|
--ty-color-fill-secondary: #f5f5f5;
|
|
28
28
|
--ty-color-fill-tertiary: #f0f0f0;
|
|
29
29
|
--ty-color-success: #52c41a;
|
|
30
|
+
--ty-color-success-hover: #73d13d;
|
|
31
|
+
--ty-color-success-active: #389e0d;
|
|
30
32
|
--ty-color-success-bg: #f6ffed;
|
|
31
33
|
--ty-color-success-border: #b7eb8f;
|
|
32
34
|
--ty-color-success-text: #49b10e;
|
|
33
35
|
--ty-color-warning: #ff9800;
|
|
36
|
+
--ty-color-warning-hover: #ffad33;
|
|
37
|
+
--ty-color-warning-active: #e68a00;
|
|
34
38
|
--ty-color-warning-bg: #fffbe6;
|
|
35
39
|
--ty-color-warning-border: #ffe58f;
|
|
36
40
|
--ty-color-warning-text: #d48806;
|
|
37
41
|
--ty-color-danger: #f44336;
|
|
42
|
+
--ty-color-danger-hover: #ff7875;
|
|
43
|
+
--ty-color-danger-active: #cf1322;
|
|
38
44
|
--ty-color-danger-bg: #fff1f0;
|
|
39
45
|
--ty-color-danger-border: #ffa39e;
|
|
40
46
|
--ty-color-danger-text: #cf1322;
|
|
41
|
-
--ty-color-danger-hover: #ff7875;
|
|
42
47
|
--ty-color-info: #1890ff;
|
|
48
|
+
--ty-color-info-hover: #40a9ff;
|
|
49
|
+
--ty-color-info-active: #096dd9;
|
|
43
50
|
--ty-color-info-bg: #e6f7ff;
|
|
44
51
|
--ty-color-info-border: #91d5ff;
|
|
45
52
|
--ty-color-info-text: #096dd9;
|
|
@@ -263,6 +270,25 @@
|
|
|
263
270
|
--ty-calendar-bg: #fff;
|
|
264
271
|
--ty-calendar-border: #e9ecef;
|
|
265
272
|
--ty-calendar-hover: #f6f9fc;
|
|
273
|
+
--ty-font-family: -apple-system, blinkmacsystemfont, Segoe UI, roboto, Helvetica Neue, arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
|
|
274
|
+
--ty-font-family-monospace: lucida console, consolas, monaco, andale mono, ubuntu mono, monospace;
|
|
275
|
+
--ty-font-size-base: 1rem;
|
|
276
|
+
--ty-font-size-sm: 0.875rem;
|
|
277
|
+
--ty-font-size-lg: 1.25rem;
|
|
278
|
+
--ty-font-weight: 400;
|
|
279
|
+
--ty-line-height-base: 1.5;
|
|
280
|
+
--ty-headings-font-weight: 500;
|
|
281
|
+
--ty-h1-font-size: 2.5rem;
|
|
282
|
+
--ty-h2-font-size: 2rem;
|
|
283
|
+
--ty-h3-font-size: 1.75rem;
|
|
284
|
+
--ty-h4-font-size: 1.5rem;
|
|
285
|
+
--ty-h5-font-size: 1.25rem;
|
|
286
|
+
--ty-h6-font-size: 1rem;
|
|
287
|
+
--ty-border-radius: 2px;
|
|
288
|
+
--ty-height-sm: 24px;
|
|
289
|
+
--ty-height-md: 32px;
|
|
290
|
+
--ty-height-lg: 42px;
|
|
291
|
+
--ty-spacer: 1rem;
|
|
266
292
|
}
|
|
267
293
|
|
|
268
294
|
html[data-tiny-theme=dark] {
|
|
@@ -294,19 +320,26 @@ html[data-tiny-theme=dark] {
|
|
|
294
320
|
--ty-color-fill-secondary: #2a2a2a;
|
|
295
321
|
--ty-color-fill-tertiary: #303030;
|
|
296
322
|
--ty-color-success: #49aa19;
|
|
323
|
+
--ty-color-success-hover: #6abe39;
|
|
324
|
+
--ty-color-success-active: #3c8c14;
|
|
297
325
|
--ty-color-success-bg: #162312;
|
|
298
326
|
--ty-color-success-border: #274916;
|
|
299
327
|
--ty-color-success-text: #6abe39;
|
|
300
328
|
--ty-color-warning: #d89614;
|
|
329
|
+
--ty-color-warning-hover: #e8b339;
|
|
330
|
+
--ty-color-warning-active: #b37a10;
|
|
301
331
|
--ty-color-warning-bg: #2b2111;
|
|
302
332
|
--ty-color-warning-border: #594214;
|
|
303
333
|
--ty-color-warning-text: #e8b339;
|
|
304
334
|
--ty-color-danger: #d32029;
|
|
335
|
+
--ty-color-danger-hover: #e84749;
|
|
336
|
+
--ty-color-danger-active: #ab1a20;
|
|
305
337
|
--ty-color-danger-bg: #2a1215;
|
|
306
338
|
--ty-color-danger-border: #58181c;
|
|
307
339
|
--ty-color-danger-text: #e84749;
|
|
308
|
-
--ty-color-danger-hover: #e84749;
|
|
309
340
|
--ty-color-info: #177ddc;
|
|
341
|
+
--ty-color-info-hover: #3c9ae8;
|
|
342
|
+
--ty-color-info-active: #1268b3;
|
|
310
343
|
--ty-color-info-bg: #111d2c;
|
|
311
344
|
--ty-color-info-border: #15395b;
|
|
312
345
|
--ty-color-info-text: #3c9ae8;
|
|
@@ -530,6 +563,25 @@ html[data-tiny-theme=dark] {
|
|
|
530
563
|
--ty-calendar-bg: #1f1f1f;
|
|
531
564
|
--ty-calendar-border: #363636;
|
|
532
565
|
--ty-calendar-hover: #2a2a2a;
|
|
566
|
+
--ty-font-family: -apple-system, blinkmacsystemfont, Segoe UI, roboto, Helvetica Neue, arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
|
|
567
|
+
--ty-font-family-monospace: lucida console, consolas, monaco, andale mono, ubuntu mono, monospace;
|
|
568
|
+
--ty-font-size-base: 1rem;
|
|
569
|
+
--ty-font-size-sm: 0.875rem;
|
|
570
|
+
--ty-font-size-lg: 1.25rem;
|
|
571
|
+
--ty-font-weight: 400;
|
|
572
|
+
--ty-line-height-base: 1.5;
|
|
573
|
+
--ty-headings-font-weight: 500;
|
|
574
|
+
--ty-h1-font-size: 2.5rem;
|
|
575
|
+
--ty-h2-font-size: 2rem;
|
|
576
|
+
--ty-h3-font-size: 1.75rem;
|
|
577
|
+
--ty-h4-font-size: 1.5rem;
|
|
578
|
+
--ty-h5-font-size: 1.25rem;
|
|
579
|
+
--ty-h6-font-size: 1rem;
|
|
580
|
+
--ty-border-radius: 2px;
|
|
581
|
+
--ty-height-sm: 24px;
|
|
582
|
+
--ty-height-md: 32px;
|
|
583
|
+
--ty-height-lg: 42px;
|
|
584
|
+
--ty-spacer: 1rem;
|
|
533
585
|
}
|
|
534
586
|
|
|
535
587
|
@media (prefers-color-scheme: dark) {
|
|
@@ -562,19 +614,26 @@ html[data-tiny-theme=dark] {
|
|
|
562
614
|
--ty-color-fill-secondary: #2a2a2a;
|
|
563
615
|
--ty-color-fill-tertiary: #303030;
|
|
564
616
|
--ty-color-success: #49aa19;
|
|
617
|
+
--ty-color-success-hover: #6abe39;
|
|
618
|
+
--ty-color-success-active: #3c8c14;
|
|
565
619
|
--ty-color-success-bg: #162312;
|
|
566
620
|
--ty-color-success-border: #274916;
|
|
567
621
|
--ty-color-success-text: #6abe39;
|
|
568
622
|
--ty-color-warning: #d89614;
|
|
623
|
+
--ty-color-warning-hover: #e8b339;
|
|
624
|
+
--ty-color-warning-active: #b37a10;
|
|
569
625
|
--ty-color-warning-bg: #2b2111;
|
|
570
626
|
--ty-color-warning-border: #594214;
|
|
571
627
|
--ty-color-warning-text: #e8b339;
|
|
572
628
|
--ty-color-danger: #d32029;
|
|
629
|
+
--ty-color-danger-hover: #e84749;
|
|
630
|
+
--ty-color-danger-active: #ab1a20;
|
|
573
631
|
--ty-color-danger-bg: #2a1215;
|
|
574
632
|
--ty-color-danger-border: #58181c;
|
|
575
633
|
--ty-color-danger-text: #e84749;
|
|
576
|
-
--ty-color-danger-hover: #e84749;
|
|
577
634
|
--ty-color-info: #177ddc;
|
|
635
|
+
--ty-color-info-hover: #3c9ae8;
|
|
636
|
+
--ty-color-info-active: #1268b3;
|
|
578
637
|
--ty-color-info-bg: #111d2c;
|
|
579
638
|
--ty-color-info-border: #15395b;
|
|
580
639
|
--ty-color-info-text: #3c9ae8;
|
|
@@ -798,6 +857,25 @@ html[data-tiny-theme=dark] {
|
|
|
798
857
|
--ty-calendar-bg: #1f1f1f;
|
|
799
858
|
--ty-calendar-border: #363636;
|
|
800
859
|
--ty-calendar-hover: #2a2a2a;
|
|
860
|
+
--ty-font-family: -apple-system, blinkmacsystemfont, Segoe UI, roboto, Helvetica Neue, arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
|
|
861
|
+
--ty-font-family-monospace: lucida console, consolas, monaco, andale mono, ubuntu mono, monospace;
|
|
862
|
+
--ty-font-size-base: 1rem;
|
|
863
|
+
--ty-font-size-sm: 0.875rem;
|
|
864
|
+
--ty-font-size-lg: 1.25rem;
|
|
865
|
+
--ty-font-weight: 400;
|
|
866
|
+
--ty-line-height-base: 1.5;
|
|
867
|
+
--ty-headings-font-weight: 500;
|
|
868
|
+
--ty-h1-font-size: 2.5rem;
|
|
869
|
+
--ty-h2-font-size: 2rem;
|
|
870
|
+
--ty-h3-font-size: 1.75rem;
|
|
871
|
+
--ty-h4-font-size: 1.5rem;
|
|
872
|
+
--ty-h5-font-size: 1.25rem;
|
|
873
|
+
--ty-h6-font-size: 1rem;
|
|
874
|
+
--ty-border-radius: 2px;
|
|
875
|
+
--ty-height-sm: 24px;
|
|
876
|
+
--ty-height-md: 32px;
|
|
877
|
+
--ty-height-lg: 42px;
|
|
878
|
+
--ty-spacer: 1rem;
|
|
801
879
|
}
|
|
802
880
|
}
|
|
803
881
|
/* stylelint-disable scss/comment-no-empty */
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
.#{$prefix}-table {
|
|
4
4
|
color: var(--ty-color-text, #{$gray-800});
|
|
5
|
-
font-size:
|
|
5
|
+
font-size: var(--ty-font-size-base);
|
|
6
6
|
|
|
7
7
|
&__wrapper {
|
|
8
8
|
overflow-x: auto;
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
|
|
25
25
|
// Sizes
|
|
26
26
|
&_sm &__cell {
|
|
27
|
-
padding: 8px
|
|
28
|
-
font-size:
|
|
27
|
+
padding: 8px;
|
|
28
|
+
font-size: var(--ty-font-size-sm);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
&_md &__cell {
|
|
@@ -33,8 +33,8 @@
|
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
&_lg &__cell {
|
|
36
|
-
padding: 16px
|
|
37
|
-
font-size:
|
|
36
|
+
padding: 16px;
|
|
37
|
+
font-size: var(--ty-font-size-lg);
|
|
38
38
|
}
|
|
39
39
|
|
|
40
40
|
// Sticky header for virtual scroll
|
|
@@ -99,7 +99,7 @@
|
|
|
99
99
|
}
|
|
100
100
|
|
|
101
101
|
&_selected {
|
|
102
|
-
background: var(--ty-table-selected-bg,
|
|
102
|
+
background: var(--ty-table-selected-bg, rgb(110 65 191 / 6%));
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.ty-table {
|
|
2
2
|
color: var(--ty-color-text, #32325d);
|
|
3
|
-
font-size:
|
|
3
|
+
font-size: var(--ty-font-size-base);
|
|
4
4
|
}
|
|
5
5
|
.ty-table__wrapper {
|
|
6
6
|
overflow-x: auto;
|
|
@@ -17,15 +17,15 @@
|
|
|
17
17
|
border: 1px solid var(--ty-table-border, #dee2e6);
|
|
18
18
|
}
|
|
19
19
|
.ty-table_sm .ty-table__cell {
|
|
20
|
-
padding: 8px
|
|
21
|
-
font-size:
|
|
20
|
+
padding: 8px;
|
|
21
|
+
font-size: var(--ty-font-size-sm);
|
|
22
22
|
}
|
|
23
23
|
.ty-table_md .ty-table__cell {
|
|
24
24
|
padding: 12px 16px;
|
|
25
25
|
}
|
|
26
26
|
.ty-table_lg .ty-table__cell {
|
|
27
|
-
padding: 16px
|
|
28
|
-
font-size:
|
|
27
|
+
padding: 16px;
|
|
28
|
+
font-size: var(--ty-font-size-lg);
|
|
29
29
|
}
|
|
30
30
|
.ty-table__thead_sticky {
|
|
31
31
|
position: sticky;
|
|
@@ -102,6 +102,30 @@
|
|
|
102
102
|
background: var(--ty-tag-purple-bg);
|
|
103
103
|
border-color: var(--ty-tag-purple-border);
|
|
104
104
|
}
|
|
105
|
+
|
|
106
|
+
&_success {
|
|
107
|
+
color: var(--ty-color-success);
|
|
108
|
+
background: var(--ty-color-success-bg);
|
|
109
|
+
border-color: var(--ty-color-success-border);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
&_info {
|
|
113
|
+
color: var(--ty-color-info);
|
|
114
|
+
background: var(--ty-color-info-bg);
|
|
115
|
+
border-color: var(--ty-color-info-border);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
&_warning {
|
|
119
|
+
color: var(--ty-color-warning);
|
|
120
|
+
background: var(--ty-color-warning-bg);
|
|
121
|
+
border-color: var(--ty-color-warning-border);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
&_danger {
|
|
125
|
+
color: var(--ty-color-danger);
|
|
126
|
+
background: var(--ty-color-danger-bg);
|
|
127
|
+
border-color: var(--ty-color-danger-border);
|
|
128
|
+
}
|
|
105
129
|
}
|
|
106
130
|
|
|
107
131
|
.#{$prefix}-checkable-tag {
|
package/lib/tag/style/index.css
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
padding: 3px 7px;
|
|
8
8
|
font-size: 12px;
|
|
9
9
|
border: 1px solid var(--ty-tag-border);
|
|
10
|
-
border-radius:
|
|
10
|
+
border-radius: var(--ty-border-radius);
|
|
11
11
|
color: var(--ty-color-text);
|
|
12
12
|
background: var(--ty-tag-bg);
|
|
13
13
|
}
|
|
@@ -88,6 +88,26 @@
|
|
|
88
88
|
background: var(--ty-tag-purple-bg);
|
|
89
89
|
border-color: var(--ty-tag-purple-border);
|
|
90
90
|
}
|
|
91
|
+
.ty-tag_success {
|
|
92
|
+
color: var(--ty-color-success);
|
|
93
|
+
background: var(--ty-color-success-bg);
|
|
94
|
+
border-color: var(--ty-color-success-border);
|
|
95
|
+
}
|
|
96
|
+
.ty-tag_info {
|
|
97
|
+
color: var(--ty-color-info);
|
|
98
|
+
background: var(--ty-color-info-bg);
|
|
99
|
+
border-color: var(--ty-color-info-border);
|
|
100
|
+
}
|
|
101
|
+
.ty-tag_warning {
|
|
102
|
+
color: var(--ty-color-warning);
|
|
103
|
+
background: var(--ty-color-warning-bg);
|
|
104
|
+
border-color: var(--ty-color-warning-border);
|
|
105
|
+
}
|
|
106
|
+
.ty-tag_danger {
|
|
107
|
+
color: var(--ty-color-danger);
|
|
108
|
+
background: var(--ty-color-danger-bg);
|
|
109
|
+
border-color: var(--ty-color-danger-border);
|
|
110
|
+
}
|
|
91
111
|
|
|
92
112
|
.ty-checkable-tag {
|
|
93
113
|
background-color: var(--ty-tag-checkable-bg);
|
package/lib/tag/types.d.ts
CHANGED
|
@@ -8,8 +8,9 @@ interface CheckableTagProps extends BaseProps {
|
|
|
8
8
|
onChange?: (checked: boolean, e: React.MouseEvent) => void;
|
|
9
9
|
children?: React.ReactNode;
|
|
10
10
|
}
|
|
11
|
+
type StatusColor = 'success' | 'warning' | 'info' | 'danger';
|
|
11
12
|
interface TagProps extends BaseProps, React.PropsWithoutRef<JSX.IntrinsicElements['div']> {
|
|
12
|
-
color?: string;
|
|
13
|
+
color?: string | StatusColor;
|
|
13
14
|
closable?: boolean;
|
|
14
15
|
onClose?: React.MouseEventHandler;
|
|
15
16
|
onClick?: React.MouseEventHandler;
|
package/lib/tag/types.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
//#region src/tag/types.ts
|
|
2
1
|
const PresetColors = [
|
|
3
2
|
"magenta",
|
|
4
3
|
"red",
|
|
@@ -10,7 +9,13 @@ const PresetColors = [
|
|
|
10
9
|
"cyan",
|
|
11
10
|
"blue",
|
|
12
11
|
"geekblue",
|
|
13
|
-
"purple"
|
|
12
|
+
"purple",
|
|
13
|
+
...[
|
|
14
|
+
"success",
|
|
15
|
+
"info",
|
|
16
|
+
"warning",
|
|
17
|
+
"danger"
|
|
18
|
+
]
|
|
14
19
|
];
|
|
15
20
|
//#endregion
|
|
16
21
|
exports.PresetColors = PresetColors;
|
package/lib/tag/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../src/tag/types.ts"],"sourcesContent":["import React from 'react';\nimport { BaseProps } from '../_utils/props';\n\nexport interface CheckableTagProps extends BaseProps {\n defaultChecked?: boolean;\n checked?: boolean;\n onChange?: (checked: boolean, e: React.MouseEvent) => void;\n children?: React.ReactNode;\n}\n\nexport const PresetColors = [\n 'magenta',\n 'red',\n 'volcano',\n 'orange',\n 'gold',\n 'lime',\n 'green',\n 'cyan',\n 'blue',\n 'geekblue',\n 'purple',\n];\n\nexport interface TagProps extends BaseProps, React.PropsWithoutRef<JSX.IntrinsicElements['div']> {\n color?: string;\n closable?: boolean;\n onClose?: React.MouseEventHandler;\n onClick?: React.MouseEventHandler;\n defaultVisible?: boolean;\n visible?: boolean;\n children?: React.ReactNode;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/tag/types.ts"],"sourcesContent":["import React from 'react';\nimport { BaseProps } from '../_utils/props';\n\nexport interface CheckableTagProps extends BaseProps {\n defaultChecked?: boolean;\n checked?: boolean;\n onChange?: (checked: boolean, e: React.MouseEvent) => void;\n children?: React.ReactNode;\n}\n\nexport type StatusColor = 'success' | 'warning' | 'info' | 'danger';\n\nexport const StatusColors: StatusColor[] = ['success', 'info', 'warning', 'danger'];\n\nexport const PresetColors = [\n 'magenta',\n 'red',\n 'volcano',\n 'orange',\n 'gold',\n 'lime',\n 'green',\n 'cyan',\n 'blue',\n 'geekblue',\n 'purple',\n ...StatusColors,\n];\n\nexport interface TagProps extends BaseProps, React.PropsWithoutRef<JSX.IntrinsicElements['div']> {\n color?: string | StatusColor;\n closable?: boolean;\n onClose?: React.MouseEventHandler;\n onClick?: React.MouseEventHandler;\n defaultVisible?: boolean;\n visible?: boolean;\n children?: React.ReactNode;\n}\n"],"mappings":"AAcA,MAAa,eAAe;CAC1B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,GAdyC;EAAC;EAAW;EAAQ;EAAW;EAAS;CAelF"}
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
border: 1px solid var(--ty-input-border);
|
|
7
7
|
transition: all 0.3s;
|
|
8
8
|
outline: 0;
|
|
9
|
-
border-radius:
|
|
10
|
-
font-size:
|
|
9
|
+
border-radius: var(--ty-border-radius);
|
|
10
|
+
font-size: var(--ty-font-size-base);
|
|
11
11
|
background-color: var(--ty-input-bg);
|
|
12
12
|
}
|
|
13
13
|
.ty-textarea:hover {
|
|
@@ -5,7 +5,7 @@ $tp: #{$prefix}-time-picker;
|
|
|
5
5
|
.#{$tp} {
|
|
6
6
|
display: inline-flex;
|
|
7
7
|
position: relative;
|
|
8
|
-
font-size:
|
|
8
|
+
font-size: var(--ty-font-size-base);
|
|
9
9
|
|
|
10
10
|
// ---- Input ----
|
|
11
11
|
&__input {
|
|
@@ -29,6 +29,10 @@ $tp: #{$prefix}-time-picker;
|
|
|
29
29
|
box-shadow: var(--ty-input-focus-shadow);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
+
&_pending &__input-field {
|
|
33
|
+
color: var(--ty-color-text-tertiary);
|
|
34
|
+
}
|
|
35
|
+
|
|
32
36
|
&__input-field {
|
|
33
37
|
flex: 1;
|
|
34
38
|
border: none;
|
|
@@ -191,6 +195,15 @@ $tp: #{$prefix}-time-picker;
|
|
|
191
195
|
}
|
|
192
196
|
}
|
|
193
197
|
|
|
198
|
+
&_pending {
|
|
199
|
+
background: var(--ty-color-primary-bg);
|
|
200
|
+
color: var(--ty-color-text-tertiary);
|
|
201
|
+
|
|
202
|
+
&:hover {
|
|
203
|
+
background: var(--ty-color-primary-bg-hover);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
194
207
|
&_disabled {
|
|
195
208
|
color: var(--ty-color-text-quaternary);
|
|
196
209
|
cursor: not-allowed;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
.ty-time-picker {
|
|
2
2
|
display: inline-flex;
|
|
3
3
|
position: relative;
|
|
4
|
-
font-size:
|
|
4
|
+
font-size: var(--ty-font-size-base);
|
|
5
5
|
}
|
|
6
6
|
.ty-time-picker__input {
|
|
7
7
|
display: inline-flex;
|
|
@@ -21,6 +21,9 @@
|
|
|
21
21
|
border-color: var(--ty-color-primary);
|
|
22
22
|
box-shadow: var(--ty-input-focus-shadow);
|
|
23
23
|
}
|
|
24
|
+
.ty-time-picker_pending .ty-time-picker__input-field {
|
|
25
|
+
color: var(--ty-color-text-tertiary);
|
|
26
|
+
}
|
|
24
27
|
.ty-time-picker__input-field {
|
|
25
28
|
flex: 1;
|
|
26
29
|
border: none;
|
|
@@ -157,6 +160,13 @@
|
|
|
157
160
|
.ty-time-picker__cell_selected:hover {
|
|
158
161
|
background: var(--ty-color-primary-bg-hover);
|
|
159
162
|
}
|
|
163
|
+
.ty-time-picker__cell_pending {
|
|
164
|
+
background: var(--ty-color-primary-bg);
|
|
165
|
+
color: var(--ty-color-text-tertiary);
|
|
166
|
+
}
|
|
167
|
+
.ty-time-picker__cell_pending:hover {
|
|
168
|
+
background: var(--ty-color-primary-bg-hover);
|
|
169
|
+
}
|
|
160
170
|
.ty-time-picker__cell_disabled {
|
|
161
171
|
color: var(--ty-color-text-quaternary);
|
|
162
172
|
cursor: not-allowed;
|
|
@@ -6,14 +6,16 @@ let react_jsx_runtime = require("react/jsx-runtime");
|
|
|
6
6
|
//#region src/time-picker/time-panel.tsx
|
|
7
7
|
const ITEM_HEIGHT = 28;
|
|
8
8
|
const TimePanel = (props) => {
|
|
9
|
-
const { prefixCls, value, items, disabledItems = [], loop = false, onChange } = props;
|
|
9
|
+
const { prefixCls, value, pendingValue, items, disabledItems = [], loop = false, onChange } = props;
|
|
10
10
|
const panelRef = (0, react.useRef)(null);
|
|
11
11
|
const itemRefs = (0, react.useRef)(/* @__PURE__ */ new Map());
|
|
12
12
|
const isResetting = (0, react.useRef)(false);
|
|
13
13
|
const clickedRef = (0, react.useRef)(false);
|
|
14
14
|
const scrollToItemRef = (0, react.useRef)(null);
|
|
15
15
|
const oneGroupHeight = items.length * ITEM_HEIGHT;
|
|
16
|
+
const displayValue = pendingValue ?? value;
|
|
16
17
|
scrollToItemRef.current = (val) => {
|
|
18
|
+
if (val === null) return;
|
|
17
19
|
const panel = panelRef.current;
|
|
18
20
|
if (!panel) return;
|
|
19
21
|
if (loop) {
|
|
@@ -41,8 +43,8 @@ const TimePanel = (props) => {
|
|
|
41
43
|
clickedRef.current = false;
|
|
42
44
|
return;
|
|
43
45
|
}
|
|
44
|
-
scrollToItemRef.current?.(
|
|
45
|
-
}, [
|
|
46
|
+
scrollToItemRef.current?.(displayValue);
|
|
47
|
+
}, [displayValue]);
|
|
46
48
|
const handleScroll = (0, react.useCallback)(() => {
|
|
47
49
|
if (!loop || isResetting.current) return;
|
|
48
50
|
const panel = panelRef.current;
|
|
@@ -64,6 +66,16 @@ const TimePanel = (props) => {
|
|
|
64
66
|
clickedRef.current = true;
|
|
65
67
|
onChange(num);
|
|
66
68
|
};
|
|
69
|
+
const isPending = pendingValue !== null;
|
|
70
|
+
const isCommitted = value !== null && pendingValue === null;
|
|
71
|
+
const cellCls = (num) => {
|
|
72
|
+
const isSelected = num === displayValue;
|
|
73
|
+
return (0, classnames.default)(`${prefixCls}__cell`, {
|
|
74
|
+
[`${prefixCls}__cell_selected`]: isSelected && isCommitted,
|
|
75
|
+
[`${prefixCls}__cell_pending`]: isSelected && isPending,
|
|
76
|
+
[`${prefixCls}__cell_disabled`]: disabledItems.includes(num)
|
|
77
|
+
});
|
|
78
|
+
};
|
|
67
79
|
if (loop) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
68
80
|
className: `${prefixCls}__column`,
|
|
69
81
|
ref: panelRef,
|
|
@@ -74,17 +86,11 @@ const TimePanel = (props) => {
|
|
|
74
86
|
0,
|
|
75
87
|
1,
|
|
76
88
|
2
|
|
77
|
-
].map((copyIdx) => items.map((num, i) => {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
[`${prefixCls}__cell_disabled`]: isDisabled
|
|
83
|
-
}),
|
|
84
|
-
onClick: () => handleClick(num),
|
|
85
|
-
children: String(num).padStart(2, "0")
|
|
86
|
-
}, `c${copyIdx}-${i}`);
|
|
87
|
-
}))
|
|
89
|
+
].map((copyIdx) => items.map((num, i) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
|
|
90
|
+
className: cellCls(num),
|
|
91
|
+
onClick: () => handleClick(num),
|
|
92
|
+
children: String(num).padStart(2, "0")
|
|
93
|
+
}, `c${copyIdx}-${i}`)))
|
|
88
94
|
})
|
|
89
95
|
});
|
|
90
96
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -92,20 +98,14 @@ const TimePanel = (props) => {
|
|
|
92
98
|
ref: panelRef,
|
|
93
99
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("ul", {
|
|
94
100
|
className: `${prefixCls}__column-list`,
|
|
95
|
-
children: items.map((num) => {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
[`${prefixCls}__cell_disabled`]: isDisabled
|
|
104
|
-
}),
|
|
105
|
-
onClick: () => handleClick(num),
|
|
106
|
-
children: String(num).padStart(2, "0")
|
|
107
|
-
}, num);
|
|
108
|
-
})
|
|
101
|
+
children: items.map((num) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("li", {
|
|
102
|
+
ref: (el) => {
|
|
103
|
+
if (el) itemRefs.current.set(num, el);
|
|
104
|
+
},
|
|
105
|
+
className: cellCls(num),
|
|
106
|
+
onClick: () => handleClick(num),
|
|
107
|
+
children: String(num).padStart(2, "0")
|
|
108
|
+
}, num))
|
|
109
109
|
})
|
|
110
110
|
});
|
|
111
111
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-panel.js","names":[],"sources":["../../src/time-picker/time-panel.tsx"],"sourcesContent":["import { useRef, useEffect, useCallback } from 'react';\nimport classNames from 'classnames';\n\nexport interface TimePanelProps {\n value: number;\n items: number[];\n disabledItems?: number[];\n loop?: boolean;\n onChange: (num: number) => void;\n prefixCls: string;\n}\n\nconst ITEM_HEIGHT = 28; // 4px padding-top + 20px line-height + 4px padding-bottom\n\nconst TimePanel = (props: TimePanelProps): React.ReactElement => {\n const { prefixCls, value, items, disabledItems = [], loop = false, onChange } = props;\n const panelRef = useRef<HTMLDivElement>(null);\n const itemRefs = useRef<Map<number, HTMLLIElement>>(new Map());\n const isResetting = useRef(false);\n const clickedRef = useRef(false);\n const scrollToItemRef = useRef<((val: number) => void) | null>(null);\n\n const oneGroupHeight = items.length * ITEM_HEIGHT;\n\n scrollToItemRef.current = (val: number) => {\n const panel = panelRef.current;\n if (!panel) return;\n\n if (loop) {\n const idx = items.indexOf(val);\n if (idx === -1) return;\n const top = oneGroupHeight + idx * ITEM_HEIGHT;\n isResetting.current = true;\n panel.scrollTo({ top, behavior: 'auto' });\n requestAnimationFrame(() => { isResetting.current = false; });\n } else {\n const el = itemRefs.current.get(val);\n if (el) {\n panel.scrollTo({ top: el.offsetTop, behavior: 'auto' });\n }\n }\n };\n\n useEffect(() => {\n if (clickedRef.current) {\n clickedRef.current = false;\n return;\n }\n scrollToItemRef.current?.(
|
|
1
|
+
{"version":3,"file":"time-panel.js","names":[],"sources":["../../src/time-picker/time-panel.tsx"],"sourcesContent":["import { useRef, useEffect, useCallback } from 'react';\nimport classNames from 'classnames';\n\nexport interface TimePanelProps {\n value: number | null;\n pendingValue: number | null;\n items: number[];\n disabledItems?: number[];\n loop?: boolean;\n onChange: (num: number) => void;\n prefixCls: string;\n}\n\nconst ITEM_HEIGHT = 28; // 4px padding-top + 20px line-height + 4px padding-bottom\n\nconst TimePanel = (props: TimePanelProps): React.ReactElement => {\n const { prefixCls, value, pendingValue, items, disabledItems = [], loop = false, onChange } = props;\n const panelRef = useRef<HTMLDivElement>(null);\n const itemRefs = useRef<Map<number, HTMLLIElement>>(new Map());\n const isResetting = useRef(false);\n const clickedRef = useRef(false);\n const scrollToItemRef = useRef<((val: number | null) => void) | null>(null);\n\n const oneGroupHeight = items.length * ITEM_HEIGHT;\n\n // The displayed value: pending takes priority, then committed\n const displayValue = pendingValue ?? value;\n\n scrollToItemRef.current = (val: number | null) => {\n if (val === null) return;\n const panel = panelRef.current;\n if (!panel) return;\n\n if (loop) {\n const idx = items.indexOf(val);\n if (idx === -1) return;\n const top = oneGroupHeight + idx * ITEM_HEIGHT;\n isResetting.current = true;\n panel.scrollTo({ top, behavior: 'auto' });\n requestAnimationFrame(() => { isResetting.current = false; });\n } else {\n const el = itemRefs.current.get(val);\n if (el) {\n panel.scrollTo({ top: el.offsetTop, behavior: 'auto' });\n }\n }\n };\n\n useEffect(() => {\n if (clickedRef.current) {\n clickedRef.current = false;\n return;\n }\n scrollToItemRef.current?.(displayValue);\n }, [displayValue]);\n\n // Scroll reset for loop mode\n const handleScroll = useCallback(() => {\n if (!loop || isResetting.current) return;\n const panel = panelRef.current;\n if (!panel) return;\n\n const st = panel.scrollTop;\n if (st < oneGroupHeight || st >= 2 * oneGroupHeight) {\n isResetting.current = true;\n panel.scrollTo({ top: (st % oneGroupHeight) + oneGroupHeight, behavior: 'auto' });\n requestAnimationFrame(() => { isResetting.current = false; });\n }\n }, [loop, oneGroupHeight]);\n\n const handleClick = (num: number) => {\n if (disabledItems.includes(num)) return;\n clickedRef.current = true;\n onChange(num);\n };\n\n const isPending = pendingValue !== null;\n const isCommitted = value !== null && pendingValue === null;\n\n const cellCls = (num: number) => {\n const isSelected = num === displayValue;\n return classNames(`${prefixCls}__cell`, {\n [`${prefixCls}__cell_selected`]: isSelected && isCommitted,\n [`${prefixCls}__cell_pending`]: isSelected && isPending,\n [`${prefixCls}__cell_disabled`]: disabledItems.includes(num),\n });\n };\n\n if (loop) {\n const copies = [0, 1, 2];\n return (\n <div className={`${prefixCls}__column`} ref={panelRef} onScroll={handleScroll}>\n <ul className={`${prefixCls}__column-list`}>\n {copies.map((copyIdx) =>\n items.map((num, i) => (\n <li\n key={`c${copyIdx}-${i}`}\n className={cellCls(num)}\n onClick={() => handleClick(num)}>\n {String(num).padStart(2, '0')}\n </li>\n ))\n )}\n </ul>\n </div>\n );\n }\n\n return (\n <div className={`${prefixCls}__column`} ref={panelRef}>\n <ul className={`${prefixCls}__column-list`}>\n {items.map((num) => (\n <li\n key={num}\n ref={(el) => {\n if (el) itemRefs.current.set(num, el);\n }}\n className={cellCls(num)}\n onClick={() => handleClick(num)}>\n {String(num).padStart(2, '0')}\n </li>\n ))}\n </ul>\n </div>\n );\n};\n\nexport default TimePanel;\n"],"mappings":"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"}
|