@drghaliasri/butex 3.2.2 → 4.0.0
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/README.md +8 -2
- package/dist/document.js +72 -0
- package/dist/document.js.map +1 -1
- package/dist/document.mjs +72 -0
- package/dist/document.mjs.map +1 -1
- package/dist/document2.d.mts +11 -5
- package/dist/document2.d.ts +11 -5
- package/dist/document2.js +207 -35
- package/dist/document2.js.map +1 -1
- package/dist/document2.mjs +202 -35
- package/dist/document2.mjs.map +1 -1
- package/dist/index.d.mts +81 -4
- package/dist/index.d.ts +81 -4
- package/dist/index.global.js +436 -31
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +436 -31
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +436 -31
- package/dist/index.mjs.map +1 -1
- package/dist/react-document.js +631 -175
- package/dist/react-document.js.map +1 -1
- package/dist/react-document.mjs +631 -175
- package/dist/react-document.mjs.map +1 -1
- package/dist/react-document2.d.mts +31 -9
- package/dist/react-document2.d.ts +31 -9
- package/dist/react-document2.js +1151 -411
- package/dist/react-document2.js.map +1 -1
- package/dist/react-document2.mjs +1151 -411
- package/dist/react-document2.mjs.map +1 -1
- package/dist/react.d.mts +80 -1
- package/dist/react.d.ts +80 -1
- package/dist/react.js +631 -175
- package/dist/react.js.map +1 -1
- package/dist/react.mjs +631 -175
- package/dist/react.mjs.map +1 -1
- package/package.json +1 -1
package/dist/react.js
CHANGED
|
@@ -584,6 +584,24 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
584
584
|
title: "\u0623\u0643\u0628\u0631 \u0645\u0646 \u0623\u0648 \u064A\u0633\u0627\u0648\u064A",
|
|
585
585
|
svg_path: null
|
|
586
586
|
},
|
|
587
|
+
coloneqq: {
|
|
588
|
+
id: "coloneqq",
|
|
589
|
+
category: "operators1",
|
|
590
|
+
Tex: "\\coloneqq",
|
|
591
|
+
mirror: true,
|
|
592
|
+
Label: "\u2254",
|
|
593
|
+
title: "\u064A\u0639\u0631\u0641 \u0628\u0623\u0646\u0647 \u064A\u0633\u0627\u0648\u064A",
|
|
594
|
+
svg_path: null
|
|
595
|
+
},
|
|
596
|
+
eqqcolon: {
|
|
597
|
+
id: "eqqcolon",
|
|
598
|
+
category: "operators1",
|
|
599
|
+
Tex: "\\eqqcolon",
|
|
600
|
+
mirror: true,
|
|
601
|
+
Label: "\u2255",
|
|
602
|
+
title: "\u064A\u0633\u0627\u0648\u064A \u0628\u0627\u0644\u062A\u0639\u0631\u064A\u0641",
|
|
603
|
+
svg_path: null
|
|
604
|
+
},
|
|
587
605
|
///// Operators 2
|
|
588
606
|
propto: {
|
|
589
607
|
id: "propto",
|
|
@@ -750,6 +768,60 @@ var ATOMIC_OPERATOR_COMMANDS = {
|
|
|
750
768
|
title: "\u064A\u0643\u0627\u0641\u0626",
|
|
751
769
|
svg_path: null
|
|
752
770
|
},
|
|
771
|
+
implies: {
|
|
772
|
+
id: "implies",
|
|
773
|
+
category: "operators3",
|
|
774
|
+
Tex: "\\implies",
|
|
775
|
+
mirror: true,
|
|
776
|
+
Label: "\u21D2",
|
|
777
|
+
title: "\u064A\u0633\u062A\u0644\u0632\u0645",
|
|
778
|
+
svg_path: null
|
|
779
|
+
},
|
|
780
|
+
impliedby: {
|
|
781
|
+
id: "impliedby",
|
|
782
|
+
category: "operators3",
|
|
783
|
+
Tex: "\\impliedby",
|
|
784
|
+
mirror: true,
|
|
785
|
+
Label: "\u21D0",
|
|
786
|
+
title: "\u0645\u0633\u062A\u0644\u0632\u0645 \u0645\u0646",
|
|
787
|
+
svg_path: null
|
|
788
|
+
},
|
|
789
|
+
iff: {
|
|
790
|
+
id: "iff",
|
|
791
|
+
category: "operators3",
|
|
792
|
+
Tex: "\\iff",
|
|
793
|
+
mirror: false,
|
|
794
|
+
Label: "\u21D4",
|
|
795
|
+
title: "\u0625\u0630\u0627 \u0648\u0641\u0642\u0637 \u0625\u0630\u0627",
|
|
796
|
+
svg_path: null
|
|
797
|
+
},
|
|
798
|
+
Longrightarrow: {
|
|
799
|
+
id: "Longrightarrow",
|
|
800
|
+
category: "operators3",
|
|
801
|
+
Tex: "\\Longrightarrow",
|
|
802
|
+
mirror: true,
|
|
803
|
+
Label: "\u27F9",
|
|
804
|
+
title: "\u0633\u0647\u0645 \u0645\u0632\u062F\u0648\u062C \u0637\u0648\u064A\u0644 \u0625\u0644\u0649 \u0627\u0644\u064A\u0645\u064A\u0646",
|
|
805
|
+
svg_path: null
|
|
806
|
+
},
|
|
807
|
+
Longleftarrow: {
|
|
808
|
+
id: "Longleftarrow",
|
|
809
|
+
category: "operators3",
|
|
810
|
+
Tex: "\\Longleftarrow",
|
|
811
|
+
mirror: true,
|
|
812
|
+
Label: "\u27F8",
|
|
813
|
+
title: "\u0633\u0647\u0645 \u0645\u0632\u062F\u0648\u062C \u0637\u0648\u064A\u0644 \u0625\u0644\u0649 \u0627\u0644\u064A\u0633\u0627\u0631",
|
|
814
|
+
svg_path: null
|
|
815
|
+
},
|
|
816
|
+
to: {
|
|
817
|
+
id: "to",
|
|
818
|
+
category: "operators3",
|
|
819
|
+
Tex: "\\to",
|
|
820
|
+
mirror: true,
|
|
821
|
+
Label: "\u2192",
|
|
822
|
+
title: "\u064A\u0624\u0648\u0644 \u0625\u0644\u0649",
|
|
823
|
+
svg_path: null
|
|
824
|
+
},
|
|
753
825
|
rightleftharpoons: {
|
|
754
826
|
id: "rightleftharpoons",
|
|
755
827
|
category: "operators3",
|
|
@@ -1669,6 +1741,321 @@ function undoRedoCanRedo(stacks) {
|
|
|
1669
1741
|
return stacks.future.length > 0;
|
|
1670
1742
|
}
|
|
1671
1743
|
|
|
1744
|
+
// src/editor/uiLocale.ts
|
|
1745
|
+
var ENGLISH_COMMAND_TITLES = {
|
|
1746
|
+
cos: "Cosine",
|
|
1747
|
+
sin: "Sine",
|
|
1748
|
+
tan: "Tangent",
|
|
1749
|
+
cot: "Cotangent",
|
|
1750
|
+
sec: "Secant",
|
|
1751
|
+
csc: "Cosecant",
|
|
1752
|
+
arccos: "Inverse cosine",
|
|
1753
|
+
arcsin: "Inverse sine",
|
|
1754
|
+
arctan: "Inverse tangent",
|
|
1755
|
+
arccot: "Inverse cotangent",
|
|
1756
|
+
arcsec: "Inverse secant",
|
|
1757
|
+
arccsc: "Inverse cosecant",
|
|
1758
|
+
cosh: "Hyperbolic cosine",
|
|
1759
|
+
sinh: "Hyperbolic sine",
|
|
1760
|
+
tanh: "Hyperbolic tangent",
|
|
1761
|
+
coth: "Hyperbolic cotangent",
|
|
1762
|
+
sum: "Sum",
|
|
1763
|
+
prod: "Product",
|
|
1764
|
+
lim: "Limit",
|
|
1765
|
+
max: "Maximum",
|
|
1766
|
+
min: "Minimum",
|
|
1767
|
+
sup: "Supremum",
|
|
1768
|
+
inf: "Infimum",
|
|
1769
|
+
pi: "Pi",
|
|
1770
|
+
exp: "Exponential",
|
|
1771
|
+
ln: "Natural logarithm",
|
|
1772
|
+
log: "Logarithm",
|
|
1773
|
+
det: "Determinant",
|
|
1774
|
+
N: "Natural numbers",
|
|
1775
|
+
Z: "Integers",
|
|
1776
|
+
Q: "Rational numbers",
|
|
1777
|
+
R: "Real numbers",
|
|
1778
|
+
C: "Complex numbers",
|
|
1779
|
+
H: "Quaternions",
|
|
1780
|
+
negThinSpace: "Negative thin space",
|
|
1781
|
+
mediumSpace: "Medium space",
|
|
1782
|
+
thickSpace: "Thick space",
|
|
1783
|
+
quadSpace: "Large space",
|
|
1784
|
+
qquadSpace: "Extra-large space"
|
|
1785
|
+
};
|
|
1786
|
+
var ENGLISH_OPERATOR_TITLES = {
|
|
1787
|
+
inf: "Infinity",
|
|
1788
|
+
times: "Multiplication",
|
|
1789
|
+
div: "Division",
|
|
1790
|
+
pm: "Plus or minus",
|
|
1791
|
+
mp: "Minus or plus",
|
|
1792
|
+
neq: "Not equal",
|
|
1793
|
+
approx: "Approximately equal",
|
|
1794
|
+
sim: "Similar",
|
|
1795
|
+
mid: "Divides",
|
|
1796
|
+
leq: "Less than or equal",
|
|
1797
|
+
geq: "Greater than or equal",
|
|
1798
|
+
coloneqq: "Defined as equal to",
|
|
1799
|
+
eqqcolon: "Equal by definition",
|
|
1800
|
+
propto: "Proportional to",
|
|
1801
|
+
in: "Element of",
|
|
1802
|
+
notin: "Not an element of",
|
|
1803
|
+
subset: "Subset of",
|
|
1804
|
+
supset: "Superset of",
|
|
1805
|
+
subseteq: "Subset of or equal",
|
|
1806
|
+
supseteq: "Superset of or equal",
|
|
1807
|
+
cap: "Intersection",
|
|
1808
|
+
cup: "Union",
|
|
1809
|
+
emptyset: "Empty set",
|
|
1810
|
+
nsubseteq: "Not a subset of or equal",
|
|
1811
|
+
nsupseteq: "Not a superset of or equal",
|
|
1812
|
+
ldots: "Horizontal dots",
|
|
1813
|
+
cdot: "Multiplication dot",
|
|
1814
|
+
cdots: "Centered horizontal dots",
|
|
1815
|
+
vdots: "Vertical dots",
|
|
1816
|
+
ddots: "Diagonal dots",
|
|
1817
|
+
leftrightarrowDouble: "Equivalent",
|
|
1818
|
+
implies: "Implies",
|
|
1819
|
+
impliedby: "Implied by",
|
|
1820
|
+
iff: "If and only if",
|
|
1821
|
+
Longrightarrow: "Long double arrow right",
|
|
1822
|
+
Longleftarrow: "Long double arrow left",
|
|
1823
|
+
to: "Maps to",
|
|
1824
|
+
rightleftharpoons: "Equilibrium",
|
|
1825
|
+
leftarrow: "Left arrow",
|
|
1826
|
+
rightarrow: "Right arrow",
|
|
1827
|
+
leftarrowDouble: "Double left arrow",
|
|
1828
|
+
rightarrowDouble: "Double right arrow",
|
|
1829
|
+
leftharpoonup: "Upper left harpoon",
|
|
1830
|
+
rightharpoonup: "Upper right harpoon",
|
|
1831
|
+
leftharpoondown: "Lower left harpoon",
|
|
1832
|
+
rightharpoondown: "Lower right harpoon",
|
|
1833
|
+
int: "Integral",
|
|
1834
|
+
iint: "Double integral",
|
|
1835
|
+
iiint: "Triple integral",
|
|
1836
|
+
iiiint: "Quadruple integral",
|
|
1837
|
+
oint: "Contour integral",
|
|
1838
|
+
oiint: "Closed surface integral",
|
|
1839
|
+
oiiint: "Closed volume integral"
|
|
1840
|
+
};
|
|
1841
|
+
var EQUATION_EDITOR_MESSAGES = {
|
|
1842
|
+
ar: {
|
|
1843
|
+
undoRedo: "\u062A\u0631\u0627\u062C\u0639 \u0648\u0625\u0639\u0627\u062F\u0629",
|
|
1844
|
+
undo: "\u062A\u0631\u0627\u062C\u0639",
|
|
1845
|
+
redo: "\u0625\u0639\u0627\u062F\u0629",
|
|
1846
|
+
clipboard: "\u0627\u0644\u062D\u0627\u0641\u0638\u0629",
|
|
1847
|
+
copy: "\u0646\u0633\u062E",
|
|
1848
|
+
cut: "\u0642\u0635",
|
|
1849
|
+
paste: "\u0644\u0635\u0642",
|
|
1850
|
+
editorSettings: "\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0627\u0644\u0645\u062D\u0631\u0631",
|
|
1851
|
+
toggleSide: "\u062A\u0628\u062F\u064A\u0644 \u0639\u0631\u0628\u064A / \u0625\u0646\u062C\u0644\u064A\u0632\u064A",
|
|
1852
|
+
structures: "\u0627\u0644\u0628\u0646\u0649",
|
|
1853
|
+
insertDelimiters: "\u0625\u062F\u0631\u0627\u062C \u0645\u062D\u062F\u062F\u0627\u062A",
|
|
1854
|
+
insertParentheses: "\u0625\u062F\u0631\u0627\u062C \u0642\u0648\u0633\u064A\u0646",
|
|
1855
|
+
insertBrackets: "\u0625\u062F\u0631\u0627\u062C \u0645\u0639\u0642\u0648\u0641\u064A\u0646",
|
|
1856
|
+
insertBraces: "\u0625\u062F\u0631\u0627\u062C \u062D\u0627\u0635\u0631\u062A\u064A\u0646",
|
|
1857
|
+
insertFraction: "\u0625\u062F\u0631\u0627\u062C \u0643\u0633\u0631",
|
|
1858
|
+
insertRoot: "\u0625\u062F\u0631\u0627\u062C \u062C\u0630\u0631",
|
|
1859
|
+
environments: "\u0627\u0644\u0628\u064A\u0626\u0627\u062A",
|
|
1860
|
+
insertEnvironment: "\u0625\u062F\u0631\u0627\u062C \u0628\u064A\u0626\u0629 \u0634\u0628\u0643\u064A\u0629",
|
|
1861
|
+
environmentType: "\u0646\u0648\u0639 \u0627\u0644\u0628\u064A\u0626\u0629",
|
|
1862
|
+
matrix: "\u0645\u0635\u0641\u0648\u0641\u0629",
|
|
1863
|
+
array: "\u062C\u062F\u0648\u0644",
|
|
1864
|
+
aligned: "\u0645\u062D\u0627\u0630\u0627\u0629",
|
|
1865
|
+
matrixType: "\u0646\u0648\u0639 \u0627\u0644\u0645\u0635\u0641\u0648\u0641\u0629",
|
|
1866
|
+
chooseEnvironmentSize: "\u0627\u062E\u062A\u064A\u0627\u0631 \u062D\u062C\u0645 \u0627\u0644\u0628\u064A\u0626\u0629",
|
|
1867
|
+
rows: "\u0635\u0641\u0648\u0641",
|
|
1868
|
+
columns: "\u0623\u0639\u0645\u062F\u0629",
|
|
1869
|
+
row: "\u0635\u0641",
|
|
1870
|
+
column: "\u0639\u0645\u0648\u062F",
|
|
1871
|
+
insert: "\u0625\u062F\u0631\u0627\u062C",
|
|
1872
|
+
editSelectedEnvironment: "\u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0628\u064A\u0626\u0629 \u0627\u0644\u0645\u062D\u062F\u062F\u0629",
|
|
1873
|
+
applySelectedMatrixStyle: "\u062A\u0637\u0628\u064A\u0642 \u0627\u0644\u0646\u0645\u0637 \u0639\u0644\u0649 \u0627\u0644\u0645\u0635\u0641\u0648\u0641\u0629 \u0627\u0644\u0645\u062D\u062F\u062F\u0629",
|
|
1874
|
+
applyStyle: "\u062A\u0637\u0628\u064A\u0642 \u0627\u0644\u0646\u0645\u0637",
|
|
1875
|
+
addRow: "\u0625\u0636\u0627\u0641\u0629 \u0635\u0641",
|
|
1876
|
+
removeRow: "\u062D\u0630\u0641 \u0635\u0641",
|
|
1877
|
+
addColumn: "\u0625\u0636\u0627\u0641\u0629 \u0639\u0645\u0648\u062F",
|
|
1878
|
+
removeColumn: "\u062D\u0630\u0641 \u0639\u0645\u0648\u062F",
|
|
1879
|
+
spaces: "\u0627\u0644\u0641\u0631\u0627\u063A\u0627\u062A",
|
|
1880
|
+
insertSpace: "\u0625\u062F\u0631\u0627\u062C \u0641\u0631\u0627\u063A",
|
|
1881
|
+
functions: "\u0627\u0644\u062F\u0648\u0627\u0644",
|
|
1882
|
+
insertFunction: "\u0625\u062F\u0631\u0627\u062C \u062F\u0627\u0644\u0629",
|
|
1883
|
+
insertLimitsSeries: "\u0625\u062F\u0631\u0627\u062C \u062D\u062F\u0648\u062F \u0648\u0645\u062A\u0633\u0644\u0633\u0644\u0627\u062A",
|
|
1884
|
+
insertAdditionalFunctions: "\u0625\u062F\u0631\u0627\u062C \u062F\u0648\u0627\u0644 \u0625\u0636\u0627\u0641\u064A\u0629",
|
|
1885
|
+
insertNumberSets: "\u0625\u062F\u0631\u0627\u062C \u0645\u062C\u0645\u0648\u0639\u0627\u062A \u0623\u0639\u062F\u0627\u062F",
|
|
1886
|
+
operations: "\u0627\u0644\u0639\u0645\u0644\u064A\u0627\u062A",
|
|
1887
|
+
insertOperation: "\u0625\u062F\u0631\u0627\u062C \u0631\u0645\u0632 \u0639\u0645\u0644\u064A\u0629",
|
|
1888
|
+
insertRelationsSets: "\u0625\u062F\u0631\u0627\u062C \u0631\u0645\u0648\u0632 \u0639\u0644\u0627\u0642\u0627\u062A \u0648\u0645\u062C\u0645\u0648\u0639\u0627\u062A",
|
|
1889
|
+
insertArrows: "\u0625\u062F\u0631\u0627\u062C \u0623\u0633\u0647\u0645",
|
|
1890
|
+
insertDots: "\u0625\u062F\u0631\u0627\u062C \u0646\u0642\u0627\u0637",
|
|
1891
|
+
insertIntegrals: "\u0625\u062F\u0631\u0627\u062C \u062A\u0643\u0627\u0645\u0644\u0627\u062A",
|
|
1892
|
+
scripts: "\u0627\u0644\u0623\u0633 \u0648\u0627\u0644\u0633\u0641\u0644\u064A",
|
|
1893
|
+
addSuperscript: "\u0625\u0636\u0627\u0641\u0629 \u0623\u0633",
|
|
1894
|
+
addSubscript: "\u0625\u0636\u0627\u0641\u0629 \u0633\u0641\u0644\u064A",
|
|
1895
|
+
removeSuperscript: "\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0623\u0633",
|
|
1896
|
+
removeSubscript: "\u0625\u0632\u0627\u0644\u0629 \u0627\u0644\u0633\u0641\u0644\u064A",
|
|
1897
|
+
inputStyles: "\u0623\u0646\u0645\u0627\u0637 \u0627\u0644\u0625\u062F\u062E\u0627\u0644",
|
|
1898
|
+
deleteSelectedStructure: "\u062D\u0630\u0641 \u0627\u0644\u0628\u0646\u064A\u0629 \u0627\u0644\u0645\u062D\u062F\u062F\u0629",
|
|
1899
|
+
toggleLetterMerging: "\u062A\u0628\u062F\u064A\u0644 \u062F\u0645\u062C \u0627\u0644\u062D\u0631\u0648\u0641",
|
|
1900
|
+
disableLetterMerging: "\u062A\u0639\u0637\u064A\u0644 \u062F\u0645\u062C \u0627\u0644\u062D\u0631\u0648\u0641",
|
|
1901
|
+
enableLetterMerging: "\u062A\u0641\u0639\u064A\u0644 \u062F\u0645\u062C \u0627\u0644\u062D\u0631\u0648\u0641",
|
|
1902
|
+
chooseWritingFont: "\u0627\u062E\u062A\u064A\u0627\u0631 \u062E\u0637 \u0627\u0644\u0643\u062A\u0627\u0628\u0629",
|
|
1903
|
+
chooseDigitForm: "\u0627\u062E\u062A\u064A\u0627\u0631 \u0634\u0643\u0644 \u0627\u0644\u0623\u0631\u0642\u0627\u0645",
|
|
1904
|
+
defaultFont: "\u0627\u0644\u062E\u0637 \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A",
|
|
1905
|
+
takweenFont: "\u062E\u0637 \u062A\u0643\u0648\u064A\u0646",
|
|
1906
|
+
diwaniFont: "\u062E\u0637 \u062F\u064A\u0648\u0627\u0646\u064A",
|
|
1907
|
+
diwaniOutlineFont: "\u062E\u0637 \u062F\u064A\u0648\u0627\u0646\u064A \u0645\u0638\u0644\u0644",
|
|
1908
|
+
writeDefaultFont: "\u0627\u0644\u0643\u062A\u0627\u0628\u0629 \u0628\u0627\u0644\u062E\u0637 \u0627\u0644\u0627\u0641\u062A\u0631\u0627\u0636\u064A",
|
|
1909
|
+
writeTakweenFont: "\u0627\u0644\u0643\u062A\u0627\u0628\u0629 \u0628\u062E\u0637 \u062A\u0643\u0648\u064A\u0646",
|
|
1910
|
+
westernDigits: "\u0623\u0631\u0642\u0627\u0645 \u063A\u0631\u0628\u064A\u0629",
|
|
1911
|
+
arabicIndicDigits: "\u0623\u0631\u0642\u0627\u0645 \u0639\u0631\u0628\u064A\u0629 \u0647\u0646\u062F\u064A\u0629",
|
|
1912
|
+
persianIndicDigits: "\u0623\u0631\u0642\u0627\u0645 \u0641\u0627\u0631\u0633\u064A\u0629 \u0647\u0646\u062F\u064A\u0629",
|
|
1913
|
+
equationEditor: "\u0645\u062D\u0631\u0631 \u0627\u0644\u0645\u0639\u0627\u062F\u0644\u0627\u062A",
|
|
1914
|
+
renderPreview: "\u0645\u0639\u0627\u064A\u0646\u0629 \u0627\u0644\u0631\u0633\u0645",
|
|
1915
|
+
development: "\u062A\u0637\u0648\u064A\u0631",
|
|
1916
|
+
showDebugLog: "\u0625\u0638\u0647\u0627\u0631 \u0633\u062C\u0644 \u0627\u0644\u062A\u0635\u062D\u064A\u062D",
|
|
1917
|
+
hideDebugLog: "\u0625\u062E\u0641\u0627\u0621 \u0633\u062C\u0644 \u0627\u0644\u062A\u0635\u062D\u064A\u062D",
|
|
1918
|
+
copyDebugLog: "\u0646\u0633\u062E \u0633\u062C\u0644 \u0627\u0644\u062A\u0635\u062D\u064A\u062D",
|
|
1919
|
+
empty: "\u0641\u0627\u0631\u063A",
|
|
1920
|
+
englishLatex: "LaTeX \u0625\u0646\u062C\u0644\u064A\u0632\u064A",
|
|
1921
|
+
arabicLatex: "LaTeX \u0639\u0631\u0628\u064A",
|
|
1922
|
+
inactiveEnglish: "\u0627\u0644\u0633\u0644\u0633\u0644\u0629 \u063A\u064A\u0631 \u0627\u0644\u0646\u0634\u0637\u0629 (\u0625\u0646\u062C\u0644\u064A\u0632\u064A)",
|
|
1923
|
+
inactiveArabic: "\u0627\u0644\u0633\u0644\u0633\u0644\u0629 \u063A\u064A\u0631 \u0627\u0644\u0646\u0634\u0637\u0629 (\u0639\u0631\u0628\u064A)",
|
|
1924
|
+
mathJaxError: "\u062E\u0637\u0623 MathJax",
|
|
1925
|
+
previewError: "\u062E\u0637\u0623 \u0641\u064A \u0627\u0644\u0645\u0639\u0627\u064A\u0646\u0629",
|
|
1926
|
+
activeSide: "\u0627\u0644\u062C\u0627\u0646\u0628 \u0627\u0644\u0646\u0634\u0637",
|
|
1927
|
+
syncState: "\u062D\u0627\u0644\u0629 \u0627\u0644\u0645\u0632\u0627\u0645\u0646\u0629",
|
|
1928
|
+
arabicSide: "\u0627\u0644\u0639\u0631\u0628\u064A\u0629",
|
|
1929
|
+
englishSide: "\u0627\u0644\u0625\u0646\u062C\u0644\u064A\u0632\u064A\u0629",
|
|
1930
|
+
synced: "\u0645\u062A\u0632\u0627\u0645\u0646",
|
|
1931
|
+
differentItems: "\u0639\u0646\u0627\u0635\u0631 \u0645\u062E\u062A\u0644\u0641\u0629",
|
|
1932
|
+
alignLeft: "\u064A\u0633\u0627\u0631",
|
|
1933
|
+
alignCenter: "\u0648\u0633\u0637",
|
|
1934
|
+
alignRight: "\u064A\u0645\u064A\u0646",
|
|
1935
|
+
alignColumnLeft: "\u0645\u062D\u0627\u0630\u0627\u0629 \u0627\u0644\u0639\u0645\u0648\u062F \u0625\u0644\u0649 \u0627\u0644\u064A\u0633\u0627\u0631",
|
|
1936
|
+
alignColumnCenter: "\u0645\u062D\u0627\u0630\u0627\u0629 \u0627\u0644\u0639\u0645\u0648\u062F \u0641\u064A \u0627\u0644\u0648\u0633\u0637",
|
|
1937
|
+
alignColumnRight: "\u0645\u062D\u0627\u0630\u0627\u0629 \u0627\u0644\u0639\u0645\u0648\u062F \u0625\u0644\u0649 \u0627\u0644\u064A\u0645\u064A\u0646",
|
|
1938
|
+
matrixNoDelimiters: "\u0645\u0635\u0641\u0648\u0641\u0629 \u0628\u0644\u0627 \u0623\u0642\u0648\u0627\u0633",
|
|
1939
|
+
matrixParentheses: "\u0645\u0635\u0641\u0648\u0641\u0629 \u0628\u064A\u0646 \u0642\u0648\u0633\u064A\u0646",
|
|
1940
|
+
matrixBrackets: "\u0645\u0635\u0641\u0648\u0641\u0629 \u0628\u064A\u0646 \u0645\u0639\u0642\u0648\u0641\u064A\u0646",
|
|
1941
|
+
matrixBraces: "\u0645\u0635\u0641\u0648\u0641\u0629 \u0628\u064A\u0646 \u062D\u0627\u0635\u0631\u062A\u064A\u0646",
|
|
1942
|
+
matrixBars: "\u0645\u0635\u0641\u0648\u0641\u0629 \u0628\u064A\u0646 \u062E\u0637\u064A\u0646",
|
|
1943
|
+
matrixDoubleBars: "\u0645\u0635\u0641\u0648\u0641\u0629 \u0628\u064A\u0646 \u062E\u0637\u064A\u0646 \u0645\u0632\u062F\u0648\u062C\u064A\u0646"
|
|
1944
|
+
},
|
|
1945
|
+
en: {
|
|
1946
|
+
undoRedo: "Undo and redo",
|
|
1947
|
+
undo: "Undo",
|
|
1948
|
+
redo: "Redo",
|
|
1949
|
+
clipboard: "Clipboard",
|
|
1950
|
+
copy: "Copy",
|
|
1951
|
+
cut: "Cut",
|
|
1952
|
+
paste: "Paste",
|
|
1953
|
+
editorSettings: "Editor settings",
|
|
1954
|
+
toggleSide: "Switch Arabic / English equation side",
|
|
1955
|
+
structures: "Structures",
|
|
1956
|
+
insertDelimiters: "Insert delimiters",
|
|
1957
|
+
insertParentheses: "Insert parentheses",
|
|
1958
|
+
insertBrackets: "Insert brackets",
|
|
1959
|
+
insertBraces: "Insert braces",
|
|
1960
|
+
insertFraction: "Insert fraction",
|
|
1961
|
+
insertRoot: "Insert root",
|
|
1962
|
+
environments: "Environments",
|
|
1963
|
+
insertEnvironment: "Insert grid environment",
|
|
1964
|
+
environmentType: "Environment type",
|
|
1965
|
+
matrix: "Matrix",
|
|
1966
|
+
array: "Array",
|
|
1967
|
+
aligned: "Aligned",
|
|
1968
|
+
matrixType: "Matrix type",
|
|
1969
|
+
chooseEnvironmentSize: "Choose environment size",
|
|
1970
|
+
rows: "Rows",
|
|
1971
|
+
columns: "Columns",
|
|
1972
|
+
row: "Row",
|
|
1973
|
+
column: "Column",
|
|
1974
|
+
insert: "Insert",
|
|
1975
|
+
editSelectedEnvironment: "Edit selected environment",
|
|
1976
|
+
applySelectedMatrixStyle: "Apply style to selected matrix",
|
|
1977
|
+
applyStyle: "Apply style",
|
|
1978
|
+
addRow: "Add row",
|
|
1979
|
+
removeRow: "Remove row",
|
|
1980
|
+
addColumn: "Add column",
|
|
1981
|
+
removeColumn: "Remove column",
|
|
1982
|
+
spaces: "Spacing",
|
|
1983
|
+
insertSpace: "Insert space",
|
|
1984
|
+
functions: "Functions",
|
|
1985
|
+
insertFunction: "Insert function",
|
|
1986
|
+
insertLimitsSeries: "Insert limits and series",
|
|
1987
|
+
insertAdditionalFunctions: "Insert additional functions",
|
|
1988
|
+
insertNumberSets: "Insert number sets",
|
|
1989
|
+
operations: "Operators",
|
|
1990
|
+
insertOperation: "Insert operator",
|
|
1991
|
+
insertRelationsSets: "Insert relation or set symbol",
|
|
1992
|
+
insertArrows: "Insert arrow",
|
|
1993
|
+
insertDots: "Insert dots",
|
|
1994
|
+
insertIntegrals: "Insert integral",
|
|
1995
|
+
scripts: "Superscript and subscript",
|
|
1996
|
+
addSuperscript: "Add superscript",
|
|
1997
|
+
addSubscript: "Add subscript",
|
|
1998
|
+
removeSuperscript: "Remove superscript",
|
|
1999
|
+
removeSubscript: "Remove subscript",
|
|
2000
|
+
inputStyles: "Input styles",
|
|
2001
|
+
deleteSelectedStructure: "Delete selected structure",
|
|
2002
|
+
toggleLetterMerging: "Toggle letter merging",
|
|
2003
|
+
disableLetterMerging: "Disable letter merging",
|
|
2004
|
+
enableLetterMerging: "Enable letter merging",
|
|
2005
|
+
chooseWritingFont: "Choose writing font",
|
|
2006
|
+
chooseDigitForm: "Choose digit form",
|
|
2007
|
+
defaultFont: "Default font",
|
|
2008
|
+
takweenFont: "Takween font",
|
|
2009
|
+
diwaniFont: "Diwani font",
|
|
2010
|
+
diwaniOutlineFont: "Outlined Diwani font",
|
|
2011
|
+
writeDefaultFont: "Write with the default font",
|
|
2012
|
+
writeTakweenFont: "Write with Takween font",
|
|
2013
|
+
westernDigits: "Western digits",
|
|
2014
|
+
arabicIndicDigits: "Arabic-Indic digits",
|
|
2015
|
+
persianIndicDigits: "Persian digits",
|
|
2016
|
+
equationEditor: "Equation editor",
|
|
2017
|
+
renderPreview: "Rendered preview",
|
|
2018
|
+
development: "Development",
|
|
2019
|
+
showDebugLog: "Show debug log",
|
|
2020
|
+
hideDebugLog: "Hide debug log",
|
|
2021
|
+
copyDebugLog: "Copy debug log",
|
|
2022
|
+
empty: "Empty",
|
|
2023
|
+
englishLatex: "English LaTeX",
|
|
2024
|
+
arabicLatex: "Arabic LaTeX",
|
|
2025
|
+
inactiveEnglish: "Inactive chain (English)",
|
|
2026
|
+
inactiveArabic: "Inactive chain (Arabic)",
|
|
2027
|
+
mathJaxError: "MathJax error",
|
|
2028
|
+
previewError: "Preview error",
|
|
2029
|
+
activeSide: "Active side",
|
|
2030
|
+
syncState: "Sync state",
|
|
2031
|
+
arabicSide: "Arabic",
|
|
2032
|
+
englishSide: "English",
|
|
2033
|
+
synced: "Synced",
|
|
2034
|
+
differentItems: "different items",
|
|
2035
|
+
alignLeft: "Left",
|
|
2036
|
+
alignCenter: "Center",
|
|
2037
|
+
alignRight: "Right",
|
|
2038
|
+
alignColumnLeft: "Align column left",
|
|
2039
|
+
alignColumnCenter: "Align column center",
|
|
2040
|
+
alignColumnRight: "Align column right",
|
|
2041
|
+
matrixNoDelimiters: "Matrix without delimiters",
|
|
2042
|
+
matrixParentheses: "Matrix in parentheses",
|
|
2043
|
+
matrixBrackets: "Matrix in brackets",
|
|
2044
|
+
matrixBraces: "Matrix in braces",
|
|
2045
|
+
matrixBars: "Matrix between bars",
|
|
2046
|
+
matrixDoubleBars: "Matrix between double bars"
|
|
2047
|
+
}
|
|
2048
|
+
};
|
|
2049
|
+
function equationEditorMessages(locale) {
|
|
2050
|
+
return EQUATION_EDITOR_MESSAGES[locale];
|
|
2051
|
+
}
|
|
2052
|
+
function atomicCommandTitle(spec, locale) {
|
|
2053
|
+
return locale === "en" ? ENGLISH_COMMAND_TITLES[spec.id] ?? spec.title : spec.title;
|
|
2054
|
+
}
|
|
2055
|
+
function atomicOperatorCommandTitle(spec, locale) {
|
|
2056
|
+
return locale === "en" ? ENGLISH_OPERATOR_TITLES[spec.id] ?? spec.title : spec.title;
|
|
2057
|
+
}
|
|
2058
|
+
|
|
1672
2059
|
// src/editor/state.ts
|
|
1673
2060
|
function ensureSyncEntry(session, nodeId) {
|
|
1674
2061
|
if (!session.sync[nodeId]) {
|
|
@@ -3365,8 +3752,8 @@ function spacingArrowForSide(spec, side) {
|
|
|
3365
3752
|
}
|
|
3366
3753
|
return side === "arabic" ? "\u2192" : "\u2190";
|
|
3367
3754
|
}
|
|
3368
|
-
function spacingTooltipForSide(spec, side) {
|
|
3369
|
-
return `${spec
|
|
3755
|
+
function spacingTooltipForSide(spec, side, uiLocale = "ar") {
|
|
3756
|
+
return `${atomicCommandTitle(spec, uiLocale)} ${spacingArrowForSide(spec, side).repeat(spec.spacing.level)}`;
|
|
3370
3757
|
}
|
|
3371
3758
|
function buildFunctionAtomicCommandBody(node, side, spec) {
|
|
3372
3759
|
const value = document.createElement("span");
|
|
@@ -3390,19 +3777,19 @@ function buildFunctionAtomicCommandBody(node, side, spec) {
|
|
|
3390
3777
|
value.textContent = side === "arabic" ? spec?.arabicLabel ?? node.expr : spec?.englishTex.replace("\\", "") ?? node.expr;
|
|
3391
3778
|
return value;
|
|
3392
3779
|
}
|
|
3393
|
-
function buildSpacingAtomicCommandBody(spec, side) {
|
|
3780
|
+
function buildSpacingAtomicCommandBody(spec, side, uiLocale) {
|
|
3394
3781
|
const value = document.createElement("span");
|
|
3395
3782
|
value.className = `atomic-spacing atomic-spacing--${spec.spacing.direction} atomic-spacing--level-${String(spec.spacing.level)}`;
|
|
3396
|
-
value.title = spacingTooltipForSide(spec, side);
|
|
3783
|
+
value.title = spacingTooltipForSide(spec, side, uiLocale);
|
|
3397
3784
|
const marker = document.createElement("span");
|
|
3398
3785
|
marker.className = "atomic-spacing__marker";
|
|
3399
3786
|
value.appendChild(marker);
|
|
3400
3787
|
return value;
|
|
3401
3788
|
}
|
|
3402
|
-
function buildAtomicCommandNodeBody(node, side) {
|
|
3789
|
+
function buildAtomicCommandNodeBody(node, side, uiLocale = "ar") {
|
|
3403
3790
|
const spec = atomicCommandSpec(node.expr);
|
|
3404
3791
|
if (isSpacingCommandSpec(spec)) {
|
|
3405
|
-
return buildSpacingAtomicCommandBody(spec, side);
|
|
3792
|
+
return buildSpacingAtomicCommandBody(spec, side, uiLocale);
|
|
3406
3793
|
}
|
|
3407
3794
|
return buildFunctionAtomicCommandBody(node, side, spec);
|
|
3408
3795
|
}
|
|
@@ -3436,11 +3823,11 @@ function buildOperatorLabel(spec) {
|
|
|
3436
3823
|
value.textContent = spec.Label;
|
|
3437
3824
|
return value;
|
|
3438
3825
|
}
|
|
3439
|
-
function buildAtomicOperatorCommandNodeBody(node, side) {
|
|
3826
|
+
function buildAtomicOperatorCommandNodeBody(node, side, uiLocale = "ar") {
|
|
3440
3827
|
const spec = atomicOperatorCommandSpec(node.expr);
|
|
3441
3828
|
const value = document.createElement("span");
|
|
3442
3829
|
value.className = "atomic-operator-command";
|
|
3443
|
-
value.title = spec
|
|
3830
|
+
value.title = spec ? atomicOperatorCommandTitle(spec, uiLocale) : node.expr;
|
|
3444
3831
|
if (side === "arabic" && shouldMirrorOperatorDisplay(spec)) {
|
|
3445
3832
|
value.classList.add("atomic-operator-command--mirrored");
|
|
3446
3833
|
}
|
|
@@ -3494,7 +3881,7 @@ function buildNodeScripts(node, buildChain) {
|
|
|
3494
3881
|
}
|
|
3495
3882
|
|
|
3496
3883
|
// src/editor/display/index.ts
|
|
3497
|
-
function buildNodeBody(node, buildChain, side, digitForm = "western") {
|
|
3884
|
+
function buildNodeBody(node, buildChain, side, digitForm = "western", uiLocale = "ar") {
|
|
3498
3885
|
if (node.kind === "delimiter") {
|
|
3499
3886
|
return buildDelimiterNodeBody(node, buildChain);
|
|
3500
3887
|
}
|
|
@@ -3508,10 +3895,10 @@ function buildNodeBody(node, buildChain, side, digitForm = "western") {
|
|
|
3508
3895
|
return buildMatrixEnvNodeBody(node, buildChain, side);
|
|
3509
3896
|
}
|
|
3510
3897
|
if (node.kind === "atomicCommand") {
|
|
3511
|
-
return buildAtomicCommandNodeBody(node, side);
|
|
3898
|
+
return buildAtomicCommandNodeBody(node, side, uiLocale);
|
|
3512
3899
|
}
|
|
3513
3900
|
if (node.kind === "atomicOperatorCommand") {
|
|
3514
|
-
return buildAtomicOperatorCommandNodeBody(node, side);
|
|
3901
|
+
return buildAtomicOperatorCommandNodeBody(node, side, uiLocale);
|
|
3515
3902
|
}
|
|
3516
3903
|
return buildBaseNodeBody(node, digitForm);
|
|
3517
3904
|
}
|
|
@@ -3732,6 +4119,10 @@ function createEditorRuntime(options) {
|
|
|
3732
4119
|
const buttonElements = options.buttonElements ?? {};
|
|
3733
4120
|
const outsidePointerIgnoreSelectors = options.outsidePointerIgnoreSelectors ?? [];
|
|
3734
4121
|
let session = options.initialSession ?? createStarterSession();
|
|
4122
|
+
let uiLocale = options.uiLocale ?? "ar";
|
|
4123
|
+
if (options.defaultSide) {
|
|
4124
|
+
session = { ...session, activeSide: options.defaultSide };
|
|
4125
|
+
}
|
|
3735
4126
|
const undoRedo = createUndoRedoStacks();
|
|
3736
4127
|
let lastInternalFragment = null;
|
|
3737
4128
|
let initialKeyboardFocusPending = true;
|
|
@@ -3763,14 +4154,15 @@ function createEditorRuntime(options) {
|
|
|
3763
4154
|
return index >= start && index < end;
|
|
3764
4155
|
}
|
|
3765
4156
|
function refreshUndoRedoButtons() {
|
|
4157
|
+
const messages = equationEditorMessages(uiLocale);
|
|
3766
4158
|
if (buttonElements.undoBtn) {
|
|
3767
4159
|
buttonElements.undoBtn.disabled = !undoRedoCanUndo(undoRedo);
|
|
3768
4160
|
const arabicEquation = session.activeSide === "arabic";
|
|
3769
4161
|
const undoArrow = arabicEquation ? "\u21B7" : "\u21B6";
|
|
3770
4162
|
const vs = "\uFE0E";
|
|
3771
4163
|
buttonElements.undoBtn.textContent = `${undoArrow}${vs}`;
|
|
3772
|
-
buttonElements.undoBtn.title =
|
|
3773
|
-
buttonElements.undoBtn.setAttribute("aria-label",
|
|
4164
|
+
buttonElements.undoBtn.title = messages.undo;
|
|
4165
|
+
buttonElements.undoBtn.setAttribute("aria-label", messages.undo);
|
|
3774
4166
|
}
|
|
3775
4167
|
if (buttonElements.redoBtn) {
|
|
3776
4168
|
buttonElements.redoBtn.disabled = !undoRedoCanRedo(undoRedo);
|
|
@@ -3778,8 +4170,8 @@ function createEditorRuntime(options) {
|
|
|
3778
4170
|
const redoArrow = arabicEquation ? "\u21B6" : "\u21B7";
|
|
3779
4171
|
const vs = "\uFE0E";
|
|
3780
4172
|
buttonElements.redoBtn.textContent = `${redoArrow}${vs}`;
|
|
3781
|
-
buttonElements.redoBtn.title =
|
|
3782
|
-
buttonElements.redoBtn.setAttribute("aria-label",
|
|
4173
|
+
buttonElements.redoBtn.title = messages.redo;
|
|
4174
|
+
buttonElements.redoBtn.setAttribute("aria-label", messages.redo);
|
|
3783
4175
|
}
|
|
3784
4176
|
}
|
|
3785
4177
|
function refreshClipboardButtons() {
|
|
@@ -3798,9 +4190,10 @@ function createEditorRuntime(options) {
|
|
|
3798
4190
|
return;
|
|
3799
4191
|
}
|
|
3800
4192
|
const mergeOn = !session.splitLeafTyping;
|
|
4193
|
+
const messages = equationEditorMessages(uiLocale);
|
|
3801
4194
|
buttonElements.splitTypingBtn.textContent = mergeOn ? "\u0633\u0635\u0639" : "\u0633 \u0635 \u0639";
|
|
3802
|
-
buttonElements.splitTypingBtn.title = mergeOn ?
|
|
3803
|
-
buttonElements.splitTypingBtn.setAttribute("aria-label", mergeOn ?
|
|
4195
|
+
buttonElements.splitTypingBtn.title = mergeOn ? messages.disableLetterMerging : messages.enableLetterMerging;
|
|
4196
|
+
buttonElements.splitTypingBtn.setAttribute("aria-label", mergeOn ? messages.disableLetterMerging : messages.enableLetterMerging);
|
|
3804
4197
|
buttonElements.splitTypingBtn.setAttribute("aria-pressed", mergeOn ? "true" : "false");
|
|
3805
4198
|
buttonElements.splitTypingBtn.classList.toggle("accent", mergeOn);
|
|
3806
4199
|
}
|
|
@@ -3809,9 +4202,10 @@ function createEditorRuntime(options) {
|
|
|
3809
4202
|
return;
|
|
3810
4203
|
}
|
|
3811
4204
|
const takweenOn = (session.currentCharacterFont ?? "default") === "takween";
|
|
4205
|
+
const messages = equationEditorMessages(uiLocale);
|
|
3812
4206
|
buttonElements.characterFontBtn.textContent = "\u062A\u0643";
|
|
3813
|
-
buttonElements.characterFontBtn.title = takweenOn ?
|
|
3814
|
-
buttonElements.characterFontBtn.setAttribute("aria-label", takweenOn ?
|
|
4207
|
+
buttonElements.characterFontBtn.title = takweenOn ? messages.writeDefaultFont : messages.writeTakweenFont;
|
|
4208
|
+
buttonElements.characterFontBtn.setAttribute("aria-label", takweenOn ? messages.writeDefaultFont : messages.writeTakweenFont);
|
|
3815
4209
|
buttonElements.characterFontBtn.setAttribute("aria-pressed", takweenOn ? "true" : "false");
|
|
3816
4210
|
buttonElements.characterFontBtn.classList.toggle("accent", takweenOn);
|
|
3817
4211
|
}
|
|
@@ -3822,8 +4216,9 @@ function createEditorRuntime(options) {
|
|
|
3822
4216
|
const digitForm = session.currentDigitForm ?? "western";
|
|
3823
4217
|
const label = digitForm === "arabicIndic" ? "\u0664\u0665\u0666" : digitForm === "persianIndic" ? "\u06F4\u06F5\u06F6" : "456";
|
|
3824
4218
|
buttonElements.digitFormBtn.textContent = label;
|
|
3825
|
-
|
|
3826
|
-
buttonElements.digitFormBtn.
|
|
4219
|
+
const messages = equationEditorMessages(uiLocale);
|
|
4220
|
+
buttonElements.digitFormBtn.title = messages.chooseDigitForm;
|
|
4221
|
+
buttonElements.digitFormBtn.setAttribute("aria-label", messages.chooseDigitForm);
|
|
3827
4222
|
buttonElements.digitFormBtn.dataset.digitForm = digitForm;
|
|
3828
4223
|
}
|
|
3829
4224
|
function applyStructural(updater) {
|
|
@@ -4025,7 +4420,7 @@ function createEditorRuntime(options) {
|
|
|
4025
4420
|
const atomicSpec = node.kind === "atomicCommand" ? atomicCommandSpec(node.expr) : null;
|
|
4026
4421
|
if (isSpacingCommandSpec(atomicSpec)) {
|
|
4027
4422
|
nodeEl.classList.add("node--atomic-spacing");
|
|
4028
|
-
nodeEl.title = spacingTooltipForSide(atomicSpec, session.activeSide);
|
|
4423
|
+
nodeEl.title = spacingTooltipForSide(atomicSpec, session.activeSide, uiLocale);
|
|
4029
4424
|
}
|
|
4030
4425
|
if (session.selectedNodeId === node.id || session.selectedStructureNodeId === node.id) {
|
|
4031
4426
|
nodeEl.classList.add("selected");
|
|
@@ -4055,7 +4450,7 @@ function createEditorRuntime(options) {
|
|
|
4055
4450
|
});
|
|
4056
4451
|
const body = document.createElement("span");
|
|
4057
4452
|
body.className = "node-body";
|
|
4058
|
-
body.appendChild(buildNodeBody(node, buildChain, session.activeSide, session.currentDigitForm ?? "western"));
|
|
4453
|
+
body.appendChild(buildNodeBody(node, buildChain, session.activeSide, session.currentDigitForm ?? "western", uiLocale));
|
|
4059
4454
|
nodeEl.appendChild(body);
|
|
4060
4455
|
const scripts = buildNodeScripts(node, buildChain);
|
|
4061
4456
|
if (scripts) {
|
|
@@ -4336,6 +4731,13 @@ function createEditorRuntime(options) {
|
|
|
4336
4731
|
session = next;
|
|
4337
4732
|
render();
|
|
4338
4733
|
},
|
|
4734
|
+
setUiLocale: (locale) => {
|
|
4735
|
+
if (uiLocale === locale) {
|
|
4736
|
+
return;
|
|
4737
|
+
}
|
|
4738
|
+
uiLocale = locale;
|
|
4739
|
+
render();
|
|
4740
|
+
},
|
|
4339
4741
|
performUndo,
|
|
4340
4742
|
performRedo,
|
|
4341
4743
|
performCopy,
|
|
@@ -5729,18 +6131,23 @@ function injectWidgetChromeCss(doc) {
|
|
|
5729
6131
|
d.head.appendChild(style);
|
|
5730
6132
|
}
|
|
5731
6133
|
|
|
6134
|
+
// src/uiLocale.ts
|
|
6135
|
+
function uiLocaleDirection(locale) {
|
|
6136
|
+
return locale === "ar" ? "rtl" : "ltr";
|
|
6137
|
+
}
|
|
6138
|
+
|
|
5732
6139
|
// src/react/ButexEditor.tsx
|
|
5733
6140
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
5734
6141
|
var DIGIT_FORM_OPTIONS = [
|
|
5735
|
-
{ id: "western", label: "456"
|
|
5736
|
-
{ id: "arabicIndic", label: "\u0664\u0665\u0666"
|
|
5737
|
-
{ id: "persianIndic", label: "\u06F4\u06F5\u06F6"
|
|
6142
|
+
{ id: "western", label: "456" },
|
|
6143
|
+
{ id: "arabicIndic", label: "\u0664\u0665\u0666" },
|
|
6144
|
+
{ id: "persianIndic", label: "\u06F4\u06F5\u06F6" }
|
|
5738
6145
|
];
|
|
5739
6146
|
var CHARACTER_FONT_OPTIONS = [
|
|
5740
|
-
{ id: "default", label: "\u0633"
|
|
5741
|
-
{ id: "takween", label: "\u062A\u0643"
|
|
5742
|
-
{ id: "diwani", label: "\u062F\u064A\u0648"
|
|
5743
|
-
{ id: "diwaniOutline", label: "\u0638\u0644"
|
|
6147
|
+
{ id: "default", label: "\u0633" },
|
|
6148
|
+
{ id: "takween", label: "\u062A\u0643" },
|
|
6149
|
+
{ id: "diwani", label: "\u062F\u064A\u0648" },
|
|
6150
|
+
{ id: "diwaniOutline", label: "\u0638\u0644" }
|
|
5744
6151
|
];
|
|
5745
6152
|
var FUNCTION_COMMANDS = atomicCommandsByCategory("function");
|
|
5746
6153
|
var LIMITS_SERIES_COMMANDS = atomicCommandsByCategory("limits_series");
|
|
@@ -5753,20 +6160,20 @@ var OPERATOR3_COMMANDS = atomicOperatorCommandsByCategory("operators3");
|
|
|
5753
6160
|
var DOT_COMMANDS = atomicOperatorCommandsByCategory("dots");
|
|
5754
6161
|
var INTEGRAL_COMMANDS = atomicOperatorCommandsByCategory("integrals");
|
|
5755
6162
|
var MATRIX_STYLES = [
|
|
5756
|
-
{ id: "matrix", label: "\u25A1"
|
|
5757
|
-
{ id: "pmatrix", label: "(\u25A1)"
|
|
5758
|
-
{ id: "bmatrix", label: "[\u25A1]"
|
|
5759
|
-
{ id: "Bmatrix", label: "{\u25A1}"
|
|
5760
|
-
{ id: "vmatrix", label: "|\u25A1|"
|
|
5761
|
-
{ id: "Vmatrix", label: "||\u25A1||"
|
|
6163
|
+
{ id: "matrix", label: "\u25A1" },
|
|
6164
|
+
{ id: "pmatrix", label: "(\u25A1)" },
|
|
6165
|
+
{ id: "bmatrix", label: "[\u25A1]" },
|
|
6166
|
+
{ id: "Bmatrix", label: "{\u25A1}" },
|
|
6167
|
+
{ id: "vmatrix", label: "|\u25A1|" },
|
|
6168
|
+
{ id: "Vmatrix", label: "||\u25A1||" }
|
|
5762
6169
|
];
|
|
5763
6170
|
var ARRAY_ALIGNMENTS = [
|
|
5764
|
-
{ id: "l"
|
|
5765
|
-
{ id: "c"
|
|
5766
|
-
{ id: "r"
|
|
6171
|
+
{ id: "l" },
|
|
6172
|
+
{ id: "c" },
|
|
6173
|
+
{ id: "r" }
|
|
5767
6174
|
];
|
|
5768
|
-
function matrixSizeLabel(rows, columns) {
|
|
5769
|
-
return `${String(rows)}
|
|
6175
|
+
function matrixSizeLabel(rows, columns, messages) {
|
|
6176
|
+
return `${String(rows)} ${messages.row} \xD7 ${String(columns)} ${messages.column}`;
|
|
5770
6177
|
}
|
|
5771
6178
|
function clampMatrixSize(value) {
|
|
5772
6179
|
return Math.max(1, Math.min(12, Math.trunc(value)));
|
|
@@ -5777,6 +6184,30 @@ function digitFormLabel(digitForm) {
|
|
|
5777
6184
|
function characterFontOption(fontId) {
|
|
5778
6185
|
return CHARACTER_FONT_OPTIONS.find((option) => option.id === fontId) ?? CHARACTER_FONT_OPTIONS[0];
|
|
5779
6186
|
}
|
|
6187
|
+
function characterFontTitle(fontId, messages) {
|
|
6188
|
+
if (fontId === "takween") return messages.takweenFont;
|
|
6189
|
+
if (fontId === "diwani") return messages.diwaniFont;
|
|
6190
|
+
if (fontId === "diwaniOutline") return messages.diwaniOutlineFont;
|
|
6191
|
+
return messages.defaultFont;
|
|
6192
|
+
}
|
|
6193
|
+
function digitFormTitle(digitForm, messages) {
|
|
6194
|
+
if (digitForm === "arabicIndic") return messages.arabicIndicDigits;
|
|
6195
|
+
if (digitForm === "persianIndic") return messages.persianIndicDigits;
|
|
6196
|
+
return messages.westernDigits;
|
|
6197
|
+
}
|
|
6198
|
+
function matrixStyleTitle(style, messages) {
|
|
6199
|
+
if (style === "pmatrix") return messages.matrixParentheses;
|
|
6200
|
+
if (style === "bmatrix") return messages.matrixBrackets;
|
|
6201
|
+
if (style === "Bmatrix") return messages.matrixBraces;
|
|
6202
|
+
if (style === "vmatrix") return messages.matrixBars;
|
|
6203
|
+
if (style === "Vmatrix") return messages.matrixDoubleBars;
|
|
6204
|
+
return messages.matrixNoDelimiters;
|
|
6205
|
+
}
|
|
6206
|
+
function alignmentCopy(alignment, messages) {
|
|
6207
|
+
if (alignment === "l") return { label: messages.alignLeft, title: messages.alignColumnLeft };
|
|
6208
|
+
if (alignment === "r") return { label: messages.alignRight, title: messages.alignColumnRight };
|
|
6209
|
+
return { label: messages.alignCenter, title: messages.alignColumnCenter };
|
|
6210
|
+
}
|
|
5780
6211
|
function spacingArrow(spec, side) {
|
|
5781
6212
|
const pointsWithFlow = spec.spacing.direction === "positive";
|
|
5782
6213
|
if (pointsWithFlow) {
|
|
@@ -5815,16 +6246,17 @@ function renderOperatorMenuButtonLabel(command, fallback) {
|
|
|
5815
6246
|
}
|
|
5816
6247
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: shouldMirrorOperatorDisplay(command) ? "operator-command-label operator-command-label--mirror" : "operator-command-label", children: renderOperatorCommandLabel(command) });
|
|
5817
6248
|
}
|
|
5818
|
-
function passiveTreeText(session) {
|
|
6249
|
+
function passiveTreeText(session, messages) {
|
|
5819
6250
|
const passive = session.activeSide === "arabic" ? session.englishTree : session.arabicTree;
|
|
5820
|
-
const title = session.activeSide === "arabic" ?
|
|
6251
|
+
const title = session.activeSide === "arabic" ? messages.inactiveEnglish : messages.inactiveArabic;
|
|
5821
6252
|
const latex = session.activeSide === "arabic" ? renderChainEnglish(passive) : renderChainArabic(passive);
|
|
5822
6253
|
return `${title}
|
|
5823
6254
|
|
|
5824
|
-
${latex ||
|
|
6255
|
+
${latex || messages.empty}`;
|
|
5825
6256
|
}
|
|
5826
6257
|
var ButexEditor = (0, import_react.forwardRef)(
|
|
5827
|
-
function ButexEditor2({ className, debug = false, initialSession, onSessionChange }, ref) {
|
|
6258
|
+
function ButexEditor2({ className, debug = false, defaultSide, uiLocale = "ar", initialSession, onSessionChange }, ref) {
|
|
6259
|
+
const messages = equationEditorMessages(uiLocale);
|
|
5828
6260
|
const wrapperRef = (0, import_react.useRef)(null);
|
|
5829
6261
|
const surfaceRef = (0, import_react.useRef)(null);
|
|
5830
6262
|
const mathOutputRef = (0, import_react.useRef)(null);
|
|
@@ -5842,6 +6274,8 @@ var ButexEditor = (0, import_react.forwardRef)(
|
|
|
5842
6274
|
const runtimeRef = (0, import_react.useRef)(null);
|
|
5843
6275
|
const debugRef = (0, import_react.useRef)(debug);
|
|
5844
6276
|
debugRef.current = debug;
|
|
6277
|
+
const uiLocaleRef = (0, import_react.useRef)(uiLocale);
|
|
6278
|
+
uiLocaleRef.current = uiLocale;
|
|
5845
6279
|
const onSessionChangeRef = (0, import_react.useRef)(onSessionChange);
|
|
5846
6280
|
onSessionChangeRef.current = onSessionChange;
|
|
5847
6281
|
const debugBodyHiddenRef = (0, import_react.useRef)(false);
|
|
@@ -5883,14 +6317,15 @@ var ButexEditor = (0, import_react.forwardRef)(
|
|
|
5883
6317
|
const arabic = renderArabicLatexFromSession(session);
|
|
5884
6318
|
const activeLatex = session.activeSide === "arabic" ? arabic : english;
|
|
5885
6319
|
if (debugRef.current && latexLinesEl) {
|
|
5886
|
-
|
|
5887
|
-
|
|
6320
|
+
const currentMessages = equationEditorMessages(uiLocaleRef.current);
|
|
6321
|
+
latexLinesEl.textContent = `${currentMessages.englishLatex}:
|
|
6322
|
+
${english || currentMessages.empty}
|
|
5888
6323
|
|
|
5889
|
-
|
|
5890
|
-
${arabic ||
|
|
6324
|
+
${currentMessages.arabicLatex}:
|
|
6325
|
+
${arabic || currentMessages.empty}`;
|
|
5891
6326
|
}
|
|
5892
6327
|
if (debugRef.current && passivePreviewEl) {
|
|
5893
|
-
passivePreviewEl.textContent = passiveTreeText(session);
|
|
6328
|
+
passivePreviewEl.textContent = passiveTreeText(session, equationEditorMessages(uiLocaleRef.current));
|
|
5894
6329
|
passivePreviewEl.classList.toggle("passive--ltr", session.activeSide === "arabic");
|
|
5895
6330
|
}
|
|
5896
6331
|
if (debugRef.current && debugLogEl) {
|
|
@@ -5916,7 +6351,7 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
5916
6351
|
} catch (err) {
|
|
5917
6352
|
const message = err instanceof Error ? err.message : String(err);
|
|
5918
6353
|
renderErrorEl.hidden = false;
|
|
5919
|
-
renderErrorEl.textContent =
|
|
6354
|
+
renderErrorEl.textContent = `${equationEditorMessages(uiLocaleRef.current).mathJaxError}: ${message}`;
|
|
5920
6355
|
if (runtimeRef.current) {
|
|
5921
6356
|
runtimeRef.current.setSession(setRenderError(runtimeRef.current.getSession(), message));
|
|
5922
6357
|
}
|
|
@@ -5934,6 +6369,8 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
5934
6369
|
const runtime = createEditorRuntime({
|
|
5935
6370
|
surfaceEl,
|
|
5936
6371
|
initialSession,
|
|
6372
|
+
defaultSide,
|
|
6373
|
+
uiLocale,
|
|
5937
6374
|
buttonElements: {
|
|
5938
6375
|
undoBtn: undoBtnRef.current,
|
|
5939
6376
|
redoBtn: redoBtnRef.current,
|
|
@@ -5953,7 +6390,7 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
5953
6390
|
const el = renderErrorRef.current;
|
|
5954
6391
|
if (el) {
|
|
5955
6392
|
el.hidden = false;
|
|
5956
|
-
el.textContent =
|
|
6393
|
+
el.textContent = `${equationEditorMessages(uiLocaleRef.current).previewError}: ${message}`;
|
|
5957
6394
|
}
|
|
5958
6395
|
});
|
|
5959
6396
|
}
|
|
@@ -5978,6 +6415,13 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
5978
6415
|
runtimeRef.current = null;
|
|
5979
6416
|
};
|
|
5980
6417
|
}, []);
|
|
6418
|
+
(0, import_react.useEffect)(() => {
|
|
6419
|
+
runtimeRef.current?.setUiLocale(uiLocale);
|
|
6420
|
+
const session = runtimeRef.current?.getSession();
|
|
6421
|
+
if (session) {
|
|
6422
|
+
void updatePreviewRef.current(session);
|
|
6423
|
+
}
|
|
6424
|
+
}, [uiLocale]);
|
|
5981
6425
|
function focusSurface() {
|
|
5982
6426
|
surfaceRef.current?.focus();
|
|
5983
6427
|
}
|
|
@@ -5995,26 +6439,26 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
5995
6439
|
{
|
|
5996
6440
|
ref: wrapperRef,
|
|
5997
6441
|
className: `butex-widget ${className ?? ""}`.trim(),
|
|
5998
|
-
dir:
|
|
5999
|
-
lang:
|
|
6442
|
+
dir: uiLocaleDirection(uiLocale),
|
|
6443
|
+
lang: uiLocale,
|
|
6000
6444
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "butex-widget-layout", children: [
|
|
6001
6445
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("section", { className: "panel", children: [
|
|
6002
6446
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "toolbar", children: [
|
|
6003
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "toolbar-group toolbar-history", role: "group", "aria-label":
|
|
6004
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { ref: undoBtnRef, id: "btn-undo", type: "button", className: "icon-btn", title:
|
|
6005
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { ref: redoBtnRef, id: "btn-redo", type: "button", className: "icon-btn", title:
|
|
6447
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "toolbar-group toolbar-history", role: "group", "aria-label": messages.undoRedo, children: [
|
|
6448
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { ref: undoBtnRef, id: "btn-undo", type: "button", className: "icon-btn", title: messages.undo, "aria-label": messages.undo, children: "\u21B7" }),
|
|
6449
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { ref: redoBtnRef, id: "btn-redo", type: "button", className: "icon-btn", title: messages.redo, "aria-label": messages.redo, children: "\u21B6" })
|
|
6006
6450
|
] }),
|
|
6007
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "toolbar-group toolbar-clipboard", role: "group", "aria-label":
|
|
6008
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { ref: copyBtnRef, id: "btn-copy", type: "button", className: "icon-btn", title:
|
|
6009
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { ref: cutBtnRef, id: "btn-cut", type: "button", className: "icon-btn", title:
|
|
6451
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "toolbar-group toolbar-clipboard", role: "group", "aria-label": messages.clipboard, children: [
|
|
6452
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { ref: copyBtnRef, id: "btn-copy", type: "button", className: "icon-btn", title: messages.copy, "aria-label": messages.copy, disabled: true, children: "\u29C9" }),
|
|
6453
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { ref: cutBtnRef, id: "btn-cut", type: "button", className: "icon-btn", title: messages.cut, "aria-label": messages.cut, disabled: true, children: "\u2702" }),
|
|
6010
6454
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6011
6455
|
"button",
|
|
6012
6456
|
{
|
|
6013
6457
|
id: "btn-paste",
|
|
6014
6458
|
type: "button",
|
|
6015
6459
|
className: "icon-btn",
|
|
6016
|
-
title:
|
|
6017
|
-
"aria-label":
|
|
6460
|
+
title: messages.paste,
|
|
6461
|
+
"aria-label": messages.paste,
|
|
6018
6462
|
onClick: () => {
|
|
6019
6463
|
void runtimeRef.current?.performPaste().then(() => {
|
|
6020
6464
|
focusSurface();
|
|
@@ -6024,8 +6468,8 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6024
6468
|
}
|
|
6025
6469
|
)
|
|
6026
6470
|
] }),
|
|
6027
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "toolbar-group toolbar-settings", role: "group", "aria-label":
|
|
6028
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "toolbar-group toolbar-structures", role: "group", "aria-label":
|
|
6471
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "toolbar-group toolbar-settings", role: "group", "aria-label": messages.editorSettings, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "icon-btn accent", type: "button", title: messages.toggleSide, "aria-label": messages.toggleSide, onClick: () => runtimeRef.current?.toggleSide(), children: "\u21C4" }) }),
|
|
6472
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "toolbar-group toolbar-structures", role: "group", "aria-label": messages.structures, children: [
|
|
6029
6473
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
6030
6474
|
"div",
|
|
6031
6475
|
{
|
|
@@ -6042,15 +6486,15 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6042
6486
|
{
|
|
6043
6487
|
className: "icon-btn delimiter-command-btn",
|
|
6044
6488
|
type: "button",
|
|
6045
|
-
title:
|
|
6046
|
-
"aria-label":
|
|
6489
|
+
title: messages.insertDelimiters,
|
|
6490
|
+
"aria-label": messages.insertDelimiters,
|
|
6047
6491
|
"aria-haspopup": "listbox",
|
|
6048
6492
|
"aria-expanded": delimiterMenuOpen,
|
|
6049
6493
|
onClick: () => setDelimiterMenuOpen((open) => !open),
|
|
6050
6494
|
children: "()"
|
|
6051
6495
|
}
|
|
6052
6496
|
),
|
|
6053
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "delimiter-command-options", role: "listbox", "aria-label":
|
|
6497
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "delimiter-command-options", role: "listbox", "aria-label": messages.insertDelimiters, hidden: !delimiterMenuOpen, children: [
|
|
6054
6498
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6055
6499
|
"button",
|
|
6056
6500
|
{
|
|
@@ -6058,8 +6502,8 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6058
6502
|
"data-delim": "paren",
|
|
6059
6503
|
type: "button",
|
|
6060
6504
|
role: "option",
|
|
6061
|
-
title:
|
|
6062
|
-
"aria-label":
|
|
6505
|
+
title: messages.insertParentheses,
|
|
6506
|
+
"aria-label": messages.insertParentheses,
|
|
6063
6507
|
onMouseDown: (event) => event.preventDefault(),
|
|
6064
6508
|
onClick: () => {
|
|
6065
6509
|
runtimeRef.current?.insertDelimiterByKind("paren");
|
|
@@ -6076,8 +6520,8 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6076
6520
|
"data-delim": "bracket",
|
|
6077
6521
|
type: "button",
|
|
6078
6522
|
role: "option",
|
|
6079
|
-
title:
|
|
6080
|
-
"aria-label":
|
|
6523
|
+
title: messages.insertBrackets,
|
|
6524
|
+
"aria-label": messages.insertBrackets,
|
|
6081
6525
|
onMouseDown: (event) => event.preventDefault(),
|
|
6082
6526
|
onClick: () => {
|
|
6083
6527
|
runtimeRef.current?.insertDelimiterByKind("bracket");
|
|
@@ -6094,8 +6538,8 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6094
6538
|
"data-delim": "brace",
|
|
6095
6539
|
type: "button",
|
|
6096
6540
|
role: "option",
|
|
6097
|
-
title:
|
|
6098
|
-
"aria-label":
|
|
6541
|
+
title: messages.insertBraces,
|
|
6542
|
+
"aria-label": messages.insertBraces,
|
|
6099
6543
|
onMouseDown: (event) => event.preventDefault(),
|
|
6100
6544
|
onClick: () => {
|
|
6101
6545
|
runtimeRef.current?.insertDelimiterByKind("brace");
|
|
@@ -6109,19 +6553,19 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6109
6553
|
]
|
|
6110
6554
|
}
|
|
6111
6555
|
),
|
|
6112
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { id: "insert-frac", className: "icon-btn frac-icon-btn", type: "button", title:
|
|
6556
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { id: "insert-frac", className: "icon-btn frac-icon-btn", type: "button", title: messages.insertFraction, "aria-label": messages.insertFraction, onClick: () => {
|
|
6113
6557
|
runtimeRef.current?.insertFraction();
|
|
6114
6558
|
focusSurface();
|
|
6115
6559
|
}, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "toolbar-frac-icon", "aria-hidden": "true", children: [
|
|
6116
6560
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "\u0623" }),
|
|
6117
6561
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "\u0628" })
|
|
6118
6562
|
] }) }),
|
|
6119
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { id: "insert-sqrt", className: "icon-btn", type: "button", title:
|
|
6563
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { id: "insert-sqrt", className: "icon-btn", type: "button", title: messages.insertRoot, "aria-label": messages.insertRoot, onClick: () => {
|
|
6120
6564
|
runtimeRef.current?.insertSqrt();
|
|
6121
6565
|
focusSurface();
|
|
6122
6566
|
}, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "toolbar-sqrt-icon", "aria-hidden": "true", children: "\u221A" }) })
|
|
6123
6567
|
] }),
|
|
6124
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "toolbar-group toolbar-environments", role: "group", "aria-label":
|
|
6568
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "toolbar-group toolbar-environments", role: "group", "aria-label": messages.environments, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
6125
6569
|
"div",
|
|
6126
6570
|
{
|
|
6127
6571
|
className: "matrix-command-menu",
|
|
@@ -6137,8 +6581,8 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6137
6581
|
{
|
|
6138
6582
|
className: "icon-btn matrix-command-btn",
|
|
6139
6583
|
type: "button",
|
|
6140
|
-
title:
|
|
6141
|
-
"aria-label":
|
|
6584
|
+
title: messages.insertEnvironment,
|
|
6585
|
+
"aria-label": messages.insertEnvironment,
|
|
6142
6586
|
"aria-haspopup": "dialog",
|
|
6143
6587
|
"aria-expanded": matrixMenuOpen,
|
|
6144
6588
|
onClick: () => setMatrixMenuOpen((open) => !open),
|
|
@@ -6150,11 +6594,11 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6150
6594
|
] })
|
|
6151
6595
|
}
|
|
6152
6596
|
),
|
|
6153
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "matrix-command-popover", role: "dialog", "aria-label":
|
|
6154
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "matrix-style-options", role: "listbox", "aria-label":
|
|
6155
|
-
{ id: "matrix", label:
|
|
6156
|
-
{ id: "array", label:
|
|
6157
|
-
{ id: "aligned", label:
|
|
6597
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "matrix-command-popover", role: "dialog", "aria-label": messages.insertEnvironment, hidden: !matrixMenuOpen, children: [
|
|
6598
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "matrix-style-options", role: "listbox", "aria-label": messages.environmentType, children: [
|
|
6599
|
+
{ id: "matrix", label: messages.matrix },
|
|
6600
|
+
{ id: "array", label: messages.array },
|
|
6601
|
+
{ id: "aligned", label: messages.aligned }
|
|
6158
6602
|
].map((option) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6159
6603
|
"button",
|
|
6160
6604
|
{
|
|
@@ -6173,14 +6617,14 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6173
6617
|
},
|
|
6174
6618
|
option.id
|
|
6175
6619
|
)) }),
|
|
6176
|
-
envPaletteMode === "matrix" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "matrix-style-options", role: "listbox", "aria-label":
|
|
6620
|
+
envPaletteMode === "matrix" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "matrix-style-options", role: "listbox", "aria-label": messages.matrixType, children: MATRIX_STYLES.map((style) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6177
6621
|
"button",
|
|
6178
6622
|
{
|
|
6179
6623
|
type: "button",
|
|
6180
6624
|
role: "option",
|
|
6181
6625
|
"aria-selected": matrixStyle === style.id,
|
|
6182
6626
|
className: "matrix-style-option",
|
|
6183
|
-
title: style.
|
|
6627
|
+
title: matrixStyleTitle(style.id, messages),
|
|
6184
6628
|
onMouseDown: (event) => event.preventDefault(),
|
|
6185
6629
|
onClick: () => {
|
|
6186
6630
|
setMatrixStyle(style.id);
|
|
@@ -6189,8 +6633,8 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6189
6633
|
},
|
|
6190
6634
|
style.id
|
|
6191
6635
|
)) }) : null,
|
|
6192
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "matrix-size-readout", children: matrixHover ? matrixSizeLabel(matrixHover.rows, matrixHover.columns) : matrixSizeLabel(matrixRows, matrixColumns) }),
|
|
6193
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "matrix-grid-picker", "aria-label":
|
|
6636
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "matrix-size-readout", children: matrixHover ? matrixSizeLabel(matrixHover.rows, matrixHover.columns, messages) : matrixSizeLabel(matrixRows, matrixColumns, messages) }),
|
|
6637
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "matrix-grid-picker", "aria-label": messages.chooseEnvironmentSize, children: Array.from(
|
|
6194
6638
|
{ length: 8 },
|
|
6195
6639
|
(_, rowIndex) => Array.from({ length: 8 }, (_2, columnIndex) => {
|
|
6196
6640
|
const rows = rowIndex + 1;
|
|
@@ -6202,8 +6646,8 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6202
6646
|
{
|
|
6203
6647
|
type: "button",
|
|
6204
6648
|
className: rows <= activeRows && columns <= activeColumns ? "matrix-grid-cell active" : "matrix-grid-cell",
|
|
6205
|
-
title: matrixSizeLabel(rows, columns),
|
|
6206
|
-
"aria-label": matrixSizeLabel(rows, columns),
|
|
6649
|
+
title: matrixSizeLabel(rows, columns, messages),
|
|
6650
|
+
"aria-label": matrixSizeLabel(rows, columns, messages),
|
|
6207
6651
|
onMouseEnter: () => setMatrixHover({ rows, columns }),
|
|
6208
6652
|
onMouseDown: (event) => event.preventDefault(),
|
|
6209
6653
|
onClick: () => {
|
|
@@ -6221,7 +6665,7 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6221
6665
|
) }),
|
|
6222
6666
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "matrix-custom-size", children: [
|
|
6223
6667
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("label", { children: [
|
|
6224
|
-
|
|
6668
|
+
messages.row,
|
|
6225
6669
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6226
6670
|
"input",
|
|
6227
6671
|
{
|
|
@@ -6234,7 +6678,7 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6234
6678
|
)
|
|
6235
6679
|
] }),
|
|
6236
6680
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("label", { children: [
|
|
6237
|
-
|
|
6681
|
+
messages.column,
|
|
6238
6682
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6239
6683
|
"input",
|
|
6240
6684
|
{
|
|
@@ -6260,15 +6704,15 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6260
6704
|
setMatrixHover(null);
|
|
6261
6705
|
focusSurface();
|
|
6262
6706
|
},
|
|
6263
|
-
children:
|
|
6707
|
+
children: messages.insert
|
|
6264
6708
|
}
|
|
6265
6709
|
)
|
|
6266
6710
|
] }),
|
|
6267
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "matrix-edit-actions", "aria-label":
|
|
6268
|
-
envPaletteMode === "matrix" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", title:
|
|
6711
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "matrix-edit-actions", "aria-label": messages.editSelectedEnvironment, children: [
|
|
6712
|
+
envPaletteMode === "matrix" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { type: "button", title: messages.applySelectedMatrixStyle, onMouseDown: (event) => event.preventDefault(), onClick: () => runtimeRef.current?.setMatrixEnvStyle(matrixStyle), children: messages.applyStyle }) : null,
|
|
6269
6713
|
envPaletteMode === "array" ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
|
|
6270
6714
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("label", { children: [
|
|
6271
|
-
|
|
6715
|
+
messages.column,
|
|
6272
6716
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6273
6717
|
"input",
|
|
6274
6718
|
{
|
|
@@ -6284,24 +6728,36 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6284
6728
|
"button",
|
|
6285
6729
|
{
|
|
6286
6730
|
type: "button",
|
|
6287
|
-
title: alignment.title,
|
|
6731
|
+
title: alignmentCopy(alignment.id, messages).title,
|
|
6288
6732
|
onMouseDown: (event) => event.preventDefault(),
|
|
6289
6733
|
onClick: () => runtimeRef.current?.setArrayColumnAlignment(arrayAlignmentColumn - 1, alignment.id),
|
|
6290
|
-
children: alignment.label
|
|
6734
|
+
children: alignmentCopy(alignment.id, messages).label
|
|
6291
6735
|
},
|
|
6292
6736
|
alignment.id
|
|
6293
6737
|
))
|
|
6294
6738
|
] }) : null,
|
|
6295
|
-
/* @__PURE__ */ (0, import_jsx_runtime.
|
|
6296
|
-
|
|
6297
|
-
|
|
6298
|
-
|
|
6739
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("button", { type: "button", title: messages.addRow, onMouseDown: (event) => event.preventDefault(), onClick: () => runtimeRef.current?.addMatrixRow(), children: [
|
|
6740
|
+
"+",
|
|
6741
|
+
messages.row
|
|
6742
|
+
] }),
|
|
6743
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("button", { type: "button", title: messages.removeRow, onMouseDown: (event) => event.preventDefault(), onClick: () => runtimeRef.current?.removeMatrixRow(), children: [
|
|
6744
|
+
"-",
|
|
6745
|
+
messages.row
|
|
6746
|
+
] }),
|
|
6747
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("button", { type: "button", title: messages.addColumn, onMouseDown: (event) => event.preventDefault(), onClick: () => runtimeRef.current?.addMatrixColumn(), children: [
|
|
6748
|
+
"+",
|
|
6749
|
+
messages.column
|
|
6750
|
+
] }),
|
|
6751
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("button", { type: "button", title: messages.removeColumn, onMouseDown: (event) => event.preventDefault(), onClick: () => runtimeRef.current?.removeMatrixColumn(), children: [
|
|
6752
|
+
"-",
|
|
6753
|
+
messages.column
|
|
6754
|
+
] })
|
|
6299
6755
|
] })
|
|
6300
6756
|
] })
|
|
6301
6757
|
]
|
|
6302
6758
|
}
|
|
6303
6759
|
) }),
|
|
6304
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "toolbar-group toolbar-settings", role: "group", "aria-label":
|
|
6760
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "toolbar-group toolbar-settings", role: "group", "aria-label": messages.spaces, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
6305
6761
|
"div",
|
|
6306
6762
|
{
|
|
6307
6763
|
className: `spacing-command-menu spacing-command-menu--${activeEditorSide}`,
|
|
@@ -6317,8 +6773,8 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6317
6773
|
{
|
|
6318
6774
|
className: "icon-btn spacing-command-btn",
|
|
6319
6775
|
type: "button",
|
|
6320
|
-
title:
|
|
6321
|
-
"aria-label":
|
|
6776
|
+
title: messages.insertSpace,
|
|
6777
|
+
"aria-label": messages.insertSpace,
|
|
6322
6778
|
"aria-haspopup": "listbox",
|
|
6323
6779
|
"aria-expanded": spacingMenuOpen,
|
|
6324
6780
|
onClick: () => setSpacingMenuOpen((open) => !open),
|
|
@@ -6328,13 +6784,13 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6328
6784
|
] })
|
|
6329
6785
|
}
|
|
6330
6786
|
),
|
|
6331
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "spacing-command-options", role: "listbox", "aria-label":
|
|
6787
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "spacing-command-options", role: "listbox", "aria-label": messages.insertSpace, hidden: !spacingMenuOpen, children: SPACING_COMMANDS.map((command) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
6332
6788
|
"button",
|
|
6333
6789
|
{
|
|
6334
6790
|
type: "button",
|
|
6335
6791
|
role: "option",
|
|
6336
6792
|
className: `spacing-command-option spacing-command-option--${command.spacing.direction}`,
|
|
6337
|
-
title: command
|
|
6793
|
+
title: atomicCommandTitle(command, uiLocale),
|
|
6338
6794
|
onMouseDown: (event) => event.preventDefault(),
|
|
6339
6795
|
onClick: () => {
|
|
6340
6796
|
runtimeRef.current?.insertAtomicCommand(command.id);
|
|
@@ -6347,7 +6803,7 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6347
6803
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "spacing-command-glyph__bar" }),
|
|
6348
6804
|
command.spacing.direction === "positive" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "spacing-command-glyph__arrow", children: spacingArrow(command, activeEditorSide) }) : null
|
|
6349
6805
|
] }),
|
|
6350
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "spacing-command-option__name", children: command
|
|
6806
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "spacing-command-option__name", children: atomicCommandTitle(command, uiLocale) })
|
|
6351
6807
|
]
|
|
6352
6808
|
},
|
|
6353
6809
|
command.id
|
|
@@ -6355,7 +6811,7 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6355
6811
|
]
|
|
6356
6812
|
}
|
|
6357
6813
|
) }),
|
|
6358
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "toolbar-group toolbar-functions", role: "group", "aria-label":
|
|
6814
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "toolbar-group toolbar-functions", role: "group", "aria-label": messages.functions, children: [
|
|
6359
6815
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
6360
6816
|
"div",
|
|
6361
6817
|
{
|
|
@@ -6372,22 +6828,22 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6372
6828
|
{
|
|
6373
6829
|
className: "icon-btn function-command-btn",
|
|
6374
6830
|
type: "button",
|
|
6375
|
-
title:
|
|
6376
|
-
"aria-label":
|
|
6831
|
+
title: messages.insertFunction,
|
|
6832
|
+
"aria-label": messages.insertFunction,
|
|
6377
6833
|
"aria-haspopup": "listbox",
|
|
6378
6834
|
"aria-expanded": functionMenuOpen,
|
|
6379
6835
|
onClick: () => setFunctionMenuOpen((open) => !open),
|
|
6380
6836
|
children: FUNCTION_COMMANDS[0]?.arabicLabel ?? "\u062F"
|
|
6381
6837
|
}
|
|
6382
6838
|
),
|
|
6383
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options", role: "listbox", "aria-label":
|
|
6839
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options", role: "listbox", "aria-label": messages.insertFunction, hidden: !functionMenuOpen, children: FUNCTION_COMMANDS.map((command) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6384
6840
|
"button",
|
|
6385
6841
|
{
|
|
6386
6842
|
className: "function-command-option",
|
|
6387
6843
|
type: "button",
|
|
6388
6844
|
role: "option",
|
|
6389
|
-
title: command
|
|
6390
|
-
"aria-label": command
|
|
6845
|
+
title: atomicCommandTitle(command, uiLocale),
|
|
6846
|
+
"aria-label": atomicCommandTitle(command, uiLocale),
|
|
6391
6847
|
onMouseDown: (event) => event.preventDefault(),
|
|
6392
6848
|
onClick: () => {
|
|
6393
6849
|
runtimeRef.current?.insertAtomicCommand(command.id);
|
|
@@ -6417,22 +6873,22 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6417
6873
|
{
|
|
6418
6874
|
className: "icon-btn function-command-btn",
|
|
6419
6875
|
type: "button",
|
|
6420
|
-
title:
|
|
6421
|
-
"aria-label":
|
|
6876
|
+
title: messages.insertLimitsSeries,
|
|
6877
|
+
"aria-label": messages.insertLimitsSeries,
|
|
6422
6878
|
"aria-haspopup": "listbox",
|
|
6423
6879
|
"aria-expanded": limitsSeriesMenuOpen,
|
|
6424
6880
|
onClick: () => setLimitsSeriesMenuOpen((open) => !open),
|
|
6425
6881
|
children: LIMITS_SERIES_COMMANDS[0]?.arabicLabel ?? "\u062D\u062F"
|
|
6426
6882
|
}
|
|
6427
6883
|
),
|
|
6428
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options", role: "listbox", "aria-label":
|
|
6884
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options", role: "listbox", "aria-label": messages.insertLimitsSeries, hidden: !limitsSeriesMenuOpen, children: LIMITS_SERIES_COMMANDS.map((command) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6429
6885
|
"button",
|
|
6430
6886
|
{
|
|
6431
6887
|
className: "function-command-option",
|
|
6432
6888
|
type: "button",
|
|
6433
6889
|
role: "option",
|
|
6434
|
-
title: command
|
|
6435
|
-
"aria-label": command
|
|
6890
|
+
title: atomicCommandTitle(command, uiLocale),
|
|
6891
|
+
"aria-label": atomicCommandTitle(command, uiLocale),
|
|
6436
6892
|
onMouseDown: (event) => event.preventDefault(),
|
|
6437
6893
|
onClick: () => {
|
|
6438
6894
|
runtimeRef.current?.insertAtomicCommand(command.id);
|
|
@@ -6462,22 +6918,22 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6462
6918
|
{
|
|
6463
6919
|
className: "icon-btn function-command-btn",
|
|
6464
6920
|
type: "button",
|
|
6465
|
-
title:
|
|
6466
|
-
"aria-label":
|
|
6921
|
+
title: messages.insertAdditionalFunctions,
|
|
6922
|
+
"aria-label": messages.insertAdditionalFunctions,
|
|
6467
6923
|
"aria-haspopup": "listbox",
|
|
6468
6924
|
"aria-expanded": function2MenuOpen,
|
|
6469
6925
|
onClick: () => setFunction2MenuOpen((open) => !open),
|
|
6470
6926
|
children: FUNCTION2_COMMANDS[0]?.arabicLabel ?? "\u062F"
|
|
6471
6927
|
}
|
|
6472
6928
|
),
|
|
6473
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options", role: "listbox", "aria-label":
|
|
6929
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options", role: "listbox", "aria-label": messages.insertAdditionalFunctions, hidden: !function2MenuOpen, children: FUNCTION2_COMMANDS.map((command) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6474
6930
|
"button",
|
|
6475
6931
|
{
|
|
6476
6932
|
className: "function-command-option",
|
|
6477
6933
|
type: "button",
|
|
6478
6934
|
role: "option",
|
|
6479
|
-
title: command
|
|
6480
|
-
"aria-label": command
|
|
6935
|
+
title: atomicCommandTitle(command, uiLocale),
|
|
6936
|
+
"aria-label": atomicCommandTitle(command, uiLocale),
|
|
6481
6937
|
onMouseDown: (event) => event.preventDefault(),
|
|
6482
6938
|
onClick: () => {
|
|
6483
6939
|
runtimeRef.current?.insertAtomicCommand(command.id);
|
|
@@ -6507,22 +6963,22 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6507
6963
|
{
|
|
6508
6964
|
className: "icon-btn function-command-btn",
|
|
6509
6965
|
type: "button",
|
|
6510
|
-
title:
|
|
6511
|
-
"aria-label":
|
|
6966
|
+
title: messages.insertNumberSets,
|
|
6967
|
+
"aria-label": messages.insertNumberSets,
|
|
6512
6968
|
"aria-haspopup": "listbox",
|
|
6513
6969
|
"aria-expanded": groupMenuOpen,
|
|
6514
6970
|
onClick: () => setGroupMenuOpen((open) => !open),
|
|
6515
6971
|
children: GROUP_COMMANDS[0]?.arabicLabel ?? "\u0645"
|
|
6516
6972
|
}
|
|
6517
6973
|
),
|
|
6518
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options", role: "listbox", "aria-label":
|
|
6974
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options", role: "listbox", "aria-label": messages.insertNumberSets, hidden: !groupMenuOpen, children: GROUP_COMMANDS.map((command) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6519
6975
|
"button",
|
|
6520
6976
|
{
|
|
6521
6977
|
className: "function-command-option",
|
|
6522
6978
|
type: "button",
|
|
6523
6979
|
role: "option",
|
|
6524
|
-
title: command
|
|
6525
|
-
"aria-label": command
|
|
6980
|
+
title: atomicCommandTitle(command, uiLocale),
|
|
6981
|
+
"aria-label": atomicCommandTitle(command, uiLocale),
|
|
6526
6982
|
onMouseDown: (event) => event.preventDefault(),
|
|
6527
6983
|
onClick: () => {
|
|
6528
6984
|
runtimeRef.current?.insertAtomicCommand(command.id);
|
|
@@ -6537,7 +6993,7 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6537
6993
|
}
|
|
6538
6994
|
)
|
|
6539
6995
|
] }),
|
|
6540
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "toolbar-group toolbar-operators", role: "group", "aria-label":
|
|
6996
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "toolbar-group toolbar-operators", role: "group", "aria-label": messages.operations, children: [
|
|
6541
6997
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
6542
6998
|
"div",
|
|
6543
6999
|
{
|
|
@@ -6554,22 +7010,22 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6554
7010
|
{
|
|
6555
7011
|
className: "icon-btn function-command-btn operator-command-btn",
|
|
6556
7012
|
type: "button",
|
|
6557
|
-
title:
|
|
6558
|
-
"aria-label":
|
|
7013
|
+
title: messages.insertOperation,
|
|
7014
|
+
"aria-label": messages.insertOperation,
|
|
6559
7015
|
"aria-haspopup": "listbox",
|
|
6560
7016
|
"aria-expanded": operatorMenuOpen,
|
|
6561
7017
|
onClick: () => setOperatorMenuOpen((open) => !open),
|
|
6562
7018
|
children: renderOperatorMenuButtonLabel(OPERATOR_COMMANDS[0], "\u2217")
|
|
6563
7019
|
}
|
|
6564
7020
|
),
|
|
6565
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options operator-command-options", role: "listbox", "aria-label":
|
|
7021
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options operator-command-options", role: "listbox", "aria-label": messages.insertOperation, hidden: !operatorMenuOpen, children: OPERATOR_COMMANDS.map((command) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6566
7022
|
"button",
|
|
6567
7023
|
{
|
|
6568
7024
|
className: "function-command-option operator-command-option",
|
|
6569
7025
|
type: "button",
|
|
6570
7026
|
role: "option",
|
|
6571
|
-
title: command
|
|
6572
|
-
"aria-label": command
|
|
7027
|
+
title: atomicOperatorCommandTitle(command, uiLocale),
|
|
7028
|
+
"aria-label": atomicOperatorCommandTitle(command, uiLocale),
|
|
6573
7029
|
onMouseDown: (event) => event.preventDefault(),
|
|
6574
7030
|
onClick: () => {
|
|
6575
7031
|
runtimeRef.current?.insertAtomicOperatorCommand(command.id);
|
|
@@ -6599,22 +7055,22 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6599
7055
|
{
|
|
6600
7056
|
className: "icon-btn function-command-btn operator-command-btn",
|
|
6601
7057
|
type: "button",
|
|
6602
|
-
title:
|
|
6603
|
-
"aria-label":
|
|
7058
|
+
title: messages.insertRelationsSets,
|
|
7059
|
+
"aria-label": messages.insertRelationsSets,
|
|
6604
7060
|
"aria-haspopup": "listbox",
|
|
6605
7061
|
"aria-expanded": operator2MenuOpen,
|
|
6606
7062
|
onClick: () => setOperator2MenuOpen((open) => !open),
|
|
6607
7063
|
children: "\u2229"
|
|
6608
7064
|
}
|
|
6609
7065
|
),
|
|
6610
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options operator-command-options", role: "listbox", "aria-label":
|
|
7066
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options operator-command-options", role: "listbox", "aria-label": messages.insertRelationsSets, hidden: !operator2MenuOpen, children: OPERATOR2_COMMANDS.map((command) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6611
7067
|
"button",
|
|
6612
7068
|
{
|
|
6613
7069
|
className: "function-command-option operator-command-option",
|
|
6614
7070
|
type: "button",
|
|
6615
7071
|
role: "option",
|
|
6616
|
-
title: command
|
|
6617
|
-
"aria-label": command
|
|
7072
|
+
title: atomicOperatorCommandTitle(command, uiLocale),
|
|
7073
|
+
"aria-label": atomicOperatorCommandTitle(command, uiLocale),
|
|
6618
7074
|
onMouseDown: (event) => event.preventDefault(),
|
|
6619
7075
|
onClick: () => {
|
|
6620
7076
|
runtimeRef.current?.insertAtomicOperatorCommand(command.id);
|
|
@@ -6644,22 +7100,22 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6644
7100
|
{
|
|
6645
7101
|
className: "icon-btn function-command-btn operator-command-btn",
|
|
6646
7102
|
type: "button",
|
|
6647
|
-
title:
|
|
6648
|
-
"aria-label":
|
|
7103
|
+
title: messages.insertArrows,
|
|
7104
|
+
"aria-label": messages.insertArrows,
|
|
6649
7105
|
"aria-haspopup": "listbox",
|
|
6650
7106
|
"aria-expanded": operator3MenuOpen,
|
|
6651
7107
|
onClick: () => setOperator3MenuOpen((open) => !open),
|
|
6652
7108
|
children: renderOperatorMenuButtonLabel(OPERATOR3_COMMANDS[0], "\u21D2")
|
|
6653
7109
|
}
|
|
6654
7110
|
),
|
|
6655
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options operator-command-options", role: "listbox", "aria-label":
|
|
7111
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options operator-command-options", role: "listbox", "aria-label": messages.insertArrows, hidden: !operator3MenuOpen, children: OPERATOR3_COMMANDS.map((command) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6656
7112
|
"button",
|
|
6657
7113
|
{
|
|
6658
7114
|
className: "function-command-option operator-command-option",
|
|
6659
7115
|
type: "button",
|
|
6660
7116
|
role: "option",
|
|
6661
|
-
title: command
|
|
6662
|
-
"aria-label": command
|
|
7117
|
+
title: atomicOperatorCommandTitle(command, uiLocale),
|
|
7118
|
+
"aria-label": atomicOperatorCommandTitle(command, uiLocale),
|
|
6663
7119
|
onMouseDown: (event) => event.preventDefault(),
|
|
6664
7120
|
onClick: () => {
|
|
6665
7121
|
runtimeRef.current?.insertAtomicOperatorCommand(command.id);
|
|
@@ -6689,22 +7145,22 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6689
7145
|
{
|
|
6690
7146
|
className: "icon-btn function-command-btn operator-command-btn",
|
|
6691
7147
|
type: "button",
|
|
6692
|
-
title:
|
|
6693
|
-
"aria-label":
|
|
7148
|
+
title: messages.insertDots,
|
|
7149
|
+
"aria-label": messages.insertDots,
|
|
6694
7150
|
"aria-haspopup": "listbox",
|
|
6695
7151
|
"aria-expanded": dotMenuOpen,
|
|
6696
7152
|
onClick: () => setDotMenuOpen((open) => !open),
|
|
6697
7153
|
children: renderOperatorMenuButtonLabel(DOT_COMMANDS[0], "\u2026")
|
|
6698
7154
|
}
|
|
6699
7155
|
),
|
|
6700
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options operator-command-options", role: "listbox", "aria-label":
|
|
7156
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options operator-command-options", role: "listbox", "aria-label": messages.insertDots, hidden: !dotMenuOpen, children: DOT_COMMANDS.map((command) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6701
7157
|
"button",
|
|
6702
7158
|
{
|
|
6703
7159
|
className: "function-command-option operator-command-option",
|
|
6704
7160
|
type: "button",
|
|
6705
7161
|
role: "option",
|
|
6706
|
-
title: command
|
|
6707
|
-
"aria-label": command
|
|
7162
|
+
title: atomicOperatorCommandTitle(command, uiLocale),
|
|
7163
|
+
"aria-label": atomicOperatorCommandTitle(command, uiLocale),
|
|
6708
7164
|
onMouseDown: (event) => event.preventDefault(),
|
|
6709
7165
|
onClick: () => {
|
|
6710
7166
|
runtimeRef.current?.insertAtomicOperatorCommand(command.id);
|
|
@@ -6734,22 +7190,22 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6734
7190
|
{
|
|
6735
7191
|
className: "icon-btn function-command-btn operator-command-btn",
|
|
6736
7192
|
type: "button",
|
|
6737
|
-
title:
|
|
6738
|
-
"aria-label":
|
|
7193
|
+
title: messages.insertIntegrals,
|
|
7194
|
+
"aria-label": messages.insertIntegrals,
|
|
6739
7195
|
"aria-haspopup": "listbox",
|
|
6740
7196
|
"aria-expanded": integralMenuOpen,
|
|
6741
7197
|
onClick: () => setIntegralMenuOpen((open) => !open),
|
|
6742
7198
|
children: renderOperatorMenuButtonLabel(INTEGRAL_COMMANDS[0], "\u222B")
|
|
6743
7199
|
}
|
|
6744
7200
|
),
|
|
6745
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options operator-command-options", role: "listbox", "aria-label":
|
|
7201
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "function-command-options operator-command-options", role: "listbox", "aria-label": messages.insertIntegrals, hidden: !integralMenuOpen, children: INTEGRAL_COMMANDS.map((command) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6746
7202
|
"button",
|
|
6747
7203
|
{
|
|
6748
7204
|
className: "function-command-option operator-command-option",
|
|
6749
7205
|
type: "button",
|
|
6750
7206
|
role: "option",
|
|
6751
|
-
title: command
|
|
6752
|
-
"aria-label": command
|
|
7207
|
+
title: atomicOperatorCommandTitle(command, uiLocale),
|
|
7208
|
+
"aria-label": atomicOperatorCommandTitle(command, uiLocale),
|
|
6753
7209
|
onMouseDown: (event) => event.preventDefault(),
|
|
6754
7210
|
onClick: () => {
|
|
6755
7211
|
runtimeRef.current?.insertAtomicOperatorCommand(command.id);
|
|
@@ -6764,27 +7220,27 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6764
7220
|
}
|
|
6765
7221
|
)
|
|
6766
7222
|
] }),
|
|
6767
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "toolbar-group toolbar-scripts", role: "group", "aria-label":
|
|
6768
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "icon-btn script-icon-btn", type: "button", title:
|
|
7223
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "toolbar-group toolbar-scripts", role: "group", "aria-label": messages.scripts, children: [
|
|
7224
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "icon-btn script-icon-btn", type: "button", title: messages.addSuperscript, "aria-label": messages.addSuperscript, onClick: () => runtimeRef.current?.addSup(), children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "toolbar-script-icon toolbar-script-icon--sup", "aria-hidden": "true", children: [
|
|
6769
7225
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "\u0646" }),
|
|
6770
7226
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "\u0633" })
|
|
6771
7227
|
] }) }),
|
|
6772
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "icon-btn script-icon-btn", type: "button", title:
|
|
7228
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "icon-btn script-icon-btn", type: "button", title: messages.addSubscript, "aria-label": messages.addSubscript, onClick: () => runtimeRef.current?.addSub(), children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "toolbar-script-icon toolbar-script-icon--sub", "aria-hidden": "true", children: [
|
|
6773
7229
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "\u0646" }),
|
|
6774
7230
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "\u0633" })
|
|
6775
7231
|
] }) }),
|
|
6776
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "icon-btn script-icon-btn remove-script-btn", type: "button", title:
|
|
7232
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "icon-btn script-icon-btn remove-script-btn", type: "button", title: messages.removeSuperscript, "aria-label": messages.removeSuperscript, onClick: () => runtimeRef.current?.removeSup(), children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "toolbar-remove-script-icon toolbar-remove-script-icon--sup", "aria-hidden": "true", children: [
|
|
6777
7233
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "\u0646" }),
|
|
6778
7234
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "\xD7" })
|
|
6779
7235
|
] }) }),
|
|
6780
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "icon-btn script-icon-btn remove-script-btn", type: "button", title:
|
|
7236
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "icon-btn script-icon-btn remove-script-btn", type: "button", title: messages.removeSubscript, "aria-label": messages.removeSubscript, onClick: () => runtimeRef.current?.removeSub(), children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("span", { className: "toolbar-remove-script-icon toolbar-remove-script-icon--sub", "aria-hidden": "true", children: [
|
|
6781
7237
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "\u0646" }),
|
|
6782
7238
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: "\xD7" })
|
|
6783
7239
|
] }) })
|
|
6784
7240
|
] }),
|
|
6785
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "toolbar-group toolbar-settings", role: "group", "aria-label":
|
|
6786
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "icon-btn delete-node-btn", type: "button", title:
|
|
6787
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { ref: splitTypingBtnRef, id: "toggle-split-leaf-typing", className: "icon-btn ligature-btn", type: "button", title:
|
|
7241
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "toolbar-group toolbar-settings", role: "group", "aria-label": messages.inputStyles, children: [
|
|
7242
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { className: "icon-btn delete-node-btn", type: "button", title: messages.deleteSelectedStructure, "aria-label": messages.deleteSelectedStructure, onClick: () => runtimeRef.current?.deleteStructure(), children: "\xD7" }),
|
|
7243
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { ref: splitTypingBtnRef, id: "toggle-split-leaf-typing", className: "icon-btn ligature-btn", type: "button", title: messages.toggleLetterMerging, "aria-label": messages.toggleLetterMerging, onClick: () => runtimeRef.current?.toggleSplitLeafTyping(), children: "\u0633\u0635\u0639" }),
|
|
6788
7244
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
6789
7245
|
"div",
|
|
6790
7246
|
{
|
|
@@ -6803,22 +7259,22 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6803
7259
|
id: "select-character-font",
|
|
6804
7260
|
className: `icon-btn font-mode-btn font-mode-btn--${selectedCharacterFont}`,
|
|
6805
7261
|
type: "button",
|
|
6806
|
-
title:
|
|
6807
|
-
"aria-label":
|
|
7262
|
+
title: characterFontTitle(selectedCharacterFont, messages),
|
|
7263
|
+
"aria-label": messages.chooseWritingFont,
|
|
6808
7264
|
"aria-haspopup": "listbox",
|
|
6809
7265
|
"aria-expanded": characterFontMenuOpen,
|
|
6810
7266
|
onClick: () => setCharacterFontMenuOpen((open) => !open),
|
|
6811
7267
|
children: characterFontOption(selectedCharacterFont).label
|
|
6812
7268
|
}
|
|
6813
7269
|
),
|
|
6814
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "character-font-options", role: "listbox", "aria-label":
|
|
7270
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "character-font-options", role: "listbox", "aria-label": messages.chooseWritingFont, hidden: !characterFontMenuOpen, children: CHARACTER_FONT_OPTIONS.map((option) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6815
7271
|
"button",
|
|
6816
7272
|
{
|
|
6817
7273
|
type: "button",
|
|
6818
7274
|
role: "option",
|
|
6819
7275
|
"aria-selected": selectedCharacterFont === option.id,
|
|
6820
7276
|
className: `character-font-option character-font-option--${option.id}`,
|
|
6821
|
-
title: option.
|
|
7277
|
+
title: characterFontTitle(option.id, messages),
|
|
6822
7278
|
onMouseDown: (event) => event.preventDefault(),
|
|
6823
7279
|
onClick: () => {
|
|
6824
7280
|
runtimeRef.current?.setCurrentCharacterFont(option.id);
|
|
@@ -6851,22 +7307,22 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6851
7307
|
id: "select-digit-form",
|
|
6852
7308
|
className: "icon-btn digit-form-btn",
|
|
6853
7309
|
type: "button",
|
|
6854
|
-
title:
|
|
6855
|
-
"aria-label":
|
|
7310
|
+
title: messages.chooseDigitForm,
|
|
7311
|
+
"aria-label": messages.chooseDigitForm,
|
|
6856
7312
|
"aria-haspopup": "listbox",
|
|
6857
7313
|
"aria-expanded": digitMenuOpen,
|
|
6858
7314
|
onClick: () => setDigitMenuOpen((open) => !open),
|
|
6859
7315
|
children: digitFormLabel(selectedDigitForm2)
|
|
6860
7316
|
}
|
|
6861
7317
|
),
|
|
6862
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "digit-form-options", role: "listbox", "aria-label":
|
|
7318
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "digit-form-options", role: "listbox", "aria-label": messages.chooseDigitForm, hidden: !digitMenuOpen, children: DIGIT_FORM_OPTIONS.map((option) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
6863
7319
|
"button",
|
|
6864
7320
|
{
|
|
6865
7321
|
type: "button",
|
|
6866
7322
|
role: "option",
|
|
6867
7323
|
"aria-selected": selectedDigitForm2 === option.id,
|
|
6868
7324
|
className: "digit-form-option",
|
|
6869
|
-
title: option.
|
|
7325
|
+
title: digitFormTitle(option.id, messages),
|
|
6870
7326
|
onMouseDown: (event) => event.preventDefault(),
|
|
6871
7327
|
onClick: () => {
|
|
6872
7328
|
runtimeRef.current?.setCurrentDigitForm(option.id);
|
|
@@ -6890,15 +7346,15 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6890
7346
|
id: "butex-editor-surface",
|
|
6891
7347
|
className: "surface surface--arabic",
|
|
6892
7348
|
tabIndex: 0,
|
|
6893
|
-
"aria-label":
|
|
7349
|
+
"aria-label": messages.equationEditor
|
|
6894
7350
|
}
|
|
6895
7351
|
),
|
|
6896
7352
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ref: renderErrorRef, className: "error", hidden: true })
|
|
6897
7353
|
] }),
|
|
6898
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("section", { className: "panel panel-preview", "aria-label":
|
|
7354
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("section", { className: "panel panel-preview", "aria-label": messages.renderPreview, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ref: mathOutputRef, className: "preview-box" }) }),
|
|
6899
7355
|
debug ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("section", { className: "panel", children: [
|
|
6900
7356
|
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "dev-strip", children: [
|
|
6901
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dev-badge", children:
|
|
7357
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: "dev-badge", children: messages.development }),
|
|
6902
7358
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ref: latexLinesRef, className: "ascii" }),
|
|
6903
7359
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { ref: passivePreviewRef, className: "passive-preview-text" })
|
|
6904
7360
|
] }),
|
|
@@ -6921,7 +7377,7 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6921
7377
|
return next;
|
|
6922
7378
|
});
|
|
6923
7379
|
},
|
|
6924
|
-
children: debugBodyHidden ?
|
|
7380
|
+
children: debugBodyHidden ? messages.showDebugLog : messages.hideDebugLog
|
|
6925
7381
|
}
|
|
6926
7382
|
),
|
|
6927
7383
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -6935,7 +7391,7 @@ ${arabic || "\u0641\u0627\u0631\u063A"}`;
|
|
|
6935
7391
|
} catch {
|
|
6936
7392
|
}
|
|
6937
7393
|
},
|
|
6938
|
-
children:
|
|
7394
|
+
children: messages.copyDebugLog
|
|
6939
7395
|
}
|
|
6940
7396
|
)
|
|
6941
7397
|
] }),
|