react-ui-basics 0.0.218 → 0.0.220

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 (55) hide show
  1. package/Button.d.ts +24 -0
  2. package/Button.js +45 -75
  3. package/Button.js.map +1 -1
  4. package/CalendarMonthView.d.ts +1 -0
  5. package/CircleProgress.d.ts +1 -0
  6. package/DNDContainer.js +10 -5
  7. package/DNDContainer.js.map +1 -1
  8. package/DNDDraggable.d.ts +29 -0
  9. package/DNDDraggable.js +27 -44
  10. package/DNDDraggable.js.map +1 -1
  11. package/DNDDroppable.d.ts +28 -0
  12. package/DNDDroppable.js +32 -46
  13. package/DNDDroppable.js.map +1 -1
  14. package/DroppableHorizontalList.js +28 -27
  15. package/DroppableHorizontalList.js.map +1 -1
  16. package/DroppableList.js +29 -34
  17. package/DroppableList.js.map +1 -1
  18. package/Dropzone.js.map +1 -1
  19. package/MaterialIcon.d.ts +1 -0
  20. package/ReactConstants.d.ts +1 -0
  21. package/ReactConstants.js +17 -2
  22. package/ReactConstants.js.map +1 -1
  23. package/ScrollableTable.d.ts +4 -2
  24. package/ScrollableTable.js +5 -6
  25. package/ScrollableTable.js.map +1 -1
  26. package/Size.d.ts +1 -0
  27. package/SpinningProgress.d.ts +1 -0
  28. package/Table.js +1 -1
  29. package/Table.js.map +1 -1
  30. package/TextField.d.ts +36 -0
  31. package/TextField.js +73 -134
  32. package/TextField.js.map +1 -1
  33. package/Tools.d.ts +1 -1
  34. package/Tools.js +1 -1
  35. package/Tools.js.map +1 -1
  36. package/bundle.css +684 -684
  37. package/package.json +1 -1
  38. package/src/Button.tsx +97 -0
  39. package/src/DNDContainer.tsx +19 -10
  40. package/src/{DNDDraggable.js → DNDDraggable.tsx} +35 -9
  41. package/src/{DNDDroppable.js → DNDDroppable.tsx} +35 -8
  42. package/src/DroppableHorizontalList.js +33 -32
  43. package/src/DroppableList.js +34 -41
  44. package/src/Dropzone.tsx +1 -1
  45. package/src/ReactConstants.ts +21 -1
  46. package/src/ScrollableTable.tsx +7 -7
  47. package/src/Table.tsx +3 -3
  48. package/src/{TextField.js → TextField.tsx} +42 -44
  49. package/src/Tools.ts +2 -2
  50. package/src/store/Store.test.js +1 -1
  51. package/src/store/Store.ts +8 -26
  52. package/store/Store.d.ts +3 -4
  53. package/store/Store.js +5 -21
  54. package/store/Store.js.map +1 -1
  55. package/src/Button.js +0 -98
package/bundle.css CHANGED
@@ -1,167 +1,10 @@
1
- .Button {
2
- position: relative;
3
- min-width: 64px;
4
- min-height: 36px;
5
- height: 24px;
6
- margin: 0px;
7
- padding: 0px 16px;
8
- border: none;
9
- outline: none;
10
- font-size: 14px;
11
- font-weight: 500;
12
- letter-spacing: 1.25px;
13
- background: #dfdfdf;
14
- text-transform: uppercase;
15
- font-family: Roboto, sans-serif;
16
- -webkit-tap-highlight-color: transparent;
17
- display: inline-flex;
18
- justify-content: center;
19
- align-items: center;
20
- cursor: pointer;
21
- overflow: hidden;
22
- user-select: none;
23
- border-radius: 3px;
24
- transition: all 0.2s ease;
25
- }
26
-
27
- .Button.flat {
28
- background-color: transparent;
29
- }
30
-
31
- .Button.flat:hover {
32
- background-color: rgba(0, 0, 0, 0.05);
33
- }
34
-
35
- .Button.green {
36
- background-color: #43a047;
37
- color: white;
38
- }
39
-
40
- .Button.green:hover {
41
- background-color: #3b8e3f;
42
- }
43
-
44
- .Button.blue {
45
- background-color: #039be5;
46
- color: white;
47
- }
48
-
49
- .Button.blue:hover {
50
- background-color: #038acc;
51
- }
52
-
53
- .Button.red {
54
- background-color: #e53935;
55
- color: white;
56
- }
57
-
58
- .Button.red:hover {
59
- background-color: #e2231e;
60
- }
61
-
62
- .Button.black {
63
- background-color: #1e252d;
64
- color: white;
65
- }
66
-
67
- .Button.black:hover {
68
- background-color: #14181e;
69
- }
70
-
71
- .Button.gray {
72
- background: #D9D9D9;
73
- color: #999999;
74
- }
75
-
76
- .Button.gray:hover {
77
- background-color: #cccccc;
78
- }
79
-
80
- .Button.small {
81
- padding: 0px 8px;
82
- min-height: 16px;
83
- min-width: 16px;
84
- }
85
-
86
- .Button > .material-icons {
87
- margin-right: 10px;
88
- }
89
-
90
- .Button.round {
91
- padding: 0px;
92
- min-width: 36px;
93
- border-radius: 50%;
94
- }
95
-
96
- .Button.round > .material-icons {
97
- margin: 0px;
98
- }
99
-
100
- .Button .ripple {
101
- position: absolute;
102
- background: rgba(0, 0, 0, 0.1);
103
- border-radius: 100%;
104
- transform: scale(0);
105
- pointer-events: none;
106
- transition: opacity 0.2s ease-out;
107
- }
108
-
109
- .Button .ripple.show {
110
- animation: ripple 0.35s ease-out;
111
- }
112
-
113
- .Button:active .ripple.showed {
114
- opacity: 1;
115
- }
116
-
117
- .Button:focus .ripple.focused {
118
- opacity: 1;
119
- transition: opacity 0.2s ease-out, transform 0.2s ease-out;
120
- transform: scale(1);
121
- animation: resize 1.25s ease-out infinite;
122
- animation-delay: 0.2s;
123
- animation-direction: alternate;
124
- }
125
-
126
- .Button .ripple.showed {
127
- transform: scale(2);
1
+ .animated {
2
+ transition: opacity 250ms ease;
128
3
  opacity: 0;
129
4
  }
130
5
 
131
- @keyframes ripple {
132
- to {
133
- transform: scale(2);
134
- }
135
- }
136
- @keyframes resize {
137
- to {
138
- transform: scale(0.9);
139
- }
140
- }
141
- .Button.raised {
142
- transition: color 0.2s ease-out, background-color 0.2s ease-out, box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
143
- }
144
-
145
- .Button.raised:hover {
146
- box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.25);
147
- }
148
-
149
- .Button.raised:active {
150
- box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.35);
151
- }
152
-
153
- .Button.disabled {
154
- box-shadow: none;
155
- background: #D9D9D9;
156
- color: #999999;
157
- }
158
-
159
- .Button.disabled:hover {
160
- background-color: #cccccc;
161
- }
162
-
163
- .Button::-moz-focus-inner {
164
- border: 0;
6
+ .animated.mounting, .animated.mounted {
7
+ opacity: 1;
165
8
  }
166
9
 
167
10
  .AutocompleteSelect {
@@ -459,15 +302,6 @@
459
302
  position: absolute;
460
303
  }
461
304
 
462
- .animated {
463
- transition: opacity 250ms ease;
464
- opacity: 0;
465
- }
466
-
467
- .animated.mounting, .animated.mounted {
468
- opacity: 1;
469
- }
470
-
471
305
  .FilteredList {
472
306
  max-height: 250px;
473
307
  position: relative;
@@ -553,48 +387,6 @@
553
387
  margin-bottom: 8px;
554
388
  }
555
389
 
556
- .DialogModal {
557
- overflow: hidden;
558
- }
559
-
560
- .DialogModal .content {
561
- top: 20vh;
562
- }
563
-
564
- .Dialog {
565
- background-color: white;
566
- min-width: 460px;
567
- max-width: 40vw;
568
- padding: 15px;
569
- }
570
-
571
- .Dialog .title {
572
- margin-bottom: 15px;
573
- padding: 20px 50px 0px 30px;
574
- font-size: 1.25rem;
575
- line-height: 2rem;
576
- font-weight: 400;
577
- letter-spacing: 0.0125em;
578
- }
579
-
580
- .Dialog .description {
581
- color: rgba(0, 0, 0, 0.54);
582
- font-size: 1rem;
583
- line-height: 1.5rem;
584
- font-weight: 400;
585
- letter-spacing: 0.03125em;
586
- margin-top: 20px;
587
- padding: 0 24px 24px;
588
- }
589
-
590
- .Dialog > div.row {
591
- margin-bottom: 15px;
592
- }
593
-
594
- .Dialog > div.row:last-child {
595
- margin-bottom: 0;
596
- }
597
-
598
390
  .Scrollable {
599
391
  max-height: 250px;
600
392
  max-width: 250px;
@@ -763,164 +555,21 @@
763
555
  box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
764
556
  }
765
557
 
766
- .TextField {
767
- position: relative;
768
- width: 100%;
769
- }
770
-
771
- .TextField > label {
772
- font-family: Roboto, sans-serif;
773
- color: rgba(0, 0, 0, 0.3);
774
- font-size: 16px;
775
- position: absolute;
776
- left: 0px;
777
- top: 16px;
778
- margin-top: -16px;
779
- transition: all 0.2s ease;
780
- user-select: none;
781
- cursor: text;
558
+ .Modal {
559
+ display: block;
560
+ position: fixed;
561
+ top: 0;
562
+ left: 0;
563
+ right: 0;
564
+ bottom: 100%;
565
+ overflow-y: scroll;
566
+ transition: bottom 0ms linear;
567
+ transition-delay: 0.2s;
782
568
  }
783
569
 
784
- .TextField > input {
785
- font-family: Roboto, sans-serif;
786
- color: #1e252d;
787
- height: 19px;
788
- font-size: 16px;
789
- width: 100%;
790
- border: 0px;
791
- padding-bottom: 4px;
792
- padding-top: 0;
793
- outline-color: rgba(0, 0, 0, 0);
794
- }
795
-
796
- .TextField > input:focus {
797
- outline: none;
798
- }
799
-
800
- .TextField > input:disabled {
801
- color: gray;
802
- background-color: white;
803
- }
804
-
805
- .TextField > input:disabled + .border {
806
- height: 0px;
807
- border-bottom: 2px dotted rgb(224, 224, 224);
808
- }
809
-
810
- .TextField > input::placeholder {
811
- font-family: Roboto, sans-serif;
812
- color: rgba(0, 0, 0, 0.3);
813
- opacity: 1;
814
- }
815
-
816
- .TextField > .border {
817
- border-bottom: 1px solid rgb(224, 224, 224);
818
- height: 1px;
819
- position: relative;
820
- }
821
-
822
- .TextField > .border .line {
823
- left: 50%;
824
- width: 0;
825
- height: 2px;
826
- min-height: 2px;
827
- background-color: rgb(0, 188, 212);
828
- transition: all 0.2s ease;
829
- position: absolute;
830
- }
831
-
832
- .TextField > .error {
833
- text-align: left;
834
- font-size: 10px;
835
- min-height: 0;
836
- line-height: 14px;
837
- color: rgb(244, 67, 54);
838
- visibility: hidden;
839
- opacity: 0;
840
- transition: all 0.2s ease;
841
- }
842
-
843
- .TextField.focused > label, .TextField.withValue > label {
844
- top: 4px;
845
- font-size: 12px;
846
- line-height: 14px;
847
- }
848
-
849
- .TextField.errored > .error {
850
- visibility: visible;
851
- opacity: 1;
852
- }
853
-
854
- .TextField.errored > .border {
855
- border-bottom-color: rgb(244, 67, 54);
856
- }
857
-
858
- .TextField.errored > label {
859
- color: rgb(244, 67, 54);
860
- }
861
-
862
- .TextField.focused > label {
863
- color: rgb(0, 188, 212);
864
- }
865
-
866
- .TextField.focused > .border .line {
867
- left: 0;
868
- width: 100%;
869
- }
870
-
871
- .TextField.disabled label, .TextField.disabled input {
872
- cursor: not-allowed;
873
- }
874
-
875
- .TextField.withLabel {
876
- margin-top: 15px;
877
- }
878
-
879
- .TextField input::-webkit-contacts-auto-fill-button {
880
- visibility: hidden;
881
- display: none !important;
882
- pointer-events: none;
883
- position: absolute;
884
- right: 0;
885
- }
886
-
887
- .TextField input:-webkit-autofill {
888
- -webkit-box-shadow: inset 0 0 0px 9999px white;
889
- }
890
-
891
- @keyframes shake {
892
- 0%, 100% {
893
- transform: translateX(0);
894
- }
895
- 20%, 60% {
896
- transform: translateX(-5px);
897
- }
898
- 40%, 80% {
899
- transform: translateX(5px);
900
- }
901
- }
902
- .TextField .shake {
903
- animation-duration: 0.5s;
904
- animation-fill-mode: both;
905
- animation-timing-function: ease-in-out;
906
- animation-name: shake;
907
- }
908
-
909
- .Modal {
910
- display: block;
911
- position: fixed;
912
- top: 0;
913
- left: 0;
914
- right: 0;
915
- bottom: 100%;
916
- overflow-y: scroll;
917
- transition: bottom 0ms linear;
918
- transition-delay: 0.2s;
919
- }
920
-
921
- .Modal.show {
922
- transition-delay: 0s;
923
- bottom: 0;
570
+ .Modal.show {
571
+ transition-delay: 0s;
572
+ bottom: 0;
924
573
  }
925
574
 
926
575
  .Modal > .overlay {
@@ -976,22 +625,46 @@
976
625
  position: absolute;
977
626
  }
978
627
 
979
- .DNDContainer .DroppableList .Draggable {
980
- transform: unset;
981
- transition: unset;
982
- opacity: 1;
628
+ .DialogModal {
629
+ overflow: hidden;
983
630
  }
984
631
 
985
- .DNDContainer .DroppableList .Draggable.dragged {
986
- transition: unset !important;
632
+ .DialogModal .content {
633
+ top: 20vh;
987
634
  }
988
635
 
989
- .DNDContainer .DroppableList.hover .Draggable {
990
- transition: transform 0.2s ease-in;
636
+ .Dialog {
637
+ background-color: white;
638
+ min-width: 460px;
639
+ max-width: 40vw;
640
+ padding: 15px;
991
641
  }
992
642
 
993
- .DNDContainer .DroppableList.resetting .Draggable {
994
- transition: transform 0.1s ease-in;
643
+ .Dialog .title {
644
+ margin-bottom: 15px;
645
+ padding: 20px 50px 0px 30px;
646
+ font-size: 1.25rem;
647
+ line-height: 2rem;
648
+ font-weight: 400;
649
+ letter-spacing: 0.0125em;
650
+ }
651
+
652
+ .Dialog .description {
653
+ color: rgba(0, 0, 0, 0.54);
654
+ font-size: 1rem;
655
+ line-height: 1.5rem;
656
+ font-weight: 400;
657
+ letter-spacing: 0.03125em;
658
+ margin-top: 20px;
659
+ padding: 0 24px 24px;
660
+ }
661
+
662
+ .Dialog > div.row {
663
+ margin-bottom: 15px;
664
+ }
665
+
666
+ .Dialog > div.row:last-child {
667
+ margin-bottom: 0;
995
668
  }
996
669
 
997
670
  .ImageGallery {
@@ -1229,72 +902,157 @@
1229
902
  font-size: 24px;
1230
903
  }
1231
904
 
1232
- .CircleProgress {
1233
- width: 48px;
1234
- height: 48px;
905
+ .DNDContainer .DroppableList .Draggable {
906
+ transform: unset;
907
+ transition: unset;
908
+ opacity: 1;
1235
909
  }
1236
910
 
1237
- .CircleProgress .line {
1238
- stroke-width: 2px;
1239
- stroke: black;
1240
- stroke-linecap: square;
1241
- fill: none;
1242
- transition: stroke-dashoffset 0.2s ease;
911
+ .DNDContainer .DroppableList .Draggable.dragged {
912
+ transition: unset !important;
1243
913
  }
1244
914
 
1245
- .DatePicker {
1246
- position: relative;
915
+ .DNDContainer .DroppableList.hover .Draggable {
916
+ transition: transform 0.2s ease-in;
1247
917
  }
1248
918
 
1249
- .DatePicker > .TextField {
1250
- width: 200px;
1251
- margin-bottom: 0px;
919
+ .DNDContainer .DroppableList.resetting .Draggable {
920
+ transition: transform 0.1s ease-in;
1252
921
  }
1253
922
 
1254
- .DatePicker > .TextField input {
1255
- text-align: center;
923
+ .Checkbox {
924
+ position: relative;
925
+ white-space: pre;
1256
926
  }
1257
927
 
1258
- .calendar {
1259
- user-select: none;
1260
- position: absolute;
1261
- top: 33px;
1262
- z-index: 10;
1263
- box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
1264
- border-radius: 4px;
1265
- overflow: hidden;
1266
- transition: 0.2s all ease;
1267
- opacity: 0;
1268
- visibility: hidden;
928
+ .Checkbox *, .Checkbox *:before, .Checkbox *:after {
929
+ box-sizing: border-box;
1269
930
  }
1270
931
 
1271
- .calendar.focused {
1272
- opacity: 1;
1273
- visibility: visible;
932
+ .Checkbox label {
933
+ font-family: Roboto, sans-serif;
934
+ font-size: 14px;
935
+ color: #1e252d;
936
+ cursor: pointer;
1274
937
  }
1275
938
 
1276
- .calendar .monthSelect {
1277
- align-items: center;
1278
- margin-bottom: 0;
1279
- background: white;
1280
- font-size: 12px;
1281
- color: rgb(170, 170, 170);
1282
- padding-right: 16px;
1283
- padding-left: 16px;
1284
- height: 40px;
939
+ .Checkbox label:before, .Checkbox label:after {
940
+ content: "";
941
+ position: absolute;
942
+ left: 0;
943
+ top: 0;
1285
944
  }
1286
945
 
1287
- .calendar .monthSelect span {
1288
- margin-right: auto;
946
+ .Checkbox label:before {
947
+ width: 20px;
948
+ height: 20px;
949
+ background: #fff;
950
+ border: 2px solid #252525;
951
+ border-radius: 2px;
952
+ cursor: pointer;
953
+ transition: background 0.3s;
1289
954
  }
1290
955
 
1291
- .calendar .monthSelect .Button {
1292
- min-width: 25px;
1293
- min-height: 25px;
956
+ .Checkbox input[type=checkbox] {
957
+ outline: 0;
958
+ margin-right: 10px;
959
+ visibility: hidden;
1294
960
  }
1295
961
 
1296
- .calendar .monthSelect .Button .material-icons {
1297
- font-size: 16px;
962
+ .Checkbox input[type=checkbox]:checked + label:before {
963
+ background: #4AC263;
964
+ border: none;
965
+ }
966
+
967
+ .Checkbox input[type=checkbox]:checked + label:after {
968
+ transform: rotate(-45deg);
969
+ top: 6px;
970
+ left: 4px;
971
+ width: 12px;
972
+ height: 6px;
973
+ border: 2px solid #fff;
974
+ border-top-style: none;
975
+ border-right-style: none;
976
+ }
977
+
978
+ .Checkbox input[type=checkbox]:disabled + label {
979
+ color: gray;
980
+ }
981
+
982
+ .Checkbox input[type=checkbox]:disabled + label:before {
983
+ border-color: rgba(0, 0, 0, 0.26);
984
+ }
985
+
986
+ .Checkbox input[type=checkbox]:disabled:checked + label:before {
987
+ background: rgba(0, 0, 0, 0.26);
988
+ }
989
+
990
+ .CircleProgress {
991
+ width: 48px;
992
+ height: 48px;
993
+ }
994
+
995
+ .CircleProgress .line {
996
+ stroke-width: 2px;
997
+ stroke: black;
998
+ stroke-linecap: square;
999
+ fill: none;
1000
+ transition: stroke-dashoffset 0.2s ease;
1001
+ }
1002
+
1003
+ .DatePicker {
1004
+ position: relative;
1005
+ }
1006
+
1007
+ .DatePicker > .TextField {
1008
+ width: 200px;
1009
+ margin-bottom: 0px;
1010
+ }
1011
+
1012
+ .DatePicker > .TextField input {
1013
+ text-align: center;
1014
+ }
1015
+
1016
+ .calendar {
1017
+ user-select: none;
1018
+ position: absolute;
1019
+ top: 33px;
1020
+ z-index: 10;
1021
+ box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12), 0 2px 4px -1px rgba(0, 0, 0, 0.2);
1022
+ border-radius: 4px;
1023
+ overflow: hidden;
1024
+ transition: 0.2s all ease;
1025
+ opacity: 0;
1026
+ visibility: hidden;
1027
+ }
1028
+
1029
+ .calendar.focused {
1030
+ opacity: 1;
1031
+ visibility: visible;
1032
+ }
1033
+
1034
+ .calendar .monthSelect {
1035
+ align-items: center;
1036
+ margin-bottom: 0;
1037
+ background: white;
1038
+ font-size: 12px;
1039
+ color: rgb(170, 170, 170);
1040
+ padding-right: 16px;
1041
+ padding-left: 16px;
1042
+ height: 40px;
1043
+ }
1044
+
1045
+ .calendar .monthSelect span {
1046
+ margin-right: auto;
1047
+ }
1048
+
1049
+ .calendar .monthSelect .Button {
1050
+ min-width: 25px;
1051
+ min-height: 25px;
1052
+ }
1053
+
1054
+ .calendar .monthSelect .Button .material-icons {
1055
+ font-size: 16px;
1298
1056
  }
1299
1057
 
1300
1058
  .calendar .monthSelect .Button.disabled {
@@ -1359,133 +1117,6 @@
1359
1117
  background-color: #51adf6;
1360
1118
  }
1361
1119
 
1362
- .Checkbox {
1363
- position: relative;
1364
- white-space: pre;
1365
- }
1366
-
1367
- .Checkbox *, .Checkbox *:before, .Checkbox *:after {
1368
- box-sizing: border-box;
1369
- }
1370
-
1371
- .Checkbox label {
1372
- font-family: Roboto, sans-serif;
1373
- font-size: 14px;
1374
- color: #1e252d;
1375
- cursor: pointer;
1376
- }
1377
-
1378
- .Checkbox label:before, .Checkbox label:after {
1379
- content: "";
1380
- position: absolute;
1381
- left: 0;
1382
- top: 0;
1383
- }
1384
-
1385
- .Checkbox label:before {
1386
- width: 20px;
1387
- height: 20px;
1388
- background: #fff;
1389
- border: 2px solid #252525;
1390
- border-radius: 2px;
1391
- cursor: pointer;
1392
- transition: background 0.3s;
1393
- }
1394
-
1395
- .Checkbox input[type=checkbox] {
1396
- outline: 0;
1397
- margin-right: 10px;
1398
- visibility: hidden;
1399
- }
1400
-
1401
- .Checkbox input[type=checkbox]:checked + label:before {
1402
- background: #4AC263;
1403
- border: none;
1404
- }
1405
-
1406
- .Checkbox input[type=checkbox]:checked + label:after {
1407
- transform: rotate(-45deg);
1408
- top: 6px;
1409
- left: 4px;
1410
- width: 12px;
1411
- height: 6px;
1412
- border: 2px solid #fff;
1413
- border-top-style: none;
1414
- border-right-style: none;
1415
- }
1416
-
1417
- .Checkbox input[type=checkbox]:disabled + label {
1418
- color: gray;
1419
- }
1420
-
1421
- .Checkbox input[type=checkbox]:disabled + label:before {
1422
- border-color: rgba(0, 0, 0, 0.26);
1423
- }
1424
-
1425
- .Checkbox input[type=checkbox]:disabled:checked + label:before {
1426
- background: rgba(0, 0, 0, 0.26);
1427
- }
1428
-
1429
- .Dropzone {
1430
- position: relative;
1431
- }
1432
-
1433
- .Dropzone > .overlay {
1434
- position: absolute;
1435
- left: 0;
1436
- right: 0;
1437
- top: 0;
1438
- bottom: 0;
1439
- background-color: #38ADC4;
1440
- z-index: 1;
1441
- opacity: 0;
1442
- transition: all 0.2s ease;
1443
- transition-delay: 100ms;
1444
- visibility: hidden;
1445
- display: flex;
1446
- justify-content: center;
1447
- align-items: center;
1448
- }
1449
-
1450
- .Dropzone > .overlay .drop {
1451
- border-radius: 4px;
1452
- border: 1px dashed #FFFFFF;
1453
- position: absolute;
1454
- top: 18px;
1455
- left: 18px;
1456
- right: 18px;
1457
- bottom: 18px;
1458
- display: flex;
1459
- justify-content: center;
1460
- align-items: center;
1461
- font-weight: 500;
1462
- font-size: 18px;
1463
- color: #FFFFFF;
1464
- }
1465
-
1466
- .Dropzone.dragging > .overlay {
1467
- opacity: 0.7;
1468
- visibility: visible;
1469
- transition-delay: 0s;
1470
- }
1471
-
1472
- .Dropzone.dragging > * {
1473
- pointer-events: none;
1474
- }
1475
-
1476
- .Dropzone > input.file {
1477
- position: absolute;
1478
- left: 0;
1479
- right: 0;
1480
- top: 0;
1481
- bottom: 0;
1482
- width: 100%;
1483
- height: 100%;
1484
- opacity: 0;
1485
- cursor: pointer;
1486
- z-index: 1;
1487
- }
1488
-
1489
1120
  .CalendarMonthView {
1490
1121
  display: flex;
1491
1122
  flex-flow: column nowrap;
@@ -1543,19 +1174,212 @@
1543
1174
  pointer-events: none;
1544
1175
  }
1545
1176
 
1546
- .ModalMenu {
1547
- position: absolute;
1548
- top: 10px;
1549
- right: 50px;
1177
+ .Button {
1178
+ position: relative;
1179
+ min-width: 64px;
1180
+ min-height: 36px;
1181
+ height: 24px;
1182
+ margin: 0px;
1183
+ padding: 0px 16px;
1184
+ border: none;
1185
+ outline: none;
1186
+ font-size: 14px;
1187
+ font-weight: 500;
1188
+ letter-spacing: 1.25px;
1189
+ background: #dfdfdf;
1190
+ text-transform: uppercase;
1191
+ font-family: Roboto, sans-serif;
1192
+ -webkit-tap-highlight-color: transparent;
1193
+ display: inline-flex;
1194
+ justify-content: center;
1195
+ align-items: center;
1196
+ cursor: pointer;
1197
+ overflow: hidden;
1198
+ user-select: none;
1199
+ border-radius: 3px;
1200
+ transition: all 0.2s ease;
1550
1201
  }
1551
1202
 
1552
- .ModalMenu .material-icons {
1553
- color: #818181;
1203
+ .Button.flat {
1204
+ background-color: transparent;
1554
1205
  }
1555
1206
 
1556
- .ModalMenu .Button.animated {
1557
- position: absolute;
1558
- transition: opacity 150ms ease-in, right 200ms ease-in;
1207
+ .Button.flat:hover {
1208
+ background-color: rgba(0, 0, 0, 0.05);
1209
+ }
1210
+
1211
+ .Button.green {
1212
+ background-color: #43a047;
1213
+ color: white;
1214
+ }
1215
+
1216
+ .Button.green:hover {
1217
+ background-color: #3b8e3f;
1218
+ }
1219
+
1220
+ .Button.blue {
1221
+ background-color: #039be5;
1222
+ color: white;
1223
+ }
1224
+
1225
+ .Button.blue:hover {
1226
+ background-color: #038acc;
1227
+ }
1228
+
1229
+ .Button.red {
1230
+ background-color: #e53935;
1231
+ color: white;
1232
+ }
1233
+
1234
+ .Button.red:hover {
1235
+ background-color: #e2231e;
1236
+ }
1237
+
1238
+ .Button.black {
1239
+ background-color: #1e252d;
1240
+ color: white;
1241
+ }
1242
+
1243
+ .Button.black:hover {
1244
+ background-color: #14181e;
1245
+ }
1246
+
1247
+ .Button.gray {
1248
+ background: #D9D9D9;
1249
+ color: #999999;
1250
+ }
1251
+
1252
+ .Button.gray:hover {
1253
+ background-color: #cccccc;
1254
+ }
1255
+
1256
+ .Button.small {
1257
+ padding: 0px 8px;
1258
+ min-height: 16px;
1259
+ min-width: 16px;
1260
+ }
1261
+
1262
+ .Button > .material-icons {
1263
+ margin-right: 10px;
1264
+ }
1265
+
1266
+ .Button.round {
1267
+ padding: 0px;
1268
+ min-width: 36px;
1269
+ border-radius: 50%;
1270
+ }
1271
+
1272
+ .Button.round > .material-icons {
1273
+ margin: 0px;
1274
+ }
1275
+
1276
+ .Button .ripple {
1277
+ position: absolute;
1278
+ background: rgba(0, 0, 0, 0.1);
1279
+ border-radius: 100%;
1280
+ transform: scale(0);
1281
+ pointer-events: none;
1282
+ transition: opacity 0.2s ease-out;
1283
+ }
1284
+
1285
+ .Button .ripple.show {
1286
+ animation: ripple 0.35s ease-out;
1287
+ }
1288
+
1289
+ .Button:active .ripple.showed {
1290
+ opacity: 1;
1291
+ }
1292
+
1293
+ .Button:focus .ripple.focused {
1294
+ opacity: 1;
1295
+ transition: opacity 0.2s ease-out, transform 0.2s ease-out;
1296
+ transform: scale(1);
1297
+ animation: resize 1.25s ease-out infinite;
1298
+ animation-delay: 0.2s;
1299
+ animation-direction: alternate;
1300
+ }
1301
+
1302
+ .Button .ripple.showed {
1303
+ transform: scale(2);
1304
+ opacity: 0;
1305
+ }
1306
+
1307
+ @keyframes ripple {
1308
+ to {
1309
+ transform: scale(2);
1310
+ }
1311
+ }
1312
+ @keyframes resize {
1313
+ to {
1314
+ transform: scale(0.9);
1315
+ }
1316
+ }
1317
+ .Button.raised {
1318
+ transition: color 0.2s ease-out, background-color 0.2s ease-out, box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
1319
+ }
1320
+
1321
+ .Button.raised:hover {
1322
+ box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.25);
1323
+ }
1324
+
1325
+ .Button.raised:active {
1326
+ box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.35);
1327
+ }
1328
+
1329
+ .Button.disabled {
1330
+ box-shadow: none;
1331
+ background: #D9D9D9;
1332
+ color: #999999;
1333
+ }
1334
+
1335
+ .Button.disabled:hover {
1336
+ background-color: #cccccc;
1337
+ }
1338
+
1339
+ .Button::-moz-focus-inner {
1340
+ border: 0;
1341
+ }
1342
+
1343
+ .DropFileInput {
1344
+ flex-grow: 1;
1345
+ }
1346
+
1347
+ .DropFileInput .Dropzone {
1348
+ border: 1px dashed #808080;
1349
+ padding: 12px;
1350
+ display: flex;
1351
+ flex-flow: row nowrap;
1352
+ justify-content: center;
1353
+ align-items: center;
1354
+ color: gray;
1355
+ cursor: pointer;
1356
+ border-radius: 3px;
1357
+ font-weight: normal;
1358
+ line-height: 22px;
1359
+ font-size: 14px;
1360
+ color: #7E7E7E;
1361
+ max-width: 100%;
1362
+ word-break: break-all;
1363
+ word-break: break-word;
1364
+ }
1365
+
1366
+ .DropFileInput .Dropzone .icon.withText {
1367
+ margin-right: 10px;
1368
+ }
1369
+
1370
+ .ModalMenu {
1371
+ position: absolute;
1372
+ top: 10px;
1373
+ right: 50px;
1374
+ }
1375
+
1376
+ .ModalMenu .material-icons {
1377
+ color: #818181;
1378
+ }
1379
+
1380
+ .ModalMenu .Button.animated {
1381
+ position: absolute;
1382
+ transition: opacity 150ms ease-in, right 200ms ease-in;
1559
1383
  opacity: 0;
1560
1384
  right: 0;
1561
1385
  top: 0;
@@ -1579,32 +1403,195 @@
1579
1403
  background-color: #D9D9D9;
1580
1404
  margin-left: 4px;
1581
1405
  }
1582
-
1583
- .DropFileInput {
1584
- flex-grow: 1;
1406
+
1407
+ .Dropzone {
1408
+ position: relative;
1409
+ }
1410
+
1411
+ .Dropzone > .overlay {
1412
+ position: absolute;
1413
+ left: 0;
1414
+ right: 0;
1415
+ top: 0;
1416
+ bottom: 0;
1417
+ background-color: #38ADC4;
1418
+ z-index: 1;
1419
+ opacity: 0;
1420
+ transition: all 0.2s ease;
1421
+ transition-delay: 100ms;
1422
+ visibility: hidden;
1423
+ display: flex;
1424
+ justify-content: center;
1425
+ align-items: center;
1426
+ }
1427
+
1428
+ .Dropzone > .overlay .drop {
1429
+ border-radius: 4px;
1430
+ border: 1px dashed #FFFFFF;
1431
+ position: absolute;
1432
+ top: 18px;
1433
+ left: 18px;
1434
+ right: 18px;
1435
+ bottom: 18px;
1436
+ display: flex;
1437
+ justify-content: center;
1438
+ align-items: center;
1439
+ font-weight: 500;
1440
+ font-size: 18px;
1441
+ color: #FFFFFF;
1442
+ }
1443
+
1444
+ .Dropzone.dragging > .overlay {
1445
+ opacity: 0.7;
1446
+ visibility: visible;
1447
+ transition-delay: 0s;
1448
+ }
1449
+
1450
+ .Dropzone.dragging > * {
1451
+ pointer-events: none;
1452
+ }
1453
+
1454
+ .Dropzone > input.file {
1455
+ position: absolute;
1456
+ left: 0;
1457
+ right: 0;
1458
+ top: 0;
1459
+ bottom: 0;
1460
+ width: 100%;
1461
+ height: 100%;
1462
+ opacity: 0;
1463
+ cursor: pointer;
1464
+ z-index: 1;
1465
+ }
1466
+
1467
+ .Button.FloatingActionButton {
1468
+ position: absolute;
1469
+ right: 16px;
1470
+ bottom: 16px;
1471
+ width: 56px;
1472
+ height: 56px;
1473
+ padding: 16px;
1474
+ transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1475
+ }
1476
+
1477
+ .Button.FloatingActionButton.raised {
1478
+ transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s ease-out, background-color 0.2s ease-out, box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
1479
+ }
1480
+
1481
+ .Button.FloatingActionButton.mini {
1482
+ width: 40px;
1483
+ height: 40px;
1484
+ padding: 8px;
1485
+ }
1486
+
1487
+ .Button.FloatingActionButton.hidden {
1488
+ bottom: -100px;
1489
+ }
1490
+
1491
+ .Snackbar {
1492
+ transform: translateX(-50%);
1493
+ overflow: hidden;
1494
+ background-color: #323232;
1495
+ padding: 14px 24px 14px 24px;
1496
+ color: #fff;
1497
+ min-width: 288px;
1498
+ max-width: 568px;
1499
+ position: fixed;
1500
+ bottom: -50px;
1501
+ left: 50%;
1502
+ display: flex;
1503
+ flex-wrap: nowrap;
1504
+ align-items: center;
1505
+ opacity: 0;
1506
+ transition: bottom 0.25s ease, opacity 0.2s ease;
1507
+ border-radius: 4px;
1508
+ box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
1509
+ }
1510
+
1511
+ .Snackbar.shown {
1512
+ bottom: 15px;
1513
+ opacity: 1;
1514
+ }
1515
+
1516
+ .Snackbar .message {
1517
+ overflow: hidden;
1518
+ line-height: 1.2em;
1519
+ min-height: 1.2em;
1520
+ max-height: 2.4em;
1521
+ flex: 1;
1522
+ }
1523
+
1524
+ .Snackbar .action {
1525
+ text-transform: uppercase;
1526
+ font-weight: bold;
1527
+ margin-left: 48px;
1528
+ color: #bf3727;
1529
+ }
1530
+
1531
+ .Snackbar .action a {
1532
+ text-decoration: none;
1533
+ color: #bf3727;
1534
+ }
1535
+
1536
+ .SpinningProgress {
1537
+ width: 48px;
1538
+ height: 48px;
1539
+ position: relative;
1540
+ margin: 0 auto;
1541
+ }
1542
+
1543
+ .SpinningProgress:before {
1544
+ content: "";
1545
+ display: block;
1546
+ padding-top: 100%;
1547
+ }
1548
+
1549
+ .SpinningProgress .circular {
1550
+ animation: rotate 2s linear infinite;
1551
+ height: 100%;
1552
+ transform-origin: center center;
1553
+ width: 100%;
1554
+ position: absolute;
1555
+ top: 0;
1556
+ bottom: 0;
1557
+ left: 0;
1558
+ right: 0;
1559
+ margin: auto;
1560
+ }
1561
+
1562
+ .SpinningProgress .line {
1563
+ stroke: black;
1564
+ stroke-width: 2px;
1565
+ stroke-dasharray: 1, 96;
1566
+ stroke-dashoffset: 0;
1567
+ animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
1568
+ }
1569
+
1570
+ @keyframes rotate {
1571
+ 100% {
1572
+ transform: rotate(360deg);
1573
+ }
1574
+ }
1575
+ @keyframes dash {
1576
+ 0% {
1577
+ stroke-dasharray: 1, 96;
1578
+ stroke-dashoffset: 0;
1579
+ }
1580
+ 50% {
1581
+ stroke-dasharray: 43, 96;
1582
+ stroke-dashoffset: -17px;
1583
+ }
1584
+ 100% {
1585
+ stroke-dasharray: 43, 96;
1586
+ stroke-dashoffset: -53px;
1587
+ }
1585
1588
  }
1586
-
1587
- .DropFileInput .Dropzone {
1588
- border: 1px dashed #808080;
1589
- padding: 12px;
1590
- display: flex;
1591
- flex-flow: row nowrap;
1592
- justify-content: center;
1593
- align-items: center;
1594
- color: gray;
1595
- cursor: pointer;
1596
- border-radius: 3px;
1597
- font-weight: normal;
1598
- line-height: 22px;
1599
- font-size: 14px;
1600
- color: #7E7E7E;
1601
- max-width: 100%;
1602
- word-break: break-all;
1603
- word-break: break-word;
1589
+ .ScrollableTable .Scrollable .scrollbar {
1590
+ top: 56px;
1604
1591
  }
1605
1592
 
1606
- .DropFileInput .Dropzone .icon.withText {
1607
- margin-right: 10px;
1593
+ .ScrollableTable .Table {
1594
+ position: static;
1608
1595
  }
1609
1596
 
1610
1597
  .Table {
@@ -1729,30 +1716,6 @@
1729
1716
  margin: 0;
1730
1717
  }
1731
1718
 
1732
- .Button.FloatingActionButton {
1733
- position: absolute;
1734
- right: 16px;
1735
- bottom: 16px;
1736
- width: 56px;
1737
- height: 56px;
1738
- padding: 16px;
1739
- transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1740
- }
1741
-
1742
- .Button.FloatingActionButton.raised {
1743
- transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s ease-out, background-color 0.2s ease-out, box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
1744
- }
1745
-
1746
- .Button.FloatingActionButton.mini {
1747
- width: 40px;
1748
- height: 40px;
1749
- padding: 8px;
1750
- }
1751
-
1752
- .Button.FloatingActionButton.hidden {
1753
- bottom: -100px;
1754
- }
1755
-
1756
1719
  .Switch {
1757
1720
  display: inline-flex;
1758
1721
  padding-top: 5px;
@@ -1835,108 +1798,145 @@
1835
1798
  display: none;
1836
1799
  }
1837
1800
 
1838
- .SpinningProgress {
1839
- width: 48px;
1840
- height: 48px;
1801
+ .TextField {
1841
1802
  position: relative;
1842
- margin: 0 auto;
1803
+ width: 100%;
1843
1804
  }
1844
1805
 
1845
- .SpinningProgress:before {
1846
- content: "";
1847
- display: block;
1848
- padding-top: 100%;
1806
+ .TextField > label {
1807
+ font-family: Roboto, sans-serif;
1808
+ color: rgba(0, 0, 0, 0.3);
1809
+ font-size: 16px;
1810
+ position: absolute;
1811
+ left: 0px;
1812
+ top: 16px;
1813
+ margin-top: -16px;
1814
+ transition: all 0.2s ease;
1815
+ user-select: none;
1816
+ cursor: text;
1849
1817
  }
1850
1818
 
1851
- .SpinningProgress .circular {
1852
- animation: rotate 2s linear infinite;
1853
- height: 100%;
1854
- transform-origin: center center;
1819
+ .TextField > input {
1820
+ font-family: Roboto, sans-serif;
1821
+ color: #1e252d;
1822
+ height: 19px;
1823
+ font-size: 16px;
1855
1824
  width: 100%;
1856
- position: absolute;
1857
- top: 0;
1858
- bottom: 0;
1859
- left: 0;
1860
- right: 0;
1861
- margin: auto;
1825
+ border: 0px;
1826
+ padding-bottom: 4px;
1827
+ padding-top: 0;
1828
+ outline-color: rgba(0, 0, 0, 0);
1862
1829
  }
1863
1830
 
1864
- .SpinningProgress .line {
1865
- stroke: black;
1866
- stroke-width: 2px;
1867
- stroke-dasharray: 1, 96;
1868
- stroke-dashoffset: 0;
1869
- animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
1831
+ .TextField > input:focus {
1832
+ outline: none;
1870
1833
  }
1871
1834
 
1872
- @keyframes rotate {
1873
- 100% {
1874
- transform: rotate(360deg);
1875
- }
1835
+ .TextField > input:disabled {
1836
+ color: gray;
1837
+ background-color: white;
1876
1838
  }
1877
- @keyframes dash {
1878
- 0% {
1879
- stroke-dasharray: 1, 96;
1880
- stroke-dashoffset: 0;
1881
- }
1882
- 50% {
1883
- stroke-dasharray: 43, 96;
1884
- stroke-dashoffset: -17px;
1885
- }
1886
- 100% {
1887
- stroke-dasharray: 43, 96;
1888
- stroke-dashoffset: -53px;
1889
- }
1839
+
1840
+ .TextField > input:disabled + .border {
1841
+ height: 0px;
1842
+ border-bottom: 2px dotted rgb(224, 224, 224);
1890
1843
  }
1891
- .Snackbar {
1892
- transform: translateX(-50%);
1893
- overflow: hidden;
1894
- background-color: #323232;
1895
- padding: 14px 24px 14px 24px;
1896
- color: #fff;
1897
- min-width: 288px;
1898
- max-width: 568px;
1899
- position: fixed;
1900
- bottom: -50px;
1844
+
1845
+ .TextField > input::placeholder {
1846
+ font-family: Roboto, sans-serif;
1847
+ color: rgba(0, 0, 0, 0.3);
1848
+ opacity: 1;
1849
+ }
1850
+
1851
+ .TextField > .border {
1852
+ border-bottom: 1px solid rgb(224, 224, 224);
1853
+ height: 1px;
1854
+ position: relative;
1855
+ }
1856
+
1857
+ .TextField > .border .line {
1901
1858
  left: 50%;
1902
- display: flex;
1903
- flex-wrap: nowrap;
1904
- align-items: center;
1859
+ width: 0;
1860
+ height: 2px;
1861
+ min-height: 2px;
1862
+ background-color: rgb(0, 188, 212);
1863
+ transition: all 0.2s ease;
1864
+ position: absolute;
1865
+ }
1866
+
1867
+ .TextField > .error {
1868
+ text-align: left;
1869
+ font-size: 10px;
1870
+ min-height: 0;
1871
+ line-height: 14px;
1872
+ color: rgb(244, 67, 54);
1873
+ visibility: hidden;
1905
1874
  opacity: 0;
1906
- transition: bottom 0.25s ease, opacity 0.2s ease;
1907
- border-radius: 4px;
1908
- box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
1875
+ transition: all 0.2s ease;
1909
1876
  }
1910
1877
 
1911
- .Snackbar.shown {
1912
- bottom: 15px;
1878
+ .TextField.focused > label, .TextField.withValue > label {
1879
+ top: 4px;
1880
+ font-size: 12px;
1881
+ line-height: 14px;
1882
+ }
1883
+
1884
+ .TextField.errored > .error {
1885
+ visibility: visible;
1913
1886
  opacity: 1;
1914
1887
  }
1915
1888
 
1916
- .Snackbar .message {
1917
- overflow: hidden;
1918
- line-height: 1.2em;
1919
- min-height: 1.2em;
1920
- max-height: 2.4em;
1921
- flex: 1;
1889
+ .TextField.errored > .border {
1890
+ border-bottom-color: rgb(244, 67, 54);
1922
1891
  }
1923
1892
 
1924
- .Snackbar .action {
1925
- text-transform: uppercase;
1926
- font-weight: bold;
1927
- margin-left: 48px;
1928
- color: #bf3727;
1893
+ .TextField.errored > label {
1894
+ color: rgb(244, 67, 54);
1929
1895
  }
1930
1896
 
1931
- .Snackbar .action a {
1932
- text-decoration: none;
1933
- color: #bf3727;
1897
+ .TextField.focused > label {
1898
+ color: rgb(0, 188, 212);
1934
1899
  }
1935
1900
 
1936
- .ScrollableTable .Scrollable .scrollbar {
1937
- top: 56px;
1901
+ .TextField.focused > .border .line {
1902
+ left: 0;
1903
+ width: 100%;
1938
1904
  }
1939
1905
 
1940
- .ScrollableTable .Table {
1941
- position: static;
1906
+ .TextField.disabled label, .TextField.disabled input {
1907
+ cursor: not-allowed;
1908
+ }
1909
+
1910
+ .TextField.withLabel {
1911
+ margin-top: 15px;
1912
+ }
1913
+
1914
+ .TextField input::-webkit-contacts-auto-fill-button {
1915
+ visibility: hidden;
1916
+ display: none !important;
1917
+ pointer-events: none;
1918
+ position: absolute;
1919
+ right: 0;
1920
+ }
1921
+
1922
+ .TextField input:-webkit-autofill {
1923
+ -webkit-box-shadow: inset 0 0 0px 9999px white;
1924
+ }
1925
+
1926
+ @keyframes shake {
1927
+ 0%, 100% {
1928
+ transform: translateX(0);
1929
+ }
1930
+ 20%, 60% {
1931
+ transform: translateX(-5px);
1932
+ }
1933
+ 40%, 80% {
1934
+ transform: translateX(5px);
1935
+ }
1936
+ }
1937
+ .TextField .shake {
1938
+ animation-duration: 0.5s;
1939
+ animation-fill-mode: both;
1940
+ animation-timing-function: ease-in-out;
1941
+ animation-name: shake;
1942
1942
  }