@haklex/rich-editor 0.9.0 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{SubmitShortcutPlugin-CHn_HBJM.js → SubmitShortcutPlugin-vSiGZdqf.js} +61 -3
- package/dist/{config-EJe68p4h.js → config-ayEp2yVZ.js} +6 -2
- package/dist/index.mjs +3 -3
- package/dist/{node-registry-D9t5vPfY.js → node-registry-jA2ieiI5.js} +1 -1
- package/dist/nodes/DetailsNode.d.ts.map +1 -1
- package/dist/nodes-entry.mjs +2 -2
- package/dist/plugins/MarkdownPastePlugin.d.ts.map +1 -1
- package/dist/plugins-entry.mjs +1 -1
- package/dist/rich-editor.css +1 -1
- package/dist/static-entry.mjs +1 -1
- package/dist/utils/litexml-import.d.ts +4 -0
- package/dist/utils/litexml-import.d.ts.map +1 -0
- package/package.json +5 -4
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { c as setCodeBlockCursorIntent, o as $createCodeBlockEditNode, s as $createBannerEditNode, t as getResolvedEditNodes } from "./node-registry-
|
|
1
|
+
import { c as setCodeBlockCursorIntent, o as $createCodeBlockEditNode, s as $createBannerEditNode, t as getResolvedEditNodes } from "./node-registry-jA2ieiI5.js";
|
|
2
2
|
import { A as AlertQuoteNode, E as FootnoteNode, M as extractTextContent, T as $createFootnoteNode, _ as KaTeXInlineNode, b as KaTeXBlockNode, c as SpoilerNode, f as $createMentionNode, h as $createKaTeXInlineNode, m as MentionNode, o as $createSpoilerNode, v as $createKaTeXBlockNode, w as OPEN_IMAGE_UPLOAD_DIALOG_COMMAND, x as $createImageNode } from "./theme-DG7I1YM5.js";
|
|
3
3
|
import { a as FootnoteDefinitionsProvider, n as computeImageMeta } from "./KaTeXRenderer-CqnhvDmj.js";
|
|
4
4
|
import "./katex.css-CIOEOXyd.js";
|
|
5
|
-
import { S as CommentNode, _ as $createDetailsNode, a as $createRubyNode, b as $createCommentPlaceholderNode, f as $isGridContainerNode, g as FootnoteSectionNode, h as $isFootnoteSectionNode, j as BannerNode, m as $createFootnoteSectionNode, s as RubyNode, v as DetailsNode, w as CodeBlockNode, y as $createCommentNode } from "./config-
|
|
5
|
+
import { S as CommentNode, _ as $createDetailsNode, a as $createRubyNode, b as $createCommentPlaceholderNode, f as $isGridContainerNode, g as FootnoteSectionNode, h as $isFootnoteSectionNode, j as BannerNode, m as $createFootnoteSectionNode, s as RubyNode, v as DetailsNode, w as CodeBlockNode, y as $createCommentNode } from "./config-ayEp2yVZ.js";
|
|
6
6
|
import { t as $createAlertQuoteEditNode } from "./AlertQuoteEditNode-DjObnJI6.js";
|
|
7
7
|
import { n as getHostname, r as probeFavicon, t as normalizeSerializedEditorState } from "./normalizeSerializedEditorState-B-1wmGzd.js";
|
|
8
8
|
import { CheckListPlugin } from "@lexical/react/LexicalCheckListPlugin";
|
|
@@ -21,6 +21,7 @@ import { $convertFromMarkdownString, CHECK_LIST, CODE, QUOTE, TRANSFORMERS } fro
|
|
|
21
21
|
import { $createTableCellNode, $createTableNode, $createTableRowNode, TableCellHeaderStates } from "@lexical/table";
|
|
22
22
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
23
23
|
import { Check, Info, Link2, Upload } from "lucide-react";
|
|
24
|
+
import { createDefaultRegistry, deserializeNodesFromXml } from "@haklex/rich-litexml";
|
|
24
25
|
import { MarkdownShortcutPlugin } from "@lexical/react/LexicalMarkdownShortcutPlugin";
|
|
25
26
|
import { nanoid } from "nanoid";
|
|
26
27
|
import { ActionBar, ActionButton, Dialog, DialogPopup, DialogTitle, SegmentedControl } from "@haklex/rich-editor-ui";
|
|
@@ -750,6 +751,46 @@ var ALL_TRANSFORMERS = [
|
|
|
750
751
|
...TRANSFORMERS.filter((t) => t !== QUOTE && t !== CODE)
|
|
751
752
|
];
|
|
752
753
|
//#endregion
|
|
754
|
+
//#region src/utils/litexml-import.ts
|
|
755
|
+
var LITEXML_TAG_PATTERN = new RegExp(`<\\/?(?:${[
|
|
756
|
+
"doc",
|
|
757
|
+
"fragment",
|
|
758
|
+
"img",
|
|
759
|
+
"video",
|
|
760
|
+
"link-card",
|
|
761
|
+
"embed",
|
|
762
|
+
"codeblock",
|
|
763
|
+
"mermaid",
|
|
764
|
+
"math",
|
|
765
|
+
"alert",
|
|
766
|
+
"banner",
|
|
767
|
+
"nested-doc",
|
|
768
|
+
"details",
|
|
769
|
+
"spoiler",
|
|
770
|
+
"ruby",
|
|
771
|
+
"mention",
|
|
772
|
+
"tag",
|
|
773
|
+
"comment",
|
|
774
|
+
"footnote",
|
|
775
|
+
"footnote-section",
|
|
776
|
+
"gallery",
|
|
777
|
+
"excalidraw",
|
|
778
|
+
"grid",
|
|
779
|
+
"cell",
|
|
780
|
+
"agent-diff",
|
|
781
|
+
"code-snippet",
|
|
782
|
+
"chat",
|
|
783
|
+
"poll"
|
|
784
|
+
].join("|")})(?:\\s|>|\\/>)`, "i");
|
|
785
|
+
function detectLiteXml(text) {
|
|
786
|
+
return LITEXML_TAG_PATTERN.test(text.trim());
|
|
787
|
+
}
|
|
788
|
+
function parseLiteXmlSerializedNodes(xml) {
|
|
789
|
+
if (!detectLiteXml(xml)) return null;
|
|
790
|
+
const nodes = deserializeNodesFromXml(xml, createDefaultRegistry());
|
|
791
|
+
return nodes.length > 0 ? nodes : null;
|
|
792
|
+
}
|
|
793
|
+
//#endregion
|
|
753
794
|
//#region src/plugins/MarkdownPastePlugin.tsx
|
|
754
795
|
function getVSCodePasteData(clipboardData) {
|
|
755
796
|
const raw = clipboardData.getData("vscode-editor-data");
|
|
@@ -808,6 +849,15 @@ function convertAndInsert(markdown) {
|
|
|
808
849
|
$insertNodes(serializedChildren.map((s) => $parseSerializedNode(s)));
|
|
809
850
|
return true;
|
|
810
851
|
}
|
|
852
|
+
function insertSerializedNodes(serializedNodes) {
|
|
853
|
+
if (!serializedNodes.length) return false;
|
|
854
|
+
$insertNodes(serializedNodes.map((s) => $parseSerializedNode(s)));
|
|
855
|
+
return true;
|
|
856
|
+
}
|
|
857
|
+
function convertLiteXmlAndInsert(xml) {
|
|
858
|
+
const serializedNodes = parseLiteXmlSerializedNodes(xml);
|
|
859
|
+
return serializedNodes ? insertSerializedNodes(serializedNodes) : false;
|
|
860
|
+
}
|
|
811
861
|
function MarkdownPastePlugin() {
|
|
812
862
|
const [editor] = useLexicalComposerContext();
|
|
813
863
|
useEffect(() => {
|
|
@@ -825,8 +875,16 @@ function MarkdownPastePlugin() {
|
|
|
825
875
|
return true;
|
|
826
876
|
}
|
|
827
877
|
}
|
|
828
|
-
if (hasRichHTML(clipboardData)) return false;
|
|
829
878
|
const text = clipboardData.getData("text/plain");
|
|
879
|
+
if (text && detectLiteXml(text)) try {
|
|
880
|
+
if (!convertLiteXmlAndInsert(text)) return false;
|
|
881
|
+
event.preventDefault();
|
|
882
|
+
return true;
|
|
883
|
+
} catch (error) {
|
|
884
|
+
console.error("MarkdownPastePlugin: LiteXML paste error", error);
|
|
885
|
+
return false;
|
|
886
|
+
}
|
|
887
|
+
if (hasRichHTML(clipboardData)) return false;
|
|
830
888
|
if (!text || !detectMarkdown(text)) return false;
|
|
831
889
|
try {
|
|
832
890
|
if (!convertAndInsert(text)) return false;
|
|
@@ -6,7 +6,7 @@ import { t as LinkCardRenderer } from "./LinkCardRenderer-CigqFwCv.js";
|
|
|
6
6
|
import { AutoLinkNode, LinkNode } from "@lexical/link";
|
|
7
7
|
import { createContext, createElement, use, useCallback, useEffect, useRef, useState } from "react";
|
|
8
8
|
import { HeadingNode, QuoteNode } from "@lexical/rich-text";
|
|
9
|
-
import { $createTextNode, $insertNodes, DecoratorNode, ElementNode, TextNode } from "lexical";
|
|
9
|
+
import { $createParagraphNode, $createTextNode, $insertNodes, DecoratorNode, ElementNode, TextNode } from "lexical";
|
|
10
10
|
import { HorizontalRuleNode } from "@lexical/extension";
|
|
11
11
|
import { CodeNode } from "@lexical/code-core";
|
|
12
12
|
import { ListItemNode, ListNode } from "@lexical/list";
|
|
@@ -555,7 +555,11 @@ _defineProperty(DetailsNode, "slashMenuItems", [{
|
|
|
555
555
|
section: "ADVANCED",
|
|
556
556
|
onSelect: (editor) => {
|
|
557
557
|
editor.update(() => {
|
|
558
|
-
$
|
|
558
|
+
const details = $createDetailsNode("Details", true);
|
|
559
|
+
const paragraph = $createParagraphNode();
|
|
560
|
+
details.append(paragraph);
|
|
561
|
+
$insertNodes([details]);
|
|
562
|
+
paragraph.selectStart();
|
|
559
563
|
});
|
|
560
564
|
}
|
|
561
565
|
}]);
|
package/dist/index.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { A as ImageUploadProvider, C as useTextSelectionSnapshot, D as defaultImageUpload, E as ImageUploadPlugin, M as CorePlugins, O as BlockIdPlugin, S as createTextSelectionStore, T as LinkFaviconPlugin, _ as $getTextOffsetInBlock, a as AutoFocusPlugin, b as buildRangeAnchor, c as $captureTextSelectionFromRangeSelection, d as findDOMPointByTextOffset, f as getBlockElementById, g as $getRootBlock, h as TEXT_SELECTION_HIGHLIGHT_NAME, i as EditorRefPlugin, k as blockIdState, l as $restoreTextSelection, m as getTextOffsetFromDOMPoint, n as OnChangePlugin, o as TextSelectionPlugin, p as getDOMRectFromTextSelection, r as FootnotePlugin, s as $captureTextSelection, t as SubmitShortcutPlugin, u as createDOMRangeFromTextSelection, v as $resolveSelectionPoint, w as useTextSelectionStore, x as TextSelectionStoreProvider, y as buildBlockAnchor } from "./SubmitShortcutPlugin-
|
|
2
|
-
import { n as setResolvedEditNodes, r as allEditNodes } from "./node-registry-
|
|
1
|
+
import { A as ImageUploadProvider, C as useTextSelectionSnapshot, D as defaultImageUpload, E as ImageUploadPlugin, M as CorePlugins, O as BlockIdPlugin, S as createTextSelectionStore, T as LinkFaviconPlugin, _ as $getTextOffsetInBlock, a as AutoFocusPlugin, b as buildRangeAnchor, c as $captureTextSelectionFromRangeSelection, d as findDOMPointByTextOffset, f as getBlockElementById, g as $getRootBlock, h as TEXT_SELECTION_HIGHLIGHT_NAME, i as EditorRefPlugin, k as blockIdState, l as $restoreTextSelection, m as getTextOffsetFromDOMPoint, n as OnChangePlugin, o as TextSelectionPlugin, p as getDOMRectFromTextSelection, r as FootnotePlugin, s as $captureTextSelection, t as SubmitShortcutPlugin, u as createDOMRangeFromTextSelection, v as $resolveSelectionPoint, w as useTextSelectionStore, x as TextSelectionStoreProvider, y as buildBlockAnchor } from "./SubmitShortcutPlugin-vSiGZdqf.js";
|
|
2
|
+
import { n as setResolvedEditNodes, r as allEditNodes } from "./node-registry-jA2ieiI5.js";
|
|
3
3
|
import { F as useNestedContentRenderer, I as useOptionalNestedContentRenderer, P as NestedContentRendererProvider, t as editorTheme } from "./theme-DG7I1YM5.js";
|
|
4
4
|
import { C as MENTION_NODE_KEY, D as VIDEO_NODE_KEY, E as TAG_NODE_KEY, S as LINK_CARD_NODE_KEY, T as RUBY_NODE_KEY, _ as CODE_BLOCK_NODE_KEY, a as FootnoteDefinitionsProvider, b as IMAGE_NODE_KEY, c as useFootnoteDisplayNumber, d as RendererConfigProvider, f as useRendererConfig, g as BANNER_NODE_KEY, h as ALERT_NODE_KEY, m as useVariant, o as useFootnoteContent, p as useRendererMode, s as useFootnoteDefinitions, v as FOOTNOTE_NODE_KEY, w as MERMAID_NODE_KEY, x as KATEX_NODE_KEY, y as FOOTNOTE_SECTION_NODE_KEY } from "./KaTeXRenderer-CqnhvDmj.js";
|
|
5
5
|
import { a as noteVariant, c as richContent, i as getVariantClass, l as semanticClassNames, n as katexStyles, o as commentVariant, r as clsx, s as articleVariant, t as katexClassNames, u as sharedStyles } from "./katex.css-CIOEOXyd.js";
|
|
6
|
-
import { D as useColorScheme, E as ColorSchemeProvider } from "./config-
|
|
6
|
+
import { D as useColorScheme, E as ColorSchemeProvider } from "./config-ayEp2yVZ.js";
|
|
7
7
|
import { i as detailsStyles, n as gridStyles, r as detailsClassNames, t as gridClassNames } from "./grid.css-CJCkLTZc.js";
|
|
8
8
|
import { a as LinkFavicon, i as useExtraNodes, n as usePresentDialog, r as ExtraNodesProvider, t as PresentDialogProvider } from "./PresentDialogContext-DKNicgia.js";
|
|
9
9
|
import { a as KaTeXPlugin, c as AlertPlugin, n as MermaidPlugin, s as ImagePlugin } from "./MermaidPlugin-_gPgU34D.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { C as ImageNode, E as FootnoteNode, _ as KaTeXInlineNode, b as KaTeXBlockNode, c as SpoilerNode, d as MermaidNode, i as TagNode, j as _defineProperty, m as MentionNode, t as editorTheme } from "./theme-DG7I1YM5.js";
|
|
2
2
|
import { _ as CODE_BLOCK_NODE_KEY, g as BANNER_NODE_KEY, l as RendererWrapper, s as useFootnoteDefinitions } from "./KaTeXRenderer-CqnhvDmj.js";
|
|
3
3
|
import { l as semanticClassNames, r as clsx, u as sharedStyles } from "./katex.css-CIOEOXyd.js";
|
|
4
|
-
import { C as $isCodeBlockNode, M as normalizeBannerType, N as BannerRenderer, O as $isBannerNode, S as CommentNode, T as CodeBlockRenderer, f as $isGridContainerNode, g as FootnoteSectionNode, i as VideoNode, j as BannerNode, n as builtinNodes, p as GridContainerNode, s as RubyNode, u as LinkCardNode, v as DetailsNode, w as CodeBlockNode } from "./config-
|
|
4
|
+
import { C as $isCodeBlockNode, M as normalizeBannerType, N as BannerRenderer, O as $isBannerNode, S as CommentNode, T as CodeBlockRenderer, f as $isGridContainerNode, g as FootnoteSectionNode, i as VideoNode, j as BannerNode, n as builtinNodes, p as GridContainerNode, s as RubyNode, u as LinkCardNode, v as DetailsNode, w as CodeBlockNode } from "./config-ayEp2yVZ.js";
|
|
5
5
|
import { n as gridStyles, t as gridClassNames } from "./grid.css-CJCkLTZc.js";
|
|
6
6
|
import { n as AlertQuoteEditNode, r as NESTED_EDITOR_NODES } from "./AlertQuoteEditNode-DjObnJI6.js";
|
|
7
7
|
import { LinkPlugin } from "@lexical/react/LexicalLinkPlugin";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DetailsNode.d.ts","sourceRoot":"","sources":["../../src/nodes/DetailsNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjG,OAAO,
|
|
1
|
+
{"version":3,"file":"DetailsNode.d.ts","sourceRoot":"","sources":["../../src/nodes/DetailsNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjG,OAAO,EAAsC,WAAW,EAAE,MAAM,SAAS,CAAC;AAK1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAO/D,MAAM,MAAM,qBAAqB,GAAG,MAAM,CACxC;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf,EACD,qBAAqB,CACtB,CAAC;AAEF,qBAAa,WAAY,SAAQ,WAAW;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAEhB,MAAM,CAAC,cAAc,EAAE,mBAAmB,EAAE,CAiB1C;IAEF,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW;gBAIhC,OAAO,EAAE,MAAM,EAAE,IAAI,UAAQ,EAAE,GAAG,CAAC,EAAE,OAAO;IAMxD,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;IAmC7C,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO;IAc3D,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,qBAAqB,GAAG,WAAW;IAIrE,UAAU,IAAI,qBAAqB;IAUnC,UAAU,IAAI,MAAM;IAIpB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,OAAO,IAAI,OAAO;IAIlB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAK5B,UAAU,IAAI,IAAI;IAIlB,UAAU,CAAC,OAAO,EAAE,WAAW;IAK/B,QAAQ,IAAI,OAAO;CAGpB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,WAAW,CAE7E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,WAAW,CAExF"}
|
package/dist/nodes-entry.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as FootnoteSectionEditNode, i as customEditNodes, n as setResolvedEditNodes, r as allEditNodes, t as getResolvedEditNodes } from "./node-registry-
|
|
1
|
+
import { a as FootnoteSectionEditNode, i as customEditNodes, n as setResolvedEditNodes, r as allEditNodes, t as getResolvedEditNodes } from "./node-registry-jA2ieiI5.js";
|
|
2
2
|
import { C as ImageNode, O as ALERT_LABELS, S as $isImageNode, _ as KaTeXInlineNode, b as KaTeXBlockNode, d as MermaidNode, f as $createMentionNode, g as $isKaTeXInlineNode, i as TagNode, k as ALERT_TYPES, l as $createMermaidNode, m as MentionNode, n as $createTagNode, p as $isMentionNode, r as $isTagNode, u as $isMermaidNode, x as $createImageNode, y as $isKaTeXBlockNode } from "./theme-DG7I1YM5.js";
|
|
3
|
-
import { A as BANNER_TYPES, S as CommentNode, a as $createRubyNode, c as $createLinkCardNode, d as $createGridContainerNode, f as $isGridContainerNode, g as FootnoteSectionNode, h as $isFootnoteSectionNode, k as BANNER_LABELS, l as $isLinkCardNode, m as $createFootnoteSectionNode, n as builtinNodes, o as $isRubyNode, p as GridContainerNode, r as customNodes, s as RubyNode, t as allNodes, u as LinkCardNode, x as $isCommentNode, y as $createCommentNode } from "./config-
|
|
3
|
+
import { A as BANNER_TYPES, S as CommentNode, a as $createRubyNode, c as $createLinkCardNode, d as $createGridContainerNode, f as $isGridContainerNode, g as FootnoteSectionNode, h as $isFootnoteSectionNode, k as BANNER_LABELS, l as $isLinkCardNode, m as $createFootnoteSectionNode, n as builtinNodes, o as $isRubyNode, p as GridContainerNode, r as customNodes, s as RubyNode, t as allNodes, u as LinkCardNode, x as $isCommentNode, y as $createCommentNode } from "./config-ayEp2yVZ.js";
|
|
4
4
|
import { r as NESTED_EDITOR_NODES } from "./AlertQuoteEditNode-DjObnJI6.js";
|
|
5
5
|
export { $createCommentNode, $createFootnoteSectionNode, $createGridContainerNode, $createImageNode, $createLinkCardNode, $createMentionNode, $createMermaidNode, $createRubyNode, $createTagNode, $isCommentNode, $isFootnoteSectionNode, $isGridContainerNode, $isImageNode, $isKaTeXBlockNode, $isKaTeXInlineNode, $isLinkCardNode, $isMentionNode, $isMermaidNode, $isRubyNode, $isTagNode, ALERT_LABELS, ALERT_TYPES, BANNER_LABELS, BANNER_TYPES, CommentNode, FootnoteSectionEditNode, FootnoteSectionNode, GridContainerNode, ImageNode, KaTeXBlockNode, KaTeXInlineNode, LinkCardNode, MentionNode, MermaidNode, NESTED_EDITOR_NODES, RubyNode, TagNode, allEditNodes, allNodes, builtinNodes, customEditNodes, customNodes, getResolvedEditNodes, setResolvedEditNodes };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkdownPastePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/MarkdownPastePlugin.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MarkdownPastePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/MarkdownPastePlugin.tsx"],"names":[],"mappings":"AAsJA,wBAAgB,mBAAmB,SA0ElC"}
|
package/dist/plugins-entry.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { A as ImageUploadProvider, D as defaultImageUpload, E as ImageUploadPlugin, F as ALL_TRANSFORMERS, I as HorizontalRulePlugin, L as BlockExitPlugin, M as CorePlugins, N as MarkdownShortcutsPlugin, O as BlockIdPlugin, P as MarkdownPastePlugin, R as AutoLinkPlugin, T as LinkFaviconPlugin, a as AutoFocusPlugin, i as EditorRefPlugin, j as useImageUpload, k as blockIdState, n as OnChangePlugin, o as TextSelectionPlugin, r as FootnotePlugin, t as SubmitShortcutPlugin } from "./SubmitShortcutPlugin-
|
|
1
|
+
import { A as ImageUploadProvider, D as defaultImageUpload, E as ImageUploadPlugin, F as ALL_TRANSFORMERS, I as HorizontalRulePlugin, L as BlockExitPlugin, M as CorePlugins, N as MarkdownShortcutsPlugin, O as BlockIdPlugin, P as MarkdownPastePlugin, R as AutoLinkPlugin, T as LinkFaviconPlugin, a as AutoFocusPlugin, i as EditorRefPlugin, j as useImageUpload, k as blockIdState, n as OnChangePlugin, o as TextSelectionPlugin, r as FootnotePlugin, t as SubmitShortcutPlugin } from "./SubmitShortcutPlugin-vSiGZdqf.js";
|
|
2
2
|
import { a as KaTeXPlugin, c as AlertPlugin, n as MermaidPlugin, s as ImagePlugin } from "./MermaidPlugin-_gPgU34D.js";
|
|
3
3
|
export { ALL_TRANSFORMERS, AlertPlugin, AutoFocusPlugin, AutoLinkPlugin, BlockExitPlugin, BlockIdPlugin, CorePlugins, EditorRefPlugin, FootnotePlugin, HorizontalRulePlugin, ImagePlugin, ImageUploadPlugin, ImageUploadProvider, KaTeXPlugin, LinkFaviconPlugin, MarkdownPastePlugin, MarkdownShortcutsPlugin, MermaidPlugin, OnChangePlugin, SubmitShortcutPlugin, TextSelectionPlugin, blockIdState, defaultImageUpload, useImageUpload };
|
package/dist/rich-editor.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
:root{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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,[data-theme=dark]{--rc-text:#fafafa;--rc-text-secondary:#a3a3a3;--rc-text-tertiary:#737373;--rc-text-quaternary:#525252;--rc-bg:#0a0a0a;--rc-bg-secondary:#171717;--rc-bg-tertiary:#262626;--rc-fill:#2a2a2a;--rc-fill-secondary:#222;--rc-fill-tertiary:#1a1a1a;--rc-fill-quaternary:#141414;--rc-border:#262626;--rc-accent:#60a5fa;--rc-accent-light:#60a5fa20;--rc-link:#60a5fa;--rc-code-text:#d4d4d4;--rc-code-bg:#262626;--rc-hr-border:#262626;--rc-quote-border:#60a5fa;--rc-quote-bg:#262626;--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 #00000073, 0 2px 8px #0000004d;--rc-shadow-modal:0 10px 15px -3px #0006, 0 4px 6px -4px #00000059;--rc-shadow-menu:0 1px 4px #00000040, 0 4px 16px #0006;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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}._13h71jk0{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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}._13h71jk1{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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}._13h71jk2{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#a3a3a3;--rc-quote-bg:#fafafa;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:none;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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:12px}.dark ._13h71jk0,[data-theme=dark] ._13h71jk0,.dark._13h71jk0,[data-theme=dark]._13h71jk0,.dark ._13h71jk1,[data-theme=dark] ._13h71jk1,.dark._13h71jk1,[data-theme=dark]._13h71jk1,.dark ._13h71jk2,[data-theme=dark] ._13h71jk2,.dark._13h71jk2,[data-theme=dark]._13h71jk2{--rc-text:#fafafa;--rc-text-secondary:#a3a3a3;--rc-text-tertiary:#737373;--rc-text-quaternary:#525252;--rc-bg:#0a0a0a;--rc-bg-secondary:#171717;--rc-bg-tertiary:#262626;--rc-fill:#2a2a2a;--rc-fill-secondary:#222;--rc-fill-tertiary:#1a1a1a;--rc-fill-quaternary:#141414;--rc-border:#262626;--rc-accent:#60a5fa;--rc-accent-light:#60a5fa20;--rc-link:#60a5fa;--rc-code-text:#d4d4d4;--rc-code-bg:#262626;--rc-hr-border:#262626;--rc-quote-border:#60a5fa;--rc-quote-bg:#262626;--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 #00000073, 0 2px 8px #0000004d;--rc-shadow-modal:0 10px 15px -3px #0006, 0 4px 6px -4px #00000059;--rc-shadow-menu:0 1px 4px #00000040, 0 4px 16px #0006}@keyframes r8uj4t0{to{--rc-hl-highlighted:1}}@keyframes r8uj4t1{0%{background-color:#ef44443d}to{background-color:#0000}}.r8uj4t2{font-family:var(--rc-font-family);font-size:var(--rc-font-size-base);line-height:var(--rc-line-height);color:var(--rc-text);word-wrap:break-word;overflow-wrap:break-word}.r8uj4t3{line-height:var(--rc-line-height);margin:0 0 1em}.r8uj4t4{font-weight:700}.r8uj4t5{font-style:italic}.r8uj4t6{text-decoration:underline}.r8uj4t7{opacity:.65;text-decoration:line-through}.r8uj4t8{vertical-align:super;font-size:.8em}.r8uj4t9{vertical-align:sub;font-size:.8em}.r8uj4ta{font-family:var(--rc-font-mono);background-color:var(--rc-code-bg);color:inherit;border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);padding:2px 6px;font-size:.9em}[contenteditable=true] .r8uj4ta{padding-right:0}.r8uj4tb{--rc-hl-lightness:.3;--rc-hl-highlighted:1;--rc-hl-color:oklch(from var(--rc-accent) l c h / var(--rc-hl-lightness));background:linear-gradient(120deg, var(--rc-hl-color,lightblue) 50%, transparent 50%) 110% 0 / 200% 100% no-repeat;background-position:calc((1 - var(--rc-hl-highlighted)) * 110%) 0;color:var(--rc-text);transition:background-position 1s}[contenteditable=true] .r8uj4tb{--rc-hl-highlighted:1;animation:none}[data-theme=dark] .r8uj4tb{--rc-hl-lightness:.35}.r8uj4tc{color:var(--rc-text-secondary);opacity:0;align-items:center;font-size:.8rem;text-decoration:none;transition:opacity .15s;display:flex;position:absolute;top:0;bottom:0;left:-1.25rem}.r8uj4td{font-size:2em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.5em;margin-bottom:.5em;position:relative}[contenteditable=true] .r8uj4td:before{content:"H1";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4te{font-size:1.5em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.4em;margin-bottom:.45em;position:relative}[contenteditable=true] .r8uj4te:before{content:"H2";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4tf{font-size:1.25em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.3em;margin-bottom:.4em;position:relative}[contenteditable=true] .r8uj4tf:before{content:"H3";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4tg{font-size:1.125em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.2em;margin-bottom:.35em;position:relative}[contenteditable=true] .r8uj4tg:before{content:"H4";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4th{font-size:1em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.1em;margin-bottom:.3em;position:relative}[contenteditable=true] .r8uj4th:before{content:"H5";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4ti{font-size:.875em;font-weight:600;line-height:var(--rc-line-height-tight);color:var(--rc-text);margin-top:1em;margin-bottom:.25em;position:relative}[contenteditable=true] .r8uj4ti:before{content:"H6";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4tj{color:var(--rc-link);text-decoration:none;transition:color .2s}.r8uj4tj:hover{text-decoration:underline}.r8uj4tj[data-favicon=loaded]:before{content:"";vertical-align:-.125em;background-image:var(--rc-link-favicon);background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:2px;width:1em;height:1em;margin-right:.2em;display:inline-block}.r8uj4tk{vertical-align:-.125em;align-items:center;margin-right:.15em;display:inline-flex}.r8uj4tl{padding-left:var(--rc-space-lg);margin-bottom:1em;list-style-type:decimal}.r8uj4tm{padding-left:var(--rc-space-lg);margin-bottom:1em;list-style-type:disc}.r8uj4tn{margin-bottom:.25em}.r8uj4to{list-style-type:none}.r8uj4tp{padding-left:0;list-style-type:none}.r8uj4tq{--rc-cb-size:1.125rem;outline:none;padding-left:2em;list-style-type:none;transition:color .25s;position:relative}.r8uj4tq:before{content:"";left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:1.5px solid var(--rc-text-quaternary);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;background-color:#0000;transition:background-color .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1),transform .15s;position:absolute}.r8uj4tq:after{content:"";left:calc(var(--rc-cb-size) * .32);top:calc((1lh - var(--rc-cb-size)) / 2 + var(--rc-cb-size) * .14);width:calc(var(--rc-cb-size) * .28);height:calc(var(--rc-cb-size) * .55);border-right:2px solid var(--rc-accent);border-bottom:2px solid var(--rc-accent);box-sizing:border-box;pointer-events:none;transform-origin:50%;opacity:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1) .1s,opacity .15s;display:block;position:absolute;transform:rotate(45deg)scale(0)}[contenteditable=true] .r8uj4tq:active:before{transform:scale(.94)}[contenteditable=true] .r8uj4tq:hover:before{border-color:var(--rc-text-tertiary)}.r8uj4tr{--rc-cb-size:1.125rem;color:var(--rc-text-secondary);outline:none;padding-left:2em;list-style-type:none;transition:color .25s;position:relative}.r8uj4tr:before{content:"";left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:1.5px solid var(--rc-text-quaternary);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;background-color:var(--rc-accent-light);border-color:var(--rc-accent);transition:background-color .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1),transform .15s;position:absolute}.r8uj4tr:after{content:"";left:calc(var(--rc-cb-size) * .32);top:calc((1lh - var(--rc-cb-size)) / 2 + var(--rc-cb-size) * .14);width:calc(var(--rc-cb-size) * .28);height:calc(var(--rc-cb-size) * .55);border-right:2px solid var(--rc-accent);border-bottom:2px solid var(--rc-accent);box-sizing:border-box;pointer-events:none;transform-origin:50%;opacity:1;transition:transform .3s cubic-bezier(.34,1.56,.64,1) .1s,opacity .15s;display:block;position:absolute;transform:rotate(45deg)scale(1)}[contenteditable=true] .r8uj4tr:active:before{transform:scale(.94)}[contenteditable=true] .r8uj4tr:hover:before{background-color:color-mix(in oklab, var(--rc-accent) 12%, transparent)}.r8uj4ts{background-color:var(--rc-quote-bg);margin:var(--rc-space-md) 0;padding:var(--rc-space-sm) var(--rc-space-md);padding-left:calc(var(--rc-space-md) + 4px);color:var(--rc-text-secondary);border-radius:0 var(--rc-radius-sm) var(--rc-radius-sm) 0;font-style:normal;position:relative}.r8uj4ts:before{content:"";border-radius:var(--rc-radius-sm);background-color:var(--rc-quote-border);width:4px;position:absolute;top:0;bottom:0;left:0}.r8uj4tt{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}.r8uj4tu{overflow-x:auto}.r8uj4tv{border:none;border-bottom:1px solid var(--rc-border);border-right:1px solid var(--rc-border);padding:1.25em var(--rc-space-lg);text-align:left;vertical-align:middle;line-height:1.5}.r8uj4tv:last-child{border-right:none}.r8uj4tw{border:none;border-bottom:1px solid var(--rc-border);border-right:1px solid var(--rc-border);padding:var(--rc-space-md) var(--rc-space-lg);text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--rc-text-secondary);background-color:var(--rc-bg-secondary);vertical-align:middle;z-index:1;font-size:.75em;font-weight:600;line-height:1.5;position:sticky;top:0}.r8uj4tw:last-child{border-right:none}.r8uj4tx{border-collapse:separate;border-spacing:0;width:100%;margin:var(--rc-space-lg) 0;font-size:var(--rc-font-size-small);border:1px solid var(--rc-border);border-radius:var(--rc-radius-md);overflow:hidden}.r8uj4ty{background-color:var(--rc-text);color:#0000;border-radius:var(--rc-radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;padding-inline-start:4px;padding-inline-end:4px;transition:background-color .3s,color .3s}[contenteditable=true] .r8uj4ty{background-color:color-mix(in srgb, var(--rc-text) 30%, transparent);color:inherit;-webkit-user-select:auto;user-select:auto;cursor:text}.r8uj4ty:hover{color:inherit;-webkit-user-select:auto;user-select:auto;background-color:#0000}.rich-content .r8uj4ty{background-color:var(--rc-text-tertiary);color:#0000}.rich-content .r8uj4ty:not(:hover):not(.rich-spoiler-revealed) *{color:#0000!important}.rich-content .r8uj4ty:hover,.r8uj4tz{color:inherit;-webkit-user-select:auto;user-select:auto;background-color:#0000}.r8uj4t10{font-size:var(--rc-font-size-small);vertical-align:baseline;border-radius:999px;padding-inline-start:.75em;padding-inline-end:.75em;line-height:1.6;display:inline-block}.r8uj4t11{font-family:var(--rc-font-mono);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);background-color:var(--rc-code-bg);border:1px dashed var(--rc-border);border-radius:var(--rc-radius-sm);white-space:break-spaces;padding:2px 6px;display:inline-block}.r8uj4t11:before{content:"<!--";opacity:.7}.r8uj4t11:after{content:"-->";opacity:.7}.r8uj4t12{ruby-position:over;ruby-align:center}[contenteditable=true] .r8uj4t12[data-ruby]{padding-top:.72em;line-height:1.2;display:inline-block;position:relative}[contenteditable=true] .r8uj4t12[data-ruby]:before{content:attr(data-ruby);text-align:center;color:var(--rc-text-secondary);pointer-events:none;white-space:nowrap;font-size:.58em;line-height:1;position:absolute;top:0;left:0;right:0;transform:translateY(-.68em)}.r8uj4t13{color:var(--rc-text-secondary);-webkit-user-select:none;user-select:none;font-size:.58em;line-height:1}.r8uj4t14{vertical-align:super;font-size:.8em}.r8uj4t15{min-width:1.5em;color:var(--rc-accent);background-color:var(--rc-accent-light);border-radius:999px;justify-content:center;align-items:center;padding:0 .35em;font-size:.82em;font-weight:600;line-height:1.45;text-decoration:none;transition:filter .15s;display:inline-flex}.r8uj4t15:hover{filter:brightness(.96)}.r8uj4t16{animation:1.2s ease-out r8uj4t1}.r8uj4t17{display:inline;position:relative}.r8uj4t18{margin-top:var(--rc-space-lg)}.r8uj4t19{border:none;border-top:1px solid var(--rc-border);margin:var(--rc-space-lg) 0 var(--rc-space-md)}.r8uj4t1a{padding-left:var(--rc-space-lg);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);line-height:1.6;list-style-type:decimal}.r8uj4t1b{margin-bottom:var(--rc-space-sm);padding-left:var(--rc-space-xs)}.r8uj4t1c{margin-left:var(--rc-space-xs);color:var(--rc-accent);font-size:.85em;font-family:var(--rc-font-mono);align-items:center;text-decoration:none;transition:opacity .15s;display:inline-flex}.r8uj4t1c:hover{opacity:.7}.r8uj4t1d{align-items:center;gap:var(--rc-space-sm);list-style-type:none;display:flex}.r8uj4t1e{color:var(--rc-text-secondary);font-size:var(--rc-font-size-small);flex-shrink:0;min-width:1.5em;font-weight:600}.r8uj4t1f{border:1px solid var(--rc-border);border-radius:var(--rc-radius-sm);padding:var(--rc-space-xs) var(--rc-space-sm);font-size:var(--rc-font-size-small);color:var(--rc-text);background-color:#0000;outline:none;flex:1;transition:border-color .15s}.r8uj4t1f:focus{border-color:var(--rc-accent)}.r8uj4t1g{width:20px;height:20px;color:var(--rc-text-secondary);cursor:pointer;border-radius:var(--rc-radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;transition:color .15s,background-color .15s;display:inline-flex}.r8uj4t1g:hover{color:#ef4444;background-color:#ef44441a}.r8uj4t1h{cursor:grab;border-radius:var(--rc-radius-sm);width:20px;height:20px;color:var(--rc-text-secondary);opacity:.4;z-index:10;justify-content:center;align-items:center;transition:opacity .15s,background-color .15s;display:flex;position:absolute}.r8uj4t1h:hover{opacity:1;background-color:var(--rc-fill-secondary)}.r8uj4t1h:active{cursor:grabbing}.r8uj4t1i{background-color:var(--rc-accent);pointer-events:none;z-index:10;border-radius:1px;height:2px;position:absolute}.r8uj4t1j{background-color:#0000;border:none;border-radius:0;margin:2em 0;padding:0 1em}.r8uj4t2 mark{background:0 0}.r8uj4t2 img{border-radius:var(--rc-radius-md);max-width:100%;height:auto}.r8uj4t2>:first-child,.r8uj4t2 .rich-editor__content>:first-child{margin-top:0}.r8uj4t2>:last-child,.r8uj4t2 .rich-editor__content>:last-child{margin-bottom:0}.r8uj4tc svg{flex-shrink:0}.r8uj4td:hover .r8uj4tc{opacity:.5}.r8uj4td:hover .r8uj4tc:hover{opacity:1}.r8uj4te:hover .r8uj4tc{opacity:.5}.r8uj4te:hover .r8uj4tc:hover{opacity:1}.r8uj4tf:hover .r8uj4tc{opacity:.5}.r8uj4tf:hover .r8uj4tc:hover{opacity:1}.r8uj4tg:hover .r8uj4tc{opacity:.5}.r8uj4tg:hover .r8uj4tc:hover{opacity:1}.r8uj4th:hover .r8uj4tc{opacity:.5}.r8uj4th:hover .r8uj4tc:hover{opacity:1}.r8uj4ti:hover .r8uj4tc{opacity:.5}.r8uj4ti:hover .r8uj4tc:hover{opacity:1}.r8uj4tk img{object-fit:contain;border-radius:2px;width:1em;height:1em}.r8uj4tk svg{width:.9em;height:.9em}.r8uj4to .r8uj4tl{list-style-type:lower-alpha}.r8uj4to .r8uj4tm{list-style-type:circle}.r8uj4tr>*,.r8uj4tq>*{background-image:linear-gradient(var(--rc-text-secondary), var(--rc-text-secondary));background-position:0;background-repeat:no-repeat;background-size:0% 1.5px;transition:background-size .35s cubic-bezier(.4,0,.2,1) .15s,opacity .15s}.r8uj4tr>*{opacity:.5;background-size:100% 1.5px}.r8uj4ts>.r8uj4t3:first-child{margin-top:0}.r8uj4ts>.r8uj4t3:last-child{margin-bottom:0}.r8uj4tx tbody tr:last-child .r8uj4tv{border-bottom:none}.r8uj4tv .r8uj4t3{line-height:inherit;margin:0;padding:0}.r8uj4tv>:first-child{margin-top:0}.r8uj4tv>:last-child{margin-bottom:0}.r8uj4tw .r8uj4t3{line-height:inherit;margin:0;padding:0}.r8uj4tw>:first-child{margin-top:0}.r8uj4tw>:last-child{margin-bottom:0}@supports (animation-timeline:view()){.r8uj4tb{--rc-hl-highlighted:0;animation:step-end both r8uj4t0;animation-timeline:view();animation-range:entry 100% cover 10%}}._1o2d5g50{margin:var(--rc-space-md) 0;interpolate-size:allow-keywords;background-color:#0000;border:none}._1o2d5g51{align-items:flex-start;gap:var(--rc-space-sm);cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--rc-space-xs) 0;color:var(--rc-text);font-size:1em;font-weight:500;line-height:var(--rc-line-height);border-radius:var(--rc-radius-sm);outline:none;list-style:none;transition:opacity .2s,color .2s,box-shadow .2s;display:flex}._1o2d5g51:hover{opacity:.82}._1o2d5g51:focus-visible{box-shadow:0 0 0 2px var(--rc-accent-light)}._1o2d5g51::-webkit-details-marker{display:none}._1o2d5g51::marker{content:"";display:none}._1o2d5g52{flex:1;min-width:0}._1o2d5g53{width:1.25rem;height:1.25rem;color:var(--rc-text-tertiary);transform-origin:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .35s cubic-bezier(.4,0,.2,1),color .2s;display:inline-flex;position:relative;top:.25rem}._1o2d5g54{margin-top:var(--rc-space-xs);padding:var(--rc-space-sm) var(--rc-space-xl);color:var(--rc-text-secondary);background-color:color-mix(in srgb, var(--rc-accent) 6%, var(--rc-bg-secondary));border-radius:var(--rc-radius-md)}._1o2d5g51:hover ._1o2d5g53{color:var(--rc-text-secondary)}._1o2d5g50[open] ._1o2d5g53{color:var(--rc-accent);transform:rotate(90deg)}._1o2d5g50::details-content{opacity:0;content-visibility:hidden;height:0;transition:height .4s cubic-bezier(.4, 0, .2, 1), opacity .4s cubic-bezier(.4, 0, .2, 1), content-visibility .4s cubic-bezier(.4, 0, .2, 1) allow-discrete;display:block;overflow:hidden}._1o2d5g50[open]::details-content{opacity:1;content-visibility:visible;height:auto}._1o2d5g54>.r8uj4t3:first-child{margin-top:0}._1o2d5g54>.r8uj4t3:last-child{margin-bottom:0}.v10dui0{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);color:var(--rc-text);line-height:1.75}.v10dui0 .r8uj4t3{margin-top:1.5em;margin-bottom:1.5em}.v10dui0 .r8uj4td{color:var(--rc-text);margin-top:0;margin-bottom:.833333em;font-size:3em;font-weight:800;line-height:1}.v10dui0 .r8uj4te{color:var(--rc-text);margin-top:1.86667em;margin-bottom:1.06667em;font-size:1.875em;font-weight:700;line-height:1.33333}.v10dui0 .r8uj4tf{color:var(--rc-text);margin-top:1.66667em;margin-bottom:.666667em;font-size:1.5em;font-weight:600;line-height:1.5}.v10dui0 .r8uj4tg{color:var(--rc-text);margin-top:2em;margin-bottom:.5em;font-weight:600;line-height:1.5625}.v10dui0 .r8uj4te+*,.v10dui0 .r8uj4tf+*,.v10dui0 .r8uj4tg+*{margin-top:0}.v10dui0 .r8uj4ts{color:var(--rc-text);quotes:"“""”""‘""’";background-color:#0000;border-radius:0;margin-top:2.5em;margin-bottom:2.5em;padding-left:calc(1.5em + 4px);font-style:italic;font-weight:500}.v10dui0 .r8uj4ts .r8uj4t3:first-of-type:before{content:open-quote}.v10dui0 .r8uj4ts .r8uj4t3:last-of-type:after{content:close-quote}.v10dui0 .r8uj4ts .r8uj4t3:first-child{margin-top:0}.v10dui0 .r8uj4ts .r8uj4t3:last-child{margin-bottom:0}.v10dui0 .r8uj4ta{color:inherit;background-color:var(--rc-code-bg);border-radius:var(--rc-radius-sm);font-size:.875em;font-weight:600;font-family:var(--rc-font-mono);padding:.2em .4em}.v10dui0 .r8uj4ta:before,.v10dui0 .r8uj4ta:after{content:"`";color:var(--rc-text-secondary);opacity:.5}.v10dui0 [contenteditable=true] .r8uj4ta:before,.v10dui0 [contenteditable=true] .r8uj4ta:after{content:""}.v10dui0 .rich-code-block{color:var(--rc-text);background-color:var(--rc-code-bg);border-radius:.375rem;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.75}.v10dui0 .rich-code-block pre{margin:0;padding:1em 1.5em}.v10dui0 .r8uj4tm,.v10dui0 .r8uj4tl{margin-top:1.5em;margin-bottom:1.5em;padding-left:1.75em}.v10dui0 .r8uj4tn{margin-top:.75em;margin-bottom:.75em}.v10dui0 .r8uj4tn:not(.r8uj4tr):not(.r8uj4tq){padding-left:.5em}.v10dui0 .r8uj4tn .r8uj4t3{margin-top:1em;margin-bottom:1em}.v10dui0 .r8uj4tn>.r8uj4t3:first-child{margin-top:1.5em}.v10dui0 .r8uj4tn>.r8uj4t3:last-child{margin-bottom:1.5em}.v10dui0 .r8uj4tm .r8uj4tm,.v10dui0 .r8uj4tm .r8uj4tl,.v10dui0 .r8uj4tl .r8uj4tm,.v10dui0 .r8uj4tl .r8uj4tl{margin-top:1em;margin-bottom:1em}.v10dui0 .r8uj4tx{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.5}.v10dui0 .r8uj4tx .r8uj4t3{line-height:inherit;margin:0;padding:0}.v10dui0 .rich-image{margin-top:2em;margin-bottom:2em}.v10dui0 .rich-image>*{margin-top:0;margin-bottom:0}.v10dui0 .rich-image figcaption{color:var(--rc-text-secondary);margin-top:1em;font-size:.875em;line-height:1.5}.v10dui0 .r8uj4tt{border-color:var(--rc-hr-border);border-top-width:1px;width:60px;margin:3.5em auto}.v10dui0 .r8uj4tt+*{margin-top:0}.v10dui0 .r8uj4tj{font-weight:500;text-decoration:underline}.v10dui0 .rich-banner,.v10dui0 .rich-code-snippet,.v10dui0 ._1o2d5g50{margin:2em 0}.v10dui0>:first-child{margin-top:0}.v10dui0>:last-child{margin-bottom:0}.egstxq0{vertical-align:middle;padding:0 2px;display:inline}.egstxq1{text-align:center;padding:var(--rc-space-md) 0;margin:var(--rc-space-md) 0;display:block;overflow-x:auto}.egstxq2{font-family:var(--rc-font-mono);color:var(--rc-code-text);background-color:var(--rc-code-bg);border-radius:var(--rc-radius-sm);padding:2px 6px;font-size:.9em}._14ko36c0{font-size:var(--rc-font-size-base);line-height:var(--rc-line-height)}._14ko36c0 .r8uj4t3{margin-bottom:.6em}._14ko36c0 .r8uj4td{margin-top:.8em;margin-bottom:.3em;font-size:1.35em;font-weight:700}._14ko36c0 .r8uj4te{margin-top:.7em;margin-bottom:.25em;font-size:1.2em;font-weight:700}._14ko36c0 .r8uj4tf{margin-top:.6em;margin-bottom:.2em;font-size:1.1em;font-weight:600}._14ko36c0 .r8uj4tg{margin-top:.5em;margin-bottom:.15em;font-size:1em;font-weight:600}._14ko36c0 .r8uj4th{margin-top:.45em;margin-bottom:.1em;font-size:.9em;font-weight:600}._14ko36c0 .r8uj4ti{margin-top:.4em;margin-bottom:.1em;font-size:.85em;font-weight:600}._14ko36c0 .r8uj4ts{padding:var(--rc-space-sm) var(--rc-space-md);padding-left:calc(var(--rc-space-md) + 3px);margin:var(--rc-space-sm) 0;font-size:.95em}._14ko36c0 .r8uj4ts:before{width:3px}._14ko36c0 .r8uj4tl,._14ko36c0 .r8uj4tm{padding-left:var(--rc-space-md);margin-bottom:.6em}._14ko36c0 .r8uj4tn{margin-bottom:.1em}._14ko36c0 .rich-code-block{margin:var(--rc-space-sm) 0;border-radius:var(--rc-radius-sm);font-size:var(--rc-font-size-small)}._14ko36c0 .rich-code-block pre{padding:var(--rc-space-sm)}._14ko36c0 .line:before{display:none!important}._14ko36c0 .r8uj4tx{margin:var(--rc-space-sm) 0;font-size:var(--rc-font-size-small)}._14ko36c0 .r8uj4tv,._14ko36c0 .r8uj4tw{padding:var(--rc-space-xs) var(--rc-space-sm)}._14ko36c0 .rich-image{margin:var(--rc-space-sm) 0}._14ko36c0 .rich-image figcaption{font-size:var(--rc-font-size-small)}._14ko36c0 .r8uj4tt{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}._14ko36c0 .r8uj4t1j{padding:var(--rc-space-sm) var(--rc-space-md);padding-left:var(--rc-space-lg);margin:var(--rc-space-sm) 0}._14ko36c0 .egstxq1{padding:var(--rc-space-sm) 0;margin:var(--rc-space-sm) 0}.ys4fw90{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);color:var(--rc-text);line-height:1.8}.ys4fw90 .rich-editor__content>.r8uj4t3,.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3{margin-top:1.25em;margin-bottom:1.25em;line-height:1.8}.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:not(:first-of-type){text-indent:2em}.ys4fw90 .rich-editor__content>.r8uj4t3:first-of-type,.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:first-of-type{margin-top:0}.ys4fw90 .rich-editor__content>.r8uj4t3:not(:first-of-type)>[data-lexical-text]:first-child{margin-inline-start:2em}.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:first-of-type:first-letter{float:left;margin-right:.2em;font-size:2.4em;line-height:1}.ys4fw90 .rich-editor__content>.r8uj4t3:first-of-type:first-letter{color:var(--rc-accent);font-size:1.5em;font-weight:700}.ys4fw90 .rich-editor__content>.r8uj4t3:last-child,.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:last-child{margin-bottom:0}.ys4fw90 .r8uj4t4{font-family:var(--rc-font-family);color:var(--rc-text);font-weight:600}.ys4fw90 .r8uj4td{letter-spacing:-.025em;color:var(--rc-text);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.ys4fw90 .r8uj4te{letter-spacing:-.025em;color:var(--rc-text);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.ys4fw90 .r8uj4te+*{margin-top:0}.ys4fw90 .r8uj4tf{letter-spacing:-.025em;color:var(--rc-text);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.ys4fw90 .r8uj4tf+*{margin-top:0}.ys4fw90 .r8uj4tg{color:var(--rc-text);margin-top:1.5em;margin-bottom:.5em;font-size:1.125em;font-weight:600;line-height:1.5}.ys4fw90 .r8uj4tg+*{margin-top:0}.ys4fw90 .r8uj4th{color:var(--rc-text);margin-top:1.5em;margin-bottom:.5em;font-size:1em;font-weight:600;line-height:1.5}.ys4fw90 .r8uj4th+*{margin-top:0}.ys4fw90 .r8uj4ti{color:var(--rc-text);text-transform:uppercase;margin-top:1.5em;margin-bottom:.5em;font-size:.875em;font-weight:600;line-height:1.5}.ys4fw90 .r8uj4ti+*{margin-top:0}.ys4fw90 .r8uj4ts{font-family:var(--rc-font-family-kai);color:color-mix(in srgb, var(--rc-accent) 60%, var(--rc-text));background-color:color-mix(in srgb, var(--rc-accent) 12%, var(--rc-bg));text-indent:0;border-radius:2px;margin:1.6em 0;padding:1.2em 1.5em;font-style:normal;line-height:1.75;transform:rotate(-.6deg);box-shadow:2px 3px 8px #00000014,0 1px 2px #0000000a}.ys4fw90 .r8uj4ts:before{content:"";background:repeating-linear-gradient(105deg, transparent, transparent 2px, #ffffff14 2px, #ffffff14 4px), color-mix(in srgb, var(--rc-accent) 20%, #0000000f);opacity:.85;border-radius:1px;width:56px;height:16px;position:absolute;top:-7px;bottom:auto;left:50%;transform:translate(-50%)rotate(1.2deg);box-shadow:0 1px 2px #0000000f}.ys4fw90 .r8uj4ts .r8uj4t3:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.ys4fw90 .r8uj4tj{text-underline-offset:2px;font-weight:500;text-decoration:underline;text-decoration-thickness:1px;transition:color .15s}.ys4fw90 .r8uj4tj:hover{text-decoration-thickness:2px}.ys4fw90 .r8uj4ta{font-size:.875em;font-family:var(--rc-font-mono);border-radius:var(--rc-radius-sm);background-color:var(--rc-code-bg);padding:.2em .4em;font-weight:500}.ys4fw90 .r8uj4tl,.ys4fw90 .r8uj4tm{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.ys4fw90 .r8uj4tn{margin-top:.5em;margin-bottom:.5em}.ys4fw90 .r8uj4tn:not(.r8uj4tr):not(.r8uj4tq){padding-left:.375em}.ys4fw90 .r8uj4tn::marker{color:var(--rc-text-secondary)}.ys4fw90 .rich-code-block{border-radius:var(--rc-radius-md);margin-top:1.71429em;margin-bottom:1.71429em;font-size:.875em;line-height:1.71429;overflow-x:auto}.ys4fw90 .rich-code-block pre{margin:0;padding:.857143em 1.14286em}.ys4fw90 .r8uj4tx{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.ys4fw90 .r8uj4tx .r8uj4t3{line-height:inherit;margin:0;padding:0}.ys4fw90 .r8uj4tx .r8uj4t3:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.ys4fw90 .rich-image{margin-top:2em;margin-bottom:2em}.ys4fw90 .rich-image img{border-radius:var(--rc-radius-md)}.ys4fw90 .rich-image figcaption{color:var(--rc-text-secondary);text-align:center;margin-top:.857143em;font-size:.875em;line-height:1.42857}.ys4fw90 .r8uj4tt{border:none;border-top:1px solid var(--rc-hr-border);opacity:.2;width:60px;margin:.5rem auto}.ys4fw90 .egstxq1{margin-top:1.6em;margin-bottom:1.6em;padding:1em 0;overflow-x:auto}.ys4fw90 .r8uj4ty{border-radius:var(--rc-radius-sm);padding-inline-start:.25em;padding-inline-end:.25em}.ys4fw90>:first-child{margin-top:0}.ys4fw90>:last-child{margin-bottom:0}._17ihk870{margin:var(--rc-space-md) 0;position:relative}._17ihk871{border-radius:var(--rc-radius-md);pointer-events:none;background:var(--rc-bg);border:1px solid var(--rc-border);box-shadow:var(--rc-shadow-top-bar);z-index:10;-webkit-user-select:none;user-select:none;white-space:nowrap;opacity:0;align-items:center;gap:2px;padding:4px 6px;transition:opacity .15s;display:flex;position:absolute;top:-36px;left:50%;transform:translate(-50%)}._17ihk872{width:24px;height:24px;color:var(--rc-text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}._17ihk873{border-radius:var(--rc-radius-sm);cursor:pointer;min-width:24px;height:24px;color:var(--rc-text-secondary);background:0 0;border:none;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:500;line-height:1;transition:color .15s,background-color .15s;display:flex}._17ihk873:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}._17ihk874{background:var(--rc-fill);color:var(--rc-text);font-weight:600}._17ihk875{background:var(--rc-border);flex-shrink:0;width:1px;height:16px;margin:0 2px}._17ihk876{border-radius:var(--rc-radius-sm);cursor:pointer;min-width:24px;height:24px;color:var(--rc-text-secondary);background:0 0;border:none;justify-content:center;align-items:center;padding:0 6px;transition:color .15s,background-color .15s;display:flex}._17ihk876:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}._17ihk877{gap:var(--rc-space-md);display:grid}._17ihk878{min-width:0}._17ihk879{outline:none}._17ihk870:hover ._17ihk871,._17ihk870:focus-within ._17ihk871{opacity:1;pointer-events:auto}@keyframes _1x58dbf0{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes _1x58dbf6{to{transform:rotate(360deg)}}.rich-image-upload-dragging{border-radius:var(--rc-radius-md);background-color:color-mix(in srgb, var(--rc-accent) 6%, transparent);position:relative}.rich-image-upload-dragging .rich-editor__content{outline:2px dashed color-mix(in srgb, var(--rc-accent) 48%, transparent);outline-offset:-2px}._1x58dbf1{z-index:25;pointer-events:none;flex-direction:column;align-items:flex-end;gap:.375rem;display:flex;position:absolute;bottom:.75rem;right:.75rem}._1x58dbf2{border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);background-color:color-mix(in srgb, var(--rc-bg) 95%, transparent);color:var(--rc-text);font-size:var(--rc-font-size-xs);box-shadow:var(--rc-shadow-top-bar);align-items:center;gap:.375rem;padding:.375rem .625rem;line-height:1.2;animation:.12s ease-out _1x58dbf0;display:inline-flex}._1x58dbf4{border-color:color-mix(in srgb, var(--rc-accent) 35%, transparent)}._1x58dbf5{border-color:color-mix(in srgb, var(--rc-alert-caution) 45%, transparent);color:var(--rc-alert-caution)}._1x58dbf7{border:2px solid color-mix(in srgb, var(--rc-text-secondary) 35%, transparent);border-top-color:color-mix(in srgb, var(--rc-text) 65%, transparent);border-radius:50%;width:12px;height:12px;animation:.75s linear infinite _1x58dbf6}._1x58dbf8._1x58dbf8{gap:0;width:min(560px,100vw - 2rem);padding:0;overflow:hidden}._1x58dbf9{border-bottom:1px solid var(--rc-border);padding:.875rem 1rem .75rem}._1x58dbfa{font-size:var(--rc-font-size-md);color:var(--rc-text);font-weight:600}._1x58dbfb{flex-direction:column;gap:.875rem;padding:.875rem 1rem;display:flex}._1x58dbfc{align-items:center;gap:.5rem;display:flex}._1x58dbfd{border-radius:var(--rc-radius-md);border:1.5px dashed var(--rc-border);min-height:190px;color:var(--rc-text-secondary);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.2rem;transition:border-color .15s,background-color .15s,color .15s;display:flex}._1x58dbfd:hover{border-color:color-mix(in srgb, var(--rc-accent) 35%, transparent);background-color:color-mix(in srgb, var(--rc-accent) 6%, transparent);color:var(--rc-text)}._1x58dbff{border-color:color-mix(in srgb, var(--rc-accent) 55%, transparent);background-color:color-mix(in srgb, var(--rc-accent) 8%, transparent);color:var(--rc-text);transform:scale(1.01)}._1x58dbfg{cursor:progress;opacity:.9}._1x58dbfh{border-radius:var(--rc-radius-md);background-color:color-mix(in srgb, var(--rc-text) 6%, transparent);justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}._1x58dbfi{font-size:var(--rc-font-size-sm);color:var(--rc-text);font-weight:600}._1x58dbfj{font-size:var(--rc-font-size-xs);color:var(--rc-text-secondary);text-align:center}._1x58dbfk{display:none}._1x58dbfl{flex-direction:column;align-items:center;gap:.5rem;display:flex}._1x58dbfm{font-size:var(--rc-font-size-sm);color:var(--rc-text);align-items:center;gap:.375rem;display:inline-flex}._1x58dbfn{align-items:center;gap:.5rem;display:flex}._1x58dbfo{border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);background-color:var(--rc-bg);width:100%;color:var(--rc-text);height:34px;font-size:var(--rc-font-size-sm);outline:none;padding:0 .625rem;transition:border-color .15s}._1x58dbfo:focus{border-color:color-mix(in srgb, var(--rc-accent) 50%, transparent)}._1x58dbfo::placeholder{color:var(--rc-text-secondary)}._1x58dbfp{border-radius:var(--rc-radius-md);border:1px solid var(--rc-border);background-color:color-mix(in srgb, var(--rc-text) 2%, transparent);overflow:hidden}._1x58dbfq{object-fit:cover;width:100%;max-height:220px;display:block}._1x58dbfr{font-size:var(--rc-font-size-xs);color:var(--rc-text-secondary);align-items:center;gap:.4rem;display:inline-flex}._1x58dbfs{border-top:1px solid var(--rc-border);background-color:color-mix(in srgb, var(--rc-text) 2%, transparent);justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 1rem;display:flex}.gr1ebt0::selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt0 ::selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt0::-moz-selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt0 ::-moz-selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt1::selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.gr1ebt1 ::selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.gr1ebt1::-moz-selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.gr1ebt1 ::-moz-selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}::highlight(rich-editor-text-selection){background-color:var(--rc-accent-light);color:inherit}::highlight(rich-editor-text-selection-inactive){background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.b94s950{max-width:var(--rc-max-width);flex:1;width:100%;min-height:0;margin:0 auto;position:relative}.b94s951{width:100%;min-height:100px;padding:var(--ce-padding-top,12px) var(--rc-space-md) 12px var(--rc-space-md);outline:none}.b94s952{top:var(--ce-padding-top,12px);left:var(--rc-space-md);color:var(--rc-text-secondary);pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}
|
|
1
|
+
:root{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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,[data-theme=dark]{--rc-text:#fafafa;--rc-text-secondary:#a3a3a3;--rc-text-tertiary:#737373;--rc-text-quaternary:#525252;--rc-bg:#0a0a0a;--rc-bg-secondary:#171717;--rc-bg-tertiary:#262626;--rc-fill:#2a2a2a;--rc-fill-secondary:#222;--rc-fill-tertiary:#1a1a1a;--rc-fill-quaternary:#141414;--rc-border:#262626;--rc-accent:#60a5fa;--rc-accent-light:#60a5fa20;--rc-link:#60a5fa;--rc-code-text:#d4d4d4;--rc-code-bg:#262626;--rc-hr-border:#262626;--rc-quote-border:#60a5fa;--rc-quote-bg:#262626;--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 #00000073, 0 2px 8px #0000004d;--rc-shadow-modal:0 10px 15px -3px #0006, 0 4px 6px -4px #00000059;--rc-shadow-menu:0 1px 4px #00000040, 0 4px 16px #0006;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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}._13h71jk0{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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}._13h71jk1{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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}._13h71jk2{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#a3a3a3;--rc-quote-bg:#fafafa;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:none;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--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-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", 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:12px}.dark ._13h71jk0,[data-theme=dark] ._13h71jk0,.dark._13h71jk0,[data-theme=dark]._13h71jk0,.dark ._13h71jk1,[data-theme=dark] ._13h71jk1,.dark._13h71jk1,[data-theme=dark]._13h71jk1,.dark ._13h71jk2,[data-theme=dark] ._13h71jk2,.dark._13h71jk2,[data-theme=dark]._13h71jk2{--rc-text:#fafafa;--rc-text-secondary:#a3a3a3;--rc-text-tertiary:#737373;--rc-text-quaternary:#525252;--rc-bg:#0a0a0a;--rc-bg-secondary:#171717;--rc-bg-tertiary:#262626;--rc-fill:#2a2a2a;--rc-fill-secondary:#222;--rc-fill-tertiary:#1a1a1a;--rc-fill-quaternary:#141414;--rc-border:#262626;--rc-accent:#60a5fa;--rc-accent-light:#60a5fa20;--rc-link:#60a5fa;--rc-code-text:#d4d4d4;--rc-code-bg:#262626;--rc-hr-border:#262626;--rc-quote-border:#60a5fa;--rc-quote-bg:#262626;--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 #00000073, 0 2px 8px #0000004d;--rc-shadow-modal:0 10px 15px -3px #0006, 0 4px 6px -4px #00000059;--rc-shadow-menu:0 1px 4px #00000040, 0 4px 16px #0006}@keyframes r8uj4t0{to{--rc-hl-highlighted:1}}@keyframes r8uj4t1{0%{background-color:#ef44443d}to{background-color:#0000}}.r8uj4t2{font-family:var(--rc-font-family);font-size:var(--rc-font-size-base);line-height:var(--rc-line-height);color:var(--rc-text);word-wrap:break-word;overflow-wrap:break-word}.r8uj4t3{line-height:var(--rc-line-height);margin:0 0 1em}.r8uj4t4{font-weight:700}.r8uj4t5{font-style:italic}.r8uj4t6{text-decoration:underline}.r8uj4t7{opacity:.65;text-decoration:line-through}.r8uj4t8{vertical-align:super;font-size:.8em}.r8uj4t9{vertical-align:sub;font-size:.8em}.r8uj4ta{font-family:var(--rc-font-mono);background-color:var(--rc-code-bg);color:inherit;border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);padding:2px 6px;font-size:.9em}[contenteditable=true] .r8uj4ta{padding-right:0}.r8uj4tb{--rc-hl-lightness:.3;--rc-hl-highlighted:1;--rc-hl-color:oklch(from var(--rc-accent) l c h / var(--rc-hl-lightness));background:linear-gradient(120deg, var(--rc-hl-color,lightblue) 50%, transparent 50%) 110% 0 / 200% 100% no-repeat;background-position:calc((1 - var(--rc-hl-highlighted)) * 110%) 0;color:var(--rc-text);transition:background-position 1s}[contenteditable=true] .r8uj4tb{--rc-hl-highlighted:1;animation:none}[data-theme=dark] .r8uj4tb{--rc-hl-lightness:.35}.r8uj4tc{color:var(--rc-text-secondary);opacity:0;align-items:center;font-size:.8rem;text-decoration:none;transition:opacity .15s;display:flex;position:absolute;top:0;bottom:0;left:-1.25rem}.r8uj4td{font-size:2em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.5em;margin-bottom:.5em;position:relative}[contenteditable=true] .r8uj4td:before{content:"H1";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4te{font-size:1.5em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.4em;margin-bottom:.45em;position:relative}[contenteditable=true] .r8uj4te:before{content:"H2";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4tf{font-size:1.25em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.3em;margin-bottom:.4em;position:relative}[contenteditable=true] .r8uj4tf:before{content:"H3";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4tg{font-size:1.125em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.2em;margin-bottom:.35em;position:relative}[contenteditable=true] .r8uj4tg:before{content:"H4";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4th{font-size:1em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.1em;margin-bottom:.3em;position:relative}[contenteditable=true] .r8uj4th:before{content:"H5";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4ti{font-size:.875em;font-weight:600;line-height:var(--rc-line-height-tight);color:var(--rc-text);margin-top:1em;margin-bottom:.25em;position:relative}[contenteditable=true] .r8uj4ti:before{content:"H6";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4tj{color:var(--rc-link);text-decoration:none;transition:color .2s}.r8uj4tj:hover{text-decoration:underline}.r8uj4tj[data-favicon=loaded]:before{content:"";vertical-align:-.125em;background-image:var(--rc-link-favicon);background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:2px;width:1em;height:1em;margin-right:.2em;display:inline-block}.r8uj4tk{vertical-align:-.125em;align-items:center;margin-right:.15em;display:inline-flex}.r8uj4tl{padding-left:var(--rc-space-lg);margin-bottom:1em;list-style-type:decimal}.r8uj4tm{padding-left:var(--rc-space-lg);margin-bottom:1em;list-style-type:disc}.r8uj4tn{margin-bottom:.25em}.r8uj4to{list-style-type:none}.r8uj4tp{padding-left:0;list-style-type:none}.r8uj4tq{--rc-cb-size:1.125rem;outline:none;padding-left:2em;list-style-type:none;transition:color .25s;position:relative}.r8uj4tq:before{content:"";left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:1.5px solid var(--rc-text-quaternary);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;background-color:#0000;transition:background-color .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1),transform .15s;position:absolute}.r8uj4tq:after{content:"";left:calc(var(--rc-cb-size) * .32);top:calc((1lh - var(--rc-cb-size)) / 2 + var(--rc-cb-size) * .14);width:calc(var(--rc-cb-size) * .28);height:calc(var(--rc-cb-size) * .55);border-right:2px solid var(--rc-accent);border-bottom:2px solid var(--rc-accent);box-sizing:border-box;pointer-events:none;transform-origin:50%;opacity:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1) .1s,opacity .15s;display:block;position:absolute;transform:rotate(45deg)scale(0)}[contenteditable=true] .r8uj4tq:active:before{transform:scale(.94)}[contenteditable=true] .r8uj4tq:hover:before{border-color:var(--rc-text-tertiary)}.r8uj4tr{--rc-cb-size:1.125rem;color:var(--rc-text-secondary);outline:none;padding-left:2em;list-style-type:none;transition:color .25s;position:relative}.r8uj4tr:before{content:"";left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:1.5px solid var(--rc-text-quaternary);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;background-color:var(--rc-accent-light);border-color:var(--rc-accent);transition:background-color .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1),transform .15s;position:absolute}.r8uj4tr:after{content:"";left:calc(var(--rc-cb-size) * .32);top:calc((1lh - var(--rc-cb-size)) / 2 + var(--rc-cb-size) * .14);width:calc(var(--rc-cb-size) * .28);height:calc(var(--rc-cb-size) * .55);border-right:2px solid var(--rc-accent);border-bottom:2px solid var(--rc-accent);box-sizing:border-box;pointer-events:none;transform-origin:50%;opacity:1;transition:transform .3s cubic-bezier(.34,1.56,.64,1) .1s,opacity .15s;display:block;position:absolute;transform:rotate(45deg)scale(1)}[contenteditable=true] .r8uj4tr:active:before{transform:scale(.94)}[contenteditable=true] .r8uj4tr:hover:before{background-color:color-mix(in oklab, var(--rc-accent) 12%, transparent)}.r8uj4ts{background-color:var(--rc-quote-bg);margin:var(--rc-space-md) 0;padding:var(--rc-space-sm) var(--rc-space-md);padding-left:calc(var(--rc-space-md) + 4px);color:var(--rc-text-secondary);border-radius:0 var(--rc-radius-sm) var(--rc-radius-sm) 0;font-style:normal;position:relative}.r8uj4ts:before{content:"";border-radius:var(--rc-radius-sm);background-color:var(--rc-quote-border);width:4px;position:absolute;top:0;bottom:0;left:0}.r8uj4tt{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}.r8uj4tu{overflow-x:auto}.r8uj4tv{border:none;border-bottom:1px solid var(--rc-border);border-right:1px solid var(--rc-border);padding:1.25em var(--rc-space-lg);text-align:left;vertical-align:middle;line-height:1.5}.r8uj4tv:last-child{border-right:none}.r8uj4tw{border:none;border-bottom:1px solid var(--rc-border);border-right:1px solid var(--rc-border);padding:var(--rc-space-md) var(--rc-space-lg);text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--rc-text-secondary);background-color:var(--rc-bg-secondary);vertical-align:middle;z-index:1;font-size:.75em;font-weight:600;line-height:1.5;position:sticky;top:0}.r8uj4tw:last-child{border-right:none}.r8uj4tx{border-collapse:separate;border-spacing:0;width:100%;margin:var(--rc-space-lg) 0;font-size:var(--rc-font-size-small);border:1px solid var(--rc-border);border-radius:var(--rc-radius-md);overflow:hidden}.r8uj4ty{background-color:var(--rc-text);color:#0000;border-radius:var(--rc-radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;padding-inline-start:4px;padding-inline-end:4px;transition:background-color .3s,color .3s}[contenteditable=true] .r8uj4ty{background-color:color-mix(in srgb, var(--rc-text) 30%, transparent);color:inherit;-webkit-user-select:auto;user-select:auto;cursor:text}.r8uj4ty:hover{color:inherit;-webkit-user-select:auto;user-select:auto;background-color:#0000}.rich-content .r8uj4ty{background-color:var(--rc-text-tertiary);color:#0000}.rich-content .r8uj4ty:not(:hover):not(.rich-spoiler-revealed) *{color:#0000!important}.rich-content .r8uj4ty:hover,.r8uj4tz{color:inherit;-webkit-user-select:auto;user-select:auto;background-color:#0000}.r8uj4t10{font-size:var(--rc-font-size-small);vertical-align:baseline;border-radius:999px;padding-inline-start:.75em;padding-inline-end:.75em;line-height:1.6;display:inline-block}.r8uj4t11{font-family:var(--rc-font-mono);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);background-color:var(--rc-code-bg);border:1px dashed var(--rc-border);border-radius:var(--rc-radius-sm);white-space:break-spaces;padding:2px 6px;display:inline-block}.r8uj4t11:before{content:"<!--";opacity:.7}.r8uj4t11:after{content:"-->";opacity:.7}.r8uj4t12{ruby-position:over;ruby-align:center}[contenteditable=true] .r8uj4t12[data-ruby]{padding-top:.72em;line-height:1.2;display:inline-block;position:relative}[contenteditable=true] .r8uj4t12[data-ruby]:before{content:attr(data-ruby);text-align:center;color:var(--rc-text-secondary);pointer-events:none;white-space:nowrap;font-size:.58em;line-height:1;position:absolute;top:0;left:0;right:0;transform:translateY(-.68em)}.r8uj4t13{color:var(--rc-text-secondary);-webkit-user-select:none;user-select:none;font-size:.58em;line-height:1}.r8uj4t14{vertical-align:super;font-size:.8em}.r8uj4t15{min-width:1.5em;color:var(--rc-accent);background-color:var(--rc-accent-light);border-radius:999px;justify-content:center;align-items:center;padding:0 .35em;font-size:.82em;font-weight:600;line-height:1.45;text-decoration:none;transition:filter .15s;display:inline-flex}.r8uj4t15:hover{filter:brightness(.96)}.r8uj4t16{animation:1.2s ease-out r8uj4t1}.r8uj4t17{display:inline;position:relative}.r8uj4t18{margin-top:var(--rc-space-lg)}.r8uj4t19{border:none;border-top:1px solid var(--rc-border);margin:var(--rc-space-lg) 0 var(--rc-space-md)}.r8uj4t1a{padding-left:var(--rc-space-lg);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);line-height:1.6;list-style-type:decimal}.r8uj4t1b{margin-bottom:var(--rc-space-sm);padding-left:var(--rc-space-xs)}.r8uj4t1c{margin-left:var(--rc-space-xs);color:var(--rc-accent);font-size:.85em;font-family:var(--rc-font-mono);align-items:center;text-decoration:none;transition:opacity .15s;display:inline-flex}.r8uj4t1c:hover{opacity:.7}.r8uj4t1d{align-items:center;gap:var(--rc-space-sm);list-style-type:none;display:flex}.r8uj4t1e{color:var(--rc-text-secondary);font-size:var(--rc-font-size-small);flex-shrink:0;min-width:1.5em;font-weight:600}.r8uj4t1f{border:1px solid var(--rc-border);border-radius:var(--rc-radius-sm);padding:var(--rc-space-xs) var(--rc-space-sm);font-size:var(--rc-font-size-small);color:var(--rc-text);background-color:#0000;outline:none;flex:1;transition:border-color .15s}.r8uj4t1f:focus{border-color:var(--rc-accent)}.r8uj4t1g{width:20px;height:20px;color:var(--rc-text-secondary);cursor:pointer;border-radius:var(--rc-radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;transition:color .15s,background-color .15s;display:inline-flex}.r8uj4t1g:hover{color:#ef4444;background-color:#ef44441a}.r8uj4t1h{cursor:grab;border-radius:var(--rc-radius-sm);width:20px;height:20px;color:var(--rc-text-secondary);opacity:.4;z-index:10;justify-content:center;align-items:center;transition:opacity .15s,background-color .15s;display:flex;position:absolute}.r8uj4t1h:hover{opacity:1;background-color:var(--rc-fill-secondary)}.r8uj4t1h:active{cursor:grabbing}.r8uj4t1i{background-color:var(--rc-accent);pointer-events:none;z-index:10;border-radius:1px;height:2px;position:absolute}.r8uj4t1j{background-color:#0000;border:none;border-radius:0;margin:2em 0;padding:0 1em}.r8uj4t2 mark{background:0 0}.r8uj4t2 img{border-radius:var(--rc-radius-md);max-width:100%;height:auto}.r8uj4t2>:first-child,.r8uj4t2 .rich-editor__content>:first-child{margin-top:0}.r8uj4t2>:last-child,.r8uj4t2 .rich-editor__content>:last-child{margin-bottom:0}.r8uj4tc svg{flex-shrink:0}.r8uj4td:hover .r8uj4tc{opacity:.5}.r8uj4td:hover .r8uj4tc:hover{opacity:1}.r8uj4te:hover .r8uj4tc{opacity:.5}.r8uj4te:hover .r8uj4tc:hover{opacity:1}.r8uj4tf:hover .r8uj4tc{opacity:.5}.r8uj4tf:hover .r8uj4tc:hover{opacity:1}.r8uj4tg:hover .r8uj4tc{opacity:.5}.r8uj4tg:hover .r8uj4tc:hover{opacity:1}.r8uj4th:hover .r8uj4tc{opacity:.5}.r8uj4th:hover .r8uj4tc:hover{opacity:1}.r8uj4ti:hover .r8uj4tc{opacity:.5}.r8uj4ti:hover .r8uj4tc:hover{opacity:1}.r8uj4tk img{object-fit:contain;border-radius:2px;width:1em;height:1em}.r8uj4tk svg{width:.9em;height:.9em}.r8uj4to .r8uj4tl{list-style-type:lower-alpha}.r8uj4to .r8uj4tm{list-style-type:circle}.r8uj4tr>*,.r8uj4tq>*{background-image:linear-gradient(var(--rc-text-secondary), var(--rc-text-secondary));background-position:0;background-repeat:no-repeat;background-size:0% 1.5px;transition:background-size .35s cubic-bezier(.4,0,.2,1) .15s,opacity .15s}.r8uj4tr>*{opacity:.5;background-size:100% 1.5px}.r8uj4ts>.r8uj4t3:first-child{margin-top:0}.r8uj4ts>.r8uj4t3:last-child{margin-bottom:0}.r8uj4tx tbody tr:last-child .r8uj4tv{border-bottom:none}.r8uj4tv .r8uj4t3{line-height:inherit;margin:0;padding:0}.r8uj4tv>:first-child{margin-top:0}.r8uj4tv>:last-child{margin-bottom:0}.r8uj4tw .r8uj4t3{line-height:inherit;margin:0;padding:0}.r8uj4tw>:first-child{margin-top:0}.r8uj4tw>:last-child{margin-bottom:0}@supports (animation-timeline:view()){.r8uj4tb{--rc-hl-highlighted:0;animation:step-end both r8uj4t0;animation-timeline:view();animation-range:entry 100% cover 10%}}._1o2d5g50{margin:var(--rc-space-md) 0;interpolate-size:allow-keywords;background-color:#0000;border:none}._1o2d5g51{align-items:flex-start;gap:var(--rc-space-sm);cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--rc-space-xs) 0;color:var(--rc-text);font-size:1em;font-weight:500;line-height:var(--rc-line-height);border-radius:var(--rc-radius-sm);outline:none;list-style:none;transition:opacity .2s,color .2s,box-shadow .2s;display:flex}._1o2d5g51:hover{opacity:.82}._1o2d5g51:focus-visible{box-shadow:0 0 0 2px var(--rc-accent-light)}._1o2d5g51::-webkit-details-marker{display:none}._1o2d5g51::marker{content:"";display:none}._1o2d5g52{flex:1;min-width:0}._1o2d5g53{width:1.25rem;height:1.25rem;color:var(--rc-text-tertiary);transform-origin:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .35s cubic-bezier(.4,0,.2,1),color .2s;display:inline-flex;position:relative;top:.25rem}._1o2d5g54{margin-top:var(--rc-space-xs);padding:var(--rc-space-sm) var(--rc-space-xl);color:var(--rc-text-secondary);background-color:color-mix(in srgb, var(--rc-accent) 6%, var(--rc-bg-secondary));border-radius:var(--rc-radius-md)}._1o2d5g51:hover ._1o2d5g53{color:var(--rc-text-secondary)}._1o2d5g50[open] ._1o2d5g53{color:var(--rc-accent);transform:rotate(90deg)}._1o2d5g50::details-content{opacity:0;content-visibility:hidden;height:0;transition:height .4s cubic-bezier(.4, 0, .2, 1), opacity .4s cubic-bezier(.4, 0, .2, 1), content-visibility .4s cubic-bezier(.4, 0, .2, 1) allow-discrete;display:block;overflow:hidden}._1o2d5g50[open]::details-content{opacity:1;content-visibility:visible;height:auto}._1o2d5g54>.r8uj4t3:first-child{margin-top:0}._1o2d5g54>.r8uj4t3:last-child{margin-bottom:0}.v10dui0{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);color:var(--rc-text);line-height:1.75}.v10dui0 .r8uj4t3{margin-top:1.5em;margin-bottom:1.5em}.v10dui0 .r8uj4td{color:var(--rc-text);margin-top:0;margin-bottom:.833333em;font-size:3em;font-weight:800;line-height:1}.v10dui0 .r8uj4te{color:var(--rc-text);margin-top:1.86667em;margin-bottom:1.06667em;font-size:1.875em;font-weight:700;line-height:1.33333}.v10dui0 .r8uj4tf{color:var(--rc-text);margin-top:1.66667em;margin-bottom:.666667em;font-size:1.5em;font-weight:600;line-height:1.5}.v10dui0 .r8uj4tg{color:var(--rc-text);margin-top:2em;margin-bottom:.5em;font-weight:600;line-height:1.5625}.v10dui0 .r8uj4te+*,.v10dui0 .r8uj4tf+*,.v10dui0 .r8uj4tg+*{margin-top:0}.v10dui0 .r8uj4ts{color:var(--rc-text);quotes:"“""”""‘""’";background-color:#0000;border-radius:0;margin-top:2.5em;margin-bottom:2.5em;padding-left:calc(1.5em + 4px);font-style:italic;font-weight:500}.v10dui0 .r8uj4ts:not([data-no-open-quote]) .r8uj4t3:first-of-type:before{content:open-quote}.v10dui0 .r8uj4ts:not([data-no-close-quote]) .r8uj4t3:last-of-type:after{content:close-quote}.v10dui0 .r8uj4ts .r8uj4t3:first-child{margin-top:0}.v10dui0 .r8uj4ts .r8uj4t3:last-child{margin-bottom:0}.v10dui0 .r8uj4ta{color:inherit;background-color:var(--rc-code-bg);border-radius:var(--rc-radius-sm);font-size:.875em;font-weight:600;font-family:var(--rc-font-mono);padding:.2em .4em}.v10dui0 .r8uj4ta:before,.v10dui0 .r8uj4ta:after{content:"`";color:var(--rc-text-secondary);opacity:.5}.v10dui0 [contenteditable=true] .r8uj4ta:before,.v10dui0 [contenteditable=true] .r8uj4ta:after{content:""}.v10dui0 .rich-code-block{color:var(--rc-text);background-color:var(--rc-code-bg);border-radius:.375rem;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.75}.v10dui0 .rich-code-block pre{margin:0;padding:1em 1.5em}.v10dui0 .r8uj4tm,.v10dui0 .r8uj4tl{margin-top:1.5em;margin-bottom:1.5em;padding-left:1.75em}.v10dui0 .r8uj4tn{margin-top:.75em;margin-bottom:.75em}.v10dui0 .r8uj4tn:not(.r8uj4tr):not(.r8uj4tq){padding-left:.5em}.v10dui0 .r8uj4tn .r8uj4t3{margin-top:1em;margin-bottom:1em}.v10dui0 .r8uj4tn>.r8uj4t3:first-child{margin-top:1.5em}.v10dui0 .r8uj4tn>.r8uj4t3:last-child{margin-bottom:1.5em}.v10dui0 .r8uj4tm .r8uj4tm,.v10dui0 .r8uj4tm .r8uj4tl,.v10dui0 .r8uj4tl .r8uj4tm,.v10dui0 .r8uj4tl .r8uj4tl{margin-top:1em;margin-bottom:1em}.v10dui0 .r8uj4tx{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.5}.v10dui0 .r8uj4tx .r8uj4t3{line-height:inherit;margin:0;padding:0}.v10dui0 .rich-image{margin-top:2em;margin-bottom:2em}.v10dui0 .rich-image>*{margin-top:0;margin-bottom:0}.v10dui0 .rich-image figcaption{color:var(--rc-text-secondary);margin-top:1em;font-size:.875em;line-height:1.5}.v10dui0 .r8uj4tt{border-color:var(--rc-hr-border);border-top-width:1px;width:60px;margin:3.5em auto}.v10dui0 .r8uj4tt+*{margin-top:0}.v10dui0 .r8uj4tj{font-weight:500;text-decoration:underline}.v10dui0 .rich-banner,.v10dui0 .rich-code-snippet,.v10dui0 ._1o2d5g50{margin:2em 0}.v10dui0>:first-child{margin-top:0}.v10dui0>:last-child{margin-bottom:0}.egstxq0{vertical-align:middle;padding:0 2px;display:inline}.egstxq1{text-align:center;padding:var(--rc-space-md) 0;margin:var(--rc-space-md) 0;display:block;overflow-x:auto}.egstxq2{font-family:var(--rc-font-mono);color:var(--rc-code-text);background-color:var(--rc-code-bg);border-radius:var(--rc-radius-sm);padding:2px 6px;font-size:.9em}._14ko36c0{font-size:var(--rc-font-size-base);line-height:var(--rc-line-height)}._14ko36c0 .r8uj4t3{margin-bottom:.6em}._14ko36c0 .r8uj4td{margin-top:.8em;margin-bottom:.3em;font-size:1.35em;font-weight:700}._14ko36c0 .r8uj4te{margin-top:.7em;margin-bottom:.25em;font-size:1.2em;font-weight:700}._14ko36c0 .r8uj4tf{margin-top:.6em;margin-bottom:.2em;font-size:1.1em;font-weight:600}._14ko36c0 .r8uj4tg{margin-top:.5em;margin-bottom:.15em;font-size:1em;font-weight:600}._14ko36c0 .r8uj4th{margin-top:.45em;margin-bottom:.1em;font-size:.9em;font-weight:600}._14ko36c0 .r8uj4ti{margin-top:.4em;margin-bottom:.1em;font-size:.85em;font-weight:600}._14ko36c0 .r8uj4ts{padding:var(--rc-space-sm) var(--rc-space-md);padding-left:calc(var(--rc-space-md) + 3px);margin:var(--rc-space-sm) 0;font-size:.95em}._14ko36c0 .r8uj4ts:before{width:3px}._14ko36c0 .r8uj4tl,._14ko36c0 .r8uj4tm{padding-left:var(--rc-space-md);margin-bottom:.6em}._14ko36c0 .r8uj4tn{margin-bottom:.1em}._14ko36c0 .rich-code-block{margin:var(--rc-space-sm) 0;border-radius:var(--rc-radius-sm);font-size:var(--rc-font-size-small)}._14ko36c0 .rich-code-block pre{padding:var(--rc-space-sm)}._14ko36c0 .line:before{display:none!important}._14ko36c0 .r8uj4tx{margin:var(--rc-space-sm) 0;font-size:var(--rc-font-size-small)}._14ko36c0 .r8uj4tv,._14ko36c0 .r8uj4tw{padding:var(--rc-space-xs) var(--rc-space-sm)}._14ko36c0 .rich-image{margin:var(--rc-space-sm) 0}._14ko36c0 .rich-image figcaption{font-size:var(--rc-font-size-small)}._14ko36c0 .r8uj4tt{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}._14ko36c0 .r8uj4t1j{padding:var(--rc-space-sm) var(--rc-space-md);padding-left:var(--rc-space-lg);margin:var(--rc-space-sm) 0}._14ko36c0 .egstxq1{padding:var(--rc-space-sm) 0;margin:var(--rc-space-sm) 0}.ys4fw90{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);color:var(--rc-text);line-height:1.8}.ys4fw90 .rich-editor__content>.r8uj4t3,.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3{margin-top:1.25em;margin-bottom:1.25em;line-height:1.8}.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:not(:first-of-type){text-indent:2em}.ys4fw90 .rich-editor__content>.r8uj4t3:first-of-type,.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:first-of-type{margin-top:0}.ys4fw90 .rich-editor__content>.r8uj4t3:not(:first-of-type)>[data-lexical-text]:first-child{margin-inline-start:2em}.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:first-of-type:first-letter{float:left;margin-right:.2em;font-size:2.4em;line-height:1}.ys4fw90 .rich-editor__content>.r8uj4t3:first-of-type:first-letter{color:var(--rc-accent);font-size:1.5em;font-weight:700}.ys4fw90 .rich-editor__content>.r8uj4t3:last-child,.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:last-child{margin-bottom:0}.ys4fw90 .r8uj4t4{font-family:var(--rc-font-family);color:var(--rc-text);font-weight:600}.ys4fw90 .r8uj4td{letter-spacing:-.025em;color:var(--rc-text);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.ys4fw90 .r8uj4te{letter-spacing:-.025em;color:var(--rc-text);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.ys4fw90 .r8uj4te+*{margin-top:0}.ys4fw90 .r8uj4tf{letter-spacing:-.025em;color:var(--rc-text);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.ys4fw90 .r8uj4tf+*{margin-top:0}.ys4fw90 .r8uj4tg{color:var(--rc-text);margin-top:1.5em;margin-bottom:.5em;font-size:1.125em;font-weight:600;line-height:1.5}.ys4fw90 .r8uj4tg+*{margin-top:0}.ys4fw90 .r8uj4th{color:var(--rc-text);margin-top:1.5em;margin-bottom:.5em;font-size:1em;font-weight:600;line-height:1.5}.ys4fw90 .r8uj4th+*{margin-top:0}.ys4fw90 .r8uj4ti{color:var(--rc-text);text-transform:uppercase;margin-top:1.5em;margin-bottom:.5em;font-size:.875em;font-weight:600;line-height:1.5}.ys4fw90 .r8uj4ti+*{margin-top:0}.ys4fw90 .r8uj4ts{font-family:var(--rc-font-family-kai);color:color-mix(in srgb, var(--rc-accent) 60%, var(--rc-text));background-color:color-mix(in srgb, var(--rc-accent) 12%, var(--rc-bg));text-indent:0;border-radius:2px;margin:1.6em 0;padding:1.2em 1.5em;font-style:normal;line-height:1.75;transform:rotate(-.6deg);box-shadow:2px 3px 8px #00000014,0 1px 2px #0000000a}.ys4fw90 .r8uj4ts:before{content:"";background:repeating-linear-gradient(105deg, transparent, transparent 2px, #ffffff14 2px, #ffffff14 4px), color-mix(in srgb, var(--rc-accent) 20%, #0000000f);opacity:.85;border-radius:1px;width:56px;height:16px;position:absolute;top:-7px;bottom:auto;left:50%;transform:translate(-50%)rotate(1.2deg);box-shadow:0 1px 2px #0000000f}.ys4fw90 .r8uj4ts .r8uj4t3:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.ys4fw90 .r8uj4tj{text-underline-offset:2px;font-weight:500;text-decoration:underline;text-decoration-thickness:1px;transition:color .15s}.ys4fw90 .r8uj4tj:hover{text-decoration-thickness:2px}.ys4fw90 .r8uj4ta{font-size:.875em;font-family:var(--rc-font-mono);border-radius:var(--rc-radius-sm);background-color:var(--rc-code-bg);padding:.2em .4em;font-weight:500}.ys4fw90 .r8uj4tl,.ys4fw90 .r8uj4tm{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.ys4fw90 .r8uj4tn{margin-top:.5em;margin-bottom:.5em}.ys4fw90 .r8uj4tn:not(.r8uj4tr):not(.r8uj4tq){padding-left:.375em}.ys4fw90 .r8uj4tn::marker{color:var(--rc-text-secondary)}.ys4fw90 .rich-code-block{border-radius:var(--rc-radius-md);margin-top:1.71429em;margin-bottom:1.71429em;font-size:.875em;line-height:1.71429;overflow-x:auto}.ys4fw90 .rich-code-block pre{margin:0;padding:.857143em 1.14286em}.ys4fw90 .r8uj4tx{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.ys4fw90 .r8uj4tx .r8uj4t3{line-height:inherit;margin:0;padding:0}.ys4fw90 .r8uj4tx .r8uj4t3:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.ys4fw90 .rich-image{margin-top:2em;margin-bottom:2em}.ys4fw90 .rich-image img{border-radius:var(--rc-radius-md)}.ys4fw90 .rich-image figcaption{color:var(--rc-text-secondary);text-align:center;margin-top:.857143em;font-size:.875em;line-height:1.42857}.ys4fw90 .r8uj4tt{border:none;border-top:1px solid var(--rc-hr-border);opacity:.2;width:60px;margin:.5rem auto}.ys4fw90 .egstxq1{margin-top:1.6em;margin-bottom:1.6em;padding:1em 0;overflow-x:auto}.ys4fw90 .r8uj4ty{border-radius:var(--rc-radius-sm);padding-inline-start:.25em;padding-inline-end:.25em}.ys4fw90>:first-child{margin-top:0}.ys4fw90>:last-child{margin-bottom:0}._17ihk870{margin:var(--rc-space-md) 0;position:relative}._17ihk871{border-radius:var(--rc-radius-md);pointer-events:none;background:var(--rc-bg);border:1px solid var(--rc-border);box-shadow:var(--rc-shadow-top-bar);z-index:10;-webkit-user-select:none;user-select:none;white-space:nowrap;opacity:0;align-items:center;gap:2px;padding:4px 6px;transition:opacity .15s;display:flex;position:absolute;top:-36px;left:50%;transform:translate(-50%)}._17ihk872{width:24px;height:24px;color:var(--rc-text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}._17ihk873{border-radius:var(--rc-radius-sm);cursor:pointer;min-width:24px;height:24px;color:var(--rc-text-secondary);background:0 0;border:none;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:500;line-height:1;transition:color .15s,background-color .15s;display:flex}._17ihk873:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}._17ihk874{background:var(--rc-fill);color:var(--rc-text);font-weight:600}._17ihk875{background:var(--rc-border);flex-shrink:0;width:1px;height:16px;margin:0 2px}._17ihk876{border-radius:var(--rc-radius-sm);cursor:pointer;min-width:24px;height:24px;color:var(--rc-text-secondary);background:0 0;border:none;justify-content:center;align-items:center;padding:0 6px;transition:color .15s,background-color .15s;display:flex}._17ihk876:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}._17ihk877{gap:var(--rc-space-md);display:grid}._17ihk878{min-width:0}._17ihk879{outline:none}._17ihk870:hover ._17ihk871,._17ihk870:focus-within ._17ihk871{opacity:1;pointer-events:auto}@keyframes _1x58dbf0{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes _1x58dbf6{to{transform:rotate(360deg)}}.rich-image-upload-dragging{border-radius:var(--rc-radius-md);background-color:color-mix(in srgb, var(--rc-accent) 6%, transparent);position:relative}.rich-image-upload-dragging .rich-editor__content{outline:2px dashed color-mix(in srgb, var(--rc-accent) 48%, transparent);outline-offset:-2px}._1x58dbf1{z-index:25;pointer-events:none;flex-direction:column;align-items:flex-end;gap:.375rem;display:flex;position:absolute;bottom:.75rem;right:.75rem}._1x58dbf2{border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);background-color:color-mix(in srgb, var(--rc-bg) 95%, transparent);color:var(--rc-text);font-size:var(--rc-font-size-xs);box-shadow:var(--rc-shadow-top-bar);align-items:center;gap:.375rem;padding:.375rem .625rem;line-height:1.2;animation:.12s ease-out _1x58dbf0;display:inline-flex}._1x58dbf4{border-color:color-mix(in srgb, var(--rc-accent) 35%, transparent)}._1x58dbf5{border-color:color-mix(in srgb, var(--rc-alert-caution) 45%, transparent);color:var(--rc-alert-caution)}._1x58dbf7{border:2px solid color-mix(in srgb, var(--rc-text-secondary) 35%, transparent);border-top-color:color-mix(in srgb, var(--rc-text) 65%, transparent);border-radius:50%;width:12px;height:12px;animation:.75s linear infinite _1x58dbf6}._1x58dbf8._1x58dbf8{gap:0;width:min(560px,100vw - 2rem);padding:0;overflow:hidden}._1x58dbf9{border-bottom:1px solid var(--rc-border);padding:.875rem 1rem .75rem}._1x58dbfa{font-size:var(--rc-font-size-md);color:var(--rc-text);font-weight:600}._1x58dbfb{flex-direction:column;gap:.875rem;padding:.875rem 1rem;display:flex}._1x58dbfc{align-items:center;gap:.5rem;display:flex}._1x58dbfd{border-radius:var(--rc-radius-md);border:1.5px dashed var(--rc-border);min-height:190px;color:var(--rc-text-secondary);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.2rem;transition:border-color .15s,background-color .15s,color .15s;display:flex}._1x58dbfd:hover{border-color:color-mix(in srgb, var(--rc-accent) 35%, transparent);background-color:color-mix(in srgb, var(--rc-accent) 6%, transparent);color:var(--rc-text)}._1x58dbff{border-color:color-mix(in srgb, var(--rc-accent) 55%, transparent);background-color:color-mix(in srgb, var(--rc-accent) 8%, transparent);color:var(--rc-text);transform:scale(1.01)}._1x58dbfg{cursor:progress;opacity:.9}._1x58dbfh{border-radius:var(--rc-radius-md);background-color:color-mix(in srgb, var(--rc-text) 6%, transparent);justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}._1x58dbfi{font-size:var(--rc-font-size-sm);color:var(--rc-text);font-weight:600}._1x58dbfj{font-size:var(--rc-font-size-xs);color:var(--rc-text-secondary);text-align:center}._1x58dbfk{display:none}._1x58dbfl{flex-direction:column;align-items:center;gap:.5rem;display:flex}._1x58dbfm{font-size:var(--rc-font-size-sm);color:var(--rc-text);align-items:center;gap:.375rem;display:inline-flex}._1x58dbfn{align-items:center;gap:.5rem;display:flex}._1x58dbfo{border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);background-color:var(--rc-bg);width:100%;color:var(--rc-text);height:34px;font-size:var(--rc-font-size-sm);outline:none;padding:0 .625rem;transition:border-color .15s}._1x58dbfo:focus{border-color:color-mix(in srgb, var(--rc-accent) 50%, transparent)}._1x58dbfo::placeholder{color:var(--rc-text-secondary)}._1x58dbfp{border-radius:var(--rc-radius-md);border:1px solid var(--rc-border);background-color:color-mix(in srgb, var(--rc-text) 2%, transparent);overflow:hidden}._1x58dbfq{object-fit:cover;width:100%;max-height:220px;display:block}._1x58dbfr{font-size:var(--rc-font-size-xs);color:var(--rc-text-secondary);align-items:center;gap:.4rem;display:inline-flex}._1x58dbfs{border-top:1px solid var(--rc-border);background-color:color-mix(in srgb, var(--rc-text) 2%, transparent);justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 1rem;display:flex}.gr1ebt0::selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt0 ::selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt0::-moz-selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt0 ::-moz-selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt1::selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.gr1ebt1 ::selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.gr1ebt1::-moz-selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.gr1ebt1 ::-moz-selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}::highlight(rich-editor-text-selection){background-color:var(--rc-accent-light);color:inherit}::highlight(rich-editor-text-selection-inactive){background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.b94s950{max-width:var(--rc-max-width);flex:1;width:100%;min-height:0;margin:0 auto;position:relative}.b94s951{width:100%;min-height:100px;padding:var(--ce-padding-top,12px) var(--rc-space-md) 12px var(--rc-space-md);outline:none}.b94s952{top:var(--ce-padding-top,12px);left:var(--rc-space-md);color:var(--rc-text-secondary);pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}
|
|
2
2
|
/*$vite$:1*/
|
package/dist/static-entry.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { F as useNestedContentRenderer, I as useOptionalNestedContentRenderer, M as extractTextContent, P as NestedContentRendererProvider, a as getTagBgColor, t as editorTheme } from "./theme-DG7I1YM5.js";
|
|
2
2
|
import { C as MENTION_NODE_KEY, D as VIDEO_NODE_KEY, E as TAG_NODE_KEY, S as LINK_CARD_NODE_KEY, T as RUBY_NODE_KEY, _ as CODE_BLOCK_NODE_KEY, a as FootnoteDefinitionsProvider, b as IMAGE_NODE_KEY, c as useFootnoteDisplayNumber, d as RendererConfigProvider, f as useRendererConfig, g as BANNER_NODE_KEY, h as ALERT_NODE_KEY, l as RendererWrapper, m as useVariant, o as useFootnoteContent, p as useRendererMode, s as useFootnoteDefinitions, u as createRendererDecoration, v as FOOTNOTE_NODE_KEY, w as MERMAID_NODE_KEY, x as KATEX_NODE_KEY, y as FOOTNOTE_SECTION_NODE_KEY } from "./KaTeXRenderer-CqnhvDmj.js";
|
|
3
3
|
import { a as noteVariant, c as richContent, i as getVariantClass, l as semanticClassNames, n as katexStyles, o as commentVariant, r as clsx, s as articleVariant, t as katexClassNames, u as sharedStyles } from "./katex.css-CIOEOXyd.js";
|
|
4
|
-
import { D as useColorScheme, E as ColorSchemeProvider, n as builtinNodes, r as customNodes, t as allNodes } from "./config-
|
|
4
|
+
import { D as useColorScheme, E as ColorSchemeProvider, n as builtinNodes, r as customNodes, t as allNodes } from "./config-ayEp2yVZ.js";
|
|
5
5
|
import { i as detailsStyles, n as gridStyles, r as detailsClassNames, t as gridClassNames } from "./grid.css-CJCkLTZc.js";
|
|
6
6
|
import { t as normalizeSerializedEditorState } from "./normalizeSerializedEditorState-B-1wmGzd.js";
|
|
7
7
|
import { a as LinkFavicon, i as useExtraNodes, n as usePresentDialog, r as ExtraNodesProvider, t as PresentDialogProvider } from "./PresentDialogContext-DKNicgia.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"litexml-import.d.ts","sourceRoot":"","sources":["../../src/utils/litexml-import.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAmCrD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,EAAE,GAAG,IAAI,CAMvF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haklex/rich-editor",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.2",
|
|
4
4
|
"description": "Core rich text editor based on Lexical",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -48,9 +48,10 @@
|
|
|
48
48
|
"@lexical/code-core": "^0.44.0",
|
|
49
49
|
"nanoid": "^5.1.9",
|
|
50
50
|
"thumbhash": "^0.1.1",
|
|
51
|
-
"@haklex/rich-editor-ui": "0.9.
|
|
52
|
-
"@haklex/rich-headless": "0.9.
|
|
53
|
-
"@haklex/rich-
|
|
51
|
+
"@haklex/rich-editor-ui": "0.9.2",
|
|
52
|
+
"@haklex/rich-headless": "0.9.2",
|
|
53
|
+
"@haklex/rich-litexml": "0.9.2",
|
|
54
|
+
"@haklex/rich-style-token": "0.9.2"
|
|
54
55
|
},
|
|
55
56
|
"devDependencies": {
|
|
56
57
|
"@lexical/extension": "^0.44.0",
|