erl-mathtextx-editor 0.1.2

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.
Files changed (62) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +251 -0
  3. package/dist/CellPropertiesDialogImpl-CgWcr4bD.js +101 -0
  4. package/dist/ContentViewer-DcvxXP9t.js +43 -0
  5. package/dist/ImageInsertDialog-Di0MXcC2.js +222 -0
  6. package/dist/InsertTableDialogImpl-CKirXRqE.js +100 -0
  7. package/dist/LinkDialogImpl-BSz0F-xG.js +136 -0
  8. package/dist/MathTextXEditor.d.ts +8 -0
  9. package/dist/TableTemplatesDialogImpl-DrdqLQLH.js +64 -0
  10. package/dist/TemplatePanel-BE_UfzYM.js +710 -0
  11. package/dist/assets/erl-mathtextx-editor.css +1 -0
  12. package/dist/assets/viewer.css +1 -0
  13. package/dist/components/CellPropertiesDialog.d.ts +4 -0
  14. package/dist/components/CellPropertiesDialogImpl.d.ts +14 -0
  15. package/dist/components/GraphComponent.d.ts +3 -0
  16. package/dist/components/ImageContextMenu.d.ts +18 -0
  17. package/dist/components/ImageEditDialog.d.ts +25 -0
  18. package/dist/components/ImageInsertDialog.d.ts +14 -0
  19. package/dist/components/ImageNodeView.d.ts +3 -0
  20. package/dist/components/InsertTableDialog.d.ts +4 -0
  21. package/dist/components/InsertTableDialogImpl.d.ts +7 -0
  22. package/dist/components/LinkDialog.d.ts +4 -0
  23. package/dist/components/LinkDialogImpl.d.ts +18 -0
  24. package/dist/components/TableMenu.d.ts +21 -0
  25. package/dist/components/TableTemplatesDialog.d.ts +4 -0
  26. package/dist/components/TableTemplatesDialogImpl.d.ts +15 -0
  27. package/dist/components/WordCount.d.ts +6 -0
  28. package/dist/components/__tests__/WordCount.test.d.ts +1 -0
  29. package/dist/components/tableTemplateStyles.d.ts +2 -0
  30. package/dist/components/useDialogA11y.d.ts +6 -0
  31. package/dist/components/wordCountUtils.d.ts +3 -0
  32. package/dist/core/__tests__/serializer.test.d.ts +1 -0
  33. package/dist/core/extensions.d.ts +9 -0
  34. package/dist/core/serializer.d.ts +24 -0
  35. package/dist/erl-mathtextx-editor.js +30 -0
  36. package/dist/erl-mathtextx-editor.umd.cjs +3508 -0
  37. package/dist/extensions/GraphExtension.d.ts +9 -0
  38. package/dist/index-CLGg8QXp.js +8700 -0
  39. package/dist/index-DYxMVo98.js +4599 -0
  40. package/dist/index.d.ts +33 -0
  41. package/dist/math/MathNodes.d.ts +11 -0
  42. package/dist/math/MathTypeDialog.d.ts +8 -0
  43. package/dist/math/MatrixGridSelector.d.ts +5 -0
  44. package/dist/math/SymbolPalette.d.ts +5 -0
  45. package/dist/math/TemplatePanel.d.ts +5 -0
  46. package/dist/mathlive-BwNIIOwE.js +14488 -0
  47. package/dist/templates/index.d.ts +17 -0
  48. package/dist/tiptap-BhJ7Fu9S.js +17927 -0
  49. package/dist/toolbar/MainToolbar.d.ts +14 -0
  50. package/dist/toolbar/MathToolbar.d.ts +7 -0
  51. package/dist/types/index.d.ts +73 -0
  52. package/dist/utils/exportUtils.d.ts +19 -0
  53. package/dist/utils/pasteHandler.d.ts +17 -0
  54. package/dist/viewer/ContentViewer.d.ts +29 -0
  55. package/dist/viewer/index.d.ts +2 -0
  56. package/dist/viewer/styles.d.ts +0 -0
  57. package/dist/viewer-deps-xNPNdmbe.js +12141 -0
  58. package/dist/viewer-styles.d.ts +1 -0
  59. package/dist/viewer-styles.js +1 -0
  60. package/dist/viewer.d.ts +2 -0
  61. package/dist/viewer.js +4 -0
  62. package/package.json +132 -0
@@ -0,0 +1,710 @@
1
+ import { jsxs as i, jsx as l } from "react/jsx-runtime";
2
+ import { useState as p, useMemo as k } from "react";
3
+ const w = [
4
+ // ==========================================
5
+ // 🏫 SD (Sekolah Dasar) — Kelas 1-6
6
+ // ==========================================
7
+ {
8
+ name: "Aritmatika Dasar",
9
+ icon: "🔢",
10
+ level: "SD",
11
+ templates: [
12
+ { label: "Penjumlahan", latex: "a + b = c", preview: "a + b = c" },
13
+ { label: "Pengurangan", latex: "a - b = c", preview: "a - b = c" },
14
+ { label: "Perkalian", latex: "a \\times b = c", preview: "a × b = c" },
15
+ { label: "Pembagian", latex: "a \\div b = c", preview: "a ÷ b = c" },
16
+ { label: "Sisa bagi", latex: "a \\div b = c \\text{ sisa } r", preview: "a ÷ b = c sisa r" },
17
+ { label: "Pecahan biasa", latex: "\\frac{a}{b}", preview: "a/b" },
18
+ { label: "Pecahan campuran", latex: "a\\frac{b}{c}", preview: "a b/c" },
19
+ { label: "Persen", latex: "\\frac{a}{100} = a\\%", preview: "a/100 = a%" },
20
+ { label: "Desimal", latex: "0{,}5 = \\frac{1}{2}", preview: "0,5 = 1/2" },
21
+ { label: "Perbandingan", latex: "a : b = c : d", preview: "a : b = c : d" }
22
+ ]
23
+ },
24
+ {
25
+ name: "Pengukuran & Satuan",
26
+ icon: "📏",
27
+ level: "SD",
28
+ templates: [
29
+ { label: "Keliling persegi", latex: "K = 4 \\times s", preview: "K = 4 × s" },
30
+ { label: "Luas persegi", latex: "L = s \\times s = s^{2}", preview: "L = s²" },
31
+ { label: "Keliling persegi panjang", latex: "K = 2 \\times (p + l)", preview: "K = 2(p + l)" },
32
+ { label: "Luas persegi panjang", latex: "L = p \\times l", preview: "L = p × l" },
33
+ { label: "Keliling lingkaran", latex: "K = 2\\pi r", preview: "K = 2πr" },
34
+ { label: "Luas lingkaran", latex: "L = \\pi r^{2}", preview: "L = πr²" },
35
+ { label: "Luas segitiga", latex: "L = \\frac{1}{2} \\times a \\times t", preview: "L = ½ × a × t" },
36
+ { label: "Luas trapesium", latex: "L = \\frac{1}{2}(a + b) \\times t", preview: "L = ½(a+b) × t" },
37
+ { label: "Volume balok", latex: "V = p \\times l \\times t", preview: "V = p × l × t" },
38
+ { label: "Volume kubus", latex: "V = s^{3}", preview: "V = s³" }
39
+ ]
40
+ },
41
+ {
42
+ name: "KPK & FPB",
43
+ icon: "🧮",
44
+ level: "SD",
45
+ templates: [
46
+ { label: "FPB", latex: "\\text{FPB}(a, b) = \\ldots", preview: "FPB(a, b)" },
47
+ { label: "KPK", latex: "\\text{KPK}(a, b) = \\ldots", preview: "KPK(a, b)" },
48
+ { label: "Relasi FPB-KPK", latex: "a \\times b = \\text{FPB}(a,b) \\times \\text{KPK}(a,b)", preview: "a×b = FPB×KPK" },
49
+ { label: "Faktorisasi prima", latex: "n = p_1^{a_1} \\times p_2^{a_2} \\times \\ldots", preview: "n = p₁ᵃ¹ × p₂ᵃ² × ..." }
50
+ ]
51
+ },
52
+ // ==========================================
53
+ // 🏫 SMP (Sekolah Menengah Pertama) — Kelas 7-9
54
+ // ==========================================
55
+ {
56
+ name: "Aljabar Dasar",
57
+ icon: "🔤",
58
+ level: "SMP",
59
+ templates: [
60
+ { label: "Pecahan", latex: "\\frac{a}{b}", preview: "a/b" },
61
+ { label: "Pangkat", latex: "x^{n}", preview: "xⁿ" },
62
+ { label: "Akar kuadrat", latex: "\\sqrt{x}", preview: "√x" },
63
+ { label: "Akar pangkat n", latex: "\\sqrt[n]{x}", preview: "ⁿ√x" },
64
+ { label: "Nilai mutlak", latex: "\\left| x \\right|", preview: "|x|" },
65
+ { label: "Persamaan linear", latex: "ax + b = 0", preview: "ax + b = 0" },
66
+ { label: "SPLDV", latex: "\\begin{cases} ax + by = c \\\\ dx + ey = f \\end{cases}", preview: "ax+by=c, dx+ey=f" },
67
+ { label: "Persamaan kuadrat", latex: "ax^{2} + bx + c = 0", preview: "ax² + bx + c = 0" },
68
+ { label: "Rumus ABC", latex: "x = \\frac{-b \\pm \\sqrt{b^{2} - 4ac}}{2a}", preview: "x = (-b±√(b²-4ac))/2a" },
69
+ { label: "Diskriminan", latex: "D = b^{2} - 4ac", preview: "D = b² - 4ac" }
70
+ ]
71
+ },
72
+ {
73
+ name: "Geometri SMP",
74
+ icon: "📐",
75
+ level: "SMP",
76
+ templates: [
77
+ { label: "Pythagoras", latex: "c^{2} = a^{2} + b^{2}", preview: "c² = a² + b²" },
78
+ { label: "Jarak dua titik", latex: "d = \\sqrt{(x_2-x_1)^{2} + (y_2-y_1)^{2}}", preview: "d = √((x₂-x₁)²+(y₂-y₁)²)" },
79
+ { label: "Gradien", latex: "m = \\frac{y_2 - y_1}{x_2 - x_1}", preview: "m = (y₂-y₁)/(x₂-x₁)" },
80
+ { label: "Persamaan garis", latex: "y = mx + c", preview: "y = mx + c" },
81
+ { label: "Volume tabung", latex: "V = \\pi r^{2} t", preview: "V = πr²t" },
82
+ { label: "Volume kerucut", latex: "V = \\frac{1}{3}\\pi r^{2} t", preview: "V = ⅓πr²t" },
83
+ { label: "Volume bola", latex: "V = \\frac{4}{3}\\pi r^{3}", preview: "V = 4/3 πr³" },
84
+ { label: "Luas permukaan bola", latex: "L = 4\\pi r^{2}", preview: "Lp = 4πr²" },
85
+ { label: "Kesebangunan", latex: "\\frac{AB}{DE} = \\frac{BC}{EF} = \\frac{AC}{DF}", preview: "AB/DE = BC/EF = AC/DF" },
86
+ { label: "Transformasi: translasi", latex: "T = \\begin{pmatrix} a \\\\ b \\end{pmatrix}", preview: "T = (a, b)" }
87
+ ]
88
+ },
89
+ {
90
+ name: "Statistika SMP",
91
+ icon: "📊",
92
+ level: "SMP",
93
+ templates: [
94
+ { label: "Rata-rata", latex: "\\bar{x} = \\frac{\\sum x_i}{n}", preview: "x̄ = Σxᵢ/n" },
95
+ { label: "Median", latex: "Me = x_{\\frac{n+1}{2}}", preview: "Me = x_(n+1)/2" },
96
+ { label: "Modus", latex: "Mo = \\text{nilai yang paling sering muncul}", preview: "Mo = ..." },
97
+ { label: "Jangkauan", latex: "J = x_{\\max} - x_{\\min}", preview: "J = xmax - xmin" },
98
+ { label: "Peluang", latex: "P(A) = \\frac{n(A)}{n(S)}", preview: "P(A) = n(A)/n(S)" }
99
+ ]
100
+ },
101
+ // ==========================================
102
+ // 🏫 SMA (Sekolah Menengah Atas) — Kelas 10-12
103
+ // ==========================================
104
+ {
105
+ name: "Persamaan & Fungsi",
106
+ icon: "⚖️",
107
+ level: "SMA",
108
+ templates: [
109
+ { label: "Fungsi kuadrat", latex: "f(x) = ax^{2} + bx + c", preview: "f(x) = ax² + bx + c" },
110
+ { label: "Titik puncak", latex: "\\left( \\frac{-b}{2a},\\, \\frac{-(b^2-4ac)}{4a} \\right)", preview: "(-b/2a, -D/4a)" },
111
+ { label: "Jumlah akar", latex: "x_1 + x_2 = \\frac{-b}{a}", preview: "x₁+x₂ = -b/a" },
112
+ { label: "Hasil kali akar", latex: "x_1 \\cdot x_2 = \\frac{c}{a}", preview: "x₁·x₂ = c/a" },
113
+ { label: "Fungsi komposisi", latex: "(f \\circ g)(x) = f(g(x))", preview: "(f∘g)(x) = f(g(x))" },
114
+ { label: "Fungsi invers", latex: "f^{-1}(x)", preview: "f⁻¹(x)" },
115
+ { label: "Fungsi per bagian", latex: "f(x) = \\begin{cases} x^2 & x \\geq 0 \\\\ -x & x < 0 \\end{cases}", preview: "Piecewise function" },
116
+ { label: "Pertidaksamaan kuadrat", latex: "ax^{2} + bx + c > 0", preview: "ax² + bx + c > 0" },
117
+ { label: "Sistem 3 variabel", latex: "\\begin{cases} a_1x + b_1y + c_1z = d_1 \\\\ a_2x + b_2y + c_2z = d_2 \\\\ a_3x + b_3y + c_3z = d_3 \\end{cases}", preview: "SPL 3 variabel" },
118
+ { label: "Program linear", latex: "z = ax + by \\quad \\text{(maks/min)}", preview: "z = ax + by (optimal)" }
119
+ ]
120
+ },
121
+ {
122
+ name: "Logika & Himpunan",
123
+ icon: "집합",
124
+ // Fallback or use unicode like ∩
125
+ level: "SMA",
126
+ // And Kuliah
127
+ templates: [
128
+ { label: "Himpunan kosong", latex: "\\emptyset", preview: "∅" },
129
+ { label: "Irisan", latex: "A \\cap B", preview: "A ∩ B" },
130
+ { label: "Gabungan", latex: "A \\cup B", preview: "A ∪ B" },
131
+ { label: "Bagian dari", latex: "A \\subseteq B", preview: "A ⊆ B" },
132
+ { label: "Bukan bagian", latex: "A \\nsubseteq B", preview: "A ⊈ B" },
133
+ { label: "Elemen dari", latex: "x \\in A", preview: "x ∈ A" },
134
+ { label: "Implikasi", latex: "p \\implies q", preview: "p ⇒ q" },
135
+ { label: "Bi-implikasi", latex: "p \\iff q", preview: "p ⇔ q" },
136
+ { label: "Semua (For all)", latex: "\\forall x \\in A", preview: "∀x ∈ A" },
137
+ { label: "Ada (Exists)", latex: "\\exists x \\in A", preview: "∃x ∈ A" },
138
+ { label: "Negasi", latex: "\\neg p", preview: "¬p" },
139
+ { label: "Hukum De Morgan", latex: "\\neg(p \\land q) \\equiv \\neg p \\lor \\neg q", preview: "¬(p∧q)≡¬p∨¬q" },
140
+ { label: "Tabel Kebenaran", latex: "\\begin{array}{|c|c|c|} \\hline p & q & p \\land q \\\\ \\hline T & T & T \\\\ T & F & F \\\\ F & T & F \\\\ F & F & F \\\\ \\hline \\end{array}", preview: "Tabel Kebenaran" }
141
+ ]
142
+ },
143
+ {
144
+ name: "Trigonometri",
145
+ icon: "📐",
146
+ level: "SMA",
147
+ templates: [
148
+ { label: "sin/cos/tan dasar", latex: "\\sin\\theta = \\frac{\\text{depan}}{\\text{miring}}", preview: "sinθ = dpn/mrg" },
149
+ { label: "Identitas Pythagoras", latex: "\\sin^{2}\\theta + \\cos^{2}\\theta = 1", preview: "sin²θ + cos²θ = 1" },
150
+ { label: "tan = sin/cos", latex: "\\tan\\theta = \\frac{\\sin\\theta}{\\cos\\theta}", preview: "tanθ = sinθ/cosθ" },
151
+ { label: "Sudut ganda sin", latex: "\\sin 2\\alpha = 2\\sin\\alpha \\cos\\alpha", preview: "sin 2α = 2sinα cosα" },
152
+ { label: "Sudut ganda cos", latex: "\\cos 2\\alpha = \\cos^{2}\\alpha - \\sin^{2}\\alpha", preview: "cos 2α = cos²α - sin²α" },
153
+ { label: "Jumlah sudut sin", latex: "\\sin(A \\pm B) = \\sin A \\cos B \\pm \\cos A \\sin B", preview: "sin(A±B)" },
154
+ { label: "Jumlah sudut cos", latex: "\\cos(A \\pm B) = \\cos A \\cos B \\mp \\sin A \\sin B", preview: "cos(A±B)" },
155
+ { label: "Aturan sinus", latex: "\\frac{a}{\\sin A} = \\frac{b}{\\sin B} = \\frac{c}{\\sin C} = 2R", preview: "a/sinA = b/sinB = 2R" },
156
+ { label: "Aturan cosinus", latex: "c^{2} = a^{2} + b^{2} - 2ab\\cos C", preview: "c² = a²+b²-2ab·cosC" },
157
+ { label: "Luas segitiga trig", latex: "L = \\frac{1}{2}ab\\sin C", preview: "L = ½ab sinC" },
158
+ { label: "Persamaan trig dasar", latex: "\\sin x = \\sin \\alpha \\Rightarrow x = \\alpha + k \\cdot 360°", preview: "sinx = sinα → ..." },
159
+ { label: "Grafik sin", latex: "y = A \\sin(Bx + C) + D", preview: "y = A sin(Bx+C)+D" }
160
+ ]
161
+ },
162
+ {
163
+ name: "Logaritma & Eksponen",
164
+ icon: "📊",
165
+ level: "SMA",
166
+ templates: [
167
+ { label: "Logaritma basis a", latex: "\\log_{a}(x) = n", preview: "logₐ(x) = n" },
168
+ { label: "log basis 10", latex: "\\log(x)", preview: "log(x)" },
169
+ { label: "ln (natural log)", latex: "\\ln(x)", preview: "ln(x)" },
170
+ { label: "log perkalian", latex: "\\log(ab) = \\log a + \\log b", preview: "log(ab) = log a + log b" },
171
+ { label: "log pembagian", latex: "\\log\\frac{a}{b} = \\log a - \\log b", preview: "log(a/b) = log a - log b" },
172
+ { label: "log pangkat", latex: "\\log a^{n} = n \\log a", preview: "log aⁿ = n log a" },
173
+ { label: "Konversi basis", latex: "\\log_{a}b = \\frac{\\log b}{\\log a}", preview: "logₐb = logb/loga" },
174
+ { label: "Eksponen perkalian", latex: "a^{m} \\cdot a^{n} = a^{m+n}", preview: "aᵐ·aⁿ = aᵐ⁺ⁿ" },
175
+ { label: "Eksponen pembagian", latex: "\\frac{a^{m}}{a^{n}} = a^{m-n}", preview: "aᵐ/aⁿ = aᵐ⁻ⁿ" },
176
+ { label: "Eksponen negatif", latex: "a^{-n} = \\frac{1}{a^{n}}", preview: "a⁻ⁿ = 1/aⁿ" }
177
+ ]
178
+ },
179
+ {
180
+ name: "Barisan & Deret",
181
+ icon: "🔢",
182
+ level: "SMA",
183
+ templates: [
184
+ { label: "Un aritmetika", latex: "U_n = a + (n-1)b", preview: "Uₙ = a + (n-1)b" },
185
+ { label: "Sn aritmetika", latex: "S_n = \\frac{n}{2}(2a + (n-1)b)", preview: "Sₙ = n/2(2a+(n-1)b)" },
186
+ { label: "Un geometri", latex: "U_n = a \\cdot r^{n-1}", preview: "Uₙ = a·rⁿ⁻¹" },
187
+ { label: "Sn geometri", latex: "S_n = \\frac{a(1 - r^{n})}{1 - r}", preview: "Sₙ = a(1-rⁿ)/(1-r)" },
188
+ { label: "Deret tak hingga", latex: "S_{\\infty} = \\frac{a}{1 - r},\\; |r| < 1", preview: "S∞ = a/(1-r)" },
189
+ { label: "Sigma", latex: "\\sum_{i=1}^{n} a_i", preview: "Σᵢ₌₁ⁿ aᵢ" },
190
+ { label: "Σi", latex: "\\sum_{i=1}^{n} i = \\frac{n(n+1)}{2}", preview: "Σi = n(n+1)/2" },
191
+ { label: "Σi²", latex: "\\sum_{i=1}^{n} i^{2} = \\frac{n(n+1)(2n+1)}{6}", preview: "Σi² = n(n+1)(2n+1)/6" },
192
+ { label: "Σi³", latex: "\\sum_{i=1}^{n} i^{3} = \\left[\\frac{n(n+1)}{2}\\right]^{2}", preview: "Σi³ = [n(n+1)/2]²" }
193
+ ]
194
+ },
195
+ {
196
+ name: "Matriks & Vektor",
197
+ icon: "🔲",
198
+ level: "SMA",
199
+ templates: [
200
+ { label: "Matriks 2×2", latex: "\\begin{pmatrix} a & b \\\\ c & d \\end{pmatrix}", preview: "[a b; c d]" },
201
+ { label: "Matriks 3×3", latex: "\\begin{pmatrix} a & b & c \\\\ d & e & f \\\\ g & h & i \\end{pmatrix}", preview: "3×3 matrix" },
202
+ { label: "Determinan 2×2", latex: "\\det(A) = ad - bc", preview: "det(A) = ad - bc" },
203
+ { label: "Invers 2×2", latex: "A^{-1} = \\frac{1}{ad-bc}\\begin{pmatrix} d & -b \\\\ -c & a \\end{pmatrix}", preview: "A⁻¹ = 1/det ..." },
204
+ { label: "Perkalian matriks", latex: "C_{ij} = \\sum_{k} A_{ik} B_{kj}", preview: "Cᵢⱼ = Σ AᵢₖBₖⱼ" },
205
+ { label: "Vektor 2D", latex: "\\vec{v} = \\begin{pmatrix} x \\\\ y \\end{pmatrix}", preview: "v⃗ = (x,y)ᵀ" },
206
+ { label: "Vektor 3D", latex: "\\vec{v} = \\begin{pmatrix} x \\\\ y \\\\ z \\end{pmatrix}", preview: "v⃗ = (x,y,z)ᵀ" },
207
+ { label: "Dot product", latex: "\\vec{a} \\cdot \\vec{b} = |a||b|\\cos\\theta", preview: "a⃗·b⃗ = |a||b|cosθ" },
208
+ { label: "Cross product", latex: "\\vec{a} \\times \\vec{b} = |a||b|\\sin\\theta\\,\\hat{n}", preview: "a⃗ × b⃗" },
209
+ { label: "Transformasi linear", latex: "\\begin{pmatrix} x' \\\\ y' \\end{pmatrix} = \\begin{pmatrix} a & b \\\\ c & d \\end{pmatrix} \\begin{pmatrix} x \\\\ y \\end{pmatrix}", preview: "x'y' = M·xy" }
210
+ ]
211
+ },
212
+ {
213
+ name: "Statistika & Peluang SMA",
214
+ icon: "🎲",
215
+ level: "SMA",
216
+ templates: [
217
+ { label: "Rata-rata data kelompok", latex: "\\bar{x} = \\frac{\\sum f_i x_i}{\\sum f_i}", preview: "x̄ = Σfᵢxᵢ/Σfᵢ" },
218
+ { label: "Varians", latex: "s^{2} = \\frac{\\sum f_i(x_i - \\bar{x})^{2}}{n-1}", preview: "s² = Σfᵢ(xᵢ-x̄)²/(n-1)" },
219
+ { label: "Simpangan baku", latex: "s = \\sqrt{\\frac{\\sum f_i(x_i - \\bar{x})^{2}}{n-1}}", preview: "s = √(...)" },
220
+ { label: "Quartil", latex: "Q_k = x_{\\frac{k(n+1)}{4}}", preview: "Qₖ = x_k(n+1)/4" },
221
+ { label: "Kombinasi", latex: "C(n,k) = \\binom{n}{k} = \\frac{n!}{k!(n-k)!}", preview: "C(n,k) = n!/(k!(n-k)!)" },
222
+ { label: "Permutasi", latex: "P(n,k) = \\frac{n!}{(n-k)!}", preview: "P(n,k) = n!/(n-k)!" },
223
+ { label: "Peluang komplemen", latex: "P(A') = 1 - P(A)", preview: "P(A') = 1 - P(A)" },
224
+ { label: "Peluang gabungan", latex: "P(A \\cup B) = P(A) + P(B) - P(A \\cap B)", preview: "P(A∪B) = P(A)+P(B)-P(A∩B)" },
225
+ { label: "Peluang bersyarat", latex: "P(A|B) = \\frac{P(A \\cap B)}{P(B)}", preview: "P(A|B) = P(A∩B)/P(B)" },
226
+ { label: "Binomial", latex: "P(X=k) = \\binom{n}{k} p^{k} (1-p)^{n-k}", preview: "P(X=k) binomial" }
227
+ ]
228
+ },
229
+ {
230
+ name: "Limit & Turunan",
231
+ icon: "∫",
232
+ level: "SMA",
233
+ templates: [
234
+ { label: "Limit fungsi", latex: "\\lim_{x \\to a} f(x) = L", preview: "lim x→a f(x) = L" },
235
+ { label: "Limit tak hingga", latex: "\\lim_{x \\to \\infty} f(x)", preview: "lim x→∞" },
236
+ { label: "Limit 0/0", latex: "\\lim_{x \\to a} \\frac{f(x)}{g(x)}", preview: "lim f/g (0/0)" },
237
+ { label: "Limit trig", latex: "\\lim_{x \\to 0} \\frac{\\sin x}{x} = 1", preview: "lim sinx/x = 1" },
238
+ { label: "Turunan definisi", latex: "f'(x) = \\lim_{h \\to 0} \\frac{f(x+h) - f(x)}{h}", preview: "f'(x) = lim Δf/Δx" },
239
+ { label: "Turunan pangkat", latex: "\\frac{d}{dx}x^{n} = nx^{n-1}", preview: "d/dx xⁿ = nxⁿ⁻¹" },
240
+ { label: "Turunan perkalian", latex: "(fg)' = f'g + fg'", preview: "(fg)' = f'g + fg'" },
241
+ { label: "Turunan pembagian", latex: "\\left(\\frac{f}{g}\\right)' = \\frac{f'g - fg'}{g^2}", preview: "(f/g)' = (f'g-fg')/g²" },
242
+ { label: "Aturan rantai", latex: "\\frac{dy}{dx} = \\frac{dy}{du} \\cdot \\frac{du}{dx}", preview: "dy/dx = dy/du·du/dx" },
243
+ { label: "Garis singgung", latex: "y - y_1 = m(x - x_1)", preview: "y-y₁ = m(x-x₁)" }
244
+ ]
245
+ },
246
+ {
247
+ name: "Integral SMA",
248
+ icon: "∫",
249
+ level: "SMA",
250
+ templates: [
251
+ { label: "Integral tak tentu", latex: "\\int f(x)\\, dx", preview: "∫ f(x) dx" },
252
+ { label: "Integral pangkat", latex: "\\int x^{n}\\, dx = \\frac{x^{n+1}}{n+1} + C", preview: "∫xⁿ dx = xⁿ⁺¹/(n+1)+C" },
253
+ { label: "Integral tentu", latex: "\\int_{a}^{b} f(x)\\, dx", preview: "∫ₐᵇ f(x) dx" },
254
+ { label: "Integral tentu evaluasi", latex: "\\int_{a}^{b} f(x)\\, dx = F(b) - F(a)", preview: "∫ₐᵇ = F(b)-F(a)" },
255
+ { label: "Luas daerah", latex: "L = \\int_{a}^{b} |f(x) - g(x)|\\, dx", preview: "L = ∫|f-g|dx" },
256
+ { label: "Volume putar (cakram)", latex: "V = \\pi \\int_{a}^{b} [f(x)]^{2}\\, dx", preview: "V = π∫[f(x)]²dx" },
257
+ { label: "Volume putar (cincin)", latex: "V = \\pi \\int_{a}^{b} ([f(x)]^{2} - [g(x)]^{2})\\, dx", preview: "V = π∫(f²-g²)dx" }
258
+ ]
259
+ },
260
+ // ==========================================
261
+ // 🎓 PERGURUAN TINGGI
262
+ // ==========================================
263
+ {
264
+ name: "Kalkulus Lanjut",
265
+ icon: "∫",
266
+ level: "Kuliah",
267
+ templates: [
268
+ { label: "Integral ganda", latex: "\\iint_{D} f(x,y)\\, dA", preview: "∬ f(x,y) dA" },
269
+ { label: "Integral triple", latex: "\\iiint_{V} f(x,y,z)\\, dV", preview: "∭ f(x,y,z) dV" },
270
+ { label: "Integral garis", latex: "\\int_{C} \\vec{F} \\cdot d\\vec{r}", preview: "∫_C F⃗·dr⃗" },
271
+ { label: "Integral permukaan", latex: "\\iint_{S} \\vec{F} \\cdot d\\vec{S}", preview: "∬_S F⃗·dS⃗" },
272
+ { label: "Teorema Green", latex: "\\oint_{C} (P\\,dx + Q\\,dy) = \\iint_{D} \\left(\\frac{\\partial Q}{\\partial x} - \\frac{\\partial P}{\\partial y}\\right) dA", preview: "Teorema Green" },
273
+ { label: "Teorema Stokes", latex: "\\oint_{C} \\vec{F} \\cdot d\\vec{r} = \\iint_{S} (\\nabla \\times \\vec{F}) \\cdot d\\vec{S}", preview: "Teorema Stokes" },
274
+ { label: "Teorema Divergensi", latex: "\\iiint_{V} (\\nabla \\cdot \\vec{F})\\, dV = \\oiint_{S} \\vec{F} \\cdot d\\vec{S}", preview: "Teorema Gauss" },
275
+ { label: "Deret Taylor", latex: "f(x) = \\sum_{n=0}^{\\infty} \\frac{f^{(n)}(a)}{n!}(x-a)^{n}", preview: "Deret Taylor" },
276
+ { label: "Deret Maclaurin", latex: "f(x) = \\sum_{n=0}^{\\infty} \\frac{f^{(n)}(0)}{n!}x^{n}", preview: "Deret Maclaurin" },
277
+ { label: "Deret Fourier", latex: "f(x) = \\frac{a_0}{2} + \\sum_{n=1}^{\\infty}\\left(a_n \\cos\\frac{n\\pi x}{L} + b_n \\sin\\frac{n\\pi x}{L}\\right)", preview: "Deret Fourier" },
278
+ { label: "Aturan L'Hôpital", latex: "\\lim_{x \\to a} \\frac{f(x)}{g(x)} = \\lim_{x \\to a} \\frac{f'(x)}{g'(x)}", preview: "L'Hôpital" },
279
+ { label: "Jacobian", latex: "J = \\frac{\\partial(x,y)}{\\partial(u,v)} = \\begin{vmatrix} \\frac{\\partial x}{\\partial u} & \\frac{\\partial x}{\\partial v} \\\\ \\frac{\\partial y}{\\partial u} & \\frac{\\partial y}{\\partial v} \\end{vmatrix}", preview: "Jacobian" }
280
+ ]
281
+ },
282
+ {
283
+ name: "Persamaan Diferensial",
284
+ icon: "🔄",
285
+ level: "Kuliah",
286
+ templates: [
287
+ { label: "PD orde 1", latex: "\\frac{dy}{dx} = f(x, y)", preview: "dy/dx = f(x,y)" },
288
+ { label: "PD separabel", latex: "g(y)\\,dy = f(x)\\,dx", preview: "g(y)dy = f(x)dx" },
289
+ { label: "PD linear orde 1", latex: "\\frac{dy}{dx} + P(x)y = Q(x)", preview: "y' + P(x)y = Q(x)" },
290
+ { label: "Faktor integrasi", latex: "\\mu(x) = e^{\\int P(x)\\,dx}", preview: "μ(x) = e^(∫P dx)" },
291
+ { label: "PD orde 2 homogen", latex: "y'' + py' + qy = 0", preview: "y'' + py' + qy = 0" },
292
+ { label: "Persamaan karakteristik", latex: "r^{2} + pr + q = 0", preview: "r² + pr + q = 0" },
293
+ { label: "Solusi umum (akar real)", latex: "y = C_1 e^{r_1 x} + C_2 e^{r_2 x}", preview: "y = c₁e^r₁x + c₂e^r₂x" },
294
+ { label: "Solusi umum (akar kompleks)", latex: "y = e^{\\alpha x}(C_1 \\cos\\beta x + C_2 \\sin\\beta x)", preview: "y = eᵅˣ(c₁cosβx+c₂sinβx)" },
295
+ { label: "Laplace transform", latex: "\\mathcal{L}\\{f(t)\\} = \\int_{0}^{\\infty} e^{-st} f(t)\\, dt", preview: "L{f(t)} = ∫e⁻ˢᵗf(t)dt" },
296
+ { label: "Invers Laplace", latex: "f(t) = \\mathcal{L}^{-1}\\{F(s)\\}", preview: "f(t) = L⁻¹{F(s)}" }
297
+ ]
298
+ },
299
+ {
300
+ name: "Aljabar Linear",
301
+ icon: "🔲",
302
+ level: "Kuliah",
303
+ templates: [
304
+ { label: "Matriks n×n", latex: "A = [a_{ij}]_{m \\times n}", preview: "A = [aᵢⱼ]ₘₓₙ" },
305
+ { label: "Determinan (Sarrus)", latex: "\\det(A) = \\sum_{j=1}^{n} (-1)^{1+j} a_{1j} M_{1j}", preview: "det = Σ cofactor" },
306
+ { label: "Eigenvalue", latex: "\\det(A - \\lambda I) = 0", preview: "det(A-λI) = 0" },
307
+ { label: "Eigenvector", latex: "(A - \\lambda I)\\vec{v} = \\vec{0}", preview: "(A-λI)v⃗ = 0⃗" },
308
+ { label: "Diagonalisasi", latex: "A = PDP^{-1}", preview: "A = PDP⁻¹" },
309
+ { label: "Gram-Schmidt", latex: "\\vec{u}_k = \\vec{v}_k - \\sum_{j=1}^{k-1} \\text{proj}_{\\vec{u}_j}(\\vec{v}_k)", preview: "Gram-Schmidt" },
310
+ { label: "Proyeksi vektor", latex: "\\text{proj}_{\\vec{u}}(\\vec{v}) = \\frac{\\vec{v} \\cdot \\vec{u}}{\\vec{u} \\cdot \\vec{u}} \\vec{u}", preview: "proj_u(v)" },
311
+ { label: "Rank matriks", latex: "\\text{rank}(A) = \\dim(\\text{Col}(A))", preview: "rank(A) = dim Col(A)" },
312
+ { label: "Norma vektor", latex: "\\|\\vec{v}\\| = \\sqrt{\\sum_{i=1}^{n} v_i^{2}}", preview: "‖v⃗‖ = √(Σvᵢ²)" },
313
+ { label: "Matriks transpos", latex: "(A^{T})_{ij} = A_{ji}", preview: "(Aᵀ)ᵢⱼ = Aⱼᵢ" }
314
+ ]
315
+ },
316
+ {
317
+ name: "Statistika & Probabilitas",
318
+ icon: "🎲",
319
+ level: "Kuliah",
320
+ templates: [
321
+ { label: "Ekspektasi", latex: "E(X) = \\sum_{i} x_i P(x_i)", preview: "E(X) = ΣxᵢP(xᵢ)" },
322
+ { label: "Ekspektasi kontinu", latex: "E(X) = \\int_{-\\infty}^{\\infty} x f(x)\\, dx", preview: "E(X) = ∫xf(x)dx" },
323
+ { label: "Varians", latex: "Var(X) = E(X^2) - [E(X)]^2", preview: "Var(X) = E(X²)-[E(X)]²" },
324
+ { label: "Distribusi normal", latex: "f(x) = \\frac{1}{\\sigma\\sqrt{2\\pi}} e^{-\\frac{(x-\\mu)^2}{2\\sigma^2}}", preview: "Distribusi normal" },
325
+ { label: "Z-score", latex: "z = \\frac{x - \\mu}{\\sigma}", preview: "z = (x-μ)/σ" },
326
+ { label: "Distribusi Poisson", latex: "P(X=k) = \\frac{e^{-\\lambda} \\lambda^{k}}{k!}", preview: "P(X=k) = e⁻λλᵏ/k!" },
327
+ { label: "Korelasi Pearson", latex: "r = \\frac{\\sum(x_i - \\bar{x})(y_i - \\bar{y})}{\\sqrt{\\sum(x_i-\\bar{x})^2 \\sum(y_i-\\bar{y})^2}}", preview: "r = Σ(x-x̄)(y-ȳ)/..." },
328
+ { label: "Regresi linear", latex: "\\hat{y} = a + bx,\\quad b = \\frac{n\\sum xy - \\sum x \\sum y}{n\\sum x^2 - (\\sum x)^2}", preview: "ŷ = a + bx" },
329
+ { label: "Interval kepercayaan", latex: "\\bar{x} \\pm z_{\\alpha/2} \\frac{\\sigma}{\\sqrt{n}}", preview: "x̄ ± z·σ/√n" },
330
+ { label: "Uji-t", latex: "t = \\frac{\\bar{x} - \\mu_0}{s / \\sqrt{n}}", preview: "t = (x̄-μ₀)/(s/√n)" },
331
+ { label: "Chi-square", latex: "\\chi^2 = \\sum \\frac{(O_i - E_i)^2}{E_i}", preview: "χ² = Σ(O-E)²/E" },
332
+ { label: "Bayes", latex: "P(A|B) = \\frac{P(B|A)P(A)}{P(B)}", preview: "Teorema Bayes" }
333
+ ]
334
+ },
335
+ {
336
+ name: "Analisis Kompleks",
337
+ icon: "🌀",
338
+ level: "Kuliah",
339
+ templates: [
340
+ { label: "Bilangan kompleks", latex: "z = a + bi", preview: "z = a + bi" },
341
+ { label: "Modulus", latex: "|z| = \\sqrt{a^2 + b^2}", preview: "|z| = √(a²+b²)" },
342
+ { label: "Konjugat", latex: "\\bar{z} = a - bi", preview: "z̄ = a - bi" },
343
+ { label: "Euler", latex: "e^{i\\theta} = \\cos\\theta + i\\sin\\theta", preview: "Euler: e^iθ = cosθ + isinθ" },
344
+ { label: "De Moivre", latex: "(\\cos\\theta + i\\sin\\theta)^n = \\cos n\\theta + i\\sin n\\theta", preview: "De Moivre" },
345
+ { label: "Integral Cauchy", latex: "f(z_0) = \\frac{1}{2\\pi i}\\oint_C \\frac{f(z)}{z - z_0}\\, dz", preview: "Rumus integral Cauchy" },
346
+ { label: "Deret Laurent", latex: "f(z) = \\sum_{n=-\\infty}^{\\infty} c_n (z-z_0)^n", preview: "Deret Laurent" },
347
+ { label: "Residu", latex: "\\oint_C f(z)\\,dz = 2\\pi i \\sum \\text{Res}(f, z_k)", preview: "Teorema Residu" }
348
+ ]
349
+ },
350
+ {
351
+ name: "Ekonomi & Keuangan",
352
+ icon: "💰",
353
+ level: "SMA",
354
+ // And Kuliah
355
+ templates: [
356
+ { label: "Bunga Tunggal", latex: "M_n = M_0 (1 + n \\cdot i)", preview: "Mn = M₀(1+ni)" },
357
+ { label: "Bunga Majemuk", latex: "M_n = M_0 (1 + i)^n", preview: "Mn = M₀(1+i)ⁿ" },
358
+ { label: "Pertumbuhan", latex: "P_n = P_0 (1 + r)^n", preview: "Pn = P₀(1+r)ⁿ" },
359
+ { label: "Peluruhan", latex: "P_n = P_0 (1 - r)^n", preview: "Pn = P₀(1-r)ⁿ" },
360
+ { label: "Anuitas", latex: "A = \\frac{M \\cdot i}{1 - (1+i)^{-n}}", preview: "A = M·i/(1-(1+i)⁻ⁿ)" },
361
+ { label: "Elastisitas", latex: "E = \\frac{\\% \\Delta Q}{\\% \\Delta P} = \\frac{P}{Q} \\cdot \\frac{dQ}{dP}", preview: "E = %ΔQ/%ΔP" },
362
+ { label: "Fungsi Biaya", latex: "TC = FC + VC", preview: "TC = FC + VC" },
363
+ { label: "Biaya Marginal", latex: "MC = \\frac{dTC}{dQ}", preview: "MC = dTC/dQ" },
364
+ { label: "Penerimaan Marginal", latex: "MR = \\frac{dTR}{dQ}", preview: "MR = dTR/dQ" },
365
+ { label: "Laba Maksimum", latex: "MR = MC", preview: "MR = MC" }
366
+ ]
367
+ },
368
+ {
369
+ name: "Fisika Lanjut",
370
+ // Merging or adding next to Fisika
371
+ icon: "⚛️",
372
+ level: "Kuliah",
373
+ templates: [
374
+ { label: "Hukum Gay-Lussac", latex: "\\frac{P_1}{T_1} = \\frac{P_2}{T_2}", preview: "P₁/T₁ = P₂/T₂" },
375
+ { label: "Gas Ideal", latex: "PV = nRT = N K_B T", preview: "PV = nRT" },
376
+ { label: "Termodinamika I", latex: "\\Delta U = Q - W", preview: "ΔU = Q - W" },
377
+ { label: "Efisiensi Mesin", latex: "\\eta = 1 - \\frac{T_C}{T_H}", preview: "η = 1 - Tc/Th" },
378
+ { label: "Entropi", latex: "\\Delta S = \\int \\frac{dQ}{T}", preview: "ΔS = ∫dQ/T" },
379
+ { label: "Bernoulli", latex: "P + \\frac{1}{2}\\rho v^2 + \\rho gh = \\text{konstan}", preview: "Bernoulli" },
380
+ { label: "Relativitas Waktu", latex: "\\Delta t' = \\frac{\\Delta t}{\\sqrt{1 - v^2/c^2}}", preview: "Dilatasi Waktu" },
381
+ { label: "Massa Relativistik", latex: "m = \\frac{m_0}{\\sqrt{1 - v^2/c^2}}", preview: "m = m₀/γ" },
382
+ { label: "Heisenberg", latex: "\\Delta x \\Delta p \\geq \\frac{\\hbar}{2}", preview: "ΔxΔp ≥ ℏ/2" },
383
+ { label: "Pers. Gelombang", latex: "\\frac{\\partial^2 y}{\\partial x^2} = \\frac{1}{v^2} \\frac{\\partial^2 y}{\\partial t^2}", preview: "∂²y/∂x² = ..." }
384
+ ]
385
+ },
386
+ // ==========================================
387
+ // 🧪 KIMIA (SD - MASTER)
388
+ // ==========================================
389
+ {
390
+ name: "Kimia Dasar",
391
+ icon: "⚗️",
392
+ level: "SMP",
393
+ templates: [
394
+ { label: "Air", latex: "\\ce{H2O}", preview: "H2O" },
395
+ { label: "Garam Dapur", latex: "\\ce{NaCl}", preview: "NaCl" },
396
+ { label: "Gula (Glukosa)", latex: "\\ce{C6H12O6}", preview: "Glukosa" },
397
+ { label: "Karbon Dioksida", latex: "\\ce{CO2}", preview: "CO2" },
398
+ { label: "Oksigen", latex: "\\ce{O2}", preview: "O2" },
399
+ { label: "Asam Klorida", latex: "\\ce{HCl}", preview: "HCl" },
400
+ { label: "Natrium Hidroksida", latex: "\\ce{NaOH}", preview: "NaOH" },
401
+ { label: "Wujud Gas", latex: "\\ce{(g)}", preview: "(g)" },
402
+ { label: "Wujud Cair", latex: "\\ce{(l)}", preview: "(l)" },
403
+ { label: "Wujud Padat", latex: "\\ce{(s)}", preview: "(s)" },
404
+ { label: "Larutan", latex: "\\ce{(aq)}", preview: "(aq)" }
405
+ ]
406
+ },
407
+ {
408
+ name: "Stoikiometri & Larutan",
409
+ icon: "⚖️",
410
+ level: "SMA",
411
+ templates: [
412
+ { label: "Mol dari Massa", latex: "n = \\frac{m}{M_r}", preview: "n = m/Mr" },
413
+ { label: "Mol dari Molaritas", latex: "n = M \\cdot V", preview: "n = M · V" },
414
+ { label: "Mol dari Partikel", latex: "n = \\frac{N}{N_A}", preview: "n = N/NA" },
415
+ { label: "Mol Gas (STP)", latex: "n = \\frac{V}{22,4}", preview: "n = V/22,4" },
416
+ { label: "Mol Gas Ideal", latex: "n = \\frac{PV}{RT}", preview: "n = PV/RT" },
417
+ { label: "Molaritas", latex: "M = \\frac{n}{V}", preview: "M = n/V" },
418
+ { label: "Molalitas", latex: "m = \\frac{n}{p}", preview: "m = n/p" },
419
+ { label: "Fraksi Mol", latex: "X_A = \\frac{n_A}{n_A + n_B}", preview: "XA = nA/(nA+nB)" },
420
+ { label: "pH Asam", latex: "pH = -\\log[\\ce{H+}]", preview: "pH = -log[H+]" },
421
+ { label: "pOH Basa", latex: "pOH = -\\log[\\ce{OH-}]", preview: "pOH = -log[OH-]" },
422
+ { label: "Titik Didih", latex: "\\Delta T_b = m \\cdot K_b \\cdot i", preview: "ΔTb = m·Kb·i" },
423
+ { label: "Titik Beku", latex: "\\Delta T_f = m \\cdot K_f \\cdot i", preview: "ΔTf = m·Kf·i" },
424
+ { label: "Tekanan Osmotik", latex: "\\pi = M \\cdot R \\cdot T \\cdot i", preview: "π = MRTi" },
425
+ { label: "Hasil Kali Kelarutan", latex: "K_{sp} = [x\\ce{A}]^x [y\\ce{B}]^y", preview: "Ksp" }
426
+ ]
427
+ },
428
+ {
429
+ name: "Kimia Fisik Lanjut",
430
+ icon: "⚛️",
431
+ level: "Kuliah",
432
+ templates: [
433
+ { label: "Gas Van der Waals", latex: "\\left( P + \\frac{an^{2}}{V^{2}} \\right) (V - nb) = nRT", preview: "P_vdw" },
434
+ { label: "Persamaan Bragg", latex: "n\\lambda = 2d \\sin\\theta", preview: "Diffraction" },
435
+ { label: "Hukum Raoult", latex: "P_A = X_A P_A^\\circ", preview: "Raoult" },
436
+ { label: "Pers. Clausius-Clapeyron", latex: "\\ln\\left(\\frac{P_2}{P_1}\\right) = \\frac{-\\Delta H_{vap}}{R} \\left(\\frac{1}{T_2} - \\frac{1}{T_1}\\right)", preview: "Clapeyron" },
437
+ { label: "Pers. Langmuir", latex: "\\theta = \\frac{KP}{1 + KP}", preview: "Adsorpsi" },
438
+ { label: "Kekuatan Ionik", latex: "I = \\frac{1}{2} \\sum c_i z_i^{2}", preview: "Ionic Strength" },
439
+ { label: "Debye-Hückel", latex: "\\log \\gamma_{\\pm} = -A |z_+ z_-| \\sqrt{I}", preview: "DH Law" }
440
+ ]
441
+ },
442
+ {
443
+ name: "Termokimia & Kinetika",
444
+ icon: "🔥",
445
+ level: "Master",
446
+ templates: [
447
+ { label: "Hukum Hess", latex: "\\Delta H_{rxn} = \\sum \\Delta H_f^{\\circ}(\\text{prod}) - \\sum \\Delta H_f^{\\circ}(\\text{reak})", preview: "ΔH Hess" },
448
+ { label: "ΔG Gibbs", latex: "\\Delta G = \\Delta H - T\\Delta S", preview: "ΔG = ΔH - TΔS" },
449
+ { label: "Energi Bebas & K", latex: "\\Delta G^\\circ = -RT \\ln K", preview: "ΔG° = -RT lnK" },
450
+ { label: "Pers. Vant Hoff", latex: "\\ln\\left(\\frac{K_2}{K_1}\\right) = \\frac{\\Delta H^\\circ}{R} \\left(\\frac{1}{T_1} - \\frac{1}{T_2}\\right)", preview: "Vant Hoff" },
451
+ { label: "Pers. Arrhenius", latex: "k = A e^{-\\frac{E_a}{RT}}", preview: "k = Ae^(-Ea/RT)" },
452
+ { label: "Laju Reaksi Orde n", latex: "\\frac{1}{[\\ce{A}]^{n-1}} - \\frac{1}{[\\ce{A}]_0^{n-1}} = (n-1)kt", preview: "Orde n" },
453
+ { label: "Michaelis-Menten", latex: "v = \\frac{V_{max}[\\ce{S}]}{K_m + [\\ce{S}]}", preview: "Enzim" },
454
+ { label: "Energi Aktivasi", latex: "\\ln k = -\\frac{E_a}{R} \\left( \\frac{1}{T} \\right) + \\ln A", preview: "Plot Arrhenius" }
455
+ ]
456
+ },
457
+ {
458
+ name: "Elektrokimia",
459
+ icon: "🔋",
460
+ level: "Kuliah",
461
+ templates: [
462
+ { label: "Pers. Nernst", latex: "E = E^\\circ - \\frac{RT}{nF} \\ln Q", preview: "Nernst" },
463
+ { label: "Nernst (25°C)", latex: "E = E^\\circ - \\frac{0.0592}{n} \\log Q", preview: "Nernst 25C" },
464
+ { label: "Hukum Faraday I", latex: "w = \\frac{e \\cdot i \\cdot t}{96500}", preview: "w = eit/F" },
465
+ { label: "Potensial Sel", latex: "E_{sel} = E_{katoda} - E_{anoda}", preview: "Esel" },
466
+ { label: "Hubungan ΔG & E", latex: "\\Delta G = -nFE", preview: "ΔG = -nFE" },
467
+ { label: "Konduktivitas Molar", latex: "\\Lambda_m = \\frac{\\kappa}{c}", preview: "Λm = к/c" }
468
+ ]
469
+ },
470
+ {
471
+ name: "Kimia Organik",
472
+ icon: "🌳",
473
+ level: "Master",
474
+ templates: [
475
+ { label: "Benzena", latex: "\\ce{C6H6}", preview: "C6H6" },
476
+ { label: "Alkana Umum", latex: "\\ce{C_{n}H_{2n+2}}", preview: "Alkana" },
477
+ { label: "Asam Karboksilat", latex: "\\ce{R-COOH}", preview: "R-COOH" },
478
+ { label: "Ester", latex: "\\ce{R-COOR'}", preview: "R-COOR'" },
479
+ { label: "Amida", latex: "\\ce{R-CONH2}", preview: "R-CONH2" },
480
+ { label: "Amina", latex: "\\ce{R-NH2}", preview: "R-NH2" },
481
+ { label: "Grignard", latex: "\\ce{R-MgX}", preview: "R-MgX" },
482
+ { label: "Nukleofilik SN2", latex: "\\ce{Nu^{-} + R-X -> R-Nu + X^{-}}", preview: "SN2" },
483
+ { label: "Eliminasi E1", latex: "\\ce{Base + H-C-C-L -> C=C + Base-H + L^{-}}", preview: "E1" },
484
+ { label: "Diels-Alder", latex: "\\ce{Diene + Dienophile -> Cyclohexene}", preview: "Diels-Alder" },
485
+ { label: "Polimerisasi", latex: "\\ce{n CH2=CH2 -> -[-CH2-CH2-]-_{n}}", preview: "Polimer" }
486
+ ]
487
+ },
488
+ {
489
+ name: "Kimia Analitik",
490
+ icon: "🔬",
491
+ level: "Kuliah",
492
+ templates: [
493
+ { label: "Beer-Lambert", latex: "A = \\epsilon b c", preview: "A = εbc" },
494
+ { label: "Transmitansi", latex: "A = -\\log T = \\log\\left(\\frac{100}{\\%T}\\right)", preview: "A = -log T" },
495
+ { label: "Standar Deviasi", latex: "s = \\sqrt{\\frac{\\sum(x_i - \\bar{x})^{2}}{n-1}}", preview: "Analytic s" },
496
+ { label: "Koefisien Variasi", latex: "CV = \\frac{s}{\\bar{x}} \\times 100\\%", preview: "CV" },
497
+ { label: "Limit Deteksi (LOD)", latex: "LOD = \\frac{3s_b}{m}", preview: "LOD" },
498
+ { label: "Pers. Henderson-Hasselbalch", latex: "pH = pK_a + \\log\\frac{[\\ce{A-}]}{[\\ce{HA}]}", preview: "Buffer pH" }
499
+ ]
500
+ },
501
+ {
502
+ name: "Kimia Anorganik & Inti",
503
+ icon: "🌌",
504
+ level: "Master",
505
+ templates: [
506
+ { label: "Peluruhan Radioaktif", latex: "N_t = N_0 e^{-\\lambda t}", preview: "Nt = N0 e^-λt" },
507
+ { label: "Waktu Paruh", latex: "t_{1/2} = \\frac{\\ln 2}{\\lambda}", preview: "t½ = 0.693/λ" },
508
+ { label: "Defek Massa", latex: "\\Delta m = (Z m_p + N m_n) - M_{inti}", preview: "Δm" },
509
+ { label: "Energi Ikat Inti", latex: "BE = \\Delta m \\cdot c^{2}", preview: "BE = Δmc²" },
510
+ { label: "Crystal Field Splitting", latex: "\\Delta_o = 10Dq", preview: "CFSE" },
511
+ { label: "Kecepatan Photon", latex: "E = hf = \\frac{hc}{\\lambda}", preview: "E=hf" },
512
+ { label: "Pers. de Broglie", latex: "\\lambda = \\frac{h}{mv}", preview: "λ = h/p" }
513
+ ]
514
+ },
515
+ {
516
+ name: "Fisika",
517
+ icon: "⚛️",
518
+ level: "Kuliah",
519
+ templates: [
520
+ { label: "Kecepatan", latex: "v = \\frac{ds}{dt}", preview: "v = ds/dt" },
521
+ { label: "Percepatan", latex: "a = \\frac{dv}{dt} = \\frac{d^2s}{dt^2}", preview: "a = dv/dt" },
522
+ { label: "Hukum Newton II", latex: "\\vec{F} = m\\vec{a}", preview: "F⃗ = ma⃗" },
523
+ { label: "Energi kinetik", latex: "E_k = \\frac{1}{2}mv^{2}", preview: "Eₖ = ½mv²" },
524
+ { label: "Energi potensial", latex: "E_p = mgh", preview: "Eₚ = mgh" },
525
+ { label: "Kerja", latex: "W = \\int \\vec{F} \\cdot d\\vec{r}", preview: "W = ∫F⃗·dr⃗" },
526
+ { label: "Gravitasi Newton", latex: "F = G\\frac{m_1 m_2}{r^{2}}", preview: "F = Gm₁m₂/r²" },
527
+ { label: "Hukum Coulomb", latex: "F = k\\frac{q_1 q_2}{r^{2}}", preview: "F = kq₁q₂/r²" },
528
+ { label: "Hukum Ohm", latex: "V = IR", preview: "V = IR" },
529
+ { label: "GLBB", latex: "s = v_0 t + \\frac{1}{2}at^{2}", preview: "s = v₀t + ½at²" },
530
+ { label: "Pers. Schrödinger", latex: "i\\hbar \\frac{\\partial}{\\partial t}\\Psi = \\hat{H}\\Psi", preview: "iℏ ∂Ψ/∂t = ĤΨ" },
531
+ { label: "Maxwell (Gauss)", latex: "\\nabla \\cdot \\vec{E} = \\frac{\\rho}{\\epsilon_0}", preview: "∇·E⃗ = ρ/ε₀" },
532
+ { label: "Maxwell (Faraday)", latex: "\\nabla \\times \\vec{E} = -\\frac{\\partial \\vec{B}}{\\partial t}", preview: "∇×E⃗ = -∂B⃗/∂t" },
533
+ { label: "E = mc²", latex: "E = mc^{2}", preview: "E = mc²" }
534
+ ]
535
+ },
536
+ {
537
+ name: "Geometri Analitik",
538
+ icon: "📐",
539
+ level: "Kuliah",
540
+ templates: [
541
+ { label: "Persamaan lingkaran", latex: "(x-a)^{2} + (y-b)^{2} = r^{2}", preview: "(x-a)²+(y-b)²=r²" },
542
+ { label: "Ellips", latex: "\\frac{x^2}{a^2} + \\frac{y^2}{b^2} = 1", preview: "x²/a² + y²/b² = 1" },
543
+ { label: "Hiperbola", latex: "\\frac{x^2}{a^2} - \\frac{y^2}{b^2} = 1", preview: "x²/a² - y²/b² = 1" },
544
+ { label: "Parabola", latex: "y^2 = 4ax", preview: "y² = 4ax" },
545
+ { label: "Pers. bidang", latex: "ax + by + cz = d", preview: "ax + by + cz = d" },
546
+ { label: "Pers. garis 3D", latex: "\\frac{x-x_0}{a} = \\frac{y-y_0}{b} = \\frac{z-z_0}{c}", preview: "Garis parametrik 3D" },
547
+ { label: "Jarak titik ke garis", latex: "d = \\frac{|ax_1 + by_1 + c|}{\\sqrt{a^2 + b^2}}", preview: "d = |ax₁+by₁+c|/√(a²+b²)" },
548
+ { label: "Jarak titik ke bidang", latex: "d = \\frac{|ax_0 + by_0 + cz_0 - d|}{\\sqrt{a^2 + b^2 + c^2}}", preview: "Jarak titik-bidang" },
549
+ { label: "Koordinat polar", latex: "x = r\\cos\\theta,\\quad y = r\\sin\\theta", preview: "x=rcosθ, y=rsinθ" },
550
+ { label: "Koordinat silinder", latex: "x = r\\cos\\theta,\\; y = r\\sin\\theta,\\; z = z", preview: "x=rcosθ, y=rsinθ, z=z" },
551
+ { label: "Koordinat bola", latex: "x = \\rho\\sin\\phi\\cos\\theta,\\; y = \\rho\\sin\\phi\\sin\\theta,\\; z = \\rho\\cos\\phi", preview: "x=ρsinφcosθ, y=ρsinφsinθ..." }
552
+ ]
553
+ },
554
+ {
555
+ name: "Teori Bilangan",
556
+ icon: "🔣",
557
+ level: "Kuliah",
558
+ templates: [
559
+ { label: "Modular aritmetika", latex: "a \\equiv b \\pmod{n}", preview: "a ≡ b (mod n)" },
560
+ { label: "GCD (FPB)", latex: "\\gcd(a, b)", preview: "gcd(a, b)" },
561
+ { label: "LCM (KPK)", latex: "\\text{lcm}(a, b) = \\frac{|a \\cdot b|}{\\gcd(a, b)}", preview: "lcm = |ab|/gcd" },
562
+ { label: "Teorema Euler", latex: "a^{\\phi(n)} \\equiv 1 \\pmod{n}", preview: "Teorema Euler" },
563
+ { label: "Fermat kecil", latex: "a^{p-1} \\equiv 1 \\pmod{p}", preview: "Fermat kecil" },
564
+ { label: "Binomial Newton", latex: "(a+b)^n = \\sum_{k=0}^{n} \\binom{n}{k} a^{n-k} b^{k}", preview: "Binomial Newton" },
565
+ { label: "Fibonacci", latex: "F_n = F_{n-1} + F_{n-2}", preview: "Fₙ = Fₙ₋₁ + Fₙ₋₂" },
566
+ { label: "Faktorial", latex: "n! = n \\times (n-1) \\times \\ldots \\times 1", preview: "n! = n×(n-1)×...×1" }
567
+ ]
568
+ },
569
+ {
570
+ name: "Konstanta & Satuan",
571
+ icon: "⚖️",
572
+ level: "SMA",
573
+ // And Kuliah
574
+ templates: [
575
+ { label: "Kecepatan Cahaya (c)", latex: "c = 2.998 \\times 10^8 \\text{ m/s}", preview: "c = 2.998e8 m/s" },
576
+ { label: "Konstanta Gravitasi (G)", latex: "G = 6.674 \\times 10^{-11} \\text{ m}^3\\text{kg}^{-1}\\text{s}^{-2}", preview: "G = 6.674e-11" },
577
+ { label: "Konstanta Planck (h)", latex: "h = 6.626 \\times 10^{-34} \\text{ J}\\cdot\\text{s}", preview: "h = 6.626e-34" },
578
+ { label: "Bilangan Avogadro (N_A)", latex: "N_A = 6.022 \\times 10^{23} \\text{ mol}^{-1}", preview: "Na = 6.022e23" },
579
+ { label: "Konstanta Gas (R)", latex: "R = 8.314 \\text{ J}/(\\text{mol}\\cdot\\text{K})", preview: "R = 8.314 J/molK" },
580
+ { label: "Muatan Elementer (e)", latex: "e = 1.602 \\times 10^{-19} \\text{ C}", preview: "e = 1.602e-19" },
581
+ { label: "Massa Elektron (m_e)", latex: "m_e = 9.109 \\times 10^{-31} \\text{ kg}", preview: "me = 9.109e-31" },
582
+ { label: "Percepatan Gravitasi (g)", latex: "g = 9.807 \\text{ m/s}^2", preview: "g = 9.807 m/s²" }
583
+ ]
584
+ },
585
+ {
586
+ name: "Tabel Kalkulus",
587
+ icon: "📊",
588
+ level: "Kuliah",
589
+ templates: [
590
+ { label: "Turunan x^n", latex: "\\frac{d}{dx} x^n = n x^{n-1}", preview: "(xⁿ)' = nxⁿ⁻¹" },
591
+ { label: "Turunan sin x", latex: "\\frac{d}{dx} \\sin x = \\cos x", preview: "(sin x)' = cos x" },
592
+ { label: "Turunan cos x", latex: "\\frac{d}{dx} \\cos x = -\\sin x", preview: "(cos x)' = -sin x" },
593
+ { label: "Turunan e^x", latex: "\\frac{d}{dx} e^x = e^x", preview: "(eˣ)' = eˣ" },
594
+ { label: "Turunan ln x", latex: "\\frac{d}{dx} \\ln x = \\frac{1}{x}", preview: "(ln x)' = 1/x" },
595
+ { label: "Integral x^n", latex: "\\int x^n dx = \\frac{1}{n+1} x^{n+1} + C", preview: "∫xⁿ dx = xⁿ⁺¹/(n+1)" },
596
+ { label: "Integral e^x", latex: "\\int e^x dx = e^x + C", preview: "∫eˣ dx = eˣ + C" },
597
+ { label: "Integral 1/x", latex: "\\int \\frac{1}{x} dx = \\ln |x| + C", preview: "∫1/x dx = ln|x|" },
598
+ { label: "Integral sin x", latex: "\\int \\sin x dx = -\\cos x + C", preview: "∫sin x dx = -cos x" },
599
+ { label: "Integral cos x", latex: "\\int \\cos x dx = \\sin x + C", preview: "∫cos x dx = sin x" }
600
+ ]
601
+ }
602
+ ], P = [
603
+ { id: "all", label: "Semua Level", icon: "📚" },
604
+ { id: "SD", label: "SD", icon: "🏫" },
605
+ { id: "SMP", label: "SMP", icon: "🏫" },
606
+ { id: "SMA", label: "SMA", icon: "🏫" },
607
+ { id: "Kuliah", label: "Kuliah", icon: "🎓" },
608
+ { id: "Master", label: "Master", icon: "🧪" }
609
+ ];
610
+ function y({ onInsert: u, onClose: b }) {
611
+ const [t, f] = p(""), [r, g] = p("all"), [c, m] = p(""), n = k(() => {
612
+ let e = w;
613
+ if (r !== "all" && (e = e.filter((a) => a.level === r)), t.trim()) {
614
+ const a = t.toLowerCase();
615
+ e = e.map((x) => ({
616
+ ...x,
617
+ templates: x.templates.filter(
618
+ (s) => s.label.toLowerCase().includes(a) || s.preview.toLowerCase().includes(a) || s.desc && s.desc.toLowerCase().includes(a)
619
+ )
620
+ })).filter((x) => x.templates.length > 0);
621
+ }
622
+ return e;
623
+ }, [t, r]), v = n.map((e) => e.name), o = v.includes(c) ? c : v[0] || "", d = t.trim() ? n : n.filter((e) => e.name === o), _ = w.reduce((e, a) => e + a.templates.length, 0);
624
+ return /* @__PURE__ */ i("div", { className: "mtx-template-panel", role: "dialog", "aria-label": "Template Panel", children: [
625
+ /* @__PURE__ */ i("div", { className: "mtx-template-panel__header", children: [
626
+ /* @__PURE__ */ i("span", { className: "mtx-template-panel__title", children: [
627
+ "📋 Template Rumus (",
628
+ _,
629
+ " template)"
630
+ ] }),
631
+ /* @__PURE__ */ l("button", { className: "mtx-template-panel__close", onClick: b, title: "Tutup", children: "×" })
632
+ ] }),
633
+ /* @__PURE__ */ l("div", { className: "mtx-template-panel__levels", children: P.map((e) => /* @__PURE__ */ i(
634
+ "button",
635
+ {
636
+ className: `mtx-template-panel__level ${r === e.id ? "is-active" : ""}`,
637
+ onClick: () => {
638
+ g(e.id), m("");
639
+ },
640
+ children: [
641
+ /* @__PURE__ */ l("span", { children: e.icon }),
642
+ " ",
643
+ e.label
644
+ ]
645
+ },
646
+ e.id
647
+ )) }),
648
+ /* @__PURE__ */ l(
649
+ "input",
650
+ {
651
+ className: "mtx-template-panel__search",
652
+ type: "text",
653
+ placeholder: "Cari template... (cth: kuadrat, integral, luas, pH)",
654
+ value: t,
655
+ onChange: (e) => f(e.target.value),
656
+ autoFocus: !0
657
+ }
658
+ ),
659
+ /* @__PURE__ */ i("div", { className: "mtx-template-panel__body", children: [
660
+ !t.trim() && /* @__PURE__ */ l("div", { className: "mtx-template-panel__tabs", children: n.map((e) => /* @__PURE__ */ i(
661
+ "button",
662
+ {
663
+ className: `mtx-template-panel__tab ${o === e.name ? "is-active" : ""}`,
664
+ onClick: () => m(e.name),
665
+ title: `${e.name} (${e.level})`,
666
+ children: [
667
+ /* @__PURE__ */ l("span", { className: "mtx-template-panel__tab-icon", children: e.icon }),
668
+ /* @__PURE__ */ l("span", { className: "mtx-template-panel__tab-label", children: e.name }),
669
+ /* @__PURE__ */ l("span", { className: "mtx-template-panel__tab-badge", children: e.level })
670
+ ]
671
+ },
672
+ e.name
673
+ )) }),
674
+ /* @__PURE__ */ i("div", { className: "mtx-template-panel__content", children: [
675
+ d.length === 0 && /* @__PURE__ */ i("div", { className: "mtx-template-panel__empty", children: [
676
+ 'Tidak ditemukan template untuk "',
677
+ t,
678
+ '"'
679
+ ] }),
680
+ d.map((e) => /* @__PURE__ */ i("div", { className: "mtx-template-panel__group", children: [
681
+ t.trim() && /* @__PURE__ */ i("div", { className: "mtx-template-panel__group-title", children: [
682
+ e.icon,
683
+ " ",
684
+ e.name,
685
+ " ",
686
+ /* @__PURE__ */ l("span", { className: "mtx-template-panel__group-level", children: e.level })
687
+ ] }),
688
+ /* @__PURE__ */ l("div", { className: "mtx-template-panel__grid", children: e.templates.map((a) => /* @__PURE__ */ i(
689
+ "button",
690
+ {
691
+ className: "mtx-template-card",
692
+ onClick: () => {
693
+ u(a.latex), b();
694
+ },
695
+ title: a.desc || a.label,
696
+ children: [
697
+ /* @__PURE__ */ l("span", { className: "mtx-template-card__preview", children: a.preview }),
698
+ /* @__PURE__ */ l("span", { className: "mtx-template-card__label", children: a.label })
699
+ ]
700
+ },
701
+ a.latex
702
+ )) })
703
+ ] }, e.name))
704
+ ] })
705
+ ] })
706
+ ] });
707
+ }
708
+ export {
709
+ y as TemplatePanel
710
+ };