@drghaliasri/butex 5.3.1 → 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/document.js +25 -1
- package/dist/document.js.map +1 -1
- package/dist/document.mjs +25 -1
- package/dist/document.mjs.map +1 -1
- package/dist/document2.d.mts +96 -51
- package/dist/document2.d.ts +96 -51
- package/dist/document2.js +144 -11
- package/dist/document2.js.map +1 -1
- package/dist/document2.mjs +134 -11
- package/dist/document2.mjs.map +1 -1
- package/dist/index.d.mts +25 -1
- package/dist/index.d.ts +25 -1
- package/dist/index.global.js +61 -9
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +61 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +61 -9
- package/dist/index.mjs.map +1 -1
- package/dist/react-document.js +57 -3
- package/dist/react-document.js.map +1 -1
- package/dist/react-document.mjs +57 -3
- package/dist/react-document.mjs.map +1 -1
- package/dist/react-document2.d.mts +72 -52
- package/dist/react-document2.d.ts +72 -52
- package/dist/react-document2.js +866 -282
- package/dist/react-document2.js.map +1 -1
- package/dist/react-document2.mjs +821 -237
- package/dist/react-document2.mjs.map +1 -1
- package/dist/react.d.mts +25 -1
- package/dist/react.d.ts +25 -1
- package/dist/react.js +57 -3
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +57 -3
- package/dist/react.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -109,17 +109,15 @@ mjx-container[jax="SVG"] svg text[data-butex-svg-text] {
|
|
|
109
109
|
unicode-bidi: isolate;
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
-
.
|
|
112
|
+
/* CHTML only: CSS flip is safe here because layout is unaffected.
|
|
113
|
+
* SVG mirrors are baked into the transform attribute by patchBuTeXSvgMath
|
|
114
|
+
* (CSS transform would override MathJax's translate presentation attribute). */
|
|
115
|
+
mjx-container[jax="CHTML"] .butex-preview-mirror {
|
|
113
116
|
transform: scaleX(-1);
|
|
114
117
|
transform-origin: center;
|
|
115
118
|
display: inline-block;
|
|
116
119
|
}
|
|
117
120
|
|
|
118
|
-
mjx-container[jax="SVG"] svg .butex-preview-mirror {
|
|
119
|
-
transform-box: fill-box;
|
|
120
|
-
transform-origin: center center;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
121
|
/* Keeps Arabic text shaping sane after double flip; tweak fonts in page preamble */
|
|
124
122
|
.mjx-rtl-unmirror .mjx-text,
|
|
125
123
|
.mjx-rtl-unmirror .mjx-char {
|
|
@@ -1676,7 +1674,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1676
1674
|
id: "neq",
|
|
1677
1675
|
category: "operators1",
|
|
1678
1676
|
Tex: "\\neq",
|
|
1679
|
-
mirror:
|
|
1677
|
+
mirror: true,
|
|
1680
1678
|
Label: "\u2260",
|
|
1681
1679
|
title: "\u0644\u0627 \u064A\u0633\u0627\u0648\u064A",
|
|
1682
1680
|
svg_path: null
|
|
@@ -1686,6 +1684,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1686
1684
|
category: "operators1",
|
|
1687
1685
|
Tex: "\\approx",
|
|
1688
1686
|
mirror: false,
|
|
1687
|
+
displayMirror: true,
|
|
1689
1688
|
Label: "\u2248",
|
|
1690
1689
|
title: "\u062A\u0642\u0631\u064A\u0628\u0627 \u064A\u0633\u0627\u0648\u064A",
|
|
1691
1690
|
svg_path: null
|
|
@@ -1695,6 +1694,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1695
1694
|
category: "operators1",
|
|
1696
1695
|
Tex: "\\sim",
|
|
1697
1696
|
mirror: false,
|
|
1697
|
+
displayMirror: true,
|
|
1698
1698
|
Label: "\u223C",
|
|
1699
1699
|
title: "\u0645\u0634\u0627\u0628\u0647",
|
|
1700
1700
|
svg_path: null
|
|
@@ -1713,6 +1713,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1713
1713
|
category: "operators1",
|
|
1714
1714
|
Tex: "\\leq",
|
|
1715
1715
|
mirror: true,
|
|
1716
|
+
displayMirror: false,
|
|
1716
1717
|
Label: "\u2264",
|
|
1717
1718
|
title: "\u0623\u0635\u063A\u0631 \u0645\u0646 \u0623\u0648 \u064A\u0633\u0627\u0648\u064A",
|
|
1718
1719
|
svg_path: null
|
|
@@ -1722,6 +1723,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1722
1723
|
category: "operators1",
|
|
1723
1724
|
Tex: "\\geq",
|
|
1724
1725
|
mirror: true,
|
|
1726
|
+
displayMirror: false,
|
|
1725
1727
|
Label: "\u2265",
|
|
1726
1728
|
title: "\u0623\u0643\u0628\u0631 \u0645\u0646 \u0623\u0648 \u064A\u0633\u0627\u0648\u064A",
|
|
1727
1729
|
svg_path: null
|
|
@@ -1731,6 +1733,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1731
1733
|
category: "operators1",
|
|
1732
1734
|
Tex: "\\coloneqq",
|
|
1733
1735
|
mirror: true,
|
|
1736
|
+
displayMirror: false,
|
|
1734
1737
|
Label: "\u2254",
|
|
1735
1738
|
title: "\u064A\u0639\u0631\u0641 \u0628\u0623\u0646\u0647 \u064A\u0633\u0627\u0648\u064A",
|
|
1736
1739
|
svg_path: null
|
|
@@ -1740,6 +1743,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1740
1743
|
category: "operators1",
|
|
1741
1744
|
Tex: "\\eqqcolon",
|
|
1742
1745
|
mirror: true,
|
|
1746
|
+
displayMirror: false,
|
|
1743
1747
|
Label: "\u2255",
|
|
1744
1748
|
title: "\u064A\u0633\u0627\u0648\u064A \u0628\u0627\u0644\u062A\u0639\u0631\u064A\u0641",
|
|
1745
1749
|
svg_path: null
|
|
@@ -1750,6 +1754,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1750
1754
|
category: "operators2",
|
|
1751
1755
|
Tex: "\\propto",
|
|
1752
1756
|
mirror: true,
|
|
1757
|
+
displayMirror: false,
|
|
1753
1758
|
Label: "\u221D",
|
|
1754
1759
|
title: "\u064A\u062A\u0646\u0627\u0633\u0628 \u0645\u0639",
|
|
1755
1760
|
svg_path: null
|
|
@@ -1759,6 +1764,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1759
1764
|
category: "operators2",
|
|
1760
1765
|
Tex: "\\in",
|
|
1761
1766
|
mirror: true,
|
|
1767
|
+
displayMirror: false,
|
|
1762
1768
|
Label: "\u2208",
|
|
1763
1769
|
title: "\u064A\u0646\u062A\u0645\u064A \u0625\u0644\u0649",
|
|
1764
1770
|
svg_path: null
|
|
@@ -1768,6 +1774,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1768
1774
|
category: "operators2",
|
|
1769
1775
|
Tex: "\\notin",
|
|
1770
1776
|
mirror: false,
|
|
1777
|
+
displayMirror: true,
|
|
1771
1778
|
Label: "\u2209",
|
|
1772
1779
|
title: "\u0644\u0627 \u064A\u0646\u062A\u0645\u064A \u0625\u0644\u0649",
|
|
1773
1780
|
svg_path: null
|
|
@@ -1777,6 +1784,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1777
1784
|
category: "operators2",
|
|
1778
1785
|
Tex: "\\subset",
|
|
1779
1786
|
mirror: true,
|
|
1787
|
+
displayMirror: false,
|
|
1780
1788
|
Label: "\u2282",
|
|
1781
1789
|
title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0645\u0646",
|
|
1782
1790
|
svg_path: null
|
|
@@ -1786,6 +1794,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1786
1794
|
category: "operators2",
|
|
1787
1795
|
Tex: "\\supset",
|
|
1788
1796
|
mirror: true,
|
|
1797
|
+
displayMirror: false,
|
|
1789
1798
|
Label: "\u2283",
|
|
1790
1799
|
title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0644\u0640",
|
|
1791
1800
|
svg_path: null
|
|
@@ -1795,6 +1804,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1795
1804
|
category: "operators2",
|
|
1796
1805
|
Tex: "\\subseteq",
|
|
1797
1806
|
mirror: true,
|
|
1807
|
+
displayMirror: false,
|
|
1798
1808
|
Label: "\u2286",
|
|
1799
1809
|
title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
|
|
1800
1810
|
svg_path: null
|
|
@@ -1804,6 +1814,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1804
1814
|
category: "operators2",
|
|
1805
1815
|
Tex: "\\supseteq",
|
|
1806
1816
|
mirror: true,
|
|
1817
|
+
displayMirror: false,
|
|
1807
1818
|
Label: "\u2287",
|
|
1808
1819
|
title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
|
|
1809
1820
|
svg_path: null
|
|
@@ -1813,6 +1824,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1813
1824
|
category: "operators2",
|
|
1814
1825
|
Tex: "\\cap",
|
|
1815
1826
|
mirror: false,
|
|
1827
|
+
displayMirror: true,
|
|
1816
1828
|
Label: "\u2229",
|
|
1817
1829
|
title: "\u062A\u0642\u0627\u0637\u0639",
|
|
1818
1830
|
svg_path: null
|
|
@@ -1822,6 +1834,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1822
1834
|
category: "operators2",
|
|
1823
1835
|
Tex: "\\cup",
|
|
1824
1836
|
mirror: false,
|
|
1837
|
+
displayMirror: true,
|
|
1825
1838
|
Label: "\u222A",
|
|
1826
1839
|
title: "\u0627\u062A\u062D\u0627\u062F",
|
|
1827
1840
|
svg_path: null
|
|
@@ -1831,6 +1844,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1831
1844
|
category: "operators2",
|
|
1832
1845
|
Tex: "\\emptyset",
|
|
1833
1846
|
mirror: false,
|
|
1847
|
+
displayMirror: true,
|
|
1834
1848
|
Label: "\u2205",
|
|
1835
1849
|
title: "\u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0629 \u0627\u0644\u062E\u0627\u0644\u064A\u0629",
|
|
1836
1850
|
svg_path: null
|
|
@@ -1840,6 +1854,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1840
1854
|
category: "operators2",
|
|
1841
1855
|
Tex: "\\nsubseteq",
|
|
1842
1856
|
mirror: true,
|
|
1857
|
+
displayMirror: false,
|
|
1843
1858
|
Label: "\u2288",
|
|
1844
1859
|
title: "\u0644\u064A\u0633\u062A \u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
|
|
1845
1860
|
svg_path: null
|
|
@@ -1849,6 +1864,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
1849
1864
|
category: "operators2",
|
|
1850
1865
|
Tex: "\\nsupseteq",
|
|
1851
1866
|
mirror: true,
|
|
1867
|
+
displayMirror: false,
|
|
1852
1868
|
Label: "\u2289",
|
|
1853
1869
|
title: "\u0644\u064A\u0633\u062A \u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
|
|
1854
1870
|
svg_path: null
|
|
@@ -2060,6 +2076,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
2060
2076
|
category: "integrals",
|
|
2061
2077
|
Tex: "\\iint",
|
|
2062
2078
|
mirror: true,
|
|
2079
|
+
displayMirror: false,
|
|
2063
2080
|
Label: "\u222C",
|
|
2064
2081
|
title: "\u062A\u0643\u0627\u0645\u0644 \u0645\u0632\u062F\u0648\u062C",
|
|
2065
2082
|
svg_path: null
|
|
@@ -2069,6 +2086,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
2069
2086
|
category: "integrals",
|
|
2070
2087
|
Tex: "\\iiint",
|
|
2071
2088
|
mirror: true,
|
|
2089
|
+
displayMirror: false,
|
|
2072
2090
|
Label: "\u222D",
|
|
2073
2091
|
title: "\u062A\u0643\u0627\u0645\u0644 \u062B\u0644\u0627\u062B\u064A",
|
|
2074
2092
|
svg_path: null
|
|
@@ -2078,6 +2096,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
2078
2096
|
category: "integrals",
|
|
2079
2097
|
Tex: "\\iiiint",
|
|
2080
2098
|
mirror: true,
|
|
2099
|
+
displayMirror: false,
|
|
2081
2100
|
Label: "\u2A0C",
|
|
2082
2101
|
title: "\u062A\u0643\u0627\u0645\u0644 \u0631\u0628\u0627\u0639\u064A",
|
|
2083
2102
|
svg_path: null
|
|
@@ -2087,6 +2106,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
2087
2106
|
category: "integrals",
|
|
2088
2107
|
Tex: "\\oint",
|
|
2089
2108
|
mirror: true,
|
|
2109
|
+
displayMirror: false,
|
|
2090
2110
|
Label: "\u222E",
|
|
2091
2111
|
title: "\u062A\u0643\u0627\u0645\u0644 \u0645\u063A\u0644\u0642",
|
|
2092
2112
|
svg_path: null
|
|
@@ -2096,6 +2116,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
2096
2116
|
category: "integrals",
|
|
2097
2117
|
Tex: "\\oiint",
|
|
2098
2118
|
mirror: true,
|
|
2119
|
+
displayMirror: false,
|
|
2099
2120
|
Label: "\u222F",
|
|
2100
2121
|
title: "\u062A\u0643\u0627\u0645\u0644 \u0633\u0637\u062D\u064A \u0645\u063A\u0644\u0642",
|
|
2101
2122
|
svg_path: null
|
|
@@ -2105,6 +2126,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
2105
2126
|
category: "integrals",
|
|
2106
2127
|
Tex: "\\oiiint",
|
|
2107
2128
|
mirror: true,
|
|
2129
|
+
displayMirror: false,
|
|
2108
2130
|
Label: "\u2230",
|
|
2109
2131
|
title: "\u062A\u0643\u0627\u0645\u0644 \u062D\u062C\u0645\u064A \u0645\u063A\u0644\u0642",
|
|
2110
2132
|
svg_path: null
|
|
@@ -5826,7 +5848,10 @@ function parseBuTeX(input) {
|
|
|
5826
5848
|
// src/mathjax/svgPatcher.ts
|
|
5827
5849
|
var SVG_ARABSQRT_SELECTOR = 'mjx-container[jax="SVG"] svg .mjx-rtl-mirror[data-mjx-rtl-root="true"]';
|
|
5828
5850
|
var ARABSQRT_SELECTOR = '.mjx-rtl-mirror[data-mjx-rtl-root="true"]';
|
|
5851
|
+
var SVG_PREVIEW_MIRROR_SELECTOR = 'mjx-container[jax="SVG"] svg .butex-preview-mirror';
|
|
5852
|
+
var PREVIEW_MIRROR_SELECTOR = ".butex-preview-mirror";
|
|
5829
5853
|
var PATCHED_ATTR = "data-butex-svg-arabsqrt";
|
|
5854
|
+
var MIRROR_PATCHED_ATTR = "data-butex-svg-mirror";
|
|
5830
5855
|
var ROOT_INDEX_SCALE = 0.72;
|
|
5831
5856
|
var ROOT_INDEX_GAP_FACTOR = 0.08;
|
|
5832
5857
|
var ROOT_INDEX_MIN_GAP = 2;
|
|
@@ -5851,11 +5876,12 @@ function directSvgElementChildren(element) {
|
|
|
5851
5876
|
return Array.from(element.children).filter((child) => child instanceof SVGElement);
|
|
5852
5877
|
}
|
|
5853
5878
|
function boxFor(element) {
|
|
5854
|
-
|
|
5879
|
+
const candidate = element;
|
|
5880
|
+
if (typeof candidate.getBBox !== "function") {
|
|
5855
5881
|
return null;
|
|
5856
5882
|
}
|
|
5857
5883
|
try {
|
|
5858
|
-
const box =
|
|
5884
|
+
const box = candidate.getBBox();
|
|
5859
5885
|
return {
|
|
5860
5886
|
x: box.x,
|
|
5861
5887
|
y: box.y,
|
|
@@ -6099,6 +6125,31 @@ function patchArabSqrtRoot(root) {
|
|
|
6099
6125
|
root.setAttribute(PATCHED_ATTR, "patched");
|
|
6100
6126
|
rootNode.setAttribute(PATCHED_ATTR, "patched");
|
|
6101
6127
|
}
|
|
6128
|
+
function patchPreviewMirror(element) {
|
|
6129
|
+
if (element.getAttribute(MIRROR_PATCHED_ATTR) === "patched") {
|
|
6130
|
+
return;
|
|
6131
|
+
}
|
|
6132
|
+
const box = boxFor(element);
|
|
6133
|
+
if (!box || box.width <= 0) {
|
|
6134
|
+
return;
|
|
6135
|
+
}
|
|
6136
|
+
const [tx, ty] = readTranslate(element);
|
|
6137
|
+
const mirrorX = tx + 2 * box.x + box.width;
|
|
6138
|
+
element.setAttribute(
|
|
6139
|
+
"transform",
|
|
6140
|
+
`translate(${roundSvg(mirrorX)},${roundSvg(ty)}) scale(-1,1)`
|
|
6141
|
+
);
|
|
6142
|
+
element.setAttribute(MIRROR_PATCHED_ATTR, "patched");
|
|
6143
|
+
}
|
|
6144
|
+
function collectPreviewMirrors(root) {
|
|
6145
|
+
let mirrors = Array.from(root.querySelectorAll(SVG_PREVIEW_MIRROR_SELECTOR));
|
|
6146
|
+
if (!mirrors.length) {
|
|
6147
|
+
mirrors = Array.from(root.querySelectorAll(PREVIEW_MIRROR_SELECTOR)).filter((candidate) => {
|
|
6148
|
+
return candidate.closest('mjx-container[jax="SVG"]') != null;
|
|
6149
|
+
});
|
|
6150
|
+
}
|
|
6151
|
+
return mirrors;
|
|
6152
|
+
}
|
|
6102
6153
|
function patchBuTeXSvgMath(root) {
|
|
6103
6154
|
if (typeof root.querySelectorAll !== "function") {
|
|
6104
6155
|
return;
|
|
@@ -6110,6 +6161,7 @@ function patchBuTeXSvgMath(root) {
|
|
|
6110
6161
|
});
|
|
6111
6162
|
}
|
|
6112
6163
|
roots.sort((a, b) => rootDepth(b) - rootDepth(a)).forEach((arabSqrtRoot) => patchArabSqrtRoot(arabSqrtRoot));
|
|
6164
|
+
collectPreviewMirrors(root).forEach((mirror) => patchPreviewMirror(mirror));
|
|
6113
6165
|
}
|
|
6114
6166
|
|
|
6115
6167
|
// src/mathjax/renderIsland.ts
|