@airdraft/react-ui 0.1.19 → 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 +20 -0
- package/dist/components/RawEditor.d.ts +2 -2
- package/dist/components/RawEditor.d.ts.map +1 -1
- package/dist/components/RawEditor.js +37 -20
- package/dist/components/RawEditor.js.map +1 -1
- package/dist/components/RichTextEditor.d.ts +11 -3
- package/dist/components/RichTextEditor.d.ts.map +1 -1
- package/dist/components/RichTextEditor.js +4 -9
- package/dist/components/RichTextEditor.js.map +1 -1
- package/dist/components/TiptapEditor.d.ts +2 -2
- package/dist/components/TiptapEditor.d.ts.map +1 -1
- package/dist/components/TiptapEditor.js +106 -60
- package/dist/components/TiptapEditor.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,26 @@
|
|
|
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
|
+
|
|
17
|
+
### [0.1.20](https://github.com/aevrHQ/airdraft/compare/react-ui@v0.1.19...react-ui@v0.1.20) (2026-05-24)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
### Features
|
|
21
|
+
|
|
22
|
+
* add content utilities for word count and read time estimation ([6a78614](https://github.com/aevrHQ/airdraft/commit/6a786148ee3f9ac1b0a83d532fed5d947fd01d06))
|
|
23
|
+
* add live metadata reporting with word count and read time to editors ([9c98201](https://github.com/aevrHQ/airdraft/commit/9c98201d2f099ece0819737f68c259a96a2bd0fe))
|
|
24
|
+
|
|
5
25
|
### [0.1.19](https://github.com/aevrHQ/airdraft/compare/react-ui@v0.1.17...react-ui@v0.1.19) (2026-05-24)
|
|
6
26
|
|
|
7
27
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { EditorPluginProps } from
|
|
2
|
-
export declare function RawEditor({ value, onChange, calculateReadTime, 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,43 +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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const [tab, setTab] = useState('write');
|
|
10
|
-
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("");
|
|
11
9
|
const textareaRef = useRef(null);
|
|
12
|
-
const wc =
|
|
10
|
+
const wc = countWords(value);
|
|
11
|
+
// Report initial meta on mount
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
onMeta?.({
|
|
14
|
+
wordCount: wc,
|
|
15
|
+
readTime: (calculateReadTime ?? defaultReadTime)(wc),
|
|
16
|
+
});
|
|
17
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
18
|
+
}, []);
|
|
13
19
|
const autoResize = useCallback(() => {
|
|
14
20
|
const el = textareaRef.current;
|
|
15
21
|
if (!el)
|
|
16
22
|
return;
|
|
17
|
-
el.style.height =
|
|
23
|
+
el.style.height = "auto";
|
|
18
24
|
el.style.height = `${el.scrollHeight}px`;
|
|
19
25
|
}, []);
|
|
20
26
|
useEffect(() => {
|
|
21
|
-
if (tab ===
|
|
27
|
+
if (tab === "write")
|
|
22
28
|
autoResize();
|
|
23
29
|
}, [value, tab, autoResize]);
|
|
24
30
|
useEffect(() => {
|
|
25
|
-
if (tab !==
|
|
31
|
+
if (tab !== "preview")
|
|
26
32
|
return;
|
|
27
33
|
let cancelled = false;
|
|
28
|
-
void import(
|
|
34
|
+
void import("marked").then(({ marked }) => {
|
|
29
35
|
if (!cancelled)
|
|
30
36
|
setPreviewHtml(marked(value));
|
|
31
37
|
});
|
|
32
|
-
return () => {
|
|
38
|
+
return () => {
|
|
39
|
+
cancelled = true;
|
|
40
|
+
};
|
|
33
41
|
}, [tab, value]);
|
|
34
|
-
return (_jsxs("div", { className: cn(
|
|
35
|
-
?
|
|
36
|
-
:
|
|
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) => {
|
|
45
|
+
onChange(e.target.value);
|
|
46
|
+
const wc = countWords(e.target.value);
|
|
47
|
+
onMeta?.({
|
|
48
|
+
wordCount: wc,
|
|
49
|
+
readTime: (calculateReadTime ?? defaultReadTime)(wc),
|
|
50
|
+
});
|
|
51
|
+
autoResize();
|
|
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",
|
|
37
53
|
// safe: admin-only editor, user is authoring their own content
|
|
38
54
|
// eslint-disable-next-line react/no-danger
|
|
39
55
|
dangerouslySetInnerHTML: {
|
|
40
|
-
__html: previewHtml ||
|
|
41
|
-
|
|
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)}`] }) })] }));
|
|
42
59
|
}
|
|
43
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,13 +1,19 @@
|
|
|
1
|
+
export { countWords, defaultReadTime } from '@airdraft/core';
|
|
2
|
+
export interface EditorMeta {
|
|
3
|
+
wordCount: number;
|
|
4
|
+
/** Estimated read time. Uses `calculateReadTime` if provided, otherwise `defaultReadTime` (200 wpm). */
|
|
5
|
+
readTime: string;
|
|
6
|
+
}
|
|
1
7
|
export interface EditorPluginProps {
|
|
2
8
|
value: string;
|
|
3
9
|
onChange: (value: string) => void;
|
|
4
10
|
uploadImage?: (file: File) => Promise<string>;
|
|
5
11
|
calculateReadTime?: (wordCount: number) => string;
|
|
12
|
+
/** Called on every content change with live word count + read time. */
|
|
13
|
+
onMeta?: (meta: EditorMeta) => void;
|
|
6
14
|
className?: string;
|
|
7
15
|
}
|
|
8
16
|
export type EditorPlugin = React.ComponentType<EditorPluginProps>;
|
|
9
|
-
/** Default read-time estimator: 200 wpm average. */
|
|
10
|
-
export declare function defaultReadTime(wordCount: number): string;
|
|
11
17
|
export interface RichTextEditorProps {
|
|
12
18
|
name: string;
|
|
13
19
|
label?: string;
|
|
@@ -16,10 +22,12 @@ export interface RichTextEditorProps {
|
|
|
16
22
|
onChange: (name: string, value: string) => void;
|
|
17
23
|
uploadImage?: (file: File) => Promise<string>;
|
|
18
24
|
calculateReadTime?: (wordCount: number) => string;
|
|
25
|
+
/** Called on every content change with live metadata. */
|
|
26
|
+
onMeta?: (meta: EditorMeta) => void;
|
|
19
27
|
/** Override the rich editor plugin (default: TiptapEditor). */
|
|
20
28
|
richPlugin?: EditorPlugin;
|
|
21
29
|
/** Override the raw editor plugin (default: RawEditor). */
|
|
22
30
|
rawPlugin?: EditorPlugin;
|
|
23
31
|
}
|
|
24
|
-
export declare function RichTextEditor({ name, value, onChange, uploadImage, calculateReadTime, richPlugin: RichPlugin, rawPlugin: RawPlugin, }: RichTextEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
32
|
+
export declare function RichTextEditor({ name, value, onChange, uploadImage, calculateReadTime, onMeta, richPlugin: RichPlugin, rawPlugin: RawPlugin, }: RichTextEditorProps): import("react/jsx-runtime").JSX.Element;
|
|
25
33
|
//# sourceMappingURL=RichTextEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextEditor.d.ts","sourceRoot":"","sources":["../../src/components/RichTextEditor.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RichTextEditor.d.ts","sourceRoot":"","sources":["../../src/components/RichTextEditor.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAM5D,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,wGAAwG;IACxG,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7C,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAA;IACjD,uEAAuE;IACvE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAA;IACnC,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAA;AASjE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC/C,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;IAC7C,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAA;IACjD,yDAAyD;IACzD,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAA;IACnC,+DAA+D;IAC/D,UAAU,CAAC,EAAE,YAAY,CAAA;IACzB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,YAAY,CAAA;CACzB;AAMD,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,UAAU,EAAE,UAAyB,EACrC,SAAS,EAAE,SAAqB,GACjC,EAAE,mBAAmB,2CA2CrB"}
|
|
@@ -4,22 +4,17 @@ import { AlertTriangle } from 'lucide-react';
|
|
|
4
4
|
import { useEditorMode } from '../lib/useEditorMode.js';
|
|
5
5
|
import { RawEditor } from './RawEditor.js';
|
|
6
6
|
import { TiptapEditor } from './TiptapEditor.js';
|
|
7
|
-
//
|
|
8
|
-
|
|
9
|
-
// ---------------------------------------------------------------------------
|
|
10
|
-
/** Default read-time estimator: 200 wpm average. */
|
|
11
|
-
export function defaultReadTime(wordCount) {
|
|
12
|
-
return `${Math.ceil(wordCount / 200)} min read`;
|
|
13
|
-
}
|
|
7
|
+
// Re-export from core so consumers can import from either package
|
|
8
|
+
export { countWords, defaultReadTime } from '@airdraft/core';
|
|
14
9
|
/** Detect MDX component syntax (e.g. <MyComponent />). */
|
|
15
10
|
const MDX_COMPONENT_RE = /<[A-Z][A-Za-z0-9]*[\s/>]/;
|
|
16
11
|
// ---------------------------------------------------------------------------
|
|
17
12
|
// Component
|
|
18
13
|
// ---------------------------------------------------------------------------
|
|
19
|
-
export function RichTextEditor({ name, value, onChange, uploadImage, calculateReadTime, richPlugin: RichPlugin = TiptapEditor, rawPlugin: RawPlugin = RawEditor, }) {
|
|
14
|
+
export function RichTextEditor({ name, value, onChange, uploadImage, calculateReadTime, onMeta, richPlugin: RichPlugin = TiptapEditor, rawPlugin: RawPlugin = RawEditor, }) {
|
|
20
15
|
const { mode, setMode } = useEditorMode();
|
|
21
16
|
const hasMdx = mode === 'rich' && MDX_COMPONENT_RE.test(value);
|
|
22
17
|
const handleChange = (v) => onChange(name, v);
|
|
23
|
-
return (_jsxs("div", { className: "space-y-1.5", children: [hasMdx && (_jsxs("div", { className: "flex items-start gap-2 rounded-md border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-400", children: [_jsx(AlertTriangle, { className: "size-3.5 mt-0.5 shrink-0" }), _jsxs("span", { children: ["This field contains MDX components that can't be rendered in Rich mode.", ' ', _jsx("button", { type: "button", className: "underline font-medium", onClick: () => setMode('raw'), children: "Switch to Raw" }), ' ', "to edit them."] })] })), mode === 'rich' ? (_jsx(RichPlugin, { value: value, onChange: handleChange, uploadImage: uploadImage, calculateReadTime: calculateReadTime })) : (_jsx(RawPlugin, { value: value, onChange: handleChange, calculateReadTime: calculateReadTime }))] }));
|
|
18
|
+
return (_jsxs("div", { className: "space-y-1.5", children: [hasMdx && (_jsxs("div", { className: "flex items-start gap-2 rounded-md border border-amber-500/40 bg-amber-500/10 px-3 py-2 text-xs text-amber-700 dark:text-amber-400", children: [_jsx(AlertTriangle, { className: "size-3.5 mt-0.5 shrink-0" }), _jsxs("span", { children: ["This field contains MDX components that can't be rendered in Rich mode.", ' ', _jsx("button", { type: "button", className: "underline font-medium", onClick: () => setMode('raw'), children: "Switch to Raw" }), ' ', "to edit them."] })] })), mode === 'rich' ? (_jsx(RichPlugin, { value: value, onChange: handleChange, uploadImage: uploadImage, calculateReadTime: calculateReadTime, onMeta: onMeta })) : (_jsx(RawPlugin, { value: value, onChange: handleChange, calculateReadTime: calculateReadTime, onMeta: onMeta }))] }));
|
|
24
19
|
}
|
|
25
20
|
//# sourceMappingURL=RichTextEditor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextEditor.js","sourceRoot":"","sources":["../../src/components/RichTextEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"RichTextEditor.js","sourceRoot":"","sources":["../../src/components/RichTextEditor.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAEhD,kEAAkE;AAClE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAwB5D,0DAA0D;AAC1D,MAAM,gBAAgB,GAAG,0BAA0B,CAAA;AAsBnD,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,UAAU,cAAc,CAAC,EAC7B,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,WAAW,EACX,iBAAiB,EACjB,MAAM,EACN,UAAU,EAAE,UAAU,GAAG,YAAY,EACrC,SAAS,EAAE,SAAS,GAAG,SAAS,GACZ;IACpB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAA;IACzC,MAAM,MAAM,GAAG,IAAI,KAAK,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAE9D,MAAM,YAAY,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAErD,OAAO,CACL,eAAK,SAAS,EAAC,aAAa,aACzB,MAAM,IAAI,CACT,eAAK,SAAS,EAAC,mIAAmI,aAChJ,KAAC,aAAa,IAAC,SAAS,EAAC,0BAA0B,GAAG,EACtD,sGAC0E,GAAG,EAC3E,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,uBAAuB,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,8BAGtB,EAAC,GAAG,qBAER,IACH,CACP,EAEA,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CACjB,KAAC,UAAU,IACT,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,EACtB,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,GACd,CACH,CAAC,CAAC,CAAC,CACF,KAAC,SAAS,IACR,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,YAAY,EACtB,iBAAiB,EAAE,iBAAiB,EACpC,MAAM,EAAE,MAAM,GACd,CACH,IACG,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type { EditorPluginProps } from
|
|
2
|
-
export declare function TiptapEditor({ value, onChange, uploadImage, calculateReadTime, className, }: EditorPluginProps): import("react/jsx-runtime").JSX.Element | null;
|
|
1
|
+
import type { EditorPluginProps } from "./RichTextEditor.js";
|
|
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,24 +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 {
|
|
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";
|
|
15
16
|
// ---------------------------------------------------------------------------
|
|
16
17
|
// Toolbar primitives
|
|
17
18
|
// ---------------------------------------------------------------------------
|
|
18
19
|
function ToolbarBtn({ onClick, active, disabled, title, children, }) {
|
|
19
|
-
return (_jsx("button", { type: "button", title: title, disabled: disabled, onMouseDown: (e) => e.preventDefault(), onClick: onClick, className: cn(
|
|
20
|
-
?
|
|
21
|
-
:
|
|
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 }));
|
|
22
23
|
}
|
|
23
24
|
function ToolbarSep() {
|
|
24
25
|
return _jsx("span", { className: "mx-0.5 h-5 w-px bg-border shrink-0" });
|
|
@@ -28,11 +29,11 @@ function ToolbarSep() {
|
|
|
28
29
|
// ---------------------------------------------------------------------------
|
|
29
30
|
function LinkPopover({ editor }) {
|
|
30
31
|
const [open, setOpen] = useState(false);
|
|
31
|
-
const [url, setUrl] = useState(
|
|
32
|
+
const [url, setUrl] = useState("");
|
|
32
33
|
const [panelStyle, setPanelStyle] = useState({});
|
|
33
34
|
const wrapperRef = useRef(null);
|
|
34
35
|
const panelRef = useRef(null);
|
|
35
|
-
const isActive = editor?.isActive(
|
|
36
|
+
const isActive = editor?.isActive("link") ?? false;
|
|
36
37
|
// Click-outside + Escape to close (no backdrop overlay that blocks clicks)
|
|
37
38
|
useEffect(() => {
|
|
38
39
|
if (!open)
|
|
@@ -44,14 +45,14 @@ function LinkPopover({ editor }) {
|
|
|
44
45
|
setOpen(false);
|
|
45
46
|
}
|
|
46
47
|
function onKeyDown(e) {
|
|
47
|
-
if (e.key ===
|
|
48
|
+
if (e.key === "Escape")
|
|
48
49
|
setOpen(false);
|
|
49
50
|
}
|
|
50
|
-
document.addEventListener(
|
|
51
|
-
document.addEventListener(
|
|
51
|
+
document.addEventListener("mousedown", onMouseDown, true);
|
|
52
|
+
document.addEventListener("keydown", onKeyDown, true);
|
|
52
53
|
return () => {
|
|
53
|
-
document.removeEventListener(
|
|
54
|
-
document.removeEventListener(
|
|
54
|
+
document.removeEventListener("mousedown", onMouseDown, true);
|
|
55
|
+
document.removeEventListener("keydown", onKeyDown, true);
|
|
55
56
|
};
|
|
56
57
|
}, [open]);
|
|
57
58
|
function handleToggle() {
|
|
@@ -62,7 +63,7 @@ function LinkPopover({ editor }) {
|
|
|
62
63
|
const rect = wrapperRef.current?.getBoundingClientRect();
|
|
63
64
|
if (rect)
|
|
64
65
|
setPanelStyle({ top: rect.bottom + 4, left: rect.left });
|
|
65
|
-
const currentUrl = editor?.getAttributes(
|
|
66
|
+
const currentUrl = editor?.getAttributes("link").href ?? "";
|
|
66
67
|
setUrl(currentUrl);
|
|
67
68
|
setOpen(true);
|
|
68
69
|
}
|
|
@@ -71,39 +72,46 @@ function LinkPopover({ editor }) {
|
|
|
71
72
|
editor?.chain().focus().unsetLink().run();
|
|
72
73
|
}
|
|
73
74
|
else {
|
|
74
|
-
editor
|
|
75
|
+
editor
|
|
76
|
+
?.chain()
|
|
77
|
+
.focus()
|
|
78
|
+
.setLink({ href: url.trim(), target: "_blank" })
|
|
79
|
+
.run();
|
|
75
80
|
}
|
|
76
81
|
setOpen(false);
|
|
77
|
-
setUrl(
|
|
82
|
+
setUrl("");
|
|
78
83
|
}
|
|
79
84
|
function removeLink() {
|
|
80
85
|
editor?.chain().focus().unsetLink().run();
|
|
81
86
|
setOpen(false);
|
|
82
87
|
}
|
|
83
|
-
return (_jsxs("div", { ref: wrapperRef, children: [_jsx(ToolbarBtn, { onClick: handleToggle, active: isActive, title: "Link", children: _jsx(Link2, { className: "size-3.5" }) }), open &&
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
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)] }));
|
|
87
95
|
}
|
|
88
96
|
// ---------------------------------------------------------------------------
|
|
89
97
|
// Image popover
|
|
90
98
|
// ---------------------------------------------------------------------------
|
|
91
99
|
function ImagePopover({ editor, uploadImage, }) {
|
|
92
100
|
const [open, setOpen] = useState(false);
|
|
93
|
-
const [tab, setTab] = useState(
|
|
94
|
-
const [url, setUrl] = useState(
|
|
95
|
-
const [alt, setAlt] = useState(
|
|
101
|
+
const [tab, setTab] = useState("url");
|
|
102
|
+
const [url, setUrl] = useState("");
|
|
103
|
+
const [alt, setAlt] = useState("");
|
|
96
104
|
const [uploading, setUploading] = useState(false);
|
|
97
105
|
const [uploadError, setUploadError] = useState(null);
|
|
98
106
|
const [panelStyle, setPanelStyle] = useState({});
|
|
99
107
|
const wrapperRef = useRef(null);
|
|
100
108
|
const panelRef = useRef(null);
|
|
101
109
|
const fileRef = useRef(null);
|
|
102
|
-
function insertImage(imgUrl, imgAlt =
|
|
110
|
+
function insertImage(imgUrl, imgAlt = "") {
|
|
103
111
|
editor?.chain().focus().setImage({ src: imgUrl, alt: imgAlt }).run();
|
|
104
112
|
setOpen(false);
|
|
105
|
-
setUrl(
|
|
106
|
-
setAlt(
|
|
113
|
+
setUrl("");
|
|
114
|
+
setAlt("");
|
|
107
115
|
setUploadError(null);
|
|
108
116
|
}
|
|
109
117
|
async function handleFile(files) {
|
|
@@ -113,15 +121,15 @@ function ImagePopover({ editor, uploadImage, }) {
|
|
|
113
121
|
setUploadError(null);
|
|
114
122
|
try {
|
|
115
123
|
const uploaded = await uploadImage(files[0]);
|
|
116
|
-
insertImage(uploaded, files[0].name.replace(/\.[^.]+$/,
|
|
124
|
+
insertImage(uploaded, files[0].name.replace(/\.[^.]+$/, ""));
|
|
117
125
|
}
|
|
118
126
|
catch (err) {
|
|
119
|
-
setUploadError(err instanceof Error ? err.message :
|
|
127
|
+
setUploadError(err instanceof Error ? err.message : "Upload failed");
|
|
120
128
|
}
|
|
121
129
|
finally {
|
|
122
130
|
setUploading(false);
|
|
123
131
|
if (fileRef.current)
|
|
124
|
-
fileRef.current.value =
|
|
132
|
+
fileRef.current.value = "";
|
|
125
133
|
}
|
|
126
134
|
}
|
|
127
135
|
// Click-outside + Escape to close (no backdrop overlay that blocks clicks)
|
|
@@ -135,14 +143,14 @@ function ImagePopover({ editor, uploadImage, }) {
|
|
|
135
143
|
setOpen(false);
|
|
136
144
|
}
|
|
137
145
|
function onKeyDown(e) {
|
|
138
|
-
if (e.key ===
|
|
146
|
+
if (e.key === "Escape")
|
|
139
147
|
setOpen(false);
|
|
140
148
|
}
|
|
141
|
-
document.addEventListener(
|
|
142
|
-
document.addEventListener(
|
|
149
|
+
document.addEventListener("mousedown", onMouseDown, true);
|
|
150
|
+
document.addEventListener("keydown", onKeyDown, true);
|
|
143
151
|
return () => {
|
|
144
|
-
document.removeEventListener(
|
|
145
|
-
document.removeEventListener(
|
|
152
|
+
document.removeEventListener("mousedown", onMouseDown, true);
|
|
153
|
+
document.removeEventListener("keydown", onKeyDown, true);
|
|
146
154
|
};
|
|
147
155
|
}, [open]);
|
|
148
156
|
function handleToggle() {
|
|
@@ -155,16 +163,34 @@ function ImagePopover({ editor, uploadImage, }) {
|
|
|
155
163
|
setPanelStyle({ top: rect.bottom + 4, left: rect.left });
|
|
156
164
|
setOpen(true);
|
|
157
165
|
}
|
|
158
|
-
return (_jsxs("div", { ref: wrapperRef, children: [_jsx(ToolbarBtn, { onClick: handleToggle, title: "Image", children: _jsx(ImageIcon, { className: "size-3.5" }) }), open &&
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
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)] }));
|
|
162
179
|
}
|
|
163
180
|
// ---------------------------------------------------------------------------
|
|
164
181
|
// TiptapEditor
|
|
165
182
|
// ---------------------------------------------------------------------------
|
|
166
|
-
export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime, className, }) {
|
|
183
|
+
export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime, onMeta, className, }) {
|
|
167
184
|
const prevValue = useRef(value);
|
|
185
|
+
// Refs so the useEditor closure always has the latest callbacks
|
|
186
|
+
const onMetaRef = useRef(onMeta);
|
|
187
|
+
const calculateReadTimeRef = useRef(calculateReadTime);
|
|
188
|
+
useEffect(() => {
|
|
189
|
+
onMetaRef.current = onMeta;
|
|
190
|
+
}, [onMeta]);
|
|
191
|
+
useEffect(() => {
|
|
192
|
+
calculateReadTimeRef.current = calculateReadTime;
|
|
193
|
+
}, [calculateReadTime]);
|
|
168
194
|
const editor = useEditor({
|
|
169
195
|
extensions: [
|
|
170
196
|
StarterKit,
|
|
@@ -175,7 +201,7 @@ export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime,
|
|
|
175
201
|
TiptapLink.configure({
|
|
176
202
|
openOnClick: false,
|
|
177
203
|
autolink: true,
|
|
178
|
-
HTMLAttributes: { rel:
|
|
204
|
+
HTMLAttributes: { rel: "noopener noreferrer", target: "_blank" },
|
|
179
205
|
}),
|
|
180
206
|
TiptapImage.configure({
|
|
181
207
|
inline: false,
|
|
@@ -187,6 +213,11 @@ export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime,
|
|
|
187
213
|
const md = e.storage.markdown.getMarkdown();
|
|
188
214
|
prevValue.current = md;
|
|
189
215
|
onChange(md);
|
|
216
|
+
const wc = e.storage.characterCount.words();
|
|
217
|
+
onMetaRef.current?.({
|
|
218
|
+
wordCount: wc,
|
|
219
|
+
readTime: (calculateReadTimeRef.current ?? defaultReadTime)(wc),
|
|
220
|
+
});
|
|
190
221
|
},
|
|
191
222
|
});
|
|
192
223
|
// Load initial markdown content after editor is ready
|
|
@@ -195,6 +226,11 @@ export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime,
|
|
|
195
226
|
return;
|
|
196
227
|
editor.commands.setContent(value, false);
|
|
197
228
|
prevValue.current = value;
|
|
229
|
+
const wc = editor.storage.characterCount?.words() ?? 0;
|
|
230
|
+
onMetaRef.current?.({
|
|
231
|
+
wordCount: wc,
|
|
232
|
+
readTime: (calculateReadTimeRef.current ?? defaultReadTime)(wc),
|
|
233
|
+
});
|
|
198
234
|
// Only run on first editor ready
|
|
199
235
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
200
236
|
}, [editor]);
|
|
@@ -214,7 +250,7 @@ export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime,
|
|
|
214
250
|
const files = e.dataTransfer?.files;
|
|
215
251
|
if (!files?.length)
|
|
216
252
|
return;
|
|
217
|
-
const images = Array.from(files).filter((f) => f.type.startsWith(
|
|
253
|
+
const images = Array.from(files).filter((f) => f.type.startsWith("image/"));
|
|
218
254
|
if (!images.length)
|
|
219
255
|
return;
|
|
220
256
|
e.preventDefault();
|
|
@@ -222,7 +258,11 @@ export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime,
|
|
|
222
258
|
for (const file of images) {
|
|
223
259
|
try {
|
|
224
260
|
const url = await uploadImage(file);
|
|
225
|
-
editor
|
|
261
|
+
editor
|
|
262
|
+
?.chain()
|
|
263
|
+
.focus()
|
|
264
|
+
.setImage({ src: url, alt: file.name.replace(/\.[^.]+$/, "") })
|
|
265
|
+
.run();
|
|
226
266
|
}
|
|
227
267
|
catch {
|
|
228
268
|
// ignore individual failures
|
|
@@ -233,9 +273,11 @@ export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime,
|
|
|
233
273
|
if (!editor)
|
|
234
274
|
return;
|
|
235
275
|
const dom = editor.view.dom;
|
|
236
|
-
const listener = (e) => {
|
|
237
|
-
|
|
238
|
-
|
|
276
|
+
const listener = (e) => {
|
|
277
|
+
void handleDrop(e);
|
|
278
|
+
};
|
|
279
|
+
dom.addEventListener("drop", listener);
|
|
280
|
+
return () => dom.removeEventListener("drop", listener);
|
|
239
281
|
}, [editor, handleDrop]);
|
|
240
282
|
// Clipboard paste for image files
|
|
241
283
|
useEffect(() => {
|
|
@@ -247,26 +289,30 @@ export function TiptapEditor({ value, onChange, uploadImage, calculateReadTime,
|
|
|
247
289
|
const files = ce.clipboardData?.files;
|
|
248
290
|
if (!files?.length)
|
|
249
291
|
return;
|
|
250
|
-
const images = Array.from(files).filter((f) => f.type.startsWith(
|
|
292
|
+
const images = Array.from(files).filter((f) => f.type.startsWith("image/"));
|
|
251
293
|
if (!images.length)
|
|
252
294
|
return;
|
|
253
295
|
e.preventDefault();
|
|
254
296
|
for (const file of images) {
|
|
255
297
|
try {
|
|
256
298
|
const url = await uploadImage(file);
|
|
257
|
-
editor
|
|
299
|
+
editor
|
|
300
|
+
.chain()
|
|
301
|
+
.focus()
|
|
302
|
+
.setImage({ src: url, alt: file.name.replace(/\.[^.]+$/, "") })
|
|
303
|
+
.run();
|
|
258
304
|
}
|
|
259
305
|
catch {
|
|
260
306
|
// ignore
|
|
261
307
|
}
|
|
262
308
|
}
|
|
263
309
|
};
|
|
264
|
-
dom.addEventListener(
|
|
265
|
-
return () => dom.removeEventListener(
|
|
310
|
+
dom.addEventListener("paste", listener);
|
|
311
|
+
return () => dom.removeEventListener("paste", listener);
|
|
266
312
|
}, [editor, uploadImage]);
|
|
267
313
|
const wc = editor?.storage.characterCount?.words() ?? 0;
|
|
268
314
|
if (!editor)
|
|
269
315
|
return null;
|
|
270
|
-
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)}`] }) })] }));
|
|
271
317
|
}
|
|
272
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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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -28,8 +28,8 @@ export type { ConfirmDialogProps, EmptyStateProps, PageHeaderProps, RoleBadgePro
|
|
|
28
28
|
export { useMediaQuery } from './hooks/useMediaQuery.js';
|
|
29
29
|
export { useEditorMode } from './lib/useEditorMode.js';
|
|
30
30
|
export type { EditorMode } from './lib/useEditorMode.js';
|
|
31
|
-
export { RichTextEditor, defaultReadTime } from './components/RichTextEditor.js';
|
|
32
|
-
export type { RichTextEditorProps, EditorPluginProps, EditorPlugin } from './components/RichTextEditor.js';
|
|
31
|
+
export { RichTextEditor, defaultReadTime, countWords } from './components/RichTextEditor.js';
|
|
32
|
+
export type { RichTextEditorProps, EditorPluginProps, EditorPlugin, EditorMeta } from './components/RichTextEditor.js';
|
|
33
33
|
export { RawEditor } from './components/RawEditor.js';
|
|
34
34
|
export { TiptapEditor } from './components/TiptapEditor.js';
|
|
35
35
|
export { FIELD_TYPE_META, RESERVED_COLLECTION_NAMES, validateFieldKey, generateFieldKey, validateCollectionName, applyFieldUpdate, applyFieldDelete, buildDefaultPath, } from '@airdraft/ui-core';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAG1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAGlD,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAChF,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAEtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,YAAY,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAGhF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAElE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,YAAY,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAGlE,OAAO,EACL,aAAa,EACb,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,GACf,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EACV,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,OAAO,EACP,cAAc,EACd,SAAS,EACT,eAAe,EACf,QAAQ,EACR,aAAa,EACb,mBAAmB,GACpB,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAGxD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -22,7 +22,7 @@ export { ConfirmDialog, EmptyState, PageHeader, RoleBadge, StatusBadge, EntryRow
|
|
|
22
22
|
export { useMediaQuery } from './hooks/useMediaQuery.js';
|
|
23
23
|
export { useEditorMode } from './lib/useEditorMode.js';
|
|
24
24
|
// Rich text editor
|
|
25
|
-
export { RichTextEditor, defaultReadTime } from './components/RichTextEditor.js';
|
|
25
|
+
export { RichTextEditor, defaultReadTime, countWords } from './components/RichTextEditor.js';
|
|
26
26
|
export { RawEditor } from './components/RawEditor.js';
|
|
27
27
|
export { TiptapEditor } from './components/TiptapEditor.js';
|
|
28
28
|
// Re-export ui-core utilities so consumers can do: import { FIELD_TYPE_META } from '@airdraft/react-ui'
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,uCAAuC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGxC,0CAA0C;AAC1C,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGpD,2BAA2B;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAGxD,2BAA2B;AAC3B,OAAO,EACL,aAAa,EACb,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,GACf,MAAM,uBAAuB,CAAA;AAqB9B,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGtD,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,uCAAuC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAGxC,0CAA0C;AAC1C,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAGhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAEtE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGpD,2BAA2B;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAGpD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAGhD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAG1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAGxD,2BAA2B;AAC3B,OAAO,EACL,aAAa,EACb,UAAU,EACV,UAAU,EACV,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,cAAc,GACf,MAAM,uBAAuB,CAAA;AAqB9B,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGtD,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAE5F,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAE3D,wGAAwG;AACxG,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,mBAAmB,CAAA"}
|