shineout 1.7.0-rc.6 → 1.7.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 (158) hide show
  1. package/css/Button/styles/button.css +189 -0
  2. package/css/Carousel/index.js +9 -0
  3. package/css/Cascader/FilterList.js +1 -0
  4. package/css/Cascader/styles/cascader.css +10 -0
  5. package/css/Checkbox/styles/checkinput.css +30 -0
  6. package/css/DataList/List.js +10 -9
  7. package/css/DatePicker/utils.js +7 -1
  8. package/css/EditableArea/EditableArea.js +8 -21
  9. package/css/Form/inputable.js +3 -1
  10. package/css/Menu/Item.js +17 -11
  11. package/css/Menu/List.js +8 -2
  12. package/css/Menu/Root.js +11 -4
  13. package/css/Menu/styles/menu.css +131 -10
  14. package/css/Message/styles/message.css +3 -0
  15. package/css/Popover/Confirm.js +7 -4
  16. package/css/Popover/styles/popover.css +3 -0
  17. package/css/Rate/Rate.js +13 -5
  18. package/css/Select/Select.js +48 -22
  19. package/css/Select/styles/select.css +17 -2
  20. package/css/Table/SimpleTable.js +23 -6
  21. package/css/Table/Table.js +2 -1
  22. package/css/Tabs/Header.js +5 -3
  23. package/css/Tabs/Tab.js +1 -2
  24. package/css/Tabs/Tabs.js +12 -8
  25. package/css/Tabs/styles/tabs.css +34 -4
  26. package/css/TreeSelect/styles/treeSelect.css +11 -1
  27. package/css/Upload/Upload.js +47 -27
  28. package/css/Upload/request.js +7 -1
  29. package/css/hoc/coin.js +1 -1
  30. package/css/index.js +1 -1
  31. package/css/styles/expose.css +25 -0
  32. package/css/utils/dom/element.js +44 -3
  33. package/css/utils/expose.js +50 -8
  34. package/css/utils/lazyload.js +24 -7
  35. package/css/utils/vars-inject.js +233 -4
  36. package/dist/shineout.js +4455 -3995
  37. package/dist/shineout.js.map +1 -1
  38. package/dist/shineout.min.js +1 -1
  39. package/dist/theme.antd.css +1 -1
  40. package/dist/theme.antd2.css +1 -1
  41. package/dist/theme.default.css +1 -1
  42. package/dist/theme.shineout.css +1 -1
  43. package/es/@types/common.d.ts +21 -21
  44. package/es/Alert/styles/alert.less +1 -1
  45. package/es/Carousel/index.js +8 -0
  46. package/es/Cascader/FilterList.js +1 -0
  47. package/es/Cascader/index.d.ts +1 -1
  48. package/es/Cascader/styles/cascader.less +4 -0
  49. package/es/Checkbox/index.d.ts +21 -21
  50. package/es/DataList/List.js +7 -10
  51. package/es/DatePicker/index.d.ts +61 -61
  52. package/es/DatePicker/utils.js +6 -2
  53. package/es/EditableArea/EditableArea.js +5 -13
  54. package/es/Form/inputable.js +2 -1
  55. package/es/Icon/index.d.ts +13 -10
  56. package/es/Input/index.d.ts +51 -51
  57. package/es/Menu/Item.js +8 -6
  58. package/es/Menu/List.js +6 -0
  59. package/es/Menu/Root.js +7 -0
  60. package/es/Menu/index.d.ts +24 -6
  61. package/es/Menu/styles/menu.less +120 -9
  62. package/es/Message/styles/message.less +3 -0
  63. package/es/Modal/index.d.ts +0 -9
  64. package/es/Popover/Confirm.js +5 -3
  65. package/es/Popover/index.d.ts +14 -15
  66. package/es/Popover/styles/popover.less +4 -0
  67. package/es/Progress/index.d.ts +4 -4
  68. package/es/Radio/index.d.ts +8 -0
  69. package/es/Rate/Rate.js +7 -3
  70. package/es/Rate/index.d.ts +6 -6
  71. package/es/Rule/index.d.ts +4 -3
  72. package/es/Select/Select.js +21 -1
  73. package/es/Select/styles/select.less +11 -2
  74. package/es/Sticky/index.d.ts +11 -11
  75. package/es/Table/SimpleTable.js +14 -3
  76. package/es/Table/Table.js +2 -1
  77. package/es/Table/index.d.ts +2 -2
  78. package/es/Tabs/Header.js +3 -2
  79. package/es/Tabs/Tab.js +1 -1
  80. package/es/Tabs/Tabs.js +8 -4
  81. package/es/Tabs/index.d.ts +13 -4
  82. package/es/Tabs/styles/tabs.less +35 -5
  83. package/es/Tree/index.d.ts +53 -53
  84. package/es/TreeSelect/index.d.ts +65 -65
  85. package/es/TreeSelect/styles/treeSelect.less +5 -1
  86. package/es/Upload/Upload.js +35 -16
  87. package/es/Upload/index.d.ts +11 -1
  88. package/es/Upload/request.js +4 -0
  89. package/es/hoc/coin.js +1 -1
  90. package/es/index.js +1 -1
  91. package/es/styles/expose.less +25 -0
  92. package/es/styles/mixins/caret.less +15 -0
  93. package/es/styles/themes/bootstrap.less +1 -3
  94. package/es/styles/themes/cssvar.less +42 -0
  95. package/es/styles/variables.less +2 -2
  96. package/es/utils/dom/element.js +27 -3
  97. package/es/utils/expose.js +21 -1
  98. package/es/utils/lazyload.js +16 -8
  99. package/es/utils/vars-inject.js +265 -4
  100. package/lib/@types/common.d.ts +21 -21
  101. package/lib/Alert/styles/alert.less +1 -1
  102. package/lib/Carousel/index.js +9 -0
  103. package/lib/Cascader/FilterList.js +1 -0
  104. package/lib/Cascader/index.d.ts +1 -1
  105. package/lib/Cascader/styles/cascader.less +4 -0
  106. package/lib/Checkbox/index.d.ts +21 -21
  107. package/lib/DataList/List.js +10 -9
  108. package/lib/DatePicker/index.d.ts +61 -61
  109. package/lib/DatePicker/utils.js +7 -1
  110. package/lib/EditableArea/EditableArea.js +8 -21
  111. package/lib/Form/inputable.js +3 -1
  112. package/lib/Icon/index.d.ts +13 -10
  113. package/lib/Input/index.d.ts +51 -51
  114. package/lib/Menu/Item.js +17 -11
  115. package/lib/Menu/List.js +8 -2
  116. package/lib/Menu/Root.js +11 -4
  117. package/lib/Menu/index.d.ts +24 -6
  118. package/lib/Menu/styles/menu.less +120 -9
  119. package/lib/Message/styles/message.less +3 -0
  120. package/lib/Modal/index.d.ts +0 -9
  121. package/lib/Popover/Confirm.js +7 -4
  122. package/lib/Popover/index.d.ts +14 -15
  123. package/lib/Popover/styles/popover.less +4 -0
  124. package/lib/Progress/index.d.ts +4 -4
  125. package/lib/Radio/index.d.ts +8 -0
  126. package/lib/Rate/Rate.js +13 -5
  127. package/lib/Rate/index.d.ts +6 -6
  128. package/lib/Rule/index.d.ts +4 -3
  129. package/lib/Select/Select.js +48 -22
  130. package/lib/Select/styles/select.less +11 -2
  131. package/lib/Sticky/index.d.ts +11 -11
  132. package/lib/Table/SimpleTable.js +23 -6
  133. package/lib/Table/Table.js +2 -1
  134. package/lib/Table/index.d.ts +2 -2
  135. package/lib/Tabs/Header.js +5 -3
  136. package/lib/Tabs/Tab.js +1 -2
  137. package/lib/Tabs/Tabs.js +12 -8
  138. package/lib/Tabs/index.d.ts +13 -4
  139. package/lib/Tabs/styles/tabs.less +35 -5
  140. package/lib/Tree/index.d.ts +53 -53
  141. package/lib/TreeSelect/index.d.ts +65 -65
  142. package/lib/TreeSelect/styles/treeSelect.less +5 -1
  143. package/lib/Upload/Upload.js +47 -27
  144. package/lib/Upload/index.d.ts +11 -1
  145. package/lib/Upload/request.js +7 -1
  146. package/lib/hoc/coin.js +1 -1
  147. package/lib/index.d.ts +1 -1
  148. package/lib/index.js +1 -1
  149. package/lib/styles/expose.less +25 -0
  150. package/lib/styles/mixins/caret.less +15 -0
  151. package/lib/styles/themes/bootstrap.less +1 -3
  152. package/lib/styles/themes/cssvar.less +42 -0
  153. package/lib/styles/variables.less +2 -2
  154. package/lib/utils/dom/element.js +44 -3
  155. package/lib/utils/expose.js +50 -8
  156. package/lib/utils/lazyload.js +24 -7
  157. package/lib/utils/vars-inject.js +233 -4
  158. package/package.json +1 -1
@@ -69,12 +69,42 @@ fieldset[disabled] a.so-button {
69
69
  -webkit-transition: all 0.15s ease-in-out;
70
70
  transition: all 0.15s ease-in-out;
71
71
  }
72
+ @-webkit-keyframes btn-focus-default {
73
+ 0% {
74
+ -webkit-box-shadow: 0 0 0 0 var(--gray-300-fade-60, rgba(222, 226, 230, 0.6));
75
+ box-shadow: 0 0 0 0 var(--gray-300-fade-60, rgba(222, 226, 230, 0.6));
76
+ }
77
+ 50% {
78
+ -webkit-box-shadow: 0 0 0 0.4em var(--gray-300-fade-60, rgba(222, 226, 230, 0.6));
79
+ box-shadow: 0 0 0 0.4em var(--gray-300-fade-60, rgba(222, 226, 230, 0.6));
80
+ }
81
+ 100% {
82
+ -webkit-box-shadow: 0 0 0 0.8em var(--gray-300-fade-60, rgba(222, 226, 230, 0.6));
83
+ box-shadow: 0 0 0 0.8em var(--gray-300-fade-60, rgba(222, 226, 230, 0.6));
84
+ }
85
+ }
86
+ @keyframes btn-focus-default {
87
+ 0% {
88
+ -webkit-box-shadow: 0 0 0 0 var(--gray-300-fade-60, rgba(222, 226, 230, 0.6));
89
+ box-shadow: 0 0 0 0 var(--gray-300-fade-60, rgba(222, 226, 230, 0.6));
90
+ }
91
+ 50% {
92
+ -webkit-box-shadow: 0 0 0 0.4em var(--gray-300-fade-60, rgba(222, 226, 230, 0.6));
93
+ box-shadow: 0 0 0 0.4em var(--gray-300-fade-60, rgba(222, 226, 230, 0.6));
94
+ }
95
+ 100% {
96
+ -webkit-box-shadow: 0 0 0 0.8em var(--gray-300-fade-60, rgba(222, 226, 230, 0.6));
97
+ box-shadow: 0 0 0 0.8em var(--gray-300-fade-60, rgba(222, 226, 230, 0.6));
98
+ }
99
+ }
72
100
  .so-button-default:focus,
73
101
  .so-button-default:hover {
102
+ border-color: var(--primary-color, #3399ff);
74
103
  background-color: #fff;
75
104
  color: var(--button-default-text-color, #333);
76
105
  }
77
106
  .so-button-default:active {
107
+ border-color: var(--primary-color, #3399ff);
78
108
  -webkit-animation: btn-focus-default 0.4s ease-out;
79
109
  animation: btn-focus-default 0.4s ease-out;
80
110
  background-color: #fff;
@@ -148,12 +178,42 @@ fieldset[disabled] .so-button-default.so-button-outline:not(.so-button-disabled)
148
178
  -webkit-transition: all 0.15s ease-in-out;
149
179
  transition: all 0.15s ease-in-out;
150
180
  }
181
+ @-webkit-keyframes btn-focus-primary {
182
+ 0% {
183
+ -webkit-box-shadow: 0 0 0 0 var(--primary-color-dark-5_fade-60, rgba(25, 140, 255, 0.6));
184
+ box-shadow: 0 0 0 0 var(--primary-color-dark-5_fade-60, rgba(25, 140, 255, 0.6));
185
+ }
186
+ 50% {
187
+ -webkit-box-shadow: 0 0 0 0.4em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
188
+ box-shadow: 0 0 0 0.4em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
189
+ }
190
+ 100% {
191
+ -webkit-box-shadow: 0 0 0 0.8em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
192
+ box-shadow: 0 0 0 0.8em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
193
+ }
194
+ }
195
+ @keyframes btn-focus-primary {
196
+ 0% {
197
+ -webkit-box-shadow: 0 0 0 0 var(--primary-color-dark-5_fade-60, rgba(25, 140, 255, 0.6));
198
+ box-shadow: 0 0 0 0 var(--primary-color-dark-5_fade-60, rgba(25, 140, 255, 0.6));
199
+ }
200
+ 50% {
201
+ -webkit-box-shadow: 0 0 0 0.4em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
202
+ box-shadow: 0 0 0 0.4em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
203
+ }
204
+ 100% {
205
+ -webkit-box-shadow: 0 0 0 0.8em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
206
+ box-shadow: 0 0 0 0.8em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
207
+ }
208
+ }
151
209
  .so-button-primary:focus,
152
210
  .so-button-primary:hover {
211
+ border-color: var(--primary-color, #3399ff);
153
212
  background-color: var(--primary-color-dark-btn-hover, #007fff);
154
213
  color: #fff;
155
214
  }
156
215
  .so-button-primary:active {
216
+ border-color: var(--primary-color, #3399ff);
157
217
  -webkit-animation: btn-focus-primary 0.4s ease-out;
158
218
  animation: btn-focus-primary 0.4s ease-out;
159
219
  background-color: var(--primary-color-dark-btn-hover, #007fff);
@@ -242,10 +302,12 @@ fieldset[disabled] .so-button-primary.so-button-outline:not(.so-button-disabled)
242
302
  }
243
303
  .so-button-secondary:focus,
244
304
  .so-button-secondary:hover {
305
+ border-color: var(--secondary-color, #999999);
245
306
  background-color: var(--secondary-color-dark-btn-hover, #808080);
246
307
  color: #fff;
247
308
  }
248
309
  .so-button-secondary:active {
310
+ border-color: var(--secondary-color, #999999);
249
311
  -webkit-animation: btn-focus-secondary 0.4s ease-out;
250
312
  animation: btn-focus-secondary 0.4s ease-out;
251
313
  background-color: var(--secondary-color-dark-btn-hover, #808080);
@@ -304,12 +366,42 @@ fieldset[disabled] .so-button-secondary.so-button-outline:not(.so-button-disable
304
366
  -webkit-transition: all 0.15s ease-in-out;
305
367
  transition: all 0.15s ease-in-out;
306
368
  }
369
+ @-webkit-keyframes btn-focus-success {
370
+ 0% {
371
+ -webkit-box-shadow: 0 0 0 0 var(--success-color-dark-5_fade-60, rgba(0, 179, 89, 0.6));
372
+ box-shadow: 0 0 0 0 var(--success-color-dark-5_fade-60, rgba(0, 179, 89, 0.6));
373
+ }
374
+ 50% {
375
+ -webkit-box-shadow: 0 0 0 0.4em var(--success-color-dark-5_fade-0, rgba(0, 179, 89, 0));
376
+ box-shadow: 0 0 0 0.4em var(--success-color-dark-5_fade-0, rgba(0, 179, 89, 0));
377
+ }
378
+ 100% {
379
+ -webkit-box-shadow: 0 0 0 0.8em var(--success-color-dark-5_fade-0, rgba(0, 179, 89, 0));
380
+ box-shadow: 0 0 0 0.8em var(--success-color-dark-5_fade-0, rgba(0, 179, 89, 0));
381
+ }
382
+ }
383
+ @keyframes btn-focus-success {
384
+ 0% {
385
+ -webkit-box-shadow: 0 0 0 0 var(--success-color-dark-5_fade-60, rgba(0, 179, 89, 0.6));
386
+ box-shadow: 0 0 0 0 var(--success-color-dark-5_fade-60, rgba(0, 179, 89, 0.6));
387
+ }
388
+ 50% {
389
+ -webkit-box-shadow: 0 0 0 0.4em var(--success-color-dark-5_fade-0, rgba(0, 179, 89, 0));
390
+ box-shadow: 0 0 0 0.4em var(--success-color-dark-5_fade-0, rgba(0, 179, 89, 0));
391
+ }
392
+ 100% {
393
+ -webkit-box-shadow: 0 0 0 0.8em var(--success-color-dark-5_fade-0, rgba(0, 179, 89, 0));
394
+ box-shadow: 0 0 0 0.8em var(--success-color-dark-5_fade-0, rgba(0, 179, 89, 0));
395
+ }
396
+ }
307
397
  .so-button-success:focus,
308
398
  .so-button-success:hover {
399
+ border-color: var(--success-color, #00cc66);
309
400
  background-color: var(--success-color-dark-btn-hover, #00994d);
310
401
  color: #fff;
311
402
  }
312
403
  .so-button-success:active {
404
+ border-color: var(--success-color, #00cc66);
313
405
  -webkit-animation: btn-focus-success 0.4s ease-out;
314
406
  animation: btn-focus-success 0.4s ease-out;
315
407
  background-color: var(--success-color-dark-btn-hover, #00994d);
@@ -368,12 +460,42 @@ fieldset[disabled] .so-button-success.so-button-outline:not(.so-button-disabled)
368
460
  -webkit-transition: all 0.15s ease-in-out;
369
461
  transition: all 0.15s ease-in-out;
370
462
  }
463
+ @-webkit-keyframes btn-focus-info {
464
+ 0% {
465
+ -webkit-box-shadow: 0 0 0 0 var(--info-color-dark-5_fade-60, rgba(20, 142, 161, 0.6));
466
+ box-shadow: 0 0 0 0 var(--info-color-dark-5_fade-60, rgba(20, 142, 161, 0.6));
467
+ }
468
+ 50% {
469
+ -webkit-box-shadow: 0 0 0 0.4em var(--info-color-dark-5_fade-0, rgba(20, 142, 161, 0));
470
+ box-shadow: 0 0 0 0.4em var(--info-color-dark-5_fade-0, rgba(20, 142, 161, 0));
471
+ }
472
+ 100% {
473
+ -webkit-box-shadow: 0 0 0 0.8em var(--info-color-dark-5_fade-0, rgba(20, 142, 161, 0));
474
+ box-shadow: 0 0 0 0.8em var(--info-color-dark-5_fade-0, rgba(20, 142, 161, 0));
475
+ }
476
+ }
477
+ @keyframes btn-focus-info {
478
+ 0% {
479
+ -webkit-box-shadow: 0 0 0 0 var(--info-color-dark-5_fade-60, rgba(20, 142, 161, 0.6));
480
+ box-shadow: 0 0 0 0 var(--info-color-dark-5_fade-60, rgba(20, 142, 161, 0.6));
481
+ }
482
+ 50% {
483
+ -webkit-box-shadow: 0 0 0 0.4em var(--info-color-dark-5_fade-0, rgba(20, 142, 161, 0));
484
+ box-shadow: 0 0 0 0.4em var(--info-color-dark-5_fade-0, rgba(20, 142, 161, 0));
485
+ }
486
+ 100% {
487
+ -webkit-box-shadow: 0 0 0 0.8em var(--info-color-dark-5_fade-0, rgba(20, 142, 161, 0));
488
+ box-shadow: 0 0 0 0.8em var(--info-color-dark-5_fade-0, rgba(20, 142, 161, 0));
489
+ }
490
+ }
371
491
  .so-button-info:focus,
372
492
  .so-button-info:hover {
493
+ border-color: var(--info-color, #17a2b8);
373
494
  background-color: var(--info-color-dark-btn-hover, #117a8b);
374
495
  color: #fff;
375
496
  }
376
497
  .so-button-info:active {
498
+ border-color: var(--info-color, #17a2b8);
377
499
  -webkit-animation: btn-focus-info 0.4s ease-out;
378
500
  animation: btn-focus-info 0.4s ease-out;
379
501
  background-color: var(--info-color-dark-btn-hover, #117a8b);
@@ -432,12 +554,42 @@ fieldset[disabled] .so-button-info.so-button-outline:not(.so-button-disabled):ac
432
554
  -webkit-transition: all 0.15s ease-in-out;
433
555
  transition: all 0.15s ease-in-out;
434
556
  }
557
+ @-webkit-keyframes btn-focus-warning {
558
+ 0% {
559
+ -webkit-box-shadow: 0 0 0 0 var(--warning-color-dark-5_fade-60, rgba(230, 138, 0, 0.6));
560
+ box-shadow: 0 0 0 0 var(--warning-color-dark-5_fade-60, rgba(230, 138, 0, 0.6));
561
+ }
562
+ 50% {
563
+ -webkit-box-shadow: 0 0 0 0.4em var(--warning-color-dark-5_fade-0, rgba(230, 138, 0, 0));
564
+ box-shadow: 0 0 0 0.4em var(--warning-color-dark-5_fade-0, rgba(230, 138, 0, 0));
565
+ }
566
+ 100% {
567
+ -webkit-box-shadow: 0 0 0 0.8em var(--warning-color-dark-5_fade-0, rgba(230, 138, 0, 0));
568
+ box-shadow: 0 0 0 0.8em var(--warning-color-dark-5_fade-0, rgba(230, 138, 0, 0));
569
+ }
570
+ }
571
+ @keyframes btn-focus-warning {
572
+ 0% {
573
+ -webkit-box-shadow: 0 0 0 0 var(--warning-color-dark-5_fade-60, rgba(230, 138, 0, 0.6));
574
+ box-shadow: 0 0 0 0 var(--warning-color-dark-5_fade-60, rgba(230, 138, 0, 0.6));
575
+ }
576
+ 50% {
577
+ -webkit-box-shadow: 0 0 0 0.4em var(--warning-color-dark-5_fade-0, rgba(230, 138, 0, 0));
578
+ box-shadow: 0 0 0 0.4em var(--warning-color-dark-5_fade-0, rgba(230, 138, 0, 0));
579
+ }
580
+ 100% {
581
+ -webkit-box-shadow: 0 0 0 0.8em var(--warning-color-dark-5_fade-0, rgba(230, 138, 0, 0));
582
+ box-shadow: 0 0 0 0.8em var(--warning-color-dark-5_fade-0, rgba(230, 138, 0, 0));
583
+ }
584
+ }
435
585
  .so-button-warning:focus,
436
586
  .so-button-warning:hover {
587
+ border-color: var(--warning-color, #ff9900);
437
588
  background-color: var(--warning-color-dark-btn-hover, #cc7a00);
438
589
  color: #fff;
439
590
  }
440
591
  .so-button-warning:active {
592
+ border-color: var(--warning-color, #ff9900);
441
593
  -webkit-animation: btn-focus-warning 0.4s ease-out;
442
594
  animation: btn-focus-warning 0.4s ease-out;
443
595
  background-color: var(--warning-color-dark-btn-hover, #cc7a00);
@@ -497,15 +649,45 @@ fieldset[disabled] .so-button-warning.so-button-outline:not(.so-button-disabled)
497
649
  -webkit-transition: all 0.15s ease-in-out;
498
650
  transition: all 0.15s ease-in-out;
499
651
  }
652
+ @-webkit-keyframes btn-focus-danger {
653
+ 0% {
654
+ -webkit-box-shadow: 0 0 0 0 var(--danger-color-dark-5_fade-60, rgba(247, 61, 61, 0.6));
655
+ box-shadow: 0 0 0 0 var(--danger-color-dark-5_fade-60, rgba(247, 61, 61, 0.6));
656
+ }
657
+ 50% {
658
+ -webkit-box-shadow: 0 0 0 0.4em var(--danger-color-dark-5_fade-0, rgba(247, 61, 61, 0));
659
+ box-shadow: 0 0 0 0.4em var(--danger-color-dark-5_fade-0, rgba(247, 61, 61, 0));
660
+ }
661
+ 100% {
662
+ -webkit-box-shadow: 0 0 0 0.8em var(--danger-color-dark-5_fade-0, rgba(247, 61, 61, 0));
663
+ box-shadow: 0 0 0 0.8em var(--danger-color-dark-5_fade-0, rgba(247, 61, 61, 0));
664
+ }
665
+ }
666
+ @keyframes btn-focus-danger {
667
+ 0% {
668
+ -webkit-box-shadow: 0 0 0 0 var(--danger-color-dark-5_fade-60, rgba(247, 61, 61, 0.6));
669
+ box-shadow: 0 0 0 0 var(--danger-color-dark-5_fade-60, rgba(247, 61, 61, 0.6));
670
+ }
671
+ 50% {
672
+ -webkit-box-shadow: 0 0 0 0.4em var(--danger-color-dark-5_fade-0, rgba(247, 61, 61, 0));
673
+ box-shadow: 0 0 0 0.4em var(--danger-color-dark-5_fade-0, rgba(247, 61, 61, 0));
674
+ }
675
+ 100% {
676
+ -webkit-box-shadow: 0 0 0 0.8em var(--danger-color-dark-5_fade-0, rgba(247, 61, 61, 0));
677
+ box-shadow: 0 0 0 0.8em var(--danger-color-dark-5_fade-0, rgba(247, 61, 61, 0));
678
+ }
679
+ }
500
680
  .so-button-error:focus,
501
681
  .so-button-danger:focus,
502
682
  .so-button-error:hover,
503
683
  .so-button-danger:hover {
684
+ border-color: var(--danger-color, #f85555);
504
685
  background-color: var(--danger-color-dark-btn-hover, #f62424);
505
686
  color: #fff;
506
687
  }
507
688
  .so-button-error:active,
508
689
  .so-button-danger:active {
690
+ border-color: var(--danger-color, #f85555);
509
691
  -webkit-animation: btn-focus-danger 0.4s ease-out;
510
692
  animation: btn-focus-danger 0.4s ease-out;
511
693
  background-color: var(--danger-color-dark-btn-hover, #f62424);
@@ -774,6 +956,13 @@ fieldset[disabled] .so-button-link:focus {
774
956
  .so-button-group .so-button.so-button-outline:not(.so-button-disabled):focus:before {
775
957
  border-left-color: inherit;
776
958
  }
959
+ .so-button-group .so-button.so-button-outline:not(.so-button-disabled):hover + .so-button:not(.so-button-disabled):before,
960
+ .so-button-group .so-button.so-button-outline:not(.so-button-disabled):active + .so-button:not(.so-button-disabled):before,
961
+ .so-button-group .so-button.so-button-outline:not(.so-button-disabled):focus + .so-button:not(.so-button-disabled):before {
962
+ height: 0;
963
+ -webkit-transition: none;
964
+ transition: none;
965
+ }
777
966
  .so-button-from-input-group .so-button:before {
778
967
  border-left: none;
779
968
  }
@@ -67,6 +67,15 @@ function (_PureComponent) {
67
67
  }
68
68
  };
69
69
 
70
+ _proto.componentWillUnmount = function componentWillUnmount() {
71
+ _PureComponent.prototype.componentWillUnmount.call(this);
72
+
73
+ if (this.$timeout) {
74
+ clearTimeout(this.$timeout);
75
+ this.$timeout = null;
76
+ }
77
+ };
78
+
70
79
  _proto.setNext = function setNext(next) {
71
80
  var _this2 = this;
72
81
 
@@ -190,6 +190,7 @@ function (_Component2) {
190
190
  others = (0, _objectWithoutPropertiesLoose2.default)(_this$props3, ["focus", "getRef", "fixed", "data", "childrenKey", "renderItem", "datum", "expandTrigger", "onChange", "onPathChange", "filterText", "onFilter", "height"]);
191
191
  if (!focus) return null;
192
192
  return _react.default.createElement("div", (0, _extends2.default)({}, others, {
193
+ ref: getRef,
193
194
  className: (0, _classnames.default)((0, _styles.selectClass)('options'), (0, _styles2.cascaderClass)('filter', expandTrigger === 'hover-only' && 'leaf-only'))
194
195
  }), this.renderList());
195
196
  };
@@ -1,6 +1,9 @@
1
1
  .so-cascader {
2
2
  position: relative;
3
3
  width: 100%;
4
+ display: -webkit-box;
5
+ display: -ms-flexbox;
6
+ display: flex;
4
7
  }
5
8
  .so-cascader:focus {
6
9
  outline: none;
@@ -15,6 +18,9 @@
15
18
  flex-flow: wrap;
16
19
  padding: 6px 24px 0 12px;
17
20
  overflow-y: auto;
21
+ -webkit-box-flex: 1;
22
+ -ms-flex-positive: 1;
23
+ flex-grow: 1;
18
24
  }
19
25
  .so-cascader-result .so-input-placeholder {
20
26
  color: var(--input-placeholder-color, #999);
@@ -142,6 +148,10 @@ div.so-cascader-options {
142
148
  display: inline-flex;
143
149
  }
144
150
  .so-cascader-result.so-cascader-compressed {
151
+ -webkit-box-flex: 1;
152
+ -ms-flex-positive: 1;
153
+ flex-grow: 1;
154
+ width: 0;
145
155
  display: -webkit-box;
146
156
  display: -ms-flexbox;
147
157
  display: flex;
@@ -215,12 +215,42 @@ fieldset[disabled] .so-checkinput-button .so-checkinput.so-checkinput-radio:acti
215
215
  .so-checkinput-button .so-checkinput.so-checkinput-checked:not(.so-checkinput-disabled) {
216
216
  z-index: 1;
217
217
  }
218
+ @-webkit-keyframes btn-focus-primary {
219
+ 0% {
220
+ -webkit-box-shadow: 0 0 0 0 var(--primary-color-dark-5_fade-60, rgba(25, 140, 255, 0.6));
221
+ box-shadow: 0 0 0 0 var(--primary-color-dark-5_fade-60, rgba(25, 140, 255, 0.6));
222
+ }
223
+ 50% {
224
+ -webkit-box-shadow: 0 0 0 0.4em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
225
+ box-shadow: 0 0 0 0.4em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
226
+ }
227
+ 100% {
228
+ -webkit-box-shadow: 0 0 0 0.8em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
229
+ box-shadow: 0 0 0 0.8em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
230
+ }
231
+ }
232
+ @keyframes btn-focus-primary {
233
+ 0% {
234
+ -webkit-box-shadow: 0 0 0 0 var(--primary-color-dark-5_fade-60, rgba(25, 140, 255, 0.6));
235
+ box-shadow: 0 0 0 0 var(--primary-color-dark-5_fade-60, rgba(25, 140, 255, 0.6));
236
+ }
237
+ 50% {
238
+ -webkit-box-shadow: 0 0 0 0.4em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
239
+ box-shadow: 0 0 0 0.4em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
240
+ }
241
+ 100% {
242
+ -webkit-box-shadow: 0 0 0 0.8em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
243
+ box-shadow: 0 0 0 0.8em var(--primary-color-dark-5_fade-0, rgba(25, 140, 255, 0));
244
+ }
245
+ }
218
246
  .so-checkinput-button .so-checkinput.so-checkinput-checked:focus,
219
247
  .so-checkinput-button .so-checkinput.so-checkinput-checked:hover {
248
+ border-color: var(--primary-color, #3399ff);
220
249
  background-color: var(--primary-color-dark-btn-hover, #007fff);
221
250
  color: #fff;
222
251
  }
223
252
  .so-checkinput-button .so-checkinput.so-checkinput-checked:active {
253
+ border-color: var(--primary-color, #3399ff);
224
254
  -webkit-animation: btn-focus-primary 0.4s ease-out;
225
255
  animation: btn-focus-primary 0.4s ease-out;
226
256
  background-color: var(--primary-color-dark-btn-hover, #007fff);
@@ -59,7 +59,7 @@ function (_Component) {
59
59
  var _proto = Index.prototype;
60
60
 
61
61
  _proto.componentWillUnmount = function componentWillUnmount() {
62
- (0, _lazyload.removeStack)(this.id);
62
+ (0, _lazyload.removeStack)(this.id, true);
63
63
  this.node = null;
64
64
  this.observer = null;
65
65
  this.id = null;
@@ -94,12 +94,13 @@ function (_Component) {
94
94
  _proto.bindObserver = function bindObserver(node) {
95
95
  this.observer = node;
96
96
  if (!node) return;
97
- (0, _lazyload.removeStack)(this.id);
97
+ (0, _lazyload.removeStack)(this.id, true);
98
98
  this.id = (0, _lazyload.addStack)({
99
99
  container: this.node,
100
100
  element: node,
101
101
  render: this.scrollLoading,
102
- offset: 20
102
+ offset: 20,
103
+ noRemove: true
103
104
  });
104
105
  };
105
106
 
@@ -117,14 +118,11 @@ function (_Component) {
117
118
  _proto.renderItem = function renderItem(value, index) {
118
119
  var _this$props = this.props,
119
120
  keygen = _this$props.keygen,
120
- data = _this$props.data,
121
121
  onChange = _this$props.onChange;
122
- var length = data.length;
123
122
  var haveRowSelected = (0, _is.isFunc)(onChange);
124
123
  return _react.default.createElement("div", {
125
124
  className: this.getItemClassName(value, index, haveRowSelected),
126
- key: (0, _uid.getKey)(value, keygen, index),
127
- ref: index === length - 1 ? this.bindObserver : null
125
+ key: (0, _uid.getKey)(value, keygen, index)
128
126
  }, this.renderCheckBox(haveRowSelected, value, index), this.getContent(value, index));
129
127
  };
130
128
 
@@ -168,7 +166,8 @@ function (_Component) {
168
166
  size = _this$props3.size,
169
167
  bordered = _this$props3.bordered,
170
168
  fixed = _this$props3.fixed,
171
- height = _this$props3.height;
169
+ height = _this$props3.height,
170
+ scrollLoading = _this$props3.scrollLoading;
172
171
  var isEmpty = !(0, _is.isArray)(data) || data.length <= 0;
173
172
  var ms = Object.assign({}, style, height && {
174
173
  height: height
@@ -183,7 +182,9 @@ function (_Component) {
183
182
  size: 40
184
183
  }) : loading), _react.default.createElement("div", {
185
184
  className: (0, _styles.listClass)('list', isEmpty && 'empty')
186
- }, this.renderList(isEmpty)), this.renderFooter());
185
+ }, this.renderList(isEmpty)), !isEmpty && (0, _is.isFunc)(scrollLoading) && _react.default.createElement("div", {
186
+ ref: this.bindObserver
187
+ }), this.renderFooter());
187
188
  };
188
189
 
189
190
  return Index;
@@ -189,9 +189,15 @@ function toDateWithFormat(dirtyDate, fmt, def) {
189
189
  date = parse(dirtyDate, fmt, new Date(), {
190
190
  weekStartsOn: (0, _locale.getLocale)('startOfWeek')
191
191
  });
192
+ var str = format(date, fmt, {
193
+ weekStartsOn: (0, _locale.getLocale)('startOfWeek')
194
+ });
195
+
196
+ if (str !== dirtyDate) {
197
+ date = toDate(dirtyDate);
198
+ }
192
199
  } else date = toDate(dirtyDate);
193
200
 
194
- if (isInvalid(date)) date = toDate(dirtyDate);
195
201
  if (isInvalid(date)) date = def;
196
202
  return date;
197
203
  }
@@ -45,7 +45,6 @@ function (_React$PureComponent) {
45
45
 
46
46
  _this = _React$PureComponent.call(this, props) || this;
47
47
  _this.state = {
48
- value: props.value,
49
48
  showTextarea: false
50
49
  };
51
50
  _this.bindContainer = _this.bindElement.bind((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), 'container');
@@ -65,26 +64,16 @@ function (_React$PureComponent) {
65
64
  var _proto = Editable.prototype;
66
65
 
67
66
  _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
68
- var value = this.props.value;
69
67
  var showTextarea = this.state.showTextarea;
70
68
 
71
69
  if (prevState.showTextarea !== showTextarea && showTextarea) {
72
70
  this.autoFocus();
73
71
  }
74
-
75
- if (value !== prevProps.value) {
76
- this.setState({
77
- value: value
78
- });
79
- }
80
72
  };
81
73
 
82
74
  _proto.onChange = function onChange(value) {
83
75
  var onChange = this.props.onChange;
84
76
  if (typeof onChange === 'function') onChange(value);
85
- this.setState({
86
- value: value
87
- });
88
77
  };
89
78
 
90
79
  _proto.onBlur = function onBlur(e) {
@@ -119,13 +108,12 @@ function (_React$PureComponent) {
119
108
  };
120
109
 
121
110
  _proto.renderTextarea = function renderTextarea() {
122
- var _this$state = this.state,
123
- showTextarea = _this$state.showTextarea,
124
- value = _this$state.value;
111
+ var showTextarea = this.state.showTextarea;
125
112
  var _this$props = this.props,
126
113
  delay = _this$props.delay,
127
114
  placeholder = _this$props.placeholder,
128
- maxHeight = _this$props.maxHeight;
115
+ maxHeight = _this$props.maxHeight,
116
+ value = _this$props.value;
129
117
  if (!showTextarea) return null;
130
118
  return _react.default.createElement("div", {
131
119
  ref: this.bindContainer
@@ -144,10 +132,10 @@ function (_React$PureComponent) {
144
132
  };
145
133
 
146
134
  _proto.renderInput = function renderInput() {
147
- var value = this.state.value;
148
135
  var _this$props2 = this.props,
149
136
  placeholder = _this$props2.placeholder,
150
- disabled = _this$props2.disabled;
137
+ disabled = _this$props2.disabled,
138
+ value = _this$props2.value;
151
139
  return _react.default.createElement(_Input.default, {
152
140
  forwardedRef: this.bindInput,
153
141
  placeholder: placeholder,
@@ -159,16 +147,15 @@ function (_React$PureComponent) {
159
147
  };
160
148
 
161
149
  _proto.render = function render() {
162
- var _this$state2 = this.state,
163
- showTextarea = _this$state2.showTextarea,
164
- value = _this$state2.value;
150
+ var showTextarea = this.state.showTextarea;
165
151
  var _this$props3 = this.props,
166
152
  width = _this$props3.width,
167
153
  style = _this$props3.style,
168
154
  className = _this$props3.className,
169
155
  bordered = _this$props3.bordered,
170
156
  clearable = _this$props3.clearable,
171
- getPopupContainer = _this$props3.getPopupContainer;
157
+ getPopupContainer = _this$props3.getPopupContainer,
158
+ value = _this$props3.value;
172
159
  var cls = (0, _classnames.default)(className, (0, _styles.editableAreaClass)('_', !bordered && 'none-bordered'));
173
160
  var ms = Object.assign({
174
161
  width: width
@@ -121,6 +121,8 @@ var _default = (0, _func.curry)(function (Origin) {
121
121
  formDatum.bind(name, this.handleUpdate, defaultValue, this.validate);
122
122
  this.state.value = formDatum.get(name);
123
123
  }
124
+
125
+ this.lastValue = this.state.value;
124
126
  }
125
127
 
126
128
  if (bindInputToItem && name && !popover) bindInputToItem(this.errorName);
@@ -181,7 +183,7 @@ var _default = (0, _func.curry)(function (Origin) {
181
183
  }
182
184
 
183
185
  var hasValue = 'value' in this.props || 'checked' in this.props;
184
- return !hasValue && !formDatum ? this.state.value : value;
186
+ return !hasValue ? this.state.value : value;
185
187
  };
186
188
 
187
189
  _proto.getError = function getError() {
package/css/Menu/Item.js CHANGED
@@ -35,12 +35,8 @@ var _config = require("../config");
35
35
 
36
36
  var _element = require("../utils/dom/element");
37
37
 
38
- var getBaseIndent = function getBaseIndent(flag) {
39
- if (flag === void 0) {
40
- flag = false;
41
- }
42
-
43
- return flag ? 16 : 20;
38
+ var getBaseIndent = function getBaseIndent() {
39
+ return 16;
44
40
  };
45
41
 
46
42
  var calcIndent = function calcIndent(flag, indent) {
@@ -231,7 +227,8 @@ function (_PureComponent) {
231
227
  renderItem = _this$props5.renderItem,
232
228
  data = _this$props5.data,
233
229
  index = _this$props5.index,
234
- frontCaret = _this$props5.frontCaret;
230
+ frontCaret = _this$props5.frontCaret,
231
+ caretColor = _this$props5.caretColor;
235
232
  var item = renderItem(data, index);
236
233
  var link = this.renderLink(data);
237
234
 
@@ -254,12 +251,18 @@ function (_PureComponent) {
254
251
 
255
252
  if (frontCaret) {
256
253
  return _react.default.createElement("a", props, _react.default.createElement("div", {
254
+ style: {
255
+ color: caretColor
256
+ },
257
257
  className: (0, _styles.menuClass)('caret', hasChilds && 'has-childs')
258
258
  }), item);
259
259
  }
260
260
 
261
261
  return _react.default.createElement("a", props, item, _react.default.createElement("span", {
262
- className: (0, _styles.menuClass)('expand')
262
+ className: (0, _styles.menuClass)('expand'),
263
+ style: {
264
+ color: caretColor
265
+ }
263
266
  }));
264
267
  };
265
268
 
@@ -280,7 +283,8 @@ function (_PureComponent) {
280
283
  toggleDuration = _this$props6.toggleDuration,
281
284
  frontCaret = _this$props6.frontCaret,
282
285
  looseChildren = _this$props6.looseChildren,
283
- parentSelectable = _this$props6.parentSelectable;
286
+ parentSelectable = _this$props6.parentSelectable,
287
+ frontCaretType = _this$props6.frontCaretType;
284
288
  var _this$state = this.state,
285
289
  open = _this$state.open,
286
290
  isActive = _this$state.isActive,
@@ -296,7 +300,7 @@ function (_PureComponent) {
296
300
  }
297
301
 
298
302
  var hasChilds = looseChildren ? Array.isArray(dChildren) : children.length > 0;
299
- var className = (0, _styles.menuClass)('item', isDisabled === true && 'disabled', hasChilds ? 'has-children' : 'no-children', isActive && 'active', open && 'open', isUp && 'open-up', isHighLight && 'highlight', inPath && 'in-path', frontCaret && 'caret-solid', parentSelectable && 'selectable');
303
+ var className = (0, _styles.menuClass)('item', isDisabled === true && 'disabled', hasChilds ? 'has-children' : 'no-children', isActive && 'active', open && 'open', isUp && 'open-up', isHighLight && 'highlight', inPath && 'in-path', frontCaret && "caret-" + frontCaretType, parentSelectable && 'selectable');
300
304
  var style = this.getCalcStyle();
301
305
  var events = {};
302
306
 
@@ -353,7 +357,9 @@ Item.propTypes = {
353
357
  toggleDuration: _propTypes.default.number,
354
358
  frontCaret: _propTypes.default.bool,
355
359
  looseChildren: _propTypes.default.bool,
356
- parentSelectable: _propTypes.default.bool
360
+ parentSelectable: _propTypes.default.bool,
361
+ frontCaretType: _propTypes.default.oneOf(['hollow', 'solid']),
362
+ caretColor: _propTypes.default.string
357
363
  };
358
364
 
359
365
  var _default = (0, _context.consumer)(Item);
package/css/Menu/List.js CHANGED
@@ -51,7 +51,9 @@ function (_PureComponent) {
51
51
  toggleDuration = _this$props.toggleDuration,
52
52
  frontCaret = _this$props.frontCaret,
53
53
  looseChildren = _this$props.looseChildren,
54
- parentSelectable = _this$props.parentSelectable;
54
+ parentSelectable = _this$props.parentSelectable,
55
+ frontCaretType = _this$props.frontCaretType,
56
+ caretColor = _this$props.caretColor;
55
57
  var isVertical = mode.indexOf('vertical') === 0;
56
58
  var className = (0, _classnames.default)((0, _styles.menuClass)('list', isVertical ? 'vertical' : mode), this.props.className);
57
59
  return _react.default.createElement("ul", {
@@ -76,6 +78,8 @@ function (_PureComponent) {
76
78
  linkKey: linkKey,
77
79
  toggleDuration: toggleDuration,
78
80
  frontCaret: frontCaret,
81
+ frontCaretType: frontCaretType,
82
+ caretColor: caretColor,
79
83
  looseChildren: looseChildren,
80
84
  parentSelectable: parentSelectable
81
85
  });
@@ -104,7 +108,9 @@ List.propTypes = {
104
108
  toggleDuration: _propTypes.default.number,
105
109
  frontCaret: _propTypes.default.bool,
106
110
  looseChildren: _propTypes.default.bool,
107
- parentSelectable: _propTypes.default.bool
111
+ parentSelectable: _propTypes.default.bool,
112
+ frontCaretType: _propTypes.default.oneOf(['hollow', 'solid']),
113
+ caretColor: _propTypes.default.string
108
114
  };
109
115
  var _default = List;
110
116
  exports.default = _default;