@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.
@@ -1808,7 +1808,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1808
1808
  id: "neq",
1809
1809
  category: "operators1",
1810
1810
  Tex: "\\neq",
1811
- mirror: false,
1811
+ mirror: true,
1812
1812
  Label: "\u2260",
1813
1813
  title: "\u0644\u0627 \u064A\u0633\u0627\u0648\u064A",
1814
1814
  svg_path: null
@@ -1818,6 +1818,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1818
1818
  category: "operators1",
1819
1819
  Tex: "\\approx",
1820
1820
  mirror: false,
1821
+ displayMirror: true,
1821
1822
  Label: "\u2248",
1822
1823
  title: "\u062A\u0642\u0631\u064A\u0628\u0627 \u064A\u0633\u0627\u0648\u064A",
1823
1824
  svg_path: null
@@ -1827,6 +1828,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1827
1828
  category: "operators1",
1828
1829
  Tex: "\\sim",
1829
1830
  mirror: false,
1831
+ displayMirror: true,
1830
1832
  Label: "\u223C",
1831
1833
  title: "\u0645\u0634\u0627\u0628\u0647",
1832
1834
  svg_path: null
@@ -1845,6 +1847,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1845
1847
  category: "operators1",
1846
1848
  Tex: "\\leq",
1847
1849
  mirror: true,
1850
+ displayMirror: false,
1848
1851
  Label: "\u2264",
1849
1852
  title: "\u0623\u0635\u063A\u0631 \u0645\u0646 \u0623\u0648 \u064A\u0633\u0627\u0648\u064A",
1850
1853
  svg_path: null
@@ -1854,6 +1857,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1854
1857
  category: "operators1",
1855
1858
  Tex: "\\geq",
1856
1859
  mirror: true,
1860
+ displayMirror: false,
1857
1861
  Label: "\u2265",
1858
1862
  title: "\u0623\u0643\u0628\u0631 \u0645\u0646 \u0623\u0648 \u064A\u0633\u0627\u0648\u064A",
1859
1863
  svg_path: null
@@ -1863,6 +1867,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1863
1867
  category: "operators1",
1864
1868
  Tex: "\\coloneqq",
1865
1869
  mirror: true,
1870
+ displayMirror: false,
1866
1871
  Label: "\u2254",
1867
1872
  title: "\u064A\u0639\u0631\u0641 \u0628\u0623\u0646\u0647 \u064A\u0633\u0627\u0648\u064A",
1868
1873
  svg_path: null
@@ -1872,6 +1877,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1872
1877
  category: "operators1",
1873
1878
  Tex: "\\eqqcolon",
1874
1879
  mirror: true,
1880
+ displayMirror: false,
1875
1881
  Label: "\u2255",
1876
1882
  title: "\u064A\u0633\u0627\u0648\u064A \u0628\u0627\u0644\u062A\u0639\u0631\u064A\u0641",
1877
1883
  svg_path: null
@@ -1882,6 +1888,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1882
1888
  category: "operators2",
1883
1889
  Tex: "\\propto",
1884
1890
  mirror: true,
1891
+ displayMirror: false,
1885
1892
  Label: "\u221D",
1886
1893
  title: "\u064A\u062A\u0646\u0627\u0633\u0628 \u0645\u0639",
1887
1894
  svg_path: null
@@ -1891,6 +1898,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1891
1898
  category: "operators2",
1892
1899
  Tex: "\\in",
1893
1900
  mirror: true,
1901
+ displayMirror: false,
1894
1902
  Label: "\u2208",
1895
1903
  title: "\u064A\u0646\u062A\u0645\u064A \u0625\u0644\u0649",
1896
1904
  svg_path: null
@@ -1900,6 +1908,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1900
1908
  category: "operators2",
1901
1909
  Tex: "\\notin",
1902
1910
  mirror: false,
1911
+ displayMirror: true,
1903
1912
  Label: "\u2209",
1904
1913
  title: "\u0644\u0627 \u064A\u0646\u062A\u0645\u064A \u0625\u0644\u0649",
1905
1914
  svg_path: null
@@ -1909,6 +1918,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1909
1918
  category: "operators2",
1910
1919
  Tex: "\\subset",
1911
1920
  mirror: true,
1921
+ displayMirror: false,
1912
1922
  Label: "\u2282",
1913
1923
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0645\u0646",
1914
1924
  svg_path: null
@@ -1918,6 +1928,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1918
1928
  category: "operators2",
1919
1929
  Tex: "\\supset",
1920
1930
  mirror: true,
1931
+ displayMirror: false,
1921
1932
  Label: "\u2283",
1922
1933
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0644\u0640",
1923
1934
  svg_path: null
@@ -1927,6 +1938,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1927
1938
  category: "operators2",
1928
1939
  Tex: "\\subseteq",
1929
1940
  mirror: true,
1941
+ displayMirror: false,
1930
1942
  Label: "\u2286",
1931
1943
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1932
1944
  svg_path: null
@@ -1936,6 +1948,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1936
1948
  category: "operators2",
1937
1949
  Tex: "\\supseteq",
1938
1950
  mirror: true,
1951
+ displayMirror: false,
1939
1952
  Label: "\u2287",
1940
1953
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1941
1954
  svg_path: null
@@ -1945,6 +1958,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1945
1958
  category: "operators2",
1946
1959
  Tex: "\\cap",
1947
1960
  mirror: false,
1961
+ displayMirror: true,
1948
1962
  Label: "\u2229",
1949
1963
  title: "\u062A\u0642\u0627\u0637\u0639",
1950
1964
  svg_path: null
@@ -1954,6 +1968,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1954
1968
  category: "operators2",
1955
1969
  Tex: "\\cup",
1956
1970
  mirror: false,
1971
+ displayMirror: true,
1957
1972
  Label: "\u222A",
1958
1973
  title: "\u0627\u062A\u062D\u0627\u062F",
1959
1974
  svg_path: null
@@ -1963,6 +1978,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1963
1978
  category: "operators2",
1964
1979
  Tex: "\\emptyset",
1965
1980
  mirror: false,
1981
+ displayMirror: true,
1966
1982
  Label: "\u2205",
1967
1983
  title: "\u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0629 \u0627\u0644\u062E\u0627\u0644\u064A\u0629",
1968
1984
  svg_path: null
@@ -1972,6 +1988,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1972
1988
  category: "operators2",
1973
1989
  Tex: "\\nsubseteq",
1974
1990
  mirror: true,
1991
+ displayMirror: false,
1975
1992
  Label: "\u2288",
1976
1993
  title: "\u0644\u064A\u0633\u062A \u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1977
1994
  svg_path: null
@@ -1981,6 +1998,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1981
1998
  category: "operators2",
1982
1999
  Tex: "\\nsupseteq",
1983
2000
  mirror: true,
2001
+ displayMirror: false,
1984
2002
  Label: "\u2289",
1985
2003
  title: "\u0644\u064A\u0633\u062A \u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1986
2004
  svg_path: null
@@ -2192,6 +2210,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
2192
2210
  category: "integrals",
2193
2211
  Tex: "\\iint",
2194
2212
  mirror: true,
2213
+ displayMirror: false,
2195
2214
  Label: "\u222C",
2196
2215
  title: "\u062A\u0643\u0627\u0645\u0644 \u0645\u0632\u062F\u0648\u062C",
2197
2216
  svg_path: null
@@ -2201,6 +2220,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
2201
2220
  category: "integrals",
2202
2221
  Tex: "\\iiint",
2203
2222
  mirror: true,
2223
+ displayMirror: false,
2204
2224
  Label: "\u222D",
2205
2225
  title: "\u062A\u0643\u0627\u0645\u0644 \u062B\u0644\u0627\u062B\u064A",
2206
2226
  svg_path: null
@@ -2210,6 +2230,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
2210
2230
  category: "integrals",
2211
2231
  Tex: "\\iiiint",
2212
2232
  mirror: true,
2233
+ displayMirror: false,
2213
2234
  Label: "\u2A0C",
2214
2235
  title: "\u062A\u0643\u0627\u0645\u0644 \u0631\u0628\u0627\u0639\u064A",
2215
2236
  svg_path: null
@@ -2219,6 +2240,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
2219
2240
  category: "integrals",
2220
2241
  Tex: "\\oint",
2221
2242
  mirror: true,
2243
+ displayMirror: false,
2222
2244
  Label: "\u222E",
2223
2245
  title: "\u062A\u0643\u0627\u0645\u0644 \u0645\u063A\u0644\u0642",
2224
2246
  svg_path: null
@@ -2228,6 +2250,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
2228
2250
  category: "integrals",
2229
2251
  Tex: "\\oiint",
2230
2252
  mirror: true,
2253
+ displayMirror: false,
2231
2254
  Label: "\u222F",
2232
2255
  title: "\u062A\u0643\u0627\u0645\u0644 \u0633\u0637\u062D\u064A \u0645\u063A\u0644\u0642",
2233
2256
  svg_path: null
@@ -2237,6 +2260,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
2237
2260
  category: "integrals",
2238
2261
  Tex: "\\oiiint",
2239
2262
  mirror: true,
2263
+ displayMirror: false,
2240
2264
  Label: "\u2230",
2241
2265
  title: "\u062A\u0643\u0627\u0645\u0644 \u062D\u062C\u0645\u064A \u0645\u063A\u0644\u0642",
2242
2266
  svg_path: null
@@ -8902,7 +8926,10 @@ var import_react2 = require("react");
8902
8926
  // src/mathjax/svgPatcher.ts
8903
8927
  var SVG_ARABSQRT_SELECTOR = 'mjx-container[jax="SVG"] svg .mjx-rtl-mirror[data-mjx-rtl-root="true"]';
8904
8928
  var ARABSQRT_SELECTOR = '.mjx-rtl-mirror[data-mjx-rtl-root="true"]';
8929
+ var SVG_PREVIEW_MIRROR_SELECTOR = 'mjx-container[jax="SVG"] svg .butex-preview-mirror';
8930
+ var PREVIEW_MIRROR_SELECTOR = ".butex-preview-mirror";
8905
8931
  var PATCHED_ATTR = "data-butex-svg-arabsqrt";
8932
+ var MIRROR_PATCHED_ATTR = "data-butex-svg-mirror";
8906
8933
  var ROOT_INDEX_SCALE = 0.72;
8907
8934
  var ROOT_INDEX_GAP_FACTOR = 0.08;
8908
8935
  var ROOT_INDEX_MIN_GAP = 2;
@@ -8927,11 +8954,12 @@ function directSvgElementChildren(element) {
8927
8954
  return Array.from(element.children).filter((child) => child instanceof SVGElement);
8928
8955
  }
8929
8956
  function boxFor(element) {
8930
- if (!(element instanceof SVGGraphicsElement) || typeof element.getBBox !== "function") {
8957
+ const candidate = element;
8958
+ if (typeof candidate.getBBox !== "function") {
8931
8959
  return null;
8932
8960
  }
8933
8961
  try {
8934
- const box = element.getBBox();
8962
+ const box = candidate.getBBox();
8935
8963
  return {
8936
8964
  x: box.x,
8937
8965
  y: box.y,
@@ -9175,6 +9203,31 @@ function patchArabSqrtRoot(root) {
9175
9203
  root.setAttribute(PATCHED_ATTR, "patched");
9176
9204
  rootNode.setAttribute(PATCHED_ATTR, "patched");
9177
9205
  }
9206
+ function patchPreviewMirror(element) {
9207
+ if (element.getAttribute(MIRROR_PATCHED_ATTR) === "patched") {
9208
+ return;
9209
+ }
9210
+ const box = boxFor(element);
9211
+ if (!box || box.width <= 0) {
9212
+ return;
9213
+ }
9214
+ const [tx, ty] = readTranslate(element);
9215
+ const mirrorX = tx + 2 * box.x + box.width;
9216
+ element.setAttribute(
9217
+ "transform",
9218
+ `translate(${roundSvg(mirrorX)},${roundSvg(ty)}) scale(-1,1)`
9219
+ );
9220
+ element.setAttribute(MIRROR_PATCHED_ATTR, "patched");
9221
+ }
9222
+ function collectPreviewMirrors(root) {
9223
+ let mirrors = Array.from(root.querySelectorAll(SVG_PREVIEW_MIRROR_SELECTOR));
9224
+ if (!mirrors.length) {
9225
+ mirrors = Array.from(root.querySelectorAll(PREVIEW_MIRROR_SELECTOR)).filter((candidate) => {
9226
+ return candidate.closest('mjx-container[jax="SVG"]') != null;
9227
+ });
9228
+ }
9229
+ return mirrors;
9230
+ }
9178
9231
  function patchBuTeXSvgMath(root) {
9179
9232
  if (typeof root.querySelectorAll !== "function") {
9180
9233
  return;
@@ -9186,6 +9239,7 @@ function patchBuTeXSvgMath(root) {
9186
9239
  });
9187
9240
  }
9188
9241
  roots.sort((a, b) => rootDepth(b) - rootDepth(a)).forEach((arabSqrtRoot) => patchArabSqrtRoot(arabSqrtRoot));
9242
+ collectPreviewMirrors(root).forEach((mirror) => patchPreviewMirror(mirror));
9189
9243
  }
9190
9244
 
9191
9245
  // src/mathjax/renderIsland.ts