react-ui-basics 0.0.198 → 0.0.200

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
@@ -293,195 +293,250 @@
293
293
  position: absolute;
294
294
  }
295
295
 
296
- .Checkbox {
297
- position: relative;
298
- white-space: pre;
296
+ .CircleProgress {
297
+ width: 48px;
298
+ height: 48px;
299
299
  }
300
300
 
301
- .Checkbox *, .Checkbox *:before, .Checkbox *:after {
302
- box-sizing: border-box;
301
+ .CircleProgress .line {
302
+ stroke-width: 2px;
303
+ stroke: black;
304
+ stroke-linecap: square;
305
+ fill: none;
306
+ transition: stroke-dashoffset 0.2s ease;
303
307
  }
304
308
 
305
- .Checkbox label {
306
- font-family: Roboto, sans-serif;
309
+ .Button {
310
+ position: relative;
311
+ min-width: 64px;
312
+ min-height: 36px;
313
+ height: 24px;
314
+ margin: 0px;
315
+ padding: 0px 16px;
316
+ border: none;
317
+ outline: none;
307
318
  font-size: 14px;
308
- color: #1e252d;
319
+ font-weight: 500;
320
+ letter-spacing: 1.25px;
321
+ background: #dfdfdf;
322
+ text-transform: uppercase;
323
+ font-family: Roboto, sans-serif;
324
+ -webkit-tap-highlight-color: transparent;
325
+ display: inline-flex;
326
+ justify-content: center;
327
+ align-items: center;
309
328
  cursor: pointer;
329
+ overflow: hidden;
330
+ user-select: none;
331
+ border-radius: 3px;
332
+ transition: all 0.2s ease;
310
333
  }
311
334
 
312
- .Checkbox label:before, .Checkbox label:after {
313
- content: "";
314
- position: absolute;
315
- left: 0;
316
- top: 0;
335
+ .Button.flat {
336
+ background-color: transparent;
317
337
  }
318
338
 
319
- .Checkbox label:before {
320
- width: 20px;
321
- height: 20px;
322
- background: #fff;
323
- border: 2px solid #252525;
324
- border-radius: 2px;
325
- cursor: pointer;
326
- transition: background 0.3s;
339
+ .Button.flat:hover {
340
+ background-color: rgba(0, 0, 0, 0.05);
327
341
  }
328
342
 
329
- .Checkbox input[type=checkbox] {
330
- outline: 0;
331
- margin-right: 10px;
332
- visibility: hidden;
343
+ .Button.green {
344
+ background-color: #43a047;
345
+ color: white;
333
346
  }
334
347
 
335
- .Checkbox input[type=checkbox]:checked + label:before {
336
- background: #4AC263;
337
- border: none;
348
+ .Button.green:hover {
349
+ background-color: #3b8e3f;
338
350
  }
339
351
 
340
- .Checkbox input[type=checkbox]:checked + label:after {
341
- transform: rotate(-45deg);
342
- top: 6px;
343
- left: 4px;
344
- width: 12px;
345
- height: 6px;
346
- border: 2px solid #fff;
347
- border-top-style: none;
348
- border-right-style: none;
352
+ .Button.blue {
353
+ background-color: #039be5;
354
+ color: white;
349
355
  }
350
356
 
351
- .Checkbox input[type=checkbox]:disabled + label {
352
- color: gray;
357
+ .Button.blue:hover {
358
+ background-color: #038acc;
353
359
  }
354
360
 
355
- .Checkbox input[type=checkbox]:disabled + label:before {
356
- border-color: rgba(0, 0, 0, 0.26);
361
+ .Button.red {
362
+ background-color: #e53935;
363
+ color: white;
357
364
  }
358
365
 
359
- .Checkbox input[type=checkbox]:disabled:checked + label:before {
360
- background: rgba(0, 0, 0, 0.26);
366
+ .Button.red:hover {
367
+ background-color: #e2231e;
361
368
  }
362
369
 
363
- .CircleProgress {
364
- width: 48px;
365
- height: 48px;
370
+ .Button.black {
371
+ background-color: #1e252d;
372
+ color: white;
366
373
  }
367
374
 
368
- .CircleProgress .line {
369
- stroke-width: 2px;
370
- stroke: black;
371
- stroke-linecap: square;
372
- fill: none;
373
- transition: stroke-dashoffset 0.2s ease;
375
+ .Button.black:hover {
376
+ background-color: #14181e;
374
377
  }
375
378
 
376
- .animated {
377
- transition: opacity 250ms ease;
378
- opacity: 0;
379
+ .Button.gray {
380
+ background: #D9D9D9;
381
+ color: #999999;
379
382
  }
380
383
 
381
- .animated.mounting, .animated.mounted {
384
+ .Button.gray:hover {
385
+ background-color: #cccccc;
386
+ }
387
+
388
+ .Button.small {
389
+ padding: 0px 8px;
390
+ min-height: 16px;
391
+ min-width: 16px;
392
+ }
393
+
394
+ .Button > .material-icons {
395
+ margin-right: 10px;
396
+ }
397
+
398
+ .Button.round {
399
+ padding: 0px;
400
+ min-width: 36px;
401
+ border-radius: 50%;
402
+ }
403
+
404
+ .Button.round > .material-icons {
405
+ margin: 0px;
406
+ }
407
+
408
+ .Button .ripple {
409
+ position: absolute;
410
+ background: rgba(0, 0, 0, 0.1);
411
+ border-radius: 100%;
412
+ transform: scale(0);
413
+ pointer-events: none;
414
+ transition: opacity 0.2s ease-out;
415
+ }
416
+
417
+ .Button .ripple.show {
418
+ animation: ripple 0.35s ease-out;
419
+ }
420
+
421
+ .Button:active .ripple.showed {
382
422
  opacity: 1;
383
423
  }
384
424
 
385
- .DialogModal {
386
- overflow: hidden;
425
+ .Button:focus .ripple.focused {
426
+ opacity: 1;
427
+ transition: opacity 0.2s ease-out, transform 0.2s ease-out;
428
+ transform: scale(1);
429
+ animation: resize 1.25s ease-out infinite;
430
+ animation-delay: 0.2s;
431
+ animation-direction: alternate;
387
432
  }
388
433
 
389
- .DialogModal .content {
390
- top: 20vh;
434
+ .Button .ripple.showed {
435
+ transform: scale(2);
436
+ opacity: 0;
391
437
  }
392
438
 
393
- .Dialog {
394
- background-color: white;
395
- min-width: 460px;
396
- max-width: 40vw;
397
- padding: 15px;
439
+ @keyframes ripple {
440
+ to {
441
+ transform: scale(2);
442
+ }
443
+ }
444
+ @keyframes resize {
445
+ to {
446
+ transform: scale(0.9);
447
+ }
448
+ }
449
+ .Button.raised {
450
+ transition: color 0.2s ease-out, background-color 0.2s ease-out, box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
398
451
  }
399
452
 
400
- .Dialog .title {
401
- margin-bottom: 15px;
402
- padding: 20px 50px 0px 30px;
403
- font-size: 1.25rem;
404
- line-height: 2rem;
405
- font-weight: 400;
406
- letter-spacing: 0.0125em;
453
+ .Button.raised:hover {
454
+ box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.25);
407
455
  }
408
456
 
409
- .Dialog .description {
410
- color: rgba(0, 0, 0, 0.54);
411
- font-size: 1rem;
412
- line-height: 1.5rem;
413
- font-weight: 400;
414
- letter-spacing: 0.03125em;
415
- margin-top: 20px;
416
- padding: 0 24px 24px;
457
+ .Button.raised:active {
458
+ box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.35);
417
459
  }
418
460
 
419
- .Dialog > div.row {
420
- margin-bottom: 15px;
461
+ .Button.disabled {
462
+ box-shadow: none;
463
+ background: #D9D9D9;
464
+ color: #999999;
421
465
  }
422
466
 
423
- .Dialog > div.row:last-child {
424
- margin-bottom: 0;
467
+ .Button.disabled:hover {
468
+ background-color: #cccccc;
425
469
  }
426
470
 
427
- .Dropzone {
471
+ .Button::-moz-focus-inner {
472
+ border: 0;
473
+ }
474
+
475
+ .Checkbox {
428
476
  position: relative;
477
+ white-space: pre;
429
478
  }
430
479
 
431
- .Dropzone > .overlay {
480
+ .Checkbox *, .Checkbox *:before, .Checkbox *:after {
481
+ box-sizing: border-box;
482
+ }
483
+
484
+ .Checkbox label {
485
+ font-family: Roboto, sans-serif;
486
+ font-size: 14px;
487
+ color: #1e252d;
488
+ cursor: pointer;
489
+ }
490
+
491
+ .Checkbox label:before, .Checkbox label:after {
492
+ content: "";
432
493
  position: absolute;
433
494
  left: 0;
434
- right: 0;
435
495
  top: 0;
436
- bottom: 0;
437
- background-color: #38ADC4;
438
- z-index: 1;
439
- opacity: 0;
440
- transition: all 0.2s ease;
441
- transition-delay: 100ms;
496
+ }
497
+
498
+ .Checkbox label:before {
499
+ width: 20px;
500
+ height: 20px;
501
+ background: #fff;
502
+ border: 2px solid #252525;
503
+ border-radius: 2px;
504
+ cursor: pointer;
505
+ transition: background 0.3s;
506
+ }
507
+
508
+ .Checkbox input[type=checkbox] {
509
+ outline: 0;
510
+ margin-right: 10px;
442
511
  visibility: hidden;
443
- display: flex;
444
- justify-content: center;
445
- align-items: center;
446
512
  }
447
513
 
448
- .Dropzone > .overlay .drop {
449
- border-radius: 4px;
450
- border: 1px dashed #FFFFFF;
451
- position: absolute;
452
- top: 18px;
453
- left: 18px;
454
- right: 18px;
455
- bottom: 18px;
456
- display: flex;
457
- justify-content: center;
458
- align-items: center;
459
- font-weight: 500;
460
- font-size: 18px;
461
- color: #FFFFFF;
514
+ .Checkbox input[type=checkbox]:checked + label:before {
515
+ background: #4AC263;
516
+ border: none;
517
+ }
518
+
519
+ .Checkbox input[type=checkbox]:checked + label:after {
520
+ transform: rotate(-45deg);
521
+ top: 6px;
522
+ left: 4px;
523
+ width: 12px;
524
+ height: 6px;
525
+ border: 2px solid #fff;
526
+ border-top-style: none;
527
+ border-right-style: none;
462
528
  }
463
529
 
464
- .Dropzone.dragging > .overlay {
465
- opacity: 0.7;
466
- visibility: visible;
467
- transition-delay: 0s;
530
+ .Checkbox input[type=checkbox]:disabled + label {
531
+ color: gray;
468
532
  }
469
533
 
470
- .Dropzone.dragging > * {
471
- pointer-events: none;
534
+ .Checkbox input[type=checkbox]:disabled + label:before {
535
+ border-color: rgba(0, 0, 0, 0.26);
472
536
  }
473
537
 
474
- .Dropzone > input.file {
475
- position: absolute;
476
- left: 0;
477
- right: 0;
478
- top: 0;
479
- bottom: 0;
480
- width: 100%;
481
- height: 100%;
482
- opacity: 0;
483
- cursor: pointer;
484
- z-index: 1;
538
+ .Checkbox input[type=checkbox]:disabled:checked + label:before {
539
+ background: rgba(0, 0, 0, 0.26);
485
540
  }
486
541
 
487
542
  .FilteredList {
@@ -569,311 +624,282 @@
569
624
  margin-bottom: 8px;
570
625
  }
571
626
 
572
- .Button.FloatingActionButton {
573
- position: absolute;
574
- right: 16px;
575
- bottom: 16px;
576
- width: 56px;
577
- height: 56px;
578
- padding: 16px;
579
- transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
627
+ .animated {
628
+ transition: opacity 250ms ease;
629
+ opacity: 0;
580
630
  }
581
631
 
582
- .Button.FloatingActionButton.raised {
583
- 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);
632
+ .animated.mounting, .animated.mounted {
633
+ opacity: 1;
584
634
  }
585
635
 
586
- .Button.FloatingActionButton.mini {
587
- width: 40px;
588
- height: 40px;
589
- padding: 8px;
636
+ .DialogModal {
637
+ overflow: hidden;
590
638
  }
591
639
 
592
- .Button.FloatingActionButton.hidden {
593
- bottom: -100px;
640
+ .DialogModal .content {
641
+ top: 20vh;
594
642
  }
595
643
 
596
- .DropFileInput {
597
- flex-grow: 1;
644
+ .Dialog {
645
+ background-color: white;
646
+ min-width: 460px;
647
+ max-width: 40vw;
648
+ padding: 15px;
598
649
  }
599
650
 
600
- .DropFileInput .Dropzone {
601
- border: 1px dashed #808080;
602
- padding: 12px;
603
- display: flex;
604
- flex-flow: row nowrap;
605
- justify-content: center;
606
- align-items: center;
607
- color: gray;
608
- cursor: pointer;
609
- border-radius: 3px;
610
- font-weight: normal;
611
- line-height: 22px;
612
- font-size: 14px;
613
- color: #7E7E7E;
614
- max-width: 100%;
615
- word-break: break-all;
616
- word-break: break-word;
651
+ .Dialog .title {
652
+ margin-bottom: 15px;
653
+ padding: 20px 50px 0px 30px;
654
+ font-size: 1.25rem;
655
+ line-height: 2rem;
656
+ font-weight: 400;
657
+ letter-spacing: 0.0125em;
617
658
  }
618
659
 
619
- .DropFileInput .Dropzone .icon.withText {
620
- margin-right: 10px;
660
+ .Dialog .description {
661
+ color: rgba(0, 0, 0, 0.54);
662
+ font-size: 1rem;
663
+ line-height: 1.5rem;
664
+ font-weight: 400;
665
+ letter-spacing: 0.03125em;
666
+ margin-top: 20px;
667
+ padding: 0 24px 24px;
621
668
  }
622
669
 
623
- .FormUploadProgress {
624
- position: absolute;
625
- left: 0;
626
- right: 0;
627
- top: 0;
628
- bottom: 0;
629
- background-color: rgba(255, 255, 255, 0.6);
630
- z-index: 2;
670
+ .Dialog > div.row {
671
+ margin-bottom: 15px;
631
672
  }
632
673
 
633
- .FormUploadProgress.animated.mounting, .FormUploadProgress.animated.mounted {
634
- transition-delay: 500ms;
674
+ .Dialog > div.row:last-child {
675
+ margin-bottom: 0;
635
676
  }
636
677
 
637
- .FormUploadProgress .wrapper {
638
- position: sticky;
639
- top: 40%;
640
- margin-top: 40%;
641
- margin-left: 50%;
642
- transform: translateX(-50%);
643
- display: flex;
644
- flex-flow: column;
645
- justify-content: center;
646
- align-items: center;
678
+ .Dropzone {
679
+ position: relative;
647
680
  }
648
681
 
649
- .FormUploadProgress .wrapper .CircleProgress, .FormUploadProgress .wrapper .SpinningProgress {
682
+ .Dropzone > .overlay {
650
683
  position: absolute;
651
- width: 107px;
652
- height: 107px;
653
- top: 0;
654
684
  left: 0;
655
- }
656
-
657
- .FormUploadProgress .wrapper .CircleProgress .line, .FormUploadProgress .wrapper .SpinningProgress .line {
658
- stroke: #2196F3;
659
- }
660
-
661
- .FormUploadProgress .wrapper > .progress {
662
- width: 107px;
663
- height: 107px;
664
- min-height: 107px;
685
+ right: 0;
686
+ top: 0;
687
+ bottom: 0;
688
+ background-color: #38ADC4;
689
+ z-index: 1;
690
+ opacity: 0;
691
+ transition: all 0.2s ease;
692
+ transition-delay: 100ms;
693
+ visibility: hidden;
665
694
  display: flex;
666
695
  justify-content: center;
667
696
  align-items: center;
668
- box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
669
- border-radius: 50%;
670
- background: white;
671
- position: relative;
672
- }
673
-
674
- .FormUploadProgress .wrapper > .progress > .value {
675
- display: inline-block;
676
- margin-top: 5px;
677
- font-weight: bold;
678
- line-height: 16px;
679
- font-size: 13px;
680
- text-align: center;
681
- color: #818181;
682
- }
683
-
684
- .FormUploadProgress .wrapper .cancel {
685
- min-width: 107px;
686
- margin-top: 20px;
687
- background-color: white;
688
- color: #F96B5C;
689
- box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
690
697
  }
691
698
 
692
- .Scrollable {
693
- max-height: 250px;
694
- max-width: 250px;
695
- padding-right: 5px;
696
- position: relative;
699
+ .Dropzone > .overlay .drop {
700
+ border-radius: 4px;
701
+ border: 1px dashed #FFFFFF;
702
+ position: absolute;
703
+ top: 18px;
704
+ left: 18px;
705
+ right: 18px;
706
+ bottom: 18px;
697
707
  display: flex;
698
- flex-flow: column;
699
- align-items: stretch;
700
- overflow: hidden;
708
+ justify-content: center;
709
+ align-items: center;
710
+ font-weight: 500;
711
+ font-size: 18px;
712
+ color: #FFFFFF;
701
713
  }
702
714
 
703
- .Scrollable:hover > .scrollbar.auto {
715
+ .Dropzone.dragging > .overlay {
716
+ opacity: 0.7;
717
+ visibility: visible;
704
718
  transition-delay: 0s;
705
- opacity: 1;
706
- }
707
-
708
- .Scrollable .viewport {
709
- overflow-y: scroll;
710
- overflow-x: scroll;
711
- max-height: 100%;
712
- scroll-behavior: smooth;
713
- scrollbar-width: none;
714
- }
715
-
716
- .Scrollable .viewport::-webkit-scrollbar {
717
- display: none;
718
- }
719
-
720
- .Scrollable.without-scroll-horizontal {
721
- max-width: unset;
722
719
  }
723
720
 
724
- .Scrollable.without-scroll {
725
- padding-right: 0;
726
- max-height: unset;
721
+ .Dropzone.dragging > * {
722
+ pointer-events: none;
727
723
  }
728
724
 
729
- .Scrollable.without-scroll > .viewport {
730
- padding-right: 0;
731
- margin-right: 0;
725
+ .Dropzone > input.file {
726
+ position: absolute;
727
+ left: 0;
728
+ right: 0;
729
+ top: 0;
730
+ bottom: 0;
731
+ width: 100%;
732
+ height: 100%;
733
+ opacity: 0;
734
+ cursor: pointer;
735
+ z-index: 1;
732
736
  }
733
737
 
734
- .Scrollable.without-scroll > .scrollbar {
735
- visibility: hidden;
738
+ .FormUploadProgress {
739
+ position: absolute;
740
+ left: 0;
741
+ right: 0;
742
+ top: 0;
743
+ bottom: 0;
744
+ background-color: rgba(255, 255, 255, 0.6);
745
+ z-index: 2;
736
746
  }
737
747
 
738
- .Scrollable .scrollbar {
739
- position: absolute;
740
- right: 0px;
741
- top: 0px;
742
- width: 5px;
743
- transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
744
- transition-delay: 0.5s;
745
- z-index: 1;
748
+ .FormUploadProgress.animated.mounting, .FormUploadProgress.animated.mounted {
749
+ transition-delay: 500ms;
746
750
  }
747
751
 
748
- .Scrollable .scrollbar.auto, .Scrollable .scrollbar.hidden {
749
- opacity: 0;
752
+ .FormUploadProgress .wrapper {
753
+ position: sticky;
754
+ top: 40%;
755
+ margin-top: 40%;
756
+ margin-left: 50%;
757
+ transform: translateX(-50%);
758
+ display: flex;
759
+ flex-flow: column;
760
+ justify-content: center;
761
+ align-items: center;
750
762
  }
751
763
 
752
- .Scrollable .scrollbar .thumb {
753
- background-color: rgba(0, 0, 0, 0.3);
754
- width: 5px;
764
+ .FormUploadProgress .wrapper .CircleProgress, .FormUploadProgress .wrapper .SpinningProgress {
755
765
  position: absolute;
756
- right: 0px;
757
- top: 0px;
758
- user-select: none;
759
- will-change: top;
760
- border-radius: 2px;
766
+ width: 107px;
767
+ height: 107px;
768
+ top: 0;
769
+ left: 0;
761
770
  }
762
771
 
763
- .Scrollable .scrollbar .thumb:hover {
764
- background-color: rgba(0, 0, 0, 0.5);
772
+ .FormUploadProgress .wrapper .CircleProgress .line, .FormUploadProgress .wrapper .SpinningProgress .line {
773
+ stroke: #2196F3;
765
774
  }
766
775
 
767
- .Scrollable .scrollbar .thumb:active {
768
- background-color: rgba(0, 0, 0, 0.7);
776
+ .FormUploadProgress .wrapper > .progress {
777
+ width: 107px;
778
+ height: 107px;
779
+ min-height: 107px;
780
+ display: flex;
781
+ justify-content: center;
782
+ align-items: center;
783
+ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
784
+ border-radius: 50%;
785
+ background: white;
786
+ position: relative;
769
787
  }
770
788
 
771
- .Scrollable .scrollbar.horizontal {
772
- left: 0px;
773
- right: 0px;
774
- height: 5px;
775
- bottom: 0;
776
- width: unset;
777
- top: unset;
789
+ .FormUploadProgress .wrapper > .progress > .value {
790
+ display: inline-block;
791
+ margin-top: 5px;
792
+ font-weight: bold;
793
+ line-height: 16px;
794
+ font-size: 13px;
795
+ text-align: center;
796
+ color: #818181;
778
797
  }
779
798
 
780
- .Scrollable .scrollbar.horizontal .thumb {
781
- height: 5px;
782
- left: 0px;
783
- bottom: 0px;
784
- will-change: left;
799
+ .FormUploadProgress .wrapper .cancel {
800
+ min-width: 107px;
801
+ margin-top: 20px;
802
+ background-color: white;
803
+ color: #F96B5C;
804
+ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.25);
785
805
  }
786
806
 
787
- .ModalMenu {
807
+ .Button.FloatingActionButton {
788
808
  position: absolute;
789
- top: 10px;
790
- right: 50px;
809
+ right: 16px;
810
+ bottom: 16px;
811
+ width: 56px;
812
+ height: 56px;
813
+ padding: 16px;
814
+ transition: bottom 0.2s cubic-bezier(0.4, 0, 0.2, 1);
791
815
  }
792
816
 
793
- .ModalMenu .material-icons {
794
- color: #818181;
817
+ .Button.FloatingActionButton.raised {
818
+ 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);
795
819
  }
796
820
 
797
- .ModalMenu .Button.animated {
798
- position: absolute;
799
- transition: opacity 150ms ease-in, right 200ms ease-in;
800
- opacity: 0;
801
- right: 0;
802
- top: 0;
821
+ .Button.FloatingActionButton.mini {
822
+ width: 40px;
823
+ height: 40px;
824
+ padding: 8px;
803
825
  }
804
826
 
805
- .ModalMenu .Button.animated.mounting, .ModalMenu .Button.animated.mounted {
806
- opacity: 1;
827
+ .Button.FloatingActionButton.hidden {
828
+ bottom: -100px;
807
829
  }
808
830
 
809
- .ModalMenu .Button.animated.unmounting {
810
- transition: opacity 100ms ease-out, right 200ms ease-out;
831
+ .Snackbar {
832
+ transform: translateX(-50%);
833
+ overflow: hidden;
834
+ background-color: #323232;
835
+ padding: 14px 24px 14px 24px;
836
+ color: #fff;
837
+ min-width: 288px;
838
+ max-width: 568px;
839
+ position: fixed;
840
+ bottom: -50px;
841
+ left: 50%;
842
+ display: flex;
843
+ flex-wrap: nowrap;
844
+ align-items: center;
845
+ opacity: 0;
846
+ transition: bottom 0.25s ease, opacity 0.2s ease;
847
+ border-radius: 4px;
848
+ box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
811
849
  }
812
850
 
813
- .ModalMenu .Button.active {
814
- background: #EBEBEB;
851
+ .Snackbar.shown {
852
+ bottom: 15px;
853
+ opacity: 1;
815
854
  }
816
855
 
817
- .ModalMenu .separator {
818
- height: 24px;
819
- width: 1px;
820
- background-color: #D9D9D9;
821
- margin-left: 4px;
856
+ .Snackbar .message {
857
+ overflow: hidden;
858
+ line-height: 1.2em;
859
+ min-height: 1.2em;
860
+ max-height: 2.4em;
861
+ flex: 1;
822
862
  }
823
863
 
824
- .SpinningProgress {
825
- width: 48px;
826
- height: 48px;
827
- position: relative;
828
- margin: 0 auto;
864
+ .Snackbar .action {
865
+ text-transform: uppercase;
866
+ font-weight: bold;
867
+ margin-left: 48px;
868
+ color: #bf3727;
829
869
  }
830
870
 
831
- .SpinningProgress:before {
832
- content: "";
833
- display: block;
834
- padding-top: 100%;
871
+ .Snackbar .action a {
872
+ text-decoration: none;
873
+ color: #bf3727;
835
874
  }
836
875
 
837
- .SpinningProgress .circular {
838
- animation: rotate 2s linear infinite;
839
- height: 100%;
840
- transform-origin: center center;
841
- width: 100%;
842
- position: absolute;
843
- top: 0;
844
- bottom: 0;
845
- left: 0;
846
- right: 0;
847
- margin: auto;
876
+ .DropFileInput {
877
+ flex-grow: 1;
848
878
  }
849
879
 
850
- .SpinningProgress .line {
851
- stroke: black;
852
- stroke-width: 2px;
853
- stroke-dasharray: 1, 96;
854
- stroke-dashoffset: 0;
855
- animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
880
+ .DropFileInput .Dropzone {
881
+ border: 1px dashed #808080;
882
+ padding: 12px;
883
+ display: flex;
884
+ flex-flow: row nowrap;
885
+ justify-content: center;
886
+ align-items: center;
887
+ color: gray;
888
+ cursor: pointer;
889
+ border-radius: 3px;
890
+ font-weight: normal;
891
+ line-height: 22px;
892
+ font-size: 14px;
893
+ color: #7E7E7E;
894
+ max-width: 100%;
895
+ word-break: break-all;
896
+ word-break: break-word;
856
897
  }
857
898
 
858
- @keyframes rotate {
859
- 100% {
860
- transform: rotate(360deg);
861
- }
862
- }
863
- @keyframes dash {
864
- 0% {
865
- stroke-dasharray: 1, 96;
866
- stroke-dashoffset: 0;
867
- }
868
- 50% {
869
- stroke-dasharray: 43, 96;
870
- stroke-dashoffset: -17px;
871
- }
872
- 100% {
873
- stroke-dasharray: 43, 96;
874
- stroke-dashoffset: -53px;
875
- }
899
+ .DropFileInput .Dropzone .icon.withText {
900
+ margin-right: 10px;
876
901
  }
902
+
877
903
  .Modal {
878
904
  display: block;
879
905
  position: fixed;
@@ -1179,49 +1205,41 @@
1179
1205
  font-size: 24px;
1180
1206
  }
1181
1207
 
1182
- .Snackbar {
1183
- transform: translateX(-50%);
1184
- overflow: hidden;
1185
- background-color: #323232;
1186
- padding: 14px 24px 14px 24px;
1187
- color: #fff;
1188
- min-width: 288px;
1189
- max-width: 568px;
1190
- position: fixed;
1191
- bottom: -50px;
1192
- left: 50%;
1193
- display: flex;
1194
- flex-wrap: nowrap;
1195
- align-items: center;
1208
+ .ModalMenu {
1209
+ position: absolute;
1210
+ top: 10px;
1211
+ right: 50px;
1212
+ }
1213
+
1214
+ .ModalMenu .material-icons {
1215
+ color: #818181;
1216
+ }
1217
+
1218
+ .ModalMenu .Button.animated {
1219
+ position: absolute;
1220
+ transition: opacity 150ms ease-in, right 200ms ease-in;
1196
1221
  opacity: 0;
1197
- transition: bottom 0.25s ease, opacity 0.2s ease;
1198
- border-radius: 4px;
1199
- box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.25);
1222
+ right: 0;
1223
+ top: 0;
1200
1224
  }
1201
1225
 
1202
- .Snackbar.shown {
1203
- bottom: 15px;
1226
+ .ModalMenu .Button.animated.mounting, .ModalMenu .Button.animated.mounted {
1204
1227
  opacity: 1;
1205
1228
  }
1206
1229
 
1207
- .Snackbar .message {
1208
- overflow: hidden;
1209
- line-height: 1.2em;
1210
- min-height: 1.2em;
1211
- max-height: 2.4em;
1212
- flex: 1;
1230
+ .ModalMenu .Button.animated.unmounting {
1231
+ transition: opacity 100ms ease-out, right 200ms ease-out;
1213
1232
  }
1214
1233
 
1215
- .Snackbar .action {
1216
- text-transform: uppercase;
1217
- font-weight: bold;
1218
- margin-left: 48px;
1219
- color: #bf3727;
1234
+ .ModalMenu .Button.active {
1235
+ background: #EBEBEB;
1220
1236
  }
1221
1237
 
1222
- .Snackbar .action a {
1223
- text-decoration: none;
1224
- color: #bf3727;
1238
+ .ModalMenu .separator {
1239
+ height: 24px;
1240
+ width: 1px;
1241
+ background-color: #D9D9D9;
1242
+ margin-left: 4px;
1225
1243
  }
1226
1244
 
1227
1245
  .Switch {
@@ -1306,6 +1324,101 @@
1306
1324
  display: none;
1307
1325
  }
1308
1326
 
1327
+ .Scrollable {
1328
+ max-height: 250px;
1329
+ max-width: 250px;
1330
+ padding-right: 5px;
1331
+ position: relative;
1332
+ display: flex;
1333
+ flex-flow: column;
1334
+ align-items: stretch;
1335
+ overflow: hidden;
1336
+ }
1337
+
1338
+ .Scrollable:hover > .scrollbar.auto {
1339
+ transition-delay: 0s;
1340
+ opacity: 1;
1341
+ }
1342
+
1343
+ .Scrollable .viewport {
1344
+ overflow-y: scroll;
1345
+ overflow-x: scroll;
1346
+ max-height: 100%;
1347
+ scroll-behavior: smooth;
1348
+ scrollbar-width: none;
1349
+ }
1350
+
1351
+ .Scrollable .viewport::-webkit-scrollbar {
1352
+ display: none;
1353
+ }
1354
+
1355
+ .Scrollable.without-scroll-horizontal {
1356
+ max-width: unset;
1357
+ }
1358
+
1359
+ .Scrollable.without-scroll {
1360
+ padding-right: 0;
1361
+ max-height: unset;
1362
+ }
1363
+
1364
+ .Scrollable.without-scroll > .viewport {
1365
+ padding-right: 0;
1366
+ margin-right: 0;
1367
+ }
1368
+
1369
+ .Scrollable.without-scroll > .scrollbar {
1370
+ visibility: hidden;
1371
+ }
1372
+
1373
+ .Scrollable .scrollbar {
1374
+ position: absolute;
1375
+ right: 0px;
1376
+ top: 0px;
1377
+ width: 5px;
1378
+ transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
1379
+ transition-delay: 0.5s;
1380
+ z-index: 1;
1381
+ }
1382
+
1383
+ .Scrollable .scrollbar.auto, .Scrollable .scrollbar.hidden {
1384
+ opacity: 0;
1385
+ }
1386
+
1387
+ .Scrollable .scrollbar .thumb {
1388
+ background-color: rgba(0, 0, 0, 0.3);
1389
+ width: 5px;
1390
+ position: absolute;
1391
+ right: 0px;
1392
+ top: 0px;
1393
+ user-select: none;
1394
+ will-change: top;
1395
+ border-radius: 2px;
1396
+ }
1397
+
1398
+ .Scrollable .scrollbar .thumb:hover {
1399
+ background-color: rgba(0, 0, 0, 0.5);
1400
+ }
1401
+
1402
+ .Scrollable .scrollbar .thumb:active {
1403
+ background-color: rgba(0, 0, 0, 0.7);
1404
+ }
1405
+
1406
+ .Scrollable .scrollbar.horizontal {
1407
+ left: 0px;
1408
+ right: 0px;
1409
+ height: 5px;
1410
+ bottom: 0;
1411
+ width: unset;
1412
+ top: unset;
1413
+ }
1414
+
1415
+ .Scrollable .scrollbar.horizontal .thumb {
1416
+ height: 5px;
1417
+ left: 0px;
1418
+ bottom: 0px;
1419
+ will-change: left;
1420
+ }
1421
+
1309
1422
  .TextField {
1310
1423
  position: relative;
1311
1424
  width: 100%;
@@ -1389,307 +1502,137 @@
1389
1502
  line-height: 14px;
1390
1503
  }
1391
1504
 
1392
- .TextField.errored > .error {
1393
- visibility: visible;
1394
- opacity: 1;
1395
- }
1396
-
1397
- .TextField.errored > .border {
1398
- border-bottom-color: rgb(244, 67, 54);
1399
- }
1400
-
1401
- .TextField.errored > label {
1402
- color: rgb(244, 67, 54);
1403
- }
1404
-
1405
- .TextField.focused > label {
1406
- color: rgb(0, 188, 212);
1407
- }
1408
-
1409
- .TextField.focused > .border .line {
1410
- left: 0;
1411
- width: 100%;
1412
- }
1413
-
1414
- .TextField.disabled label, .TextField.disabled input {
1415
- cursor: not-allowed;
1416
- }
1417
-
1418
- .TextField.withLabel {
1419
- margin-top: 15px;
1420
- }
1421
-
1422
- .TextField input::-webkit-contacts-auto-fill-button {
1423
- visibility: hidden;
1424
- display: none !important;
1425
- pointer-events: none;
1426
- position: absolute;
1427
- right: 0;
1428
- }
1429
-
1430
- .TextField input:-webkit-autofill {
1431
- -webkit-box-shadow: inset 0 0 0px 9999px white;
1432
- }
1433
-
1434
- @keyframes shake {
1435
- 0%, 100% {
1436
- transform: translateX(0);
1437
- }
1438
- 20%, 60% {
1439
- transform: translateX(-5px);
1440
- }
1441
- 40%, 80% {
1442
- transform: translateX(5px);
1443
- }
1444
- }
1445
- .TextField .shake {
1446
- animation-duration: 0.5s;
1447
- animation-fill-mode: both;
1448
- animation-timing-function: ease-in-out;
1449
- animation-name: shake;
1450
- }
1451
-
1452
- .DNDContainer .DroppableList .Draggable {
1453
- transform: unset;
1454
- transition: unset;
1455
- opacity: 1;
1456
- }
1457
-
1458
- .DNDContainer .DroppableList .Draggable.dragged {
1459
- transition: unset !important;
1460
- }
1461
-
1462
- .DNDContainer .DroppableList.hover .Draggable {
1463
- transition: transform 0.2s ease-in;
1464
- }
1465
-
1466
- .DNDContainer .DroppableList.resetting .Draggable {
1467
- transition: transform 0.1s ease-in;
1468
- }
1469
-
1470
- .Button {
1471
- position: relative;
1472
- min-width: 64px;
1473
- min-height: 36px;
1474
- height: 24px;
1475
- margin: 0px;
1476
- padding: 0px 16px;
1477
- border: none;
1478
- outline: none;
1479
- font-size: 14px;
1480
- font-weight: 500;
1481
- letter-spacing: 1.25px;
1482
- background: #dfdfdf;
1483
- text-transform: uppercase;
1484
- font-family: Roboto, sans-serif;
1485
- -webkit-tap-highlight-color: transparent;
1486
- display: inline-flex;
1487
- justify-content: center;
1488
- align-items: center;
1489
- cursor: pointer;
1490
- overflow: hidden;
1491
- user-select: none;
1492
- border-radius: 3px;
1493
- transition: all 0.2s ease;
1494
- }
1495
-
1496
- .Button.flat {
1497
- background-color: transparent;
1498
- }
1499
-
1500
- .Button.flat:hover {
1501
- background-color: rgba(0, 0, 0, 0.05);
1502
- }
1503
-
1504
- .Button.green {
1505
- background-color: #43a047;
1506
- color: white;
1507
- }
1508
-
1509
- .Button.green:hover {
1510
- background-color: #3b8e3f;
1511
- }
1512
-
1513
- .Button.blue {
1514
- background-color: #039be5;
1515
- color: white;
1516
- }
1517
-
1518
- .Button.blue:hover {
1519
- background-color: #038acc;
1520
- }
1521
-
1522
- .Button.red {
1523
- background-color: #e53935;
1524
- color: white;
1525
- }
1526
-
1527
- .Button.red:hover {
1528
- background-color: #e2231e;
1529
- }
1530
-
1531
- .Button.black {
1532
- background-color: #1e252d;
1533
- color: white;
1534
- }
1535
-
1536
- .Button.black:hover {
1537
- background-color: #14181e;
1538
- }
1539
-
1540
- .Button.gray {
1541
- background: #D9D9D9;
1542
- color: #999999;
1543
- }
1544
-
1545
- .Button.gray:hover {
1546
- background-color: #cccccc;
1547
- }
1548
-
1549
- .Button.small {
1550
- padding: 0px 8px;
1551
- min-height: 16px;
1552
- min-width: 16px;
1505
+ .TextField.errored > .error {
1506
+ visibility: visible;
1507
+ opacity: 1;
1553
1508
  }
1554
1509
 
1555
- .Button > .material-icons {
1556
- margin-right: 10px;
1510
+ .TextField.errored > .border {
1511
+ border-bottom-color: rgb(244, 67, 54);
1557
1512
  }
1558
1513
 
1559
- .Button.round {
1560
- padding: 0px;
1561
- min-width: 36px;
1562
- border-radius: 50%;
1514
+ .TextField.errored > label {
1515
+ color: rgb(244, 67, 54);
1563
1516
  }
1564
1517
 
1565
- .Button.round > .material-icons {
1566
- margin: 0px;
1518
+ .TextField.focused > label {
1519
+ color: rgb(0, 188, 212);
1567
1520
  }
1568
1521
 
1569
- .Button .ripple {
1570
- position: absolute;
1571
- background: rgba(0, 0, 0, 0.1);
1572
- border-radius: 100%;
1573
- transform: scale(0);
1574
- pointer-events: none;
1575
- transition: opacity 0.2s ease-out;
1522
+ .TextField.focused > .border .line {
1523
+ left: 0;
1524
+ width: 100%;
1576
1525
  }
1577
1526
 
1578
- .Button .ripple.show {
1579
- animation: ripple 0.35s ease-out;
1527
+ .TextField.disabled label, .TextField.disabled input {
1528
+ cursor: not-allowed;
1580
1529
  }
1581
1530
 
1582
- .Button:active .ripple.showed {
1583
- opacity: 1;
1531
+ .TextField.withLabel {
1532
+ margin-top: 15px;
1584
1533
  }
1585
1534
 
1586
- .Button:focus .ripple.focused {
1587
- opacity: 1;
1588
- transition: opacity 0.2s ease-out, transform 0.2s ease-out;
1589
- transform: scale(1);
1590
- animation: resize 1.25s ease-out infinite;
1591
- animation-delay: 0.2s;
1592
- animation-direction: alternate;
1535
+ .TextField input::-webkit-contacts-auto-fill-button {
1536
+ visibility: hidden;
1537
+ display: none !important;
1538
+ pointer-events: none;
1539
+ position: absolute;
1540
+ right: 0;
1593
1541
  }
1594
1542
 
1595
- .Button .ripple.showed {
1596
- transform: scale(2);
1597
- opacity: 0;
1543
+ .TextField input:-webkit-autofill {
1544
+ -webkit-box-shadow: inset 0 0 0px 9999px white;
1598
1545
  }
1599
1546
 
1600
- @keyframes ripple {
1601
- to {
1602
- transform: scale(2);
1547
+ @keyframes shake {
1548
+ 0%, 100% {
1549
+ transform: translateX(0);
1603
1550
  }
1604
- }
1605
- @keyframes resize {
1606
- to {
1607
- transform: scale(0.9);
1551
+ 20%, 60% {
1552
+ transform: translateX(-5px);
1553
+ }
1554
+ 40%, 80% {
1555
+ transform: translateX(5px);
1608
1556
  }
1609
1557
  }
1610
- .Button.raised {
1611
- transition: color 0.2s ease-out, background-color 0.2s ease-out, box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
1612
- }
1613
-
1614
- .Button.raised:hover {
1615
- box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.25);
1558
+ .TextField .shake {
1559
+ animation-duration: 0.5s;
1560
+ animation-fill-mode: both;
1561
+ animation-timing-function: ease-in-out;
1562
+ animation-name: shake;
1616
1563
  }
1617
1564
 
1618
- .Button.raised:active {
1619
- box-shadow: 0px 2px 3px rgba(0, 0, 0, 0.35);
1565
+ .DNDContainer .DroppableList .Draggable {
1566
+ transform: unset;
1567
+ transition: unset;
1568
+ opacity: 1;
1620
1569
  }
1621
1570
 
1622
- .Button.disabled {
1623
- box-shadow: none;
1624
- background: #D9D9D9;
1625
- color: #999999;
1571
+ .DNDContainer .DroppableList .Draggable.dragged {
1572
+ transition: unset !important;
1626
1573
  }
1627
1574
 
1628
- .Button.disabled:hover {
1629
- background-color: #cccccc;
1575
+ .DNDContainer .DroppableList.hover .Draggable {
1576
+ transition: transform 0.2s ease-in;
1630
1577
  }
1631
1578
 
1632
- .Button::-moz-focus-inner {
1633
- border: 0;
1579
+ .DNDContainer .DroppableList.resetting .Draggable {
1580
+ transition: transform 0.1s ease-in;
1634
1581
  }
1635
1582
 
1636
- .DNDContainer {
1583
+ .SpinningProgress {
1584
+ width: 48px;
1585
+ height: 48px;
1637
1586
  position: relative;
1587
+ margin: 0 auto;
1638
1588
  }
1639
1589
 
1640
- .DNDContainer .Draggable[draggable=true], .DNDContainer .Draggable [draggable=true] {
1641
- cursor: pointer;
1642
- }
1643
-
1644
- .DNDContainer .Draggable.placeholder {
1645
- opacity: 0.2;
1646
- }
1647
-
1648
- .DNDContainer .Draggable.copy {
1649
- position: absolute;
1650
- box-sizing: border-box;
1651
- will-change: transform;
1652
- opacity: 0;
1653
- }
1654
-
1655
- .DNDContainer .Draggable.dragged {
1656
- z-index: 10;
1590
+ .SpinningProgress:before {
1591
+ content: "";
1592
+ display: block;
1593
+ padding-top: 100%;
1657
1594
  }
1658
1595
 
1659
- .DNDContainer .overlay {
1596
+ .SpinningProgress .circular {
1597
+ animation: rotate 2s linear infinite;
1598
+ height: 100%;
1599
+ transform-origin: center center;
1600
+ width: 100%;
1660
1601
  position: absolute;
1661
1602
  top: 0;
1603
+ bottom: 0;
1662
1604
  left: 0;
1663
1605
  right: 0;
1664
- bottom: 0;
1665
- pointer-events: none;
1666
- }
1667
-
1668
- .CalendarMonthView {
1669
- display: flex;
1670
- flex-flow: column nowrap;
1671
- height: 100%;
1672
- }
1673
-
1674
- .CalendarMonthView > .row {
1675
- display: flex;
1676
- flex-flow: row nowrap;
1606
+ margin: auto;
1677
1607
  }
1678
1608
 
1679
- .CalendarMonthView .days {
1680
- flex-grow: 1;
1681
- position: relative;
1609
+ .SpinningProgress .line {
1610
+ stroke: black;
1611
+ stroke-width: 2px;
1612
+ stroke-dasharray: 1, 96;
1613
+ stroke-dashoffset: 0;
1614
+ animation: dash 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
1682
1615
  }
1683
1616
 
1684
- .CalendarMonthView .day, .CalendarMonthView .header {
1685
- flex-grow: 1;
1686
- flex-basis: 1px;
1617
+ @keyframes rotate {
1618
+ 100% {
1619
+ transform: rotate(360deg);
1620
+ }
1687
1621
  }
1688
-
1689
- .CalendarMonthView .day {
1690
- height: 100%;
1622
+ @keyframes dash {
1623
+ 0% {
1624
+ stroke-dasharray: 1, 96;
1625
+ stroke-dashoffset: 0;
1626
+ }
1627
+ 50% {
1628
+ stroke-dasharray: 43, 96;
1629
+ stroke-dashoffset: -17px;
1630
+ }
1631
+ 100% {
1632
+ stroke-dasharray: 43, 96;
1633
+ stroke-dashoffset: -53px;
1634
+ }
1691
1635
  }
1692
-
1693
1636
  .DatePicker {
1694
1637
  position: relative;
1695
1638
  }
@@ -1807,6 +1750,71 @@
1807
1750
  background-color: #51adf6;
1808
1751
  }
1809
1752
 
1753
+ .CalendarMonthView {
1754
+ display: flex;
1755
+ flex-flow: column nowrap;
1756
+ height: 100%;
1757
+ }
1758
+
1759
+ .CalendarMonthView > .row {
1760
+ display: flex;
1761
+ flex-flow: row nowrap;
1762
+ }
1763
+
1764
+ .CalendarMonthView .days {
1765
+ flex-grow: 1;
1766
+ position: relative;
1767
+ }
1768
+
1769
+ .CalendarMonthView .day, .CalendarMonthView .header {
1770
+ flex-grow: 1;
1771
+ flex-basis: 1px;
1772
+ }
1773
+
1774
+ .CalendarMonthView .day {
1775
+ height: 100%;
1776
+ }
1777
+
1778
+ .DNDContainer {
1779
+ position: relative;
1780
+ }
1781
+
1782
+ .DNDContainer .Draggable[draggable=true], .DNDContainer .Draggable [draggable=true] {
1783
+ cursor: pointer;
1784
+ }
1785
+
1786
+ .DNDContainer .Draggable.placeholder {
1787
+ opacity: 0.2;
1788
+ }
1789
+
1790
+ .DNDContainer .Draggable.copy {
1791
+ position: absolute;
1792
+ box-sizing: border-box;
1793
+ will-change: transform;
1794
+ opacity: 0;
1795
+ }
1796
+
1797
+ .DNDContainer .Draggable.dragged {
1798
+ z-index: 10;
1799
+ }
1800
+
1801
+ .DNDContainer .overlay {
1802
+ position: absolute;
1803
+ top: 0;
1804
+ left: 0;
1805
+ right: 0;
1806
+ bottom: 0;
1807
+ pointer-events: none;
1808
+ }
1809
+
1810
+ .ScrollableTable .Scrollable .scrollbar {
1811
+ top: 56px;
1812
+ }
1813
+
1814
+ .ScrollableTable .Table {
1815
+ position: static;
1816
+ }
1817
+
1810
1818
  .Table {
1811
1819
  font-family: Roboto, sans-serif;
1812
1820
  font-size: 14px;
@@ -1927,12 +1935,4 @@
1927
1935
 
1928
1936
  .Table .editable > .AutocompleteSelect > .selected > .DummyChild {
1929
1937
  margin: 0;
1930
- }
1931
-
1932
- .ScrollableTable .Scrollable .scrollbar {
1933
- top: 56px;
1934
- }
1935
-
1936
- .ScrollableTable .Table {
1937
- position: static;
1938
1938
  }