@haklex/rich-editor 0.0.9 → 0.0.11

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 $createSpoilerNode, an as $isSpoilerNode, i as $createMermaidNode, d as clsx, C as ColorSchemeProvider, R as RendererConfigProvider, F as FootnotePlugin, g as getVariantClass } from "./utils-9gyGMPKX.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 $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";
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";
@@ -21,6 +21,7 @@ import { INSERT_HORIZONTAL_RULE_COMMAND, $createHorizontalRuleNode } from "@lexi
21
21
  import { MarkdownShortcutPlugin } from "@lexical/react/LexicalMarkdownShortcutPlugin";
22
22
  import { CHECK_LIST, TRANSFORMERS } from "@lexical/markdown";
23
23
  import { $isQuoteNode } from "@lexical/rich-text";
24
+ import { $isTableNode, $isTableRowNode, $isTableCellNode } from "@lexical/table";
24
25
  function AlertEditDecorator({
25
26
  nodeKey,
26
27
  alertType,
@@ -917,6 +918,144 @@ const MENTION_TRANSFORMER = {
917
918
  trigger: "}",
918
919
  type: "text-match"
919
920
  };
921
+ const NEVER_MATCH = /a^/;
922
+ function quoteAttr(value) {
923
+ return value.replaceAll('"', '\\"');
924
+ }
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
+ const GRID_CONTAINER_BLOCK_TRANSFORMER = {
1005
+ dependencies: [],
1006
+ export: (node) => {
1007
+ if (!$isGridContainerNode(node)) return null;
1008
+ const cells = node.getCellEditors().map(
1009
+ (editor) => editor.getEditorState().read(() => {
1010
+ return $getRoot().getTextContent();
1011
+ })
1012
+ );
1013
+ const body = cells.map((content) => `::: cell
1014
+ ${content}
1015
+ :::`).join("\n");
1016
+ return `::: grid{cols=${node.getCols()} gap="${quoteAttr(node.getGap())}"}
1017
+ ${body}
1018
+ :::`;
1019
+ },
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,
1055
+ replace: () => {
1056
+ },
1057
+ type: "element"
1058
+ };
920
1059
  const SPOILER_TRANSFORMER = {
921
1060
  dependencies: [SpoilerNode],
922
1061
  export: (node) => {
@@ -947,6 +1086,14 @@ const ALL_TRANSFORMERS = [
947
1086
  GIT_ALERT_TRANSFORMER,
948
1087
  CHECK_LIST,
949
1088
  KATEX_BLOCK_TRANSFORMER,
1089
+ IMAGE_BLOCK_TRANSFORMER,
1090
+ VIDEO_BLOCK_TRANSFORMER,
1091
+ CODE_BLOCK_NODE_TRANSFORMER,
1092
+ LINK_CARD_BLOCK_TRANSFORMER,
1093
+ MERMAID_BLOCK_TRANSFORMER,
1094
+ GRID_CONTAINER_BLOCK_TRANSFORMER,
1095
+ HORIZONTAL_RULE_BLOCK_TRANSFORMER,
1096
+ TABLE_BLOCK_TRANSFORMER,
950
1097
  ...TRANSFORMERS
951
1098
  ];
952
1099
  function MarkdownShortcutsPlugin() {
@@ -1118,6 +1265,7 @@ function RichEditor({
1118
1265
  ] }) }) }) }) }) });
1119
1266
  }
1120
1267
  export {
1268
+ ALL_TRANSFORMERS as A,
1121
1269
  FootnoteSectionEditNode as F,
1122
1270
  INSERT_ALERT_COMMAND as I,
1123
1271
  RichEditor as R,
@@ -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-9gyGMPKX.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-CFAhGrxg.js";
8
8
  import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
9
9
  import { HeadingNode } from "@lexical/rich-text";
10
10
  import { useEffect } from "react";
package/dist/editor.mjs CHANGED
@@ -1,5 +1,5 @@
1
- import { R, a, c, g, s } from "./RichEditor-CZCt6CCb.js";
2
- import { a as a2, b, c as c2 } from "./utils-9gyGMPKX.js";
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";
3
3
  export {
4
4
  R as RichEditor,
5
5
  a as allEditNodes,
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export { FootnoteDefinitionsProvider, useFootnoteContent, useFootnoteDefinitions
9
9
  export type { RendererMode } from './context/RendererConfigContext';
10
10
  export { useRendererMode } from './context/RendererConfigContext';
11
11
  export * from './styles';
12
+ export { ALL_TRANSFORMERS } from './transformers';
12
13
  export type { RichEditorProps, RichEditorVariant, RichRendererProps, } from './types';
13
14
  export type { RendererConfig } from './types/renderer-config';
14
15
  export type { SlashMenuItemConfig } from './types/slash-menu';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -1,6 +1,6 @@
1
- import { F, I, b, d, e, f, R, a, c, g, s } from "./RichEditor-CZCt6CCb.js";
2
- import { R as R2 } from "./RichRenderer-DALnGZXp.js";
3
- import { $, f as f2, h, i, j, k, l, m, n, o, A, 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-9gyGMPKX.js";
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";
4
4
  var richContent = "r8uj4t0";
5
5
  var articleTheme = "_17pm0gw0";
6
6
  var commentTheme = "_17pm0gw1";
@@ -20,8 +20,9 @@ export {
20
20
  m as $isKaTeXInlineNode,
21
21
  n as $isLinkCardNode,
22
22
  o as $isMermaidNode,
23
- A as ALERT_LABELS,
23
+ A2 as ALERT_LABELS,
24
24
  p as ALERT_TYPES,
25
+ A as ALL_TRANSFORMERS,
25
26
  B as BANNER_LABELS,
26
27
  q as BANNER_TYPES,
27
28
  C as ColorSchemeProvider,
package/dist/renderer.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { R } from "./RichRenderer-DALnGZXp.js";
1
+ import { R } from "./RichRenderer-BxR2eaIT.js";
2
2
  export {
3
3
  R as RichRenderer
4
4
  };
@@ -5,5 +5,6 @@ export { FOOTNOTE_SECTION_TRANSFORMER, FOOTNOTE_TRANSFORMER } from './footnote';
5
5
  export { INSERT_TRANSFORMER } from './insert';
6
6
  export { KATEX_BLOCK_TRANSFORMER, KATEX_INLINE_TRANSFORMER } from './katex';
7
7
  export { MENTION_TRANSFORMER } from './mention';
8
+ export { CODE_BLOCK_NODE_TRANSFORMER, GRID_CONTAINER_BLOCK_TRANSFORMER, HORIZONTAL_RULE_BLOCK_TRANSFORMER, IMAGE_BLOCK_TRANSFORMER, LINK_CARD_BLOCK_TRANSFORMER, MERMAID_BLOCK_TRANSFORMER, TABLE_BLOCK_TRANSFORMER, VIDEO_BLOCK_TRANSFORMER, } from './rich-blocks';
8
9
  export { SPOILER_TRANSFORMER } from './spoiler';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformers/index.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,gBAAgB,2CAc5B,CAAA;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformers/index.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,gBAAgB,2CAsB5B,CAAA;AAED,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACnD,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAC7C,OAAO,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,iCAAiC,EACjC,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,10 @@
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;
10
+ //# sourceMappingURL=rich-blocks.d.ts.map
@@ -0,0 +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"}
@@ -1755,6 +1755,9 @@ let ImageNode = _ImageNode;
1755
1755
  function $createImageNode(payload) {
1756
1756
  return new ImageNode(payload);
1757
1757
  }
1758
+ function $isImageNode(node) {
1759
+ return node instanceof ImageNode;
1760
+ }
1758
1761
  const _KaTeXBlockNode = class _KaTeXBlockNode extends DecoratorNode {
1759
1762
  constructor(equation, key) {
1760
1763
  super(key);
@@ -2181,6 +2184,9 @@ let VideoNode = _VideoNode;
2181
2184
  function $createVideoNode(payload) {
2182
2185
  return new VideoNode(payload);
2183
2186
  }
2187
+ function $isVideoNode(node) {
2188
+ return node instanceof VideoNode;
2189
+ }
2184
2190
  const builtinNodes = [
2185
2191
  HeadingNode,
2186
2192
  QuoteNode,
@@ -2322,8 +2328,10 @@ export {
2322
2328
  $isFootnoteNode as aj,
2323
2329
  $createMentionNode as ak,
2324
2330
  $isMentionNode as al,
2325
- $createSpoilerNode as am,
2326
- $isSpoilerNode as an,
2331
+ $isImageNode as am,
2332
+ $isVideoNode as an,
2333
+ $createSpoilerNode as ao,
2334
+ $isSpoilerNode as ap,
2327
2335
  builtinNodes as b,
2328
2336
  customNodes as c,
2329
2337
  clsx as d,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haklex/rich-editor",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "description": "Core rich text editor based on Lexical",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -25,8 +25,8 @@
25
25
  ],
26
26
  "dependencies": {
27
27
  "thumbhash": "^0.1.1",
28
- "@haklex/rich-editor-ui": "0.0.9",
29
- "@haklex/rich-style-token": "0.0.9"
28
+ "@haklex/rich-editor-ui": "0.0.11",
29
+ "@haklex/rich-style-token": "0.0.11"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@base-ui/react": "^1.1.0",