@inkbrick/react 0.0.0-stage → 0.1.0-alpha.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/dist/FormulaPalette-WFRPRHS5.js +320 -0
- package/dist/FormulaPalette-WFRPRHS5.js.map +1 -0
- package/dist/chunk-TPUX4C45.js +2309 -0
- package/dist/chunk-TPUX4C45.js.map +1 -0
- package/dist/index.d.ts +1431 -0
- package/dist/index.js +4880 -0
- package/dist/index.js.map +1 -0
- package/dist/mathCss-FLPE6QBM.js +361 -0
- package/dist/mathCss-FLPE6QBM.js.map +1 -0
- package/package.json +46 -3
- package/src/block-handle/BlockHandleController.ts +93 -0
- package/src/block-handle/BlockHandleHost.tsx +108 -0
- package/src/block-handle/DefaultBlockHandle.tsx +71 -0
- package/src/block-handle/DefaultBlockMenu.tsx +114 -0
- package/src/block-handle/DropIndicatorHost.tsx +58 -0
- package/src/block-handle/actions.tsx +146 -0
- package/src/block-handle/blockDrag.ts +215 -0
- package/src/block-handle/geometry.ts +64 -0
- package/src/block-handle/gripGesture.ts +108 -0
- package/src/block-handle/types.ts +65 -0
- package/src/block-handle/useBlockDrag.ts +21 -0
- package/src/block-handle/useBlockHandles.ts +125 -0
- package/src/blocks/BlockChildren.tsx +17 -0
- package/src/blocks/BlockProps.ts +5 -0
- package/src/blocks/CalloutBlock.tsx +61 -0
- package/src/blocks/CodeBlock.tsx +96 -0
- package/src/blocks/DividerBlock.tsx +15 -0
- package/src/blocks/Editable.tsx +84 -0
- package/src/blocks/FormulaBlock.tsx +173 -0
- package/src/blocks/HeadingBlock.tsx +22 -0
- package/src/blocks/ImageBlock.tsx +362 -0
- package/src/blocks/ListBlock.tsx +86 -0
- package/src/blocks/NoteBlock.tsx +10 -0
- package/src/blocks/PageBlock.tsx +10 -0
- package/src/blocks/ParagraphBlock.tsx +20 -0
- package/src/blocks/QuoteBlock.tsx +18 -0
- package/src/blocks/UnknownBlockView.tsx +27 -0
- package/src/blocks/defineBlock.ts +49 -0
- package/src/clipboard/html/blocks.ts +379 -0
- package/src/clipboard/html/inline.ts +92 -0
- package/src/clipboard/html/style.ts +92 -0
- package/src/clipboard/html/tags.ts +77 -0
- package/src/clipboard/htmlToFragment.ts +41 -0
- package/src/clipboard/useClipboard.ts +296 -0
- package/src/code/highlight.ts +56 -0
- package/src/code/languages.ts +236 -0
- package/src/code/scan/css.ts +164 -0
- package/src/code/scan/generic.ts +328 -0
- package/src/code/scan/html.ts +129 -0
- package/src/code/scan/markdown.ts +58 -0
- package/src/code/scan/shared.ts +81 -0
- package/src/code/scan/yaml.ts +34 -0
- package/src/code/types.ts +34 -0
- package/src/context/EditorContext.ts +9 -0
- package/src/context/EditorProvider.tsx +172 -0
- package/src/controllers/adapters.tsx +63 -0
- package/src/editing/BlockSelectionController.ts +27 -0
- package/src/editing/CaretController.ts +27 -0
- package/src/editing/EditorView.ts +108 -0
- package/src/editing/ViewportController.ts +63 -0
- package/src/editing/beforeInput.ts +276 -0
- package/src/editing/deleteAtBoundary.ts +16 -0
- package/src/editing/inputActions.ts +109 -0
- package/src/editing/renderCode.ts +69 -0
- package/src/editing/renderInline.ts +144 -0
- package/src/editing/selection.ts +262 -0
- package/src/editing/useEditorInput.ts +223 -0
- package/src/editing/useSelectionState.ts +46 -0
- package/src/formula/FormulaController.ts +51 -0
- package/src/formula/FormulaPalette.tsx +79 -0
- package/src/formula/FormulaPopover.tsx +181 -0
- package/src/formula/LazyFormulaPalette.tsx +42 -0
- package/src/formula/actions.ts +138 -0
- package/src/formula/snippet.ts +70 -0
- package/src/formula/symbols.ts +264 -0
- package/src/hooks/useBlock.ts +21 -0
- package/src/hooks/useBlockController.ts +30 -0
- package/src/hooks/useChildren.ts +16 -0
- package/src/hooks/useDocument.ts +16 -0
- package/src/hooks/useEditor.ts +13 -0
- package/src/hooks/useEditorView.ts +13 -0
- package/src/hooks/useHistory.ts +46 -0
- package/src/hooks/useReadOnly.ts +21 -0
- package/src/hooks/useT.ts +10 -0
- package/src/i18n/en.ts +182 -0
- package/src/i18n/ru.ts +174 -0
- package/src/i18n/translate.ts +77 -0
- package/src/icons/ICONS_LICENSE.md +50 -0
- package/src/icons/Icon.tsx +41 -0
- package/src/icons/lucide.ts +234 -0
- package/src/images/ImageError.ts +39 -0
- package/src/images/UploadTracker.ts +49 -0
- package/src/images/insertImages.ts +142 -0
- package/src/images/types.ts +22 -0
- package/src/images/upload.ts +62 -0
- package/src/index.ts +102 -0
- package/src/keymap/defaultKeymap.ts +189 -0
- package/src/keymap/keymap.ts +42 -0
- package/src/keymap/shortcut.ts +105 -0
- package/src/keymap/types.ts +40 -0
- package/src/math/FormulaView.tsx +62 -0
- package/src/math/mathCss.ts +4 -0
- package/src/math/renderer.ts +198 -0
- package/src/registry/defaultBlockComponents.ts +26 -0
- package/src/registry/resolveBlockComponent.ts +14 -0
- package/src/renderer/BlockRenderer.tsx +63 -0
- package/src/renderer/DocumentRenderer.tsx +33 -0
- package/src/renderer/DocumentView.tsx +94 -0
- package/src/renderer/virtual/VirtualChildList.tsx +355 -0
- package/src/renderer/virtual/estimate.ts +62 -0
- package/src/renderer/virtual/virtualRenderer.tsx +35 -0
- package/src/slash/DefaultSlashMenu.tsx +119 -0
- package/src/slash/SlashMenuController.ts +66 -0
- package/src/slash/SlashMenuHost.tsx +48 -0
- package/src/slash/applySlashItem.ts +57 -0
- package/src/slash/defaultSlashItems.tsx +186 -0
- package/src/slash/filter.ts +29 -0
- package/src/slash/items.ts +30 -0
- package/src/slash/syncSlashMenu.ts +67 -0
- package/src/slash/types.ts +21 -0
- package/src/toolbar/DefaultToolbar.tsx +281 -0
- package/src/toolbar/ToolbarController.ts +100 -0
- package/src/toolbar/ToolbarHost.tsx +81 -0
- package/src/toolbar/formatting.ts +75 -0
- package/src/toolbar/rich.ts +58 -0
- package/src/toolbar/syncToolbar.ts +39 -0
- package/src/toolbar/types.ts +21 -0
- package/src/ui/EditorUIContext.ts +26 -0
- package/src/ui/presentation.ts +24 -0
- package/src/ui/types.ts +70 -0
- package/README.md +0 -3
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CARET,
|
|
3
|
+
useT
|
|
4
|
+
} from "./chunk-TPUX4C45.js";
|
|
5
|
+
|
|
6
|
+
// src/formula/FormulaPalette.tsx
|
|
7
|
+
import { useState } from "react";
|
|
8
|
+
|
|
9
|
+
// src/formula/symbols.ts
|
|
10
|
+
var sym = (label, command) => ({ label, snippet: `${command} ` });
|
|
11
|
+
var greek = (names) => names.map(([label, name]) => sym(label, `\\${name}`));
|
|
12
|
+
var fn = (name, label = name) => ({ label, snippet: `\\${name}(${CARET})` });
|
|
13
|
+
var SYMBOL_CATEGORIES = [
|
|
14
|
+
{
|
|
15
|
+
id: "functions",
|
|
16
|
+
icon: "sin",
|
|
17
|
+
items: [
|
|
18
|
+
fn("sin"),
|
|
19
|
+
fn("cos"),
|
|
20
|
+
fn("tan"),
|
|
21
|
+
fn("cot"),
|
|
22
|
+
fn("sec"),
|
|
23
|
+
fn("csc"),
|
|
24
|
+
fn("arcsin", "asin"),
|
|
25
|
+
fn("arccos", "acos"),
|
|
26
|
+
fn("arctan", "atan"),
|
|
27
|
+
fn("sinh"),
|
|
28
|
+
fn("cosh"),
|
|
29
|
+
fn("tanh"),
|
|
30
|
+
fn("log"),
|
|
31
|
+
fn("ln"),
|
|
32
|
+
fn("exp"),
|
|
33
|
+
{ label: "log\u208D\u2099\u208E", snippet: `\\log_{${CARET}}`, title: "\\log_{ }" },
|
|
34
|
+
{ label: "lim", snippet: `\\lim_{${CARET} \\to \\infty}` },
|
|
35
|
+
fn("max"),
|
|
36
|
+
fn("min"),
|
|
37
|
+
fn("det"),
|
|
38
|
+
fn("gcd"),
|
|
39
|
+
fn("arg"),
|
|
40
|
+
fn("deg"),
|
|
41
|
+
{ label: "mod", snippet: "\\bmod " }
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
id: "structures",
|
|
46
|
+
icon: "a/b",
|
|
47
|
+
items: [
|
|
48
|
+
{ label: "a/b", snippet: `\\frac{${CARET}}{ }`, title: "\\frac{ }{ }" },
|
|
49
|
+
{ label: "\u221A", snippet: `\\sqrt{${CARET}}` },
|
|
50
|
+
{ label: "\u207F\u221A", snippet: `\\sqrt[n]{${CARET}}` },
|
|
51
|
+
{ label: "x\u207F", snippet: `^{${CARET}}`, title: "^{ }" },
|
|
52
|
+
{ label: "x\u2099", snippet: `_{${CARET}}`, title: "_{ }" },
|
|
53
|
+
{ label: "x\u2099\u207F", snippet: `_{${CARET}}^{ }` },
|
|
54
|
+
{ label: "\u2211", snippet: `\\sum_{i=1}^{n} ${CARET}`, title: "\\sum_{i=1}^{n}" },
|
|
55
|
+
{ label: "\u220F", snippet: `\\prod_{i=1}^{n} ${CARET}`, title: "\\prod_{i=1}^{n}" },
|
|
56
|
+
{ label: "\u222B", snippet: `\\int_{a}^{b} ${CARET} \\, dx`, title: "\\int_{a}^{b} \\, dx" },
|
|
57
|
+
{ label: "\u222C", snippet: `\\iint ${CARET} \\, dA` },
|
|
58
|
+
{ label: "\u222E", snippet: `\\oint ${CARET} \\, d\\ell` },
|
|
59
|
+
{ label: "\u207F\u2044\u2096", snippet: `\\binom{n}{k}` },
|
|
60
|
+
{ label: "(a)", snippet: `\\left( ${CARET} \\right)`, title: "\\left( \\right)" },
|
|
61
|
+
{ label: "[a]", snippet: `\\left[ ${CARET} \\right]`, title: "\\left[ \\right]" },
|
|
62
|
+
{ label: "{a}", snippet: `\\left\\{ ${CARET} \\right\\}`, title: "\\left\\{ \\right\\}" },
|
|
63
|
+
{ label: "|a|", snippet: `\\left| ${CARET} \\right|`, title: "\\left| \\right|" },
|
|
64
|
+
{ label: "\u2016a\u2016", snippet: `\\left\\| ${CARET} \\right\\|`, title: "\\left\\| \\right\\|" },
|
|
65
|
+
{ label: "\u230Aa\u230B", snippet: `\\lfloor ${CARET} \\rfloor` },
|
|
66
|
+
{ label: "\u2308a\u2309", snippet: `\\lceil ${CARET} \\rceil` },
|
|
67
|
+
{ label: "v\u20D7", snippet: `\\vec{${CARET}}` },
|
|
68
|
+
{ label: "\u0101", snippet: `\\bar{${CARET}}` },
|
|
69
|
+
{ label: "\xE2", snippet: `\\hat{${CARET}}` },
|
|
70
|
+
{ label: "\u0227", snippet: `\\dot{${CARET}}` },
|
|
71
|
+
{ label: "a\u035Eb", snippet: `\\overline{${CARET}}` },
|
|
72
|
+
{
|
|
73
|
+
label: "(\u22EE)",
|
|
74
|
+
snippet: `\\begin{pmatrix} ${CARET} & \\\\ & \\end{pmatrix}`,
|
|
75
|
+
title: "pmatrix"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
label: "[\u22EE]",
|
|
79
|
+
snippet: `\\begin{bmatrix} ${CARET} & \\\\ & \\end{bmatrix}`,
|
|
80
|
+
title: "bmatrix"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
label: "{\u22EE",
|
|
84
|
+
snippet: `\\begin{cases} ${CARET} & \\text{if } \\\\ & \\text{otherwise} \\end{cases}`,
|
|
85
|
+
title: "cases"
|
|
86
|
+
},
|
|
87
|
+
{ label: "text", snippet: `\\text{${CARET}}` }
|
|
88
|
+
]
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
id: "greek",
|
|
92
|
+
icon: "\u03B1\u03B2",
|
|
93
|
+
items: [
|
|
94
|
+
...greek([
|
|
95
|
+
["\u03B1", "alpha"],
|
|
96
|
+
["\u03B2", "beta"],
|
|
97
|
+
["\u03B3", "gamma"],
|
|
98
|
+
["\u03B4", "delta"],
|
|
99
|
+
["\u03B5", "epsilon"],
|
|
100
|
+
["\u03B6", "zeta"],
|
|
101
|
+
["\u03B7", "eta"],
|
|
102
|
+
["\u03B8", "theta"],
|
|
103
|
+
["\u03B9", "iota"],
|
|
104
|
+
["\u03BA", "kappa"],
|
|
105
|
+
["\u03BB", "lambda"],
|
|
106
|
+
["\u03BC", "mu"],
|
|
107
|
+
["\u03BD", "nu"],
|
|
108
|
+
["\u03BE", "xi"],
|
|
109
|
+
["\u03C0", "pi"],
|
|
110
|
+
["\u03C1", "rho"],
|
|
111
|
+
["\u03C3", "sigma"],
|
|
112
|
+
["\u03C4", "tau"],
|
|
113
|
+
["\u03C5", "upsilon"],
|
|
114
|
+
["\u03C6", "phi"],
|
|
115
|
+
["\u03C7", "chi"],
|
|
116
|
+
["\u03C8", "psi"],
|
|
117
|
+
["\u03C9", "omega"],
|
|
118
|
+
["\u03F5", "varepsilon"],
|
|
119
|
+
["\u03D1", "vartheta"],
|
|
120
|
+
["\u03D5", "varphi"],
|
|
121
|
+
["\u03F1", "varrho"],
|
|
122
|
+
["\u03C2", "varsigma"],
|
|
123
|
+
["\u0393", "Gamma"],
|
|
124
|
+
["\u0394", "Delta"],
|
|
125
|
+
["\u0398", "Theta"],
|
|
126
|
+
["\u039B", "Lambda"],
|
|
127
|
+
["\u039E", "Xi"],
|
|
128
|
+
["\u03A0", "Pi"],
|
|
129
|
+
["\u03A3", "Sigma"],
|
|
130
|
+
["\u03A6", "Phi"],
|
|
131
|
+
["\u03A8", "Psi"],
|
|
132
|
+
["\u03A9", "Omega"]
|
|
133
|
+
])
|
|
134
|
+
]
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
id: "operators",
|
|
138
|
+
icon: "\xB1",
|
|
139
|
+
items: [
|
|
140
|
+
sym("\xB1", "\\pm"),
|
|
141
|
+
sym("\u2213", "\\mp"),
|
|
142
|
+
sym("\xD7", "\\times"),
|
|
143
|
+
sym("\xF7", "\\div"),
|
|
144
|
+
sym("\xB7", "\\cdot"),
|
|
145
|
+
sym("\u2217", "\\ast"),
|
|
146
|
+
sym("\u2218", "\\circ"),
|
|
147
|
+
sym("\u2295", "\\oplus"),
|
|
148
|
+
sym("\u2297", "\\otimes"),
|
|
149
|
+
sym("\u221E", "\\infty"),
|
|
150
|
+
sym("\u2202", "\\partial"),
|
|
151
|
+
sym("\u2207", "\\nabla"),
|
|
152
|
+
sym("\u2032", "'"),
|
|
153
|
+
sym("\xB0", "^\\circ"),
|
|
154
|
+
sym("\u2113", "\\ell"),
|
|
155
|
+
sym("\u210F", "\\hbar"),
|
|
156
|
+
sym("\u2026", "\\ldots"),
|
|
157
|
+
sym("\u22EF", "\\cdots"),
|
|
158
|
+
sym("\u22EE", "\\vdots"),
|
|
159
|
+
sym("\u22F1", "\\ddots"),
|
|
160
|
+
sym("\u2020", "\\dagger"),
|
|
161
|
+
sym("%", "\\%"),
|
|
162
|
+
sym("\u2220", "\\angle"),
|
|
163
|
+
sym("\u25B3", "\\triangle")
|
|
164
|
+
]
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
id: "relations",
|
|
168
|
+
icon: "\u2264",
|
|
169
|
+
items: [
|
|
170
|
+
sym("\u2260", "\\neq"),
|
|
171
|
+
sym("\u2248", "\\approx"),
|
|
172
|
+
sym("\u2261", "\\equiv"),
|
|
173
|
+
sym("\u223C", "\\sim"),
|
|
174
|
+
sym("\u2243", "\\simeq"),
|
|
175
|
+
sym("\u2245", "\\cong"),
|
|
176
|
+
sym("\u221D", "\\propto"),
|
|
177
|
+
sym("\u2264", "\\leq"),
|
|
178
|
+
sym("\u2265", "\\geq"),
|
|
179
|
+
sym("\u226A", "\\ll"),
|
|
180
|
+
sym("\u226B", "\\gg"),
|
|
181
|
+
sym("<", "<"),
|
|
182
|
+
sym(">", ">"),
|
|
183
|
+
sym("\u2208", "\\in"),
|
|
184
|
+
sym("\u2209", "\\notin"),
|
|
185
|
+
sym("\u220B", "\\ni"),
|
|
186
|
+
sym("\u2282", "\\subset"),
|
|
187
|
+
sym("\u2286", "\\subseteq"),
|
|
188
|
+
sym("\u2283", "\\supset"),
|
|
189
|
+
sym("\u2287", "\\supseteq"),
|
|
190
|
+
sym("\u2223", "\\mid"),
|
|
191
|
+
sym("\u2225", "\\parallel"),
|
|
192
|
+
sym("\u22A5", "\\perp"),
|
|
193
|
+
sym(":=", ":=")
|
|
194
|
+
]
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
id: "arrows",
|
|
198
|
+
icon: "\u2192",
|
|
199
|
+
items: [
|
|
200
|
+
sym("\u2192", "\\to"),
|
|
201
|
+
sym("\u2190", "\\leftarrow"),
|
|
202
|
+
sym("\u2194", "\\leftrightarrow"),
|
|
203
|
+
sym("\u21D2", "\\Rightarrow"),
|
|
204
|
+
sym("\u21D0", "\\Leftarrow"),
|
|
205
|
+
sym("\u21D4", "\\Leftrightarrow"),
|
|
206
|
+
sym("\u21A6", "\\mapsto"),
|
|
207
|
+
sym("\u2191", "\\uparrow"),
|
|
208
|
+
sym("\u2193", "\\downarrow"),
|
|
209
|
+
sym("\u27F6", "\\longrightarrow"),
|
|
210
|
+
sym("\u27F9", "\\Longrightarrow"),
|
|
211
|
+
sym("\u21CC", "\\rightleftharpoons"),
|
|
212
|
+
sym("\u21AA", "\\hookrightarrow"),
|
|
213
|
+
sym("\u2234", "\\therefore"),
|
|
214
|
+
sym("\u2235", "\\because"),
|
|
215
|
+
sym("\u2197", "\\nearrow"),
|
|
216
|
+
sym("\u2198", "\\searrow")
|
|
217
|
+
]
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
id: "sets",
|
|
221
|
+
icon: "\u211D",
|
|
222
|
+
items: [
|
|
223
|
+
sym("\u2205", "\\emptyset"),
|
|
224
|
+
sym("\u2115", "\\mathbb{N}"),
|
|
225
|
+
sym("\u2124", "\\mathbb{Z}"),
|
|
226
|
+
sym("\u211A", "\\mathbb{Q}"),
|
|
227
|
+
sym("\u211D", "\\mathbb{R}"),
|
|
228
|
+
sym("\u2102", "\\mathbb{C}"),
|
|
229
|
+
sym("\u222A", "\\cup"),
|
|
230
|
+
sym("\u2229", "\\cap"),
|
|
231
|
+
sym("\u2216", "\\setminus"),
|
|
232
|
+
sym("\u2200", "\\forall"),
|
|
233
|
+
sym("\u2203", "\\exists"),
|
|
234
|
+
sym("\u2204", "\\nexists"),
|
|
235
|
+
sym("\xAC", "\\neg"),
|
|
236
|
+
sym("\u2227", "\\land"),
|
|
237
|
+
sym("\u2228", "\\lor"),
|
|
238
|
+
sym("\u22A4", "\\top"),
|
|
239
|
+
sym("\u22A2", "\\vdash"),
|
|
240
|
+
sym("\u22A8", "\\models"),
|
|
241
|
+
sym("\u2135", "\\aleph"),
|
|
242
|
+
sym("\u{1D4AB}", "\\mathcal{P}"),
|
|
243
|
+
sym("\u{1D53C}", "\\mathbb{E}")
|
|
244
|
+
]
|
|
245
|
+
}
|
|
246
|
+
];
|
|
247
|
+
|
|
248
|
+
// src/formula/FormulaPalette.tsx
|
|
249
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
250
|
+
function FormulaPalette({ onInsert }) {
|
|
251
|
+
const t = useT();
|
|
252
|
+
const [active, setActive] = useState("functions");
|
|
253
|
+
const category = SYMBOL_CATEGORIES.find((item) => item.id === active) ?? SYMBOL_CATEGORIES[0];
|
|
254
|
+
const name = (id) => t(`formula.palette.${id}`);
|
|
255
|
+
return /* @__PURE__ */ jsxs(
|
|
256
|
+
"div",
|
|
257
|
+
{
|
|
258
|
+
className: "formula-palette",
|
|
259
|
+
"data-inkbrick-part": "formula-palette",
|
|
260
|
+
role: "group",
|
|
261
|
+
"aria-label": t("formula.palette.label"),
|
|
262
|
+
onMouseDown: (event) => event.preventDefault(),
|
|
263
|
+
children: [
|
|
264
|
+
/* @__PURE__ */ jsx(
|
|
265
|
+
"div",
|
|
266
|
+
{
|
|
267
|
+
className: "formula-palette__tabs",
|
|
268
|
+
"data-inkbrick-part": "formula-palette-tabs",
|
|
269
|
+
role: "tablist",
|
|
270
|
+
children: SYMBOL_CATEGORIES.map((item) => /* @__PURE__ */ jsx(
|
|
271
|
+
"button",
|
|
272
|
+
{
|
|
273
|
+
type: "button",
|
|
274
|
+
role: "tab",
|
|
275
|
+
"data-inkbrick-part": "formula-palette-tab",
|
|
276
|
+
"data-category": item.id,
|
|
277
|
+
"data-active": item.id === active || void 0,
|
|
278
|
+
"aria-selected": item.id === active,
|
|
279
|
+
"aria-label": name(item.id),
|
|
280
|
+
title: name(item.id),
|
|
281
|
+
onClick: () => setActive(item.id),
|
|
282
|
+
children: item.icon
|
|
283
|
+
},
|
|
284
|
+
item.id
|
|
285
|
+
))
|
|
286
|
+
}
|
|
287
|
+
),
|
|
288
|
+
/* @__PURE__ */ jsx(
|
|
289
|
+
"div",
|
|
290
|
+
{
|
|
291
|
+
className: "formula-palette__grid",
|
|
292
|
+
"data-inkbrick-part": "formula-palette-grid",
|
|
293
|
+
role: "tabpanel",
|
|
294
|
+
"aria-label": name(category.id),
|
|
295
|
+
children: category.items.map((item) => {
|
|
296
|
+
const code = item.title ?? item.snippet.split(CARET).join("").trim();
|
|
297
|
+
return /* @__PURE__ */ jsx(
|
|
298
|
+
"button",
|
|
299
|
+
{
|
|
300
|
+
type: "button",
|
|
301
|
+
"data-inkbrick-part": "formula-symbol",
|
|
302
|
+
"data-snippet": item.snippet,
|
|
303
|
+
"aria-label": code,
|
|
304
|
+
title: code,
|
|
305
|
+
onClick: () => onInsert(item.snippet),
|
|
306
|
+
children: item.label
|
|
307
|
+
},
|
|
308
|
+
item.snippet
|
|
309
|
+
);
|
|
310
|
+
})
|
|
311
|
+
}
|
|
312
|
+
)
|
|
313
|
+
]
|
|
314
|
+
}
|
|
315
|
+
);
|
|
316
|
+
}
|
|
317
|
+
export {
|
|
318
|
+
FormulaPalette
|
|
319
|
+
};
|
|
320
|
+
//# sourceMappingURL=FormulaPalette-WFRPRHS5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/formula/FormulaPalette.tsx","../src/formula/symbols.ts"],"sourcesContent":["import { useState } from 'react';\n\nimport type { MessageKey } from '../i18n/en';\nimport { useT } from '../hooks/useT';\nimport { CARET } from './snippet';\nimport { SYMBOL_CATEGORIES, type SymbolCategoryId } from './symbols';\n\nexport interface FormulaPaletteProps {\n readonly onInsert: (snippet: string) => void;\n}\n\n/**\n * Палитра математических символов и шаблонов: вкладки по категориям (функции, структуры, греческие буквы, операторы,\n * отношения, стрелки, множества) и сетка кнопок. Нажатие вставляет код LaTeX в поле формулы; фокус из поля не уходит.\n * Атрибуты: `data-inkbrick-part=\"formula-palette\"`, `formula-palette-tabs`, `formula-palette-grid`, `formula-symbol`.\n */\nexport function FormulaPalette({ onInsert }: FormulaPaletteProps) {\n const t = useT();\n const [active, setActive] = useState<SymbolCategoryId>('functions');\n const category = SYMBOL_CATEGORIES.find((item) => item.id === active) ?? SYMBOL_CATEGORIES[0];\n const name = (id: SymbolCategoryId) => t(`formula.palette.${id}` as MessageKey);\n\n return (\n <div\n className=\"formula-palette\"\n data-inkbrick-part=\"formula-palette\"\n role=\"group\"\n aria-label={t('formula.palette.label')}\n onMouseDown={(event) => event.preventDefault()}\n >\n <div\n className=\"formula-palette__tabs\"\n data-inkbrick-part=\"formula-palette-tabs\"\n role=\"tablist\"\n >\n {SYMBOL_CATEGORIES.map((item) => (\n <button\n key={item.id}\n type=\"button\"\n role=\"tab\"\n data-inkbrick-part=\"formula-palette-tab\"\n data-category={item.id}\n data-active={item.id === active || undefined}\n aria-selected={item.id === active}\n aria-label={name(item.id)}\n title={name(item.id)}\n onClick={() => setActive(item.id)}\n >\n {item.icon}\n </button>\n ))}\n </div>\n <div\n className=\"formula-palette__grid\"\n data-inkbrick-part=\"formula-palette-grid\"\n role=\"tabpanel\"\n aria-label={name(category.id)}\n >\n {category.items.map((item) => {\n const code = item.title ?? item.snippet.split(CARET).join('').trim();\n\n return (\n <button\n key={item.snippet}\n type=\"button\"\n data-inkbrick-part=\"formula-symbol\"\n data-snippet={item.snippet}\n aria-label={code}\n title={code}\n onClick={() => onInsert(item.snippet)}\n >\n {item.label}\n </button>\n );\n })}\n </div>\n </div>\n );\n}\n","import { CARET } from './snippet';\n\nexport { CARET };\n\nexport type SymbolCategoryId =\n 'functions' | 'structures' | 'greek' | 'operators' | 'relations' | 'arrows' | 'sets';\n\nexport interface MathSymbol {\n readonly label: string;\n readonly snippet: string;\n readonly title?: string;\n}\n\nexport interface SymbolCategory {\n readonly id: SymbolCategoryId;\n readonly icon: string;\n readonly items: readonly MathSymbol[];\n}\n\nconst sym = (label: string, command: string): MathSymbol => ({ label, snippet: `${command} ` });\n\nconst greek = (names: readonly [string, string][]): MathSymbol[] =>\n names.map(([label, name]) => sym(label, `\\\\${name}`));\n\nconst fn = (name: string, label = name): MathSymbol => ({ label, snippet: `\\\\${name}(${CARET})` });\n\n/**\n * Палитра математических символов и шаблонов для редактора формул. Это данные: код LaTeX после вставки правится\n * как обычный текст. Состав подобран из того, что поддерживает Temml/KaTeX.\n */\nexport const SYMBOL_CATEGORIES: readonly SymbolCategory[] = [\n {\n id: 'functions',\n icon: 'sin',\n items: [\n fn('sin'),\n fn('cos'),\n fn('tan'),\n fn('cot'),\n fn('sec'),\n fn('csc'),\n fn('arcsin', 'asin'),\n fn('arccos', 'acos'),\n fn('arctan', 'atan'),\n fn('sinh'),\n fn('cosh'),\n fn('tanh'),\n fn('log'),\n fn('ln'),\n fn('exp'),\n { label: 'log₍ₙ₎', snippet: `\\\\log_{${CARET}}`, title: '\\\\log_{ }' },\n { label: 'lim', snippet: `\\\\lim_{${CARET} \\\\to \\\\infty}` },\n fn('max'),\n fn('min'),\n fn('det'),\n fn('gcd'),\n fn('arg'),\n fn('deg'),\n { label: 'mod', snippet: '\\\\bmod ' },\n ],\n },\n {\n id: 'structures',\n icon: 'a/b',\n items: [\n { label: 'a/b', snippet: `\\\\frac{${CARET}}{ }`, title: '\\\\frac{ }{ }' },\n { label: '√', snippet: `\\\\sqrt{${CARET}}` },\n { label: 'ⁿ√', snippet: `\\\\sqrt[n]{${CARET}}` },\n { label: 'xⁿ', snippet: `^{${CARET}}`, title: '^{ }' },\n { label: 'xₙ', snippet: `_{${CARET}}`, title: '_{ }' },\n { label: 'xₙⁿ', snippet: `_{${CARET}}^{ }` },\n { label: '∑', snippet: `\\\\sum_{i=1}^{n} ${CARET}`, title: '\\\\sum_{i=1}^{n}' },\n { label: '∏', snippet: `\\\\prod_{i=1}^{n} ${CARET}`, title: '\\\\prod_{i=1}^{n}' },\n { label: '∫', snippet: `\\\\int_{a}^{b} ${CARET} \\\\, dx`, title: '\\\\int_{a}^{b} \\\\, dx' },\n { label: '∬', snippet: `\\\\iint ${CARET} \\\\, dA` },\n { label: '∮', snippet: `\\\\oint ${CARET} \\\\, d\\\\ell` },\n { label: 'ⁿ⁄ₖ', snippet: `\\\\binom{n}{k}` },\n { label: '(a)', snippet: `\\\\left( ${CARET} \\\\right)`, title: '\\\\left( \\\\right)' },\n { label: '[a]', snippet: `\\\\left[ ${CARET} \\\\right]`, title: '\\\\left[ \\\\right]' },\n { label: '{a}', snippet: `\\\\left\\\\{ ${CARET} \\\\right\\\\}`, title: '\\\\left\\\\{ \\\\right\\\\}' },\n { label: '|a|', snippet: `\\\\left| ${CARET} \\\\right|`, title: '\\\\left| \\\\right|' },\n { label: '‖a‖', snippet: `\\\\left\\\\| ${CARET} \\\\right\\\\|`, title: '\\\\left\\\\| \\\\right\\\\|' },\n { label: '⌊a⌋', snippet: `\\\\lfloor ${CARET} \\\\rfloor` },\n { label: '⌈a⌉', snippet: `\\\\lceil ${CARET} \\\\rceil` },\n { label: 'v⃗', snippet: `\\\\vec{${CARET}}` },\n { label: 'ā', snippet: `\\\\bar{${CARET}}` },\n { label: 'â', snippet: `\\\\hat{${CARET}}` },\n { label: 'ȧ', snippet: `\\\\dot{${CARET}}` },\n { label: 'a͞b', snippet: `\\\\overline{${CARET}}` },\n {\n label: '(⋮)',\n snippet: `\\\\begin{pmatrix} ${CARET} & \\\\\\\\ & \\\\end{pmatrix}`,\n title: 'pmatrix',\n },\n {\n label: '[⋮]',\n snippet: `\\\\begin{bmatrix} ${CARET} & \\\\\\\\ & \\\\end{bmatrix}`,\n title: 'bmatrix',\n },\n {\n label: '{⋮',\n snippet: `\\\\begin{cases} ${CARET} & \\\\text{if } \\\\\\\\ & \\\\text{otherwise} \\\\end{cases}`,\n title: 'cases',\n },\n { label: 'text', snippet: `\\\\text{${CARET}}` },\n ],\n },\n {\n id: 'greek',\n icon: 'αβ',\n items: [\n ...greek([\n ['α', 'alpha'],\n ['β', 'beta'],\n ['γ', 'gamma'],\n ['δ', 'delta'],\n ['ε', 'epsilon'],\n ['ζ', 'zeta'],\n ['η', 'eta'],\n ['θ', 'theta'],\n ['ι', 'iota'],\n ['κ', 'kappa'],\n ['λ', 'lambda'],\n ['μ', 'mu'],\n ['ν', 'nu'],\n ['ξ', 'xi'],\n ['π', 'pi'],\n ['ρ', 'rho'],\n ['σ', 'sigma'],\n ['τ', 'tau'],\n ['υ', 'upsilon'],\n ['φ', 'phi'],\n ['χ', 'chi'],\n ['ψ', 'psi'],\n ['ω', 'omega'],\n ['ϵ', 'varepsilon'],\n ['ϑ', 'vartheta'],\n ['ϕ', 'varphi'],\n ['ϱ', 'varrho'],\n ['ς', 'varsigma'],\n ['Γ', 'Gamma'],\n ['Δ', 'Delta'],\n ['Θ', 'Theta'],\n ['Λ', 'Lambda'],\n ['Ξ', 'Xi'],\n ['Π', 'Pi'],\n ['Σ', 'Sigma'],\n ['Φ', 'Phi'],\n ['Ψ', 'Psi'],\n ['Ω', 'Omega'],\n ]),\n ],\n },\n {\n id: 'operators',\n icon: '±',\n items: [\n sym('±', '\\\\pm'),\n sym('∓', '\\\\mp'),\n sym('×', '\\\\times'),\n sym('÷', '\\\\div'),\n sym('·', '\\\\cdot'),\n sym('∗', '\\\\ast'),\n sym('∘', '\\\\circ'),\n sym('⊕', '\\\\oplus'),\n sym('⊗', '\\\\otimes'),\n sym('∞', '\\\\infty'),\n sym('∂', '\\\\partial'),\n sym('∇', '\\\\nabla'),\n sym('′', \"'\"),\n sym('°', '^\\\\circ'),\n sym('ℓ', '\\\\ell'),\n sym('ℏ', '\\\\hbar'),\n sym('…', '\\\\ldots'),\n sym('⋯', '\\\\cdots'),\n sym('⋮', '\\\\vdots'),\n sym('⋱', '\\\\ddots'),\n sym('†', '\\\\dagger'),\n sym('%', '\\\\%'),\n sym('∠', '\\\\angle'),\n sym('△', '\\\\triangle'),\n ],\n },\n {\n id: 'relations',\n icon: '≤',\n items: [\n sym('≠', '\\\\neq'),\n sym('≈', '\\\\approx'),\n sym('≡', '\\\\equiv'),\n sym('∼', '\\\\sim'),\n sym('≃', '\\\\simeq'),\n sym('≅', '\\\\cong'),\n sym('∝', '\\\\propto'),\n sym('≤', '\\\\leq'),\n sym('≥', '\\\\geq'),\n sym('≪', '\\\\ll'),\n sym('≫', '\\\\gg'),\n sym('<', '<'),\n sym('>', '>'),\n sym('∈', '\\\\in'),\n sym('∉', '\\\\notin'),\n sym('∋', '\\\\ni'),\n sym('⊂', '\\\\subset'),\n sym('⊆', '\\\\subseteq'),\n sym('⊃', '\\\\supset'),\n sym('⊇', '\\\\supseteq'),\n sym('∣', '\\\\mid'),\n sym('∥', '\\\\parallel'),\n sym('⊥', '\\\\perp'),\n sym(':=', ':='),\n ],\n },\n {\n id: 'arrows',\n icon: '→',\n items: [\n sym('→', '\\\\to'),\n sym('←', '\\\\leftarrow'),\n sym('↔', '\\\\leftrightarrow'),\n sym('⇒', '\\\\Rightarrow'),\n sym('⇐', '\\\\Leftarrow'),\n sym('⇔', '\\\\Leftrightarrow'),\n sym('↦', '\\\\mapsto'),\n sym('↑', '\\\\uparrow'),\n sym('↓', '\\\\downarrow'),\n sym('⟶', '\\\\longrightarrow'),\n sym('⟹', '\\\\Longrightarrow'),\n sym('⇌', '\\\\rightleftharpoons'),\n sym('↪', '\\\\hookrightarrow'),\n sym('∴', '\\\\therefore'),\n sym('∵', '\\\\because'),\n sym('↗', '\\\\nearrow'),\n sym('↘', '\\\\searrow'),\n ],\n },\n {\n id: 'sets',\n icon: 'ℝ',\n items: [\n sym('∅', '\\\\emptyset'),\n sym('ℕ', '\\\\mathbb{N}'),\n sym('ℤ', '\\\\mathbb{Z}'),\n sym('ℚ', '\\\\mathbb{Q}'),\n sym('ℝ', '\\\\mathbb{R}'),\n sym('ℂ', '\\\\mathbb{C}'),\n sym('∪', '\\\\cup'),\n sym('∩', '\\\\cap'),\n sym('∖', '\\\\setminus'),\n sym('∀', '\\\\forall'),\n sym('∃', '\\\\exists'),\n sym('∄', '\\\\nexists'),\n sym('¬', '\\\\neg'),\n sym('∧', '\\\\land'),\n sym('∨', '\\\\lor'),\n sym('⊤', '\\\\top'),\n sym('⊢', '\\\\vdash'),\n sym('⊨', '\\\\models'),\n sym('ℵ', '\\\\aleph'),\n sym('𝒫', '\\\\mathcal{P}'),\n sym('𝔼', '\\\\mathbb{E}'),\n ],\n },\n];\n"],"mappings":"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","names":[]}
|