@overlap/rte 0.1.10 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Dropdown.d.ts +1 -0
- package/dist/components/Dropdown.d.ts.map +1 -1
- package/dist/components/Editor.d.ts.map +1 -1
- package/dist/components/FloatingToolbar.d.ts +4 -0
- package/dist/components/FloatingToolbar.d.ts.map +1 -1
- package/dist/components/Icons.d.ts +3 -0
- package/dist/components/Icons.d.ts.map +1 -1
- package/dist/components/LinkTooltip.d.ts +11 -0
- package/dist/components/LinkTooltip.d.ts.map +1 -0
- package/dist/components/Toolbar.d.ts.map +1 -1
- package/dist/hooks/useCheckbox.d.ts +3 -1
- package/dist/hooks/useCheckbox.d.ts.map +1 -1
- package/dist/hooks/useEditorEvents.d.ts +7 -3
- package/dist/hooks/useEditorEvents.d.ts.map +1 -1
- package/dist/hooks/useEditorInit.d.ts +7 -3
- package/dist/hooks/useEditorInit.d.ts.map +1 -1
- package/dist/hooks/useEditorSelection.d.ts +3 -1
- package/dist/hooks/useEditorSelection.d.ts.map +1 -1
- package/dist/index.d.ts +82 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.esm.js +3762 -2749
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +3766 -2748
- package/dist/index.js.map +1 -1
- package/dist/plugins/blockFormat.d.ts.map +1 -1
- package/dist/plugins/colors.d.ts.map +1 -1
- package/dist/plugins/index.d.ts +4 -0
- package/dist/plugins/index.d.ts.map +1 -1
- package/dist/styles.css +210 -13
- package/dist/types.d.ts +13 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/autoLink.d.ts +12 -0
- package/dist/utils/autoLink.d.ts.map +1 -0
- package/dist/utils/content.d.ts +1 -1
- package/dist/utils/content.d.ts.map +1 -1
- package/dist/utils/history.d.ts +9 -4
- package/dist/utils/history.d.ts.map +1 -1
- package/dist/utils/markdownShortcuts.d.ts +15 -0
- package/dist/utils/markdownShortcuts.d.ts.map +1 -0
- package/dist/utils/sanitize.d.ts +14 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/selection.d.ts +28 -0
- package/dist/utils/selection.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../src/components/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,UAAU,aAAa;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3H,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../src/components/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,UAAU,aAAa;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3H,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CAqI5C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Editor.d.ts","sourceRoot":"","sources":["../../src/components/Editor.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Editor.d.ts","sourceRoot":"","sources":["../../src/components/Editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4D,MAAM,OAAO,CAAC;AAYjF,OAAO,EAA4B,WAAW,EAAE,MAAM,UAAU,CAAC;AA4BjE,eAAO,MAAM,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAkrBxC,CAAC"}
|
|
@@ -5,6 +5,10 @@ interface FloatingToolbarProps {
|
|
|
5
5
|
editorAPI: EditorAPI;
|
|
6
6
|
editorElement: HTMLElement | null;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Floating toolbar that appears above the current text selection.
|
|
10
|
+
* Uses position:fixed with viewport coordinates for reliable placement.
|
|
11
|
+
*/
|
|
8
12
|
export declare const FloatingToolbar: React.FC<FloatingToolbarProps>;
|
|
9
13
|
export {};
|
|
10
14
|
//# sourceMappingURL=FloatingToolbar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloatingToolbar.d.ts","sourceRoot":"","sources":["../../src/components/FloatingToolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"FloatingToolbar.d.ts","sourceRoot":"","sources":["../../src/components/FloatingToolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,EAAe,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAE1D,UAAU,oBAAoB;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC;CACrC;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CA0L1D,CAAC"}
|
|
@@ -35,6 +35,9 @@ export declare const AlignCenterIcon: React.FC<IconProps>;
|
|
|
35
35
|
export declare const AlignRightIcon: React.FC<IconProps>;
|
|
36
36
|
export declare const AlignJustifyIcon: React.FC<IconProps>;
|
|
37
37
|
export declare const TableIcon: React.FC<IconProps>;
|
|
38
|
+
export declare const HorizontalRuleIcon: React.FC<IconProps>;
|
|
39
|
+
export declare const OpenInNewIcon: React.FC<IconProps>;
|
|
40
|
+
export declare const ContentCopyIcon: React.FC<IconProps>;
|
|
38
41
|
export declare const Icon: React.FC<{
|
|
39
42
|
icon: string;
|
|
40
43
|
width?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Icons.d.ts","sourceRoot":"","sources":["../../src/components/Icons.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,SAAS;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAcxC,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc1C,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc7C,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAcxC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAcxC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAenD,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAcxC,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAczC,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc9C,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAchD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc7C,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAgCnD,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc3C,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAe1C,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc5C,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAczC,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAczC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc3C,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc1C,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc1C,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc3C,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc5C,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAcjD,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc7C,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc/C,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAcxC,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc7C,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc/C,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAc9C,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAchD,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAczC,CAAC;
|
|
1
|
+
{"version":3,"file":"Icons.d.ts","sourceRoot":"","sources":["../../src/components/Icons.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface LinkTooltipProps {
|
|
3
|
+
editorElement: HTMLElement | null;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Shows a tooltip with URL, edit link, and open link actions
|
|
7
|
+
* when hovering over an <a> element in the editor.
|
|
8
|
+
*/
|
|
9
|
+
export declare const LinkTooltip: React.FC<LinkTooltipProps>;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=LinkTooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LinkTooltip.d.ts","sourceRoot":"","sources":["../../src/components/LinkTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE,UAAU,gBAAgB;IACtB,aAAa,EAAE,WAAW,GAAG,IAAI,CAAC;CACrC;AAUD;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA4IlD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../src/components/Toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Toolbar.d.ts","sourceRoot":"","sources":["../../src/components/Toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,EAAe,SAAS,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAE1D,UAAU,YAAY;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAiL1C,CAAC"}
|
|
@@ -2,7 +2,9 @@ import { EditorContent } from "../types";
|
|
|
2
2
|
import { ensureAllCheckboxes, updateListItemChecked } from "../utils/checkbox";
|
|
3
3
|
interface UseCheckboxOptions {
|
|
4
4
|
editorRef: React.RefObject<HTMLDivElement | null>;
|
|
5
|
-
isUpdatingRef:
|
|
5
|
+
isUpdatingRef: {
|
|
6
|
+
current: boolean;
|
|
7
|
+
};
|
|
6
8
|
pushToHistory: (content: EditorContent) => void;
|
|
7
9
|
notifyChange: (content: EditorContent) => void;
|
|
8
10
|
getDomContent: () => EditorContent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCheckbox.d.ts","sourceRoot":"","sources":["../../src/hooks/useCheckbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACH,mBAAmB,EAInB,qBAAqB,EACxB,MAAM,mBAAmB,CAAC;AAS3B,UAAU,kBAAkB;IACxB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClD,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"useCheckbox.d.ts","sourceRoot":"","sources":["../../src/hooks/useCheckbox.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACH,mBAAmB,EAInB,qBAAqB,EACxB,MAAM,mBAAmB,CAAC;AAS3B,UAAU,kBAAkB;IACxB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClD,aAAa,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACpC,aAAa,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAChD,YAAY,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,aAAa,EAAE,MAAM,aAAa,CAAC;CACtC;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EACxB,SAAS,EACT,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,GAChB,EAAE,kBAAkB;;iCA4QJ,WAAW,KAAG,OAAO;+BApL1B,aAAa,KAAG,OAAO;6BAkFvB,aAAa,KAAG,OAAO;;EA0MlC"}
|
|
@@ -2,8 +2,12 @@ import { EditorContent } from "../types";
|
|
|
2
2
|
import { HistoryManager } from "../utils/history";
|
|
3
3
|
interface UseEditorEventsOptions {
|
|
4
4
|
editorRef: React.RefObject<HTMLDivElement | null>;
|
|
5
|
-
historyRef:
|
|
6
|
-
|
|
5
|
+
historyRef: {
|
|
6
|
+
current: HistoryManager;
|
|
7
|
+
};
|
|
8
|
+
isUpdatingRef: {
|
|
9
|
+
current: boolean;
|
|
10
|
+
};
|
|
7
11
|
notifyChange: (content: EditorContent) => void;
|
|
8
12
|
handleCheckboxKeyDown: (e: KeyboardEvent) => boolean;
|
|
9
13
|
handleCheckboxEnter: (e: KeyboardEvent) => boolean;
|
|
@@ -11,7 +15,7 @@ interface UseEditorEventsOptions {
|
|
|
11
15
|
redo: () => void;
|
|
12
16
|
}
|
|
13
17
|
/**
|
|
14
|
-
* Hook that sets up input
|
|
18
|
+
* Hook that sets up input and keydown event listeners on the editor.
|
|
15
19
|
*/
|
|
16
20
|
export declare function useEditorEvents({ editorRef, historyRef, isUpdatingRef, notifyChange, handleCheckboxKeyDown, handleCheckboxEnter, undo, redo, }: UseEditorEventsOptions): void;
|
|
17
21
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditorEvents.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorEvents.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"useEditorEvents.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorEvents.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOlD,UAAU,sBAAsB;IAC5B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClD,UAAU,EAAE;QAAE,OAAO,EAAE,cAAc,CAAA;KAAE,CAAC;IACxC,aAAa,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACpC,YAAY,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,qBAAqB,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC;IACrD,mBAAmB,EAAE,CAAC,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC;IACnD,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,IAAI,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC5B,SAAS,EACT,UAAU,EACV,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,IAAI,EACJ,IAAI,GACP,EAAE,sBAAsB,QA8NxB"}
|
|
@@ -3,8 +3,12 @@ import { EditorContent } from "../types";
|
|
|
3
3
|
import { HistoryManager } from "../utils/history";
|
|
4
4
|
interface UseEditorInitOptions {
|
|
5
5
|
editorRef: React.RefObject<HTMLDivElement | null>;
|
|
6
|
-
historyRef:
|
|
7
|
-
|
|
6
|
+
historyRef: {
|
|
7
|
+
current: HistoryManager;
|
|
8
|
+
};
|
|
9
|
+
isUpdatingRef: {
|
|
10
|
+
current: boolean;
|
|
11
|
+
};
|
|
8
12
|
initialContent?: EditorContent;
|
|
9
13
|
notifyChange: (content: EditorContent) => void;
|
|
10
14
|
customLinkComponent?: React.ComponentType<{
|
|
@@ -12,7 +16,7 @@ interface UseEditorInitOptions {
|
|
|
12
16
|
children: React.ReactNode;
|
|
13
17
|
[key: string]: unknown;
|
|
14
18
|
}>;
|
|
15
|
-
customHeadingRenderer?: (level: string, children: React.ReactNode) => React.
|
|
19
|
+
customHeadingRenderer?: (level: string, children: React.ReactNode) => React.ReactNode;
|
|
16
20
|
}
|
|
17
21
|
/**
|
|
18
22
|
* Hook that initializes the editor with initial content and sets up the MutationObserver.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditorInit.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorInit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,UAAU,oBAAoB;IAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClD,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"useEditorInit.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorInit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,UAAU,oBAAoB;IAC1B,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClD,UAAU,EAAE;QAAE,OAAO,EAAE,cAAc,CAAA;KAAE,CAAC;IACxC,aAAa,EAAE;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IACpC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,YAAY,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,mBAAmB,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QACtC,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;QAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KAC1B,CAAC,CAAC;IACH,qBAAqB,CAAC,EAAE,CACpB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,KAAK,CAAC,SAAS,KACxB,KAAK,CAAC,SAAS,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC1B,SAAS,EACT,UAAU,EACV,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,qBAAqB,GACxB,EAAE,oBAAoB,QAoEtB"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { SelectionState } from "../utils/selection";
|
|
1
2
|
/**
|
|
2
3
|
* Hook for editor selection management.
|
|
4
|
+
* Wraps restoreSerializedSelection in a stable callback.
|
|
3
5
|
*/
|
|
4
6
|
export declare function useEditorSelection(): {
|
|
5
|
-
restoreSelection: (editor: HTMLElement) => void;
|
|
7
|
+
restoreSelection: (editor: HTMLElement, state?: SelectionState | null) => void;
|
|
6
8
|
};
|
|
7
9
|
//# sourceMappingURL=useEditorSelection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useEditorSelection.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorSelection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useEditorSelection.d.ts","sourceRoot":"","sources":["../../src/hooks/useEditorSelection.ts"],"names":[],"mappings":"AACA,OAAO,EACH,cAAc,EAEjB,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,wBAAgB,kBAAkB;+BAEjB,WAAW,UAAU,cAAc,GAAG,IAAI;EAwB1D"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,6 +14,7 @@ interface DropdownProps {
|
|
|
14
14
|
onSelect: (value: string) => void;
|
|
15
15
|
currentValue?: string;
|
|
16
16
|
disabled?: boolean;
|
|
17
|
+
showCustomColorInput?: boolean;
|
|
17
18
|
}
|
|
18
19
|
declare const Dropdown: React$1.FC<DropdownProps>;
|
|
19
20
|
|
|
@@ -133,7 +134,7 @@ interface Plugin {
|
|
|
133
134
|
command?: string;
|
|
134
135
|
renderButton?: (props: ButtonProps & {
|
|
135
136
|
[key: string]: unknown;
|
|
136
|
-
}) => React.
|
|
137
|
+
}) => React.ReactNode;
|
|
137
138
|
execute?: (editor: EditorAPI, value?: string) => void;
|
|
138
139
|
isActive?: (editor: EditorAPI) => boolean;
|
|
139
140
|
canExecute?: (editor: EditorAPI) => boolean;
|
|
@@ -166,10 +167,14 @@ interface EditorAPI {
|
|
|
166
167
|
clearLinks: () => void;
|
|
167
168
|
indentListItem: () => void;
|
|
168
169
|
outdentListItem: () => void;
|
|
170
|
+
getTextStats: () => {
|
|
171
|
+
characters: number;
|
|
172
|
+
words: number;
|
|
173
|
+
};
|
|
169
174
|
}
|
|
170
175
|
interface CustomRenderer {
|
|
171
|
-
renderNode?: (node: EditorNode, children: React.ReactNode) => React.
|
|
172
|
-
renderMark?: (mark: string, attributes: Record<string, string>, children: React.ReactNode) => React.
|
|
176
|
+
renderNode?: (node: EditorNode, children: React.ReactNode) => React.ReactNode;
|
|
177
|
+
renderMark?: (mark: string, attributes: Record<string, string>, children: React.ReactNode) => React.ReactNode;
|
|
173
178
|
}
|
|
174
179
|
interface EditorProps {
|
|
175
180
|
initialContent?: EditorContent;
|
|
@@ -187,7 +192,7 @@ interface EditorProps {
|
|
|
187
192
|
fontSizes?: number[];
|
|
188
193
|
colors?: string[];
|
|
189
194
|
headings?: string[];
|
|
190
|
-
customHeadingRenderer?: (level: string, children: React.ReactNode) => React.
|
|
195
|
+
customHeadingRenderer?: (level: string, children: React.ReactNode) => React.ReactNode;
|
|
191
196
|
customRenderer?: CustomRenderer;
|
|
192
197
|
onEditorAPIReady?: (api: EditorAPI) => void;
|
|
193
198
|
theme?: {
|
|
@@ -201,10 +206,26 @@ interface EditorProps {
|
|
|
201
206
|
onImageUpload?: (file: File) => Promise<string>;
|
|
202
207
|
settings?: EditorSettings;
|
|
203
208
|
settingsOptions?: BuildPluginsOptions;
|
|
209
|
+
readOnly?: boolean;
|
|
210
|
+
onFocus?: () => void;
|
|
211
|
+
onBlur?: () => void;
|
|
212
|
+
maxLength?: number;
|
|
213
|
+
showWordCount?: boolean;
|
|
204
214
|
}
|
|
205
215
|
|
|
206
216
|
declare const Editor: React$1.FC<EditorProps>;
|
|
207
217
|
|
|
218
|
+
interface FloatingToolbarProps {
|
|
219
|
+
plugins: Plugin[];
|
|
220
|
+
editorAPI: EditorAPI;
|
|
221
|
+
editorElement: HTMLElement | null;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Floating toolbar that appears above the current text selection.
|
|
225
|
+
* Uses position:fixed with viewport coordinates for reliable placement.
|
|
226
|
+
*/
|
|
227
|
+
declare const FloatingToolbar: React$1.FC<FloatingToolbarProps>;
|
|
228
|
+
|
|
208
229
|
interface ToolbarProps {
|
|
209
230
|
plugins: Plugin[];
|
|
210
231
|
editorAPI: EditorAPI;
|
|
@@ -222,6 +243,10 @@ declare const strikethroughPlugin: Plugin;
|
|
|
222
243
|
declare const subscriptPlugin: Plugin;
|
|
223
244
|
declare const superscriptPlugin: Plugin;
|
|
224
245
|
declare const codeInlinePlugin: Plugin;
|
|
246
|
+
/**
|
|
247
|
+
* Horizontal Rule Plugin
|
|
248
|
+
*/
|
|
249
|
+
declare const horizontalRulePlugin: Plugin;
|
|
225
250
|
declare const undoPlugin: Plugin;
|
|
226
251
|
declare const redoPlugin: Plugin;
|
|
227
252
|
/**
|
|
@@ -309,7 +334,7 @@ declare function contentToDOM(content: EditorContent, container: HTMLElement, cu
|
|
|
309
334
|
href: string;
|
|
310
335
|
children: React$1.ReactNode;
|
|
311
336
|
[key: string]: unknown;
|
|
312
|
-
}>, customHeadingRenderer?: (level: string, children: React$1.ReactNode) => React$1.
|
|
337
|
+
}>, customHeadingRenderer?: (level: string, children: React$1.ReactNode) => React$1.ReactNode): void;
|
|
313
338
|
/**
|
|
314
339
|
* Creates empty editor content with a single paragraph.
|
|
315
340
|
*/
|
|
@@ -324,16 +349,48 @@ declare function contentToHTML(content: EditorContent): string;
|
|
|
324
349
|
*/
|
|
325
350
|
declare function htmlToContent(htmlString: string): EditorContent;
|
|
326
351
|
|
|
352
|
+
/**
|
|
353
|
+
* Path-based selection serialization and restoration.
|
|
354
|
+
*
|
|
355
|
+
* DOM Range references become invalid after innerHTML replacement (undo/redo).
|
|
356
|
+
* This module converts a live selection into a serializable path representation
|
|
357
|
+
* (child indices from editor root to target node + character offset) and can
|
|
358
|
+
* restore that path back to a live DOM selection after the DOM has been rebuilt
|
|
359
|
+
* with identical structure.
|
|
360
|
+
*/
|
|
361
|
+
interface SelectionPoint {
|
|
362
|
+
path: number[];
|
|
363
|
+
offset: number;
|
|
364
|
+
}
|
|
365
|
+
interface SelectionState {
|
|
366
|
+
anchor: SelectionPoint;
|
|
367
|
+
focus: SelectionPoint;
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Serialize the current window selection relative to `editor`.
|
|
371
|
+
* Returns null if there is no selection or it is outside the editor.
|
|
372
|
+
*/
|
|
373
|
+
declare function serializeSelection(editor: HTMLElement): SelectionState | null;
|
|
374
|
+
/**
|
|
375
|
+
* Restore a previously serialized selection on `editor`.
|
|
376
|
+
* Silently does nothing if the paths no longer match the DOM.
|
|
377
|
+
*/
|
|
378
|
+
declare function restoreSerializedSelection(editor: HTMLElement, state: SelectionState | null): void;
|
|
379
|
+
|
|
380
|
+
interface HistoryEntry {
|
|
381
|
+
content: EditorContent;
|
|
382
|
+
selection: SelectionState | null;
|
|
383
|
+
}
|
|
327
384
|
declare class HistoryManager {
|
|
328
385
|
private history;
|
|
329
386
|
private currentIndex;
|
|
330
387
|
private maxHistorySize;
|
|
331
|
-
push(content: EditorContent): void;
|
|
332
|
-
undo():
|
|
333
|
-
redo():
|
|
388
|
+
push(content: EditorContent, selection?: SelectionState | null): void;
|
|
389
|
+
undo(): HistoryEntry | null;
|
|
390
|
+
redo(): HistoryEntry | null;
|
|
334
391
|
canUndo(): boolean;
|
|
335
392
|
canRedo(): boolean;
|
|
336
|
-
getCurrent():
|
|
393
|
+
getCurrent(): HistoryEntry | null;
|
|
337
394
|
reset(): void;
|
|
338
395
|
}
|
|
339
396
|
|
|
@@ -363,6 +420,20 @@ declare function getCurrentBackgroundColor(editor: EditorAPI): string | undefine
|
|
|
363
420
|
*/
|
|
364
421
|
declare function getCurrentHeading(editor: EditorAPI, availableHeadings: string[]): string | undefined;
|
|
365
422
|
|
|
423
|
+
/**
|
|
424
|
+
* Lightweight HTML sanitizer (no external dependencies).
|
|
425
|
+
*
|
|
426
|
+
* Uses an allowlist approach to strip dangerous elements and attributes
|
|
427
|
+
* from pasted/imported HTML before it enters the editor.
|
|
428
|
+
*/
|
|
429
|
+
/**
|
|
430
|
+
* Sanitize an HTML string by stripping dangerous tags and attributes.
|
|
431
|
+
*
|
|
432
|
+
* @param html - Raw HTML string
|
|
433
|
+
* @returns Sanitized HTML string
|
|
434
|
+
*/
|
|
435
|
+
declare function sanitizeHtml(html: string): string;
|
|
436
|
+
|
|
366
437
|
/**
|
|
367
438
|
* Pure DOM utility functions.
|
|
368
439
|
* No React dependencies - only native browser APIs.
|
|
@@ -384,5 +455,5 @@ declare function findClosestCheckboxList(element: HTMLElement): HTMLElement | nu
|
|
|
384
455
|
*/
|
|
385
456
|
declare function ensureAllCheckboxes(editor: HTMLElement): void;
|
|
386
457
|
|
|
387
|
-
export { Dropdown, Editor, HistoryManager, TableContextMenuProvider, Toolbar, advancedLinkPlugin, alignmentPlugin, blockquotePlugin, boldPlugin, buildPluginsFromSettings, clearFormattingPlugin, codeInlinePlugin, contentToDOM, contentToHTML, createAdvancedLinkPlugin, createAlignmentPlugin, createBackgroundColorPlugin, createBlockFormatPlugin, createEmptyContent, createFontSizePlugin, createHeadingsPlugin, createImagePlugin, createLinkPlugin, createTextColorPlugin, Editor as default, defaultEditorSettings, defaultPlugins, domToContent, ensureAllCheckboxes, findClosestCheckboxList, getCurrentBackgroundColor, getCurrentFontSize, getCurrentHeading, getCurrentTextColor, htmlToContent, indentListItem, indentListItemPlugin, isCheckboxList, italicPlugin, linkPlugin, orderedListPlugin, outdentListItem, outdentListItemPlugin, redoPlugin, strikethroughPlugin, subscriptPlugin, superscriptPlugin, tablePlugin, underlinePlugin, undoPlugin, unorderedListPlugin };
|
|
388
|
-
export type { AdvancedLinkOptions, BlockFormatOptions, BuildPluginsOptions, ButtonProps, CustomRenderer, EditorAPI, EditorContent, EditorNode, EditorProps, EditorSettings, LinkCustomField, Plugin };
|
|
458
|
+
export { Dropdown, Editor, FloatingToolbar, HistoryManager, TableContextMenuProvider, Toolbar, advancedLinkPlugin, alignmentPlugin, blockquotePlugin, boldPlugin, buildPluginsFromSettings, clearFormattingPlugin, codeInlinePlugin, contentToDOM, contentToHTML, createAdvancedLinkPlugin, createAlignmentPlugin, createBackgroundColorPlugin, createBlockFormatPlugin, createEmptyContent, createFontSizePlugin, createHeadingsPlugin, createImagePlugin, createLinkPlugin, createTextColorPlugin, Editor as default, defaultEditorSettings, defaultPlugins, domToContent, ensureAllCheckboxes, findClosestCheckboxList, getCurrentBackgroundColor, getCurrentFontSize, getCurrentHeading, getCurrentTextColor, horizontalRulePlugin, htmlToContent, indentListItem, indentListItemPlugin, isCheckboxList, italicPlugin, linkPlugin, orderedListPlugin, outdentListItem, outdentListItemPlugin, redoPlugin, restoreSerializedSelection, sanitizeHtml, serializeSelection, strikethroughPlugin, subscriptPlugin, superscriptPlugin, tablePlugin, underlinePlugin, undoPlugin, unorderedListPlugin };
|
|
459
|
+
export type { AdvancedLinkOptions, BlockFormatOptions, BuildPluginsOptions, ButtonProps, CustomRenderer, EditorAPI, EditorContent, EditorNode, EditorProps, EditorSettings, HistoryEntry, LinkCustomField, Plugin, SelectionPoint, SelectionState };
|
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,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,SAAS,CAAC;AAGxB,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG/D,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrE,cAAc,yBAAyB,CAAC;AAGxC,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,SAAS,CAAC;AAGxB,cAAc,iBAAiB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAG/D,cAAc,kBAAkB,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AACnF,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrE,cAAc,yBAAyB,CAAC;AAGxC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAGtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
|