ilibras-widget 1.6.0 → 1.7.0

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.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * iLibras Widget v1.6.0
2
+ * iLibras Widget v1.7.0
3
3
  * https://github.com/Dimendes-Solucoes/Ilibras_widget
4
4
  * Licença MIT
5
5
  *
@@ -24,6 +24,10 @@
24
24
  #ilibras-widget-container {
25
25
  position: fixed;
26
26
  z-index: 9999;
27
+ /* Campo, checkbox e o X de fechar seguem o tema do widget, e não o
28
+ color-scheme que o site declarou: num site escuro com o widget claro, o
29
+ texto digitado sairia branco no campo branco. */
30
+ color-scheme: light;
27
31
  }
28
32
 
29
33
  /* Posicionamento */
@@ -477,41 +481,7 @@
477
481
  outline-offset: 2px;
478
482
  }
479
483
 
480
- /* Tema escuro (opcional) */
481
- @media (prefers-color-scheme: dark) {
482
- #ilibras-widget-container .ilibras-widget-modal {
483
- background: #1e1e1e;
484
- }
485
-
486
- #ilibras-widget-container .ilibras-widget-body {
487
- background: #2d2d2d;
488
- }
489
-
490
- #ilibras-widget-container .ilibras-widget-message {
491
- background: #363636;
492
- color: #e0e0e0;
493
- }
494
-
495
- #ilibras-widget-container .ilibras-widget-form-group label {
496
- color: #b0b0b0;
497
- }
498
-
499
- #ilibras-widget-container .ilibras-widget-form-group input[type="text"],
500
- #ilibras-widget-container .ilibras-widget-form-group input[type="tel"] {
501
- background: #363636;
502
- border-color: #4a4a4a;
503
- color: #e0e0e0;
504
- }
505
-
506
- #ilibras-widget-container .ilibras-widget-form-group input[type="text"]::placeholder,
507
- #ilibras-widget-container .ilibras-widget-form-group input[type="tel"]::placeholder {
508
- color: #6c6c6c;
509
- }
510
-
511
- #ilibras-widget-container .ilibras-widget-checkbox-label {
512
- color: #b0b0b0;
513
- }
514
- }
484
+ /* Tema escuro: ver o bloco no fim do arquivo. */
515
485
 
516
486
 
517
487
  /* ─── Acessibilidade e estados ──────────────────────────────────────────────
@@ -701,59 +671,133 @@
701
671
  }
702
672
  }
703
673
 
704
- @media (prefers-color-scheme: dark) {
705
- #ilibras-widget-container .ilibras-widget-legenda,
706
- #ilibras-widget-container .ilibras-widget-dica,
707
- #ilibras-widget-container .ilibras-widget-status {
708
- color: #c9c9c9;
709
- }
674
+ /* ─── Tema escuro ────────────────────────────────────────────────────────────
675
+ Liga pela classe que o script põe no container, e não por
676
+ prefers-color-scheme: o ícone flutua sobre o site, e o que decide se ele
677
+ aparece é o fundo do site, não o do sistema. Num site claro aberto num
678
+ computador em modo escuro, o tema do sistema pintaria o ícone de branco
679
+ sobre branco. O script lê o fundo do site e acompanha quando ele muda.
680
+ */
681
+ #ilibras-widget-container.ilibras-widget-tema-escuro {
682
+ color-scheme: dark;
683
+ }
710
684
 
711
- #ilibras-widget-container .ilibras-widget-erro {
712
- color: #ff9aa2;
713
- }
685
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-modal {
686
+ background: #1e1e1e;
687
+ border-color: #3a3a3a;
688
+ box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4);
689
+ }
714
690
 
715
- #ilibras-widget-container .ilibras-widget-form-group input.ilibras-widget-invalido {
716
- border-color: #ff9aa2;
717
- }
691
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-header {
692
+ background: #1e1e1e;
693
+ border-left-color: #333;
694
+ border-bottom-color: #333;
695
+ }
718
696
 
719
- #ilibras-widget-container .ilibras-widget-aviso {
720
- background: #3a2224;
721
- border-color: #6b3a3f;
722
- border-left-color: #ff9aa2;
723
- color: #ffd9dc;
724
- }
697
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-title,
698
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-confirmacao-titulo {
699
+ color: #e6f0f8;
700
+ }
725
701
 
726
- #ilibras-widget-container .ilibras-widget-fallback {
727
- border-top-color: #6b3a3f;
728
- }
702
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-close {
703
+ color: #e0e0e0;
704
+ }
729
705
 
730
- #ilibras-widget-container .ilibras-widget-fallback a {
731
- color: #9ecbff;
732
- }
706
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-body {
707
+ background: #2d2d2d;
708
+ }
733
709
 
734
- #ilibras-widget-container .ilibras-widget-title,
735
- #ilibras-widget-container .ilibras-widget-confirmacao-titulo {
736
- color: #e6f0f8;
737
- }
710
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-message {
711
+ background: #363636;
712
+ color: #e0e0e0;
713
+ }
738
714
 
739
- #ilibras-widget-container .ilibras-widget-confirmacao-texto {
740
- color: #c9c9c9;
741
- }
715
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-form-group label,
716
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-checkbox-label {
717
+ color: #b0b0b0;
718
+ }
742
719
 
743
- #ilibras-widget-container .ilibras-widget-header {
744
- background: #1e1e1e;
745
- border-left-color: #333;
746
- border-bottom-color: #333;
747
- }
720
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-form-group input[type="text"],
721
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-form-group input[type="tel"] {
722
+ background: #363636;
723
+ border-color: #4a4a4a;
724
+ color: #e0e0e0;
725
+ }
748
726
 
749
- #ilibras-widget-container .ilibras-widget-close {
750
- color: #e0e0e0;
751
- }
727
+ /* O foco do tema claro pinta o campo de branco, e o texto claro sumia nele. */
728
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-form-group input[type="text"]:focus,
729
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-form-group input[type="tel"]:focus {
730
+ background: #363636;
731
+ border-color: #9ecbff;
732
+ }
733
+
734
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-form-group input[type="text"]::placeholder,
735
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-form-group input[type="tel"]::placeholder {
736
+ color: #a0a0a0;
737
+ }
738
+
739
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-legenda,
740
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-dica,
741
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-status,
742
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-confirmacao-texto {
743
+ color: #c9c9c9;
744
+ }
745
+
746
+ /* Agendar e Voltar: o azul do texto fica em 3:1 no fundo escuro, abaixo dos
747
+ 4,5:1 que texto pede. */
748
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-agendar {
749
+ color: #9ecbff;
750
+ border-color: #4f6f94;
751
+ }
752
+
753
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-agendar:hover:not(:disabled) {
754
+ background: rgba(158, 203, 255, 0.1);
755
+ border-color: #9ecbff;
756
+ }
757
+
758
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-erro {
759
+ color: #ff9aa2;
760
+ }
761
+
762
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-form-group input.ilibras-widget-invalido {
763
+ border-color: #ff9aa2;
764
+ }
765
+
766
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-aviso {
767
+ background: #3a2224;
768
+ border-color: #6b3a3f;
769
+ border-left-color: #ff9aa2;
770
+ color: #ffd9dc;
771
+ }
772
+
773
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-fallback {
774
+ border-top-color: #6b3a3f;
775
+ }
776
+
777
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-fallback a {
778
+ color: #9ecbff;
779
+ }
780
+
781
+ /* O contorno de foco azul-escuro some no fundo escuro, inclusive o do ícone,
782
+ que fica sobre o fundo do site. */
783
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-button:focus-visible,
784
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-close:focus-visible,
785
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-submit:focus-visible,
786
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-agendar:focus-visible,
787
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-form-group input:focus-visible,
788
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-checkbox-label input:focus-visible,
789
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-fallback a:focus-visible {
790
+ outline-color: #9ecbff;
791
+ }
792
+
793
+ #ilibras-widget-container.ilibras-widget-tema-escuro .ilibras-widget-aviso:focus-visible {
794
+ outline-color: #ff9aa2;
752
795
  }
753
796
  `;
754
797
  var LOGO = "data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='656' height='862' viewBox='0 0 656 862' version='1.1'%3E%3Cpath d='M 344.453 10.250 L 340.500 14.500 344.750 10.547 C 347.087 8.373, 349 6.460, 349 6.297 C 349 5.540, 348.129 6.298, 344.453 10.250 M 338.452 18.093 C 337.572 19.794, 337.030 21.363, 337.247 21.580 C 337.464 21.797, 338.390 20.406, 339.305 18.487 C 341.361 14.175, 340.649 13.845, 338.452 18.093 M 186.762 57.707 C 188.006 57.946, 189.806 57.937, 190.762 57.687 C 191.718 57.437, 190.700 57.241, 188.500 57.252 C 186.300 57.263, 185.518 57.468, 186.762 57.707 M 198.083 59.373 C 199.112 60.294, 205 62.999, 205 62.551 C 205 61.975, 199.456 59, 198.383 59 C 197.989 59, 197.854 59.168, 198.083 59.373 M 170.127 65.478 C 167.857 67.940, 166 70.265, 166 70.644 C 166 71.023, 166.148 71.146, 166.330 70.917 C 166.511 70.688, 168.593 68.362, 170.957 65.750 C 173.321 63.138, 175.030 61, 174.755 61 C 174.480 61, 172.397 63.015, 170.127 65.478 M 216.088 72.416 C 219.711 76.312, 223.933 81.412, 225.471 83.750 C 228.737 88.717, 229.925 89.421, 227.307 84.839 C 226.313 83.100, 221.900 77.999, 217.500 73.505 C 211.540 67.416, 211.180 67.138, 216.088 72.416 M 418.286 108.500 C 418.294 111.250, 418.488 112.256, 418.718 110.736 C 418.947 109.216, 418.941 106.966, 418.704 105.736 C 418.467 104.506, 418.279 105.750, 418.286 108.500 M 322.252 108.500 C 322.263 110.700, 322.468 111.482, 322.707 110.238 C 322.946 108.994, 322.937 107.194, 322.687 106.238 C 322.437 105.282, 322.241 106.300, 322.252 108.500 M 156.395 124.500 C 156.396 132.200, 156.553 135.218, 156.743 131.206 C 156.934 127.195, 156.932 120.895, 156.741 117.206 C 156.549 113.518, 156.393 116.800, 156.395 124.500 M 321.310 125.500 C 321.315 128.800, 321.502 130.029, 321.725 128.232 C 321.947 126.435, 321.943 123.735, 321.715 122.232 C 321.486 120.729, 321.304 122.200, 321.310 125.500 M 547.500 127 C 549.648 129.200, 551.631 131, 551.906 131 C 552.181 131, 550.648 129.200, 548.500 127 C 546.352 124.800, 544.369 123, 544.094 123 C 543.819 123, 545.352 124.800, 547.500 127 M 503.860 141.750 C 500.983 145.223, 499.765 147, 500.259 147 C 500.536 147, 501.964 145.425, 503.432 143.500 C 506.157 139.928, 506.487 138.579, 503.860 141.750 M 320.336 149 C 320.336 153.125, 320.513 154.813, 320.728 152.750 C 320.944 150.688, 320.944 147.313, 320.728 145.250 C 320.513 143.188, 320.336 144.875, 320.336 149 M 157.252 149.500 C 157.263 151.700, 157.468 152.482, 157.707 151.238 C 157.946 149.994, 157.937 148.194, 157.687 147.238 C 157.437 146.282, 157.241 147.300, 157.252 149.500 M 319.252 167.500 C 319.263 169.700, 319.468 170.482, 319.707 169.238 C 319.946 167.994, 319.937 166.194, 319.687 165.238 C 319.437 164.282, 319.241 165.300, 319.252 167.500 M 418 180.417 C 418 182.296, 417.438 184.060, 416.750 184.338 C 416.003 184.639, 416.205 184.874, 417.250 184.921 C 418.638 184.984, 419 184.173, 419 181 C 419 178.800, 418.775 177, 418.500 177 C 418.225 177, 418 178.537, 418 180.417 M 563.252 187.500 C 563.263 189.700, 563.468 190.482, 563.707 189.238 C 563.946 187.994, 563.937 186.194, 563.687 185.238 C 563.437 184.282, 563.241 185.300, 563.252 187.500 M 9 215.122 C 5.515 218.177, 5.514 218.181, 8.720 216.049 C 10.491 214.871, 12.205 213.478, 12.529 212.953 C 13.493 211.393, 12.693 211.884, 9 215.122 M 304.776 215.733 C 307.128 215.945, 310.728 215.942, 312.776 215.727 C 314.824 215.512, 312.900 215.339, 308.500 215.343 C 304.100 215.346, 302.424 215.522, 304.776 215.733 M 285.762 216.707 C 287.006 216.946, 288.806 216.937, 289.762 216.687 C 290.718 216.437, 289.700 216.241, 287.500 216.252 C 285.300 216.263, 284.518 216.468, 285.762 216.707 M 328.762 216.707 C 330.006 216.946, 331.806 216.937, 332.762 216.687 C 333.718 216.437, 332.700 216.241, 330.500 216.252 C 328.300 216.263, 327.518 216.468, 328.762 216.707 M 2.989 222.250 C 1.899 224.037, 1.006 225.912, 1.004 226.417 C 0.999 227.556, 1.141 227.370, 3.786 222.750 C 6.415 218.157, 5.742 217.735, 2.989 222.250 M 484 227.500 C 488.651 232.175, 492.681 236, 492.956 236 C 493.231 236, 489.651 232.175, 485 227.500 C 480.349 222.825, 476.319 219, 476.044 219 C 475.769 219, 479.349 222.825, 484 227.500 M 0.272 233 C 0.272 235.475, 0.467 236.488, 0.706 235.250 C 0.944 234.012, 0.944 231.988, 0.706 230.750 C 0.467 229.512, 0.272 230.525, 0.272 233 M 503.982 246.250 C 513.718 256.235, 515 257.454, 515 256.732 C 515 256.585, 510.163 251.747, 504.250 245.982 L 493.500 235.500 503.982 246.250 M 200.750 239.572 C 196.873 241.675, 197.312 242.401, 201.250 240.399 C 205.020 238.481, 205.687 237.985, 204.417 238.040 C 203.912 238.062, 202.262 238.751, 200.750 239.572 M 428.083 242.383 C 429.101 243.318, 443 249.973, 443 249.525 C 443 248.967, 429.445 242, 428.358 242 C 427.978 242, 427.854 242.172, 428.083 242.383 M 126 249.500 C 127.866 251.425, 129.617 253, 129.892 253 C 130.167 253, 128.866 251.425, 127 249.500 C 125.134 247.575, 123.383 246, 123.108 246 C 122.833 246, 124.134 247.575, 126 249.500 M 177.237 253.527 C 174.356 255.466, 172 257.271, 172 257.537 C 172 257.803, 174.475 256.377, 177.500 254.369 C 182.306 251.178, 183.718 250, 182.737 250 C 182.592 250, 180.117 251.587, 177.237 253.527 M 538.500 259 C 536.561 262.850, 535.200 266, 535.475 266 C 535.750 266, 537.561 262.850, 539.500 259 C 541.439 255.150, 542.800 252, 542.525 252 C 542.250 252, 540.439 255.150, 538.500 259 M 111.728 274.007 C 101.954 285.003, 94.166 294, 94.422 294 C 94.679 294, 102.193 285.788, 111.120 275.750 C 129.816 254.730, 130.448 253.998, 129.905 254.007 C 129.682 254.011, 121.503 263.011, 111.728 274.007 M 516 257.275 C 516 257.426, 519.487 260.914, 523.750 265.025 L 531.500 272.500 524.025 264.750 C 517.082 257.552, 516 256.544, 516 257.275 M 164.750 262.515 C 161.588 264.998, 159 267.247, 159 267.514 C 159 267.780, 161.700 265.901, 165 263.338 C 170.317 259.210, 171.621 257.998, 170.750 258.001 C 170.613 258.001, 167.912 260.033, 164.750 262.515 M 12.742 262.500 C 13.878 264.150, 17.356 268.200, 20.471 271.500 C 25.748 277.091, 25.676 276.954, 19.425 269.500 C 11.537 260.093, 9.916 258.396, 12.742 262.500 M 618.750 268.566 C 616.138 269.926, 614 271.262, 614 271.536 C 614 271.982, 623.900 267.306, 624.917 266.380 C 626.155 265.251, 622.901 266.405, 618.750 268.566 M 477 271.296 C 477 271.550, 479.117 273.493, 481.703 275.613 C 484.290 277.733, 486.084 278.945, 485.690 278.307 C 484.849 276.947, 477 270.614, 477 271.296 M 141.479 283.250 L 132.500 292.500 141.750 283.521 C 146.838 278.582, 151 274.420, 151 274.271 C 151 273.545, 149.819 274.659, 141.479 283.250 M 590.615 291.250 L 576.357 305.500 590.428 292.049 C 598.168 284.650, 604.928 278.238, 605.450 277.799 C 605.972 277.359, 606.057 277, 605.637 277 C 605.217 277, 598.457 283.413, 590.615 291.250 M 29.958 282.250 C 32.410 284.863, 34.548 287, 34.708 287 C 35.459 287, 34.665 286.102, 30.250 281.958 L 25.500 277.500 29.958 282.250 M 495.207 286.894 C 499.996 291.400, 507.421 298.789, 511.707 303.313 C 515.993 307.838, 518.385 310.182, 517.023 308.520 C 512.365 302.842, 498.507 288.859, 492.500 283.777 C 489.199 280.984, 490.416 282.386, 495.207 286.894 M 655.272 283 C 655.272 285.475, 655.467 286.488, 655.706 285.250 C 655.944 284.012, 655.944 281.988, 655.706 280.750 C 655.467 279.512, 655.272 280.525, 655.272 283 M 313.750 286.740 C 317.188 286.936, 322.813 286.936, 326.250 286.740 C 329.688 286.545, 326.875 286.385, 320 286.385 C 313.125 286.385, 310.313 286.545, 313.750 286.740 M 41.500 295 C 45.320 298.850, 48.671 302, 48.946 302 C 49.221 302, 46.320 298.850, 42.500 295 C 38.680 291.150, 35.329 288, 35.054 288 C 34.779 288, 37.680 291.150, 41.500 295 M 89.453 299.250 L 85.500 303.500 89.750 299.547 C 92.088 297.373, 94 295.460, 94 295.297 C 94 294.540, 93.129 295.298, 89.453 299.250 M 55.500 310 C 59.320 313.850, 62.671 317, 62.946 317 C 63.221 317, 60.320 313.850, 56.500 310 C 52.680 306.150, 49.329 303, 49.054 303 C 48.779 303, 51.680 306.150, 55.500 310 M 81.453 308.250 L 77.500 312.500 81.750 308.547 C 85.702 304.871, 86.460 304, 85.703 304 C 85.540 304, 83.627 305.913, 81.453 308.250 M 120.860 306.750 C 117.983 310.223, 116.765 312, 117.259 312 C 117.536 312, 118.964 310.425, 120.432 308.500 C 123.157 304.928, 123.487 303.579, 120.860 306.750 M 403 306.459 C 403 306.734, 404.800 307.878, 407 309 C 409.200 310.122, 411 310.816, 411 310.541 C 411 310.266, 409.200 309.122, 407 308 C 404.800 306.878, 403 306.184, 403 306.459 M 73 317.500 C 70.571 319.975, 68.809 322, 69.084 322 C 69.359 322, 71.571 319.975, 74 317.500 C 76.429 315.025, 78.191 313, 77.916 313 C 77.641 313, 75.429 315.025, 73 317.500 M 113.218 317.250 C 109.568 322.640, 108.779 324, 109.299 324 C 109.529 324, 111.360 321.525, 113.369 318.500 C 115.377 315.475, 116.812 313, 116.558 313 C 116.304 313, 114.801 314.913, 113.218 317.250 M 526.437 321.329 C 527.977 323.348, 529.440 325, 529.687 325 C 530.381 325, 526.052 319.150, 524.772 318.359 C 524.148 317.973, 524.897 319.310, 526.437 321.329 M 638 331 C 636.878 333.200, 636.184 335, 636.459 335 C 636.734 335, 637.878 333.200, 639 331 C 640.122 328.800, 640.816 327, 640.541 327 C 640.266 327, 639.122 328.800, 638 331 M 194.500 336.583 L 185.500 345.163 194.750 336.900 C 203.096 329.444, 204.559 327.998, 203.750 328.001 C 203.613 328.002, 199.450 331.863, 194.500 336.583 M 448.500 340 C 453.427 344.950, 457.683 349, 457.958 349 C 458.233 349, 454.427 344.950, 449.500 340 C 444.573 335.050, 440.317 331, 440.042 331 C 439.767 331, 443.573 335.050, 448.500 340 M 96.948 345.103 C 94.707 349.560, 93.035 353.368, 93.233 353.566 C 93.430 353.763, 95.480 350.117, 97.788 345.462 C 100.097 340.808, 101.769 337, 101.504 337 C 101.239 337, 99.189 340.647, 96.948 345.103 M 182.415 349.250 C 177.991 354.080, 175.632 357, 176.154 357 C 176.410 357, 178.755 354.525, 181.367 351.500 C 186.518 345.534, 187.241 343.982, 182.415 349.250 M 626.381 350.250 C 625.976 350.938, 625.002 352.625, 624.217 354 C 622.846 356.400, 622.856 356.420, 624.468 354.500 C 626.499 352.080, 628.250 349, 627.594 349 C 627.332 349, 626.786 349.563, 626.381 350.250 M 548.208 356.468 C 549.962 360.025, 551.563 362.771, 551.764 362.569 C 552.211 362.122, 546.165 350, 545.495 350 C 545.233 350, 546.454 352.911, 548.208 356.468 M 619 361.500 C 617.297 363.975, 616.129 366, 616.404 366 C 616.679 366, 618.297 363.975, 620 361.500 C 621.703 359.025, 622.871 357, 622.596 357 C 622.321 357, 620.703 359.025, 619 361.500 M 157.448 386.102 C 155.481 390.009, 154.035 393.368, 154.234 393.567 C 154.433 393.767, 156.258 390.570, 158.290 386.465 C 160.321 382.359, 161.768 379, 161.504 379 C 161.241 379, 159.416 382.196, 157.448 386.102 M 482.208 386.468 C 483.962 390.025, 485.563 392.771, 485.764 392.569 C 486.211 392.122, 480.165 380, 479.495 380 C 479.233 380, 480.454 382.911, 482.208 386.468 M 602.409 386.250 C 597.437 396.087, 592.427 396.512, 587.665 387.500 C 586.793 385.850, 586.062 384.867, 586.040 385.316 C 585.975 386.633, 588.090 390.324, 590.299 392.750 C 593.039 395.758, 596.077 395.587, 599.199 392.250 C 601.740 389.534, 605.521 383, 604.551 383 C 604.276 383, 603.312 384.462, 602.409 386.250 M 187.500 424.929 C 186.400 425.363, 188.929 425.501, 193.121 425.236 C 202.761 424.626, 209.135 426.606, 215.462 432.176 C 220.373 436.499, 223.464 441.587, 224.912 447.734 C 225.576 450.555, 225.822 450.872, 225.890 449 C 226.162 441.500, 215.467 428.710, 206.316 425.592 C 201.451 423.934, 190.960 423.565, 187.500 424.929 M 431.673 428.093 C 429.104 429.795, 426.687 431.707, 426.302 432.343 C 425.916 432.980, 427.153 432.331, 429.050 430.903 C 430.948 429.474, 433.850 427.580, 435.500 426.693 C 437.150 425.806, 438.015 425.062, 437.421 425.040 C 436.828 425.018, 434.241 426.392, 431.673 428.093 M 178.359 429.326 C 173.907 432.373, 166.924 441.712, 167.047 444.456 C 167.072 445.030, 168.159 443.475, 169.461 441 C 172.084 436.017, 177.889 430.075, 182.500 427.655 C 184.150 426.789, 184.987 426.062, 184.359 426.040 C 183.732 426.018, 181.032 427.497, 178.359 429.326 M 471.437 433.329 C 472.977 435.348, 474.440 437, 474.687 437 C 475.381 437, 471.052 431.150, 469.772 430.359 C 469.148 429.973, 469.897 431.310, 471.437 433.329 M 72.300 439 C 72.300 442.025, 72.487 443.262, 72.716 441.750 C 72.945 440.238, 72.945 437.762, 72.716 436.250 C 72.487 434.738, 72.300 435.975, 72.300 439 M 314.481 437.394 C 310.465 439.144, 305.359 445.087, 304.496 449.018 C 302.570 457.788, 307.171 466.372, 315.505 469.555 C 330.677 475.349, 344.366 459.462, 336.697 444.960 C 332.694 437.389, 322.477 433.910, 314.481 437.394 M 368.329 444.419 C 364.430 446.163, 363 448.680, 363 453.798 C 363 459.404, 366.744 463, 372.581 463 C 378.956 463, 382.500 459.645, 382.500 453.609 C 382.500 445.799, 375.456 441.231, 368.329 444.419 M 262.388 444.980 C 259.078 446.317, 256 450.933, 256 454.558 C 256 456.637, 256.952 458.978, 258.589 460.923 C 260.821 463.576, 261.843 464, 266 464 C 270.157 464, 271.179 463.576, 273.411 460.923 C 277.789 455.720, 276.376 448.355, 270.460 445.548 C 266.831 443.826, 265.480 443.731, 262.388 444.980 M 574.252 452.500 C 574.263 454.700, 574.468 455.482, 574.707 454.238 C 574.946 452.994, 574.937 451.194, 574.687 450.238 C 574.437 449.282, 574.241 450.300, 574.252 452.500 M 165.252 454.500 C 165.263 456.700, 165.468 457.482, 165.707 456.238 C 165.946 454.994, 165.937 453.194, 165.687 452.238 C 165.437 451.282, 165.241 452.300, 165.252 454.500 M 138.252 455.500 C 138.263 457.700, 138.468 458.482, 138.707 457.238 C 138.946 455.994, 138.937 454.194, 138.687 453.238 C 138.437 452.282, 138.241 453.300, 138.252 455.500 M 225.114 460 C 224.635 467.575, 217.205 477.042, 208.509 481.156 C 205.204 482.719, 203.077 483.999, 203.783 483.999 C 206.612 484.001, 214.846 478.912, 218.426 474.950 C 222.883 470.017, 226.307 462.843, 225.701 459.710 C 225.306 457.672, 225.260 457.695, 225.114 460 M 72.300 465 C 72.300 468.025, 72.487 469.262, 72.716 467.750 C 72.945 466.238, 72.945 463.762, 72.716 462.250 C 72.487 460.738, 72.300 461.975, 72.300 465 M 502.355 468.500 C 502.352 473.450, 502.521 475.601, 502.731 473.280 C 502.940 470.959, 502.943 466.909, 502.736 464.280 C 502.530 461.651, 502.358 463.550, 502.355 468.500 M 167.047 464.290 C 166.959 465.783, 170.797 472.503, 173.240 475.132 C 176.687 478.841, 182.965 482.777, 186.500 483.445 C 188.632 483.848, 188.291 483.559, 185.324 482.447 C 179.697 480.339, 172.445 473.775, 169.503 468.127 C 168.178 465.582, 167.072 463.855, 167.047 464.290 M 422.785 469.500 C 423.366 470.600, 425.775 473.300, 428.137 475.500 C 432.372 479.443, 432.364 479.422, 427.535 474 C 424.841 470.975, 422.432 468.275, 422.183 468 C 421.933 467.725, 422.204 468.400, 422.785 469.500 M 470.558 473.805 C 465.679 479.427, 465.671 479.449, 469.887 475.500 C 473.440 472.173, 476.868 467.845, 475.785 468.055 C 475.628 468.086, 473.276 470.673, 470.558 473.805 M 575.320 474 C 575.320 477.575, 575.502 479.038, 575.723 477.250 C 575.945 475.462, 575.945 472.538, 575.723 470.750 C 575.502 468.962, 575.320 470.425, 575.320 474 M 138.252 481.500 C 138.263 483.700, 138.468 484.482, 138.707 483.238 C 138.946 481.994, 138.937 480.194, 138.687 479.238 C 138.437 478.282, 138.241 479.300, 138.252 481.500 M 445.750 483.723 C 447.538 483.945, 450.462 483.945, 452.250 483.723 C 454.038 483.502, 452.575 483.320, 449 483.320 C 445.425 483.320, 443.962 483.502, 445.750 483.723 M 192.750 484.723 C 194.537 484.945, 197.463 484.945, 199.250 484.723 C 201.037 484.502, 199.575 484.320, 196 484.320 C 192.425 484.320, 190.963 484.502, 192.750 484.723 M 574.272 495 C 574.272 497.475, 574.467 498.488, 574.706 497.250 C 574.944 496.012, 574.944 493.988, 574.706 492.750 C 574.467 491.512, 574.272 492.525, 574.272 495 M 480 555 C 478.878 557.200, 478.184 559, 478.459 559 C 478.734 559, 479.878 557.200, 481 555 C 482.122 552.800, 482.816 551, 482.541 551 C 482.266 551, 481.122 552.800, 480 555 M 471.463 569.250 C 469.921 571.587, 469.299 572.972, 470.080 572.327 C 471.582 571.086, 475.411 565, 474.689 565 C 474.456 565, 473.004 566.913, 471.463 569.250 M 462.387 581.703 C 460.267 584.290, 459.055 586.084, 459.693 585.690 C 461.053 584.849, 467.386 577, 466.704 577 C 466.450 577, 464.507 579.117, 462.387 581.703 M 183.796 589.500 C 188.778 595.428, 195.629 602.191, 201.542 607.017 C 203.215 608.383, 201.673 606.767, 198.115 603.427 C 194.557 600.087, 188.745 594.237, 185.200 590.427 C 179.275 584.061, 179.161 583.986, 183.796 589.500 M 448.481 597.250 L 438.500 607.500 448.750 597.519 C 458.270 588.248, 459.455 587, 458.731 587 C 458.583 587, 453.971 591.612, 448.481 597.250 M 544.208 602.532 C 542.454 606.089, 541.233 609, 541.495 609 C 542.165 609, 548.211 596.878, 547.764 596.431 C 547.563 596.229, 545.962 598.975, 544.208 602.532 M 109 597.349 C 109 598.438, 120.963 622, 121.515 622 C 121.963 622, 110.329 598.100, 109.386 597.083 C 109.174 596.854, 109 596.974, 109 597.349 M 417.250 622.115 C 413.841 624.298, 412.738 625.764, 415.750 624.108 C 418.044 622.847, 421.639 620.068, 421 620.049 C 420.725 620.040, 419.038 620.970, 417.250 622.115 M 124.094 627.500 C 124.094 628.050, 125.402 630.975, 127 634 C 128.598 637.025, 129.906 639.050, 129.906 638.500 C 129.906 637.950, 128.598 635.025, 127 632 C 125.402 628.975, 124.094 626.950, 124.094 627.500 M 231 627.496 C 231 628.164, 245.122 635.212, 245.567 634.766 C 245.767 634.567, 242.570 632.742, 238.465 630.710 C 234.359 628.679, 231 627.232, 231 627.496 M 524.463 636.250 C 522.921 638.587, 522.299 639.972, 523.080 639.327 C 524.582 638.086, 528.411 632, 527.689 632 C 527.456 632, 526.004 633.913, 524.463 636.250 M 308.250 650.716 C 309.762 650.945, 312.238 650.945, 313.750 650.716 C 315.262 650.487, 314.025 650.300, 311 650.300 C 307.975 650.300, 306.738 650.487, 308.250 650.716 M 327.250 650.716 C 328.762 650.945, 331.238 650.945, 332.750 650.716 C 334.262 650.487, 333.025 650.300, 330 650.300 C 326.975 650.300, 325.738 650.487, 327.250 650.716 M 483.500 685.425 C 473.600 695.483, 462.350 706.526, 458.500 709.965 L 451.500 716.218 458 710.871 C 468.945 701.867, 504.251 666.602, 501.853 667.069 C 501.659 667.106, 493.400 675.367, 483.500 685.425 M 441.500 723.610 L 437.500 727.189 441.750 724.011 C 445.408 721.275, 446.727 719.957, 445.750 720.015 C 445.613 720.023, 443.700 721.641, 441.500 723.610 M 131.705 753.528 C 130.229 756.538, 129.234 759, 129.494 759 C 130.167 759, 135.211 748.878, 134.762 748.429 C 134.557 748.224, 133.182 750.518, 131.705 753.528 M 358 774.500 C 350.025 778.567, 343.843 781.919, 344.263 781.948 C 345.326 782.021, 373 768.101, 373 767.493 C 373 766.808, 373.986 766.347, 358 774.500 M 115.833 779.250 C 114.566 781.038, 111.133 785.425, 108.205 789 L 102.881 795.500 107.775 790.244 C 112.743 784.909, 119.532 776, 118.630 776 C 118.359 776, 117.100 777.462, 115.833 779.250 M 330 788 C 328.075 789.054, 326.950 789.916, 327.500 789.916 C 328.050 789.916, 330.075 789.054, 332 788 C 333.925 786.946, 335.050 786.084, 334.500 786.084 C 333.950 786.084, 331.925 786.946, 330 788 M 96.966 801.750 L 91.500 807.500 97.250 802.034 C 100.412 799.028, 103 796.440, 103 796.284 C 103 795.542, 102.044 796.408, 96.966 801.750 M 86.946 810.750 L 83.500 814.500 87.250 811.054 C 89.313 809.158, 91 807.471, 91 807.304 C 91 806.540, 90.154 807.260, 86.946 810.750 M 42.250 843.099 C 39.913 844.755, 38 846.332, 38 846.603 C 38 846.874, 40.025 845.703, 42.500 844 C 44.975 842.297, 47 840.701, 47 840.452 C 47 839.764, 46.810 839.869, 42.250 843.099 M 56.762 861.707 C 58.006 861.946, 59.806 861.937, 60.762 861.687 C 61.718 861.437, 60.700 861.241, 58.500 861.252 C 56.300 861.263, 55.518 861.468, 56.762 861.707' stroke='none' fill='%23d3c38c' fill-rule='evenodd'/%3E%3Cpath d='M 361.500 1.345 C 349.576 4.452, 342.265 11.008, 337.226 23.112 C 331.949 35.787, 326.211 67.851, 323.556 99.500 C 321.664 122.062, 319.633 169.403, 320.424 172.552 C 320.858 174.284, 321.879 175.032, 324.258 175.360 C 335.014 176.847, 417.365 183.969, 417.878 183.457 C 418.220 183.115, 418.657 169.485, 418.849 153.168 C 419.201 123.148, 418.053 97.356, 415.502 78.018 C 413.724 64.534, 408.449 36.168, 406.392 29.030 C 401.214 11.056, 390.191 1.364, 373.894 0.455 C 369.634 0.217, 364.381 0.595, 361.500 1.345 M 179.615 59.411 C 174.752 61.221, 168.975 66.792, 165.675 72.855 C 156.106 90.437, 154.540 126.047, 160.919 181 C 163.840 206.165, 164.763 212.690, 165.603 214.131 C 165.951 214.728, 252.447 180.887, 253.650 179.683 C 254.979 178.354, 245.759 130.396, 241.794 118.010 C 233.367 91.691, 217.722 69.475, 201.991 61.491 C 195.321 58.106, 185.560 57.198, 179.615 59.411 M 528.942 120.948 C 518.796 124.027, 509.710 133.521, 493.028 158.472 C 484.445 171.309, 467.448 198.272, 465.056 202.843 C 463.089 206.602, 464.609 209.604, 471.263 215.105 C 476.725 219.621, 497.791 239.408, 523.638 264.299 L 531.775 272.135 540.897 254.643 C 555.235 227.150, 560.719 210.628, 563.121 187.692 C 565.726 162.813, 559.174 137.984, 547 126.596 C 540.935 120.924, 535.069 119.089, 528.942 120.948 M 25.500 207.339 C 15.407 209.968, 7.648 215.556, 3.495 223.187 C 1.056 227.667, 0.802 228.995, 1.233 235.018 C 1.805 243.001, 5.426 251.422, 12.191 260.500 C 22.388 274.182, 66.235 321, 68.852 321 C 69.465 321, 83.465 305.824, 99.963 287.276 L 129.959 253.553 126.729 250.180 C 119.326 242.448, 81.116 219.094, 66.270 213.228 C 50.099 206.838, 35.513 204.731, 25.500 207.339 M 287.500 216.601 C 238.216 221.493, 197.225 237.573, 161.541 266.013 C 118.738 300.127, 88.124 350.699, 77.103 405.500 C 73.680 422.518, 72.723 432.795, 72.725 452.500 C 72.731 501.730, 85.825 549, 116.736 611.374 C 130.040 638.222, 135.292 650.045, 139.397 662.396 C 152.144 700.743, 146.458 734.935, 121.048 772.742 C 104.215 797.788, 89.542 811.545, 52.500 837.013 C 24.401 856.332, 20.636 859.217, 22.308 860.152 C 25.133 861.733, 47.293 862.266, 60.500 861.071 C 78.473 859.444, 124.834 852.604, 146.500 848.381 C 216.398 834.761, 286.545 810.248, 358.221 774.396 C 412.994 746.998, 450.039 720.613, 486.038 683.355 C 523.260 644.833, 550.441 599.372, 563.613 553.609 C 567.723 539.328, 571.393 521.473, 573.194 507 C 574.898 493.299, 574.864 452.476, 573.138 440 C 566.580 392.594, 552.053 355.742, 526.371 321.360 C 485.837 267.097, 421.680 230.041, 349 218.914 C 336.060 216.933, 298.418 215.518, 287.500 216.601 M 628.500 265.346 C 621.218 267.770, 612.357 272.820, 604.880 278.806 C 596.133 285.809, 575.321 307.008, 572.259 312.032 C 568.955 317.454, 567.764 324.252, 568.961 330.864 C 570.369 338.646, 586.831 386.451, 589.441 390.337 C 592.330 394.639, 596.065 395.022, 598.886 391.305 C 602.451 386.608, 621.026 358.723, 629.239 345.736 C 644.898 320.976, 655 296.171, 655 282.482 C 655 276.039, 651.645 269.203, 647.244 266.678 C 643.080 264.288, 633.682 263.620, 628.500 265.346 M 301 287.033 C 228.155 295.953, 169.440 343.615, 146.930 412.100 C 139.990 433.217, 138.501 443.328, 138.549 469 C 138.588 489.487, 138.831 492.624, 141.263 504.058 C 154.065 564.253, 193.815 613.187, 248.703 636.324 C 299.660 657.803, 354.899 655.690, 404 630.383 C 438.904 612.393, 466.896 583.750, 484.021 548.500 C 501.728 512.056, 507.033 470.983, 498.990 432.626 C 491.324 396.066, 475.172 366.131, 449.013 340 C 421.251 312.267, 388.522 295.264, 350 288.562 C 338.682 286.593, 311.516 285.745, 301 287.033 M 442.734 424.088 C 420.156 429.407, 411.483 456.087, 426.796 473.118 C 433.739 480.841, 437.656 482.494, 449 482.494 C 460.394 482.494, 464.256 480.846, 471.353 472.953 C 486.371 456.249, 478.324 430.226, 456.373 424.509 C 449.966 422.840, 448.255 422.787, 442.734 424.088 M 186.994 425.934 C 179.719 428.147, 172.910 434.193, 168.901 442 C 165.438 448.743, 165.599 460.581, 169.250 467.623 C 180.916 490.131, 212.917 489.200, 223.337 466.051 C 226.253 459.571, 226.128 449.237, 223.047 442.221 C 220.198 435.733, 212.764 428.789, 206.316 426.592 C 201.482 424.945, 191.377 424.601, 186.994 425.934' stroke='none' fill='%231c2c4c' fill-rule='evenodd'/%3E%3C/svg%3E";
755
798
 
756
799
  // src/ILibrasWidget.js
800
+ var LOGO_ESCURO = LOGO.replace(/%231c2c4c/gi, "%23ffffff");
757
801
  var defaultConfig = {
758
802
  position: "bottom-right",
759
803
  redirectUrl: "",
@@ -771,6 +815,10 @@
771
815
  // antes de criar o atendimento. Sair do site em que se estava, para uma aba
772
816
  // nova, sem saber antes, desorienta — sobretudo quem usa leitor de tela.
773
817
  confirmarRedirecionamento: true,
818
+ // 'auto' lê o fundo do site e acompanha quando ele muda. 'claro' e 'escuro'
819
+ // fixam o tema — para o site cujo fundo o widget não consegue ler, como um
820
+ // gradiente ou uma imagem.
821
+ tema: "auto",
774
822
  token: "",
775
823
  zIndex: 9999,
776
824
  apiUrl: "https://sistema.ilibras.com.br/api/public/widget/cadastrar",
@@ -807,6 +855,7 @@
807
855
  init() {
808
856
  this.injectStyles();
809
857
  this.createWidget();
858
+ this.observarTema();
810
859
  this.attachEventListeners();
811
860
  }
812
861
  /**
@@ -934,6 +983,7 @@
934
983
  document.body.appendChild(container);
935
984
  this.container = container;
936
985
  this.botao = container.querySelector("#ilibras-widget-button");
986
+ this.logo = this.botao.querySelector("img");
937
987
  this.modal = container.querySelector("#ilibras-widget-modal");
938
988
  this.form = container.querySelector("#ilibras-widget-form");
939
989
  this.submit = container.querySelector("#ilibras-widget-submit");
@@ -1020,6 +1070,106 @@
1020
1070
  this.botao.focus();
1021
1071
  }
1022
1072
  }
1073
+ // ─── Tema ───────────────────────────────────────────────────────────────
1074
+ // O ícone flutua sobre o site, então quem decide a cor dele é o fundo do
1075
+ // site. O sistema entra por tabela: o site que segue o modo escuro do
1076
+ // computador escurece o próprio fundo, e é esse fundo que se lê aqui.
1077
+ observarTema() {
1078
+ this.aplicarTema();
1079
+ let quadro = null;
1080
+ const reler = () => {
1081
+ if (quadro !== null) return;
1082
+ quadro = requestAnimationFrame(() => {
1083
+ quadro = null;
1084
+ this.aplicarTema();
1085
+ });
1086
+ };
1087
+ const observador = new MutationObserver(reler);
1088
+ observador.observe(document.documentElement, { attributes: true });
1089
+ observador.observe(document.body, { attributes: true });
1090
+ const sistema = window.matchMedia ? window.matchMedia("(prefers-color-scheme: dark)") : null;
1091
+ if (sistema) sistema.addEventListener("change", reler);
1092
+ const fimDaTransicao = (e) => {
1093
+ if (e.target === document.body || e.target === document.documentElement) reler();
1094
+ };
1095
+ document.addEventListener("transitionend", fimDaTransicao);
1096
+ window.addEventListener("load", reler);
1097
+ this.pararDeObservarTema = () => {
1098
+ observador.disconnect();
1099
+ if (sistema) sistema.removeEventListener("change", reler);
1100
+ document.removeEventListener("transitionend", fimDaTransicao);
1101
+ window.removeEventListener("load", reler);
1102
+ if (quadro !== null) cancelAnimationFrame(quadro);
1103
+ };
1104
+ }
1105
+ /**
1106
+ * Para o site com botão de tema que o widget não percebe sozinho: 'claro' e
1107
+ * 'escuro' fixam o tema; 'auto' volta a ler o fundo do site.
1108
+ */
1109
+ definirTema(tema) {
1110
+ this.config.tema = tema;
1111
+ this.aplicarTema();
1112
+ }
1113
+ aplicarTema() {
1114
+ const tema = this.detectarTema();
1115
+ if (tema === this.temaAplicado) return;
1116
+ this.temaAplicado = tema;
1117
+ const escuro = tema === "escuro";
1118
+ this.container.classList.toggle("ilibras-widget-tema-escuro", escuro);
1119
+ this.logo.src = escuro ? LOGO_ESCURO : LOGO;
1120
+ }
1121
+ detectarTema() {
1122
+ const { tema } = this.config;
1123
+ if (tema === "claro" || tema === "escuro") return tema;
1124
+ const cor = this.corDeFundoDaPagina();
1125
+ if (!cor) return "claro";
1126
+ const linear = (c) => {
1127
+ const v = c / 255;
1128
+ return v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);
1129
+ };
1130
+ const [r, g, b] = cor;
1131
+ const luminancia = 0.2126 * linear(r) + 0.7152 * linear(g) + 0.0722 * linear(b);
1132
+ return luminancia < 0.23 ? "escuro" : "claro";
1133
+ }
1134
+ /**
1135
+ * A cor que de fato aparece atrás do widget: a tela-base do navegador com o
1136
+ * fundo do <html> e o do <body> por cima, transparência incluída.
1137
+ *
1138
+ * Quem faz a conta é um canvas de 1 pixel. Ele entende oklch(), lab() e o
1139
+ * que mais o navegador entender — e o navegador devolve a cor no formato em
1140
+ * que o site a escreveu, que nem sempre é rgb().
1141
+ *
1142
+ * @returns {number[]|null} [r, g, b], ou null quando não dá para ler
1143
+ */
1144
+ corDeFundoDaPagina() {
1145
+ const tela = document.createElement("canvas");
1146
+ tela.width = 1;
1147
+ tela.height = 1;
1148
+ const ctx = tela.getContext("2d", { willReadFrequently: true });
1149
+ if (!ctx) return null;
1150
+ ctx.fillStyle = this.telaBaseEscura() ? "#121212" : "#ffffff";
1151
+ ctx.fillRect(0, 0, 1, 1);
1152
+ for (const el of [document.documentElement, document.body]) {
1153
+ ctx.fillStyle = "transparent";
1154
+ ctx.fillStyle = getComputedStyle(el).backgroundColor;
1155
+ ctx.fillRect(0, 0, 1, 1);
1156
+ }
1157
+ const [r, g, b, a] = ctx.getImageData(0, 0, 1, 1).data;
1158
+ return a === 255 ? [r, g, b] : null;
1159
+ }
1160
+ /**
1161
+ * Sem fundo próprio, o site mostra a tela-base do navegador: branca, salvo
1162
+ * quando o site declara color-scheme escuro, no CSS ou na <meta>.
1163
+ */
1164
+ telaBaseEscura() {
1165
+ let esquema = getComputedStyle(document.documentElement).colorScheme || "";
1166
+ if (esquema === "" || esquema === "normal") {
1167
+ const meta = document.querySelector('meta[name="color-scheme"]');
1168
+ esquema = meta ? meta.content : "";
1169
+ }
1170
+ if (!/\bdark\b/.test(esquema)) return false;
1171
+ return !/\blight\b/.test(esquema) || Boolean(window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches);
1172
+ }
1023
1173
  // ─── Validação ──────────────────────────────────────────────────────────
1024
1174
  // Espelha as regras do servidor. Aqui é para avisar cedo e em português;
1025
1175
  // lá é onde a regra vale.
@@ -1405,6 +1555,7 @@
1405
1555
  if (console && console.error) console.error("[iLibras] falha ao criar atendimento:", tipo, erro);
1406
1556
  }
1407
1557
  destroy() {
1558
+ if (this.pararDeObservarTema) this.pararDeObservarTema();
1408
1559
  if (this.container) this.container.remove();
1409
1560
  const styles = document.getElementById("ilibras-widget-styles");
1410
1561
  if (styles) styles.remove();