@haklex/rich-editor 0.0.11 → 0.0.12

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.
@@ -9,7 +9,7 @@ import { ListPlugin } from "@lexical/react/LexicalListPlugin";
9
9
  import { RichTextPlugin } from "@lexical/react/LexicalRichTextPlugin";
10
10
  import { TabIndentationPlugin } from "@lexical/react/LexicalTabIndentationPlugin";
11
11
  import { TablePlugin } from "@lexical/react/LexicalTablePlugin";
12
- import { V as $isAlertQuoteNode, W as RendererWrapper, X as AlertRenderer, Y as AlertQuoteNode, Z as $isBannerNode, _ as BannerRenderer, a0 as BannerNode, a1 as normalizeBannerType, a2 as $isCodeBlockNode, a3 as CodeBlockRenderer, a4 as CodeBlockNode, Q as useFootnoteDefinitions, s as FootnoteSectionNode, k as $isGridContainerNode, G as GridContainerNode, e as editorTheme, N as NESTED_EDITOR_NODES, b as builtinNodes, a5 as SpoilerNode, a6 as MentionNode, t as KaTeXInlineNode, K as KaTeXBlockNode, a7 as ImageNode, a8 as FootnoteNode, a9 as VideoNode, L as LinkCardNode, aa as DetailsNode, M as MermaidNode, ab as $createAlertQuoteNode, ac as $createImageNode, ad as $createKaTeXInlineNode, ae as $createKaTeXBlockNode, af as $createBannerNode, ag as $createDetailsNode, ah as $isDetailsNode, ai as $createFootnoteNode, aj as $isFootnoteNode, j as $isFootnoteSectionNode, $ as $createFootnoteSectionNode, m as $isKaTeXInlineNode, l as $isKaTeXBlockNode, ak as $createMentionNode, al as $isMentionNode, am as $isImageNode, an as $isVideoNode, n as $isLinkCardNode, o as $isMermaidNode, ao as $createSpoilerNode, ap as $isSpoilerNode, i as $createMermaidNode, d as clsx, C as ColorSchemeProvider, R as RendererConfigProvider, F as FootnotePlugin, g as getVariantClass } from "./utils-CFAhGrxg.js";
12
+ import { V as $isAlertQuoteNode, W as RendererWrapper, X as AlertRenderer, Y as AlertQuoteNode, Z as $isBannerNode, _ as BannerRenderer, a0 as BannerNode, a1 as normalizeBannerType, a2 as $isCodeBlockNode, a3 as CodeBlockRenderer, a4 as CodeBlockNode, Q as useFootnoteDefinitions, s as FootnoteSectionNode, k as $isGridContainerNode, G as GridContainerNode, e as editorTheme, N as NESTED_EDITOR_NODES, b as builtinNodes, a5 as SpoilerNode, a6 as MentionNode, t as KaTeXInlineNode, K as KaTeXBlockNode, a7 as ImageNode, a8 as FootnoteNode, a9 as VideoNode, L as LinkCardNode, aa as DetailsNode, M as MermaidNode, ab as $createAlertQuoteNode, ac as $createImageNode, ad as $createKaTeXInlineNode, ae as $createKaTeXBlockNode, af as $createBannerNode, ag as $createDetailsNode, ah as $createFootnoteNode, j as $isFootnoteSectionNode, $ as $createFootnoteSectionNode, ai as $createMentionNode, aj as $createSpoilerNode, i as $createMermaidNode, d as clsx, C as ColorSchemeProvider, R as RendererConfigProvider, F as FootnotePlugin, g as getVariantClass } from "./utils-DvP2uSr7.js";
13
13
  import { useCallback, createElement, useState, useEffect, useRef } from "react";
14
14
  import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
15
15
  import { ContentEditable as ContentEditable$1 } from "@lexical/react/LexicalContentEditable";
@@ -20,8 +20,7 @@ import { createLinkMatcherWithRegExp, registerAutoLink } from "@lexical/link";
20
20
  import { INSERT_HORIZONTAL_RULE_COMMAND, $createHorizontalRuleNode } from "@lexical/extension";
21
21
  import { MarkdownShortcutPlugin } from "@lexical/react/LexicalMarkdownShortcutPlugin";
22
22
  import { CHECK_LIST, TRANSFORMERS } from "@lexical/markdown";
23
- import { $isQuoteNode } from "@lexical/rich-text";
24
- import { $isTableNode, $isTableRowNode, $isTableCellNode } from "@lexical/table";
23
+ import { GIT_ALERT_TRANSFORMER as GIT_ALERT_TRANSFORMER$1, CONTAINER_TRANSFORMER as CONTAINER_TRANSFORMER$1, FOOTNOTE_TRANSFORMER as FOOTNOTE_TRANSFORMER$1, FOOTNOTE_SECTION_TRANSFORMER as FOOTNOTE_SECTION_TRANSFORMER$1, KATEX_INLINE_TRANSFORMER as KATEX_INLINE_TRANSFORMER$1, KATEX_BLOCK_TRANSFORMER as KATEX_BLOCK_TRANSFORMER$1, MENTION_TRANSFORMER as MENTION_TRANSFORMER$1, SPOILER_TRANSFORMER as SPOILER_TRANSFORMER$1, INSERT_TRANSFORMER, IMAGE_BLOCK_TRANSFORMER, VIDEO_BLOCK_TRANSFORMER, CODE_BLOCK_NODE_TRANSFORMER, LINK_CARD_BLOCK_TRANSFORMER, MERMAID_BLOCK_TRANSFORMER, HORIZONTAL_RULE_BLOCK_TRANSFORMER, TABLE_BLOCK_TRANSFORMER } from "@haklex/rich-headless/transformers";
25
24
  function AlertEditDecorator({
26
25
  nodeKey,
27
26
  alertType,
@@ -685,25 +684,8 @@ const ALERT_TYPE_MAP = {
685
684
  CAUTION: "caution"
686
685
  };
687
686
  const GIT_ALERT_TRANSFORMER = {
687
+ ...GIT_ALERT_TRANSFORMER$1,
688
688
  dependencies: [AlertQuoteNode],
689
- export: (node) => {
690
- if (!$isAlertQuoteNode(node)) {
691
- if ($isQuoteNode(node)) {
692
- const lines2 = node.getTextContent().split("\n");
693
- return lines2.map((line) => `> ${line}`).join("\n");
694
- }
695
- return null;
696
- }
697
- const type = node.getAlertType();
698
- const typeKey = Object.keys(ALERT_TYPE_MAP).find(
699
- (key) => ALERT_TYPE_MAP[key] === type
700
- );
701
- const textContent = node.getTextContent();
702
- const lines = textContent.split("\n");
703
- const firstLine = `> [!${typeKey || "NOTE"}]`;
704
- const restLines = lines.map((line) => `> ${line}`);
705
- return [firstLine, ...restLines].join("\n");
706
- },
707
689
  regExp: /^>\s*\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\]\s*$/,
708
690
  replace: (parentNode, children, match) => {
709
691
  const typeKey = match[1];
@@ -734,8 +716,7 @@ const GIT_ALERT_TRANSFORMER = {
734
716
  const editorState = alertNode.getContentEditor().parseEditorState(content);
735
717
  alertNode.getContentEditor().setEditorState(editorState);
736
718
  parentNode.replace(alertNode);
737
- },
738
- type: "element"
719
+ }
739
720
  };
740
721
  const BANNER_TYPE_MAP = {
741
722
  note: "note",
@@ -750,24 +731,8 @@ const BANNER_TYPE_MAP = {
750
731
  caution: "caution"
751
732
  };
752
733
  const CONTAINER_TRANSFORMER = {
734
+ ...CONTAINER_TRANSFORMER$1,
753
735
  dependencies: [BannerNode, DetailsNode],
754
- export: (node) => {
755
- if ($isBannerNode(node)) {
756
- const type = node.getBannerType();
757
- const content = node.getTextContent();
758
- return `::: ${type}
759
- ${content}
760
- :::`;
761
- }
762
- if ($isDetailsNode(node)) {
763
- const summary = node.getSummary();
764
- const content = node.getTextContent();
765
- return `::: details{summary="${summary}"}
766
- ${content}
767
- :::`;
768
- }
769
- return null;
770
- },
771
736
  regExp: /^:::\s*(\w+)(?:\{([^}]*)\})?\s*$/,
772
737
  replace: (parentNode, children, match) => {
773
738
  const type = match[1];
@@ -820,31 +785,19 @@ ${content}
820
785
  paragraph.append(child);
821
786
  });
822
787
  parentNode.replace(paragraph);
823
- },
824
- type: "element"
788
+ }
825
789
  };
826
790
  const FOOTNOTE_TRANSFORMER = {
791
+ ...FOOTNOTE_TRANSFORMER$1,
827
792
  dependencies: [FootnoteNode],
828
- export: (node) => {
829
- if (!$isFootnoteNode(node)) return null;
830
- return `[^${node.getIdentifier()}]`;
831
- },
832
- importRegExp: /\[\^(\w+)\]/,
833
- regExp: /\[\^(\w+)\]$/,
834
793
  replace: (textNode, match) => {
835
794
  const footnoteNode = $createFootnoteNode(match[1]);
836
795
  textNode.replace(footnoteNode);
837
- },
838
- trigger: "]",
839
- type: "text-match"
796
+ }
840
797
  };
841
798
  const FOOTNOTE_SECTION_TRANSFORMER = {
799
+ ...FOOTNOTE_SECTION_TRANSFORMER$1,
842
800
  dependencies: [FootnoteSectionNode],
843
- export: (node) => {
844
- if (!$isFootnoteSectionNode(node)) return null;
845
- const definitions = node.getDefinitions();
846
- return Object.entries(definitions).map(([id, content]) => `[^${id}]: ${content}`).join("\n");
847
- },
848
801
  regExp: /^\[\^(\w+)\]:\s+(.+)$/,
849
802
  replace: (parentNode, _children, match) => {
850
803
  const identifier = match[1];
@@ -862,145 +815,36 @@ const FOOTNOTE_SECTION_TRANSFORMER = {
862
815
  }
863
816
  const sectionNode = $createFootnoteSectionNode({ [identifier]: content });
864
817
  parentNode.replace(sectionNode);
865
- },
866
- type: "element"
867
- };
868
- const INSERT_TRANSFORMER = {
869
- format: ["underline"],
870
- tag: "++",
871
- type: "text-format"
818
+ }
872
819
  };
873
820
  const KATEX_INLINE_TRANSFORMER = {
821
+ ...KATEX_INLINE_TRANSFORMER$1,
874
822
  dependencies: [KaTeXInlineNode],
875
- export: (node) => {
876
- if (!$isKaTeXInlineNode(node)) return null;
877
- return `$${node.getEquation()}$`;
878
- },
879
- importRegExp: /\$([^$\n]+)\$/,
880
- regExp: /\$([^$\n]+)\$$/,
881
823
  replace: (textNode, match) => {
882
824
  const katexNode = $createKaTeXInlineNode(match[1]);
883
825
  textNode.replace(katexNode);
884
- },
885
- trigger: "$",
886
- type: "text-match"
826
+ }
887
827
  };
888
828
  const KATEX_BLOCK_TRANSFORMER = {
829
+ ...KATEX_BLOCK_TRANSFORMER$1,
889
830
  dependencies: [KaTeXBlockNode],
890
- export: (node) => {
891
- if (!$isKaTeXBlockNode(node)) return null;
892
- return `$$${node.getEquation()}$$`;
893
- },
894
- importRegExp: /\$\$([^$]+)\$\$/,
895
- regExp: /\$\$([^$]+)\$\$$/,
896
831
  replace: (textNode, match) => {
897
832
  const katexNode = $createKaTeXBlockNode(match[1]);
898
833
  textNode.replace(katexNode);
899
- },
900
- trigger: "$",
901
- type: "text-match"
834
+ }
902
835
  };
903
836
  const MENTION_TRANSFORMER = {
837
+ ...MENTION_TRANSFORMER$1,
904
838
  dependencies: [MentionNode],
905
- export: (node) => {
906
- if (!$isMentionNode(node)) return null;
907
- const displayName = node.getDisplayName();
908
- const base = `{${node.getPlatform()}@${node.getHandle()}}`;
909
- return displayName ? `[${displayName}]${base}` : base;
910
- },
911
- importRegExp: /(?:\[([^\]]+)\])?\{(\w+)@(\w[\w.-]*)\}/,
912
- regExp: /(?:\[([^\]]+)\])?\{(\w+)@(\w[\w.-]*)\}$/,
913
839
  replace: (textNode, match) => {
914
840
  const displayName = match[1] || void 0;
915
841
  const mentionNode = $createMentionNode(match[2], match[3], displayName);
916
842
  textNode.replace(mentionNode);
917
- },
918
- trigger: "}",
919
- type: "text-match"
843
+ }
920
844
  };
921
- const NEVER_MATCH = /a^/;
922
845
  function quoteAttr(value) {
923
846
  return value.replaceAll('"', '\\"');
924
847
  }
925
- function escapeCell(value) {
926
- return value.replaceAll("|", "\\|").replaceAll("\n", "<br/>");
927
- }
928
- function pickFence(content) {
929
- const matches = content.match(/`+/g);
930
- const maxLen = matches?.reduce((max, run) => Math.max(max, run.length), 0) ?? 0;
931
- return "`".repeat(Math.max(3, maxLen + 1));
932
- }
933
- const IMAGE_BLOCK_TRANSFORMER = {
934
- dependencies: [],
935
- export: (node) => {
936
- if (!$isImageNode(node)) return null;
937
- const image = node.exportJSON();
938
- const alt = image.altText || "";
939
- const title = image.caption ? ` "${image.caption.replaceAll('"', '\\"')}"` : "";
940
- return `![${alt}](${image.src}${title})`;
941
- },
942
- regExp: NEVER_MATCH,
943
- replace: () => {
944
- },
945
- type: "element"
946
- };
947
- const VIDEO_BLOCK_TRANSFORMER = {
948
- dependencies: [],
949
- export: (node) => {
950
- if (!$isVideoNode(node)) return null;
951
- const video = node.exportJSON();
952
- const attrs = [`src="${quoteAttr(video.src)}"`];
953
- if (video.poster) attrs.push(`poster="${quoteAttr(video.poster)}"`);
954
- if (video.width) attrs.push(`width=${video.width}`);
955
- if (video.height) attrs.push(`height=${video.height}`);
956
- return `<video ${attrs.join(" ")} controls></video>`;
957
- },
958
- regExp: NEVER_MATCH,
959
- replace: () => {
960
- },
961
- type: "element"
962
- };
963
- const CODE_BLOCK_NODE_TRANSFORMER = {
964
- dependencies: [],
965
- export: (node) => {
966
- if (!$isCodeBlockNode(node)) return null;
967
- const codeBlock = node.exportJSON();
968
- const fence = pickFence(codeBlock.code);
969
- return `${fence}${codeBlock.language}
970
- ${codeBlock.code}
971
- ${fence}`;
972
- },
973
- regExp: NEVER_MATCH,
974
- replace: () => {
975
- },
976
- type: "element"
977
- };
978
- const LINK_CARD_BLOCK_TRANSFORMER = {
979
- dependencies: [],
980
- export: (node) => {
981
- if (!$isLinkCardNode(node)) return null;
982
- const linkCard = node.exportJSON();
983
- return linkCard.title ? `[${linkCard.title}](${linkCard.url})` : `<${linkCard.url}>`;
984
- },
985
- regExp: NEVER_MATCH,
986
- replace: () => {
987
- },
988
- type: "element"
989
- };
990
- const MERMAID_BLOCK_TRANSFORMER = {
991
- dependencies: [],
992
- export: (node) => {
993
- if (!$isMermaidNode(node)) return null;
994
- const fence = pickFence(node.getDiagram());
995
- return `${fence}mermaid
996
- ${node.getDiagram()}
997
- ${fence}`;
998
- },
999
- regExp: NEVER_MATCH,
1000
- replace: () => {
1001
- },
1002
- type: "element"
1003
- };
1004
848
  const GRID_CONTAINER_BLOCK_TRANSFORMER = {
1005
849
  dependencies: [],
1006
850
  export: (node) => {
@@ -1017,61 +861,19 @@ ${content}
1017
861
  ${body}
1018
862
  :::`;
1019
863
  },
1020
- regExp: NEVER_MATCH,
1021
- replace: () => {
1022
- },
1023
- type: "element"
1024
- };
1025
- const HORIZONTAL_RULE_BLOCK_TRANSFORMER = {
1026
- dependencies: [],
1027
- export: (node) => {
1028
- return node.getType() === "horizontalrule" ? "---" : null;
1029
- },
1030
- regExp: NEVER_MATCH,
1031
- replace: () => {
1032
- },
1033
- type: "element"
1034
- };
1035
- const TABLE_BLOCK_TRANSFORMER = {
1036
- dependencies: [],
1037
- export: (node) => {
1038
- if (!$isTableNode(node)) return null;
1039
- const rows = node.getChildren().filter($isTableRowNode);
1040
- if (rows.length === 0) return "| |\n| --- |";
1041
- const tableRows = rows.map(
1042
- (row) => row.getChildren().filter($isTableCellNode).map((cell) => escapeCell(cell.getTextContent()))
1043
- );
1044
- const header = tableRows[0];
1045
- const separator = header.map(() => "---");
1046
- const body = tableRows.slice(1);
1047
- const lines = [
1048
- `| ${header.join(" | ")} |`,
1049
- `| ${separator.join(" | ")} |`,
1050
- ...body.map((cells) => `| ${cells.join(" | ")} |`)
1051
- ];
1052
- return lines.join("\n");
1053
- },
1054
- regExp: NEVER_MATCH,
864
+ regExp: /a^/,
1055
865
  replace: () => {
1056
866
  },
1057
867
  type: "element"
1058
868
  };
1059
869
  const SPOILER_TRANSFORMER = {
870
+ ...SPOILER_TRANSFORMER$1,
1060
871
  dependencies: [SpoilerNode],
1061
- export: (node) => {
1062
- if (!$isSpoilerNode(node)) return null;
1063
- const textContent = node.getTextContent();
1064
- return `||${textContent}||`;
1065
- },
1066
- importRegExp: /\|\|(.+?)\|\|/,
1067
- regExp: /\|\|(.+?)\|\|$/,
1068
872
  replace: (textNode, match) => {
1069
873
  const spoilerNode = $createSpoilerNode();
1070
874
  spoilerNode.append($createTextNode(match[1]));
1071
875
  textNode.replace(spoilerNode);
1072
- },
1073
- trigger: "|",
1074
- type: "text-match"
876
+ }
1075
877
  };
1076
878
  const ALL_TRANSFORMERS = [
1077
879
  // Inline transformers
@@ -1209,6 +1011,7 @@ function RichEditor({
1209
1011
  autoFocus = false,
1210
1012
  className,
1211
1013
  contentClassName,
1014
+ style,
1212
1015
  actions,
1213
1016
  onEditorReady,
1214
1017
  extraNodes,
@@ -1229,40 +1032,47 @@ function RichEditor({
1229
1032
  ...initialValue ? { editorState: JSON.stringify(initialValue) } : {}
1230
1033
  };
1231
1034
  const variantClass = getVariantClass(variant, theme);
1232
- return /* @__PURE__ */ jsx(PortalThemeProvider, { className: variantClass, children: /* @__PURE__ */ jsx(ColorSchemeProvider, { colorScheme: theme, children: /* @__PURE__ */ jsx(RendererConfigProvider, { config: rendererConfig, mode: "editor", children: /* @__PURE__ */ jsx(LexicalComposer, { initialConfig, children: /* @__PURE__ */ jsx(FootnotePlugin, { children: /* @__PURE__ */ jsxs("div", { className: clsx("rich-editor", variantClass, className), children: [
1233
- /* @__PURE__ */ jsx(
1234
- RichTextPlugin,
1235
- {
1236
- contentEditable: /* @__PURE__ */ jsx(
1237
- ContentEditable,
1035
+ return /* @__PURE__ */ jsx(PortalThemeProvider, { className: variantClass, children: /* @__PURE__ */ jsx(ColorSchemeProvider, { colorScheme: theme, children: /* @__PURE__ */ jsx(RendererConfigProvider, { config: rendererConfig, mode: "editor", children: /* @__PURE__ */ jsx(LexicalComposer, { initialConfig, children: /* @__PURE__ */ jsx(FootnotePlugin, { children: /* @__PURE__ */ jsxs(
1036
+ "div",
1037
+ {
1038
+ className: clsx("rich-editor", variantClass, className),
1039
+ style,
1040
+ children: [
1041
+ /* @__PURE__ */ jsx(
1042
+ RichTextPlugin,
1238
1043
  {
1239
- className: contentClassName,
1240
- placeholder
1044
+ contentEditable: /* @__PURE__ */ jsx(
1045
+ ContentEditable,
1046
+ {
1047
+ className: contentClassName,
1048
+ placeholder
1049
+ }
1050
+ ),
1051
+ ErrorBoundary: LexicalErrorBoundary
1241
1052
  }
1242
1053
  ),
1243
- ErrorBoundary: LexicalErrorBoundary
1244
- }
1245
- ),
1246
- /* @__PURE__ */ jsx(HistoryPlugin, {}),
1247
- /* @__PURE__ */ jsx(ListPlugin, {}),
1248
- /* @__PURE__ */ jsx(LinkPlugin, {}),
1249
- /* @__PURE__ */ jsx(TabIndentationPlugin, {}),
1250
- /* @__PURE__ */ jsx(TablePlugin, {}),
1251
- /* @__PURE__ */ jsx(MarkdownShortcutsPlugin, {}),
1252
- /* @__PURE__ */ jsx(OnChangePlugin, { onChange, debounceMs }),
1253
- /* @__PURE__ */ jsx(SubmitShortcutPlugin, { onSubmit }),
1254
- /* @__PURE__ */ jsx(ImagePlugin, {}),
1255
- /* @__PURE__ */ jsx(KaTeXPlugin, {}),
1256
- /* @__PURE__ */ jsx(AlertPlugin, {}),
1257
- /* @__PURE__ */ jsx(MermaidPlugin, {}),
1258
- /* @__PURE__ */ jsx(HorizontalRulePlugin, {}),
1259
- /* @__PURE__ */ jsx(CheckListPlugin, {}),
1260
- /* @__PURE__ */ jsx(AutoLinkPlugin, {}),
1261
- /* @__PURE__ */ jsx(EditorRefPlugin, { onEditorReady }),
1262
- autoFocus && /* @__PURE__ */ jsx(AutoFocusPlugin, {}),
1263
- children,
1264
- actions && /* @__PURE__ */ jsx("div", { className: "rich-editor__actions", children: actions })
1265
- ] }) }) }) }) }) });
1054
+ /* @__PURE__ */ jsx(HistoryPlugin, {}),
1055
+ /* @__PURE__ */ jsx(ListPlugin, {}),
1056
+ /* @__PURE__ */ jsx(LinkPlugin, {}),
1057
+ /* @__PURE__ */ jsx(TabIndentationPlugin, {}),
1058
+ /* @__PURE__ */ jsx(TablePlugin, {}),
1059
+ /* @__PURE__ */ jsx(MarkdownShortcutsPlugin, {}),
1060
+ /* @__PURE__ */ jsx(OnChangePlugin, { onChange, debounceMs }),
1061
+ /* @__PURE__ */ jsx(SubmitShortcutPlugin, { onSubmit }),
1062
+ /* @__PURE__ */ jsx(ImagePlugin, {}),
1063
+ /* @__PURE__ */ jsx(KaTeXPlugin, {}),
1064
+ /* @__PURE__ */ jsx(AlertPlugin, {}),
1065
+ /* @__PURE__ */ jsx(MermaidPlugin, {}),
1066
+ /* @__PURE__ */ jsx(HorizontalRulePlugin, {}),
1067
+ /* @__PURE__ */ jsx(CheckListPlugin, {}),
1068
+ /* @__PURE__ */ jsx(AutoLinkPlugin, {}),
1069
+ /* @__PURE__ */ jsx(EditorRefPlugin, { onEditorReady }),
1070
+ autoFocus && /* @__PURE__ */ jsx(AutoFocusPlugin, {}),
1071
+ children,
1072
+ actions && /* @__PURE__ */ jsx("div", { className: "rich-editor__actions", children: actions })
1073
+ ]
1074
+ }
1075
+ ) }) }) }) }) });
1266
1076
  }
1267
1077
  export {
1268
1078
  ALL_TRANSFORMERS as A,
@@ -4,7 +4,7 @@ import { LexicalComposer } from "@lexical/react/LexicalComposer";
4
4
  import { ContentEditable } from "@lexical/react/LexicalContentEditable";
5
5
  import { LexicalErrorBoundary } from "@lexical/react/LexicalErrorBoundary";
6
6
  import { RichTextPlugin } from "@lexical/react/LexicalRichTextPlugin";
7
- import { a as allNodes, C as ColorSchemeProvider, R as RendererConfigProvider, e as editorTheme, F as FootnotePlugin, d as clsx, g as getVariantClass } from "./utils-CFAhGrxg.js";
7
+ import { a as allNodes, C as ColorSchemeProvider, R as RendererConfigProvider, e as editorTheme, F as FootnotePlugin, d as clsx, g as getVariantClass } from "./utils-DvP2uSr7.js";
8
8
  import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
9
9
  import { HeadingNode } from "@lexical/rich-text";
10
10
  import { useEffect } from "react";
@@ -56,6 +56,7 @@ function RichRenderer({
56
56
  variant = "article",
57
57
  theme = "light",
58
58
  className,
59
+ style,
59
60
  as: Component = "div",
60
61
  rendererConfig,
61
62
  extraNodes
@@ -72,24 +73,31 @@ function RichRenderer({
72
73
  console.error("[RichRenderer]", error);
73
74
  }
74
75
  };
75
- return /* @__PURE__ */ jsx(PortalThemeProvider, { className: variantClass, children: /* @__PURE__ */ jsx(ColorSchemeProvider, { colorScheme: theme, children: /* @__PURE__ */ jsx(RendererConfigProvider, { config: rendererConfig, mode: "renderer", children: /* @__PURE__ */ jsx(Component, { className: clsx("rich-content", variantClass, className), children: /* @__PURE__ */ jsx(LexicalComposer, { initialConfig, children: /* @__PURE__ */ jsxs(FootnotePlugin, { children: [
76
- /* @__PURE__ */ jsx(
77
- RichTextPlugin,
78
- {
79
- contentEditable: /* @__PURE__ */ jsx(
80
- ContentEditable,
76
+ return /* @__PURE__ */ jsx(PortalThemeProvider, { className: variantClass, children: /* @__PURE__ */ jsx(ColorSchemeProvider, { colorScheme: theme, children: /* @__PURE__ */ jsx(RendererConfigProvider, { config: rendererConfig, mode: "renderer", children: /* @__PURE__ */ jsx(
77
+ Component,
78
+ {
79
+ className: clsx("rich-content", variantClass, className),
80
+ style,
81
+ children: /* @__PURE__ */ jsx(LexicalComposer, { initialConfig, children: /* @__PURE__ */ jsxs(FootnotePlugin, { children: [
82
+ /* @__PURE__ */ jsx(
83
+ RichTextPlugin,
81
84
  {
82
- className: "rich-content__body",
83
- style: { outline: "none" },
84
- "aria-placeholder": "",
85
- placeholder: /* @__PURE__ */ jsx("span", { style: { display: "none" } })
85
+ contentEditable: /* @__PURE__ */ jsx(
86
+ ContentEditable,
87
+ {
88
+ className: "rich-content__body",
89
+ style: { outline: "none" },
90
+ "aria-placeholder": "",
91
+ placeholder: /* @__PURE__ */ jsx("span", { style: { display: "none" } })
92
+ }
93
+ ),
94
+ ErrorBoundary: LexicalErrorBoundary
86
95
  }
87
96
  ),
88
- ErrorBoundary: LexicalErrorBoundary
89
- }
90
- ),
91
- /* @__PURE__ */ jsx(HeadingAnchorPlugin, {})
92
- ] }) }) }) }) }) });
97
+ /* @__PURE__ */ jsx(HeadingAnchorPlugin, {})
98
+ ] }) })
99
+ }
100
+ ) }) }) });
93
101
  }
94
102
  export {
95
103
  RichRenderer as R
@@ -1,3 +1,3 @@
1
1
  import { RichEditorProps } from '../types';
2
- export declare function RichEditor({ initialValue, onChange, variant, theme, placeholder, onSubmit, autoFocus, className, contentClassName, actions, onEditorReady, extraNodes, rendererConfig, debounceMs, children, }: RichEditorProps): import("react").JSX.Element;
2
+ export declare function RichEditor({ initialValue, onChange, variant, theme, placeholder, onSubmit, autoFocus, className, contentClassName, style, actions, onEditorReady, extraNodes, rendererConfig, debounceMs, children, }: RichEditorProps): import("react").JSX.Element;
3
3
  //# sourceMappingURL=RichEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichEditor.d.ts","sourceRoot":"","sources":["../../src/components/RichEditor.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAI/C,wBAAgB,UAAU,CAAC,EACzB,YAAY,EACZ,QAAQ,EACR,OAAmB,EACnB,KAAe,EACf,WAAkC,EAClC,QAAQ,EACR,SAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,UAAU,EACV,cAAc,EACd,UAAU,EACV,QAAQ,GACT,EAAE,eAAe,+BA4DjB"}
1
+ {"version":3,"file":"RichEditor.d.ts","sourceRoot":"","sources":["../../src/components/RichEditor.tsx"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAI/C,wBAAgB,UAAU,CAAC,EACzB,YAAY,EACZ,QAAQ,EACR,OAAmB,EACnB,KAAe,EACf,WAAkC,EAClC,QAAQ,EACR,SAAiB,EACjB,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,OAAO,EACP,aAAa,EACb,UAAU,EACV,cAAc,EACd,UAAU,EACV,QAAQ,GACT,EAAE,eAAe,+BA+DjB"}
@@ -1,3 +1,3 @@
1
1
  import { RichRendererProps } from '../types';
2
- export declare function RichRenderer({ value, variant, theme, className, as: Component, rendererConfig, extraNodes, }: RichRendererProps): import("react").JSX.Element;
2
+ export declare function RichRenderer({ value, variant, theme, className, style, as: Component, rendererConfig, extraNodes, }: RichRendererProps): import("react").JSX.Element;
3
3
  //# sourceMappingURL=RichRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichRenderer.d.ts","sourceRoot":"","sources":["../../src/components/RichRenderer.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAGjD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,OAAmB,EACnB,KAAe,EACf,SAAS,EACT,EAAE,EAAE,SAAiB,EACrB,cAAc,EACd,UAAU,GACX,EAAE,iBAAiB,+BA0CnB"}
1
+ {"version":3,"file":"RichRenderer.d.ts","sourceRoot":"","sources":["../../src/components/RichRenderer.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAGjD,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,OAAmB,EACnB,KAAe,EACf,SAAS,EACT,KAAK,EACL,EAAE,EAAE,SAAiB,EACrB,cAAc,EACd,UAAU,GACX,EAAE,iBAAiB,+BA6CnB"}
package/dist/editor.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { R, a, c, g, s } from "./RichEditor-DHLA-bpl.js";
2
- import { a as a2, b, c as c2 } from "./utils-CFAhGrxg.js";
1
+ import { R, a, c, g, s } from "./RichEditor-Da7lSkQj.js";
2
+ import { a as a2, b, c as c2 } from "./utils-DvP2uSr7.js";
3
3
  export {
4
4
  R as RichEditor,
5
5
  a as allEditNodes,
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { A, F, I, b, d, e, f, R, a, c, g, s } from "./RichEditor-DHLA-bpl.js";
2
- import { R as R2 } from "./RichRenderer-BxR2eaIT.js";
3
- import { $, f as f2, h, i, j, k, l, m, n, o, A as A2, p, B, q, C, r, F as F2, s as s2, G, K, t, u, L, v, M, N, a as a2, w, b as b2, x, y, z, c as c2, D, E, H, I as I2, e as e2, g as g2, J, O, P, Q, S, T, U } from "./utils-CFAhGrxg.js";
1
+ import { A, F, I, b, d, e, f, R, a, c, g, s } from "./RichEditor-Da7lSkQj.js";
2
+ import { R as R2 } from "./RichRenderer-CtBjK31O.js";
3
+ import { $, f as f2, h, i, j, k, l, m, n, o, A as A2, p, B, q, C, r, F as F2, s as s2, G, K, t, u, L, v, M, N, a as a2, w, b as b2, x, y, z, c as c2, D, E, H, I as I2, e as e2, g as g2, J, O, P, Q, S, T, U } from "./utils-DvP2uSr7.js";
4
4
  var richContent = "r8uj4t0";
5
5
  var articleTheme = "_17pm0gw0";
6
6
  var commentTheme = "_17pm0gw1";
package/dist/renderer.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { R } from "./RichRenderer-BxR2eaIT.js";
1
+ import { R } from "./RichRenderer-CtBjK31O.js";
2
2
  export {
3
3
  R as RichRenderer
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../src/transformers/alert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAkC3D,eAAO,MAAM,qBAAqB,EAAE,kBA6DnC,CAAA"}
1
+ {"version":3,"file":"alert.d.ts","sourceRoot":"","sources":["../../src/transformers/alert.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAiB3D,eAAO,MAAM,qBAAqB,EAAE,kBAsCnC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/transformers/container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAqC3D,eAAO,MAAM,qBAAqB,EAAE,kBAgFnC,CAAA"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/transformers/container.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAqB3D,eAAO,MAAM,qBAAqB,EAAE,kBAiEnC,CAAA"}
@@ -1,10 +1,4 @@
1
1
  import { ElementTransformer, TextMatchTransformer } from '@lexical/markdown';
2
- /**
3
- * Footnote reference transformer: [^1] → FootnoteNode
4
- */
5
2
  export declare const FOOTNOTE_TRANSFORMER: TextMatchTransformer;
6
- /**
7
- * Footnote section transformer: [^id]: content → FootnoteSectionNode
8
- */
9
3
  export declare const FOOTNOTE_SECTION_TRANSFORMER: ElementTransformer;
10
4
  //# sourceMappingURL=footnote.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"footnote.d.ts","sourceRoot":"","sources":["../../src/transformers/footnote.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,mBAAmB,CAAA;AAa1B;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,oBAclC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,EAAE,kBA8B1C,CAAA"}
1
+ {"version":3,"file":"footnote.d.ts","sourceRoot":"","sources":["../../src/transformers/footnote.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACrB,MAAM,mBAAmB,CAAA;AAS1B,eAAO,MAAM,oBAAoB,EAAE,oBAOlC,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,kBAuB1C,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { ElementTransformer } from '@lexical/markdown';
2
+ export declare const GRID_CONTAINER_BLOCK_TRANSFORMER: ElementTransformer;
3
+ //# sourceMappingURL=grid-container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid-container.d.ts","sourceRoot":"","sources":["../../src/transformers/grid-container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAS3D,eAAO,MAAM,gCAAgC,EAAE,kBAe9C,CAAA"}
@@ -1,6 +1,2 @@
1
- import { TextFormatTransformer } from '@lexical/markdown';
2
- /**
3
- * Insert text transformer: ++text++ → underline format
4
- */
5
- export declare const INSERT_TRANSFORMER: TextFormatTransformer;
1
+ export { INSERT_TRANSFORMER } from '@haklex/rich-headless/transformers';
6
2
  //# sourceMappingURL=insert.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../src/transformers/insert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAE9D;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,qBAIhC,CAAA"}
1
+ {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../../src/transformers/insert.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"katex.d.ts","sourceRoot":"","sources":["../../src/transformers/katex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAa7D,eAAO,MAAM,wBAAwB,EAAE,oBActC,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,oBAcrC,CAAA"}
1
+ {"version":3,"file":"katex.d.ts","sourceRoot":"","sources":["../../src/transformers/katex.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAQ7D,eAAO,MAAM,wBAAwB,EAAE,oBAOtC,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,oBAOrC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"mention.d.ts","sourceRoot":"","sources":["../../src/transformers/mention.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAQ7D,eAAO,MAAM,mBAAmB,EAAE,oBAiBjC,CAAA"}
1
+ {"version":3,"file":"mention.d.ts","sourceRoot":"","sources":["../../src/transformers/mention.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAI7D,eAAO,MAAM,mBAAmB,EAAE,oBAQjC,CAAA"}
@@ -1,10 +1,3 @@
1
- import { ElementTransformer } from '@lexical/markdown';
2
- export declare const IMAGE_BLOCK_TRANSFORMER: ElementTransformer;
3
- export declare const VIDEO_BLOCK_TRANSFORMER: ElementTransformer;
4
- export declare const CODE_BLOCK_NODE_TRANSFORMER: ElementTransformer;
5
- export declare const LINK_CARD_BLOCK_TRANSFORMER: ElementTransformer;
6
- export declare const MERMAID_BLOCK_TRANSFORMER: ElementTransformer;
7
- export declare const GRID_CONTAINER_BLOCK_TRANSFORMER: ElementTransformer;
8
- export declare const HORIZONTAL_RULE_BLOCK_TRANSFORMER: ElementTransformer;
9
- export declare const TABLE_BLOCK_TRANSFORMER: ElementTransformer;
1
+ export { GRID_CONTAINER_BLOCK_TRANSFORMER } from './grid-container';
2
+ export { CODE_BLOCK_NODE_TRANSFORMER, HORIZONTAL_RULE_BLOCK_TRANSFORMER, IMAGE_BLOCK_TRANSFORMER, LINK_CARD_BLOCK_TRANSFORMER, MERMAID_BLOCK_TRANSFORMER, TABLE_BLOCK_TRANSFORMER, VIDEO_BLOCK_TRANSFORMER, } from '@haklex/rich-headless/transformers';
10
3
  //# sourceMappingURL=rich-blocks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rich-blocks.d.ts","sourceRoot":"","sources":["../../src/transformers/rich-blocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAkC3D,eAAO,MAAM,uBAAuB,EAAE,kBAcrC,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,kBAcrC,CAAA;AAED,eAAO,MAAM,2BAA2B,EAAE,kBAWzC,CAAA;AAED,eAAO,MAAM,2BAA2B,EAAE,kBAYzC,CAAA;AAED,eAAO,MAAM,yBAAyB,EAAE,kBAUvC,CAAA;AAED,eAAO,MAAM,gCAAgC,EAAE,kBAe9C,CAAA;AAED,eAAO,MAAM,iCAAiC,EAAE,kBAQ/C,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,kBA4BrC,CAAA"}
1
+ {"version":3,"file":"rich-blocks.d.ts","sourceRoot":"","sources":["../../src/transformers/rich-blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,EACL,2BAA2B,EAC3B,iCAAiC,EACjC,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,oCAAoC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"spoiler.d.ts","sourceRoot":"","sources":["../../src/transformers/spoiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAS7D,eAAO,MAAM,mBAAmB,EAAE,oBAgBjC,CAAA"}
1
+ {"version":3,"file":"spoiler.d.ts","sourceRoot":"","sources":["../../src/transformers/spoiler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAK7D,eAAO,MAAM,mBAAmB,EAAE,oBAQjC,CAAA"}
package/dist/types.d.ts CHANGED
@@ -13,6 +13,7 @@ export interface RichEditorProps {
13
13
  autoFocus?: boolean;
14
14
  className?: string;
15
15
  contentClassName?: string;
16
+ style?: React.CSSProperties;
16
17
  actions?: ReactNode;
17
18
  onEditorReady?: (editor: LexicalEditor | null) => void;
18
19
  extraNodes?: Array<Klass<LexicalNode>>;
@@ -25,6 +26,7 @@ export interface RichRendererProps {
25
26
  variant?: RichEditorVariant;
26
27
  theme?: ColorScheme;
27
28
  className?: string;
29
+ style?: React.CSSProperties;
28
30
  as?: React.ElementType;
29
31
  rendererConfig?: RendererConfig;
30
32
  extraNodes?: Array<Klass<LexicalNode>>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,WAAW,EACX,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAE7D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAA;AAE9D,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACjD,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAA;IACtD,UAAU,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAA;IACtC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,qBAAqB,CAAA;IAC5B,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAA;IACtB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,UAAU,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAA;CACvC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,WAAW,EACX,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAE7D,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAA;AAE9D,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACjD,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,KAAK,IAAI,CAAA;IACtD,UAAU,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAA;IACtC,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,qBAAqB,CAAA;IAC5B,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAA;IACtB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,UAAU,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAA;CACvC"}
@@ -259,9 +259,6 @@ class FootnoteNode extends DecoratorNode {
259
259
  function $createFootnoteNode(identifier) {
260
260
  return new FootnoteNode(identifier);
261
261
  }
262
- function $isFootnoteNode(node) {
263
- return node instanceof FootnoteNode;
264
- }
265
262
  let katexModule = null;
266
263
  let katexLoadPromise = null;
267
264
  function loadKaTeX() {
@@ -441,9 +438,6 @@ class MentionNode extends DecoratorNode {
441
438
  function $createMentionNode(platform, handle, displayName) {
442
439
  return new MentionNode(platform, handle, displayName);
443
440
  }
444
- function $isMentionNode(node) {
445
- return node instanceof MentionNode;
446
- }
447
441
  class SpoilerNode extends ElementNode {
448
442
  static getType() {
449
443
  return "spoiler";
@@ -503,9 +497,6 @@ class SpoilerNode extends ElementNode {
503
497
  function $createSpoilerNode() {
504
498
  return new SpoilerNode();
505
499
  }
506
- function $isSpoilerNode(node) {
507
- return node instanceof SpoilerNode;
508
- }
509
500
  const NESTED_EDITOR_NODES = [
510
501
  HeadingNode,
511
502
  QuoteNode,
@@ -1147,9 +1138,6 @@ let DetailsNode = _DetailsNode;
1147
1138
  function $createDetailsNode(summary, open = false) {
1148
1139
  return new DetailsNode(summary, open);
1149
1140
  }
1150
- function $isDetailsNode(node) {
1151
- return node instanceof DetailsNode;
1152
- }
1153
1141
  function FootnoteSectionRenderer({
1154
1142
  definitions
1155
1143
  }) {
@@ -1755,9 +1743,6 @@ let ImageNode = _ImageNode;
1755
1743
  function $createImageNode(payload) {
1756
1744
  return new ImageNode(payload);
1757
1745
  }
1758
- function $isImageNode(node) {
1759
- return node instanceof ImageNode;
1760
- }
1761
1746
  const _KaTeXBlockNode = class _KaTeXBlockNode extends DecoratorNode {
1762
1747
  constructor(equation, key) {
1763
1748
  super(key);
@@ -2184,9 +2169,6 @@ let VideoNode = _VideoNode;
2184
2169
  function $createVideoNode(payload) {
2185
2170
  return new VideoNode(payload);
2186
2171
  }
2187
- function $isVideoNode(node) {
2188
- return node instanceof VideoNode;
2189
- }
2190
2172
  const builtinNodes = [
2191
2173
  HeadingNode,
2192
2174
  QuoteNode,
@@ -2323,15 +2305,9 @@ export {
2323
2305
  $createKaTeXBlockNode as ae,
2324
2306
  $createBannerNode as af,
2325
2307
  $createDetailsNode as ag,
2326
- $isDetailsNode as ah,
2327
- $createFootnoteNode as ai,
2328
- $isFootnoteNode as aj,
2329
- $createMentionNode as ak,
2330
- $isMentionNode as al,
2331
- $isImageNode as am,
2332
- $isVideoNode as an,
2333
- $createSpoilerNode as ao,
2334
- $isSpoilerNode as ap,
2308
+ $createFootnoteNode as ah,
2309
+ $createMentionNode as ai,
2310
+ $createSpoilerNode as aj,
2335
2311
  builtinNodes as b,
2336
2312
  customNodes as c,
2337
2313
  clsx as d,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haklex/rich-editor",
3
- "version": "0.0.11",
3
+ "version": "0.0.12",
4
4
  "description": "Core rich text editor based on Lexical",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -25,8 +25,9 @@
25
25
  ],
26
26
  "dependencies": {
27
27
  "thumbhash": "^0.1.1",
28
- "@haklex/rich-editor-ui": "0.0.11",
29
- "@haklex/rich-style-token": "0.0.11"
28
+ "@haklex/rich-editor-ui": "0.0.12",
29
+ "@haklex/rich-style-token": "0.0.12",
30
+ "@haklex/rich-headless": "0.0.12"
30
31
  },
31
32
  "devDependencies": {
32
33
  "@base-ui/react": "^1.1.0",