@drghaliasri/butex 5.3.2 → 5.3.3

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/dist/react.mjs CHANGED
@@ -525,7 +525,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
525
525
  id: "neq",
526
526
  category: "operators1",
527
527
  Tex: "\\neq",
528
- mirror: false,
528
+ mirror: true,
529
529
  Label: "\u2260",
530
530
  title: "\u0644\u0627 \u064A\u0633\u0627\u0648\u064A",
531
531
  svg_path: null
@@ -535,6 +535,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
535
535
  category: "operators1",
536
536
  Tex: "\\approx",
537
537
  mirror: false,
538
+ displayMirror: true,
538
539
  Label: "\u2248",
539
540
  title: "\u062A\u0642\u0631\u064A\u0628\u0627 \u064A\u0633\u0627\u0648\u064A",
540
541
  svg_path: null
@@ -544,6 +545,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
544
545
  category: "operators1",
545
546
  Tex: "\\sim",
546
547
  mirror: false,
548
+ displayMirror: true,
547
549
  Label: "\u223C",
548
550
  title: "\u0645\u0634\u0627\u0628\u0647",
549
551
  svg_path: null
@@ -562,6 +564,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
562
564
  category: "operators1",
563
565
  Tex: "\\leq",
564
566
  mirror: true,
567
+ displayMirror: false,
565
568
  Label: "\u2264",
566
569
  title: "\u0623\u0635\u063A\u0631 \u0645\u0646 \u0623\u0648 \u064A\u0633\u0627\u0648\u064A",
567
570
  svg_path: null
@@ -571,6 +574,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
571
574
  category: "operators1",
572
575
  Tex: "\\geq",
573
576
  mirror: true,
577
+ displayMirror: false,
574
578
  Label: "\u2265",
575
579
  title: "\u0623\u0643\u0628\u0631 \u0645\u0646 \u0623\u0648 \u064A\u0633\u0627\u0648\u064A",
576
580
  svg_path: null
@@ -580,6 +584,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
580
584
  category: "operators1",
581
585
  Tex: "\\coloneqq",
582
586
  mirror: true,
587
+ displayMirror: false,
583
588
  Label: "\u2254",
584
589
  title: "\u064A\u0639\u0631\u0641 \u0628\u0623\u0646\u0647 \u064A\u0633\u0627\u0648\u064A",
585
590
  svg_path: null
@@ -589,6 +594,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
589
594
  category: "operators1",
590
595
  Tex: "\\eqqcolon",
591
596
  mirror: true,
597
+ displayMirror: false,
592
598
  Label: "\u2255",
593
599
  title: "\u064A\u0633\u0627\u0648\u064A \u0628\u0627\u0644\u062A\u0639\u0631\u064A\u0641",
594
600
  svg_path: null
@@ -599,6 +605,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
599
605
  category: "operators2",
600
606
  Tex: "\\propto",
601
607
  mirror: true,
608
+ displayMirror: false,
602
609
  Label: "\u221D",
603
610
  title: "\u064A\u062A\u0646\u0627\u0633\u0628 \u0645\u0639",
604
611
  svg_path: null
@@ -608,6 +615,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
608
615
  category: "operators2",
609
616
  Tex: "\\in",
610
617
  mirror: true,
618
+ displayMirror: false,
611
619
  Label: "\u2208",
612
620
  title: "\u064A\u0646\u062A\u0645\u064A \u0625\u0644\u0649",
613
621
  svg_path: null
@@ -617,6 +625,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
617
625
  category: "operators2",
618
626
  Tex: "\\notin",
619
627
  mirror: false,
628
+ displayMirror: true,
620
629
  Label: "\u2209",
621
630
  title: "\u0644\u0627 \u064A\u0646\u062A\u0645\u064A \u0625\u0644\u0649",
622
631
  svg_path: null
@@ -626,6 +635,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
626
635
  category: "operators2",
627
636
  Tex: "\\subset",
628
637
  mirror: true,
638
+ displayMirror: false,
629
639
  Label: "\u2282",
630
640
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0645\u0646",
631
641
  svg_path: null
@@ -635,6 +645,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
635
645
  category: "operators2",
636
646
  Tex: "\\supset",
637
647
  mirror: true,
648
+ displayMirror: false,
638
649
  Label: "\u2283",
639
650
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0644\u0640",
640
651
  svg_path: null
@@ -644,6 +655,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
644
655
  category: "operators2",
645
656
  Tex: "\\subseteq",
646
657
  mirror: true,
658
+ displayMirror: false,
647
659
  Label: "\u2286",
648
660
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
649
661
  svg_path: null
@@ -653,6 +665,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
653
665
  category: "operators2",
654
666
  Tex: "\\supseteq",
655
667
  mirror: true,
668
+ displayMirror: false,
656
669
  Label: "\u2287",
657
670
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
658
671
  svg_path: null
@@ -662,6 +675,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
662
675
  category: "operators2",
663
676
  Tex: "\\cap",
664
677
  mirror: false,
678
+ displayMirror: true,
665
679
  Label: "\u2229",
666
680
  title: "\u062A\u0642\u0627\u0637\u0639",
667
681
  svg_path: null
@@ -671,6 +685,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
671
685
  category: "operators2",
672
686
  Tex: "\\cup",
673
687
  mirror: false,
688
+ displayMirror: true,
674
689
  Label: "\u222A",
675
690
  title: "\u0627\u062A\u062D\u0627\u062F",
676
691
  svg_path: null
@@ -680,6 +695,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
680
695
  category: "operators2",
681
696
  Tex: "\\emptyset",
682
697
  mirror: false,
698
+ displayMirror: true,
683
699
  Label: "\u2205",
684
700
  title: "\u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0629 \u0627\u0644\u062E\u0627\u0644\u064A\u0629",
685
701
  svg_path: null
@@ -689,6 +705,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
689
705
  category: "operators2",
690
706
  Tex: "\\nsubseteq",
691
707
  mirror: true,
708
+ displayMirror: false,
692
709
  Label: "\u2288",
693
710
  title: "\u0644\u064A\u0633\u062A \u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
694
711
  svg_path: null
@@ -698,6 +715,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
698
715
  category: "operators2",
699
716
  Tex: "\\nsupseteq",
700
717
  mirror: true,
718
+ displayMirror: false,
701
719
  Label: "\u2289",
702
720
  title: "\u0644\u064A\u0633\u062A \u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
703
721
  svg_path: null
@@ -909,6 +927,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
909
927
  category: "integrals",
910
928
  Tex: "\\iint",
911
929
  mirror: true,
930
+ displayMirror: false,
912
931
  Label: "\u222C",
913
932
  title: "\u062A\u0643\u0627\u0645\u0644 \u0645\u0632\u062F\u0648\u062C",
914
933
  svg_path: null
@@ -918,6 +937,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
918
937
  category: "integrals",
919
938
  Tex: "\\iiint",
920
939
  mirror: true,
940
+ displayMirror: false,
921
941
  Label: "\u222D",
922
942
  title: "\u062A\u0643\u0627\u0645\u0644 \u062B\u0644\u0627\u062B\u064A",
923
943
  svg_path: null
@@ -927,6 +947,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
927
947
  category: "integrals",
928
948
  Tex: "\\iiiint",
929
949
  mirror: true,
950
+ displayMirror: false,
930
951
  Label: "\u2A0C",
931
952
  title: "\u062A\u0643\u0627\u0645\u0644 \u0631\u0628\u0627\u0639\u064A",
932
953
  svg_path: null
@@ -936,6 +957,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
936
957
  category: "integrals",
937
958
  Tex: "\\oint",
938
959
  mirror: true,
960
+ displayMirror: false,
939
961
  Label: "\u222E",
940
962
  title: "\u062A\u0643\u0627\u0645\u0644 \u0645\u063A\u0644\u0642",
941
963
  svg_path: null
@@ -945,6 +967,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
945
967
  category: "integrals",
946
968
  Tex: "\\oiint",
947
969
  mirror: true,
970
+ displayMirror: false,
948
971
  Label: "\u222F",
949
972
  title: "\u062A\u0643\u0627\u0645\u0644 \u0633\u0637\u062D\u064A \u0645\u063A\u0644\u0642",
950
973
  svg_path: null
@@ -954,6 +977,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
954
977
  category: "integrals",
955
978
  Tex: "\\oiiint",
956
979
  mirror: true,
980
+ displayMirror: false,
957
981
  Label: "\u2230",
958
982
  title: "\u062A\u0643\u0627\u0645\u0644 \u062D\u062C\u0645\u064A \u0645\u063A\u0644\u0642",
959
983
  svg_path: null
@@ -5048,7 +5072,10 @@ function createEditorRuntime(options) {
5048
5072
  // src/mathjax/svgPatcher.ts
5049
5073
  var SVG_ARABSQRT_SELECTOR = 'mjx-container[jax="SVG"] svg .mjx-rtl-mirror[data-mjx-rtl-root="true"]';
5050
5074
  var ARABSQRT_SELECTOR = '.mjx-rtl-mirror[data-mjx-rtl-root="true"]';
5075
+ var SVG_PREVIEW_MIRROR_SELECTOR = 'mjx-container[jax="SVG"] svg .butex-preview-mirror';
5076
+ var PREVIEW_MIRROR_SELECTOR = ".butex-preview-mirror";
5051
5077
  var PATCHED_ATTR = "data-butex-svg-arabsqrt";
5078
+ var MIRROR_PATCHED_ATTR = "data-butex-svg-mirror";
5052
5079
  var ROOT_INDEX_SCALE = 0.72;
5053
5080
  var ROOT_INDEX_GAP_FACTOR = 0.08;
5054
5081
  var ROOT_INDEX_MIN_GAP = 2;
@@ -5073,11 +5100,12 @@ function directSvgElementChildren(element) {
5073
5100
  return Array.from(element.children).filter((child) => child instanceof SVGElement);
5074
5101
  }
5075
5102
  function boxFor(element) {
5076
- if (!(element instanceof SVGGraphicsElement) || typeof element.getBBox !== "function") {
5103
+ const candidate = element;
5104
+ if (typeof candidate.getBBox !== "function") {
5077
5105
  return null;
5078
5106
  }
5079
5107
  try {
5080
- const box = element.getBBox();
5108
+ const box = candidate.getBBox();
5081
5109
  return {
5082
5110
  x: box.x,
5083
5111
  y: box.y,
@@ -5321,6 +5349,31 @@ function patchArabSqrtRoot(root) {
5321
5349
  root.setAttribute(PATCHED_ATTR, "patched");
5322
5350
  rootNode.setAttribute(PATCHED_ATTR, "patched");
5323
5351
  }
5352
+ function patchPreviewMirror(element) {
5353
+ if (element.getAttribute(MIRROR_PATCHED_ATTR) === "patched") {
5354
+ return;
5355
+ }
5356
+ const box = boxFor(element);
5357
+ if (!box || box.width <= 0) {
5358
+ return;
5359
+ }
5360
+ const [tx, ty] = readTranslate(element);
5361
+ const mirrorX = tx + 2 * box.x + box.width;
5362
+ element.setAttribute(
5363
+ "transform",
5364
+ `translate(${roundSvg(mirrorX)},${roundSvg(ty)}) scale(-1,1)`
5365
+ );
5366
+ element.setAttribute(MIRROR_PATCHED_ATTR, "patched");
5367
+ }
5368
+ function collectPreviewMirrors(root) {
5369
+ let mirrors = Array.from(root.querySelectorAll(SVG_PREVIEW_MIRROR_SELECTOR));
5370
+ if (!mirrors.length) {
5371
+ mirrors = Array.from(root.querySelectorAll(PREVIEW_MIRROR_SELECTOR)).filter((candidate) => {
5372
+ return candidate.closest('mjx-container[jax="SVG"]') != null;
5373
+ });
5374
+ }
5375
+ return mirrors;
5376
+ }
5324
5377
  function patchBuTeXSvgMath(root) {
5325
5378
  if (typeof root.querySelectorAll !== "function") {
5326
5379
  return;
@@ -5332,6 +5385,7 @@ function patchBuTeXSvgMath(root) {
5332
5385
  });
5333
5386
  }
5334
5387
  roots.sort((a, b) => rootDepth(b) - rootDepth(a)).forEach((arabSqrtRoot) => patchArabSqrtRoot(arabSqrtRoot));
5388
+ collectPreviewMirrors(root).forEach((mirror) => patchPreviewMirror(mirror));
5335
5389
  }
5336
5390
 
5337
5391
  // src/mathjax/renderIsland.ts