@haklex/rich-editor 0.26.6 → 0.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/{AlertQuoteEditNode-DVYvFre7.js → AlertQuoteEditNode-CHm3Qfuq.js} +27 -5
  2. package/dist/{MermaidPlugin-eTxvsBGu.js → MermaidPlugin--VfIaE2p.js} +3 -3
  3. package/dist/{SubmitShortcutPlugin-CIFnoaQa.js → SubmitShortcutPlugin-DPGw-tfF.js} +9 -9
  4. package/dist/commands-entry.mjs +2 -2
  5. package/dist/components/ContentEditable.css.d.ts.map +1 -1
  6. package/dist/components/decorators/AlertEditDecorator.d.ts.map +1 -1
  7. package/dist/components/decorators/BannerEditDecorator.d.ts.map +1 -1
  8. package/dist/components/decorators/GridEditDecorator.d.ts +2 -1
  9. package/dist/components/decorators/GridEditDecorator.d.ts.map +1 -1
  10. package/dist/components/decorators/NestedEditorCorePlugins.d.ts +2 -0
  11. package/dist/components/decorators/NestedEditorCorePlugins.d.ts.map +1 -0
  12. package/dist/components/decorators/gridAutoFocus.d.ts +11 -0
  13. package/dist/components/decorators/gridAutoFocus.d.ts.map +1 -0
  14. package/dist/components/renderers/ImageRenderer.d.ts.map +1 -1
  15. package/dist/{config-GMSEHe93.js → config-BAaPXAiP.js} +1 -1
  16. package/dist/context/NestedEditorPluginsContext.d.ts +8 -0
  17. package/dist/context/NestedEditorPluginsContext.d.ts.map +1 -0
  18. package/dist/index.d.ts +2 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.mjs +7 -6
  21. package/dist/{node-registry-yEhq_Frh.js → node-registry-DC4YNvpX.js} +89 -37
  22. package/dist/nodes/GridEditNode.d.ts +9 -2
  23. package/dist/nodes/GridEditNode.d.ts.map +1 -1
  24. package/dist/nodes/ImageNode.d.ts.map +1 -1
  25. package/dist/nodes-entry.mjs +4 -4
  26. package/dist/plugins/ImagePlugin.d.ts.map +1 -1
  27. package/dist/plugins/ImageUploadPlugin.d.ts.map +1 -1
  28. package/dist/plugins-entry.mjs +2 -2
  29. package/dist/rich-editor.css +1 -1
  30. package/dist/static-entry.mjs +2 -2
  31. package/dist/styles/shared.css.d.ts.map +1 -1
  32. package/dist/{theme-DeflyeEq.js → theme-D0MVbrmN.js} +28 -8
  33. package/dist/utils/image-insertion.d.ts +4 -0
  34. package/dist/utils/image-insertion.d.ts.map +1 -0
  35. package/package.json +4 -4
@@ -1,10 +1,10 @@
1
- import { F as AlertQuoteNode, I as _defineProperty, M as $isAlertQuoteNode, R as AlertRenderer, _ as MentionNode, b as KaTeXInlineNode, c as SpoilerNode, d as RichQuoteNode, i as TagNode, j as FootnoteNode, t as editorTheme } from "./theme-DeflyeEq.js";
1
+ import { I as AlertQuoteNode, L as _defineProperty, M as FootnoteNode, N as $isAlertQuoteNode, _ as MentionNode, b as KaTeXInlineNode, c as SpoilerNode, d as RichQuoteNode, i as TagNode, t as editorTheme, z as AlertRenderer } from "./theme-D0MVbrmN.js";
2
2
  import { h as ALERT_NODE_KEY, l as RendererWrapper } from "./KaTeXRenderer-CRL_A32i.js";
3
3
  import { LinkPlugin } from "@lexical/react/LexicalLinkPlugin";
4
4
  import { ListPlugin } from "@lexical/react/LexicalListPlugin";
5
5
  import { AutoLinkNode, LinkNode } from "@lexical/link";
6
6
  import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
7
- import { createElement, useCallback, useEffect } from "react";
7
+ import { createContext, createElement, use, useCallback, useEffect, useMemo } from "react";
8
8
  import { HeadingNode, QuoteNode } from "@lexical/rich-text";
9
9
  import { $createParagraphNode, $getNodeByKey, $getRoot, $getSelection, $insertNodes, $isParagraphNode, $isRangeSelection, COMMAND_PRIORITY_CRITICAL, COMMAND_PRIORITY_HIGH, KEY_ARROW_DOWN_COMMAND, KEY_ENTER_COMMAND, createEditor } from "lexical";
10
10
  import { HorizontalRuleNode } from "@lexical/extension";
@@ -17,6 +17,29 @@ import { ContentEditable } from "@lexical/react/LexicalContentEditable";
17
17
  import { LexicalErrorBoundary } from "@lexical/react/LexicalErrorBoundary";
18
18
  import { LexicalNestedComposer } from "@lexical/react/LexicalNestedComposer";
19
19
  import { RichTextPlugin } from "@lexical/react/LexicalRichTextPlugin";
20
+ //#region src/context/NestedEditorPluginsContext.tsx
21
+ var NestedEditorPluginsContext = createContext(null);
22
+ function NestedEditorPluginsProvider({ children, plugins }) {
23
+ const value = useMemo(() => ({ plugins }), [plugins]);
24
+ return /* @__PURE__ */ jsx(NestedEditorPluginsContext.Provider, {
25
+ value,
26
+ children
27
+ });
28
+ }
29
+ function useNestedEditorPlugins() {
30
+ return use(NestedEditorPluginsContext)?.plugins ?? null;
31
+ }
32
+ //#endregion
33
+ //#region src/components/decorators/NestedEditorCorePlugins.tsx
34
+ function NestedEditorCorePlugins() {
35
+ const nestedEditorPlugins = useNestedEditorPlugins();
36
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
37
+ /* @__PURE__ */ jsx(ListPlugin, {}),
38
+ /* @__PURE__ */ jsx(LinkPlugin, {}),
39
+ nestedEditorPlugins
40
+ ] });
41
+ }
42
+ //#endregion
20
43
  //#region src/components/decorators/AlertEditDecorator.tsx
21
44
  function ExitBlockPlugin({ parentEditor, nodeKey }) {
22
45
  const [editor] = useLexicalComposerContext();
@@ -123,8 +146,7 @@ function AlertEditDecorator({ nodeKey, alertType, contentEditor }) {
123
146
  style: { outline: "none" }
124
147
  })
125
148
  }),
126
- /* @__PURE__ */ jsx(ListPlugin, {}),
127
- /* @__PURE__ */ jsx(LinkPlugin, {}),
149
+ /* @__PURE__ */ jsx(NestedEditorCorePlugins, {}),
128
150
  /* @__PURE__ */ jsx(ExitBlockPlugin, {
129
151
  nodeKey,
130
152
  parentEditor: editor
@@ -269,4 +291,4 @@ function $createAlertQuoteEditNode(alertType, contentState) {
269
291
  return new AlertQuoteEditNode(alertType, contentState);
270
292
  }
271
293
  //#endregion
272
- export { AlertQuoteEditNode as n, NESTED_EDITOR_NODES as r, $createAlertQuoteEditNode as t };
294
+ export { NestedEditorPluginsProvider as a, NestedEditorCorePlugins as i, AlertQuoteEditNode as n, useNestedEditorPlugins as o, NESTED_EDITOR_NODES as r, $createAlertQuoteEditNode as t };
@@ -1,5 +1,5 @@
1
- import { f as $createMermaidNode, v as $createKaTeXInlineNode, w as $createImageNode, x as $createKaTeXBlockNode } from "./theme-DeflyeEq.js";
2
- import { t as $createAlertQuoteEditNode } from "./AlertQuoteEditNode-DVYvFre7.js";
1
+ import { f as $createMermaidNode, k as $withAdaptiveImageDisplayWidth, v as $createKaTeXInlineNode, w as $createImageNode, x as $createKaTeXBlockNode } from "./theme-D0MVbrmN.js";
2
+ import { t as $createAlertQuoteEditNode } from "./AlertQuoteEditNode-CHm3Qfuq.js";
3
3
  import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
4
4
  import { useEffect } from "react";
5
5
  import { $insertNodes, COMMAND_PRIORITY_EDITOR, createCommand } from "lexical";
@@ -22,7 +22,7 @@ function ImagePlugin() {
22
22
  const [editor] = useLexicalComposerContext();
23
23
  useEffect(() => {
24
24
  return editor.registerCommand(INSERT_IMAGE_COMMAND, (payload) => {
25
- $insertNodes([$createImageNode(payload)]);
25
+ $insertNodes([$createImageNode($withAdaptiveImageDisplayWidth(payload))]);
26
26
  return true;
27
27
  }, COMMAND_PRIORITY_EDITOR);
28
28
  }, [editor]);
@@ -1,9 +1,9 @@
1
- import { c as setCodeBlockCursorIntent, o as $createCodeBlockEditNode, s as $createBannerEditNode, t as getResolvedEditNodes } from "./node-registry-yEhq_Frh.js";
2
- import { A as $createFootnoteNode, C as KaTeXBlockNode, F as AlertQuoteNode, L as extractTextContent, _ as MentionNode, b as KaTeXInlineNode, c as SpoilerNode, h as $createMentionNode, j as FootnoteNode, k as OPEN_IMAGE_UPLOAD_DIALOG_COMMAND, o as $createSpoilerNode, v as $createKaTeXInlineNode, w as $createImageNode, x as $createKaTeXBlockNode } from "./theme-DeflyeEq.js";
1
+ import { c as setCodeBlockCursorIntent, o as $createCodeBlockEditNode, s as $createBannerEditNode, t as getResolvedEditNodes } from "./node-registry-DC4YNvpX.js";
2
+ import { A as OPEN_IMAGE_UPLOAD_DIALOG_COMMAND, C as KaTeXBlockNode, I as AlertQuoteNode, M as FootnoteNode, R as extractTextContent, _ as MentionNode, b as KaTeXInlineNode, c as SpoilerNode, h as $createMentionNode, j as $createFootnoteNode, k as $withAdaptiveImageDisplayWidth, o as $createSpoilerNode, v as $createKaTeXInlineNode, w as $createImageNode, x as $createKaTeXBlockNode } from "./theme-D0MVbrmN.js";
3
3
  import { a as FootnoteDefinitionsProvider, n as computeImageMeta } from "./KaTeXRenderer-CRL_A32i.js";
4
4
  import "./katex.css-0TJGE4On.js";
5
- import { C as CommentNode, M as BannerNode, T as CodeBlockNode, _ as FootnoteSectionNode, b as $createCommentNode, c as RubyNode, g as $isFootnoteSectionNode, h as $createFootnoteSectionNode, i as $createVideoNode, o as $createRubyNode, p as $isGridContainerNode, v as $createDetailsNode, x as $createCommentPlaceholderNode, y as DetailsNode } from "./config-GMSEHe93.js";
6
- import { t as $createAlertQuoteEditNode } from "./AlertQuoteEditNode-DVYvFre7.js";
5
+ import { C as CommentNode, M as BannerNode, T as CodeBlockNode, _ as FootnoteSectionNode, b as $createCommentNode, c as RubyNode, g as $isFootnoteSectionNode, h as $createFootnoteSectionNode, i as $createVideoNode, o as $createRubyNode, p as $isGridContainerNode, v as $createDetailsNode, x as $createCommentPlaceholderNode, y as DetailsNode } from "./config-BAaPXAiP.js";
6
+ import { t as $createAlertQuoteEditNode } from "./AlertQuoteEditNode-CHm3Qfuq.js";
7
7
  import { n as getHostname, r as probeFavicon, t as normalizeSerializedEditorState } from "./normalizeSerializedEditorState-C7VzxLf5.js";
8
8
  import { CheckListPlugin } from "@lexical/react/LexicalCheckListPlugin";
9
9
  import { LinkPlugin } from "@lexical/react/LexicalLinkPlugin";
@@ -888,7 +888,7 @@ function CorePlugins() {
888
888
  /* @__PURE__ */ jsx(ListPlugin, {}),
889
889
  /* @__PURE__ */ jsx(LinkPlugin, {}),
890
890
  /* @__PURE__ */ jsx(TabIndentationPlugin, {}),
891
- /* @__PURE__ */ jsx(TablePlugin, {}),
891
+ /* @__PURE__ */ jsx(TablePlugin, { hasHorizontalScroll: true }),
892
892
  /* @__PURE__ */ jsx(CheckListPlugin, {}),
893
893
  /* @__PURE__ */ jsx(MarkdownShortcutsPlugin, {}),
894
894
  /* @__PURE__ */ jsx(MarkdownPastePlugin, {}),
@@ -1173,13 +1173,13 @@ function ImageUploadPlugin({ onUpload }) {
1173
1173
  try {
1174
1174
  const [result, meta] = await Promise.all([uploadRef.current(file), computeImageMeta(file)]);
1175
1175
  editor.update(() => {
1176
- $insertNodes([$createImageNode({
1176
+ $insertNodes([$createImageNode($withAdaptiveImageDisplayWidth({
1177
1177
  src: result.src,
1178
1178
  altText: result.altText ?? file.name,
1179
1179
  width: result.width ?? meta.width,
1180
1180
  height: result.height ?? meta.height,
1181
1181
  thumbhash: result.thumbhash ?? meta.thumbhash
1182
- })]);
1182
+ }))]);
1183
1183
  });
1184
1184
  if (closeDialog) {
1185
1185
  setDialogOpen(false);
@@ -1303,12 +1303,12 @@ function ImageUploadPlugin({ onUpload }) {
1303
1303
  const handleInsertByUrl = useCallback(() => {
1304
1304
  if (!urlPreview$1 || !isSafeImageUrl(urlPreview$1)) return;
1305
1305
  editor.update(() => {
1306
- $insertNodes([$createImageNode({
1306
+ $insertNodes([$createImageNode($withAdaptiveImageDisplayWidth({
1307
1307
  src: urlPreview$1,
1308
1308
  altText: "",
1309
1309
  width: urlMeta?.width,
1310
1310
  height: urlMeta?.height
1311
- })]);
1311
+ }))]);
1312
1312
  });
1313
1313
  pushToast("success", "Image inserted");
1314
1314
  setDialogOpen(false);
@@ -1,5 +1,5 @@
1
- import { L as extractTextContent, k as OPEN_IMAGE_UPLOAD_DIALOG_COMMAND, o as $createSpoilerNode, s as $isSpoilerNode } from "./theme-DeflyeEq.js";
2
- import { i as INSERT_KATEX_INLINE_COMMAND, l as INSERT_ALERT_COMMAND, o as INSERT_IMAGE_COMMAND, r as INSERT_KATEX_BLOCK_COMMAND, t as INSERT_MERMAID_COMMAND } from "./MermaidPlugin-eTxvsBGu.js";
1
+ import { A as OPEN_IMAGE_UPLOAD_DIALOG_COMMAND, R as extractTextContent, o as $createSpoilerNode, s as $isSpoilerNode } from "./theme-D0MVbrmN.js";
2
+ import { i as INSERT_KATEX_INLINE_COMMAND, l as INSERT_ALERT_COMMAND, o as INSERT_IMAGE_COMMAND, r as INSERT_KATEX_BLOCK_COMMAND, t as INSERT_MERMAID_COMMAND } from "./MermaidPlugin--VfIaE2p.js";
3
3
  import { $createTextNode, $getSelection, $isRangeSelection } from "lexical";
4
4
  //#region src/utils/collect-command-items.ts
5
5
  function collectCommandItems(editor) {
@@ -1 +1 @@
1
- {"version":3,"file":"ContentEditable.css.d.ts","sourceRoot":"","sources":["../../src/components/ContentEditable.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,QAOzB,CAAC;AAEH,eAAO,MAAM,OAAO,QAQlB,CAAC;AAEH,eAAO,MAAM,WAAW,QAOtB,CAAC"}
1
+ {"version":3,"file":"ContentEditable.css.d.ts","sourceRoot":"","sources":["../../src/components/ContentEditable.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc,QAOzB,CAAC;AAEH,eAAO,MAAM,OAAO,QASlB,CAAC;AAEH,eAAO,MAAM,WAAW,QAOtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AlertEditDecorator.d.ts","sourceRoot":"","sources":["../../../src/components/decorators/AlertEditDecorator.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAe7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AA2H5D,UAAU,uBAAuB;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,uBAAuB,+BA+ChG"}
1
+ {"version":3,"file":"AlertEditDecorator.d.ts","sourceRoot":"","sources":["../../../src/components/decorators/AlertEditDecorator.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAe7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AA4H5D,UAAU,uBAAuB;IAC/B,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,kBAAkB,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,uBAAuB,+BA8ChG"}
@@ -1 +1 @@
1
- {"version":3,"file":"BannerEditDecorator.d.ts","sourceRoot":"","sources":["../../../src/components/decorators/BannerEditDecorator.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAMzD,UAAU,wBAAwB;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,UAAU,EACV,aAAa,GACd,EAAE,wBAAwB,+BA8C1B"}
1
+ {"version":3,"file":"BannerEditDecorator.d.ts","sourceRoot":"","sources":["../../../src/components/decorators/BannerEditDecorator.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAOzD,UAAU,wBAAwB;IAChC,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,UAAU,EACV,aAAa,GACd,EAAE,wBAAwB,+BA6C1B"}
@@ -1,10 +1,11 @@
1
1
  import { LexicalEditor } from 'lexical';
2
2
  interface GridEditDecoratorProps {
3
+ autoFocusOnMount?: boolean;
3
4
  cellEditors: LexicalEditor[];
4
5
  cols: number;
5
6
  gap: string;
6
7
  nodeKey: string;
7
8
  }
8
- export declare function GridEditDecorator({ nodeKey, cols: initialCols, gap, cellEditors, }: GridEditDecoratorProps): import("react").JSX.Element;
9
+ export declare function GridEditDecorator({ nodeKey, autoFocusOnMount, cols: initialCols, gap, cellEditors, }: GridEditDecoratorProps): import("react").JSX.Element;
9
10
  export {};
10
11
  //# sourceMappingURL=GridEditDecorator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridEditDecorator.d.ts","sourceRoot":"","sources":["../../../src/components/decorators/GridEditDecorator.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAU7C,UAAU,sBAAsB;IAC9B,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,IAAI,EAAE,WAAW,EACjB,GAAG,EACH,WAAW,GACZ,EAAE,sBAAsB,+BA4HxB"}
1
+ {"version":3,"file":"GridEditDecorator.d.ts","sourceRoot":"","sources":["../../../src/components/decorators/GridEditDecorator.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAY7C,UAAU,sBAAsB;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,gBAAgB,EAChB,IAAI,EAAE,WAAW,EACjB,GAAG,EACH,WAAW,GACZ,EAAE,sBAAsB,+BA2IxB"}
@@ -0,0 +1,2 @@
1
+ export declare function NestedEditorCorePlugins(): import("react").JSX.Element;
2
+ //# sourceMappingURL=NestedEditorCorePlugins.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NestedEditorCorePlugins.d.ts","sourceRoot":"","sources":["../../../src/components/decorators/NestedEditorCorePlugins.tsx"],"names":[],"mappings":"AAKA,wBAAgB,uBAAuB,gCAUtC"}
@@ -0,0 +1,11 @@
1
+ import { LexicalEditor } from 'lexical';
2
+ interface ScheduleGridCellAutoFocusOptions {
3
+ cancelFrame?: Window['cancelAnimationFrame'];
4
+ cellEditors: LexicalEditor[];
5
+ clearAutoFocusIntent: () => void;
6
+ maxRootLookupAttempts?: number;
7
+ requestFrame?: Window['requestAnimationFrame'];
8
+ }
9
+ export declare function scheduleGridCellAutoFocus({ cellEditors, clearAutoFocusIntent, requestFrame, cancelFrame, maxRootLookupAttempts, }: ScheduleGridCellAutoFocusOptions): () => void;
10
+ export {};
11
+ //# sourceMappingURL=gridAutoFocus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gridAutoFocus.d.ts","sourceRoot":"","sources":["../../../src/components/decorators/gridAutoFocus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAK7C,UAAU,gCAAgC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAC7C,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC,uBAAuB,CAAC,CAAC;CAChD;AAWD,wBAAgB,yBAAyB,CAAC,EACxC,WAAW,EACX,oBAAoB,EACpB,YAAwD,EACxD,WAAsD,EACtD,qBAAgD,GACjD,EAAE,gCAAgC,GAAG,MAAM,IAAI,CAkC/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"ImageRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/renderers/ImageRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,aAAa,CAAC,EAC5B,GAAG,EACH,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,MAAM,EACN,YAAY,EACZ,MAAM,GACP,EAAE,kBAAkB,+BAmGpB"}
1
+ {"version":3,"file":"ImageRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/renderers/ImageRenderer.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,aAAa,CAAC,EAC5B,GAAG,EACH,OAAO,EACP,KAAK,EACL,MAAM,EACN,OAAO,EACP,SAAS,EACT,MAAM,EACN,YAAY,EACZ,MAAM,GACP,EAAE,kBAAkB,+BAoGpB"}
@@ -1,4 +1,4 @@
1
- import { B as useNestedContentRenderer, C as KaTeXBlockNode, E as ImageNode, F as AlertQuoteNode, I as _defineProperty, L as extractTextContent, _ as MentionNode, b as KaTeXInlineNode, c as SpoilerNode, d as RichQuoteNode, i as TagNode, j as FootnoteNode, m as MermaidNode } from "./theme-DeflyeEq.js";
1
+ import { C as KaTeXBlockNode, E as ImageNode, I as AlertQuoteNode, L as _defineProperty, M as FootnoteNode, R as extractTextContent, V as useNestedContentRenderer, _ as MentionNode, b as KaTeXInlineNode, c as SpoilerNode, d as RichQuoteNode, i as TagNode, m as MermaidNode } from "./theme-D0MVbrmN.js";
2
2
  import { D as VIDEO_NODE_KEY, S as LINK_CARD_NODE_KEY, _ as CODE_BLOCK_NODE_KEY, g as BANNER_NODE_KEY, l as RendererWrapper, m as useVariant, s as useFootnoteDefinitions, u as createRendererDecoration, y as FOOTNOTE_SECTION_NODE_KEY } from "./KaTeXRenderer-CRL_A32i.js";
3
3
  import { l as semanticClassNames, r as clsx, u as sharedStyles } from "./katex.css-0TJGE4On.js";
4
4
  import { i as detailsStyles, n as gridStyles, r as detailsClassNames, t as gridClassNames } from "./grid.css-ClPR9Sd5.js";
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ export interface NestedEditorPluginsProviderProps {
3
+ children: ReactNode;
4
+ plugins?: ReactNode;
5
+ }
6
+ export declare function NestedEditorPluginsProvider({ children, plugins, }: NestedEditorPluginsProviderProps): import("react").JSX.Element;
7
+ export declare function useNestedEditorPlugins(): ReactNode;
8
+ //# sourceMappingURL=NestedEditorPluginsContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NestedEditorPluginsContext.d.ts","sourceRoot":"","sources":["../../src/context/NestedEditorPluginsContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAID,wBAAgB,2BAA2B,CAAC,EAC1C,QAAQ,EACR,OAAO,GACR,EAAE,gCAAgC,+BAOlC;AAED,wBAAgB,sBAAsB,IAAI,SAAS,CAElD"}
package/dist/index.d.ts CHANGED
@@ -12,6 +12,8 @@ export type { FootnoteDefinitionsContextValue } from './context/FootnoteDefiniti
12
12
  export { FootnoteDefinitionsProvider, useFootnoteContent, useFootnoteDefinitions, useFootnoteDisplayNumber, } from './context/FootnoteDefinitionsContext';
13
13
  export type { RenderEditorStateFn } from './context/NestedContentRendererContext';
14
14
  export { NestedContentRendererProvider, useNestedContentRenderer, useOptionalNestedContentRenderer, } from './context/NestedContentRendererContext';
15
+ export type { NestedEditorPluginsProviderProps } from './context/NestedEditorPluginsContext';
16
+ export { NestedEditorPluginsProvider, useNestedEditorPlugins, } from './context/NestedEditorPluginsContext';
15
17
  export type { RendererMode } from './context/RendererConfigContext';
16
18
  export { RendererConfigProvider, useRendererConfig, useRendererMode, useVariant, } from './context/RendererConfigContext';
17
19
  export type { TextSelectionStore, TextSelectionStoreState } from './context/TextSelectionContext';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAChF,YAAY,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,gCAAgC,GACjC,MAAM,wCAAwC,CAAC;AAChD,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,UAAU,GACX,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,cAAc,UAAU,CAAC;AACzB,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAClE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EACL,qBAAqB,EACrB,uCAAuC,EACvC,qBAAqB,EACrB,+BAA+B,EAC/B,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAChF,YAAY,EAAE,+BAA+B,EAAE,MAAM,sCAAsC,CAAC;AAC5F,OAAO,EACL,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EACL,6BAA6B,EAC7B,wBAAwB,EACxB,gCAAgC,GACjC,MAAM,wCAAwC,CAAC;AAChD,YAAY,EAAE,gCAAgC,EAAE,MAAM,sCAAsC,CAAC;AAC7F,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,sCAAsC,CAAC;AAC9C,YAAY,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,UAAU,GACX,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,cAAc,UAAU,CAAC;AACzB,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAClE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EACzB,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,aAAa,EACb,WAAW,GACZ,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EACL,qBAAqB,EACrB,uCAAuC,EACvC,qBAAqB,EACrB,+BAA+B,EAC/B,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC"}
package/dist/index.mjs CHANGED
@@ -1,13 +1,14 @@
1
- import { A as blockIdState, C as createTextSelectionStore, D as ImageUploadPlugin, E as LinkFaviconPlugin, F as ImagePreprocessProvider, L as CorePlugins, N as ImageUploadProvider, O as defaultImageUpload, S as TextSelectionStoreProvider, T as useTextSelectionStore, _ as $getRootBlock, a as AutoFocusPlugin, b as buildBlockAnchor, c as $captureTextSelection, d as createDOMRangeFromTextSelection, f as findDOMPointByTextOffset, g as TEXT_SELECTION_HIGHLIGHT_NAME, h as getTextOffsetFromDOMPoint, i as EditorRefPlugin, j as VideoUploadProvider, k as BlockIdPlugin, l as $captureTextSelectionFromRangeSelection, m as getDOMRectFromTextSelection, n as OnChangePlugin, o as VideoUploadPlugin, p as getBlockElementById, r as FootnotePlugin, s as TextSelectionPlugin, t as SubmitShortcutPlugin, u as $restoreTextSelection, v as $getTextOffsetInBlock, w as useTextSelectionSnapshot, x as buildRangeAnchor, y as $resolveSelectionPoint } from "./SubmitShortcutPlugin-CIFnoaQa.js";
2
- import { n as setResolvedEditNodes, r as allEditNodes } from "./node-registry-yEhq_Frh.js";
3
- import { B as useNestedContentRenderer, V as useOptionalNestedContentRenderer, t as editorTheme, z as NestedContentRendererProvider } from "./theme-DeflyeEq.js";
1
+ import { A as blockIdState, C as createTextSelectionStore, D as ImageUploadPlugin, E as LinkFaviconPlugin, F as ImagePreprocessProvider, L as CorePlugins, N as ImageUploadProvider, O as defaultImageUpload, S as TextSelectionStoreProvider, T as useTextSelectionStore, _ as $getRootBlock, a as AutoFocusPlugin, b as buildBlockAnchor, c as $captureTextSelection, d as createDOMRangeFromTextSelection, f as findDOMPointByTextOffset, g as TEXT_SELECTION_HIGHLIGHT_NAME, h as getTextOffsetFromDOMPoint, i as EditorRefPlugin, j as VideoUploadProvider, k as BlockIdPlugin, l as $captureTextSelectionFromRangeSelection, m as getDOMRectFromTextSelection, n as OnChangePlugin, o as VideoUploadPlugin, p as getBlockElementById, r as FootnotePlugin, s as TextSelectionPlugin, t as SubmitShortcutPlugin, u as $restoreTextSelection, v as $getTextOffsetInBlock, w as useTextSelectionSnapshot, x as buildRangeAnchor, y as $resolveSelectionPoint } from "./SubmitShortcutPlugin-DPGw-tfF.js";
2
+ import { n as setResolvedEditNodes, r as allEditNodes } from "./node-registry-DC4YNvpX.js";
3
+ import { B as NestedContentRendererProvider, H as useOptionalNestedContentRenderer, V as useNestedContentRenderer, t as editorTheme } from "./theme-D0MVbrmN.js";
4
4
  import { C as MENTION_NODE_KEY, D as VIDEO_NODE_KEY, E as TAG_NODE_KEY, S as LINK_CARD_NODE_KEY, T as RUBY_NODE_KEY, _ as CODE_BLOCK_NODE_KEY, a as FootnoteDefinitionsProvider, b as IMAGE_NODE_KEY, c as useFootnoteDisplayNumber, d as RendererConfigProvider, f as useRendererConfig, g as BANNER_NODE_KEY, h as ALERT_NODE_KEY, m as useVariant, o as useFootnoteContent, p as useRendererMode, s as useFootnoteDefinitions, v as FOOTNOTE_NODE_KEY, w as MERMAID_NODE_KEY, x as KATEX_NODE_KEY, y as FOOTNOTE_SECTION_NODE_KEY } from "./KaTeXRenderer-CRL_A32i.js";
5
5
  import { a as noteVariant, c as richContent, i as getVariantClass, l as semanticClassNames, n as katexStyles, o as commentVariant, r as clsx, s as articleVariant, t as katexClassNames, u as sharedStyles } from "./katex.css-0TJGE4On.js";
6
- import { D as ColorSchemeProvider, O as useColorScheme } from "./config-GMSEHe93.js";
6
+ import { D as ColorSchemeProvider, O as useColorScheme } from "./config-BAaPXAiP.js";
7
7
  import { i as detailsStyles, n as gridStyles, r as detailsClassNames, t as gridClassNames } from "./grid.css-ClPR9Sd5.js";
8
+ import { a as NestedEditorPluginsProvider, o as useNestedEditorPlugins } from "./AlertQuoteEditNode-CHm3Qfuq.js";
8
9
  import { t as normalizeSerializedEditorState } from "./normalizeSerializedEditorState-C7VzxLf5.js";
9
10
  import { n as useExtraNodes, r as LinkFavicon, t as ExtraNodesProvider } from "./ExtraNodesContext-BVJeViBr.js";
10
- import { a as KaTeXPlugin, c as AlertPlugin, n as MermaidPlugin, s as ImagePlugin } from "./MermaidPlugin-eTxvsBGu.js";
11
+ import { a as KaTeXPlugin, c as AlertPlugin, n as MermaidPlugin, s as ImagePlugin } from "./MermaidPlugin--VfIaE2p.js";
11
12
  import { jsx, jsxs } from "react/jsx-runtime";
12
13
  import { ContentEditable } from "@lexical/react/LexicalContentEditable";
13
14
  import { LexicalErrorBoundary } from "@lexical/react/LexicalErrorBoundary";
@@ -138,4 +139,4 @@ function RichEditor({ extraNodes, imageUpload, videoUpload, children, ...shellPr
138
139
  }) });
139
140
  }
140
141
  //#endregion
141
- export { $captureTextSelection, $captureTextSelectionFromRangeSelection, $getRootBlock, $getTextOffsetInBlock, $resolveSelectionPoint, $restoreTextSelection, ALERT_NODE_KEY, BANNER_NODE_KEY, CODE_BLOCK_NODE_KEY, ColorSchemeProvider, CorePlugins, ExtraNodesProvider, FOOTNOTE_NODE_KEY, FOOTNOTE_SECTION_NODE_KEY, FootnoteDefinitionsProvider, IMAGE_NODE_KEY, KATEX_NODE_KEY, LINK_CARD_NODE_KEY, LinkFavicon, MENTION_NODE_KEY, MERMAID_NODE_KEY, NestedContentRendererProvider, RUBY_NODE_KEY, RendererConfigProvider, RichEditor, RichEditorShell, TAG_NODE_KEY, TEXT_SELECTION_HIGHLIGHT_NAME, TextSelectionStoreProvider, VIDEO_NODE_KEY, articleTheme, articleVariant, blockIdState, buildBlockAnchor, buildRangeAnchor, commentTheme, commentVariant, createDOMRangeFromTextSelection, createTextSelectionStore, detailsClassNames, detailsStyles, editorTheme, findDOMPointByTextOffset, getBlockElementById, getDOMRectFromTextSelection, getTextOffsetFromDOMPoint, getVariantClass, gridClassNames, gridStyles, katexClassNames, katexStyles, noteTheme, noteVariant, richContent, semanticClassNames, sharedStyles, useColorScheme, useExtraNodes, useFootnoteContent, useFootnoteDefinitions, useFootnoteDisplayNumber, useNestedContentRenderer, useOptionalNestedContentRenderer, useRendererConfig, useRendererMode, useTextSelectionSnapshot, useTextSelectionStore, useVariant, vars };
142
+ export { $captureTextSelection, $captureTextSelectionFromRangeSelection, $getRootBlock, $getTextOffsetInBlock, $resolveSelectionPoint, $restoreTextSelection, ALERT_NODE_KEY, BANNER_NODE_KEY, CODE_BLOCK_NODE_KEY, ColorSchemeProvider, CorePlugins, ExtraNodesProvider, FOOTNOTE_NODE_KEY, FOOTNOTE_SECTION_NODE_KEY, FootnoteDefinitionsProvider, IMAGE_NODE_KEY, KATEX_NODE_KEY, LINK_CARD_NODE_KEY, LinkFavicon, MENTION_NODE_KEY, MERMAID_NODE_KEY, NestedContentRendererProvider, NestedEditorPluginsProvider, RUBY_NODE_KEY, RendererConfigProvider, RichEditor, RichEditorShell, TAG_NODE_KEY, TEXT_SELECTION_HIGHLIGHT_NAME, TextSelectionStoreProvider, VIDEO_NODE_KEY, articleTheme, articleVariant, blockIdState, buildBlockAnchor, buildRangeAnchor, commentTheme, commentVariant, createDOMRangeFromTextSelection, createTextSelectionStore, detailsClassNames, detailsStyles, editorTheme, findDOMPointByTextOffset, getBlockElementById, getDOMRectFromTextSelection, getTextOffsetFromDOMPoint, getVariantClass, gridClassNames, gridStyles, katexClassNames, katexStyles, noteTheme, noteVariant, richContent, semanticClassNames, sharedStyles, useColorScheme, useExtraNodes, useFootnoteContent, useFootnoteDefinitions, useFootnoteDisplayNumber, useNestedContentRenderer, useNestedEditorPlugins, useOptionalNestedContentRenderer, useRendererConfig, useRendererMode, useTextSelectionSnapshot, useTextSelectionStore, useVariant, vars };
@@ -1,11 +1,9 @@
1
- import { C as KaTeXBlockNode, E as ImageNode, I as _defineProperty, _ as MentionNode, b as KaTeXInlineNode, c as SpoilerNode, i as TagNode, j as FootnoteNode, m as MermaidNode, t as editorTheme } from "./theme-DeflyeEq.js";
1
+ import { C as KaTeXBlockNode, E as ImageNode, L as _defineProperty, M as FootnoteNode, _ as MentionNode, b as KaTeXInlineNode, c as SpoilerNode, i as TagNode, m as MermaidNode, t as editorTheme } from "./theme-D0MVbrmN.js";
2
2
  import { _ as CODE_BLOCK_NODE_KEY, g as BANNER_NODE_KEY, l as RendererWrapper, s as useFootnoteDefinitions } from "./KaTeXRenderer-CRL_A32i.js";
3
3
  import { l as semanticClassNames, r as clsx, u as sharedStyles } from "./katex.css-0TJGE4On.js";
4
- import { C as CommentNode, E as CodeBlockRenderer, M as BannerNode, N as normalizeBannerType, P as BannerRenderer, T as CodeBlockNode, _ as FootnoteSectionNode, a as VideoNode, c as RubyNode, d as LinkCardNode, k as $isBannerNode, m as GridContainerNode, n as builtinNodes, p as $isGridContainerNode, w as $isCodeBlockNode, y as DetailsNode } from "./config-GMSEHe93.js";
4
+ import { C as CommentNode, E as CodeBlockRenderer, M as BannerNode, N as normalizeBannerType, P as BannerRenderer, T as CodeBlockNode, _ as FootnoteSectionNode, a as VideoNode, c as RubyNode, d as LinkCardNode, k as $isBannerNode, m as GridContainerNode, n as builtinNodes, p as $isGridContainerNode, w as $isCodeBlockNode, y as DetailsNode } from "./config-BAaPXAiP.js";
5
5
  import { n as gridStyles, t as gridClassNames } from "./grid.css-ClPR9Sd5.js";
6
- import { n as AlertQuoteEditNode, r as NESTED_EDITOR_NODES } from "./AlertQuoteEditNode-DVYvFre7.js";
7
- import { LinkPlugin } from "@lexical/react/LexicalLinkPlugin";
8
- import { ListPlugin } from "@lexical/react/LexicalListPlugin";
6
+ import { i as NestedEditorCorePlugins, n as AlertQuoteEditNode, r as NESTED_EDITOR_NODES } from "./AlertQuoteEditNode-CHm3Qfuq.js";
9
7
  import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
10
8
  import { createElement, useCallback, useEffect, useState } from "react";
11
9
  import { $createNodeSelection, $createParagraphNode, $getNodeByKey, $getRoot, $getSelection, $insertNodes, $isDecoratorNode, $isElementNode, $isNodeSelection, $nodesOfType, $setSelection, createEditor } from "lexical";
@@ -52,19 +50,15 @@ function BannerEditDecorator({ nodeKey, bannerType, contentEditor }) {
52
50
  className: "rich-banner-content",
53
51
  children: /* @__PURE__ */ jsxs(LexicalNestedComposer, {
54
52
  initialEditor: contentEditor,
55
- children: [
56
- /* @__PURE__ */ jsx(RichTextPlugin, {
57
- ErrorBoundary: LexicalErrorBoundary,
58
- contentEditable: /* @__PURE__ */ jsx(ContentEditable, {
59
- "aria-placeholder": "",
60
- className: "rich-banner-content-editable",
61
- placeholder: /* @__PURE__ */ jsx("span", { style: { display: "none" } }),
62
- style: { outline: "none" }
63
- })
64
- }),
65
- /* @__PURE__ */ jsx(ListPlugin, {}),
66
- /* @__PURE__ */ jsx(LinkPlugin, {})
67
- ]
53
+ children: [/* @__PURE__ */ jsx(RichTextPlugin, {
54
+ ErrorBoundary: LexicalErrorBoundary,
55
+ contentEditable: /* @__PURE__ */ jsx(ContentEditable, {
56
+ "aria-placeholder": "",
57
+ className: "rich-banner-content-editable",
58
+ placeholder: /* @__PURE__ */ jsx("span", { style: { display: "none" } }),
59
+ style: { outline: "none" }
60
+ })
61
+ }), /* @__PURE__ */ jsx(NestedEditorCorePlugins, {})]
68
62
  })
69
63
  })]
70
64
  });
@@ -380,6 +374,41 @@ var FootnoteSectionEditNode = class FootnoteSectionEditNode extends FootnoteSect
380
374
  }
381
375
  };
382
376
  //#endregion
377
+ //#region src/components/decorators/gridAutoFocus.ts
378
+ var MAX_ROOT_LOOKUP_ATTEMPTS = 30;
379
+ function selectNestedRootStart() {
380
+ const firstChild = $getRoot().getFirstChild();
381
+ if ($isElementNode(firstChild)) firstChild.selectStart();
382
+ else $getRoot().selectStart();
383
+ }
384
+ function scheduleGridCellAutoFocus({ cellEditors, clearAutoFocusIntent, requestFrame = window.requestAnimationFrame.bind(window), cancelFrame = window.cancelAnimationFrame.bind(window), maxRootLookupAttempts = MAX_ROOT_LOOKUP_ATTEMPTS }) {
385
+ let cancelled = false;
386
+ let frame = null;
387
+ const schedule = (attempt) => {
388
+ frame = requestFrame(() => {
389
+ frame = null;
390
+ if (cancelled) return;
391
+ const firstCellEditor = cellEditors[0];
392
+ if (!firstCellEditor) {
393
+ clearAutoFocusIntent();
394
+ return;
395
+ }
396
+ if (!firstCellEditor.getRootElement() && attempt < maxRootLookupAttempts) {
397
+ schedule(attempt + 1);
398
+ return;
399
+ }
400
+ clearAutoFocusIntent();
401
+ firstCellEditor.update(selectNestedRootStart, { discrete: true });
402
+ firstCellEditor.focus();
403
+ });
404
+ };
405
+ schedule(0);
406
+ return () => {
407
+ cancelled = true;
408
+ if (frame !== null) cancelFrame(frame);
409
+ };
410
+ }
411
+ //#endregion
383
412
  //#region src/components/decorators/GridEditDecorator.tsx
384
413
  var COL_OPTIONS = [
385
414
  1,
@@ -387,7 +416,7 @@ var COL_OPTIONS = [
387
416
  3,
388
417
  4
389
418
  ];
390
- function GridEditDecorator({ nodeKey, cols: initialCols, gap, cellEditors }) {
419
+ function GridEditDecorator({ nodeKey, autoFocusOnMount, cols: initialCols, gap, cellEditors }) {
391
420
  const [editor] = useLexicalComposerContext();
392
421
  const [currentCols, setCurrentCols] = useState(initialCols);
393
422
  useEffect(() => {
@@ -398,6 +427,23 @@ function GridEditDecorator({ nodeKey, cols: initialCols, gap, cellEditors }) {
398
427
  });
399
428
  });
400
429
  }, [editor, nodeKey]);
430
+ useEffect(() => {
431
+ if (!autoFocusOnMount) return;
432
+ return scheduleGridCellAutoFocus({
433
+ cellEditors,
434
+ clearAutoFocusIntent: () => {
435
+ editor.update(() => {
436
+ const node = $getNodeByKey(nodeKey);
437
+ if ($isGridEditNode(node)) node.setShouldAutoFocusOnMount(false);
438
+ }, { discrete: true });
439
+ }
440
+ });
441
+ }, [
442
+ autoFocusOnMount,
443
+ cellEditors,
444
+ editor,
445
+ nodeKey
446
+ ]);
401
447
  const handleSetCols = useCallback((cols) => {
402
448
  editor.update(() => {
403
449
  const node = $getNodeByKey(nodeKey);
@@ -462,18 +508,14 @@ function GridEditDecorator({ nodeKey, cols: initialCols, gap, cellEditors }) {
462
508
  className: clsx(gridClassNames.cell, gridStyles.cell),
463
509
  children: /* @__PURE__ */ jsxs(LexicalNestedComposer, {
464
510
  initialEditor: cellEditor,
465
- children: [
466
- /* @__PURE__ */ jsx(RichTextPlugin, {
467
- ErrorBoundary: LexicalErrorBoundary,
468
- contentEditable: /* @__PURE__ */ jsx(ContentEditable, {
469
- "aria-placeholder": "",
470
- className: clsx(gridClassNames.cellEditable, gridStyles.cellEditable),
471
- placeholder: /* @__PURE__ */ jsx("span", { style: { display: "none" } })
472
- })
473
- }),
474
- /* @__PURE__ */ jsx(ListPlugin, {}),
475
- /* @__PURE__ */ jsx(LinkPlugin, {})
476
- ]
511
+ children: [/* @__PURE__ */ jsx(RichTextPlugin, {
512
+ ErrorBoundary: LexicalErrorBoundary,
513
+ contentEditable: /* @__PURE__ */ jsx(ContentEditable, {
514
+ "aria-placeholder": "",
515
+ className: clsx(gridClassNames.cellEditable, gridStyles.cellEditable),
516
+ placeholder: /* @__PURE__ */ jsx("span", { style: { display: "none" } })
517
+ })
518
+ }), /* @__PURE__ */ jsx(NestedEditorCorePlugins, {})]
477
519
  })
478
520
  }, i))
479
521
  })] });
@@ -492,13 +534,15 @@ function createCellEditor() {
492
534
  }
493
535
  var GridEditNode = class GridEditNode extends GridContainerNode {
494
536
  static clone(node) {
495
- const cloned = new GridEditNode(node.__cols, node.__gap, node.__cellStates, node.__key);
537
+ const cloned = new GridEditNode(node.__cols, node.__gap, node.__cellStates, node.__key, { autoFocusOnMount: node.__autoFocusOnMount });
496
538
  cloned.__cellEditors = [...node.__cellEditors];
497
539
  return cloned;
498
540
  }
499
- constructor(cols = 2, gap, cellStates, key) {
541
+ constructor(cols = 2, gap, cellStates, key, options) {
500
542
  super(cols, gap, cellStates, key);
501
543
  _defineProperty(this, "__cellEditors", void 0);
544
+ _defineProperty(this, "__autoFocusOnMount", void 0);
545
+ this.__autoFocusOnMount = options?.autoFocusOnMount ?? false;
502
546
  this.__cellEditors = this.__cellStates.map((state) => {
503
547
  const editor = createCellEditor();
504
548
  const editorState = editor.parseEditorState(state);
@@ -509,6 +553,13 @@ var GridEditNode = class GridEditNode extends GridContainerNode {
509
553
  getCellEditors() {
510
554
  return this.getLatest().__cellEditors;
511
555
  }
556
+ getShouldAutoFocusOnMount() {
557
+ return this.getLatest().__autoFocusOnMount;
558
+ }
559
+ setShouldAutoFocusOnMount(autoFocusOnMount) {
560
+ const writable = this.getWritable();
561
+ writable.__autoFocusOnMount = autoFocusOnMount;
562
+ }
512
563
  setCols(cols) {
513
564
  const writable = this.getWritable();
514
565
  const prev = writable.__cellEditors.length;
@@ -607,7 +658,8 @@ var GridEditNode = class GridEditNode extends GridContainerNode {
607
658
  nodeKey: this.__key,
608
659
  cols: this.__cols,
609
660
  gap: this.__gap,
610
- cellEditors: this.__cellEditors
661
+ cellEditors: this.__cellEditors,
662
+ autoFocusOnMount: this.__autoFocusOnMount
611
663
  });
612
664
  }
613
665
  };
@@ -623,12 +675,12 @@ _defineProperty(GridEditNode, "slashMenuItems", [{
623
675
  section: "LAYOUT",
624
676
  onSelect: (editor) => {
625
677
  editor.update(() => {
626
- $insertNodes([$createGridEditNode(2)]);
678
+ $insertNodes([$createGridEditNode(2, void 0, { autoFocusOnMount: true })]);
627
679
  });
628
680
  }
629
681
  }]);
630
- function $createGridEditNode(cols = 2, gap) {
631
- return new GridEditNode(cols, gap);
682
+ function $createGridEditNode(cols = 2, gap, options) {
683
+ return new GridEditNode(cols, gap, void 0, void 0, options);
632
684
  }
633
685
  function $isGridEditNode(node) {
634
686
  return node instanceof GridEditNode;
@@ -2,12 +2,18 @@ import { EditorConfig, LexicalEditor, LexicalNode, SerializedEditorState } from
2
2
  import { ReactElement } from 'react';
3
3
  import { SlashMenuItemConfig } from '../types/slash-menu';
4
4
  import { GridContainerNode, SerializedGridContainerNode } from './GridContainerNode';
5
+ interface GridEditNodeOptions {
6
+ autoFocusOnMount?: boolean;
7
+ }
5
8
  export declare class GridEditNode extends GridContainerNode {
6
9
  __cellEditors: LexicalEditor[];
10
+ __autoFocusOnMount: boolean;
7
11
  static slashMenuItems: SlashMenuItemConfig[];
8
12
  static clone(node: GridEditNode): GridEditNode;
9
- constructor(cols?: number, gap?: string, cellStates?: SerializedEditorState[], key?: string);
13
+ constructor(cols?: number, gap?: string, cellStates?: SerializedEditorState[], key?: string, options?: GridEditNodeOptions);
10
14
  getCellEditors(): LexicalEditor[];
15
+ getShouldAutoFocusOnMount(): boolean;
16
+ setShouldAutoFocusOnMount(autoFocusOnMount: boolean): void;
11
17
  setCols(cols: number): void;
12
18
  addCells(count: number): void;
13
19
  removeCells(count: number): void;
@@ -15,6 +21,7 @@ export declare class GridEditNode extends GridContainerNode {
15
21
  exportJSON(): SerializedGridContainerNode;
16
22
  decorate(_editor: LexicalEditor, _config: EditorConfig): ReactElement;
17
23
  }
18
- export declare function $createGridEditNode(cols?: number, gap?: string): GridEditNode;
24
+ export declare function $createGridEditNode(cols?: number, gap?: string, options?: GridEditNodeOptions): GridEditNode;
19
25
  export declare function $isGridEditNode(node: LexicalNode | null | undefined): node is GridEditNode;
26
+ export {};
20
27
  //# sourceMappingURL=GridEditNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridEditNode.d.ts","sourceRoot":"","sources":["../../src/nodes/GridEditNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAGjB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,KAAK,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAuB1F,qBAAa,YAAa,SAAQ,iBAAiB;IACjD,aAAa,EAAE,aAAa,EAAE,CAAC;IAE/B,MAAM,CAAC,cAAc,EAAE,mBAAmB,EAAE,CAa1C;IAEF,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY;gBAMlC,IAAI,SAAI,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,qBAAqB,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM;IAUtF,cAAc,IAAI,aAAa,EAAE;IAIjC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAkC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IA8B7B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAiBhC,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,2BAA2B,GAAG,YAAY;IA6B5E,UAAU,IAAI,2BAA2B;IAWzC,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;CAQtE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,SAAI,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,YAAY,CAExE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,YAAY,CAE1F"}
1
+ {"version":3,"file":"GridEditNode.d.ts","sourceRoot":"","sources":["../../src/nodes/GridEditNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,qBAAqB,EAEtB,MAAM,SAAS,CAAC;AAGjB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAK1C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,KAAK,2BAA2B,EAAE,MAAM,qBAAqB,CAAC;AAY1F,UAAU,mBAAmB;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAaD,qBAAa,YAAa,SAAQ,iBAAiB;IACjD,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,kBAAkB,EAAE,OAAO,CAAC;IAE5B,MAAM,CAAC,cAAc,EAAE,mBAAmB,EAAE,CAa1C;IAEF,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY;gBAS5C,IAAI,SAAI,EACR,GAAG,CAAC,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,qBAAqB,EAAE,EACpC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,mBAAmB;IAY/B,cAAc,IAAI,aAAa,EAAE;IAIjC,yBAAyB,IAAI,OAAO;IAIpC,yBAAyB,CAAC,gBAAgB,EAAE,OAAO,GAAG,IAAI;IAK1D,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAkC3B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IA8B7B,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAiBhC,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,2BAA2B,GAAG,YAAY;IA6B5E,UAAU,IAAI,2BAA2B;IAWzC,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;CAStE;AAED,wBAAgB,mBAAmB,CACjC,IAAI,SAAI,EACR,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,mBAAmB,GAC5B,YAAY,CAEd;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,YAAY,CAE1F"}
@@ -1 +1 @@
1
- {"version":3,"file":"ImageNode.d.ts","sourceRoot":"","sources":["../../src/nodes/ImageNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,OAAO,EACP,qBAAqB,EACrB,MAAM,EACP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAgB,aAAa,EAAE,MAAM,SAAS,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAO1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;AAEtF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CACtC;IACE,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,EACD,qBAAqB,CACtB,CAAC;AAmBF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGvF;AASD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAEtF;AAgBD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,SAAU,SAAQ,aAAa,CAAC,YAAY,CAAC;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvB,MAAM,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAkBtC;IAEF,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS;gBAiB5B,OAAO,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,OAAO;IAapD,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;IAO7C,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO;IAOpD,QAAQ,IAAI,OAAO;IAInB,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,mBAAmB,GAAG,SAAS;IAcjE,UAAU,IAAI,mBAAmB;IAiBjC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAKlC,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAMpD,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAKtC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAKhC,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAKrC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI;IAKrC,MAAM,IAAI,MAAM;IAIhB,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B,eAAe,IAAI,MAAM,GAAG,SAAS;IAIrC,SAAS,IAAI,WAAW,GAAG,SAAS;IAIpC,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;CAatE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAErE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,SAAS,CAEpF"}
1
+ {"version":3,"file":"ImageNode.d.ts","sourceRoot":"","sources":["../../src/nodes/ImageNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,OAAO,EACP,qBAAqB,EACrB,MAAM,EACP,MAAM,SAAS,CAAC;AACjB,OAAO,EAAgB,aAAa,EAAE,MAAM,SAAS,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAO1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,aAAa,GAAG,YAAY,GAAG,aAAa,CAAC;AAEtF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CACtC;IACE,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,EACD,qBAAqB,CACtB,CAAC;AAmBF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAGvF;AASD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAEtF;AAgBD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,SAAU,SAAQ,aAAa,CAAC,YAAY,CAAC;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvB,MAAM,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAoBtC;IAEF,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS;gBAiB5B,OAAO,EAAE,gBAAgB,EAAE,GAAG,CAAC,EAAE,OAAO;IAapD,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;IAO7C,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO;IAOpD,QAAQ,IAAI,OAAO;IAInB,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,mBAAmB,GAAG,SAAS;IAcjE,UAAU,IAAI,mBAAmB;IAiBjC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKzB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IAKlC,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAMpD,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;IAKtC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAKhC,eAAe,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAKrC,SAAS,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,IAAI;IAKrC,MAAM,IAAI,MAAM;IAIhB,UAAU,IAAI,MAAM;IAIpB,UAAU,IAAI,MAAM,GAAG,SAAS;IAIhC,QAAQ,IAAI,MAAM,GAAG,SAAS;IAI9B,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B,YAAY,IAAI,MAAM,GAAG,SAAS;IAIlC,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B,eAAe,IAAI,MAAM,GAAG,SAAS;IAIrC,SAAS,IAAI,WAAW,GAAG,SAAS;IAIpC,QAAQ,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;CAatE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,SAAS,CAErE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,SAAS,CAEpF"}
@@ -1,5 +1,5 @@
1
- import { a as FootnoteSectionEditNode, i as customEditNodes, n as setResolvedEditNodes, r as allEditNodes, t as getResolvedEditNodes } from "./node-registry-yEhq_Frh.js";
2
- import { C as KaTeXBlockNode, D as sanitizeImageDisplayWidth, E as ImageNode, N as ALERT_LABELS, O as sanitizeImageLayout, P as ALERT_TYPES, S as $isKaTeXBlockNode, T as $isImageNode, _ as MentionNode, b as KaTeXInlineNode, d as RichQuoteNode, f as $createMermaidNode, g as $isMentionNode, h as $createMentionNode, i as TagNode, l as $createRichQuoteNode, m as MermaidNode, n as $createTagNode, p as $isMermaidNode, r as $isTagNode, u as $isRichQuoteNode, w as $createImageNode, y as $isKaTeXInlineNode } from "./theme-DeflyeEq.js";
3
- import { A as BANNER_LABELS, C as CommentNode, S as $isCommentNode, _ as FootnoteSectionNode, b as $createCommentNode, c as RubyNode, d as LinkCardNode, f as $createGridContainerNode, g as $isFootnoteSectionNode, h as $createFootnoteSectionNode, j as BANNER_TYPES, l as $createLinkCardNode, m as GridContainerNode, n as builtinNodes, o as $createRubyNode, p as $isGridContainerNode, r as customNodes, s as $isRubyNode, t as allNodes, u as $isLinkCardNode } from "./config-GMSEHe93.js";
4
- import { r as NESTED_EDITOR_NODES } from "./AlertQuoteEditNode-DVYvFre7.js";
1
+ import { a as FootnoteSectionEditNode, i as customEditNodes, n as setResolvedEditNodes, r as allEditNodes, t as getResolvedEditNodes } from "./node-registry-DC4YNvpX.js";
2
+ import { C as KaTeXBlockNode, D as sanitizeImageDisplayWidth, E as ImageNode, F as ALERT_TYPES, O as sanitizeImageLayout, P as ALERT_LABELS, S as $isKaTeXBlockNode, T as $isImageNode, _ as MentionNode, b as KaTeXInlineNode, d as RichQuoteNode, f as $createMermaidNode, g as $isMentionNode, h as $createMentionNode, i as TagNode, l as $createRichQuoteNode, m as MermaidNode, n as $createTagNode, p as $isMermaidNode, r as $isTagNode, u as $isRichQuoteNode, w as $createImageNode, y as $isKaTeXInlineNode } from "./theme-D0MVbrmN.js";
3
+ import { A as BANNER_LABELS, C as CommentNode, S as $isCommentNode, _ as FootnoteSectionNode, b as $createCommentNode, c as RubyNode, d as LinkCardNode, f as $createGridContainerNode, g as $isFootnoteSectionNode, h as $createFootnoteSectionNode, j as BANNER_TYPES, l as $createLinkCardNode, m as GridContainerNode, n as builtinNodes, o as $createRubyNode, p as $isGridContainerNode, r as customNodes, s as $isRubyNode, t as allNodes, u as $isLinkCardNode } from "./config-BAaPXAiP.js";
4
+ import { r as NESTED_EDITOR_NODES } from "./AlertQuoteEditNode-CHm3Qfuq.js";
5
5
  export { $createCommentNode, $createFootnoteSectionNode, $createGridContainerNode, $createImageNode, $createLinkCardNode, $createMentionNode, $createMermaidNode, $createRichQuoteNode, $createRubyNode, $createTagNode, $isCommentNode, $isFootnoteSectionNode, $isGridContainerNode, $isImageNode, $isKaTeXBlockNode, $isKaTeXInlineNode, $isLinkCardNode, $isMentionNode, $isMermaidNode, $isRichQuoteNode, $isRubyNode, $isTagNode, ALERT_LABELS, ALERT_TYPES, BANNER_LABELS, BANNER_TYPES, CommentNode, FootnoteSectionEditNode, FootnoteSectionNode, GridContainerNode, ImageNode, KaTeXBlockNode, KaTeXInlineNode, LinkCardNode, MentionNode, MermaidNode, NESTED_EDITOR_NODES, RichQuoteNode, RubyNode, TagNode, allEditNodes, allNodes, builtinNodes, customEditNodes, customNodes, getResolvedEditNodes, sanitizeImageDisplayWidth, sanitizeImageLayout, setResolvedEditNodes };
@@ -1 +1 @@
1
- {"version":3,"file":"ImagePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/ImagePlugin.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAG1D,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,CAAA;AAEjD,eAAO,MAAM,oBAAoB,oDAEhC,CAAA;AAED,wBAAgB,WAAW,SAgB1B"}
1
+ {"version":3,"file":"ImagePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/ImagePlugin.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAI3D,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAElD,eAAO,MAAM,oBAAoB,oDAA4D,CAAC;AAE9F,wBAAgB,WAAW,SAgB1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ImageUploadPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/ImageUploadPlugin.tsx"],"names":[],"mappings":"AA0BA,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AA0CvE,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAK/E;AAED,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,sBAAsB,+BAgcrE"}
1
+ {"version":3,"file":"ImageUploadPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/ImageUploadPlugin.tsx"],"names":[],"mappings":"AA2BA,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AA0CvE,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAK/E;AAED,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE,sBAAsB,+BAocrE"}
@@ -1,3 +1,3 @@
1
- import { A as blockIdState, B as ALL_TRANSFORMERS, D as ImageUploadPlugin, E as LinkFaviconPlugin, F as ImagePreprocessProvider, G as AutoLinkPlugin, H as ClickBelowPlugin, I as useImagePreprocess, L as CorePlugins, M as useVideoUpload, N as ImageUploadProvider, O as defaultImageUpload, P as useImageUpload, R as MarkdownShortcutsPlugin, U as registerClickBelowCommand, V as HorizontalRulePlugin, W as BlockExitPlugin, a as AutoFocusPlugin, i as EditorRefPlugin, j as VideoUploadProvider, k as BlockIdPlugin, n as OnChangePlugin, o as VideoUploadPlugin, r as FootnotePlugin, s as TextSelectionPlugin, t as SubmitShortcutPlugin, z as MarkdownPastePlugin } from "./SubmitShortcutPlugin-CIFnoaQa.js";
2
- import { a as KaTeXPlugin, c as AlertPlugin, n as MermaidPlugin, s as ImagePlugin } from "./MermaidPlugin-eTxvsBGu.js";
1
+ import { A as blockIdState, B as ALL_TRANSFORMERS, D as ImageUploadPlugin, E as LinkFaviconPlugin, F as ImagePreprocessProvider, G as AutoLinkPlugin, H as ClickBelowPlugin, I as useImagePreprocess, L as CorePlugins, M as useVideoUpload, N as ImageUploadProvider, O as defaultImageUpload, P as useImageUpload, R as MarkdownShortcutsPlugin, U as registerClickBelowCommand, V as HorizontalRulePlugin, W as BlockExitPlugin, a as AutoFocusPlugin, i as EditorRefPlugin, j as VideoUploadProvider, k as BlockIdPlugin, n as OnChangePlugin, o as VideoUploadPlugin, r as FootnotePlugin, s as TextSelectionPlugin, t as SubmitShortcutPlugin, z as MarkdownPastePlugin } from "./SubmitShortcutPlugin-DPGw-tfF.js";
2
+ import { a as KaTeXPlugin, c as AlertPlugin, n as MermaidPlugin, s as ImagePlugin } from "./MermaidPlugin--VfIaE2p.js";
3
3
  export { ALL_TRANSFORMERS, AlertPlugin, AutoFocusPlugin, AutoLinkPlugin, BlockExitPlugin, BlockIdPlugin, ClickBelowPlugin, CorePlugins, EditorRefPlugin, FootnotePlugin, HorizontalRulePlugin, ImagePlugin, ImagePreprocessProvider, ImageUploadPlugin, ImageUploadProvider, KaTeXPlugin, LinkFaviconPlugin, MarkdownPastePlugin, MarkdownShortcutsPlugin, MermaidPlugin, OnChangePlugin, SubmitShortcutPlugin, TextSelectionPlugin, VideoUploadPlugin, VideoUploadProvider, blockIdState, defaultImageUpload, registerClickBelowCommand, useImagePreprocess, useImageUpload, useVideoUpload };
@@ -1,2 +1,2 @@
1
- :root{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-font-family-sans:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono:"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-line-height:1.7;--rc-line-height-tight:1.4;--rc-font-family:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}:root.dark,[data-theme=dark]{--rc-text:#fafafa;--rc-text-secondary:#a3a3a3;--rc-text-tertiary:#737373;--rc-text-quaternary:#525252;--rc-bg:#0a0a0a;--rc-bg-secondary:#171717;--rc-bg-tertiary:#262626;--rc-fill:#2a2a2a;--rc-fill-secondary:#222;--rc-fill-tertiary:#1a1a1a;--rc-fill-quaternary:#141414;--rc-border:#262626;--rc-accent:#60a5fa;--rc-accent-light:#60a5fa20;--rc-link:#60a5fa;--rc-code-text:#d4d4d4;--rc-code-bg:#262626;--rc-hr-border:#262626;--rc-quote-border:#60a5fa;--rc-quote-bg:#262626;--rc-alert-info:#7db9e5;--rc-alert-warning:#da864a;--rc-alert-tip:#54da48;--rc-alert-caution:#e16973;--rc-alert-important:#9966e0;--rc-shadow-top-bar:0 8px 30px #00000073, 0 2px 8px #0000004d;--rc-shadow-modal:0 10px 15px -3px #0006, 0 4px 6px -4px #00000059;--rc-shadow-menu:0 1px 4px #00000040, 0 4px 16px #0006}._13h71jk0{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-font-family-sans:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono:"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-line-height:1.7;--rc-line-height-tight:1.4;--rc-font-family:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}._13h71jk1{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-font-family-sans:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono:"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-line-height:1.8;--rc-line-height-tight:1.4;--rc-font-family:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}._13h71jk2{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#a3a3a3;--rc-quote-bg:#fafafa;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:none;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--rc-space-xs:2px;--rc-space-sm:4px;--rc-space-md:10px;--rc-space-lg:16px;--rc-space-xl:20px;--rc-font-family-sans:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono:"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:14px;--rc-font-size-small:12px;--rc-line-height:1.5;--rc-line-height-tight:1.3;--rc-font-family:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm:3px;--rc-radius-md:6px;--rc-radius-lg:12px}.dark ._13h71jk0,[data-theme=dark] ._13h71jk0,.dark._13h71jk0,[data-theme=dark]._13h71jk0,.dark ._13h71jk1,[data-theme=dark] ._13h71jk1,.dark._13h71jk1,[data-theme=dark]._13h71jk1,.dark ._13h71jk2,[data-theme=dark] ._13h71jk2,.dark._13h71jk2,[data-theme=dark]._13h71jk2{--rc-text:#fafafa;--rc-text-secondary:#a3a3a3;--rc-text-tertiary:#737373;--rc-text-quaternary:#525252;--rc-bg:#0a0a0a;--rc-bg-secondary:#171717;--rc-bg-tertiary:#262626;--rc-fill:#2a2a2a;--rc-fill-secondary:#222;--rc-fill-tertiary:#1a1a1a;--rc-fill-quaternary:#141414;--rc-border:#262626;--rc-accent:#60a5fa;--rc-accent-light:#60a5fa20;--rc-link:#60a5fa;--rc-code-text:#d4d4d4;--rc-code-bg:#262626;--rc-hr-border:#262626;--rc-quote-border:#60a5fa;--rc-quote-bg:#262626;--rc-alert-info:#7db9e5;--rc-alert-warning:#da864a;--rc-alert-tip:#54da48;--rc-alert-caution:#e16973;--rc-alert-important:#9966e0;--rc-shadow-top-bar:0 8px 30px #00000073, 0 2px 8px #0000004d;--rc-shadow-modal:0 10px 15px -3px #0006, 0 4px 6px -4px #00000059;--rc-shadow-menu:0 1px 4px #00000040, 0 4px 16px #0006}@keyframes r8uj4t0{to{--rc-hl-highlighted:1}}@keyframes r8uj4t1{0%{background-color:#ef44443d}to{background-color:#0000}}.r8uj4t2{font-family:var(--rc-font-family);font-size:var(--rc-font-size-base);line-height:var(--rc-line-height);color:var(--rc-text);word-wrap:break-word;overflow-wrap:break-word;display:flow-root}.r8uj4t3{line-height:var(--rc-line-height);margin:0 0 1em}.r8uj4t4{font-weight:700}.r8uj4t5{font-style:italic}.r8uj4t6{text-decoration:underline}.r8uj4t7{opacity:.65;text-decoration:line-through}.r8uj4t8{vertical-align:super;font-size:.8em}.r8uj4t9{vertical-align:sub;font-size:.8em}.r8uj4ta{font-family:var(--rc-font-mono);background-color:var(--rc-code-bg);color:inherit;border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);padding:2px 6px;font-size:.9em}[contenteditable=true] .r8uj4ta{padding-right:0}.r8uj4tb{--rc-hl-lightness:.3;--rc-hl-highlighted:1;--rc-hl-color:oklch(from var(--rc-accent) l c h / var(--rc-hl-lightness));background:linear-gradient(120deg, var(--rc-hl-color,lightblue) 50%, transparent 50%) 110% 0 / 200% 100% no-repeat;background-position:calc((1 - var(--rc-hl-highlighted)) * 110%) 0;color:var(--rc-text);transition:background-position 1s}[contenteditable=true] .r8uj4tb{--rc-hl-highlighted:1;animation:none}[data-theme=dark] .r8uj4tb{--rc-hl-lightness:.35}.r8uj4tc{color:var(--rc-text-secondary);opacity:0;align-items:center;font-size:.8rem;text-decoration:none;transition:opacity .15s;display:flex;position:absolute;top:0;bottom:0;left:-1.25rem}.r8uj4td{font-size:2em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.5em;margin-bottom:.5em;position:relative}[contenteditable=true] .r8uj4td:before{content:"H1";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4te{font-size:1.5em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.4em;margin-bottom:.45em;position:relative}[contenteditable=true] .r8uj4te:before{content:"H2";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4tf{font-size:1.25em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.3em;margin-bottom:.4em;position:relative}[contenteditable=true] .r8uj4tf:before{content:"H3";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4tg{font-size:1.125em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.2em;margin-bottom:.35em;position:relative}[contenteditable=true] .r8uj4tg:before{content:"H4";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4th{font-size:1em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.1em;margin-bottom:.3em;position:relative}[contenteditable=true] .r8uj4th:before{content:"H5";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4ti{font-size:.875em;font-weight:600;line-height:var(--rc-line-height-tight);color:var(--rc-text);margin-top:1em;margin-bottom:.25em;position:relative}[contenteditable=true] .r8uj4ti:before{content:"H6";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4tj{color:var(--rc-link);text-decoration:none;transition:color .2s}.r8uj4tj:hover{text-decoration:underline}.r8uj4tj[data-favicon=loaded]:before{content:"";vertical-align:-.125em;background-image:var(--rc-link-favicon);background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:2px;width:1em;height:1em;margin-right:.2em;display:inline-block}.r8uj4tk{vertical-align:-.125em;align-items:center;margin-right:.15em;display:inline-flex}.r8uj4tl{padding-left:var(--rc-space-lg);margin-bottom:1em;list-style-type:decimal}.r8uj4tm{padding-left:var(--rc-space-lg);margin-bottom:1em;list-style-type:disc}.r8uj4tn{margin-bottom:.25em}.r8uj4to{list-style-type:none}.r8uj4tp{padding-left:0;list-style-type:none}.r8uj4tq{--rc-cb-size:1.125rem;outline:none;padding-left:2em;list-style-type:none;transition:color .25s;position:relative}.r8uj4tq:before{content:"";left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:1.5px solid var(--rc-text-quaternary);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;background-color:#0000;transition:background-color .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1),transform .15s;position:absolute}.r8uj4tq:after{content:"";left:calc(var(--rc-cb-size) * .32);top:calc((1lh - var(--rc-cb-size)) / 2 + var(--rc-cb-size) * .14);width:calc(var(--rc-cb-size) * .28);height:calc(var(--rc-cb-size) * .55);border-right:2px solid var(--rc-accent);border-bottom:2px solid var(--rc-accent);box-sizing:border-box;pointer-events:none;transform-origin:50%;opacity:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1) .1s,opacity .15s;display:block;position:absolute;transform:rotate(45deg)scale(0)}[contenteditable=true] .r8uj4tq:active:before{transform:scale(.94)}[contenteditable=true] .r8uj4tq:hover:before{border-color:var(--rc-text-tertiary)}.r8uj4tr{--rc-cb-size:1.125rem;color:var(--rc-text-secondary);outline:none;padding-left:2em;list-style-type:none;transition:color .25s;position:relative}.r8uj4tr:before{content:"";left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:1.5px solid var(--rc-text-quaternary);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;background-color:var(--rc-accent-light);border-color:var(--rc-accent);transition:background-color .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1),transform .15s;position:absolute}.r8uj4tr:after{content:"";left:calc(var(--rc-cb-size) * .32);top:calc((1lh - var(--rc-cb-size)) / 2 + var(--rc-cb-size) * .14);width:calc(var(--rc-cb-size) * .28);height:calc(var(--rc-cb-size) * .55);border-right:2px solid var(--rc-accent);border-bottom:2px solid var(--rc-accent);box-sizing:border-box;pointer-events:none;transform-origin:50%;opacity:1;transition:transform .3s cubic-bezier(.34,1.56,.64,1) .1s,opacity .15s;display:block;position:absolute;transform:rotate(45deg)scale(1)}[contenteditable=true] .r8uj4tr:active:before{transform:scale(.94)}[contenteditable=true] .r8uj4tr:hover:before{background-color:color-mix(in oklab, var(--rc-accent) 12%, transparent)}.r8uj4ts{background-color:var(--rc-quote-bg);margin:var(--rc-space-md) 0;padding:var(--rc-space-sm) var(--rc-space-md);padding-left:calc(var(--rc-space-md) + 4px);color:var(--rc-text-secondary);border-radius:0 var(--rc-radius-sm) var(--rc-radius-sm) 0;font-style:normal;position:relative}.r8uj4ts:before{content:"";border-radius:var(--rc-radius-sm);background-color:var(--rc-quote-border);width:4px;position:absolute;top:0;bottom:0;left:0}.r8uj4ts[data-attribution-panel]{padding-bottom:calc(var(--rc-space-sm) + 24px)}.r8uj4tt{text-align:right;color:var(--rc-text-secondary);margin-top:var(--rc-space-sm);font-size:12px;font-style:normal;display:block}.r8uj4tu{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}.r8uj4tv{overflow-x:auto}.r8uj4tw{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}.r8uj4tw:last-child{border-right:none}.r8uj4tx{border:none;border-bottom:1px solid var(--rc-border);border-right:1px solid var(--rc-border);padding:var(--rc-space-md) var(--rc-space-lg);text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--rc-text-secondary);background-color:var(--rc-bg-secondary);vertical-align:middle;z-index:1;font-size:.75em;font-weight:600;line-height:1.5;position:sticky;top:0}.r8uj4tx:last-child{border-right:none}.r8uj4ty{border-collapse:separate;border-spacing:0;width:100%;margin:var(--rc-space-lg) 0;font-size:var(--rc-font-size-small);border:1px solid var(--rc-border);border-radius:var(--rc-radius-md);overflow:hidden}.r8uj4tz{background-color:var(--rc-text);color:#0000;border-radius:var(--rc-radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;padding-inline-start:4px;padding-inline-end:4px;transition:background-color .3s,color .3s}[contenteditable=true] .r8uj4tz{background-color:color-mix(in srgb, var(--rc-text) 30%, transparent);color:inherit;-webkit-user-select:auto;user-select:auto;cursor:text}.r8uj4tz:hover{color:inherit;-webkit-user-select:auto;user-select:auto;background-color:#0000}.rich-content .r8uj4tz{background-color:var(--rc-text-tertiary);color:#0000}.rich-content .r8uj4tz:not(:hover):not(.rich-spoiler-revealed) *{color:#0000!important}.rich-content .r8uj4tz:hover,.r8uj4t10{color:inherit;-webkit-user-select:auto;user-select:auto;background-color:#0000}.r8uj4t11{font-size:var(--rc-font-size-small);vertical-align:baseline;border-radius:999px;padding-inline-start:.75em;padding-inline-end:.75em;line-height:1.6;display:inline-block}.r8uj4t12{font-family:var(--rc-font-mono);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);background-color:var(--rc-code-bg);border:1px dashed var(--rc-border);border-radius:var(--rc-radius-sm);white-space:break-spaces;padding:2px 6px;display:inline-block}.r8uj4t12:before{content:"<!--";opacity:.7}.r8uj4t12:after{content:"-->";opacity:.7}.r8uj4t13{ruby-position:over;ruby-align:center}[contenteditable=true] .r8uj4t13[data-ruby]{padding-top:.72em;line-height:1.2;display:inline-block;position:relative}[contenteditable=true] .r8uj4t13[data-ruby]:before{content:attr(data-ruby);text-align:center;color:var(--rc-text-secondary);pointer-events:none;white-space:nowrap;font-size:.58em;line-height:1;position:absolute;top:0;left:0;right:0;transform:translateY(-.68em)}.r8uj4t14{color:var(--rc-text-secondary);-webkit-user-select:none;user-select:none;font-size:.58em;line-height:1}.r8uj4t15{vertical-align:super;font-size:.8em}.r8uj4t16{min-width:1.5em;color:var(--rc-accent);background-color:var(--rc-accent-light);border-radius:999px;justify-content:center;align-items:center;padding:0 .35em;font-size:.82em;font-weight:600;line-height:1.45;text-decoration:none;transition:filter .15s;display:inline-flex}.r8uj4t16:hover{filter:brightness(.96)}.r8uj4t17{animation:1.2s ease-out r8uj4t1}.r8uj4t18{display:inline;position:relative}.r8uj4t19{margin-top:var(--rc-space-lg)}.r8uj4t1a{border:none;border-top:1px solid var(--rc-border);margin:var(--rc-space-lg) 0 var(--rc-space-md)}.r8uj4t1b{padding-left:var(--rc-space-lg);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);line-height:1.6;list-style-type:decimal}.r8uj4t1c{margin-bottom:var(--rc-space-sm);padding-left:var(--rc-space-xs)}.r8uj4t1d{margin-left:var(--rc-space-xs);color:var(--rc-accent);font-size:.85em;font-family:var(--rc-font-mono);align-items:center;text-decoration:none;transition:opacity .15s;display:inline-flex}.r8uj4t1d:hover{opacity:.7}.r8uj4t1e{align-items:center;gap:var(--rc-space-sm);list-style-type:none;display:flex}.r8uj4t1f{color:var(--rc-text-secondary);font-size:var(--rc-font-size-small);flex-shrink:0;min-width:1.5em;font-weight:600}.r8uj4t1g{border:1px solid var(--rc-border);border-radius:var(--rc-radius-sm);padding:var(--rc-space-xs) var(--rc-space-sm);font-size:var(--rc-font-size-small);color:var(--rc-text);background-color:#0000;outline:none;flex:1;transition:border-color .15s}.r8uj4t1g:focus{border-color:var(--rc-accent)}.r8uj4t1h{width:20px;height:20px;color:var(--rc-text-secondary);cursor:pointer;border-radius:var(--rc-radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;transition:color .15s,background-color .15s;display:inline-flex}.r8uj4t1h:hover{color:#ef4444;background-color:#ef44441a}.r8uj4t1i{cursor:grab;border-radius:var(--rc-radius-sm);width:20px;height:20px;color:var(--rc-text-secondary);opacity:.4;z-index:10;justify-content:center;align-items:center;transition:opacity .15s,background-color .15s;display:flex;position:absolute}.r8uj4t1i:hover{opacity:1;background-color:var(--rc-fill-secondary)}.r8uj4t1i:active{cursor:grabbing}.r8uj4t1j{background-color:var(--rc-accent);pointer-events:none;z-index:10;border-radius:1px;height:2px;position:absolute}.r8uj4t1k{background-color:#0000;border:none;border-radius:0;margin:2em 0;padding:0 1em}.r8uj4t2 mark{background:0 0}.r8uj4t2 img{border-radius:var(--rc-radius-md);max-width:100%;height:auto}.r8uj4t2>:first-child,.r8uj4t2 .rich-editor__content>:first-child{margin-top:0}.r8uj4t2>:last-child,.r8uj4t2 .rich-editor__content>:last-child{margin-bottom:0}.r8uj4tc svg{flex-shrink:0}.r8uj4td:hover .r8uj4tc{opacity:.5}.r8uj4td:hover .r8uj4tc:hover{opacity:1}.r8uj4te:hover .r8uj4tc{opacity:.5}.r8uj4te:hover .r8uj4tc:hover{opacity:1}.r8uj4tf:hover .r8uj4tc{opacity:.5}.r8uj4tf:hover .r8uj4tc:hover{opacity:1}.r8uj4tg:hover .r8uj4tc{opacity:.5}.r8uj4tg:hover .r8uj4tc:hover{opacity:1}.r8uj4th:hover .r8uj4tc{opacity:.5}.r8uj4th:hover .r8uj4tc:hover{opacity:1}.r8uj4ti:hover .r8uj4tc{opacity:.5}.r8uj4ti:hover .r8uj4tc:hover{opacity:1}.r8uj4tk img{object-fit:contain;border-radius:2px;width:1em;height:1em}.r8uj4tk svg{width:.9em;height:.9em}.r8uj4to .r8uj4tl{list-style-type:lower-alpha}.r8uj4to .r8uj4tm{list-style-type:circle}.r8uj4tr>*,.r8uj4tq>*{background-image:linear-gradient(var(--rc-text-secondary), var(--rc-text-secondary));background-position:0;background-repeat:no-repeat;background-size:0% 1.5px;transition:background-size .35s cubic-bezier(.4,0,.2,1) .15s,opacity .15s}.r8uj4tr>*{opacity:.5;background-size:100% 1.5px}.r8uj4ts>.r8uj4t3:first-child{margin-top:0}.r8uj4ts>.r8uj4t3:last-child{margin-bottom:0}.r8uj4ty tbody tr:last-child .r8uj4tw{border-bottom:none}.r8uj4tw .r8uj4t3{line-height:inherit;margin:0;padding:0}.r8uj4tw>:first-child{margin-top:0}.r8uj4tw>:last-child{margin-bottom:0}.r8uj4tx .r8uj4t3{line-height:inherit;margin:0;padding:0}.r8uj4tx>:first-child{margin-top:0}.r8uj4tx>:last-child{margin-bottom:0}figure.rich-image{width:var(--rich-image-display-width,auto);max-width:100%;margin-inline-start:auto;margin-inline-end:auto}figure.rich-image[data-layout=align-left]{text-align:left;margin-left:0;margin-right:auto}figure.rich-image[data-layout=align-right]{text-align:right;margin-left:auto;margin-right:0}figure.rich-image[data-layout=float-left]{float:left;width:var(--rich-image-display-width,50%);margin:.25rem 1.5rem 1rem 0}figure.rich-image[data-layout=float-right]{float:right;width:var(--rich-image-display-width,50%);margin:.25rem 0 1rem 1.5rem}.rich-image-wrapper[data-layout=float-left]{float:left;width:50%;max-width:100%;margin:.25rem 1.5rem 1rem 0}.rich-image-wrapper[data-layout=float-right]{float:right;width:50%;max-width:100%;margin:.25rem 0 1rem 1.5rem}.rich-image-wrapper[data-layout^=float] figure.rich-image{float:none;width:auto;margin:0}@supports (animation-timeline:view()){.r8uj4tb{--rc-hl-highlighted:0;animation:step-end both r8uj4t0;animation-timeline:view();animation-range:entry 100% cover 10%}}@media (max-width:640px){figure.rich-image[data-layout^=float]{float:none;width:auto;margin:1.25rem auto}.rich-image-wrapper[data-layout^=float]{float:none;margin:0;width:100%!important}}._1o2d5g50{margin:var(--rc-space-md) 0;interpolate-size:allow-keywords;background-color:#0000;border:none}._1o2d5g51{align-items:flex-start;gap:var(--rc-space-sm);cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--rc-space-xs) 0;color:var(--rc-text);font-size:1em;font-weight:500;line-height:var(--rc-line-height);border-radius:var(--rc-radius-sm);outline:none;list-style:none;transition:opacity .2s,color .2s,box-shadow .2s;display:flex}._1o2d5g51:hover{opacity:.82}._1o2d5g51:focus-visible{box-shadow:0 0 0 2px var(--rc-accent-light)}._1o2d5g51::-webkit-details-marker{display:none}._1o2d5g51::marker{content:"";display:none}._1o2d5g52{flex:1;min-width:0}._1o2d5g53{width:1.25rem;height:1.25rem;color:var(--rc-text-tertiary);transform-origin:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .35s cubic-bezier(.4,0,.2,1),color .2s;display:inline-flex;position:relative;top:.25rem}._1o2d5g54{margin-top:var(--rc-space-xs);padding:var(--rc-space-sm) var(--rc-space-xl);color:var(--rc-text-secondary);background-color:color-mix(in srgb, var(--rc-accent) 6%, var(--rc-bg-secondary));border-radius:var(--rc-radius-md)}._1o2d5g51:hover ._1o2d5g53{color:var(--rc-text-secondary)}._1o2d5g50[open] ._1o2d5g53{color:var(--rc-accent);transform:rotate(90deg)}._1o2d5g50::details-content{opacity:0;content-visibility:hidden;height:0;transition:height .4s cubic-bezier(.4, 0, .2, 1), opacity .4s cubic-bezier(.4, 0, .2, 1), content-visibility .4s cubic-bezier(.4, 0, .2, 1) allow-discrete;display:block;overflow:hidden}._1o2d5g50[open]::details-content{opacity:1;content-visibility:visible;height:auto}._1o2d5g54>.r8uj4t3:first-child{margin-top:0}._1o2d5g54>.r8uj4t3:last-child{margin-bottom:0}.v10dui0{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);color:var(--rc-text);line-height:1.75}.v10dui0 .r8uj4t3{margin-top:1.5em;margin-bottom:1.5em}.v10dui0 .r8uj4td{color:var(--rc-text);margin-top:0;margin-bottom:.833333em;font-size:3em;font-weight:800;line-height:1}.v10dui0 .r8uj4te{color:var(--rc-text);margin-top:1.86667em;margin-bottom:1.06667em;font-size:1.875em;font-weight:700;line-height:1.33333}.v10dui0 .r8uj4tf{color:var(--rc-text);margin-top:1.66667em;margin-bottom:.666667em;font-size:1.5em;font-weight:600;line-height:1.5}.v10dui0 .r8uj4tg{color:var(--rc-text);margin-top:2em;margin-bottom:.5em;font-weight:600;line-height:1.5625}.v10dui0 .r8uj4te+*,.v10dui0 .r8uj4tf+*,.v10dui0 .r8uj4tg+*{margin-top:0}.v10dui0 .r8uj4ts{color:var(--rc-text);quotes:"“""”""‘""’";background-color:#0000;border-radius:0;margin-top:2.5em;margin-bottom:2.5em;padding-left:calc(1.5em + 4px);font-style:italic;font-weight:500}.v10dui0 .r8uj4ts:not([data-no-open-quote]) .r8uj4t3:first-of-type:before{content:open-quote}.v10dui0 .r8uj4ts:not([data-no-close-quote]) .r8uj4t3:last-of-type:after{content:close-quote}.v10dui0 .r8uj4ts .r8uj4t3:first-child{margin-top:0}.v10dui0 .r8uj4ts .r8uj4t3:last-child{margin-bottom:0}.v10dui0 .r8uj4ta{color:inherit;background-color:var(--rc-code-bg);border-radius:var(--rc-radius-sm);font-size:.875em;font-weight:600;font-family:var(--rc-font-mono);padding:.2em .4em}.v10dui0 .r8uj4ta:before,.v10dui0 .r8uj4ta:after{content:"`";color:var(--rc-text-secondary);opacity:.5}.v10dui0 [contenteditable=true] .r8uj4ta:before,.v10dui0 [contenteditable=true] .r8uj4ta:after{content:""}.v10dui0 .rich-code-block{color:var(--rc-text);background-color:var(--rc-code-bg);border-radius:.375rem;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.75}.v10dui0 .rich-code-block pre{margin:0;padding:1em 1.5em}.v10dui0 .r8uj4tm,.v10dui0 .r8uj4tl{margin-top:1.5em;margin-bottom:1.5em;padding-left:1.75em}.v10dui0 .r8uj4tn{margin-top:.75em;margin-bottom:.75em}.v10dui0 .r8uj4tn:not(.r8uj4tr):not(.r8uj4tq){padding-left:.5em}.v10dui0 .r8uj4tn .r8uj4t3{margin-top:1em;margin-bottom:1em}.v10dui0 .r8uj4tn>.r8uj4t3:first-child{margin-top:1.5em}.v10dui0 .r8uj4tn>.r8uj4t3:last-child{margin-bottom:1.5em}.v10dui0 .r8uj4tm .r8uj4tm,.v10dui0 .r8uj4tm .r8uj4tl,.v10dui0 .r8uj4tl .r8uj4tm,.v10dui0 .r8uj4tl .r8uj4tl{margin-top:1em;margin-bottom:1em}.v10dui0 .r8uj4ty{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.5}.v10dui0 .r8uj4ty .r8uj4t3{line-height:inherit;margin:0;padding:0}.v10dui0 .rich-image{margin-top:2em;margin-bottom:2em}.v10dui0 .rich-image>*{margin-top:0;margin-bottom:0}.v10dui0 .rich-image figcaption{color:var(--rc-text-secondary);margin-top:1em;font-size:.875em;line-height:1.5}.v10dui0 .r8uj4tu{border-color:var(--rc-hr-border);border-top-width:1px;width:60px;margin:3.5em auto}.v10dui0 .r8uj4tu+*{margin-top:0}.v10dui0 .r8uj4tj{font-weight:500;text-decoration:underline}.v10dui0 .rich-banner,.v10dui0 .rich-code-snippet,.v10dui0 ._1o2d5g50{margin:2em 0}.v10dui0>:first-child{margin-top:0}.v10dui0>:last-child{margin-bottom:0}.egstxq0{vertical-align:middle;padding:0 2px;display:inline}.egstxq1{text-align:center;padding:var(--rc-space-md) 0;margin:var(--rc-space-md) 0;display:block;overflow-x:auto}.egstxq2{font-family:var(--rc-font-mono);color:var(--rc-code-text);background-color:var(--rc-code-bg);border-radius:var(--rc-radius-sm);padding:2px 6px;font-size:.9em}._14ko36c0{font-size:var(--rc-font-size-base);line-height:var(--rc-line-height)}._14ko36c0 .r8uj4t3{margin-bottom:.6em}._14ko36c0 .r8uj4td{margin-top:.8em;margin-bottom:.3em;font-size:1.35em;font-weight:700}._14ko36c0 .r8uj4te{margin-top:.7em;margin-bottom:.25em;font-size:1.2em;font-weight:700}._14ko36c0 .r8uj4tf{margin-top:.6em;margin-bottom:.2em;font-size:1.1em;font-weight:600}._14ko36c0 .r8uj4tg{margin-top:.5em;margin-bottom:.15em;font-size:1em;font-weight:600}._14ko36c0 .r8uj4th{margin-top:.45em;margin-bottom:.1em;font-size:.9em;font-weight:600}._14ko36c0 .r8uj4ti{margin-top:.4em;margin-bottom:.1em;font-size:.85em;font-weight:600}._14ko36c0 .r8uj4ts{padding:var(--rc-space-sm) var(--rc-space-md);padding-left:calc(var(--rc-space-md) + 3px);margin:var(--rc-space-sm) 0;font-size:.95em}._14ko36c0 .r8uj4ts:before{width:3px}._14ko36c0 .r8uj4tl,._14ko36c0 .r8uj4tm{padding-left:var(--rc-space-md);margin-bottom:.6em}._14ko36c0 .r8uj4tn{margin-bottom:.1em}._14ko36c0 .rich-code-block{margin:var(--rc-space-sm) 0;border-radius:var(--rc-radius-sm);font-size:var(--rc-font-size-small)}._14ko36c0 .rich-code-block pre{padding:var(--rc-space-sm)}._14ko36c0 .line:before{display:none!important}._14ko36c0 .r8uj4ty{margin:var(--rc-space-sm) 0;font-size:var(--rc-font-size-small)}._14ko36c0 .r8uj4tw,._14ko36c0 .r8uj4tx{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 .r8uj4tu{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}._14ko36c0 .r8uj4t1k{padding:var(--rc-space-sm) var(--rc-space-md);padding-left:var(--rc-space-lg);margin:var(--rc-space-sm) 0}._14ko36c0 .egstxq1{padding:var(--rc-space-sm) 0;margin:var(--rc-space-sm) 0}.ys4fw90{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);color:var(--rc-text);line-height:1.8}.ys4fw90 .rich-editor__content>.r8uj4t3,.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3{margin-top:1.25em;margin-bottom:1.25em;line-height:1.8}.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:not(:first-of-type){text-indent:2em}.ys4fw90 .rich-editor__content>.r8uj4t3:first-of-type,.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:first-of-type{margin-top:0}.ys4fw90 .rich-editor__content>.r8uj4t3:not(:first-of-type)>[data-lexical-text]:first-child{margin-inline-start:2em}.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:first-of-type:first-letter{float:left;margin-right:.2em;font-size:2.4em;line-height:1}.ys4fw90 .rich-editor__content>.r8uj4t3:first-of-type:first-letter{color:var(--rc-accent);font-size:1.5em;font-weight:700}.ys4fw90 .rich-editor__content>.r8uj4t3:last-child,.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:last-child{margin-bottom:0}.ys4fw90 .r8uj4t4{font-family:var(--rc-font-family);color:var(--rc-text);font-weight:600}.ys4fw90 .r8uj4td{letter-spacing:-.025em;color:var(--rc-text);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.ys4fw90 .r8uj4te{letter-spacing:-.025em;color:var(--rc-text);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.ys4fw90 .r8uj4te+*{margin-top:0}.ys4fw90 .r8uj4tf{letter-spacing:-.025em;color:var(--rc-text);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.ys4fw90 .r8uj4tf+*{margin-top:0}.ys4fw90 .r8uj4tg{color:var(--rc-text);margin-top:1.5em;margin-bottom:.5em;font-size:1.125em;font-weight:600;line-height:1.5}.ys4fw90 .r8uj4tg+*{margin-top:0}.ys4fw90 .r8uj4th{color:var(--rc-text);margin-top:1.5em;margin-bottom:.5em;font-size:1em;font-weight:600;line-height:1.5}.ys4fw90 .r8uj4th+*{margin-top:0}.ys4fw90 .r8uj4ti{color:var(--rc-text);text-transform:uppercase;margin-top:1.5em;margin-bottom:.5em;font-size:.875em;font-weight:600;line-height:1.5}.ys4fw90 .r8uj4ti+*{margin-top:0}.ys4fw90 .r8uj4ts{font-family:var(--rc-font-family-kai);color:color-mix(in srgb, var(--rc-accent) 60%, var(--rc-text));background-color:color-mix(in srgb, var(--rc-accent) 12%, var(--rc-bg));text-indent:0;border-radius:2px;margin:1.6em 0;padding:1.2em 1.5em;font-style:normal;line-height:1.75;transform:rotate(-.6deg);box-shadow:2px 3px 8px #00000014,0 1px 2px #0000000a}.ys4fw90 .r8uj4ts:before{content:"";background:repeating-linear-gradient(105deg, transparent, transparent 2px, #ffffff14 2px, #ffffff14 4px), color-mix(in srgb, var(--rc-accent) 20%, #0000000f);opacity:.85;border-radius:1px;width:56px;height:16px;position:absolute;top:-7px;bottom:auto;left:50%;transform:translate(-50%)rotate(1.2deg);box-shadow:0 1px 2px #0000000f}.ys4fw90 .r8uj4ts .r8uj4t3:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.ys4fw90 .r8uj4tj{text-underline-offset:2px;font-weight:500;text-decoration:underline;text-decoration-thickness:1px;transition:color .15s}.ys4fw90 .r8uj4tj:hover{text-decoration-thickness:2px}.ys4fw90 .r8uj4ta{font-size:.875em;font-family:var(--rc-font-mono);border-radius:var(--rc-radius-sm);background-color:var(--rc-code-bg);padding:.2em .4em;font-weight:500}.ys4fw90 .r8uj4tl,.ys4fw90 .r8uj4tm{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.ys4fw90 .r8uj4tn{margin-top:.5em;margin-bottom:.5em}.ys4fw90 .r8uj4tn:not(.r8uj4tr):not(.r8uj4tq){padding-left:.375em}.ys4fw90 .r8uj4tn::marker{color:var(--rc-text-secondary)}.ys4fw90 .rich-code-block{border-radius:var(--rc-radius-md);margin-top:1.71429em;margin-bottom:1.71429em;font-size:.875em;line-height:1.71429;overflow-x:auto}.ys4fw90 .rich-code-block pre{margin:0;padding:.857143em 1.14286em}.ys4fw90 .r8uj4ty{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.ys4fw90 .r8uj4ty .r8uj4t3{line-height:inherit;margin:0;padding:0}.ys4fw90 .r8uj4ty .r8uj4t3:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.ys4fw90 .rich-image{margin-top:2em;margin-bottom:2em}.ys4fw90 .rich-image img{border-radius:var(--rc-radius-md)}.ys4fw90 .rich-image figcaption{color:var(--rc-text-secondary);text-align:center;margin-top:.857143em;font-size:.875em;line-height:1.42857}.ys4fw90 .r8uj4tu{border:none;border-top:1px solid var(--rc-hr-border);opacity:.2;width:60px;margin:.5rem auto}.ys4fw90 .egstxq1{margin-top:1.6em;margin-bottom:1.6em;padding:1em 0;overflow-x:auto}.ys4fw90 .r8uj4tz{border-radius:var(--rc-radius-sm);padding-inline-start:.25em;padding-inline-end:.25em}.ys4fw90>:first-child{margin-top:0}.ys4fw90>:last-child{margin-bottom:0}._17ihk870{margin:var(--rc-space-md) 0;position:relative}._17ihk871{border-radius:var(--rc-radius-md);pointer-events:none;background:var(--rc-bg);border:1px solid var(--rc-border);box-shadow:var(--rc-shadow-top-bar);z-index:10;-webkit-user-select:none;user-select:none;white-space:nowrap;opacity:0;align-items:center;gap:2px;padding:4px 6px;transition:opacity .15s;display:flex;position:absolute;top:-36px;left:50%;transform:translate(-50%)}._17ihk872{width:24px;height:24px;color:var(--rc-text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}._17ihk873{border-radius:var(--rc-radius-sm);cursor:pointer;min-width:24px;height:24px;color:var(--rc-text-secondary);background:0 0;border:none;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:500;line-height:1;transition:color .15s,background-color .15s;display:flex}._17ihk873:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}._17ihk874{background:var(--rc-fill);color:var(--rc-text);font-weight:600}._17ihk875{background:var(--rc-border);flex-shrink:0;width:1px;height:16px;margin:0 2px}._17ihk876{border-radius:var(--rc-radius-sm);cursor:pointer;min-width:24px;height:24px;color:var(--rc-text-secondary);background:0 0;border:none;justify-content:center;align-items:center;padding:0 6px;transition:color .15s,background-color .15s;display:flex}._17ihk876:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}._17ihk877{gap:var(--rc-space-md);display:grid}._17ihk878{min-width:0}._17ihk879{outline:none;width:100%}._17ihk870:hover ._17ihk871,._17ihk870:focus-within ._17ihk871{opacity:1;pointer-events:auto}@keyframes _1x58dbf0{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes _1x58dbf6{to{transform:rotate(360deg)}}.rich-image-upload-dragging{border-radius:var(--rc-radius-md);background-color:color-mix(in srgb, var(--rc-accent) 6%, transparent);position:relative}.rich-image-upload-dragging .rich-editor__content{outline:2px dashed color-mix(in srgb, var(--rc-accent) 48%, transparent);outline-offset:-2px}._1x58dbf1{z-index:25;pointer-events:none;flex-direction:column;align-items:flex-end;gap:.375rem;display:flex;position:absolute;bottom:.75rem;right:.75rem}._1x58dbf2{border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);background-color:color-mix(in srgb, var(--rc-bg) 95%, transparent);color:var(--rc-text);font-size:var(--rc-font-size-xs);box-shadow:var(--rc-shadow-top-bar);align-items:center;gap:.375rem;padding:.375rem .625rem;line-height:1.2;animation:.12s ease-out _1x58dbf0;display:inline-flex}._1x58dbf4{border-color:color-mix(in srgb, var(--rc-accent) 35%, transparent)}._1x58dbf5{border-color:color-mix(in srgb, var(--rc-alert-caution) 45%, transparent);color:var(--rc-alert-caution)}._1x58dbf7{border:2px solid color-mix(in srgb, var(--rc-text-secondary) 35%, transparent);border-top-color:color-mix(in srgb, var(--rc-text) 65%, transparent);border-radius:50%;width:12px;height:12px;animation:.75s linear infinite _1x58dbf6}._1x58dbf8._1x58dbf8{gap:0;width:min(560px,100vw - 2rem);padding:0;overflow:hidden}._1x58dbf9{border-bottom:1px solid var(--rc-border);padding:.875rem 1rem .75rem}._1x58dbfa{font-size:var(--rc-font-size-md);color:var(--rc-text);font-weight:600}._1x58dbfb{flex-direction:column;gap:.875rem;padding:.875rem 1rem;display:flex}._1x58dbfc{align-items:center;gap:.5rem;display:flex}._1x58dbfd{border-radius:var(--rc-radius-md);border:1.5px dashed var(--rc-border);min-height:190px;color:var(--rc-text-secondary);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.2rem;transition:border-color .15s,background-color .15s,color .15s;display:flex}._1x58dbfd:hover{border-color:color-mix(in srgb, var(--rc-accent) 35%, transparent);background-color:color-mix(in srgb, var(--rc-accent) 6%, transparent);color:var(--rc-text)}._1x58dbff{border-color:color-mix(in srgb, var(--rc-accent) 55%, transparent);background-color:color-mix(in srgb, var(--rc-accent) 8%, transparent);color:var(--rc-text);transform:scale(1.01)}._1x58dbfg{cursor:progress;opacity:.9}._1x58dbfh{border-radius:var(--rc-radius-md);background-color:color-mix(in srgb, var(--rc-text) 6%, transparent);justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}._1x58dbfi{font-size:var(--rc-font-size-sm);color:var(--rc-text);font-weight:600}._1x58dbfj{font-size:var(--rc-font-size-xs);color:var(--rc-text-secondary);text-align:center}._1x58dbfk{display:none}._1x58dbfl{flex-direction:column;align-items:center;gap:.5rem;display:flex}._1x58dbfm{font-size:var(--rc-font-size-sm);color:var(--rc-text);align-items:center;gap:.375rem;display:inline-flex}._1x58dbfn{align-items:center;gap:.5rem;display:flex}._1x58dbfo{border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);background-color:var(--rc-bg);width:100%;color:var(--rc-text);height:34px;font-size:var(--rc-font-size-sm);outline:none;padding:0 .625rem;transition:border-color .15s}._1x58dbfo:focus{border-color:color-mix(in srgb, var(--rc-accent) 50%, transparent)}._1x58dbfo::placeholder{color:var(--rc-text-secondary)}._1x58dbfp{border-radius:var(--rc-radius-md);border:1px solid var(--rc-border);background-color:color-mix(in srgb, var(--rc-text) 2%, transparent);overflow:hidden}._1x58dbfq{object-fit:cover;width:100%;max-height:220px;display:block}._1x58dbfr{font-size:var(--rc-font-size-xs);color:var(--rc-text-secondary);align-items:center;gap:.4rem;display:inline-flex}._1x58dbfs{border-top:1px solid var(--rc-border);background-color:color-mix(in srgb, var(--rc-text) 2%, transparent);justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 1rem;display:flex}.gr1ebt0::selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt0 ::selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt0::-moz-selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt0 ::-moz-selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt1::selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.gr1ebt1 ::selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.gr1ebt1::-moz-selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.gr1ebt1 ::-moz-selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}::highlight(rich-editor-text-selection){background-color:var(--rc-accent-light);color:inherit}::highlight(rich-editor-text-selection-inactive){background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.b94s950{max-width:var(--rc-max-width);flex:1;width:100%;min-height:0;margin:0 auto;position:relative}.b94s951{width:100%;min-height:100px;padding:var(--ce-padding-top,12px) var(--rc-space-md) 12px var(--rc-space-md);outline:none;display:flow-root}.b94s952{top:var(--ce-padding-top,12px);left:var(--rc-space-md);color:var(--rc-text-secondary);pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}
1
+ :root{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-font-family-sans:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono:"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-line-height:1.7;--rc-line-height-tight:1.4;--rc-font-family:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}:root.dark,[data-theme=dark]{--rc-text:#fafafa;--rc-text-secondary:#a3a3a3;--rc-text-tertiary:#737373;--rc-text-quaternary:#525252;--rc-bg:#0a0a0a;--rc-bg-secondary:#171717;--rc-bg-tertiary:#262626;--rc-fill:#2a2a2a;--rc-fill-secondary:#222;--rc-fill-tertiary:#1a1a1a;--rc-fill-quaternary:#141414;--rc-border:#262626;--rc-accent:#60a5fa;--rc-accent-light:#60a5fa20;--rc-link:#60a5fa;--rc-code-text:#d4d4d4;--rc-code-bg:#262626;--rc-hr-border:#262626;--rc-quote-border:#60a5fa;--rc-quote-bg:#262626;--rc-alert-info:#7db9e5;--rc-alert-warning:#da864a;--rc-alert-tip:#54da48;--rc-alert-caution:#e16973;--rc-alert-important:#9966e0;--rc-shadow-top-bar:0 8px 30px #00000073, 0 2px 8px #0000004d;--rc-shadow-modal:0 10px 15px -3px #0006, 0 4px 6px -4px #00000059;--rc-shadow-menu:0 1px 4px #00000040, 0 4px 16px #0006}._13h71jk0{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-font-family-sans:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono:"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-line-height:1.7;--rc-line-height-tight:1.4;--rc-font-family:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}._13h71jk1{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#2563eb;--rc-quote-bg:#f5f5f5;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:700px;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--rc-space-xs:4px;--rc-space-sm:8px;--rc-space-md:16px;--rc-space-lg:24px;--rc-space-xl:32px;--rc-font-family-sans:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono:"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:16px;--rc-font-size-small:14px;--rc-line-height:1.8;--rc-line-height-tight:1.4;--rc-font-family:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-radius-sm:4px;--rc-radius-md:8px;--rc-radius-lg:12px}._13h71jk2{--rc-text:#000;--rc-text-secondary:#262626;--rc-text-tertiary:#737373;--rc-text-quaternary:#a3a3a3;--rc-bg:#fff;--rc-bg-secondary:#fafafa;--rc-bg-tertiary:#f5f5f5;--rc-fill:#e8e8e8;--rc-fill-secondary:#eee;--rc-fill-tertiary:#f5f5f5;--rc-fill-quaternary:#fafafa;--rc-border:#f5f5f5;--rc-accent:#2563eb;--rc-accent-light:#2563eb20;--rc-link:#2563eb;--rc-code-text:#404040;--rc-code-bg:#f5f5f5;--rc-hr-border:#e5e5e5;--rc-quote-border:#a3a3a3;--rc-quote-bg:#fafafa;--rc-alert-info:#006bb7;--rc-alert-warning:#c50;--rc-alert-tip:#1c0;--rc-alert-caution:#c01;--rc-alert-important:#50c;--rc-max-width:none;--rc-shadow-top-bar:0 8px 30px #0000001f, 0 2px 8px #0000000f;--rc-shadow-modal:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--rc-shadow-menu:0 1px 4px #0000000a, 0 4px 16px #00000014;--rc-space-xs:2px;--rc-space-sm:4px;--rc-space-md:10px;--rc-space-lg:16px;--rc-space-xl:20px;--rc-font-family-sans:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-font-family-serif:"Noto Serif CJK SC", "Source Han Serif SC", "Source Han Serif", "source-han-serif-sc", "Songti SC", STSong, "华文宋体", serif;--rc-font-family-kai:"楷体", KaiTi, STKaiti, "Kaiti SC", "LXGW WenKai", "霞鹜文楷", "Noto Serif CJK SC", serif;--rc-font-mono:"SF Mono", SFMono-Regular, ui-monospace, "DejaVu Sans Mono", Menlo, Consolas, monospace;--rc-font-size-2xs:.625em;--rc-font-size-xs:.75em;--rc-font-size-sm:.8125em;--rc-font-size-md:.875em;--rc-font-size-lg:1.25em;--rc-font-size-base:14px;--rc-font-size-small:12px;--rc-line-height:1.5;--rc-line-height-tight:1.3;--rc-font-family:"PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, Helvetica, "noto sans sc", "hiragino sans gb", -apple-system, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Not Color Emoji;--rc-radius-sm:3px;--rc-radius-md:6px;--rc-radius-lg:12px}.dark ._13h71jk0,[data-theme=dark] ._13h71jk0,.dark._13h71jk0,[data-theme=dark]._13h71jk0,.dark ._13h71jk1,[data-theme=dark] ._13h71jk1,.dark._13h71jk1,[data-theme=dark]._13h71jk1,.dark ._13h71jk2,[data-theme=dark] ._13h71jk2,.dark._13h71jk2,[data-theme=dark]._13h71jk2{--rc-text:#fafafa;--rc-text-secondary:#a3a3a3;--rc-text-tertiary:#737373;--rc-text-quaternary:#525252;--rc-bg:#0a0a0a;--rc-bg-secondary:#171717;--rc-bg-tertiary:#262626;--rc-fill:#2a2a2a;--rc-fill-secondary:#222;--rc-fill-tertiary:#1a1a1a;--rc-fill-quaternary:#141414;--rc-border:#262626;--rc-accent:#60a5fa;--rc-accent-light:#60a5fa20;--rc-link:#60a5fa;--rc-code-text:#d4d4d4;--rc-code-bg:#262626;--rc-hr-border:#262626;--rc-quote-border:#60a5fa;--rc-quote-bg:#262626;--rc-alert-info:#7db9e5;--rc-alert-warning:#da864a;--rc-alert-tip:#54da48;--rc-alert-caution:#e16973;--rc-alert-important:#9966e0;--rc-shadow-top-bar:0 8px 30px #00000073, 0 2px 8px #0000004d;--rc-shadow-modal:0 10px 15px -3px #0006, 0 4px 6px -4px #00000059;--rc-shadow-menu:0 1px 4px #00000040, 0 4px 16px #0006}@keyframes r8uj4t0{to{--rc-hl-highlighted:1}}@keyframes r8uj4t1{0%{background-color:#ef44443d}to{background-color:#0000}}.r8uj4t2{font-family:var(--rc-font-family);font-size:var(--rc-font-size-base);line-height:var(--rc-line-height);color:var(--rc-text);word-wrap:break-word;overflow-wrap:break-word;display:flow-root}.r8uj4t3{line-height:var(--rc-line-height);margin:0 0 1em}.r8uj4t4{font-weight:700}.r8uj4t5{font-style:italic}.r8uj4t6{text-decoration:underline}.r8uj4t7{opacity:.65;text-decoration:line-through}.r8uj4t8{vertical-align:super;font-size:.8em}.r8uj4t9{vertical-align:sub;font-size:.8em}.r8uj4ta{font-family:var(--rc-font-mono);background-color:var(--rc-code-bg);color:inherit;border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);padding:2px 6px;font-size:.9em}[contenteditable=true] .r8uj4ta{padding-right:0}.r8uj4tb{--rc-hl-lightness:.3;--rc-hl-highlighted:1;--rc-hl-color:oklch(from var(--rc-accent) l c h / var(--rc-hl-lightness));background:linear-gradient(120deg, var(--rc-hl-color,lightblue) 50%, transparent 50%) 110% 0 / 200% 100% no-repeat;background-position:calc((1 - var(--rc-hl-highlighted)) * 110%) 0;color:var(--rc-text);transition:background-position 1s}[contenteditable=true] .r8uj4tb{--rc-hl-highlighted:1;animation:none}[data-theme=dark] .r8uj4tb{--rc-hl-lightness:.35}.r8uj4tc{color:var(--rc-text-secondary);opacity:0;align-items:center;font-size:.8rem;text-decoration:none;transition:opacity .15s;display:flex;position:absolute;top:0;bottom:0;left:-1.25rem}.r8uj4td{font-size:2em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.5em;margin-bottom:.5em;position:relative}[contenteditable=true] .r8uj4td:before{content:"H1";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4te{font-size:1.5em;font-weight:700;line-height:var(--rc-line-height-tight);margin-top:1.4em;margin-bottom:.45em;position:relative}[contenteditable=true] .r8uj4te:before{content:"H2";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4tf{font-size:1.25em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.3em;margin-bottom:.4em;position:relative}[contenteditable=true] .r8uj4tf:before{content:"H3";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4tg{font-size:1.125em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.2em;margin-bottom:.35em;position:relative}[contenteditable=true] .r8uj4tg:before{content:"H4";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4th{font-size:1em;font-weight:600;line-height:var(--rc-line-height-tight);margin-top:1.1em;margin-bottom:.3em;position:relative}[contenteditable=true] .r8uj4th:before{content:"H5";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4ti{font-size:.875em;font-weight:600;line-height:var(--rc-line-height-tight);color:var(--rc-text);margin-top:1em;margin-bottom:.25em;position:relative}[contenteditable=true] .r8uj4ti:before{content:"H6";color:var(--rc-text-secondary);opacity:.6;pointer-events:none;font-size:.5rem;font-weight:600;font-family:var(--rc-font-mono);display:flex;position:absolute;bottom:.5rem;left:-1.5rem}.r8uj4tj{color:var(--rc-link);text-decoration:none;transition:color .2s}.r8uj4tj:hover{text-decoration:underline}.r8uj4tj[data-favicon=loaded]:before{content:"";vertical-align:-.125em;background-image:var(--rc-link-favicon);background-position:50%;background-repeat:no-repeat;background-size:contain;border-radius:2px;width:1em;height:1em;margin-right:.2em;display:inline-block}.r8uj4tk{vertical-align:-.125em;align-items:center;margin-right:.15em;display:inline-flex}.r8uj4tl{padding-left:var(--rc-space-lg);margin-bottom:1em;list-style-type:decimal}.r8uj4tm{padding-left:var(--rc-space-lg);margin-bottom:1em;list-style-type:disc}.r8uj4tn{margin-bottom:.25em}.r8uj4to{list-style-type:none}.r8uj4tp{padding-left:0;list-style-type:none}.r8uj4tq{--rc-cb-size:1.125rem;outline:none;padding-left:2em;list-style-type:none;transition:color .25s;position:relative}.r8uj4tq:before{content:"";left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:1.5px solid var(--rc-text-quaternary);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;background-color:#0000;transition:background-color .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1),transform .15s;position:absolute}.r8uj4tq:after{content:"";left:calc(var(--rc-cb-size) * .32);top:calc((1lh - var(--rc-cb-size)) / 2 + var(--rc-cb-size) * .14);width:calc(var(--rc-cb-size) * .28);height:calc(var(--rc-cb-size) * .55);border-right:2px solid var(--rc-accent);border-bottom:2px solid var(--rc-accent);box-sizing:border-box;pointer-events:none;transform-origin:50%;opacity:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1) .1s,opacity .15s;display:block;position:absolute;transform:rotate(45deg)scale(0)}[contenteditable=true] .r8uj4tq:active:before{transform:scale(.94)}[contenteditable=true] .r8uj4tq:hover:before{border-color:var(--rc-text-tertiary)}.r8uj4tr{--rc-cb-size:1.125rem;color:var(--rc-text-secondary);outline:none;padding-left:2em;list-style-type:none;transition:color .25s;position:relative}.r8uj4tr:before{content:"";left:0;top:calc((1lh - var(--rc-cb-size)) / 2);width:var(--rc-cb-size);height:var(--rc-cb-size);border:1.5px solid var(--rc-text-quaternary);border-radius:var(--rc-radius-sm);box-sizing:border-box;cursor:pointer;background-color:var(--rc-accent-light);border-color:var(--rc-accent);transition:background-color .25s cubic-bezier(.4,0,.2,1),border-color .25s cubic-bezier(.4,0,.2,1),transform .15s;position:absolute}.r8uj4tr:after{content:"";left:calc(var(--rc-cb-size) * .32);top:calc((1lh - var(--rc-cb-size)) / 2 + var(--rc-cb-size) * .14);width:calc(var(--rc-cb-size) * .28);height:calc(var(--rc-cb-size) * .55);border-right:2px solid var(--rc-accent);border-bottom:2px solid var(--rc-accent);box-sizing:border-box;pointer-events:none;transform-origin:50%;opacity:1;transition:transform .3s cubic-bezier(.34,1.56,.64,1) .1s,opacity .15s;display:block;position:absolute;transform:rotate(45deg)scale(1)}[contenteditable=true] .r8uj4tr:active:before{transform:scale(.94)}[contenteditable=true] .r8uj4tr:hover:before{background-color:color-mix(in oklab, var(--rc-accent) 12%, transparent)}.r8uj4ts{background-color:var(--rc-quote-bg);margin:var(--rc-space-md) 0;padding:var(--rc-space-sm) var(--rc-space-md);padding-left:calc(var(--rc-space-md) + 4px);color:var(--rc-text-secondary);border-radius:0 var(--rc-radius-sm) var(--rc-radius-sm) 0;font-style:normal;position:relative}.r8uj4ts:before{content:"";border-radius:var(--rc-radius-sm);background-color:var(--rc-quote-border);width:4px;position:absolute;top:0;bottom:0;left:0}.r8uj4ts[data-attribution-panel]{padding-bottom:calc(var(--rc-space-sm) + 24px)}.r8uj4tt{text-align:right;color:var(--rc-text-secondary);margin-top:var(--rc-space-sm);font-size:12px;font-style:normal;display:block}.r8uj4tu{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}.r8uj4tv{overscroll-behavior-x:contain;width:100%;min-width:0;max-width:100%;display:block;overflow-x:auto}.r8uj4tw{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}.r8uj4tw:last-child{border-right:none}.r8uj4tx{border:none;border-bottom:1px solid var(--rc-border);border-right:1px solid var(--rc-border);padding:var(--rc-space-md) var(--rc-space-lg);text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--rc-text-secondary);background-color:var(--rc-bg-secondary);vertical-align:middle;z-index:1;font-size:.75em;font-weight:600;line-height:1.5;position:sticky;top:0}.r8uj4tx:last-child{border-right:none}.r8uj4ty{border-collapse:separate;border-spacing:0;width:100%;margin:var(--rc-space-lg) 0;font-size:var(--rc-font-size-small);border:1px solid var(--rc-border);border-radius:var(--rc-radius-md);overflow:hidden}.r8uj4tz{background-color:var(--rc-text);color:#0000;border-radius:var(--rc-radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;padding-inline-start:4px;padding-inline-end:4px;transition:background-color .3s,color .3s}[contenteditable=true] .r8uj4tz{background-color:color-mix(in srgb, var(--rc-text) 30%, transparent);color:inherit;-webkit-user-select:auto;user-select:auto;cursor:text}.r8uj4tz:hover{color:inherit;-webkit-user-select:auto;user-select:auto;background-color:#0000}.rich-content .r8uj4tz{background-color:var(--rc-text-tertiary);color:#0000}.rich-content .r8uj4tz:not(:hover):not(.rich-spoiler-revealed) *{color:#0000!important}.rich-content .r8uj4tz:hover,.r8uj4t10{color:inherit;-webkit-user-select:auto;user-select:auto;background-color:#0000}.r8uj4t11{font-size:var(--rc-font-size-small);vertical-align:baseline;border-radius:999px;padding-inline-start:.75em;padding-inline-end:.75em;line-height:1.6;display:inline-block}.r8uj4t12{font-family:var(--rc-font-mono);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);background-color:var(--rc-code-bg);border:1px dashed var(--rc-border);border-radius:var(--rc-radius-sm);white-space:break-spaces;padding:2px 6px;display:inline-block}.r8uj4t12:before{content:"<!--";opacity:.7}.r8uj4t12:after{content:"-->";opacity:.7}.r8uj4t13{ruby-position:over;ruby-align:center}[contenteditable=true] .r8uj4t13[data-ruby]{padding-top:.72em;line-height:1.2;display:inline-block;position:relative}[contenteditable=true] .r8uj4t13[data-ruby]:before{content:attr(data-ruby);text-align:center;color:var(--rc-text-secondary);pointer-events:none;white-space:nowrap;font-size:.58em;line-height:1;position:absolute;top:0;left:0;right:0;transform:translateY(-.68em)}.r8uj4t14{color:var(--rc-text-secondary);-webkit-user-select:none;user-select:none;font-size:.58em;line-height:1}.r8uj4t15{vertical-align:super;font-size:.8em}.r8uj4t16{min-width:1.5em;color:var(--rc-accent);background-color:var(--rc-accent-light);border-radius:999px;justify-content:center;align-items:center;padding:0 .35em;font-size:.82em;font-weight:600;line-height:1.45;text-decoration:none;transition:filter .15s;display:inline-flex}.r8uj4t16:hover{filter:brightness(.96)}.r8uj4t17{animation:1.2s ease-out r8uj4t1}.r8uj4t18{display:inline;position:relative}.r8uj4t19{margin-top:var(--rc-space-lg)}.r8uj4t1a{border:none;border-top:1px solid var(--rc-border);margin:var(--rc-space-lg) 0 var(--rc-space-md)}.r8uj4t1b{padding-left:var(--rc-space-lg);font-size:var(--rc-font-size-small);color:var(--rc-text-secondary);line-height:1.6;list-style-type:decimal}.r8uj4t1c{margin-bottom:var(--rc-space-sm);padding-left:var(--rc-space-xs)}.r8uj4t1d{margin-left:var(--rc-space-xs);color:var(--rc-accent);font-size:.85em;font-family:var(--rc-font-mono);align-items:center;text-decoration:none;transition:opacity .15s;display:inline-flex}.r8uj4t1d:hover{opacity:.7}.r8uj4t1e{align-items:center;gap:var(--rc-space-sm);list-style-type:none;display:flex}.r8uj4t1f{color:var(--rc-text-secondary);font-size:var(--rc-font-size-small);flex-shrink:0;min-width:1.5em;font-weight:600}.r8uj4t1g{border:1px solid var(--rc-border);border-radius:var(--rc-radius-sm);padding:var(--rc-space-xs) var(--rc-space-sm);font-size:var(--rc-font-size-small);color:var(--rc-text);background-color:#0000;outline:none;flex:1;transition:border-color .15s}.r8uj4t1g:focus{border-color:var(--rc-accent)}.r8uj4t1h{width:20px;height:20px;color:var(--rc-text-secondary);cursor:pointer;border-radius:var(--rc-radius-sm);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;transition:color .15s,background-color .15s;display:inline-flex}.r8uj4t1h:hover{color:#ef4444;background-color:#ef44441a}.r8uj4t1i{cursor:grab;border-radius:var(--rc-radius-sm);width:20px;height:20px;color:var(--rc-text-secondary);opacity:.4;z-index:10;justify-content:center;align-items:center;transition:opacity .15s,background-color .15s;display:flex;position:absolute}.r8uj4t1i:hover{opacity:1;background-color:var(--rc-fill-secondary)}.r8uj4t1i:active{cursor:grabbing}.r8uj4t1j{background-color:var(--rc-accent);pointer-events:none;z-index:10;border-radius:1px;height:2px;position:absolute}.r8uj4t1k{background-color:#0000;border:none;border-radius:0;margin:2em 0;padding:0 1em}.r8uj4t2 mark{background:0 0}.r8uj4t2 img{border-radius:var(--rc-radius-md);max-width:100%;height:auto}.r8uj4t2>:first-child,.r8uj4t2 .rich-editor__content>:first-child{margin-top:0}.r8uj4t2>:last-child,.r8uj4t2 .rich-editor__content>:last-child{margin-bottom:0}.r8uj4tc svg{flex-shrink:0}.r8uj4td:hover .r8uj4tc{opacity:.5}.r8uj4td:hover .r8uj4tc:hover{opacity:1}.r8uj4te:hover .r8uj4tc{opacity:.5}.r8uj4te:hover .r8uj4tc:hover{opacity:1}.r8uj4tf:hover .r8uj4tc{opacity:.5}.r8uj4tf:hover .r8uj4tc:hover{opacity:1}.r8uj4tg:hover .r8uj4tc{opacity:.5}.r8uj4tg:hover .r8uj4tc:hover{opacity:1}.r8uj4th:hover .r8uj4tc{opacity:.5}.r8uj4th:hover .r8uj4tc:hover{opacity:1}.r8uj4ti:hover .r8uj4tc{opacity:.5}.r8uj4ti:hover .r8uj4tc:hover{opacity:1}.r8uj4tk img{object-fit:contain;border-radius:2px;width:1em;height:1em}.r8uj4tk svg{width:.9em;height:.9em}.r8uj4to .r8uj4tl{list-style-type:lower-alpha}.r8uj4to .r8uj4tm{list-style-type:circle}.r8uj4tr>*,.r8uj4tq>*{background-image:linear-gradient(var(--rc-text-secondary), var(--rc-text-secondary));background-position:0;background-repeat:no-repeat;background-size:0% 1.5px;transition:background-size .35s cubic-bezier(.4,0,.2,1) .15s,opacity .15s}.r8uj4tr>*{opacity:.5;background-size:100% 1.5px}.r8uj4ts>.r8uj4t3:first-child{margin-top:0}.r8uj4ts>.r8uj4t3:last-child{margin-bottom:0}.r8uj4ty tbody tr:last-child .r8uj4tw{border-bottom:none}.r8uj4tw .r8uj4t3{line-height:inherit;margin:0;padding:0}.r8uj4tw>:first-child{margin-top:0}.r8uj4tw>:last-child{margin-bottom:0}.r8uj4tx .r8uj4t3{line-height:inherit;margin:0;padding:0}.r8uj4tx>:first-child{margin-top:0}.r8uj4tx>:last-child{margin-bottom:0}figure.rich-image{width:var(--rich-image-display-width,auto);max-width:100%;margin-inline-start:auto;margin-inline-end:auto}figure.rich-image[data-layout=align-left]{text-align:left;margin-left:0;margin-right:auto}figure.rich-image[data-layout=align-right]{text-align:right;margin-left:auto;margin-right:0}figure.rich-image[data-layout=float-left]{float:left;width:var(--rich-image-display-width,42%);margin:.125rem 1.25rem .875rem 0}figure.rich-image[data-layout=float-right]{float:right;width:var(--rich-image-display-width,42%);margin:.125rem 0 .875rem 1.25rem}.rich-image-wrapper[data-layout=float-left]{float:left;width:42%;max-width:100%;margin:.125rem 1.25rem .875rem 0}.rich-image-wrapper[data-layout=float-right]{float:right;width:42%;max-width:100%;margin:.125rem 0 .875rem 1.25rem}.rich-image-wrapper[data-layout^=float] figure.rich-image{float:none;width:auto;margin:0}@supports (animation-timeline:view()){.r8uj4tb{--rc-hl-highlighted:0;animation:step-end both r8uj4t0;animation-timeline:view();animation-range:entry 100% cover 10%}}@media (max-width:640px){figure.rich-image[data-layout^=float]{float:none;width:auto;margin:1.25rem auto}.rich-image-wrapper[data-layout^=float]{float:none;margin:0;width:100%!important}}._1o2d5g50{margin:var(--rc-space-md) 0;interpolate-size:allow-keywords;background-color:#0000;border:none}._1o2d5g51{align-items:flex-start;gap:var(--rc-space-sm);cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--rc-space-xs) 0;color:var(--rc-text);font-size:1em;font-weight:500;line-height:var(--rc-line-height);border-radius:var(--rc-radius-sm);outline:none;list-style:none;transition:opacity .2s,color .2s,box-shadow .2s;display:flex}._1o2d5g51:hover{opacity:.82}._1o2d5g51:focus-visible{box-shadow:0 0 0 2px var(--rc-accent-light)}._1o2d5g51::-webkit-details-marker{display:none}._1o2d5g51::marker{content:"";display:none}._1o2d5g52{flex:1;min-width:0}._1o2d5g53{width:1.25rem;height:1.25rem;color:var(--rc-text-tertiary);transform-origin:50%;flex-shrink:0;justify-content:center;align-items:center;transition:transform .35s cubic-bezier(.4,0,.2,1),color .2s;display:inline-flex;position:relative;top:.25rem}._1o2d5g54{margin-top:var(--rc-space-xs);padding:var(--rc-space-sm) var(--rc-space-xl);color:var(--rc-text-secondary);background-color:color-mix(in srgb, var(--rc-accent) 6%, var(--rc-bg-secondary));border-radius:var(--rc-radius-md)}._1o2d5g51:hover ._1o2d5g53{color:var(--rc-text-secondary)}._1o2d5g50[open] ._1o2d5g53{color:var(--rc-accent);transform:rotate(90deg)}._1o2d5g50::details-content{opacity:0;content-visibility:hidden;height:0;transition:height .4s cubic-bezier(.4, 0, .2, 1), opacity .4s cubic-bezier(.4, 0, .2, 1), content-visibility .4s cubic-bezier(.4, 0, .2, 1) allow-discrete;display:block;overflow:hidden}._1o2d5g50[open]::details-content{opacity:1;content-visibility:visible;height:auto}._1o2d5g54>.r8uj4t3:first-child{margin-top:0}._1o2d5g54>.r8uj4t3:last-child{margin-bottom:0}.v10dui0{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);color:var(--rc-text);line-height:1.75}.v10dui0 .r8uj4t3{margin-top:1.5em;margin-bottom:1.5em}.v10dui0 .r8uj4td{color:var(--rc-text);margin-top:0;margin-bottom:.833333em;font-size:3em;font-weight:800;line-height:1}.v10dui0 .r8uj4te{color:var(--rc-text);margin-top:1.86667em;margin-bottom:1.06667em;font-size:1.875em;font-weight:700;line-height:1.33333}.v10dui0 .r8uj4tf{color:var(--rc-text);margin-top:1.66667em;margin-bottom:.666667em;font-size:1.5em;font-weight:600;line-height:1.5}.v10dui0 .r8uj4tg{color:var(--rc-text);margin-top:2em;margin-bottom:.5em;font-weight:600;line-height:1.5625}.v10dui0 .r8uj4te+*,.v10dui0 .r8uj4tf+*,.v10dui0 .r8uj4tg+*{margin-top:0}.v10dui0 .r8uj4ts{color:var(--rc-text);quotes:"“""”""‘""’";background-color:#0000;border-radius:0;margin-top:2.5em;margin-bottom:2.5em;padding-left:calc(1.5em + 4px);font-style:italic;font-weight:500}.v10dui0 .r8uj4ts:not([data-no-open-quote]) .r8uj4t3:first-of-type:before{content:open-quote}.v10dui0 .r8uj4ts:not([data-no-close-quote]) .r8uj4t3:last-of-type:after{content:close-quote}.v10dui0 .r8uj4ts .r8uj4t3:first-child{margin-top:0}.v10dui0 .r8uj4ts .r8uj4t3:last-child{margin-bottom:0}.v10dui0 .r8uj4ta{color:inherit;background-color:var(--rc-code-bg);border-radius:var(--rc-radius-sm);font-size:.875em;font-weight:600;font-family:var(--rc-font-mono);padding:.2em .4em}.v10dui0 .r8uj4ta:before,.v10dui0 .r8uj4ta:after{content:"`";color:var(--rc-text-secondary);opacity:.5}.v10dui0 [contenteditable=true] .r8uj4ta:before,.v10dui0 [contenteditable=true] .r8uj4ta:after{content:""}.v10dui0 .rich-code-block{color:var(--rc-text);background-color:var(--rc-code-bg);border-radius:.375rem;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.75}.v10dui0 .rich-code-block pre{margin:0;padding:1em 1.5em}.v10dui0 .r8uj4tm,.v10dui0 .r8uj4tl{margin-top:1.5em;margin-bottom:1.5em;padding-left:1.75em}.v10dui0 .r8uj4tn{margin-top:.75em;margin-bottom:.75em}.v10dui0 .r8uj4tn:not(.r8uj4tr):not(.r8uj4tq){padding-left:.5em}.v10dui0 .r8uj4tn .r8uj4t3{margin-top:1em;margin-bottom:1em}.v10dui0 .r8uj4tn>.r8uj4t3:first-child{margin-top:1.5em}.v10dui0 .r8uj4tn>.r8uj4t3:last-child{margin-bottom:1.5em}.v10dui0 .r8uj4tm .r8uj4tm,.v10dui0 .r8uj4tm .r8uj4tl,.v10dui0 .r8uj4tl .r8uj4tm,.v10dui0 .r8uj4tl .r8uj4tl{margin-top:1em;margin-bottom:1em}.v10dui0 .r8uj4ty{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.5}.v10dui0 .r8uj4ty .r8uj4t3{line-height:inherit;margin:0;padding:0}.v10dui0 .rich-image{margin-top:2em;margin-bottom:2em}.v10dui0 .rich-image[data-layout^=float]{margin-top:.125rem;margin-bottom:.875rem}.v10dui0 .rich-image-wrapper[data-layout^=float] .rich-image,.v10dui0 .rich-image>*{margin-top:0;margin-bottom:0}.v10dui0 .rich-image figcaption{color:var(--rc-text-secondary);margin-top:1em;font-size:.875em;line-height:1.5}.v10dui0 .r8uj4tu{border-color:var(--rc-hr-border);border-top-width:1px;width:60px;margin:3.5em auto}.v10dui0 .r8uj4tu+*{margin-top:0}.v10dui0 .r8uj4tj{font-weight:500;text-decoration:underline}.v10dui0 .rich-banner,.v10dui0 .rich-code-snippet,.v10dui0 ._1o2d5g50{margin:2em 0}.v10dui0>:first-child{margin-top:0}.v10dui0>:last-child{margin-bottom:0}.egstxq0{vertical-align:middle;padding:0 2px;display:inline}.egstxq1{text-align:center;padding:var(--rc-space-md) 0;margin:var(--rc-space-md) 0;display:block;overflow-x:auto}.egstxq2{font-family:var(--rc-font-mono);color:var(--rc-code-text);background-color:var(--rc-code-bg);border-radius:var(--rc-radius-sm);padding:2px 6px;font-size:.9em}._14ko36c0{font-size:var(--rc-font-size-base);line-height:var(--rc-line-height)}._14ko36c0 .r8uj4t3{margin-bottom:.6em}._14ko36c0 .r8uj4td{margin-top:.8em;margin-bottom:.3em;font-size:1.35em;font-weight:700}._14ko36c0 .r8uj4te{margin-top:.7em;margin-bottom:.25em;font-size:1.2em;font-weight:700}._14ko36c0 .r8uj4tf{margin-top:.6em;margin-bottom:.2em;font-size:1.1em;font-weight:600}._14ko36c0 .r8uj4tg{margin-top:.5em;margin-bottom:.15em;font-size:1em;font-weight:600}._14ko36c0 .r8uj4th{margin-top:.45em;margin-bottom:.1em;font-size:.9em;font-weight:600}._14ko36c0 .r8uj4ti{margin-top:.4em;margin-bottom:.1em;font-size:.85em;font-weight:600}._14ko36c0 .r8uj4ts{padding:var(--rc-space-sm) var(--rc-space-md);padding-left:calc(var(--rc-space-md) + 3px);margin:var(--rc-space-sm) 0;font-size:.95em}._14ko36c0 .r8uj4ts:before{width:3px}._14ko36c0 .r8uj4tl,._14ko36c0 .r8uj4tm{padding-left:var(--rc-space-md);margin-bottom:.6em}._14ko36c0 .r8uj4tn{margin-bottom:.1em}._14ko36c0 .rich-code-block{margin:var(--rc-space-sm) 0;border-radius:var(--rc-radius-sm);font-size:var(--rc-font-size-small)}._14ko36c0 .rich-code-block pre{padding:var(--rc-space-sm)}._14ko36c0 .line:before{display:none!important}._14ko36c0 .r8uj4ty{margin:var(--rc-space-sm) 0;font-size:var(--rc-font-size-small)}._14ko36c0 .r8uj4tw,._14ko36c0 .r8uj4tx{padding:var(--rc-space-xs) var(--rc-space-sm)}._14ko36c0 .rich-image{margin:var(--rc-space-sm) 0}._14ko36c0 .rich-image[data-layout^=float]{margin-top:.125rem;margin-bottom:.875rem}._14ko36c0 .rich-image-wrapper[data-layout^=float] .rich-image{margin-top:0;margin-bottom:0}._14ko36c0 .rich-image figcaption{font-size:var(--rc-font-size-small)}._14ko36c0 .r8uj4tu{border:none;border-top:1px solid var(--rc-hr-border);margin:var(--rc-space-lg) auto;width:60px}._14ko36c0 .r8uj4t1k{padding:var(--rc-space-sm) var(--rc-space-md);padding-left:var(--rc-space-lg);margin:var(--rc-space-sm) 0}._14ko36c0 .egstxq1{padding:var(--rc-space-sm) 0;margin:var(--rc-space-sm) 0}.ys4fw90{max-width:var(--rc-max-width);font-size:var(--rc-font-size-base);color:var(--rc-text);line-height:1.8}.ys4fw90 .rich-editor__content>.r8uj4t3,.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3{margin-top:1.25em;margin-bottom:1.25em;line-height:1.8}.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:not(:first-of-type){text-indent:2em}.ys4fw90 .rich-editor__content>.r8uj4t3:first-of-type,.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:first-of-type{margin-top:0}.ys4fw90 .rich-editor__content>.r8uj4t3:not(:first-of-type)>[data-lexical-text]:first-child{margin-inline-start:2em}.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:first-of-type:first-letter{float:left;margin-right:.2em;font-size:2.4em;line-height:1}.ys4fw90 .rich-editor__content>.r8uj4t3:first-of-type:first-letter{color:var(--rc-accent);font-size:1.5em;font-weight:700}.ys4fw90 .rich-editor__content>.r8uj4t3:last-child,.ys4fw90.rich-content:not([data-rich-nested=true])>.r8uj4t3:last-child{margin-bottom:0}.ys4fw90 .r8uj4t4{font-family:var(--rc-font-family);color:var(--rc-text);font-weight:600}.ys4fw90 .r8uj4td{letter-spacing:-.025em;color:var(--rc-text);margin-top:0;margin-bottom:.888889em;font-size:2.25em;font-weight:800;line-height:1.11111}.ys4fw90 .r8uj4te{letter-spacing:-.025em;color:var(--rc-text);margin-top:2em;margin-bottom:1em;font-size:1.5em;font-weight:700;line-height:1.33333}.ys4fw90 .r8uj4te+*{margin-top:0}.ys4fw90 .r8uj4tf{letter-spacing:-.025em;color:var(--rc-text);margin-top:1.6em;margin-bottom:.6em;font-size:1.25em;font-weight:600;line-height:1.6}.ys4fw90 .r8uj4tf+*{margin-top:0}.ys4fw90 .r8uj4tg{color:var(--rc-text);margin-top:1.5em;margin-bottom:.5em;font-size:1.125em;font-weight:600;line-height:1.5}.ys4fw90 .r8uj4tg+*{margin-top:0}.ys4fw90 .r8uj4th{color:var(--rc-text);margin-top:1.5em;margin-bottom:.5em;font-size:1em;font-weight:600;line-height:1.5}.ys4fw90 .r8uj4th+*{margin-top:0}.ys4fw90 .r8uj4ti{color:var(--rc-text);text-transform:uppercase;margin-top:1.5em;margin-bottom:.5em;font-size:.875em;font-weight:600;line-height:1.5}.ys4fw90 .r8uj4ti+*{margin-top:0}.ys4fw90 .r8uj4ts{font-family:var(--rc-font-family-kai);color:color-mix(in srgb, var(--rc-accent) 60%, var(--rc-text));background-color:color-mix(in srgb, var(--rc-accent) 12%, var(--rc-bg));text-indent:0;border-radius:2px;margin:1.6em 0;padding:1.2em 1.5em;font-style:normal;line-height:1.75;transform:rotate(-.6deg);box-shadow:2px 3px 8px #00000014,0 1px 2px #0000000a}.ys4fw90 .r8uj4ts:before{content:"";background:repeating-linear-gradient(105deg, transparent, transparent 2px, #ffffff14 2px, #ffffff14 4px), color-mix(in srgb, var(--rc-accent) 20%, #0000000f);opacity:.85;border-radius:1px;width:56px;height:16px;position:absolute;top:-7px;bottom:auto;left:50%;transform:translate(-50%)rotate(1.2deg);box-shadow:0 1px 2px #0000000f}.ys4fw90 .r8uj4ts .r8uj4t3:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.ys4fw90 .r8uj4tj{text-underline-offset:2px;font-weight:500;text-decoration:underline;text-decoration-thickness:1px;transition:color .15s}.ys4fw90 .r8uj4tj:hover{text-decoration-thickness:2px}.ys4fw90 .r8uj4ta{font-size:.875em;font-family:var(--rc-font-mono);border-radius:var(--rc-radius-sm);background-color:var(--rc-code-bg);padding:.2em .4em;font-weight:500}.ys4fw90 .r8uj4tl,.ys4fw90 .r8uj4tm{margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.ys4fw90 .r8uj4tn{margin-top:.5em;margin-bottom:.5em}.ys4fw90 .r8uj4tn:not(.r8uj4tr):not(.r8uj4tq){padding-left:.375em}.ys4fw90 .r8uj4tn::marker{color:var(--rc-text-secondary)}.ys4fw90 .rich-code-block{border-radius:var(--rc-radius-md);margin-top:1.71429em;margin-bottom:1.71429em;font-size:.875em;line-height:1.71429;overflow-x:auto}.ys4fw90 .rich-code-block pre{margin:0;padding:.857143em 1.14286em}.ys4fw90 .r8uj4ty{margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.71429}.ys4fw90 .r8uj4ty .r8uj4t3{line-height:inherit;margin:0;padding:0}.ys4fw90 .r8uj4ty .r8uj4t3:first-child:first-letter{float:none;font-size:inherit;margin-right:0}.ys4fw90 .rich-image{margin-top:2em;margin-bottom:2em}.ys4fw90 .rich-image[data-layout^=float]{margin-top:.125rem;margin-bottom:.875rem}.ys4fw90 .rich-image-wrapper[data-layout^=float] .rich-image{margin-top:0;margin-bottom:0}.ys4fw90 .rich-image img{border-radius:var(--rc-radius-md)}.ys4fw90 .rich-image figcaption{color:var(--rc-text-secondary);text-align:center;margin-top:.857143em;font-size:.875em;line-height:1.42857}.ys4fw90 .r8uj4tu{border:none;border-top:1px solid var(--rc-hr-border);opacity:.2;width:60px;margin:.5rem auto}.ys4fw90 .egstxq1{margin-top:1.6em;margin-bottom:1.6em;padding:1em 0;overflow-x:auto}.ys4fw90 .r8uj4tz{border-radius:var(--rc-radius-sm);padding-inline-start:.25em;padding-inline-end:.25em}.ys4fw90>:first-child{margin-top:0}.ys4fw90>:last-child{margin-bottom:0}._17ihk870{margin:var(--rc-space-md) 0;position:relative}._17ihk871{border-radius:var(--rc-radius-md);pointer-events:none;background:var(--rc-bg);border:1px solid var(--rc-border);box-shadow:var(--rc-shadow-top-bar);z-index:10;-webkit-user-select:none;user-select:none;white-space:nowrap;opacity:0;align-items:center;gap:2px;padding:4px 6px;transition:opacity .15s;display:flex;position:absolute;top:-36px;left:50%;transform:translate(-50%)}._17ihk872{width:24px;height:24px;color:var(--rc-text-secondary);flex-shrink:0;justify-content:center;align-items:center;display:flex}._17ihk873{border-radius:var(--rc-radius-sm);cursor:pointer;min-width:24px;height:24px;color:var(--rc-text-secondary);background:0 0;border:none;justify-content:center;align-items:center;padding:0 6px;font-size:12px;font-weight:500;line-height:1;transition:color .15s,background-color .15s;display:flex}._17ihk873:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}._17ihk874{background:var(--rc-fill);color:var(--rc-text);font-weight:600}._17ihk875{background:var(--rc-border);flex-shrink:0;width:1px;height:16px;margin:0 2px}._17ihk876{border-radius:var(--rc-radius-sm);cursor:pointer;min-width:24px;height:24px;color:var(--rc-text-secondary);background:0 0;border:none;justify-content:center;align-items:center;padding:0 6px;transition:color .15s,background-color .15s;display:flex}._17ihk876:hover{background-color:var(--rc-fill-secondary);color:var(--rc-text)}._17ihk877{gap:var(--rc-space-md);display:grid}._17ihk878{min-width:0}._17ihk879{outline:none;width:100%}._17ihk870:hover ._17ihk871,._17ihk870:focus-within ._17ihk871{opacity:1;pointer-events:auto}@keyframes _1x58dbf0{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes _1x58dbf6{to{transform:rotate(360deg)}}.rich-image-upload-dragging{border-radius:var(--rc-radius-md);background-color:color-mix(in srgb, var(--rc-accent) 6%, transparent);position:relative}.rich-image-upload-dragging .rich-editor__content{outline:2px dashed color-mix(in srgb, var(--rc-accent) 48%, transparent);outline-offset:-2px}._1x58dbf1{z-index:25;pointer-events:none;flex-direction:column;align-items:flex-end;gap:.375rem;display:flex;position:absolute;bottom:.75rem;right:.75rem}._1x58dbf2{border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);background-color:color-mix(in srgb, var(--rc-bg) 95%, transparent);color:var(--rc-text);font-size:var(--rc-font-size-xs);box-shadow:var(--rc-shadow-top-bar);align-items:center;gap:.375rem;padding:.375rem .625rem;line-height:1.2;animation:.12s ease-out _1x58dbf0;display:inline-flex}._1x58dbf4{border-color:color-mix(in srgb, var(--rc-accent) 35%, transparent)}._1x58dbf5{border-color:color-mix(in srgb, var(--rc-alert-caution) 45%, transparent);color:var(--rc-alert-caution)}._1x58dbf7{border:2px solid color-mix(in srgb, var(--rc-text-secondary) 35%, transparent);border-top-color:color-mix(in srgb, var(--rc-text) 65%, transparent);border-radius:50%;width:12px;height:12px;animation:.75s linear infinite _1x58dbf6}._1x58dbf8._1x58dbf8{gap:0;width:min(560px,100vw - 2rem);padding:0;overflow:hidden}._1x58dbf9{border-bottom:1px solid var(--rc-border);padding:.875rem 1rem .75rem}._1x58dbfa{font-size:var(--rc-font-size-md);color:var(--rc-text);font-weight:600}._1x58dbfb{flex-direction:column;gap:.875rem;padding:.875rem 1rem;display:flex}._1x58dbfc{align-items:center;gap:.5rem;display:flex}._1x58dbfd{border-radius:var(--rc-radius-md);border:1.5px dashed var(--rc-border);min-height:190px;color:var(--rc-text-secondary);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1.2rem;transition:border-color .15s,background-color .15s,color .15s;display:flex}._1x58dbfd:hover{border-color:color-mix(in srgb, var(--rc-accent) 35%, transparent);background-color:color-mix(in srgb, var(--rc-accent) 6%, transparent);color:var(--rc-text)}._1x58dbff{border-color:color-mix(in srgb, var(--rc-accent) 55%, transparent);background-color:color-mix(in srgb, var(--rc-accent) 8%, transparent);color:var(--rc-text);transform:scale(1.01)}._1x58dbfg{cursor:progress;opacity:.9}._1x58dbfh{border-radius:var(--rc-radius-md);background-color:color-mix(in srgb, var(--rc-text) 6%, transparent);justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}._1x58dbfi{font-size:var(--rc-font-size-sm);color:var(--rc-text);font-weight:600}._1x58dbfj{font-size:var(--rc-font-size-xs);color:var(--rc-text-secondary);text-align:center}._1x58dbfk{display:none}._1x58dbfl{flex-direction:column;align-items:center;gap:.5rem;display:flex}._1x58dbfm{font-size:var(--rc-font-size-sm);color:var(--rc-text);align-items:center;gap:.375rem;display:inline-flex}._1x58dbfn{align-items:center;gap:.5rem;display:flex}._1x58dbfo{border-radius:var(--rc-radius-sm);border:1px solid var(--rc-border);background-color:var(--rc-bg);width:100%;color:var(--rc-text);height:34px;font-size:var(--rc-font-size-sm);outline:none;padding:0 .625rem;transition:border-color .15s}._1x58dbfo:focus{border-color:color-mix(in srgb, var(--rc-accent) 50%, transparent)}._1x58dbfo::placeholder{color:var(--rc-text-secondary)}._1x58dbfp{border-radius:var(--rc-radius-md);border:1px solid var(--rc-border);background-color:color-mix(in srgb, var(--rc-text) 2%, transparent);overflow:hidden}._1x58dbfq{object-fit:cover;width:100%;max-height:220px;display:block}._1x58dbfr{font-size:var(--rc-font-size-xs);color:var(--rc-text-secondary);align-items:center;gap:.4rem;display:inline-flex}._1x58dbfs{border-top:1px solid var(--rc-border);background-color:color-mix(in srgb, var(--rc-text) 2%, transparent);justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 1rem;display:flex}.gr1ebt0::selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt0 ::selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt0::-moz-selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt0 ::-moz-selection{background-color:var(--rc-accent-light);color:inherit}.gr1ebt1::selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.gr1ebt1 ::selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.gr1ebt1::-moz-selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.gr1ebt1 ::-moz-selection{background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}::highlight(rich-editor-text-selection){background-color:var(--rc-accent-light);color:inherit}::highlight(rich-editor-text-selection-inactive){background-color:color-mix(in srgb, var(--rc-text-tertiary) 24%, transparent);color:inherit}.b94s950{max-width:var(--rc-max-width);flex:1;width:100%;min-height:0;margin:0 auto;position:relative}.b94s951{width:100%;max-width:100%;min-height:100px;padding:var(--ce-padding-top,12px) var(--rc-space-md) 12px var(--rc-space-md);outline:none;display:flow-root}.b94s952{top:var(--ce-padding-top,12px);left:var(--rc-space-md);color:var(--rc-text-secondary);pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute}
2
2
  /*$vite$:1*/
@@ -1,7 +1,7 @@
1
- import { B as useNestedContentRenderer, L as extractTextContent, V as useOptionalNestedContentRenderer, a as getTagBgColor, t as editorTheme, z as NestedContentRendererProvider } from "./theme-DeflyeEq.js";
1
+ import { B as NestedContentRendererProvider, H as useOptionalNestedContentRenderer, R as extractTextContent, V as useNestedContentRenderer, a as getTagBgColor, t as editorTheme } from "./theme-D0MVbrmN.js";
2
2
  import { C as MENTION_NODE_KEY, D as VIDEO_NODE_KEY, E as TAG_NODE_KEY, S as LINK_CARD_NODE_KEY, T as RUBY_NODE_KEY, _ as CODE_BLOCK_NODE_KEY, a as FootnoteDefinitionsProvider, b as IMAGE_NODE_KEY, c as useFootnoteDisplayNumber, d as RendererConfigProvider, f as useRendererConfig, g as BANNER_NODE_KEY, h as ALERT_NODE_KEY, l as RendererWrapper, m as useVariant, o as useFootnoteContent, p as useRendererMode, s as useFootnoteDefinitions, u as createRendererDecoration, v as FOOTNOTE_NODE_KEY, w as MERMAID_NODE_KEY, x as KATEX_NODE_KEY, y as FOOTNOTE_SECTION_NODE_KEY } from "./KaTeXRenderer-CRL_A32i.js";
3
3
  import { a as noteVariant, c as richContent, i as getVariantClass, l as semanticClassNames, n as katexStyles, o as commentVariant, r as clsx, s as articleVariant, t as katexClassNames, u as sharedStyles } from "./katex.css-0TJGE4On.js";
4
- import { D as ColorSchemeProvider, O as useColorScheme, n as builtinNodes, r as customNodes, t as allNodes } from "./config-GMSEHe93.js";
4
+ import { D as ColorSchemeProvider, O as useColorScheme, n as builtinNodes, r as customNodes, t as allNodes } from "./config-BAaPXAiP.js";
5
5
  import { i as detailsStyles, n as gridStyles, r as detailsClassNames, t as gridClassNames } from "./grid.css-ClPR9Sd5.js";
6
6
  import { t as normalizeSerializedEditorState } from "./normalizeSerializedEditorState-C7VzxLf5.js";
7
7
  import { n as useExtraNodes, r as LinkFavicon, t as ExtraNodesProvider } from "./ExtraNodesContext-BVJeViBr.js";
@@ -1 +1 @@
1
- {"version":3,"file":"shared.css.d.ts","sourceRoot":"","sources":["../../src/styles/shared.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDrB,CAAC;AA0BX,eAAO,MAAM,WAAW,QAUtB,CAAC;AAEH,eAAO,MAAM,SAAS,QAIpB,CAAC;AAEH,eAAO,MAAM,QAAQ,QAEnB,CAAC;AAEH,eAAO,MAAM,UAAU,QAErB,CAAC;AAEH,eAAO,MAAM,aAAa,QAExB,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAG5B,CAAC;AAEH,eAAO,MAAM,eAAe,QAG1B,CAAC;AAEH,eAAO,MAAM,aAAa,QAGxB,CAAC;AAEH,eAAO,MAAM,QAAQ,QAanB,CAAC;AAEH,eAAO,MAAM,aAAa,QAkCxB,CAAC;AAEH,eAAO,MAAM,aAAa,QAYxB,CAAC;AAEH,eAAO,MAAM,SAAS,QAapB,CAAC;AAEH,eAAO,MAAM,SAAS,QAapB,CAAC;AAEH,eAAO,MAAM,SAAS,QAapB,CAAC;AAEH,eAAO,MAAM,SAAS,QAapB,CAAC;AAEH,eAAO,MAAM,SAAS,QAapB,CAAC;AAEH,eAAO,MAAM,SAAS,QAcpB,CAAC;AAEH,eAAO,MAAM,IAAI,QAsBf,CAAC;AAEH,eAAO,MAAM,WAAW,QAKtB,CAAC;AAEH,eAAO,MAAM,MAAM,QAIjB,CAAC;AAEH,eAAO,MAAM,MAAM,QAIjB,CAAC;AAEH,eAAO,MAAM,QAAQ,QAEnB,CAAC;AAEH,eAAO,MAAM,cAAc,QAEzB,CAAC;AAEH,eAAO,MAAM,SAAS,QAGpB,CAAC;AAkDH,eAAO,MAAM,iBAAiB,QAQ5B,CAAC;AAEH,eAAO,MAAM,eAAe,QAmB1B,CAAC;AAEH,eAAO,MAAM,KAAK,QA0BhB,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAO3B,CAAC;AAEH,eAAO,MAAM,EAAE,QAKb,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAEjC,CAAC;AAEH,eAAO,MAAM,SAAS,QAapB,CAAC;AAEH,eAAO,MAAM,eAAe,QAsB1B,CAAC;AAEH,eAAO,MAAM,KAAK,QAShB,CAAC;AAEH,eAAO,MAAM,OAAO,QAqBlB,CAAC;AAmBH,eAAO,MAAM,eAAe,QAI1B,CAAC;AAEH,eAAO,MAAM,GAAG,QAOd,CAAC;AAEH,eAAO,MAAM,OAAO,QAoBlB,CAAC;AAEH,eAAO,MAAM,IAAI,QAyBf,CAAC;AAEH,eAAO,MAAM,MAAM,QAKjB,CAAC;AAEH,eAAO,MAAM,QAAQ,QAGnB,CAAC;AAEH,eAAO,MAAM,WAAW,QAmBtB,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAE5B,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAG7B,CAAC;AAEH,eAAO,MAAM,eAAe,QAE1B,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAIjC,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAM9B,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAG9B,CAAC;AAEH,eAAO,MAAM,eAAe,QAc1B,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAKlC,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAMjC,CAAC;AAEH,eAAO,MAAM,wBAAwB,QAenC,CAAC;AAEH,eAAO,MAAM,yBAAyB,QAoBpC,CAAC;AAEH,eAAO,MAAM,UAAU,QAsBrB,CAAC;AAEH,eAAO,MAAM,aAAa,QAOxB,CAAC;AAEH,eAAO,MAAM,KAAK,QAMhB,CAAC;AAsOH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDkC,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,YAAY,CAAC"}
1
+ {"version":3,"file":"shared.css.d.ts","sourceRoot":"","sources":["../../src/styles/shared.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDrB,CAAC;AA0BX,eAAO,MAAM,WAAW,QAUtB,CAAC;AAEH,eAAO,MAAM,SAAS,QAIpB,CAAC;AAEH,eAAO,MAAM,QAAQ,QAEnB,CAAC;AAEH,eAAO,MAAM,UAAU,QAErB,CAAC;AAEH,eAAO,MAAM,aAAa,QAExB,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAG5B,CAAC;AAEH,eAAO,MAAM,eAAe,QAG1B,CAAC;AAEH,eAAO,MAAM,aAAa,QAGxB,CAAC;AAEH,eAAO,MAAM,QAAQ,QAanB,CAAC;AAEH,eAAO,MAAM,aAAa,QAkCxB,CAAC;AAEH,eAAO,MAAM,aAAa,QAYxB,CAAC;AAEH,eAAO,MAAM,SAAS,QAapB,CAAC;AAEH,eAAO,MAAM,SAAS,QAapB,CAAC;AAEH,eAAO,MAAM,SAAS,QAapB,CAAC;AAEH,eAAO,MAAM,SAAS,QAapB,CAAC;AAEH,eAAO,MAAM,SAAS,QAapB,CAAC;AAEH,eAAO,MAAM,SAAS,QAcpB,CAAC;AAEH,eAAO,MAAM,IAAI,QAsBf,CAAC;AAEH,eAAO,MAAM,WAAW,QAKtB,CAAC;AAEH,eAAO,MAAM,MAAM,QAIjB,CAAC;AAEH,eAAO,MAAM,MAAM,QAIjB,CAAC;AAEH,eAAO,MAAM,QAAQ,QAEnB,CAAC;AAEH,eAAO,MAAM,cAAc,QAEzB,CAAC;AAEH,eAAO,MAAM,SAAS,QAGpB,CAAC;AAkDH,eAAO,MAAM,iBAAiB,QAQ5B,CAAC;AAEH,eAAO,MAAM,eAAe,QAmB1B,CAAC;AAEH,eAAO,MAAM,KAAK,QA0BhB,CAAC;AAEH,eAAO,MAAM,gBAAgB,QAO3B,CAAC;AAEH,eAAO,MAAM,EAAE,QAKb,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAOjC,CAAC;AAEH,eAAO,MAAM,SAAS,QAapB,CAAC;AAEH,eAAO,MAAM,eAAe,QAsB1B,CAAC;AAEH,eAAO,MAAM,KAAK,QAShB,CAAC;AAEH,eAAO,MAAM,OAAO,QAqBlB,CAAC;AAmBH,eAAO,MAAM,eAAe,QAI1B,CAAC;AAEH,eAAO,MAAM,GAAG,QAOd,CAAC;AAEH,eAAO,MAAM,OAAO,QAoBlB,CAAC;AAEH,eAAO,MAAM,IAAI,QAyBf,CAAC;AAEH,eAAO,MAAM,MAAM,QAKjB,CAAC;AAEH,eAAO,MAAM,QAAQ,QAGnB,CAAC;AAEH,eAAO,MAAM,WAAW,QAmBtB,CAAC;AAEH,eAAO,MAAM,iBAAiB,QAE5B,CAAC;AAEH,eAAO,MAAM,kBAAkB,QAG7B,CAAC;AAEH,eAAO,MAAM,eAAe,QAE1B,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAIjC,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAM9B,CAAC;AAEH,eAAO,MAAM,mBAAmB,QAG9B,CAAC;AAEH,eAAO,MAAM,eAAe,QAc1B,CAAC;AAEH,eAAO,MAAM,uBAAuB,QAKlC,CAAC;AAEH,eAAO,MAAM,sBAAsB,QAMjC,CAAC;AAEH,eAAO,MAAM,wBAAwB,QAenC,CAAC;AAEH,eAAO,MAAM,yBAAyB,QAoBpC,CAAC;AAEH,eAAO,MAAM,UAAU,QAsBrB,CAAC;AAEH,eAAO,MAAM,aAAa,QAOxB,CAAC;AAEH,eAAO,MAAM,KAAK,QAMhB,CAAC;AAuOH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuDkC,CAAC;AAE5D,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,YAAY,CAAC"}
@@ -2,7 +2,8 @@ import { C as MENTION_NODE_KEY, b as IMAGE_NODE_KEY, h as ALERT_NODE_KEY, i as F
2
2
  import { l as semanticClassNames, u as sharedStyles } from "./katex.css-0TJGE4On.js";
3
3
  import { createContext, createElement, use, useCallback, useEffect, useMemo, useState } from "react";
4
4
  import { QuoteNode } from "@lexical/rich-text";
5
- import { $getEditor, $getNodeByKey, $getSelection, $insertNodes, $isRangeSelection, DecoratorNode, ElementNode, TextNode, createCommand, getRegisteredNode } from "lexical";
5
+ import { $getEditor, $getNodeByKey, $getSelection, $insertNodes, $isNodeSelection, $isRangeSelection, DecoratorNode, ElementNode, TextNode, createCommand, getRegisteredNode } from "lexical";
6
+ import { $getTableCellNodeFromLexicalNode } from "@lexical/table";
6
7
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
8
  import { ImageIcon, Info, Lightbulb, MessageSquareWarning, OctagonAlert, Sigma, Tag, TriangleAlert, Workflow } from "lucide-react";
8
9
  //#region src/context/NestedContentRendererContext.tsx
@@ -286,11 +287,11 @@ function ImageRenderer({ src, altText, width, height, caption, thumbhash, accent
286
287
  }
287
288
  }, [loaded]);
288
289
  const placeholderUrl = useMemo(() => thumbhash ? decodeThumbHash(thumbhash) : void 0, [thumbhash]);
289
- const aspectStyle = width && height ? {
290
- aspectRatio: `${width} / ${height}`,
290
+ const aspectStyle = {
291
+ ...width && height ? { aspectRatio: `${width} / ${height}` } : {},
291
292
  maxWidth: "100%",
292
- width
293
- } : { maxWidth: "100%" };
293
+ width: displayWidth !== void 0 ? "100%" : width && height ? width : void 0
294
+ };
294
295
  return /* @__PURE__ */ jsxs("figure", {
295
296
  className: "rich-image",
296
297
  "data-layout": layout,
@@ -345,6 +346,25 @@ function ImageRenderer({ src, altText, width, height, caption, thumbhash, accent
345
346
  //#region src/plugins/image-upload-command.ts
346
347
  var OPEN_IMAGE_UPLOAD_DIALOG_COMMAND = createCommand("OPEN_IMAGE_UPLOAD_DIALOG_COMMAND");
347
348
  //#endregion
349
+ //#region src/utils/image-insertion.ts
350
+ function $getSelectionAnchorNode() {
351
+ const selection = $getSelection();
352
+ if ($isRangeSelection(selection)) return selection.anchor.getNode();
353
+ if ($isNodeSelection(selection)) return selection.getNodes()[0] ?? null;
354
+ return null;
355
+ }
356
+ function $isSelectionInTableCell() {
357
+ const anchorNode = $getSelectionAnchorNode();
358
+ return anchorNode ? $getTableCellNodeFromLexicalNode(anchorNode) !== null : false;
359
+ }
360
+ function $withAdaptiveImageDisplayWidth(payload) {
361
+ if (payload.displayWidth !== void 0 || !$isSelectionInTableCell()) return payload;
362
+ return {
363
+ ...payload,
364
+ displayWidth: 100
365
+ };
366
+ }
367
+ //#endregion
348
368
  //#region src/nodes/ImageNode.ts
349
369
  function sanitizeImageSrc(src) {
350
370
  const trimmed = src.trim();
@@ -546,10 +566,10 @@ _defineProperty(ImageNode, "commandItems", [{
546
566
  onSelect: (editor) => {
547
567
  if (editor.dispatchCommand(OPEN_IMAGE_UPLOAD_DIALOG_COMMAND, void 0)) return;
548
568
  editor.update(() => {
549
- $insertNodes([$createImageNode({
569
+ $insertNodes([$createImageNode($withAdaptiveImageDisplayWidth({
550
570
  src: "",
551
571
  altText: ""
552
- })]);
572
+ }))]);
553
573
  });
554
574
  }
555
575
  }]);
@@ -1189,4 +1209,4 @@ var editorTheme = {
1189
1209
  hr: shared("hr")
1190
1210
  };
1191
1211
  //#endregion
1192
- export { $createFootnoteNode as A, useNestedContentRenderer as B, KaTeXBlockNode as C, sanitizeImageDisplayWidth as D, ImageNode as E, AlertQuoteNode as F, _defineProperty as I, extractTextContent as L, $isAlertQuoteNode as M, ALERT_LABELS as N, sanitizeImageLayout as O, ALERT_TYPES as P, AlertRenderer as R, $isKaTeXBlockNode as S, $isImageNode as T, useOptionalNestedContentRenderer as V, MentionNode as _, getTagBgColor as a, KaTeXInlineNode as b, SpoilerNode as c, RichQuoteNode as d, $createMermaidNode as f, $isMentionNode as g, $createMentionNode as h, TagNode as i, FootnoteNode as j, OPEN_IMAGE_UPLOAD_DIALOG_COMMAND as k, $createRichQuoteNode as l, MermaidNode as m, $createTagNode as n, $createSpoilerNode as o, $isMermaidNode as p, $isTagNode as r, $isSpoilerNode as s, editorTheme as t, $isRichQuoteNode as u, $createKaTeXInlineNode as v, $createImageNode as w, $createKaTeXBlockNode as x, $isKaTeXInlineNode as y, NestedContentRendererProvider as z };
1212
+ export { OPEN_IMAGE_UPLOAD_DIALOG_COMMAND as A, NestedContentRendererProvider as B, KaTeXBlockNode as C, sanitizeImageDisplayWidth as D, ImageNode as E, ALERT_TYPES as F, useOptionalNestedContentRenderer as H, AlertQuoteNode as I, _defineProperty as L, FootnoteNode as M, $isAlertQuoteNode as N, sanitizeImageLayout as O, ALERT_LABELS as P, extractTextContent as R, $isKaTeXBlockNode as S, $isImageNode as T, useNestedContentRenderer as V, MentionNode as _, getTagBgColor as a, KaTeXInlineNode as b, SpoilerNode as c, RichQuoteNode as d, $createMermaidNode as f, $isMentionNode as g, $createMentionNode as h, TagNode as i, $createFootnoteNode as j, $withAdaptiveImageDisplayWidth as k, $createRichQuoteNode as l, MermaidNode as m, $createTagNode as n, $createSpoilerNode as o, $isMermaidNode as p, $isTagNode as r, $isSpoilerNode as s, editorTheme as t, $isRichQuoteNode as u, $createKaTeXInlineNode as v, $createImageNode as w, $createKaTeXBlockNode as x, $isKaTeXInlineNode as y, AlertRenderer as z };
@@ -0,0 +1,4 @@
1
+ import { ImageNodePayload } from '../nodes/ImageNode';
2
+ export declare function $isSelectionInTableCell(): boolean;
3
+ export declare function $withAdaptiveImageDisplayWidth(payload: ImageNodePayload): ImageNodePayload;
4
+ //# sourceMappingURL=image-insertion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image-insertion.d.ts","sourceRoot":"","sources":["../../src/utils/image-insertion.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAgB3D,wBAAgB,uBAAuB,IAAI,OAAO,CAGjD;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,CAS1F"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haklex/rich-editor",
3
- "version": "0.26.6",
3
+ "version": "0.28.0",
4
4
  "description": "Core rich text editor based on Lexical",
5
5
  "repository": {
6
6
  "type": "git",
@@ -48,9 +48,9 @@
48
48
  "@lexical/code-core": "^0.45.0",
49
49
  "nanoid": "^5.1.11",
50
50
  "thumbhash": "^0.1.1",
51
- "@haklex/rich-editor-ui": "0.26.6",
52
- "@haklex/rich-headless": "0.26.6",
53
- "@haklex/rich-style-token": "0.26.6"
51
+ "@haklex/rich-style-token": "0.28.0",
52
+ "@haklex/rich-editor-ui": "0.28.0",
53
+ "@haklex/rich-headless": "0.28.0"
54
54
  },
55
55
  "devDependencies": {
56
56
  "@lexical/extension": "^0.45.0",