@haklex/rich-renderer-katex 0.0.65 → 0.0.67
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 +39 -21
- package/dist/KaTeXBlockEditNode.d.ts +1 -1
- package/dist/KaTeXBlockEditNode.d.ts.map +1 -1
- package/dist/KaTeXEditDecorator.d.ts +3 -3
- package/dist/KaTeXEditDecorator.d.ts.map +1 -1
- package/dist/KaTeXInlineEditNode.d.ts +1 -1
- package/dist/KaTeXInlineEditNode.d.ts.map +1 -1
- package/dist/index.mjs +203 -317
- package/dist/rich-renderer-katex.css +1 -1
- package/dist/snippets.d.ts +6 -6
- package/dist/snippets.d.ts.map +1 -1
- package/dist/styles.css.d.ts +0 -8
- package/dist/styles.css.d.ts.map +1 -1
- package/package.json +22 -17
package/README.md
CHANGED
|
@@ -1,40 +1,58 @@
|
|
|
1
1
|
# @haklex/rich-renderer-katex
|
|
2
2
|
|
|
3
|
-
KaTeX
|
|
3
|
+
KaTeX math expression edit nodes for inline and block-level mathematical typesetting.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
> **Note:** This package only provides edit nodes. Static rendering of KaTeX expressions is built into `@haklex/rich-editor` directly.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
6
8
|
|
|
7
9
|
```bash
|
|
8
|
-
pnpm add @haklex/rich-renderer-katex
|
|
10
|
+
pnpm add @haklex/rich-renderer-katex
|
|
9
11
|
```
|
|
10
12
|
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
```ts
|
|
14
|
-
export { KaTeXBlockEditNode } from './KaTeXBlockEditNode'
|
|
15
|
-
export { KaTeXInlineEditNode } from './KaTeXInlineEditNode'
|
|
16
|
-
export { KaTeXEditDecorator } from './KaTeXEditDecorator'
|
|
13
|
+
## Peer Dependencies
|
|
17
14
|
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
| Package | Version |
|
|
16
|
+
| --- | --- |
|
|
17
|
+
| `lexical` | `^0.41.0` |
|
|
18
|
+
| `@lexical/react` | `^0.41.0` |
|
|
19
|
+
| `react` | `>=19` |
|
|
20
|
+
| `react-dom` | `>=19` |
|
|
21
|
+
| `katex` | `>=0.16.0` (optional) |
|
|
20
22
|
|
|
21
|
-
##
|
|
23
|
+
## Usage
|
|
22
24
|
|
|
23
25
|
```tsx
|
|
24
26
|
import { katexEditNodes } from '@haklex/rich-renderer-katex'
|
|
25
|
-
import { RichEditor } from '@haklex/rich-editor'
|
|
26
27
|
|
|
27
|
-
|
|
28
|
+
// Register edit nodes in your editor config
|
|
29
|
+
const editorConfig = {
|
|
30
|
+
nodes: [
|
|
31
|
+
...katexEditNodes,
|
|
32
|
+
// ...other nodes
|
|
33
|
+
],
|
|
34
|
+
}
|
|
28
35
|
```
|
|
29
36
|
|
|
30
|
-
##
|
|
37
|
+
## Exports
|
|
31
38
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
### Nodes and Decorators
|
|
40
|
+
|
|
41
|
+
- `KaTeXBlockEditNode` — Edit node for block-level math expressions
|
|
42
|
+
- `KaTeXInlineEditNode` — Edit node for inline math expressions
|
|
43
|
+
- `KaTeXEditDecorator` — Shared edit decorator for KaTeX rendering
|
|
44
|
+
- `katexEditNodes` — Array of all KaTeX edit nodes for convenient registration
|
|
45
|
+
|
|
46
|
+
### Sub-path Exports
|
|
47
|
+
|
|
48
|
+
| Path | Description |
|
|
49
|
+
| --- | --- |
|
|
50
|
+
| `@haklex/rich-renderer-katex` | Full exports |
|
|
51
|
+
| `@haklex/rich-renderer-katex/style.css` | Stylesheet |
|
|
52
|
+
|
|
53
|
+
## Part of Haklex
|
|
54
|
+
|
|
55
|
+
This package is part of the [Haklex](../../README.md) rich editor ecosystem.
|
|
38
56
|
|
|
39
57
|
## License
|
|
40
58
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KaTeXBlockNode, SerializedKaTeXBlockNode } from '@haklex/rich-editor';
|
|
1
|
+
import { KaTeXBlockNode, SerializedKaTeXBlockNode } from '@haklex/rich-editor/nodes';
|
|
2
2
|
import { EditorConfig, LexicalEditor } from 'lexical';
|
|
3
3
|
import { ReactElement } from 'react';
|
|
4
4
|
export declare class KaTeXBlockEditNode extends KaTeXBlockNode {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KaTeXBlockEditNode.d.ts","sourceRoot":"","sources":["../src/KaTeXBlockEditNode.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"KaTeXBlockEditNode.d.ts","sourceRoot":"","sources":["../src/KaTeXBlockEditNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1F,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,kBAAkB,GAAG,kBAAkB;IAI1D,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,wBAAwB,GAAG,kBAAkB;IAI/E,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;CAYtE"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ReactElement } from 'react';
|
|
2
2
|
interface KaTeXEditDecoratorProps {
|
|
3
|
-
nodeKey: string;
|
|
4
|
-
equation: string;
|
|
5
|
-
displayMode: boolean;
|
|
6
3
|
children: ReactElement;
|
|
4
|
+
displayMode: boolean;
|
|
5
|
+
equation: string;
|
|
6
|
+
nodeKey: string;
|
|
7
7
|
}
|
|
8
8
|
export declare function KaTeXEditDecorator({ nodeKey, equation, displayMode, children, }: KaTeXEditDecoratorProps): import("react/jsx-runtime").JSX.Element;
|
|
9
9
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KaTeXEditDecorator.d.ts","sourceRoot":"","sources":["../src/KaTeXEditDecorator.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KaTeXEditDecorator.d.ts","sourceRoot":"","sources":["../src/KaTeXEditDecorator.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAM1C,UAAU,uBAAuB;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,GACT,EAAE,uBAAuB,2CAwWzB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { KaTeXInlineNode, SerializedKaTeXInlineNode } from '@haklex/rich-editor';
|
|
1
|
+
import { KaTeXInlineNode, SerializedKaTeXInlineNode } from '@haklex/rich-editor/nodes';
|
|
2
2
|
import { EditorConfig, LexicalEditor } from 'lexical';
|
|
3
3
|
import { ReactElement } from 'react';
|
|
4
4
|
export declare class KaTeXInlineEditNode extends KaTeXInlineNode {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KaTeXInlineEditNode.d.ts","sourceRoot":"","sources":["../src/KaTeXInlineEditNode.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"KaTeXInlineEditNode.d.ts","sourceRoot":"","sources":["../src/KaTeXInlineEditNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE5F,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,qBAAa,mBAAoB,SAAQ,eAAe;IACtD,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,mBAAmB,GAAG,mBAAmB;IAI5D,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,yBAAyB,GAAG,mBAAmB;IAIjF,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;CAYtE"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { $isKaTeXInlineNode, $isKaTeXBlockNode,
|
|
1
|
+
import { $isKaTeXInlineNode, $isKaTeXBlockNode, KaTeXBlockNode, KaTeXInlineNode } from "@haklex/rich-editor/nodes";
|
|
2
|
+
import { KaTeXRenderer, createRendererDecoration } from "@haklex/rich-editor/renderers";
|
|
2
3
|
import { useState, useRef, useCallback, useEffect, useMemo, createElement } from "react";
|
|
3
4
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
4
|
-
import { Popover, PopoverTrigger, PopoverPanel, AnimatedTabs } from "@haklex/rich-editor-ui";
|
|
5
|
+
import { Popover, PopoverTrigger, PopoverPanel, AnimatedTabs, ActionButton, ActionBar } from "@haklex/rich-editor-ui";
|
|
5
6
|
import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
|
|
6
7
|
import { $getNodeByKey } from "lexical";
|
|
7
8
|
import { Terminal, Trash2, Check, Copy, RotateCcw, Search } from "lucide-react";
|
|
8
|
-
var semanticClassNames = { editWrapper: "rich-katex-edit-wrapper", panel: "rich-katex-editor-panel", header: "rich-katex-editor-header", headerLeft: "rich-katex-editor-header-left", iconWrap: "rich-katex-editor-icon-wrap", title: "rich-katex-editor-title", headerRight: "rich-katex-editor-header-right", mode: "rich-katex-editor-mode", deleteButton: "rich-katex-editor-delete", tabs: "rich-katex-editor-tabs", bodyScrollArea: "rich-katex-editor-body-scroll-area", body: "rich-katex-editor-body", field: "rich-katex-editor-field", label: "rich-katex-editor-label", inputWrap: "rich-katex-editor-input-wrap", textarea: "rich-katex-editor-textarea", inputActions: "rich-katex-editor-input-actions",
|
|
9
|
+
var semanticClassNames = { editWrapper: "rich-katex-edit-wrapper", panel: "rich-katex-editor-panel", header: "rich-katex-editor-header", headerLeft: "rich-katex-editor-header-left", iconWrap: "rich-katex-editor-icon-wrap", title: "rich-katex-editor-title", headerRight: "rich-katex-editor-header-right", mode: "rich-katex-editor-mode", deleteButton: "rich-katex-editor-delete", tabs: "rich-katex-editor-tabs", bodyScrollArea: "rich-katex-editor-body-scroll-area", body: "rich-katex-editor-body", field: "rich-katex-editor-field", label: "rich-katex-editor-label", inputWrap: "rich-katex-editor-input-wrap", textarea: "rich-katex-editor-textarea", inputActions: "rich-katex-editor-input-actions", preview: "rich-katex-editor-preview", previewEmpty: "rich-katex-editor-preview-empty", snippetSearchWrap: "rich-katex-editor-snippet-search-wrap", snippetSearchIcon: "rich-katex-editor-snippet-search-icon", snippetSearchInput: "rich-katex-editor-snippet-search-input", snippetGroups: "rich-katex-editor-snippet-groups", snippetGroup: "rich-katex-editor-snippet-group", snippetGroupLabel: "rich-katex-editor-snippet-group-label", snippetList: "rich-katex-editor-snippet-list", snippetButton: "rich-katex-editor-snippet-button", snippetMeta: "rich-katex-editor-snippet-meta", snippetName: "rich-katex-editor-snippet-name", snippetHint: "rich-katex-editor-snippet-hint", snippetPreview: "rich-katex-editor-snippet-preview", snippetsPlaceholder: "rich-katex-editor-snippets-placeholder", footer: "rich-katex-editor-footer", charCount: "rich-katex-editor-charcount" };
|
|
9
10
|
var editWrapper = "mkenhu0";
|
|
10
11
|
var panel = "mkenhu1";
|
|
11
12
|
var header = "mkenhu2";
|
|
@@ -23,27 +24,23 @@ var label = "mkenhud";
|
|
|
23
24
|
var inputWrap = "mkenhue";
|
|
24
25
|
var textarea = "mkenhuf";
|
|
25
26
|
var inputActions = "mkenhug";
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
var
|
|
29
|
-
var
|
|
30
|
-
var
|
|
31
|
-
var
|
|
32
|
-
var
|
|
33
|
-
var
|
|
34
|
-
var
|
|
35
|
-
var
|
|
36
|
-
var
|
|
37
|
-
var
|
|
38
|
-
var
|
|
39
|
-
var
|
|
40
|
-
var
|
|
41
|
-
var
|
|
42
|
-
var
|
|
43
|
-
var charCount = "mkenhuy";
|
|
44
|
-
var footerActions = "mkenhuz";
|
|
45
|
-
var footerButton = "mkenhu10";
|
|
46
|
-
var footerButtonPrimary = "mkenhu11";
|
|
27
|
+
var preview = "mkenhuh";
|
|
28
|
+
var previewEmpty = "mkenhui";
|
|
29
|
+
var snippetSearchWrap = "mkenhuj";
|
|
30
|
+
var snippetSearchIcon = "mkenhuk";
|
|
31
|
+
var snippetSearchInput = "mkenhul";
|
|
32
|
+
var snippetGroups = "mkenhum";
|
|
33
|
+
var snippetGroup = "mkenhun";
|
|
34
|
+
var snippetGroupLabel = "mkenhuo";
|
|
35
|
+
var snippetList = "mkenhup";
|
|
36
|
+
var snippetButton = "mkenhuq";
|
|
37
|
+
var snippetMeta = "mkenhur";
|
|
38
|
+
var snippetName = "mkenhus";
|
|
39
|
+
var snippetHint = "mkenhut";
|
|
40
|
+
var snippetPreview = "mkenhuu";
|
|
41
|
+
var snippetsPlaceholder = "mkenhuv";
|
|
42
|
+
var footer = "mkenhuw";
|
|
43
|
+
var charCount = "mkenhux";
|
|
47
44
|
const CURSOR_TOKEN = "__cursor__";
|
|
48
45
|
const katexSnippets = [
|
|
49
46
|
{
|
|
@@ -140,12 +137,7 @@ function insertSnippetAtSelection(value, template, selectionStart, selectionEnd)
|
|
|
140
137
|
selectionEnd: nextCursorPosition
|
|
141
138
|
};
|
|
142
139
|
}
|
|
143
|
-
const SNIPPET_CATEGORY_ORDER = [
|
|
144
|
-
"Basic",
|
|
145
|
-
"Greek",
|
|
146
|
-
"Operators",
|
|
147
|
-
"Structures"
|
|
148
|
-
];
|
|
140
|
+
const SNIPPET_CATEGORY_ORDER = ["Basic", "Greek", "Operators", "Structures"];
|
|
149
141
|
function KaTeXEditDecorator({
|
|
150
142
|
nodeKey,
|
|
151
143
|
equation,
|
|
@@ -207,7 +199,7 @@ function KaTeXEditDecorator({
|
|
|
207
199
|
const handleCopy = useCallback(() => {
|
|
208
200
|
navigator.clipboard.writeText(value);
|
|
209
201
|
setCopied(true);
|
|
210
|
-
setTimeout(
|
|
202
|
+
setTimeout(setCopied, 2e3, false);
|
|
211
203
|
}, [value]);
|
|
212
204
|
const handleReset = useCallback(() => {
|
|
213
205
|
setValue(equation);
|
|
@@ -236,16 +228,11 @@ function KaTeXEditDecorator({
|
|
|
236
228
|
},
|
|
237
229
|
[value]
|
|
238
230
|
);
|
|
239
|
-
const filteredSnippets = useMemo(
|
|
240
|
-
() => filterKaTeXSnippets(snippetQuery),
|
|
241
|
-
[snippetQuery]
|
|
242
|
-
);
|
|
231
|
+
const filteredSnippets = useMemo(() => filterKaTeXSnippets(snippetQuery), [snippetQuery]);
|
|
243
232
|
const groupedSnippets = useMemo(
|
|
244
233
|
() => SNIPPET_CATEGORY_ORDER.map((category) => ({
|
|
245
234
|
category,
|
|
246
|
-
items: filteredSnippets.filter(
|
|
247
|
-
(snippet) => snippet.category === category
|
|
248
|
-
)
|
|
235
|
+
items: filteredSnippets.filter((snippet) => snippet.category === category)
|
|
249
236
|
})).filter((group) => group.items.length > 0),
|
|
250
237
|
[filteredSnippets]
|
|
251
238
|
);
|
|
@@ -285,331 +272,230 @@ function KaTeXEditDecorator({
|
|
|
285
272
|
/* @__PURE__ */ jsxs(
|
|
286
273
|
PopoverPanel,
|
|
287
274
|
{
|
|
275
|
+
className: `${panel} ${semanticClassNames.panel}`,
|
|
288
276
|
side: "bottom",
|
|
289
277
|
sideOffset: 8,
|
|
290
|
-
className: `${panel} ${semanticClassNames.panel}`,
|
|
291
278
|
children: [
|
|
292
279
|
/* @__PURE__ */ jsxs("div", { className: `${header} ${semanticClassNames.header}`, children: [
|
|
293
|
-
/* @__PURE__ */ jsxs(
|
|
294
|
-
"div",
|
|
295
|
-
{
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
}
|
|
311
|
-
)
|
|
312
|
-
]
|
|
313
|
-
}
|
|
314
|
-
),
|
|
315
|
-
/* @__PURE__ */ jsxs(
|
|
316
|
-
"div",
|
|
317
|
-
{
|
|
318
|
-
className: `${headerRight} ${semanticClassNames.headerRight}`,
|
|
319
|
-
children: [
|
|
320
|
-
/* @__PURE__ */ jsx(
|
|
321
|
-
"span",
|
|
322
|
-
{
|
|
323
|
-
className: `${mode} ${semanticClassNames.mode}`,
|
|
324
|
-
children: displayMode ? "Block" : "Inline"
|
|
325
|
-
}
|
|
326
|
-
),
|
|
327
|
-
/* @__PURE__ */ jsx(
|
|
328
|
-
"button",
|
|
329
|
-
{
|
|
330
|
-
className: `${deleteButton} ${semanticClassNames.deleteButton}`,
|
|
331
|
-
type: "button",
|
|
332
|
-
onClick: handleDelete,
|
|
333
|
-
title: "Delete node",
|
|
334
|
-
children: /* @__PURE__ */ jsx(Trash2, { size: 14 })
|
|
335
|
-
}
|
|
336
|
-
)
|
|
337
|
-
]
|
|
338
|
-
}
|
|
339
|
-
)
|
|
280
|
+
/* @__PURE__ */ jsxs("div", { className: `${headerLeft} ${semanticClassNames.headerLeft}`, children: [
|
|
281
|
+
/* @__PURE__ */ jsx("div", { className: `${iconWrap} ${semanticClassNames.iconWrap}`, children: /* @__PURE__ */ jsx(Terminal, { size: 12 }) }),
|
|
282
|
+
/* @__PURE__ */ jsx("span", { className: `${title} ${semanticClassNames.title}`, children: "Math Editor" })
|
|
283
|
+
] }),
|
|
284
|
+
/* @__PURE__ */ jsxs("div", { className: `${headerRight} ${semanticClassNames.headerRight}`, children: [
|
|
285
|
+
/* @__PURE__ */ jsx("span", { className: `${mode} ${semanticClassNames.mode}`, children: displayMode ? "Block" : "Inline" }),
|
|
286
|
+
/* @__PURE__ */ jsx(
|
|
287
|
+
"button",
|
|
288
|
+
{
|
|
289
|
+
className: `${deleteButton} ${semanticClassNames.deleteButton}`,
|
|
290
|
+
title: "Delete node",
|
|
291
|
+
type: "button",
|
|
292
|
+
onClick: handleDelete,
|
|
293
|
+
children: /* @__PURE__ */ jsx(Trash2, { size: 14 })
|
|
294
|
+
}
|
|
295
|
+
)
|
|
296
|
+
] })
|
|
340
297
|
] }),
|
|
341
298
|
/* @__PURE__ */ jsx(
|
|
342
299
|
AnimatedTabs,
|
|
343
300
|
{
|
|
301
|
+
className: `${tabs} ${semanticClassNames.tabs}`,
|
|
302
|
+
value: activeTab,
|
|
344
303
|
tabs: [
|
|
345
304
|
{ id: "editor", label: "Editor" },
|
|
346
305
|
{ id: "snippets", label: "Snippets" }
|
|
347
306
|
],
|
|
348
|
-
|
|
349
|
-
onChange: (id) => setActiveTab(id),
|
|
350
|
-
className: `${tabs} ${semanticClassNames.tabs}`
|
|
307
|
+
onChange: (id) => setActiveTab(id)
|
|
351
308
|
}
|
|
352
309
|
),
|
|
353
|
-
/* @__PURE__ */ jsxs(
|
|
354
|
-
"div",
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
"div",
|
|
310
|
+
/* @__PURE__ */ jsxs("div", { className: `${bodyScrollArea} ${semanticClassNames.bodyScrollArea}`, children: [
|
|
311
|
+
activeTab === "editor" && /* @__PURE__ */ jsxs("div", { className: `${body} ${semanticClassNames.body}`, children: [
|
|
312
|
+
/* @__PURE__ */ jsxs("div", { className: `${field} ${semanticClassNames.field}`, children: [
|
|
313
|
+
/* @__PURE__ */ jsx("label", { className: `${label} ${semanticClassNames.label}`, children: "LaTeX Input" }),
|
|
314
|
+
/* @__PURE__ */ jsxs("div", { className: `${inputWrap} ${semanticClassNames.inputWrap}`, children: [
|
|
315
|
+
/* @__PURE__ */ jsx(
|
|
316
|
+
"textarea",
|
|
361
317
|
{
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
ref: inputRef,
|
|
380
|
-
className: `${textarea} ${semanticClassNames.textarea}`,
|
|
381
|
-
value,
|
|
382
|
-
onChange: (e) => {
|
|
383
|
-
setValue(e.target.value);
|
|
384
|
-
syncSelection(e.target);
|
|
385
|
-
},
|
|
386
|
-
onKeyDown: handleKeyDown,
|
|
387
|
-
onSelect: (e) => syncSelection(e.currentTarget),
|
|
388
|
-
onClick: (e) => syncSelection(e.currentTarget),
|
|
389
|
-
onKeyUp: (e) => syncSelection(e.currentTarget),
|
|
390
|
-
rows: displayMode ? 4 : 3,
|
|
391
|
-
spellCheck: false,
|
|
392
|
-
autoComplete: "off",
|
|
393
|
-
autoCorrect: "off",
|
|
394
|
-
autoCapitalize: "off",
|
|
395
|
-
placeholder: "e.g. \\frac{-b \\pm \\sqrt{b^2-4ac}}{2a}"
|
|
396
|
-
}
|
|
397
|
-
),
|
|
398
|
-
/* @__PURE__ */ jsxs(
|
|
399
|
-
"div",
|
|
400
|
-
{
|
|
401
|
-
className: `${inputActions} ${semanticClassNames.inputActions}`,
|
|
402
|
-
children: [
|
|
403
|
-
/* @__PURE__ */ jsx(
|
|
404
|
-
"button",
|
|
405
|
-
{
|
|
406
|
-
className: `${actionButton} ${semanticClassNames.actionButton}`,
|
|
407
|
-
type: "button",
|
|
408
|
-
onClick: handleCopy,
|
|
409
|
-
title: "Copy LaTeX",
|
|
410
|
-
disabled: !value.trim(),
|
|
411
|
-
children: copied ? /* @__PURE__ */ jsx(Check, { size: 12, style: { color: "#22c55e" } }) : /* @__PURE__ */ jsx(Copy, { size: 12 })
|
|
412
|
-
}
|
|
413
|
-
),
|
|
414
|
-
/* @__PURE__ */ jsx(
|
|
415
|
-
"button",
|
|
416
|
-
{
|
|
417
|
-
className: `${actionButton} ${semanticClassNames.actionButton}`,
|
|
418
|
-
type: "button",
|
|
419
|
-
onClick: handleReset,
|
|
420
|
-
title: "Reset",
|
|
421
|
-
disabled: value === equation,
|
|
422
|
-
children: /* @__PURE__ */ jsx(RotateCcw, { size: 12 })
|
|
423
|
-
}
|
|
424
|
-
)
|
|
425
|
-
]
|
|
426
|
-
}
|
|
427
|
-
)
|
|
428
|
-
]
|
|
429
|
-
}
|
|
430
|
-
)
|
|
431
|
-
]
|
|
318
|
+
autoCapitalize: "off",
|
|
319
|
+
autoComplete: "off",
|
|
320
|
+
autoCorrect: "off",
|
|
321
|
+
className: `${textarea} ${semanticClassNames.textarea}`,
|
|
322
|
+
placeholder: "e.g. \\frac{-b \\pm \\sqrt{b^2-4ac}}{2a}",
|
|
323
|
+
ref: inputRef,
|
|
324
|
+
rows: displayMode ? 4 : 3,
|
|
325
|
+
spellCheck: false,
|
|
326
|
+
value,
|
|
327
|
+
onClick: (e) => syncSelection(e.currentTarget),
|
|
328
|
+
onKeyDown: handleKeyDown,
|
|
329
|
+
onKeyUp: (e) => syncSelection(e.currentTarget),
|
|
330
|
+
onSelect: (e) => syncSelection(e.currentTarget),
|
|
331
|
+
onChange: (e) => {
|
|
332
|
+
setValue(e.target.value);
|
|
333
|
+
syncSelection(e.target);
|
|
334
|
+
}
|
|
432
335
|
}
|
|
433
336
|
),
|
|
434
337
|
/* @__PURE__ */ jsxs(
|
|
435
338
|
"div",
|
|
436
339
|
{
|
|
437
|
-
className: `${
|
|
340
|
+
className: `${inputActions} ${semanticClassNames.inputActions}`,
|
|
438
341
|
children: [
|
|
439
342
|
/* @__PURE__ */ jsx(
|
|
440
|
-
|
|
343
|
+
ActionButton,
|
|
441
344
|
{
|
|
442
|
-
|
|
443
|
-
|
|
345
|
+
icon: true,
|
|
346
|
+
disabled: !value.trim(),
|
|
347
|
+
size: "sm",
|
|
348
|
+
title: "Copy LaTeX",
|
|
349
|
+
onClick: handleCopy,
|
|
350
|
+
children: copied ? /* @__PURE__ */ jsx(Check, { size: 12, style: { color: "#22c55e" } }) : /* @__PURE__ */ jsx(Copy, { size: 12 })
|
|
444
351
|
}
|
|
445
352
|
),
|
|
446
353
|
/* @__PURE__ */ jsx(
|
|
447
|
-
|
|
354
|
+
ActionButton,
|
|
448
355
|
{
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
}
|
|
456
|
-
)
|
|
356
|
+
icon: true,
|
|
357
|
+
disabled: value === equation,
|
|
358
|
+
size: "sm",
|
|
359
|
+
title: "Reset",
|
|
360
|
+
onClick: handleReset,
|
|
361
|
+
children: /* @__PURE__ */ jsx(RotateCcw, { size: 12 })
|
|
457
362
|
}
|
|
458
363
|
)
|
|
459
364
|
]
|
|
460
365
|
}
|
|
461
366
|
)
|
|
462
|
-
] })
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
367
|
+
] })
|
|
368
|
+
] }),
|
|
369
|
+
/* @__PURE__ */ jsxs("div", { className: `${field} ${semanticClassNames.field}`, children: [
|
|
370
|
+
/* @__PURE__ */ jsx("label", { className: `${label} ${semanticClassNames.label}`, children: "Preview" }),
|
|
371
|
+
/* @__PURE__ */ jsx("div", { className: `${preview} ${semanticClassNames.preview}`, children: value.trim() ? /* @__PURE__ */ jsx(KaTeXRenderer, { displayMode, equation: value }) : /* @__PURE__ */ jsx(
|
|
372
|
+
"span",
|
|
373
|
+
{
|
|
374
|
+
className: `${previewEmpty} ${semanticClassNames.previewEmpty}`,
|
|
375
|
+
children: "Enter a formula"
|
|
376
|
+
}
|
|
377
|
+
) })
|
|
378
|
+
] })
|
|
379
|
+
] }),
|
|
380
|
+
activeTab === "snippets" && /* @__PURE__ */ jsxs("div", { className: `${body} ${semanticClassNames.body}`, children: [
|
|
381
|
+
/* @__PURE__ */ jsxs(
|
|
382
|
+
"div",
|
|
383
|
+
{
|
|
384
|
+
className: `${snippetSearchWrap} ${semanticClassNames.snippetSearchWrap}`,
|
|
385
|
+
children: [
|
|
386
|
+
/* @__PURE__ */ jsx(
|
|
387
|
+
Search,
|
|
388
|
+
{
|
|
389
|
+
className: `${snippetSearchIcon} ${semanticClassNames.snippetSearchIcon}`,
|
|
390
|
+
size: 14
|
|
391
|
+
}
|
|
392
|
+
),
|
|
393
|
+
/* @__PURE__ */ jsx(
|
|
394
|
+
"input",
|
|
395
|
+
{
|
|
396
|
+
autoComplete: "off",
|
|
397
|
+
className: `${snippetSearchInput} ${semanticClassNames.snippetSearchInput}`,
|
|
398
|
+
placeholder: "Search snippets: frac, matrix, sum...",
|
|
399
|
+
type: "text",
|
|
400
|
+
value: snippetQuery,
|
|
401
|
+
onChange: (e) => setSnippetQuery(e.target.value)
|
|
402
|
+
}
|
|
403
|
+
)
|
|
404
|
+
]
|
|
405
|
+
}
|
|
406
|
+
),
|
|
407
|
+
groupedSnippets.length > 0 ? /* @__PURE__ */ jsx(
|
|
408
|
+
"div",
|
|
409
|
+
{
|
|
410
|
+
className: `${snippetGroups} ${semanticClassNames.snippetGroups}`,
|
|
411
|
+
children: groupedSnippets.map((group) => /* @__PURE__ */ jsxs(
|
|
412
|
+
"section",
|
|
466
413
|
{
|
|
467
|
-
className: `${
|
|
414
|
+
className: `${snippetGroup} ${semanticClassNames.snippetGroup}`,
|
|
468
415
|
children: [
|
|
469
416
|
/* @__PURE__ */ jsx(
|
|
470
|
-
|
|
417
|
+
"div",
|
|
471
418
|
{
|
|
472
|
-
|
|
473
|
-
|
|
419
|
+
className: `${snippetGroupLabel} ${semanticClassNames.snippetGroupLabel}`,
|
|
420
|
+
children: group.category
|
|
474
421
|
}
|
|
475
422
|
),
|
|
476
423
|
/* @__PURE__ */ jsx(
|
|
477
|
-
"
|
|
424
|
+
"div",
|
|
478
425
|
{
|
|
479
|
-
className: `${
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
onChange: (e) => setSnippetQuery(e.target.value),
|
|
483
|
-
placeholder: "Search snippets: frac, matrix, sum...",
|
|
484
|
-
autoComplete: "off"
|
|
485
|
-
}
|
|
486
|
-
)
|
|
487
|
-
]
|
|
488
|
-
}
|
|
489
|
-
),
|
|
490
|
-
groupedSnippets.length > 0 ? /* @__PURE__ */ jsx(
|
|
491
|
-
"div",
|
|
492
|
-
{
|
|
493
|
-
className: `${snippetGroups} ${semanticClassNames.snippetGroups}`,
|
|
494
|
-
children: groupedSnippets.map((group) => /* @__PURE__ */ jsxs(
|
|
495
|
-
"section",
|
|
496
|
-
{
|
|
497
|
-
className: `${snippetGroup} ${semanticClassNames.snippetGroup}`,
|
|
498
|
-
children: [
|
|
499
|
-
/* @__PURE__ */ jsx(
|
|
500
|
-
"div",
|
|
501
|
-
{
|
|
502
|
-
className: `${snippetGroupLabel} ${semanticClassNames.snippetGroupLabel}`,
|
|
503
|
-
children: group.category
|
|
504
|
-
}
|
|
505
|
-
),
|
|
506
|
-
/* @__PURE__ */ jsx(
|
|
507
|
-
"div",
|
|
426
|
+
className: `${snippetList} ${semanticClassNames.snippetList}`,
|
|
427
|
+
children: group.items.map((snippet) => /* @__PURE__ */ jsxs(
|
|
428
|
+
"button",
|
|
508
429
|
{
|
|
509
|
-
className: `${
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
430
|
+
className: `${snippetButton} ${semanticClassNames.snippetButton}`,
|
|
431
|
+
type: "button",
|
|
432
|
+
onClick: () => handleInsertSnippet(snippet.template),
|
|
433
|
+
children: [
|
|
434
|
+
/* @__PURE__ */ jsxs(
|
|
435
|
+
"div",
|
|
436
|
+
{
|
|
437
|
+
className: `${snippetMeta} ${semanticClassNames.snippetMeta}`,
|
|
438
|
+
children: [
|
|
439
|
+
/* @__PURE__ */ jsx(
|
|
440
|
+
"span",
|
|
441
|
+
{
|
|
442
|
+
className: `${snippetName} ${semanticClassNames.snippetName}`,
|
|
443
|
+
children: snippet.title
|
|
444
|
+
}
|
|
445
|
+
),
|
|
446
|
+
/* @__PURE__ */ jsx(
|
|
447
|
+
"span",
|
|
448
|
+
{
|
|
449
|
+
className: `${snippetHint} ${semanticClassNames.snippetHint}`,
|
|
450
|
+
children: snippet.template.replace(CURSOR_TOKEN, "")
|
|
451
|
+
}
|
|
452
|
+
)
|
|
453
|
+
]
|
|
454
|
+
}
|
|
455
|
+
),
|
|
456
|
+
/* @__PURE__ */ jsx(
|
|
457
|
+
"span",
|
|
458
|
+
{
|
|
459
|
+
className: `${snippetPreview} ${semanticClassNames.snippetPreview}`,
|
|
460
|
+
children: /* @__PURE__ */ jsx(
|
|
461
|
+
KaTeXRenderer,
|
|
519
462
|
{
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
/* @__PURE__ */ jsx(
|
|
523
|
-
"span",
|
|
524
|
-
{
|
|
525
|
-
className: `${snippetName} ${semanticClassNames.snippetName}`,
|
|
526
|
-
children: snippet.title
|
|
527
|
-
}
|
|
528
|
-
),
|
|
529
|
-
/* @__PURE__ */ jsx(
|
|
530
|
-
"span",
|
|
531
|
-
{
|
|
532
|
-
className: `${snippetHint} ${semanticClassNames.snippetHint}`,
|
|
533
|
-
children: snippet.template.replace(CURSOR_TOKEN, "")
|
|
534
|
-
}
|
|
535
|
-
)
|
|
536
|
-
]
|
|
537
|
-
}
|
|
538
|
-
),
|
|
539
|
-
/* @__PURE__ */ jsx(
|
|
540
|
-
"span",
|
|
541
|
-
{
|
|
542
|
-
className: `${snippetPreview} ${semanticClassNames.snippetPreview}`,
|
|
543
|
-
children: /* @__PURE__ */ jsx(
|
|
544
|
-
KaTeXRenderer,
|
|
545
|
-
{
|
|
546
|
-
equation: snippet.previewEquation,
|
|
547
|
-
displayMode: false
|
|
548
|
-
}
|
|
549
|
-
)
|
|
463
|
+
displayMode: false,
|
|
464
|
+
equation: snippet.previewEquation
|
|
550
465
|
}
|
|
551
466
|
)
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
)
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
group.category
|
|
561
|
-
))
|
|
562
|
-
}
|
|
563
|
-
) : /* @__PURE__ */ jsxs(
|
|
564
|
-
"div",
|
|
565
|
-
{
|
|
566
|
-
className: `${snippetsPlaceholder} ${semanticClassNames.snippetsPlaceholder}`,
|
|
567
|
-
children: [
|
|
568
|
-
"No snippets match “",
|
|
569
|
-
snippetQuery.trim(),
|
|
570
|
-
"”"
|
|
467
|
+
}
|
|
468
|
+
)
|
|
469
|
+
]
|
|
470
|
+
},
|
|
471
|
+
snippet.id
|
|
472
|
+
))
|
|
473
|
+
}
|
|
474
|
+
)
|
|
571
475
|
]
|
|
572
|
-
}
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
476
|
+
},
|
|
477
|
+
group.category
|
|
478
|
+
))
|
|
479
|
+
}
|
|
480
|
+
) : /* @__PURE__ */ jsxs(
|
|
481
|
+
"div",
|
|
482
|
+
{
|
|
483
|
+
className: `${snippetsPlaceholder} ${semanticClassNames.snippetsPlaceholder}`,
|
|
484
|
+
children: [
|
|
485
|
+
"No snippets match “",
|
|
486
|
+
snippetQuery.trim(),
|
|
487
|
+
"”"
|
|
488
|
+
]
|
|
489
|
+
}
|
|
490
|
+
)
|
|
491
|
+
] })
|
|
492
|
+
] }),
|
|
578
493
|
/* @__PURE__ */ jsxs("div", { className: `${footer} ${semanticClassNames.footer}`, children: [
|
|
579
|
-
/* @__PURE__ */ jsx(
|
|
580
|
-
|
|
581
|
-
{
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
}
|
|
585
|
-
),
|
|
586
|
-
/* @__PURE__ */ jsxs(
|
|
587
|
-
"div",
|
|
588
|
-
{
|
|
589
|
-
className: `${footerActions} ${semanticClassNames.footerActions}`,
|
|
590
|
-
children: [
|
|
591
|
-
/* @__PURE__ */ jsx(
|
|
592
|
-
"button",
|
|
593
|
-
{
|
|
594
|
-
className: `${footerButton} ${semanticClassNames.footerButton}`,
|
|
595
|
-
type: "button",
|
|
596
|
-
onClick: cancel,
|
|
597
|
-
children: "Cancel"
|
|
598
|
-
}
|
|
599
|
-
),
|
|
600
|
-
/* @__PURE__ */ jsx(
|
|
601
|
-
"button",
|
|
602
|
-
{
|
|
603
|
-
className: `${footerButton} ${semanticClassNames.footerButton} ${footerButtonPrimary} ${semanticClassNames.footerButtonPrimary}`,
|
|
604
|
-
type: "button",
|
|
605
|
-
onClick: commit,
|
|
606
|
-
disabled: !value.trim(),
|
|
607
|
-
children: "Save"
|
|
608
|
-
}
|
|
609
|
-
)
|
|
610
|
-
]
|
|
611
|
-
}
|
|
612
|
-
)
|
|
494
|
+
/* @__PURE__ */ jsx("span", { className: `${charCount} ${semanticClassNames.charCount}`, children: value.trim() ? `${value.length} chars` : "Enter a formula" }),
|
|
495
|
+
/* @__PURE__ */ jsxs(ActionBar, { children: [
|
|
496
|
+
/* @__PURE__ */ jsx(ActionButton, { size: "md", variant: "ghost", onClick: cancel, children: "Cancel" }),
|
|
497
|
+
/* @__PURE__ */ jsx(ActionButton, { disabled: !value.trim(), size: "md", variant: "accent", onClick: commit, children: "Save" })
|
|
498
|
+
] })
|
|
613
499
|
] })
|
|
614
500
|
]
|
|
615
501
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
:root{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}:root.dark{--rc-text: #fafafa;--rc-text-secondary: #a1a1aa;--rc-text-tertiary: #71717a;--rc-text-quaternary: #52525b;--rc-bg: #09090b;--rc-bg-secondary: #18181b;--rc-bg-tertiary: #27272a;--rc-fill: #2a2a2f;--rc-fill-secondary: #222226;--rc-fill-tertiary: #1b1b1f;--rc-fill-quaternary: #131316;--rc-border: #27272a;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #e4e4e7;--rc-code-bg: #27272a;--rc-hr-border: #27272a;--rc-quote-border: #60a5fa;--rc-quote-bg: #1e3a5f;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}.x1ktjw0{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}.x1ktjw1{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.8;--rc-line-height-tight: 1.4;--rc-font-family: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}.x1ktjw2{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #a1a1aa;--rc-quote-bg: #fafafa;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: none;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 2px;--rc-space-sm: 4px;--rc-space-md: 10px;--rc-space-lg: 16px;--rc-space-xl: 20px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 14px;--rc-font-size-small: 12px;--rc-line-height: 1.5;--rc-line-height-tight: 1.3;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 3px;--rc-radius-md: 6px;--rc-radius-lg: 8px}.dark .x1ktjw0,[data-theme=dark] .x1ktjw0,.dark.x1ktjw0,[data-theme=dark].x1ktjw0,.dark .x1ktjw1,[data-theme=dark] .x1ktjw1,.dark.x1ktjw1,[data-theme=dark].x1ktjw1,.dark .x1ktjw2,[data-theme=dark] .x1ktjw2,.dark.x1ktjw2,[data-theme=dark].x1ktjw2{--rc-text: #fafafa;--rc-text-secondary: #a1a1aa;--rc-text-tertiary: #71717a;--rc-text-quaternary: #52525b;--rc-bg: #09090b;--rc-bg-secondary: #18181b;--rc-bg-tertiary: #27272a;--rc-fill: #2a2a2f;--rc-fill-secondary: #222226;--rc-fill-tertiary: #1b1b1f;--rc-fill-quaternary: #131316;--rc-border: #27272a;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #e4e4e7;--rc-code-bg: #27272a;--rc-hr-border: #27272a;--rc-quote-border: #60a5fa;--rc-quote-bg: #1e3a5f;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4)}.mkenhu0{cursor:pointer;border-radius:var(--rc-radius-sm);transition:background-color .15s ease}.mkenhu0:hover{background-color:var(--rc-accent-light)}.mkenhu1{width:min(420px,90vw);padding:0;overflow:hidden;box-shadow:var(--rc-shadow-modal);font-family:var(--rc-font-family)}.mkenhu2{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid color-mix(in srgb,var(--rc-border) 60%,transparent)}.mkenhu3{display:flex;align-items:center;gap:8px}.mkenhu4{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--rc-radius-sm);background-color:var(--rc-accent-light);color:var(--rc-accent)}.mkenhu5{font-weight:600;font-size:var(--rc-font-size-md);color:var(--rc-text)}.mkenhu6{display:flex;align-items:center;gap:4px}.mkenhu7{font-size:var(--rc-font-size-2xs);font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--rc-text-secondary);padding:1px 6px;border-radius:var(--rc-radius-sm);background-color:var(--rc-bg-secondary)}.mkenhu8{display:flex;align-items:center;justify-content:center;appearance:none;border:none;background:none;color:var(--rc-text-secondary);cursor:pointer;width:28px;height:28px;border-radius:var(--rc-radius-sm);transition:color .15s ease,background-color .15s ease;flex-shrink:0}.mkenhu8:hover{color:var(--rc-alert-caution);background-color:color-mix(in srgb,var(--rc-alert-caution) 10%,transparent)}.mkenhu9{padding:0 16px}.mkenhua{max-height:320px;overflow-y:auto;overflow-x:hidden;flex-shrink:0}.mkenhub{padding:12px;display:flex;flex-direction:column;gap:12px}.mkenhuc{display:flex;flex-direction:column}.mkenhud{font-size:var(--rc-font-size-2xs);font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--rc-text-secondary);margin-bottom:6px;padding-left:2px}.mkenhue{position:relative}.mkenhuf{display:block;width:100%;padding:10px 56px 10px 12px;font-family:var(--rc-font-mono);font-size:var(--rc-font-size-md);line-height:1.5;background-color:color-mix(in srgb,var(--rc-bg-secondary) 30%,transparent);color:var(--rc-text);border:1px solid color-mix(in srgb,var(--rc-border) 60%,transparent);border-radius:var(--rc-radius-md);outline:none;resize:none;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}.mkenhuf::placeholder{color:color-mix(in srgb,var(--rc-text-secondary) 50%,transparent)}.mkenhuf:focus{border-color:color-mix(in srgb,var(--rc-accent) 50%,transparent);box-shadow:0 0 0 2px color-mix(in srgb,var(--rc-accent) 25%,transparent)}.mkenhug{position:absolute;right:6px;top:6px;display:flex;gap:2px}.mkenhuh{display:flex;align-items:center;justify-content:center;appearance:none;border:none;background:none;color:color-mix(in srgb,var(--rc-text-secondary) 60%,transparent);cursor:pointer;width:24px;height:24px;border-radius:var(--rc-radius-sm);transition:color .15s ease,background-color .15s ease}.mkenhuh:hover{color:var(--rc-text);background-color:var(--rc-fill-secondary)}.mkenhuh:disabled{opacity:.3;cursor:default;pointer-events:none}.mkenhui{border:1px solid color-mix(in srgb,var(--rc-border) 60%,transparent);border-radius:var(--rc-radius-md);padding:var(--rc-space-md);min-height:60px;display:flex;align-items:center;justify-content:center;overflow-x:auto;background-color:var(--rc-bg)}.mkenhuj{color:color-mix(in srgb,var(--rc-text-secondary) 50%,transparent);font-size:var(--rc-font-size-md)}.mkenhuk{position:relative}.mkenhul{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:color-mix(in srgb,var(--rc-text-secondary) 70%,transparent);pointer-events:none}.mkenhum{width:100%;height:34px;padding:0 12px 0 32px;border-radius:var(--rc-radius-md);border:1px solid color-mix(in srgb,var(--rc-border) 60%,transparent);background-color:color-mix(in srgb,var(--rc-bg-secondary) 24%,transparent);color:var(--rc-text);outline:none;box-sizing:border-box;font-size:var(--rc-font-size-sm)}.mkenhum::placeholder{color:color-mix(in srgb,var(--rc-text-secondary) 55%,transparent)}.mkenhum:focus{border-color:color-mix(in srgb,var(--rc-accent) 45%,transparent);box-shadow:0 0 0 2px color-mix(in srgb,var(--rc-accent) 18%,transparent)}.mkenhun{display:flex;flex-direction:column;gap:12px}.mkenhuo{display:flex;flex-direction:column;gap:6px}.mkenhup{font-size:var(--rc-font-size-2xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rc-text-secondary);padding-left:2px}.mkenhuq{display:flex;flex-direction:column;gap:6px}.mkenhur{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;border:1px solid color-mix(in srgb,var(--rc-border) 55%,transparent);border-radius:var(--rc-radius-md);background-color:color-mix(in srgb,var(--rc-bg-secondary) 18%,transparent);padding:10px 12px;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,transform .15s ease}.mkenhur:hover{border-color:color-mix(in srgb,var(--rc-accent) 30%,var(--rc-border));background-color:color-mix(in srgb,var(--rc-accent-light) 30%,var(--rc-bg-secondary));transform:translateY(-1px)}.mkenhus{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.mkenhut{font-size:var(--rc-font-size-sm);font-weight:600;color:var(--rc-text)}.mkenhuu{font-size:var(--rc-font-size-2xs);font-family:var(--rc-font-mono);color:var(--rc-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mkenhuv{display:inline-flex;align-items:center;justify-content:center;min-width:72px;min-height:32px;padding:0 8px;border-radius:var(--rc-radius-sm);background-color:var(--rc-bg);color:var(--rc-text);overflow:hidden;flex-shrink:0}.mkenhuw{color:var(--rc-text-secondary);font-size:var(--rc-font-size-sm);text-align:center;padding:var(--rc-space-lg) var(--rc-space-md);border:1px dashed color-mix(in srgb,var(--rc-border) 60%,transparent);border-radius:var(--rc-radius-md);background-color:color-mix(in srgb,var(--rc-bg-secondary) 16%,transparent)}.mkenhux{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-top:1px solid color-mix(in srgb,var(--rc-border) 60%,transparent);background-color:color-mix(in srgb,var(--rc-bg-secondary) 20%,transparent)}.mkenhuy{color:var(--rc-text-secondary);font-size:var(--rc-font-size-2xs);font-family:var(--rc-font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.mkenhuz{display:flex;align-items:center;gap:8px}.mkenhu10{appearance:none;border:none;background:none;color:var(--rc-text-secondary);cursor:pointer;padding:4px 10px;border-radius:var(--rc-radius-sm);font-size:var(--rc-font-size-xs);font-weight:500;line-height:1.4;height:28px;display:inline-flex;align-items:center;transition:color .15s ease,background-color .15s ease}.mkenhu10:hover{color:var(--rc-text);background-color:var(--rc-fill-secondary)}.mkenhu11{background-color:var(--rc-accent);color:#fff}.mkenhu11:hover{background-color:var(--rc-accent);filter:brightness(.9);color:#fff}.mkenhu11:disabled{opacity:.5;cursor:default;pointer-events:none}
|
|
1
|
+
:root{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}:root.dark{--rc-text: #fafafa;--rc-text-secondary: #a1a1aa;--rc-text-tertiary: #71717a;--rc-text-quaternary: #52525b;--rc-bg: #09090b;--rc-bg-secondary: #18181b;--rc-bg-tertiary: #27272a;--rc-fill: #2a2a2f;--rc-fill-secondary: #222226;--rc-fill-tertiary: #1b1b1f;--rc-fill-quaternary: #131316;--rc-border: #27272a;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #e4e4e7;--rc-code-bg: #27272a;--rc-hr-border: #27272a;--rc-quote-border: #60a5fa;--rc-quote-bg: #1e3a5f;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}.x1ktjw0{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}.x1ktjw1{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.8;--rc-line-height-tight: 1.4;--rc-font-family: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}.x1ktjw2{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #a1a1aa;--rc-quote-bg: #fafafa;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: none;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 2px;--rc-space-sm: 4px;--rc-space-md: 10px;--rc-space-lg: 16px;--rc-space-xl: 20px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 14px;--rc-font-size-small: 12px;--rc-line-height: 1.5;--rc-line-height-tight: 1.3;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 3px;--rc-radius-md: 6px;--rc-radius-lg: 8px}.dark .x1ktjw0,[data-theme=dark] .x1ktjw0,.dark.x1ktjw0,[data-theme=dark].x1ktjw0,.dark .x1ktjw1,[data-theme=dark] .x1ktjw1,.dark.x1ktjw1,[data-theme=dark].x1ktjw1,.dark .x1ktjw2,[data-theme=dark] .x1ktjw2,.dark.x1ktjw2,[data-theme=dark].x1ktjw2{--rc-text: #fafafa;--rc-text-secondary: #a1a1aa;--rc-text-tertiary: #71717a;--rc-text-quaternary: #52525b;--rc-bg: #09090b;--rc-bg-secondary: #18181b;--rc-bg-tertiary: #27272a;--rc-fill: #2a2a2f;--rc-fill-secondary: #222226;--rc-fill-tertiary: #1b1b1f;--rc-fill-quaternary: #131316;--rc-border: #27272a;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #e4e4e7;--rc-code-bg: #27272a;--rc-hr-border: #27272a;--rc-quote-border: #60a5fa;--rc-quote-bg: #1e3a5f;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4)}.mkenhu0{cursor:pointer;border-radius:var(--rc-radius-sm);transition:background-color .15s ease}.mkenhu0:hover{background-color:var(--rc-accent-light)}.mkenhu1{width:min(420px,90vw);padding:0;overflow:hidden;box-shadow:var(--rc-shadow-modal);font-family:var(--rc-font-family)}.mkenhu2{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid color-mix(in srgb,var(--rc-border) 60%,transparent)}.mkenhu3{display:flex;align-items:center;gap:8px}.mkenhu4{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--rc-radius-sm);background-color:var(--rc-accent-light);color:var(--rc-accent)}.mkenhu5{font-weight:600;font-size:var(--rc-font-size-md);color:var(--rc-text)}.mkenhu6{display:flex;align-items:center;gap:4px}.mkenhu7{font-size:var(--rc-font-size-2xs);font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--rc-text-secondary);padding:1px 6px;border-radius:var(--rc-radius-sm);background-color:var(--rc-bg-secondary)}.mkenhu8{display:flex;align-items:center;justify-content:center;appearance:none;border:none;background:none;color:var(--rc-text-secondary);cursor:pointer;width:28px;height:28px;border-radius:var(--rc-radius-sm);transition:color .15s ease,background-color .15s ease;flex-shrink:0}.mkenhu8:hover{color:var(--rc-alert-caution);background-color:color-mix(in srgb,var(--rc-alert-caution) 10%,transparent)}.mkenhu9{padding:0 16px}.mkenhua{max-height:320px;overflow-y:auto;overflow-x:hidden;flex-shrink:0}.mkenhub{padding:12px;display:flex;flex-direction:column;gap:12px}.mkenhuc{display:flex;flex-direction:column}.mkenhud{font-size:var(--rc-font-size-2xs);font-weight:500;text-transform:uppercase;letter-spacing:.06em;color:var(--rc-text-secondary);margin-bottom:6px;padding-left:2px}.mkenhue{position:relative}.mkenhuf{display:block;width:100%;padding:10px 56px 10px 12px;font-family:var(--rc-font-mono);font-size:var(--rc-font-size-md);line-height:1.5;background-color:color-mix(in srgb,var(--rc-bg-secondary) 30%,transparent);color:var(--rc-text);border:1px solid color-mix(in srgb,var(--rc-border) 60%,transparent);border-radius:var(--rc-radius-md);outline:none;resize:none;box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}.mkenhuf::placeholder{color:color-mix(in srgb,var(--rc-text-secondary) 50%,transparent)}.mkenhuf:focus{border-color:color-mix(in srgb,var(--rc-accent) 50%,transparent);box-shadow:0 0 0 2px color-mix(in srgb,var(--rc-accent) 25%,transparent)}.mkenhug{position:absolute;right:6px;top:6px;display:flex;gap:2px}.mkenhuh{border:1px solid color-mix(in srgb,var(--rc-border) 60%,transparent);border-radius:var(--rc-radius-md);padding:var(--rc-space-md);min-height:60px;display:flex;align-items:center;justify-content:center;overflow-x:auto;background-color:var(--rc-bg)}.mkenhui{color:color-mix(in srgb,var(--rc-text-secondary) 50%,transparent);font-size:var(--rc-font-size-md)}.mkenhuj{position:relative}.mkenhuk{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:color-mix(in srgb,var(--rc-text-secondary) 70%,transparent);pointer-events:none}.mkenhul{width:100%;height:34px;padding:0 12px 0 32px;border-radius:var(--rc-radius-md);border:1px solid color-mix(in srgb,var(--rc-border) 60%,transparent);background-color:color-mix(in srgb,var(--rc-bg-secondary) 24%,transparent);color:var(--rc-text);outline:none;box-sizing:border-box;font-size:var(--rc-font-size-sm)}.mkenhul::placeholder{color:color-mix(in srgb,var(--rc-text-secondary) 55%,transparent)}.mkenhul:focus{border-color:color-mix(in srgb,var(--rc-accent) 45%,transparent);box-shadow:0 0 0 2px color-mix(in srgb,var(--rc-accent) 18%,transparent)}.mkenhum{display:flex;flex-direction:column;gap:12px}.mkenhun{display:flex;flex-direction:column;gap:6px}.mkenhuo{font-size:var(--rc-font-size-2xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--rc-text-secondary);padding-left:2px}.mkenhup{display:flex;flex-direction:column;gap:6px}.mkenhuq{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;border:1px solid color-mix(in srgb,var(--rc-border) 55%,transparent);border-radius:var(--rc-radius-md);background-color:color-mix(in srgb,var(--rc-bg-secondary) 18%,transparent);padding:10px 12px;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,transform .15s ease}.mkenhuq:hover{border-color:color-mix(in srgb,var(--rc-accent) 30%,var(--rc-border));background-color:color-mix(in srgb,var(--rc-accent-light) 30%,var(--rc-bg-secondary));transform:translateY(-1px)}.mkenhur{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.mkenhus{font-size:var(--rc-font-size-sm);font-weight:600;color:var(--rc-text)}.mkenhut{font-size:var(--rc-font-size-2xs);font-family:var(--rc-font-mono);color:var(--rc-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mkenhuu{display:inline-flex;align-items:center;justify-content:center;min-width:72px;min-height:32px;padding:0 8px;border-radius:var(--rc-radius-sm);background-color:var(--rc-bg);color:var(--rc-text);overflow:hidden;flex-shrink:0}.mkenhuv{color:var(--rc-text-secondary);font-size:var(--rc-font-size-sm);text-align:center;padding:var(--rc-space-lg) var(--rc-space-md);border:1px dashed color-mix(in srgb,var(--rc-border) 60%,transparent);border-radius:var(--rc-radius-md);background-color:color-mix(in srgb,var(--rc-bg-secondary) 16%,transparent)}.mkenhuw{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-top:1px solid color-mix(in srgb,var(--rc-border) 60%,transparent);background-color:color-mix(in srgb,var(--rc-bg-secondary) 20%,transparent)}.mkenhux{color:var(--rc-text-secondary);font-size:var(--rc-font-size-2xs);font-family:var(--rc-font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
|
package/dist/snippets.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
export declare const CURSOR_TOKEN = "__cursor__";
|
|
2
2
|
export interface KaTeXSnippet {
|
|
3
|
-
id: string;
|
|
4
|
-
title: string;
|
|
5
|
-
template: string;
|
|
6
|
-
previewEquation: string;
|
|
7
3
|
category: 'Basic' | 'Greek' | 'Operators' | 'Structures';
|
|
4
|
+
id: string;
|
|
8
5
|
keywords: string[];
|
|
6
|
+
previewEquation: string;
|
|
7
|
+
template: string;
|
|
8
|
+
title: string;
|
|
9
9
|
}
|
|
10
10
|
export interface SnippetInsertionResult {
|
|
11
|
-
value: string;
|
|
12
|
-
selectionStart: number;
|
|
13
11
|
selectionEnd: number;
|
|
12
|
+
selectionStart: number;
|
|
13
|
+
value: string;
|
|
14
14
|
}
|
|
15
15
|
export declare const katexSnippets: KaTeXSnippet[];
|
|
16
16
|
export declare function filterKaTeXSnippets(query: string): KaTeXSnippet[];
|
package/dist/snippets.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snippets.d.ts","sourceRoot":"","sources":["../src/snippets.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,eAAe,
|
|
1
|
+
{"version":3,"file":"snippets.d.ts","sourceRoot":"","sources":["../src/snippets.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,eAAe,CAAC;AAEzC,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,YAAY,CAAC;IACzD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,aAAa,EAAE,YAAY,EAiEvC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,CAoBjE;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,sBAAsB,CAexB"}
|
package/dist/styles.css.d.ts
CHANGED
|
@@ -16,7 +16,6 @@ export declare const semanticClassNames: {
|
|
|
16
16
|
readonly inputWrap: "rich-katex-editor-input-wrap";
|
|
17
17
|
readonly textarea: "rich-katex-editor-textarea";
|
|
18
18
|
readonly inputActions: "rich-katex-editor-input-actions";
|
|
19
|
-
readonly actionButton: "rich-katex-editor-action-btn";
|
|
20
19
|
readonly preview: "rich-katex-editor-preview";
|
|
21
20
|
readonly previewEmpty: "rich-katex-editor-preview-empty";
|
|
22
21
|
readonly snippetSearchWrap: "rich-katex-editor-snippet-search-wrap";
|
|
@@ -34,9 +33,6 @@ export declare const semanticClassNames: {
|
|
|
34
33
|
readonly snippetsPlaceholder: "rich-katex-editor-snippets-placeholder";
|
|
35
34
|
readonly footer: "rich-katex-editor-footer";
|
|
36
35
|
readonly charCount: "rich-katex-editor-charcount";
|
|
37
|
-
readonly footerActions: "rich-katex-editor-footer-actions";
|
|
38
|
-
readonly footerButton: "rich-katex-editor-btn";
|
|
39
|
-
readonly footerButtonPrimary: "rich-katex-editor-btn-primary";
|
|
40
36
|
};
|
|
41
37
|
export declare const editWrapper: string;
|
|
42
38
|
export declare const panel: string;
|
|
@@ -55,7 +51,6 @@ export declare const label: string;
|
|
|
55
51
|
export declare const inputWrap: string;
|
|
56
52
|
export declare const textarea: string;
|
|
57
53
|
export declare const inputActions: string;
|
|
58
|
-
export declare const actionButton: string;
|
|
59
54
|
export declare const preview: string;
|
|
60
55
|
export declare const previewEmpty: string;
|
|
61
56
|
export declare const snippetSearchWrap: string;
|
|
@@ -73,7 +68,4 @@ export declare const snippetPreview: string;
|
|
|
73
68
|
export declare const snippetsPlaceholder: string;
|
|
74
69
|
export declare const footer: string;
|
|
75
70
|
export declare const charCount: string;
|
|
76
|
-
export declare const footerActions: string;
|
|
77
|
-
export declare const footerButton: string;
|
|
78
|
-
export declare const footerButtonPrimary: string;
|
|
79
71
|
//# sourceMappingURL=styles.css.d.ts.map
|
package/dist/styles.css.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../src/styles.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB
|
|
1
|
+
{"version":3,"file":"styles.css.d.ts","sourceRoot":"","sources":["../src/styles.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCrB,CAAA;AAEV,eAAO,MAAM,WAAW,QAStB,CAAA;AAEF,eAAO,MAAM,KAAK,QAMhB,CAAA;AAEF,eAAO,MAAM,MAAM,QAMjB,CAAA;AAEF,eAAO,MAAM,UAAU,QAIrB,CAAA;AAEF,eAAO,MAAM,QAAQ,QASnB,CAAA;AAEF,eAAO,MAAM,KAAK,QAIhB,CAAA;AAEF,eAAO,MAAM,WAAW,QAItB,CAAA;AAEF,eAAO,MAAM,IAAI,QASf,CAAA;AAEF,eAAO,MAAM,YAAY,QAoBvB,CAAA;AAEF,eAAO,MAAM,IAAI,QAEf,CAAA;AAEF,eAAO,MAAM,cAAc,QAKzB,CAAA;AAEF,eAAO,MAAM,IAAI,QAKf,CAAA;AAEF,eAAO,MAAM,KAAK,QAGhB,CAAA;AAEF,eAAO,MAAM,KAAK,QAQhB,CAAA;AAEF,eAAO,MAAM,SAAS,QAEpB,CAAA;AAEF,eAAO,MAAM,QAAQ,QAyBnB,CAAA;AAEF,eAAO,MAAM,YAAY,QAMvB,CAAA;AAEF,eAAO,MAAM,OAAO,QAUlB,CAAA;AAEF,eAAO,MAAM,YAAY,QAGvB,CAAA;AAEF,eAAO,MAAM,iBAAiB,QAE5B,CAAA;AAEF,eAAO,MAAM,iBAAiB,QAO5B,CAAA;AAEF,eAAO,MAAM,kBAAkB,QAoB7B,CAAA;AAEF,eAAO,MAAM,aAAa,QAIxB,CAAA;AAEF,eAAO,MAAM,YAAY,QAIvB,CAAA;AAEF,eAAO,MAAM,iBAAiB,QAO5B,CAAA;AAEF,eAAO,MAAM,WAAW,QAItB,CAAA;AAEF,eAAO,MAAM,aAAa,QAqBxB,CAAA;AAEF,eAAO,MAAM,WAAW,QAMtB,CAAA;AAEF,eAAO,MAAM,WAAW,QAItB,CAAA;AAEF,eAAO,MAAM,WAAW,QAOtB,CAAA;AAEF,eAAO,MAAM,cAAc,QAYzB,CAAA;AAEF,eAAO,MAAM,mBAAmB,QAQ9B,CAAA;AAEF,eAAO,MAAM,MAAM,QAOjB,CAAA;AAEF,eAAO,MAAM,SAAS,QAQpB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haklex/rich-renderer-katex",
|
|
3
|
-
"
|
|
4
|
-
"version": "0.0.65",
|
|
3
|
+
"version": "0.0.67",
|
|
5
4
|
"description": "KaTeX math renderer for haklex rich editor",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/Innei/haklex.git",
|
|
8
|
+
"directory": "packages/rich-renderer-katex"
|
|
9
|
+
},
|
|
6
10
|
"license": "MIT",
|
|
11
|
+
"type": "module",
|
|
7
12
|
"exports": {
|
|
8
13
|
".": {
|
|
9
14
|
"import": "./dist/index.mjs",
|
|
@@ -15,23 +20,11 @@
|
|
|
15
20
|
"files": [
|
|
16
21
|
"dist"
|
|
17
22
|
],
|
|
18
|
-
"peerDependencies": {
|
|
19
|
-
"@lexical/react": "^0.41.0",
|
|
20
|
-
"katex": ">=0.16.0",
|
|
21
|
-
"lexical": "^0.41.0",
|
|
22
|
-
"react": ">=19",
|
|
23
|
-
"react-dom": ">=19"
|
|
24
|
-
},
|
|
25
|
-
"peerDependenciesMeta": {
|
|
26
|
-
"katex": {
|
|
27
|
-
"optional": true
|
|
28
|
-
}
|
|
29
|
-
},
|
|
30
23
|
"dependencies": {
|
|
31
24
|
"lucide-react": "^0.577.0",
|
|
32
|
-
"@haklex/rich-editor": "0.0.
|
|
33
|
-
"@haklex/rich-editor-ui": "0.0.
|
|
34
|
-
"@haklex/rich-style-token": "0.0.
|
|
25
|
+
"@haklex/rich-editor": "0.0.67",
|
|
26
|
+
"@haklex/rich-editor-ui": "0.0.67",
|
|
27
|
+
"@haklex/rich-style-token": "0.0.67"
|
|
35
28
|
},
|
|
36
29
|
"devDependencies": {
|
|
37
30
|
"@lexical/react": "^0.41.0",
|
|
@@ -48,6 +41,18 @@
|
|
|
48
41
|
"vite": "^7.3.1",
|
|
49
42
|
"vite-plugin-dts": "^4.5.4"
|
|
50
43
|
},
|
|
44
|
+
"peerDependencies": {
|
|
45
|
+
"@lexical/react": "^0.41.0",
|
|
46
|
+
"katex": ">=0.16.0",
|
|
47
|
+
"lexical": "^0.41.0",
|
|
48
|
+
"react": ">=19",
|
|
49
|
+
"react-dom": ">=19"
|
|
50
|
+
},
|
|
51
|
+
"peerDependenciesMeta": {
|
|
52
|
+
"katex": {
|
|
53
|
+
"optional": true
|
|
54
|
+
}
|
|
55
|
+
},
|
|
51
56
|
"publishConfig": {
|
|
52
57
|
"access": "public"
|
|
53
58
|
},
|