@haklex/rich-editor 0.9.1 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
- import { c as setCodeBlockCursorIntent, o as $createCodeBlockEditNode, s as $createBannerEditNode, t as getResolvedEditNodes } from "./node-registry-D9t5vPfY.js";
1
+ import { c as setCodeBlockCursorIntent, o as $createCodeBlockEditNode, s as $createBannerEditNode, t as getResolvedEditNodes } from "./node-registry-jA2ieiI5.js";
2
2
  import { A as AlertQuoteNode, E as FootnoteNode, M as extractTextContent, T as $createFootnoteNode, _ as KaTeXInlineNode, b as KaTeXBlockNode, c as SpoilerNode, f as $createMentionNode, h as $createKaTeXInlineNode, m as MentionNode, o as $createSpoilerNode, v as $createKaTeXBlockNode, w as OPEN_IMAGE_UPLOAD_DIALOG_COMMAND, x as $createImageNode } from "./theme-DG7I1YM5.js";
3
3
  import { a as FootnoteDefinitionsProvider, n as computeImageMeta } from "./KaTeXRenderer-CqnhvDmj.js";
4
4
  import "./katex.css-CIOEOXyd.js";
5
- import { S as CommentNode, _ as $createDetailsNode, a as $createRubyNode, b as $createCommentPlaceholderNode, f as $isGridContainerNode, g as FootnoteSectionNode, h as $isFootnoteSectionNode, j as BannerNode, m as $createFootnoteSectionNode, s as RubyNode, v as DetailsNode, w as CodeBlockNode, y as $createCommentNode } from "./config-EJe68p4h.js";
5
+ import { S as CommentNode, _ as $createDetailsNode, a as $createRubyNode, b as $createCommentPlaceholderNode, f as $isGridContainerNode, g as FootnoteSectionNode, h as $isFootnoteSectionNode, j as BannerNode, m as $createFootnoteSectionNode, s as RubyNode, v as DetailsNode, w as CodeBlockNode, y as $createCommentNode } from "./config-ayEp2yVZ.js";
6
6
  import { t as $createAlertQuoteEditNode } from "./AlertQuoteEditNode-DjObnJI6.js";
7
7
  import { n as getHostname, r as probeFavicon, t as normalizeSerializedEditorState } from "./normalizeSerializedEditorState-B-1wmGzd.js";
8
8
  import { CheckListPlugin } from "@lexical/react/LexicalCheckListPlugin";
@@ -21,6 +21,7 @@ import { $convertFromMarkdownString, CHECK_LIST, CODE, QUOTE, TRANSFORMERS } fro
21
21
  import { $createTableCellNode, $createTableNode, $createTableRowNode, TableCellHeaderStates } from "@lexical/table";
22
22
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
23
23
  import { Check, Info, Link2, Upload } from "lucide-react";
24
+ import { createDefaultRegistry, deserializeNodesFromXml } from "@haklex/rich-litexml";
24
25
  import { MarkdownShortcutPlugin } from "@lexical/react/LexicalMarkdownShortcutPlugin";
25
26
  import { nanoid } from "nanoid";
26
27
  import { ActionBar, ActionButton, Dialog, DialogPopup, DialogTitle, SegmentedControl } from "@haklex/rich-editor-ui";
@@ -750,6 +751,46 @@ var ALL_TRANSFORMERS = [
750
751
  ...TRANSFORMERS.filter((t) => t !== QUOTE && t !== CODE)
751
752
  ];
752
753
  //#endregion
754
+ //#region src/utils/litexml-import.ts
755
+ var LITEXML_TAG_PATTERN = new RegExp(`<\\/?(?:${[
756
+ "doc",
757
+ "fragment",
758
+ "img",
759
+ "video",
760
+ "link-card",
761
+ "embed",
762
+ "codeblock",
763
+ "mermaid",
764
+ "math",
765
+ "alert",
766
+ "banner",
767
+ "nested-doc",
768
+ "details",
769
+ "spoiler",
770
+ "ruby",
771
+ "mention",
772
+ "tag",
773
+ "comment",
774
+ "footnote",
775
+ "footnote-section",
776
+ "gallery",
777
+ "excalidraw",
778
+ "grid",
779
+ "cell",
780
+ "agent-diff",
781
+ "code-snippet",
782
+ "chat",
783
+ "poll"
784
+ ].join("|")})(?:\\s|>|\\/>)`, "i");
785
+ function detectLiteXml(text) {
786
+ return LITEXML_TAG_PATTERN.test(text.trim());
787
+ }
788
+ function parseLiteXmlSerializedNodes(xml) {
789
+ if (!detectLiteXml(xml)) return null;
790
+ const nodes = deserializeNodesFromXml(xml, createDefaultRegistry());
791
+ return nodes.length > 0 ? nodes : null;
792
+ }
793
+ //#endregion
753
794
  //#region src/plugins/MarkdownPastePlugin.tsx
754
795
  function getVSCodePasteData(clipboardData) {
755
796
  const raw = clipboardData.getData("vscode-editor-data");
@@ -808,6 +849,15 @@ function convertAndInsert(markdown) {
808
849
  $insertNodes(serializedChildren.map((s) => $parseSerializedNode(s)));
809
850
  return true;
810
851
  }
852
+ function insertSerializedNodes(serializedNodes) {
853
+ if (!serializedNodes.length) return false;
854
+ $insertNodes(serializedNodes.map((s) => $parseSerializedNode(s)));
855
+ return true;
856
+ }
857
+ function convertLiteXmlAndInsert(xml) {
858
+ const serializedNodes = parseLiteXmlSerializedNodes(xml);
859
+ return serializedNodes ? insertSerializedNodes(serializedNodes) : false;
860
+ }
811
861
  function MarkdownPastePlugin() {
812
862
  const [editor] = useLexicalComposerContext();
813
863
  useEffect(() => {
@@ -825,8 +875,16 @@ function MarkdownPastePlugin() {
825
875
  return true;
826
876
  }
827
877
  }
828
- if (hasRichHTML(clipboardData)) return false;
829
878
  const text = clipboardData.getData("text/plain");
879
+ if (text && detectLiteXml(text)) try {
880
+ if (!convertLiteXmlAndInsert(text)) return false;
881
+ event.preventDefault();
882
+ return true;
883
+ } catch (error) {
884
+ console.error("MarkdownPastePlugin: LiteXML paste error", error);
885
+ return false;
886
+ }
887
+ if (hasRichHTML(clipboardData)) return false;
830
888
  if (!text || !detectMarkdown(text)) return false;
831
889
  try {
832
890
  if (!convertAndInsert(text)) return false;
@@ -6,7 +6,7 @@ import { t as LinkCardRenderer } from "./LinkCardRenderer-CigqFwCv.js";
6
6
  import { AutoLinkNode, LinkNode } from "@lexical/link";
7
7
  import { createContext, createElement, use, useCallback, useEffect, useRef, useState } from "react";
8
8
  import { HeadingNode, QuoteNode } from "@lexical/rich-text";
9
- import { $createTextNode, $insertNodes, DecoratorNode, ElementNode, TextNode } from "lexical";
9
+ import { $createParagraphNode, $createTextNode, $insertNodes, DecoratorNode, ElementNode, TextNode } from "lexical";
10
10
  import { HorizontalRuleNode } from "@lexical/extension";
11
11
  import { CodeNode } from "@lexical/code-core";
12
12
  import { ListItemNode, ListNode } from "@lexical/list";
@@ -555,7 +555,11 @@ _defineProperty(DetailsNode, "slashMenuItems", [{
555
555
  section: "ADVANCED",
556
556
  onSelect: (editor) => {
557
557
  editor.update(() => {
558
- $insertNodes([$createDetailsNode("Details")]);
558
+ const details = $createDetailsNode("Details", true);
559
+ const paragraph = $createParagraphNode();
560
+ details.append(paragraph);
561
+ $insertNodes([details]);
562
+ paragraph.selectStart();
559
563
  });
560
564
  }
561
565
  }]);
package/dist/index.mjs CHANGED
@@ -1,9 +1,9 @@
1
- import { A as ImageUploadProvider, C as useTextSelectionSnapshot, D as defaultImageUpload, E as ImageUploadPlugin, M as CorePlugins, O as BlockIdPlugin, S as createTextSelectionStore, T as LinkFaviconPlugin, _ as $getTextOffsetInBlock, a as AutoFocusPlugin, b as buildRangeAnchor, c as $captureTextSelectionFromRangeSelection, d as findDOMPointByTextOffset, f as getBlockElementById, g as $getRootBlock, h as TEXT_SELECTION_HIGHLIGHT_NAME, i as EditorRefPlugin, k as blockIdState, l as $restoreTextSelection, m as getTextOffsetFromDOMPoint, n as OnChangePlugin, o as TextSelectionPlugin, p as getDOMRectFromTextSelection, r as FootnotePlugin, s as $captureTextSelection, t as SubmitShortcutPlugin, u as createDOMRangeFromTextSelection, v as $resolveSelectionPoint, w as useTextSelectionStore, x as TextSelectionStoreProvider, y as buildBlockAnchor } from "./SubmitShortcutPlugin-CHn_HBJM.js";
2
- import { n as setResolvedEditNodes, r as allEditNodes } from "./node-registry-D9t5vPfY.js";
1
+ import { A as ImageUploadProvider, C as useTextSelectionSnapshot, D as defaultImageUpload, E as ImageUploadPlugin, M as CorePlugins, O as BlockIdPlugin, S as createTextSelectionStore, T as LinkFaviconPlugin, _ as $getTextOffsetInBlock, a as AutoFocusPlugin, b as buildRangeAnchor, c as $captureTextSelectionFromRangeSelection, d as findDOMPointByTextOffset, f as getBlockElementById, g as $getRootBlock, h as TEXT_SELECTION_HIGHLIGHT_NAME, i as EditorRefPlugin, k as blockIdState, l as $restoreTextSelection, m as getTextOffsetFromDOMPoint, n as OnChangePlugin, o as TextSelectionPlugin, p as getDOMRectFromTextSelection, r as FootnotePlugin, s as $captureTextSelection, t as SubmitShortcutPlugin, u as createDOMRangeFromTextSelection, v as $resolveSelectionPoint, w as useTextSelectionStore, x as TextSelectionStoreProvider, y as buildBlockAnchor } from "./SubmitShortcutPlugin-vSiGZdqf.js";
2
+ import { n as setResolvedEditNodes, r as allEditNodes } from "./node-registry-jA2ieiI5.js";
3
3
  import { F as useNestedContentRenderer, I as useOptionalNestedContentRenderer, P as NestedContentRendererProvider, t as editorTheme } from "./theme-DG7I1YM5.js";
4
4
  import { C as MENTION_NODE_KEY, D as VIDEO_NODE_KEY, E as TAG_NODE_KEY, S as LINK_CARD_NODE_KEY, T as RUBY_NODE_KEY, _ as CODE_BLOCK_NODE_KEY, a as FootnoteDefinitionsProvider, b as IMAGE_NODE_KEY, c as useFootnoteDisplayNumber, d as RendererConfigProvider, f as useRendererConfig, g as BANNER_NODE_KEY, h as ALERT_NODE_KEY, m as useVariant, o as useFootnoteContent, p as useRendererMode, s as useFootnoteDefinitions, v as FOOTNOTE_NODE_KEY, w as MERMAID_NODE_KEY, x as KATEX_NODE_KEY, y as FOOTNOTE_SECTION_NODE_KEY } from "./KaTeXRenderer-CqnhvDmj.js";
5
5
  import { a as noteVariant, c as richContent, i as getVariantClass, l as semanticClassNames, n as katexStyles, o as commentVariant, r as clsx, s as articleVariant, t as katexClassNames, u as sharedStyles } from "./katex.css-CIOEOXyd.js";
6
- import { D as useColorScheme, E as ColorSchemeProvider } from "./config-EJe68p4h.js";
6
+ import { D as useColorScheme, E as ColorSchemeProvider } from "./config-ayEp2yVZ.js";
7
7
  import { i as detailsStyles, n as gridStyles, r as detailsClassNames, t as gridClassNames } from "./grid.css-CJCkLTZc.js";
8
8
  import { a as LinkFavicon, i as useExtraNodes, n as usePresentDialog, r as ExtraNodesProvider, t as PresentDialogProvider } from "./PresentDialogContext-DKNicgia.js";
9
9
  import { a as KaTeXPlugin, c as AlertPlugin, n as MermaidPlugin, s as ImagePlugin } from "./MermaidPlugin-_gPgU34D.js";
@@ -1,7 +1,7 @@
1
1
  import { C as ImageNode, E as FootnoteNode, _ as KaTeXInlineNode, b as KaTeXBlockNode, c as SpoilerNode, d as MermaidNode, i as TagNode, j as _defineProperty, m as MentionNode, t as editorTheme } from "./theme-DG7I1YM5.js";
2
2
  import { _ as CODE_BLOCK_NODE_KEY, g as BANNER_NODE_KEY, l as RendererWrapper, s as useFootnoteDefinitions } from "./KaTeXRenderer-CqnhvDmj.js";
3
3
  import { l as semanticClassNames, r as clsx, u as sharedStyles } from "./katex.css-CIOEOXyd.js";
4
- import { C as $isCodeBlockNode, M as normalizeBannerType, N as BannerRenderer, O as $isBannerNode, S as CommentNode, T as CodeBlockRenderer, f as $isGridContainerNode, g as FootnoteSectionNode, i as VideoNode, j as BannerNode, n as builtinNodes, p as GridContainerNode, s as RubyNode, u as LinkCardNode, v as DetailsNode, w as CodeBlockNode } from "./config-EJe68p4h.js";
4
+ import { C as $isCodeBlockNode, M as normalizeBannerType, N as BannerRenderer, O as $isBannerNode, S as CommentNode, T as CodeBlockRenderer, f as $isGridContainerNode, g as FootnoteSectionNode, i as VideoNode, j as BannerNode, n as builtinNodes, p as GridContainerNode, s as RubyNode, u as LinkCardNode, v as DetailsNode, w as CodeBlockNode } from "./config-ayEp2yVZ.js";
5
5
  import { n as gridStyles, t as gridClassNames } from "./grid.css-CJCkLTZc.js";
6
6
  import { n as AlertQuoteEditNode, r as NESTED_EDITOR_NODES } from "./AlertQuoteEditNode-DjObnJI6.js";
7
7
  import { LinkPlugin } from "@lexical/react/LexicalLinkPlugin";
@@ -1 +1 @@
1
- {"version":3,"file":"DetailsNode.d.ts","sourceRoot":"","sources":["../../src/nodes/DetailsNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjG,OAAO,EAAgB,WAAW,EAAE,MAAM,SAAS,CAAC;AAKpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAO/D,MAAM,MAAM,qBAAqB,GAAG,MAAM,CACxC;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf,EACD,qBAAqB,CACtB,CAAC;AAEF,qBAAa,WAAY,SAAQ,WAAW;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAEhB,MAAM,CAAC,cAAc,EAAE,mBAAmB,EAAE,CAa1C;IAEF,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW;gBAIhC,OAAO,EAAE,MAAM,EAAE,IAAI,UAAQ,EAAE,GAAG,CAAC,EAAE,OAAO;IAMxD,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;IAmC7C,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO;IAc3D,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,qBAAqB,GAAG,WAAW;IAIrE,UAAU,IAAI,qBAAqB;IAUnC,UAAU,IAAI,MAAM;IAIpB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,OAAO,IAAI,OAAO;IAIlB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAK5B,UAAU,IAAI,IAAI;IAIlB,UAAU,CAAC,OAAO,EAAE,WAAW;IAK/B,QAAQ,IAAI,OAAO;CAGpB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,WAAW,CAE7E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,WAAW,CAExF"}
1
+ {"version":3,"file":"DetailsNode.d.ts","sourceRoot":"","sources":["../../src/nodes/DetailsNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjG,OAAO,EAAsC,WAAW,EAAE,MAAM,SAAS,CAAC;AAK1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAO/D,MAAM,MAAM,qBAAqB,GAAG,MAAM,CACxC;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf,EACD,qBAAqB,CACtB,CAAC;AAEF,qBAAa,WAAY,SAAQ,WAAW;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAEhB,MAAM,CAAC,cAAc,EAAE,mBAAmB,EAAE,CAiB1C;IAEF,MAAM,CAAC,OAAO,IAAI,MAAM;IAIxB,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW;gBAIhC,OAAO,EAAE,MAAM,EAAE,IAAI,UAAQ,EAAE,GAAG,CAAC,EAAE,OAAO;IAMxD,SAAS,CAAC,OAAO,EAAE,YAAY,GAAG,WAAW;IAmC7C,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO;IAc3D,MAAM,CAAC,UAAU,CAAC,cAAc,EAAE,qBAAqB,GAAG,WAAW;IAIrE,UAAU,IAAI,qBAAqB;IAUnC,UAAU,IAAI,MAAM;IAIpB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKjC,OAAO,IAAI,OAAO;IAIlB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAK5B,UAAU,IAAI,IAAI;IAIlB,UAAU,CAAC,OAAO,EAAE,WAAW;IAK/B,QAAQ,IAAI,OAAO;CAGpB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,WAAW,CAE7E;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,IAAI,WAAW,CAExF"}
@@ -1,5 +1,5 @@
1
- import { a as FootnoteSectionEditNode, i as customEditNodes, n as setResolvedEditNodes, r as allEditNodes, t as getResolvedEditNodes } from "./node-registry-D9t5vPfY.js";
1
+ import { a as FootnoteSectionEditNode, i as customEditNodes, n as setResolvedEditNodes, r as allEditNodes, t as getResolvedEditNodes } from "./node-registry-jA2ieiI5.js";
2
2
  import { C as ImageNode, O as ALERT_LABELS, S as $isImageNode, _ as KaTeXInlineNode, b as KaTeXBlockNode, d as MermaidNode, f as $createMentionNode, g as $isKaTeXInlineNode, i as TagNode, k as ALERT_TYPES, l as $createMermaidNode, m as MentionNode, n as $createTagNode, p as $isMentionNode, r as $isTagNode, u as $isMermaidNode, x as $createImageNode, y as $isKaTeXBlockNode } from "./theme-DG7I1YM5.js";
3
- import { A as BANNER_TYPES, S as CommentNode, a as $createRubyNode, c as $createLinkCardNode, d as $createGridContainerNode, f as $isGridContainerNode, g as FootnoteSectionNode, h as $isFootnoteSectionNode, k as BANNER_LABELS, l as $isLinkCardNode, m as $createFootnoteSectionNode, n as builtinNodes, o as $isRubyNode, p as GridContainerNode, r as customNodes, s as RubyNode, t as allNodes, u as LinkCardNode, x as $isCommentNode, y as $createCommentNode } from "./config-EJe68p4h.js";
3
+ import { A as BANNER_TYPES, S as CommentNode, a as $createRubyNode, c as $createLinkCardNode, d as $createGridContainerNode, f as $isGridContainerNode, g as FootnoteSectionNode, h as $isFootnoteSectionNode, k as BANNER_LABELS, l as $isLinkCardNode, m as $createFootnoteSectionNode, n as builtinNodes, o as $isRubyNode, p as GridContainerNode, r as customNodes, s as RubyNode, t as allNodes, u as LinkCardNode, x as $isCommentNode, y as $createCommentNode } from "./config-ayEp2yVZ.js";
4
4
  import { r as NESTED_EDITOR_NODES } from "./AlertQuoteEditNode-DjObnJI6.js";
5
5
  export { $createCommentNode, $createFootnoteSectionNode, $createGridContainerNode, $createImageNode, $createLinkCardNode, $createMentionNode, $createMermaidNode, $createRubyNode, $createTagNode, $isCommentNode, $isFootnoteSectionNode, $isGridContainerNode, $isImageNode, $isKaTeXBlockNode, $isKaTeXInlineNode, $isLinkCardNode, $isMentionNode, $isMermaidNode, $isRubyNode, $isTagNode, ALERT_LABELS, ALERT_TYPES, BANNER_LABELS, BANNER_TYPES, CommentNode, FootnoteSectionEditNode, FootnoteSectionNode, GridContainerNode, ImageNode, KaTeXBlockNode, KaTeXInlineNode, LinkCardNode, MentionNode, MermaidNode, NESTED_EDITOR_NODES, RubyNode, TagNode, allEditNodes, allNodes, builtinNodes, customEditNodes, customNodes, getResolvedEditNodes, setResolvedEditNodes };
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownPastePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/MarkdownPastePlugin.tsx"],"names":[],"mappings":"AAwIA,wBAAgB,mBAAmB,SA4DlC"}
1
+ {"version":3,"file":"MarkdownPastePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/MarkdownPastePlugin.tsx"],"names":[],"mappings":"AAsJA,wBAAgB,mBAAmB,SA0ElC"}
@@ -1,3 +1,3 @@
1
- import { A as ImageUploadProvider, D as defaultImageUpload, E as ImageUploadPlugin, F as ALL_TRANSFORMERS, I as HorizontalRulePlugin, L as BlockExitPlugin, M as CorePlugins, N as MarkdownShortcutsPlugin, O as BlockIdPlugin, P as MarkdownPastePlugin, R as AutoLinkPlugin, T as LinkFaviconPlugin, a as AutoFocusPlugin, i as EditorRefPlugin, j as useImageUpload, k as blockIdState, n as OnChangePlugin, o as TextSelectionPlugin, r as FootnotePlugin, t as SubmitShortcutPlugin } from "./SubmitShortcutPlugin-CHn_HBJM.js";
1
+ import { A as ImageUploadProvider, D as defaultImageUpload, E as ImageUploadPlugin, F as ALL_TRANSFORMERS, I as HorizontalRulePlugin, L as BlockExitPlugin, M as CorePlugins, N as MarkdownShortcutsPlugin, O as BlockIdPlugin, P as MarkdownPastePlugin, R as AutoLinkPlugin, T as LinkFaviconPlugin, a as AutoFocusPlugin, i as EditorRefPlugin, j as useImageUpload, k as blockIdState, n as OnChangePlugin, o as TextSelectionPlugin, r as FootnotePlugin, t as SubmitShortcutPlugin } from "./SubmitShortcutPlugin-vSiGZdqf.js";
2
2
  import { a as KaTeXPlugin, c as AlertPlugin, n as MermaidPlugin, s as ImagePlugin } from "./MermaidPlugin-_gPgU34D.js";
3
3
  export { ALL_TRANSFORMERS, AlertPlugin, AutoFocusPlugin, AutoLinkPlugin, BlockExitPlugin, BlockIdPlugin, CorePlugins, EditorRefPlugin, FootnotePlugin, HorizontalRulePlugin, ImagePlugin, ImageUploadPlugin, ImageUploadProvider, KaTeXPlugin, LinkFaviconPlugin, MarkdownPastePlugin, MarkdownShortcutsPlugin, MermaidPlugin, OnChangePlugin, SubmitShortcutPlugin, TextSelectionPlugin, blockIdState, defaultImageUpload, useImageUpload };
@@ -1,7 +1,7 @@
1
1
  import { F as useNestedContentRenderer, I as useOptionalNestedContentRenderer, M as extractTextContent, P as NestedContentRendererProvider, a as getTagBgColor, t as editorTheme } from "./theme-DG7I1YM5.js";
2
2
  import { C as MENTION_NODE_KEY, D as VIDEO_NODE_KEY, E as TAG_NODE_KEY, S as LINK_CARD_NODE_KEY, T as RUBY_NODE_KEY, _ as CODE_BLOCK_NODE_KEY, a as FootnoteDefinitionsProvider, b as IMAGE_NODE_KEY, c as useFootnoteDisplayNumber, d as RendererConfigProvider, f as useRendererConfig, g as BANNER_NODE_KEY, h as ALERT_NODE_KEY, l as RendererWrapper, m as useVariant, o as useFootnoteContent, p as useRendererMode, s as useFootnoteDefinitions, u as createRendererDecoration, v as FOOTNOTE_NODE_KEY, w as MERMAID_NODE_KEY, x as KATEX_NODE_KEY, y as FOOTNOTE_SECTION_NODE_KEY } from "./KaTeXRenderer-CqnhvDmj.js";
3
3
  import { a as noteVariant, c as richContent, i as getVariantClass, l as semanticClassNames, n as katexStyles, o as commentVariant, r as clsx, s as articleVariant, t as katexClassNames, u as sharedStyles } from "./katex.css-CIOEOXyd.js";
4
- import { D as useColorScheme, E as ColorSchemeProvider, n as builtinNodes, r as customNodes, t as allNodes } from "./config-EJe68p4h.js";
4
+ import { D as useColorScheme, E as ColorSchemeProvider, n as builtinNodes, r as customNodes, t as allNodes } from "./config-ayEp2yVZ.js";
5
5
  import { i as detailsStyles, n as gridStyles, r as detailsClassNames, t as gridClassNames } from "./grid.css-CJCkLTZc.js";
6
6
  import { t as normalizeSerializedEditorState } from "./normalizeSerializedEditorState-B-1wmGzd.js";
7
7
  import { a as LinkFavicon, i as useExtraNodes, n as usePresentDialog, r as ExtraNodesProvider, t as PresentDialogProvider } from "./PresentDialogContext-DKNicgia.js";
@@ -0,0 +1,4 @@
1
+ import { SerializedLexicalNode } from 'lexical';
2
+ export declare function detectLiteXml(text: string): boolean;
3
+ export declare function parseLiteXmlSerializedNodes(xml: string): SerializedLexicalNode[] | null;
4
+ //# sourceMappingURL=litexml-import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"litexml-import.d.ts","sourceRoot":"","sources":["../../src/utils/litexml-import.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAmCrD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,qBAAqB,EAAE,GAAG,IAAI,CAMvF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haklex/rich-editor",
3
- "version": "0.9.1",
3
+ "version": "0.9.2",
4
4
  "description": "Core rich text editor based on Lexical",
5
5
  "repository": {
6
6
  "type": "git",
@@ -48,9 +48,10 @@
48
48
  "@lexical/code-core": "^0.44.0",
49
49
  "nanoid": "^5.1.9",
50
50
  "thumbhash": "^0.1.1",
51
- "@haklex/rich-editor-ui": "0.9.1",
52
- "@haklex/rich-style-token": "0.9.1",
53
- "@haklex/rich-headless": "0.9.1"
51
+ "@haklex/rich-editor-ui": "0.9.2",
52
+ "@haklex/rich-headless": "0.9.2",
53
+ "@haklex/rich-litexml": "0.9.2",
54
+ "@haklex/rich-style-token": "0.9.2"
54
55
  },
55
56
  "devDependencies": {
56
57
  "@lexical/extension": "^0.44.0",