@haklex/rich-editor 0.0.47 → 0.0.48
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.
- package/dist/{RichEditor-CCCA2gpI.js → RichEditor-Bycc2iy_.js} +44 -4
- package/dist/editor.mjs +1 -1
- package/dist/index.mjs +2 -2
- package/dist/plugins/HorizontalRulePlugin.d.ts.map +1 -1
- package/dist/transformers/horizontal-rule.d.ts +4 -0
- package/dist/transformers/horizontal-rule.d.ts.map +1 -0
- package/dist/transformers/rich-blocks.d.ts +2 -1
- package/dist/transformers/rich-blocks.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -13,25 +13,25 @@ import { RichTextPlugin } from "@lexical/react/LexicalRichTextPlugin";
|
|
|
13
13
|
import { TabIndentationPlugin } from "@lexical/react/LexicalTabIndentationPlugin";
|
|
14
14
|
import { TablePlugin } from "@lexical/react/LexicalTablePlugin";
|
|
15
15
|
import { a2 as $isAlertQuoteNode, d as RendererWrapper, a3 as AlertRenderer, a4 as SpoilerNode, X as MentionNode, a5 as FootnoteNode, T as KaTeXInlineNode, a6 as AlertQuoteNode, f as editorTheme, a7 as $isBannerNode, a8 as BannerRenderer, a9 as BannerNode, aa as normalizeBannerType, ab as $isCodeBlockNode, ac as CodeBlockRenderer, ad as CodeBlockNode, i as useFootnoteDefinitions, M as FootnoteSectionNode, y as $isGridContainerNode, P as GridContainerNode, b as builtinNodes, S as KaTeXBlockNode, Q as ImageNode, ae as VideoNode, V as LinkCardNode, af as DetailsNode, Y as MermaidNode, _ as RubyNode, F as FootnoteDefinitionsProvider, r as $createImageNode, a0 as computeImageMeta, Z as OPEN_IMAGE_UPLOAD_DIALOG_COMMAND, ag as $createKaTeXInlineNode, ah as $createKaTeXBlockNode, o as getHostname, p as probeFavicon, ai as $createDetailsNode, aj as $createFootnoteNode, x as $isFootnoteSectionNode, $ as $createFootnoteSectionNode, t as $createMentionNode, g as extractTextContent, w as $createRubyNode, ak as $createSpoilerNode, v as $createMermaidNode, C as ColorSchemeProvider, R as RendererConfigProvider } from "./favicon-Di7XTTqC.js";
|
|
16
|
-
import { $getNodeByKey, KEY_ENTER_COMMAND, COMMAND_PRIORITY_CRITICAL, KEY_ARROW_DOWN_COMMAND, COMMAND_PRIORITY_HIGH, $getRoot, $createParagraphNode, $isParagraphNode, $getSelection, $isRangeSelection, $insertNodes, createEditor, $isElementNode, $isDecoratorNode, $createNodeSelection, $setSelection, $nodesOfType, createCommand, COMMAND_PRIORITY_EDITOR, $isRootNode, $isNodeSelection, KEY_BACKSPACE_COMMAND, KEY_DELETE_COMMAND, KEY_ARROW_UP_COMMAND, $isTextNode, createState, $getState, $addUpdateTag, $setState, $parseSerializedNode, PASTE_COMMAND, $createTextNode, $createLineBreakNode } from "lexical";
|
|
16
|
+
import { $getNodeByKey, KEY_ENTER_COMMAND, COMMAND_PRIORITY_CRITICAL, KEY_ARROW_DOWN_COMMAND, COMMAND_PRIORITY_HIGH, $getRoot, $createParagraphNode, $isParagraphNode, $getSelection, $isRangeSelection, $insertNodes, createEditor, $isElementNode, $isDecoratorNode, $createNodeSelection, $setSelection, $nodesOfType, createCommand, COMMAND_PRIORITY_EDITOR, $isRootNode, $isNodeSelection, KEY_BACKSPACE_COMMAND, KEY_DELETE_COMMAND, KEY_ARROW_UP_COMMAND, $isTextNode, createState, $getState, $addUpdateTag, $setState, $parseSerializedNode, COMMAND_PRIORITY_LOW, PASTE_COMMAND, $createTextNode, $createLineBreakNode } from "lexical";
|
|
17
17
|
import { Info, Lightbulb, TriangleAlert, Flag, LayoutGrid, Plus, Minus, Check, Upload, Link2 } from "lucide-react";
|
|
18
18
|
import { useCallback, useEffect, createElement, useState, createContext, use, useRef, useMemo } from "react";
|
|
19
19
|
import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
|
|
20
20
|
import { ContentEditable as ContentEditable$1 } from "@lexical/react/LexicalContentEditable";
|
|
21
21
|
import { LexicalNestedComposer } from "@lexical/react/LexicalNestedComposer";
|
|
22
22
|
import { CodeNode } from "@lexical/code";
|
|
23
|
-
import { HorizontalRuleNode,
|
|
23
|
+
import { HorizontalRuleNode, $createHorizontalRuleNode, INSERT_HORIZONTAL_RULE_COMMAND } from "@lexical/extension";
|
|
24
24
|
import { LinkNode, AutoLinkNode, createLinkMatcherWithRegExp, registerAutoLink } from "@lexical/link";
|
|
25
25
|
import { ListNode, ListItemNode } from "@lexical/list";
|
|
26
26
|
import { HeadingNode, QuoteNode, $isQuoteNode, DRAG_DROP_PASTE, $createQuoteNode } from "@lexical/rich-text";
|
|
27
27
|
import { TableNode, TableCellNode, TableRowNode } from "@lexical/table";
|
|
28
28
|
import { useLexicalNodeSelection } from "@lexical/react/useLexicalNodeSelection";
|
|
29
29
|
import { nanoid } from "nanoid";
|
|
30
|
+
import { HORIZONTAL_RULE_BLOCK_TRANSFORMER as HORIZONTAL_RULE_BLOCK_TRANSFORMER$1, GIT_ALERT_TRANSFORMER as GIT_ALERT_TRANSFORMER$1, CONTAINER_TRANSFORMER as CONTAINER_TRANSFORMER$1, FOOTNOTE_TRANSFORMER as FOOTNOTE_TRANSFORMER$1, FOOTNOTE_SECTION_TRANSFORMER as FOOTNOTE_SECTION_TRANSFORMER$1, KATEX_INLINE_TRANSFORMER as KATEX_INLINE_TRANSFORMER$1, KATEX_BLOCK_TRANSFORMER as KATEX_BLOCK_TRANSFORMER$1, MENTION_TRANSFORMER as MENTION_TRANSFORMER$1, RUBY_TRANSFORMER as RUBY_TRANSFORMER$1, SPOILER_TRANSFORMER as SPOILER_TRANSFORMER$1, INSERT_TRANSFORMER, SUPERSCRIPT_TRANSFORMER, SUBSCRIPT_TRANSFORMER, IMAGE_BLOCK_TRANSFORMER, VIDEO_BLOCK_TRANSFORMER, CODE_BLOCK_NODE_TRANSFORMER, LINK_CARD_BLOCK_TRANSFORMER, MERMAID_BLOCK_TRANSFORMER, TABLE_BLOCK_TRANSFORMER } from "@haklex/rich-headless/transformers";
|
|
30
31
|
import { Dialog, DialogPopup, DialogTitle, SegmentedControl } from "@haklex/rich-editor-ui";
|
|
31
32
|
import { b as clsx, g as getVariantClass } from "./utils-fpeaZV1R.js";
|
|
32
33
|
import { MarkdownShortcutPlugin } from "@lexical/react/LexicalMarkdownShortcutPlugin";
|
|
33
34
|
import { CHECK_LIST, TRANSFORMERS, QUOTE, CODE } from "@lexical/markdown";
|
|
34
|
-
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, RUBY_TRANSFORMER as RUBY_TRANSFORMER$1, SPOILER_TRANSFORMER as SPOILER_TRANSFORMER$1, INSERT_TRANSFORMER, SUPERSCRIPT_TRANSFORMER, SUBSCRIPT_TRANSFORMER, IMAGE_BLOCK_TRANSFORMER, VIDEO_BLOCK_TRANSFORMER, CODE_BLOCK_NODE_TRANSFORMER, LINK_CARD_BLOCK_TRANSFORMER, MERMAID_BLOCK_TRANSFORMER, HORIZONTAL_RULE_BLOCK_TRANSFORMER, TABLE_BLOCK_TRANSFORMER } from "@haklex/rich-headless/transformers";
|
|
35
35
|
function ExitBlockPlugin({
|
|
36
36
|
parentEditor,
|
|
37
37
|
nodeKey
|
|
@@ -1536,10 +1536,23 @@ function FootnotePlugin({ children }) {
|
|
|
1536
1536
|
}
|
|
1537
1537
|
);
|
|
1538
1538
|
}
|
|
1539
|
+
const HORIZONTAL_RULE_REGEX = /^(---|\*\*\*|___)\s?$/;
|
|
1540
|
+
const HORIZONTAL_RULE_BLOCK_TRANSFORMER = {
|
|
1541
|
+
...HORIZONTAL_RULE_BLOCK_TRANSFORMER$1,
|
|
1542
|
+
dependencies: [HorizontalRuleNode],
|
|
1543
|
+
regExp: HORIZONTAL_RULE_REGEX,
|
|
1544
|
+
replace: (parentNode) => {
|
|
1545
|
+
const hrNode = $createHorizontalRuleNode();
|
|
1546
|
+
const paragraph = $createParagraphNode();
|
|
1547
|
+
parentNode.replace(hrNode);
|
|
1548
|
+
hrNode.insertAfter(paragraph);
|
|
1549
|
+
paragraph.selectStart();
|
|
1550
|
+
}
|
|
1551
|
+
};
|
|
1539
1552
|
function HorizontalRulePlugin() {
|
|
1540
1553
|
const [editor] = useLexicalComposerContext();
|
|
1541
1554
|
useEffect(() => {
|
|
1542
|
-
|
|
1555
|
+
const unregisterInsert = editor.registerCommand(
|
|
1543
1556
|
INSERT_HORIZONTAL_RULE_COMMAND,
|
|
1544
1557
|
() => {
|
|
1545
1558
|
const selection = $getSelection();
|
|
@@ -1556,6 +1569,33 @@ function HorizontalRulePlugin() {
|
|
|
1556
1569
|
},
|
|
1557
1570
|
COMMAND_PRIORITY_EDITOR
|
|
1558
1571
|
);
|
|
1572
|
+
const unregisterEnter = editor.registerCommand(
|
|
1573
|
+
KEY_ENTER_COMMAND,
|
|
1574
|
+
(event) => {
|
|
1575
|
+
const selection = $getSelection();
|
|
1576
|
+
if (!$isRangeSelection(selection) || !selection.isCollapsed()) {
|
|
1577
|
+
return false;
|
|
1578
|
+
}
|
|
1579
|
+
const anchorNode = selection.anchor.getNode();
|
|
1580
|
+
if (!$isTextNode(anchorNode)) return false;
|
|
1581
|
+
const textContent = anchorNode.getTextContent();
|
|
1582
|
+
if (!HORIZONTAL_RULE_REGEX.test(textContent)) return false;
|
|
1583
|
+
const parentNode = anchorNode.getParent();
|
|
1584
|
+
if (!parentNode) return false;
|
|
1585
|
+
event?.preventDefault();
|
|
1586
|
+
const hrNode = $createHorizontalRuleNode();
|
|
1587
|
+
const paragraph = $createParagraphNode();
|
|
1588
|
+
parentNode.replace(hrNode);
|
|
1589
|
+
hrNode.insertAfter(paragraph);
|
|
1590
|
+
paragraph.selectStart();
|
|
1591
|
+
return true;
|
|
1592
|
+
},
|
|
1593
|
+
COMMAND_PRIORITY_LOW
|
|
1594
|
+
);
|
|
1595
|
+
return () => {
|
|
1596
|
+
unregisterInsert();
|
|
1597
|
+
unregisterEnter();
|
|
1598
|
+
};
|
|
1559
1599
|
}, [editor]);
|
|
1560
1600
|
return null;
|
|
1561
1601
|
}
|
package/dist/editor.mjs
CHANGED
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { b as blockIdState } from "./RichEditor-
|
|
2
|
-
import { A, F, d, I, e, f, h, i, N, R, a, c, j, g, s, u } from "./RichEditor-
|
|
1
|
+
import { b as blockIdState } from "./RichEditor-Bycc2iy_.js";
|
|
2
|
+
import { A, F, d, I, e, f, h, i, N, R, a, c, j, g, s, u } from "./RichEditor-Bycc2iy_.js";
|
|
3
3
|
import { h as useFootnoteContent, j as useFootnoteDisplayNumber } from "./favicon-Di7XTTqC.js";
|
|
4
4
|
import { $, q, r, s as s2, t, v, w, x, y, z, A as A2, B, D, E, G, H, I as I2, J, K, L, C, F as F2, M, O, P, Q, S, T, U, V, W, X, Y, N as N2, Z, _, a as a2, b, a0, e as e2, c as c2, a1, f as f2, g as g2, u as u2, i as i2, k, l, m, n } from "./favicon-Di7XTTqC.js";
|
|
5
5
|
import { a as a3, c as c3, g as g3, n as n2 } from "./utils-fpeaZV1R.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HorizontalRulePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/HorizontalRulePlugin.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HorizontalRulePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/HorizontalRulePlugin.tsx"],"names":[],"mappings":"AAkBA,wBAAgB,oBAAoB,SA4DnC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"horizontal-rule.d.ts","sourceRoot":"","sources":["../../src/transformers/horizontal-rule.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAG3D,eAAO,MAAM,qBAAqB,QAA0B,CAAA;AAE5D,eAAO,MAAM,iCAAiC,EAAE,kBAW/C,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export { GRID_CONTAINER_BLOCK_TRANSFORMER } from './grid-container';
|
|
2
|
-
export {
|
|
2
|
+
export { HORIZONTAL_RULE_BLOCK_TRANSFORMER } from './horizontal-rule';
|
|
3
|
+
export { CODE_BLOCK_NODE_TRANSFORMER, IMAGE_BLOCK_TRANSFORMER, LINK_CARD_BLOCK_TRANSFORMER, MERMAID_BLOCK_TRANSFORMER, TABLE_BLOCK_TRANSFORMER, VIDEO_BLOCK_TRANSFORMER, } from '@haklex/rich-headless/transformers';
|
|
3
4
|
//# 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,EAAE,gCAAgC,EAAE,MAAM,kBAAkB,CAAA;AACnE,OAAO,EACL,2BAA2B,EAC3B,
|
|
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,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAA;AACrE,OAAO,EACL,2BAA2B,EAC3B,uBAAuB,EACvB,2BAA2B,EAC3B,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,oCAAoC,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haklex/rich-editor",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.48",
|
|
4
4
|
"description": "Core rich text editor based on Lexical",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -30,9 +30,9 @@
|
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"nanoid": "^5.1.6",
|
|
32
32
|
"thumbhash": "^0.1.1",
|
|
33
|
-
"@haklex/rich-
|
|
34
|
-
"@haklex/rich-style-token": "0.0.
|
|
35
|
-
"@haklex/rich-
|
|
33
|
+
"@haklex/rich-editor-ui": "0.0.48",
|
|
34
|
+
"@haklex/rich-style-token": "0.0.48",
|
|
35
|
+
"@haklex/rich-headless": "0.0.48"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@base-ui/react": "^1.2.0",
|