pushfeedback 0.1.67 → 0.1.69

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.
@@ -344,37 +344,388 @@
344
344
  object-fit: cover;
345
345
  }
346
346
 
347
- .preview-modal-overlay {
347
+
348
+
349
+ .screenshot-loading {
350
+ display: inline-flex;
351
+ align-items: center;
352
+ margin-right: 8px;
353
+ }
354
+
355
+ /* Canvas Editor Styles - Consistent with Widget Design */
356
+ .canvas-editor-overlay {
348
357
  position: fixed;
349
358
  top: 0;
350
359
  left: 0;
351
360
  right: 0;
352
361
  bottom: 0;
353
- background-color: rgba(0, 0, 0, 0.8);
354
- z-index: 10000;
362
+ background-color: var(--feedback-modal-screenshot-bg-color);
363
+ z-index: 10001;
364
+ display: flex;
365
+ align-items: center;
366
+ justify-content: center;
367
+ }
368
+
369
+ .canvas-editor-modal {
370
+ width: 95vw;
371
+ height: 98vh;
372
+ background: var(--feedback-canvas-editor-bg-color);
373
+ border-radius: var(--feedback-modal-content-border-radius);
374
+ display: flex;
375
+ flex-direction: column;
376
+ overflow: hidden;
377
+ box-shadow: 0px 1px 2px 0px rgba(60, 64, 67, .30), 0px 2px 6px 2px rgba(60, 64, 67, .15);
378
+ }
379
+
380
+ .canvas-editor-header {
381
+ background: var(--feedback-canvas-editor-header-bg-color);
382
+ border-bottom: 1px solid var(--feedback-canvas-editor-border-color);
383
+ padding: 12px 16px;
384
+ display: flex;
385
+ flex-direction: column;
386
+ gap: 12px;
387
+ flex-shrink: 0;
388
+ }
389
+
390
+ .canvas-editor-title h3 {
391
+ margin: 0;
392
+ font-size: var(--feedback-modal-header-font-size);
393
+ font-weight: var(--feedback-modal-header-font-weight);
394
+ color: var(--feedback-modal-header-text-color);
395
+ font-family: var(--feedback-modal-header-font-family);
396
+ }
397
+
398
+ .canvas-editor-toolbar {
399
+ display: flex;
400
+ align-items: center;
401
+ gap: 20px;
402
+ flex-wrap: wrap;
403
+ }
404
+
405
+ .toolbar-section {
406
+ display: flex;
407
+ align-items: center;
408
+ }
409
+
410
+ .toolbar-section:last-child {
411
+ margin-left: auto;
412
+ gap: 10px;
413
+ }
414
+
415
+ .tool-group {
416
+ display: flex;
417
+ align-items: center;
418
+ background: var(--feedback-canvas-editor-tool-bg-color);
419
+ border: 1px solid var(--feedback-canvas-editor-border-color);
420
+ border-radius: var(--feedback-modal-button-border-radius);
421
+ padding: 4px;
422
+ box-shadow: 0px 1px 2px 0px rgba(60, 64, 67, .10);
423
+ }
424
+
425
+ .tool-btn {
355
426
  display: flex;
356
427
  align-items: center;
357
428
  justify-content: center;
429
+ width: 36px;
430
+ height: 36px;
431
+ border: none;
432
+ background: none;
433
+ border-radius: var(--feedback-modal-button-border-radius);
358
434
  cursor: pointer;
435
+ color: var(--feedback-canvas-editor-tool-text-color);
436
+ transition: all 0.2s ease;
437
+ position: relative;
438
+ }
439
+
440
+ .tool-btn:hover {
441
+ background: var(--feedback-canvas-editor-tool-bg-hover);
442
+ color: var(--feedback-modal-button-text-color-active);
443
+ }
444
+
445
+ .tool-btn.active {
446
+ background: var(--feedback-canvas-editor-tool-bg-active);
447
+ color: var(--feedback-canvas-editor-tool-text-active);
448
+ }
449
+
450
+ .tool-btn:disabled {
451
+ opacity: 0.4;
452
+ cursor: not-allowed;
453
+ }
454
+
455
+ .tool-btn:disabled:hover {
456
+ background: none;
457
+ color: var(--feedback-canvas-editor-tool-text-color);
359
458
  }
360
459
 
361
- .preview-modal {
460
+ .toolbar-divider {
461
+ width: 1px;
462
+ height: 20px;
463
+ background: var(--feedback-canvas-editor-divider-color);
464
+ margin: 0 6px;
465
+ }
466
+
467
+ .undo-btn {
468
+ background: var(--feedback-canvas-editor-tool-bg-color) !important;
469
+ border: 1px solid var(--feedback-canvas-editor-border-color) !important;
470
+ }
471
+
472
+ .undo-btn:hover:not(:disabled) {
473
+ background: var(--feedback-canvas-editor-tool-bg-hover) !important;
474
+ }
475
+
476
+ .color-palette {
477
+ display: flex;
478
+ align-items: center;
479
+ gap: 6px;
480
+ background: var(--feedback-canvas-editor-tool-bg-color);
481
+ border: 1px solid var(--feedback-canvas-editor-border-color);
482
+ border-radius: var(--feedback-modal-button-border-radius);
483
+ padding: 6px;
484
+ box-shadow: 0px 1px 2px 0px rgba(60, 64, 67, .10);
485
+ }
486
+
487
+ .color-slot-wrapper {
362
488
  position: relative;
363
- max-width: 90vw;
364
- max-height: 90vh;
365
- border-radius: 8px;
489
+ }
490
+
491
+ .color-btn {
492
+ width: 28px;
493
+ height: 28px;
494
+ border-radius: var(--feedback-modal-button-border-radius);
495
+ border: 2px solid transparent;
496
+ cursor: pointer;
497
+ transition: all 0.2s ease;
498
+ position: relative;
499
+ box-shadow: 0px 1px 2px 0px rgba(60, 64, 67, .15);
500
+ display: flex;
501
+ align-items: center;
502
+ justify-content: center;
503
+ }
504
+
505
+ .color-btn:hover {
506
+ transform: scale(1.05);
507
+ box-shadow: 0px 2px 4px 0px rgba(60, 64, 67, .25);
508
+ }
509
+
510
+ .color-btn.active {
511
+ border-color: var(--feedback-primary-color);
512
+ transform: scale(1.1);
513
+ box-shadow: 0 0 0 2px rgba(0, 112, 244, 0.2);
514
+ }
515
+
516
+ .color-btn.editing {
517
+ border-color: var(--feedback-highlight-color);
518
+ box-shadow: 0 0 0 2px rgba(255, 180, 34, 0.3);
519
+ }
520
+
521
+ .color-btn.editing:hover {
522
+ border-color: var(--feedback-highlight-color);
523
+ box-shadow: 0 0 0 2px rgba(255, 180, 34, 0.4);
524
+ }
525
+
526
+ .color-picker-dropdown {
527
+ position: absolute;
528
+ top: 100%;
529
+ left: 50%;
530
+ transform: translateX(-50%);
531
+ margin-top: 6px;
532
+ background: var(--feedback-canvas-editor-tool-bg-color);
533
+ border: 1px solid var(--feedback-canvas-editor-border-color);
534
+ border-radius: var(--feedback-modal-button-border-radius);
535
+ padding: 6px;
536
+ box-shadow: 0px 1px 2px 0px rgba(60, 64, 67, .30), 0px 2px 6px 2px rgba(60, 64, 67, .15);
537
+ z-index: 1000;
538
+ }
539
+
540
+ .color-picker-dropdown input[type="color"] {
541
+ width: 50px;
542
+ height: 32px;
543
+ border: none;
544
+ border-radius: var(--feedback-modal-button-border-radius);
545
+ cursor: pointer;
546
+ }
547
+
548
+ .size-control {
549
+ display: flex;
550
+ align-items: center;
551
+ gap: 10px;
552
+ background: var(--feedback-canvas-editor-tool-bg-color);
553
+ border: 1px solid var(--feedback-canvas-editor-border-color);
554
+ border-radius: var(--feedback-modal-button-border-radius);
555
+ padding: 6px 12px;
556
+ box-shadow: 0px 1px 2px 0px rgba(60, 64, 67, .10);
557
+ }
558
+
559
+ .size-slider {
560
+ width: 70px;
561
+ height: 4px;
562
+ border-radius: 2px;
563
+ background: var(--feedback-canvas-editor-slider-track);
564
+ outline: none;
565
+ -webkit-appearance: none;
566
+ -moz-appearance: none;
567
+ appearance: none;
568
+ cursor: pointer;
569
+ border: none;
570
+ }
571
+
572
+ .size-slider::-webkit-slider-track {
573
+ width: 100%;
574
+ height: 4px;
575
+ cursor: pointer;
576
+ background: var(--feedback-canvas-editor-slider-track);
577
+ border-radius: 2px;
578
+ border: none;
579
+ box-shadow: none;
580
+ }
581
+
582
+ .size-slider::-webkit-slider-thumb {
583
+ -webkit-appearance: none;
584
+ width: 14px;
585
+ height: 14px;
586
+ border-radius: 50%;
587
+ background: var(--feedback-primary-color);
588
+ cursor: pointer;
589
+ box-shadow: 0px 1px 2px 0px rgba(60, 64, 67, .20);
590
+ border: none;
591
+ margin-top: -5px; /* Center the thumb on the track */
592
+ }
593
+
594
+ .size-slider::-moz-range-track {
595
+ width: 100%;
596
+ height: 4px;
597
+ cursor: pointer;
598
+ background: var(--feedback-canvas-editor-slider-track);
599
+ border-radius: 2px;
600
+ border: none;
601
+ box-shadow: none;
602
+ }
603
+
604
+ .size-slider::-moz-range-thumb {
605
+ width: 14px;
606
+ height: 14px;
607
+ border-radius: 50%;
608
+ background: var(--feedback-primary-color);
609
+ cursor: pointer;
610
+ border: none;
611
+ box-shadow: 0px 1px 2px 0px rgba(60, 64, 67, .20);
612
+ }
613
+
614
+ /* Firefox specific fix */
615
+ .size-slider::-moz-range-progress {
616
+ background: var(--feedback-canvas-editor-slider-track);
617
+ height: 4px;
618
+ border-radius: 2px;
619
+ }
620
+
621
+ /* IE/Edge specific */
622
+ .size-slider::-ms-track {
623
+ width: 100%;
624
+ height: 4px;
625
+ cursor: pointer;
626
+ background: transparent;
627
+ border-color: transparent;
628
+ color: transparent;
629
+ }
630
+
631
+ .size-slider::-ms-fill-lower {
632
+ background: var(--feedback-canvas-editor-slider-track);
633
+ border-radius: 2px;
634
+ }
635
+
636
+ .size-slider::-ms-fill-upper {
637
+ background: var(--feedback-canvas-editor-slider-track);
638
+ border-radius: 2px;
639
+ }
640
+
641
+ .size-slider::-ms-thumb {
642
+ width: 14px;
643
+ height: 14px;
644
+ border-radius: 50%;
645
+ background: var(--feedback-primary-color);
646
+ cursor: pointer;
647
+ border: none;
648
+ }
649
+
650
+ .size-value {
651
+ font-weight: 500;
652
+ color: var(--feedback-canvas-editor-tool-text-color);
653
+ font-size: var(--feedback-text-font-size);
654
+ min-width: 30px;
655
+ }
656
+
657
+ .action-btn {
658
+ display: flex;
659
+ align-items: center;
660
+ gap: 6px;
661
+ padding: 5px 12px;
662
+ border: 1px solid var(--feedback-canvas-editor-action-secondary-border);
663
+ border-radius: var(--feedback-modal-button-border-radius);
664
+ cursor: pointer;
665
+ font-size: var(--feedback-modal-button-font-size);
666
+ font-weight: 500;
667
+ transition: all 0.2s ease;
668
+ min-width: 65px;
669
+ justify-content: center;
670
+ height: 36px;
671
+ font-family: var(--feedback-font-family);
672
+ }
673
+
674
+ .action-btn.secondary {
675
+ background: var(--feedback-canvas-editor-action-secondary-bg);
676
+ color: var(--feedback-canvas-editor-action-secondary-text);
677
+ border-color: var(--feedback-canvas-editor-action-secondary-border);
678
+ }
679
+
680
+ .action-btn.secondary:hover {
681
+ background: var(--feedback-canvas-editor-tool-bg-hover);
682
+ color: var(--feedback-modal-button-text-color-active);
683
+ border-color: var(--feedback-modal-button-border-color-active);
684
+ }
685
+
686
+ .action-btn.primary {
687
+ background: var(--feedback-canvas-editor-action-primary-bg);
688
+ color: var(--feedback-canvas-editor-action-primary-text);
689
+ border-color: var(--feedback-modal-button-border-color-active);
690
+ }
691
+
692
+ .action-btn.primary:hover {
693
+ background: var(--feedback-modal-button-submit-bg-color-hover);
694
+ border-color: var(--feedback-modal-button-submit-border-color-hover);
695
+ }
696
+
697
+ .canvas-editor-content {
698
+ flex: 1;
699
+ display: flex;
700
+ align-items: center;
701
+ justify-content: center;
702
+ padding: 16px;
703
+ background: var(--feedback-canvas-editor-content-bg);
366
704
  overflow: hidden;
367
- cursor: default;
705
+ min-height: 0;
706
+ min-width: 0;
368
707
  }
369
708
 
370
- .preview-modal img {
709
+ .annotation-canvas {
371
710
  max-width: 100%;
372
711
  max-height: 100%;
712
+ width: auto;
713
+ height: auto;
714
+ cursor: crosshair;
715
+ border-radius: var(--feedback-modal-content-border-radius);
716
+ box-shadow: 0px 1px 2px 0px rgba(60, 64, 67, .30), 0px 2px 6px 2px rgba(60, 64, 67, .15);
717
+ background: var(--feedback-white-color);
718
+ transition: box-shadow 0.3s ease;
719
+ object-fit: contain;
373
720
  display: block;
374
721
  }
375
722
 
376
- @media screen and (min-width: 768px) {
723
+ .annotation-canvas:hover {
724
+ box-shadow: 0px 2px 4px 0px rgba(60, 64, 67, .35), 0px 4px 12px 4px rgba(60, 64, 67, .20);
725
+ }
377
726
 
727
+ /* Responsive Design */
728
+ @media screen and (min-width: 768px) {
378
729
  .feedback-modal-content {
379
730
  max-width: var(--feedback-modal-content-max-width);
380
731
  }
@@ -420,7 +771,6 @@
420
771
  transform: translateY(-50%);
421
772
  }
422
773
 
423
-
424
774
  .feedback-modal-content.feedback-modal-content--sidebar-left.feedback-modal-content--open,
425
775
  .feedback-modal-content.feedback-modal-content--sidebar-right.feedback-modal-content--open{
426
776
  transform: translateX(0);
@@ -486,3 +836,168 @@
486
836
  transform: translateY(0);
487
837
  }
488
838
  }
839
+
840
+ @media (max-width: 768px) {
841
+ .canvas-editor-modal {
842
+ width: 100vw;
843
+ height: 100vh;
844
+ border-radius: 0;
845
+ }
846
+
847
+ .canvas-editor-header {
848
+ padding: 8px 12px;
849
+ gap: 8px;
850
+ }
851
+
852
+ .canvas-editor-toolbar {
853
+ flex-direction: column;
854
+ align-items: stretch;
855
+ gap: 12px;
856
+ }
857
+
858
+ .toolbar-section {
859
+ justify-content: center;
860
+ }
861
+
862
+ .toolbar-section:last-child {
863
+ margin-left: 0;
864
+ justify-content: stretch;
865
+ gap: 8px;
866
+ }
867
+
868
+ .action-btn {
869
+ flex: 1;
870
+ min-width: auto;
871
+ }
872
+
873
+ .canvas-editor-content {
874
+ padding: 8px;
875
+ }
876
+
877
+ .tool-group {
878
+ flex-wrap: wrap;
879
+ justify-content: center;
880
+ }
881
+
882
+ .color-palette {
883
+ flex-wrap: wrap;
884
+ justify-content: center;
885
+ }
886
+
887
+ .size-control {
888
+ flex-direction: column;
889
+ gap: 6px;
890
+ text-align: center;
891
+ }
892
+
893
+ .size-slider {
894
+ width: 100px;
895
+ }
896
+ }
897
+
898
+ /* Feather loader animation */
899
+ @keyframes feather-spin {
900
+ 0% {
901
+ transform: rotate(0deg);
902
+ }
903
+ 100% {
904
+ transform: rotate(360deg);
905
+ }
906
+ }
907
+
908
+ .feather-loader {
909
+ animation: feather-spin 1s linear infinite;
910
+ display: block;
911
+ }
912
+
913
+ /* Screenshot Error Notification */
914
+ .screenshot-error-notification {
915
+ position: fixed;
916
+ top: 20px;
917
+ left: 50%;
918
+ transform: translateX(-50%);
919
+ z-index: 10001;
920
+ max-width: 500px;
921
+ width: 90%;
922
+ animation: slideDown 0.3s ease-out;
923
+ }
924
+
925
+ @keyframes slideDown {
926
+ from {
927
+ opacity: 0;
928
+ transform: translateX(-50%) translateY(-20px);
929
+ }
930
+ to {
931
+ opacity: 1;
932
+ transform: translateX(-50%) translateY(0);
933
+ }
934
+ }
935
+
936
+ .screenshot-error-content {
937
+ background: #fee;
938
+ border: 1px solid #fcc;
939
+ border-radius: 8px;
940
+ padding: 12px 16px;
941
+ display: flex;
942
+ align-items: center;
943
+ gap: 12px;
944
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
945
+ color: #c53030;
946
+ }
947
+
948
+ .screenshot-error-content svg:first-child {
949
+ color: #e53e3e;
950
+ flex-shrink: 0;
951
+ }
952
+
953
+ .screenshot-error-content span {
954
+ flex: 1;
955
+ font-size: 14px;
956
+ line-height: 1.4;
957
+ font-weight: 500;
958
+ }
959
+
960
+ .error-close-btn {
961
+ background: none;
962
+ border: none;
963
+ cursor: pointer;
964
+ padding: 4px;
965
+ border-radius: 4px;
966
+ color: #c53030;
967
+ flex-shrink: 0;
968
+ transition: background-color 0.2s ease;
969
+ }
970
+
971
+ .error-close-btn:hover {
972
+ background: rgba(197, 48, 48, 0.1);
973
+ }
974
+
975
+ /* Hide annotation controls on mobile */
976
+ @media (max-width: 768px) {
977
+ .canvas-editor-toolbar .tool-group,
978
+ .canvas-editor-toolbar .color-palette,
979
+ .canvas-editor-toolbar .size-control,
980
+ .canvas-editor-toolbar .toolbar-divider {
981
+ display: none !important;
982
+ }
983
+
984
+ .canvas-editor-toolbar {
985
+ justify-content: center;
986
+ }
987
+
988
+ .canvas-editor-toolbar .toolbar-section:first-child {
989
+ display: none;
990
+ }
991
+
992
+ .canvas-editor-toolbar .toolbar-section:nth-child(2) {
993
+ display: none;
994
+ }
995
+
996
+ .canvas-editor-toolbar .toolbar-section:nth-child(3) {
997
+ display: none;
998
+ }
999
+
1000
+ .canvas-editor-title {
1001
+ display: none;
1002
+ }
1003
+ }