prosekit-registry 0.0.21 → 0.0.22

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 (482) hide show
  1. package/dist/r/lit-example-minimal.json +1 -1
  2. package/dist/r/lit-example-slash-menu.json +2 -2
  3. package/dist/r/lit-example-table.json +2 -2
  4. package/dist/r/lit-example-toolbar.json +2 -2
  5. package/dist/r/lit-sample-sample-doc-table.json +1 -1
  6. package/dist/r/lit-sample-sample-uploader.json +1 -1
  7. package/dist/r/lit-ui-button.json +2 -2
  8. package/dist/r/lit-ui-editor-context.json +1 -1
  9. package/dist/r/lit-ui-image-upload-popover.json +2 -2
  10. package/dist/r/lit-ui-slash-menu.json +4 -4
  11. package/dist/r/lit-ui-table-handle.json +2 -2
  12. package/dist/r/lit-ui-toolbar.json +1 -1
  13. package/dist/r/preact-example-block-handle.json +2 -2
  14. package/dist/r/preact-example-blockquote.json +2 -2
  15. package/dist/r/preact-example-bold.json +2 -2
  16. package/dist/r/preact-example-change-tracking.json +3 -3
  17. package/dist/r/preact-example-code-block-themes.json +2 -2
  18. package/dist/r/preact-example-code-block.json +2 -2
  19. package/dist/r/preact-example-code.json +2 -2
  20. package/dist/r/preact-example-drop-cursor.json +2 -2
  21. package/dist/r/preact-example-emoji-rules.json +2 -2
  22. package/dist/r/preact-example-full.json +2 -2
  23. package/dist/r/preact-example-gap-cursor.json +2 -2
  24. package/dist/r/preact-example-hard-break.json +2 -2
  25. package/dist/r/preact-example-heading.json +2 -2
  26. package/dist/r/preact-example-horizontal-rule.json +2 -2
  27. package/dist/r/preact-example-image-view.json +2 -2
  28. package/dist/r/preact-example-inline-menu.json +2 -2
  29. package/dist/r/preact-example-italic.json +2 -2
  30. package/dist/r/preact-example-keymap.json +2 -2
  31. package/dist/r/preact-example-link-mark-view.json +2 -2
  32. package/dist/r/preact-example-link.json +2 -2
  33. package/dist/r/preact-example-list-custom-checkbox.json +2 -2
  34. package/dist/r/preact-example-list.json +2 -2
  35. package/dist/r/preact-example-loro.json +2 -2
  36. package/dist/r/preact-example-mark-rule.json +2 -2
  37. package/dist/r/preact-example-minimal.json +1 -1
  38. package/dist/r/preact-example-placeholder.json +2 -2
  39. package/dist/r/preact-example-readonly.json +2 -2
  40. package/dist/r/preact-example-rtl.json +2 -2
  41. package/dist/r/preact-example-save-html.json +2 -2
  42. package/dist/r/preact-example-save-json.json +2 -2
  43. package/dist/r/preact-example-save-markdown.json +2 -2
  44. package/dist/r/preact-example-search.json +2 -2
  45. package/dist/r/preact-example-slash-menu.json +2 -2
  46. package/dist/r/preact-example-strike.json +2 -2
  47. package/dist/r/preact-example-table.json +2 -2
  48. package/dist/r/preact-example-temml.json +2 -2
  49. package/dist/r/preact-example-text-align.json +2 -2
  50. package/dist/r/preact-example-text-color.json +3 -3
  51. package/dist/r/preact-example-toolbar.json +2 -2
  52. package/dist/r/preact-example-typography.json +2 -2
  53. package/dist/r/preact-example-underline.json +2 -2
  54. package/dist/r/preact-example-unmount.json +2 -2
  55. package/dist/r/preact-example-user-menu-dynamic.json +2 -2
  56. package/dist/r/preact-example-user-menu.json +2 -2
  57. package/dist/r/preact-example-view-adapter.json +2 -2
  58. package/dist/r/preact-example-word-counter.json +2 -2
  59. package/dist/r/preact-example-yjs.json +2 -2
  60. package/dist/r/preact-sample-define-atom-block.json +1 -1
  61. package/dist/r/preact-sample-sample-doc-block-handle.json +1 -1
  62. package/dist/r/preact-sample-sample-doc-bold.json +1 -1
  63. package/dist/r/preact-sample-sample-doc-code-block.json +1 -1
  64. package/dist/r/preact-sample-sample-doc-code.json +1 -1
  65. package/dist/r/preact-sample-sample-doc-drop-cursor.json +1 -1
  66. package/dist/r/preact-sample-sample-doc-full.json +1 -1
  67. package/dist/r/preact-sample-sample-doc-gap-cursor.json +1 -1
  68. package/dist/r/preact-sample-sample-doc-hard-break.json +1 -1
  69. package/dist/r/preact-sample-sample-doc-heading.json +1 -1
  70. package/dist/r/preact-sample-sample-doc-image.json +1 -1
  71. package/dist/r/preact-sample-sample-doc-inline-menu.json +1 -1
  72. package/dist/r/preact-sample-sample-doc-italic.json +1 -1
  73. package/dist/r/preact-sample-sample-doc-link-mark-view.json +1 -1
  74. package/dist/r/preact-sample-sample-doc-link.json +1 -1
  75. package/dist/r/preact-sample-sample-doc-list-custom-checkbox.json +1 -1
  76. package/dist/r/preact-sample-sample-doc-list.json +1 -1
  77. package/dist/r/preact-sample-sample-doc-readonly.json +1 -1
  78. package/dist/r/preact-sample-sample-doc-rtl.json +1 -1
  79. package/dist/r/preact-sample-sample-doc-search.json +1 -1
  80. package/dist/r/preact-sample-sample-doc-strike.json +1 -1
  81. package/dist/r/preact-sample-sample-doc-table.json +1 -1
  82. package/dist/r/preact-sample-sample-doc-tex.json +1 -1
  83. package/dist/r/preact-sample-sample-doc-text-align.json +1 -1
  84. package/dist/r/preact-sample-sample-doc-text-color.json +1 -1
  85. package/dist/r/preact-sample-sample-doc-typography.json +1 -1
  86. package/dist/r/preact-sample-sample-doc-underline.json +1 -1
  87. package/dist/r/preact-sample-sample-doc-view-adapter.json +1 -1
  88. package/dist/r/preact-sample-sample-doc-word-counter.json +1 -1
  89. package/dist/r/preact-sample-sample-uploader.json +1 -1
  90. package/dist/r/preact-ui-block-handle.json +2 -2
  91. package/dist/r/preact-ui-button.json +2 -2
  92. package/dist/r/preact-ui-code-block-view.json +1 -1
  93. package/dist/r/preact-ui-drop-indicator.json +1 -1
  94. package/dist/r/preact-ui-image-upload-popover.json +2 -2
  95. package/dist/r/preact-ui-image-view.json +1 -1
  96. package/dist/r/preact-ui-inline-menu.json +2 -2
  97. package/dist/r/preact-ui-search.json +2 -2
  98. package/dist/r/preact-ui-slash-menu.json +4 -4
  99. package/dist/r/preact-ui-table-handle.json +2 -2
  100. package/dist/r/preact-ui-tag-menu.json +2 -2
  101. package/dist/r/preact-ui-toolbar.json +1 -1
  102. package/dist/r/preact-ui-user-menu.json +2 -2
  103. package/dist/r/preact-ui-word-counter.json +1 -1
  104. package/dist/r/react-example-block-handle.json +2 -2
  105. package/dist/r/react-example-blockquote.json +2 -2
  106. package/dist/r/react-example-bold.json +2 -2
  107. package/dist/r/react-example-change-tracking.json +3 -3
  108. package/dist/r/react-example-code-block-themes.json +2 -2
  109. package/dist/r/react-example-code-block.json +2 -2
  110. package/dist/r/react-example-code.json +2 -2
  111. package/dist/r/react-example-drop-cursor.json +2 -2
  112. package/dist/r/react-example-emoji-rules.json +2 -2
  113. package/dist/r/react-example-full.json +2 -2
  114. package/dist/r/react-example-gap-cursor.json +2 -2
  115. package/dist/r/react-example-hard-break.json +2 -2
  116. package/dist/r/react-example-heading.json +2 -2
  117. package/dist/r/react-example-horizontal-rule.json +2 -2
  118. package/dist/r/react-example-image-view.json +2 -2
  119. package/dist/r/react-example-inline-menu.json +2 -2
  120. package/dist/r/react-example-italic.json +2 -2
  121. package/dist/r/react-example-keymap.json +2 -2
  122. package/dist/r/react-example-link-mark-view.json +2 -2
  123. package/dist/r/react-example-link.json +2 -2
  124. package/dist/r/react-example-list-custom-checkbox.json +2 -2
  125. package/dist/r/react-example-list.json +2 -2
  126. package/dist/r/react-example-loro.json +2 -2
  127. package/dist/r/react-example-mark-rule.json +2 -2
  128. package/dist/r/react-example-minimal.json +1 -1
  129. package/dist/r/react-example-notion.json +6 -6
  130. package/dist/r/react-example-page.json +2 -2
  131. package/dist/r/react-example-placeholder.json +2 -2
  132. package/dist/r/react-example-readonly.json +2 -2
  133. package/dist/r/react-example-rtl.json +2 -2
  134. package/dist/r/react-example-save-html.json +2 -2
  135. package/dist/r/react-example-save-json.json +2 -2
  136. package/dist/r/react-example-save-markdown.json +2 -2
  137. package/dist/r/react-example-search.json +2 -2
  138. package/dist/r/react-example-slash-menu.json +2 -2
  139. package/dist/r/react-example-strike.json +2 -2
  140. package/dist/r/react-example-table.json +2 -2
  141. package/dist/r/react-example-temml.json +2 -2
  142. package/dist/r/react-example-text-align.json +2 -2
  143. package/dist/r/react-example-text-color.json +3 -3
  144. package/dist/r/react-example-toolbar.json +2 -2
  145. package/dist/r/react-example-tweet.json +2 -2
  146. package/dist/r/react-example-typography.json +2 -2
  147. package/dist/r/react-example-underline.json +2 -2
  148. package/dist/r/react-example-unmount.json +2 -2
  149. package/dist/r/react-example-user-menu-dynamic.json +2 -2
  150. package/dist/r/react-example-user-menu.json +2 -2
  151. package/dist/r/react-example-view-adapter.json +2 -2
  152. package/dist/r/react-example-word-counter.json +2 -2
  153. package/dist/r/react-example-yjs.json +2 -2
  154. package/dist/r/react-sample-define-atom-block.json +1 -1
  155. package/dist/r/react-sample-sample-doc-block-handle.json +1 -1
  156. package/dist/r/react-sample-sample-doc-bold.json +1 -1
  157. package/dist/r/react-sample-sample-doc-code-block.json +1 -1
  158. package/dist/r/react-sample-sample-doc-code.json +1 -1
  159. package/dist/r/react-sample-sample-doc-drop-cursor.json +1 -1
  160. package/dist/r/react-sample-sample-doc-full.json +1 -1
  161. package/dist/r/react-sample-sample-doc-gap-cursor.json +1 -1
  162. package/dist/r/react-sample-sample-doc-hard-break.json +1 -1
  163. package/dist/r/react-sample-sample-doc-heading.json +1 -1
  164. package/dist/r/react-sample-sample-doc-image.json +1 -1
  165. package/dist/r/react-sample-sample-doc-inline-menu.json +1 -1
  166. package/dist/r/react-sample-sample-doc-italic.json +1 -1
  167. package/dist/r/react-sample-sample-doc-link-mark-view.json +1 -1
  168. package/dist/r/react-sample-sample-doc-link.json +1 -1
  169. package/dist/r/react-sample-sample-doc-list-custom-checkbox.json +1 -1
  170. package/dist/r/react-sample-sample-doc-list.json +1 -1
  171. package/dist/r/react-sample-sample-doc-notion.json +1 -1
  172. package/dist/r/react-sample-sample-doc-page.json +1 -1
  173. package/dist/r/react-sample-sample-doc-readonly.json +1 -1
  174. package/dist/r/react-sample-sample-doc-rtl.json +1 -1
  175. package/dist/r/react-sample-sample-doc-search.json +1 -1
  176. package/dist/r/react-sample-sample-doc-strike.json +1 -1
  177. package/dist/r/react-sample-sample-doc-table.json +1 -1
  178. package/dist/r/react-sample-sample-doc-tex.json +1 -1
  179. package/dist/r/react-sample-sample-doc-text-align.json +1 -1
  180. package/dist/r/react-sample-sample-doc-text-color.json +1 -1
  181. package/dist/r/react-sample-sample-doc-tweet.json +1 -1
  182. package/dist/r/react-sample-sample-doc-typography.json +1 -1
  183. package/dist/r/react-sample-sample-doc-underline.json +1 -1
  184. package/dist/r/react-sample-sample-doc-view-adapter.json +1 -1
  185. package/dist/r/react-sample-sample-doc-word-counter.json +1 -1
  186. package/dist/r/react-sample-sample-uploader.json +1 -1
  187. package/dist/r/react-ui-block-handle.json +2 -2
  188. package/dist/r/react-ui-button.json +2 -2
  189. package/dist/r/react-ui-code-block-view.json +1 -1
  190. package/dist/r/react-ui-drop-indicator.json +1 -1
  191. package/dist/r/react-ui-image-upload-popover.json +2 -2
  192. package/dist/r/react-ui-image-view.json +1 -1
  193. package/dist/r/react-ui-inline-menu.json +2 -2
  194. package/dist/r/react-ui-search.json +2 -2
  195. package/dist/r/react-ui-slash-menu.json +4 -4
  196. package/dist/r/react-ui-table-handle.json +2 -2
  197. package/dist/r/react-ui-tag-menu.json +2 -2
  198. package/dist/r/react-ui-toolbar.json +1 -1
  199. package/dist/r/react-ui-user-menu.json +2 -2
  200. package/dist/r/react-ui-word-counter.json +1 -1
  201. package/dist/r/registry.json +480 -480
  202. package/dist/r/solid-example-block-handle.json +2 -2
  203. package/dist/r/solid-example-blockquote.json +2 -2
  204. package/dist/r/solid-example-bold.json +2 -2
  205. package/dist/r/solid-example-change-tracking.json +3 -3
  206. package/dist/r/solid-example-code-block-themes.json +2 -2
  207. package/dist/r/solid-example-code-block.json +2 -2
  208. package/dist/r/solid-example-code.json +2 -2
  209. package/dist/r/solid-example-drop-cursor.json +2 -2
  210. package/dist/r/solid-example-emoji-rules.json +2 -2
  211. package/dist/r/solid-example-full.json +2 -2
  212. package/dist/r/solid-example-gap-cursor.json +2 -2
  213. package/dist/r/solid-example-hard-break.json +2 -2
  214. package/dist/r/solid-example-heading.json +2 -2
  215. package/dist/r/solid-example-horizontal-rule.json +2 -2
  216. package/dist/r/solid-example-image-view.json +2 -2
  217. package/dist/r/solid-example-inline-menu.json +2 -2
  218. package/dist/r/solid-example-italic.json +2 -2
  219. package/dist/r/solid-example-keymap.json +2 -2
  220. package/dist/r/solid-example-link-mark-view.json +2 -2
  221. package/dist/r/solid-example-link.json +2 -2
  222. package/dist/r/solid-example-list-custom-checkbox.json +2 -2
  223. package/dist/r/solid-example-list.json +2 -2
  224. package/dist/r/solid-example-loro.json +2 -2
  225. package/dist/r/solid-example-mark-rule.json +2 -2
  226. package/dist/r/solid-example-minimal.json +1 -1
  227. package/dist/r/solid-example-placeholder.json +2 -2
  228. package/dist/r/solid-example-readonly.json +2 -2
  229. package/dist/r/solid-example-rtl.json +2 -2
  230. package/dist/r/solid-example-save-html.json +2 -2
  231. package/dist/r/solid-example-save-json.json +2 -2
  232. package/dist/r/solid-example-save-markdown.json +2 -2
  233. package/dist/r/solid-example-search.json +2 -2
  234. package/dist/r/solid-example-slash-menu.json +2 -2
  235. package/dist/r/solid-example-strike.json +2 -2
  236. package/dist/r/solid-example-table.json +2 -2
  237. package/dist/r/solid-example-temml.json +2 -2
  238. package/dist/r/solid-example-text-align.json +2 -2
  239. package/dist/r/solid-example-text-color.json +3 -3
  240. package/dist/r/solid-example-toolbar.json +2 -2
  241. package/dist/r/solid-example-typography.json +2 -2
  242. package/dist/r/solid-example-underline.json +2 -2
  243. package/dist/r/solid-example-unmount.json +2 -2
  244. package/dist/r/solid-example-user-menu-dynamic.json +2 -2
  245. package/dist/r/solid-example-user-menu.json +2 -2
  246. package/dist/r/solid-example-view-adapter.json +2 -2
  247. package/dist/r/solid-example-word-counter.json +2 -2
  248. package/dist/r/solid-example-yjs.json +2 -2
  249. package/dist/r/solid-sample-define-atom-block.json +1 -1
  250. package/dist/r/solid-sample-sample-doc-block-handle.json +1 -1
  251. package/dist/r/solid-sample-sample-doc-bold.json +1 -1
  252. package/dist/r/solid-sample-sample-doc-code-block.json +1 -1
  253. package/dist/r/solid-sample-sample-doc-code.json +1 -1
  254. package/dist/r/solid-sample-sample-doc-drop-cursor.json +1 -1
  255. package/dist/r/solid-sample-sample-doc-full.json +1 -1
  256. package/dist/r/solid-sample-sample-doc-gap-cursor.json +1 -1
  257. package/dist/r/solid-sample-sample-doc-hard-break.json +1 -1
  258. package/dist/r/solid-sample-sample-doc-heading.json +1 -1
  259. package/dist/r/solid-sample-sample-doc-image.json +1 -1
  260. package/dist/r/solid-sample-sample-doc-inline-menu.json +1 -1
  261. package/dist/r/solid-sample-sample-doc-italic.json +1 -1
  262. package/dist/r/solid-sample-sample-doc-link-mark-view.json +1 -1
  263. package/dist/r/solid-sample-sample-doc-link.json +1 -1
  264. package/dist/r/solid-sample-sample-doc-list-custom-checkbox.json +1 -1
  265. package/dist/r/solid-sample-sample-doc-list.json +1 -1
  266. package/dist/r/solid-sample-sample-doc-readonly.json +1 -1
  267. package/dist/r/solid-sample-sample-doc-rtl.json +1 -1
  268. package/dist/r/solid-sample-sample-doc-search.json +1 -1
  269. package/dist/r/solid-sample-sample-doc-strike.json +1 -1
  270. package/dist/r/solid-sample-sample-doc-table.json +1 -1
  271. package/dist/r/solid-sample-sample-doc-tex.json +1 -1
  272. package/dist/r/solid-sample-sample-doc-text-align.json +1 -1
  273. package/dist/r/solid-sample-sample-doc-text-color.json +1 -1
  274. package/dist/r/solid-sample-sample-doc-typography.json +1 -1
  275. package/dist/r/solid-sample-sample-doc-underline.json +1 -1
  276. package/dist/r/solid-sample-sample-doc-view-adapter.json +1 -1
  277. package/dist/r/solid-sample-sample-doc-word-counter.json +1 -1
  278. package/dist/r/solid-sample-sample-uploader.json +1 -1
  279. package/dist/r/solid-ui-block-handle.json +2 -2
  280. package/dist/r/solid-ui-button.json +2 -2
  281. package/dist/r/solid-ui-code-block-view.json +1 -1
  282. package/dist/r/solid-ui-drop-indicator.json +1 -1
  283. package/dist/r/solid-ui-image-upload-popover.json +2 -2
  284. package/dist/r/solid-ui-image-view.json +1 -1
  285. package/dist/r/solid-ui-inline-menu.json +2 -2
  286. package/dist/r/solid-ui-search.json +2 -2
  287. package/dist/r/solid-ui-slash-menu.json +4 -4
  288. package/dist/r/solid-ui-table-handle.json +2 -2
  289. package/dist/r/solid-ui-tag-menu.json +2 -2
  290. package/dist/r/solid-ui-toolbar.json +1 -1
  291. package/dist/r/solid-ui-user-menu.json +2 -2
  292. package/dist/r/solid-ui-word-counter.json +1 -1
  293. package/dist/r/svelte-example-block-handle.json +2 -2
  294. package/dist/r/svelte-example-blockquote.json +2 -2
  295. package/dist/r/svelte-example-bold.json +2 -2
  296. package/dist/r/svelte-example-change-tracking.json +3 -3
  297. package/dist/r/svelte-example-code-block-themes.json +2 -2
  298. package/dist/r/svelte-example-code-block.json +2 -2
  299. package/dist/r/svelte-example-code.json +2 -2
  300. package/dist/r/svelte-example-drop-cursor.json +2 -2
  301. package/dist/r/svelte-example-emoji-rules.json +2 -2
  302. package/dist/r/svelte-example-full.json +2 -2
  303. package/dist/r/svelte-example-gap-cursor.json +2 -2
  304. package/dist/r/svelte-example-hard-break.json +2 -2
  305. package/dist/r/svelte-example-heading.json +2 -2
  306. package/dist/r/svelte-example-horizontal-rule.json +2 -2
  307. package/dist/r/svelte-example-image-view.json +2 -2
  308. package/dist/r/svelte-example-inline-menu.json +2 -2
  309. package/dist/r/svelte-example-italic.json +2 -2
  310. package/dist/r/svelte-example-katex.json +2 -2
  311. package/dist/r/svelte-example-keymap.json +2 -2
  312. package/dist/r/svelte-example-link-mark-view.json +2 -2
  313. package/dist/r/svelte-example-link.json +2 -2
  314. package/dist/r/svelte-example-list-custom-checkbox.json +2 -2
  315. package/dist/r/svelte-example-list.json +2 -2
  316. package/dist/r/svelte-example-loro.json +2 -2
  317. package/dist/r/svelte-example-mark-rule.json +2 -2
  318. package/dist/r/svelte-example-minimal.json +1 -1
  319. package/dist/r/svelte-example-page.json +2 -2
  320. package/dist/r/svelte-example-placeholder.json +2 -2
  321. package/dist/r/svelte-example-readonly.json +2 -2
  322. package/dist/r/svelte-example-rtl.json +2 -2
  323. package/dist/r/svelte-example-save-html.json +2 -2
  324. package/dist/r/svelte-example-save-json.json +2 -2
  325. package/dist/r/svelte-example-save-markdown.json +2 -2
  326. package/dist/r/svelte-example-search.json +2 -2
  327. package/dist/r/svelte-example-slash-menu.json +2 -2
  328. package/dist/r/svelte-example-strike.json +2 -2
  329. package/dist/r/svelte-example-table.json +2 -2
  330. package/dist/r/svelte-example-text-align.json +2 -2
  331. package/dist/r/svelte-example-text-color.json +3 -3
  332. package/dist/r/svelte-example-toolbar.json +2 -2
  333. package/dist/r/svelte-example-typography.json +2 -2
  334. package/dist/r/svelte-example-underline.json +2 -2
  335. package/dist/r/svelte-example-unmount.json +2 -2
  336. package/dist/r/svelte-example-user-menu-dynamic.json +2 -2
  337. package/dist/r/svelte-example-user-menu.json +2 -2
  338. package/dist/r/svelte-example-view-adapter.json +2 -2
  339. package/dist/r/svelte-example-word-counter.json +2 -2
  340. package/dist/r/svelte-example-yjs.json +2 -2
  341. package/dist/r/svelte-sample-define-atom-block.json +1 -1
  342. package/dist/r/svelte-sample-sample-doc-block-handle.json +1 -1
  343. package/dist/r/svelte-sample-sample-doc-bold.json +1 -1
  344. package/dist/r/svelte-sample-sample-doc-code-block.json +1 -1
  345. package/dist/r/svelte-sample-sample-doc-code.json +1 -1
  346. package/dist/r/svelte-sample-sample-doc-drop-cursor.json +1 -1
  347. package/dist/r/svelte-sample-sample-doc-full.json +1 -1
  348. package/dist/r/svelte-sample-sample-doc-gap-cursor.json +1 -1
  349. package/dist/r/svelte-sample-sample-doc-hard-break.json +1 -1
  350. package/dist/r/svelte-sample-sample-doc-heading.json +1 -1
  351. package/dist/r/svelte-sample-sample-doc-image.json +1 -1
  352. package/dist/r/svelte-sample-sample-doc-inline-menu.json +1 -1
  353. package/dist/r/svelte-sample-sample-doc-italic.json +1 -1
  354. package/dist/r/svelte-sample-sample-doc-link-mark-view.json +1 -1
  355. package/dist/r/svelte-sample-sample-doc-link.json +1 -1
  356. package/dist/r/svelte-sample-sample-doc-list-custom-checkbox.json +1 -1
  357. package/dist/r/svelte-sample-sample-doc-list.json +1 -1
  358. package/dist/r/svelte-sample-sample-doc-page.json +1 -1
  359. package/dist/r/svelte-sample-sample-doc-readonly.json +1 -1
  360. package/dist/r/svelte-sample-sample-doc-rtl.json +1 -1
  361. package/dist/r/svelte-sample-sample-doc-search.json +1 -1
  362. package/dist/r/svelte-sample-sample-doc-strike.json +1 -1
  363. package/dist/r/svelte-sample-sample-doc-table.json +1 -1
  364. package/dist/r/svelte-sample-sample-doc-tex.json +1 -1
  365. package/dist/r/svelte-sample-sample-doc-text-align.json +1 -1
  366. package/dist/r/svelte-sample-sample-doc-text-color.json +1 -1
  367. package/dist/r/svelte-sample-sample-doc-typography.json +1 -1
  368. package/dist/r/svelte-sample-sample-doc-underline.json +1 -1
  369. package/dist/r/svelte-sample-sample-doc-view-adapter.json +1 -1
  370. package/dist/r/svelte-sample-sample-doc-word-counter.json +1 -1
  371. package/dist/r/svelte-sample-sample-uploader.json +1 -1
  372. package/dist/r/svelte-ui-block-handle.json +2 -2
  373. package/dist/r/svelte-ui-button.json +2 -2
  374. package/dist/r/svelte-ui-code-block-view.json +1 -1
  375. package/dist/r/svelte-ui-drop-indicator.json +1 -1
  376. package/dist/r/svelte-ui-image-upload-popover.json +2 -2
  377. package/dist/r/svelte-ui-image-view.json +1 -1
  378. package/dist/r/svelte-ui-inline-menu.json +2 -2
  379. package/dist/r/svelte-ui-search.json +2 -2
  380. package/dist/r/svelte-ui-slash-menu.json +4 -4
  381. package/dist/r/svelte-ui-table-handle.json +2 -2
  382. package/dist/r/svelte-ui-tag-menu.json +2 -2
  383. package/dist/r/svelte-ui-toolbar.json +1 -1
  384. package/dist/r/svelte-ui-user-menu.json +2 -2
  385. package/dist/r/svelte-ui-word-counter.json +1 -1
  386. package/dist/r/vanilla-example-minimal.json +1 -1
  387. package/dist/r/vanilla-example-slash-menu.json +2 -2
  388. package/dist/r/vanilla-ui-slash-menu.json +4 -4
  389. package/dist/r/vue-example-block-handle.json +2 -2
  390. package/dist/r/vue-example-blockquote.json +2 -2
  391. package/dist/r/vue-example-bold.json +2 -2
  392. package/dist/r/vue-example-change-tracking.json +3 -3
  393. package/dist/r/vue-example-code-block-themes.json +2 -2
  394. package/dist/r/vue-example-code-block.json +2 -2
  395. package/dist/r/vue-example-code.json +2 -2
  396. package/dist/r/vue-example-drop-cursor.json +2 -2
  397. package/dist/r/vue-example-emoji-rules.json +2 -2
  398. package/dist/r/vue-example-full.json +2 -2
  399. package/dist/r/vue-example-gap-cursor.json +2 -2
  400. package/dist/r/vue-example-hard-break.json +2 -2
  401. package/dist/r/vue-example-heading.json +2 -2
  402. package/dist/r/vue-example-horizontal-rule.json +2 -2
  403. package/dist/r/vue-example-image-view.json +2 -2
  404. package/dist/r/vue-example-inline-menu.json +2 -2
  405. package/dist/r/vue-example-italic.json +2 -2
  406. package/dist/r/vue-example-katex.json +2 -2
  407. package/dist/r/vue-example-keymap.json +2 -2
  408. package/dist/r/vue-example-link-mark-view.json +2 -2
  409. package/dist/r/vue-example-link.json +2 -2
  410. package/dist/r/vue-example-list-custom-checkbox.json +2 -2
  411. package/dist/r/vue-example-list.json +2 -2
  412. package/dist/r/vue-example-loro.json +2 -2
  413. package/dist/r/vue-example-mark-rule.json +2 -2
  414. package/dist/r/vue-example-minimal.json +1 -1
  415. package/dist/r/vue-example-placeholder.json +2 -2
  416. package/dist/r/vue-example-readonly.json +2 -2
  417. package/dist/r/vue-example-rtl.json +2 -2
  418. package/dist/r/vue-example-save-html.json +2 -2
  419. package/dist/r/vue-example-save-json.json +2 -2
  420. package/dist/r/vue-example-save-markdown.json +2 -2
  421. package/dist/r/vue-example-search.json +2 -2
  422. package/dist/r/vue-example-slash-menu.json +2 -2
  423. package/dist/r/vue-example-strike.json +2 -2
  424. package/dist/r/vue-example-table.json +2 -2
  425. package/dist/r/vue-example-text-align.json +2 -2
  426. package/dist/r/vue-example-text-color.json +3 -3
  427. package/dist/r/vue-example-toolbar.json +2 -2
  428. package/dist/r/vue-example-tweet.json +2 -2
  429. package/dist/r/vue-example-typography.json +2 -2
  430. package/dist/r/vue-example-underline.json +2 -2
  431. package/dist/r/vue-example-unmount.json +2 -2
  432. package/dist/r/vue-example-user-menu-dynamic.json +2 -2
  433. package/dist/r/vue-example-user-menu.json +2 -2
  434. package/dist/r/vue-example-view-adapter.json +2 -2
  435. package/dist/r/vue-example-word-counter.json +2 -2
  436. package/dist/r/vue-example-yjs.json +2 -2
  437. package/dist/r/vue-sample-define-atom-block.json +1 -1
  438. package/dist/r/vue-sample-sample-doc-block-handle.json +1 -1
  439. package/dist/r/vue-sample-sample-doc-bold.json +1 -1
  440. package/dist/r/vue-sample-sample-doc-code-block.json +1 -1
  441. package/dist/r/vue-sample-sample-doc-code.json +1 -1
  442. package/dist/r/vue-sample-sample-doc-drop-cursor.json +1 -1
  443. package/dist/r/vue-sample-sample-doc-full.json +1 -1
  444. package/dist/r/vue-sample-sample-doc-gap-cursor.json +1 -1
  445. package/dist/r/vue-sample-sample-doc-hard-break.json +1 -1
  446. package/dist/r/vue-sample-sample-doc-heading.json +1 -1
  447. package/dist/r/vue-sample-sample-doc-image.json +1 -1
  448. package/dist/r/vue-sample-sample-doc-inline-menu.json +1 -1
  449. package/dist/r/vue-sample-sample-doc-italic.json +1 -1
  450. package/dist/r/vue-sample-sample-doc-link-mark-view.json +1 -1
  451. package/dist/r/vue-sample-sample-doc-link.json +1 -1
  452. package/dist/r/vue-sample-sample-doc-list-custom-checkbox.json +1 -1
  453. package/dist/r/vue-sample-sample-doc-list.json +1 -1
  454. package/dist/r/vue-sample-sample-doc-readonly.json +1 -1
  455. package/dist/r/vue-sample-sample-doc-rtl.json +1 -1
  456. package/dist/r/vue-sample-sample-doc-search.json +1 -1
  457. package/dist/r/vue-sample-sample-doc-strike.json +1 -1
  458. package/dist/r/vue-sample-sample-doc-table.json +1 -1
  459. package/dist/r/vue-sample-sample-doc-tex.json +1 -1
  460. package/dist/r/vue-sample-sample-doc-text-align.json +1 -1
  461. package/dist/r/vue-sample-sample-doc-text-color.json +1 -1
  462. package/dist/r/vue-sample-sample-doc-tweet.json +1 -1
  463. package/dist/r/vue-sample-sample-doc-typography.json +1 -1
  464. package/dist/r/vue-sample-sample-doc-underline.json +1 -1
  465. package/dist/r/vue-sample-sample-doc-view-adapter.json +1 -1
  466. package/dist/r/vue-sample-sample-doc-word-counter.json +1 -1
  467. package/dist/r/vue-sample-sample-uploader.json +1 -1
  468. package/dist/r/vue-ui-block-handle.json +2 -2
  469. package/dist/r/vue-ui-button.json +2 -2
  470. package/dist/r/vue-ui-code-block-view.json +1 -1
  471. package/dist/r/vue-ui-drop-indicator.json +1 -1
  472. package/dist/r/vue-ui-image-upload-popover.json +2 -2
  473. package/dist/r/vue-ui-image-view.json +1 -1
  474. package/dist/r/vue-ui-inline-menu.json +2 -2
  475. package/dist/r/vue-ui-search.json +2 -2
  476. package/dist/r/vue-ui-slash-menu.json +4 -4
  477. package/dist/r/vue-ui-table-handle.json +2 -2
  478. package/dist/r/vue-ui-tag-menu.json +2 -2
  479. package/dist/r/vue-ui-toolbar.json +1 -1
  480. package/dist/r/vue-ui-user-menu.json +2 -2
  481. package/dist/r/vue-ui-word-counter.json +1 -1
  482. package/package.json +13 -13
@@ -5,14 +5,14 @@
5
5
  "description": "Save and load documents as HTML format.",
6
6
  "registryDependencies": [],
7
7
  "dependencies": [
8
- "prosekit@^0.20.0-beta.8"
8
+ "prosekit@^0.20.0"
9
9
  ],
10
10
  "files": [
11
11
  {
12
12
  "path": "registry/src/vue/examples/save-html/editor.vue",
13
13
  "type": "registry:component",
14
14
  "target": "components/editor/examples/save-html/editor.vue",
15
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { defineBasicExtension } from 'prosekit/basic'\nimport { createEditor, jsonFromHTML } from 'prosekit/core'\nimport { ProseKit, useDocChange } from 'prosekit/vue'\nimport { ref } from 'vue'\n\n// A list of saved documents, stored as HTML strings\nconst records = ref<string[]>([])\n// Whether there are unsaved changes\nconst hasUnsavedChange = ref(false)\n// A key to force a re-render of the editor\nconst key = ref(1)\n\nconst extension = defineBasicExtension()\nconst editor = createEditor({ extension })\n\nfunction handleDocChange() {\n hasUnsavedChange.value = true\n}\nuseDocChange(handleDocChange, { editor })\n\nfunction handleSave() {\n const record = editor.getDocHTML()\n records.value = [...records.value, record]\n hasUnsavedChange.value = false\n}\n\nfunction handleLoad(record: string) {\n editor.setContent(jsonFromHTML(record, { schema: editor.schema }))\n hasUnsavedChange.value = false\n key.value += 1\n}\n</script>\n\n<template>\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <button\n :disabled=\"!hasUnsavedChange\"\n class=\"m-1 border border-solid bg-white px-2 py-1 text-sm text-black disabled:cursor-not-allowed disabled:text-gray-500\"\n @click=\"handleSave\"\n >\n {{ hasUnsavedChange ? 'Save' : 'No changes to save' }}\n </button>\n <ul class=\"border-b border-t border-solid text-sm\">\n <li\n v-for=\"(record, index) in records\"\n :key=\"index\"\n class=\"m-1 flex gap-2\"\n >\n <button\n class=\"border border-solid bg-white px-2 py-1 text-black\"\n @click=\"handleLoad(record)\"\n >\n Load\n </button>\n <span class=\"flex-1 overflow-x-scroll p-2\">\n <pre>{{ record }}</pre>\n </span>\n </li>\n </ul>\n <ProseKit :key=\"key\" :editor=\"editor\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\"></div>\n </div>\n </ProseKit>\n </div>\n</template>\n"
15
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { defineBasicExtension } from 'prosekit/basic'\nimport { createEditor, jsonFromHTML } from 'prosekit/core'\nimport { ProseKit, useDocChange } from 'prosekit/vue'\nimport { ref } from 'vue'\n\n// A list of saved documents, stored as HTML strings\nconst records = ref<string[]>([])\n// Whether there are unsaved changes\nconst hasUnsavedChange = ref(false)\n// A key to force a re-render of the editor\nconst key = ref(1)\n\nconst extension = defineBasicExtension()\nconst editor = createEditor({ extension })\n\nfunction handleDocChange() {\n hasUnsavedChange.value = true\n}\nuseDocChange(handleDocChange, { editor })\n\nfunction handleSave() {\n const record = editor.getDocHTML()\n records.value = [...records.value, record]\n hasUnsavedChange.value = false\n}\n\nfunction handleLoad(record: string) {\n editor.setContent(jsonFromHTML(record, { schema: editor.schema }))\n hasUnsavedChange.value = false\n key.value += 1\n}\n</script>\n\n<template>\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <button\n :disabled=\"!hasUnsavedChange\"\n class=\"m-1 border border-solid bg-white px-2 py-1 text-sm text-black disabled:cursor-not-allowed disabled:text-gray-500\"\n @click=\"handleSave\"\n >\n {{ hasUnsavedChange ? 'Save' : 'No changes to save' }}\n </button>\n <ul class=\"border-b border-t border-solid text-sm\">\n <li\n v-for=\"(record, index) in records\"\n :key=\"index\"\n class=\"m-1 flex gap-2\"\n >\n <button\n class=\"border border-solid bg-white px-2 py-1 text-black\"\n @click=\"handleLoad(record)\"\n >\n Load\n </button>\n <span class=\"flex-1 overflow-x-scroll p-2\">\n <pre>{{ record }}</pre>\n </span>\n </li>\n </ul>\n <ProseKit :key=\"key\" :editor=\"editor\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\"></div>\n </div>\n </ProseKit>\n </div>\n</template>\n"
16
16
  },
17
17
  {
18
18
  "path": "registry/src/vue/examples/save-html/index.ts",
@@ -5,14 +5,14 @@
5
5
  "description": "Save and load documents as JSON format.",
6
6
  "registryDependencies": [],
7
7
  "dependencies": [
8
- "prosekit@^0.20.0-beta.8"
8
+ "prosekit@^0.20.0"
9
9
  ],
10
10
  "files": [
11
11
  {
12
12
  "path": "registry/src/vue/examples/save-json/editor.vue",
13
13
  "type": "registry:component",
14
14
  "target": "components/editor/examples/save-json/editor.vue",
15
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { defineBasicExtension } from 'prosekit/basic'\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit, useDocChange } from 'prosekit/vue'\nimport { ref } from 'vue'\n\n// A list of saved documents, stored as JSON strings\nconst records = ref<string[]>([])\n// Whether there are unsaved changes\nconst hasUnsavedChange = ref(false)\n// A key to force a re-render of the editor\nconst key = ref(1)\n\nconst extension = defineBasicExtension()\nconst editor = createEditor({ extension })\n\nfunction handleDocChange() {\n hasUnsavedChange.value = true\n}\nuseDocChange(handleDocChange, { editor })\n\nfunction handleSave() {\n const record = JSON.stringify(editor.getDocJSON())\n records.value = [...records.value, record]\n hasUnsavedChange.value = false\n}\n\nfunction handleLoad(record: string) {\n editor.setContent(JSON.parse(record) as NodeJSON)\n hasUnsavedChange.value = false\n key.value += 1\n}\n</script>\n\n<template>\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <button\n :disabled=\"!hasUnsavedChange\"\n class=\"m-1 border border-solid bg-white px-2 py-1 text-sm text-black disabled:cursor-not-allowed disabled:text-gray-500\"\n @click=\"handleSave\"\n >\n {{ hasUnsavedChange ? 'Save' : 'No changes to save' }}\n </button>\n <ul class=\"border-b border-t border-solid text-sm\">\n <li\n v-for=\"(record, index) in records\"\n :key=\"index\"\n class=\"m-1 flex gap-2\"\n >\n <button\n class=\"border border-solid bg-white px-2 py-1 text-black\"\n @click=\"handleLoad(record)\"\n >\n Load\n </button>\n <span class=\"flex-1 overflow-x-scroll p-2\">\n <pre>{{ record }}</pre>\n </span>\n </li>\n </ul>\n <ProseKit :key=\"key\" :editor=\"editor\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\"></div>\n </div>\n </ProseKit>\n </div>\n</template>\n"
15
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { defineBasicExtension } from 'prosekit/basic'\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit, useDocChange } from 'prosekit/vue'\nimport { ref } from 'vue'\n\n// A list of saved documents, stored as JSON strings\nconst records = ref<string[]>([])\n// Whether there are unsaved changes\nconst hasUnsavedChange = ref(false)\n// A key to force a re-render of the editor\nconst key = ref(1)\n\nconst extension = defineBasicExtension()\nconst editor = createEditor({ extension })\n\nfunction handleDocChange() {\n hasUnsavedChange.value = true\n}\nuseDocChange(handleDocChange, { editor })\n\nfunction handleSave() {\n const record = JSON.stringify(editor.getDocJSON())\n records.value = [...records.value, record]\n hasUnsavedChange.value = false\n}\n\nfunction handleLoad(record: string) {\n editor.setContent(JSON.parse(record) as NodeJSON)\n hasUnsavedChange.value = false\n key.value += 1\n}\n</script>\n\n<template>\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <button\n :disabled=\"!hasUnsavedChange\"\n class=\"m-1 border border-solid bg-white px-2 py-1 text-sm text-black disabled:cursor-not-allowed disabled:text-gray-500\"\n @click=\"handleSave\"\n >\n {{ hasUnsavedChange ? 'Save' : 'No changes to save' }}\n </button>\n <ul class=\"border-b border-t border-solid text-sm\">\n <li\n v-for=\"(record, index) in records\"\n :key=\"index\"\n class=\"m-1 flex gap-2\"\n >\n <button\n class=\"border border-solid bg-white px-2 py-1 text-black\"\n @click=\"handleLoad(record)\"\n >\n Load\n </button>\n <span class=\"flex-1 overflow-x-scroll p-2\">\n <pre>{{ record }}</pre>\n </span>\n </li>\n </ul>\n <ProseKit :key=\"key\" :editor=\"editor\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\"></div>\n </div>\n </ProseKit>\n </div>\n</template>\n"
16
16
  },
17
17
  {
18
18
  "path": "registry/src/vue/examples/save-json/index.ts",
@@ -5,7 +5,7 @@
5
5
  "description": "Save and load documents as Markdown format.",
6
6
  "registryDependencies": [],
7
7
  "dependencies": [
8
- "prosekit@^0.20.0-beta.8",
8
+ "prosekit@^0.20.0",
9
9
  "rehype-parse",
10
10
  "rehype-remark",
11
11
  "remark-gfm",
@@ -19,7 +19,7 @@
19
19
  "path": "registry/src/vue/examples/save-markdown/editor.vue",
20
20
  "type": "registry:component",
21
21
  "target": "components/editor/examples/save-markdown/editor.vue",
22
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { defineBasicExtension } from 'prosekit/basic'\nimport { createEditor, jsonFromHTML } from 'prosekit/core'\nimport { ProseKit, useDocChange } from 'prosekit/vue'\nimport { ref } from 'vue'\n\nimport { htmlFromMarkdown, markdownFromHTML } from './markdown'\n\n// A list of saved documents, stored as Markdown strings\nconst records = ref<string[]>([])\n// Whether there are unsaved changes\nconst hasUnsavedChange = ref(false)\n// A key to force a re-render of the editor\nconst key = ref(1)\n\nconst extension = defineBasicExtension()\nconst editor = createEditor({ extension })\n\nfunction handleDocChange() {\n hasUnsavedChange.value = true\n}\nuseDocChange(handleDocChange, { editor })\n\nfunction handleSave() {\n const html = editor.getDocHTML()\n const record = markdownFromHTML(html)\n records.value = [...records.value, record]\n hasUnsavedChange.value = false\n}\n\nfunction handleLoad(record: string) {\n const html = htmlFromMarkdown(record)\n editor.setContent(jsonFromHTML(html, { schema: editor.schema }))\n hasUnsavedChange.value = false\n key.value += 1\n}\n</script>\n\n<template>\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <button\n :disabled=\"!hasUnsavedChange\"\n class=\"m-1 border border-solid bg-white px-2 py-1 text-sm text-black disabled:cursor-not-allowed disabled:text-gray-500\"\n @click=\"handleSave\"\n >\n {{ hasUnsavedChange ? 'Save' : 'No changes to save' }}\n </button>\n <ul class=\"border-b border-t border-solid text-sm\">\n <li\n v-for=\"(record, index) in records\"\n :key=\"index\"\n class=\"m-1 flex gap-2\"\n >\n <button\n class=\"border border-solid bg-white px-2 py-1 text-black\"\n @click=\"handleLoad(record)\"\n >\n Load\n </button>\n <span class=\"flex-1 overflow-x-scroll p-2\">\n <pre>{{ record }}</pre>\n </span>\n </li>\n </ul>\n <ProseKit :key=\"key\" :editor=\"editor\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\"></div>\n </div>\n </ProseKit>\n </div>\n</template>\n"
22
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { defineBasicExtension } from 'prosekit/basic'\nimport { createEditor, jsonFromHTML } from 'prosekit/core'\nimport { ProseKit, useDocChange } from 'prosekit/vue'\nimport { ref } from 'vue'\n\nimport { htmlFromMarkdown, markdownFromHTML } from './markdown'\n\n// A list of saved documents, stored as Markdown strings\nconst records = ref<string[]>([])\n// Whether there are unsaved changes\nconst hasUnsavedChange = ref(false)\n// A key to force a re-render of the editor\nconst key = ref(1)\n\nconst extension = defineBasicExtension()\nconst editor = createEditor({ extension })\n\nfunction handleDocChange() {\n hasUnsavedChange.value = true\n}\nuseDocChange(handleDocChange, { editor })\n\nfunction handleSave() {\n const html = editor.getDocHTML()\n const record = markdownFromHTML(html)\n records.value = [...records.value, record]\n hasUnsavedChange.value = false\n}\n\nfunction handleLoad(record: string) {\n const html = htmlFromMarkdown(record)\n editor.setContent(jsonFromHTML(html, { schema: editor.schema }))\n hasUnsavedChange.value = false\n key.value += 1\n}\n</script>\n\n<template>\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <button\n :disabled=\"!hasUnsavedChange\"\n class=\"m-1 border border-solid bg-white px-2 py-1 text-sm text-black disabled:cursor-not-allowed disabled:text-gray-500\"\n @click=\"handleSave\"\n >\n {{ hasUnsavedChange ? 'Save' : 'No changes to save' }}\n </button>\n <ul class=\"border-b border-t border-solid text-sm\">\n <li\n v-for=\"(record, index) in records\"\n :key=\"index\"\n class=\"m-1 flex gap-2\"\n >\n <button\n class=\"border border-solid bg-white px-2 py-1 text-black\"\n @click=\"handleLoad(record)\"\n >\n Load\n </button>\n <span class=\"flex-1 overflow-x-scroll p-2\">\n <pre>{{ record }}</pre>\n </span>\n </li>\n </ul>\n <ProseKit :key=\"key\" :editor=\"editor\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\"></div>\n </div>\n </ProseKit>\n </div>\n</template>\n"
23
23
  },
24
24
  {
25
25
  "path": "registry/src/vue/examples/save-markdown/index.ts",
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/vue-ui-search.json"
9
9
  ],
10
10
  "dependencies": [
11
- "prosekit@^0.20.0-beta.8"
11
+ "prosekit@^0.20.0"
12
12
  ],
13
13
  "files": [
14
14
  {
15
15
  "path": "registry/src/vue/examples/search/editor.vue",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/search/editor.vue",
18
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\nimport 'prosekit/extensions/search/style.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-search'\nimport { Search } from '../../ui/search'\n\nimport { defineExtension } from './extension'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({\n extension,\n defaultContent,\n})\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <Search />\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
18
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\nimport 'prosekit/extensions/search/style.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-search'\nimport { Search } from '../../ui/search'\n\nimport { defineExtension } from './extension'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({\n extension,\n defaultContent,\n})\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <Search />\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/vue/examples/search/extension.ts",
@@ -7,14 +7,14 @@
7
7
  "https://unpkg.com/prosekit-registry/dist/r/vue-ui-slash-menu.json"
8
8
  ],
9
9
  "dependencies": [
10
- "prosekit@^0.20.0-beta.8"
10
+ "prosekit@^0.20.0"
11
11
  ],
12
12
  "files": [
13
13
  {
14
14
  "path": "registry/src/vue/examples/slash-menu/editor.vue",
15
15
  "type": "registry:component",
16
16
  "target": "components/editor/examples/slash-menu/editor.vue",
17
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { SlashMenu } from '../../ui/slash-menu'\n\nimport { defineExtension } from './extension'\n\nconst extension = defineExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n <SlashMenu />\n </div>\n </div>\n </ProseKit>\n</template>\n"
17
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { SlashMenu } from '../../ui/slash-menu'\n\nimport { defineExtension } from './extension'\n\nconst extension = defineExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n <SlashMenu />\n </div>\n </div>\n </ProseKit>\n</template>\n"
18
18
  },
19
19
  {
20
20
  "path": "registry/src/vue/examples/slash-menu/extension.ts",
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/vue-ui-button.json"
9
9
  ],
10
10
  "dependencies": [
11
- "prosekit@^0.20.0-beta.8"
11
+ "prosekit@^0.20.0"
12
12
  ],
13
13
  "files": [
14
14
  {
15
15
  "path": "registry/src/vue/examples/strike/editor.vue",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/strike/editor.vue",
18
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-strike'\n\nimport { defineExtension } from './extension'\nimport Toolbar from './toolbar.vue'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <Toolbar />\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
18
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-strike'\n\nimport { defineExtension } from './extension'\nimport Toolbar from './toolbar.vue'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <Toolbar />\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/vue/examples/strike/extension.ts",
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/vue-ui-table-handle.json"
9
9
  ],
10
10
  "dependencies": [
11
- "prosekit@^0.20.0-beta.8"
11
+ "prosekit@^0.20.0"
12
12
  ],
13
13
  "files": [
14
14
  {
15
15
  "path": "registry/src/vue/examples/table/editor.vue",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/table/editor.vue",
18
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-table'\nimport { TableHandle } from '../../ui/table-handle'\n\nimport { defineExtension } from './extension'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n <TableHandle />\n </div>\n </div>\n </ProseKit>\n</template>\n"
18
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-table'\nimport { TableHandle } from '../../ui/table-handle'\n\nimport { defineExtension } from './extension'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n <TableHandle />\n </div>\n </div>\n </ProseKit>\n</template>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/vue/examples/table/extension.ts",
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/vue-ui-button.json"
9
9
  ],
10
10
  "dependencies": [
11
- "prosekit@^0.20.0-beta.8"
11
+ "prosekit@^0.20.0"
12
12
  ],
13
13
  "files": [
14
14
  {
15
15
  "path": "registry/src/vue/examples/text-align/editor.vue",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/text-align/editor.vue",
18
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-text-align'\n\nimport { defineExtension } from './extension'\nimport Toolbar from './toolbar.vue'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <Toolbar />\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
18
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-text-align'\n\nimport { defineExtension } from './extension'\nimport Toolbar from './toolbar.vue'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <Toolbar />\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/vue/examples/text-align/extension.ts",
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/vue-ui-button.json"
9
9
  ],
10
10
  "dependencies": [
11
- "prosekit@^0.20.0-beta.8"
11
+ "prosekit@^0.20.0"
12
12
  ],
13
13
  "files": [
14
14
  {
15
15
  "path": "registry/src/vue/examples/text-color/editor.vue",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/text-color/editor.vue",
18
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-text-color'\n\nimport { defineExtension } from './extension'\nimport InlineMenu from './inline-menu.vue'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n <InlineMenu />\n </div>\n </div>\n </ProseKit>\n</template>\n"
18
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-text-color'\n\nimport { defineExtension } from './extension'\nimport InlineMenu from './inline-menu.vue'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n <InlineMenu />\n </div>\n </div>\n </ProseKit>\n</template>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/vue/examples/text-color/extension.ts",
@@ -33,7 +33,7 @@
33
33
  "path": "registry/src/vue/examples/text-color/inline-menu.vue",
34
34
  "type": "registry:component",
35
35
  "target": "components/editor/examples/text-color/inline-menu.vue",
36
- "content": "<script setup lang=\"ts\">\nimport type { Editor } from 'prosekit/core'\nimport { useEditorDerivedValue, useKeymap } from 'prosekit/vue'\nimport { InlinePopoverPopup, InlinePopoverPositioner, InlinePopoverRoot } from 'prosekit/vue/inline-popover'\nimport { ref } from 'vue'\n\nimport { Button } from '../../ui/button'\n\nimport type { EditorExtension } from './extension'\n\nconst textColors = [\n { label: 'Gray', value: '#9ca3af' },\n { label: 'Brown', value: '#92400e' },\n { label: 'Orange', value: '#ea580c' },\n { label: 'Yellow', value: '#ca8a04' },\n { label: 'Green', value: '#16a34a' },\n { label: 'Blue', value: '#2563eb' },\n { label: 'Purple', value: '#9333ea' },\n { label: 'Magenta', value: '#c026d3' },\n { label: 'Red', value: '#dc2626' },\n]\n\nconst backgroundColors = [\n { label: 'Gray', value: '#f3f4f6' },\n { label: 'Brown', value: '#fef3c7' },\n { label: 'Orange', value: '#ffedd5' },\n { label: 'Yellow', value: '#fef9c3' },\n { label: 'Green', value: '#d1fae5' },\n { label: 'Blue', value: '#dbeafe' },\n { label: 'Purple', value: '#e9d5ff' },\n { label: 'Pink', value: '#fce7f3' },\n { label: 'Red', value: '#fecaca' },\n]\n\nfunction getTextColorState(editor: Editor<EditorExtension>) {\n return [{\n label: 'Default',\n value: 'currentColor',\n isActive: !editor.marks.textColor.isActive(),\n onClick: () => editor.commands.removeTextColor(),\n }].concat(textColors.map((color) => ({\n label: color.label,\n value: color.value,\n isActive: editor.marks.textColor.isActive({ color: color.value }),\n onClick: () => editor.commands.addTextColor({ color: color.value }),\n })))\n}\n\nfunction getBackgroundColorState(editor: Editor<EditorExtension>) {\n return [{\n label: 'Default',\n value: 'canvas',\n isActive: !editor.marks.backgroundColor.isActive(),\n onClick: () => editor.commands.removeBackgroundColor(),\n }].concat(\n backgroundColors.map((color) => ({\n label: color.label,\n value: color.value,\n isActive: editor.marks.backgroundColor.isActive({ color: color.value }),\n onClick: () => editor.commands.addBackgroundColor({ color: color.value }),\n })),\n )\n}\n\nconst textColorState = useEditorDerivedValue(getTextColorState)\nconst backgroundColorState = useEditorDerivedValue(getBackgroundColorState)\nconst open = ref(false)\n\nuseKeymap({\n Escape: () => {\n if (open.value) {\n open.value = false\n return true\n }\n return false\n },\n})\n</script>\n\n<template>\n <InlinePopoverRoot\n :open=\"open\"\n @open-change=\"(event) => open = event.detail\"\n >\n <InlinePopoverPositioner class=\"block overflow-visible w-min h-min z-50 ease-out transition-transform duration-100 motion-reduce:transition-none\">\n <InlinePopoverPopup class=\"box-border origin-(--transform-origin) transition transition-discrete motion-reduce:transition-none data-[state=closed]:duration-150 data-[state=closed]:opacity-0 starting:opacity-0 data-[state=closed]:scale-95 starting:scale-95 duration-40 border border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-950 shadow-lg overscroll-none relative flex min-w-32 space-x-1 overflow-auto whitespace-nowrap rounded-md p-1\">\n <div class=\"flex flex-col gap-4 p-4\">\n <div class=\"flex flex-col gap-2\">\n <div class=\"text-sm\">\n Text color\n </div>\n <div class=\"grid grid-cols-5 gap-1\">\n <Button\n v-for=\"color in textColorState\"\n :key=\"color.label\"\n :pressed=\"color.isActive\"\n :tooltip=\"`Text: ${color.label}`\"\n @click=\"color.onClick\"\n >\n <span\n class=\"text-base font-medium\"\n :style=\"{ color: color.value }\"\n >\n A\n </span>\n </Button>\n </div>\n </div>\n <div class=\"flex flex-col gap-2\">\n <div class=\"text-sm\">\n Background color\n </div>\n <div class=\"grid grid-cols-5 gap-1\">\n <Button\n v-for=\"color in backgroundColorState\"\n :key=\"color.label\"\n :pressed=\"color.isActive\"\n :tooltip=\"`Background: ${color.label}`\"\n @click=\"color.onClick\"\n >\n <div\n class=\"w-6 h-6 rounded border border-gray-200 dark:border-gray-700\"\n :style=\"{ backgroundColor: color.value }\"\n />\n </Button>\n </div>\n </div>\n </div>\n </InlinePopoverPopup>\n </InlinePopoverPositioner>\n </InlinePopoverRoot>\n</template>\n"
36
+ "content": "<script setup lang=\"ts\">\nimport type { Editor } from 'prosekit/core'\nimport { useEditorDerivedValue, useKeymap } from 'prosekit/vue'\nimport { InlinePopoverPopup, InlinePopoverPositioner, InlinePopoverRoot } from 'prosekit/vue/inline-popover'\nimport { ref } from 'vue'\n\nimport { Button } from '../../ui/button'\n\nimport type { EditorExtension } from './extension'\n\nconst textColors = [\n { label: 'Gray', value: '#9ca3af' },\n { label: 'Brown', value: '#92400e' },\n { label: 'Orange', value: '#ea580c' },\n { label: 'Yellow', value: '#ca8a04' },\n { label: 'Green', value: '#16a34a' },\n { label: 'Blue', value: '#2563eb' },\n { label: 'Purple', value: '#9333ea' },\n { label: 'Magenta', value: '#c026d3' },\n { label: 'Red', value: '#dc2626' },\n]\n\nconst backgroundColors = [\n { label: 'Gray', value: '#f3f4f6' },\n { label: 'Brown', value: '#fef3c7' },\n { label: 'Orange', value: '#ffedd5' },\n { label: 'Yellow', value: '#fef9c3' },\n { label: 'Green', value: '#d1fae5' },\n { label: 'Blue', value: '#dbeafe' },\n { label: 'Purple', value: '#e9d5ff' },\n { label: 'Pink', value: '#fce7f3' },\n { label: 'Red', value: '#fecaca' },\n]\n\nfunction getTextColorState(editor: Editor<EditorExtension>) {\n return [{\n label: 'Default',\n value: 'currentColor',\n isActive: !editor.marks.textColor.isActive(),\n onClick: () => editor.commands.removeTextColor(),\n }].concat(textColors.map((color) => ({\n label: color.label,\n value: color.value,\n isActive: editor.marks.textColor.isActive({ color: color.value }),\n onClick: () => editor.commands.addTextColor({ color: color.value }),\n })))\n}\n\nfunction getBackgroundColorState(editor: Editor<EditorExtension>) {\n return [{\n label: 'Default',\n value: 'canvas',\n isActive: !editor.marks.backgroundColor.isActive(),\n onClick: () => editor.commands.removeBackgroundColor(),\n }].concat(\n backgroundColors.map((color) => ({\n label: color.label,\n value: color.value,\n isActive: editor.marks.backgroundColor.isActive({ color: color.value }),\n onClick: () => editor.commands.addBackgroundColor({ color: color.value }),\n })),\n )\n}\n\nconst textColorState = useEditorDerivedValue(getTextColorState)\nconst backgroundColorState = useEditorDerivedValue(getBackgroundColorState)\nconst open = ref(false)\n\nuseKeymap({\n Escape: () => {\n if (open.value) {\n open.value = false\n return true\n }\n return false\n },\n})\n</script>\n\n<template>\n <InlinePopoverRoot\n :open=\"open\"\n @open-change=\"(event) => open = event.detail\"\n >\n <InlinePopoverPositioner class=\"block overflow-visible w-min h-min z-50 ease-out transition-transform duration-100 motion-reduce:transition-none\">\n <InlinePopoverPopup class=\"box-border origin-(--transform-origin) transition-[opacity,scale] transition-discrete motion-reduce:transition-none data-[state=closed]:duration-150 data-[state=closed]:opacity-0 starting:opacity-0 data-[state=closed]:scale-95 starting:scale-95 duration-40 border border-gray-200 dark:border-gray-800 shadow-lg bg-[canvas] relative flex min-w-32 space-x-1 overflow-auto whitespace-nowrap rounded-lg p-1\">\n <div class=\"flex flex-col gap-4 p-4\">\n <div class=\"flex flex-col gap-2\">\n <div class=\"text-sm\">\n Text color\n </div>\n <div class=\"grid grid-cols-5 gap-1\">\n <Button\n v-for=\"color in textColorState\"\n :key=\"color.label\"\n :pressed=\"color.isActive\"\n :tooltip=\"`Text: ${color.label}`\"\n @click=\"color.onClick\"\n >\n <span\n class=\"text-base font-medium\"\n :style=\"{ color: color.value }\"\n >\n A\n </span>\n </Button>\n </div>\n </div>\n <div class=\"flex flex-col gap-2\">\n <div class=\"text-sm\">\n Background color\n </div>\n <div class=\"grid grid-cols-5 gap-1\">\n <Button\n v-for=\"color in backgroundColorState\"\n :key=\"color.label\"\n :pressed=\"color.isActive\"\n :tooltip=\"`Background: ${color.label}`\"\n @click=\"color.onClick\"\n >\n <div\n class=\"w-6 h-6 rounded border border-gray-200 dark:border-gray-700\"\n :style=\"{ backgroundColor: color.value }\"\n />\n </Button>\n </div>\n </div>\n </div>\n </InlinePopoverPopup>\n </InlinePopoverPositioner>\n </InlinePopoverRoot>\n</template>\n"
37
37
  }
38
38
  ],
39
39
  "meta": {
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/vue-ui-toolbar.json"
9
9
  ],
10
10
  "dependencies": [
11
- "prosekit@^0.20.0-beta.8"
11
+ "prosekit@^0.20.0"
12
12
  ],
13
13
  "files": [
14
14
  {
15
15
  "path": "registry/src/vue/examples/toolbar/editor.vue",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/toolbar/editor.vue",
18
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleUploader } from '../../sample/sample-uploader'\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst extension = defineExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <Toolbar :uploader=\"sampleUploader\" />\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
18
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleUploader } from '../../sample/sample-uploader'\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst extension = defineExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <Toolbar :uploader=\"sampleUploader\" />\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/vue/examples/toolbar/extension.ts",
@@ -7,7 +7,7 @@
7
7
  "https://unpkg.com/prosekit-registry/dist/r/vue-sample-sample-doc-tweet.json"
8
8
  ],
9
9
  "dependencies": [
10
- "prosekit@^0.20.0-beta.8",
10
+ "prosekit@^0.20.0",
11
11
  "vue-tweet"
12
12
  ],
13
13
  "files": [
@@ -15,7 +15,7 @@
15
15
  "path": "registry/src/vue/examples/tweet/editor.vue",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/tweet/editor.vue",
18
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { defineVueNodeView, ProseKit, useExtension, type VueNodeViewComponent } from 'prosekit/vue'\nimport { computed, ref } from 'vue'\n\nimport { sampleContent } from '../../sample/sample-doc-tweet'\n\nimport { defineExtension } from './extension'\nimport MethodSelect from './method-select.vue'\nimport TweetView from './tweet-view.vue'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension: defineExtension(), defaultContent })\n\nconst method = ref<'basic' | 'advanced'>('basic')\n\nconst vueTweetView = computed(() => {\n if (method.value === 'basic') {\n return null\n }\n return defineVueNodeView({\n name: 'tweet',\n component: TweetView as VueNodeViewComponent,\n })\n})\n\nuseExtension(vueTweetView, { editor })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <MethodSelect :value=\"method\" :on-change=\"(newMethod) => (method = newMethod)\" />\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
18
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { defineVueNodeView, ProseKit, useExtension, type VueNodeViewComponent } from 'prosekit/vue'\nimport { computed, ref } from 'vue'\n\nimport { sampleContent } from '../../sample/sample-doc-tweet'\n\nimport { defineExtension } from './extension'\nimport MethodSelect from './method-select.vue'\nimport TweetView from './tweet-view.vue'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension: defineExtension(), defaultContent })\n\nconst method = ref<'basic' | 'advanced'>('basic')\n\nconst vueTweetView = computed(() => {\n if (method.value === 'basic') {\n return null\n }\n return defineVueNodeView({\n name: 'tweet',\n component: TweetView as VueNodeViewComponent,\n })\n})\n\nuseExtension(vueTweetView, { editor })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <MethodSelect :value=\"method\" :on-change=\"(newMethod) => (method = newMethod)\" />\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/vue/examples/tweet/extension.ts",
@@ -10,14 +10,14 @@
10
10
  "https://unpkg.com/prosekit-registry/dist/r/vue-ui-drop-indicator.json"
11
11
  ],
12
12
  "dependencies": [
13
- "prosekit@^0.20.0-beta.8"
13
+ "prosekit@^0.20.0"
14
14
  ],
15
15
  "files": [
16
16
  {
17
17
  "path": "registry/src/vue/examples/typography/editor.vue",
18
18
  "type": "registry:component",
19
19
  "target": "components/editor/examples/typography/editor.vue",
20
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-typography'\nimport { BlockHandle } from '../../ui/block-handle'\nimport { DropIndicator } from '../../ui/drop-indicator'\n\nimport { defineExtension } from './extension'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n <BlockHandle />\n <DropIndicator />\n </div>\n </div>\n </ProseKit>\n</template>\n"
20
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-typography'\nimport { BlockHandle } from '../../ui/block-handle'\nimport { DropIndicator } from '../../ui/drop-indicator'\n\nimport { defineExtension } from './extension'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n <BlockHandle />\n <DropIndicator />\n </div>\n </div>\n </ProseKit>\n</template>\n"
21
21
  },
22
22
  {
23
23
  "path": "registry/src/vue/examples/typography/extension.ts",
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/vue-ui-toolbar.json"
9
9
  ],
10
10
  "dependencies": [
11
- "prosekit@^0.20.0-beta.8"
11
+ "prosekit@^0.20.0"
12
12
  ],
13
13
  "files": [
14
14
  {
15
15
  "path": "registry/src/vue/examples/underline/editor.vue",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/underline/editor.vue",
18
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-underline'\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <Toolbar />\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
18
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-underline'\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <Toolbar />\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/vue/examples/underline/extension.ts",
@@ -7,14 +7,14 @@
7
7
  "https://unpkg.com/prosekit-registry/dist/r/vue-ui-inline-menu.json"
8
8
  ],
9
9
  "dependencies": [
10
- "prosekit@^0.20.0-beta.8"
10
+ "prosekit@^0.20.0"
11
11
  ],
12
12
  "files": [
13
13
  {
14
14
  "path": "registry/src/vue/examples/unmount/editor-component.vue",
15
15
  "type": "registry:component",
16
16
  "target": "components/editor/examples/unmount/editor-component.vue",
17
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { defineBasicExtension } from 'prosekit/basic'\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { InlineMenu } from '../../ui/inline-menu'\n\nimport ExtensionComponent from './extension-component.vue'\n\nconst props = defineProps<{\n placeholder: string\n}>()\n\nconst extension = defineBasicExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n <InlineMenu />\n </div>\n </div>\n <ExtensionComponent :placeholder=\"props.placeholder\" />\n </ProseKit>\n</template>\n"
17
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { defineBasicExtension } from 'prosekit/basic'\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { InlineMenu } from '../../ui/inline-menu'\n\nimport ExtensionComponent from './extension-component.vue'\n\nconst props = defineProps<{\n placeholder: string\n}>()\n\nconst extension = defineBasicExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n <InlineMenu />\n </div>\n </div>\n <ExtensionComponent :placeholder=\"props.placeholder\" />\n </ProseKit>\n</template>\n"
18
18
  },
19
19
  {
20
20
  "path": "registry/src/vue/examples/unmount/editor.vue",
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/vue-ui-user-menu.json"
9
9
  ],
10
10
  "dependencies": [
11
- "prosekit@^0.20.0-beta.8"
11
+ "prosekit@^0.20.0"
12
12
  ],
13
13
  "files": [
14
14
  {
15
15
  "path": "registry/src/vue/examples/user-menu-dynamic/editor.vue",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/user-menu-dynamic/editor.vue",
18
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { defineExtension } from './extension'\nimport UserMenuDynamic from './user-menu-dynamic.vue'\n\nconst extension = defineExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\"></div>\n <UserMenuDynamic />\n </div>\n </div>\n </ProseKit>\n</template>\n"
18
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { defineExtension } from './extension'\nimport UserMenuDynamic from './user-menu-dynamic.vue'\n\nconst extension = defineExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\"></div>\n <UserMenuDynamic />\n </div>\n </div>\n </ProseKit>\n</template>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/vue/examples/user-menu-dynamic/extension.ts",
@@ -10,14 +10,14 @@
10
10
  "https://unpkg.com/prosekit-registry/dist/r/vue-ui-user-menu.json"
11
11
  ],
12
12
  "dependencies": [
13
- "prosekit@^0.20.0-beta.8"
13
+ "prosekit@^0.20.0"
14
14
  ],
15
15
  "files": [
16
16
  {
17
17
  "path": "registry/src/vue/examples/user-menu/editor.vue",
18
18
  "type": "registry:component",
19
19
  "target": "components/editor/examples/user-menu/editor.vue",
20
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { tags } from '../../sample/sample-tag-data'\nimport { users } from '../../sample/sample-user-data'\nimport { TagMenu } from '../../ui/tag-menu'\nimport { UserMenu } from '../../ui/user-menu'\n\nimport { defineExtension } from './extension'\n\nconst extension = defineExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n <UserMenu :users=\"users\" />\n <TagMenu :tags=\"tags\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
20
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { tags } from '../../sample/sample-tag-data'\nimport { users } from '../../sample/sample-user-data'\nimport { TagMenu } from '../../ui/tag-menu'\nimport { UserMenu } from '../../ui/user-menu'\n\nimport { defineExtension } from './extension'\n\nconst extension = defineExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n <UserMenu :users=\"users\" />\n <TagMenu :tags=\"tags\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
21
21
  },
22
22
  {
23
23
  "path": "registry/src/vue/examples/user-menu/extension.ts",
@@ -8,7 +8,7 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/vue-sample-sample-doc-view-adapter.json"
9
9
  ],
10
10
  "dependencies": [
11
- "prosekit@^0.20.0-beta.8"
11
+ "prosekit@^0.20.0"
12
12
  ],
13
13
  "files": [
14
14
  {
@@ -21,7 +21,7 @@
21
21
  "path": "registry/src/vue/examples/view-adapter/editor.vue",
22
22
  "type": "registry:component",
23
23
  "target": "components/editor/examples/view-adapter/editor.vue",
24
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-view-adapter'\n\nimport { defineExtension } from './extension'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
24
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-view-adapter'\n\nimport { defineExtension } from './extension'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
25
25
  },
26
26
  {
27
27
  "path": "registry/src/vue/examples/view-adapter/extension.ts",
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/vue-ui-word-counter.json"
9
9
  ],
10
10
  "dependencies": [
11
- "prosekit@^0.20.0-beta.8"
11
+ "prosekit@^0.20.0"
12
12
  ],
13
13
  "files": [
14
14
  {
15
15
  "path": "registry/src/vue/examples/word-counter/editor.vue",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/word-counter/editor.vue",
18
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-word-counter'\nimport { WordCounter } from '../../ui/word-counter'\n\nimport { defineExtension } from './extension'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({\n extension,\n defaultContent,\n})\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n <WordCounter />\n </div>\n </div>\n </ProseKit>\n</template>\n"
18
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/vue'\n\nimport { sampleContent } from '../../sample/sample-doc-word-counter'\nimport { WordCounter } from '../../ui/word-counter'\n\nimport { defineExtension } from './extension'\n\nconst props = defineProps<{\n initialContent?: NodeJSON\n}>()\n\nconst extension = defineExtension()\nconst defaultContent = props.initialContent ?? sampleContent\nconst editor = createEditor({\n extension,\n defaultContent,\n})\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n <WordCounter />\n </div>\n </div>\n </ProseKit>\n</template>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/vue/examples/word-counter/extension.ts",
@@ -7,7 +7,7 @@
7
7
  "https://unpkg.com/prosekit-registry/dist/r/vue-ui-toolbar.json"
8
8
  ],
9
9
  "dependencies": [
10
- "prosekit@^0.20.0-beta.8",
10
+ "prosekit@^0.20.0",
11
11
  "y-websocket",
12
12
  "yjs"
13
13
  ],
@@ -16,7 +16,7 @@
16
16
  "path": "registry/src/vue/examples/yjs/editor-component.vue",
17
17
  "type": "registry:component",
18
18
  "target": "components/editor/examples/yjs/editor-component.vue",
19
- "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\nimport 'prosekit/extensions/yjs/style.css'\n\nimport { createEditor } from 'prosekit/core'\nimport type { Awareness } from 'prosekit/extensions/yjs'\nimport { ProseKit } from 'prosekit/vue'\nimport type * as Y from 'yjs'\n\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst props = defineProps<{\n doc: Y.Doc\n awareness: Awareness\n}>()\n\nconst extension = defineExtension(props.doc, props.awareness)\nconst editor = createEditor({ extension })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-white dark:bg-gray-950 text-black dark:text-white\">\n <Toolbar />\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
19
+ "content": "<script setup lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\nimport 'prosekit/extensions/yjs/style.css'\n\nimport { createEditor } from 'prosekit/core'\nimport type { Awareness } from 'prosekit/extensions/yjs'\nimport { ProseKit } from 'prosekit/vue'\nimport type * as Y from 'yjs'\n\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst props = defineProps<{\n doc: Y.Doc\n awareness: Awareness\n}>()\n\nconst extension = defineExtension(props.doc, props.awareness)\nconst editor = createEditor({ extension })\n</script>\n\n<template>\n <ProseKit :editor=\"editor\">\n <div class=\"box-border h-full w-full min-h-36 overflow-y-hidden overflow-x-hidden rounded-md border border-solid border-gray-200 dark:border-gray-700 shadow-sm flex flex-col bg-[canvas] text-black dark:text-white\">\n <Toolbar />\n <div class=\"relative w-full flex-1 box-border overflow-y-auto\">\n <div :ref=\"(el) => editor.mount(el as HTMLElement | null)\" class=\"ProseMirror box-border min-h-full px-[max(4rem,calc(50%-20rem))] py-8 outline-hidden outline-0 [&_span[data-mention=user]]:text-blue-500 [&_span[data-mention=tag]]:text-violet-500\" />\n </div>\n </div>\n </ProseKit>\n</template>\n"
20
20
  },
21
21
  {
22
22
  "path": "registry/src/vue/examples/yjs/editor.vue",
@@ -5,7 +5,7 @@
5
5
  "description": "",
6
6
  "registryDependencies": [],
7
7
  "dependencies": [
8
- "prosekit@^0.20.0-beta.8"
8
+ "prosekit@^0.20.0"
9
9
  ],
10
10
  "files": [
11
11
  {
@@ -5,7 +5,7 @@
5
5
  "description": "",
6
6
  "registryDependencies": [],
7
7
  "dependencies": [
8
- "prosekit@^0.20.0-beta.8"
8
+ "prosekit@^0.20.0"
9
9
  ],
10
10
  "files": [
11
11
  {
@@ -5,7 +5,7 @@
5
5
  "description": "",
6
6
  "registryDependencies": [],
7
7
  "dependencies": [
8
- "prosekit@^0.20.0-beta.8"
8
+ "prosekit@^0.20.0"
9
9
  ],
10
10
  "files": [
11
11
  {
@@ -5,7 +5,7 @@
5
5
  "description": "",
6
6
  "registryDependencies": [],
7
7
  "dependencies": [
8
- "prosekit@^0.20.0-beta.8"
8
+ "prosekit@^0.20.0"
9
9
  ],
10
10
  "files": [
11
11
  {
@@ -5,7 +5,7 @@
5
5
  "description": "",
6
6
  "registryDependencies": [],
7
7
  "dependencies": [
8
- "prosekit@^0.20.0-beta.8"
8
+ "prosekit@^0.20.0"
9
9
  ],
10
10
  "files": [
11
11
  {
@@ -5,7 +5,7 @@
5
5
  "description": "",
6
6
  "registryDependencies": [],
7
7
  "dependencies": [
8
- "prosekit@^0.20.0-beta.8"
8
+ "prosekit@^0.20.0"
9
9
  ],
10
10
  "files": [
11
11
  {
@@ -5,7 +5,7 @@
5
5
  "description": "",
6
6
  "registryDependencies": [],
7
7
  "dependencies": [
8
- "prosekit@^0.20.0-beta.8"
8
+ "prosekit@^0.20.0"
9
9
  ],
10
10
  "files": [
11
11
  {
@@ -5,7 +5,7 @@
5
5
  "description": "",
6
6
  "registryDependencies": [],
7
7
  "dependencies": [
8
- "prosekit@^0.20.0-beta.8"
8
+ "prosekit@^0.20.0"
9
9
  ],
10
10
  "files": [
11
11
  {