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
@@ -7,7 +7,7 @@
7
7
  "dependencies": [
8
8
  "@egoist/tailwindcss-icons",
9
9
  "@iconify-json/lucide",
10
- "prosekit@^0.20.0-beta.8"
10
+ "prosekit@^0.20.0"
11
11
  ],
12
12
  "files": [
13
13
  {
@@ -20,7 +20,7 @@
20
20
  "path": "registry/src/solid/ui/table-handle/table-handle.tsx",
21
21
  "type": "registry:component",
22
22
  "target": "components/editor/ui/table-handle/table-handle.tsx",
23
- "content": "import type { Editor } from 'prosekit/core'\nimport type { TableExtension } from 'prosekit/extensions/table'\nimport { useEditorDerivedValue } from 'prosekit/solid'\nimport { MenuItem, MenuPopup, MenuPositioner } from 'prosekit/solid/menu'\nimport {\n TableHandleColumnMenuRoot,\n TableHandleColumnMenuTrigger,\n TableHandleColumnPopup,\n TableHandleColumnPositioner,\n TableHandleDragPreview,\n TableHandleDropIndicator,\n TableHandleRoot,\n TableHandleRowMenuRoot,\n TableHandleRowMenuTrigger,\n TableHandleRowPopup,\n TableHandleRowPositioner,\n} from 'prosekit/solid/table-handle'\nimport { Show, type JSX } from 'solid-js'\n\nfunction getTableHandleState(editor: Editor<TableExtension>) {\n return {\n addTableColumnBefore: {\n canExec: editor.commands.addTableColumnBefore.canExec(),\n command: () => editor.commands.addTableColumnBefore(),\n },\n addTableColumnAfter: {\n canExec: editor.commands.addTableColumnAfter.canExec(),\n command: () => editor.commands.addTableColumnAfter(),\n },\n deleteCellSelection: {\n canExec: editor.commands.deleteCellSelection.canExec(),\n command: () => editor.commands.deleteCellSelection(),\n },\n deleteTableColumn: {\n canExec: editor.commands.deleteTableColumn.canExec(),\n command: () => editor.commands.deleteTableColumn(),\n },\n addTableRowAbove: {\n canExec: editor.commands.addTableRowAbove.canExec(),\n command: () => editor.commands.addTableRowAbove(),\n },\n addTableRowBelow: {\n canExec: editor.commands.addTableRowBelow.canExec(),\n command: () => editor.commands.addTableRowBelow(),\n },\n deleteTableRow: {\n canExec: editor.commands.deleteTableRow.canExec(),\n command: () => editor.commands.deleteTableRow(),\n },\n deleteTable: {\n canExec: editor.commands.deleteTable.canExec(),\n command: () => editor.commands.deleteTable(),\n },\n }\n}\n\ninterface Props {\n dir?: 'ltr' | 'rtl'\n}\n\nexport default function TableHandle(props: Props): JSX.Element {\n const state = useEditorDerivedValue(getTableHandleState)\n\n return (\n <TableHandleRoot>\n <TableHandleDragPreview />\n <TableHandleDropIndicator />\n <TableHandleColumnPositioner class=\"block overflow-visible w-min h-min z-50 ease-out transition-transform duration-100 motion-reduce:transition-none\">\n <TableHandleColumnPopup class=\"translate-y-[50%] flex box-border origin-(--transform-origin) transition transition-discrete motion-reduce:transition-none duration-100 data-[state=closed]:duration-150 data-[state=closed]:opacity-0 starting:opacity-0 data-[state=closed]:scale-95 starting:scale-95\">\n <TableHandleColumnMenuRoot>\n <TableHandleColumnMenuTrigger class=\"h-4.5 w-6 flex items-center box-border justify-center bg-white dark:bg-gray-950 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-sm text-gray-500/50 dark:text-gray-400/50 border border-gray-200 dark:border-gray-800 border-solid p-0 transition-colors overflow-clip\">\n <div class=\"i-lucide-grip-horizontal size-5 min-h-5 min-w-5 block\"></div>\n </TableHandleColumnMenuTrigger>\n <MenuPositioner class=\"block overflow-visible w-min h-min z-50 ease-out transition-transform duration-100 motion-reduce:transition-none\">\n <MenuPopup 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 rounded-lg border border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-950 shadow-lg overscroll-none relative flex flex-col max-h-100 min-w-32 select-none overflow-auto whitespace-nowrap p-1 outline-none\">\n <Show when={state().addTableColumnBefore.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().addTableColumnBefore.command()}\n >\n <span>Insert Left</span>\n </MenuItem>\n </Show>\n <Show when={state().addTableColumnAfter.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().addTableColumnAfter.command()}\n >\n <span>Insert Right</span>\n </MenuItem>\n </Show>\n <Show when={state().deleteCellSelection.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().deleteCellSelection.command()}\n >\n <span>Clear Contents</span>\n <span class=\"text-xs tracking-widest text-gray-500 dark:text-gray-500\">Del</span>\n </MenuItem>\n </Show>\n <Show when={state().deleteTableColumn.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().deleteTableColumn.command()}\n >\n <span>Delete Column</span>\n </MenuItem>\n </Show>\n <Show when={state().deleteTable.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n attr:data-danger=\"\"\n onSelect={() => state().deleteTable.command()}\n >\n <span>Delete Table</span>\n </MenuItem>\n </Show>\n </MenuPopup>\n </MenuPositioner>\n </TableHandleColumnMenuRoot>\n </TableHandleColumnPopup>\n </TableHandleColumnPositioner>\n <TableHandleRowPositioner\n placement={props.dir === 'rtl' ? 'right' : 'left'}\n class=\"block overflow-visible w-min h-min z-50 ease-out transition-transform duration-100 motion-reduce:transition-none\"\n >\n <TableHandleRowPopup class=\"ltr:translate-x-[50%] rtl:translate-x-[-50%] flex box-border origin-(--transform-origin) transition transition-discrete motion-reduce:transition-none duration-100 data-[state=closed]:duration-150 data-[state=closed]:opacity-0 starting:opacity-0 data-[state=closed]:scale-95 starting:scale-95\">\n <TableHandleRowMenuRoot>\n <TableHandleRowMenuTrigger class=\"h-6 w-4.5 flex items-center box-border justify-center bg-white dark:bg-gray-950 hover:bg-gray-100 dark:hover:bg-gray-800 rounded-sm text-gray-500/50 dark:text-gray-400/50 border border-gray-200 dark:border-gray-800 border-solid p-0 transition-colors overflow-clip\">\n <div class=\"i-lucide-grip-vertical size-5 min-h-5 min-w-5 block\"></div>\n </TableHandleRowMenuTrigger>\n <MenuPositioner class=\"block overflow-visible w-min h-min z-50 ease-out transition-transform duration-100 motion-reduce:transition-none\">\n <MenuPopup 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 rounded-lg border border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-950 shadow-lg overscroll-none relative flex flex-col max-h-100 min-w-32 select-none overflow-auto whitespace-nowrap p-1 outline-none\">\n <Show when={state().addTableRowAbove.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().addTableRowAbove.command()}\n >\n <span>Insert Above</span>\n </MenuItem>\n </Show>\n <Show when={state().addTableRowBelow.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().addTableRowBelow.command()}\n >\n <span>Insert Below</span>\n </MenuItem>\n </Show>\n <Show when={state().deleteCellSelection.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().deleteCellSelection.command()}\n >\n <span>Clear Contents</span>\n <span class=\"text-xs tracking-widest text-gray-500 dark:text-gray-500\">Del</span>\n </MenuItem>\n </Show>\n <Show when={state().deleteTableRow.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().deleteTableRow.command()}\n >\n <span>Delete Row</span>\n </MenuItem>\n </Show>\n <Show when={state().deleteTable.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n attr:data-danger=\"\"\n onSelect={() => state().deleteTable.command()}\n >\n <span>Delete Table</span>\n </MenuItem>\n </Show>\n </MenuPopup>\n </MenuPositioner>\n </TableHandleRowMenuRoot>\n </TableHandleRowPopup>\n </TableHandleRowPositioner>\n </TableHandleRoot>\n )\n}\n"
23
+ "content": "import type { Editor } from 'prosekit/core'\nimport type { TableExtension } from 'prosekit/extensions/table'\nimport { useEditorDerivedValue } from 'prosekit/solid'\nimport { MenuItem, MenuPopup, MenuPositioner } from 'prosekit/solid/menu'\nimport {\n TableHandleColumnMenuRoot,\n TableHandleColumnMenuTrigger,\n TableHandleColumnPopup,\n TableHandleColumnPositioner,\n TableHandleDragPreview,\n TableHandleDropIndicator,\n TableHandleRoot,\n TableHandleRowMenuRoot,\n TableHandleRowMenuTrigger,\n TableHandleRowPopup,\n TableHandleRowPositioner,\n} from 'prosekit/solid/table-handle'\nimport { Show, type JSX } from 'solid-js'\n\nfunction getTableHandleState(editor: Editor<TableExtension>) {\n return {\n addTableColumnBefore: {\n canExec: editor.commands.addTableColumnBefore.canExec(),\n command: () => editor.commands.addTableColumnBefore(),\n },\n addTableColumnAfter: {\n canExec: editor.commands.addTableColumnAfter.canExec(),\n command: () => editor.commands.addTableColumnAfter(),\n },\n deleteCellSelection: {\n canExec: editor.commands.deleteCellSelection.canExec(),\n command: () => editor.commands.deleteCellSelection(),\n },\n deleteTableColumn: {\n canExec: editor.commands.deleteTableColumn.canExec(),\n command: () => editor.commands.deleteTableColumn(),\n },\n addTableRowAbove: {\n canExec: editor.commands.addTableRowAbove.canExec(),\n command: () => editor.commands.addTableRowAbove(),\n },\n addTableRowBelow: {\n canExec: editor.commands.addTableRowBelow.canExec(),\n command: () => editor.commands.addTableRowBelow(),\n },\n deleteTableRow: {\n canExec: editor.commands.deleteTableRow.canExec(),\n command: () => editor.commands.deleteTableRow(),\n },\n deleteTable: {\n canExec: editor.commands.deleteTable.canExec(),\n command: () => editor.commands.deleteTable(),\n },\n }\n}\n\ninterface Props {\n dir?: 'ltr' | 'rtl'\n}\n\nexport default function TableHandle(props: Props): JSX.Element {\n const state = useEditorDerivedValue(getTableHandleState)\n\n return (\n <TableHandleRoot>\n <TableHandleDragPreview />\n <TableHandleDropIndicator />\n <TableHandleColumnPositioner class=\"block overflow-visible w-min h-min z-50 ease-out transition-transform duration-100 motion-reduce:transition-none\">\n <TableHandleColumnPopup class=\"translate-y-[50%] flex box-border origin-(--transform-origin) transition-[opacity,scale] transition-discrete motion-reduce:transition-none duration-100 data-[state=closed]:duration-150 data-[state=closed]:opacity-0 starting:opacity-0 data-[state=closed]:scale-95 starting:scale-95\">\n <TableHandleColumnMenuRoot>\n <TableHandleColumnMenuTrigger class=\"h-4.5 w-6 flex items-center box-border justify-center bg-[canvas] hover:bg-gray-100 dark:hover:bg-gray-800 rounded-sm text-gray-500/50 dark:text-gray-400/50 border border-gray-200 dark:border-gray-800 border-solid p-0 transition-colors overflow-clip\">\n <div class=\"i-lucide-grip-horizontal size-5 min-h-5 min-w-5 block\"></div>\n </TableHandleColumnMenuTrigger>\n <MenuPositioner class=\"block overflow-visible w-min h-min z-50 ease-out transition-transform duration-100 motion-reduce:transition-none\">\n <MenuPopup 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 rounded-xl border border-gray-200 dark:border-gray-800 shadow-lg bg-[canvas] relative flex flex-col max-h-100 min-w-32 select-none overflow-auto whitespace-nowrap p-1 outline-none\">\n <Show when={state().addTableColumnBefore.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().addTableColumnBefore.command()}\n >\n <span>Insert Left</span>\n </MenuItem>\n </Show>\n <Show when={state().addTableColumnAfter.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().addTableColumnAfter.command()}\n >\n <span>Insert Right</span>\n </MenuItem>\n </Show>\n <Show when={state().deleteCellSelection.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().deleteCellSelection.command()}\n >\n <span>Clear Contents</span>\n <span class=\"text-xs tracking-widest text-gray-500 dark:text-gray-500\">Del</span>\n </MenuItem>\n </Show>\n <Show when={state().deleteTableColumn.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().deleteTableColumn.command()}\n >\n <span>Delete Column</span>\n </MenuItem>\n </Show>\n <Show when={state().deleteTable.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n attr:data-danger=\"\"\n onSelect={() => state().deleteTable.command()}\n >\n <span>Delete Table</span>\n </MenuItem>\n </Show>\n </MenuPopup>\n </MenuPositioner>\n </TableHandleColumnMenuRoot>\n </TableHandleColumnPopup>\n </TableHandleColumnPositioner>\n <TableHandleRowPositioner\n placement={props.dir === 'rtl' ? 'right' : 'left'}\n class=\"block overflow-visible w-min h-min z-50 ease-out transition-transform duration-100 motion-reduce:transition-none\"\n >\n <TableHandleRowPopup class=\"ltr:translate-x-[50%] rtl:translate-x-[-50%] flex box-border origin-(--transform-origin) transition-[opacity,scale] transition-discrete motion-reduce:transition-none duration-100 data-[state=closed]:duration-150 data-[state=closed]:opacity-0 starting:opacity-0 data-[state=closed]:scale-95 starting:scale-95\">\n <TableHandleRowMenuRoot>\n <TableHandleRowMenuTrigger class=\"h-6 w-4.5 flex items-center box-border justify-center bg-[canvas] hover:bg-gray-100 dark:hover:bg-gray-800 rounded-sm text-gray-500/50 dark:text-gray-400/50 border border-gray-200 dark:border-gray-800 border-solid p-0 transition-colors overflow-clip\">\n <div class=\"i-lucide-grip-vertical size-5 min-h-5 min-w-5 block\"></div>\n </TableHandleRowMenuTrigger>\n <MenuPositioner class=\"block overflow-visible w-min h-min z-50 ease-out transition-transform duration-100 motion-reduce:transition-none\">\n <MenuPopup 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 rounded-xl border border-gray-200 dark:border-gray-800 shadow-lg bg-[canvas] relative flex flex-col max-h-100 min-w-32 select-none overflow-auto whitespace-nowrap p-1 outline-none\">\n <Show when={state().addTableRowAbove.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().addTableRowAbove.command()}\n >\n <span>Insert Above</span>\n </MenuItem>\n </Show>\n <Show when={state().addTableRowBelow.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().addTableRowBelow.command()}\n >\n <span>Insert Below</span>\n </MenuItem>\n </Show>\n <Show when={state().deleteCellSelection.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().deleteCellSelection.command()}\n >\n <span>Clear Contents</span>\n <span class=\"text-xs tracking-widest text-gray-500 dark:text-gray-500\">Del</span>\n </MenuItem>\n </Show>\n <Show when={state().deleteTableRow.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => state().deleteTableRow.command()}\n >\n <span>Delete Row</span>\n </MenuItem>\n </Show>\n <Show when={state().deleteTable.canExec}>\n <MenuItem\n class=\"relative min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 flex items-center justify-between gap-8 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 hover:data-[disabled=true]:opacity-50 data-danger:text-red-500 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n attr:data-danger=\"\"\n onSelect={() => state().deleteTable.command()}\n >\n <span>Delete Table</span>\n </MenuItem>\n </Show>\n </MenuPopup>\n </MenuPositioner>\n </TableHandleRowMenuRoot>\n </TableHandleRowPopup>\n </TableHandleRowPositioner>\n </TableHandleRoot>\n )\n}\n"
24
24
  }
25
25
  ],
26
26
  "meta": {
@@ -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
  {
@@ -18,7 +18,7 @@
18
18
  "path": "registry/src/solid/ui/tag-menu/tag-menu.tsx",
19
19
  "type": "registry:component",
20
20
  "target": "components/editor/ui/tag-menu/tag-menu.tsx",
21
- "content": "import type { BasicExtension } from 'prosekit/basic'\nimport type { Union } from 'prosekit/core'\nimport type { MentionExtension } from 'prosekit/extensions/mention'\nimport { useEditor } from 'prosekit/solid'\nimport {\n AutocompleteEmpty,\n AutocompleteItem,\n AutocompletePopup,\n AutocompletePositioner,\n AutocompleteRoot,\n} from 'prosekit/solid/autocomplete'\nimport { For, type JSX } from 'solid-js'\n\nconst regex = /#[\\da-z]*$/i\n\nexport default function TagMenu(props: { tags: { id: number; label: string }[] }): JSX.Element {\n const editor = useEditor<Union<[MentionExtension, BasicExtension]>>()\n\n const handleTagInsert = (id: number, label: string) => {\n editor().commands.insertMention({\n id: id.toString(),\n value: '#' + label,\n kind: 'tag',\n })\n editor().commands.insertText({ text: ' ' })\n }\n\n return (\n <AutocompleteRoot regex={regex}>\n <AutocompletePositioner class=\"block overflow-visible w-min h-min z-50 ease-out transition-transform duration-100 motion-reduce:transition-none\">\n <AutocompletePopup 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 rounded-lg border border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-950 shadow-lg overscroll-none flex flex-col relative max-h-100 min-w-60 select-none overflow-auto whitespace-nowrap p-1\">\n <AutocompleteEmpty class=\"relative flex items-center justify-between min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\">\n No results\n </AutocompleteEmpty>\n\n <For each={props.tags}>\n {(tag) => (\n <AutocompleteItem\n class=\"relative flex items-center justify-between min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => handleTagInsert(tag.id, tag.label)}\n >\n #{tag.label}\n </AutocompleteItem>\n )}\n </For>\n </AutocompletePopup>\n </AutocompletePositioner>\n </AutocompleteRoot>\n )\n}\n"
21
+ "content": "import type { BasicExtension } from 'prosekit/basic'\nimport type { Union } from 'prosekit/core'\nimport type { MentionExtension } from 'prosekit/extensions/mention'\nimport { useEditor } from 'prosekit/solid'\nimport {\n AutocompleteEmpty,\n AutocompleteItem,\n AutocompletePopup,\n AutocompletePositioner,\n AutocompleteRoot,\n} from 'prosekit/solid/autocomplete'\nimport { For, type JSX } from 'solid-js'\n\nconst regex = /#[\\da-z]*$/i\n\nexport default function TagMenu(props: { tags: { id: number; label: string }[] }): JSX.Element {\n const editor = useEditor<Union<[MentionExtension, BasicExtension]>>()\n\n const handleTagInsert = (id: number, label: string) => {\n editor().commands.insertMention({\n id: id.toString(),\n value: '#' + label,\n kind: 'tag',\n })\n editor().commands.insertText({ text: ' ' })\n }\n\n return (\n <AutocompleteRoot regex={regex}>\n <AutocompletePositioner class=\"block overflow-visible w-min h-min z-50 ease-out transition-transform duration-100 motion-reduce:transition-none\">\n <AutocompletePopup 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 rounded-xl border border-gray-200 dark:border-gray-800 shadow-lg bg-[canvas] flex flex-col relative max-h-100 min-h-0 min-w-60 select-none overflow-hidden whitespace-nowrap\">\n <div class=\"flex flex-col flex-1 min-h-0 overflow-y-auto p-1 bg-[canvas] overscroll-contain\">\n <AutocompleteEmpty class=\"relative flex items-center justify-between min-w-32 scroll-my-1 rounded-md px-3 py-1.5 text-sm box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\">\n No results\n </AutocompleteEmpty>\n\n <For each={props.tags}>\n {(tag) => (\n <AutocompleteItem\n class=\"relative flex items-center justify-between min-w-32 scroll-my-1 rounded-md px-3 py-1.5 text-sm box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => handleTagInsert(tag.id, tag.label)}\n >\n #{tag.label}\n </AutocompleteItem>\n )}\n </For>\n </div>\n </AutocompletePopup>\n </AutocompletePositioner>\n </AutocompleteRoot>\n )\n}\n"
22
22
  }
23
23
  ],
24
24
  "meta": {
@@ -10,7 +10,7 @@
10
10
  "dependencies": [
11
11
  "@egoist/tailwindcss-icons",
12
12
  "@iconify-json/lucide",
13
- "prosekit@^0.20.0-beta.8"
13
+ "prosekit@^0.20.0"
14
14
  ],
15
15
  "files": [
16
16
  {
@@ -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
  {
@@ -18,7 +18,7 @@
18
18
  "path": "registry/src/solid/ui/user-menu/user-menu.tsx",
19
19
  "type": "registry:component",
20
20
  "target": "components/editor/ui/user-menu/user-menu.tsx",
21
- "content": "import type { BasicExtension } from 'prosekit/basic'\nimport { canUseRegexLookbehind, type Union } from 'prosekit/core'\nimport type { MentionExtension } from 'prosekit/extensions/mention'\nimport { useEditor } from 'prosekit/solid'\nimport {\n AutocompleteEmpty,\n AutocompleteItem,\n AutocompletePopup,\n AutocompletePositioner,\n AutocompleteRoot,\n} from 'prosekit/solid/autocomplete'\nimport { For, type JSX } from 'solid-js'\n\n// Match inputs like \"@\", \"@foo\", \"@foo bar\" etc. Do not match \"@ foo\".\nconst regex = canUseRegexLookbehind() ? /(?<!\\S)@(\\S.*)?$/u : /@(\\S.*)?$/u\n\nexport default function UserMenu(props: {\n users: { id: number; name: string }[]\n loading?: boolean\n onQueryChange?: (query: string) => void\n onOpenChange?: (open: boolean) => void\n}): JSX.Element {\n const editor = useEditor<Union<[MentionExtension, BasicExtension]>>()\n\n const handleUserInsert = (id: number, username: string) => {\n editor().commands.insertMention({\n id: id.toString(),\n value: '@' + username,\n kind: 'user',\n })\n editor().commands.insertText({ text: ' ' })\n }\n\n return (\n <AutocompleteRoot\n regex={regex}\n onQueryChange={(event) => props.onQueryChange?.(event.detail)}\n onOpenChange={(event) => props.onOpenChange?.(event.detail)}\n >\n <AutocompletePositioner class=\"block overflow-visible w-min h-min z-50 ease-out transition-transform duration-100 motion-reduce:transition-none\">\n <AutocompletePopup 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 rounded-lg border border-gray-200 dark:border-gray-800 bg-white dark:bg-gray-950 shadow-lg overscroll-none flex flex-col relative max-h-100 min-w-60 select-none overflow-auto whitespace-nowrap p-1\">\n <AutocompleteEmpty class=\"relative flex items-center justify-between min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\">\n {props.loading ? 'Loading...' : 'No results'}\n </AutocompleteEmpty>\n\n <For each={props.users}>\n {(user) => (\n <AutocompleteItem\n class=\"relative flex items-center justify-between min-w-32 scroll-my-1 rounded-sm px-3 py-1.5 box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => handleUserInsert(user.id, user.name)}\n >\n <span class={props.loading ? 'opacity-50' : undefined}>\n {user.name}\n </span>\n </AutocompleteItem>\n )}\n </For>\n </AutocompletePopup>\n </AutocompletePositioner>\n </AutocompleteRoot>\n )\n}\n"
21
+ "content": "import type { BasicExtension } from 'prosekit/basic'\nimport { canUseRegexLookbehind, type Union } from 'prosekit/core'\nimport type { MentionExtension } from 'prosekit/extensions/mention'\nimport { useEditor } from 'prosekit/solid'\nimport {\n AutocompleteEmpty,\n AutocompleteItem,\n AutocompletePopup,\n AutocompletePositioner,\n AutocompleteRoot,\n} from 'prosekit/solid/autocomplete'\nimport { For, type JSX } from 'solid-js'\n\n// Match inputs like \"@\", \"@foo\", \"@foo bar\" etc. Do not match \"@ foo\".\nconst regex = canUseRegexLookbehind() ? /(?<!\\S)@(\\S.*)?$/u : /@(\\S.*)?$/u\n\nexport default function UserMenu(props: {\n users: { id: number; name: string }[]\n loading?: boolean\n onQueryChange?: (query: string) => void\n onOpenChange?: (open: boolean) => void\n}): JSX.Element {\n const editor = useEditor<Union<[MentionExtension, BasicExtension]>>()\n\n const handleUserInsert = (id: number, username: string) => {\n editor().commands.insertMention({\n id: id.toString(),\n value: '@' + username,\n kind: 'user',\n })\n editor().commands.insertText({ text: ' ' })\n }\n\n return (\n <AutocompleteRoot\n regex={regex}\n onQueryChange={(event) => props.onQueryChange?.(event.detail)}\n onOpenChange={(event) => props.onOpenChange?.(event.detail)}\n >\n <AutocompletePositioner class=\"block overflow-visible w-min h-min z-50 ease-out transition-transform duration-100 motion-reduce:transition-none\">\n <AutocompletePopup 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 rounded-xl border border-gray-200 dark:border-gray-800 shadow-lg bg-[canvas] flex flex-col relative max-h-100 min-h-0 min-w-60 select-none overflow-hidden whitespace-nowrap\">\n <div class=\"flex flex-col flex-1 min-h-0 overflow-y-auto p-1 bg-[canvas] overscroll-contain\">\n <AutocompleteEmpty class=\"relative flex items-center justify-between min-w-32 scroll-my-1 rounded-md px-3 py-1.5 text-sm box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\">\n {props.loading ? 'Loading...' : 'No results'}\n </AutocompleteEmpty>\n\n <For each={props.users}>\n {(user) => (\n <AutocompleteItem\n class=\"relative flex items-center justify-between min-w-32 scroll-my-1 rounded-md px-3 py-1.5 text-sm box-border cursor-default select-none whitespace-nowrap outline-hidden data-highlighted:bg-gray-100 dark:data-highlighted:bg-gray-800\"\n onSelect={() => handleUserInsert(user.id, user.name)}\n >\n <span class={props.loading ? 'opacity-50' : undefined}>\n {user.name}\n </span>\n </AutocompleteItem>\n )}\n </For>\n </div>\n </AutocompletePopup>\n </AutocompletePositioner>\n </AutocompleteRoot>\n )\n}\n"
22
22
  }
23
23
  ],
24
24
  "meta": {
@@ -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
  {
@@ -10,14 +10,14 @@
10
10
  "https://unpkg.com/prosekit-registry/dist/r/svelte-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/svelte/examples/block-handle/editor.svelte",
18
18
  "type": "registry:component",
19
19
  "target": "components/editor/examples/block-handle/editor.svelte",
20
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-block-handle'\nimport { BlockHandle } from '../../ui/block-handle'\nimport { DropIndicator } from '../../ui/drop-indicator'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 <BlockHandle />\n <DropIndicator />\n </div>\n </div>\n</ProseKit>\n"
20
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-block-handle'\nimport { BlockHandle } from '../../ui/block-handle'\nimport { DropIndicator } from '../../ui/drop-indicator'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 <BlockHandle />\n <DropIndicator />\n </div>\n </div>\n</ProseKit>\n"
21
21
  },
22
22
  {
23
23
  "path": "registry/src/svelte/examples/block-handle/extension.ts",
@@ -7,14 +7,14 @@
7
7
  "https://unpkg.com/prosekit-registry/dist/r/svelte-ui-toolbar.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/svelte/examples/blockquote/editor.svelte",
15
15
  "type": "registry:component",
16
16
  "target": "components/editor/examples/blockquote/editor.svelte",
17
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\n\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst extension = defineExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
17
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\n\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst extension = defineExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
18
18
  },
19
19
  {
20
20
  "path": "registry/src/svelte/examples/blockquote/extension.ts",
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/svelte-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/svelte/examples/bold/editor.svelte",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/bold/editor.svelte",
18
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-bold'\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
18
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-bold'\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/svelte/examples/bold/extension.ts",
@@ -5,20 +5,20 @@
5
5
  "description": "Track and commit document changes with version history.",
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/svelte/examples/change-tracking/editor-diff.svelte",
13
13
  "type": "registry:component",
14
14
  "target": "components/editor/examples/change-tracking/editor-diff.svelte",
15
- "content": "<script lang=\"ts\">\nimport { defineBasicExtension } from 'prosekit/basic'\nimport { createEditor, union } from 'prosekit/core'\nimport { defineCommitViewer, type Commit } from 'prosekit/extensions/commit'\nimport { defineReadonly } from 'prosekit/extensions/readonly'\nimport { ProseKit } from 'prosekit/svelte'\n\ninterface Props {\n commit: Commit\n}\n\nconst props: Props = $props()\n\nconst extension = $derived(union(\n defineBasicExtension(),\n defineReadonly(),\n defineCommitViewer(props.commit),\n))\nconst editor = $derived(createEditor({ extension }))\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
15
+ "content": "<script lang=\"ts\">\nimport { defineBasicExtension } from 'prosekit/basic'\nimport { createEditor, union } from 'prosekit/core'\nimport { defineCommitViewer, type Commit } from 'prosekit/extensions/commit'\nimport { defineReadonly } from 'prosekit/extensions/readonly'\nimport { ProseKit } from 'prosekit/svelte'\n\ninterface Props {\n commit: Commit\n}\n\nconst props: Props = $props()\n\nconst extension = $derived(union(\n defineBasicExtension(),\n defineReadonly(),\n defineCommitViewer(props.commit),\n))\nconst editor = $derived(createEditor({ extension }))\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
16
16
  },
17
17
  {
18
18
  "path": "registry/src/svelte/examples/change-tracking/editor-main.svelte",
19
19
  "type": "registry:component",
20
20
  "target": "components/editor/examples/change-tracking/editor-main.svelte",
21
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { defineBasicExtension } from 'prosekit/basic'\nimport { createEditor, union, type NodeJSON } from 'prosekit/core'\nimport { defineCommitRecorder, type CommitRecorder } from 'prosekit/extensions/commit'\nimport { ProseKit } from 'prosekit/svelte'\n\ninterface Props {\n commitRecorder: CommitRecorder\n initialContent?: NodeJSON\n key?: number\n}\n\nconst props: Props = $props()\n\nconst extension = $derived(union(\n defineBasicExtension(),\n defineCommitRecorder(props.commitRecorder),\n))\nconst defaultContent = $derived(props.initialContent)\nconst editor = $derived(createEditor({ extension, defaultContent }))\n</script>\n\n{#key props.key}\n <ProseKit {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 {@attach editor.mount} 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 </div>\n </ProseKit>\n{/key}\n"
21
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { defineBasicExtension } from 'prosekit/basic'\nimport { createEditor, union, type NodeJSON } from 'prosekit/core'\nimport { defineCommitRecorder, type CommitRecorder } from 'prosekit/extensions/commit'\nimport { ProseKit } from 'prosekit/svelte'\n\ninterface Props {\n commitRecorder: CommitRecorder\n initialContent?: NodeJSON\n key?: number\n}\n\nconst props: Props = $props()\n\nconst extension = $derived(union(\n defineBasicExtension(),\n defineCommitRecorder(props.commitRecorder),\n))\nconst defaultContent = $derived(props.initialContent)\nconst editor = $derived(createEditor({ extension, defaultContent }))\n</script>\n\n{#key props.key}\n <ProseKit {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 {@attach editor.mount} 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 </div>\n </ProseKit>\n{/key}\n"
22
22
  },
23
23
  {
24
24
  "path": "registry/src/svelte/examples/change-tracking/editor.svelte",
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/svelte-ui-code-block-view.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/svelte/examples/code-block-themes/editor.svelte",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/code-block-themes/editor.svelte",
18
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-code-block'\n\nimport { defineExtension } from './extension'\nimport Toolbar from './toolbar.svelte'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
18
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-code-block'\n\nimport { defineExtension } from './extension'\nimport Toolbar from './toolbar.svelte'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/svelte/examples/code-block-themes/extension.ts",
@@ -9,14 +9,14 @@
9
9
  "https://unpkg.com/prosekit-registry/dist/r/svelte-ui-toolbar.json"
10
10
  ],
11
11
  "dependencies": [
12
- "prosekit@^0.20.0-beta.8"
12
+ "prosekit@^0.20.0"
13
13
  ],
14
14
  "files": [
15
15
  {
16
16
  "path": "registry/src/svelte/examples/code-block/editor.svelte",
17
17
  "type": "registry:component",
18
18
  "target": "components/editor/examples/code-block/editor.svelte",
19
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-code-block'\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
19
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-code-block'\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
20
20
  },
21
21
  {
22
22
  "path": "registry/src/svelte/examples/code-block/extension.ts",
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/svelte-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/svelte/examples/code/editor.svelte",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/code/editor.svelte",
18
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-code'\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
18
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-code'\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/svelte/examples/code/extension.ts",
@@ -7,14 +7,14 @@
7
7
  "https://unpkg.com/prosekit-registry/dist/r/svelte-sample-sample-doc-drop-cursor.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/svelte/examples/drop-cursor/editor.svelte",
15
15
  "type": "registry:component",
16
16
  "target": "components/editor/examples/drop-cursor/editor.svelte",
17
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-drop-cursor'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
17
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-drop-cursor'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
18
18
  },
19
19
  {
20
20
  "path": "registry/src/svelte/examples/drop-cursor/extension.ts",
@@ -5,14 +5,14 @@
5
5
  "description": "Auto-convert text shortcuts to emojis using input rules.",
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/svelte/examples/emoji-rules/editor.svelte",
13
13
  "type": "registry:component",
14
14
  "target": "components/editor/examples/emoji-rules/editor.svelte",
15
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\n\nimport { defineExtension } from './extension'\n\nconst extension = defineExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
15
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\n\nimport { defineExtension } from './extension'\n\nconst extension = defineExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
16
16
  },
17
17
  {
18
18
  "path": "registry/src/svelte/examples/emoji-rules/emoji.ts",
@@ -21,14 +21,14 @@
21
21
  "https://unpkg.com/prosekit-registry/dist/r/svelte-ui-user-menu.json"
22
22
  ],
23
23
  "dependencies": [
24
- "prosekit@^0.20.0-beta.8"
24
+ "prosekit@^0.20.0"
25
25
  ],
26
26
  "files": [
27
27
  {
28
28
  "path": "registry/src/svelte/examples/full/editor.svelte",
29
29
  "type": "registry:component",
30
30
  "target": "components/editor/examples/full/editor.svelte",
31
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-full'\nimport { sampleUploader } from '../../sample/sample-uploader'\nimport { tags } from '../../sample/sample-tag-data'\nimport { users } from '../../sample/sample-user-data'\nimport { BlockHandle } from '../../ui/block-handle'\nimport { DropIndicator } from '../../ui/drop-indicator'\nimport { InlineMenu } from '../../ui/inline-menu'\nimport { SlashMenu } from '../../ui/slash-menu'\nimport { TableHandle } from '../../ui/table-handle'\nimport { TagMenu } from '../../ui/tag-menu'\nimport { Toolbar } from '../../ui/toolbar'\nimport { UserMenu } from '../../ui/user-menu'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 <InlineMenu />\n <SlashMenu />\n <UserMenu users={users} />\n <TagMenu tags={tags} />\n <BlockHandle />\n <TableHandle />\n <DropIndicator />\n </div>\n </div>\n</ProseKit>\n"
31
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-full'\nimport { sampleUploader } from '../../sample/sample-uploader'\nimport { tags } from '../../sample/sample-tag-data'\nimport { users } from '../../sample/sample-user-data'\nimport { BlockHandle } from '../../ui/block-handle'\nimport { DropIndicator } from '../../ui/drop-indicator'\nimport { InlineMenu } from '../../ui/inline-menu'\nimport { SlashMenu } from '../../ui/slash-menu'\nimport { TableHandle } from '../../ui/table-handle'\nimport { TagMenu } from '../../ui/tag-menu'\nimport { Toolbar } from '../../ui/toolbar'\nimport { UserMenu } from '../../ui/user-menu'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 <InlineMenu />\n <SlashMenu />\n <UserMenu users={users} />\n <TagMenu tags={tags} />\n <BlockHandle />\n <TableHandle />\n <DropIndicator />\n </div>\n </div>\n</ProseKit>\n"
32
32
  },
33
33
  {
34
34
  "path": "registry/src/svelte/examples/full/extension.ts",
@@ -7,14 +7,14 @@
7
7
  "https://unpkg.com/prosekit-registry/dist/r/svelte-sample-sample-doc-gap-cursor.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/svelte/examples/gap-cursor/editor.svelte",
15
15
  "type": "registry:component",
16
16
  "target": "components/editor/examples/gap-cursor/editor.svelte",
17
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-gap-cursor'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
17
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-gap-cursor'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
18
18
  },
19
19
  {
20
20
  "path": "registry/src/svelte/examples/gap-cursor/extension.ts",
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/svelte-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/svelte/examples/hard-break/editor.svelte",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/hard-break/editor.svelte",
18
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-hard-break'\n\nimport { defineExtension } from './extension'\nimport Toolbar from './toolbar.svelte'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
18
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-hard-break'\n\nimport { defineExtension } from './extension'\nimport Toolbar from './toolbar.svelte'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/svelte/examples/hard-break/extension.ts",
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/svelte-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/svelte/examples/heading/editor.svelte",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/heading/editor.svelte",
18
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-heading'\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
18
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-heading'\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/svelte/examples/heading/extension.ts",
@@ -7,14 +7,14 @@
7
7
  "https://unpkg.com/prosekit-registry/dist/r/svelte-ui-toolbar.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/svelte/examples/horizontal-rule/editor.svelte",
15
15
  "type": "registry:component",
16
16
  "target": "components/editor/examples/horizontal-rule/editor.svelte",
17
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\n\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst extension = defineExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
17
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\n\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst extension = defineExtension()\nconst editor = createEditor({ extension })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
18
18
  },
19
19
  {
20
20
  "path": "registry/src/svelte/examples/horizontal-rule/extension.ts",
@@ -9,14 +9,14 @@
9
9
  "https://unpkg.com/prosekit-registry/dist/r/svelte-ui-image-view.json"
10
10
  ],
11
11
  "dependencies": [
12
- "prosekit@^0.20.0-beta.8"
12
+ "prosekit@^0.20.0"
13
13
  ],
14
14
  "files": [
15
15
  {
16
16
  "path": "registry/src/svelte/examples/image-view/editor.svelte",
17
17
  "type": "registry:component",
18
18
  "target": "components/editor/examples/image-view/editor.svelte",
19
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-image'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
19
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-image'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
20
20
  },
21
21
  {
22
22
  "path": "registry/src/svelte/examples/image-view/extension.ts",
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/svelte-ui-inline-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/svelte/examples/inline-menu/editor.svelte",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/inline-menu/editor.svelte",
18
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-inline-menu'\nimport { InlineMenu } from '../../ui/inline-menu'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 <InlineMenu />\n </div>\n </div>\n</ProseKit>\n"
18
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-inline-menu'\nimport { InlineMenu } from '../../ui/inline-menu'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 <InlineMenu />\n </div>\n </div>\n</ProseKit>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/svelte/examples/inline-menu/extension.ts",
@@ -8,14 +8,14 @@
8
8
  "https://unpkg.com/prosekit-registry/dist/r/svelte-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/svelte/examples/italic/editor.svelte",
16
16
  "type": "registry:component",
17
17
  "target": "components/editor/examples/italic/editor.svelte",
18
- "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-italic'\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
18
+ "content": "<script lang=\"ts\">\nimport 'prosekit/basic/style.css'\nimport 'prosekit/basic/typography.css'\n\nimport { createEditor, type NodeJSON } from 'prosekit/core'\nimport { ProseKit } from 'prosekit/svelte'\nimport { untrack } from 'svelte'\n\nimport { sampleContent } from '../../sample/sample-doc-italic'\nimport { Toolbar } from '../../ui/toolbar'\n\nimport { defineExtension } from './extension'\n\nconst props: {\n initialContent?: NodeJSON\n} = $props()\n\nconst extension = defineExtension()\nconst defaultContent = untrack(() => props.initialContent ?? sampleContent)\nconst editor = createEditor({ extension, defaultContent })\n</script>\n\n<ProseKit {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 {@attach editor.mount} 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 </div>\n</ProseKit>\n"
19
19
  },
20
20
  {
21
21
  "path": "registry/src/svelte/examples/italic/extension.ts",