@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.
@@ -1114,7 +1114,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1114
1114
  id: "neq",
1115
1115
  category: "operators1",
1116
1116
  Tex: "\\neq",
1117
- mirror: false,
1117
+ mirror: true,
1118
1118
  Label: "\u2260",
1119
1119
  title: "\u0644\u0627 \u064A\u0633\u0627\u0648\u064A",
1120
1120
  svg_path: null
@@ -1124,6 +1124,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1124
1124
  category: "operators1",
1125
1125
  Tex: "\\approx",
1126
1126
  mirror: false,
1127
+ displayMirror: true,
1127
1128
  Label: "\u2248",
1128
1129
  title: "\u062A\u0642\u0631\u064A\u0628\u0627 \u064A\u0633\u0627\u0648\u064A",
1129
1130
  svg_path: null
@@ -1133,6 +1134,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1133
1134
  category: "operators1",
1134
1135
  Tex: "\\sim",
1135
1136
  mirror: false,
1137
+ displayMirror: true,
1136
1138
  Label: "\u223C",
1137
1139
  title: "\u0645\u0634\u0627\u0628\u0647",
1138
1140
  svg_path: null
@@ -1151,6 +1153,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1151
1153
  category: "operators1",
1152
1154
  Tex: "\\leq",
1153
1155
  mirror: true,
1156
+ displayMirror: false,
1154
1157
  Label: "\u2264",
1155
1158
  title: "\u0623\u0635\u063A\u0631 \u0645\u0646 \u0623\u0648 \u064A\u0633\u0627\u0648\u064A",
1156
1159
  svg_path: null
@@ -1160,6 +1163,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1160
1163
  category: "operators1",
1161
1164
  Tex: "\\geq",
1162
1165
  mirror: true,
1166
+ displayMirror: false,
1163
1167
  Label: "\u2265",
1164
1168
  title: "\u0623\u0643\u0628\u0631 \u0645\u0646 \u0623\u0648 \u064A\u0633\u0627\u0648\u064A",
1165
1169
  svg_path: null
@@ -1169,6 +1173,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1169
1173
  category: "operators1",
1170
1174
  Tex: "\\coloneqq",
1171
1175
  mirror: true,
1176
+ displayMirror: false,
1172
1177
  Label: "\u2254",
1173
1178
  title: "\u064A\u0639\u0631\u0641 \u0628\u0623\u0646\u0647 \u064A\u0633\u0627\u0648\u064A",
1174
1179
  svg_path: null
@@ -1178,6 +1183,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1178
1183
  category: "operators1",
1179
1184
  Tex: "\\eqqcolon",
1180
1185
  mirror: true,
1186
+ displayMirror: false,
1181
1187
  Label: "\u2255",
1182
1188
  title: "\u064A\u0633\u0627\u0648\u064A \u0628\u0627\u0644\u062A\u0639\u0631\u064A\u0641",
1183
1189
  svg_path: null
@@ -1188,6 +1194,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1188
1194
  category: "operators2",
1189
1195
  Tex: "\\propto",
1190
1196
  mirror: true,
1197
+ displayMirror: false,
1191
1198
  Label: "\u221D",
1192
1199
  title: "\u064A\u062A\u0646\u0627\u0633\u0628 \u0645\u0639",
1193
1200
  svg_path: null
@@ -1197,6 +1204,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1197
1204
  category: "operators2",
1198
1205
  Tex: "\\in",
1199
1206
  mirror: true,
1207
+ displayMirror: false,
1200
1208
  Label: "\u2208",
1201
1209
  title: "\u064A\u0646\u062A\u0645\u064A \u0625\u0644\u0649",
1202
1210
  svg_path: null
@@ -1206,6 +1214,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1206
1214
  category: "operators2",
1207
1215
  Tex: "\\notin",
1208
1216
  mirror: false,
1217
+ displayMirror: true,
1209
1218
  Label: "\u2209",
1210
1219
  title: "\u0644\u0627 \u064A\u0646\u062A\u0645\u064A \u0625\u0644\u0649",
1211
1220
  svg_path: null
@@ -1215,6 +1224,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1215
1224
  category: "operators2",
1216
1225
  Tex: "\\subset",
1217
1226
  mirror: true,
1227
+ displayMirror: false,
1218
1228
  Label: "\u2282",
1219
1229
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0645\u0646",
1220
1230
  svg_path: null
@@ -1224,6 +1234,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1224
1234
  category: "operators2",
1225
1235
  Tex: "\\supset",
1226
1236
  mirror: true,
1237
+ displayMirror: false,
1227
1238
  Label: "\u2283",
1228
1239
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0644\u0640",
1229
1240
  svg_path: null
@@ -1233,6 +1244,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1233
1244
  category: "operators2",
1234
1245
  Tex: "\\subseteq",
1235
1246
  mirror: true,
1247
+ displayMirror: false,
1236
1248
  Label: "\u2286",
1237
1249
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1238
1250
  svg_path: null
@@ -1242,6 +1254,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1242
1254
  category: "operators2",
1243
1255
  Tex: "\\supseteq",
1244
1256
  mirror: true,
1257
+ displayMirror: false,
1245
1258
  Label: "\u2287",
1246
1259
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1247
1260
  svg_path: null
@@ -1251,6 +1264,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1251
1264
  category: "operators2",
1252
1265
  Tex: "\\cap",
1253
1266
  mirror: false,
1267
+ displayMirror: true,
1254
1268
  Label: "\u2229",
1255
1269
  title: "\u062A\u0642\u0627\u0637\u0639",
1256
1270
  svg_path: null
@@ -1260,6 +1274,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1260
1274
  category: "operators2",
1261
1275
  Tex: "\\cup",
1262
1276
  mirror: false,
1277
+ displayMirror: true,
1263
1278
  Label: "\u222A",
1264
1279
  title: "\u0627\u062A\u062D\u0627\u062F",
1265
1280
  svg_path: null
@@ -1269,6 +1284,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1269
1284
  category: "operators2",
1270
1285
  Tex: "\\emptyset",
1271
1286
  mirror: false,
1287
+ displayMirror: true,
1272
1288
  Label: "\u2205",
1273
1289
  title: "\u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0629 \u0627\u0644\u062E\u0627\u0644\u064A\u0629",
1274
1290
  svg_path: null
@@ -1278,6 +1294,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1278
1294
  category: "operators2",
1279
1295
  Tex: "\\nsubseteq",
1280
1296
  mirror: true,
1297
+ displayMirror: false,
1281
1298
  Label: "\u2288",
1282
1299
  title: "\u0644\u064A\u0633\u062A \u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1283
1300
  svg_path: null
@@ -1287,6 +1304,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1287
1304
  category: "operators2",
1288
1305
  Tex: "\\nsupseteq",
1289
1306
  mirror: true,
1307
+ displayMirror: false,
1290
1308
  Label: "\u2289",
1291
1309
  title: "\u0644\u064A\u0633\u062A \u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1292
1310
  svg_path: null
@@ -1498,6 +1516,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1498
1516
  category: "integrals",
1499
1517
  Tex: "\\iint",
1500
1518
  mirror: true,
1519
+ displayMirror: false,
1501
1520
  Label: "\u222C",
1502
1521
  title: "\u062A\u0643\u0627\u0645\u0644 \u0645\u0632\u062F\u0648\u062C",
1503
1522
  svg_path: null
@@ -1507,6 +1526,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1507
1526
  category: "integrals",
1508
1527
  Tex: "\\iiint",
1509
1528
  mirror: true,
1529
+ displayMirror: false,
1510
1530
  Label: "\u222D",
1511
1531
  title: "\u062A\u0643\u0627\u0645\u0644 \u062B\u0644\u0627\u062B\u064A",
1512
1532
  svg_path: null
@@ -1516,6 +1536,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1516
1536
  category: "integrals",
1517
1537
  Tex: "\\iiiint",
1518
1538
  mirror: true,
1539
+ displayMirror: false,
1519
1540
  Label: "\u2A0C",
1520
1541
  title: "\u062A\u0643\u0627\u0645\u0644 \u0631\u0628\u0627\u0639\u064A",
1521
1542
  svg_path: null
@@ -1525,6 +1546,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1525
1546
  category: "integrals",
1526
1547
  Tex: "\\oint",
1527
1548
  mirror: true,
1549
+ displayMirror: false,
1528
1550
  Label: "\u222E",
1529
1551
  title: "\u062A\u0643\u0627\u0645\u0644 \u0645\u063A\u0644\u0642",
1530
1552
  svg_path: null
@@ -1534,6 +1556,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1534
1556
  category: "integrals",
1535
1557
  Tex: "\\oiint",
1536
1558
  mirror: true,
1559
+ displayMirror: false,
1537
1560
  Label: "\u222F",
1538
1561
  title: "\u062A\u0643\u0627\u0645\u0644 \u0633\u0637\u062D\u064A \u0645\u063A\u0644\u0642",
1539
1562
  svg_path: null
@@ -1543,6 +1566,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1543
1566
  category: "integrals",
1544
1567
  Tex: "\\oiiint",
1545
1568
  mirror: true,
1569
+ displayMirror: false,
1546
1570
  Label: "\u2230",
1547
1571
  title: "\u062A\u0643\u0627\u0645\u0644 \u062D\u062C\u0645\u064A \u0645\u063A\u0644\u0642",
1548
1572
  svg_path: null
@@ -6767,7 +6791,10 @@ function documentInlineText(inlines) {
6767
6791
  // src/mathjax/svgPatcher.ts
6768
6792
  var SVG_ARABSQRT_SELECTOR = 'mjx-container[jax="SVG"] svg .mjx-rtl-mirror[data-mjx-rtl-root="true"]';
6769
6793
  var ARABSQRT_SELECTOR = '.mjx-rtl-mirror[data-mjx-rtl-root="true"]';
6794
+ var SVG_PREVIEW_MIRROR_SELECTOR = 'mjx-container[jax="SVG"] svg .butex-preview-mirror';
6795
+ var PREVIEW_MIRROR_SELECTOR = ".butex-preview-mirror";
6770
6796
  var PATCHED_ATTR = "data-butex-svg-arabsqrt";
6797
+ var MIRROR_PATCHED_ATTR = "data-butex-svg-mirror";
6771
6798
  var ROOT_INDEX_SCALE = 0.72;
6772
6799
  var ROOT_INDEX_GAP_FACTOR = 0.08;
6773
6800
  var ROOT_INDEX_MIN_GAP = 2;
@@ -6792,11 +6819,12 @@ function directSvgElementChildren(element) {
6792
6819
  return Array.from(element.children).filter((child) => child instanceof SVGElement);
6793
6820
  }
6794
6821
  function boxFor(element) {
6795
- if (!(element instanceof SVGGraphicsElement) || typeof element.getBBox !== "function") {
6822
+ const candidate = element;
6823
+ if (typeof candidate.getBBox !== "function") {
6796
6824
  return null;
6797
6825
  }
6798
6826
  try {
6799
- const box = element.getBBox();
6827
+ const box = candidate.getBBox();
6800
6828
  return {
6801
6829
  x: box.x,
6802
6830
  y: box.y,
@@ -7040,6 +7068,31 @@ function patchArabSqrtRoot(root) {
7040
7068
  root.setAttribute(PATCHED_ATTR, "patched");
7041
7069
  rootNode.setAttribute(PATCHED_ATTR, "patched");
7042
7070
  }
7071
+ function patchPreviewMirror(element) {
7072
+ if (element.getAttribute(MIRROR_PATCHED_ATTR) === "patched") {
7073
+ return;
7074
+ }
7075
+ const box = boxFor(element);
7076
+ if (!box || box.width <= 0) {
7077
+ return;
7078
+ }
7079
+ const [tx, ty] = readTranslate(element);
7080
+ const mirrorX = tx + 2 * box.x + box.width;
7081
+ element.setAttribute(
7082
+ "transform",
7083
+ `translate(${roundSvg(mirrorX)},${roundSvg(ty)}) scale(-1,1)`
7084
+ );
7085
+ element.setAttribute(MIRROR_PATCHED_ATTR, "patched");
7086
+ }
7087
+ function collectPreviewMirrors(root) {
7088
+ let mirrors = Array.from(root.querySelectorAll(SVG_PREVIEW_MIRROR_SELECTOR));
7089
+ if (!mirrors.length) {
7090
+ mirrors = Array.from(root.querySelectorAll(PREVIEW_MIRROR_SELECTOR)).filter((candidate) => {
7091
+ return candidate.closest('mjx-container[jax="SVG"]') != null;
7092
+ });
7093
+ }
7094
+ return mirrors;
7095
+ }
7043
7096
  function patchBuTeXSvgMath(root) {
7044
7097
  if (typeof root.querySelectorAll !== "function") {
7045
7098
  return;
@@ -7051,6 +7104,7 @@ function patchBuTeXSvgMath(root) {
7051
7104
  });
7052
7105
  }
7053
7106
  roots.sort((a, b) => rootDepth(b) - rootDepth(a)).forEach((arabSqrtRoot) => patchArabSqrtRoot(arabSqrtRoot));
7107
+ collectPreviewMirrors(root).forEach((mirror) => patchPreviewMirror(mirror));
7054
7108
  }
7055
7109
 
7056
7110
  // src/mathjax/renderIsland.ts