@barocss/math-editor 0.1.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/ADAPTERS.md +170 -0
- package/CHANGELOG.md +13 -0
- package/EMBEDDING.md +95 -0
- package/IMPLEMENTATION.md +111 -0
- package/LATEX-SCOPE.md +7 -0
- package/LICENSE +23 -0
- package/LOCALIZATION.md +97 -0
- package/README.md +151 -0
- package/RELEASING.md +31 -0
- package/ROADMAP.md +102 -0
- package/SUPPORT.md +160 -0
- package/SYMBOLS.md +96 -0
- package/VALIDATION.md +85 -0
- package/dist/core.d.ts +11 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +11 -0
- package/dist/core.js.map +1 -0
- package/dist/dom/elements.d.ts +3 -0
- package/dist/dom/elements.d.ts.map +1 -0
- package/dist/dom/elements.js +9 -0
- package/dist/dom/elements.js.map +1 -0
- package/dist/dom/toolbar.d.ts +11 -0
- package/dist/dom/toolbar.d.ts.map +1 -0
- package/dist/dom/toolbar.js +46 -0
- package/dist/dom/toolbar.js.map +1 -0
- package/dist/dom.d.ts +32 -0
- package/dist/dom.d.ts.map +1 -0
- package/dist/dom.js +581 -0
- package/dist/dom.js.map +1 -0
- package/dist/editor-labels.d.ts +9 -0
- package/dist/editor-labels.d.ts.map +1 -0
- package/dist/editor-labels.js +31 -0
- package/dist/editor-labels.js.map +1 -0
- package/dist/enter-policy.d.ts +11 -0
- package/dist/enter-policy.d.ts.map +1 -0
- package/dist/enter-policy.js +13 -0
- package/dist/enter-policy.js.map +1 -0
- package/dist/i18n.d.ts +20 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +58 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/lines.d.ts +7 -0
- package/dist/lines.d.ts.map +1 -0
- package/dist/lines.js +51 -0
- package/dist/lines.js.map +1 -0
- package/dist/locales/en.js +214 -0
- package/dist/locales/en.json +213 -0
- package/dist/locales/ko.js +214 -0
- package/dist/locales/ko.json +213 -0
- package/dist/math-editor-toolbar.d.ts +24 -0
- package/dist/math-editor-toolbar.d.ts.map +1 -0
- package/dist/math-editor-toolbar.js +21 -0
- package/dist/math-editor-toolbar.js.map +1 -0
- package/dist/math-editor.d.ts +23 -0
- package/dist/math-editor.d.ts.map +1 -0
- package/dist/math-editor.js +692 -0
- package/dist/math-editor.js.map +1 -0
- package/dist/matrix.d.ts +29 -0
- package/dist/matrix.d.ts.map +1 -0
- package/dist/matrix.js +125 -0
- package/dist/matrix.js.map +1 -0
- package/dist/model.d.ts +74 -0
- package/dist/model.d.ts.map +1 -0
- package/dist/model.js +262 -0
- package/dist/model.js.map +1 -0
- package/dist/outputs.d.ts +13 -0
- package/dist/outputs.d.ts.map +1 -0
- package/dist/outputs.js +61 -0
- package/dist/outputs.js.map +1 -0
- package/dist/range.d.ts +30 -0
- package/dist/range.d.ts.map +1 -0
- package/dist/range.js +275 -0
- package/dist/range.js.map +1 -0
- package/dist/react.d.ts +11 -0
- package/dist/react.d.ts.map +1 -0
- package/dist/react.js +20 -0
- package/dist/react.js.map +1 -0
- package/dist/session.d.ts +50 -0
- package/dist/session.d.ts.map +1 -0
- package/dist/session.js +116 -0
- package/dist/session.js.map +1 -0
- package/dist/solid.d.ts +12 -0
- package/dist/solid.d.ts.map +1 -0
- package/dist/solid.js +9 -0
- package/dist/solid.js.map +1 -0
- package/dist/suggestions.d.ts +27 -0
- package/dist/suggestions.d.ts.map +1 -0
- package/dist/suggestions.js +125 -0
- package/dist/suggestions.js.map +1 -0
- package/dist/svelte.d.ts +5 -0
- package/dist/svelte.d.ts.map +1 -0
- package/dist/svelte.js +14 -0
- package/dist/svelte.js.map +1 -0
- package/dist/symbol-browser.d.ts +8 -0
- package/dist/symbol-browser.d.ts.map +1 -0
- package/dist/symbol-browser.js +32 -0
- package/dist/symbol-browser.js.map +1 -0
- package/dist/symbols.d.ts +3 -0
- package/dist/symbols.d.ts.map +1 -0
- package/dist/symbols.js +94 -0
- package/dist/symbols.js.map +1 -0
- package/dist/templates.d.ts +16 -0
- package/dist/templates.d.ts.map +1 -0
- package/dist/templates.js +86 -0
- package/dist/templates.js.map +1 -0
- package/dist/tokens.d.ts +11 -0
- package/dist/tokens.d.ts.map +1 -0
- package/dist/tokens.js +24 -0
- package/dist/tokens.js.map +1 -0
- package/dist/vue.d.ts +5 -0
- package/dist/vue.d.ts.map +1 -0
- package/dist/vue.js +16 -0
- package/dist/vue.js.map +1 -0
- package/dist/web-component.d.ts +10 -0
- package/dist/web-component.d.ts.map +1 -0
- package/dist/web-component.js +67 -0
- package/dist/web-component.js.map +1 -0
- package/package.json +124 -0
- package/src/style.css +781 -0
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './model.js';
|
|
2
|
+
export * from './matrix.js';
|
|
3
|
+
export * from './lines.js';
|
|
4
|
+
export * from './range.js';
|
|
5
|
+
export * from './tokens.js';
|
|
6
|
+
export * from './symbols.js';
|
|
7
|
+
export * from './suggestions.js';
|
|
8
|
+
export * from './templates.js';
|
|
9
|
+
export * from './session.js';
|
|
10
|
+
export * from './i18n.js';
|
|
11
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
package/dist/core.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './model.js';
|
|
2
|
+
export * from './matrix.js';
|
|
3
|
+
export * from './lines.js';
|
|
4
|
+
export * from './range.js';
|
|
5
|
+
export * from './tokens.js';
|
|
6
|
+
export * from './symbols.js';
|
|
7
|
+
export * from './suggestions.js';
|
|
8
|
+
export * from './templates.js';
|
|
9
|
+
export * from './session.js';
|
|
10
|
+
export * from './i18n.js';
|
|
11
|
+
//# sourceMappingURL=core.js.map
|
package/dist/core.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** Shared native element factory. Text is assigned with textContent, never parsed as HTML. */
|
|
2
|
+
export declare const element: <K extends keyof HTMLElementTagNameMap>(tag: K, className?: string, text?: string) => HTMLElementTagNameMap[K];
|
|
3
|
+
//# sourceMappingURL=elements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elements.d.ts","sourceRoot":"","sources":["../../src/dom/elements.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,MAAM,qBAAqB,EAC3D,KAAK,CAAC,EACN,kBAAc,EACd,OAAO,MAAM,KACZ,qBAAqB,CAAC,CAAC,CAKzB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** Shared native element factory. Text is assigned with textContent, never parsed as HTML. */
|
|
2
|
+
export const element = (tag, className = '', text) => {
|
|
3
|
+
const node = document.createElement(tag);
|
|
4
|
+
node.className = className;
|
|
5
|
+
if (text !== undefined)
|
|
6
|
+
node.textContent = text;
|
|
7
|
+
return node;
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=elements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elements.js","sourceRoot":"","sources":["../../src/dom/elements.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,GAAM,EACN,SAAS,GAAG,EAAE,EACd,IAAa,EACa,EAAE;IAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC3B,IAAI,IAAI,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAChD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { MathSession } from '../session.js';
|
|
2
|
+
import type { StructureKind } from '../model.js';
|
|
3
|
+
export interface MathToolbarOptions {
|
|
4
|
+
kinds?: readonly StructureKind[];
|
|
5
|
+
onExecute?: () => void;
|
|
6
|
+
}
|
|
7
|
+
/** Independently mounted toolbar; the host may instead build any UI around session.execute(). */
|
|
8
|
+
export declare function mountMathToolbar(host: HTMLElement, session: MathSession, options?: MathToolbarOptions): {
|
|
9
|
+
destroy(): void;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=toolbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar.d.ts","sourceRoot":"","sources":["../../src/dom/toolbar.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,SAAS,aAAa,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AACD,iGAAiG;AACjG,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE,WAAW,EACpB,OAAO,GAAE,kBAAuB;;EA4CjC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { element } from './elements.js';
|
|
2
|
+
import { translate, mathLocaleDirection } from '../i18n.js';
|
|
3
|
+
import { mathStructures } from '../suggestions.js';
|
|
4
|
+
/** Independently mounted toolbar; the host may instead build any UI around session.execute(). */
|
|
5
|
+
export function mountMathToolbar(host, session, options = {}) {
|
|
6
|
+
const toolbar = element('div', 'me-tools');
|
|
7
|
+
host.append(toolbar);
|
|
8
|
+
const draw = () => {
|
|
9
|
+
const snapshot = session.getSnapshot(), t = (text) => translate(snapshot.locale, text);
|
|
10
|
+
toolbar.replaceChildren();
|
|
11
|
+
toolbar.setAttribute('role', 'toolbar');
|
|
12
|
+
toolbar.setAttribute('aria-label', t('toolbar.label'));
|
|
13
|
+
toolbar.dir = mathLocaleDirection(snapshot.locale);
|
|
14
|
+
for (const item of mathStructures.filter((item) => !options.kinds || options.kinds.includes(item.kind))) {
|
|
15
|
+
const button = element('button', '', `${item.glyph} ${t(item.label)}`);
|
|
16
|
+
button.type = 'button';
|
|
17
|
+
button.setAttribute('aria-label', t(item.label));
|
|
18
|
+
button.onmousedown = (event) => event.preventDefault();
|
|
19
|
+
button.onclick = () => {
|
|
20
|
+
session.execute({ type: 'structure', kind: item.kind });
|
|
21
|
+
options.onExecute?.();
|
|
22
|
+
};
|
|
23
|
+
toolbar.append(button);
|
|
24
|
+
}
|
|
25
|
+
for (const type of ['undo', 'redo']) {
|
|
26
|
+
const button = element('button', '', t(type === 'undo' ? 'history.undo' : 'history.redo'));
|
|
27
|
+
button.type = 'button';
|
|
28
|
+
button.disabled = !(type === 'undo' ? snapshot.canUndo : snapshot.canRedo);
|
|
29
|
+
button.onmousedown = (event) => event.preventDefault();
|
|
30
|
+
button.onclick = () => {
|
|
31
|
+
session.execute({ type });
|
|
32
|
+
options.onExecute?.();
|
|
33
|
+
};
|
|
34
|
+
toolbar.append(button);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const unsubscribe = session.subscribe(draw);
|
|
38
|
+
draw();
|
|
39
|
+
return {
|
|
40
|
+
destroy() {
|
|
41
|
+
unsubscribe();
|
|
42
|
+
toolbar.remove();
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=toolbar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolbar.js","sourceRoot":"","sources":["../../src/dom/toolbar.ts"],"names":[],"mappings":"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"}
|
package/dist/dom.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export { mountMathLatex, mountMathPreview, type MathOutput, type MathPreviewOptions, } from './outputs.js';
|
|
2
|
+
export { mountMathToolbar, type MathToolbarOptions } from './dom/toolbar.js';
|
|
3
|
+
import { type MathSession, type MathEditorMode } from './session.js';
|
|
4
|
+
import { type MathLocale } from './i18n.js';
|
|
5
|
+
import { type MathDocument, type StructureKind } from './model.js';
|
|
6
|
+
export interface DOMMathEditorOptions {
|
|
7
|
+
session?: MathSession;
|
|
8
|
+
/** Mount-only portal container; defaults to the nearest dialog, otherwise document.body. */
|
|
9
|
+
menuHost?: HTMLElement;
|
|
10
|
+
defaultValue?: MathDocument;
|
|
11
|
+
locale?: MathLocale;
|
|
12
|
+
mode?: MathEditorMode;
|
|
13
|
+
toolbar?: boolean | readonly StructureKind[];
|
|
14
|
+
showLineNumbers?: boolean;
|
|
15
|
+
onChange?: (document: MathDocument, latex: string) => void;
|
|
16
|
+
onExit?: (direction: -1 | 1) => void;
|
|
17
|
+
/** Default: block=newline, inline=commit. Suggestions always take priority. */
|
|
18
|
+
enterBehavior?: 'newline' | 'commit';
|
|
19
|
+
/** The host creates the next block, saves a popup, or restores its caret. No model mutation. */
|
|
20
|
+
onCommit?: (snapshot: ReturnType<MathSession['getSnapshot']>) => void;
|
|
21
|
+
/** Escape after suggestion/grid dismissal; the host decides whether to close or discard. */
|
|
22
|
+
onCancel?: () => void;
|
|
23
|
+
}
|
|
24
|
+
export interface DOMMathEditor {
|
|
25
|
+
session: MathSession;
|
|
26
|
+
focus(): void;
|
|
27
|
+
update(options: Partial<Omit<DOMMathEditorOptions, 'session' | 'defaultValue' | 'menuHost'>>): void;
|
|
28
|
+
destroy(): void;
|
|
29
|
+
}
|
|
30
|
+
/** Native DOM renderer. No React or framework runtime is imported by this module. */
|
|
31
|
+
export declare function mountMathEditor(host: HTMLElement, initial?: DOMMathEditorOptions): DOMMathEditor;
|
|
32
|
+
//# sourceMappingURL=dom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,kBAAkB,GACxB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAEL,KAAK,WAAW,EAEhB,KAAK,cAAc,EACpB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAkC,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAUL,KAAK,YAAY,EAEjB,KAAK,aAAa,EACnB,MAAM,YAAY,CAAC;AAapB,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,aAAa,EAAE,CAAC;IAC7C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3D,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IACrC,+EAA+E;IAC/E,aAAa,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IACrC,gGAAgG;IAChG,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,CAAC;IACtE,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AACD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,CACJ,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,SAAS,GAAG,cAAc,GAAG,UAAU,CAAC,CAAC,GACpF,IAAI,CAAC;IACR,OAAO,IAAI,IAAI,CAAC;CACjB;AACD,qFAAqF;AACrF,wBAAgB,eAAe,CAC7B,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,oBAAyB,GACjC,aAAa,CA4kBf"}
|