@prosekit/extensions 0.16.0-beta.0 → 0.16.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 (257) hide show
  1. package/dist/{prosekit-extensions-autocomplete.d.ts → autocomplete.d.ts} +1 -6
  2. package/dist/autocomplete.d.ts.map +1 -0
  3. package/dist/{prosekit-extensions-autocomplete.js → autocomplete.js} +1 -9
  4. package/dist/autocomplete.js.map +1 -0
  5. package/dist/{prosekit-extensions-background-color.d.ts → background-color.d.ts} +1 -8
  6. package/dist/background-color.d.ts.map +1 -0
  7. package/dist/{prosekit-extensions-background-color.js → background-color.js} +1 -7
  8. package/dist/background-color.js.map +1 -0
  9. package/dist/{prosekit-extensions-blockquote.d.ts → blockquote.d.ts} +1 -12
  10. package/dist/blockquote.d.ts.map +1 -0
  11. package/dist/{prosekit-extensions-blockquote.js → blockquote.js} +2 -12
  12. package/dist/blockquote.js.map +1 -0
  13. package/dist/{prosekit-extensions-bold.d.ts → bold.d.ts} +1 -12
  14. package/dist/bold.d.ts.map +1 -0
  15. package/dist/{prosekit-extensions-bold.js → bold.js} +2 -12
  16. package/dist/bold.js.map +1 -0
  17. package/dist/{prosekit-extensions-code-block.d.ts → code-block.d.ts} +1 -20
  18. package/dist/code-block.d.ts.map +1 -0
  19. package/dist/{prosekit-extensions-code-block.js → code-block.js} +3 -21
  20. package/dist/code-block.js.map +1 -0
  21. package/dist/{prosekit-extensions-code.d.ts → code.d.ts} +1 -12
  22. package/dist/code.d.ts.map +1 -0
  23. package/dist/{prosekit-extensions-code.js → code.js} +2 -12
  24. package/dist/code.js.map +1 -0
  25. package/dist/{prosekit-extensions-commit.d.ts → commit.d.ts} +1 -4
  26. package/dist/commit.d.ts.map +1 -0
  27. package/dist/{prosekit-extensions-commit.js → commit.js} +1 -3
  28. package/dist/commit.js.map +1 -0
  29. package/dist/{prosekit-extensions-doc.d.ts → doc.d.ts} +1 -4
  30. package/dist/doc.d.ts.map +1 -0
  31. package/dist/{prosekit-extensions-doc.js → doc.js} +1 -3
  32. package/dist/doc.js.map +1 -0
  33. package/dist/{prosekit-extensions-drop-cursor.d.ts → drop-cursor.d.ts} +1 -4
  34. package/dist/drop-cursor.d.ts.map +1 -0
  35. package/dist/{prosekit-extensions-drop-cursor.js → drop-cursor.js} +1 -3
  36. package/dist/drop-cursor.js.map +1 -0
  37. package/dist/{prosekit-extensions-drop-indicator.d.ts → drop-indicator.d.ts} +1 -4
  38. package/dist/drop-indicator.d.ts.map +1 -0
  39. package/dist/drop-indicator.js +2 -57
  40. package/dist/drop-indicator2.js +53 -0
  41. package/dist/drop-indicator2.js.map +1 -0
  42. package/dist/{prosekit-extensions-enter-rule.d.ts → enter-rule.d.ts} +1 -4
  43. package/dist/enter-rule.d.ts.map +1 -0
  44. package/dist/{prosekit-extensions-enter-rule.js → enter-rule.js} +1 -3
  45. package/dist/enter-rule.js.map +1 -0
  46. package/dist/file.js +2 -128
  47. package/dist/file2.js +120 -0
  48. package/dist/file2.js.map +1 -0
  49. package/dist/{prosekit-extensions-gap-cursor.d.ts → gap-cursor.d.ts} +1 -4
  50. package/dist/gap-cursor.d.ts.map +1 -0
  51. package/dist/{prosekit-extensions-gap-cursor.js → gap-cursor.js} +1 -3
  52. package/dist/gap-cursor.js.map +1 -0
  53. package/dist/{prosekit-extensions-hard-break.d.ts → hard-break.d.ts} +1 -10
  54. package/dist/hard-break.d.ts.map +1 -0
  55. package/dist/{prosekit-extensions-hard-break.js → hard-break.js} +1 -9
  56. package/dist/hard-break.js.map +1 -0
  57. package/dist/{prosekit-extensions-heading.d.ts → heading.d.ts} +1 -14
  58. package/dist/heading.d.ts.map +1 -0
  59. package/dist/{prosekit-extensions-heading.js → heading.js} +2 -12
  60. package/dist/heading.js.map +1 -0
  61. package/dist/{prosekit-extensions-horizontal-rule.d.ts → horizontal-rule.d.ts} +1 -10
  62. package/dist/horizontal-rule.d.ts.map +1 -0
  63. package/dist/{prosekit-extensions-horizontal-rule.js → horizontal-rule.js} +2 -10
  64. package/dist/horizontal-rule.js.map +1 -0
  65. package/dist/{prosekit-extensions-image.d.ts → image.d.ts} +1 -14
  66. package/dist/image.d.ts.map +1 -0
  67. package/dist/{prosekit-extensions-image.js → image.js} +2 -14
  68. package/dist/image.js.map +1 -0
  69. package/dist/index.d.ts +0 -7
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/{prosekit-extensions-input-rule.d.ts → input-rule.d.ts} +1 -4
  72. package/dist/input-rule.d.ts.map +1 -0
  73. package/dist/{prosekit-extensions-input-rule.js → input-rule.js} +1 -3
  74. package/dist/input-rule.js.map +1 -0
  75. package/dist/{prosekit-extensions-italic.d.ts → italic.d.ts} +1 -12
  76. package/dist/italic.d.ts.map +1 -0
  77. package/dist/{prosekit-extensions-italic.js → italic.js} +2 -12
  78. package/dist/italic.js.map +1 -0
  79. package/dist/{prosekit-extensions-link.d.ts → link.d.ts} +1 -8
  80. package/dist/link.d.ts.map +1 -0
  81. package/dist/{prosekit-extensions-link.js → link.js} +5 -11
  82. package/dist/link.js.map +1 -0
  83. package/dist/{prosekit-extensions-list.d.ts → list.d.ts} +1 -18
  84. package/dist/list.d.ts.map +1 -0
  85. package/dist/{prosekit-extensions-list.js → list.js} +3 -19
  86. package/dist/list.js.map +1 -0
  87. package/dist/{prosekit-extensions-loro.d.ts → loro.d.ts} +1 -14
  88. package/dist/loro.d.ts.map +1 -0
  89. package/dist/{prosekit-extensions-loro.js → loro.js} +1 -13
  90. package/dist/loro.js.map +1 -0
  91. package/dist/{prosekit-extensions-mark-rule.d.ts → mark-rule.d.ts} +1 -6
  92. package/dist/mark-rule.d.ts.map +1 -0
  93. package/dist/mark-rule.js +2 -157
  94. package/dist/mark-rule2.js +151 -0
  95. package/dist/mark-rule2.js.map +1 -0
  96. package/dist/{prosekit-extensions-math.d.ts → math.d.ts} +1 -10
  97. package/dist/math.d.ts.map +1 -0
  98. package/dist/{prosekit-extensions-math.js → math.js} +3 -11
  99. package/dist/math.js.map +1 -0
  100. package/dist/{prosekit-extensions-mention.d.ts → mention.d.ts} +1 -4
  101. package/dist/mention.d.ts.map +1 -0
  102. package/dist/{prosekit-extensions-mention.js → mention.js} +1 -3
  103. package/dist/mention.js.map +1 -0
  104. package/dist/{prosekit-extensions-mod-click-prevention.d.ts → mod-click-prevention.d.ts} +1 -4
  105. package/dist/mod-click-prevention.d.ts.map +1 -0
  106. package/dist/{prosekit-extensions-mod-click-prevention.js → mod-click-prevention.js} +1 -3
  107. package/dist/mod-click-prevention.js.map +1 -0
  108. package/dist/{prosekit-extensions-page.d.ts → page.d.ts} +1 -12
  109. package/dist/page.d.ts.map +1 -0
  110. package/dist/{prosekit-extensions-page.js → page.js} +3 -15
  111. package/dist/page.js.map +1 -0
  112. package/dist/{prosekit-extensions-paragraph.d.ts → paragraph.d.ts} +1 -10
  113. package/dist/paragraph.d.ts.map +1 -0
  114. package/dist/{prosekit-extensions-paragraph.js → paragraph.js} +1 -9
  115. package/dist/paragraph.js.map +1 -0
  116. package/dist/{prosekit-extensions-paste-rule.d.ts → paste-rule.d.ts} +1 -6
  117. package/dist/paste-rule.d.ts.map +1 -0
  118. package/dist/paste-rule.js +2 -158
  119. package/dist/paste-rule2.js +150 -0
  120. package/dist/paste-rule2.js.map +1 -0
  121. package/dist/{prosekit-extensions-placeholder.d.ts → placeholder.d.ts} +1 -4
  122. package/dist/placeholder.d.ts.map +1 -0
  123. package/dist/{prosekit-extensions-placeholder.js → placeholder.js} +2 -4
  124. package/dist/placeholder.js.map +1 -0
  125. package/dist/{prosekit-extensions-readonly.d.ts → readonly.d.ts} +1 -4
  126. package/dist/readonly.d.ts.map +1 -0
  127. package/dist/{prosekit-extensions-readonly.js → readonly.js} +6 -3
  128. package/dist/readonly.js.map +1 -0
  129. package/dist/{prosekit-extensions-search.d.ts → search.d.ts} +1 -4
  130. package/dist/search.d.ts.map +1 -0
  131. package/dist/{prosekit-extensions-search.js → search.js} +1 -3
  132. package/dist/search.js.map +1 -0
  133. package/dist/shiki-highlighter-chunk.js +0 -2
  134. package/dist/shiki-highlighter-chunk.js.map +1 -1
  135. package/dist/{prosekit-extensions-strike.d.ts → strike.d.ts} +1 -4
  136. package/dist/strike.d.ts.map +1 -0
  137. package/dist/{prosekit-extensions-strike.js → strike.js} +2 -4
  138. package/dist/strike.js.map +1 -0
  139. package/dist/{prosekit-extensions-table.d.ts → table.d.ts} +1 -26
  140. package/dist/table.d.ts.map +1 -0
  141. package/dist/table.js +2 -276
  142. package/dist/table2.js +252 -0
  143. package/dist/table2.js.map +1 -0
  144. package/dist/{prosekit-extensions-text-align.d.ts → text-align.d.ts} +1 -4
  145. package/dist/text-align.d.ts.map +1 -0
  146. package/dist/{prosekit-extensions-text-align.js → text-align.js} +1 -3
  147. package/dist/text-align.js.map +1 -0
  148. package/dist/{prosekit-extensions-text-color.d.ts → text-color.d.ts} +1 -8
  149. package/dist/text-color.d.ts.map +1 -0
  150. package/dist/{prosekit-extensions-text-color.js → text-color.js} +1 -7
  151. package/dist/text-color.js.map +1 -0
  152. package/dist/{prosekit-extensions-text.d.ts → text.d.ts} +1 -4
  153. package/dist/text.d.ts.map +1 -0
  154. package/dist/{prosekit-extensions-text.js → text.js} +1 -3
  155. package/dist/text.js.map +1 -0
  156. package/dist/{prosekit-extensions-underline.d.ts → underline.d.ts} +1 -4
  157. package/dist/underline.d.ts.map +1 -0
  158. package/dist/{prosekit-extensions-underline.js → underline.js} +1 -3
  159. package/dist/underline.js.map +1 -0
  160. package/dist/{prosekit-extensions-virtual-selection.d.ts → virtual-selection.d.ts} +1 -4
  161. package/dist/virtual-selection.d.ts.map +1 -0
  162. package/dist/{prosekit-extensions-virtual-selection.js → virtual-selection.js} +1 -3
  163. package/dist/virtual-selection.js.map +1 -0
  164. package/dist/{prosekit-extensions-yjs.d.ts → yjs.d.ts} +1 -16
  165. package/dist/yjs.d.ts.map +1 -0
  166. package/dist/{prosekit-extensions-yjs.js → yjs.js} +1 -13
  167. package/dist/yjs.js.map +1 -0
  168. package/package.json +136 -194
  169. package/src/page/page-element.ts +2 -2
  170. package/src/readonly/index.ts +6 -0
  171. package/dist/drop-indicator.js.map +0 -1
  172. package/dist/file.js.map +0 -1
  173. package/dist/mark-rule.js.map +0 -1
  174. package/dist/paste-rule.js.map +0 -1
  175. package/dist/prosekit-extensions-autocomplete.d.ts.map +0 -1
  176. package/dist/prosekit-extensions-autocomplete.js.map +0 -1
  177. package/dist/prosekit-extensions-background-color.d.ts.map +0 -1
  178. package/dist/prosekit-extensions-background-color.js.map +0 -1
  179. package/dist/prosekit-extensions-blockquote.d.ts.map +0 -1
  180. package/dist/prosekit-extensions-blockquote.js.map +0 -1
  181. package/dist/prosekit-extensions-bold.d.ts.map +0 -1
  182. package/dist/prosekit-extensions-bold.js.map +0 -1
  183. package/dist/prosekit-extensions-code-block.d.ts.map +0 -1
  184. package/dist/prosekit-extensions-code-block.js.map +0 -1
  185. package/dist/prosekit-extensions-code.d.ts.map +0 -1
  186. package/dist/prosekit-extensions-code.js.map +0 -1
  187. package/dist/prosekit-extensions-commit.d.ts.map +0 -1
  188. package/dist/prosekit-extensions-commit.js.map +0 -1
  189. package/dist/prosekit-extensions-doc.d.ts.map +0 -1
  190. package/dist/prosekit-extensions-doc.js.map +0 -1
  191. package/dist/prosekit-extensions-drop-cursor.d.ts.map +0 -1
  192. package/dist/prosekit-extensions-drop-cursor.js.map +0 -1
  193. package/dist/prosekit-extensions-drop-indicator.d.ts.map +0 -1
  194. package/dist/prosekit-extensions-drop-indicator.js +0 -2
  195. package/dist/prosekit-extensions-enter-rule.d.ts.map +0 -1
  196. package/dist/prosekit-extensions-enter-rule.js.map +0 -1
  197. package/dist/prosekit-extensions-file.js +0 -2
  198. package/dist/prosekit-extensions-gap-cursor.d.ts.map +0 -1
  199. package/dist/prosekit-extensions-gap-cursor.js.map +0 -1
  200. package/dist/prosekit-extensions-hard-break.d.ts.map +0 -1
  201. package/dist/prosekit-extensions-hard-break.js.map +0 -1
  202. package/dist/prosekit-extensions-heading.d.ts.map +0 -1
  203. package/dist/prosekit-extensions-heading.js.map +0 -1
  204. package/dist/prosekit-extensions-horizontal-rule.d.ts.map +0 -1
  205. package/dist/prosekit-extensions-horizontal-rule.js.map +0 -1
  206. package/dist/prosekit-extensions-image.d.ts.map +0 -1
  207. package/dist/prosekit-extensions-image.js.map +0 -1
  208. package/dist/prosekit-extensions-input-rule.d.ts.map +0 -1
  209. package/dist/prosekit-extensions-input-rule.js.map +0 -1
  210. package/dist/prosekit-extensions-italic.d.ts.map +0 -1
  211. package/dist/prosekit-extensions-italic.js.map +0 -1
  212. package/dist/prosekit-extensions-link.d.ts.map +0 -1
  213. package/dist/prosekit-extensions-link.js.map +0 -1
  214. package/dist/prosekit-extensions-list.d.ts.map +0 -1
  215. package/dist/prosekit-extensions-list.js.map +0 -1
  216. package/dist/prosekit-extensions-loro.d.ts.map +0 -1
  217. package/dist/prosekit-extensions-loro.js.map +0 -1
  218. package/dist/prosekit-extensions-mark-rule.d.ts.map +0 -1
  219. package/dist/prosekit-extensions-mark-rule.js +0 -2
  220. package/dist/prosekit-extensions-math.d.ts.map +0 -1
  221. package/dist/prosekit-extensions-math.js.map +0 -1
  222. package/dist/prosekit-extensions-mention.d.ts.map +0 -1
  223. package/dist/prosekit-extensions-mention.js.map +0 -1
  224. package/dist/prosekit-extensions-mod-click-prevention.d.ts.map +0 -1
  225. package/dist/prosekit-extensions-mod-click-prevention.js.map +0 -1
  226. package/dist/prosekit-extensions-page.d.ts.map +0 -1
  227. package/dist/prosekit-extensions-page.js.map +0 -1
  228. package/dist/prosekit-extensions-paragraph.d.ts.map +0 -1
  229. package/dist/prosekit-extensions-paragraph.js.map +0 -1
  230. package/dist/prosekit-extensions-paste-rule.d.ts.map +0 -1
  231. package/dist/prosekit-extensions-paste-rule.js +0 -2
  232. package/dist/prosekit-extensions-placeholder.d.ts.map +0 -1
  233. package/dist/prosekit-extensions-placeholder.js.map +0 -1
  234. package/dist/prosekit-extensions-readonly.d.ts.map +0 -1
  235. package/dist/prosekit-extensions-readonly.js.map +0 -1
  236. package/dist/prosekit-extensions-search.d.ts.map +0 -1
  237. package/dist/prosekit-extensions-search.js.map +0 -1
  238. package/dist/prosekit-extensions-strike.d.ts.map +0 -1
  239. package/dist/prosekit-extensions-strike.js.map +0 -1
  240. package/dist/prosekit-extensions-table.d.ts.map +0 -1
  241. package/dist/prosekit-extensions-table.js +0 -2
  242. package/dist/prosekit-extensions-text-align.d.ts.map +0 -1
  243. package/dist/prosekit-extensions-text-align.js.map +0 -1
  244. package/dist/prosekit-extensions-text-color.d.ts.map +0 -1
  245. package/dist/prosekit-extensions-text-color.js.map +0 -1
  246. package/dist/prosekit-extensions-text.d.ts.map +0 -1
  247. package/dist/prosekit-extensions-text.js.map +0 -1
  248. package/dist/prosekit-extensions-underline.d.ts.map +0 -1
  249. package/dist/prosekit-extensions-underline.js.map +0 -1
  250. package/dist/prosekit-extensions-virtual-selection.d.ts.map +0 -1
  251. package/dist/prosekit-extensions-virtual-selection.js.map +0 -1
  252. package/dist/prosekit-extensions-yjs.d.ts.map +0 -1
  253. package/dist/prosekit-extensions-yjs.js.map +0 -1
  254. package/dist/table.js.map +0 -1
  255. /package/dist/{prosekit-extensions-file.d.ts → file.d.ts} +0 -0
  256. /package/dist/{prosekit-extensions.js → index.js} +0 -0
  257. /package/dist/{prosekit-extensions.d.ts → index2.d.ts} +0 -0
package/dist/file2.js ADDED
@@ -0,0 +1,120 @@
1
+ import { ProseKitError, defineFacet, defineFacetPayload, editorEventFacet } from "@prosekit/core";
2
+ function handleFile(view, event, file, handlers) {
3
+ for (let i = handlers.length - 1; i >= 0; i--) {
4
+ const handler = handlers[i];
5
+ if (handler({
6
+ view,
7
+ event,
8
+ file
9
+ })) return true;
10
+ }
11
+ return false;
12
+ }
13
+ function handleEvent(view, event, handlers, getFiles) {
14
+ const files = getFiles(event);
15
+ let handled = false;
16
+ for (const file of files) if (handleFile(view, event, file, handlers)) handled = true;
17
+ return handled;
18
+ }
19
+ function defineFileDropHandler(handler) {
20
+ return defineFacetPayload(facet$1, [handler]);
21
+ }
22
+ function getFiles$1(event) {
23
+ return Array.from(event.dataTransfer?.files ?? []);
24
+ }
25
+ const facet$1 = defineFacet({
26
+ parent: editorEventFacet,
27
+ singleton: true,
28
+ reducer: (handlers) => {
29
+ const dropHandler = (view, event) => {
30
+ const position = view.posAtCoords({
31
+ left: event.x,
32
+ top: event.y
33
+ });
34
+ if (!position) return false;
35
+ const pos = position.inside > 0 ? position.inside : position.pos;
36
+ return handleEvent(view, event, handlers.map((handler) => (options) => handler({
37
+ ...options,
38
+ pos
39
+ })), getFiles$1);
40
+ };
41
+ return ["drop", dropHandler];
42
+ }
43
+ });
44
+ function defineFilePasteHandler(handler) {
45
+ return defineFacetPayload(facet, [handler]);
46
+ }
47
+ function getFiles(event) {
48
+ return Array.from(event.clipboardData?.files ?? []);
49
+ }
50
+ const facet = defineFacet({
51
+ parent: editorEventFacet,
52
+ singleton: true,
53
+ reducer: (handlers) => {
54
+ const pasteHandler = (view, event) => {
55
+ return handleEvent(view, event, handlers, getFiles);
56
+ };
57
+ return ["paste", pasteHandler];
58
+ }
59
+ });
60
+ /**
61
+ * A class that represents a upload task.
62
+ */
63
+ var UploadTask = class {
64
+ /**
65
+ * Creates a new upload task. You can find the upload task by its object URL
66
+ * later using `UploadTask.get()`.
67
+ *
68
+ * @param options - The options for the upload task.
69
+ */
70
+ constructor({ file, uploader }) {
71
+ this.done = false;
72
+ this.subscribers = [];
73
+ this.objectURL = URL.createObjectURL(file);
74
+ this.finished = new Promise((resolve, reject) => {
75
+ const maybePromise = uploader({
76
+ file,
77
+ onProgress: (progress) => {
78
+ for (const subscriber of this.subscribers) subscriber(progress);
79
+ }
80
+ });
81
+ Promise.resolve(maybePromise).then((result) => {
82
+ this.done = true;
83
+ URL.revokeObjectURL(this.objectURL);
84
+ this.result = result;
85
+ resolve(result);
86
+ }, (err) => {
87
+ this.done = true;
88
+ const error = new ProseKitError("[prosekit] Failed to upload file", { cause: err });
89
+ this.error = error;
90
+ reject(error);
91
+ });
92
+ });
93
+ store.set(this.objectURL, this);
94
+ }
95
+ /**
96
+ * Subscribes to progress updates. Returns a function to unsubscribe.
97
+ */
98
+ subscribeProgress(callback) {
99
+ this.subscribers.push(callback);
100
+ return () => {
101
+ this.subscribers = this.subscribers.filter((subscriber) => subscriber !== callback);
102
+ };
103
+ }
104
+ /**
105
+ * Finds an upload task from the global store by its object URL.
106
+ */
107
+ static get(objectURL) {
108
+ return store.get(objectURL);
109
+ }
110
+ /**
111
+ * Deletes an upload task from the global store by its object URL.
112
+ */
113
+ static delete(objectURL) {
114
+ store.delete(objectURL);
115
+ }
116
+ };
117
+ const store = /* @__PURE__ */ new Map();
118
+ export { defineFilePasteHandler as n, defineFileDropHandler as r, UploadTask as t };
119
+
120
+ //# sourceMappingURL=file2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file2.js","names":["facet","getFiles"],"sources":["../src/file/helpers.ts","../src/file/file-drop-handler.ts","../src/file/file-paste-handler.ts","../src/file/file-upload.ts"],"sourcesContent":["import type { EditorView } from '@prosekit/pm/view'\n\ntype FileHandler<E extends Event> = (options: {\n view: EditorView\n event: E\n file: File\n}) => boolean | void\n\nfunction handleFile<E extends Event>(\n view: EditorView,\n event: E,\n file: File,\n handlers: FileHandler<E>[],\n) {\n // The last item in `handlers` should has the highest priority.\n for (let i = handlers.length - 1; i >= 0; i--) {\n const handler = handlers[i]\n if (handler({ view, event, file })) {\n return true\n }\n }\n return false\n}\n\nexport function handleEvent<E extends Event>(\n view: EditorView,\n event: E,\n handlers: FileHandler<E>[],\n getFiles: (event: E) => File[],\n): boolean {\n const files = getFiles(event)\n let handled = false\n for (const file of files) {\n if (handleFile(view, event, file, handlers)) {\n handled = true\n }\n }\n return handled\n}\n","import {\n defineFacet,\n defineFacetPayload,\n editorEventFacet,\n type DropHandler,\n type EditorEventPayload,\n type PlainExtension,\n} from '@prosekit/core'\nimport type { EditorView } from '@prosekit/pm/view'\n\nimport { handleEvent } from './helpers.ts'\n\nexport interface FileDropHandlerOptions {\n /**\n * The editor view.\n */\n view: EditorView\n\n /**\n * The event that triggered the drop.\n */\n event: DragEvent\n\n /**\n * The file that was dropped.\n */\n file: File\n\n /**\n * The position of the document where the file was dropped.\n */\n pos: number\n}\n\n/**\n * A function that handles one of the files in a drop event.\n *\n * Returns `true` if the file was handled and thus should not be handled by\n * other handlers.\n */\nexport type FileDropHandler = (\n options: FileDropHandlerOptions,\n) => boolean | void\n\nexport function defineFileDropHandler(\n handler: FileDropHandler,\n): PlainExtension {\n return defineFacetPayload(facet, [handler]) as PlainExtension\n}\n\nfunction getFiles(event: DragEvent) {\n return Array.from(event.dataTransfer?.files ?? [])\n}\n\nconst facet = defineFacet<FileDropHandler, EditorEventPayload>({\n parent: editorEventFacet,\n singleton: true,\n reducer: (handlers: FileDropHandler[]): EditorEventPayload => {\n const dropHandler: DropHandler = (view, event): boolean => {\n const position = view.posAtCoords({ left: event.x, top: event.y })\n if (!position) {\n return false\n }\n const pos = position.inside > 0 ? position.inside : position.pos\n\n return handleEvent<DragEvent>(\n view,\n event,\n handlers.map((handler) => (options) => handler({ ...options, pos })),\n getFiles,\n )\n }\n return ['drop', dropHandler]\n },\n})\n","import {\n defineFacet,\n defineFacetPayload,\n editorEventFacet,\n type EditorEventPayload,\n type PasteHandler,\n type PlainExtension,\n} from '@prosekit/core'\nimport type { EditorView } from '@prosekit/pm/view'\n\nimport { handleEvent } from './helpers.ts'\n\nexport interface FilePasteHandlerOptions {\n /**\n * The editor view.\n */\n view: EditorView\n\n /**\n * The event that triggered the paste.\n */\n event: ClipboardEvent\n\n /**\n * The file that was pasted.\n */\n file: File\n}\n\n/**\n * A function that handles one of the files in a paste event.\n *\n * Returns `true` if the file was handled and thus should not be handled by\n * other handlers.\n */\nexport type FilePasteHandler = (\n options: FilePasteHandlerOptions,\n) => boolean | void\n\nexport function defineFilePasteHandler(\n handler: FilePasteHandler,\n): PlainExtension {\n return defineFacetPayload(facet, [handler]) as PlainExtension\n}\n\nfunction getFiles(event: ClipboardEvent) {\n return Array.from(event.clipboardData?.files ?? [])\n}\n\nconst facet = defineFacet<FilePasteHandler, EditorEventPayload>({\n parent: editorEventFacet,\n singleton: true,\n reducer: (handlers: FilePasteHandler[]): EditorEventPayload => {\n const pasteHandler: PasteHandler = (view, event): boolean => {\n return handleEvent<ClipboardEvent>(view, event, handlers, getFiles)\n }\n return ['paste', pasteHandler]\n },\n})\n","import { ProseKitError } from '@prosekit/core'\n\n/**\n * An interface representing the upload progress.\n */\nexport interface UploadProgress {\n // A number representing the amount of work already performed by the\n // underlying process.\n loaded: number\n // A number representing the total amount of work that the underlying\n // process is in the progress of performing.\n total: number\n}\n\nexport interface UploaderOptions {\n /**\n * The file to be uploaded.\n */\n file: File\n\n /**\n * A callback function that should be called with the upload progress updates.\n */\n onProgress: (progress: UploadProgress) => void\n}\n\n/**\n * The implementation of the actual upload function. You need to implement this\n * function to upload files to your desired destination.\n */\nexport type Uploader<Result> = (options: UploaderOptions) => Promise<Result>\n\n/**\n * A class that represents a upload task.\n */\nexport class UploadTask<Result> {\n /**\n * An [object URL](https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL)\n * representing the file to be uploaded. This URL will be revoked once the\n * upload is complete successfully.\n */\n readonly objectURL: string\n\n /**\n * A boolean indicating whether the upload is complete (either successfully or with an error).\n */\n protected done = false\n\n /**\n * If the upload is complete successfully, this will be the result of the upload.\n */\n protected result: Result | undefined\n\n /**\n * If the upload is complete with an error, this will be the error that occurred.\n */\n protected error: Error | undefined\n\n /**\n * A promise that fulfills once the upload is complete, or rejects if an error occurs.\n */\n readonly finished: Promise<Result>\n\n private subscribers: ((progress: UploadProgress) => void)[] = []\n\n /**\n * Creates a new upload task. You can find the upload task by its object URL\n * later using `UploadTask.get()`.\n *\n * @param options - The options for the upload task.\n */\n constructor({ file, uploader }: { file: File; uploader: Uploader<Result> }) {\n this.objectURL = URL.createObjectURL(file)\n this.finished = new Promise((resolve, reject) => {\n const maybePromise = uploader({\n file,\n onProgress: (progress) => {\n for (const subscriber of this.subscribers) {\n subscriber(progress)\n }\n },\n })\n Promise.resolve(maybePromise).then(\n (result) => {\n this.done = true\n URL.revokeObjectURL(this.objectURL)\n this.result = result\n resolve(result)\n },\n (err) => {\n this.done = true\n const error = new ProseKitError('[prosekit] Failed to upload file', { cause: err })\n this.error = error\n reject(error)\n },\n )\n })\n store.set(this.objectURL, this)\n }\n\n /**\n * Subscribes to progress updates. Returns a function to unsubscribe.\n */\n public subscribeProgress(\n callback: (progress: UploadProgress) => void,\n ): VoidFunction {\n this.subscribers.push(callback)\n return () => {\n this.subscribers = this.subscribers.filter(\n (subscriber) => subscriber !== callback,\n )\n }\n }\n\n /**\n * Finds an upload task from the global store by its object URL.\n */\n static get<Result = unknown>(\n objectURL: string,\n ): UploadTask<Result> | undefined {\n return store.get(objectURL) as UploadTask<Result> | undefined\n }\n\n /**\n * Deletes an upload task from the global store by its object URL.\n */\n static delete(objectURL: string): void {\n store.delete(objectURL)\n }\n}\n\nconst store = new Map<string, UploadTask<unknown>>()\n"],"mappings":";AAQA,SAAS,WACP,MACA,OACA,MACA,UACA;AAEA,MAAK,IAAI,IAAI,SAAS,SAAS,GAAG,KAAK,GAAG,KAAK;EAC7C,MAAM,UAAU,SAAS;AACzB,MAAI,QAAQ;GAAE;GAAM;GAAO;GAAM,CAAC,CAChC,QAAO;;AAGX,QAAO;;AAGT,SAAgB,YACd,MACA,OACA,UACA,UACS;CACT,MAAM,QAAQ,SAAS,MAAM;CAC7B,IAAI,UAAU;AACd,MAAK,MAAM,QAAQ,MACjB,KAAI,WAAW,MAAM,OAAO,MAAM,SAAS,CACzC,WAAU;AAGd,QAAO;;ACOT,SAAgB,sBACd,SACgB;AAChB,QAAO,mBAAmBA,SAAO,CAAC,QAAQ,CAAC;;AAG7C,SAASC,WAAS,OAAkB;AAClC,QAAO,MAAM,KAAK,MAAM,cAAc,SAAS,EAAE,CAAC;;AAGpD,MAAMD,UAAQ,YAAiD;CAC7D,QAAQ;CACR,WAAW;CACX,UAAU,aAAoD;EAC5D,MAAM,eAA4B,MAAM,UAAmB;GACzD,MAAM,WAAW,KAAK,YAAY;IAAE,MAAM,MAAM;IAAG,KAAK,MAAM;IAAG,CAAC;AAClE,OAAI,CAAC,SACH,QAAO;GAET,MAAM,MAAM,SAAS,SAAS,IAAI,SAAS,SAAS,SAAS;AAE7D,UAAO,YACL,MACA,OACA,SAAS,KAAK,aAAa,YAAY,QAAQ;IAAE,GAAG;IAAS;IAAK,CAAC,CAAC,EACpEC,WACD;;AAEH,SAAO,CAAC,QAAQ,YAAY;;CAE/B,CAAC;ACnCF,SAAgB,uBACd,SACgB;AAChB,QAAO,mBAAmB,OAAO,CAAC,QAAQ,CAAC;;AAG7C,SAAS,SAAS,OAAuB;AACvC,QAAO,MAAM,KAAK,MAAM,eAAe,SAAS,EAAE,CAAC;;AAGrD,MAAM,QAAQ,YAAkD;CAC9D,QAAQ;CACR,WAAW;CACX,UAAU,aAAqD;EAC7D,MAAM,gBAA8B,MAAM,UAAmB;AAC3D,UAAO,YAA4B,MAAM,OAAO,UAAU,SAAS;;AAErE,SAAO,CAAC,SAAS,aAAa;;CAEjC,CAAC;;;;ACvBF,IAAa,aAAb,MAAgC;;;;;;;CAoC9B,YAAY,EAAE,MAAM,YAAwD;cAzB3D;qBAiB6C,EAAE;AAS9D,OAAK,YAAY,IAAI,gBAAgB,KAAK;AAC1C,OAAK,WAAW,IAAI,SAAS,SAAS,WAAW;GAC/C,MAAM,eAAe,SAAS;IAC5B;IACA,aAAa,aAAa;AACxB,UAAK,MAAM,cAAc,KAAK,YAC5B,YAAW,SAAS;;IAGzB,CAAC;AACF,WAAQ,QAAQ,aAAa,CAAC,MAC3B,WAAW;AACV,SAAK,OAAO;AACZ,QAAI,gBAAgB,KAAK,UAAU;AACnC,SAAK,SAAS;AACd,YAAQ,OAAO;OAEhB,QAAQ;AACP,SAAK,OAAO;IACZ,MAAM,QAAQ,IAAI,cAAc,oCAAoC,EAAE,OAAO,KAAK,CAAC;AACnF,SAAK,QAAQ;AACb,WAAO,MAAM;KAEhB;IACD;AACF,QAAM,IAAI,KAAK,WAAW,KAAK;;;;;CAMjC,kBACE,UACc;AACd,OAAK,YAAY,KAAK,SAAS;AAC/B,eAAa;AACX,QAAK,cAAc,KAAK,YAAY,QACjC,eAAe,eAAe,SAChC;;;;;;CAOL,OAAO,IACL,WACgC;AAChC,SAAO,MAAM,IAAI,UAAU;;;;;CAM7B,OAAO,OAAO,WAAyB;AACrC,QAAM,OAAO,UAAU;;;AAI3B,MAAM,wBAAQ,IAAI,KAAkC"}
@@ -1,6 +1,4 @@
1
1
  import { PlainExtension } from "@prosekit/core";
2
-
3
- //#region src/gap-cursor/gap-cursor.d.ts
4
2
  /**
5
3
  * @internal
6
4
  */
@@ -20,6 +18,5 @@ type GapCursorExtension = PlainExtension;
20
18
  * @public
21
19
  */
22
20
  declare function defineGapCursor(): GapCursorExtension;
23
- //#endregion
24
21
  export { type GapCursorExtension, defineGapCursor };
25
- //# sourceMappingURL=prosekit-extensions-gap-cursor.d.ts.map
22
+ //# sourceMappingURL=gap-cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gap-cursor.d.ts","names":[],"sources":["../src/gap-cursor/gap-cursor.ts"],"mappings":";;AAMA;;KAAY,kBAAA,GAAqB,cAAA;;;AAgBjC;;;;;;;;;;;;iBAAgB,eAAA,CAAA,GAAmB,kBAAA"}
@@ -1,6 +1,5 @@
1
1
  import { definePlugin } from "@prosekit/core";
2
2
  import { gapCursor } from "prosemirror-gapcursor";
3
- //#region src/gap-cursor/gap-cursor.ts
4
3
  /**
5
4
  * Capture clicks near and arrow-key-motion past places that don't have a
6
5
  * normally selectable position nearby, and create a gap cursor selection for
@@ -18,7 +17,6 @@ import { gapCursor } from "prosemirror-gapcursor";
18
17
  function defineGapCursor() {
19
18
  return definePlugin(() => gapCursor());
20
19
  }
21
- //#endregion
22
20
  export { defineGapCursor };
23
21
 
24
- //# sourceMappingURL=prosekit-extensions-gap-cursor.js.map
22
+ //# sourceMappingURL=gap-cursor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gap-cursor.js","names":[],"sources":["../src/gap-cursor/gap-cursor.ts"],"sourcesContent":["import { definePlugin, type PlainExtension } from '@prosekit/core'\nimport { gapCursor } from 'prosemirror-gapcursor'\n\n/**\n * @internal\n */\nexport type GapCursorExtension = PlainExtension\n\n/**\n * Capture clicks near and arrow-key-motion past places that don't have a\n * normally selectable position nearby, and create a gap cursor selection for\n * them. The cursor is drawn as an element with class `ProseMirror-gapcursor`.\n *\n * You can either include `prosekit/extensions/gap-cursor.css` or add your own\n * styles to make it visible.\n *\n * See\n * [prosemirror-gapcursor](https://github.com/ProseMirror/prosemirror-gapcursor)\n * for more information.\n *\n * @public\n */\nexport function defineGapCursor(): GapCursorExtension {\n return definePlugin(() => gapCursor())\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAsBA,SAAgB,kBAAsC;AACpD,QAAO,mBAAmB,WAAW,CAAC"}
@@ -1,8 +1,6 @@
1
1
  import { Command } from "@prosekit/pm/state";
2
2
  import { Extension, PlainExtension, Union } from "@prosekit/core";
3
3
  import { Attrs } from "@prosekit/pm/model";
4
-
5
- //#region src/hard-break/hard-break-commands.d.ts
6
4
  /**
7
5
  * @internal
8
6
  */
@@ -15,14 +13,10 @@ type HardBreakCommandsExtension = Extension<{
15
13
  * @internal
16
14
  */
17
15
  declare function defineHardBreakCommands(): HardBreakCommandsExtension;
18
- //#endregion
19
- //#region src/hard-break/hard-break-keymap.d.ts
20
16
  /**
21
17
  * @internal
22
18
  */
23
19
  declare function defineHardBreakKeymap(): PlainExtension;
24
- //#endregion
25
- //#region src/hard-break/hard-break-spec.d.ts
26
20
  /**
27
21
  * @internal
28
22
  */
@@ -35,8 +29,6 @@ type HardBreakSpecExtension = Extension<{
35
29
  * @internal
36
30
  */
37
31
  declare function defineHardBreakSpec(): HardBreakSpecExtension;
38
- //#endregion
39
- //#region src/hard-break/hard-break.d.ts
40
32
  /**
41
33
  * @internal
42
34
  */
@@ -45,6 +37,5 @@ type HardBreakExtension = Union<[HardBreakSpecExtension, HardBreakCommandsExtens
45
37
  * @public
46
38
  */
47
39
  declare function defineHardBreak(): HardBreakExtension;
48
- //#endregion
49
40
  export { type HardBreakCommandsExtension, type HardBreakExtension, type HardBreakSpecExtension, defineHardBreak, defineHardBreakCommands, defineHardBreakKeymap, defineHardBreakSpec };
50
- //# sourceMappingURL=prosekit-extensions-hard-break.d.ts.map
41
+ //# sourceMappingURL=hard-break.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hard-break.d.ts","names":[],"sources":["../src/hard-break/hard-break-commands.ts","../src/hard-break/hard-break-keymap.ts","../src/hard-break/hard-break-spec.ts","../src/hard-break/hard-break.ts"],"mappings":";;;;;AAMA;KAAY,0BAAA,GAA6B,SAAA;EACvC,QAAA;IACE,eAAA;EAAA;AAAA;;;;iBAcY,uBAAA,CAAA,GAA2B,0BAAA;;;;iBCf3B,qBAAA,CAAA,GAAyB,cAAA;;;ADDzC;KEAY,sBAAA,GAAyB,SAAA;EACnC,KAAA;IACE,SAAA,EAAW,KAAA;EAAA;AAAA;;;;iBAOC,mBAAA,CAAA,GAAuB,sBAAA;;AFTvC;;KGGY,kBAAA,GAAqB,KAAA,EAC9B,sBAAA,EAAwB,0BAAA;;;;iBAMX,eAAA,CAAA,GAAmB,kBAAA"}
@@ -1,5 +1,4 @@
1
1
  import { defineCommands, defineKeymap, defineNodeSpec, insertNode, union } from "@prosekit/core";
2
- //#region src/hard-break/hard-break-commands.ts
3
2
  /**
4
3
  * @internal
5
4
  */
@@ -12,8 +11,6 @@ function insertHardBreak() {
12
11
  function defineHardBreakCommands() {
13
12
  return defineCommands({ insertHardBreak });
14
13
  }
15
- //#endregion
16
- //#region src/hard-break/hard-break-keymap.ts
17
14
  /**
18
15
  * @internal
19
16
  */
@@ -23,8 +20,6 @@ function defineHardBreakKeymap() {
23
20
  "Shift-Enter": insertHardBreak()
24
21
  });
25
22
  }
26
- //#endregion
27
- //#region src/hard-break/hard-break-spec.ts
28
23
  /**
29
24
  * @internal
30
25
  */
@@ -41,15 +36,12 @@ function defineHardBreakSpec() {
41
36
  }
42
37
  });
43
38
  }
44
- //#endregion
45
- //#region src/hard-break/hard-break.ts
46
39
  /**
47
40
  * @public
48
41
  */
49
42
  function defineHardBreak() {
50
43
  return union(defineHardBreakSpec(), defineHardBreakKeymap(), defineHardBreakCommands());
51
44
  }
52
- //#endregion
53
45
  export { defineHardBreak, defineHardBreakCommands, defineHardBreakKeymap, defineHardBreakSpec };
54
46
 
55
- //# sourceMappingURL=prosekit-extensions-hard-break.js.map
47
+ //# sourceMappingURL=hard-break.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hard-break.js","names":[],"sources":["../src/hard-break/hard-break-commands.ts","../src/hard-break/hard-break-keymap.ts","../src/hard-break/hard-break-spec.ts","../src/hard-break/hard-break.ts"],"sourcesContent":["import { defineCommands, insertNode, type Extension } from '@prosekit/core'\nimport type { Command } from '@prosekit/pm/state'\n\n/**\n * @internal\n */\nexport type HardBreakCommandsExtension = Extension<{\n Commands: {\n insertHardBreak: []\n }\n}>\n\n/**\n * @internal\n */\nexport function insertHardBreak(): Command {\n return insertNode({ type: 'hardBreak' })\n}\n\n/**\n * @internal\n */\nexport function defineHardBreakCommands(): HardBreakCommandsExtension {\n return defineCommands({\n insertHardBreak: insertHardBreak,\n })\n}\n","import { defineKeymap, type PlainExtension } from '@prosekit/core'\n\nimport { insertHardBreak } from './hard-break-commands.ts'\n\n/**\n * @internal\n */\nexport function defineHardBreakKeymap(): PlainExtension {\n return defineKeymap({\n 'Mod-Enter': insertHardBreak(),\n 'Shift-Enter': insertHardBreak(),\n })\n}\n","import { defineNodeSpec, type Extension } from '@prosekit/core'\nimport type { Attrs } from '@prosekit/pm/model'\n\n/**\n * @internal\n */\nexport type HardBreakSpecExtension = Extension<{\n Nodes: {\n hardBreak: Attrs\n }\n}>\n\n/**\n * @internal\n */\nexport function defineHardBreakSpec(): HardBreakSpecExtension {\n return defineNodeSpec({\n name: 'hardBreak',\n inline: true,\n selectable: false,\n leafText: () => '\\n',\n group: 'inline',\n parseDOM: [{ tag: 'br' }],\n toDOM() {\n return ['br']\n },\n })\n}\n","import { union, type Union } from '@prosekit/core'\n\nimport { defineHardBreakCommands, type HardBreakCommandsExtension } from './hard-break-commands.ts'\nimport { defineHardBreakKeymap } from './hard-break-keymap.ts'\nimport { defineHardBreakSpec, type HardBreakSpecExtension } from './hard-break-spec.ts'\n\n/**\n * @internal\n */\nexport type HardBreakExtension = Union<\n [HardBreakSpecExtension, HardBreakCommandsExtension]\n>\n\n/**\n * @public\n */\nexport function defineHardBreak(): HardBreakExtension {\n return union(\n defineHardBreakSpec(),\n defineHardBreakKeymap(),\n defineHardBreakCommands(),\n )\n}\n"],"mappings":";;;;AAeA,SAAgB,kBAA2B;AACzC,QAAO,WAAW,EAAE,MAAM,aAAa,CAAC;;;;;AAM1C,SAAgB,0BAAsD;AACpE,QAAO,eAAe,EACH,iBAClB,CAAC;;;;;AClBJ,SAAgB,wBAAwC;AACtD,QAAO,aAAa;EAClB,aAAa,iBAAiB;EAC9B,eAAe,iBAAiB;EACjC,CAAC;;;;;ACIJ,SAAgB,sBAA8C;AAC5D,QAAO,eAAe;EACpB,MAAM;EACN,QAAQ;EACR,YAAY;EACZ,gBAAgB;EAChB,OAAO;EACP,UAAU,CAAC,EAAE,KAAK,MAAM,CAAC;EACzB,QAAQ;AACN,UAAO,CAAC,KAAK;;EAEhB,CAAC;;;;;ACVJ,SAAgB,kBAAsC;AACpD,QAAO,MACL,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,CAC1B"}
@@ -1,11 +1,7 @@
1
1
  import { Extension, PlainExtension, Union } from "@prosekit/core";
2
-
3
- //#region src/heading/heading-types.d.ts
4
2
  interface HeadingAttrs {
5
3
  level: number;
6
4
  }
7
- //#endregion
8
- //#region src/heading/heading-commands.d.ts
9
5
  /**
10
6
  * @internal
11
7
  */
@@ -20,8 +16,6 @@ type HeadingCommandsExtension = Extension<{
20
16
  * @internal
21
17
  */
22
18
  declare function defineHeadingCommands(): HeadingCommandsExtension;
23
- //#endregion
24
- //#region src/heading/heading-input-rule.d.ts
25
19
  /**
26
20
  * Converts the text block to a heading when `#` is typed at the start of a new
27
21
  * line followed by a space.
@@ -29,14 +23,10 @@ declare function defineHeadingCommands(): HeadingCommandsExtension;
29
23
  * @internal
30
24
  */
31
25
  declare function defineHeadingInputRule(): PlainExtension;
32
- //#endregion
33
- //#region src/heading/heading-keymap.d.ts
34
26
  /**
35
27
  * @internal
36
28
  */
37
29
  declare function defineHeadingKeymap(): PlainExtension;
38
- //#endregion
39
- //#region src/heading/heading-spec.d.ts
40
30
  /**
41
31
  * @internal
42
32
  */
@@ -49,8 +39,6 @@ type HeadingSpecExtension = Extension<{
49
39
  * @internal
50
40
  */
51
41
  declare function defineHeadingSpec(): HeadingSpecExtension;
52
- //#endregion
53
- //#region src/heading/heading.d.ts
54
42
  /**
55
43
  * @internal
56
44
  */
@@ -59,6 +47,5 @@ type HeadingExtension = Union<[HeadingSpecExtension, HeadingCommandsExtension]>;
59
47
  * @public
60
48
  */
61
49
  declare function defineHeading(): HeadingExtension;
62
- //#endregion
63
50
  export { type HeadingAttrs, type HeadingCommandsExtension, type HeadingExtension, type HeadingSpecExtension, defineHeading, defineHeadingCommands, defineHeadingInputRule, defineHeadingKeymap, defineHeadingSpec };
64
- //# sourceMappingURL=prosekit-extensions-heading.d.ts.map
51
+ //# sourceMappingURL=heading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heading.d.ts","names":[],"sources":["../src/heading/heading-types.ts","../src/heading/heading-commands.ts","../src/heading/heading-input-rule.ts","../src/heading/heading-keymap.ts","../src/heading/heading-spec.ts","../src/heading/heading.ts"],"mappings":";UAAiB,YAAA;EACf,KAAA;AAAA;AADF;;;AAAA,KCOY,wBAAA,GAA2B,SAAA;EACrC,QAAA;IACE,UAAA,GAAa,KAAA,GAAQ,YAAA;IACrB,aAAA,GAAgB,KAAA,GAAQ,YAAA;IACxB,aAAA,GAAgB,KAAA,GAAQ,YAAA;EAAA;AAAA;;;;iBAOZ,qBAAA,CAAA,GAAyB,wBAAA;;ADlBzC;;;;;iBEYgB,sBAAA,CAAA,GAA0B,cAAA;;AFZ1C;;iBGsBgB,mBAAA,CAAA,GAAuB,cAAA;AHtBvC;;;AAAA,KIOY,oBAAA,GAAuB,SAAA;EACjC,KAAA;IACE,OAAA,EAAS,YAAA;EAAA;AAAA;;;;iBAOG,iBAAA,CAAA,GAAqB,oBAAA;;;;KCNzB,gBAAA,GAAmB,KAAA,EAC5B,oBAAA,EAAsB,wBAAA;;;;iBAMT,aAAA,CAAA,GAAiB,gBAAA"}
@@ -1,6 +1,5 @@
1
- import { defineTextBlockInputRule } from "./prosekit-extensions-input-rule.js";
1
+ import { defineTextBlockInputRule } from "./input-rule.js";
2
2
  import { defineCommands, defineKeymap, defineNodeSpec, insertNode, isAtBlockStart, setBlockType, toggleNode, union, unsetBlockType, withSkipCodeBlock } from "@prosekit/core";
3
- //#region src/heading/heading-commands.ts
4
3
  /**
5
4
  * @internal
6
5
  */
@@ -26,8 +25,6 @@ function defineHeadingCommands() {
26
25
  }
27
26
  });
28
27
  }
29
- //#endregion
30
- //#region src/heading/heading-input-rule.ts
31
28
  /**
32
29
  * Converts the text block to a heading when `#` is typed at the start of a new
33
30
  * line followed by a space.
@@ -43,8 +40,6 @@ function defineHeadingInputRule() {
43
40
  }
44
41
  });
45
42
  }
46
- //#endregion
47
- //#region src/heading/heading-keymap.ts
48
43
  function toggleHeadingKeybinding(level) {
49
44
  return withSkipCodeBlock(toggleNode({
50
45
  type: "heading",
@@ -73,8 +68,6 @@ function defineHeadingKeymap() {
73
68
  "Backspace": backspaceUnsetHeading
74
69
  });
75
70
  }
76
- //#endregion
77
- //#region src/heading/heading-spec.ts
78
71
  /**
79
72
  * @internal
80
73
  */
@@ -119,15 +112,12 @@ function defineHeadingSpec() {
119
112
  }
120
113
  });
121
114
  }
122
- //#endregion
123
- //#region src/heading/heading.ts
124
115
  /**
125
116
  * @public
126
117
  */
127
118
  function defineHeading() {
128
119
  return union(defineHeadingSpec(), defineHeadingInputRule(), defineHeadingKeymap(), defineHeadingCommands());
129
120
  }
130
- //#endregion
131
121
  export { defineHeading, defineHeadingCommands, defineHeadingInputRule, defineHeadingKeymap, defineHeadingSpec };
132
122
 
133
- //# sourceMappingURL=prosekit-extensions-heading.js.map
123
+ //# sourceMappingURL=heading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heading.js","names":[],"sources":["../src/heading/heading-commands.ts","../src/heading/heading-input-rule.ts","../src/heading/heading-keymap.ts","../src/heading/heading-spec.ts","../src/heading/heading.ts"],"sourcesContent":["import { defineCommands, insertNode, setBlockType, toggleNode, type Extension } from '@prosekit/core'\n\nimport type { HeadingAttrs } from './heading-types.ts'\n\n/**\n * @internal\n */\nexport type HeadingCommandsExtension = Extension<{\n Commands: {\n setHeading: [attrs?: HeadingAttrs | undefined]\n insertHeading: [attrs?: HeadingAttrs | undefined]\n toggleHeading: [attrs?: HeadingAttrs | undefined]\n }\n}>\n\n/**\n * @internal\n */\nexport function defineHeadingCommands(): HeadingCommandsExtension {\n return defineCommands({\n setHeading: (attrs?: HeadingAttrs) => {\n return setBlockType({ type: 'heading', attrs })\n },\n insertHeading: (attrs?: HeadingAttrs) => {\n return insertNode({ type: 'heading', attrs })\n },\n toggleHeading: (attrs?: HeadingAttrs) => {\n return toggleNode({ type: 'heading', attrs })\n },\n })\n}\n","import type { PlainExtension } from '@prosekit/core'\n\nimport { defineTextBlockInputRule } from '../input-rule/index.ts'\n\nimport type { HeadingAttrs } from './heading-types.ts'\n\n/**\n * Converts the text block to a heading when `#` is typed at the start of a new\n * line followed by a space.\n *\n * @internal\n */\nexport function defineHeadingInputRule(): PlainExtension {\n return defineTextBlockInputRule({\n regex: /^(#{1,6})\\s$/,\n type: 'heading',\n attrs: (match) => {\n const level: number = match[1]?.length ?? 1\n return { level } satisfies HeadingAttrs\n },\n })\n}\n","import { defineKeymap, isAtBlockStart, toggleNode, unsetBlockType, withSkipCodeBlock, type PlainExtension } from '@prosekit/core'\nimport type { Command } from '@prosekit/pm/state'\n\nfunction toggleHeadingKeybinding(level: number): Command {\n return withSkipCodeBlock(toggleNode({ type: 'heading', attrs: { level } }))\n}\n\n/**\n * Set the block type to default (usually `paragraph`) when pressing Backspace at\n * the start of a heading block.\n */\nconst backspaceUnsetHeading: Command = (state, dispatch, view) => {\n const $pos = isAtBlockStart(state, view)\n if ($pos?.parent.type.name === 'heading') {\n return unsetBlockType()(state, dispatch, view)\n }\n return false\n}\n\n/**\n * @internal\n */\nexport function defineHeadingKeymap(): PlainExtension {\n return defineKeymap({\n 'Mod-Alt-1': toggleHeadingKeybinding(1),\n 'Mod-Alt-2': toggleHeadingKeybinding(2),\n 'Mod-Alt-3': toggleHeadingKeybinding(3),\n 'Mod-Alt-4': toggleHeadingKeybinding(4),\n 'Mod-Alt-5': toggleHeadingKeybinding(5),\n 'Mod-Alt-6': toggleHeadingKeybinding(6),\n 'Backspace': backspaceUnsetHeading,\n })\n}\n","import { defineNodeSpec, type Extension } from '@prosekit/core'\n\nimport type { HeadingAttrs } from './heading-types.ts'\n\n/**\n * @internal\n */\nexport type HeadingSpecExtension = Extension<{\n Nodes: {\n heading: HeadingAttrs\n }\n}>\n\n/**\n * @internal\n */\nexport function defineHeadingSpec(): HeadingSpecExtension {\n return defineNodeSpec({\n name: 'heading',\n attrs: { level: { default: 1, validate: 'number' } },\n content: 'inline*',\n group: 'block',\n defining: true,\n parseDOM: [\n { tag: 'h1', attrs: { level: 1 } },\n { tag: 'h2', attrs: { level: 2 } },\n { tag: 'h3', attrs: { level: 3 } },\n { tag: 'h4', attrs: { level: 4 } },\n { tag: 'h5', attrs: { level: 5 } },\n { tag: 'h6', attrs: { level: 6 } },\n ],\n toDOM(node) {\n return [`h${node.attrs.level}`, 0]\n },\n })\n}\n","import { union, type Union } from '@prosekit/core'\n\nimport { defineHeadingCommands, type HeadingCommandsExtension } from './heading-commands.ts'\nimport { defineHeadingInputRule } from './heading-input-rule.ts'\nimport { defineHeadingKeymap } from './heading-keymap.ts'\nimport { defineHeadingSpec, type HeadingSpecExtension } from './heading-spec.ts'\n\n/**\n * @internal\n */\nexport type HeadingExtension = Union<\n [HeadingSpecExtension, HeadingCommandsExtension]\n>\n\n/**\n * @public\n */\nexport function defineHeading(): HeadingExtension {\n return union(\n defineHeadingSpec(),\n defineHeadingInputRule(),\n defineHeadingKeymap(),\n defineHeadingCommands(),\n )\n}\n"],"mappings":";;;;;AAkBA,SAAgB,wBAAkD;AAChE,QAAO,eAAe;EACpB,aAAa,UAAyB;AACpC,UAAO,aAAa;IAAE,MAAM;IAAW;IAAO,CAAC;;EAEjD,gBAAgB,UAAyB;AACvC,UAAO,WAAW;IAAE,MAAM;IAAW;IAAO,CAAC;;EAE/C,gBAAgB,UAAyB;AACvC,UAAO,WAAW;IAAE,MAAM;IAAW;IAAO,CAAC;;EAEhD,CAAC;;;;;;;;ACjBJ,SAAgB,yBAAyC;AACvD,QAAO,yBAAyB;EAC9B,OAAO;EACP,MAAM;EACN,QAAQ,UAAU;AAEhB,UAAO,EAAE,OADa,MAAM,IAAI,UAAU,GAC1B;;EAEnB,CAAC;;ACjBJ,SAAS,wBAAwB,OAAwB;AACvD,QAAO,kBAAkB,WAAW;EAAE,MAAM;EAAW,OAAO,EAAE,OAAO;EAAE,CAAC,CAAC;;;;;;AAO7E,MAAM,yBAAkC,OAAO,UAAU,SAAS;AAEhE,KADa,eAAe,OAAO,KAC3B,EAAE,OAAO,KAAK,SAAS,UAC7B,QAAO,gBAAgB,CAAC,OAAO,UAAU,KAAK;AAEhD,QAAO;;;;;AAMT,SAAgB,sBAAsC;AACpD,QAAO,aAAa;EAClB,aAAa,wBAAwB,EAAE;EACvC,aAAa,wBAAwB,EAAE;EACvC,aAAa,wBAAwB,EAAE;EACvC,aAAa,wBAAwB,EAAE;EACvC,aAAa,wBAAwB,EAAE;EACvC,aAAa,wBAAwB,EAAE;EACvC,aAAa;EACd,CAAC;;;;;ACfJ,SAAgB,oBAA0C;AACxD,QAAO,eAAe;EACpB,MAAM;EACN,OAAO,EAAE,OAAO;GAAE,SAAS;GAAG,UAAU;GAAU,EAAE;EACpD,SAAS;EACT,OAAO;EACP,UAAU;EACV,UAAU;GACR;IAAE,KAAK;IAAM,OAAO,EAAE,OAAO,GAAG;IAAE;GAClC;IAAE,KAAK;IAAM,OAAO,EAAE,OAAO,GAAG;IAAE;GAClC;IAAE,KAAK;IAAM,OAAO,EAAE,OAAO,GAAG;IAAE;GAClC;IAAE,KAAK;IAAM,OAAO,EAAE,OAAO,GAAG;IAAE;GAClC;IAAE,KAAK;IAAM,OAAO,EAAE,OAAO,GAAG;IAAE;GAClC;IAAE,KAAK;IAAM,OAAO,EAAE,OAAO,GAAG;IAAE;GACnC;EACD,MAAM,MAAM;AACV,UAAO,CAAC,IAAI,KAAK,MAAM,SAAS,EAAE;;EAErC,CAAC;;;;;ACjBJ,SAAgB,gBAAkC;AAChD,QAAO,MACL,mBAAmB,EACnB,wBAAwB,EACxB,qBAAqB,EACrB,uBAAuB,CACxB"}
@@ -1,8 +1,6 @@
1
1
  import { Command } from "@prosekit/pm/state";
2
2
  import { Extension, PlainExtension, Union } from "@prosekit/core";
3
3
  import { Attrs } from "@prosekit/pm/model";
4
-
5
- //#region src/horizontal-rule/horizontal-rule-commands.d.ts
6
4
  type HorizontalRuleCommandsExtension = Extension<{
7
5
  Commands: {
8
6
  insertHorizontalRule: [];
@@ -13,27 +11,20 @@ type HorizontalRuleCommandsExtension = Extension<{
13
11
  */
14
12
  declare function insertHorizontalRule(): Command;
15
13
  declare function defineHorizontalRuleCommands(): HorizontalRuleCommandsExtension;
16
- //#endregion
17
- //#region src/horizontal-rule/horizontal-rule-input-rule.d.ts
18
14
  /**
19
15
  * @public
20
16
  */
21
17
  declare function defineHorizontalRuleInputRule(): PlainExtension;
22
- //#endregion
23
- //#region src/horizontal-rule/horizontal-rule-spec.d.ts
24
18
  type HorizontalRuleSpecExtension = Extension<{
25
19
  Nodes: {
26
20
  horizontalRule: Attrs;
27
21
  };
28
22
  }>;
29
23
  declare function defineHorizontalRuleSpec(): HorizontalRuleSpecExtension;
30
- //#endregion
31
- //#region src/horizontal-rule/horizontal-rule.d.ts
32
24
  type HorizontalRuleExtension = Union<[HorizontalRuleSpecExtension, HorizontalRuleCommandsExtension]>;
33
25
  /**
34
26
  * @public
35
27
  */
36
28
  declare function defineHorizontalRule(): HorizontalRuleExtension;
37
- //#endregion
38
29
  export { type HorizontalRuleCommandsExtension, type HorizontalRuleExtension, type HorizontalRuleSpecExtension, defineHorizontalRule, defineHorizontalRuleCommands, defineHorizontalRuleInputRule, defineHorizontalRuleSpec, insertHorizontalRule };
39
- //# sourceMappingURL=prosekit-extensions-horizontal-rule.d.ts.map
30
+ //# sourceMappingURL=horizontal-rule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"horizontal-rule.d.ts","names":[],"sources":["../src/horizontal-rule/horizontal-rule-commands.ts","../src/horizontal-rule/horizontal-rule-input-rule.ts","../src/horizontal-rule/horizontal-rule-spec.ts","../src/horizontal-rule/horizontal-rule.ts"],"mappings":";;;KAIY,+BAAA,GAAkC,SAAA;EAC5C,QAAA;IACE,oBAAA;EAAA;AAAA;;;;iBAoBY,oBAAA,CAAA,GAAwB,OAAA;AAAA,iBAIxB,4BAAA,CAAA,GAAgC,+BAAA;;;;iBCtBhC,6BAAA,CAAA,GAAiC,cAAA;AAAA,KCLrC,2BAAA,GAA8B,SAAA;EACxC,KAAA;IACE,cAAA,EAAgB,KAAA;EAAA;AAAA;AAAA,iBAIJ,wBAAA,CAAA,GAA4B,2BAAA;AAAA,KCHhC,uBAAA,GAA0B,KAAA,EACnC,2BAAA,EAA6B,+BAAA;;;;iBAMhB,oBAAA,CAAA,GAAwB,uBAAA"}
@@ -1,8 +1,7 @@
1
- import { defineInputRule } from "./prosekit-extensions-input-rule.js";
1
+ import { defineInputRule } from "./input-rule.js";
2
2
  import { defineCommands, defineNodeSpec, getNodeType, union } from "@prosekit/core";
3
3
  import { InputRule } from "@prosekit/pm/inputrules";
4
4
  import { Fragment, Slice } from "@prosekit/pm/model";
5
- //#region src/horizontal-rule/horizontal-rule-commands.ts
6
5
  const insertHorizontalRuleCommand = (state, dispatch) => {
7
6
  if (!dispatch) return true;
8
7
  const { schema, tr } = state;
@@ -22,8 +21,6 @@ function insertHorizontalRule() {
22
21
  function defineHorizontalRuleCommands() {
23
22
  return defineCommands({ insertHorizontalRule });
24
23
  }
25
- //#endregion
26
- //#region src/horizontal-rule/horizontal-rule-input-rule.ts
27
24
  /**
28
25
  * @public
29
26
  */
@@ -36,8 +33,6 @@ function defineHorizontalRuleInputRule() {
36
33
  return tr.scrollIntoView();
37
34
  })));
38
35
  }
39
- //#endregion
40
- //#region src/horizontal-rule/horizontal-rule-spec.ts
41
36
  function defineHorizontalRuleSpec() {
42
37
  return defineNodeSpec({
43
38
  name: "horizontalRule",
@@ -50,15 +45,12 @@ function defineHorizontalRuleSpec() {
50
45
  ]
51
46
  });
52
47
  }
53
- //#endregion
54
- //#region src/horizontal-rule/horizontal-rule.ts
55
48
  /**
56
49
  * @public
57
50
  */
58
51
  function defineHorizontalRule() {
59
52
  return union(defineHorizontalRuleSpec(), defineHorizontalRuleInputRule(), defineHorizontalRuleCommands());
60
53
  }
61
- //#endregion
62
54
  export { defineHorizontalRule, defineHorizontalRuleCommands, defineHorizontalRuleInputRule, defineHorizontalRuleSpec, insertHorizontalRule };
63
55
 
64
- //# sourceMappingURL=prosekit-extensions-horizontal-rule.js.map
56
+ //# sourceMappingURL=horizontal-rule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"horizontal-rule.js","names":[],"sources":["../src/horizontal-rule/horizontal-rule-commands.ts","../src/horizontal-rule/horizontal-rule-input-rule.ts","../src/horizontal-rule/horizontal-rule-spec.ts","../src/horizontal-rule/horizontal-rule.ts"],"sourcesContent":["import { defineCommands, getNodeType, type Extension } from '@prosekit/core'\nimport { Fragment, Slice } from '@prosekit/pm/model'\nimport type { Command } from '@prosekit/pm/state'\n\nexport type HorizontalRuleCommandsExtension = Extension<{\n Commands: {\n insertHorizontalRule: []\n }\n}>\n\nconst insertHorizontalRuleCommand: Command = (state, dispatch): boolean => {\n if (!dispatch) return true\n\n const { schema, tr } = state\n const type = getNodeType(schema, 'horizontalRule')\n const node = type.createChecked()\n const pos = tr.selection.anchor\n const slice = new Slice(Fragment.from(node), 0, 0)\n tr.replaceRange(pos, pos, slice).scrollIntoView()\n dispatch(tr)\n return true\n}\n\n/**\n * Returns a command that inserts a horizontal rule at the current selection.\n */\nexport function insertHorizontalRule(): Command {\n return insertHorizontalRuleCommand\n}\n\nexport function defineHorizontalRuleCommands(): HorizontalRuleCommandsExtension {\n return defineCommands({ insertHorizontalRule })\n}\n","import { getNodeType, union, type PlainExtension } from '@prosekit/core'\nimport { InputRule } from '@prosekit/pm/inputrules'\n\nimport { defineInputRule } from '../input-rule/index.ts'\n\n/**\n * @public\n */\nexport function defineHorizontalRuleInputRule(): PlainExtension {\n return union(\n defineInputRule(\n new InputRule(/^---$/, (state, match, start, end) => {\n const { schema } = state\n const { tr } = state\n const type = getNodeType(schema, 'horizontalRule')\n const node = type.createChecked()\n tr.delete(start, end).insert(start - 1, node)\n return tr.scrollIntoView()\n }),\n ),\n )\n}\n","import { defineNodeSpec, type Extension } from '@prosekit/core'\nimport type { Attrs } from '@prosekit/pm/model'\n\nexport type HorizontalRuleSpecExtension = Extension<{\n Nodes: {\n horizontalRule: Attrs\n }\n}>\n\nexport function defineHorizontalRuleSpec(): HorizontalRuleSpecExtension {\n return defineNodeSpec({\n name: 'horizontalRule',\n group: 'block',\n parseDOM: [{ tag: 'hr' }],\n // Wrap the `<hr>` in a `<div>` so that we can make it taller and easier to click.\n toDOM: () => ['div', { class: 'prosekit-horizontal-rule' }, ['hr']],\n })\n}\n","import { union, type Union } from '@prosekit/core'\n\nimport { defineHorizontalRuleCommands, type HorizontalRuleCommandsExtension } from './horizontal-rule-commands.ts'\nimport { defineHorizontalRuleInputRule } from './horizontal-rule-input-rule.ts'\nimport { defineHorizontalRuleSpec, type HorizontalRuleSpecExtension } from './horizontal-rule-spec.ts'\n\nexport type HorizontalRuleExtension = Union<\n [HorizontalRuleSpecExtension, HorizontalRuleCommandsExtension]\n>\n\n/**\n * @public\n */\nexport function defineHorizontalRule(): HorizontalRuleExtension {\n return union(\n defineHorizontalRuleSpec(),\n defineHorizontalRuleInputRule(),\n defineHorizontalRuleCommands(),\n )\n}\n"],"mappings":";;;;AAUA,MAAM,+BAAwC,OAAO,aAAsB;AACzE,KAAI,CAAC,SAAU,QAAO;CAEtB,MAAM,EAAE,QAAQ,OAAO;CAEvB,MAAM,OADO,YAAY,QAAQ,iBAChB,CAAC,eAAe;CACjC,MAAM,MAAM,GAAG,UAAU;CACzB,MAAM,QAAQ,IAAI,MAAM,SAAS,KAAK,KAAK,EAAE,GAAG,EAAE;AAClD,IAAG,aAAa,KAAK,KAAK,MAAM,CAAC,gBAAgB;AACjD,UAAS,GAAG;AACZ,QAAO;;;;;AAMT,SAAgB,uBAAgC;AAC9C,QAAO;;AAGT,SAAgB,+BAAgE;AAC9E,QAAO,eAAe,EAAE,sBAAsB,CAAC;;;;;ACvBjD,SAAgB,gCAAgD;AAC9D,QAAO,MACL,gBACE,IAAI,UAAU,UAAU,OAAO,OAAO,OAAO,QAAQ;EACnD,MAAM,EAAE,WAAW;EACnB,MAAM,EAAE,OAAO;EAEf,MAAM,OADO,YAAY,QAAQ,iBAChB,CAAC,eAAe;AACjC,KAAG,OAAO,OAAO,IAAI,CAAC,OAAO,QAAQ,GAAG,KAAK;AAC7C,SAAO,GAAG,gBAAgB;GAC1B,CACH,CACF;;ACXH,SAAgB,2BAAwD;AACtE,QAAO,eAAe;EACpB,MAAM;EACN,OAAO;EACP,UAAU,CAAC,EAAE,KAAK,MAAM,CAAC;EAEzB,aAAa;GAAC;GAAO,EAAE,OAAO,4BAA4B;GAAE,CAAC,KAAK;GAAC;EACpE,CAAC;;;;;ACHJ,SAAgB,uBAAgD;AAC9D,QAAO,MACL,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,CAC/B"}
@@ -2,8 +2,6 @@ import { l as FileDropHandlerOptions, n as UploadTask, o as FilePasteHandlerOpti
2
2
  import { Command } from "@prosekit/pm/state";
3
3
  import { Extension, PlainExtension, Union } from "@prosekit/core";
4
4
  import { EditorView } from "@prosekit/pm/view";
5
-
6
- //#region src/image/image-commands/upload-image.d.ts
7
5
  /**
8
6
  * Options for {@link uploadImage}.
9
7
  *
@@ -82,8 +80,6 @@ declare function uploadImage({
82
80
  * @internal
83
81
  */
84
82
  declare function replaceImageURL(view: EditorView, oldURL: string, newURL: string): void;
85
- //#endregion
86
- //#region src/image/image-spec.d.ts
87
83
  /**
88
84
  * @public
89
85
  */
@@ -104,8 +100,6 @@ type ImageSpecExtension = Extension<{
104
100
  * @internal
105
101
  */
106
102
  declare function defineImageSpec(): ImageSpecExtension;
107
- //#endregion
108
- //#region src/image/image-commands.d.ts
109
103
  /**
110
104
  * @internal
111
105
  */
@@ -119,8 +113,6 @@ type ImageCommandsExtension = Extension<{
119
113
  * @internal
120
114
  */
121
115
  declare function defineImageCommands(): ImageCommandsExtension;
122
- //#endregion
123
- //#region src/image/image-commands/insert-image.d.ts
124
116
  /**
125
117
  * Returns a command that inserts an image node with the given attributes at the
126
118
  * current selection position.
@@ -128,8 +120,6 @@ declare function defineImageCommands(): ImageCommandsExtension;
128
120
  * @public
129
121
  */
130
122
  declare function insertImage(attrs?: ImageAttrs): Command;
131
- //#endregion
132
- //#region src/image/image-upload-handler.d.ts
133
123
  /**
134
124
  * A predicate to determine if the pasted file should be uploaded and inserted as an image.
135
125
  */
@@ -175,8 +165,6 @@ declare function defineImageUploadHandler({
175
165
  canDrop,
176
166
  onError
177
167
  }: ImageUploadHandlerOptions): PlainExtension;
178
- //#endregion
179
- //#region src/image/image.d.ts
180
168
  /**
181
169
  * @internal
182
170
  */
@@ -185,6 +173,5 @@ type ImageExtension = Union<[ImageSpecExtension, ImageCommandsExtension]>;
185
173
  * @public
186
174
  */
187
175
  declare function defineImage(): ImageExtension;
188
- //#endregion
189
176
  export { type ImageAttrs, type ImageCanDropPredicate, type ImageCanPastePredicate, type ImageCommandsExtension, type ImageExtension, type ImageSpecExtension, type ImageUploadErrorHandler, type ImageUploadErrorHandlerOptions, type ImageUploadHandlerOptions, type UploadImageOptions, defineImage, defineImageCommands, defineImageSpec, defineImageUploadHandler, insertImage, replaceImageURL, uploadImage };
190
- //# sourceMappingURL=prosekit-extensions-image.d.ts.map
177
+ //# sourceMappingURL=image.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.d.ts","names":[],"sources":["../src/image/image-commands/upload-image.ts","../src/image/image-spec.ts","../src/image/image-commands.ts","../src/image/image-commands/insert-image.ts","../src/image/image-upload-handler.ts","../src/image/image.ts"],"mappings":";;;;;;AAYA;;;UAAiB,kBAAA;EAST;;;;EAJN,QAAA,EAAU,QAAA;EAAA;;;EAIV,IAAA,EAAM,IAAA;EAYN;;;;EAPA,GAAA;EAmBe;;;;;;EAZf,OAAA;EAwBA;;;EApBA,OAAA,GAAU,uBAAA;AAAA;;;;;AAsCZ;UA9BiB,8BAAA;;;;EAIf,IAAA,EAAM,IAAA;EA8BN;;;EA1BA,KAAA;EA4B6B;;;EAxB7B,UAAA,EAAY,UAAA;AAAA;;;;;;KAQF,uBAAA,IAA2B,OAAA,EAAS,8BAAA;;;;;;AAkFhD;;;iBAxEgB,WAAA,CAAA;EACd,QAAA;EACA,IAAA;EACA,GAAA;EACA,OAAA;EACA;AAAA,GACC,kBAAA,GAAqB,OAAA;;;;;;iBAkER,eAAA,CACd,IAAA,EAAM,UAAA,EACN,MAAA,UACA,MAAA;;;;UCjJe,UAAA;EACf,GAAA;EACA,KAAA;EACA,MAAA;AAAA;;;;KAMU,kBAAA,GAAqB,SAAA;EAC/B,KAAA;IACE,KAAA,EAAO,UAAA;EAAA;AAAA;;;;iBAOK,eAAA,CAAA,GAAmB,kBAAA;;;ADXnC;KEHY,sBAAA,GAAyB,SAAA;EACnC,QAAA;IACE,WAAA,GAAc,KAAA,GAAQ,UAAA;IACtB,WAAA,GAAc,OAAA,EAAS,kBAAA;EAAA;AAAA;;;;iBAOX,mBAAA,CAAA,GAAuB,sBAAA;;;;AFPvC;;;iBGDgB,WAAA,CAAY,KAAA,GAAQ,UAAA,GAAa,OAAA;;;AHCjD;KIKY,sBAAA,IAA0B,OAAA,EAAS,uBAAA;;;;KAKnC,qBAAA,IAAyB,OAAA,EAAS,sBAAA;;;;UAK7B,yBAAA;EJNf;;;;EIWA,QAAA,EAAU,QAAA;EJKA;;;AAQZ;EIRE,QAAA,GAAW,sBAAA;;;;;EAKX,OAAA,GAAU,qBAAA;EJeV;;;;EIVA,OAAA,GAAU,uBAAA;AAAA;;;;AJ4BZ;;;iBIVgB,wBAAA,CAAA;EACd,QAAA;EACA,QAAA;EACA,OAAA;EACA;AAAA,GACC,yBAAA,GAA4B,cAAA;;;AJ1D/B;KKJY,cAAA,GAAiB,KAAA,EAAO,kBAAA,EAAoB,sBAAA;;;;iBAKxC,WAAA,CAAA,GAAe,cAAA"}
@@ -1,6 +1,5 @@
1
- import { n as defineFilePasteHandler, r as defineFileDropHandler, t as UploadTask } from "./file.js";
1
+ import { n as defineFilePasteHandler, r as defineFileDropHandler, t as UploadTask } from "./file2.js";
2
2
  import { ProseKitError, defineCommands, defineNodeSpec, insertNode, union } from "@prosekit/core";
3
- //#region src/image/image-commands/insert-image.ts
4
3
  /**
5
4
  * Returns a command that inserts an image node with the given attributes at the
6
5
  * current selection position.
@@ -13,8 +12,6 @@ function insertImage(attrs) {
13
12
  attrs
14
13
  });
15
14
  }
16
- //#endregion
17
- //#region src/image/image-commands/upload-image.ts
18
15
  /**
19
16
  * Returns a command that uploads an image file and inserts an image node with a
20
17
  * temporary URL which is replaced once the upload completes.
@@ -95,8 +92,6 @@ function replaceImageURL(view, oldURL, newURL) {
95
92
  for (const pos of positions) tr.setNodeAttribute(pos, "src", newURL);
96
93
  view.dispatch(tr);
97
94
  }
98
- //#endregion
99
- //#region src/image/image-commands.ts
100
95
  /**
101
96
  * @internal
102
97
  */
@@ -106,8 +101,6 @@ function defineImageCommands() {
106
101
  uploadImage
107
102
  });
108
103
  }
109
- //#endregion
110
- //#region src/image/image-spec.ts
111
104
  /**
112
105
  * @internal
113
106
  */
@@ -158,8 +151,6 @@ function defineImageSpec() {
158
151
  }
159
152
  });
160
153
  }
161
- //#endregion
162
- //#region src/image/image-upload-handler.ts
163
154
  function defaultCanUpload({ file }) {
164
155
  return file.type.startsWith("image/");
165
156
  }
@@ -194,15 +185,12 @@ function defineImageUploadHandler({ uploader, canPaste = defaultCanUpload, canDr
194
185
  };
195
186
  return union(defineFilePasteHandler(handlePaste), defineFileDropHandler(handleDrop));
196
187
  }
197
- //#endregion
198
- //#region src/image/image.ts
199
188
  /**
200
189
  * @public
201
190
  */
202
191
  function defineImage() {
203
192
  return union(defineImageSpec(), defineImageCommands());
204
193
  }
205
- //#endregion
206
194
  export { defineImage, defineImageCommands, defineImageSpec, defineImageUploadHandler, insertImage, replaceImageURL, uploadImage };
207
195
 
208
- //# sourceMappingURL=prosekit-extensions-image.js.map
196
+ //# sourceMappingURL=image.js.map