notra-editor 0.3.0 → 0.4.0
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/README.md +4 -8
- package/dist/components/blockquote-button/blockquote-button.cjs +91 -0
- package/dist/components/blockquote-button/blockquote-button.cjs.map +1 -0
- package/dist/components/blockquote-button/blockquote-button.d.cts +9 -0
- package/dist/components/blockquote-button/blockquote-button.d.ts +9 -0
- package/dist/components/blockquote-button/blockquote-button.mjs +67 -0
- package/dist/components/blockquote-button/blockquote-button.mjs.map +1 -0
- package/dist/components/code-block-button/code-block-button.cjs +91 -0
- package/dist/components/code-block-button/code-block-button.cjs.map +1 -0
- package/dist/components/code-block-button/code-block-button.d.cts +9 -0
- package/dist/components/code-block-button/code-block-button.d.ts +9 -0
- package/dist/components/code-block-button/code-block-button.mjs +67 -0
- package/dist/components/code-block-button/code-block-button.mjs.map +1 -0
- package/dist/components/code-block-view.cjs +39 -0
- package/dist/components/code-block-view.cjs.map +1 -0
- package/dist/components/code-block-view.d.cts +12 -0
- package/dist/components/code-block-view.d.ts +12 -0
- package/dist/components/code-block-view.mjs +17 -0
- package/dist/components/code-block-view.mjs.map +1 -0
- package/dist/components/copy-button.cjs +49 -0
- package/dist/components/copy-button.cjs.map +1 -0
- package/dist/components/copy-button.d.cts +9 -0
- package/dist/components/copy-button.d.ts +9 -0
- package/dist/components/copy-button.mjs +25 -0
- package/dist/components/copy-button.mjs.map +1 -0
- package/dist/components/heading-dropdown-menu/heading-dropdown-menu.cjs +67 -0
- package/dist/components/heading-dropdown-menu/heading-dropdown-menu.cjs.map +1 -0
- package/dist/components/heading-dropdown-menu/heading-dropdown-menu.d.cts +17 -0
- package/dist/components/heading-dropdown-menu/heading-dropdown-menu.d.ts +17 -0
- package/dist/components/heading-dropdown-menu/heading-dropdown-menu.mjs +51 -0
- package/dist/components/heading-dropdown-menu/heading-dropdown-menu.mjs.map +1 -0
- package/dist/components/heading-dropdown-menu/heading-menu-item.cjs +56 -0
- package/dist/components/heading-dropdown-menu/heading-menu-item.cjs.map +1 -0
- package/dist/components/heading-dropdown-menu/heading-menu-item.d.cts +12 -0
- package/dist/components/heading-dropdown-menu/heading-menu-item.d.ts +12 -0
- package/dist/components/heading-dropdown-menu/heading-menu-item.mjs +32 -0
- package/dist/components/heading-dropdown-menu/heading-menu-item.mjs.map +1 -0
- package/dist/components/heading-dropdown-menu/use-heading.cjs +109 -0
- package/dist/components/heading-dropdown-menu/use-heading.cjs.map +1 -0
- package/dist/components/heading-dropdown-menu/use-heading.d.cts +19 -0
- package/dist/components/heading-dropdown-menu/use-heading.d.ts +19 -0
- package/dist/components/heading-dropdown-menu/use-heading.mjs +83 -0
- package/dist/components/heading-dropdown-menu/use-heading.mjs.map +1 -0
- package/dist/components/link-popover/link-popover.cjs +148 -0
- package/dist/components/link-popover/link-popover.cjs.map +1 -0
- package/dist/components/link-popover/link-popover.d.cts +9 -0
- package/dist/components/link-popover/link-popover.d.ts +9 -0
- package/dist/components/link-popover/link-popover.mjs +129 -0
- package/dist/components/link-popover/link-popover.mjs.map +1 -0
- package/dist/components/link-popover/use-link-popover.cjs +71 -0
- package/dist/components/link-popover/use-link-popover.cjs.map +1 -0
- package/dist/components/link-popover/use-link-popover.d.cts +17 -0
- package/dist/components/link-popover/use-link-popover.d.ts +17 -0
- package/dist/components/link-popover/use-link-popover.mjs +47 -0
- package/dist/components/link-popover/use-link-popover.mjs.map +1 -0
- package/dist/components/list-dropdown-menu/list-dropdown-menu.cjs +73 -0
- package/dist/components/list-dropdown-menu/list-dropdown-menu.cjs.map +1 -0
- package/dist/components/list-dropdown-menu/list-dropdown-menu.d.cts +17 -0
- package/dist/components/list-dropdown-menu/list-dropdown-menu.d.ts +17 -0
- package/dist/components/list-dropdown-menu/list-dropdown-menu.mjs +57 -0
- package/dist/components/list-dropdown-menu/list-dropdown-menu.mjs.map +1 -0
- package/dist/components/list-dropdown-menu/list-menu-item.cjs +56 -0
- package/dist/components/list-dropdown-menu/list-menu-item.cjs.map +1 -0
- package/dist/components/list-dropdown-menu/list-menu-item.d.cts +12 -0
- package/dist/components/list-dropdown-menu/list-menu-item.d.ts +12 -0
- package/dist/components/list-dropdown-menu/list-menu-item.mjs +32 -0
- package/dist/components/list-dropdown-menu/list-menu-item.mjs.map +1 -0
- package/dist/components/list-dropdown-menu/use-list.cjs +111 -0
- package/dist/components/list-dropdown-menu/use-list.cjs.map +1 -0
- package/dist/components/list-dropdown-menu/use-list.d.cts +19 -0
- package/dist/components/list-dropdown-menu/use-list.d.ts +19 -0
- package/dist/components/list-dropdown-menu/use-list.mjs +85 -0
- package/dist/components/list-dropdown-menu/use-list.mjs.map +1 -0
- package/dist/components/mark-button/mark-button.cjs +72 -0
- package/dist/components/mark-button/mark-button.cjs.map +1 -0
- package/dist/components/mark-button/mark-button.d.cts +12 -0
- package/dist/components/mark-button/mark-button.d.ts +12 -0
- package/dist/components/mark-button/mark-button.mjs +48 -0
- package/dist/components/mark-button/mark-button.mjs.map +1 -0
- package/dist/components/mark-button/use-mark.cjs +71 -0
- package/dist/components/mark-button/use-mark.cjs.map +1 -0
- package/dist/components/mark-button/use-mark.d.cts +17 -0
- package/dist/components/mark-button/use-mark.d.ts +17 -0
- package/dist/components/mark-button/use-mark.mjs +47 -0
- package/dist/components/mark-button/use-mark.mjs.map +1 -0
- package/dist/components/toolbar/toolbar.cjs +77 -0
- package/dist/components/toolbar/toolbar.cjs.map +1 -0
- package/dist/components/toolbar/toolbar.d.cts +14 -0
- package/dist/components/toolbar/toolbar.d.ts +14 -0
- package/dist/components/toolbar/toolbar.mjs +51 -0
- package/dist/components/toolbar/toolbar.mjs.map +1 -0
- package/dist/components/ui/button.cjs +82 -0
- package/dist/components/ui/button.cjs.map +1 -0
- package/dist/components/ui/button.d.cts +14 -0
- package/dist/components/ui/button.d.ts +14 -0
- package/dist/components/ui/button.mjs +57 -0
- package/dist/components/ui/button.mjs.map +1 -0
- package/dist/components/ui/dropdown-menu.cjs +290 -0
- package/dist/components/ui/dropdown-menu.cjs.map +1 -0
- package/dist/components/ui/dropdown-menu.d.cts +32 -0
- package/dist/components/ui/dropdown-menu.d.ts +32 -0
- package/dist/components/ui/dropdown-menu.mjs +252 -0
- package/dist/components/ui/dropdown-menu.mjs.map +1 -0
- package/dist/components/ui/input.cjs +44 -0
- package/dist/components/ui/input.cjs.map +1 -0
- package/dist/components/ui/input.d.cts +6 -0
- package/dist/components/ui/input.d.ts +6 -0
- package/dist/components/ui/input.mjs +20 -0
- package/dist/components/ui/input.mjs.map +1 -0
- package/dist/components/ui/popover.cjs +72 -0
- package/dist/components/ui/popover.cjs.map +1 -0
- package/dist/components/ui/popover.d.cts +10 -0
- package/dist/components/ui/popover.d.ts +10 -0
- package/dist/components/ui/popover.mjs +45 -0
- package/dist/components/ui/popover.mjs.map +1 -0
- package/dist/components/ui/separator.cjs +51 -0
- package/dist/components/ui/separator.cjs.map +1 -0
- package/dist/components/ui/separator.d.cts +7 -0
- package/dist/components/ui/separator.d.ts +7 -0
- package/dist/components/ui/separator.mjs +27 -0
- package/dist/components/ui/separator.mjs.map +1 -0
- package/dist/components/ui/spacer.cjs +32 -0
- package/dist/components/ui/spacer.cjs.map +1 -0
- package/dist/components/ui/spacer.d.cts +5 -0
- package/dist/components/ui/spacer.d.ts +5 -0
- package/dist/components/ui/spacer.mjs +8 -0
- package/dist/components/ui/spacer.mjs.map +1 -0
- package/dist/components/undo-redo-button/undo-redo-button.cjs +63 -0
- package/dist/components/undo-redo-button/undo-redo-button.cjs.map +1 -0
- package/dist/components/undo-redo-button/undo-redo-button.d.cts +12 -0
- package/dist/components/undo-redo-button/undo-redo-button.d.ts +12 -0
- package/dist/components/undo-redo-button/undo-redo-button.mjs +39 -0
- package/dist/components/undo-redo-button/undo-redo-button.mjs.map +1 -0
- package/dist/components/undo-redo-button/use-undo-redo.cjs +68 -0
- package/dist/components/undo-redo-button/use-undo-redo.cjs.map +1 -0
- package/dist/components/undo-redo-button/use-undo-redo.d.cts +17 -0
- package/dist/components/undo-redo-button/use-undo-redo.d.ts +17 -0
- package/dist/components/undo-redo-button/use-undo-redo.mjs +44 -0
- package/dist/components/undo-redo-button/use-undo-redo.mjs.map +1 -0
- package/dist/extensions/code-block.cjs +46 -0
- package/dist/extensions/code-block.cjs.map +1 -0
- package/dist/extensions/code-block.d.cts +6 -0
- package/dist/extensions/code-block.d.ts +6 -0
- package/dist/extensions/code-block.mjs +12 -0
- package/dist/extensions/code-block.mjs.map +1 -0
- package/dist/extensions/editor.cjs +53 -0
- package/dist/extensions/editor.cjs.map +1 -0
- package/dist/extensions/editor.d.cts +9 -0
- package/dist/extensions/editor.d.ts +9 -0
- package/dist/extensions/editor.mjs +19 -0
- package/dist/extensions/editor.mjs.map +1 -0
- package/dist/extensions/index.cjs +32 -0
- package/dist/extensions/index.cjs.map +1 -0
- package/dist/extensions/index.d.cts +7 -0
- package/dist/extensions/index.d.ts +7 -0
- package/dist/extensions/index.mjs +7 -0
- package/dist/extensions/index.mjs.map +1 -0
- package/dist/extensions/shared.cjs +64 -0
- package/dist/extensions/shared.cjs.map +1 -0
- package/dist/extensions/shared.d.cts +8 -0
- package/dist/extensions/shared.d.ts +8 -0
- package/dist/extensions/shared.mjs +29 -0
- package/dist/extensions/shared.mjs.map +1 -0
- package/dist/hooks/use-copy-to-clipboard.cjs +50 -0
- package/dist/hooks/use-copy-to-clipboard.cjs.map +1 -0
- package/dist/hooks/use-copy-to-clipboard.d.cts +10 -0
- package/dist/hooks/use-copy-to-clipboard.d.ts +10 -0
- package/dist/hooks/use-copy-to-clipboard.mjs +26 -0
- package/dist/hooks/use-copy-to-clipboard.mjs.map +1 -0
- package/dist/hooks/use-markdown-editor.cjs +80 -0
- package/dist/hooks/use-markdown-editor.cjs.map +1 -0
- package/dist/hooks/use-markdown-editor.d.cts +13 -0
- package/dist/hooks/use-markdown-editor.d.ts +13 -0
- package/dist/hooks/use-markdown-editor.mjs +56 -0
- package/dist/hooks/use-markdown-editor.mjs.map +1 -0
- package/dist/icons/redo-icon.cjs +54 -0
- package/dist/icons/redo-icon.cjs.map +1 -0
- package/dist/icons/redo-icon.d.cts +7 -0
- package/dist/icons/redo-icon.d.ts +7 -0
- package/dist/icons/redo-icon.mjs +30 -0
- package/dist/icons/redo-icon.mjs.map +1 -0
- package/dist/icons/undo-icon.cjs +54 -0
- package/dist/icons/undo-icon.cjs.map +1 -0
- package/dist/icons/undo-icon.d.cts +7 -0
- package/dist/icons/undo-icon.d.ts +7 -0
- package/dist/icons/undo-icon.mjs +30 -0
- package/dist/icons/undo-icon.mjs.map +1 -0
- package/dist/index.cjs +24 -1322
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +22 -105
- package/dist/index.d.ts +22 -105
- package/dist/index.mjs +14 -1301
- package/dist/index.mjs.map +1 -1
- package/dist/lib/utils.cjs +33 -0
- package/dist/lib/utils.cjs.map +1 -0
- package/dist/lib/utils.d.cts +5 -0
- package/dist/lib/utils.d.ts +5 -0
- package/dist/lib/utils.mjs +9 -0
- package/dist/lib/utils.mjs.map +1 -0
- package/dist/notra-editor.cjs +88 -0
- package/dist/notra-editor.cjs.map +1 -0
- package/dist/notra-editor.d.cts +17 -0
- package/dist/notra-editor.d.ts +17 -0
- package/dist/notra-editor.mjs +68 -0
- package/dist/notra-editor.mjs.map +1 -0
- package/dist/notra-reader.cjs +47 -0
- package/dist/notra-reader.cjs.map +1 -0
- package/dist/notra-reader.d.cts +11 -0
- package/dist/notra-reader.d.ts +11 -0
- package/dist/notra-reader.mjs +23 -0
- package/dist/notra-reader.mjs.map +1 -0
- package/dist/styles/globals.css +29 -0
- package/dist/themes/default/editor.css +2 -0
- package/dist/themes/default/reader.css +2 -0
- package/dist/utils/markdown-to-json.cjs +50 -0
- package/dist/utils/markdown-to-json.cjs.map +1 -0
- package/dist/utils/markdown-to-json.d.cts +7 -0
- package/dist/utils/markdown-to-json.d.ts +7 -0
- package/dist/utils/markdown-to-json.mjs +26 -0
- package/dist/utils/markdown-to-json.mjs.map +1 -0
- package/package.json +2 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/undo-redo-button/use-undo-redo.ts"],"sourcesContent":["import { Undo2, Redo2 } from 'lucide-react';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport type { Editor } from '@tiptap/core';\n\nexport type UndoRedoAction = 'undo' | 'redo';\n\nexport interface UseUndoRedoConfig {\n\teditor: Editor | null;\n\taction: UndoRedoAction;\n}\n\nconst actionLabels: Record<UndoRedoAction, string> = {\n\tundo: 'Undo',\n\tredo: 'Redo'\n};\n\nconst actionIcons = {\n\tundo: Undo2,\n\tredo: Redo2\n};\n\nfunction canExecuteAction(\n\teditor: Editor | null,\n\taction: UndoRedoAction\n): boolean {\n\tif (!editor || !editor.isEditable) return false;\n\n\treturn action === 'undo' ? editor.can().undo() : editor.can().redo();\n}\n\nexport function useUndoRedo({ editor, action }: UseUndoRedoConfig) {\n\tconst [canExecute, setCanExecute] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\n\t\tconst handleUpdate = () => {\n\t\t\tsetCanExecute(canExecuteAction(editor, action));\n\t\t};\n\n\t\thandleUpdate();\n\n\t\teditor.on('transaction', handleUpdate);\n\n\t\treturn () => {\n\t\t\teditor.off('transaction', handleUpdate);\n\t\t};\n\t}, [editor, action]);\n\n\tconst handleAction = useCallback(() => {\n\t\tif (!editor || !editor.isEditable) return false;\n\n\t\tif (!canExecuteAction(editor, action)) return false;\n\n\t\tconst chain = editor.chain().focus();\n\n\t\treturn action === 'undo' ? chain.undo().run() : chain.redo().run();\n\t}, [editor, action]);\n\n\treturn {\n\t\tcanExecute,\n\t\thandleAction,\n\t\tlabel: actionLabels[action],\n\t\tIcon: actionIcons[action]\n\t};\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0BAA6B;AAC7B,mBAAiD;AAWjD,MAAM,eAA+C;AAAA,EACpD,MAAM;AAAA,EACN,MAAM;AACP;AAEA,MAAM,cAAc;AAAA,EACnB,MAAM;AAAA,EACN,MAAM;AACP;AAEA,SAAS,iBACR,QACA,QACU;AACV,MAAI,CAAC,UAAU,CAAC,OAAO,WAAY,QAAO;AAE1C,SAAO,WAAW,SAAS,OAAO,IAAI,EAAE,KAAK,IAAI,OAAO,IAAI,EAAE,KAAK;AACpE;AAEO,SAAS,YAAY,EAAE,QAAQ,OAAO,GAAsB;AAClE,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,KAAK;AAElD,8BAAU,MAAM;AACf,QAAI,CAAC,OAAQ;AAEb,UAAM,eAAe,MAAM;AAC1B,oBAAc,iBAAiB,QAAQ,MAAM,CAAC;AAAA,IAC/C;AAEA,iBAAa;AAEb,WAAO,GAAG,eAAe,YAAY;AAErC,WAAO,MAAM;AACZ,aAAO,IAAI,eAAe,YAAY;AAAA,IACvC;AAAA,EACD,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,QAAM,mBAAe,0BAAY,MAAM;AACtC,QAAI,CAAC,UAAU,CAAC,OAAO,WAAY,QAAO;AAE1C,QAAI,CAAC,iBAAiB,QAAQ,MAAM,EAAG,QAAO;AAE9C,UAAM,QAAQ,OAAO,MAAM,EAAE,MAAM;AAEnC,WAAO,WAAW,SAAS,MAAM,KAAK,EAAE,IAAI,IAAI,MAAM,KAAK,EAAE,IAAI;AAAA,EAClE,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,OAAO,aAAa,MAAM;AAAA,IAC1B,MAAM,YAAY,MAAM;AAAA,EACzB;AACD;","names":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as lucide_react from 'lucide-react';
|
|
3
|
+
import { Editor } from '@tiptap/core';
|
|
4
|
+
|
|
5
|
+
type UndoRedoAction = 'undo' | 'redo';
|
|
6
|
+
interface UseUndoRedoConfig {
|
|
7
|
+
editor: Editor | null;
|
|
8
|
+
action: UndoRedoAction;
|
|
9
|
+
}
|
|
10
|
+
declare function useUndoRedo({ editor, action }: UseUndoRedoConfig): {
|
|
11
|
+
canExecute: boolean;
|
|
12
|
+
handleAction: () => boolean;
|
|
13
|
+
label: string;
|
|
14
|
+
Icon: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export { type UndoRedoAction, type UseUndoRedoConfig, useUndoRedo };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as react from 'react';
|
|
2
|
+
import * as lucide_react from 'lucide-react';
|
|
3
|
+
import { Editor } from '@tiptap/core';
|
|
4
|
+
|
|
5
|
+
type UndoRedoAction = 'undo' | 'redo';
|
|
6
|
+
interface UseUndoRedoConfig {
|
|
7
|
+
editor: Editor | null;
|
|
8
|
+
action: UndoRedoAction;
|
|
9
|
+
}
|
|
10
|
+
declare function useUndoRedo({ editor, action }: UseUndoRedoConfig): {
|
|
11
|
+
canExecute: boolean;
|
|
12
|
+
handleAction: () => boolean;
|
|
13
|
+
label: string;
|
|
14
|
+
Icon: react.ForwardRefExoticComponent<Omit<lucide_react.LucideProps, "ref"> & react.RefAttributes<SVGSVGElement>>;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export { type UndoRedoAction, type UseUndoRedoConfig, useUndoRedo };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Undo2, Redo2 } from "lucide-react";
|
|
2
|
+
import { useCallback, useEffect, useState } from "react";
|
|
3
|
+
const actionLabels = {
|
|
4
|
+
undo: "Undo",
|
|
5
|
+
redo: "Redo"
|
|
6
|
+
};
|
|
7
|
+
const actionIcons = {
|
|
8
|
+
undo: Undo2,
|
|
9
|
+
redo: Redo2
|
|
10
|
+
};
|
|
11
|
+
function canExecuteAction(editor, action) {
|
|
12
|
+
if (!editor || !editor.isEditable) return false;
|
|
13
|
+
return action === "undo" ? editor.can().undo() : editor.can().redo();
|
|
14
|
+
}
|
|
15
|
+
function useUndoRedo({ editor, action }) {
|
|
16
|
+
const [canExecute, setCanExecute] = useState(false);
|
|
17
|
+
useEffect(() => {
|
|
18
|
+
if (!editor) return;
|
|
19
|
+
const handleUpdate = () => {
|
|
20
|
+
setCanExecute(canExecuteAction(editor, action));
|
|
21
|
+
};
|
|
22
|
+
handleUpdate();
|
|
23
|
+
editor.on("transaction", handleUpdate);
|
|
24
|
+
return () => {
|
|
25
|
+
editor.off("transaction", handleUpdate);
|
|
26
|
+
};
|
|
27
|
+
}, [editor, action]);
|
|
28
|
+
const handleAction = useCallback(() => {
|
|
29
|
+
if (!editor || !editor.isEditable) return false;
|
|
30
|
+
if (!canExecuteAction(editor, action)) return false;
|
|
31
|
+
const chain = editor.chain().focus();
|
|
32
|
+
return action === "undo" ? chain.undo().run() : chain.redo().run();
|
|
33
|
+
}, [editor, action]);
|
|
34
|
+
return {
|
|
35
|
+
canExecute,
|
|
36
|
+
handleAction,
|
|
37
|
+
label: actionLabels[action],
|
|
38
|
+
Icon: actionIcons[action]
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export {
|
|
42
|
+
useUndoRedo
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=use-undo-redo.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/components/undo-redo-button/use-undo-redo.ts"],"sourcesContent":["import { Undo2, Redo2 } from 'lucide-react';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport type { Editor } from '@tiptap/core';\n\nexport type UndoRedoAction = 'undo' | 'redo';\n\nexport interface UseUndoRedoConfig {\n\teditor: Editor | null;\n\taction: UndoRedoAction;\n}\n\nconst actionLabels: Record<UndoRedoAction, string> = {\n\tundo: 'Undo',\n\tredo: 'Redo'\n};\n\nconst actionIcons = {\n\tundo: Undo2,\n\tredo: Redo2\n};\n\nfunction canExecuteAction(\n\teditor: Editor | null,\n\taction: UndoRedoAction\n): boolean {\n\tif (!editor || !editor.isEditable) return false;\n\n\treturn action === 'undo' ? editor.can().undo() : editor.can().redo();\n}\n\nexport function useUndoRedo({ editor, action }: UseUndoRedoConfig) {\n\tconst [canExecute, setCanExecute] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (!editor) return;\n\n\t\tconst handleUpdate = () => {\n\t\t\tsetCanExecute(canExecuteAction(editor, action));\n\t\t};\n\n\t\thandleUpdate();\n\n\t\teditor.on('transaction', handleUpdate);\n\n\t\treturn () => {\n\t\t\teditor.off('transaction', handleUpdate);\n\t\t};\n\t}, [editor, action]);\n\n\tconst handleAction = useCallback(() => {\n\t\tif (!editor || !editor.isEditable) return false;\n\n\t\tif (!canExecuteAction(editor, action)) return false;\n\n\t\tconst chain = editor.chain().focus();\n\n\t\treturn action === 'undo' ? chain.undo().run() : chain.redo().run();\n\t}, [editor, action]);\n\n\treturn {\n\t\tcanExecute,\n\t\thandleAction,\n\t\tlabel: actionLabels[action],\n\t\tIcon: actionIcons[action]\n\t};\n}\n"],"mappings":"AAAA,SAAS,OAAO,aAAa;AAC7B,SAAS,aAAa,WAAW,gBAAgB;AAWjD,MAAM,eAA+C;AAAA,EACpD,MAAM;AAAA,EACN,MAAM;AACP;AAEA,MAAM,cAAc;AAAA,EACnB,MAAM;AAAA,EACN,MAAM;AACP;AAEA,SAAS,iBACR,QACA,QACU;AACV,MAAI,CAAC,UAAU,CAAC,OAAO,WAAY,QAAO;AAE1C,SAAO,WAAW,SAAS,OAAO,IAAI,EAAE,KAAK,IAAI,OAAO,IAAI,EAAE,KAAK;AACpE;AAEO,SAAS,YAAY,EAAE,QAAQ,OAAO,GAAsB;AAClE,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,KAAK;AAElD,YAAU,MAAM;AACf,QAAI,CAAC,OAAQ;AAEb,UAAM,eAAe,MAAM;AAC1B,oBAAc,iBAAiB,QAAQ,MAAM,CAAC;AAAA,IAC/C;AAEA,iBAAa;AAEb,WAAO,GAAG,eAAe,YAAY;AAErC,WAAO,MAAM;AACZ,aAAO,IAAI,eAAe,YAAY;AAAA,IACvC;AAAA,EACD,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,QAAM,eAAe,YAAY,MAAM;AACtC,QAAI,CAAC,UAAU,CAAC,OAAO,WAAY,QAAO;AAE1C,QAAI,CAAC,iBAAiB,QAAQ,MAAM,EAAG,QAAO;AAE9C,UAAM,QAAQ,OAAO,MAAM,EAAE,MAAM;AAEnC,WAAO,WAAW,SAAS,MAAM,KAAK,EAAE,IAAI,IAAI,MAAM,KAAK,EAAE,IAAI;AAAA,EAClE,GAAG,CAAC,QAAQ,MAAM,CAAC;AAEnB,SAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA,OAAO,aAAa,MAAM;AAAA,IAC1B,MAAM,YAAY,MAAM;AAAA,EACzB;AACD;","names":[]}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var code_block_exports = {};
|
|
30
|
+
__export(code_block_exports, {
|
|
31
|
+
CodeBlockExtension: () => CodeBlockExtension
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(code_block_exports);
|
|
34
|
+
var import_extension_code_block = __toESM(require("@tiptap/extension-code-block"), 1);
|
|
35
|
+
var import_react = require("@tiptap/react");
|
|
36
|
+
var import_code_block_view = require("../components/code-block-view");
|
|
37
|
+
const CodeBlockExtension = import_extension_code_block.default.extend({
|
|
38
|
+
addNodeView() {
|
|
39
|
+
return (0, import_react.ReactNodeViewRenderer)(import_code_block_view.CodeBlockView);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
43
|
+
0 && (module.exports = {
|
|
44
|
+
CodeBlockExtension
|
|
45
|
+
});
|
|
46
|
+
//# sourceMappingURL=code-block.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/code-block.ts"],"sourcesContent":["import CodeBlock from '@tiptap/extension-code-block';\nimport { ReactNodeViewRenderer } from '@tiptap/react';\n\nimport { CodeBlockView } from '../components/code-block-view';\n\nexport const CodeBlockExtension = CodeBlock.extend({\n\taddNodeView() {\n\t\treturn ReactNodeViewRenderer(CodeBlockView);\n\t}\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kCAAsB;AACtB,mBAAsC;AAEtC,6BAA8B;AAEvB,MAAM,qBAAqB,4BAAAA,QAAU,OAAO;AAAA,EAClD,cAAc;AACb,eAAO,oCAAsB,oCAAa;AAAA,EAC3C;AACD,CAAC;","names":["CodeBlock"]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import CodeBlock from "@tiptap/extension-code-block";
|
|
2
|
+
import { ReactNodeViewRenderer } from "@tiptap/react";
|
|
3
|
+
import { CodeBlockView } from "../components/code-block-view";
|
|
4
|
+
const CodeBlockExtension = CodeBlock.extend({
|
|
5
|
+
addNodeView() {
|
|
6
|
+
return ReactNodeViewRenderer(CodeBlockView);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
export {
|
|
10
|
+
CodeBlockExtension
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=code-block.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/code-block.ts"],"sourcesContent":["import CodeBlock from '@tiptap/extension-code-block';\nimport { ReactNodeViewRenderer } from '@tiptap/react';\n\nimport { CodeBlockView } from '../components/code-block-view';\n\nexport const CodeBlockExtension = CodeBlock.extend({\n\taddNodeView() {\n\t\treturn ReactNodeViewRenderer(CodeBlockView);\n\t}\n});\n"],"mappings":"AAAA,OAAO,eAAe;AACtB,SAAS,6BAA6B;AAEtC,SAAS,qBAAqB;AAEvB,MAAM,qBAAqB,UAAU,OAAO;AAAA,EAClD,cAAc;AACb,WAAO,sBAAsB,aAAa;AAAA,EAC3C;AACD,CAAC;","names":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var editor_exports = {};
|
|
30
|
+
__export(editor_exports, {
|
|
31
|
+
editorExtensions: () => editorExtensions
|
|
32
|
+
});
|
|
33
|
+
module.exports = __toCommonJS(editor_exports);
|
|
34
|
+
var import_extension_list = require("@tiptap/extension-list");
|
|
35
|
+
var import_starter_kit = __toESM(require("@tiptap/starter-kit"), 1);
|
|
36
|
+
var import_tiptap_markdown = require("tiptap-markdown");
|
|
37
|
+
var import_code_block = require("./code-block");
|
|
38
|
+
var import_shared = require("./shared");
|
|
39
|
+
const editorExtensions = [
|
|
40
|
+
import_starter_kit.default.configure({ ...import_shared.starterKitBaseConfig, codeBlock: false }),
|
|
41
|
+
import_extension_list.ListKit,
|
|
42
|
+
import_code_block.CodeBlockExtension,
|
|
43
|
+
import_tiptap_markdown.Markdown.configure({
|
|
44
|
+
html: false,
|
|
45
|
+
transformPastedText: true,
|
|
46
|
+
transformCopiedText: true
|
|
47
|
+
})
|
|
48
|
+
];
|
|
49
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
50
|
+
0 && (module.exports = {
|
|
51
|
+
editorExtensions
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=editor.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/editor.ts"],"sourcesContent":["import { ListKit } from '@tiptap/extension-list';\nimport StarterKit from '@tiptap/starter-kit';\nimport { Markdown } from 'tiptap-markdown';\n\nimport { CodeBlockExtension } from './code-block';\nimport { starterKitBaseConfig } from './shared';\n\n// Editor extensions = shared content model + interactive features + Markdown\n// codeBlock is disabled in StarterKit and replaced with the custom\n// CodeBlockExtension that mounts a NodeView (CodeBlockView).\nexport const editorExtensions = [\n\tStarterKit.configure({ ...starterKitBaseConfig, codeBlock: false }),\n\tListKit,\n\tCodeBlockExtension,\n\tMarkdown.configure({\n\t\thtml: false,\n\t\ttransformPastedText: true,\n\t\ttransformCopiedText: true\n\t})\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAwB;AACxB,yBAAuB;AACvB,6BAAyB;AAEzB,wBAAmC;AACnC,oBAAqC;AAK9B,MAAM,mBAAmB;AAAA,EAC/B,mBAAAA,QAAW,UAAU,EAAE,GAAG,oCAAsB,WAAW,MAAM,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA,gCAAS,UAAU;AAAA,IAClB,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACtB,CAAC;AACF;","names":["StarterKit"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as tiptap_markdown from 'tiptap-markdown';
|
|
2
|
+
import * as _tiptap_extension_code_block from '@tiptap/extension-code-block';
|
|
3
|
+
import * as _tiptap_extension_list from '@tiptap/extension-list';
|
|
4
|
+
import * as _tiptap_core from '@tiptap/core';
|
|
5
|
+
import * as _tiptap_starter_kit from '@tiptap/starter-kit';
|
|
6
|
+
|
|
7
|
+
declare const editorExtensions: (_tiptap_core.Extension<_tiptap_starter_kit.StarterKitOptions, any> | _tiptap_core.Extension<_tiptap_extension_list.ListKitOptions, any> | _tiptap_core.Node<_tiptap_extension_code_block.CodeBlockOptions, any> | _tiptap_core.Extension<tiptap_markdown.MarkdownOptions, tiptap_markdown.MarkdownStorage>)[];
|
|
8
|
+
|
|
9
|
+
export { editorExtensions };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as tiptap_markdown from 'tiptap-markdown';
|
|
2
|
+
import * as _tiptap_extension_code_block from '@tiptap/extension-code-block';
|
|
3
|
+
import * as _tiptap_extension_list from '@tiptap/extension-list';
|
|
4
|
+
import * as _tiptap_core from '@tiptap/core';
|
|
5
|
+
import * as _tiptap_starter_kit from '@tiptap/starter-kit';
|
|
6
|
+
|
|
7
|
+
declare const editorExtensions: (_tiptap_core.Extension<_tiptap_starter_kit.StarterKitOptions, any> | _tiptap_core.Extension<_tiptap_extension_list.ListKitOptions, any> | _tiptap_core.Node<_tiptap_extension_code_block.CodeBlockOptions, any> | _tiptap_core.Extension<tiptap_markdown.MarkdownOptions, tiptap_markdown.MarkdownStorage>)[];
|
|
8
|
+
|
|
9
|
+
export { editorExtensions };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ListKit } from "@tiptap/extension-list";
|
|
2
|
+
import StarterKit from "@tiptap/starter-kit";
|
|
3
|
+
import { Markdown } from "tiptap-markdown";
|
|
4
|
+
import { CodeBlockExtension } from "./code-block";
|
|
5
|
+
import { starterKitBaseConfig } from "./shared";
|
|
6
|
+
const editorExtensions = [
|
|
7
|
+
StarterKit.configure({ ...starterKitBaseConfig, codeBlock: false }),
|
|
8
|
+
ListKit,
|
|
9
|
+
CodeBlockExtension,
|
|
10
|
+
Markdown.configure({
|
|
11
|
+
html: false,
|
|
12
|
+
transformPastedText: true,
|
|
13
|
+
transformCopiedText: true
|
|
14
|
+
})
|
|
15
|
+
];
|
|
16
|
+
export {
|
|
17
|
+
editorExtensions
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=editor.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/editor.ts"],"sourcesContent":["import { ListKit } from '@tiptap/extension-list';\nimport StarterKit from '@tiptap/starter-kit';\nimport { Markdown } from 'tiptap-markdown';\n\nimport { CodeBlockExtension } from './code-block';\nimport { starterKitBaseConfig } from './shared';\n\n// Editor extensions = shared content model + interactive features + Markdown\n// codeBlock is disabled in StarterKit and replaced with the custom\n// CodeBlockExtension that mounts a NodeView (CodeBlockView).\nexport const editorExtensions = [\n\tStarterKit.configure({ ...starterKitBaseConfig, codeBlock: false }),\n\tListKit,\n\tCodeBlockExtension,\n\tMarkdown.configure({\n\t\thtml: false,\n\t\ttransformPastedText: true,\n\t\ttransformCopiedText: true\n\t})\n];\n"],"mappings":"AAAA,SAAS,eAAe;AACxB,OAAO,gBAAgB;AACvB,SAAS,gBAAgB;AAEzB,SAAS,0BAA0B;AACnC,SAAS,4BAA4B;AAK9B,MAAM,mBAAmB;AAAA,EAC/B,WAAW,UAAU,EAAE,GAAG,sBAAsB,WAAW,MAAM,CAAC;AAAA,EAClE;AAAA,EACA;AAAA,EACA,SAAS,UAAU;AAAA,IAClB,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACtB,CAAC;AACF;","names":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var extensions_exports = {};
|
|
20
|
+
__export(extensions_exports, {
|
|
21
|
+
editorExtensions: () => import_editor.editorExtensions,
|
|
22
|
+
sharedExtensions: () => import_shared.sharedExtensions
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(extensions_exports);
|
|
25
|
+
var import_shared = require("./shared");
|
|
26
|
+
var import_editor = require("./editor");
|
|
27
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
28
|
+
0 && (module.exports = {
|
|
29
|
+
editorExtensions,
|
|
30
|
+
sharedExtensions
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/index.ts"],"sourcesContent":["export { sharedExtensions } from './shared';\nexport { editorExtensions } from './editor';\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAiC;AACjC,oBAAiC;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/index.ts"],"sourcesContent":["export { sharedExtensions } from './shared';\nexport { editorExtensions } from './editor';\n"],"mappings":"AAAA,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;","names":[]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var shared_exports = {};
|
|
30
|
+
__export(shared_exports, {
|
|
31
|
+
sharedExtensions: () => sharedExtensions,
|
|
32
|
+
starterKitBaseConfig: () => starterKitBaseConfig
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(shared_exports);
|
|
35
|
+
var import_extension_list = require("@tiptap/extension-list");
|
|
36
|
+
var import_starter_kit = __toESM(require("@tiptap/starter-kit"), 1);
|
|
37
|
+
const starterKitBaseConfig = {
|
|
38
|
+
heading: { levels: [1, 2, 3, 4, 5, 6] },
|
|
39
|
+
link: {
|
|
40
|
+
openOnClick: false,
|
|
41
|
+
autolink: true
|
|
42
|
+
},
|
|
43
|
+
// Disable StarterKit's built-in list handling; use @tiptap/extension-list instead
|
|
44
|
+
bulletList: false,
|
|
45
|
+
orderedList: false,
|
|
46
|
+
listItem: false,
|
|
47
|
+
listKeymap: false
|
|
48
|
+
};
|
|
49
|
+
const sharedExtensions = [
|
|
50
|
+
import_starter_kit.default.configure({
|
|
51
|
+
...starterKitBaseConfig,
|
|
52
|
+
dropcursor: false,
|
|
53
|
+
gapcursor: false,
|
|
54
|
+
undoRedo: false,
|
|
55
|
+
trailingNode: false
|
|
56
|
+
}),
|
|
57
|
+
import_extension_list.ListKit
|
|
58
|
+
];
|
|
59
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
60
|
+
0 && (module.exports = {
|
|
61
|
+
sharedExtensions,
|
|
62
|
+
starterKitBaseConfig
|
|
63
|
+
});
|
|
64
|
+
//# sourceMappingURL=shared.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/shared.ts"],"sourcesContent":["import { ListKit } from '@tiptap/extension-list';\nimport StarterKit, { type StarterKitOptions } from '@tiptap/starter-kit';\n\n// Shared StarterKit config: content nodes/marks, no lists (use ListKit instead)\nexport const starterKitBaseConfig: Partial<StarterKitOptions> = {\n\theading: { levels: [1, 2, 3, 4, 5, 6] },\n\tlink: {\n\t\topenOnClick: false,\n\t\tautolink: true\n\t},\n\t// Disable StarterKit's built-in list handling; use @tiptap/extension-list instead\n\tbulletList: false,\n\torderedList: false,\n\tlistItem: false,\n\tlistKeymap: false\n};\n\n// Content model extensions — shared by editor and reader\n// No interactive features (dropcursor, gapcursor, undoRedo, trailingNode)\nexport const sharedExtensions = [\n\tStarterKit.configure({\n\t\t...starterKitBaseConfig,\n\t\tdropcursor: false,\n\t\tgapcursor: false,\n\t\tundoRedo: false,\n\t\ttrailingNode: false\n\t}),\n\tListKit\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAAwB;AACxB,yBAAmD;AAG5C,MAAM,uBAAmD;AAAA,EAC/D,SAAS,EAAE,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE;AAAA,EACtC,MAAM;AAAA,IACL,aAAa;AAAA,IACb,UAAU;AAAA,EACX;AAAA;AAAA,EAEA,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,UAAU;AAAA,EACV,YAAY;AACb;AAIO,MAAM,mBAAmB;AAAA,EAC/B,mBAAAA,QAAW,UAAU;AAAA,IACpB,GAAG;AAAA,IACH,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,cAAc;AAAA,EACf,CAAC;AAAA,EACD;AACD;","names":["StarterKit"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as _tiptap_extension_list from '@tiptap/extension-list';
|
|
2
|
+
import * as _tiptap_core from '@tiptap/core';
|
|
3
|
+
import { StarterKitOptions } from '@tiptap/starter-kit';
|
|
4
|
+
|
|
5
|
+
declare const starterKitBaseConfig: Partial<StarterKitOptions>;
|
|
6
|
+
declare const sharedExtensions: (_tiptap_core.Extension<StarterKitOptions, any> | _tiptap_core.Extension<_tiptap_extension_list.ListKitOptions, any>)[];
|
|
7
|
+
|
|
8
|
+
export { sharedExtensions, starterKitBaseConfig };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as _tiptap_extension_list from '@tiptap/extension-list';
|
|
2
|
+
import * as _tiptap_core from '@tiptap/core';
|
|
3
|
+
import { StarterKitOptions } from '@tiptap/starter-kit';
|
|
4
|
+
|
|
5
|
+
declare const starterKitBaseConfig: Partial<StarterKitOptions>;
|
|
6
|
+
declare const sharedExtensions: (_tiptap_core.Extension<StarterKitOptions, any> | _tiptap_core.Extension<_tiptap_extension_list.ListKitOptions, any>)[];
|
|
7
|
+
|
|
8
|
+
export { sharedExtensions, starterKitBaseConfig };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ListKit } from "@tiptap/extension-list";
|
|
2
|
+
import StarterKit from "@tiptap/starter-kit";
|
|
3
|
+
const starterKitBaseConfig = {
|
|
4
|
+
heading: { levels: [1, 2, 3, 4, 5, 6] },
|
|
5
|
+
link: {
|
|
6
|
+
openOnClick: false,
|
|
7
|
+
autolink: true
|
|
8
|
+
},
|
|
9
|
+
// Disable StarterKit's built-in list handling; use @tiptap/extension-list instead
|
|
10
|
+
bulletList: false,
|
|
11
|
+
orderedList: false,
|
|
12
|
+
listItem: false,
|
|
13
|
+
listKeymap: false
|
|
14
|
+
};
|
|
15
|
+
const sharedExtensions = [
|
|
16
|
+
StarterKit.configure({
|
|
17
|
+
...starterKitBaseConfig,
|
|
18
|
+
dropcursor: false,
|
|
19
|
+
gapcursor: false,
|
|
20
|
+
undoRedo: false,
|
|
21
|
+
trailingNode: false
|
|
22
|
+
}),
|
|
23
|
+
ListKit
|
|
24
|
+
];
|
|
25
|
+
export {
|
|
26
|
+
sharedExtensions,
|
|
27
|
+
starterKitBaseConfig
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=shared.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/extensions/shared.ts"],"sourcesContent":["import { ListKit } from '@tiptap/extension-list';\nimport StarterKit, { type StarterKitOptions } from '@tiptap/starter-kit';\n\n// Shared StarterKit config: content nodes/marks, no lists (use ListKit instead)\nexport const starterKitBaseConfig: Partial<StarterKitOptions> = {\n\theading: { levels: [1, 2, 3, 4, 5, 6] },\n\tlink: {\n\t\topenOnClick: false,\n\t\tautolink: true\n\t},\n\t// Disable StarterKit's built-in list handling; use @tiptap/extension-list instead\n\tbulletList: false,\n\torderedList: false,\n\tlistItem: false,\n\tlistKeymap: false\n};\n\n// Content model extensions — shared by editor and reader\n// No interactive features (dropcursor, gapcursor, undoRedo, trailingNode)\nexport const sharedExtensions = [\n\tStarterKit.configure({\n\t\t...starterKitBaseConfig,\n\t\tdropcursor: false,\n\t\tgapcursor: false,\n\t\tundoRedo: false,\n\t\ttrailingNode: false\n\t}),\n\tListKit\n];\n"],"mappings":"AAAA,SAAS,eAAe;AACxB,OAAO,gBAA4C;AAG5C,MAAM,uBAAmD;AAAA,EAC/D,SAAS,EAAE,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE;AAAA,EACtC,MAAM;AAAA,IACL,aAAa;AAAA,IACb,UAAU;AAAA,EACX;AAAA;AAAA,EAEA,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,UAAU;AAAA,EACV,YAAY;AACb;AAIO,MAAM,mBAAmB;AAAA,EAC/B,WAAW,UAAU;AAAA,IACpB,GAAG;AAAA,IACH,YAAY;AAAA,IACZ,WAAW;AAAA,IACX,UAAU;AAAA,IACV,cAAc;AAAA,EACf,CAAC;AAAA,EACD;AACD;","names":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all)
|
|
9
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
+
};
|
|
11
|
+
var __copyProps = (to, from, except, desc) => {
|
|
12
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
+
for (let key of __getOwnPropNames(from))
|
|
14
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
+
}
|
|
17
|
+
return to;
|
|
18
|
+
};
|
|
19
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
+
var use_copy_to_clipboard_exports = {};
|
|
21
|
+
__export(use_copy_to_clipboard_exports, {
|
|
22
|
+
useCopyToClipboard: () => useCopyToClipboard
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(use_copy_to_clipboard_exports);
|
|
25
|
+
var import_react = require("react");
|
|
26
|
+
const useCopyToClipboard = ({
|
|
27
|
+
timeout = 2e3,
|
|
28
|
+
onCopy
|
|
29
|
+
} = {}) => {
|
|
30
|
+
const [isCopied, setIsCopied] = (0, import_react.useState)(false);
|
|
31
|
+
const copyToClipboard = (value) => {
|
|
32
|
+
if (typeof window === "undefined" || !navigator.clipboard?.writeText) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (!value) return;
|
|
36
|
+
navigator.clipboard.writeText(value).then(() => {
|
|
37
|
+
setIsCopied(true);
|
|
38
|
+
onCopy?.();
|
|
39
|
+
setTimeout(() => {
|
|
40
|
+
setIsCopied(false);
|
|
41
|
+
}, timeout);
|
|
42
|
+
}, console.error);
|
|
43
|
+
};
|
|
44
|
+
return { isCopied, copyToClipboard };
|
|
45
|
+
};
|
|
46
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
47
|
+
0 && (module.exports = {
|
|
48
|
+
useCopyToClipboard
|
|
49
|
+
});
|
|
50
|
+
//# sourceMappingURL=use-copy-to-clipboard.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/use-copy-to-clipboard.ts"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\n\ninterface UseCopyToClipboardOptions {\n\ttimeout?: number;\n\tonCopy?: () => void;\n}\n\nexport const useCopyToClipboard = ({\n\ttimeout = 2000,\n\tonCopy\n}: UseCopyToClipboardOptions = {}) => {\n\tconst [isCopied, setIsCopied] = useState(false);\n\n\tconst copyToClipboard = (value: string) => {\n\t\tif (typeof window === 'undefined' || !navigator.clipboard?.writeText) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!value) return;\n\n\t\tnavigator.clipboard.writeText(value).then(() => {\n\t\t\tsetIsCopied(true);\n\t\t\tonCopy?.();\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetIsCopied(false);\n\t\t\t}, timeout);\n\t\t}, console.error);\n\t};\n\n\treturn { isCopied, copyToClipboard };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAyB;AAOlB,MAAM,qBAAqB,CAAC;AAAA,EAClC,UAAU;AAAA,EACV;AACD,IAA+B,CAAC,MAAM;AACrC,QAAM,CAAC,UAAU,WAAW,QAAI,uBAAS,KAAK;AAE9C,QAAM,kBAAkB,CAAC,UAAkB;AAC1C,QAAI,OAAO,WAAW,eAAe,CAAC,UAAU,WAAW,WAAW;AACrE;AAAA,IACD;AAEA,QAAI,CAAC,MAAO;AAEZ,cAAU,UAAU,UAAU,KAAK,EAAE,KAAK,MAAM;AAC/C,kBAAY,IAAI;AAChB,eAAS;AAET,iBAAW,MAAM;AAChB,oBAAY,KAAK;AAAA,MAClB,GAAG,OAAO;AAAA,IACX,GAAG,QAAQ,KAAK;AAAA,EACjB;AAEA,SAAO,EAAE,UAAU,gBAAgB;AACpC;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface UseCopyToClipboardOptions {
|
|
2
|
+
timeout?: number;
|
|
3
|
+
onCopy?: () => void;
|
|
4
|
+
}
|
|
5
|
+
declare const useCopyToClipboard: ({ timeout, onCopy }?: UseCopyToClipboardOptions) => {
|
|
6
|
+
isCopied: boolean;
|
|
7
|
+
copyToClipboard: (value: string) => void;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export { useCopyToClipboard };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface UseCopyToClipboardOptions {
|
|
2
|
+
timeout?: number;
|
|
3
|
+
onCopy?: () => void;
|
|
4
|
+
}
|
|
5
|
+
declare const useCopyToClipboard: ({ timeout, onCopy }?: UseCopyToClipboardOptions) => {
|
|
6
|
+
isCopied: boolean;
|
|
7
|
+
copyToClipboard: (value: string) => void;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export { useCopyToClipboard };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
const useCopyToClipboard = ({
|
|
4
|
+
timeout = 2e3,
|
|
5
|
+
onCopy
|
|
6
|
+
} = {}) => {
|
|
7
|
+
const [isCopied, setIsCopied] = useState(false);
|
|
8
|
+
const copyToClipboard = (value) => {
|
|
9
|
+
if (typeof window === "undefined" || !navigator.clipboard?.writeText) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
if (!value) return;
|
|
13
|
+
navigator.clipboard.writeText(value).then(() => {
|
|
14
|
+
setIsCopied(true);
|
|
15
|
+
onCopy?.();
|
|
16
|
+
setTimeout(() => {
|
|
17
|
+
setIsCopied(false);
|
|
18
|
+
}, timeout);
|
|
19
|
+
}, console.error);
|
|
20
|
+
};
|
|
21
|
+
return { isCopied, copyToClipboard };
|
|
22
|
+
};
|
|
23
|
+
export {
|
|
24
|
+
useCopyToClipboard
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=use-copy-to-clipboard.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/hooks/use-copy-to-clipboard.ts"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\n\ninterface UseCopyToClipboardOptions {\n\ttimeout?: number;\n\tonCopy?: () => void;\n}\n\nexport const useCopyToClipboard = ({\n\ttimeout = 2000,\n\tonCopy\n}: UseCopyToClipboardOptions = {}) => {\n\tconst [isCopied, setIsCopied] = useState(false);\n\n\tconst copyToClipboard = (value: string) => {\n\t\tif (typeof window === 'undefined' || !navigator.clipboard?.writeText) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!value) return;\n\n\t\tnavigator.clipboard.writeText(value).then(() => {\n\t\t\tsetIsCopied(true);\n\t\t\tonCopy?.();\n\n\t\t\tsetTimeout(() => {\n\t\t\t\tsetIsCopied(false);\n\t\t\t}, timeout);\n\t\t}, console.error);\n\t};\n\n\treturn { isCopied, copyToClipboard };\n};\n"],"mappings":";AAEA,SAAS,gBAAgB;AAOlB,MAAM,qBAAqB,CAAC;AAAA,EAClC,UAAU;AAAA,EACV;AACD,IAA+B,CAAC,MAAM;AACrC,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,KAAK;AAE9C,QAAM,kBAAkB,CAAC,UAAkB;AAC1C,QAAI,OAAO,WAAW,eAAe,CAAC,UAAU,WAAW,WAAW;AACrE;AAAA,IACD;AAEA,QAAI,CAAC,MAAO;AAEZ,cAAU,UAAU,UAAU,KAAK,EAAE,KAAK,MAAM;AAC/C,kBAAY,IAAI;AAChB,eAAS;AAET,iBAAW,MAAM;AAChB,oBAAY,KAAK;AAAA,MAClB,GAAG,OAAO;AAAA,IACX,GAAG,QAAQ,KAAK;AAAA,EACjB;AAEA,SAAO,EAAE,UAAU,gBAAgB;AACpC;","names":[]}
|