@haklex/rich-renderers-edit 0.0.71 → 0.0.73

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.
@@ -0,0 +1,3 @@
1
+ import { TagRendererProps } from '@haklex/rich-editor/static';
2
+ export declare function TagEditRenderer(props: TagRendererProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=TagEditRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TagEditRenderer.d.ts","sourceRoot":"","sources":["../src/TagEditRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAMnE,wBAAgB,eAAe,CAAC,KAAK,EAAE,gBAAgB,2CAQtD"}
@@ -0,0 +1,144 @@
1
+ import { FootnoteRenderer } from "@haklex/rich-editor/renderers";
2
+ import { CodeSnippetEditRenderer } from "@haklex/rich-ext-code-snippet";
3
+ import { GalleryEditRenderer } from "@haklex/rich-ext-gallery";
4
+ import { AlertEditRenderer } from "@haklex/rich-renderer-alert";
5
+ import { BannerEditRenderer } from "@haklex/rich-renderer-banner";
6
+ import { CodeBlockEditRenderer } from "@haklex/rich-renderer-codeblock";
7
+ import { ImageEditRenderer } from "@haklex/rich-renderer-image";
8
+ import { MentionEditRenderer } from "@haklex/rich-renderer-mention";
9
+ import { MermaidEditRenderer } from "@haklex/rich-renderer-mermaid";
10
+ import { RubyEditRenderer } from "@haklex/rich-renderer-ruby";
11
+ import { VideoEditRenderer } from "@haklex/rich-renderer-video";
12
+ import { enhancedRendererConfig } from "@haklex/rich-renderers";
13
+ import { jsx } from "react/jsx-runtime";
14
+ import { useRendererMode } from "@haklex/rich-editor";
15
+ import { TagRenderer, getTagBgColor } from "@haklex/rich-editor/static";
16
+ import { useLexicalComposerContext } from "@lexical/react/LexicalComposerContext";
17
+ import { $getNearestNodeFromDOMNode } from "lexical";
18
+ import { useRef, useState, useEffect, useCallback } from "react";
19
+ function TagEditRenderer(props) {
20
+ const mode = useRendererMode();
21
+ if (mode !== "editor") {
22
+ return /* @__PURE__ */ jsx(TagRenderer, { ...props });
23
+ }
24
+ return /* @__PURE__ */ jsx(TagEditRendererInner, { ...props });
25
+ }
26
+ function TagEditRendererInner({ text }) {
27
+ const [editor] = useLexicalComposerContext();
28
+ const editable = editor.isEditable();
29
+ const wrapperRef = useRef(null);
30
+ const inputRef = useRef(null);
31
+ const [editing, setEditing] = useState(false);
32
+ const [editText, setEditText] = useState(text);
33
+ useEffect(() => {
34
+ setEditText(text);
35
+ }, [text]);
36
+ useEffect(() => {
37
+ if (editing) {
38
+ requestAnimationFrame(() => inputRef.current?.focus());
39
+ }
40
+ }, [editing]);
41
+ const commitChanges = useCallback(() => {
42
+ const trimmed = editText.trim();
43
+ if (!trimmed || trimmed === text) {
44
+ setEditText(text);
45
+ setEditing(false);
46
+ return;
47
+ }
48
+ if (!wrapperRef.current) return;
49
+ editor.update(() => {
50
+ const node = $getNearestNodeFromDOMNode(wrapperRef.current);
51
+ if (!node) return;
52
+ const writable = node.getWritable();
53
+ writable.__text = trimmed;
54
+ });
55
+ setEditing(false);
56
+ }, [editor, editText, text]);
57
+ const handleKeyDown = useCallback(
58
+ (e) => {
59
+ e.stopPropagation();
60
+ if (e.key === "Enter") {
61
+ e.preventDefault();
62
+ commitChanges();
63
+ } else if (e.key === "Escape") {
64
+ e.preventDefault();
65
+ setEditText(text);
66
+ setEditing(false);
67
+ }
68
+ },
69
+ [commitChanges, text]
70
+ );
71
+ if (!editable) {
72
+ return /* @__PURE__ */ jsx(TagRenderer, { text });
73
+ }
74
+ const bgColor = getTagBgColor(editing ? editText : text);
75
+ if (editing) {
76
+ return /* @__PURE__ */ jsx(
77
+ "span",
78
+ {
79
+ className: "rich-tag",
80
+ ref: wrapperRef,
81
+ style: { backgroundColor: bgColor, display: "inline-flex", alignItems: "center" },
82
+ children: /* @__PURE__ */ jsx(
83
+ "input",
84
+ {
85
+ ref: inputRef,
86
+ style: {
87
+ appearance: "none",
88
+ border: "none",
89
+ backgroundColor: "transparent",
90
+ color: "inherit",
91
+ font: "inherit",
92
+ fontSize: "inherit",
93
+ lineHeight: "inherit",
94
+ padding: 0,
95
+ margin: 0,
96
+ outline: "none",
97
+ width: `${Math.max(editText.length, 1)}ch`,
98
+ minWidth: "2ch"
99
+ },
100
+ type: "text",
101
+ value: editText,
102
+ onBlur: commitChanges,
103
+ onChange: (e) => setEditText(e.target.value),
104
+ onKeyDown: handleKeyDown,
105
+ onMouseDown: (e) => e.stopPropagation()
106
+ }
107
+ )
108
+ }
109
+ );
110
+ }
111
+ return /* @__PURE__ */ jsx(
112
+ "span",
113
+ {
114
+ className: "rich-tag",
115
+ ref: wrapperRef,
116
+ style: { backgroundColor: bgColor, cursor: "pointer" },
117
+ onClick: (e) => {
118
+ e.preventDefault();
119
+ e.stopPropagation();
120
+ setEditing(true);
121
+ },
122
+ children: text
123
+ }
124
+ );
125
+ }
126
+ const enhancedEditRendererConfig = {
127
+ ...enhancedRendererConfig,
128
+ Alert: AlertEditRenderer,
129
+ Banner: BannerEditRenderer,
130
+ CodeBlock: CodeBlockEditRenderer,
131
+ Footnote: FootnoteRenderer,
132
+ Gallery: GalleryEditRenderer,
133
+ Image: ImageEditRenderer,
134
+ Mention: MentionEditRenderer,
135
+ Ruby: RubyEditRenderer,
136
+ Mermaid: MermaidEditRenderer,
137
+ Tag: TagEditRenderer,
138
+ Video: VideoEditRenderer,
139
+ CodeSnippet: CodeSnippetEditRenderer
140
+ };
141
+ export {
142
+ TagEditRenderer as T,
143
+ enhancedEditRendererConfig as e
144
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAc1D,eAAO,MAAM,0BAA0B,EAAE,cAaxC,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAgB1D,eAAO,MAAM,0BAA0B,EAAE,cAcxC,CAAC"}
package/dist/config.mjs CHANGED
@@ -1,29 +1,16 @@
1
- import { FootnoteRenderer } from "@haklex/rich-editor/renderers";
2
- import { CodeSnippetEditRenderer } from "@haklex/rich-ext-code-snippet";
3
- import { GalleryEditRenderer } from "@haklex/rich-ext-gallery";
4
- import { AlertEditRenderer } from "@haklex/rich-renderer-alert";
5
- import { BannerEditRenderer } from "@haklex/rich-renderer-banner";
6
- import { CodeBlockEditRenderer } from "@haklex/rich-renderer-codeblock";
7
- import { ImageEditRenderer } from "@haklex/rich-renderer-image";
8
- import { MentionEditRenderer } from "@haklex/rich-renderer-mention";
9
- import { MermaidEditRenderer } from "@haklex/rich-renderer-mermaid";
10
- import { RubyEditRenderer } from "@haklex/rich-renderer-ruby";
11
- import { VideoEditRenderer } from "@haklex/rich-renderer-video";
12
- import { enhancedRendererConfig } from "@haklex/rich-renderers";
13
- const enhancedEditRendererConfig = {
14
- ...enhancedRendererConfig,
15
- Alert: AlertEditRenderer,
16
- Banner: BannerEditRenderer,
17
- CodeBlock: CodeBlockEditRenderer,
18
- Footnote: FootnoteRenderer,
19
- Gallery: GalleryEditRenderer,
20
- Image: ImageEditRenderer,
21
- Mention: MentionEditRenderer,
22
- Ruby: RubyEditRenderer,
23
- Mermaid: MermaidEditRenderer,
24
- Video: VideoEditRenderer,
25
- CodeSnippet: CodeSnippetEditRenderer
26
- };
1
+ import "@haklex/rich-editor/renderers";
2
+ import "@haklex/rich-ext-code-snippet";
3
+ import "@haklex/rich-ext-gallery";
4
+ import "@haklex/rich-renderer-alert";
5
+ import "@haklex/rich-renderer-banner";
6
+ import "@haklex/rich-renderer-codeblock";
7
+ import "@haklex/rich-renderer-image";
8
+ import "@haklex/rich-renderer-mention";
9
+ import "@haklex/rich-renderer-mermaid";
10
+ import "@haklex/rich-renderer-ruby";
11
+ import "@haklex/rich-renderer-video";
12
+ import "@haklex/rich-renderers";
13
+ import { e } from "./config-B6vDEQ9v.js";
27
14
  export {
28
- enhancedEditRendererConfig
15
+ e as enhancedEditRendererConfig
29
16
  };
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export { ImageEditRenderer } from '@haklex/rich-renderer-image';
7
7
  export { MentionEditRenderer } from '@haklex/rich-renderer-mention';
8
8
  export { MermaidEditRenderer } from '@haklex/rich-renderer-mermaid';
9
9
  export { RubyEditRenderer } from '@haklex/rich-renderer-ruby';
10
+ export { TagEditRenderer } from './TagEditRenderer';
10
11
  export { VideoEditRenderer } from '@haklex/rich-renderer-video';
11
12
  export type { ExcalidrawEditRendererProps } from '@haklex/rich-ext-excalidraw';
12
13
  export { $createExcalidrawEditNode, $isExcalidrawEditNode, ExcalidrawEditNode, ExcalidrawEditRenderer, ExcalidrawPlugin, INSERT_EXCALIDRAW_COMMAND, } from '@haklex/rich-ext-excalidraw';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAA;AACjF,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,+BAA+B,CAAA;AAGtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAG/D,YAAY,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AAC9E,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,6BAA6B,CAAA;AAGpC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AAGjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,WAAW,EACX,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAG/B,YAAY,EACV,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,6BAA6B,CAAA;AAGpC,YAAY,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,gCAAgC,CAAA;AAGvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAGpE,YAAY,EACV,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,IAAI,gBAAgB,EAC5B,mBAAmB,GACpB,MAAM,gCAAgC,CAAA;AAGvC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACpB,MAAM,6BAA6B,CAAA;AAGpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAA;AACjF,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,+BAA+B,CAAA;AAGtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAA;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAG/D,YAAY,EAAE,2BAA2B,EAAE,MAAM,6BAA6B,CAAA;AAC9E,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,GAC1B,MAAM,6BAA6B,CAAA;AAGpC,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AAGjC,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,WAAW,EACX,oBAAoB,GACrB,MAAM,wBAAwB,CAAA;AAG/B,YAAY,EACV,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,GAClB,MAAM,6BAA6B,CAAA;AAGpC,YAAY,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,aAAa,EACb,aAAa,EACb,eAAe,GAChB,MAAM,gCAAgC,CAAA;AAGvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAGpE,YAAY,EACV,4BAA4B,EAC5B,wBAAwB,GACzB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,IAAI,gBAAgB,EAC5B,mBAAmB,GACpB,MAAM,gCAAgC,CAAA;AAGvC,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACpB,MAAM,6BAA6B,CAAA;AAGpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAA"}
package/dist/index.mjs CHANGED
@@ -6,6 +6,7 @@ import { ImageEditRenderer } from "@haklex/rich-renderer-image";
6
6
  import { MentionEditRenderer } from "@haklex/rich-renderer-mention";
7
7
  import { MermaidEditRenderer } from "@haklex/rich-renderer-mermaid";
8
8
  import { RubyEditRenderer } from "@haklex/rich-renderer-ruby";
9
+ import { T, e } from "./config-B6vDEQ9v.js";
9
10
  import { VideoEditRenderer } from "@haklex/rich-renderer-video";
10
11
  import { $createExcalidrawEditNode, $isExcalidrawEditNode, ExcalidrawEditNode, ExcalidrawEditRenderer, ExcalidrawPlugin, INSERT_EXCALIDRAW_COMMAND } from "@haklex/rich-ext-excalidraw";
11
12
  import { $createGalleryEditNode, $isGalleryEditNode, GalleryEditNode, GalleryEditRenderer, galleryEditNodes } from "@haklex/rich-ext-gallery";
@@ -15,7 +16,6 @@ import { SlashMenuItem, SlashMenuList, SlashMenuPlugin, collectNodeSlashItems, g
15
16
  import { BlockHandlePlugin } from "@haklex/rich-plugin-block-handle";
16
17
  import { $createLinkCardEditNode, ConvertToLinkCardAction, LinkCardEditNode, PasteLinkCardPlugin, linkCardEditNodes, matchUrl } from "@haklex/rich-renderer-linkcard";
17
18
  import { KaTeXBlockEditNode, KaTeXInlineEditNode, katexEditNodes } from "@haklex/rich-renderer-katex";
18
- import { enhancedEditRendererConfig } from "./config.mjs";
19
19
  export {
20
20
  $createCodeSnippetEditNode,
21
21
  $createEmbedEditNode,
@@ -55,12 +55,13 @@ export {
55
55
  SlashMenuItem,
56
56
  SlashMenuList,
57
57
  SlashMenuPlugin,
58
+ T as TagEditRenderer,
58
59
  VideoEditRenderer,
59
60
  builtinPlatforms,
60
61
  codeSnippetEditNodes,
61
62
  collectNodeSlashItems,
62
63
  embedEditNodes,
63
- enhancedEditRendererConfig,
64
+ e as enhancedEditRendererConfig,
64
65
  galleryEditNodes,
65
66
  getAllPlatforms,
66
67
  getBuiltinItems,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@haklex/rich-renderers-edit",
3
- "version": "0.0.71",
3
+ "version": "0.0.73",
4
4
  "description": "Edit renderers aggregator for haklex rich editor",
5
5
  "repository": {
6
6
  "type": "git",
@@ -64,25 +64,25 @@
64
64
  "dist"
65
65
  ],
66
66
  "dependencies": {
67
- "@haklex/rich-editor": "0.0.71",
68
- "@haklex/rich-ext-embed": "0.0.71",
69
- "@haklex/rich-ext-code-snippet": "0.0.71",
70
- "@haklex/rich-ext-excalidraw": "0.0.71",
71
- "@haklex/rich-ext-gallery": "0.0.71",
72
- "@haklex/rich-plugin-block-handle": "0.0.71",
73
- "@haklex/rich-plugin-mention": "0.0.71",
74
- "@haklex/rich-plugin-slash-menu": "0.0.71",
75
- "@haklex/rich-renderer-alert": "0.0.71",
76
- "@haklex/rich-renderer-codeblock": "0.0.71",
77
- "@haklex/rich-renderer-banner": "0.0.71",
78
- "@haklex/rich-renderer-image": "0.0.71",
79
- "@haklex/rich-renderer-katex": "0.0.71",
80
- "@haklex/rich-renderer-mention": "0.0.71",
81
- "@haklex/rich-renderer-mermaid": "0.0.71",
82
- "@haklex/rich-renderer-ruby": "0.0.71",
83
- "@haklex/rich-renderer-linkcard": "0.0.71",
84
- "@haklex/rich-renderer-video": "0.0.71",
85
- "@haklex/rich-renderers": "0.0.71"
67
+ "@haklex/rich-editor": "0.0.73",
68
+ "@haklex/rich-ext-embed": "0.0.73",
69
+ "@haklex/rich-ext-excalidraw": "0.0.73",
70
+ "@haklex/rich-plugin-mention": "0.0.73",
71
+ "@haklex/rich-ext-gallery": "0.0.73",
72
+ "@haklex/rich-plugin-slash-menu": "0.0.73",
73
+ "@haklex/rich-renderer-alert": "0.0.73",
74
+ "@haklex/rich-ext-code-snippet": "0.0.73",
75
+ "@haklex/rich-renderer-banner": "0.0.73",
76
+ "@haklex/rich-renderer-codeblock": "0.0.73",
77
+ "@haklex/rich-renderer-image": "0.0.73",
78
+ "@haklex/rich-renderer-katex": "0.0.73",
79
+ "@haklex/rich-renderer-linkcard": "0.0.73",
80
+ "@haklex/rich-renderer-mention": "0.0.73",
81
+ "@haklex/rich-renderer-mermaid": "0.0.73",
82
+ "@haklex/rich-renderer-ruby": "0.0.73",
83
+ "@haklex/rich-renderer-video": "0.0.73",
84
+ "@haklex/rich-plugin-block-handle": "0.0.73",
85
+ "@haklex/rich-renderers": "0.0.73"
86
86
  },
87
87
  "devDependencies": {
88
88
  "@lexical/react": "^0.41.0",