@airdraft/react-ui 0.1.20 → 0.1.21
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/CHANGELOG.md +12 -0
- package/dist/components/RawEditor.d.ts +2 -2
- package/dist/components/RawEditor.d.ts.map +1 -1
- package/dist/components/RawEditor.js +29 -20
- package/dist/components/RawEditor.js.map +1 -1
- package/dist/components/TiptapEditor.d.ts +1 -1
- package/dist/components/TiptapEditor.d.ts.map +1 -1
- package/dist/components/TiptapEditor.js +100 -64
- package/dist/components/TiptapEditor.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [0.1.21](https://github.com/aevrHQ/airdraft/compare/react-ui@v0.1.20...react-ui@v0.1.21) (2026-05-24)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* implement rich entries with pagination and sibling navigation ([65facb0](https://github.com/aevrHQ/airdraft/commit/65facb0401a4ede9e573424be112c14104311f40))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Code Refactoring
|
|
14
|
+
|
|
15
|
+
* standardize formatting and improve readability in RawEditor and TiptapEditor components ([e3f3178](https://github.com/aevrHQ/airdraft/commit/e3f31788d2fa922389250fc5be814268d3378d65))
|
|
16
|
+
|
|
5
17
|
### [0.1.20](https://github.com/aevrHQ/airdraft/compare/react-ui@v0.1.19...react-ui@v0.1.20) (2026-05-24)
|
|
6
18
|
|
|
7
19
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { EditorPluginProps } from
|
|
2
|
-
export declare function RawEditor({ value, onChange, calculateReadTime, onMeta, className }: EditorPluginProps): import("react/jsx-runtime").JSX.Element;
|
|
1
|
+
import type { EditorPluginProps } from "./RichTextEditor.js";
|
|
2
|
+
export declare function RawEditor({ value, onChange, calculateReadTime, onMeta, className, }: EditorPluginProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
//# sourceMappingURL=RawEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RawEditor.d.ts","sourceRoot":"","sources":["../../src/components/RawEditor.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"RawEditor.d.ts","sourceRoot":"","sources":["../../src/components/RawEditor.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAG7D,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,QAAQ,EACR,iBAAiB,EACjB,MAAM,EACN,SAAS,GACV,EAAE,iBAAiB,2CAqGnB"}
|
|
@@ -1,51 +1,60 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useState, useRef, useEffect, useCallback } from
|
|
4
|
-
import { cn } from
|
|
5
|
-
import { countWords, defaultReadTime } from
|
|
6
|
-
export function RawEditor({ value, onChange, calculateReadTime, onMeta, className }) {
|
|
7
|
-
const [tab, setTab] = useState(
|
|
8
|
-
const [previewHtml, setPreviewHtml] = useState(
|
|
3
|
+
import { useState, useRef, useEffect, useCallback } from "react";
|
|
4
|
+
import { cn } from "../lib/utils.js";
|
|
5
|
+
import { countWords, defaultReadTime } from "@airdraft/core";
|
|
6
|
+
export function RawEditor({ value, onChange, calculateReadTime, onMeta, className, }) {
|
|
7
|
+
const [tab, setTab] = useState("write");
|
|
8
|
+
const [previewHtml, setPreviewHtml] = useState("");
|
|
9
9
|
const textareaRef = useRef(null);
|
|
10
10
|
const wc = countWords(value);
|
|
11
11
|
// Report initial meta on mount
|
|
12
12
|
useEffect(() => {
|
|
13
|
-
onMeta?.({
|
|
13
|
+
onMeta?.({
|
|
14
|
+
wordCount: wc,
|
|
15
|
+
readTime: (calculateReadTime ?? defaultReadTime)(wc),
|
|
16
|
+
});
|
|
14
17
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
15
18
|
}, []);
|
|
16
19
|
const autoResize = useCallback(() => {
|
|
17
20
|
const el = textareaRef.current;
|
|
18
21
|
if (!el)
|
|
19
22
|
return;
|
|
20
|
-
el.style.height =
|
|
23
|
+
el.style.height = "auto";
|
|
21
24
|
el.style.height = `${el.scrollHeight}px`;
|
|
22
25
|
}, []);
|
|
23
26
|
useEffect(() => {
|
|
24
|
-
if (tab ===
|
|
27
|
+
if (tab === "write")
|
|
25
28
|
autoResize();
|
|
26
29
|
}, [value, tab, autoResize]);
|
|
27
30
|
useEffect(() => {
|
|
28
|
-
if (tab !==
|
|
31
|
+
if (tab !== "preview")
|
|
29
32
|
return;
|
|
30
33
|
let cancelled = false;
|
|
31
|
-
void import(
|
|
34
|
+
void import("marked").then(({ marked }) => {
|
|
32
35
|
if (!cancelled)
|
|
33
36
|
setPreviewHtml(marked(value));
|
|
34
37
|
});
|
|
35
|
-
return () => {
|
|
38
|
+
return () => {
|
|
39
|
+
cancelled = true;
|
|
40
|
+
};
|
|
36
41
|
}, [tab, value]);
|
|
37
|
-
return (_jsxs("div", { className: cn(
|
|
38
|
-
?
|
|
39
|
-
:
|
|
42
|
+
return (_jsxs("div", { className: cn("space-y-0 rounded-md border overflow-hidden", className), children: [_jsx("div", { className: "flex items-center border-b bg-muted/40 px-2", children: ["write", "preview"].map((t) => (_jsx("button", { type: "button", onClick: () => setTab(t), className: cn("px-3 py-2 text-xs font-medium border-b-2 -mb-px capitalize transition-colors", tab === t
|
|
43
|
+
? "border-foreground text-foreground"
|
|
44
|
+
: "border-transparent text-muted-foreground hover:text-foreground"), children: t }, t))) }), tab === "write" && (_jsx("textarea", { ref: textareaRef, value: value, onChange: (e) => {
|
|
40
45
|
onChange(e.target.value);
|
|
41
46
|
const wc = countWords(e.target.value);
|
|
42
|
-
onMeta?.({
|
|
47
|
+
onMeta?.({
|
|
48
|
+
wordCount: wc,
|
|
49
|
+
readTime: (calculateReadTime ?? defaultReadTime)(wc),
|
|
50
|
+
});
|
|
43
51
|
autoResize();
|
|
44
|
-
}, onInput: autoResize, className: "w-full resize-none overflow-hidden bg-background px-4 py-3 text-sm font-mono placeholder:text-muted-foreground focus:outline-none min-h-[200px]", placeholder: "Write markdown\u2026" })), tab ===
|
|
52
|
+
}, onInput: autoResize, className: "w-full resize-none overflow-hidden bg-background px-4 py-3 text-sm font-mono placeholder:text-muted-foreground focus:outline-none min-h-[200px]", placeholder: "Write markdown\u2026" })), tab === "preview" && (_jsx("div", { className: "min-h-[200px] bg-background px-4 py-3 prose dark:prose-invert prose-sm max-w-none",
|
|
45
53
|
// safe: admin-only editor, user is authoring their own content
|
|
46
54
|
// eslint-disable-next-line react/no-danger
|
|
47
55
|
dangerouslySetInnerHTML: {
|
|
48
|
-
__html: previewHtml ||
|
|
49
|
-
|
|
56
|
+
__html: previewHtml ||
|
|
57
|
+
'<p style="color:var(--muted-foreground);font-size:0.875rem">Nothing to preview yet.</p>',
|
|
58
|
+
} })), _jsx("div", { className: "border-t bg-muted/20 px-4 py-1.5 flex justify-end", children: _jsxs("p", { className: "text-xs text-muted-foreground", children: [wc, " ", wc === 1 ? "word" : "words", calculateReadTime && wc > 0 && ` · ${calculateReadTime(wc)}`] }) })] }));
|
|
50
59
|
}
|
|
51
60
|
//# sourceMappingURL=RawEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RawEditor.js","sourceRoot":"","sources":["../../src/components/RawEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,
|
|
1
|
+
{"version":3,"file":"RawEditor.js","sourceRoot":"","sources":["../../src/components/RawEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { EditorPluginProps } from
|
|
1
|
+
import type { EditorPluginProps } from "./RichTextEditor.js";
|
|
2
2
|
export declare function TiptapEditor({ value, onChange, uploadImage, calculateReadTime, onMeta, className, }: EditorPluginProps): import("react/jsx-runtime").JSX.Element | null;
|
|
3
3
|
//# sourceMappingURL=TiptapEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TiptapEditor.d.ts","sourceRoot":"","sources":["../../src/components/TiptapEditor.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"TiptapEditor.d.ts","sourceRoot":"","sources":["../../src/components/TiptapEditor.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAiZ7D,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,SAAS,GACV,EAAE,iBAAiB,kDAqRnB"}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
|
|
1
|
+
"use client";
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import { useEditor, EditorContent } from
|
|
4
|
-
import StarterKit from
|
|
5
|
-
import { Markdown } from
|
|
6
|
-
import TiptapLink from
|
|
7
|
-
import TiptapImage from
|
|
8
|
-
import CharacterCount from
|
|
9
|
-
import { useEffect, useState, useRef, useCallback } from
|
|
10
|
-
import { createPortal } from
|
|
11
|
-
import { Input } from
|
|
12
|
-
import { Button } from
|
|
13
|
-
import { cn } from
|
|
14
|
-
import { defaultReadTime } from
|
|
15
|
-
import { Bold, Italic, Strikethrough, Code, Code2, Heading1, Heading2, Heading3, List, ListOrdered, Quote, Minus, Link2, Image as ImageIcon, Upload, } from
|
|
3
|
+
import { useEditor, EditorContent } from "@tiptap/react";
|
|
4
|
+
import StarterKit from "@tiptap/starter-kit";
|
|
5
|
+
import { Markdown } from "tiptap-markdown";
|
|
6
|
+
import TiptapLink from "@tiptap/extension-link";
|
|
7
|
+
import TiptapImage from "@tiptap/extension-image";
|
|
8
|
+
import CharacterCount from "@tiptap/extension-character-count";
|
|
9
|
+
import { useEffect, useState, useRef, useCallback } from "react";
|
|
10
|
+
import { createPortal } from "react-dom";
|
|
11
|
+
import { Input } from "../ui/input.js";
|
|
12
|
+
import { Button } from "../ui/button.js";
|
|
13
|
+
import { cn } from "../lib/utils.js";
|
|
14
|
+
import { defaultReadTime } from "@airdraft/core";
|
|
15
|
+
import { Bold, Italic, Strikethrough, Code, Code2, Heading1, Heading2, Heading3, List, ListOrdered, Quote, Minus, Link2, Image as ImageIcon, Upload, } from "lucide-react";
|
|
16
16
|
// ---------------------------------------------------------------------------
|
|
17
17
|
// Toolbar primitives
|
|
18
18
|
// ---------------------------------------------------------------------------
|
|
19
19
|
function ToolbarBtn({ onClick, active, disabled, title, children, }) {
|
|
20
|
-
return (_jsx("button", { type: "button", title: title, disabled: disabled, onMouseDown: (e) => e.preventDefault(), onClick: onClick, className: cn(
|
|
21
|
-
?
|
|
22
|
-
:
|
|
20
|
+
return (_jsx("button", { type: "button", title: title, disabled: disabled, onMouseDown: (e) => e.preventDefault(), onClick: onClick, className: cn("flex size-7 items-center justify-center rounded transition-colors shrink-0", active
|
|
21
|
+
? "bg-foreground text-background"
|
|
22
|
+
: "text-muted-foreground hover:bg-muted hover:text-foreground", disabled && "pointer-events-none opacity-40"), children: children }));
|
|
23
23
|
}
|
|
24
24
|
function ToolbarSep() {
|
|
25
25
|
return _jsx("span", { className: "mx-0.5 h-5 w-px bg-border shrink-0" });
|
|
@@ -29,11 +29,11 @@ function ToolbarSep() {
|
|
|
29
29
|
// ---------------------------------------------------------------------------
|
|
30
30
|
function LinkPopover({ editor }) {
|
|
31
31
|
const [open, setOpen] = useState(false);
|
|
32
|
-
const [url, setUrl] = useState(
|
|
32
|
+
const [url, setUrl] = useState("");
|
|
33
33
|
const [panelStyle, setPanelStyle] = useState({});
|
|
34
34
|
const wrapperRef = useRef(null);
|
|
35
35
|
const panelRef = useRef(null);
|
|
36
|
-
const isActive = editor?.isActive(
|
|
36
|
+
const isActive = editor?.isActive("link") ?? false;
|
|
37
37
|
// Click-outside + Escape to close (no backdrop overlay that blocks clicks)
|
|
38
38
|
useEffect(() => {
|
|
39
39
|
if (!open)
|
|
@@ -45,14 +45,14 @@ function LinkPopover({ editor }) {
|
|
|
45
45
|
setOpen(false);
|
|
46
46
|
}
|
|
47
47
|
function onKeyDown(e) {
|
|
48
|
-
if (e.key ===
|
|
48
|
+
if (e.key === "Escape")
|
|
49
49
|
setOpen(false);
|
|
50
50
|
}
|
|
51
|
-
document.addEventListener(
|
|
52
|
-
document.addEventListener(
|
|
51
|
+
document.addEventListener("mousedown", onMouseDown, true);
|
|
52
|
+
document.addEventListener("keydown", onKeyDown, true);
|
|
53
53
|
return () => {
|
|
54
|
-
document.removeEventListener(
|
|
55
|
-
document.removeEventListener(
|
|
54
|
+
document.removeEventListener("mousedown", onMouseDown, true);
|
|
55
|
+
document.removeEventListener("keydown", onKeyDown, true);
|
|
56
56
|
};
|
|
57
57
|
}, [open]);
|
|
58
58
|
function handleToggle() {
|
|
@@ -63,7 +63,7 @@ function LinkPopover({ editor }) {
|
|
|
63
63
|
const rect = wrapperRef.current?.getBoundingClientRect();
|
|
64
64
|
if (rect)
|
|
65
65
|
setPanelStyle({ top: rect.bottom + 4, left: rect.left });
|
|
66
|
-
const currentUrl = editor?.getAttributes(
|
|
66
|
+
const currentUrl = editor?.getAttributes("link").href ?? "";
|
|
67
67
|
setUrl(currentUrl);
|
|
68
68
|
setOpen(true);
|
|
69
69
|
}
|
|
@@ -72,39 +72,46 @@ function LinkPopover({ editor }) {
|
|
|
72
72
|
editor?.chain().focus().unsetLink().run();
|
|
73
73
|
}
|
|
74
74
|
else {
|
|
75
|
-
editor
|
|
75
|
+
editor
|
|
76
|
+
?.chain()
|
|
77
|
+
.focus()
|
|
78
|
+
.setLink({ href: url.trim(), target: "_blank" })
|
|
79
|
+
.run();
|
|
76
80
|
}
|
|
77
81
|
setOpen(false);
|
|
78
|
-
setUrl(
|
|
82
|
+
setUrl("");
|
|
79
83
|
}
|
|
80
84
|
function removeLink() {
|
|
81
85
|
editor?.chain().focus().unsetLink().run();
|
|
82
86
|
setOpen(false);
|
|
83
87
|
}
|
|
84
|
-
return (_jsxs("div", { ref: wrapperRef, children: [_jsx(ToolbarBtn, { onClick: handleToggle, active: isActive, title: "Link", children: _jsx(Link2, { className: "size-3.5" }) }), open &&
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
+
return (_jsxs("div", { ref: wrapperRef, children: [_jsx(ToolbarBtn, { onClick: handleToggle, active: isActive, title: "Link", children: _jsx(Link2, { className: "size-3.5" }) }), open &&
|
|
89
|
+
createPortal(_jsxs("div", { ref: panelRef, className: "fixed z-[9999] w-64 rounded-md border bg-popover p-3 shadow-md space-y-2", style: panelStyle, children: [_jsx(Input, { placeholder: "https://example.com", value: url, onChange: (e) => setUrl(e.target.value), onKeyDown: (e) => {
|
|
90
|
+
if (e.key === "Enter") {
|
|
91
|
+
e.preventDefault();
|
|
92
|
+
applyLink();
|
|
93
|
+
}
|
|
94
|
+
}, autoFocus: true, className: "h-8 text-xs" }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { type: "button", size: "sm", onClick: applyLink, className: "h-7 text-xs", children: url.trim() ? "Apply" : "Remove" }), isActive && (_jsx(Button, { type: "button", size: "sm", variant: "ghost", onClick: removeLink, className: "h-7 text-xs", children: "Unlink" })), _jsx(Button, { type: "button", size: "sm", variant: "ghost", onClick: () => setOpen(false), className: "h-7 text-xs ml-auto", children: "Cancel" })] })] }), document.body)] }));
|
|
88
95
|
}
|
|
89
96
|
// ---------------------------------------------------------------------------
|
|
90
97
|
// Image popover
|
|
91
98
|
// ---------------------------------------------------------------------------
|
|
92
99
|
function ImagePopover({ editor, uploadImage, }) {
|
|
93
100
|
const [open, setOpen] = useState(false);
|
|
94
|
-
const [tab, setTab] = useState(
|
|
95
|
-
const [url, setUrl] = useState(
|
|
96
|
-
const [alt, setAlt] = useState(
|
|
101
|
+
const [tab, setTab] = useState("url");
|
|
102
|
+
const [url, setUrl] = useState("");
|
|
103
|
+
const [alt, setAlt] = useState("");
|
|
97
104
|
const [uploading, setUploading] = useState(false);
|
|
98
105
|
const [uploadError, setUploadError] = useState(null);
|
|
99
106
|
const [panelStyle, setPanelStyle] = useState({});
|
|
100
107
|
const wrapperRef = useRef(null);
|
|
101
108
|
const panelRef = useRef(null);
|
|
102
109
|
const fileRef = useRef(null);
|
|
103
|
-
function insertImage(imgUrl, imgAlt =
|
|
110
|
+
function insertImage(imgUrl, imgAlt = "") {
|
|
104
111
|
editor?.chain().focus().setImage({ src: imgUrl, alt: imgAlt }).run();
|
|
105
112
|
setOpen(false);
|
|
106
|
-
setUrl(
|
|
107
|
-
setAlt(
|
|
113
|
+
setUrl("");
|
|
114
|
+
setAlt("");
|
|
108
115
|
setUploadError(null);
|
|
109
116
|
}
|
|
110
117
|
async function handleFile(files) {
|
|
@@ -114,15 +121,15 @@ function ImagePopover({ editor, uploadImage, }) {
|
|
|
114
121
|
setUploadError(null);
|
|
115
122
|
try {
|
|
116
123
|
const uploaded = await uploadImage(files[0]);
|
|
117
|
-
insertImage(uploaded, files[0].name.replace(/\.[^.]+$/,
|
|
124
|
+
insertImage(uploaded, files[0].name.replace(/\.[^.]+$/, ""));
|
|
118
125
|
}
|
|
119
126
|
catch (err) {
|
|
120
|
-
setUploadError(err instanceof Error ? err.message :
|
|
127
|
+
setUploadError(err instanceof Error ? err.message : "Upload failed");
|
|
121
128
|
}
|
|
122
129
|
finally {
|
|
123
130
|
setUploading(false);
|
|
124
131
|
if (fileRef.current)
|
|
125
|
-
fileRef.current.value =
|
|
132
|
+
fileRef.current.value = "";
|
|
126
133
|
}
|
|
127
134
|
}
|
|
128
135
|
// Click-outside + Escape to close (no backdrop overlay that blocks clicks)
|
|
@@ -136,14 +143,14 @@ function ImagePopover({ editor, uploadImage, }) {
|
|
|
136
143
|
setOpen(false);
|
|
137
144
|
}
|
|
138
145
|
function onKeyDown(e) {
|
|
139
|
-
if (e.key ===
|
|
146
|
+
if (e.key === "Escape")
|
|
140
147
|
setOpen(false);
|
|
141
148
|
}
|
|
142
|
-
document.addEventListener(
|
|
143
|
-
document.addEventListener(
|
|
149
|
+
document.addEventListener("mousedown", onMouseDown, true);
|
|
150
|
+
document.addEventListener("keydown", onKeyDown, true);
|
|
144
151
|
return () => {
|
|
145
|
-
document.removeEventListener(
|
|
146
|
-
document.removeEventListener(
|
|
152
|
+
document.removeEventListener("mousedown", onMouseDown, true);
|
|
153
|
+
document.removeEventListener("keydown", onKeyDown, true);
|
|
147
154
|
};
|
|
148
155
|
}, [open]);
|
|
149
156
|
function handleToggle() {
|
|
@@ -156,10 +163,19 @@ function ImagePopover({ editor, uploadImage, }) {
|
|
|
156
163
|
setPanelStyle({ top: rect.bottom + 4, left: rect.left });
|
|
157
164
|
setOpen(true);
|
|
158
165
|
}
|
|
159
|
-
return (_jsxs("div", { ref: wrapperRef, children: [_jsx(ToolbarBtn, { onClick: handleToggle, title: "Image", children: _jsx(ImageIcon, { className: "size-3.5" }) }), open &&
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
166
|
+
return (_jsxs("div", { ref: wrapperRef, children: [_jsx(ToolbarBtn, { onClick: handleToggle, title: "Image", children: _jsx(ImageIcon, { className: "size-3.5" }) }), open &&
|
|
167
|
+
createPortal(_jsxs("div", { ref: panelRef, className: "fixed z-[9999] w-72 rounded-md border bg-popover shadow-md overflow-hidden", style: panelStyle, children: [_jsxs("div", { className: "flex border-b bg-muted/40", children: [_jsx("button", { type: "button", onClick: () => setTab("url"), className: cn("px-4 py-2 text-xs font-medium border-b-2 -mb-px transition-colors", tab === "url"
|
|
168
|
+
? "border-foreground text-foreground"
|
|
169
|
+
: "border-transparent text-muted-foreground hover:text-foreground"), children: "URL" }), uploadImage && (_jsx("button", { type: "button", onClick: () => setTab("upload"), className: cn("px-4 py-2 text-xs font-medium border-b-2 -mb-px transition-colors", tab === "upload"
|
|
170
|
+
? "border-foreground text-foreground"
|
|
171
|
+
: "border-transparent text-muted-foreground hover:text-foreground"), children: "Upload" }))] }), _jsxs("div", { className: "p-3 space-y-2", children: [tab === "url" && (_jsxs(_Fragment, { children: [_jsx(Input, { placeholder: "https://example.com/image.png", value: url, onChange: (e) => setUrl(e.target.value), onKeyDown: (e) => {
|
|
172
|
+
if (e.key === "Enter" && url.trim()) {
|
|
173
|
+
e.preventDefault();
|
|
174
|
+
insertImage(url, alt);
|
|
175
|
+
}
|
|
176
|
+
}, className: "h-8 text-xs", autoFocus: true }), _jsx(Input, { placeholder: "Alt text (optional)", value: alt, onChange: (e) => setAlt(e.target.value), className: "h-8 text-xs" }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Button, { type: "button", size: "sm", className: "h-7 text-xs", disabled: !url.trim(), onClick: () => insertImage(url, alt), children: "Insert" }), _jsx(Button, { type: "button", size: "sm", variant: "ghost", className: "h-7 text-xs", onClick: () => setOpen(false), children: "Cancel" })] })] })), tab === "upload" && uploadImage && (_jsxs(_Fragment, { children: [_jsx("input", { ref: fileRef, type: "file", accept: "image/*", className: "hidden", onChange: (e) => {
|
|
177
|
+
void handleFile(e.target.files);
|
|
178
|
+
} }), _jsxs("button", { type: "button", onClick: () => fileRef.current?.click(), disabled: uploading, className: "w-full flex flex-col items-center gap-2 rounded-md border border-dashed bg-muted/40 py-5 text-xs text-muted-foreground hover:bg-muted/60 disabled:opacity-50 transition-colors", children: [_jsx(Upload, { className: "size-5 opacity-60" }), uploading ? "Uploading…" : "Click to select an image"] }), uploadError && (_jsx("p", { className: "text-xs text-destructive", children: uploadError })), _jsx(Button, { type: "button", size: "sm", variant: "ghost", className: "h-7 text-xs w-full", onClick: () => setOpen(false), children: "Cancel" })] }))] })] }), document.body)] }));
|
|
163
179
|
}
|
|
164
180
|
// ---------------------------------------------------------------------------
|
|
165
181
|
// TiptapEditor
|
|
@@ -169,8 +185,12 @@ export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime,
|
|
|
169
185
|
// Refs so the useEditor closure always has the latest callbacks
|
|
170
186
|
const onMetaRef = useRef(onMeta);
|
|
171
187
|
const calculateReadTimeRef = useRef(calculateReadTime);
|
|
172
|
-
useEffect(() => {
|
|
173
|
-
|
|
188
|
+
useEffect(() => {
|
|
189
|
+
onMetaRef.current = onMeta;
|
|
190
|
+
}, [onMeta]);
|
|
191
|
+
useEffect(() => {
|
|
192
|
+
calculateReadTimeRef.current = calculateReadTime;
|
|
193
|
+
}, [calculateReadTime]);
|
|
174
194
|
const editor = useEditor({
|
|
175
195
|
extensions: [
|
|
176
196
|
StarterKit,
|
|
@@ -181,7 +201,7 @@ export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime,
|
|
|
181
201
|
TiptapLink.configure({
|
|
182
202
|
openOnClick: false,
|
|
183
203
|
autolink: true,
|
|
184
|
-
HTMLAttributes: { rel:
|
|
204
|
+
HTMLAttributes: { rel: "noopener noreferrer", target: "_blank" },
|
|
185
205
|
}),
|
|
186
206
|
TiptapImage.configure({
|
|
187
207
|
inline: false,
|
|
@@ -194,7 +214,10 @@ export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime,
|
|
|
194
214
|
prevValue.current = md;
|
|
195
215
|
onChange(md);
|
|
196
216
|
const wc = e.storage.characterCount.words();
|
|
197
|
-
onMetaRef.current?.({
|
|
217
|
+
onMetaRef.current?.({
|
|
218
|
+
wordCount: wc,
|
|
219
|
+
readTime: (calculateReadTimeRef.current ?? defaultReadTime)(wc),
|
|
220
|
+
});
|
|
198
221
|
},
|
|
199
222
|
});
|
|
200
223
|
// Load initial markdown content after editor is ready
|
|
@@ -204,7 +227,10 @@ export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime,
|
|
|
204
227
|
editor.commands.setContent(value, false);
|
|
205
228
|
prevValue.current = value;
|
|
206
229
|
const wc = editor.storage.characterCount?.words() ?? 0;
|
|
207
|
-
onMetaRef.current?.({
|
|
230
|
+
onMetaRef.current?.({
|
|
231
|
+
wordCount: wc,
|
|
232
|
+
readTime: (calculateReadTimeRef.current ?? defaultReadTime)(wc),
|
|
233
|
+
});
|
|
208
234
|
// Only run on first editor ready
|
|
209
235
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
210
236
|
}, [editor]);
|
|
@@ -224,7 +250,7 @@ export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime,
|
|
|
224
250
|
const files = e.dataTransfer?.files;
|
|
225
251
|
if (!files?.length)
|
|
226
252
|
return;
|
|
227
|
-
const images = Array.from(files).filter((f) => f.type.startsWith(
|
|
253
|
+
const images = Array.from(files).filter((f) => f.type.startsWith("image/"));
|
|
228
254
|
if (!images.length)
|
|
229
255
|
return;
|
|
230
256
|
e.preventDefault();
|
|
@@ -232,7 +258,11 @@ export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime,
|
|
|
232
258
|
for (const file of images) {
|
|
233
259
|
try {
|
|
234
260
|
const url = await uploadImage(file);
|
|
235
|
-
editor
|
|
261
|
+
editor
|
|
262
|
+
?.chain()
|
|
263
|
+
.focus()
|
|
264
|
+
.setImage({ src: url, alt: file.name.replace(/\.[^.]+$/, "") })
|
|
265
|
+
.run();
|
|
236
266
|
}
|
|
237
267
|
catch {
|
|
238
268
|
// ignore individual failures
|
|
@@ -243,9 +273,11 @@ export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime,
|
|
|
243
273
|
if (!editor)
|
|
244
274
|
return;
|
|
245
275
|
const dom = editor.view.dom;
|
|
246
|
-
const listener = (e) => {
|
|
247
|
-
|
|
248
|
-
|
|
276
|
+
const listener = (e) => {
|
|
277
|
+
void handleDrop(e);
|
|
278
|
+
};
|
|
279
|
+
dom.addEventListener("drop", listener);
|
|
280
|
+
return () => dom.removeEventListener("drop", listener);
|
|
249
281
|
}, [editor, handleDrop]);
|
|
250
282
|
// Clipboard paste for image files
|
|
251
283
|
useEffect(() => {
|
|
@@ -257,26 +289,30 @@ export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime,
|
|
|
257
289
|
const files = ce.clipboardData?.files;
|
|
258
290
|
if (!files?.length)
|
|
259
291
|
return;
|
|
260
|
-
const images = Array.from(files).filter((f) => f.type.startsWith(
|
|
292
|
+
const images = Array.from(files).filter((f) => f.type.startsWith("image/"));
|
|
261
293
|
if (!images.length)
|
|
262
294
|
return;
|
|
263
295
|
e.preventDefault();
|
|
264
296
|
for (const file of images) {
|
|
265
297
|
try {
|
|
266
298
|
const url = await uploadImage(file);
|
|
267
|
-
editor
|
|
299
|
+
editor
|
|
300
|
+
.chain()
|
|
301
|
+
.focus()
|
|
302
|
+
.setImage({ src: url, alt: file.name.replace(/\.[^.]+$/, "") })
|
|
303
|
+
.run();
|
|
268
304
|
}
|
|
269
305
|
catch {
|
|
270
306
|
// ignore
|
|
271
307
|
}
|
|
272
308
|
}
|
|
273
309
|
};
|
|
274
|
-
dom.addEventListener(
|
|
275
|
-
return () => dom.removeEventListener(
|
|
310
|
+
dom.addEventListener("paste", listener);
|
|
311
|
+
return () => dom.removeEventListener("paste", listener);
|
|
276
312
|
}, [editor, uploadImage]);
|
|
277
313
|
const wc = editor?.storage.characterCount?.words() ?? 0;
|
|
278
314
|
if (!editor)
|
|
279
315
|
return null;
|
|
280
|
-
return (_jsxs("div", { className: cn(
|
|
316
|
+
return (_jsxs("div", { className: cn("rounded-md border overflow-hidden", className), children: [_jsxs("div", { className: "flex items-center gap-0.5 overflow-x-auto scrollbar-none border-b bg-muted/40 px-2 py-1.5 flex-nowrap", children: [_jsx(ToolbarBtn, { active: editor.isActive("bold"), onClick: () => editor.chain().focus().toggleBold().run(), title: "Bold (\u2318B)", children: _jsx(Bold, { className: "size-3.5" }) }), _jsx(ToolbarBtn, { active: editor.isActive("italic"), onClick: () => editor.chain().focus().toggleItalic().run(), title: "Italic (\u2318I)", children: _jsx(Italic, { className: "size-3.5" }) }), _jsx(ToolbarBtn, { active: editor.isActive("strike"), onClick: () => editor.chain().focus().toggleStrike().run(), title: "Strikethrough", children: _jsx(Strikethrough, { className: "size-3.5" }) }), _jsx(ToolbarBtn, { active: editor.isActive("code"), onClick: () => editor.chain().focus().toggleCode().run(), title: "Inline code", children: _jsx(Code, { className: "size-3.5" }) }), _jsx(LinkPopover, { editor: editor }), _jsx(ToolbarSep, {}), _jsx(ToolbarBtn, { active: editor.isActive("heading", { level: 1 }), onClick: () => editor.chain().focus().toggleHeading({ level: 1 }).run(), title: "Heading 1", children: _jsx(Heading1, { className: "size-3.5" }) }), _jsx(ToolbarBtn, { active: editor.isActive("heading", { level: 2 }), onClick: () => editor.chain().focus().toggleHeading({ level: 2 }).run(), title: "Heading 2", children: _jsx(Heading2, { className: "size-3.5" }) }), _jsx(ToolbarBtn, { active: editor.isActive("heading", { level: 3 }), onClick: () => editor.chain().focus().toggleHeading({ level: 3 }).run(), title: "Heading 3", children: _jsx(Heading3, { className: "size-3.5" }) }), _jsx(ToolbarSep, {}), _jsx(ToolbarBtn, { active: editor.isActive("bulletList"), onClick: () => editor.chain().focus().toggleBulletList().run(), title: "Bullet list", children: _jsx(List, { className: "size-3.5" }) }), _jsx(ToolbarBtn, { active: editor.isActive("orderedList"), onClick: () => editor.chain().focus().toggleOrderedList().run(), title: "Ordered list", children: _jsx(ListOrdered, { className: "size-3.5" }) }), _jsx(ToolbarBtn, { active: editor.isActive("blockquote"), onClick: () => editor.chain().focus().toggleBlockquote().run(), title: "Blockquote", children: _jsx(Quote, { className: "size-3.5" }) }), _jsx(ToolbarBtn, { active: editor.isActive("codeBlock"), onClick: () => editor.chain().focus().toggleCodeBlock().run(), title: "Code block", children: _jsx(Code2, { className: "size-3.5" }) }), _jsx(ToolbarSep, {}), _jsx(ToolbarBtn, { onClick: () => editor.chain().focus().setHorizontalRule().run(), title: "Horizontal rule", children: _jsx(Minus, { className: "size-3.5" }) }), _jsx(ImagePopover, { editor: editor, uploadImage: uploadImage })] }), _jsx(EditorContent, { editor: editor, className: cn("prose prose-sm dark:prose-invert max-w-none px-4 py-3 min-h-[200px] bg-background", "[&_.ProseMirror]:outline-none [&_.ProseMirror]:min-h-[200px]", "[&_.ProseMirror_p.is-editor-empty:first-child::before]:content-[attr(data-placeholder)]", "[&_.ProseMirror_p.is-editor-empty:first-child::before]:text-muted-foreground", "[&_.ProseMirror_p.is-editor-empty:first-child::before]:pointer-events-none", "[&_.ProseMirror_p.is-editor-empty:first-child::before]:float-left", "[&_.ProseMirror_p.is-editor-empty:first-child::before]:h-0") }), _jsx("div", { className: "border-t bg-muted/20 px-4 py-1.5 flex justify-end", children: _jsxs("p", { className: "text-xs text-muted-foreground", children: [wc, " ", wc === 1 ? "word" : "words", calculateReadTime && wc > 0 && ` · ${calculateReadTime(wc)}`] }) })] }));
|
|
281
317
|
}
|
|
282
318
|
//# sourceMappingURL=TiptapEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TiptapEditor.js","sourceRoot":"","sources":["../../src/components/TiptapEditor.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TiptapEditor.js","sourceRoot":"","sources":["../../src/components/TiptapEditor.tsx"],"names":[],"mappings":"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"}
|