react-ui-basics 0.0.219 → 0.0.221

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 (87) hide show
  1. package/Animated.js +1 -0
  2. package/Animated.js.map +1 -1
  3. package/Button.d.ts +24 -0
  4. package/Button.js +45 -75
  5. package/Button.js.map +1 -1
  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/Dialog.d.ts +29 -0
  15. package/Dialog.js +84 -143
  16. package/Dialog.js.map +1 -1
  17. package/DroppableHorizontalList.js +28 -27
  18. package/DroppableHorizontalList.js.map +1 -1
  19. package/DroppableList.js +29 -34
  20. package/DroppableList.js.map +1 -1
  21. package/Dropzone.js.map +1 -1
  22. package/FilteredList.d.ts +62 -0
  23. package/FilteredList.js +128 -232
  24. package/FilteredList.js.map +1 -1
  25. package/FormUploadProgress.d.ts +19 -0
  26. package/FormUploadProgress.js +14 -39
  27. package/FormUploadProgress.js.map +1 -1
  28. package/Modal.d.ts +31 -0
  29. package/Modal.js +102 -134
  30. package/Modal.js.map +1 -1
  31. package/ReactConstants.d.ts +6 -2
  32. package/ReactConstants.js +1 -1
  33. package/ReactConstants.js.map +1 -1
  34. package/ReactCreateElement.d.ts +3 -0
  35. package/ReactCreateElement.js.map +1 -1
  36. package/ReadyListener.d.ts +34 -0
  37. package/ReadyListener.js +34 -56
  38. package/ReadyListener.js.map +1 -1
  39. package/Scrollable.css +0 -1
  40. package/Scrollable.d.ts +33 -0
  41. package/Scrollable.js +308 -325
  42. package/Scrollable.js.map +1 -1
  43. package/ScrollableTable.d.ts +4 -2
  44. package/ScrollableTable.js +5 -6
  45. package/ScrollableTable.js.map +1 -1
  46. package/Table.js +1 -1
  47. package/Table.js.map +1 -1
  48. package/TextField.d.ts +36 -0
  49. package/TextField.js +73 -134
  50. package/TextField.js.map +1 -1
  51. package/Tools.d.ts +1 -1
  52. package/Tools.js +1 -1
  53. package/Tools.js.map +1 -1
  54. package/_virtual/_rollupPluginBabelHelpers.js +0 -15
  55. package/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  56. package/bundle.css +903 -904
  57. package/package.json +1 -1
  58. package/router/Route.js +1 -0
  59. package/router/Route.js.map +1 -1
  60. package/src/Button.tsx +96 -0
  61. package/src/DNDContainer.tsx +19 -10
  62. package/src/{DNDDraggable.js → DNDDraggable.tsx} +35 -9
  63. package/src/{DNDDroppable.js → DNDDroppable.tsx} +35 -8
  64. package/src/{Dialog.js → Dialog.tsx} +63 -44
  65. package/src/DroppableHorizontalList.js +33 -32
  66. package/src/DroppableList.js +34 -41
  67. package/src/Dropzone.tsx +1 -1
  68. package/src/{FilteredList.js → FilteredList.tsx} +95 -45
  69. package/src/{FormUploadProgress.js → FormUploadProgress.tsx} +13 -22
  70. package/src/{Modal.js → Modal.tsx} +48 -33
  71. package/src/ReactConstants.ts +14 -6
  72. package/src/ReactCreateElement.tsx +3 -0
  73. package/src/ReadyListener.tsx +58 -0
  74. package/src/Scrollable.css +0 -1
  75. package/src/Scrollable.scss +0 -1
  76. package/src/{Scrollable.js → Scrollable.tsx} +72 -60
  77. package/src/ScrollableTable.tsx +7 -7
  78. package/src/Table.tsx +3 -3
  79. package/src/{TextField.js → TextField.tsx} +42 -44
  80. package/src/Tools.ts +2 -2
  81. package/src/store/Store.test.js +1 -1
  82. package/src/store/Store.ts +3 -1
  83. package/store/Store.js +1 -0
  84. package/store/Store.js.map +1 -1
  85. package/src/Button.js +0 -98
  86. package/src/ReactCreateElement.js +0 -3
  87. package/src/ReadyListener.js +0 -48
package/bundle.css CHANGED
@@ -1,178 +1,3 @@
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);
128
- opacity: 0;
129
- }
130
-
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;
165
- }
166
-
167
- .animated {
168
- transition: opacity 250ms ease;
169
- opacity: 0;
170
- }
171
-
172
- .animated.mounting, .animated.mounted {
173
- opacity: 1;
174
- }
175
-
176
1
  .AutocompleteSelect {
177
2
  display: inline-flex;
178
3
  flex-flow: column;
@@ -468,248 +293,60 @@
468
293
  position: absolute;
469
294
  }
470
295
 
471
- .DialogModal {
472
- overflow: hidden;
296
+ .animated {
297
+ transition: opacity 250ms ease;
298
+ opacity: 0;
473
299
  }
474
300
 
475
- .DialogModal .content {
476
- top: 20vh;
301
+ .animated.mounting, .animated.mounted {
302
+ opacity: 1;
477
303
  }
478
304
 
479
- .Dialog {
480
- background-color: white;
481
- min-width: 460px;
482
- max-width: 40vw;
483
- padding: 15px;
305
+ .ImageGallery {
306
+ position: fixed;
307
+ top: 0;
308
+ left: 0;
309
+ bottom: 0;
310
+ right: 0;
311
+ z-index: 1000;
312
+ background-color: rgba(0, 0, 0, 0.01);
313
+ user-select: none;
484
314
  }
485
315
 
486
- .Dialog .title {
487
- margin-bottom: 15px;
488
- padding: 20px 50px 0px 30px;
489
- font-size: 1.25rem;
490
- line-height: 2rem;
491
- font-weight: 400;
492
- letter-spacing: 0.0125em;
316
+ .ImageGallery:focus {
317
+ outline-width: 0px;
493
318
  }
494
319
 
495
- .Dialog .description {
496
- color: rgba(0, 0, 0, 0.54);
497
- font-size: 1rem;
498
- line-height: 1.5rem;
499
- font-weight: 400;
500
- letter-spacing: 0.03125em;
501
- margin-top: 20px;
502
- padding: 0 24px 24px;
320
+ .ImageGallery.animated {
321
+ transition: background-color 0.25s ease;
322
+ opacity: 1;
503
323
  }
504
324
 
505
- .Dialog > div.row {
506
- margin-bottom: 15px;
325
+ .ImageGallery.mounting, .ImageGallery.mounted {
326
+ background-color: rgba(0, 0, 0, 0.8);
507
327
  }
508
328
 
509
- .Dialog > div.row:last-child {
510
- margin-bottom: 0;
329
+ .ImageGallery .image {
330
+ position: absolute;
331
+ cursor: grab;
511
332
  }
512
333
 
513
- .FilteredList {
514
- max-height: 250px;
515
- position: relative;
334
+ .ImageGallery .image .counter {
335
+ display: none;
516
336
  }
517
337
 
518
- .FilteredList.popup {
519
- padding: 0;
520
- visibility: hidden;
521
- position: absolute;
522
- background: white;
523
- z-index: 4;
524
- box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
525
- transition: all 0.2s ease-out;
526
- top: calc(100% + 4px);
527
- opacity: 0;
528
- border-radius: 2px;
338
+ .ImageGallery .image img {
339
+ border-radius: 4px;
340
+ max-width: 100%;
341
+ min-width: 100%;
529
342
  }
530
343
 
531
- .FilteredList.popup.visible {
532
- opacity: 1;
533
- visibility: visible;
534
- }
535
-
536
- .FilteredList.portal {
537
- transition: opacity 0.2s ease-out;
538
- }
539
-
540
- .FilteredList.inline {
541
- max-height: 225px;
542
- margin-top: 5px;
543
- }
544
-
545
- .FilteredList .child {
546
- display: flex;
547
- flex-flow: row nowrap;
548
- align-items: center;
549
- white-space: nowrap;
550
- font-size: 14px;
551
- color: rgb(34, 34, 34);
552
- height: 30px;
553
- padding: 5px 10px;
554
- padding-right: 15px;
555
- cursor: pointer;
556
- overflow: hidden;
557
- transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
558
- border-left: 5px solid #4AC263;
559
- padding-left: 15px;
560
- margin-left: -5px;
561
- }
562
-
563
- .FilteredList .child.hidden {
564
- height: 0 !important;
565
- padding: 0 !important;
566
- }
567
-
568
- .FilteredList .child.selected {
569
- background-color: #F0F0F0;
570
- padding-left: 10px;
571
- margin-left: 0px;
572
- }
573
-
574
- .FilteredList .child.active {
575
- background-color: rgb(238, 238, 238);
576
- }
577
-
578
- .FilteredList .child {
579
- margin-top: 8px;
580
- }
581
-
582
- .FilteredList .child.hidden {
583
- margin-top: 0;
584
- }
585
-
586
- .FilteredList .child:not(.hidden) ~ .child {
587
- margin-top: 0;
588
- }
589
-
590
- .FilteredList .child:not(.hidden) ~ .child:last-child {
591
- margin-bottom: 8px;
592
- }
593
-
594
- .FilteredList .child:not(.hidden):last-child {
595
- margin-bottom: 8px;
596
- }
597
-
598
- .Modal {
599
- display: block;
600
- position: fixed;
601
- top: 0;
602
- left: 0;
603
- right: 0;
604
- bottom: 100%;
605
- overflow-y: scroll;
606
- transition: bottom 0ms linear;
607
- transition-delay: 0.2s;
608
- }
609
-
610
- .Modal.show {
611
- transition-delay: 0s;
612
- bottom: 0;
613
- }
614
-
615
- .Modal > .overlay {
616
- position: fixed;
617
- top: 0;
618
- bottom: 100%;
619
- left: 0;
620
- right: 0;
621
- transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
622
- opacity: 0;
623
- background-color: black;
624
- pointer-events: none;
625
- }
626
-
627
- .Modal > .overlay.show {
628
- opacity: 0.5;
629
- bottom: 0;
630
- }
631
-
632
- .Modal > .content {
633
- left: 50%;
634
- top: 10vh;
635
- margin-bottom: 10vh;
636
- font-size: 16px;
637
- padding: 0;
638
- opacity: 0;
639
- transition: opacity 0.25s ease, transform 0.25s ease;
640
- transform: scaleY(0) translateY(-200px) translateX(-50%);
641
- transform-origin: top;
642
- position: absolute;
643
- border-radius: 2px;
644
- box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.3);
645
- }
646
-
647
- .Modal > .content.show {
648
- opacity: 1;
649
- transform: scaleY(1) translateY(0px) translateX(-50%);
650
- }
651
-
652
- .Modal > .content > .Scrollable {
653
- overflow: visible;
654
- max-height: 80vh;
655
- }
656
-
657
- .Modal > .content > .Scrollable > .viewport {
658
- min-width: 10px;
659
- min-height: 10px;
660
- }
661
-
662
- .Modal > .content > .Button.close {
663
- top: 10px;
664
- right: 10px;
665
- position: absolute;
666
- }
667
-
668
- .ImageGallery {
669
- position: fixed;
670
- top: 0;
671
- left: 0;
672
- bottom: 0;
673
- right: 0;
674
- z-index: 1000;
675
- background-color: rgba(0, 0, 0, 0.01);
676
- user-select: none;
677
- }
678
-
679
- .ImageGallery:focus {
680
- outline-width: 0px;
681
- }
682
-
683
- .ImageGallery.animated {
684
- transition: background-color 0.25s ease;
685
- opacity: 1;
686
- }
687
-
688
- .ImageGallery.mounting, .ImageGallery.mounted {
689
- background-color: rgba(0, 0, 0, 0.8);
690
- }
691
-
692
- .ImageGallery .image {
693
- position: absolute;
694
- cursor: grab;
695
- }
696
-
697
- .ImageGallery .image .counter {
698
- display: none;
699
- }
700
-
701
- .ImageGallery .image img {
702
- border-radius: 4px;
703
- max-width: 100%;
704
- min-width: 100%;
705
- }
706
-
707
- .ImageGallery .image.animated {
708
- transition: top 0.25s ease, left 0.25s ease, width 0.25s ease, height 0.25s ease, opacity 0.25s ease;
709
- will-change: top, left, width, height, opacity;
710
- }
711
-
712
- .ImageGallery .image.animated.mounting, .ImageGallery .image.animated.mounted, .ImageGallery .image.animated.unmounting {
344
+ .ImageGallery .image.animated {
345
+ transition: top 0.25s ease, left 0.25s ease, width 0.25s ease, height 0.25s ease, opacity 0.25s ease;
346
+ will-change: top, left, width, height, opacity;
347
+ }
348
+
349
+ .ImageGallery .image.animated.mounting, .ImageGallery .image.animated.mounted, .ImageGallery .image.animated.unmounting {
713
350
  opacity: 1;
714
351
  }
715
352
 
@@ -900,497 +537,311 @@
900
537
  font-size: 24px;
901
538
  }
902
539
 
903
- .FormUploadProgress {
904
- position: absolute;
905
- left: 0;
906
- right: 0;
907
- top: 0;
908
- bottom: 0;
909
- background-color: rgba(255, 255, 255, 0.6);
910
- z-index: 2;
540
+ .DNDContainer .DroppableList .Draggable {
541
+ transform: unset;
542
+ transition: unset;
543
+ opacity: 1;
911
544
  }
912
545
 
913
- .FormUploadProgress.animated.mounting, .FormUploadProgress.animated.mounted {
914
- transition-delay: 500ms;
546
+ .DNDContainer .DroppableList .Draggable.dragged {
547
+ transition: unset !important;
915
548
  }
916
549
 
917
- .FormUploadProgress .wrapper {
918
- position: sticky;
919
- top: 40%;
920
- margin-top: 40%;
921
- margin-left: 50%;
922
- transform: translateX(-50%);
923
- display: flex;
924
- flex-flow: column;
925
- justify-content: center;
926
- align-items: center;
550
+ .DNDContainer .DroppableList.hover .Draggable {
551
+ transition: transform 0.2s ease-in;
927
552
  }
928
553
 
929
- .FormUploadProgress .wrapper .CircleProgress, .FormUploadProgress .wrapper .SpinningProgress {
930
- position: absolute;
931
- width: 107px;
932
- height: 107px;
933
- top: 0;
934
- left: 0;
554
+ .DNDContainer .DroppableList.resetting .Draggable {
555
+ transition: transform 0.1s ease-in;
935
556
  }
936
557
 
937
- .FormUploadProgress .wrapper .CircleProgress .line, .FormUploadProgress .wrapper .SpinningProgress .line {
938
- stroke: #2196F3;
558
+ .CalendarMonthView {
559
+ display: flex;
560
+ flex-flow: column nowrap;
561
+ height: 100%;
939
562
  }
940
563
 
941
- .FormUploadProgress .wrapper > .progress {
942
- width: 107px;
943
- height: 107px;
944
- min-height: 107px;
564
+ .CalendarMonthView > .row {
945
565
  display: flex;
946
- justify-content: center;
947
- align-items: center;
948
- box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
949
- border-radius: 50%;
950
- background: white;
566
+ flex-flow: row nowrap;
567
+ }
568
+
569
+ .CalendarMonthView .days {
570
+ flex-grow: 1;
951
571
  position: relative;
952
572
  }
953
573
 
954
- .FormUploadProgress .wrapper > .progress > .value {
955
- display: inline-block;
956
- margin-top: 5px;
957
- font-weight: bold;
958
- line-height: 16px;
959
- font-size: 13px;
960
- text-align: center;
961
- color: #818181;
574
+ .CalendarMonthView .day, .CalendarMonthView .header {
575
+ flex-grow: 1;
576
+ flex-basis: 1px;
962
577
  }
963
578
 
964
- .FormUploadProgress .wrapper .cancel {
965
- min-width: 107px;
966
- margin-top: 20px;
967
- background-color: white;
968
- color: #F96B5C;
969
- box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
579
+ .CalendarMonthView .day {
580
+ height: 100%;
970
581
  }
971
582
 
972
- .Scrollable {
973
- max-height: 250px;
974
- max-width: 250px;
975
- padding-right: 5px;
583
+ .Button {
976
584
  position: relative;
977
- display: flex;
978
- flex-flow: column;
979
- align-items: stretch;
585
+ min-width: 64px;
586
+ min-height: 36px;
587
+ height: 24px;
588
+ margin: 0px;
589
+ padding: 0px 16px;
590
+ border: none;
591
+ outline: none;
592
+ font-size: 14px;
593
+ font-weight: 500;
594
+ letter-spacing: 1.25px;
595
+ background: #dfdfdf;
596
+ text-transform: uppercase;
597
+ font-family: Roboto, sans-serif;
598
+ -webkit-tap-highlight-color: transparent;
599
+ display: inline-flex;
600
+ justify-content: center;
601
+ align-items: center;
602
+ cursor: pointer;
980
603
  overflow: hidden;
604
+ user-select: none;
605
+ border-radius: 3px;
606
+ transition: all 0.2s ease;
981
607
  }
982
608
 
983
- .Scrollable:hover > .scrollbar.auto {
984
- transition-delay: 0s;
985
- opacity: 1;
609
+ .Button.flat {
610
+ background-color: transparent;
986
611
  }
987
612
 
988
- .Scrollable .viewport {
989
- overflow-y: scroll;
990
- overflow-x: scroll;
991
- max-height: 100%;
992
- scroll-behavior: smooth;
993
- scrollbar-width: none;
613
+ .Button.flat:hover {
614
+ background-color: rgba(0, 0, 0, 0.05);
994
615
  }
995
616
 
996
- .Scrollable .viewport::-webkit-scrollbar {
997
- display: none;
617
+ .Button.green {
618
+ background-color: #43a047;
619
+ color: white;
998
620
  }
999
621
 
1000
- .Scrollable.without-scroll-horizontal {
1001
- max-width: unset;
622
+ .Button.green:hover {
623
+ background-color: #3b8e3f;
1002
624
  }
1003
625
 
1004
- .Scrollable.undefined-horizontal {
1005
- max-width: unset;
626
+ .Button.blue {
627
+ background-color: #039be5;
628
+ color: white;
1006
629
  }
1007
630
 
1008
- .Scrollable.without-scroll {
1009
- padding-right: 0;
1010
- max-height: unset;
631
+ .Button.blue:hover {
632
+ background-color: #038acc;
1011
633
  }
1012
634
 
1013
- .Scrollable.without-scroll > .viewport {
1014
- padding-right: 0;
1015
- margin-right: 0;
635
+ .Button.red {
636
+ background-color: #e53935;
637
+ color: white;
1016
638
  }
1017
639
 
1018
- .Scrollable.without-scroll > .scrollbar {
1019
- visibility: hidden;
640
+ .Button.red:hover {
641
+ background-color: #e2231e;
1020
642
  }
1021
643
 
1022
- .Scrollable .scrollbar {
1023
- position: absolute;
1024
- right: 0px;
1025
- top: 0px;
1026
- width: 5px;
1027
- transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1028
- transition-delay: 0.5s;
1029
- z-index: 1;
644
+ .Button.black {
645
+ background-color: #1e252d;
646
+ color: white;
1030
647
  }
1031
648
 
1032
- .Scrollable .scrollbar.auto, .Scrollable .scrollbar.hidden {
1033
- opacity: 0;
649
+ .Button.black:hover {
650
+ background-color: #14181e;
1034
651
  }
1035
652
 
1036
- .Scrollable .scrollbar .thumb {
1037
- background-color: rgba(0, 0, 0, 0.3);
1038
- width: 5px;
1039
- position: absolute;
1040
- right: 0px;
1041
- top: 0px;
1042
- user-select: none;
1043
- will-change: top;
1044
- border-radius: 2px;
653
+ .Button.gray {
654
+ background: #D9D9D9;
655
+ color: #999999;
1045
656
  }
1046
657
 
1047
- .Scrollable .scrollbar .thumb:hover {
1048
- background-color: rgba(0, 0, 0, 0.5);
658
+ .Button.gray:hover {
659
+ background-color: #cccccc;
1049
660
  }
1050
661
 
1051
- .Scrollable .scrollbar .thumb:active {
1052
- background-color: rgba(0, 0, 0, 0.7);
662
+ .Button.small {
663
+ padding: 0px 8px;
664
+ min-height: 16px;
665
+ min-width: 16px;
1053
666
  }
1054
667
 
1055
- .Scrollable .scrollbar.horizontal {
1056
- left: 0px;
1057
- right: 0px;
1058
- height: 5px;
1059
- bottom: 0;
1060
- width: unset;
1061
- top: unset;
668
+ .Button > .material-icons {
669
+ margin-right: 10px;
1062
670
  }
1063
671
 
1064
- .Scrollable .scrollbar.horizontal .thumb {
1065
- height: 5px;
1066
- left: 0px;
1067
- bottom: 0px;
1068
- will-change: left;
672
+ .Button.round {
673
+ padding: 0px;
674
+ min-width: 36px;
675
+ border-radius: 50%;
1069
676
  }
1070
677
 
1071
- .TextField {
1072
- position: relative;
1073
- width: 100%;
678
+ .Button.round > .material-icons {
679
+ margin: 0px;
1074
680
  }
1075
681
 
1076
- .TextField > label {
1077
- font-family: Roboto, sans-serif;
1078
- color: rgba(0, 0, 0, 0.3);
1079
- font-size: 16px;
682
+ .Button .ripple {
1080
683
  position: absolute;
1081
- left: 0px;
1082
- top: 16px;
1083
- margin-top: -16px;
1084
- transition: all 0.2s ease;
1085
- user-select: none;
1086
- cursor: text;
684
+ background: rgba(0, 0, 0, 0.1);
685
+ border-radius: 100%;
686
+ transform: scale(0);
687
+ pointer-events: none;
688
+ transition: opacity 0.2s ease-out;
1087
689
  }
1088
690
 
1089
- .TextField > input {
1090
- font-family: Roboto, sans-serif;
1091
- color: #1e252d;
1092
- height: 19px;
1093
- font-size: 16px;
1094
- width: 100%;
1095
- border: 0px;
1096
- padding-bottom: 4px;
1097
- padding-top: 0;
1098
- outline-color: rgba(0, 0, 0, 0);
691
+ .Button .ripple.show {
692
+ animation: ripple 0.35s ease-out;
1099
693
  }
1100
694
 
1101
- .TextField > input:focus {
1102
- outline: none;
695
+ .Button:active .ripple.showed {
696
+ opacity: 1;
1103
697
  }
1104
698
 
1105
- .TextField > input:disabled {
1106
- color: gray;
1107
- background-color: white;
699
+ .Button:focus .ripple.focused {
700
+ opacity: 1;
701
+ transition: opacity 0.2s ease-out, transform 0.2s ease-out;
702
+ transform: scale(1);
703
+ animation: resize 1.25s ease-out infinite;
704
+ animation-delay: 0.2s;
705
+ animation-direction: alternate;
1108
706
  }
1109
707
 
1110
- .TextField > input:disabled + .border {
1111
- height: 0px;
1112
- border-bottom: 2px dotted rgb(224, 224, 224);
708
+ .Button .ripple.showed {
709
+ transform: scale(2);
710
+ opacity: 0;
1113
711
  }
1114
712
 
1115
- .TextField > input::placeholder {
1116
- font-family: Roboto, sans-serif;
1117
- color: rgba(0, 0, 0, 0.3);
1118
- opacity: 1;
713
+ @keyframes ripple {
714
+ to {
715
+ transform: scale(2);
716
+ }
1119
717
  }
1120
-
1121
- .TextField > .border {
1122
- border-bottom: 1px solid rgb(224, 224, 224);
1123
- height: 1px;
1124
- position: relative;
718
+ @keyframes resize {
719
+ to {
720
+ transform: scale(0.9);
721
+ }
1125
722
  }
1126
-
1127
- .TextField > .border .line {
1128
- left: 50%;
1129
- width: 0;
1130
- height: 2px;
1131
- min-height: 2px;
1132
- background-color: rgb(0, 188, 212);
1133
- transition: all 0.2s ease;
1134
- position: absolute;
723
+ .Button.raised {
724
+ transition: color 0.2s ease-out, background-color 0.2s ease-out, box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
1135
725
  }
1136
726
 
1137
- .TextField > .error {
1138
- text-align: left;
1139
- font-size: 10px;
1140
- min-height: 0;
1141
- line-height: 14px;
1142
- color: rgb(244, 67, 54);
1143
- visibility: hidden;
1144
- opacity: 0;
1145
- transition: all 0.2s ease;
727
+ .Button.raised:hover {
728
+ box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.25);
1146
729
  }
1147
730
 
1148
- .TextField.focused > label, .TextField.withValue > label {
1149
- top: 4px;
1150
- font-size: 12px;
1151
- line-height: 14px;
731
+ .Button.raised:active {
732
+ box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.35);
1152
733
  }
1153
734
 
1154
- .TextField.errored > .error {
1155
- visibility: visible;
1156
- opacity: 1;
735
+ .Button.disabled {
736
+ box-shadow: none;
737
+ background: #D9D9D9;
738
+ color: #999999;
1157
739
  }
1158
740
 
1159
- .TextField.errored > .border {
1160
- border-bottom-color: rgb(244, 67, 54);
741
+ .Button.disabled:hover {
742
+ background-color: #cccccc;
1161
743
  }
1162
744
 
1163
- .TextField.errored > label {
1164
- color: rgb(244, 67, 54);
745
+ .Button::-moz-focus-inner {
746
+ border: 0;
1165
747
  }
1166
748
 
1167
- .TextField.focused > label {
1168
- color: rgb(0, 188, 212);
749
+ .CircleProgress {
750
+ width: 48px;
751
+ height: 48px;
1169
752
  }
1170
753
 
1171
- .TextField.focused > .border .line {
1172
- left: 0;
1173
- width: 100%;
754
+ .CircleProgress .line {
755
+ stroke-width: 2px;
756
+ stroke: black;
757
+ stroke-linecap: square;
758
+ fill: none;
759
+ transition: stroke-dashoffset 0.2s ease;
1174
760
  }
1175
761
 
1176
- .TextField.disabled label, .TextField.disabled input {
1177
- cursor: not-allowed;
762
+ .FilteredList {
763
+ max-height: 250px;
764
+ position: relative;
1178
765
  }
1179
766
 
1180
- .TextField.withLabel {
1181
- margin-top: 15px;
1182
- }
1183
-
1184
- .TextField input::-webkit-contacts-auto-fill-button {
767
+ .FilteredList.popup {
768
+ padding: 0;
1185
769
  visibility: hidden;
1186
- display: none !important;
1187
- pointer-events: none;
1188
- position: absolute;
1189
- right: 0;
1190
- }
1191
-
1192
- .TextField input:-webkit-autofill {
1193
- -webkit-box-shadow: inset 0 0 0px 9999px white;
1194
- }
1195
-
1196
- @keyframes shake {
1197
- 0%, 100% {
1198
- transform: translateX(0);
1199
- }
1200
- 20%, 60% {
1201
- transform: translateX(-5px);
1202
- }
1203
- 40%, 80% {
1204
- transform: translateX(5px);
1205
- }
1206
- }
1207
- .TextField .shake {
1208
- animation-duration: 0.5s;
1209
- animation-fill-mode: both;
1210
- animation-timing-function: ease-in-out;
1211
- animation-name: shake;
1212
- }
1213
-
1214
- .DNDContainer .DroppableList .Draggable {
1215
- transform: unset;
1216
- transition: unset;
1217
- opacity: 1;
1218
- }
1219
-
1220
- .DNDContainer .DroppableList .Draggable.dragged {
1221
- transition: unset !important;
1222
- }
1223
-
1224
- .DNDContainer .DroppableList.hover .Draggable {
1225
- transition: transform 0.2s ease-in;
1226
- }
1227
-
1228
- .DNDContainer .DroppableList.resetting .Draggable {
1229
- transition: transform 0.1s ease-in;
1230
- }
1231
-
1232
- .CircleProgress {
1233
- width: 48px;
1234
- height: 48px;
1235
- }
1236
-
1237
- .CircleProgress .line {
1238
- stroke-width: 2px;
1239
- stroke: black;
1240
- stroke-linecap: square;
1241
- fill: none;
1242
- transition: stroke-dashoffset 0.2s ease;
1243
- }
1244
-
1245
- .Checkbox {
1246
- position: relative;
1247
- white-space: pre;
1248
- }
1249
-
1250
- .Checkbox *, .Checkbox *:before, .Checkbox *:after {
1251
- box-sizing: border-box;
1252
- }
1253
-
1254
- .Checkbox label {
1255
- font-family: Roboto, sans-serif;
1256
- font-size: 14px;
1257
- color: #1e252d;
1258
- cursor: pointer;
1259
- }
1260
-
1261
- .Checkbox label:before, .Checkbox label:after {
1262
- content: "";
1263
770
  position: absolute;
1264
- left: 0;
1265
- top: 0;
1266
- }
1267
-
1268
- .Checkbox label:before {
1269
- width: 20px;
1270
- height: 20px;
1271
- background: #fff;
1272
- border: 2px solid #252525;
771
+ background: white;
772
+ z-index: 4;
773
+ box-shadow: 0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12);
774
+ transition: all 0.2s ease-out;
775
+ top: calc(100% + 4px);
776
+ opacity: 0;
1273
777
  border-radius: 2px;
1274
- cursor: pointer;
1275
- transition: background 0.3s;
1276
- }
1277
-
1278
- .Checkbox input[type=checkbox] {
1279
- outline: 0;
1280
- margin-right: 10px;
1281
- visibility: hidden;
1282
- }
1283
-
1284
- .Checkbox input[type=checkbox]:checked + label:before {
1285
- background: #4AC263;
1286
- border: none;
1287
778
  }
1288
779
 
1289
- .Checkbox input[type=checkbox]:checked + label:after {
1290
- transform: rotate(-45deg);
1291
- top: 6px;
1292
- left: 4px;
1293
- width: 12px;
1294
- height: 6px;
1295
- border: 2px solid #fff;
1296
- border-top-style: none;
1297
- border-right-style: none;
1298
- }
1299
-
1300
- .Checkbox input[type=checkbox]:disabled + label {
1301
- color: gray;
1302
- }
1303
-
1304
- .Checkbox input[type=checkbox]:disabled + label:before {
1305
- border-color: rgba(0, 0, 0, 0.26);
780
+ .FilteredList.popup.visible {
781
+ opacity: 1;
782
+ visibility: visible;
1306
783
  }
1307
784
 
1308
- .Checkbox input[type=checkbox]:disabled:checked + label:before {
1309
- background: rgba(0, 0, 0, 0.26);
785
+ .FilteredList.portal {
786
+ transition: opacity 0.2s ease-out;
1310
787
  }
1311
788
 
1312
- .CalendarMonthView {
1313
- display: flex;
1314
- flex-flow: column nowrap;
1315
- height: 100%;
789
+ .FilteredList.inline {
790
+ max-height: 225px;
791
+ margin-top: 5px;
1316
792
  }
1317
793
 
1318
- .CalendarMonthView > .row {
794
+ .FilteredList .child {
1319
795
  display: flex;
1320
796
  flex-flow: row nowrap;
797
+ align-items: center;
798
+ white-space: nowrap;
799
+ font-size: 14px;
800
+ color: rgb(34, 34, 34);
801
+ height: 30px;
802
+ padding: 5px 10px;
803
+ padding-right: 15px;
804
+ cursor: pointer;
805
+ overflow: hidden;
806
+ transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
807
+ border-left: 5px solid #4AC263;
808
+ padding-left: 15px;
809
+ margin-left: -5px;
1321
810
  }
1322
811
 
1323
- .CalendarMonthView .days {
1324
- flex-grow: 1;
1325
- position: relative;
1326
- }
1327
-
1328
- .CalendarMonthView .day, .CalendarMonthView .header {
1329
- flex-grow: 1;
1330
- flex-basis: 1px;
1331
- }
1332
-
1333
- .CalendarMonthView .day {
1334
- height: 100%;
1335
- }
1336
-
1337
- .DNDContainer {
1338
- position: relative;
1339
- }
1340
-
1341
- .DNDContainer .Draggable[draggable=true], .DNDContainer .Draggable [draggable=true] {
1342
- cursor: pointer;
812
+ .FilteredList .child.hidden {
813
+ height: 0 !important;
814
+ padding: 0 !important;
1343
815
  }
1344
816
 
1345
- .DNDContainer .Draggable.placeholder {
1346
- opacity: 0.2;
817
+ .FilteredList .child.selected {
818
+ background-color: #F0F0F0;
819
+ padding-left: 10px;
820
+ margin-left: 0px;
1347
821
  }
1348
822
 
1349
- .DNDContainer .Draggable.copy {
1350
- position: absolute;
1351
- box-sizing: border-box;
1352
- will-change: transform;
1353
- opacity: 0;
823
+ .FilteredList .child.active {
824
+ background-color: rgb(238, 238, 238);
1354
825
  }
1355
826
 
1356
- .DNDContainer .Draggable.dragged {
1357
- z-index: 10;
827
+ .FilteredList .child {
828
+ margin-top: 8px;
1358
829
  }
1359
830
 
1360
- .DNDContainer .overlay {
1361
- position: absolute;
1362
- top: 0;
1363
- left: 0;
1364
- right: 0;
1365
- bottom: 0;
1366
- pointer-events: none;
831
+ .FilteredList .child.hidden {
832
+ margin-top: 0;
1367
833
  }
1368
834
 
1369
- .DropFileInput {
1370
- flex-grow: 1;
835
+ .FilteredList .child:not(.hidden) ~ .child {
836
+ margin-top: 0;
1371
837
  }
1372
838
 
1373
- .DropFileInput .Dropzone {
1374
- border: 1px dashed #808080;
1375
- padding: 12px;
1376
- display: flex;
1377
- flex-flow: row nowrap;
1378
- justify-content: center;
1379
- align-items: center;
1380
- color: gray;
1381
- cursor: pointer;
1382
- border-radius: 3px;
1383
- font-weight: normal;
1384
- line-height: 22px;
1385
- font-size: 14px;
1386
- color: #7E7E7E;
1387
- max-width: 100%;
1388
- word-break: break-all;
1389
- word-break: break-word;
839
+ .FilteredList .child:not(.hidden) ~ .child:last-child {
840
+ margin-bottom: 8px;
1390
841
  }
1391
842
 
1392
- .DropFileInput .Dropzone .icon.withText {
1393
- margin-right: 10px;
843
+ .FilteredList .child:not(.hidden):last-child {
844
+ margin-bottom: 8px;
1394
845
  }
1395
846
 
1396
847
  .DatePicker {
@@ -1510,110 +961,233 @@
1510
961
  background-color: #51adf6;
1511
962
  }
1512
963
 
1513
- .Button.FloatingActionButton {
964
+ .FormUploadProgress {
1514
965
  position: absolute;
1515
- right: 16px;
1516
- bottom: 16px;
1517
- width: 56px;
1518
- height: 56px;
1519
- padding: 16px;
1520
- transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
966
+ left: 0;
967
+ right: 0;
968
+ top: 0;
969
+ bottom: 0;
970
+ background-color: rgba(255, 255, 255, 0.6);
971
+ z-index: 2;
1521
972
  }
1522
973
 
1523
- .Button.FloatingActionButton.raised {
1524
- 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);
974
+ .FormUploadProgress.animated.mounting, .FormUploadProgress.animated.mounted {
975
+ transition-delay: 500ms;
1525
976
  }
1526
977
 
1527
- .Button.FloatingActionButton.mini {
1528
- width: 40px;
1529
- height: 40px;
1530
- padding: 8px;
978
+ .FormUploadProgress .wrapper {
979
+ position: sticky;
980
+ top: 40%;
981
+ margin-top: 40%;
982
+ margin-left: 50%;
983
+ transform: translateX(-50%);
984
+ display: flex;
985
+ flex-flow: column;
986
+ justify-content: center;
987
+ align-items: center;
1531
988
  }
1532
989
 
1533
- .Button.FloatingActionButton.hidden {
1534
- bottom: -100px;
990
+ .FormUploadProgress .wrapper .CircleProgress, .FormUploadProgress .wrapper .SpinningProgress {
991
+ position: absolute;
992
+ width: 107px;
993
+ height: 107px;
994
+ top: 0;
995
+ left: 0;
1535
996
  }
1536
997
 
1537
- .ModalMenu {
1538
- position: absolute;
1539
- top: 10px;
1540
- right: 50px;
998
+ .FormUploadProgress .wrapper .CircleProgress .line, .FormUploadProgress .wrapper .SpinningProgress .line {
999
+ stroke: #2196F3;
1541
1000
  }
1542
1001
 
1543
- .ModalMenu .material-icons {
1002
+ .FormUploadProgress .wrapper > .progress {
1003
+ width: 107px;
1004
+ height: 107px;
1005
+ min-height: 107px;
1006
+ display: flex;
1007
+ justify-content: center;
1008
+ align-items: center;
1009
+ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
1010
+ border-radius: 50%;
1011
+ background: white;
1012
+ position: relative;
1013
+ }
1014
+
1015
+ .FormUploadProgress .wrapper > .progress > .value {
1016
+ display: inline-block;
1017
+ margin-top: 5px;
1018
+ font-weight: bold;
1019
+ line-height: 16px;
1020
+ font-size: 13px;
1021
+ text-align: center;
1544
1022
  color: #818181;
1545
1023
  }
1546
1024
 
1547
- .ModalMenu .Button.animated {
1025
+ .FormUploadProgress .wrapper .cancel {
1026
+ min-width: 107px;
1027
+ margin-top: 20px;
1028
+ background-color: white;
1029
+ color: #F96B5C;
1030
+ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
1031
+ }
1032
+
1033
+ .Checkbox {
1034
+ position: relative;
1035
+ white-space: pre;
1036
+ }
1037
+
1038
+ .Checkbox *, .Checkbox *:before, .Checkbox *:after {
1039
+ box-sizing: border-box;
1040
+ }
1041
+
1042
+ .Checkbox label {
1043
+ font-family: Roboto, sans-serif;
1044
+ font-size: 14px;
1045
+ color: #1e252d;
1046
+ cursor: pointer;
1047
+ }
1048
+
1049
+ .Checkbox label:before, .Checkbox label:after {
1050
+ content: "";
1548
1051
  position: absolute;
1549
- transition: opacity 150ms ease-in, right 200ms ease-in;
1550
- opacity: 0;
1551
- right: 0;
1052
+ left: 0;
1552
1053
  top: 0;
1553
1054
  }
1554
1055
 
1555
- .ModalMenu .Button.animated.mounting, .ModalMenu .Button.animated.mounted {
1556
- opacity: 1;
1056
+ .Checkbox label:before {
1057
+ width: 20px;
1058
+ height: 20px;
1059
+ background: #fff;
1060
+ border: 2px solid #252525;
1061
+ border-radius: 2px;
1062
+ cursor: pointer;
1063
+ transition: background 0.3s;
1557
1064
  }
1558
1065
 
1559
- .ModalMenu .Button.animated.unmounting {
1560
- transition: opacity 100ms ease-out, right 200ms ease-out;
1066
+ .Checkbox input[type=checkbox] {
1067
+ outline: 0;
1068
+ margin-right: 10px;
1069
+ visibility: hidden;
1561
1070
  }
1562
1071
 
1563
- .ModalMenu .Button.active {
1564
- background: #EBEBEB;
1072
+ .Checkbox input[type=checkbox]:checked + label:before {
1073
+ background: #4AC263;
1074
+ border: none;
1565
1075
  }
1566
1076
 
1567
- .ModalMenu .separator {
1568
- height: 24px;
1569
- width: 1px;
1570
- background-color: #D9D9D9;
1571
- margin-left: 4px;
1077
+ .Checkbox input[type=checkbox]:checked + label:after {
1078
+ transform: rotate(-45deg);
1079
+ top: 6px;
1080
+ left: 4px;
1081
+ width: 12px;
1082
+ height: 6px;
1083
+ border: 2px solid #fff;
1084
+ border-top-style: none;
1085
+ border-right-style: none;
1572
1086
  }
1573
1087
 
1574
- .Snackbar {
1575
- transform: translateX(-50%);
1088
+ .Checkbox input[type=checkbox]:disabled + label {
1089
+ color: gray;
1090
+ }
1091
+
1092
+ .Checkbox input[type=checkbox]:disabled + label:before {
1093
+ border-color: rgba(0, 0, 0, 0.26);
1094
+ }
1095
+
1096
+ .Checkbox input[type=checkbox]:disabled:checked + label:before {
1097
+ background: rgba(0, 0, 0, 0.26);
1098
+ }
1099
+
1100
+ .DialogModal {
1576
1101
  overflow: hidden;
1577
- background-color: #323232;
1578
- padding: 14px 24px 14px 24px;
1579
- color: #fff;
1580
- min-width: 288px;
1581
- max-width: 568px;
1582
- position: fixed;
1583
- bottom: -50px;
1584
- left: 50%;
1102
+ }
1103
+
1104
+ .DialogModal .content {
1105
+ top: 20vh;
1106
+ }
1107
+
1108
+ .Dialog {
1109
+ background-color: white;
1110
+ min-width: 460px;
1111
+ max-width: 40vw;
1112
+ padding: 15px;
1113
+ }
1114
+
1115
+ .Dialog .title {
1116
+ margin-bottom: 15px;
1117
+ padding: 20px 50px 0px 30px;
1118
+ font-size: 1.25rem;
1119
+ line-height: 2rem;
1120
+ font-weight: 400;
1121
+ letter-spacing: 0.0125em;
1122
+ }
1123
+
1124
+ .Dialog .description {
1125
+ color: rgba(0, 0, 0, 0.54);
1126
+ font-size: 1rem;
1127
+ line-height: 1.5rem;
1128
+ font-weight: 400;
1129
+ letter-spacing: 0.03125em;
1130
+ margin-top: 20px;
1131
+ padding: 0 24px 24px;
1132
+ }
1133
+
1134
+ .Dialog > div.row {
1135
+ margin-bottom: 15px;
1136
+ }
1137
+
1138
+ .Dialog > div.row:last-child {
1139
+ margin-bottom: 0;
1140
+ }
1141
+
1142
+ .DropFileInput {
1143
+ flex-grow: 1;
1144
+ }
1145
+
1146
+ .DropFileInput .Dropzone {
1147
+ border: 1px dashed #808080;
1148
+ padding: 12px;
1585
1149
  display: flex;
1586
- flex-wrap: nowrap;
1150
+ flex-flow: row nowrap;
1151
+ justify-content: center;
1587
1152
  align-items: center;
1588
- opacity: 0;
1589
- transition: bottom 0.25s ease, opacity 0.2s ease;
1590
- border-radius: 4px;
1591
- box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
1153
+ color: gray;
1154
+ cursor: pointer;
1155
+ border-radius: 3px;
1156
+ font-weight: normal;
1157
+ line-height: 22px;
1158
+ font-size: 14px;
1159
+ color: #7E7E7E;
1160
+ max-width: 100%;
1161
+ word-break: break-all;
1162
+ word-break: break-word;
1592
1163
  }
1593
1164
 
1594
- .Snackbar.shown {
1595
- bottom: 15px;
1596
- opacity: 1;
1165
+ .DropFileInput .Dropzone .icon.withText {
1166
+ margin-right: 10px;
1597
1167
  }
1598
1168
 
1599
- .Snackbar .message {
1600
- overflow: hidden;
1601
- line-height: 1.2em;
1602
- min-height: 1.2em;
1603
- max-height: 2.4em;
1604
- flex: 1;
1169
+ .Button.FloatingActionButton {
1170
+ position: absolute;
1171
+ right: 16px;
1172
+ bottom: 16px;
1173
+ width: 56px;
1174
+ height: 56px;
1175
+ padding: 16px;
1176
+ transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1605
1177
  }
1606
1178
 
1607
- .Snackbar .action {
1608
- text-transform: uppercase;
1609
- font-weight: bold;
1610
- margin-left: 48px;
1611
- color: #bf3727;
1179
+ .Button.FloatingActionButton.raised {
1180
+ 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);
1612
1181
  }
1613
1182
 
1614
- .Snackbar .action a {
1615
- text-decoration: none;
1616
- color: #bf3727;
1183
+ .Button.FloatingActionButton.mini {
1184
+ width: 40px;
1185
+ height: 40px;
1186
+ padding: 8px;
1187
+ }
1188
+
1189
+ .Button.FloatingActionButton.hidden {
1190
+ bottom: -100px;
1617
1191
  }
1618
1192
 
1619
1193
  .Dropzone {
@@ -1653,82 +1227,356 @@
1653
1227
  color: #FFFFFF;
1654
1228
  }
1655
1229
 
1656
- .Dropzone.dragging > .overlay {
1657
- opacity: 0.7;
1658
- visibility: visible;
1659
- transition-delay: 0s;
1230
+ .Dropzone.dragging > .overlay {
1231
+ opacity: 0.7;
1232
+ visibility: visible;
1233
+ transition-delay: 0s;
1234
+ }
1235
+
1236
+ .Dropzone.dragging > * {
1237
+ pointer-events: none;
1238
+ }
1239
+
1240
+ .Dropzone > input.file {
1241
+ position: absolute;
1242
+ left: 0;
1243
+ right: 0;
1244
+ top: 0;
1245
+ bottom: 0;
1246
+ width: 100%;
1247
+ height: 100%;
1248
+ opacity: 0;
1249
+ cursor: pointer;
1250
+ z-index: 1;
1251
+ }
1252
+
1253
+ .Modal {
1254
+ display: block;
1255
+ position: fixed;
1256
+ top: 0;
1257
+ left: 0;
1258
+ right: 0;
1259
+ bottom: 100%;
1260
+ overflow-y: scroll;
1261
+ transition: bottom 0ms linear;
1262
+ transition-delay: 0.2s;
1263
+ }
1264
+
1265
+ .Modal.show {
1266
+ transition-delay: 0s;
1267
+ bottom: 0;
1268
+ }
1269
+
1270
+ .Modal > .overlay {
1271
+ position: fixed;
1272
+ top: 0;
1273
+ bottom: 100%;
1274
+ left: 0;
1275
+ right: 0;
1276
+ transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1277
+ opacity: 0;
1278
+ background-color: black;
1279
+ pointer-events: none;
1280
+ }
1281
+
1282
+ .Modal > .overlay.show {
1283
+ opacity: 0.5;
1284
+ bottom: 0;
1285
+ }
1286
+
1287
+ .Modal > .content {
1288
+ left: 50%;
1289
+ top: 10vh;
1290
+ margin-bottom: 10vh;
1291
+ font-size: 16px;
1292
+ padding: 0;
1293
+ opacity: 0;
1294
+ transition: opacity 0.25s ease, transform 0.25s ease;
1295
+ transform: scaleY(0) translateY(-200px) translateX(-50%);
1296
+ transform-origin: top;
1297
+ position: absolute;
1298
+ border-radius: 2px;
1299
+ box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.3);
1300
+ }
1301
+
1302
+ .Modal > .content.show {
1303
+ opacity: 1;
1304
+ transform: scaleY(1) translateY(0px) translateX(-50%);
1305
+ }
1306
+
1307
+ .Modal > .content > .Scrollable {
1308
+ overflow: visible;
1309
+ max-height: 80vh;
1310
+ }
1311
+
1312
+ .Modal > .content > .Scrollable > .viewport {
1313
+ min-width: 10px;
1314
+ min-height: 10px;
1315
+ }
1316
+
1317
+ .Modal > .content > .Button.close {
1318
+ top: 10px;
1319
+ right: 10px;
1320
+ position: absolute;
1321
+ }
1322
+
1323
+ .DNDContainer {
1324
+ position: relative;
1325
+ }
1326
+
1327
+ .DNDContainer .Draggable[draggable=true], .DNDContainer .Draggable [draggable=true] {
1328
+ cursor: pointer;
1329
+ }
1330
+
1331
+ .DNDContainer .Draggable.placeholder {
1332
+ opacity: 0.2;
1333
+ }
1334
+
1335
+ .DNDContainer .Draggable.copy {
1336
+ position: absolute;
1337
+ box-sizing: border-box;
1338
+ will-change: transform;
1339
+ opacity: 0;
1340
+ }
1341
+
1342
+ .DNDContainer .Draggable.dragged {
1343
+ z-index: 10;
1344
+ }
1345
+
1346
+ .DNDContainer .overlay {
1347
+ position: absolute;
1348
+ top: 0;
1349
+ left: 0;
1350
+ right: 0;
1351
+ bottom: 0;
1352
+ pointer-events: none;
1353
+ }
1354
+
1355
+ .TextField {
1356
+ position: relative;
1357
+ width: 100%;
1358
+ }
1359
+
1360
+ .TextField > label {
1361
+ font-family: Roboto, sans-serif;
1362
+ color: rgba(0, 0, 0, 0.3);
1363
+ font-size: 16px;
1364
+ position: absolute;
1365
+ left: 0px;
1366
+ top: 16px;
1367
+ margin-top: -16px;
1368
+ transition: all 0.2s ease;
1369
+ user-select: none;
1370
+ cursor: text;
1371
+ }
1372
+
1373
+ .TextField > input {
1374
+ font-family: Roboto, sans-serif;
1375
+ color: #1e252d;
1376
+ height: 19px;
1377
+ font-size: 16px;
1378
+ width: 100%;
1379
+ border: 0px;
1380
+ padding-bottom: 4px;
1381
+ padding-top: 0;
1382
+ outline-color: rgba(0, 0, 0, 0);
1383
+ }
1384
+
1385
+ .TextField > input:focus {
1386
+ outline: none;
1387
+ }
1388
+
1389
+ .TextField > input:disabled {
1390
+ color: gray;
1391
+ background-color: white;
1392
+ }
1393
+
1394
+ .TextField > input:disabled + .border {
1395
+ height: 0px;
1396
+ border-bottom: 2px dotted rgb(224, 224, 224);
1397
+ }
1398
+
1399
+ .TextField > input::placeholder {
1400
+ font-family: Roboto, sans-serif;
1401
+ color: rgba(0, 0, 0, 0.3);
1402
+ opacity: 1;
1403
+ }
1404
+
1405
+ .TextField > .border {
1406
+ border-bottom: 1px solid rgb(224, 224, 224);
1407
+ height: 1px;
1408
+ position: relative;
1409
+ }
1410
+
1411
+ .TextField > .border .line {
1412
+ left: 50%;
1413
+ width: 0;
1414
+ height: 2px;
1415
+ min-height: 2px;
1416
+ background-color: rgb(0, 188, 212);
1417
+ transition: all 0.2s ease;
1418
+ position: absolute;
1419
+ }
1420
+
1421
+ .TextField > .error {
1422
+ text-align: left;
1423
+ font-size: 10px;
1424
+ min-height: 0;
1425
+ line-height: 14px;
1426
+ color: rgb(244, 67, 54);
1427
+ visibility: hidden;
1428
+ opacity: 0;
1429
+ transition: all 0.2s ease;
1430
+ }
1431
+
1432
+ .TextField.focused > label, .TextField.withValue > label {
1433
+ top: 4px;
1434
+ font-size: 12px;
1435
+ line-height: 14px;
1436
+ }
1437
+
1438
+ .TextField.errored > .error {
1439
+ visibility: visible;
1440
+ opacity: 1;
1441
+ }
1442
+
1443
+ .TextField.errored > .border {
1444
+ border-bottom-color: rgb(244, 67, 54);
1445
+ }
1446
+
1447
+ .TextField.errored > label {
1448
+ color: rgb(244, 67, 54);
1449
+ }
1450
+
1451
+ .TextField.focused > label {
1452
+ color: rgb(0, 188, 212);
1453
+ }
1454
+
1455
+ .TextField.focused > .border .line {
1456
+ left: 0;
1457
+ width: 100%;
1458
+ }
1459
+
1460
+ .TextField.disabled label, .TextField.disabled input {
1461
+ cursor: not-allowed;
1462
+ }
1463
+
1464
+ .TextField.withLabel {
1465
+ margin-top: 15px;
1466
+ }
1467
+
1468
+ .TextField input::-webkit-contacts-auto-fill-button {
1469
+ visibility: hidden;
1470
+ display: none !important;
1471
+ pointer-events: none;
1472
+ position: absolute;
1473
+ right: 0;
1474
+ }
1475
+
1476
+ .TextField input:-webkit-autofill {
1477
+ -webkit-box-shadow: inset 0 0 0px 9999px white;
1478
+ }
1479
+
1480
+ @keyframes shake {
1481
+ 0%, 100% {
1482
+ transform: translateX(0);
1483
+ }
1484
+ 20%, 60% {
1485
+ transform: translateX(-5px);
1486
+ }
1487
+ 40%, 80% {
1488
+ transform: translateX(5px);
1489
+ }
1490
+ }
1491
+ .TextField .shake {
1492
+ animation-duration: 0.5s;
1493
+ animation-fill-mode: both;
1494
+ animation-timing-function: ease-in-out;
1495
+ animation-name: shake;
1496
+ }
1497
+
1498
+ .ModalMenu {
1499
+ position: absolute;
1500
+ top: 10px;
1501
+ right: 50px;
1502
+ }
1503
+
1504
+ .ModalMenu .material-icons {
1505
+ color: #818181;
1506
+ }
1507
+
1508
+ .ModalMenu .Button.animated {
1509
+ position: absolute;
1510
+ transition: opacity 150ms ease-in, right 200ms ease-in;
1511
+ opacity: 0;
1512
+ right: 0;
1513
+ top: 0;
1514
+ }
1515
+
1516
+ .ModalMenu .Button.animated.mounting, .ModalMenu .Button.animated.mounted {
1517
+ opacity: 1;
1518
+ }
1519
+
1520
+ .ModalMenu .Button.animated.unmounting {
1521
+ transition: opacity 100ms ease-out, right 200ms ease-out;
1522
+ }
1523
+
1524
+ .ModalMenu .Button.active {
1525
+ background: #EBEBEB;
1660
1526
  }
1661
1527
 
1662
- .Dropzone.dragging > * {
1663
- pointer-events: none;
1528
+ .ModalMenu .separator {
1529
+ height: 24px;
1530
+ width: 1px;
1531
+ background-color: #D9D9D9;
1532
+ margin-left: 4px;
1664
1533
  }
1665
1534
 
1666
- .Dropzone > input.file {
1667
- position: absolute;
1668
- left: 0;
1669
- right: 0;
1670
- top: 0;
1671
- bottom: 0;
1672
- width: 100%;
1673
- height: 100%;
1535
+ .Snackbar {
1536
+ transform: translateX(-50%);
1537
+ overflow: hidden;
1538
+ background-color: #323232;
1539
+ padding: 14px 24px 14px 24px;
1540
+ color: #fff;
1541
+ min-width: 288px;
1542
+ max-width: 568px;
1543
+ position: fixed;
1544
+ bottom: -50px;
1545
+ left: 50%;
1546
+ display: flex;
1547
+ flex-wrap: nowrap;
1548
+ align-items: center;
1674
1549
  opacity: 0;
1675
- cursor: pointer;
1676
- z-index: 1;
1550
+ transition: bottom 0.25s ease, opacity 0.2s ease;
1551
+ border-radius: 4px;
1552
+ box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
1677
1553
  }
1678
1554
 
1679
- .SpinningProgress {
1680
- width: 48px;
1681
- height: 48px;
1682
- position: relative;
1683
- margin: 0 auto;
1555
+ .Snackbar.shown {
1556
+ bottom: 15px;
1557
+ opacity: 1;
1684
1558
  }
1685
1559
 
1686
- .SpinningProgress:before {
1687
- content: "";
1688
- display: block;
1689
- padding-top: 100%;
1560
+ .Snackbar .message {
1561
+ overflow: hidden;
1562
+ line-height: 1.2em;
1563
+ min-height: 1.2em;
1564
+ max-height: 2.4em;
1565
+ flex: 1;
1690
1566
  }
1691
1567
 
1692
- .SpinningProgress .circular {
1693
- animation: rotate 2s linear infinite;
1694
- height: 100%;
1695
- transform-origin: center center;
1696
- width: 100%;
1697
- position: absolute;
1698
- top: 0;
1699
- bottom: 0;
1700
- left: 0;
1701
- right: 0;
1702
- margin: auto;
1568
+ .Snackbar .action {
1569
+ text-transform: uppercase;
1570
+ font-weight: bold;
1571
+ margin-left: 48px;
1572
+ color: #bf3727;
1703
1573
  }
1704
1574
 
1705
- .SpinningProgress .line {
1706
- stroke: black;
1707
- stroke-width: 2px;
1708
- stroke-dasharray: 1, 96;
1709
- stroke-dashoffset: 0;
1710
- animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
1575
+ .Snackbar .action a {
1576
+ text-decoration: none;
1577
+ color: #bf3727;
1711
1578
  }
1712
1579
 
1713
- @keyframes rotate {
1714
- 100% {
1715
- transform: rotate(360deg);
1716
- }
1717
- }
1718
- @keyframes dash {
1719
- 0% {
1720
- stroke-dasharray: 1, 96;
1721
- stroke-dashoffset: 0;
1722
- }
1723
- 50% {
1724
- stroke-dasharray: 43, 96;
1725
- stroke-dashoffset: -17px;
1726
- }
1727
- 100% {
1728
- stroke-dasharray: 43, 96;
1729
- stroke-dashoffset: -53px;
1730
- }
1731
- }
1732
1580
  .ScrollableTable .Scrollable .scrollbar {
1733
1581
  top: 56px;
1734
1582
  }
@@ -1859,6 +1707,59 @@
1859
1707
  margin: 0;
1860
1708
  }
1861
1709
 
1710
+ .SpinningProgress {
1711
+ width: 48px;
1712
+ height: 48px;
1713
+ position: relative;
1714
+ margin: 0 auto;
1715
+ }
1716
+
1717
+ .SpinningProgress:before {
1718
+ content: "";
1719
+ display: block;
1720
+ padding-top: 100%;
1721
+ }
1722
+
1723
+ .SpinningProgress .circular {
1724
+ animation: rotate 2s linear infinite;
1725
+ height: 100%;
1726
+ transform-origin: center center;
1727
+ width: 100%;
1728
+ position: absolute;
1729
+ top: 0;
1730
+ bottom: 0;
1731
+ left: 0;
1732
+ right: 0;
1733
+ margin: auto;
1734
+ }
1735
+
1736
+ .SpinningProgress .line {
1737
+ stroke: black;
1738
+ stroke-width: 2px;
1739
+ stroke-dasharray: 1, 96;
1740
+ stroke-dashoffset: 0;
1741
+ animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
1742
+ }
1743
+
1744
+ @keyframes rotate {
1745
+ 100% {
1746
+ transform: rotate(360deg);
1747
+ }
1748
+ }
1749
+ @keyframes dash {
1750
+ 0% {
1751
+ stroke-dasharray: 1, 96;
1752
+ stroke-dashoffset: 0;
1753
+ }
1754
+ 50% {
1755
+ stroke-dasharray: 43, 96;
1756
+ stroke-dashoffset: -17px;
1757
+ }
1758
+ 100% {
1759
+ stroke-dasharray: 43, 96;
1760
+ stroke-dashoffset: -53px;
1761
+ }
1762
+ }
1862
1763
  .Switch {
1863
1764
  display: inline-flex;
1864
1765
  padding-top: 5px;
@@ -1939,4 +1840,102 @@
1939
1840
 
1940
1841
  .Switch .switch-input:checked + .switch-label .toggle--off {
1941
1842
  display: none;
1843
+ }
1844
+
1845
+ .Scrollable {
1846
+ max-height: 250px;
1847
+ max-width: 250px;
1848
+ padding-right: 5px;
1849
+ position: relative;
1850
+ display: flex;
1851
+ flex-flow: column;
1852
+ align-items: stretch;
1853
+ overflow: hidden;
1854
+ }
1855
+
1856
+ .Scrollable:hover > .scrollbar.auto {
1857
+ transition-delay: 0s;
1858
+ opacity: 1;
1859
+ }
1860
+
1861
+ .Scrollable .viewport {
1862
+ overflow-y: scroll;
1863
+ overflow-x: scroll;
1864
+ max-height: 100%;
1865
+ scrollbar-width: none;
1866
+ }
1867
+
1868
+ .Scrollable .viewport::-webkit-scrollbar {
1869
+ display: none;
1870
+ }
1871
+
1872
+ .Scrollable.without-scroll-horizontal {
1873
+ max-width: unset;
1874
+ }
1875
+
1876
+ .Scrollable.undefined-horizontal {
1877
+ max-width: unset;
1878
+ }
1879
+
1880
+ .Scrollable.without-scroll {
1881
+ padding-right: 0;
1882
+ max-height: unset;
1883
+ }
1884
+
1885
+ .Scrollable.without-scroll > .viewport {
1886
+ padding-right: 0;
1887
+ margin-right: 0;
1888
+ }
1889
+
1890
+ .Scrollable.without-scroll > .scrollbar {
1891
+ visibility: hidden;
1892
+ }
1893
+
1894
+ .Scrollable .scrollbar {
1895
+ position: absolute;
1896
+ right: 0px;
1897
+ top: 0px;
1898
+ width: 5px;
1899
+ transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1900
+ transition-delay: 0.5s;
1901
+ z-index: 1;
1902
+ }
1903
+
1904
+ .Scrollable .scrollbar.auto, .Scrollable .scrollbar.hidden {
1905
+ opacity: 0;
1906
+ }
1907
+
1908
+ .Scrollable .scrollbar .thumb {
1909
+ background-color: rgba(0, 0, 0, 0.3);
1910
+ width: 5px;
1911
+ position: absolute;
1912
+ right: 0px;
1913
+ top: 0px;
1914
+ user-select: none;
1915
+ will-change: top;
1916
+ border-radius: 2px;
1917
+ }
1918
+
1919
+ .Scrollable .scrollbar .thumb:hover {
1920
+ background-color: rgba(0, 0, 0, 0.5);
1921
+ }
1922
+
1923
+ .Scrollable .scrollbar .thumb:active {
1924
+ background-color: rgba(0, 0, 0, 0.7);
1925
+ }
1926
+
1927
+ .Scrollable .scrollbar.horizontal {
1928
+ left: 0px;
1929
+ right: 0px;
1930
+ height: 5px;
1931
+ bottom: 0;
1932
+ width: unset;
1933
+ top: unset;
1934
+ }
1935
+
1936
+ .Scrollable .scrollbar.horizontal .thumb {
1937
+ height: 5px;
1938
+ left: 0px;
1939
+ bottom: 0px;
1940
+ will-change: left;
1942
1941
  }