@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
@@ -1,8 +1,7 @@
1
- import { p as findTable } from "./table.js";
1
+ import { p as findTable } from "./table2.js";
2
2
  import { Plugin, PluginKey } from "@prosekit/pm/state";
3
3
  import { definePlugin, isInCodeBlock, isTextSelection, maybeRun } from "@prosekit/core";
4
4
  import { Decoration, DecorationSet } from "@prosekit/pm/view";
5
- //#region src/placeholder/index.ts
6
5
  /**
7
6
  * Add a placeholder text to the editor when the current block or document is
8
7
  * empty.
@@ -43,7 +42,6 @@ function createPlaceholderDecoration(state, placeholderText) {
43
42
  "data-placeholder": placeholderText
44
43
  });
45
44
  }
46
- //#endregion
47
45
  export { definePlaceholder };
48
46
 
49
- //# sourceMappingURL=prosekit-extensions-placeholder.js.map
47
+ //# sourceMappingURL=placeholder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placeholder.js","names":[],"sources":["../src/placeholder/index.ts"],"sourcesContent":["import { definePlugin, isInCodeBlock, isTextSelection, maybeRun, type PlainExtension } from '@prosekit/core'\nimport type { ProseMirrorNode } from '@prosekit/pm/model'\nimport { Plugin, PluginKey, type EditorState } from '@prosekit/pm/state'\nimport { Decoration, DecorationSet } from '@prosekit/pm/view'\n\nimport { findTable } from '../table/index.ts'\n\nexport interface PlaceholderOptions {\n /**\n * The placeholder to use. It can be a static string or a function that\n * receives the current editor state and returns a string.\n */\n placeholder: string | ((state: EditorState) => string)\n\n /**\n * By default, the placeholder text will be shown whenever the current text\n * cursor is in an empty text node and it's not inside a code block or a\n * table node.\n *\n * If you only want to show the placeholder when the whole doc is empty, you\n * can set this option to 'doc'.\n *\n * You can also pass a function that receives the current editor state and\n * returns a boolean value to determine whether the placeholder should be\n * shown.\n *\n * @default 'block'\n */\n strategy?: 'doc' | 'block' | ((state: EditorState) => boolean)\n}\n\n/**\n * Add a placeholder text to the editor when the current block or document is\n * empty.\n */\nexport function definePlaceholder(options: PlaceholderOptions): PlainExtension {\n return definePlugin(createPlaceholderPlugin(options))\n}\n\nfunction createPlaceholderPlugin({\n placeholder,\n strategy = 'block',\n}: PlaceholderOptions): Plugin {\n return new Plugin({\n key: new PluginKey('prosekit-placeholder'),\n props: {\n decorations: (state) => {\n const strategyFn = typeof strategy === 'function'\n ? strategy\n : strategy === 'doc'\n ? docStrategy\n : defaultStrategy\n\n if (!strategyFn(state)) {\n return null\n }\n\n const placeholderText: string = maybeRun(placeholder, state)\n const deco = createPlaceholderDecoration(state, placeholderText)\n if (!deco) {\n return null\n }\n\n return DecorationSet.create(state.doc, [deco])\n },\n },\n })\n}\n\nfunction defaultStrategy(state: EditorState): boolean {\n return !isInCodeBlock(state.selection) && !findTable(state.selection.$from)\n}\n\nfunction docStrategy(state: EditorState): boolean {\n return isDocEmpty(state.doc) && defaultStrategy(state)\n}\n\nfunction isDocEmpty(doc: ProseMirrorNode) {\n return doc.childCount <= 1 && !doc.firstChild?.content.size\n}\n\nfunction createPlaceholderDecoration(\n state: EditorState,\n placeholderText: string,\n): Decoration | null {\n if (!placeholderText) return null\n\n const { selection } = state\n if (!selection.empty || !isTextSelection(selection)) return null\n\n const $pos = selection.$anchor\n const node = $pos.parent\n if (node.content.size > 0) return null\n\n const before = $pos.before()\n\n return Decoration.node(before, before + node.nodeSize, {\n 'class': 'prosekit-placeholder',\n 'data-placeholder': placeholderText,\n })\n}\n"],"mappings":";;;;;;;;AAmCA,SAAgB,kBAAkB,SAA6C;AAC7E,QAAO,aAAa,wBAAwB,QAAQ,CAAC;;AAGvD,SAAS,wBAAwB,EAC/B,aACA,WAAW,WACkB;AAC7B,QAAO,IAAI,OAAO;EAChB,KAAK,IAAI,UAAU,uBAAuB;EAC1C,OAAO,EACL,cAAc,UAAU;AAOtB,OAAI,EANe,OAAO,aAAa,aACnC,WACA,aAAa,QACb,cACA,iBAEY,MAAM,CACpB,QAAO;GAIT,MAAM,OAAO,4BAA4B,OADT,SAAS,aAAa,MACS,CAAC;AAChE,OAAI,CAAC,KACH,QAAO;AAGT,UAAO,cAAc,OAAO,MAAM,KAAK,CAAC,KAAK,CAAC;KAEjD;EACF,CAAC;;AAGJ,SAAS,gBAAgB,OAA6B;AACpD,QAAO,CAAC,cAAc,MAAM,UAAU,IAAI,CAAC,UAAU,MAAM,UAAU,MAAM;;AAG7E,SAAS,YAAY,OAA6B;AAChD,QAAO,WAAW,MAAM,IAAI,IAAI,gBAAgB,MAAM;;AAGxD,SAAS,WAAW,KAAsB;AACxC,QAAO,IAAI,cAAc,KAAK,CAAC,IAAI,YAAY,QAAQ;;AAGzD,SAAS,4BACP,OACA,iBACmB;AACnB,KAAI,CAAC,gBAAiB,QAAO;CAE7B,MAAM,EAAE,cAAc;AACtB,KAAI,CAAC,UAAU,SAAS,CAAC,gBAAgB,UAAU,CAAE,QAAO;CAE5D,MAAM,OAAO,UAAU;CACvB,MAAM,OAAO,KAAK;AAClB,KAAI,KAAK,QAAQ,OAAO,EAAG,QAAO;CAElC,MAAM,SAAS,KAAK,QAAQ;AAE5B,QAAO,WAAW,KAAK,QAAQ,SAAS,KAAK,UAAU;EACrD,SAAS;EACT,oBAAoB;EACrB,CAAC"}
@@ -1,10 +1,7 @@
1
1
  import { PlainExtension } from "@prosekit/core";
2
-
3
- //#region src/readonly/index.d.ts
4
2
  /**
5
3
  * Make the editor read-only.
6
4
  */
7
5
  declare function defineReadonly(): PlainExtension;
8
- //#endregion
9
6
  export { defineReadonly };
10
- //# sourceMappingURL=prosekit-extensions-readonly.d.ts.map
7
+ //# sourceMappingURL=readonly.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readonly.d.ts","names":[],"sources":["../src/readonly/index.ts"],"mappings":";;;;iBAYgB,cAAA,CAAA,GAAkB,cAAA"}
@@ -1,6 +1,10 @@
1
1
  import { PluginKey, ProseMirrorPlugin } from "@prosekit/pm/state";
2
2
  import { definePlugin } from "@prosekit/core";
3
- //#region src/readonly/index.ts
3
+ /**
4
+ * Marks the editor as read-only.
5
+ *
6
+ * @module
7
+ */
4
8
  /**
5
9
  * Make the editor read-only.
6
10
  */
@@ -11,7 +15,6 @@ const plugin = new ProseMirrorPlugin({
11
15
  key: new PluginKey("prosekey-readonly"),
12
16
  props: { editable: () => false }
13
17
  });
14
- //#endregion
15
18
  export { defineReadonly };
16
19
 
17
- //# sourceMappingURL=prosekit-extensions-readonly.js.map
20
+ //# sourceMappingURL=readonly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readonly.js","names":[],"sources":["../src/readonly/index.ts"],"sourcesContent":["/**\n * Marks the editor as read-only.\n *\n * @module\n */\n\nimport { definePlugin, type PlainExtension } from '@prosekit/core'\nimport { PluginKey, ProseMirrorPlugin } from '@prosekit/pm/state'\n\n/**\n * Make the editor read-only.\n */\nexport function defineReadonly(): PlainExtension {\n return definePlugin(plugin)\n}\n\nconst plugin = new ProseMirrorPlugin({\n key: new PluginKey('prosekey-readonly'),\n props: {\n editable: () => false,\n },\n})\n"],"mappings":";;;;;;;;;;AAYA,SAAgB,iBAAiC;AAC/C,QAAO,aAAa,OAAO;;AAG7B,MAAM,SAAS,IAAI,kBAAkB;CACnC,KAAK,IAAI,UAAU,oBAAoB;CACvC,OAAO,EACL,gBAAgB,OACjB;CACF,CAAC"}
@@ -1,6 +1,4 @@
1
1
  import { Extension, PlainExtension } from "@prosekit/core";
2
-
3
- //#region src/search/index.d.ts
4
2
  /**
5
3
  * Options for {@link defineSearchQuery}
6
4
  *
@@ -69,6 +67,5 @@ type SearchCommandsExtension = Extension<{
69
67
  * @public
70
68
  */
71
69
  declare function defineSearchCommands(): SearchCommandsExtension;
72
- //#endregion
73
70
  export { SearchCommandsExtension, SearchQueryOptions, defineSearchCommands, defineSearchQuery };
74
- //# sourceMappingURL=prosekit-extensions-search.d.ts.map
71
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","names":[],"sources":["../src/search/index.ts"],"mappings":";;AAqBA;;;;UAAiB,kBAAA;EASf;;;EALA,MAAA;EAmCA;;;EA9BA,OAAA;EAsC+B;;;;;EA/B/B,aAAA;EA+B4E;;AAqC9E;;;;;EA3DE,OAAA;EA6DE;;;;;EAtDF,MAAA;EA4DE;;;;AAUJ;EA/DE,SAAA;AAAA;;;;;;iBAQc,iBAAA,CAAkB,OAAA,EAAS,kBAAA,GAAqB,cAAA;;;;KAqCpD,uBAAA,GAA0B,SAAA;EACpC,QAAA;IACE,QAAA;IACA,QAAA;IACA,cAAA;IACA,cAAA;IACA,WAAA;IACA,iBAAA;IACA,cAAA;IACA,UAAA;EAAA;AAAA;;;;;;iBASY,oBAAA,CAAA,GAAwB,uBAAA"}
@@ -1,6 +1,5 @@
1
1
  import { defineCommands, definePlugin } from "@prosekit/core";
2
2
  import { SearchQuery, findNext, findNextNoWrap, findPrev, findPrevNoWrap, replaceAll, replaceCurrent, replaceNext, replaceNextNoWrap, search } from "prosemirror-search";
3
- //#region src/search/index.ts
4
3
  /**
5
4
  * Defines an extension that stores a current search query and replace string.
6
5
  *
@@ -48,7 +47,6 @@ function defineSearchCommands() {
48
47
  replaceAll: () => withScrollActiveIntoView(replaceAll)
49
48
  });
50
49
  }
51
- //#endregion
52
50
  export { defineSearchCommands, defineSearchQuery };
53
51
 
54
- //# sourceMappingURL=prosekit-extensions-search.js.map
52
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","names":[],"sources":["../src/search/index.ts"],"sourcesContent":["import { defineCommands, definePlugin, type Extension, type PlainExtension } from '@prosekit/core'\nimport type { Command } from '@prosekit/pm/state'\nimport type { EditorView } from '@prosekit/pm/view'\nimport {\n findNext,\n findNextNoWrap,\n findPrev,\n findPrevNoWrap,\n replaceAll,\n replaceCurrent,\n replaceNext,\n replaceNextNoWrap,\n search,\n SearchQuery,\n} from 'prosemirror-search'\n\n/**\n * Options for {@link defineSearchQuery}\n *\n * @public\n */\nexport interface SearchQueryOptions {\n /**\n * The search string (or regular expression).\n */\n search: string\n\n /**\n * The replace text.\n */\n replace?: string\n\n /**\n * Indicates whether the search is case-sensitive\n *\n * @default false\n */\n caseSensitive?: boolean\n\n /**\n * By default, string search will replace `\\n`, `\\r`, and `\\t` in the query\n * with newline, return, and tab characters. When this is set to true, that\n * behavior is disabled.\n *\n * @default false\n */\n literal?: boolean\n\n /**\n * When true, the search string is interpreted as a regular expression.\n *\n * @default false\n */\n regexp?: boolean\n\n /**\n * Enable whole-word matching.\n *\n * @default false\n */\n wholeWord?: boolean\n}\n\n/**\n * Defines an extension that stores a current search query and replace string.\n *\n * @public\n */\nexport function defineSearchQuery(options: SearchQueryOptions): PlainExtension {\n const query = new SearchQuery(options)\n return definePlugin(search({ initialQuery: query }))\n}\n\n/**\n * Scrolls the active search match into view.\n */\nfunction scrollActiveIntoView(view: EditorView) {\n if (view.isDestroyed) return\n const active = view.dom.querySelector('.ProseMirror-active-search-match')\n active?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n })\n}\n\n/**\n * Wraps a command and scrolls the active search match into view when the command\n * is applied.\n */\nfunction withScrollActiveIntoView(command: Command): Command {\n return (state, dispatch, view) => {\n const result = command(state, dispatch, view)\n if (result && dispatch && view) {\n // Add a small delay because the command itself will handle scrolling if\n // the view is focused.\n setTimeout(() => scrollActiveIntoView(view), 50)\n }\n return result\n }\n}\n\n/**\n * @internal\n */\nexport type SearchCommandsExtension = Extension<{\n Commands: {\n findNext: []\n findPrev: []\n findNextNoWrap: []\n findPrevNoWrap: []\n replaceNext: []\n replaceNextNoWrap: []\n replaceCurrent: []\n replaceAll: []\n }\n}>\n\n/**\n * Defines commands for search and replace.\n *\n * @public\n */\nexport function defineSearchCommands(): SearchCommandsExtension {\n return defineCommands({\n findNext: () => withScrollActiveIntoView(findNext),\n findPrev: () => withScrollActiveIntoView(findPrev),\n findNextNoWrap: () => withScrollActiveIntoView(findNextNoWrap),\n findPrevNoWrap: () => withScrollActiveIntoView(findPrevNoWrap),\n replaceNext: () => withScrollActiveIntoView(replaceNext),\n replaceNextNoWrap: () => withScrollActiveIntoView(replaceNextNoWrap),\n replaceCurrent: () => withScrollActiveIntoView(replaceCurrent),\n replaceAll: () => withScrollActiveIntoView(replaceAll),\n })\n}\n"],"mappings":";;;;;;;AAoEA,SAAgB,kBAAkB,SAA6C;AAE7E,QAAO,aAAa,OAAO,EAAE,cAAc,IADzB,YAAY,QACkB,EAAE,CAAC,CAAC;;;;;AAMtD,SAAS,qBAAqB,MAAkB;AAC9C,KAAI,KAAK,YAAa;AACP,MAAK,IAAI,cAAc,mCAChC,EAAE,eAAe;EACrB,OAAO;EACP,QAAQ;EACR,UAAU;EACX,CAAC;;;;;;AAOJ,SAAS,yBAAyB,SAA2B;AAC3D,SAAQ,OAAO,UAAU,SAAS;EAChC,MAAM,SAAS,QAAQ,OAAO,UAAU,KAAK;AAC7C,MAAI,UAAU,YAAY,KAGxB,kBAAiB,qBAAqB,KAAK,EAAE,GAAG;AAElD,SAAO;;;;;;;;AAyBX,SAAgB,uBAAgD;AAC9D,QAAO,eAAe;EACpB,gBAAgB,yBAAyB,SAAS;EAClD,gBAAgB,yBAAyB,SAAS;EAClD,sBAAsB,yBAAyB,eAAe;EAC9D,sBAAsB,yBAAyB,eAAe;EAC9D,mBAAmB,yBAAyB,YAAY;EACxD,yBAAyB,yBAAyB,kBAAkB;EACpE,sBAAsB,yBAAyB,eAAe;EAC9D,kBAAkB,yBAAyB,WAAW;EACvD,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { createHighlighter } from "shiki/bundle/full";
2
2
  import { createJavaScriptRegexEngine } from "shiki/engine/javascript";
3
- //#region src/code-block/shiki-highlighter-chunk.ts
4
3
  let highlighterPromise;
5
4
  let highlighter;
6
5
  const loadedLangs = /* @__PURE__ */ new Set();
@@ -36,7 +35,6 @@ function createOrGetHighlighter(options) {
36
35
  if (themes.length > 0) return { promise: loadThemes(themes) };
37
36
  return { highlighter };
38
37
  }
39
- //#endregion
40
38
  export { createOrGetHighlighter };
41
39
 
42
40
  //# sourceMappingURL=shiki-highlighter-chunk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shiki-highlighter-chunk.js","names":[],"sources":["../src/code-block/shiki-highlighter-chunk.ts"],"sourcesContent":["import type { BundledHighlighterOptions, BundledLanguage, BundledTheme, Highlighter, SpecialLanguage } from 'shiki'\nimport { createHighlighter } from 'shiki/bundle/full'\nimport { createJavaScriptRegexEngine } from 'shiki/engine/javascript'\n\nlet highlighterPromise: Promise<void> | undefined\nlet highlighter: Highlighter | undefined\nconst loadedLangs = new Set<BundledLanguage | SpecialLanguage>()\nconst loadedThemes = new Set<BundledTheme>()\n\nexport interface ShikiHighlighterOptions extends BundledHighlighterOptions<BundledLanguage, BundledTheme> {}\n\nexport interface HighlighterOptions extends Omit<ShikiHighlighterOptions, 'langs' | 'themes'> {\n themes: BundledTheme[]\n langs: (BundledLanguage | SpecialLanguage)[]\n}\n\nfunction ensureHighlighter({\n ...options\n}: HighlighterOptions): Promise<void> {\n if (!highlighterPromise) {\n // If no engine is provided, use the JavaScript engine, which is\n // smaller than the WASM engine.\n if (!options.engine) {\n const engine = createJavaScriptRegexEngine({ forgiving: true })\n options.engine = engine\n }\n highlighterPromise = createHighlighter(options).then((createdHighlighter) => {\n highlighter = createdHighlighter\n })\n }\n return highlighterPromise\n}\n\nasync function loadLanguages(langs: (BundledLanguage | SpecialLanguage)[]) {\n for (const lang of langs) {\n if (!highlighter) break\n await highlighter.loadLanguage(lang)\n loadedLangs.add(lang)\n }\n}\n\nasync function loadThemes(themes: BundledTheme[]) {\n for (const theme of themes) {\n if (!highlighter) break\n await highlighter.loadTheme(theme)\n loadedThemes.add(theme)\n }\n}\n\nexport type HighlighterResult =\n | {\n highlighter: Highlighter\n promise?: undefined\n }\n | {\n highlighter?: undefined\n promise: Promise<void>\n }\n\nexport function createOrGetHighlighter(\n options: HighlighterOptions,\n): HighlighterResult {\n if (!highlighter) {\n return { promise: ensureHighlighter(options) }\n }\n\n const langs = options.langs.filter((lang) => !loadedLangs.has(lang))\n if (langs.length > 0) {\n return { promise: loadLanguages(langs) }\n }\n\n const themes = options.themes.filter((theme) => !loadedThemes.has(theme))\n if (themes.length > 0) {\n return { promise: loadThemes(themes) }\n }\n\n return { highlighter }\n}\n"],"mappings":";;;AAIA,IAAI;AACJ,IAAI;AACJ,MAAM,8BAAc,IAAI,KAAwC;AAChE,MAAM,+BAAe,IAAI,KAAmB;AAS5C,SAAS,kBAAkB,EACzB,GAAG,WACiC;AACpC,KAAI,CAAC,oBAAoB;AAGvB,MAAI,CAAC,QAAQ,OAEX,SAAQ,SADO,4BAA4B,EAAE,WAAW,MAAM,CAAC;AAGjE,uBAAqB,kBAAkB,QAAQ,CAAC,MAAM,uBAAuB;AAC3E,iBAAc;IACd;;AAEJ,QAAO;;AAGT,eAAe,cAAc,OAA8C;AACzE,MAAK,MAAM,QAAQ,OAAO;AACxB,MAAI,CAAC,YAAa;AAClB,QAAM,YAAY,aAAa,KAAK;AACpC,cAAY,IAAI,KAAK;;;AAIzB,eAAe,WAAW,QAAwB;AAChD,MAAK,MAAM,SAAS,QAAQ;AAC1B,MAAI,CAAC,YAAa;AAClB,QAAM,YAAY,UAAU,MAAM;AAClC,eAAa,IAAI,MAAM;;;AAc3B,SAAgB,uBACd,SACmB;AACnB,KAAI,CAAC,YACH,QAAO,EAAE,SAAS,kBAAkB,QAAQ,EAAE;CAGhD,MAAM,QAAQ,QAAQ,MAAM,QAAQ,SAAS,CAAC,YAAY,IAAI,KAAK,CAAC;AACpE,KAAI,MAAM,SAAS,EACjB,QAAO,EAAE,SAAS,cAAc,MAAM,EAAE;CAG1C,MAAM,SAAS,QAAQ,OAAO,QAAQ,UAAU,CAAC,aAAa,IAAI,MAAM,CAAC;AACzE,KAAI,OAAO,SAAS,EAClB,QAAO,EAAE,SAAS,WAAW,OAAO,EAAE;AAGxC,QAAO,EAAE,aAAa"}
1
+ {"version":3,"file":"shiki-highlighter-chunk.js","names":[],"sources":["../src/code-block/shiki-highlighter-chunk.ts"],"sourcesContent":["import type { BundledHighlighterOptions, BundledLanguage, BundledTheme, Highlighter, SpecialLanguage } from 'shiki'\nimport { createHighlighter } from 'shiki/bundle/full'\nimport { createJavaScriptRegexEngine } from 'shiki/engine/javascript'\n\nlet highlighterPromise: Promise<void> | undefined\nlet highlighter: Highlighter | undefined\nconst loadedLangs = new Set<BundledLanguage | SpecialLanguage>()\nconst loadedThemes = new Set<BundledTheme>()\n\nexport interface ShikiHighlighterOptions extends BundledHighlighterOptions<BundledLanguage, BundledTheme> {}\n\nexport interface HighlighterOptions extends Omit<ShikiHighlighterOptions, 'langs' | 'themes'> {\n themes: BundledTheme[]\n langs: (BundledLanguage | SpecialLanguage)[]\n}\n\nfunction ensureHighlighter({\n ...options\n}: HighlighterOptions): Promise<void> {\n if (!highlighterPromise) {\n // If no engine is provided, use the JavaScript engine, which is\n // smaller than the WASM engine.\n if (!options.engine) {\n const engine = createJavaScriptRegexEngine({ forgiving: true })\n options.engine = engine\n }\n highlighterPromise = createHighlighter(options).then((createdHighlighter) => {\n highlighter = createdHighlighter\n })\n }\n return highlighterPromise\n}\n\nasync function loadLanguages(langs: (BundledLanguage | SpecialLanguage)[]) {\n for (const lang of langs) {\n if (!highlighter) break\n await highlighter.loadLanguage(lang)\n loadedLangs.add(lang)\n }\n}\n\nasync function loadThemes(themes: BundledTheme[]) {\n for (const theme of themes) {\n if (!highlighter) break\n await highlighter.loadTheme(theme)\n loadedThemes.add(theme)\n }\n}\n\nexport type HighlighterResult =\n | {\n highlighter: Highlighter\n promise?: undefined\n }\n | {\n highlighter?: undefined\n promise: Promise<void>\n }\n\nexport function createOrGetHighlighter(\n options: HighlighterOptions,\n): HighlighterResult {\n if (!highlighter) {\n return { promise: ensureHighlighter(options) }\n }\n\n const langs = options.langs.filter((lang) => !loadedLangs.has(lang))\n if (langs.length > 0) {\n return { promise: loadLanguages(langs) }\n }\n\n const themes = options.themes.filter((theme) => !loadedThemes.has(theme))\n if (themes.length > 0) {\n return { promise: loadThemes(themes) }\n }\n\n return { highlighter }\n}\n"],"mappings":";;AAIA,IAAI;AACJ,IAAI;AACJ,MAAM,8BAAc,IAAI,KAAwC;AAChE,MAAM,+BAAe,IAAI,KAAmB;AAS5C,SAAS,kBAAkB,EACzB,GAAG,WACiC;AACpC,KAAI,CAAC,oBAAoB;AAGvB,MAAI,CAAC,QAAQ,OAEX,SAAQ,SADO,4BAA4B,EAAE,WAAW,MAAM,CACvC;AAEzB,uBAAqB,kBAAkB,QAAQ,CAAC,MAAM,uBAAuB;AAC3E,iBAAc;IACd;;AAEJ,QAAO;;AAGT,eAAe,cAAc,OAA8C;AACzE,MAAK,MAAM,QAAQ,OAAO;AACxB,MAAI,CAAC,YAAa;AAClB,QAAM,YAAY,aAAa,KAAK;AACpC,cAAY,IAAI,KAAK;;;AAIzB,eAAe,WAAW,QAAwB;AAChD,MAAK,MAAM,SAAS,QAAQ;AAC1B,MAAI,CAAC,YAAa;AAClB,QAAM,YAAY,UAAU,MAAM;AAClC,eAAa,IAAI,MAAM;;;AAc3B,SAAgB,uBACd,SACmB;AACnB,KAAI,CAAC,YACH,QAAO,EAAE,SAAS,kBAAkB,QAAQ,EAAE;CAGhD,MAAM,QAAQ,QAAQ,MAAM,QAAQ,SAAS,CAAC,YAAY,IAAI,KAAK,CAAC;AACpE,KAAI,MAAM,SAAS,EACjB,QAAO,EAAE,SAAS,cAAc,MAAM,EAAE;CAG1C,MAAM,SAAS,QAAQ,OAAO,QAAQ,UAAU,CAAC,aAAa,IAAI,MAAM,CAAC;AACzE,KAAI,OAAO,SAAS,EAClB,QAAO,EAAE,SAAS,WAAW,OAAO,EAAE;AAGxC,QAAO,EAAE,aAAa"}
@@ -1,7 +1,5 @@
1
1
  import { Extension, PlainExtension, Union } from "@prosekit/core";
2
2
  import { Attrs } from "@prosekit/pm/model";
3
-
4
- //#region src/strike/index.d.ts
5
3
  /**
6
4
  * @internal
7
5
  */
@@ -42,6 +40,5 @@ type StrikeExtension = Union<[StrikeSpecExtension, StrikeCommandsExtension]>;
42
40
  * @public
43
41
  */
44
42
  declare function defineStrike(): StrikeExtension;
45
- //#endregion
46
43
  export { StrikeCommandsExtension, StrikeExtension, StrikeSpecExtension, defineStrike, defineStrikeCommands, defineStrikeInputRule, defineStrikeKeymap, defineStrikeSpec };
47
- //# sourceMappingURL=prosekit-extensions-strike.d.ts.map
44
+ //# sourceMappingURL=strike.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strike.d.ts","names":[],"sources":["../src/strike/index.ts"],"mappings":";;;AAkBA;;KAAY,mBAAA,GAAsB,SAAA;EAChC,KAAA;IACE,MAAA,EAAQ,KAAA;EAAA;AAAA;;;;iBAOI,gBAAA,CAAA,GAAoB,mBAAA;;;;KAmBxB,uBAAA,GAA0B,SAAA;EACpC,QAAA;IACE,YAAA;EAAA;AAAA;;;;iBAOY,oBAAA,CAAA,GAAwB,uBAAA;;AAAxC;;iBASgB,kBAAA,CAAA,GAAsB,cAAA;;;AAAtC;iBAUgB,qBAAA,CAAA,GAAyB,cAAA;;;;KAY7B,eAAA,GAAkB,KAAA,EAC3B,mBAAA,EAAqB,uBAAA;;AADxB;;iBAOgB,YAAA,CAAA,GAAgB,eAAA"}
@@ -1,6 +1,5 @@
1
- import { defineMarkInputRule } from "./prosekit-extensions-input-rule.js";
1
+ import { defineMarkInputRule } from "./input-rule.js";
2
2
  import { canUseRegexLookbehind, defineCommands, defineKeymap, defineMarkSpec, toggleMark, union } from "@prosekit/core";
3
- //#region src/strike/index.ts
4
3
  /**
5
4
  * @internal
6
5
  */
@@ -49,7 +48,6 @@ function defineStrikeInputRule() {
49
48
  function defineStrike() {
50
49
  return union(defineStrikeSpec(), defineStrikeCommands(), defineStrikeKeymap(), defineStrikeInputRule());
51
50
  }
52
- //#endregion
53
51
  export { defineStrike, defineStrikeCommands, defineStrikeInputRule, defineStrikeKeymap, defineStrikeSpec };
54
52
 
55
- //# sourceMappingURL=prosekit-extensions-strike.js.map
53
+ //# sourceMappingURL=strike.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strike.js","names":[],"sources":["../src/strike/index.ts"],"sourcesContent":["import {\n canUseRegexLookbehind,\n defineCommands,\n defineKeymap,\n defineMarkSpec,\n toggleMark,\n union,\n type Extension,\n type PlainExtension,\n type Union,\n} from '@prosekit/core'\nimport type { Attrs } from '@prosekit/pm/model'\n\nimport { defineMarkInputRule } from '../input-rule/index.ts'\n\n/**\n * @internal\n */\nexport type StrikeSpecExtension = Extension<{\n Marks: {\n strike: Attrs\n }\n}>\n\n/**\n * @internal\n */\nexport function defineStrikeSpec(): StrikeSpecExtension {\n return defineMarkSpec({\n name: 'strike',\n parseDOM: [\n { tag: 's' },\n { tag: 'strike' },\n { tag: 'del' },\n { style: 'text-decoration=line-through' },\n { style: 'text-decoration-line=line-through' },\n ],\n toDOM() {\n return ['s', 0]\n },\n })\n}\n\n/**\n * @internal\n */\nexport type StrikeCommandsExtension = Extension<{\n Commands: {\n toggleStrike: []\n }\n}>\n\n/**\n * @internal\n */\nexport function defineStrikeCommands(): StrikeCommandsExtension {\n return defineCommands({\n toggleStrike: () => toggleMark({ type: 'strike' }),\n })\n}\n\n/**\n * @internal\n */\nexport function defineStrikeKeymap(): PlainExtension {\n return defineKeymap({\n 'Mod-S': toggleMark({ type: 'strike' }),\n 'Mod-X': toggleMark({ type: 'strike' }),\n })\n}\n\n/**\n * @internal\n */\nexport function defineStrikeInputRule(): PlainExtension {\n return defineMarkInputRule({\n regex: canUseRegexLookbehind()\n ? /(?<=\\s|^)~~([^\\s~]|[^\\s~][^~]*[^\\s~])~~$/\n : /~~([^\\s~]|[^\\s~][^~]*[^\\s~])~~$/,\n type: 'strike',\n })\n}\n\n/**\n * @internal\n */\nexport type StrikeExtension = Union<\n [StrikeSpecExtension, StrikeCommandsExtension]\n>\n\n/**\n * @public\n */\nexport function defineStrike(): StrikeExtension {\n return union(\n defineStrikeSpec(),\n defineStrikeCommands(),\n defineStrikeKeymap(),\n defineStrikeInputRule(),\n )\n}\n"],"mappings":";;;;;AA2BA,SAAgB,mBAAwC;AACtD,QAAO,eAAe;EACpB,MAAM;EACN,UAAU;GACR,EAAE,KAAK,KAAK;GACZ,EAAE,KAAK,UAAU;GACjB,EAAE,KAAK,OAAO;GACd,EAAE,OAAO,gCAAgC;GACzC,EAAE,OAAO,qCAAqC;GAC/C;EACD,QAAQ;AACN,UAAO,CAAC,KAAK,EAAE;;EAElB,CAAC;;;;;AAeJ,SAAgB,uBAAgD;AAC9D,QAAO,eAAe,EACpB,oBAAoB,WAAW,EAAE,MAAM,UAAU,CAAC,EACnD,CAAC;;;;;AAMJ,SAAgB,qBAAqC;AACnD,QAAO,aAAa;EAClB,SAAS,WAAW,EAAE,MAAM,UAAU,CAAC;EACvC,SAAS,WAAW,EAAE,MAAM,UAAU,CAAC;EACxC,CAAC;;;;;AAMJ,SAAgB,wBAAwC;AACtD,QAAO,oBAAoB;EACzB,OAAO,uBAAuB,GAC1B,6CACA;EACJ,MAAM;EACP,CAAC;;;;;AAaJ,SAAgB,eAAgC;AAC9C,QAAO,MACL,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,CACxB"}
@@ -2,8 +2,6 @@ import { Command } from "@prosekit/pm/state";
2
2
  import { Extension, PlainExtension, Union } from "@prosekit/core";
3
3
  import { Attrs } from "@prosekit/pm/model";
4
4
  import { CellSelection, MoveTableColumnOptions, MoveTableRowOptions, findTable, moveTableColumn, moveTableRow } from "prosemirror-tables";
5
-
6
- //#region src/table/table-commands/insert-table.d.ts
7
5
  /**
8
6
  * @public
9
7
  */
@@ -32,8 +30,6 @@ interface InsertTableOptions {
32
30
  * @public
33
31
  */
34
32
  declare function insertTable(options: InsertTableOptions): Command;
35
- //#endregion
36
- //#region src/table/table-commands/select-table-cell.d.ts
37
33
  /**
38
34
  * @public
39
35
  */
@@ -48,8 +44,6 @@ interface SelectTableCellOptions {
48
44
  * @public
49
45
  */
50
46
  declare function selectTableCell(options?: SelectTableCellOptions): Command;
51
- //#endregion
52
- //#region src/table/table-commands/select-table-column.d.ts
53
47
  /**
54
48
  * @public
55
49
  */
@@ -69,8 +63,6 @@ interface SelectTableColumnOptions {
69
63
  * @public
70
64
  */
71
65
  declare function selectTableColumn(options?: SelectTableColumnOptions): Command;
72
- //#endregion
73
- //#region src/table/table-commands/select-table-row.d.ts
74
66
  /**
75
67
  * @public
76
68
  */
@@ -90,8 +82,6 @@ interface SelectTableRowOptions {
90
82
  * @public
91
83
  */
92
84
  declare function selectTableRow(options?: SelectTableRowOptions): Command;
93
- //#endregion
94
- //#region src/table/table-commands/select-table.d.ts
95
85
  /**
96
86
  * @public
97
87
  */
@@ -106,8 +96,6 @@ interface SelectTableOptions {
106
96
  * @public
107
97
  */
108
98
  declare function selectTable(options?: SelectTableOptions): Command;
109
- //#endregion
110
- //#region src/table/table-commands.d.ts
111
99
  /**
112
100
  * @internal
113
101
  */
@@ -139,8 +127,6 @@ type TableCommandsExtension = Extension<{
139
127
  * @public
140
128
  */
141
129
  declare function defineTableCommands(): TableCommandsExtension;
142
- //#endregion
143
- //#region src/table/table-commands/exit-table.d.ts
144
130
  /**
145
131
  * When the selection is in a table node, create a default block after the table
146
132
  * table, and move the cursor there.
@@ -148,8 +134,6 @@ declare function defineTableCommands(): TableCommandsExtension;
148
134
  * @public
149
135
  */
150
136
  declare const exitTable: Command;
151
- //#endregion
152
- //#region src/table/table-drop-indicator.d.ts
153
137
  /**
154
138
  * Hides the drop indicator when dragging a table column or row by using the
155
139
  * table handle.
@@ -157,14 +141,10 @@ declare const exitTable: Command;
157
141
  * @internal
158
142
  */
159
143
  declare function defineTableDropIndicator(): PlainExtension;
160
- //#endregion
161
- //#region src/table/table-plugins.d.ts
162
144
  /**
163
145
  * @public
164
146
  */
165
147
  declare function defineTablePlugins(): PlainExtension;
166
- //#endregion
167
- //#region src/table/table-spec.d.ts
168
148
  /**
169
149
  * @public
170
150
  */
@@ -218,16 +198,12 @@ type TableHeaderCellSpecExtension = Extension<{
218
198
  };
219
199
  }>;
220
200
  declare function defineTableHeaderCellSpec(): TableHeaderCellSpecExtension;
221
- //#endregion
222
- //#region src/table/table-utils.d.ts
223
201
  /**
224
202
  * Checks if the given object is a `CellSelection` instance.
225
203
  *
226
204
  * @public
227
205
  */
228
206
  declare function isCellSelection(value: unknown): value is CellSelection;
229
- //#endregion
230
- //#region src/table/table.d.ts
231
207
  /**
232
208
  * @internal
233
209
  */
@@ -236,6 +212,5 @@ type TableExtension = Union<[TableSpecExtension, TableRowSpecExtension, TableCel
236
212
  * @public
237
213
  */
238
214
  declare function defineTable(): TableExtension;
239
- //#endregion
240
215
  export { type InsertTableOptions, type MoveTableColumnOptions, type MoveTableRowOptions, type SelectTableCellOptions, type SelectTableColumnOptions, type SelectTableOptions, type SelectTableRowOptions, type TableCellSpecExtension, type TableCommandsExtension, type TableExtension, type TableHeaderCellSpecExtension, type TableRowSpecExtension, type TableSpecExtension, defineTable, defineTableCellSpec, defineTableCommands, defineTableDropIndicator, defineTableHeaderCellSpec, defineTablePlugins, defineTableRowSpec, defineTableSpec, exitTable, findTable, insertTable, isCellSelection, moveTableColumn, moveTableRow, selectTable, selectTableCell, selectTableColumn, selectTableRow };
241
- //# sourceMappingURL=prosekit-extensions-table.d.ts.map
216
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","names":[],"sources":["../src/table/table-commands/insert-table.ts","../src/table/table-commands/select-table-cell.ts","../src/table/table-commands/select-table-column.ts","../src/table/table-commands/select-table-row.ts","../src/table/table-commands/select-table.ts","../src/table/table-commands.ts","../src/table/table-commands/exit-table.ts","../src/table/table-drop-indicator.ts","../src/table/table-plugins.ts","../src/table/table-spec.ts","../src/table/table-utils.ts","../src/table/table.ts"],"mappings":";;;;;;;UA2CiB,kBAAA;EAAA;;;EAIf,GAAA;EAAA;;;EAKA,GAAA;EAOM;AAWR;;;;EAXE,MAAA;AAAA;;;;;ACnDF;;;;iBD8DgB,WAAA,CAAY,OAAA,EAAS,kBAAA,GAAqB,OAAA;;;;UC9DzC,sBAAA;EDmCA;;;;EC9Bf,GAAA;AAAA;;;;iBAMc,eAAA,CAAgB,OAAA,GAAU,sBAAA,GAAyB,OAAA;;;;UCXlD,wBAAA;EFmCA;;;;EE9Bf,MAAA;EFuCA;;;;EEjCA,IAAA;AAAA;;;;iBAMc,iBAAA,CAAkB,OAAA,GAAU,wBAAA,GAA2B,OAAA;;;;UCjBtD,qBAAA;EHmCA;;;;EG9Bf,MAAA;EHuCA;;;;EGjCA,IAAA;AAAA;;;;iBAMc,cAAA,CAAe,OAAA,GAAU,qBAAA,GAAwB,OAAA;;;;UCjBhD,kBAAA;EJmCA;;;;EI9Bf,GAAA;AAAA;;;;iBAMc,WAAA,CAAY,OAAA,GAAU,kBAAA,GAAqB,OAAA;;;;KCO/C,sBAAA,GAAyB,SAAA;EACnC,QAAA;IACE,WAAA,GAAc,OAAA,EAAS,kBAAA;IACvB,SAAA;IAEA,WAAA,GAAc,OAAA,GAAU,kBAAA;IACxB,eAAA,GAAkB,OAAA,GAAU,sBAAA;IAC5B,iBAAA,GAAoB,OAAA,GAAU,wBAAA;IAC9B,cAAA,GAAiB,OAAA,GAAU,qBAAA;IAE3B,oBAAA;IACA,mBAAA;IACA,gBAAA;IACA,gBAAA;IAEA,WAAA;IACA,iBAAA;IACA,cAAA;IACA,mBAAA;IAEA,eAAA;IACA,cAAA;IAEA,YAAA,GAAe,OAAA,EAAS,mBAAA;IACxB,eAAA,GAAkB,OAAA,EAAS,sBAAA;EAAA;AAAA;;;;;;iBASf,mBAAA,CAAA,GAAuB,sBAAA;;;;;ALhBvC;;cMhCa,SAAA,EAAW,OAAA;;;;;ANgCxB;;iBOhCgB,wBAAA,CAAA,GAA4B,cAAA;;;;iBCL5B,kBAAA,CAAA,GAAsB,cAAA;;;;UCGrB,SAAA;EACf,OAAA;EACA,OAAA;EACA,QAAA;AAAA;;;;KAYU,kBAAA,GAAqB,SAAA;EAC/B,KAAA;IACE,KAAA,EAAO,KAAA;EAAA;AAAA;;;;iBAaK,eAAA,CAAA,GAAmB,kBAAA;;;AR/BnC;KQ0CY,qBAAA,GAAwB,SAAA;EAClC,KAAA;IACE,QAAA,EAAU,KAAA;EAAA;AAAA;;;;iBAOE,kBAAA,CAAA,GAAsB,qBAAA;;;;KAW1B,sBAAA,GAAyB,SAAA;EACnC,KAAA;IACE,SAAA,EAAW,SAAA;EAAA;AAAA;;;AP/Cf;iBOsDgB,mBAAA,CAAA,GAAuB,sBAAA;;;;KAW3B,4BAAA,GAA+B,SAAA;EACzC,KAAA;IACE,eAAA,EAAiB,SAAA;EAAA;AAAA;AAAA,iBAIL,yBAAA,CAAA,GAA6B,4BAAA;;;;ATrD7C;;iBUlCgB,eAAA,CAAgB,KAAA,YAAiB,KAAA,IAAS,aAAA;;;AVkC1D;KWxBY,cAAA,GAAiB,KAAA,EAEzB,kBAAA,EACA,qBAAA,EACA,sBAAA,EACA,4BAAA,EACA,sBAAA;;AX6CJ;;iBWtCgB,WAAA,CAAA,GAAe,cAAA"}
package/dist/table.js CHANGED
@@ -1,276 +1,2 @@
1
- import { t as defineDropIndicator } from "./drop-indicator.js";
2
- import { TextSelection } from "@prosekit/pm/state";
3
- import { defaultBlockAt, defineCommands, defineNodeSpec, definePlugin, getNodeType, insertNode, union } from "@prosekit/core";
4
- import { CellSelection, TableMap, addColumnAfter, addColumnBefore, addRowAfter, addRowBefore, columnResizing, deleteCellSelection, deleteColumn, deleteRow, deleteTable, findCellPos, findCellRange, findTable, mergeCells, moveTableColumn, moveTableRow, splitCell, tableEditing, tableNodes } from "prosemirror-tables";
5
- //#region src/table/table-commands/exit-table.ts
6
- /**
7
- * When the selection is in a table node, create a default block after the table
8
- * table, and move the cursor there.
9
- *
10
- * @public
11
- */
12
- const exitTable = (state, dispatch) => {
13
- const { $head, $anchor } = state.selection;
14
- if (!$head.sameParent($anchor)) return false;
15
- let tableStart = -1;
16
- let tableDepth = -1;
17
- for (let depth = $head.depth; depth >= 0; depth--) if ($head.node(depth).type.spec.tableRole === "table") {
18
- tableStart = $head.before(depth);
19
- tableDepth = depth;
20
- }
21
- if (tableStart < 0 || tableDepth <= 0) return false;
22
- const above = $head.node(tableDepth - 1);
23
- const after = $head.indexAfter(tableDepth - 1);
24
- const type = defaultBlockAt(above.contentMatchAt(after));
25
- const node = type?.createAndFill();
26
- if (!type || !node || !above.canReplaceWith(after, after, type)) return false;
27
- if (dispatch) {
28
- const pos = $head.after(tableDepth);
29
- const tr = state.tr.replaceWith(pos, pos, node);
30
- tr.setSelection(TextSelection.near(tr.doc.resolve(pos), 1));
31
- dispatch(tr.scrollIntoView());
32
- }
33
- return true;
34
- };
35
- //#endregion
36
- //#region src/table/table-commands/insert-table.ts
37
- function createEmptyTable(schema, row, col, header) {
38
- const tableType = getNodeType(schema, "table");
39
- const tableRowType = getNodeType(schema, "tableRow");
40
- const tableCellType = getNodeType(schema, "tableCell");
41
- const tableHeaderCellType = getNodeType(schema, "tableHeaderCell");
42
- if (header) {
43
- const headerCells = repeat(tableHeaderCellType.createAndFill(), col);
44
- const headerRow = tableRowType.createAndFill(null, headerCells);
45
- const bodyCells = repeat(tableCellType.createAndFill(), col);
46
- const bodyRows = repeat(tableRowType.createAndFill(null, bodyCells), row - 1);
47
- return tableType.createAndFill(null, [headerRow, ...bodyRows]);
48
- } else {
49
- const bodyCells = repeat(tableCellType.createAndFill(), col);
50
- const bodyRows = repeat(tableRowType.createAndFill(null, bodyCells), row);
51
- return tableType.createAndFill(null, bodyRows);
52
- }
53
- }
54
- function repeat(node, length) {
55
- return Array(length).fill(node);
56
- }
57
- /**
58
- * Insert a table node with the given number of rows and columns, and optionally
59
- * a header row.
60
- *
61
- * @param options
62
- *
63
- * @public
64
- */
65
- function insertTable(options) {
66
- return (state, dispatch, view) => {
67
- const { row, col, header = false } = options;
68
- return insertNode({ node: createEmptyTable(state.schema, row, col, header) })(state, dispatch, view);
69
- };
70
- }
71
- //#endregion
72
- //#region src/table/table-utils.ts
73
- /**
74
- * Checks if the given object is a `CellSelection` instance.
75
- *
76
- * @public
77
- */
78
- function isCellSelection(value) {
79
- return value instanceof CellSelection;
80
- }
81
- //#endregion
82
- //#region src/table/table-commands/select-table-cell.ts
83
- /**
84
- * @public
85
- */
86
- function selectTableCell(options) {
87
- return (state, dispatch) => {
88
- const $cellPos = findCellPos(state.doc, options?.pos ?? state.selection.anchor);
89
- if (!$cellPos) return false;
90
- if (dispatch) {
91
- const selection = new CellSelection($cellPos);
92
- dispatch(state.tr.setSelection(selection));
93
- }
94
- return true;
95
- };
96
- }
97
- //#endregion
98
- //#region src/table/table-commands/select-table-column.ts
99
- /**
100
- * @public
101
- */
102
- function selectTableColumn(options) {
103
- return (state, dispatch) => {
104
- const range = findCellRange(state.selection, options?.anchor, options?.head);
105
- if (!range) return false;
106
- if (dispatch) {
107
- const [$anchorCell, $headCell] = range;
108
- const selection = CellSelection.colSelection($anchorCell, $headCell);
109
- dispatch(state.tr.setSelection(selection));
110
- }
111
- return true;
112
- };
113
- }
114
- //#endregion
115
- //#region src/table/table-commands/select-table-row.ts
116
- /**
117
- * @public
118
- */
119
- function selectTableRow(options) {
120
- return (state, dispatch) => {
121
- const range = findCellRange(state.selection, options?.anchor, options?.head);
122
- if (!range) return false;
123
- if (dispatch) {
124
- const [$anchorCell, $headCell] = range;
125
- const selection = CellSelection.rowSelection($anchorCell, $headCell);
126
- dispatch(state.tr.setSelection(selection));
127
- }
128
- return true;
129
- };
130
- }
131
- //#endregion
132
- //#region src/table/table-commands/select-table.ts
133
- /**
134
- * @public
135
- */
136
- function selectTable(options) {
137
- return (state, dispatch) => {
138
- const table = findTable(options?.pos ? state.doc.resolve(options.pos) : state.selection.$anchor);
139
- if (!table) return false;
140
- const map = TableMap.get(table.node);
141
- if (map.map.length === 0) return false;
142
- if (dispatch) {
143
- let tr = state.tr;
144
- const firstCellPosInTable = map.map[0];
145
- const lastCellPosInTable = map.map[map.map.length - 1];
146
- const firstCellPos = table.pos + firstCellPosInTable + 1;
147
- const lastCellPos = table.pos + lastCellPosInTable + 1;
148
- const selection = new CellSelection(tr.doc.resolve(firstCellPos), tr.doc.resolve(lastCellPos));
149
- tr = tr.setSelection(selection);
150
- dispatch?.(tr);
151
- }
152
- return true;
153
- };
154
- }
155
- //#endregion
156
- //#region src/table/table-commands.ts
157
- /**
158
- * Adds commands for working with `table` nodes.
159
- *
160
- * @public
161
- */
162
- function defineTableCommands() {
163
- return defineCommands({
164
- insertTable,
165
- exitTable: () => exitTable,
166
- selectTable,
167
- selectTableCell,
168
- selectTableColumn,
169
- selectTableRow,
170
- addTableColumnBefore: () => addColumnBefore,
171
- addTableColumnAfter: () => addColumnAfter,
172
- addTableRowAbove: () => addRowBefore,
173
- addTableRowBelow: () => addRowAfter,
174
- deleteTable: () => deleteTable,
175
- deleteTableColumn: () => deleteColumn,
176
- deleteTableRow: () => deleteRow,
177
- deleteCellSelection: () => deleteCellSelection,
178
- mergeTableCells: () => mergeCells,
179
- splitTableCell: () => splitCell,
180
- moveTableRow,
181
- moveTableColumn
182
- });
183
- }
184
- //#endregion
185
- //#region src/table/table-drop-indicator.ts
186
- /**
187
- * Hides the drop indicator when dragging a table column or row by using the
188
- * table handle.
189
- *
190
- * @internal
191
- */
192
- function defineTableDropIndicator() {
193
- return defineDropIndicator({ onDrag });
194
- }
195
- const matchMap = /* @__PURE__ */ new WeakMap();
196
- const onDrag = ({ event }) => {
197
- const dataTransfer = event.dataTransfer;
198
- if (!dataTransfer) return true;
199
- let match;
200
- if (matchMap.has(dataTransfer)) match = matchMap.get(dataTransfer);
201
- else {
202
- match = dataTransfer.types.includes("application/x-prosekit-table-handle-drag");
203
- matchMap.set(dataTransfer, match);
204
- }
205
- return !match;
206
- };
207
- //#endregion
208
- //#region src/table/table-plugins.ts
209
- /**
210
- * @public
211
- */
212
- function defineTablePlugins() {
213
- return definePlugin([tableEditing(), columnResizing()]);
214
- }
215
- //#endregion
216
- //#region src/table/table-spec.ts
217
- const cellContent = "block+";
218
- const cellAttrs = {
219
- colspan: { default: 1 },
220
- rowspan: { default: 1 },
221
- colwidth: { default: null }
222
- };
223
- const specs = tableNodes({
224
- tableGroup: "block",
225
- cellContent,
226
- cellAttributes: {}
227
- });
228
- /**
229
- * @internal
230
- */
231
- function defineTableSpec() {
232
- return defineNodeSpec({
233
- ...specs["table"],
234
- content: "tableRow+",
235
- name: "table"
236
- });
237
- }
238
- /**
239
- * @internal
240
- */
241
- function defineTableRowSpec() {
242
- return defineNodeSpec({
243
- ...specs["table_row"],
244
- content: "(tableCell | tableHeaderCell)*",
245
- name: "tableRow"
246
- });
247
- }
248
- /**
249
- * @internal
250
- */
251
- function defineTableCellSpec() {
252
- return defineNodeSpec({
253
- ...specs["table_cell"],
254
- name: "tableCell",
255
- attrs: cellAttrs
256
- });
257
- }
258
- function defineTableHeaderCellSpec() {
259
- return defineNodeSpec({
260
- ...specs["table_header"],
261
- name: "tableHeaderCell",
262
- attrs: cellAttrs
263
- });
264
- }
265
- //#endregion
266
- //#region src/table/table.ts
267
- /**
268
- * @public
269
- */
270
- function defineTable() {
271
- return union(defineTableSpec(), defineTableRowSpec(), defineTableCellSpec(), defineTableHeaderCellSpec(), defineTablePlugins(), defineTableCommands(), defineTableDropIndicator());
272
- }
273
- //#endregion
274
- export { insertTable as _, defineTableSpec as a, defineTableCommands as c, selectTableColumn as d, selectTableCell as f, moveTableColumn as g, moveTableRow as h, defineTableRowSpec as i, selectTable as l, isCellSelection as m, defineTableCellSpec as n, defineTablePlugins as o, findTable as p, defineTableHeaderCellSpec as r, defineTableDropIndicator as s, defineTable as t, selectTableRow as u, exitTable as v };
275
-
276
- //# sourceMappingURL=table.js.map
1
+ import { _ as insertTable, a as defineTableSpec, c as defineTableCommands, d as selectTableColumn, f as selectTableCell, g as moveTableColumn, h as moveTableRow, i as defineTableRowSpec, l as selectTable, m as isCellSelection, n as defineTableCellSpec, o as defineTablePlugins, p as findTable, r as defineTableHeaderCellSpec, s as defineTableDropIndicator, t as defineTable, u as selectTableRow, v as exitTable } from "./table2.js";
2
+ export { defineTable, defineTableCellSpec, defineTableCommands, defineTableDropIndicator, defineTableHeaderCellSpec, defineTablePlugins, defineTableRowSpec, defineTableSpec, exitTable, findTable, insertTable, isCellSelection, moveTableColumn, moveTableRow, selectTable, selectTableCell, selectTableColumn, selectTableRow };