notra-editor 0.3.0 → 0.5.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.
Files changed (234) hide show
  1. package/README.md +4 -8
  2. package/dist/components/blockquote-button/blockquote-button.cjs +91 -0
  3. package/dist/components/blockquote-button/blockquote-button.cjs.map +1 -0
  4. package/dist/components/blockquote-button/blockquote-button.d.cts +9 -0
  5. package/dist/components/blockquote-button/blockquote-button.d.ts +9 -0
  6. package/dist/components/blockquote-button/blockquote-button.mjs +67 -0
  7. package/dist/components/blockquote-button/blockquote-button.mjs.map +1 -0
  8. package/dist/components/code-block-button/code-block-button.cjs +91 -0
  9. package/dist/components/code-block-button/code-block-button.cjs.map +1 -0
  10. package/dist/components/code-block-button/code-block-button.d.cts +9 -0
  11. package/dist/components/code-block-button/code-block-button.d.ts +9 -0
  12. package/dist/components/code-block-button/code-block-button.mjs +67 -0
  13. package/dist/components/code-block-button/code-block-button.mjs.map +1 -0
  14. package/dist/components/code-block-view.cjs +39 -0
  15. package/dist/components/code-block-view.cjs.map +1 -0
  16. package/dist/components/code-block-view.d.cts +12 -0
  17. package/dist/components/code-block-view.d.ts +12 -0
  18. package/dist/components/code-block-view.mjs +17 -0
  19. package/dist/components/code-block-view.mjs.map +1 -0
  20. package/dist/components/copy-button.cjs +49 -0
  21. package/dist/components/copy-button.cjs.map +1 -0
  22. package/dist/components/copy-button.d.cts +9 -0
  23. package/dist/components/copy-button.d.ts +9 -0
  24. package/dist/components/copy-button.mjs +25 -0
  25. package/dist/components/copy-button.mjs.map +1 -0
  26. package/dist/components/heading-dropdown-menu/heading-dropdown-menu.cjs +67 -0
  27. package/dist/components/heading-dropdown-menu/heading-dropdown-menu.cjs.map +1 -0
  28. package/dist/components/heading-dropdown-menu/heading-dropdown-menu.d.cts +17 -0
  29. package/dist/components/heading-dropdown-menu/heading-dropdown-menu.d.ts +17 -0
  30. package/dist/components/heading-dropdown-menu/heading-dropdown-menu.mjs +51 -0
  31. package/dist/components/heading-dropdown-menu/heading-dropdown-menu.mjs.map +1 -0
  32. package/dist/components/heading-dropdown-menu/heading-menu-item.cjs +56 -0
  33. package/dist/components/heading-dropdown-menu/heading-menu-item.cjs.map +1 -0
  34. package/dist/components/heading-dropdown-menu/heading-menu-item.d.cts +12 -0
  35. package/dist/components/heading-dropdown-menu/heading-menu-item.d.ts +12 -0
  36. package/dist/components/heading-dropdown-menu/heading-menu-item.mjs +32 -0
  37. package/dist/components/heading-dropdown-menu/heading-menu-item.mjs.map +1 -0
  38. package/dist/components/heading-dropdown-menu/use-heading.cjs +109 -0
  39. package/dist/components/heading-dropdown-menu/use-heading.cjs.map +1 -0
  40. package/dist/components/heading-dropdown-menu/use-heading.d.cts +19 -0
  41. package/dist/components/heading-dropdown-menu/use-heading.d.ts +19 -0
  42. package/dist/components/heading-dropdown-menu/use-heading.mjs +83 -0
  43. package/dist/components/heading-dropdown-menu/use-heading.mjs.map +1 -0
  44. package/dist/components/image-popover/image-popover.cjs +161 -0
  45. package/dist/components/image-popover/image-popover.cjs.map +1 -0
  46. package/dist/components/image-popover/image-popover.d.cts +9 -0
  47. package/dist/components/image-popover/image-popover.d.ts +9 -0
  48. package/dist/components/image-popover/image-popover.mjs +137 -0
  49. package/dist/components/image-popover/image-popover.mjs.map +1 -0
  50. package/dist/components/image-popover/use-image-popover.cjs +88 -0
  51. package/dist/components/image-popover/use-image-popover.cjs.map +1 -0
  52. package/dist/components/image-popover/use-image-popover.d.cts +19 -0
  53. package/dist/components/image-popover/use-image-popover.d.ts +19 -0
  54. package/dist/components/image-popover/use-image-popover.mjs +64 -0
  55. package/dist/components/image-popover/use-image-popover.mjs.map +1 -0
  56. package/dist/components/link-popover/link-popover.cjs +157 -0
  57. package/dist/components/link-popover/link-popover.cjs.map +1 -0
  58. package/dist/components/link-popover/link-popover.d.cts +9 -0
  59. package/dist/components/link-popover/link-popover.d.ts +9 -0
  60. package/dist/components/link-popover/link-popover.mjs +138 -0
  61. package/dist/components/link-popover/link-popover.mjs.map +1 -0
  62. package/dist/components/link-popover/use-link-popover.cjs +86 -0
  63. package/dist/components/link-popover/use-link-popover.cjs.map +1 -0
  64. package/dist/components/link-popover/use-link-popover.d.cts +18 -0
  65. package/dist/components/link-popover/use-link-popover.d.ts +18 -0
  66. package/dist/components/link-popover/use-link-popover.mjs +62 -0
  67. package/dist/components/link-popover/use-link-popover.mjs.map +1 -0
  68. package/dist/components/list-dropdown-menu/list-dropdown-menu.cjs +73 -0
  69. package/dist/components/list-dropdown-menu/list-dropdown-menu.cjs.map +1 -0
  70. package/dist/components/list-dropdown-menu/list-dropdown-menu.d.cts +17 -0
  71. package/dist/components/list-dropdown-menu/list-dropdown-menu.d.ts +17 -0
  72. package/dist/components/list-dropdown-menu/list-dropdown-menu.mjs +57 -0
  73. package/dist/components/list-dropdown-menu/list-dropdown-menu.mjs.map +1 -0
  74. package/dist/components/list-dropdown-menu/list-menu-item.cjs +56 -0
  75. package/dist/components/list-dropdown-menu/list-menu-item.cjs.map +1 -0
  76. package/dist/components/list-dropdown-menu/list-menu-item.d.cts +12 -0
  77. package/dist/components/list-dropdown-menu/list-menu-item.d.ts +12 -0
  78. package/dist/components/list-dropdown-menu/list-menu-item.mjs +32 -0
  79. package/dist/components/list-dropdown-menu/list-menu-item.mjs.map +1 -0
  80. package/dist/components/list-dropdown-menu/use-list.cjs +111 -0
  81. package/dist/components/list-dropdown-menu/use-list.cjs.map +1 -0
  82. package/dist/components/list-dropdown-menu/use-list.d.cts +19 -0
  83. package/dist/components/list-dropdown-menu/use-list.d.ts +19 -0
  84. package/dist/components/list-dropdown-menu/use-list.mjs +85 -0
  85. package/dist/components/list-dropdown-menu/use-list.mjs.map +1 -0
  86. package/dist/components/mark-button/mark-button.cjs +72 -0
  87. package/dist/components/mark-button/mark-button.cjs.map +1 -0
  88. package/dist/components/mark-button/mark-button.d.cts +12 -0
  89. package/dist/components/mark-button/mark-button.d.ts +12 -0
  90. package/dist/components/mark-button/mark-button.mjs +48 -0
  91. package/dist/components/mark-button/mark-button.mjs.map +1 -0
  92. package/dist/components/mark-button/use-mark.cjs +71 -0
  93. package/dist/components/mark-button/use-mark.cjs.map +1 -0
  94. package/dist/components/mark-button/use-mark.d.cts +17 -0
  95. package/dist/components/mark-button/use-mark.d.ts +17 -0
  96. package/dist/components/mark-button/use-mark.mjs +47 -0
  97. package/dist/components/mark-button/use-mark.mjs.map +1 -0
  98. package/dist/components/toolbar/toolbar.cjs +77 -0
  99. package/dist/components/toolbar/toolbar.cjs.map +1 -0
  100. package/dist/components/toolbar/toolbar.d.cts +14 -0
  101. package/dist/components/toolbar/toolbar.d.ts +14 -0
  102. package/dist/components/toolbar/toolbar.mjs +51 -0
  103. package/dist/components/toolbar/toolbar.mjs.map +1 -0
  104. package/dist/components/ui/button.cjs +82 -0
  105. package/dist/components/ui/button.cjs.map +1 -0
  106. package/dist/components/ui/button.d.cts +14 -0
  107. package/dist/components/ui/button.d.ts +14 -0
  108. package/dist/components/ui/button.mjs +57 -0
  109. package/dist/components/ui/button.mjs.map +1 -0
  110. package/dist/components/ui/dropdown-menu.cjs +290 -0
  111. package/dist/components/ui/dropdown-menu.cjs.map +1 -0
  112. package/dist/components/ui/dropdown-menu.d.cts +32 -0
  113. package/dist/components/ui/dropdown-menu.d.ts +32 -0
  114. package/dist/components/ui/dropdown-menu.mjs +252 -0
  115. package/dist/components/ui/dropdown-menu.mjs.map +1 -0
  116. package/dist/components/ui/input.cjs +44 -0
  117. package/dist/components/ui/input.cjs.map +1 -0
  118. package/dist/components/ui/input.d.cts +6 -0
  119. package/dist/components/ui/input.d.ts +6 -0
  120. package/dist/components/ui/input.mjs +20 -0
  121. package/dist/components/ui/input.mjs.map +1 -0
  122. package/dist/components/ui/popover.cjs +72 -0
  123. package/dist/components/ui/popover.cjs.map +1 -0
  124. package/dist/components/ui/popover.d.cts +10 -0
  125. package/dist/components/ui/popover.d.ts +10 -0
  126. package/dist/components/ui/popover.mjs +45 -0
  127. package/dist/components/ui/popover.mjs.map +1 -0
  128. package/dist/components/ui/separator.cjs +51 -0
  129. package/dist/components/ui/separator.cjs.map +1 -0
  130. package/dist/components/ui/separator.d.cts +7 -0
  131. package/dist/components/ui/separator.d.ts +7 -0
  132. package/dist/components/ui/separator.mjs +27 -0
  133. package/dist/components/ui/separator.mjs.map +1 -0
  134. package/dist/components/ui/spacer.cjs +32 -0
  135. package/dist/components/ui/spacer.cjs.map +1 -0
  136. package/dist/components/ui/spacer.d.cts +5 -0
  137. package/dist/components/ui/spacer.d.ts +5 -0
  138. package/dist/components/ui/spacer.mjs +8 -0
  139. package/dist/components/ui/spacer.mjs.map +1 -0
  140. package/dist/components/undo-redo-button/undo-redo-button.cjs +63 -0
  141. package/dist/components/undo-redo-button/undo-redo-button.cjs.map +1 -0
  142. package/dist/components/undo-redo-button/undo-redo-button.d.cts +12 -0
  143. package/dist/components/undo-redo-button/undo-redo-button.d.ts +12 -0
  144. package/dist/components/undo-redo-button/undo-redo-button.mjs +39 -0
  145. package/dist/components/undo-redo-button/undo-redo-button.mjs.map +1 -0
  146. package/dist/components/undo-redo-button/use-undo-redo.cjs +68 -0
  147. package/dist/components/undo-redo-button/use-undo-redo.cjs.map +1 -0
  148. package/dist/components/undo-redo-button/use-undo-redo.d.cts +17 -0
  149. package/dist/components/undo-redo-button/use-undo-redo.d.ts +17 -0
  150. package/dist/components/undo-redo-button/use-undo-redo.mjs +44 -0
  151. package/dist/components/undo-redo-button/use-undo-redo.mjs.map +1 -0
  152. package/dist/extensions/code-block.cjs +46 -0
  153. package/dist/extensions/code-block.cjs.map +1 -0
  154. package/dist/extensions/code-block.d.cts +6 -0
  155. package/dist/extensions/code-block.d.ts +6 -0
  156. package/dist/extensions/code-block.mjs +12 -0
  157. package/dist/extensions/code-block.mjs.map +1 -0
  158. package/dist/extensions/editor.cjs +55 -0
  159. package/dist/extensions/editor.cjs.map +1 -0
  160. package/dist/extensions/editor.d.cts +10 -0
  161. package/dist/extensions/editor.d.ts +10 -0
  162. package/dist/extensions/editor.mjs +21 -0
  163. package/dist/extensions/editor.mjs.map +1 -0
  164. package/dist/extensions/index.cjs +32 -0
  165. package/dist/extensions/index.cjs.map +1 -0
  166. package/dist/extensions/index.d.cts +8 -0
  167. package/dist/extensions/index.d.ts +8 -0
  168. package/dist/extensions/index.mjs +7 -0
  169. package/dist/extensions/index.mjs.map +1 -0
  170. package/dist/extensions/shared.cjs +66 -0
  171. package/dist/extensions/shared.cjs.map +1 -0
  172. package/dist/extensions/shared.d.cts +9 -0
  173. package/dist/extensions/shared.d.ts +9 -0
  174. package/dist/extensions/shared.mjs +31 -0
  175. package/dist/extensions/shared.mjs.map +1 -0
  176. package/dist/hooks/use-copy-to-clipboard.cjs +50 -0
  177. package/dist/hooks/use-copy-to-clipboard.cjs.map +1 -0
  178. package/dist/hooks/use-copy-to-clipboard.d.cts +10 -0
  179. package/dist/hooks/use-copy-to-clipboard.d.ts +10 -0
  180. package/dist/hooks/use-copy-to-clipboard.mjs +26 -0
  181. package/dist/hooks/use-copy-to-clipboard.mjs.map +1 -0
  182. package/dist/hooks/use-markdown-editor.cjs +80 -0
  183. package/dist/hooks/use-markdown-editor.cjs.map +1 -0
  184. package/dist/hooks/use-markdown-editor.d.cts +13 -0
  185. package/dist/hooks/use-markdown-editor.d.ts +13 -0
  186. package/dist/hooks/use-markdown-editor.mjs +56 -0
  187. package/dist/hooks/use-markdown-editor.mjs.map +1 -0
  188. package/dist/icons/redo-icon.cjs +54 -0
  189. package/dist/icons/redo-icon.cjs.map +1 -0
  190. package/dist/icons/redo-icon.d.cts +7 -0
  191. package/dist/icons/redo-icon.d.ts +7 -0
  192. package/dist/icons/redo-icon.mjs +30 -0
  193. package/dist/icons/redo-icon.mjs.map +1 -0
  194. package/dist/icons/undo-icon.cjs +54 -0
  195. package/dist/icons/undo-icon.cjs.map +1 -0
  196. package/dist/icons/undo-icon.d.cts +7 -0
  197. package/dist/icons/undo-icon.d.ts +7 -0
  198. package/dist/icons/undo-icon.mjs +30 -0
  199. package/dist/icons/undo-icon.mjs.map +1 -0
  200. package/dist/index.cjs +27 -1322
  201. package/dist/index.cjs.map +1 -1
  202. package/dist/index.d.cts +23 -105
  203. package/dist/index.d.ts +23 -105
  204. package/dist/index.mjs +16 -1301
  205. package/dist/index.mjs.map +1 -1
  206. package/dist/lib/utils.cjs +33 -0
  207. package/dist/lib/utils.cjs.map +1 -0
  208. package/dist/lib/utils.d.cts +5 -0
  209. package/dist/lib/utils.d.ts +5 -0
  210. package/dist/lib/utils.mjs +9 -0
  211. package/dist/lib/utils.mjs.map +1 -0
  212. package/dist/notra-editor.cjs +90 -0
  213. package/dist/notra-editor.cjs.map +1 -0
  214. package/dist/notra-editor.d.cts +17 -0
  215. package/dist/notra-editor.d.ts +17 -0
  216. package/dist/notra-editor.mjs +70 -0
  217. package/dist/notra-editor.mjs.map +1 -0
  218. package/dist/notra-reader.cjs +47 -0
  219. package/dist/notra-reader.cjs.map +1 -0
  220. package/dist/notra-reader.d.cts +11 -0
  221. package/dist/notra-reader.d.ts +11 -0
  222. package/dist/notra-reader.mjs +23 -0
  223. package/dist/notra-reader.mjs.map +1 -0
  224. package/dist/styles/globals.css +32 -0
  225. package/dist/themes/default/editor.css +2 -0
  226. package/dist/themes/default/reader.css +2 -0
  227. package/dist/themes/default/shared.css +18 -0
  228. package/dist/utils/markdown-to-json.cjs +50 -0
  229. package/dist/utils/markdown-to-json.cjs.map +1 -0
  230. package/dist/utils/markdown-to-json.d.cts +7 -0
  231. package/dist/utils/markdown-to-json.d.ts +7 -0
  232. package/dist/utils/markdown-to-json.mjs +26 -0
  233. package/dist/utils/markdown-to-json.mjs.map +1 -0
  234. package/package.json +3 -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,6 @@
1
+ import * as _tiptap_core from '@tiptap/core';
2
+ import * as _tiptap_extension_code_block from '@tiptap/extension-code-block';
3
+
4
+ declare const CodeBlockExtension: _tiptap_core.Node<_tiptap_extension_code_block.CodeBlockOptions, any>;
5
+
6
+ export { CodeBlockExtension };
@@ -0,0 +1,6 @@
1
+ import * as _tiptap_core from '@tiptap/core';
2
+ import * as _tiptap_extension_code_block from '@tiptap/extension-code-block';
3
+
4
+ declare const CodeBlockExtension: _tiptap_core.Node<_tiptap_extension_code_block.CodeBlockOptions, any>;
5
+
6
+ export { CodeBlockExtension };
@@ -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,55 @@
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_image = __toESM(require("@tiptap/extension-image"), 1);
35
+ var import_extension_list = require("@tiptap/extension-list");
36
+ var import_starter_kit = __toESM(require("@tiptap/starter-kit"), 1);
37
+ var import_tiptap_markdown = require("tiptap-markdown");
38
+ var import_code_block = require("./code-block");
39
+ var import_shared = require("./shared");
40
+ const editorExtensions = [
41
+ import_starter_kit.default.configure({ ...import_shared.starterKitBaseConfig, codeBlock: false }),
42
+ import_extension_list.ListKit,
43
+ import_code_block.CodeBlockExtension,
44
+ import_extension_image.default,
45
+ import_tiptap_markdown.Markdown.configure({
46
+ html: false,
47
+ transformPastedText: true,
48
+ transformCopiedText: true
49
+ })
50
+ ];
51
+ // Annotate the CommonJS export names for ESM import in node:
52
+ 0 && (module.exports = {
53
+ editorExtensions
54
+ });
55
+ //# sourceMappingURL=editor.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/extensions/editor.ts"],"sourcesContent":["import Image from '@tiptap/extension-image';\nimport { 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\tImage,\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,6BAAkB;AAClB,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,uBAAAC;AAAA,EACA,gCAAS,UAAU;AAAA,IAClB,MAAM;AAAA,IACN,qBAAqB;AAAA,IACrB,qBAAqB;AAAA,EACtB,CAAC;AACF;","names":["StarterKit","Image"]}
@@ -0,0 +1,10 @@
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_image from '@tiptap/extension-image';
4
+ import * as _tiptap_extension_list from '@tiptap/extension-list';
5
+ import * as _tiptap_core from '@tiptap/core';
6
+ import * as _tiptap_starter_kit from '@tiptap/starter-kit';
7
+
8
+ declare const editorExtensions: (_tiptap_core.Extension<_tiptap_starter_kit.StarterKitOptions, any> | _tiptap_core.Extension<_tiptap_extension_list.ListKitOptions, any> | _tiptap_core.Node<_tiptap_extension_image.ImageOptions, any> | _tiptap_core.Node<_tiptap_extension_code_block.CodeBlockOptions, any> | _tiptap_core.Extension<tiptap_markdown.MarkdownOptions, tiptap_markdown.MarkdownStorage>)[];
9
+
10
+ export { editorExtensions };
@@ -0,0 +1,10 @@
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_image from '@tiptap/extension-image';
4
+ import * as _tiptap_extension_list from '@tiptap/extension-list';
5
+ import * as _tiptap_core from '@tiptap/core';
6
+ import * as _tiptap_starter_kit from '@tiptap/starter-kit';
7
+
8
+ declare const editorExtensions: (_tiptap_core.Extension<_tiptap_starter_kit.StarterKitOptions, any> | _tiptap_core.Extension<_tiptap_extension_list.ListKitOptions, any> | _tiptap_core.Node<_tiptap_extension_image.ImageOptions, any> | _tiptap_core.Node<_tiptap_extension_code_block.CodeBlockOptions, any> | _tiptap_core.Extension<tiptap_markdown.MarkdownOptions, tiptap_markdown.MarkdownStorage>)[];
9
+
10
+ export { editorExtensions };
@@ -0,0 +1,21 @@
1
+ import Image from "@tiptap/extension-image";
2
+ import { ListKit } from "@tiptap/extension-list";
3
+ import StarterKit from "@tiptap/starter-kit";
4
+ import { Markdown } from "tiptap-markdown";
5
+ import { CodeBlockExtension } from "./code-block";
6
+ import { starterKitBaseConfig } from "./shared";
7
+ const editorExtensions = [
8
+ StarterKit.configure({ ...starterKitBaseConfig, codeBlock: false }),
9
+ ListKit,
10
+ CodeBlockExtension,
11
+ Image,
12
+ Markdown.configure({
13
+ html: false,
14
+ transformPastedText: true,
15
+ transformCopiedText: true
16
+ })
17
+ ];
18
+ export {
19
+ editorExtensions
20
+ };
21
+ //# sourceMappingURL=editor.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/extensions/editor.ts"],"sourcesContent":["import Image from '@tiptap/extension-image';\nimport { 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\tImage,\n\tMarkdown.configure({\n\t\thtml: false,\n\t\ttransformPastedText: true,\n\t\ttransformCopiedText: true\n\t})\n];\n"],"mappings":"AAAA,OAAO,WAAW;AAClB,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;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,8 @@
1
+ export { sharedExtensions } from './shared.cjs';
2
+ export { editorExtensions } from './editor.cjs';
3
+ import '@tiptap/extension-image';
4
+ import '@tiptap/extension-list';
5
+ import '@tiptap/core';
6
+ import '@tiptap/starter-kit';
7
+ import 'tiptap-markdown';
8
+ import '@tiptap/extension-code-block';
@@ -0,0 +1,8 @@
1
+ export { sharedExtensions } from './shared.js';
2
+ export { editorExtensions } from './editor.js';
3
+ import '@tiptap/extension-image';
4
+ import '@tiptap/extension-list';
5
+ import '@tiptap/core';
6
+ import '@tiptap/starter-kit';
7
+ import 'tiptap-markdown';
8
+ import '@tiptap/extension-code-block';
@@ -0,0 +1,7 @@
1
+ import { sharedExtensions } from "./shared";
2
+ import { editorExtensions } from "./editor";
3
+ export {
4
+ editorExtensions,
5
+ sharedExtensions
6
+ };
7
+ //# sourceMappingURL=index.mjs.map
@@ -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,66 @@
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_image = __toESM(require("@tiptap/extension-image"), 1);
36
+ var import_extension_list = require("@tiptap/extension-list");
37
+ var import_starter_kit = __toESM(require("@tiptap/starter-kit"), 1);
38
+ const starterKitBaseConfig = {
39
+ heading: { levels: [1, 2, 3, 4, 5, 6] },
40
+ link: {
41
+ openOnClick: false,
42
+ autolink: true
43
+ },
44
+ // Disable StarterKit's built-in list handling; use @tiptap/extension-list instead
45
+ bulletList: false,
46
+ orderedList: false,
47
+ listItem: false,
48
+ listKeymap: false
49
+ };
50
+ const sharedExtensions = [
51
+ import_starter_kit.default.configure({
52
+ ...starterKitBaseConfig,
53
+ dropcursor: false,
54
+ gapcursor: false,
55
+ undoRedo: false,
56
+ trailingNode: false
57
+ }),
58
+ import_extension_list.ListKit,
59
+ import_extension_image.default
60
+ ];
61
+ // Annotate the CommonJS export names for ESM import in node:
62
+ 0 && (module.exports = {
63
+ sharedExtensions,
64
+ starterKitBaseConfig
65
+ });
66
+ //# sourceMappingURL=shared.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/extensions/shared.ts"],"sourcesContent":["import Image from '@tiptap/extension-image';\nimport { 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\tImage\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAkB;AAClB,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;AAAA,EACA,uBAAAC;AACD;","names":["StarterKit","Image"]}
@@ -0,0 +1,9 @@
1
+ import * as _tiptap_extension_image from '@tiptap/extension-image';
2
+ import * as _tiptap_extension_list from '@tiptap/extension-list';
3
+ import * as _tiptap_core from '@tiptap/core';
4
+ import { StarterKitOptions } from '@tiptap/starter-kit';
5
+
6
+ declare const starterKitBaseConfig: Partial<StarterKitOptions>;
7
+ declare const sharedExtensions: (_tiptap_core.Extension<StarterKitOptions, any> | _tiptap_core.Extension<_tiptap_extension_list.ListKitOptions, any> | _tiptap_core.Node<_tiptap_extension_image.ImageOptions, any>)[];
8
+
9
+ export { sharedExtensions, starterKitBaseConfig };
@@ -0,0 +1,9 @@
1
+ import * as _tiptap_extension_image from '@tiptap/extension-image';
2
+ import * as _tiptap_extension_list from '@tiptap/extension-list';
3
+ import * as _tiptap_core from '@tiptap/core';
4
+ import { StarterKitOptions } from '@tiptap/starter-kit';
5
+
6
+ declare const starterKitBaseConfig: Partial<StarterKitOptions>;
7
+ declare const sharedExtensions: (_tiptap_core.Extension<StarterKitOptions, any> | _tiptap_core.Extension<_tiptap_extension_list.ListKitOptions, any> | _tiptap_core.Node<_tiptap_extension_image.ImageOptions, any>)[];
8
+
9
+ export { sharedExtensions, starterKitBaseConfig };
@@ -0,0 +1,31 @@
1
+ import Image from "@tiptap/extension-image";
2
+ import { ListKit } from "@tiptap/extension-list";
3
+ import StarterKit from "@tiptap/starter-kit";
4
+ const starterKitBaseConfig = {
5
+ heading: { levels: [1, 2, 3, 4, 5, 6] },
6
+ link: {
7
+ openOnClick: false,
8
+ autolink: true
9
+ },
10
+ // Disable StarterKit's built-in list handling; use @tiptap/extension-list instead
11
+ bulletList: false,
12
+ orderedList: false,
13
+ listItem: false,
14
+ listKeymap: false
15
+ };
16
+ const sharedExtensions = [
17
+ StarterKit.configure({
18
+ ...starterKitBaseConfig,
19
+ dropcursor: false,
20
+ gapcursor: false,
21
+ undoRedo: false,
22
+ trailingNode: false
23
+ }),
24
+ ListKit,
25
+ Image
26
+ ];
27
+ export {
28
+ sharedExtensions,
29
+ starterKitBaseConfig
30
+ };
31
+ //# sourceMappingURL=shared.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/extensions/shared.ts"],"sourcesContent":["import Image from '@tiptap/extension-image';\nimport { 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\tImage\n];\n"],"mappings":"AAAA,OAAO,WAAW;AAClB,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;AAAA,EACA;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":[]}