@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.
@@ -1773,7 +1773,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1773
1773
  id: "neq",
1774
1774
  category: "operators1",
1775
1775
  Tex: "\\neq",
1776
- mirror: false,
1776
+ mirror: true,
1777
1777
  Label: "\u2260",
1778
1778
  title: "\u0644\u0627 \u064A\u0633\u0627\u0648\u064A",
1779
1779
  svg_path: null
@@ -1783,6 +1783,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1783
1783
  category: "operators1",
1784
1784
  Tex: "\\approx",
1785
1785
  mirror: false,
1786
+ displayMirror: true,
1786
1787
  Label: "\u2248",
1787
1788
  title: "\u062A\u0642\u0631\u064A\u0628\u0627 \u064A\u0633\u0627\u0648\u064A",
1788
1789
  svg_path: null
@@ -1792,6 +1793,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1792
1793
  category: "operators1",
1793
1794
  Tex: "\\sim",
1794
1795
  mirror: false,
1796
+ displayMirror: true,
1795
1797
  Label: "\u223C",
1796
1798
  title: "\u0645\u0634\u0627\u0628\u0647",
1797
1799
  svg_path: null
@@ -1810,6 +1812,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1810
1812
  category: "operators1",
1811
1813
  Tex: "\\leq",
1812
1814
  mirror: true,
1815
+ displayMirror: false,
1813
1816
  Label: "\u2264",
1814
1817
  title: "\u0623\u0635\u063A\u0631 \u0645\u0646 \u0623\u0648 \u064A\u0633\u0627\u0648\u064A",
1815
1818
  svg_path: null
@@ -1819,6 +1822,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1819
1822
  category: "operators1",
1820
1823
  Tex: "\\geq",
1821
1824
  mirror: true,
1825
+ displayMirror: false,
1822
1826
  Label: "\u2265",
1823
1827
  title: "\u0623\u0643\u0628\u0631 \u0645\u0646 \u0623\u0648 \u064A\u0633\u0627\u0648\u064A",
1824
1828
  svg_path: null
@@ -1828,6 +1832,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1828
1832
  category: "operators1",
1829
1833
  Tex: "\\coloneqq",
1830
1834
  mirror: true,
1835
+ displayMirror: false,
1831
1836
  Label: "\u2254",
1832
1837
  title: "\u064A\u0639\u0631\u0641 \u0628\u0623\u0646\u0647 \u064A\u0633\u0627\u0648\u064A",
1833
1838
  svg_path: null
@@ -1837,6 +1842,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1837
1842
  category: "operators1",
1838
1843
  Tex: "\\eqqcolon",
1839
1844
  mirror: true,
1845
+ displayMirror: false,
1840
1846
  Label: "\u2255",
1841
1847
  title: "\u064A\u0633\u0627\u0648\u064A \u0628\u0627\u0644\u062A\u0639\u0631\u064A\u0641",
1842
1848
  svg_path: null
@@ -1847,6 +1853,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1847
1853
  category: "operators2",
1848
1854
  Tex: "\\propto",
1849
1855
  mirror: true,
1856
+ displayMirror: false,
1850
1857
  Label: "\u221D",
1851
1858
  title: "\u064A\u062A\u0646\u0627\u0633\u0628 \u0645\u0639",
1852
1859
  svg_path: null
@@ -1856,6 +1863,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1856
1863
  category: "operators2",
1857
1864
  Tex: "\\in",
1858
1865
  mirror: true,
1866
+ displayMirror: false,
1859
1867
  Label: "\u2208",
1860
1868
  title: "\u064A\u0646\u062A\u0645\u064A \u0625\u0644\u0649",
1861
1869
  svg_path: null
@@ -1865,6 +1873,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1865
1873
  category: "operators2",
1866
1874
  Tex: "\\notin",
1867
1875
  mirror: false,
1876
+ displayMirror: true,
1868
1877
  Label: "\u2209",
1869
1878
  title: "\u0644\u0627 \u064A\u0646\u062A\u0645\u064A \u0625\u0644\u0649",
1870
1879
  svg_path: null
@@ -1874,6 +1883,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1874
1883
  category: "operators2",
1875
1884
  Tex: "\\subset",
1876
1885
  mirror: true,
1886
+ displayMirror: false,
1877
1887
  Label: "\u2282",
1878
1888
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0645\u0646",
1879
1889
  svg_path: null
@@ -1883,6 +1893,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1883
1893
  category: "operators2",
1884
1894
  Tex: "\\supset",
1885
1895
  mirror: true,
1896
+ displayMirror: false,
1886
1897
  Label: "\u2283",
1887
1898
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0644\u0640",
1888
1899
  svg_path: null
@@ -1892,6 +1903,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1892
1903
  category: "operators2",
1893
1904
  Tex: "\\subseteq",
1894
1905
  mirror: true,
1906
+ displayMirror: false,
1895
1907
  Label: "\u2286",
1896
1908
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1897
1909
  svg_path: null
@@ -1901,6 +1913,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1901
1913
  category: "operators2",
1902
1914
  Tex: "\\supseteq",
1903
1915
  mirror: true,
1916
+ displayMirror: false,
1904
1917
  Label: "\u2287",
1905
1918
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1906
1919
  svg_path: null
@@ -1910,6 +1923,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1910
1923
  category: "operators2",
1911
1924
  Tex: "\\cap",
1912
1925
  mirror: false,
1926
+ displayMirror: true,
1913
1927
  Label: "\u2229",
1914
1928
  title: "\u062A\u0642\u0627\u0637\u0639",
1915
1929
  svg_path: null
@@ -1919,6 +1933,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1919
1933
  category: "operators2",
1920
1934
  Tex: "\\cup",
1921
1935
  mirror: false,
1936
+ displayMirror: true,
1922
1937
  Label: "\u222A",
1923
1938
  title: "\u0627\u062A\u062D\u0627\u062F",
1924
1939
  svg_path: null
@@ -1928,6 +1943,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1928
1943
  category: "operators2",
1929
1944
  Tex: "\\emptyset",
1930
1945
  mirror: false,
1946
+ displayMirror: true,
1931
1947
  Label: "\u2205",
1932
1948
  title: "\u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0629 \u0627\u0644\u062E\u0627\u0644\u064A\u0629",
1933
1949
  svg_path: null
@@ -1937,6 +1953,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1937
1953
  category: "operators2",
1938
1954
  Tex: "\\nsubseteq",
1939
1955
  mirror: true,
1956
+ displayMirror: false,
1940
1957
  Label: "\u2288",
1941
1958
  title: "\u0644\u064A\u0633\u062A \u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1942
1959
  svg_path: null
@@ -1946,6 +1963,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1946
1963
  category: "operators2",
1947
1964
  Tex: "\\nsupseteq",
1948
1965
  mirror: true,
1966
+ displayMirror: false,
1949
1967
  Label: "\u2289",
1950
1968
  title: "\u0644\u064A\u0633\u062A \u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1951
1969
  svg_path: null
@@ -2157,6 +2175,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
2157
2175
  category: "integrals",
2158
2176
  Tex: "\\iint",
2159
2177
  mirror: true,
2178
+ displayMirror: false,
2160
2179
  Label: "\u222C",
2161
2180
  title: "\u062A\u0643\u0627\u0645\u0644 \u0645\u0632\u062F\u0648\u062C",
2162
2181
  svg_path: null
@@ -2166,6 +2185,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
2166
2185
  category: "integrals",
2167
2186
  Tex: "\\iiint",
2168
2187
  mirror: true,
2188
+ displayMirror: false,
2169
2189
  Label: "\u222D",
2170
2190
  title: "\u062A\u0643\u0627\u0645\u0644 \u062B\u0644\u0627\u062B\u064A",
2171
2191
  svg_path: null
@@ -2175,6 +2195,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
2175
2195
  category: "integrals",
2176
2196
  Tex: "\\iiiint",
2177
2197
  mirror: true,
2198
+ displayMirror: false,
2178
2199
  Label: "\u2A0C",
2179
2200
  title: "\u062A\u0643\u0627\u0645\u0644 \u0631\u0628\u0627\u0639\u064A",
2180
2201
  svg_path: null
@@ -2184,6 +2205,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
2184
2205
  category: "integrals",
2185
2206
  Tex: "\\oint",
2186
2207
  mirror: true,
2208
+ displayMirror: false,
2187
2209
  Label: "\u222E",
2188
2210
  title: "\u062A\u0643\u0627\u0645\u0644 \u0645\u063A\u0644\u0642",
2189
2211
  svg_path: null
@@ -2193,6 +2215,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
2193
2215
  category: "integrals",
2194
2216
  Tex: "\\oiint",
2195
2217
  mirror: true,
2218
+ displayMirror: false,
2196
2219
  Label: "\u222F",
2197
2220
  title: "\u062A\u0643\u0627\u0645\u0644 \u0633\u0637\u062D\u064A \u0645\u063A\u0644\u0642",
2198
2221
  svg_path: null
@@ -2202,6 +2225,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
2202
2225
  category: "integrals",
2203
2226
  Tex: "\\oiiint",
2204
2227
  mirror: true,
2228
+ displayMirror: false,
2205
2229
  Label: "\u2230",
2206
2230
  title: "\u062A\u0643\u0627\u0645\u0644 \u062D\u062C\u0645\u064A \u0645\u063A\u0644\u0642",
2207
2231
  svg_path: null
@@ -8867,7 +8891,10 @@ import { useEffect as useEffect2, useRef as useRef2, useState as useState2 } fro
8867
8891
  // src/mathjax/svgPatcher.ts
8868
8892
  var SVG_ARABSQRT_SELECTOR = 'mjx-container[jax="SVG"] svg .mjx-rtl-mirror[data-mjx-rtl-root="true"]';
8869
8893
  var ARABSQRT_SELECTOR = '.mjx-rtl-mirror[data-mjx-rtl-root="true"]';
8894
+ var SVG_PREVIEW_MIRROR_SELECTOR = 'mjx-container[jax="SVG"] svg .butex-preview-mirror';
8895
+ var PREVIEW_MIRROR_SELECTOR = ".butex-preview-mirror";
8870
8896
  var PATCHED_ATTR = "data-butex-svg-arabsqrt";
8897
+ var MIRROR_PATCHED_ATTR = "data-butex-svg-mirror";
8871
8898
  var ROOT_INDEX_SCALE = 0.72;
8872
8899
  var ROOT_INDEX_GAP_FACTOR = 0.08;
8873
8900
  var ROOT_INDEX_MIN_GAP = 2;
@@ -8892,11 +8919,12 @@ function directSvgElementChildren(element) {
8892
8919
  return Array.from(element.children).filter((child) => child instanceof SVGElement);
8893
8920
  }
8894
8921
  function boxFor(element) {
8895
- if (!(element instanceof SVGGraphicsElement) || typeof element.getBBox !== "function") {
8922
+ const candidate = element;
8923
+ if (typeof candidate.getBBox !== "function") {
8896
8924
  return null;
8897
8925
  }
8898
8926
  try {
8899
- const box = element.getBBox();
8927
+ const box = candidate.getBBox();
8900
8928
  return {
8901
8929
  x: box.x,
8902
8930
  y: box.y,
@@ -9140,6 +9168,31 @@ function patchArabSqrtRoot(root) {
9140
9168
  root.setAttribute(PATCHED_ATTR, "patched");
9141
9169
  rootNode.setAttribute(PATCHED_ATTR, "patched");
9142
9170
  }
9171
+ function patchPreviewMirror(element) {
9172
+ if (element.getAttribute(MIRROR_PATCHED_ATTR) === "patched") {
9173
+ return;
9174
+ }
9175
+ const box = boxFor(element);
9176
+ if (!box || box.width <= 0) {
9177
+ return;
9178
+ }
9179
+ const [tx, ty] = readTranslate(element);
9180
+ const mirrorX = tx + 2 * box.x + box.width;
9181
+ element.setAttribute(
9182
+ "transform",
9183
+ `translate(${roundSvg(mirrorX)},${roundSvg(ty)}) scale(-1,1)`
9184
+ );
9185
+ element.setAttribute(MIRROR_PATCHED_ATTR, "patched");
9186
+ }
9187
+ function collectPreviewMirrors(root) {
9188
+ let mirrors = Array.from(root.querySelectorAll(SVG_PREVIEW_MIRROR_SELECTOR));
9189
+ if (!mirrors.length) {
9190
+ mirrors = Array.from(root.querySelectorAll(PREVIEW_MIRROR_SELECTOR)).filter((candidate) => {
9191
+ return candidate.closest('mjx-container[jax="SVG"]') != null;
9192
+ });
9193
+ }
9194
+ return mirrors;
9195
+ }
9143
9196
  function patchBuTeXSvgMath(root) {
9144
9197
  if (typeof root.querySelectorAll !== "function") {
9145
9198
  return;
@@ -9151,6 +9204,7 @@ function patchBuTeXSvgMath(root) {
9151
9204
  });
9152
9205
  }
9153
9206
  roots.sort((a, b) => rootDepth(b) - rootDepth(a)).forEach((arabSqrtRoot) => patchArabSqrtRoot(arabSqrtRoot));
9207
+ collectPreviewMirrors(root).forEach((mirror) => patchPreviewMirror(mirror));
9154
9208
  }
9155
9209
 
9156
9210
  // src/mathjax/renderIsland.ts