@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.
@@ -1085,7 +1085,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1085
1085
  id: "neq",
1086
1086
  category: "operators1",
1087
1087
  Tex: "\\neq",
1088
- mirror: false,
1088
+ mirror: true,
1089
1089
  Label: "\u2260",
1090
1090
  title: "\u0644\u0627 \u064A\u0633\u0627\u0648\u064A",
1091
1091
  svg_path: null
@@ -1095,6 +1095,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1095
1095
  category: "operators1",
1096
1096
  Tex: "\\approx",
1097
1097
  mirror: false,
1098
+ displayMirror: true,
1098
1099
  Label: "\u2248",
1099
1100
  title: "\u062A\u0642\u0631\u064A\u0628\u0627 \u064A\u0633\u0627\u0648\u064A",
1100
1101
  svg_path: null
@@ -1104,6 +1105,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1104
1105
  category: "operators1",
1105
1106
  Tex: "\\sim",
1106
1107
  mirror: false,
1108
+ displayMirror: true,
1107
1109
  Label: "\u223C",
1108
1110
  title: "\u0645\u0634\u0627\u0628\u0647",
1109
1111
  svg_path: null
@@ -1122,6 +1124,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1122
1124
  category: "operators1",
1123
1125
  Tex: "\\leq",
1124
1126
  mirror: true,
1127
+ displayMirror: false,
1125
1128
  Label: "\u2264",
1126
1129
  title: "\u0623\u0635\u063A\u0631 \u0645\u0646 \u0623\u0648 \u064A\u0633\u0627\u0648\u064A",
1127
1130
  svg_path: null
@@ -1131,6 +1134,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1131
1134
  category: "operators1",
1132
1135
  Tex: "\\geq",
1133
1136
  mirror: true,
1137
+ displayMirror: false,
1134
1138
  Label: "\u2265",
1135
1139
  title: "\u0623\u0643\u0628\u0631 \u0645\u0646 \u0623\u0648 \u064A\u0633\u0627\u0648\u064A",
1136
1140
  svg_path: null
@@ -1140,6 +1144,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1140
1144
  category: "operators1",
1141
1145
  Tex: "\\coloneqq",
1142
1146
  mirror: true,
1147
+ displayMirror: false,
1143
1148
  Label: "\u2254",
1144
1149
  title: "\u064A\u0639\u0631\u0641 \u0628\u0623\u0646\u0647 \u064A\u0633\u0627\u0648\u064A",
1145
1150
  svg_path: null
@@ -1149,6 +1154,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1149
1154
  category: "operators1",
1150
1155
  Tex: "\\eqqcolon",
1151
1156
  mirror: true,
1157
+ displayMirror: false,
1152
1158
  Label: "\u2255",
1153
1159
  title: "\u064A\u0633\u0627\u0648\u064A \u0628\u0627\u0644\u062A\u0639\u0631\u064A\u0641",
1154
1160
  svg_path: null
@@ -1159,6 +1165,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1159
1165
  category: "operators2",
1160
1166
  Tex: "\\propto",
1161
1167
  mirror: true,
1168
+ displayMirror: false,
1162
1169
  Label: "\u221D",
1163
1170
  title: "\u064A\u062A\u0646\u0627\u0633\u0628 \u0645\u0639",
1164
1171
  svg_path: null
@@ -1168,6 +1175,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1168
1175
  category: "operators2",
1169
1176
  Tex: "\\in",
1170
1177
  mirror: true,
1178
+ displayMirror: false,
1171
1179
  Label: "\u2208",
1172
1180
  title: "\u064A\u0646\u062A\u0645\u064A \u0625\u0644\u0649",
1173
1181
  svg_path: null
@@ -1177,6 +1185,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1177
1185
  category: "operators2",
1178
1186
  Tex: "\\notin",
1179
1187
  mirror: false,
1188
+ displayMirror: true,
1180
1189
  Label: "\u2209",
1181
1190
  title: "\u0644\u0627 \u064A\u0646\u062A\u0645\u064A \u0625\u0644\u0649",
1182
1191
  svg_path: null
@@ -1186,6 +1195,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1186
1195
  category: "operators2",
1187
1196
  Tex: "\\subset",
1188
1197
  mirror: true,
1198
+ displayMirror: false,
1189
1199
  Label: "\u2282",
1190
1200
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0645\u0646",
1191
1201
  svg_path: null
@@ -1195,6 +1205,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1195
1205
  category: "operators2",
1196
1206
  Tex: "\\supset",
1197
1207
  mirror: true,
1208
+ displayMirror: false,
1198
1209
  Label: "\u2283",
1199
1210
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0644\u0640",
1200
1211
  svg_path: null
@@ -1204,6 +1215,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1204
1215
  category: "operators2",
1205
1216
  Tex: "\\subseteq",
1206
1217
  mirror: true,
1218
+ displayMirror: false,
1207
1219
  Label: "\u2286",
1208
1220
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1209
1221
  svg_path: null
@@ -1213,6 +1225,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1213
1225
  category: "operators2",
1214
1226
  Tex: "\\supseteq",
1215
1227
  mirror: true,
1228
+ displayMirror: false,
1216
1229
  Label: "\u2287",
1217
1230
  title: "\u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1218
1231
  svg_path: null
@@ -1222,6 +1235,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1222
1235
  category: "operators2",
1223
1236
  Tex: "\\cap",
1224
1237
  mirror: false,
1238
+ displayMirror: true,
1225
1239
  Label: "\u2229",
1226
1240
  title: "\u062A\u0642\u0627\u0637\u0639",
1227
1241
  svg_path: null
@@ -1231,6 +1245,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1231
1245
  category: "operators2",
1232
1246
  Tex: "\\cup",
1233
1247
  mirror: false,
1248
+ displayMirror: true,
1234
1249
  Label: "\u222A",
1235
1250
  title: "\u0627\u062A\u062D\u0627\u062F",
1236
1251
  svg_path: null
@@ -1240,6 +1255,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1240
1255
  category: "operators2",
1241
1256
  Tex: "\\emptyset",
1242
1257
  mirror: false,
1258
+ displayMirror: true,
1243
1259
  Label: "\u2205",
1244
1260
  title: "\u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0629 \u0627\u0644\u062E\u0627\u0644\u064A\u0629",
1245
1261
  svg_path: null
@@ -1249,6 +1265,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1249
1265
  category: "operators2",
1250
1266
  Tex: "\\nsubseteq",
1251
1267
  mirror: true,
1268
+ displayMirror: false,
1252
1269
  Label: "\u2288",
1253
1270
  title: "\u0644\u064A\u0633\u062A \u0645\u062C\u0645\u0648\u0639\u0629 \u062C\u0632\u0626\u064A\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1254
1271
  svg_path: null
@@ -1258,6 +1275,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1258
1275
  category: "operators2",
1259
1276
  Tex: "\\nsupseteq",
1260
1277
  mirror: true,
1278
+ displayMirror: false,
1261
1279
  Label: "\u2289",
1262
1280
  title: "\u0644\u064A\u0633\u062A \u0645\u062C\u0645\u0648\u0639\u0629 \u0634\u0627\u0645\u0644\u0629 \u0623\u0648 \u062A\u0633\u0627\u0648\u064A",
1263
1281
  svg_path: null
@@ -1469,6 +1487,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1469
1487
  category: "integrals",
1470
1488
  Tex: "\\iint",
1471
1489
  mirror: true,
1490
+ displayMirror: false,
1472
1491
  Label: "\u222C",
1473
1492
  title: "\u062A\u0643\u0627\u0645\u0644 \u0645\u0632\u062F\u0648\u062C",
1474
1493
  svg_path: null
@@ -1478,6 +1497,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1478
1497
  category: "integrals",
1479
1498
  Tex: "\\iiint",
1480
1499
  mirror: true,
1500
+ displayMirror: false,
1481
1501
  Label: "\u222D",
1482
1502
  title: "\u062A\u0643\u0627\u0645\u0644 \u062B\u0644\u0627\u062B\u064A",
1483
1503
  svg_path: null
@@ -1487,6 +1507,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1487
1507
  category: "integrals",
1488
1508
  Tex: "\\iiiint",
1489
1509
  mirror: true,
1510
+ displayMirror: false,
1490
1511
  Label: "\u2A0C",
1491
1512
  title: "\u062A\u0643\u0627\u0645\u0644 \u0631\u0628\u0627\u0639\u064A",
1492
1513
  svg_path: null
@@ -1496,6 +1517,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1496
1517
  category: "integrals",
1497
1518
  Tex: "\\oint",
1498
1519
  mirror: true,
1520
+ displayMirror: false,
1499
1521
  Label: "\u222E",
1500
1522
  title: "\u062A\u0643\u0627\u0645\u0644 \u0645\u063A\u0644\u0642",
1501
1523
  svg_path: null
@@ -1505,6 +1527,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1505
1527
  category: "integrals",
1506
1528
  Tex: "\\oiint",
1507
1529
  mirror: true,
1530
+ displayMirror: false,
1508
1531
  Label: "\u222F",
1509
1532
  title: "\u062A\u0643\u0627\u0645\u0644 \u0633\u0637\u062D\u064A \u0645\u063A\u0644\u0642",
1510
1533
  svg_path: null
@@ -1514,6 +1537,7 @@ var ATOMIC_OPERATOR_COMMANDS = {
1514
1537
  category: "integrals",
1515
1538
  Tex: "\\oiiint",
1516
1539
  mirror: true,
1540
+ displayMirror: false,
1517
1541
  Label: "\u2230",
1518
1542
  title: "\u062A\u0643\u0627\u0645\u0644 \u062D\u062C\u0645\u064A \u0645\u063A\u0644\u0642",
1519
1543
  svg_path: null
@@ -6738,7 +6762,10 @@ function documentInlineText(inlines) {
6738
6762
  // src/mathjax/svgPatcher.ts
6739
6763
  var SVG_ARABSQRT_SELECTOR = 'mjx-container[jax="SVG"] svg .mjx-rtl-mirror[data-mjx-rtl-root="true"]';
6740
6764
  var ARABSQRT_SELECTOR = '.mjx-rtl-mirror[data-mjx-rtl-root="true"]';
6765
+ var SVG_PREVIEW_MIRROR_SELECTOR = 'mjx-container[jax="SVG"] svg .butex-preview-mirror';
6766
+ var PREVIEW_MIRROR_SELECTOR = ".butex-preview-mirror";
6741
6767
  var PATCHED_ATTR = "data-butex-svg-arabsqrt";
6768
+ var MIRROR_PATCHED_ATTR = "data-butex-svg-mirror";
6742
6769
  var ROOT_INDEX_SCALE = 0.72;
6743
6770
  var ROOT_INDEX_GAP_FACTOR = 0.08;
6744
6771
  var ROOT_INDEX_MIN_GAP = 2;
@@ -6763,11 +6790,12 @@ function directSvgElementChildren(element) {
6763
6790
  return Array.from(element.children).filter((child) => child instanceof SVGElement);
6764
6791
  }
6765
6792
  function boxFor(element) {
6766
- if (!(element instanceof SVGGraphicsElement) || typeof element.getBBox !== "function") {
6793
+ const candidate = element;
6794
+ if (typeof candidate.getBBox !== "function") {
6767
6795
  return null;
6768
6796
  }
6769
6797
  try {
6770
- const box = element.getBBox();
6798
+ const box = candidate.getBBox();
6771
6799
  return {
6772
6800
  x: box.x,
6773
6801
  y: box.y,
@@ -7011,6 +7039,31 @@ function patchArabSqrtRoot(root) {
7011
7039
  root.setAttribute(PATCHED_ATTR, "patched");
7012
7040
  rootNode.setAttribute(PATCHED_ATTR, "patched");
7013
7041
  }
7042
+ function patchPreviewMirror(element) {
7043
+ if (element.getAttribute(MIRROR_PATCHED_ATTR) === "patched") {
7044
+ return;
7045
+ }
7046
+ const box = boxFor(element);
7047
+ if (!box || box.width <= 0) {
7048
+ return;
7049
+ }
7050
+ const [tx, ty] = readTranslate(element);
7051
+ const mirrorX = tx + 2 * box.x + box.width;
7052
+ element.setAttribute(
7053
+ "transform",
7054
+ `translate(${roundSvg(mirrorX)},${roundSvg(ty)}) scale(-1,1)`
7055
+ );
7056
+ element.setAttribute(MIRROR_PATCHED_ATTR, "patched");
7057
+ }
7058
+ function collectPreviewMirrors(root) {
7059
+ let mirrors = Array.from(root.querySelectorAll(SVG_PREVIEW_MIRROR_SELECTOR));
7060
+ if (!mirrors.length) {
7061
+ mirrors = Array.from(root.querySelectorAll(PREVIEW_MIRROR_SELECTOR)).filter((candidate) => {
7062
+ return candidate.closest('mjx-container[jax="SVG"]') != null;
7063
+ });
7064
+ }
7065
+ return mirrors;
7066
+ }
7014
7067
  function patchBuTeXSvgMath(root) {
7015
7068
  if (typeof root.querySelectorAll !== "function") {
7016
7069
  return;
@@ -7022,6 +7075,7 @@ function patchBuTeXSvgMath(root) {
7022
7075
  });
7023
7076
  }
7024
7077
  roots.sort((a, b) => rootDepth(b) - rootDepth(a)).forEach((arabSqrtRoot) => patchArabSqrtRoot(arabSqrtRoot));
7078
+ collectPreviewMirrors(root).forEach((mirror) => patchPreviewMirror(mirror));
7025
7079
  }
7026
7080
 
7027
7081
  // src/mathjax/renderIsland.ts