@haklex/rich-editor 0.0.74 → 0.0.76

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.
@@ -8,7 +8,7 @@ import { createLinkMatcherWithRegExp, registerAutoLink, LinkNode, AutoLinkNode }
8
8
  import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
9
9
  import { useEffect, createContext, use, useRef, useState, useMemo, useCallback } from "react";
10
10
  import { $isQuoteNode, QuoteNode, $createQuoteNode, DRAG_DROP_PASTE } from "@lexical/rich-text";
11
- import { KEY_ARROW_DOWN_COMMAND, $getSelection, $isRangeSelection, $isDecoratorNode, $isElementNode, $isRootNode, $isParagraphNode, $createParagraphNode, COMMAND_PRIORITY_CRITICAL, KEY_ENTER_COMMAND, $isNodeSelection, KEY_BACKSPACE_COMMAND, COMMAND_PRIORITY_HIGH, KEY_DELETE_COMMAND, KEY_ARROW_UP_COMMAND, $isTextNode, $createNodeSelection, $setSelection, $getRoot, COMMAND_PRIORITY_EDITOR, COMMAND_PRIORITY_LOW, $createTextNode, $createLineBreakNode, PASTE_COMMAND, $insertNodes, createEditor, $parseSerializedNode, createState, $getState, $addUpdateTag, $setState, $nodesOfType } from "lexical";
11
+ import { KEY_ARROW_RIGHT_COMMAND, $getSelection, $isRangeSelection, COMMAND_PRIORITY_CRITICAL, KEY_ARROW_DOWN_COMMAND, $isDecoratorNode, $isElementNode, $isRootNode, $isParagraphNode, $createParagraphNode, KEY_ENTER_COMMAND, $isNodeSelection, KEY_BACKSPACE_COMMAND, COMMAND_PRIORITY_HIGH, KEY_DELETE_COMMAND, KEY_ARROW_UP_COMMAND, $isTextNode, IS_CODE, $createNodeSelection, $setSelection, $getRoot, COMMAND_PRIORITY_EDITOR, COMMAND_PRIORITY_LOW, $createTextNode, $createLineBreakNode, PASTE_COMMAND, $insertNodes, createEditor, $parseSerializedNode, createState, $getState, $addUpdateTag, $setState, $nodesOfType } from "lexical";
12
12
  import { b as setCodeBlockCursorIntent, g as getResolvedEditNodes, $ as $createBannerEditNode, d as $createCodeBlockEditNode } from "./node-registry-B2U2_LrI.js";
13
13
  import { HorizontalRuleNode, $createHorizontalRuleNode, INSERT_HORIZONTAL_RULE_COMMAND } from "@lexical/extension";
14
14
  import { HORIZONTAL_RULE_BLOCK_TRANSFORMER as HORIZONTAL_RULE_BLOCK_TRANSFORMER$1, GIT_ALERT_TRANSFORMER as GIT_ALERT_TRANSFORMER$1, CONTAINER_TRANSFORMER as CONTAINER_TRANSFORMER$1, FOOTNOTE_TRANSFORMER as FOOTNOTE_TRANSFORMER$1, FOOTNOTE_SECTION_TRANSFORMER as FOOTNOTE_SECTION_TRANSFORMER$1, KATEX_INLINE_TRANSFORMER as KATEX_INLINE_TRANSFORMER$1, KATEX_BLOCK_TRANSFORMER as KATEX_BLOCK_TRANSFORMER$1, MENTION_TRANSFORMER as MENTION_TRANSFORMER$1, RUBY_TRANSFORMER as RUBY_TRANSFORMER$1, SPOILER_TRANSFORMER as SPOILER_TRANSFORMER$1, INSERT_TRANSFORMER, SUPERSCRIPT_TRANSFORMER, SUBSCRIPT_TRANSFORMER, IMAGE_BLOCK_TRANSFORMER, VIDEO_BLOCK_TRANSFORMER, CODE_BLOCK_NODE_TRANSFORMER, LINK_CARD_BLOCK_TRANSFORMER, MERMAID_BLOCK_TRANSFORMER, TABLE_BLOCK_TRANSFORMER } from "@haklex/rich-headless/transformers";
@@ -16,6 +16,7 @@ import { CHECK_LIST, TRANSFORMERS, QUOTE, CODE, $convertFromMarkdownString } fro
16
16
  import { $ as $createAlertQuoteEditNode } from "./AlertQuoteEditNode-CHdvQnOr.js";
17
17
  import { s as AlertQuoteNode, F as FootnoteNode, w as $createFootnoteNode, k as KaTeXInlineNode, K as KaTeXBlockNode, t as $createKaTeXInlineNode, v as $createKaTeXBlockNode, M as MentionNode, a as $createMentionNode, o as extractTextContent, S as SpoilerNode, x as $createSpoilerNode, $ as $createImageNode, O as OPEN_IMAGE_UPLOAD_DIALOG_COMMAND } from "./theme-CYsyGmCL.js";
18
18
  import { r as CodeBlockNode, n as BannerNode, D as DetailsNode, s as $createDetailsNode, F as FootnoteSectionNode, d as $isFootnoteSectionNode, $ as $createFootnoteSectionNode, e as $isGridContainerNode, R as RubyNode, c as $createRubyNode } from "./config-DcR_yktp.js";
19
+ import { $createTableNode, $createTableRowNode, $createTableCellNode, TableCellHeaderStates } from "@lexical/table";
19
20
  import { MarkdownShortcutPlugin } from "@lexical/react/LexicalMarkdownShortcutPlugin";
20
21
  import { nanoid } from "nanoid";
21
22
  import { Dialog, DialogPopup, DialogTitle, SegmentedControl, ActionButton, ActionBar } from "@haklex/rich-editor-ui";
@@ -71,9 +72,52 @@ function isAtTopLevelBoundary(selection, direction) {
71
72
  function isSingleLineParagraph(node) {
72
73
  return $isParagraphNode(node) && !node.getTextContent().includes("\n");
73
74
  }
75
+ function getOutermostNodeWithinTopLevel(node, topLevel) {
76
+ let current = node;
77
+ while (current.getParent() !== topLevel) {
78
+ const parent = current.getParent();
79
+ if (!parent) break;
80
+ current = parent;
81
+ }
82
+ return current;
83
+ }
84
+ function exitInlineCodeAtLineEnd(selection) {
85
+ if (!selection.isCollapsed() || selection.anchor.type !== "text") {
86
+ return false;
87
+ }
88
+ const anchorNode = selection.anchor.getNode();
89
+ if (!$isTextNode(anchorNode) || !anchorNode.hasFormat("code")) {
90
+ return false;
91
+ }
92
+ if (selection.anchor.offset !== anchorNode.getTextContentSize()) {
93
+ return false;
94
+ }
95
+ if (!isAtTopLevelBoundary(selection, "end")) {
96
+ return false;
97
+ }
98
+ const topLevel = anchorNode.getTopLevelElementOrThrow();
99
+ const boundaryNode = getOutermostNodeWithinTopLevel(anchorNode, topLevel);
100
+ const exitOffset = boundaryNode.getIndexWithinParent() + 1;
101
+ selection.anchor.set(topLevel.getKey(), exitOffset, "element");
102
+ selection.focus.set(topLevel.getKey(), exitOffset, "element");
103
+ selection.setFormat(anchorNode.getFormat() & ~IS_CODE);
104
+ selection.setStyle(anchorNode.getStyle());
105
+ return true;
106
+ }
74
107
  function BlockExitPlugin() {
75
108
  const [editor] = useLexicalComposerContext();
76
109
  useEffect(() => {
110
+ const unregisterArrowRight = editor.registerCommand(
111
+ KEY_ARROW_RIGHT_COMMAND,
112
+ (event) => {
113
+ const selection = $getSelection();
114
+ if (!$isRangeSelection(selection)) return false;
115
+ if (!exitInlineCodeAtLineEnd(selection)) return false;
116
+ event?.preventDefault();
117
+ return true;
118
+ },
119
+ COMMAND_PRIORITY_CRITICAL
120
+ );
77
121
  const unregisterArrowDown = editor.registerCommand(
78
122
  KEY_ARROW_DOWN_COMMAND,
79
123
  (event) => {
@@ -108,8 +152,7 @@ function BlockExitPlugin() {
108
152
  }
109
153
  if (!quoteNode) return false;
110
154
  if (quoteChild.getNextSibling() !== null) return false;
111
- if (!$isParagraphNode(quoteChild) || quoteChild.getTextContent() !== "")
112
- return false;
155
+ if (!$isParagraphNode(quoteChild) || quoteChild.getTextContent() !== "") return false;
113
156
  event?.preventDefault();
114
157
  let next = quoteNode.getNextSibling();
115
158
  if (!next) {
@@ -260,6 +303,7 @@ function BlockExitPlugin() {
260
303
  COMMAND_PRIORITY_CRITICAL
261
304
  );
262
305
  return () => {
306
+ unregisterArrowRight();
263
307
  unregisterArrowDown();
264
308
  unregisterCmdEnter();
265
309
  unregisterBackspace();
@@ -383,7 +427,7 @@ const CODE_BLOCK_MULTILINE_TRANSFORMER = {
383
427
  regExp: /[\t ]*```$/
384
428
  },
385
429
  regExpStart: /^[\t ]*```([\w-]+)?/,
386
- replace: (rootNode, _children, startMatch, _endMatch, linesInBetween) => {
430
+ replace: (rootNode, _children, startMatch, _endMatch, linesInBetween, isImport) => {
387
431
  const lang = startMatch[1] || "";
388
432
  let code = "";
389
433
  if (linesInBetween) {
@@ -394,7 +438,11 @@ const CODE_BLOCK_MULTILINE_TRANSFORMER = {
394
438
  }
395
439
  const Klass = findCodeBlockKlass(getResolvedEditNodes());
396
440
  const node = new Klass(code, lang);
397
- rootNode.replace(node);
441
+ if (isImport || $isRootNode(rootNode)) {
442
+ rootNode.append(node);
443
+ } else {
444
+ rootNode.replace(node);
445
+ }
398
446
  const selection = $createNodeSelection();
399
447
  selection.add(node.getKey());
400
448
  $setSelection(selection);
@@ -597,6 +645,62 @@ const SPOILER_TRANSFORMER = {
597
645
  textNode.replace(spoilerNode);
598
646
  }
599
647
  };
648
+ const TABLE_ROW_REG_EXP = /^\|(.+)\|\s*$/;
649
+ const TABLE_DIVIDER_REG_EXP = /^\|(?:\s*:?-+:?\s*\|)+\s*$/;
650
+ function parseCells(row) {
651
+ const match = row.match(TABLE_ROW_REG_EXP);
652
+ if (!match) return [];
653
+ return match[1].split("|").map((c) => c.trim());
654
+ }
655
+ const TABLE_IMPORT_TRANSFORMER = {
656
+ dependencies: [],
657
+ export: () => null,
658
+ handleImportAfterStartMatch({ lines, rootNode, startLineIndex }) {
659
+ if (startLineIndex + 1 >= lines.length) return null;
660
+ const dividerLine = lines[startLineIndex + 1];
661
+ if (!TABLE_DIVIDER_REG_EXP.test(dividerLine)) return null;
662
+ const headerCells = parseCells(lines[startLineIndex]);
663
+ if (headerCells.length === 0) return null;
664
+ let endLineIndex = startLineIndex + 1;
665
+ const dataRows = [];
666
+ for (let i = startLineIndex + 2; i < lines.length; i++) {
667
+ if (!TABLE_ROW_REG_EXP.test(lines[i])) break;
668
+ dataRows.push(parseCells(lines[i]));
669
+ endLineIndex = i;
670
+ }
671
+ const tableNode = $createTableNode();
672
+ const headerRow = $createTableRowNode();
673
+ for (const cell of headerCells) {
674
+ const cellNode = $createTableCellNode(TableCellHeaderStates.ROW);
675
+ const p = $createParagraphNode();
676
+ p.append($createTextNode(cell));
677
+ cellNode.append(p);
678
+ headerRow.append(cellNode);
679
+ }
680
+ tableNode.append(headerRow);
681
+ for (const row of dataRows) {
682
+ const rowNode = $createTableRowNode();
683
+ for (let i = 0; i < headerCells.length; i++) {
684
+ const cellNode = $createTableCellNode(TableCellHeaderStates.NO_STATUS);
685
+ const p = $createParagraphNode();
686
+ p.append($createTextNode(row[i] ?? ""));
687
+ cellNode.append(p);
688
+ rowNode.append(cellNode);
689
+ }
690
+ tableNode.append(rowNode);
691
+ }
692
+ rootNode.append(tableNode);
693
+ return [true, endLineIndex];
694
+ },
695
+ regExpEnd: {
696
+ optional: true,
697
+ regExp: TABLE_ROW_REG_EXP
698
+ },
699
+ regExpStart: TABLE_ROW_REG_EXP,
700
+ replace: () => {
701
+ },
702
+ type: "multiline-element"
703
+ };
600
704
  const ALL_TRANSFORMERS = [
601
705
  // Inline transformers
602
706
  SPOILER_TRANSFORMER,
@@ -621,6 +725,7 @@ const ALL_TRANSFORMERS = [
621
725
  MERMAID_BLOCK_TRANSFORMER,
622
726
  GRID_CONTAINER_BLOCK_TRANSFORMER,
623
727
  HORIZONTAL_RULE_BLOCK_TRANSFORMER,
728
+ TABLE_IMPORT_TRANSFORMER,
624
729
  TABLE_BLOCK_TRANSFORMER,
625
730
  QUOTE_TRANSFORMER,
626
731
  ...TRANSFORMERS.filter((t) => t !== QUOTE && t !== CODE)
@@ -668,10 +773,12 @@ function detectMarkdown(text) {
668
773
  return score >= 5;
669
774
  }
670
775
  function convertAndInsert(markdown) {
776
+ let conversionError = null;
671
777
  const tempEditor = createEditor({
672
778
  namespace: "markdown-paste-temp",
673
779
  nodes: getResolvedEditNodes(),
674
- onError: () => {
780
+ onError: (error) => {
781
+ conversionError = error;
675
782
  }
676
783
  });
677
784
  tempEditor.update(
@@ -680,9 +787,15 @@ function convertAndInsert(markdown) {
680
787
  },
681
788
  { discrete: true }
682
789
  );
790
+ if (conversionError) {
791
+ console.error("MarkdownPastePlugin: convertAndInsert error", conversionError);
792
+ return false;
793
+ }
683
794
  const serializedChildren = tempEditor.getEditorState().toJSON().root.children;
795
+ if (!serializedChildren.length) return false;
684
796
  const nodes = serializedChildren.map((s) => $parseSerializedNode(s));
685
797
  $insertNodes(nodes);
798
+ return true;
686
799
  }
687
800
  function MarkdownPastePlugin() {
688
801
  const [editor] = useLexicalComposerContext();
@@ -713,10 +826,13 @@ function MarkdownPastePlugin() {
713
826
  const text = clipboardData.getData("text/plain");
714
827
  if (!text || !detectMarkdown(text)) return false;
715
828
  try {
829
+ if (!convertAndInsert(text)) {
830
+ return false;
831
+ }
716
832
  event.preventDefault();
717
- convertAndInsert(text);
718
833
  return true;
719
- } catch {
834
+ } catch (error) {
835
+ console.error("MarkdownPastePlugin: paste error", error);
720
836
  return false;
721
837
  }
722
838
  },
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { F as FootnotePlugin, O as OnChangePlugin, S as SubmitShortcutPlugin, E as EditorRefPlugin, a as AutoFocusPlugin, d as ImageUploadProvider, g as defaultImageUpload, C as CorePlugins, I as ImageUploadPlugin, L as LinkFaviconPlugin, c as BlockIdPlugin, f as blockIdState } from "./SubmitShortcutPlugin-Cc2wXgH5.js";
1
+ import { F as FootnotePlugin, O as OnChangePlugin, S as SubmitShortcutPlugin, E as EditorRefPlugin, a as AutoFocusPlugin, d as ImageUploadProvider, g as defaultImageUpload, C as CorePlugins, I as ImageUploadPlugin, L as LinkFaviconPlugin, c as BlockIdPlugin, f as blockIdState } from "./SubmitShortcutPlugin-BFBAwTb1.js";
2
2
  import { L, P, u } from "./PresentDialogContext-DmwCjSHw.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { s as setResolvedEditNodes, a as allEditNodes } from "./node-registry-B2U2_LrI.js";
@@ -1 +1 @@
1
- {"version":3,"file":"BlockExitPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/BlockExitPlugin.tsx"],"names":[],"mappings":"AA8EA,wBAAgB,eAAe,SAqP9B"}
1
+ {"version":3,"file":"BlockExitPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/BlockExitPlugin.tsx"],"names":[],"mappings":"AA+GA,wBAAgB,eAAe,SA8P9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownPastePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/MarkdownPastePlugin.tsx"],"names":[],"mappings":"AA6HA,wBAAgB,mBAAmB,SAsDlC"}
1
+ {"version":3,"file":"MarkdownPastePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/MarkdownPastePlugin.tsx"],"names":[],"mappings":"AAuIA,wBAAgB,mBAAmB,SAyDlC"}
@@ -1,4 +1,4 @@
1
- import { A, a, b, B, c, C, E, F, H, I, d, L, M, e, O, S, f, g, u } from "./SubmitShortcutPlugin-Cc2wXgH5.js";
1
+ import { A, a, b, B, c, C, E, F, H, I, d, L, M, e, O, S, f, g, u } from "./SubmitShortcutPlugin-BFBAwTb1.js";
2
2
  import { A as A2, I as I2, K, M as M2 } from "./MermaidPlugin-DjLUVZvB.js";
3
3
  export {
4
4
  A as ALL_TRANSFORMERS,
@@ -1 +1 @@
1
- :root{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}:root.dark{--rc-text: #fafafa;--rc-text-secondary: #a1a1aa;--rc-text-tertiary: #71717a;--rc-text-quaternary: #52525b;--rc-bg: #09090b;--rc-bg-secondary: #18181b;--rc-bg-tertiary: #27272a;--rc-fill: #2a2a2f;--rc-fill-secondary: #222226;--rc-fill-tertiary: #1b1b1f;--rc-fill-quaternary: #131316;--rc-border: #27272a;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #e4e4e7;--rc-code-bg: #27272a;--rc-hr-border: #27272a;--rc-quote-border: #60a5fa;--rc-quote-bg: #1e3a5f;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._13h71jk0{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._13h71jk1{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.8;--rc-line-height-tight: 1.4;--rc-font-family: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._13h71jk2{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #a1a1aa;--rc-quote-bg: #fafafa;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: none;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 2px;--rc-space-sm: 4px;--rc-space-md: 10px;--rc-space-lg: 16px;--rc-space-xl: 20px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 14px;--rc-font-size-small: 12px;--rc-line-height: 1.5;--rc-line-height-tight: 1.3;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 3px;--rc-radius-md: 6px;--rc-radius-lg: 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: #a1a1aa;--rc-text-tertiary: #71717a;--rc-text-quaternary: #52525b;--rc-bg: #09090b;--rc-bg-secondary: #18181b;--rc-bg-tertiary: #27272a;--rc-fill: #2a2a2f;--rc-fill-secondary: #222226;--rc-fill-tertiary: #1b1b1f;--rc-fill-quaternary: #131316;--rc-border: #27272a;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #e4e4e7;--rc-code-bg: #27272a;--rc-hr-border: #27272a;--rc-quote-border: #60a5fa;--rc-quote-bg: #1e3a5f;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4)}@keyframes r8uj4t1{to{--rc-hl-highlighted: 1}}@keyframes r8uj4t2{0%{background-color:#ef44443d}to{background-color:transparent}}.r8uj4t0{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}.r8uj4t0 .rich-paragraph{margin:0 0 1em;line-height:var(--rc-line-height)}.r8uj4t0 .rich-text-bold{font-weight:700}.r8uj4t0 .rich-text-italic{font-style:italic}.r8uj4t0 .rich-text-underline{text-decoration:underline}.r8uj4t0 .rich-text-strikethrough{text-decoration:line-through;opacity:.65}.r8uj4t0 .rich-text-superscript{vertical-align:super;font-size:.8em}.r8uj4t0 .rich-text-subscript{vertical-align:sub;font-size:.8em}.r8uj4t0 .rich-text-code{font-family:var(--rc-font-mono);font-size:.9em;background-color:var(--rc-code-bg);color:var(--rc-code-text);padding:2px 6px;border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border)}.r8uj4t0 mark{background:transparent}.r8uj4t0 .rich-text-highlight{--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] .rich-text-highlight{--rc-hl-highlighted: 1;animation:none}[data-theme=dark] .r8uj4t0 .rich-text-highlight{--rc-hl-lightness: .35}.r8uj4t0 :is(.rich-heading-h1,.rich-heading-h2,.rich-heading-h3,.rich-heading-h4,.rich-heading-h5,.rich-heading-h6){position:relative}.r8uj4t0 .rich-heading-anchor{position:absolute;left:-1.25rem;top:0;bottom:0;display:flex;align-items:center;text-decoration:none;color:var(--rc-text-secondary);opacity:0;transition:opacity .15s ease;font-size:.8rem}.r8uj4t0 .rich-heading-anchor svg{flex-shrink:0}.r8uj4t0 :is(.rich-heading-h1,.rich-heading-h2,.rich-heading-h3,.rich-heading-h4,.rich-heading-h5,.rich-heading-h6):hover .rich-heading-anchor{opacity:.5}.r8uj4t0 :is(.rich-heading-h1,.rich-heading-h2,.rich-heading-h3,.rich-heading-h4,.rich-heading-h5,.rich-heading-h6):hover .rich-heading-anchor:hover{opacity:1}[contenteditable=true] .rich-heading-h1:before,[contenteditable=true] .rich-heading-h2:before,[contenteditable=true] .rich-heading-h3:before,[contenteditable=true] .rich-heading-h4:before,[contenteditable=true] .rich-heading-h5:before,[contenteditable=true] .rich-heading-h6:before{position:absolute;left:-1.5rem;bottom:.5rem;display:flex;font-size:.5rem;font-weight:600;color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-family:var(--rc-font-mono)}[contenteditable=true] .rich-heading-h1:before{content:"H1"}[contenteditable=true] .rich-heading-h2:before{content:"H2"}[contenteditable=true] .rich-heading-h3:before{content:"H3"}[contenteditable=true] .rich-heading-h4:before{content:"H4"}[contenteditable=true] .rich-heading-h5:before{content:"H5"}[contenteditable=true] .rich-heading-h6:before{content:"H6"}.r8uj4t0 .rich-heading-h1{font-size:2em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.5em;margin-bottom:.5em}.r8uj4t0 .rich-heading-h2{font-size:1.5em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.4em;margin-bottom:.45em}.r8uj4t0 .rich-heading-h3{font-size:1.25em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.3em;margin-bottom:.4em}.r8uj4t0 .rich-heading-h4{font-size:1.125em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.2em;margin-bottom:.35em}.r8uj4t0 .rich-heading-h5{font-size:1em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.1em;margin-bottom:.3em}.r8uj4t0 .rich-heading-h6{font-size:.875em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1em;margin-bottom:.25em;color:var(--rc-text)}.r8uj4t0 .rich-link{color:var(--rc-link);text-decoration:none;transition:color .2s ease}.r8uj4t0 .rich-link:hover{text-decoration:underline}.r8uj4t0 .rich-link[data-favicon=loaded]:before{content:"";display:inline-block;width:1em;height:1em;margin-right:.2em;vertical-align:-.125em;background-image:var(--rc-link-favicon);background-size:contain;background-repeat:no-repeat;background-position:center;border-radius:2px}.r8uj4t0 .rich-link-favicon{display:inline-flex;align-items:center;margin-right:.15em;vertical-align:-.125em}.r8uj4t0 .rich-link-favicon img{width:1em;height:1em;border-radius:2px;object-fit:contain}.r8uj4t0 .rich-link-favicon svg{width:.9em;height:.9em}.r8uj4t0 .rich-list-ol{list-style-type:decimal;padding-left:var(--rc-space-lg);margin-bottom:1em}.r8uj4t0 .rich-list-ul{list-style-type:disc;padding-left:var(--rc-space-lg);margin-bottom:1em}.r8uj4t0 .rich-list-item{margin-bottom:.25em}.r8uj4t0 .rich-list-nested-item{list-style-type:none}.r8uj4t0 .rich-list-nested-item .rich-list-ol{list-style-type:lower-alpha}.r8uj4t0 .rich-list-nested-item .rich-list-ul{list-style-type:circle}.r8uj4t0 .rich-checklist{list-style-type:none;padding-left:0}.r8uj4t0 .rich-list-item.rich-list-item-checked,.r8uj4t0 .rich-list-item.rich-list-item-unchecked{--rc-cb-size: 1.125rem;position:relative;padding-left:2em;list-style-type:none;outline:none}.r8uj4t0 .rich-list-item.rich-list-item-unchecked:before,.r8uj4t0 .rich-list-item.rich-list-item-checked:before{content:"";position:absolute;left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:2px solid color-mix(in oklab,var(--rc-text-secondary) 60%,transparent);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;vertical-align:middle;color:var(--rc-text);background-color:transparent;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}[contenteditable=true] .r8uj4t0 .rich-list-item.rich-list-item-unchecked:hover:before{border-color:color-mix(in oklab,var(--rc-text-secondary) 80%,transparent)}.r8uj4t0 .rich-list-item.rich-list-item-unchecked:after,.r8uj4t0 .rich-list-item.rich-list-item-checked:after{content:"";position:absolute;left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);background-color:#fff;box-sizing:border-box;display:block;pointer-events:none;transform:rotate(45deg);transform-origin:center;transition:clip-path .25s cubic-bezier(.34,1.56,.64,1),opacity .15s}.r8uj4t0 .rich-list-item.rich-list-item-checked:before{background-color:var(--rc-accent);border-color:var(--rc-accent);box-shadow:0 0 0 1px var(--rc-accent)}.r8uj4t0 .rich-list-item.rich-list-item-checked:after{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1;transform:rotate(45deg) scale(.7)}.r8uj4t0 .rich-list-item-checked{text-decoration:line-through;color:var(--rc-text-secondary)}.r8uj4t0 .rich-quote{position:relative;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);font-style:italic;color:var(--rc-text-secondary);border-radius:0 var(--rc-radius-sm) var(--rc-radius-sm) 0}.r8uj4t0 .rich-quote:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:var(--rc-radius-sm);background-color:var(--rc-quote-border)}.r8uj4t0 .rich-quote>.rich-paragraph:first-child{margin-top:0}.r8uj4t0 .rich-quote>.rich-paragraph:last-child{margin-bottom:0}.r8uj4t0 .rich-hr{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}.r8uj4t0 .rich-table-scrollable-wrapper{overflow-x:auto}.r8uj4t0 .rich-table{width:100%;border-collapse:separate;border-spacing:0;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}.r8uj4t0 .rich-table-cell{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}.r8uj4t0 .rich-table-cell:last-child{border-right:none}.r8uj4t0 .rich-table tbody tr:last-child .rich-table-cell{border-bottom:none}.r8uj4t0 .rich-table-cell .rich-paragraph{margin:0;padding:0;line-height:inherit}.r8uj4t0 .rich-table-cell>:first-child{margin-top:0}.r8uj4t0 .rich-table-cell>:last-child{margin-bottom:0}.r8uj4t0 .rich-table-cell-header{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;font-weight:600;font-size:.75em;text-transform:uppercase;letter-spacing:.05em;color:var(--rc-text-secondary);background-color:var(--rc-bg-secondary);vertical-align:middle;line-height:1.5;position:sticky;top:0;z-index:1}.r8uj4t0 .rich-table-cell-header:last-child{border-right:none}.r8uj4t0 .rich-table-cell-header .rich-paragraph{margin:0;padding:0;line-height:inherit}.r8uj4t0 .rich-table-cell-header>:first-child{margin-top:0}.r8uj4t0 .rich-table-cell-header>:last-child{margin-bottom:0}.r8uj4t0 img{max-width:100%;height:auto;border-radius:var(--rc-radius-md)}.r8uj4t0 .rich-spoiler{background-color:var(--rc-text);color:transparent;border-radius:var(--rc-radius-sm);padding-inline:4px;cursor:pointer;transition:background-color .3s ease,color .3s ease;user-select:none}[contenteditable=true] .rich-spoiler{background-color:color-mix(in srgb,var(--rc-text) 30%,transparent);color:inherit;user-select:auto;cursor:text}.r8uj4t0 .rich-spoiler:hover,.r8uj4t0 .rich-spoiler-revealed{background-color:transparent;color:inherit;user-select:auto}.r8uj4t0 .rich-tag{display:inline-block;border-radius:999px;padding-inline:.75em;font-size:var(--rc-font-size-small);line-height:1.6;vertical-align:baseline}.r8uj4t0 .rich-ruby{ruby-position:over;ruby-align:center}.r8uj4t0 .rich-ruby-rt{font-size:.58em;line-height:1;color:var(--rc-text-secondary);user-select:none}[contenteditable=true] .rich-ruby[data-ruby]{position:relative;display:inline-block;padding-top:.72em;line-height:1.2}[contenteditable=true] .rich-ruby[data-ruby]:before{content:attr(data-ruby);position:absolute;left:0;right:0;top:0;transform:translateY(-.68em);font-size:.58em;line-height:1;text-align:center;color:var(--rc-text-secondary);pointer-events:none;white-space:nowrap}.r8uj4t0 .rich-footnote{vertical-align:super;font-size:.8em}.r8uj4t0 .rich-footnote-ref{display:inline-flex;align-items:center;justify-content:center;min-width:1.5em;text-decoration:none;color:var(--rc-accent);background-color:var(--rc-accent-light);border-radius:999px;padding:0 .35em;line-height:1.45;font-weight:600;font-size:.82em;transition:filter .15s ease}.r8uj4t0 .rich-footnote-ref:hover{filter:brightness(.96)}.r8uj4t0 .rich-footnote-highlight{animation:r8uj4t2 1.2s ease-out}.r8uj4t0 .rich-footnote-ref-wrapper{position:relative;display:inline}.r8uj4t0 .rich-footnote-section{margin-top:var(--rc-space-lg)}.r8uj4t0 .rich-footnote-section-divider{border:none;border-top:1px solid var(--rc-border);margin:var(--rc-space-lg) 0 var(--rc-space-md)}.r8uj4t0 .rich-footnote-section-list{list-style-type:decimal;padding-left:var(--rc-space-lg);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);line-height:1.6}.r8uj4t0 .rich-footnote-section-item{margin-bottom:var(--rc-space-sm);padding-left:var(--rc-space-xs)}.r8uj4t0 .rich-footnote-back-ref{display:inline-flex;align-items:center;margin-left:var(--rc-space-xs);color:var(--rc-accent);text-decoration:none;font-size:.85em;transition:opacity .15s ease;font-family:var(--rc-font-mono)}.r8uj4t0 .rich-footnote-back-ref:hover{opacity:.7}.r8uj4t0 .rich-footnote-section-item-edit{display:flex;align-items:center;gap:var(--rc-space-sm);list-style-type:none}.r8uj4t0 .rich-footnote-section-item-num{flex-shrink:0;color:var(--rc-text-secondary);font-size:var(--rc-font-size-small);font-weight:600;min-width:1.5em}.r8uj4t0 .rich-footnote-section-item-input{flex:1;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:transparent;outline:none;transition:border-color .15s ease}.r8uj4t0 .rich-footnote-section-item-input:focus{border-color:var(--rc-accent)}.r8uj4t0 .rich-footnote-section-item-remove{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:none;color:var(--rc-text-secondary);cursor:pointer;border-radius:var(--rc-radius-sm);font-size:14px;transition:color .15s ease,background-color .15s ease}.r8uj4t0 .rich-footnote-section-item-remove:hover{color:#ef4444;background-color:#ef44441a}.rich-drag-handle{position:absolute;display:flex;align-items:center;justify-content:center;width:20px;height:20px;cursor:grab;border-radius:var(--rc-radius-sm);color:var(--rc-text-secondary);opacity:.4;transition:opacity .15s ease,background-color .15s ease;z-index:10}.rich-drag-handle:hover{opacity:1;background-color:var(--rc-fill-secondary)}.rich-drag-handle:active{cursor:grabbing}.rich-drop-indicator{position:absolute;height:2px;background-color:var(--rc-accent);border-radius:1px;pointer-events:none;z-index:10}.r8uj4t0 .rich-alert{margin:2em 0;padding:0 1em;background-color:transparent;border:none;border-radius:0}.r8uj4t0>*:first-child,.r8uj4t0 .rich-editor__content>*:first-child{margin-top:0}.r8uj4t0>*:last-child,.r8uj4t0 .rich-editor__content>*:last-child{margin-bottom:0}@supports (animation-timeline: view()){.r8uj4t0 .rich-text-highlight{--rc-hl-highlighted: 0;animation:r8uj4t1 steps(1) both;animation-timeline:view();animation-range:entry 100% cover 10%}}.v10dui0{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);line-height:1.75;color:var(--rc-text)}.v10dui0 .rich-paragraph{margin-top:1.5em;margin-bottom:1.5em}.v10dui0 .rich-heading-h1{color:var(--rc-text);font-weight:800;font-size:3em;margin-top:0;margin-bottom:.8333333333333334em;line-height:1}.v10dui0 .rich-heading-h2{color:var(--rc-text);font-weight:700;font-size:1.875em;margin-top:1.8666666666666667em;margin-bottom:1.0666666666666667em;line-height:1.3333333}.v10dui0 .rich-heading-h3{color:var(--rc-text);font-weight:600;font-size:1.5em;margin-top:1.6666666666666667em;margin-bottom:.6666666666666666em;line-height:1.5}.v10dui0 .rich-heading-h4{color:var(--rc-text);font-weight:600;margin-top:2em;margin-bottom:.5em;line-height:1.5625}.v10dui0 .rich-heading-h2+*,.v10dui0 .rich-heading-h3+*,.v10dui0 .rich-heading-h4+*{margin-top:0}.v10dui0 .rich-quote{font-weight:500;font-style:italic;color:var(--rc-text);margin-top:2.5em;margin-bottom:2.5em;padding-left:calc(1.5em + 4px);background-color:transparent;border-radius:0;quotes:"“""”""‘""’"}.v10dui0 .rich-quote .rich-paragraph:first-of-type:before{content:open-quote}.v10dui0 .rich-quote .rich-paragraph:last-of-type:after{content:close-quote}.v10dui0 .rich-quote .rich-paragraph:first-child{margin-top:0}.v10dui0 .rich-quote .rich-paragraph:last-child{margin-bottom:0}.v10dui0 .rich-text-code{color:var(--rc-text);font-weight:600;font-size:.875em;background-color:var(--rc-code-bg);padding:.2em .4em;border-radius:var(--rc-radius-sm);font-family:var(--rc-font-mono)}.v10dui0 .rich-text-code:before,.v10dui0 .rich-text-code:after{content:"`";color:var(--rc-text-secondary);opacity:.5}.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{padding:1em 1.5em;margin:0}.v10dui0 .rich-list-ul,.v10dui0 .rich-list-ol{margin-top:1.5em;margin-bottom:1.5em;padding-left:1.75em}.v10dui0 .rich-list-item{margin-top:.75em;margin-bottom:.75em;padding-left:.5em}.v10dui0 .rich-list-item .rich-paragraph{margin-top:1em;margin-bottom:1em}.v10dui0 .rich-list-item>.rich-paragraph:first-child{margin-top:1.5em}.v10dui0 .rich-list-item>.rich-paragraph:last-child{margin-bottom:1.5em}.v10dui0 .rich-list-ul .rich-list-ul,.v10dui0 .rich-list-ul .rich-list-ol,.v10dui0 .rich-list-ol .rich-list-ul,.v10dui0 .rich-list-ol .rich-list-ol{margin-top:1em;margin-bottom:1em}.v10dui0 .rich-table{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.5}.v10dui0 .rich-table .rich-paragraph{margin:0;padding:0;line-height:inherit}.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);font-size:.875em;line-height:1.5;margin-top:1em}.v10dui0 .rich-hr{border-color:var(--rc-hr-border);border-top-width:1px;width:60px;margin:3.5em auto}.v10dui0 .rich-hr+*{margin-top:0}.v10dui0 .rich-link{font-weight:500;text-decoration:underline}.v10dui0 .rich-banner,.v10dui0 .rich-code-snippet,.v10dui0 .rich-details{margin:2em 0}.v10dui0>*:first-child{margin-top:0}.v10dui0>*:last-child{margin-bottom:0}._14ko36c0{font-size:var(--rc-font-size-base);line-height:var(--rc-line-height)}._14ko36c0 .rich-paragraph{margin-bottom:.6em}._14ko36c0 .rich-heading-h1{font-size:1.35em;font-weight:700;margin-top:.8em;margin-bottom:.3em}._14ko36c0 .rich-heading-h2{font-size:1.2em;font-weight:700;margin-top:.7em;margin-bottom:.25em}._14ko36c0 .rich-heading-h3{font-size:1.1em;font-weight:600;margin-top:.6em;margin-bottom:.2em}._14ko36c0 .rich-heading-h4{font-size:1em;font-weight:600;margin-top:.5em;margin-bottom:.15em}._14ko36c0 .rich-heading-h5{font-size:.9em;font-weight:600;margin-top:.45em;margin-bottom:.1em}._14ko36c0 .rich-heading-h6{font-size:.85em;font-weight:600;margin-top:.4em;margin-bottom:.1em}._14ko36c0 .rich-quote{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 .rich-quote:before{width:3px}._14ko36c0 .rich-list-ol,._14ko36c0 .rich-list-ul{margin-bottom:.6em;padding-left:var(--rc-space-md)}._14ko36c0 .rich-list-item{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 .rich-table{margin:var(--rc-space-sm) 0;font-size:var(--rc-font-size-small)}._14ko36c0 .rich-table-cell,._14ko36c0 .rich-table-cell-header{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 .rich-hr{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}._14ko36c0 .rich-alert{padding:var(--rc-space-sm) var(--rc-space-md);padding-left:var(--rc-space-lg);margin:var(--rc-space-sm) 0}._14ko36c0 .rich-katex-block{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);line-height:1.8;color:var(--rc-text)}.ys4fw90>.rich-paragraph,.ys4fw90 .rich-editor__content>.rich-paragraph,.ys4fw90 .rich-content__body>.rich-paragraph{margin-top:1.25em;margin-bottom:1.25em;line-height:1.8}.ys4fw90>.rich-paragraph:first-of-type,.ys4fw90 .rich-editor__content>.rich-paragraph:first-of-type,.ys4fw90 .rich-content__body>.rich-paragraph:first-of-type{margin-top:0;margin-bottom:2rem}.ys4fw90>.rich-paragraph:not(:first-of-type)>[data-lexical-text]:first-child,.ys4fw90 .rich-editor__content>.rich-paragraph:not(:first-of-type)>[data-lexical-text]:first-child,.ys4fw90 .rich-content__body>.rich-paragraph:not(:first-of-type)>[data-lexical-text]:first-child{margin-inline-start:2rem}.ys4fw90>.rich-paragraph:first-of-type:first-letter,.ys4fw90 .rich-content__body>.rich-paragraph:first-of-type:first-letter{float:left;font-size:2.4em;margin-right:.2em;line-height:1}.ys4fw90 .rich-editor__content>.rich-paragraph:first-of-type:first-letter{font-size:1.5em;font-weight:700;color:var(--rc-accent)}.ys4fw90>.rich-paragraph:last-child,.ys4fw90 .rich-editor__content>.rich-paragraph:last-child,.ys4fw90 .rich-content__body>.rich-paragraph:last-child{margin-bottom:0}.ys4fw90 .rich-text-bold{font-family:var(--rc-font-family);font-weight:600;color:var(--rc-text)}.ys4fw90 .rich-heading-h1{font-size:2.25em;font-weight:800;line-height:1.1111111;margin-top:0;margin-bottom:.8888889em;letter-spacing:-.025em;color:var(--rc-text)}.ys4fw90 .rich-heading-h2{font-size:1.5em;font-weight:700;line-height:1.3333333;margin-top:2em;margin-bottom:1em;letter-spacing:-.025em;color:var(--rc-text)}.ys4fw90 .rich-heading-h2+*{margin-top:0}.ys4fw90 .rich-heading-h3{font-size:1.25em;font-weight:600;line-height:1.6;margin-top:1.6em;margin-bottom:.6em;letter-spacing:-.025em;color:var(--rc-text)}.ys4fw90 .rich-heading-h3+*{margin-top:0}.ys4fw90 .rich-heading-h4{font-size:1.125em;font-weight:600;line-height:1.5;margin-top:1.5em;margin-bottom:.5em;color:var(--rc-text)}.ys4fw90 .rich-heading-h4+*{margin-top:0}.ys4fw90 .rich-heading-h5{font-size:1em;font-weight:600;line-height:1.5;margin-top:1.5em;margin-bottom:.5em;color:var(--rc-text)}.ys4fw90 .rich-heading-h5+*{margin-top:0}.ys4fw90 .rich-heading-h6{font-size:.875em;font-weight:600;line-height:1.5;margin-top:1.5em;margin-bottom:.5em;color:var(--rc-text);text-transform:uppercase}.ys4fw90 .rich-heading-h6+*{margin-top:0}.ys4fw90 .rich-quote{font-style:normal;line-height:1.8;color:inherit;background-color:color-mix(in srgb,var(--rc-accent) 10%,transparent);margin-top:1.6em;margin-bottom:1.6em;margin-left:-1rem;margin-right:-1rem;padding:1em 2em;border-radius:0}.ys4fw90 .rich-quote:before{display:none}.ys4fw90 .rich-quote .rich-paragraph:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.ys4fw90 .rich-link{font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color .15s ease}.ys4fw90 .rich-link:hover{text-decoration-thickness:2px}.ys4fw90 .rich-text-code{font-size:.875em;font-family:var(--rc-font-mono);font-weight:500;padding:.2em .4em;border-radius:var(--rc-radius-sm);background-color:var(--rc-code-bg)}.ys4fw90 .rich-list-ol,.ys4fw90 .rich-list-ul{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.ys4fw90 .rich-list-ol{list-style-type:decimal}.ys4fw90 .rich-list-ul{list-style-type:disc}.ys4fw90 .rich-list-item{margin-top:.5em;margin-bottom:.5em;padding-left:.375em}.ys4fw90 .rich-list-item::marker{color:var(--rc-text-secondary)}.ys4fw90 .rich-code-block{font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:var(--rc-radius-md);overflow-x:auto}.ys4fw90 .rich-code-block pre{padding:.8571429em 1.1428571em;margin:0}.ys4fw90 .rich-table{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.ys4fw90 .rich-table .rich-paragraph{margin:0;padding:0;line-height:inherit}.ys4fw90 .rich-table .rich-paragraph: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{font-size:.875em;line-height:1.4285714;margin-top:.8571429em;color:var(--rc-text-secondary);text-align:center}.ys4fw90 .rich-hr{border:none;border-top:1px solid var(--rc-hr-border);opacity:.2;margin-top:.5rem;margin-bottom:.5rem;width:60px;margin-left:auto;margin-right:auto}.ys4fw90 .rich-katex-block{margin-top:1.6em;margin-bottom:1.6em;overflow-x:auto;padding:1em 0}.ys4fw90 .rich-spoiler{border-radius:var(--rc-radius-sm);padding-inline:.25em}.ys4fw90>*:first-child{margin-top:0}.ys4fw90>*:last-child{margin-bottom:0}@keyframes _1x58dbf0{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes _1x58dbf6{to{transform:rotate(360deg)}}.rich-image-upload-dragging{position:relative;border-radius:var(--rc-radius-md);background-color:color-mix(in srgb,var(--rc-accent) 6%,transparent)}.rich-image-upload-dragging .rich-editor__content{outline:2px dashed color-mix(in srgb,var(--rc-accent) 48%,transparent);outline-offset:-2px}._1x58dbf1{position:absolute;right:.75rem;bottom:.75rem;z-index:25;display:flex;flex-direction:column;align-items:flex-end;gap:.375rem;pointer-events:none}._1x58dbf2{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .625rem;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);line-height:1.2;box-shadow:var(--rc-shadow-top-bar);animation:_1x58dbf0 .12s ease-out}._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{width:12px;height:12px;border-radius:50%;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);animation:_1x58dbf6 .75s linear infinite}._1x58dbf8._1x58dbf8{padding:0;gap:0;width:min(560px,calc(100vw - 2rem));overflow:hidden}._1x58dbf9{padding:.875rem 1rem .75rem;border-bottom:1px solid var(--rc-border)}._1x58dbfa{font-size:var(--rc-font-size-md);font-weight:600;color:var(--rc-text)}._1x58dbfb{display:flex;flex-direction:column;gap:.875rem;padding:.875rem 1rem}._1x58dbfc{display:flex;align-items:center;gap:.5rem}._1x58dbfd{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border-radius:var(--rc-radius-md);border:1.5px dashed var(--rc-border);min-height:190px;padding:1.2rem;color:var(--rc-text-secondary);cursor:pointer;transition:border-color .15s ease,background-color .15s ease,color .15s ease}._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{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--rc-radius-md);background-color:color-mix(in srgb,var(--rc-text) 6%,transparent)}._1x58dbfi{font-size:var(--rc-font-size-sm);font-weight:600;color:var(--rc-text)}._1x58dbfj{font-size:var(--rc-font-size-xs);color:var(--rc-text-secondary);text-align:center}._1x58dbfk{display:none}._1x58dbfl{display:flex;flex-direction:column;align-items:center;gap:.5rem}._1x58dbfm{display:inline-flex;align-items:center;gap:.375rem;font-size:var(--rc-font-size-sm);color:var(--rc-text)}._1x58dbfn{display:flex;align-items:center;gap:.5rem}._1x58dbfo{width:100%;border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);background-color:var(--rc-bg);color:var(--rc-text);height:34px;padding:0 .625rem;font-size:var(--rc-font-size-sm);outline:none;transition:border-color .15s ease}._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);overflow:hidden;background-color:color-mix(in srgb,var(--rc-text) 2%,transparent)}._1x58dbfq{display:block;width:100%;max-height:220px;object-fit:cover}._1x58dbfr{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--rc-font-size-xs);color:var(--rc-text-secondary)}._1x58dbfs{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-top:1px solid var(--rc-border);background-color:color-mix(in srgb,var(--rc-text) 2%,transparent);padding:.65rem 1rem}.b94s950{position:relative;max-width:var(--rc-max-width);margin:0 auto;flex:1;min-height:0;width:100%}.b94s951{outline:none;min-height:100px;width:100%;padding:var(--ce-padding-top, 12px) var(--rc-space-md) 12px var(--rc-space-md)}.b94s952{position:absolute;top:var(--ce-padding-top, 12px);left:var(--rc-space-md);color:var(--rc-text-secondary);pointer-events:none;user-select:none}.r8uj4t0 .rich-katex-inline{display:inline;padding:0 2px;vertical-align:middle}.r8uj4t0 .rich-katex-block{display:block;text-align:center;padding:var(--rc-space-md) 0;overflow-x:auto;margin:var(--rc-space-md) 0}.r8uj4t0 .rich-katex-fallback{font-family:var(--rc-font-mono);font-size:.9em;color:var(--rc-code-text);background-color:var(--rc-code-bg);padding:2px 6px;border-radius:var(--rc-radius-sm)}.r8uj4t0 .rich-details{margin:var(--rc-space-md) 0;border:none;background-color:transparent;interpolate-size:allow-keywords}.r8uj4t0 .rich-details-summary{display:flex;align-items:flex-start;gap:var(--rc-space-sm);cursor:pointer;user-select:none;padding:var(--rc-space-xs) 0;color:var(--rc-text);font-weight:500;font-size:1em;line-height:var(--rc-line-height);list-style:none;outline:none;border-radius:var(--rc-radius-sm);transition:opacity .2s ease,color .2s ease,box-shadow .2s ease}.r8uj4t0 .rich-details-summary:hover{opacity:.82}.r8uj4t0 .rich-details-summary:focus-visible{box-shadow:0 0 0 2px var(--rc-accent-light)}.r8uj4t0 .rich-details-summary::-webkit-details-marker{display:none}.r8uj4t0 .rich-details-summary::marker{content:"";display:none}.r8uj4t0 .rich-details-summary-text{flex:1;min-width:0}.r8uj4t0 .rich-details-chevron{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;position:relative;top:.125rem;flex-shrink:0;color:var(--rc-text-tertiary);transform-origin:center;transition:transform .35s cubic-bezier(.4,0,.2,1),color .2s ease}.r8uj4t0 .rich-details-summary:hover .rich-details-chevron{color:var(--rc-text-secondary)}.r8uj4t0 .rich-details[open] .rich-details-chevron{color:var(--rc-accent);transform:rotate(90deg)}.r8uj4t0 .rich-details::details-content{display:block;height:0;overflow:hidden;opacity:0;content-visibility:hidden;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}.r8uj4t0 .rich-details[open]::details-content{height:auto;opacity:1;content-visibility:visible}.r8uj4t0 .rich-details-content{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)}.r8uj4t0 .rich-details-content>.rich-paragraph:first-child{margin-top:0}.r8uj4t0 .rich-details-content>.rich-paragraph:last-child{margin-bottom:0}.r8uj4t0 .rich-grid-container{position:relative;margin:var(--rc-space-md) 0}.r8uj4t0 .rich-grid-toolbar{position:absolute;top:-36px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:2px;padding:4px 6px;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;user-select:none;white-space:nowrap;opacity:0;transition:opacity .15s ease}.r8uj4t0 .rich-grid-container:hover .rich-grid-toolbar,.r8uj4t0 .rich-grid-container:focus-within .rich-grid-toolbar{opacity:1;pointer-events:auto}.r8uj4t0 .rich-grid-toolbar-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--rc-text-secondary);flex-shrink:0}.r8uj4t0 .rich-grid-col-btn{display:flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;border-radius:var(--rc-radius-sm);border:none;background:transparent;cursor:pointer;font-size:12px;font-weight:500;color:var(--rc-text-secondary);line-height:1;transition:color .15s ease,background-color .15s ease}.r8uj4t0 .rich-grid-col-btn:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}.r8uj4t0 .rich-grid-col-btn-active{background:var(--rc-fill);font-weight:600;color:var(--rc-text)}.r8uj4t0 .rich-grid-toolbar-divider{width:1px;height:16px;background:var(--rc-border);margin:0 2px;flex-shrink:0}.r8uj4t0 .rich-grid-action-btn{display:flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;border-radius:var(--rc-radius-sm);border:none;background:transparent;cursor:pointer;color:var(--rc-text-secondary);transition:color .15s ease,background-color .15s ease}.r8uj4t0 .rich-grid-action-btn:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}.r8uj4t0 .rich-grid-inner{display:grid;gap:var(--rc-space-md)}.r8uj4t0 .rich-grid-cell{min-width:0}.r8uj4t0 .rich-grid-cell-editable{outline:none}
1
+ :root{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}:root.dark{--rc-text: #fafafa;--rc-text-secondary: #a1a1aa;--rc-text-tertiary: #71717a;--rc-text-quaternary: #52525b;--rc-bg: #09090b;--rc-bg-secondary: #18181b;--rc-bg-tertiary: #27272a;--rc-fill: #2a2a2f;--rc-fill-secondary: #222226;--rc-fill-tertiary: #1b1b1f;--rc-fill-quaternary: #131316;--rc-border: #27272a;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #e4e4e7;--rc-code-bg: #27272a;--rc-hr-border: #27272a;--rc-quote-border: #60a5fa;--rc-quote-bg: #1e3a5f;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._13h71jk0{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.7;--rc-line-height-tight: 1.4;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._13h71jk1{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #2563eb;--rc-quote-bg: #eff6ff;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: 700px;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 4px;--rc-space-sm: 8px;--rc-space-md: 16px;--rc-space-lg: 24px;--rc-space-xl: 32px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 16px;--rc-font-size-small: 14px;--rc-line-height: 1.8;--rc-line-height-tight: 1.4;--rc-font-family: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-radius-sm: 4px;--rc-radius-md: 8px;--rc-radius-lg: 12px}._13h71jk2{--rc-text: #000;--rc-text-secondary: #27272a;--rc-text-tertiary: #71717a;--rc-text-quaternary: #a1a1aa;--rc-bg: #ffffff;--rc-bg-secondary: #fafafa;--rc-bg-tertiary: #f4f4f5;--rc-fill: #e8e8ec;--rc-fill-secondary: #eeeeef;--rc-fill-tertiary: #f4f4f6;--rc-fill-quaternary: #f9f9fa;--rc-border: #f4f4f5;--rc-accent: #2563eb;--rc-accent-light: #2563eb20;--rc-link: #2563eb;--rc-code-text: #3f3f46;--rc-code-bg: #f4f4f5;--rc-hr-border: #e4e4e7;--rc-quote-border: #a1a1aa;--rc-quote-bg: #fafafa;--rc-alert-info: #006bb7;--rc-alert-warning: #cc5500;--rc-alert-tip: #11cc00;--rc-alert-caution: #cc0011;--rc-alert-important: #5500cc;--rc-max-width: none;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .12), 0 2px 8px rgba(0, 0, 0, .06);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.1), 0 4px 6px -4px rgba(0,0,0,.1);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.04), 0 4px 16px rgba(0,0,0,.08);--rc-space-xs: 2px;--rc-space-sm: 4px;--rc-space-md: 10px;--rc-space-lg: 16px;--rc-space-xl: 20px;--rc-font-family-sans: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif: "Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-mono: "SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs: .625em;--rc-font-size-xs: .75em;--rc-font-size-sm: .8125em;--rc-font-size-md: .875em;--rc-font-size-lg: 1.25em;--rc-font-size-base: 14px;--rc-font-size-small: 12px;--rc-line-height: 1.5;--rc-line-height-tight: 1.3;--rc-font-family: "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm: 3px;--rc-radius-md: 6px;--rc-radius-lg: 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: #a1a1aa;--rc-text-tertiary: #71717a;--rc-text-quaternary: #52525b;--rc-bg: #09090b;--rc-bg-secondary: #18181b;--rc-bg-tertiary: #27272a;--rc-fill: #2a2a2f;--rc-fill-secondary: #222226;--rc-fill-tertiary: #1b1b1f;--rc-fill-quaternary: #131316;--rc-border: #27272a;--rc-accent: #60a5fa;--rc-accent-light: #60a5fa20;--rc-link: #60a5fa;--rc-code-text: #e4e4e7;--rc-code-bg: #27272a;--rc-hr-border: #27272a;--rc-quote-border: #60a5fa;--rc-quote-bg: #1e3a5f;--rc-alert-info: #7db9e5;--rc-alert-warning: #da864a;--rc-alert-tip: #54da48;--rc-alert-caution: #e16973;--rc-alert-important: #9966e0;--rc-shadow-top-bar: 0 8px 30px rgba(0, 0, 0, .45), 0 2px 8px rgba(0, 0, 0, .3);--rc-shadow-modal: 0 10px 15px -3px rgba(0,0,0,.4), 0 4px 6px -4px rgba(0,0,0,.35);--rc-shadow-menu: 0 1px 4px rgba(0,0,0,.25), 0 4px 16px rgba(0,0,0,.4)}@keyframes r8uj4t1{to{--rc-hl-highlighted: 1}}@keyframes r8uj4t2{0%{background-color:#ef44443d}to{background-color:transparent}}.r8uj4t0{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}.r8uj4t0 .rich-paragraph{margin:0 0 1em;line-height:var(--rc-line-height)}.r8uj4t0 .rich-text-bold{font-weight:700}.r8uj4t0 .rich-text-italic{font-style:italic}.r8uj4t0 .rich-text-underline{text-decoration:underline}.r8uj4t0 .rich-text-strikethrough{text-decoration:line-through;opacity:.65}.r8uj4t0 .rich-text-superscript{vertical-align:super;font-size:.8em}.r8uj4t0 .rich-text-subscript{vertical-align:sub;font-size:.8em}.r8uj4t0 .rich-text-code{font-family:var(--rc-font-mono);font-size:.9em;background-color:var(--rc-code-bg);color:var(--rc-code-text);padding:2px 6px;border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border)}[contenteditable=true] .rich-text-code{padding-right:0}.r8uj4t0 mark{background:transparent}.r8uj4t0 .rich-text-highlight{--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] .rich-text-highlight{--rc-hl-highlighted: 1;animation:none}[data-theme=dark] .r8uj4t0 .rich-text-highlight{--rc-hl-lightness: .35}.r8uj4t0 :is(.rich-heading-h1,.rich-heading-h2,.rich-heading-h3,.rich-heading-h4,.rich-heading-h5,.rich-heading-h6){position:relative}.r8uj4t0 .rich-heading-anchor{position:absolute;left:-1.25rem;top:0;bottom:0;display:flex;align-items:center;text-decoration:none;color:var(--rc-text-secondary);opacity:0;transition:opacity .15s ease;font-size:.8rem}.r8uj4t0 .rich-heading-anchor svg{flex-shrink:0}.r8uj4t0 :is(.rich-heading-h1,.rich-heading-h2,.rich-heading-h3,.rich-heading-h4,.rich-heading-h5,.rich-heading-h6):hover .rich-heading-anchor{opacity:.5}.r8uj4t0 :is(.rich-heading-h1,.rich-heading-h2,.rich-heading-h3,.rich-heading-h4,.rich-heading-h5,.rich-heading-h6):hover .rich-heading-anchor:hover{opacity:1}[contenteditable=true] .rich-heading-h1:before,[contenteditable=true] .rich-heading-h2:before,[contenteditable=true] .rich-heading-h3:before,[contenteditable=true] .rich-heading-h4:before,[contenteditable=true] .rich-heading-h5:before,[contenteditable=true] .rich-heading-h6:before{position:absolute;left:-1.5rem;bottom:.5rem;display:flex;font-size:.5rem;font-weight:600;color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-family:var(--rc-font-mono)}[contenteditable=true] .rich-heading-h1:before{content:"H1"}[contenteditable=true] .rich-heading-h2:before{content:"H2"}[contenteditable=true] .rich-heading-h3:before{content:"H3"}[contenteditable=true] .rich-heading-h4:before{content:"H4"}[contenteditable=true] .rich-heading-h5:before{content:"H5"}[contenteditable=true] .rich-heading-h6:before{content:"H6"}.r8uj4t0 .rich-heading-h1{font-size:2em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.5em;margin-bottom:.5em}.r8uj4t0 .rich-heading-h2{font-size:1.5em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.4em;margin-bottom:.45em}.r8uj4t0 .rich-heading-h3{font-size:1.25em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.3em;margin-bottom:.4em}.r8uj4t0 .rich-heading-h4{font-size:1.125em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.2em;margin-bottom:.35em}.r8uj4t0 .rich-heading-h5{font-size:1em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.1em;margin-bottom:.3em}.r8uj4t0 .rich-heading-h6{font-size:.875em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1em;margin-bottom:.25em;color:var(--rc-text)}.r8uj4t0 .rich-link{color:var(--rc-link);text-decoration:none;transition:color .2s ease}.r8uj4t0 .rich-link:hover{text-decoration:underline}.r8uj4t0 .rich-link[data-favicon=loaded]:before{content:"";display:inline-block;width:1em;height:1em;margin-right:.2em;vertical-align:-.125em;background-image:var(--rc-link-favicon);background-size:contain;background-repeat:no-repeat;background-position:center;border-radius:2px}.r8uj4t0 .rich-link-favicon{display:inline-flex;align-items:center;margin-right:.15em;vertical-align:-.125em}.r8uj4t0 .rich-link-favicon img{width:1em;height:1em;border-radius:2px;object-fit:contain}.r8uj4t0 .rich-link-favicon svg{width:.9em;height:.9em}.r8uj4t0 .rich-list-ol{list-style-type:decimal;padding-left:var(--rc-space-lg);margin-bottom:1em}.r8uj4t0 .rich-list-ul{list-style-type:disc;padding-left:var(--rc-space-lg);margin-bottom:1em}.r8uj4t0 .rich-list-item{margin-bottom:.25em}.r8uj4t0 .rich-list-nested-item{list-style-type:none}.r8uj4t0 .rich-list-nested-item .rich-list-ol{list-style-type:lower-alpha}.r8uj4t0 .rich-list-nested-item .rich-list-ul{list-style-type:circle}.r8uj4t0 .rich-checklist{list-style-type:none;padding-left:0}.r8uj4t0 .rich-list-item.rich-list-item-checked,.r8uj4t0 .rich-list-item.rich-list-item-unchecked{--rc-cb-size: 1.125rem;position:relative;padding-left:2em;list-style-type:none;outline:none}.r8uj4t0 .rich-list-item.rich-list-item-unchecked:before,.r8uj4t0 .rich-list-item.rich-list-item-checked:before{content:"";position:absolute;left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:2px solid color-mix(in oklab,var(--rc-text-secondary) 60%,transparent);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;vertical-align:middle;color:var(--rc-text);background-color:transparent;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}[contenteditable=true] .r8uj4t0 .rich-list-item.rich-list-item-unchecked:hover:before{border-color:color-mix(in oklab,var(--rc-text-secondary) 80%,transparent)}.r8uj4t0 .rich-list-item.rich-list-item-unchecked:after,.r8uj4t0 .rich-list-item.rich-list-item-checked:after{content:"";position:absolute;left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);background-color:#fff;box-sizing:border-box;display:block;pointer-events:none;transform:rotate(45deg);transform-origin:center;transition:clip-path .25s cubic-bezier(.34,1.56,.64,1),opacity .15s}.r8uj4t0 .rich-list-item.rich-list-item-checked:before{background-color:var(--rc-accent);border-color:var(--rc-accent);box-shadow:0 0 0 1px var(--rc-accent)}.r8uj4t0 .rich-list-item.rich-list-item-checked:after{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1;transform:rotate(45deg) scale(.7)}.r8uj4t0 .rich-list-item-checked{text-decoration:line-through;color:var(--rc-text-secondary)}.r8uj4t0 .rich-quote{position:relative;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);font-style:italic;color:var(--rc-text-secondary);border-radius:0 var(--rc-radius-sm) var(--rc-radius-sm) 0}.r8uj4t0 .rich-quote:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:var(--rc-radius-sm);background-color:var(--rc-quote-border)}.r8uj4t0 .rich-quote>.rich-paragraph:first-child{margin-top:0}.r8uj4t0 .rich-quote>.rich-paragraph:last-child{margin-bottom:0}.r8uj4t0 .rich-hr{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}.r8uj4t0 .rich-table-scrollable-wrapper{overflow-x:auto}.r8uj4t0 .rich-table{width:100%;border-collapse:separate;border-spacing:0;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}.r8uj4t0 .rich-table-cell{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}.r8uj4t0 .rich-table-cell:last-child{border-right:none}.r8uj4t0 .rich-table tbody tr:last-child .rich-table-cell{border-bottom:none}.r8uj4t0 .rich-table-cell .rich-paragraph{margin:0;padding:0;line-height:inherit}.r8uj4t0 .rich-table-cell>:first-child{margin-top:0}.r8uj4t0 .rich-table-cell>:last-child{margin-bottom:0}.r8uj4t0 .rich-table-cell-header{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;font-weight:600;font-size:.75em;text-transform:uppercase;letter-spacing:.05em;color:var(--rc-text-secondary);background-color:var(--rc-bg-secondary);vertical-align:middle;line-height:1.5;position:sticky;top:0;z-index:1}.r8uj4t0 .rich-table-cell-header:last-child{border-right:none}.r8uj4t0 .rich-table-cell-header .rich-paragraph{margin:0;padding:0;line-height:inherit}.r8uj4t0 .rich-table-cell-header>:first-child{margin-top:0}.r8uj4t0 .rich-table-cell-header>:last-child{margin-bottom:0}.r8uj4t0 img{max-width:100%;height:auto;border-radius:var(--rc-radius-md)}.r8uj4t0 .rich-spoiler{background-color:var(--rc-text);color:transparent;border-radius:var(--rc-radius-sm);padding-inline:4px;cursor:pointer;transition:background-color .3s ease,color .3s ease;user-select:none}[contenteditable=true] .rich-spoiler{background-color:color-mix(in srgb,var(--rc-text) 30%,transparent);color:inherit;user-select:auto;cursor:text}.r8uj4t0 .rich-spoiler:hover,.r8uj4t0 .rich-spoiler-revealed{background-color:transparent;color:inherit;user-select:auto}.r8uj4t0 .rich-tag{display:inline-block;border-radius:999px;padding-inline:.75em;font-size:var(--rc-font-size-small);line-height:1.6;vertical-align:baseline}.r8uj4t0 .rich-ruby{ruby-position:over;ruby-align:center}.r8uj4t0 .rich-ruby-rt{font-size:.58em;line-height:1;color:var(--rc-text-secondary);user-select:none}[contenteditable=true] .rich-ruby[data-ruby]{position:relative;display:inline-block;padding-top:.72em;line-height:1.2}[contenteditable=true] .rich-ruby[data-ruby]:before{content:attr(data-ruby);position:absolute;left:0;right:0;top:0;transform:translateY(-.68em);font-size:.58em;line-height:1;text-align:center;color:var(--rc-text-secondary);pointer-events:none;white-space:nowrap}.r8uj4t0 .rich-footnote{vertical-align:super;font-size:.8em}.r8uj4t0 .rich-footnote-ref{display:inline-flex;align-items:center;justify-content:center;min-width:1.5em;text-decoration:none;color:var(--rc-accent);background-color:var(--rc-accent-light);border-radius:999px;padding:0 .35em;line-height:1.45;font-weight:600;font-size:.82em;transition:filter .15s ease}.r8uj4t0 .rich-footnote-ref:hover{filter:brightness(.96)}.r8uj4t0 .rich-footnote-highlight{animation:r8uj4t2 1.2s ease-out}.r8uj4t0 .rich-footnote-ref-wrapper{position:relative;display:inline}.r8uj4t0 .rich-footnote-section{margin-top:var(--rc-space-lg)}.r8uj4t0 .rich-footnote-section-divider{border:none;border-top:1px solid var(--rc-border);margin:var(--rc-space-lg) 0 var(--rc-space-md)}.r8uj4t0 .rich-footnote-section-list{list-style-type:decimal;padding-left:var(--rc-space-lg);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);line-height:1.6}.r8uj4t0 .rich-footnote-section-item{margin-bottom:var(--rc-space-sm);padding-left:var(--rc-space-xs)}.r8uj4t0 .rich-footnote-back-ref{display:inline-flex;align-items:center;margin-left:var(--rc-space-xs);color:var(--rc-accent);text-decoration:none;font-size:.85em;transition:opacity .15s ease;font-family:var(--rc-font-mono)}.r8uj4t0 .rich-footnote-back-ref:hover{opacity:.7}.r8uj4t0 .rich-footnote-section-item-edit{display:flex;align-items:center;gap:var(--rc-space-sm);list-style-type:none}.r8uj4t0 .rich-footnote-section-item-num{flex-shrink:0;color:var(--rc-text-secondary);font-size:var(--rc-font-size-small);font-weight:600;min-width:1.5em}.r8uj4t0 .rich-footnote-section-item-input{flex:1;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:transparent;outline:none;transition:border-color .15s ease}.r8uj4t0 .rich-footnote-section-item-input:focus{border-color:var(--rc-accent)}.r8uj4t0 .rich-footnote-section-item-remove{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:none;color:var(--rc-text-secondary);cursor:pointer;border-radius:var(--rc-radius-sm);font-size:14px;transition:color .15s ease,background-color .15s ease}.r8uj4t0 .rich-footnote-section-item-remove:hover{color:#ef4444;background-color:#ef44441a}.rich-drag-handle{position:absolute;display:flex;align-items:center;justify-content:center;width:20px;height:20px;cursor:grab;border-radius:var(--rc-radius-sm);color:var(--rc-text-secondary);opacity:.4;transition:opacity .15s ease,background-color .15s ease;z-index:10}.rich-drag-handle:hover{opacity:1;background-color:var(--rc-fill-secondary)}.rich-drag-handle:active{cursor:grabbing}.rich-drop-indicator{position:absolute;height:2px;background-color:var(--rc-accent);border-radius:1px;pointer-events:none;z-index:10}.r8uj4t0 .rich-alert{margin:2em 0;padding:0 1em;background-color:transparent;border:none;border-radius:0}.r8uj4t0>*:first-child,.r8uj4t0 .rich-editor__content>*:first-child{margin-top:0}.r8uj4t0>*:last-child,.r8uj4t0 .rich-editor__content>*:last-child{margin-bottom:0}@supports (animation-timeline: view()){.r8uj4t0 .rich-text-highlight{--rc-hl-highlighted: 0;animation:r8uj4t1 steps(1) both;animation-timeline:view();animation-range:entry 100% cover 10%}}.v10dui0{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);line-height:1.75;color:var(--rc-text)}.v10dui0 .rich-paragraph{margin-top:1.5em;margin-bottom:1.5em}.v10dui0 .rich-heading-h1{color:var(--rc-text);font-weight:800;font-size:3em;margin-top:0;margin-bottom:.8333333333333334em;line-height:1}.v10dui0 .rich-heading-h2{color:var(--rc-text);font-weight:700;font-size:1.875em;margin-top:1.8666666666666667em;margin-bottom:1.0666666666666667em;line-height:1.3333333}.v10dui0 .rich-heading-h3{color:var(--rc-text);font-weight:600;font-size:1.5em;margin-top:1.6666666666666667em;margin-bottom:.6666666666666666em;line-height:1.5}.v10dui0 .rich-heading-h4{color:var(--rc-text);font-weight:600;margin-top:2em;margin-bottom:.5em;line-height:1.5625}.v10dui0 .rich-heading-h2+*,.v10dui0 .rich-heading-h3+*,.v10dui0 .rich-heading-h4+*{margin-top:0}.v10dui0 .rich-quote{font-weight:500;font-style:italic;color:var(--rc-text);margin-top:2.5em;margin-bottom:2.5em;padding-left:calc(1.5em + 4px);background-color:transparent;border-radius:0;quotes:"“""”""‘""’"}.v10dui0 .rich-quote .rich-paragraph:first-of-type:before{content:open-quote}.v10dui0 .rich-quote .rich-paragraph:last-of-type:after{content:close-quote}.v10dui0 .rich-quote .rich-paragraph:first-child{margin-top:0}.v10dui0 .rich-quote .rich-paragraph:last-child{margin-bottom:0}.v10dui0 .rich-text-code{color:var(--rc-text);font-weight:600;font-size:.875em;background-color:var(--rc-code-bg);padding:.2em .4em;border-radius:var(--rc-radius-sm);font-family:var(--rc-font-mono)}.v10dui0 .rich-text-code:before,.v10dui0 .rich-text-code:after{content:"`";color:var(--rc-text-secondary);opacity:.5}.v10dui0 [contenteditable=true] .rich-text-code:before,.v10dui0 [contenteditable=true] .rich-text-code: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{padding:1em 1.5em;margin:0}.v10dui0 .rich-list-ul,.v10dui0 .rich-list-ol{margin-top:1.5em;margin-bottom:1.5em;padding-left:1.75em}.v10dui0 .rich-list-item{margin-top:.75em;margin-bottom:.75em;padding-left:.5em}.v10dui0 .rich-list-item .rich-paragraph{margin-top:1em;margin-bottom:1em}.v10dui0 .rich-list-item>.rich-paragraph:first-child{margin-top:1.5em}.v10dui0 .rich-list-item>.rich-paragraph:last-child{margin-bottom:1.5em}.v10dui0 .rich-list-ul .rich-list-ul,.v10dui0 .rich-list-ul .rich-list-ol,.v10dui0 .rich-list-ol .rich-list-ul,.v10dui0 .rich-list-ol .rich-list-ol{margin-top:1em;margin-bottom:1em}.v10dui0 .rich-table{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.5}.v10dui0 .rich-table .rich-paragraph{margin:0;padding:0;line-height:inherit}.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);font-size:.875em;line-height:1.5;margin-top:1em}.v10dui0 .rich-hr{border-color:var(--rc-hr-border);border-top-width:1px;width:60px;margin:3.5em auto}.v10dui0 .rich-hr+*{margin-top:0}.v10dui0 .rich-link{font-weight:500;text-decoration:underline}.v10dui0 .rich-banner,.v10dui0 .rich-code-snippet,.v10dui0 .rich-details{margin:2em 0}.v10dui0>*:first-child{margin-top:0}.v10dui0>*:last-child{margin-bottom:0}._14ko36c0{font-size:var(--rc-font-size-base);line-height:var(--rc-line-height)}._14ko36c0 .rich-paragraph{margin-bottom:.6em}._14ko36c0 .rich-heading-h1{font-size:1.35em;font-weight:700;margin-top:.8em;margin-bottom:.3em}._14ko36c0 .rich-heading-h2{font-size:1.2em;font-weight:700;margin-top:.7em;margin-bottom:.25em}._14ko36c0 .rich-heading-h3{font-size:1.1em;font-weight:600;margin-top:.6em;margin-bottom:.2em}._14ko36c0 .rich-heading-h4{font-size:1em;font-weight:600;margin-top:.5em;margin-bottom:.15em}._14ko36c0 .rich-heading-h5{font-size:.9em;font-weight:600;margin-top:.45em;margin-bottom:.1em}._14ko36c0 .rich-heading-h6{font-size:.85em;font-weight:600;margin-top:.4em;margin-bottom:.1em}._14ko36c0 .rich-quote{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 .rich-quote:before{width:3px}._14ko36c0 .rich-list-ol,._14ko36c0 .rich-list-ul{margin-bottom:.6em;padding-left:var(--rc-space-md)}._14ko36c0 .rich-list-item{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 .rich-table{margin:var(--rc-space-sm) 0;font-size:var(--rc-font-size-small)}._14ko36c0 .rich-table-cell,._14ko36c0 .rich-table-cell-header{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 .rich-hr{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}._14ko36c0 .rich-alert{padding:var(--rc-space-sm) var(--rc-space-md);padding-left:var(--rc-space-lg);margin:var(--rc-space-sm) 0}._14ko36c0 .rich-katex-block{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);line-height:1.8;color:var(--rc-text)}.ys4fw90>.rich-paragraph,.ys4fw90 .rich-editor__content>.rich-paragraph,.ys4fw90 .rich-content__body>.rich-paragraph{margin-top:1.25em;margin-bottom:1.25em;line-height:1.8}.ys4fw90>.rich-paragraph:first-of-type,.ys4fw90 .rich-editor__content>.rich-paragraph:first-of-type,.ys4fw90 .rich-content__body>.rich-paragraph:first-of-type{margin-top:0;margin-bottom:2rem}.ys4fw90>.rich-paragraph:not(:first-of-type)>[data-lexical-text]:first-child,.ys4fw90 .rich-editor__content>.rich-paragraph:not(:first-of-type)>[data-lexical-text]:first-child,.ys4fw90 .rich-content__body>.rich-paragraph:not(:first-of-type)>[data-lexical-text]:first-child{margin-inline-start:2rem}.ys4fw90>.rich-paragraph:first-of-type:first-letter,.ys4fw90 .rich-content__body>.rich-paragraph:first-of-type:first-letter{float:left;font-size:2.4em;margin-right:.2em;line-height:1}.ys4fw90 .rich-editor__content>.rich-paragraph:first-of-type:first-letter{font-size:1.5em;font-weight:700;color:var(--rc-accent)}.ys4fw90>.rich-paragraph:last-child,.ys4fw90 .rich-editor__content>.rich-paragraph:last-child,.ys4fw90 .rich-content__body>.rich-paragraph:last-child{margin-bottom:0}.ys4fw90 .rich-text-bold{font-family:var(--rc-font-family);font-weight:600;color:var(--rc-text)}.ys4fw90 .rich-heading-h1{font-size:2.25em;font-weight:800;line-height:1.1111111;margin-top:0;margin-bottom:.8888889em;letter-spacing:-.025em;color:var(--rc-text)}.ys4fw90 .rich-heading-h2{font-size:1.5em;font-weight:700;line-height:1.3333333;margin-top:2em;margin-bottom:1em;letter-spacing:-.025em;color:var(--rc-text)}.ys4fw90 .rich-heading-h2+*{margin-top:0}.ys4fw90 .rich-heading-h3{font-size:1.25em;font-weight:600;line-height:1.6;margin-top:1.6em;margin-bottom:.6em;letter-spacing:-.025em;color:var(--rc-text)}.ys4fw90 .rich-heading-h3+*{margin-top:0}.ys4fw90 .rich-heading-h4{font-size:1.125em;font-weight:600;line-height:1.5;margin-top:1.5em;margin-bottom:.5em;color:var(--rc-text)}.ys4fw90 .rich-heading-h4+*{margin-top:0}.ys4fw90 .rich-heading-h5{font-size:1em;font-weight:600;line-height:1.5;margin-top:1.5em;margin-bottom:.5em;color:var(--rc-text)}.ys4fw90 .rich-heading-h5+*{margin-top:0}.ys4fw90 .rich-heading-h6{font-size:.875em;font-weight:600;line-height:1.5;margin-top:1.5em;margin-bottom:.5em;color:var(--rc-text);text-transform:uppercase}.ys4fw90 .rich-heading-h6+*{margin-top:0}.ys4fw90 .rich-quote{font-style:normal;line-height:1.8;color:inherit;background-color:color-mix(in srgb,var(--rc-accent) 10%,transparent);margin-top:1.6em;margin-bottom:1.6em;margin-left:-1rem;margin-right:-1rem;padding:1em 2em;border-radius:0}.ys4fw90 .rich-quote:before{display:none}.ys4fw90 .rich-quote .rich-paragraph:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.ys4fw90 .rich-link{font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;transition:color .15s ease}.ys4fw90 .rich-link:hover{text-decoration-thickness:2px}.ys4fw90 .rich-text-code{font-size:.875em;font-family:var(--rc-font-mono);font-weight:500;padding:.2em .4em;border-radius:var(--rc-radius-sm);background-color:var(--rc-code-bg)}.ys4fw90 .rich-list-ol,.ys4fw90 .rich-list-ul{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.ys4fw90 .rich-list-ol{list-style-type:decimal}.ys4fw90 .rich-list-ul{list-style-type:disc}.ys4fw90 .rich-list-item{margin-top:.5em;margin-bottom:.5em;padding-left:.375em}.ys4fw90 .rich-list-item::marker{color:var(--rc-text-secondary)}.ys4fw90 .rich-code-block{font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:var(--rc-radius-md);overflow-x:auto}.ys4fw90 .rich-code-block pre{padding:.8571429em 1.1428571em;margin:0}.ys4fw90 .rich-table{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.ys4fw90 .rich-table .rich-paragraph{margin:0;padding:0;line-height:inherit}.ys4fw90 .rich-table .rich-paragraph: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{font-size:.875em;line-height:1.4285714;margin-top:.8571429em;color:var(--rc-text-secondary);text-align:center}.ys4fw90 .rich-hr{border:none;border-top:1px solid var(--rc-hr-border);opacity:.2;margin-top:.5rem;margin-bottom:.5rem;width:60px;margin-left:auto;margin-right:auto}.ys4fw90 .rich-katex-block{margin-top:1.6em;margin-bottom:1.6em;overflow-x:auto;padding:1em 0}.ys4fw90 .rich-spoiler{border-radius:var(--rc-radius-sm);padding-inline:.25em}.ys4fw90>*:first-child{margin-top:0}.ys4fw90>*:last-child{margin-bottom:0}@keyframes _1x58dbf0{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes _1x58dbf6{to{transform:rotate(360deg)}}.rich-image-upload-dragging{position:relative;border-radius:var(--rc-radius-md);background-color:color-mix(in srgb,var(--rc-accent) 6%,transparent)}.rich-image-upload-dragging .rich-editor__content{outline:2px dashed color-mix(in srgb,var(--rc-accent) 48%,transparent);outline-offset:-2px}._1x58dbf1{position:absolute;right:.75rem;bottom:.75rem;z-index:25;display:flex;flex-direction:column;align-items:flex-end;gap:.375rem;pointer-events:none}._1x58dbf2{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .625rem;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);line-height:1.2;box-shadow:var(--rc-shadow-top-bar);animation:_1x58dbf0 .12s ease-out}._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{width:12px;height:12px;border-radius:50%;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);animation:_1x58dbf6 .75s linear infinite}._1x58dbf8._1x58dbf8{padding:0;gap:0;width:min(560px,calc(100vw - 2rem));overflow:hidden}._1x58dbf9{padding:.875rem 1rem .75rem;border-bottom:1px solid var(--rc-border)}._1x58dbfa{font-size:var(--rc-font-size-md);font-weight:600;color:var(--rc-text)}._1x58dbfb{display:flex;flex-direction:column;gap:.875rem;padding:.875rem 1rem}._1x58dbfc{display:flex;align-items:center;gap:.5rem}._1x58dbfd{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border-radius:var(--rc-radius-md);border:1.5px dashed var(--rc-border);min-height:190px;padding:1.2rem;color:var(--rc-text-secondary);cursor:pointer;transition:border-color .15s ease,background-color .15s ease,color .15s ease}._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{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--rc-radius-md);background-color:color-mix(in srgb,var(--rc-text) 6%,transparent)}._1x58dbfi{font-size:var(--rc-font-size-sm);font-weight:600;color:var(--rc-text)}._1x58dbfj{font-size:var(--rc-font-size-xs);color:var(--rc-text-secondary);text-align:center}._1x58dbfk{display:none}._1x58dbfl{display:flex;flex-direction:column;align-items:center;gap:.5rem}._1x58dbfm{display:inline-flex;align-items:center;gap:.375rem;font-size:var(--rc-font-size-sm);color:var(--rc-text)}._1x58dbfn{display:flex;align-items:center;gap:.5rem}._1x58dbfo{width:100%;border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);background-color:var(--rc-bg);color:var(--rc-text);height:34px;padding:0 .625rem;font-size:var(--rc-font-size-sm);outline:none;transition:border-color .15s ease}._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);overflow:hidden;background-color:color-mix(in srgb,var(--rc-text) 2%,transparent)}._1x58dbfq{display:block;width:100%;max-height:220px;object-fit:cover}._1x58dbfr{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--rc-font-size-xs);color:var(--rc-text-secondary)}._1x58dbfs{display:flex;align-items:center;justify-content:space-between;gap:.75rem;border-top:1px solid var(--rc-border);background-color:color-mix(in srgb,var(--rc-text) 2%,transparent);padding:.65rem 1rem}.b94s950{position:relative;max-width:var(--rc-max-width);margin:0 auto;flex:1;min-height:0;width:100%}.b94s951{outline:none;min-height:100px;width:100%;padding:var(--ce-padding-top, 12px) var(--rc-space-md) 12px var(--rc-space-md)}.b94s952{position:absolute;top:var(--ce-padding-top, 12px);left:var(--rc-space-md);color:var(--rc-text-secondary);pointer-events:none;user-select:none}.r8uj4t0 .rich-katex-inline{display:inline;padding:0 2px;vertical-align:middle}.r8uj4t0 .rich-katex-block{display:block;text-align:center;padding:var(--rc-space-md) 0;overflow-x:auto;margin:var(--rc-space-md) 0}.r8uj4t0 .rich-katex-fallback{font-family:var(--rc-font-mono);font-size:.9em;color:var(--rc-code-text);background-color:var(--rc-code-bg);padding:2px 6px;border-radius:var(--rc-radius-sm)}.r8uj4t0 .rich-details{margin:var(--rc-space-md) 0;border:none;background-color:transparent;interpolate-size:allow-keywords}.r8uj4t0 .rich-details-summary{display:flex;align-items:flex-start;gap:var(--rc-space-sm);cursor:pointer;user-select:none;padding:var(--rc-space-xs) 0;color:var(--rc-text);font-weight:500;font-size:1em;line-height:var(--rc-line-height);list-style:none;outline:none;border-radius:var(--rc-radius-sm);transition:opacity .2s ease,color .2s ease,box-shadow .2s ease}.r8uj4t0 .rich-details-summary:hover{opacity:.82}.r8uj4t0 .rich-details-summary:focus-visible{box-shadow:0 0 0 2px var(--rc-accent-light)}.r8uj4t0 .rich-details-summary::-webkit-details-marker{display:none}.r8uj4t0 .rich-details-summary::marker{content:"";display:none}.r8uj4t0 .rich-details-summary-text{flex:1;min-width:0}.r8uj4t0 .rich-details-chevron{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;position:relative;top:.125rem;flex-shrink:0;color:var(--rc-text-tertiary);transform-origin:center;transition:transform .35s cubic-bezier(.4,0,.2,1),color .2s ease}.r8uj4t0 .rich-details-summary:hover .rich-details-chevron{color:var(--rc-text-secondary)}.r8uj4t0 .rich-details[open] .rich-details-chevron{color:var(--rc-accent);transform:rotate(90deg)}.r8uj4t0 .rich-details::details-content{display:block;height:0;overflow:hidden;opacity:0;content-visibility:hidden;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}.r8uj4t0 .rich-details[open]::details-content{height:auto;opacity:1;content-visibility:visible}.r8uj4t0 .rich-details-content{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)}.r8uj4t0 .rich-details-content>.rich-paragraph:first-child{margin-top:0}.r8uj4t0 .rich-details-content>.rich-paragraph:last-child{margin-bottom:0}.r8uj4t0 .rich-grid-container{position:relative;margin:var(--rc-space-md) 0}.r8uj4t0 .rich-grid-toolbar{position:absolute;top:-36px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:2px;padding:4px 6px;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;user-select:none;white-space:nowrap;opacity:0;transition:opacity .15s ease}.r8uj4t0 .rich-grid-container:hover .rich-grid-toolbar,.r8uj4t0 .rich-grid-container:focus-within .rich-grid-toolbar{opacity:1;pointer-events:auto}.r8uj4t0 .rich-grid-toolbar-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;color:var(--rc-text-secondary);flex-shrink:0}.r8uj4t0 .rich-grid-col-btn{display:flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;border-radius:var(--rc-radius-sm);border:none;background:transparent;cursor:pointer;font-size:12px;font-weight:500;color:var(--rc-text-secondary);line-height:1;transition:color .15s ease,background-color .15s ease}.r8uj4t0 .rich-grid-col-btn:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}.r8uj4t0 .rich-grid-col-btn-active{background:var(--rc-fill);font-weight:600;color:var(--rc-text)}.r8uj4t0 .rich-grid-toolbar-divider{width:1px;height:16px;background:var(--rc-border);margin:0 2px;flex-shrink:0}.r8uj4t0 .rich-grid-action-btn{display:flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;border-radius:var(--rc-radius-sm);border:none;background:transparent;cursor:pointer;color:var(--rc-text-secondary);transition:color .15s ease,background-color .15s ease}.r8uj4t0 .rich-grid-action-btn:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}.r8uj4t0 .rich-grid-inner{display:grid;gap:var(--rc-space-md)}.r8uj4t0 .rich-grid-cell{min-width:0}.r8uj4t0 .rich-grid-cell-editable{outline:none}
@@ -1 +1 @@
1
- {"version":3,"file":"shared.css.d.ts","sourceRoot":"","sources":["../../src/styles/shared.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,QAOtB,CAAA"}
1
+ {"version":3,"file":"shared.css.d.ts","sourceRoot":"","sources":["../../src/styles/shared.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,WAAW,QAOtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"code-block.d.ts","sourceRoot":"","sources":["../../src/transformers/code-block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAWrE,eAAO,MAAM,gCAAgC,EAAE,2BA2B9C,CAAC"}
1
+ {"version":3,"file":"code-block.d.ts","sourceRoot":"","sources":["../../src/transformers/code-block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAWrE,eAAO,MAAM,gCAAgC,EAAE,2BAgC9C,CAAC"}
@@ -9,5 +9,6 @@ export { MENTION_TRANSFORMER } from './mention';
9
9
  export { CODE_BLOCK_NODE_TRANSFORMER, GRID_CONTAINER_BLOCK_TRANSFORMER, HORIZONTAL_RULE_BLOCK_TRANSFORMER, IMAGE_BLOCK_TRANSFORMER, LINK_CARD_BLOCK_TRANSFORMER, MERMAID_BLOCK_TRANSFORMER, TABLE_BLOCK_TRANSFORMER, VIDEO_BLOCK_TRANSFORMER, } from './rich-blocks';
10
10
  export { RUBY_TRANSFORMER } from './ruby';
11
11
  export { SPOILER_TRANSFORMER } from './spoiler';
12
- export { SUBSCRIPT_TRANSFORMER, SUPERSCRIPT_TRANSFORMER, } from './superscript-subscript';
12
+ export { SUBSCRIPT_TRANSFORMER, SUPERSCRIPT_TRANSFORMER } from './superscript-subscript';
13
+ export { TABLE_IMPORT_TRANSFORMER } from './table';
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformers/index.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,gBAAgB,2CA2B5B,CAAA;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,iCAAiC,EACjC,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EACL,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,yBAAyB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformers/index.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,gBAAgB,2CA4B5B,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,gCAAgC,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,iCAAiC,EACjC,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { MultilineElementTransformer } from '@lexical/markdown';
2
+ export declare const TABLE_IMPORT_TRANSFORMER: MultilineElementTransformer;
3
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/transformers/table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAkBrE,eAAO,MAAM,wBAAwB,EAAE,2BA8DtC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haklex/rich-editor",
3
- "version": "0.0.74",
3
+ "version": "0.0.76",
4
4
  "description": "Core rich text editor based on Lexical",
5
5
  "repository": {
6
6
  "type": "git",
@@ -49,9 +49,9 @@
49
49
  "@lexical/code": "npm:lexical-code-no-prism@0.41.0",
50
50
  "nanoid": "^5.1.6",
51
51
  "thumbhash": "^0.1.1",
52
- "@haklex/rich-editor-ui": "0.0.74",
53
- "@haklex/rich-style-token": "0.0.74",
54
- "@haklex/rich-headless": "0.0.74"
52
+ "@haklex/rich-editor-ui": "0.0.76",
53
+ "@haklex/rich-style-token": "0.0.76",
54
+ "@haklex/rich-headless": "0.0.76"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@lexical/extension": "^0.41.0",