react-ui-basics 0.0.214 → 0.0.216

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bundle.css CHANGED
@@ -1,178 +1,3 @@
1
- .animated {
2
- transition: opacity 250ms ease;
3
- opacity: 0;
4
- }
5
-
6
- .animated.mounting, .animated.mounted {
7
- opacity: 1;
8
- }
9
-
10
- .Button {
11
- position: relative;
12
- min-width: 64px;
13
- min-height: 36px;
14
- height: 24px;
15
- margin: 0px;
16
- padding: 0px 16px;
17
- border: none;
18
- outline: none;
19
- font-size: 14px;
20
- font-weight: 500;
21
- letter-spacing: 1.25px;
22
- background: #dfdfdf;
23
- text-transform: uppercase;
24
- font-family: Roboto, sans-serif;
25
- -webkit-tap-highlight-color: transparent;
26
- display: inline-flex;
27
- justify-content: center;
28
- align-items: center;
29
- cursor: pointer;
30
- overflow: hidden;
31
- user-select: none;
32
- border-radius: 3px;
33
- transition: all 0.2s ease;
34
- }
35
-
36
- .Button.flat {
37
- background-color: transparent;
38
- }
39
-
40
- .Button.flat:hover {
41
- background-color: rgba(0, 0, 0, 0.05);
42
- }
43
-
44
- .Button.green {
45
- background-color: #43a047;
46
- color: white;
47
- }
48
-
49
- .Button.green:hover {
50
- background-color: #3b8e3f;
51
- }
52
-
53
- .Button.blue {
54
- background-color: #039be5;
55
- color: white;
56
- }
57
-
58
- .Button.blue:hover {
59
- background-color: #038acc;
60
- }
61
-
62
- .Button.red {
63
- background-color: #e53935;
64
- color: white;
65
- }
66
-
67
- .Button.red:hover {
68
- background-color: #e2231e;
69
- }
70
-
71
- .Button.black {
72
- background-color: #1e252d;
73
- color: white;
74
- }
75
-
76
- .Button.black:hover {
77
- background-color: #14181e;
78
- }
79
-
80
- .Button.gray {
81
- background: #D9D9D9;
82
- color: #999999;
83
- }
84
-
85
- .Button.gray:hover {
86
- background-color: #cccccc;
87
- }
88
-
89
- .Button.small {
90
- padding: 0px 8px;
91
- min-height: 16px;
92
- min-width: 16px;
93
- }
94
-
95
- .Button > .material-icons {
96
- margin-right: 10px;
97
- }
98
-
99
- .Button.round {
100
- padding: 0px;
101
- min-width: 36px;
102
- border-radius: 50%;
103
- }
104
-
105
- .Button.round > .material-icons {
106
- margin: 0px;
107
- }
108
-
109
- .Button .ripple {
110
- position: absolute;
111
- background: rgba(0, 0, 0, 0.1);
112
- border-radius: 100%;
113
- transform: scale(0);
114
- pointer-events: none;
115
- transition: opacity 0.2s ease-out;
116
- }
117
-
118
- .Button .ripple.show {
119
- animation: ripple 0.35s ease-out;
120
- }
121
-
122
- .Button:active .ripple.showed {
123
- opacity: 1;
124
- }
125
-
126
- .Button:focus .ripple.focused {
127
- opacity: 1;
128
- transition: opacity 0.2s ease-out, transform 0.2s ease-out;
129
- transform: scale(1);
130
- animation: resize 1.25s ease-out infinite;
131
- animation-delay: 0.2s;
132
- animation-direction: alternate;
133
- }
134
-
135
- .Button .ripple.showed {
136
- transform: scale(2);
137
- opacity: 0;
138
- }
139
-
140
- @keyframes ripple {
141
- to {
142
- transform: scale(2);
143
- }
144
- }
145
- @keyframes resize {
146
- to {
147
- transform: scale(0.9);
148
- }
149
- }
150
- .Button.raised {
151
- transition: color 0.2s ease-out, background-color 0.2s ease-out, box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
152
- }
153
-
154
- .Button.raised:hover {
155
- box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.25);
156
- }
157
-
158
- .Button.raised:active {
159
- box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.35);
160
- }
161
-
162
- .Button.disabled {
163
- box-shadow: none;
164
- background: #D9D9D9;
165
- color: #999999;
166
- }
167
-
168
- .Button.disabled:hover {
169
- background-color: #cccccc;
170
- }
171
-
172
- .Button::-moz-focus-inner {
173
- border: 0;
174
- }
175
-
176
1
  .AutocompleteSelect {
177
2
  display: inline-flex;
178
3
  flex-flow: column;
@@ -468,366 +293,449 @@
468
293
  position: absolute;
469
294
  }
470
295
 
471
- .FilteredList {
472
- max-height: 250px;
296
+ .Button {
473
297
  position: relative;
298
+ min-width: 64px;
299
+ min-height: 36px;
300
+ height: 24px;
301
+ margin: 0px;
302
+ padding: 0px 16px;
303
+ border: none;
304
+ outline: none;
305
+ font-size: 14px;
306
+ font-weight: 500;
307
+ letter-spacing: 1.25px;
308
+ background: #dfdfdf;
309
+ text-transform: uppercase;
310
+ font-family: Roboto, sans-serif;
311
+ -webkit-tap-highlight-color: transparent;
312
+ display: inline-flex;
313
+ justify-content: center;
314
+ align-items: center;
315
+ cursor: pointer;
316
+ overflow: hidden;
317
+ user-select: none;
318
+ border-radius: 3px;
319
+ transition: all 0.2s ease;
474
320
  }
475
321
 
476
- .FilteredList.popup {
477
- padding: 0;
478
- visibility: hidden;
479
- position: absolute;
480
- background: white;
481
- z-index: 4;
482
- 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);
483
- transition: all 0.2s ease-out;
484
- top: calc(100% + 4px);
485
- opacity: 0;
486
- border-radius: 2px;
322
+ .Button.flat {
323
+ background-color: transparent;
487
324
  }
488
325
 
489
- .FilteredList.popup.visible {
490
- opacity: 1;
491
- visibility: visible;
326
+ .Button.flat:hover {
327
+ background-color: rgba(0, 0, 0, 0.05);
492
328
  }
493
329
 
494
- .FilteredList.portal {
495
- transition: opacity 0.2s ease-out;
330
+ .Button.green {
331
+ background-color: #43a047;
332
+ color: white;
496
333
  }
497
334
 
498
- .FilteredList.inline {
499
- max-height: 225px;
500
- margin-top: 5px;
335
+ .Button.green:hover {
336
+ background-color: #3b8e3f;
501
337
  }
502
338
 
503
- .FilteredList .child {
504
- display: flex;
505
- flex-flow: row nowrap;
506
- align-items: center;
507
- white-space: nowrap;
508
- font-size: 14px;
509
- color: rgb(34, 34, 34);
510
- height: 30px;
511
- padding: 5px 10px;
512
- padding-right: 15px;
513
- cursor: pointer;
514
- overflow: hidden;
515
- transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
516
- border-left: 5px solid #4AC263;
517
- padding-left: 15px;
518
- margin-left: -5px;
339
+ .Button.blue {
340
+ background-color: #039be5;
341
+ color: white;
519
342
  }
520
343
 
521
- .FilteredList .child.hidden {
522
- height: 0 !important;
523
- padding: 0 !important;
344
+ .Button.blue:hover {
345
+ background-color: #038acc;
524
346
  }
525
347
 
526
- .FilteredList .child.selected {
527
- background-color: #F0F0F0;
528
- padding-left: 10px;
529
- margin-left: 0px;
348
+ .Button.red {
349
+ background-color: #e53935;
350
+ color: white;
530
351
  }
531
352
 
532
- .FilteredList .child.active {
533
- background-color: rgb(238, 238, 238);
353
+ .Button.red:hover {
354
+ background-color: #e2231e;
534
355
  }
535
356
 
536
- .FilteredList .child {
537
- margin-top: 8px;
357
+ .Button.black {
358
+ background-color: #1e252d;
359
+ color: white;
538
360
  }
539
361
 
540
- .FilteredList .child.hidden {
541
- margin-top: 0;
362
+ .Button.black:hover {
363
+ background-color: #14181e;
542
364
  }
543
365
 
544
- .FilteredList .child:not(.hidden) ~ .child {
545
- margin-top: 0;
366
+ .Button.gray {
367
+ background: #D9D9D9;
368
+ color: #999999;
546
369
  }
547
370
 
548
- .FilteredList .child:not(.hidden) ~ .child:last-child {
549
- margin-bottom: 8px;
371
+ .Button.gray:hover {
372
+ background-color: #cccccc;
550
373
  }
551
374
 
552
- .FilteredList .child:not(.hidden):last-child {
553
- margin-bottom: 8px;
375
+ .Button.small {
376
+ padding: 0px 8px;
377
+ min-height: 16px;
378
+ min-width: 16px;
554
379
  }
555
380
 
556
- .DialogModal {
557
- overflow: hidden;
381
+ .Button > .material-icons {
382
+ margin-right: 10px;
558
383
  }
559
384
 
560
- .DialogModal .content {
561
- top: 20vh;
385
+ .Button.round {
386
+ padding: 0px;
387
+ min-width: 36px;
388
+ border-radius: 50%;
562
389
  }
563
390
 
564
- .Dialog {
565
- background-color: white;
566
- min-width: 460px;
567
- max-width: 40vw;
568
- padding: 15px;
391
+ .Button.round > .material-icons {
392
+ margin: 0px;
569
393
  }
570
394
 
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;
395
+ .Button .ripple {
396
+ position: absolute;
397
+ background: rgba(0, 0, 0, 0.1);
398
+ border-radius: 100%;
399
+ transform: scale(0);
400
+ pointer-events: none;
401
+ transition: opacity 0.2s ease-out;
578
402
  }
579
403
 
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;
404
+ .Button .ripple.show {
405
+ animation: ripple 0.35s ease-out;
588
406
  }
589
407
 
590
- .Dialog > div.row {
591
- margin-bottom: 15px;
408
+ .Button:active .ripple.showed {
409
+ opacity: 1;
592
410
  }
593
411
 
594
- .Dialog > div.row:last-child {
595
- margin-bottom: 0;
412
+ .Button:focus .ripple.focused {
413
+ opacity: 1;
414
+ transition: opacity 0.2s ease-out, transform 0.2s ease-out;
415
+ transform: scale(1);
416
+ animation: resize 1.25s ease-out infinite;
417
+ animation-delay: 0.2s;
418
+ animation-direction: alternate;
596
419
  }
597
420
 
598
- .ImageGallery {
599
- position: fixed;
600
- top: 0;
601
- left: 0;
602
- bottom: 0;
603
- right: 0;
604
- z-index: 1000;
605
- background-color: rgba(0, 0, 0, 0.01);
606
- user-select: none;
421
+ .Button .ripple.showed {
422
+ transform: scale(2);
423
+ opacity: 0;
607
424
  }
608
425
 
609
- .ImageGallery:focus {
610
- outline-width: 0px;
426
+ @keyframes ripple {
427
+ to {
428
+ transform: scale(2);
429
+ }
430
+ }
431
+ @keyframes resize {
432
+ to {
433
+ transform: scale(0.9);
434
+ }
435
+ }
436
+ .Button.raised {
437
+ transition: color 0.2s ease-out, background-color 0.2s ease-out, box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
611
438
  }
612
439
 
613
- .ImageGallery.animated {
614
- transition: background-color 0.25s ease;
615
- opacity: 1;
440
+ .Button.raised:hover {
441
+ box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.25);
616
442
  }
617
443
 
618
- .ImageGallery.mounting, .ImageGallery.mounted {
619
- background-color: rgba(0, 0, 0, 0.8);
444
+ .Button.raised:active {
445
+ box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.35);
620
446
  }
621
447
 
622
- .ImageGallery .image {
623
- position: absolute;
624
- cursor: grab;
448
+ .Button.disabled {
449
+ box-shadow: none;
450
+ background: #D9D9D9;
451
+ color: #999999;
625
452
  }
626
453
 
627
- .ImageGallery .image .counter {
628
- display: none;
454
+ .Button.disabled:hover {
455
+ background-color: #cccccc;
629
456
  }
630
457
 
631
- .ImageGallery .image img {
632
- border-radius: 4px;
633
- max-width: 100%;
634
- min-width: 100%;
458
+ .Button::-moz-focus-inner {
459
+ border: 0;
635
460
  }
636
461
 
637
- .ImageGallery .image.animated {
638
- transition: top 0.25s ease, left 0.25s ease, width 0.25s ease, height 0.25s ease, opacity 0.25s ease;
639
- will-change: top, left, width, height, opacity;
462
+ .FilteredList {
463
+ max-height: 250px;
464
+ position: relative;
640
465
  }
641
466
 
642
- .ImageGallery .image.animated.mounting, .ImageGallery .image.animated.mounted, .ImageGallery .image.animated.unmounting {
467
+ .FilteredList.popup {
468
+ padding: 0;
469
+ visibility: hidden;
470
+ position: absolute;
471
+ background: white;
472
+ z-index: 4;
473
+ 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);
474
+ transition: all 0.2s ease-out;
475
+ top: calc(100% + 4px);
476
+ opacity: 0;
477
+ border-radius: 2px;
478
+ }
479
+
480
+ .FilteredList.popup.visible {
643
481
  opacity: 1;
482
+ visibility: visible;
644
483
  }
645
484
 
646
- .ImageGallery .image.zoomed {
647
- text-align: center;
648
- overflow: hidden;
485
+ .FilteredList.portal {
486
+ transition: opacity 0.2s ease-out;
649
487
  }
650
488
 
651
- .ImageGallery .image.dragging {
652
- transition: none;
653
- cursor: move;
489
+ .FilteredList.inline {
490
+ max-height: 225px;
491
+ margin-top: 5px;
654
492
  }
655
493
 
656
- .ImageGallery .image .close {
657
- position: absolute;
658
- top: -18px;
659
- right: -18px;
494
+ .FilteredList .child {
495
+ display: flex;
496
+ flex-flow: row nowrap;
497
+ align-items: center;
498
+ white-space: nowrap;
499
+ font-size: 14px;
500
+ color: rgb(34, 34, 34);
501
+ height: 30px;
502
+ padding: 5px 10px;
503
+ padding-right: 15px;
504
+ cursor: pointer;
505
+ overflow: hidden;
506
+ transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
507
+ border-left: 5px solid #4AC263;
508
+ padding-left: 15px;
509
+ margin-left: -5px;
660
510
  }
661
511
 
662
- .ImageGallery .image .spinner {
663
- position: absolute;
664
- top: 0;
665
- bottom: 0;
666
- left: 0;
667
- right: 0;
668
- background: rgba(0, 0, 0, 0.65);
512
+ .FilteredList .child.hidden {
513
+ height: 0 !important;
514
+ padding: 0 !important;
669
515
  }
670
516
 
671
- .ImageGallery .image .spinner .SpinningProgress {
672
- position: absolute;
673
- top: 50%;
674
- left: 50%;
675
- margin-left: -24px;
676
- margin-top: -24px;
517
+ .FilteredList .child.selected {
518
+ background-color: #F0F0F0;
519
+ padding-left: 10px;
520
+ margin-left: 0px;
677
521
  }
678
522
 
679
- .ImageGallery .image .spinner .SpinningProgress .line {
680
- stroke: #2196F3;
523
+ .FilteredList .child.active {
524
+ background-color: rgb(238, 238, 238);
681
525
  }
682
526
 
683
- .ImageGallery .Button.animated {
684
- transition: all 0.25s ease;
685
- opacity: 0;
686
- transform: scale(0);
527
+ .FilteredList .child {
528
+ margin-top: 8px;
687
529
  }
688
530
 
689
- .ImageGallery .Button.animated.mounted, .ImageGallery .Button.animated.mounting {
690
- opacity: 1;
691
- transform: scale(1);
531
+ .FilteredList .child.hidden {
532
+ margin-top: 0;
692
533
  }
693
534
 
694
- .ImageGallery .Button {
695
- color: white;
696
- background: rgba(0, 0, 0, 0.4);
535
+ .FilteredList .child:not(.hidden) ~ .child {
536
+ margin-top: 0;
697
537
  }
698
538
 
699
- .ImageGallery .Button:hover {
700
- background: rgba(0, 0, 0, 0.7);
539
+ .FilteredList .child:not(.hidden) ~ .child:last-child {
540
+ margin-bottom: 8px;
701
541
  }
702
542
 
703
- .ImageGallery > .arrow {
704
- position: absolute;
705
- top: 50%;
706
- height: 76px;
707
- width: 76px;
708
- margin-top: -38px;
543
+ .FilteredList .child:not(.hidden):last-child {
544
+ margin-bottom: 8px;
709
545
  }
710
546
 
711
- .ImageGallery > .arrow.left {
712
- left: 5%;
547
+ .animated {
548
+ transition: opacity 250ms ease;
549
+ opacity: 0;
713
550
  }
714
551
 
715
- .ImageGallery > .arrow.right {
716
- right: 5%;
552
+ .animated.mounting, .animated.mounted {
553
+ opacity: 1;
717
554
  }
718
555
 
719
- .ImageGallery > .arrow .material-icons {
720
- font-size: 40px;
556
+ .TextField {
557
+ position: relative;
558
+ width: 100%;
721
559
  }
722
560
 
723
- .ImageGallery .counter {
561
+ .TextField > label {
562
+ font-family: Roboto, sans-serif;
563
+ color: rgba(0, 0, 0, 0.3);
564
+ font-size: 16px;
724
565
  position: absolute;
725
- top: 10px;
726
- left: 10px;
727
- color: white;
728
- font-size: 13px;
566
+ left: 0px;
567
+ top: 16px;
568
+ margin-top: -16px;
569
+ transition: all 0.2s ease;
570
+ user-select: none;
571
+ cursor: text;
729
572
  }
730
573
 
731
- .ImageGallery .previews {
732
- height: 80px;
733
- position: absolute;
734
- bottom: 15px;
735
- left: 50%;
736
- transform: translateX(-50%);
737
- padding: 0 45px;
574
+ .TextField > input {
575
+ font-family: Roboto, sans-serif;
576
+ color: #1e252d;
577
+ height: 19px;
578
+ font-size: 16px;
579
+ width: 100%;
580
+ border: 0px;
581
+ padding-bottom: 4px;
582
+ padding-top: 0;
583
+ outline-color: rgba(0, 0, 0, 0);
738
584
  }
739
585
 
740
- .ImageGallery .previews .viewport {
741
- overflow: hidden;
742
- position: relative;
743
- height: 100%;
586
+ .TextField > input:focus {
587
+ outline: none;
744
588
  }
745
589
 
746
- .ImageGallery .previews .container {
747
- position: relative;
748
- display: flex;
749
- flex-flow: row nowrap;
750
- height: 100%;
751
- transition: left 0.25s ease;
590
+ .TextField > input:disabled {
591
+ color: gray;
592
+ background-color: white;
752
593
  }
753
594
 
754
- .ImageGallery .previews .preview {
755
- position: relative;
756
- height: 100%;
757
- display: inline-block;
758
- width: 106.66px;
759
- overflow: hidden;
760
- margin-left: 12px;
761
- border-radius: 2px;
762
- cursor: pointer;
763
- box-sizing: border-box;
595
+ .TextField > input:disabled + .border {
596
+ height: 0px;
597
+ border-bottom: 2px dotted rgb(224, 224, 224);
764
598
  }
765
599
 
766
- .ImageGallery .previews .preview:first-child {
767
- margin-left: 0;
600
+ .TextField > input::placeholder {
601
+ font-family: Roboto, sans-serif;
602
+ color: rgba(0, 0, 0, 0.3);
603
+ opacity: 1;
768
604
  }
769
605
 
770
- .ImageGallery .previews .preview > .border {
771
- position: absolute;
772
- bottom: 0;
773
- width: 100%;
774
- height: 3px;
606
+ .TextField > .border {
607
+ border-bottom: 1px solid rgb(224, 224, 224);
608
+ height: 1px;
609
+ position: relative;
775
610
  }
776
611
 
777
- .ImageGallery .previews .preview > .border .line {
612
+ .TextField > .border .line {
778
613
  left: 50%;
779
614
  width: 0;
780
- height: 3px;
781
- min-height: 3px;
782
- background-color: #4AC263;
615
+ height: 2px;
616
+ min-height: 2px;
617
+ background-color: rgb(0, 188, 212);
783
618
  transition: all 0.2s ease;
784
619
  position: absolute;
785
620
  }
786
621
 
787
- .ImageGallery .previews .preview:after {
788
- content: "";
789
- position: absolute;
790
- top: 0;
791
- right: 0;
792
- bottom: 0;
793
- left: 0;
794
- background: rgba(0, 0, 0, 0.35);
795
- transition: background 0.2s ease;
622
+ .TextField > .error {
623
+ text-align: left;
624
+ font-size: 10px;
625
+ min-height: 0;
626
+ line-height: 14px;
627
+ color: rgb(244, 67, 54);
628
+ visibility: hidden;
629
+ opacity: 0;
630
+ transition: all 0.2s ease;
796
631
  }
797
632
 
798
- .ImageGallery .previews .preview:hover:after {
799
- background: rgba(0, 0, 0, 0.1);
633
+ .TextField.focused > label, .TextField.withValue > label {
634
+ top: 4px;
635
+ font-size: 12px;
636
+ line-height: 14px;
800
637
  }
801
638
 
802
- .ImageGallery .previews .preview.selected .border .line {
639
+ .TextField.errored > .error {
640
+ visibility: visible;
641
+ opacity: 1;
642
+ }
643
+
644
+ .TextField.errored > .border {
645
+ border-bottom-color: rgb(244, 67, 54);
646
+ }
647
+
648
+ .TextField.errored > label {
649
+ color: rgb(244, 67, 54);
650
+ }
651
+
652
+ .TextField.focused > label {
653
+ color: rgb(0, 188, 212);
654
+ }
655
+
656
+ .TextField.focused > .border .line {
803
657
  left: 0;
804
658
  width: 100%;
805
659
  }
806
660
 
807
- .ImageGallery .previews .preview.selected:after {
808
- background: rgba(0, 0, 0, 0);
661
+ .TextField.disabled label, .TextField.disabled input {
662
+ cursor: not-allowed;
809
663
  }
810
664
 
811
- .ImageGallery .previews > .arrow {
665
+ .TextField.withLabel {
666
+ margin-top: 15px;
667
+ }
668
+
669
+ .TextField input::-webkit-contacts-auto-fill-button {
670
+ visibility: hidden;
671
+ display: none !important;
672
+ pointer-events: none;
812
673
  position: absolute;
813
- top: 50%;
814
- height: 30px;
815
- width: 30px;
816
- min-width: 30px;
817
- min-height: 30px;
818
- margin-top: -15px;
674
+ right: 0;
819
675
  }
820
676
 
821
- .ImageGallery .previews > .arrow.left {
822
- left: 0;
677
+ .TextField input:-webkit-autofill {
678
+ -webkit-box-shadow: inset 0 0 0px 9999px white;
823
679
  }
824
680
 
825
- .ImageGallery .previews > .arrow.right {
826
- right: 0;
681
+ @keyframes shake {
682
+ 0%, 100% {
683
+ transform: translateX(0);
684
+ }
685
+ 20%, 60% {
686
+ transform: translateX(-5px);
687
+ }
688
+ 40%, 80% {
689
+ transform: translateX(5px);
690
+ }
691
+ }
692
+ .TextField .shake {
693
+ animation-duration: 0.5s;
694
+ animation-fill-mode: both;
695
+ animation-timing-function: ease-in-out;
696
+ animation-name: shake;
827
697
  }
828
698
 
829
- .ImageGallery .previews > .arrow .material-icons {
830
- font-size: 24px;
699
+ .DialogModal {
700
+ overflow: hidden;
701
+ }
702
+
703
+ .DialogModal .content {
704
+ top: 20vh;
705
+ }
706
+
707
+ .Dialog {
708
+ background-color: white;
709
+ min-width: 460px;
710
+ max-width: 40vw;
711
+ padding: 15px;
712
+ }
713
+
714
+ .Dialog .title {
715
+ margin-bottom: 15px;
716
+ padding: 20px 50px 0px 30px;
717
+ font-size: 1.25rem;
718
+ line-height: 2rem;
719
+ font-weight: 400;
720
+ letter-spacing: 0.0125em;
721
+ }
722
+
723
+ .Dialog .description {
724
+ color: rgba(0, 0, 0, 0.54);
725
+ font-size: 1rem;
726
+ line-height: 1.5rem;
727
+ font-weight: 400;
728
+ letter-spacing: 0.03125em;
729
+ margin-top: 20px;
730
+ padding: 0 24px 24px;
731
+ }
732
+
733
+ .Dialog > div.row {
734
+ margin-bottom: 15px;
735
+ }
736
+
737
+ .Dialog > div.row:last-child {
738
+ margin-bottom: 0;
831
739
  }
832
740
 
833
741
  .FormUploadProgress {
@@ -840,63 +748,151 @@
840
748
  z-index: 2;
841
749
  }
842
750
 
843
- .FormUploadProgress.animated.mounting, .FormUploadProgress.animated.mounted {
844
- transition-delay: 500ms;
751
+ .FormUploadProgress.animated.mounting, .FormUploadProgress.animated.mounted {
752
+ transition-delay: 500ms;
753
+ }
754
+
755
+ .FormUploadProgress .wrapper {
756
+ position: sticky;
757
+ top: 40%;
758
+ margin-top: 40%;
759
+ margin-left: 50%;
760
+ transform: translateX(-50%);
761
+ display: flex;
762
+ flex-flow: column;
763
+ justify-content: center;
764
+ align-items: center;
765
+ }
766
+
767
+ .FormUploadProgress .wrapper .CircleProgress, .FormUploadProgress .wrapper .SpinningProgress {
768
+ position: absolute;
769
+ width: 107px;
770
+ height: 107px;
771
+ top: 0;
772
+ left: 0;
773
+ }
774
+
775
+ .FormUploadProgress .wrapper .CircleProgress .line, .FormUploadProgress .wrapper .SpinningProgress .line {
776
+ stroke: #2196F3;
777
+ }
778
+
779
+ .FormUploadProgress .wrapper > .progress {
780
+ width: 107px;
781
+ height: 107px;
782
+ min-height: 107px;
783
+ display: flex;
784
+ justify-content: center;
785
+ align-items: center;
786
+ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
787
+ border-radius: 50%;
788
+ background: white;
789
+ position: relative;
790
+ }
791
+
792
+ .FormUploadProgress .wrapper > .progress > .value {
793
+ display: inline-block;
794
+ margin-top: 5px;
795
+ font-weight: bold;
796
+ line-height: 16px;
797
+ font-size: 13px;
798
+ text-align: center;
799
+ color: #818181;
800
+ }
801
+
802
+ .FormUploadProgress .wrapper .cancel {
803
+ min-width: 107px;
804
+ margin-top: 20px;
805
+ background-color: white;
806
+ color: #F96B5C;
807
+ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
808
+ }
809
+
810
+ .Modal {
811
+ display: block;
812
+ position: fixed;
813
+ top: 0;
814
+ left: 0;
815
+ right: 0;
816
+ bottom: 100%;
817
+ overflow-y: scroll;
818
+ transition: bottom 0ms linear;
819
+ transition-delay: 0.2s;
820
+ }
821
+
822
+ .Modal.show {
823
+ transition-delay: 0s;
824
+ bottom: 0;
825
+ }
826
+
827
+ .Modal > .overlay {
828
+ position: fixed;
829
+ top: 0;
830
+ bottom: 100%;
831
+ left: 0;
832
+ right: 0;
833
+ transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
834
+ opacity: 0;
835
+ background-color: black;
836
+ pointer-events: none;
837
+ }
838
+
839
+ .Modal > .overlay.show {
840
+ opacity: 0.5;
841
+ bottom: 0;
842
+ }
843
+
844
+ .Modal > .content {
845
+ left: 50%;
846
+ top: 10vh;
847
+ margin-bottom: 10vh;
848
+ font-size: 16px;
849
+ padding: 0;
850
+ opacity: 0;
851
+ transition: opacity 0.25s ease, transform 0.25s ease;
852
+ transform: scaleY(0) translateY(-200px) translateX(-50%);
853
+ transform-origin: top;
854
+ position: absolute;
855
+ border-radius: 2px;
856
+ box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.3);
857
+ }
858
+
859
+ .Modal > .content.show {
860
+ opacity: 1;
861
+ transform: scaleY(1) translateY(0px) translateX(-50%);
845
862
  }
846
863
 
847
- .FormUploadProgress .wrapper {
848
- position: sticky;
849
- top: 40%;
850
- margin-top: 40%;
851
- margin-left: 50%;
852
- transform: translateX(-50%);
853
- display: flex;
854
- flex-flow: column;
855
- justify-content: center;
856
- align-items: center;
864
+ .Modal > .content > .Scrollable {
865
+ overflow: visible;
866
+ max-height: 80vh;
857
867
  }
858
868
 
859
- .FormUploadProgress .wrapper .CircleProgress, .FormUploadProgress .wrapper .SpinningProgress {
869
+ .Modal > .content > .Scrollable > .viewport {
870
+ min-width: 10px;
871
+ min-height: 10px;
872
+ }
873
+
874
+ .Modal > .content > .Button.close {
875
+ top: 10px;
876
+ right: 10px;
860
877
  position: absolute;
861
- width: 107px;
862
- height: 107px;
863
- top: 0;
864
- left: 0;
865
878
  }
866
879
 
867
- .FormUploadProgress .wrapper .CircleProgress .line, .FormUploadProgress .wrapper .SpinningProgress .line {
868
- stroke: #2196F3;
880
+ .DNDContainer .DroppableList .Draggable {
881
+ transform: unset;
882
+ transition: unset;
883
+ opacity: 1;
869
884
  }
870
885
 
871
- .FormUploadProgress .wrapper > .progress {
872
- width: 107px;
873
- height: 107px;
874
- min-height: 107px;
875
- display: flex;
876
- justify-content: center;
877
- align-items: center;
878
- box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
879
- border-radius: 50%;
880
- background: white;
881
- position: relative;
886
+ .DNDContainer .DroppableList .Draggable.dragged {
887
+ transition: unset !important;
882
888
  }
883
889
 
884
- .FormUploadProgress .wrapper > .progress > .value {
885
- display: inline-block;
886
- margin-top: 5px;
887
- font-weight: bold;
888
- line-height: 16px;
889
- font-size: 13px;
890
- text-align: center;
891
- color: #818181;
890
+ .DNDContainer .DroppableList.hover .Draggable {
891
+ transition: transform 0.2s ease-in;
892
892
  }
893
893
 
894
- .FormUploadProgress .wrapper .cancel {
895
- min-width: 107px;
896
- margin-top: 20px;
897
- background-color: white;
898
- color: #F96B5C;
899
- box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
894
+ .DNDContainer .DroppableList.resetting .Draggable {
895
+ transition: transform 0.1s ease-in;
900
896
  }
901
897
 
902
898
  .Scrollable {
@@ -998,235 +994,239 @@
998
994
  will-change: left;
999
995
  }
1000
996
 
1001
- .TextField {
1002
- position: relative;
1003
- width: 100%;
997
+ .ImageGallery {
998
+ position: fixed;
999
+ top: 0;
1000
+ left: 0;
1001
+ bottom: 0;
1002
+ right: 0;
1003
+ z-index: 1000;
1004
+ background-color: rgba(0, 0, 0, 0.01);
1005
+ user-select: none;
1004
1006
  }
1005
1007
 
1006
- .TextField > label {
1007
- font-family: Roboto, sans-serif;
1008
- color: rgba(0, 0, 0, 0.3);
1009
- font-size: 16px;
1010
- position: absolute;
1011
- left: 0px;
1012
- top: 16px;
1013
- margin-top: -16px;
1014
- transition: all 0.2s ease;
1015
- user-select: none;
1016
- cursor: text;
1008
+ .ImageGallery:focus {
1009
+ outline-width: 0px;
1017
1010
  }
1018
1011
 
1019
- .TextField > input {
1020
- font-family: Roboto, sans-serif;
1021
- color: #1e252d;
1022
- height: 19px;
1023
- font-size: 16px;
1024
- width: 100%;
1025
- border: 0px;
1026
- padding-bottom: 4px;
1027
- padding-top: 0;
1028
- outline-color: rgba(0, 0, 0, 0);
1012
+ .ImageGallery.animated {
1013
+ transition: background-color 0.25s ease;
1014
+ opacity: 1;
1029
1015
  }
1030
1016
 
1031
- .TextField > input:focus {
1032
- outline: none;
1017
+ .ImageGallery.mounting, .ImageGallery.mounted {
1018
+ background-color: rgba(0, 0, 0, 0.8);
1033
1019
  }
1034
1020
 
1035
- .TextField > input:disabled {
1036
- color: gray;
1037
- background-color: white;
1021
+ .ImageGallery .image {
1022
+ position: absolute;
1023
+ cursor: grab;
1038
1024
  }
1039
1025
 
1040
- .TextField > input:disabled + .border {
1041
- height: 0px;
1042
- border-bottom: 2px dotted rgb(224, 224, 224);
1026
+ .ImageGallery .image .counter {
1027
+ display: none;
1043
1028
  }
1044
1029
 
1045
- .TextField > input::placeholder {
1046
- font-family: Roboto, sans-serif;
1047
- color: rgba(0, 0, 0, 0.3);
1030
+ .ImageGallery .image img {
1031
+ border-radius: 4px;
1032
+ max-width: 100%;
1033
+ min-width: 100%;
1034
+ }
1035
+
1036
+ .ImageGallery .image.animated {
1037
+ transition: top 0.25s ease, left 0.25s ease, width 0.25s ease, height 0.25s ease, opacity 0.25s ease;
1038
+ will-change: top, left, width, height, opacity;
1039
+ }
1040
+
1041
+ .ImageGallery .image.animated.mounting, .ImageGallery .image.animated.mounted, .ImageGallery .image.animated.unmounting {
1048
1042
  opacity: 1;
1049
1043
  }
1050
1044
 
1051
- .TextField > .border {
1052
- border-bottom: 1px solid rgb(224, 224, 224);
1053
- height: 1px;
1054
- position: relative;
1045
+ .ImageGallery .image.zoomed {
1046
+ text-align: center;
1047
+ overflow: hidden;
1055
1048
  }
1056
1049
 
1057
- .TextField > .border .line {
1058
- left: 50%;
1059
- width: 0;
1060
- height: 2px;
1061
- min-height: 2px;
1062
- background-color: rgb(0, 188, 212);
1063
- transition: all 0.2s ease;
1050
+ .ImageGallery .image.dragging {
1051
+ transition: none;
1052
+ cursor: move;
1053
+ }
1054
+
1055
+ .ImageGallery .image .close {
1064
1056
  position: absolute;
1057
+ top: -18px;
1058
+ right: -18px;
1065
1059
  }
1066
1060
 
1067
- .TextField > .error {
1068
- text-align: left;
1069
- font-size: 10px;
1070
- min-height: 0;
1071
- line-height: 14px;
1072
- color: rgb(244, 67, 54);
1073
- visibility: hidden;
1074
- opacity: 0;
1075
- transition: all 0.2s ease;
1061
+ .ImageGallery .image .spinner {
1062
+ position: absolute;
1063
+ top: 0;
1064
+ bottom: 0;
1065
+ left: 0;
1066
+ right: 0;
1067
+ background: rgba(0, 0, 0, 0.65);
1076
1068
  }
1077
1069
 
1078
- .TextField.focused > label, .TextField.withValue > label {
1079
- top: 4px;
1080
- font-size: 12px;
1081
- line-height: 14px;
1070
+ .ImageGallery .image .spinner .SpinningProgress {
1071
+ position: absolute;
1072
+ top: 50%;
1073
+ left: 50%;
1074
+ margin-left: -24px;
1075
+ margin-top: -24px;
1082
1076
  }
1083
1077
 
1084
- .TextField.errored > .error {
1085
- visibility: visible;
1086
- opacity: 1;
1078
+ .ImageGallery .image .spinner .SpinningProgress .line {
1079
+ stroke: #2196F3;
1087
1080
  }
1088
1081
 
1089
- .TextField.errored > .border {
1090
- border-bottom-color: rgb(244, 67, 54);
1082
+ .ImageGallery .Button.animated {
1083
+ transition: all 0.25s ease;
1084
+ opacity: 0;
1085
+ transform: scale(0);
1091
1086
  }
1092
1087
 
1093
- .TextField.errored > label {
1094
- color: rgb(244, 67, 54);
1088
+ .ImageGallery .Button.animated.mounted, .ImageGallery .Button.animated.mounting {
1089
+ opacity: 1;
1090
+ transform: scale(1);
1095
1091
  }
1096
1092
 
1097
- .TextField.focused > label {
1098
- color: rgb(0, 188, 212);
1093
+ .ImageGallery .Button {
1094
+ color: white;
1095
+ background: rgba(0, 0, 0, 0.4);
1099
1096
  }
1100
1097
 
1101
- .TextField.focused > .border .line {
1102
- left: 0;
1103
- width: 100%;
1098
+ .ImageGallery .Button:hover {
1099
+ background: rgba(0, 0, 0, 0.7);
1104
1100
  }
1105
1101
 
1106
- .TextField.disabled label, .TextField.disabled input {
1107
- cursor: not-allowed;
1102
+ .ImageGallery > .arrow {
1103
+ position: absolute;
1104
+ top: 50%;
1105
+ height: 76px;
1106
+ width: 76px;
1107
+ margin-top: -38px;
1108
1108
  }
1109
1109
 
1110
- .TextField.withLabel {
1111
- margin-top: 15px;
1110
+ .ImageGallery > .arrow.left {
1111
+ left: 5%;
1112
1112
  }
1113
1113
 
1114
- .TextField input::-webkit-contacts-auto-fill-button {
1115
- visibility: hidden;
1116
- display: none !important;
1117
- pointer-events: none;
1118
- position: absolute;
1119
- right: 0;
1114
+ .ImageGallery > .arrow.right {
1115
+ right: 5%;
1120
1116
  }
1121
1117
 
1122
- .TextField input:-webkit-autofill {
1123
- -webkit-box-shadow: inset 0 0 0px 9999px white;
1118
+ .ImageGallery > .arrow .material-icons {
1119
+ font-size: 40px;
1124
1120
  }
1125
1121
 
1126
- @keyframes shake {
1127
- 0%, 100% {
1128
- transform: translateX(0);
1129
- }
1130
- 20%, 60% {
1131
- transform: translateX(-5px);
1132
- }
1133
- 40%, 80% {
1134
- transform: translateX(5px);
1135
- }
1122
+ .ImageGallery .counter {
1123
+ position: absolute;
1124
+ top: 10px;
1125
+ left: 10px;
1126
+ color: white;
1127
+ font-size: 13px;
1128
+ }
1129
+
1130
+ .ImageGallery .previews {
1131
+ height: 80px;
1132
+ position: absolute;
1133
+ bottom: 15px;
1134
+ left: 50%;
1135
+ transform: translateX(-50%);
1136
+ padding: 0 45px;
1136
1137
  }
1137
- .TextField .shake {
1138
- animation-duration: 0.5s;
1139
- animation-fill-mode: both;
1140
- animation-timing-function: ease-in-out;
1141
- animation-name: shake;
1138
+
1139
+ .ImageGallery .previews .viewport {
1140
+ overflow: hidden;
1141
+ position: relative;
1142
+ height: 100%;
1142
1143
  }
1143
1144
 
1144
- .Modal {
1145
- display: block;
1146
- position: fixed;
1147
- top: 0;
1148
- left: 0;
1149
- right: 0;
1150
- bottom: 100%;
1151
- overflow-y: scroll;
1152
- transition: bottom 0ms linear;
1153
- transition-delay: 0.2s;
1145
+ .ImageGallery .previews .container {
1146
+ position: relative;
1147
+ display: flex;
1148
+ flex-flow: row nowrap;
1149
+ height: 100%;
1150
+ transition: left 0.25s ease;
1154
1151
  }
1155
1152
 
1156
- .Modal.show {
1157
- transition-delay: 0s;
1158
- bottom: 0;
1153
+ .ImageGallery .previews .preview {
1154
+ position: relative;
1155
+ height: 100%;
1156
+ display: inline-block;
1157
+ width: 106.66px;
1158
+ overflow: hidden;
1159
+ margin-left: 12px;
1160
+ border-radius: 2px;
1161
+ cursor: pointer;
1162
+ box-sizing: border-box;
1159
1163
  }
1160
1164
 
1161
- .Modal > .overlay {
1162
- position: fixed;
1163
- top: 0;
1164
- bottom: 100%;
1165
- left: 0;
1166
- right: 0;
1167
- transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1168
- opacity: 0;
1169
- background-color: black;
1170
- pointer-events: none;
1165
+ .ImageGallery .previews .preview:first-child {
1166
+ margin-left: 0;
1171
1167
  }
1172
1168
 
1173
- .Modal > .overlay.show {
1174
- opacity: 0.5;
1169
+ .ImageGallery .previews .preview > .border {
1170
+ position: absolute;
1175
1171
  bottom: 0;
1172
+ width: 100%;
1173
+ height: 3px;
1176
1174
  }
1177
1175
 
1178
- .Modal > .content {
1176
+ .ImageGallery .previews .preview > .border .line {
1179
1177
  left: 50%;
1180
- top: 10vh;
1181
- margin-bottom: 10vh;
1182
- font-size: 16px;
1183
- padding: 0;
1184
- opacity: 0;
1185
- transition: opacity 0.25s ease, transform 0.25s ease;
1186
- transform: scaleY(0) translateY(-200px) translateX(-50%);
1187
- transform-origin: top;
1178
+ width: 0;
1179
+ height: 3px;
1180
+ min-height: 3px;
1181
+ background-color: #4AC263;
1182
+ transition: all 0.2s ease;
1188
1183
  position: absolute;
1189
- border-radius: 2px;
1190
- box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.3);
1191
1184
  }
1192
1185
 
1193
- .Modal > .content.show {
1194
- opacity: 1;
1195
- transform: scaleY(1) translateY(0px) translateX(-50%);
1186
+ .ImageGallery .previews .preview:after {
1187
+ content: "";
1188
+ position: absolute;
1189
+ top: 0;
1190
+ right: 0;
1191
+ bottom: 0;
1192
+ left: 0;
1193
+ background: rgba(0, 0, 0, 0.35);
1194
+ transition: background 0.2s ease;
1196
1195
  }
1197
1196
 
1198
- .Modal > .content > .Scrollable {
1199
- overflow: visible;
1200
- max-height: 80vh;
1197
+ .ImageGallery .previews .preview:hover:after {
1198
+ background: rgba(0, 0, 0, 0.1);
1201
1199
  }
1202
1200
 
1203
- .Modal > .content > .Scrollable > .viewport {
1204
- min-width: 10px;
1205
- min-height: 10px;
1201
+ .ImageGallery .previews .preview.selected .border .line {
1202
+ left: 0;
1203
+ width: 100%;
1206
1204
  }
1207
1205
 
1208
- .Modal > .content > .Button.close {
1209
- top: 10px;
1210
- right: 10px;
1211
- position: absolute;
1206
+ .ImageGallery .previews .preview.selected:after {
1207
+ background: rgba(0, 0, 0, 0);
1212
1208
  }
1213
1209
 
1214
- .DNDContainer .DroppableList .Draggable {
1215
- transform: unset;
1216
- transition: unset;
1217
- opacity: 1;
1210
+ .ImageGallery .previews > .arrow {
1211
+ position: absolute;
1212
+ top: 50%;
1213
+ height: 30px;
1214
+ width: 30px;
1215
+ min-width: 30px;
1216
+ min-height: 30px;
1217
+ margin-top: -15px;
1218
1218
  }
1219
1219
 
1220
- .DNDContainer .DroppableList .Draggable.dragged {
1221
- transition: unset !important;
1220
+ .ImageGallery .previews > .arrow.left {
1221
+ left: 0;
1222
1222
  }
1223
1223
 
1224
- .DNDContainer .DroppableList.hover .Draggable {
1225
- transition: transform 0.2s ease-in;
1224
+ .ImageGallery .previews > .arrow.right {
1225
+ right: 0;
1226
1226
  }
1227
1227
 
1228
- .DNDContainer .DroppableList.resetting .Draggable {
1229
- transition: transform 0.1s ease-in;
1228
+ .ImageGallery .previews > .arrow .material-icons {
1229
+ font-size: 24px;
1230
1230
  }
1231
1231
 
1232
1232
  .CalendarMonthView {
@@ -1334,38 +1334,6 @@
1334
1334
  background: rgba(0, 0, 0, 0.26);
1335
1335
  }
1336
1336
 
1337
- .DNDContainer {
1338
- position: relative;
1339
- }
1340
-
1341
- .DNDContainer .Draggable[draggable=true], .DNDContainer .Draggable [draggable=true] {
1342
- cursor: pointer;
1343
- }
1344
-
1345
- .DNDContainer .Draggable.placeholder {
1346
- opacity: 0.2;
1347
- }
1348
-
1349
- .DNDContainer .Draggable.copy {
1350
- position: absolute;
1351
- box-sizing: border-box;
1352
- will-change: transform;
1353
- opacity: 0;
1354
- }
1355
-
1356
- .DNDContainer .Draggable.dragged {
1357
- z-index: 10;
1358
- }
1359
-
1360
- .DNDContainer .overlay {
1361
- position: absolute;
1362
- top: 0;
1363
- left: 0;
1364
- right: 0;
1365
- bottom: 0;
1366
- pointer-events: none;
1367
- }
1368
-
1369
1337
  .DatePicker {
1370
1338
  position: relative;
1371
1339
  }
@@ -1483,6 +1451,38 @@
1483
1451
  background-color: #51adf6;
1484
1452
  }
1485
1453
 
1454
+ .DNDContainer {
1455
+ position: relative;
1456
+ }
1457
+
1458
+ .DNDContainer .Draggable[draggable=true], .DNDContainer .Draggable [draggable=true] {
1459
+ cursor: pointer;
1460
+ }
1461
+
1462
+ .DNDContainer .Draggable.placeholder {
1463
+ opacity: 0.2;
1464
+ }
1465
+
1466
+ .DNDContainer .Draggable.copy {
1467
+ position: absolute;
1468
+ box-sizing: border-box;
1469
+ will-change: transform;
1470
+ opacity: 0;
1471
+ }
1472
+
1473
+ .DNDContainer .Draggable.dragged {
1474
+ z-index: 10;
1475
+ }
1476
+
1477
+ .DNDContainer .overlay {
1478
+ position: absolute;
1479
+ top: 0;
1480
+ left: 0;
1481
+ right: 0;
1482
+ bottom: 0;
1483
+ pointer-events: none;
1484
+ }
1485
+
1486
1486
  .Dropzone {
1487
1487
  position: relative;
1488
1488
  }
@@ -1543,6 +1543,67 @@
1543
1543
  z-index: 1;
1544
1544
  }
1545
1545
 
1546
+ .Button.FloatingActionButton {
1547
+ position: absolute;
1548
+ right: 16px;
1549
+ bottom: 16px;
1550
+ width: 56px;
1551
+ height: 56px;
1552
+ padding: 16px;
1553
+ transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1554
+ }
1555
+
1556
+ .Button.FloatingActionButton.raised {
1557
+ 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);
1558
+ }
1559
+
1560
+ .Button.FloatingActionButton.mini {
1561
+ width: 40px;
1562
+ height: 40px;
1563
+ padding: 8px;
1564
+ }
1565
+
1566
+ .Button.FloatingActionButton.hidden {
1567
+ bottom: -100px;
1568
+ }
1569
+
1570
+ .ModalMenu {
1571
+ position: absolute;
1572
+ top: 10px;
1573
+ right: 50px;
1574
+ }
1575
+
1576
+ .ModalMenu .material-icons {
1577
+ color: #818181;
1578
+ }
1579
+
1580
+ .ModalMenu .Button.animated {
1581
+ position: absolute;
1582
+ transition: opacity 150ms ease-in, right 200ms ease-in;
1583
+ opacity: 0;
1584
+ right: 0;
1585
+ top: 0;
1586
+ }
1587
+
1588
+ .ModalMenu .Button.animated.mounting, .ModalMenu .Button.animated.mounted {
1589
+ opacity: 1;
1590
+ }
1591
+
1592
+ .ModalMenu .Button.animated.unmounting {
1593
+ transition: opacity 100ms ease-out, right 200ms ease-out;
1594
+ }
1595
+
1596
+ .ModalMenu .Button.active {
1597
+ background: #EBEBEB;
1598
+ }
1599
+
1600
+ .ModalMenu .separator {
1601
+ height: 24px;
1602
+ width: 1px;
1603
+ background-color: #D9D9D9;
1604
+ margin-left: 4px;
1605
+ }
1606
+
1546
1607
  .DropFileInput {
1547
1608
  flex-grow: 1;
1548
1609
  }
@@ -1570,28 +1631,110 @@
1570
1631
  margin-right: 10px;
1571
1632
  }
1572
1633
 
1573
- .Button.FloatingActionButton {
1634
+ .SpinningProgress {
1635
+ width: 48px;
1636
+ height: 48px;
1637
+ position: relative;
1638
+ margin: 0 auto;
1639
+ }
1640
+
1641
+ .SpinningProgress:before {
1642
+ content: "";
1643
+ display: block;
1644
+ padding-top: 100%;
1645
+ }
1646
+
1647
+ .SpinningProgress .circular {
1648
+ animation: rotate 2s linear infinite;
1649
+ height: 100%;
1650
+ transform-origin: center center;
1651
+ width: 100%;
1574
1652
  position: absolute;
1575
- right: 16px;
1576
- bottom: 16px;
1577
- width: 56px;
1578
- height: 56px;
1579
- padding: 16px;
1580
- transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1653
+ top: 0;
1654
+ bottom: 0;
1655
+ left: 0;
1656
+ right: 0;
1657
+ margin: auto;
1581
1658
  }
1582
1659
 
1583
- .Button.FloatingActionButton.raised {
1584
- 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);
1660
+ .SpinningProgress .line {
1661
+ stroke: black;
1662
+ stroke-width: 2px;
1663
+ stroke-dasharray: 1, 96;
1664
+ stroke-dashoffset: 0;
1665
+ animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
1585
1666
  }
1586
1667
 
1587
- .Button.FloatingActionButton.mini {
1588
- width: 40px;
1589
- height: 40px;
1590
- padding: 8px;
1668
+ @keyframes rotate {
1669
+ 100% {
1670
+ transform: rotate(360deg);
1671
+ }
1672
+ }
1673
+ @keyframes dash {
1674
+ 0% {
1675
+ stroke-dasharray: 1, 96;
1676
+ stroke-dashoffset: 0;
1677
+ }
1678
+ 50% {
1679
+ stroke-dasharray: 43, 96;
1680
+ stroke-dashoffset: -17px;
1681
+ }
1682
+ 100% {
1683
+ stroke-dasharray: 43, 96;
1684
+ stroke-dashoffset: -53px;
1685
+ }
1686
+ }
1687
+ .ScrollableTable .Scrollable .scrollbar {
1688
+ top: 56px;
1591
1689
  }
1592
1690
 
1593
- .Button.FloatingActionButton.hidden {
1594
- bottom: -100px;
1691
+ .ScrollableTable .Table {
1692
+ position: static;
1693
+ }
1694
+
1695
+ .Snackbar {
1696
+ transform: translateX(-50%);
1697
+ overflow: hidden;
1698
+ background-color: #323232;
1699
+ padding: 14px 24px 14px 24px;
1700
+ color: #fff;
1701
+ min-width: 288px;
1702
+ max-width: 568px;
1703
+ position: fixed;
1704
+ bottom: -50px;
1705
+ left: 50%;
1706
+ display: flex;
1707
+ flex-wrap: nowrap;
1708
+ align-items: center;
1709
+ opacity: 0;
1710
+ transition: bottom 0.25s ease, opacity 0.2s ease;
1711
+ border-radius: 4px;
1712
+ box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
1713
+ }
1714
+
1715
+ .Snackbar.shown {
1716
+ bottom: 15px;
1717
+ opacity: 1;
1718
+ }
1719
+
1720
+ .Snackbar .message {
1721
+ overflow: hidden;
1722
+ line-height: 1.2em;
1723
+ min-height: 1.2em;
1724
+ max-height: 2.4em;
1725
+ flex: 1;
1726
+ }
1727
+
1728
+ .Snackbar .action {
1729
+ text-transform: uppercase;
1730
+ font-weight: bold;
1731
+ margin-left: 48px;
1732
+ color: #bf3727;
1733
+ }
1734
+
1735
+ .Snackbar .action a {
1736
+ text-decoration: none;
1737
+ color: #bf3727;
1595
1738
  }
1596
1739
 
1597
1740
  .Switch {
@@ -1676,112 +1819,6 @@
1676
1819
  display: none;
1677
1820
  }
1678
1821
 
1679
- .Snackbar {
1680
- transform: translateX(-50%);
1681
- overflow: hidden;
1682
- background-color: #323232;
1683
- padding: 14px 24px 14px 24px;
1684
- color: #fff;
1685
- min-width: 288px;
1686
- max-width: 568px;
1687
- position: fixed;
1688
- bottom: -50px;
1689
- left: 50%;
1690
- display: flex;
1691
- flex-wrap: nowrap;
1692
- align-items: center;
1693
- opacity: 0;
1694
- transition: bottom 0.25s ease, opacity 0.2s ease;
1695
- border-radius: 4px;
1696
- box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
1697
- }
1698
-
1699
- .Snackbar.shown {
1700
- bottom: 15px;
1701
- opacity: 1;
1702
- }
1703
-
1704
- .Snackbar .message {
1705
- overflow: hidden;
1706
- line-height: 1.2em;
1707
- min-height: 1.2em;
1708
- max-height: 2.4em;
1709
- flex: 1;
1710
- }
1711
-
1712
- .Snackbar .action {
1713
- text-transform: uppercase;
1714
- font-weight: bold;
1715
- margin-left: 48px;
1716
- color: #bf3727;
1717
- }
1718
-
1719
- .Snackbar .action a {
1720
- text-decoration: none;
1721
- color: #bf3727;
1722
- }
1723
-
1724
- .ScrollableTable .Scrollable .scrollbar {
1725
- top: 56px;
1726
- }
1727
-
1728
- .ScrollableTable .Table {
1729
- position: static;
1730
- }
1731
-
1732
- .SpinningProgress {
1733
- width: 48px;
1734
- height: 48px;
1735
- position: relative;
1736
- margin: 0 auto;
1737
- }
1738
-
1739
- .SpinningProgress:before {
1740
- content: "";
1741
- display: block;
1742
- padding-top: 100%;
1743
- }
1744
-
1745
- .SpinningProgress .circular {
1746
- animation: rotate 2s linear infinite;
1747
- height: 100%;
1748
- transform-origin: center center;
1749
- width: 100%;
1750
- position: absolute;
1751
- top: 0;
1752
- bottom: 0;
1753
- left: 0;
1754
- right: 0;
1755
- margin: auto;
1756
- }
1757
-
1758
- .SpinningProgress .line {
1759
- stroke: black;
1760
- stroke-width: 2px;
1761
- stroke-dasharray: 1, 96;
1762
- stroke-dashoffset: 0;
1763
- animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
1764
- }
1765
-
1766
- @keyframes rotate {
1767
- 100% {
1768
- transform: rotate(360deg);
1769
- }
1770
- }
1771
- @keyframes dash {
1772
- 0% {
1773
- stroke-dasharray: 1, 96;
1774
- stroke-dashoffset: 0;
1775
- }
1776
- 50% {
1777
- stroke-dasharray: 43, 96;
1778
- stroke-dashoffset: -17px;
1779
- }
1780
- 100% {
1781
- stroke-dasharray: 43, 96;
1782
- stroke-dashoffset: -53px;
1783
- }
1784
- }
1785
1822
  .Table {
1786
1823
  font-family: Roboto, sans-serif;
1787
1824
  font-size: 14px;
@@ -1902,41 +1939,4 @@
1902
1939
 
1903
1940
  .Table .editable > .AutocompleteSelect > .selected > .DummyChild {
1904
1941
  margin: 0;
1905
- }
1906
-
1907
- .ModalMenu {
1908
- position: absolute;
1909
- top: 10px;
1910
- right: 50px;
1911
- }
1912
-
1913
- .ModalMenu .material-icons {
1914
- color: #818181;
1915
- }
1916
-
1917
- .ModalMenu .Button.animated {
1918
- position: absolute;
1919
- transition: opacity 150ms ease-in, right 200ms ease-in;
1920
- opacity: 0;
1921
- right: 0;
1922
- top: 0;
1923
- }
1924
-
1925
- .ModalMenu .Button.animated.mounting, .ModalMenu .Button.animated.mounted {
1926
- opacity: 1;
1927
- }
1928
-
1929
- .ModalMenu .Button.animated.unmounting {
1930
- transition: opacity 100ms ease-out, right 200ms ease-out;
1931
- }
1932
-
1933
- .ModalMenu .Button.active {
1934
- background: #EBEBEB;
1935
- }
1936
-
1937
- .ModalMenu .separator {
1938
- height: 24px;
1939
- width: 1px;
1940
- background-color: #D9D9D9;
1941
- margin-left: 4px;
1942
1942
  }