@krainovsd/markdown-editor 0.0.4 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/lib/cjs/index-Byjf17iv.js +501 -0
  2. package/lib/cjs/index-Byjf17iv.js.map +1 -0
  3. package/lib/cjs/index-lPo-3QDL.js +1374 -0
  4. package/lib/cjs/index-lPo-3QDL.js.map +1 -0
  5. package/lib/cjs/index.js +14 -1
  6. package/lib/cjs/index.js.map +1 -1
  7. package/lib/esm/extensions/compartments/index.js +8 -0
  8. package/lib/esm/extensions/compartments/index.js.map +1 -0
  9. package/lib/esm/extensions/init-extensions.js +45 -0
  10. package/lib/esm/extensions/init-extensions.js.map +1 -0
  11. package/lib/esm/extensions/keymaps/init-key-map.js +91 -0
  12. package/lib/esm/extensions/keymaps/init-key-map.js.map +1 -0
  13. package/lib/esm/extensions/listeners/get-change-event.js +14 -0
  14. package/lib/esm/extensions/listeners/get-change-event.js.map +1 -0
  15. package/lib/esm/extensions/listeners/get-focus-event.js +16 -0
  16. package/lib/esm/extensions/listeners/get-focus-event.js.map +1 -0
  17. package/lib/esm/extensions/listeners/init-listeners.js +9 -0
  18. package/lib/esm/extensions/listeners/init-listeners.js.map +1 -0
  19. package/lib/esm/extensions/markdown/blockquote/blockquote-constants.js +6 -0
  20. package/lib/esm/extensions/markdown/blockquote/blockquote-constants.js.map +1 -0
  21. package/lib/esm/extensions/markdown/blockquote/blockquote-decoration.js +99 -0
  22. package/lib/esm/extensions/markdown/blockquote/blockquote-decoration.js.map +1 -0
  23. package/lib/esm/extensions/markdown/blockquote/blockquote-widget.js +25 -0
  24. package/lib/esm/extensions/markdown/blockquote/blockquote-widget.js.map +1 -0
  25. package/lib/esm/extensions/markdown/bold/bold-constants.js +5 -0
  26. package/lib/esm/extensions/markdown/bold/bold-constants.js.map +1 -0
  27. package/lib/esm/extensions/markdown/bold/bold-decoration.js +41 -0
  28. package/lib/esm/extensions/markdown/bold/bold-decoration.js.map +1 -0
  29. package/lib/esm/extensions/markdown/code/code-constants.js +6 -0
  30. package/lib/esm/extensions/markdown/code/code-constants.js.map +1 -0
  31. package/lib/esm/extensions/markdown/code/code-decoration.js +109 -0
  32. package/lib/esm/extensions/markdown/code/code-decoration.js.map +1 -0
  33. package/lib/esm/extensions/markdown/code/code-widget.js +83 -0
  34. package/lib/esm/extensions/markdown/code/code-widget.js.map +1 -0
  35. package/lib/esm/extensions/markdown/header/header-constants.js +6 -0
  36. package/lib/esm/extensions/markdown/header/header-constants.js.map +1 -0
  37. package/lib/esm/extensions/markdown/header/header-decoration.js +64 -0
  38. package/lib/esm/extensions/markdown/header/header-decoration.js.map +1 -0
  39. package/lib/esm/extensions/markdown/horizontal/horizontal-constants.js +4 -0
  40. package/lib/esm/extensions/markdown/horizontal/horizontal-constants.js.map +1 -0
  41. package/lib/esm/extensions/markdown/horizontal/horizontal-decoration.js +31 -0
  42. package/lib/esm/extensions/markdown/horizontal/horizontal-decoration.js.map +1 -0
  43. package/lib/esm/extensions/markdown/image/image-constants.js +8 -0
  44. package/lib/esm/extensions/markdown/image/image-constants.js.map +1 -0
  45. package/lib/esm/extensions/markdown/image/image-decoration.js +75 -0
  46. package/lib/esm/extensions/markdown/image/image-decoration.js.map +1 -0
  47. package/lib/esm/extensions/markdown/image/image-widget.js +184 -0
  48. package/lib/esm/extensions/markdown/image/image-widget.js.map +1 -0
  49. package/lib/esm/extensions/markdown/index.js +2 -0
  50. package/lib/esm/extensions/markdown/index.js.map +1 -0
  51. package/lib/esm/extensions/markdown/init-markdown.js +18 -0
  52. package/lib/esm/extensions/markdown/init-markdown.js.map +1 -0
  53. package/lib/esm/extensions/markdown/italic/italic-constants.js +5 -0
  54. package/lib/esm/extensions/markdown/italic/italic-constants.js.map +1 -0
  55. package/lib/esm/extensions/markdown/italic/italic-decoration.js +77 -0
  56. package/lib/esm/extensions/markdown/italic/italic-decoration.js.map +1 -0
  57. package/lib/esm/extensions/markdown/link/auto-link-decoration.js +24 -0
  58. package/lib/esm/extensions/markdown/link/auto-link-decoration.js.map +1 -0
  59. package/lib/esm/extensions/markdown/link/link-constants.js +10 -0
  60. package/lib/esm/extensions/markdown/link/link-constants.js.map +1 -0
  61. package/lib/esm/extensions/markdown/link/link-decoration.js +51 -0
  62. package/lib/esm/extensions/markdown/link/link-decoration.js.map +1 -0
  63. package/lib/esm/extensions/markdown/link/link-label-decoration.js +22 -0
  64. package/lib/esm/extensions/markdown/link/link-label-decoration.js.map +1 -0
  65. package/lib/esm/extensions/markdown/link/link-widget.js +144 -0
  66. package/lib/esm/extensions/markdown/link/link-widget.js.map +1 -0
  67. package/lib/esm/extensions/markdown/list/list-constants.js +7 -0
  68. package/lib/esm/extensions/markdown/list/list-constants.js.map +1 -0
  69. package/lib/esm/extensions/markdown/list/list-decoration.js +38 -0
  70. package/lib/esm/extensions/markdown/list/list-decoration.js.map +1 -0
  71. package/lib/esm/extensions/markdown/list/list-widget.js +33 -0
  72. package/lib/esm/extensions/markdown/list/list-widget.js.map +1 -0
  73. package/lib/esm/extensions/markdown/markdown-decoration.js +105 -0
  74. package/lib/esm/extensions/markdown/markdown-decoration.js.map +1 -0
  75. package/lib/esm/extensions/markdown/markdown-parser.js +6 -0
  76. package/lib/esm/extensions/markdown/markdown-parser.js.map +1 -0
  77. package/lib/esm/extensions/markdown/mention/mention-constants.js +6 -0
  78. package/lib/esm/extensions/markdown/mention/mention-constants.js.map +1 -0
  79. package/lib/esm/extensions/markdown/mention/mention-decoration.js +37 -0
  80. package/lib/esm/extensions/markdown/mention/mention-decoration.js.map +1 -0
  81. package/lib/esm/extensions/markdown/mention/mention-parser.js +25 -0
  82. package/lib/esm/extensions/markdown/mention/mention-parser.js.map +1 -0
  83. package/lib/esm/extensions/markdown/strike-through/strike-through-constants.js +4 -0
  84. package/lib/esm/extensions/markdown/strike-through/strike-through-constants.js.map +1 -0
  85. package/lib/esm/extensions/markdown/strike-through/strike-through-decoration.js +32 -0
  86. package/lib/esm/extensions/markdown/strike-through/strike-through-decoration.js.map +1 -0
  87. package/lib/esm/extensions/markdown/styles.module.scss.js +8 -0
  88. package/lib/esm/extensions/markdown/styles.module.scss.js.map +1 -0
  89. package/lib/esm/extensions/markdown/todo/todo-constants.js +6 -0
  90. package/lib/esm/extensions/markdown/todo/todo-constants.js.map +1 -0
  91. package/lib/esm/extensions/markdown/todo/todo-decoration.js +35 -0
  92. package/lib/esm/extensions/markdown/todo/todo-decoration.js.map +1 -0
  93. package/lib/esm/extensions/markdown/todo/todo-widget.js +51 -0
  94. package/lib/esm/extensions/markdown/todo/todo-widget.js.map +1 -0
  95. package/lib/esm/extensions/settings/init-settings.js +19 -0
  96. package/lib/esm/extensions/settings/init-settings.js.map +1 -0
  97. package/lib/esm/extensions/theme/init-theme.js +15 -0
  98. package/lib/esm/extensions/theme/init-theme.js.map +1 -0
  99. package/lib/esm/extensions/theme/theme-constants.js +17 -0
  100. package/lib/esm/extensions/theme/theme-constants.js.map +1 -0
  101. package/lib/esm/extensions/theme/themes/get-dark-theme.js +40 -0
  102. package/lib/esm/extensions/theme/themes/get-dark-theme.js.map +1 -0
  103. package/lib/esm/extensions/theme/themes/get-highlight-template.js +35 -0
  104. package/lib/esm/extensions/theme/themes/get-highlight-template.js.map +1 -0
  105. package/lib/esm/extensions/theme/themes/get-light-theme.js +40 -0
  106. package/lib/esm/extensions/theme/themes/get-light-theme.js.map +1 -0
  107. package/lib/esm/extensions/theme/themes/get-theme-template.js +69 -0
  108. package/lib/esm/extensions/theme/themes/get-theme-template.js.map +1 -0
  109. package/lib/esm/index.js +1 -1
  110. package/lib/esm/lib/utils/copy-to-clipboard.js +35 -0
  111. package/lib/esm/lib/utils/copy-to-clipboard.js.map +1 -0
  112. package/lib/esm/lib/utils/get-decoration.js +24 -0
  113. package/lib/esm/lib/utils/get-decoration.js.map +1 -0
  114. package/lib/esm/lib/utils/is-in-range.js +8 -0
  115. package/lib/esm/lib/utils/is-in-range.js.map +1 -0
  116. package/lib/esm/lib/utils/is-range-overlap.js +6 -0
  117. package/lib/esm/lib/utils/is-range-overlap.js.map +1 -0
  118. package/lib/esm/lib/utils/tick.js +22 -0
  119. package/lib/esm/lib/utils/tick.js.map +1 -0
  120. package/lib/esm/module/Editor/Editor.js +91 -0
  121. package/lib/esm/module/Editor/Editor.js.map +1 -0
  122. package/lib/esm/module/Editor/lib/init-editor-provider.js +32 -0
  123. package/lib/esm/module/Editor/lib/init-editor-provider.js.map +1 -0
  124. package/lib/esm/module/Editor/lib/init-editor-state.js +18 -0
  125. package/lib/esm/module/Editor/lib/init-editor-state.js.map +1 -0
  126. package/lib/esm/module/Editor/lib/init-editor.js +27 -0
  127. package/lib/esm/module/Editor/lib/init-editor.js.map +1 -0
  128. package/lib/esm/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js +29 -0
  129. package/lib/esm/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
  130. package/lib/index.d.ts +137 -0
  131. package/package.json +30 -23
  132. package/lib/cjs/editor-qKPDa91b.js +0 -2
  133. package/lib/cjs/editor-qKPDa91b.js.map +0 -1
  134. package/lib/cjs/markdown_plugin-IXFRDWyN.js +0 -2
  135. package/lib/cjs/markdown_plugin-IXFRDWyN.js.map +0 -1
  136. package/lib/cjs/vendor_vim-BHa51_r7.js +0 -2
  137. package/lib/cjs/vendor_vim-BHa51_r7.js.map +0 -1
  138. package/lib/cjs/vendor_y.next-CVyX1ZQB.js +0 -2
  139. package/lib/cjs/vendor_y.next-CVyX1ZQB.js.map +0 -1
  140. package/lib/cjs/vendor_y.websocket-Dr9ojjFR.js +0 -2
  141. package/lib/cjs/vendor_y.websocket-Dr9ojjFR.js.map +0 -1
  142. package/lib/cjs/vendor_yjs-DXWp84x5.js +0 -2
  143. package/lib/cjs/vendor_yjs-DXWp84x5.js.map +0 -1
  144. package/lib/esm/editor-CLyV23xt.js +0 -2
  145. package/lib/esm/editor-CLyV23xt.js.map +0 -1
  146. package/lib/esm/markdown_plugin-DdBeaig8.js +0 -2
  147. package/lib/esm/markdown_plugin-DdBeaig8.js.map +0 -1
  148. package/lib/esm/vendor_vim-PF2jWG0J.js +0 -2
  149. package/lib/esm/vendor_vim-PF2jWG0J.js.map +0 -1
  150. package/lib/esm/vendor_y.next-B9hhKe5T.js +0 -2
  151. package/lib/esm/vendor_y.next-B9hhKe5T.js.map +0 -1
  152. package/lib/esm/vendor_y.websocket-gIpX3Cmo.js +0 -2
  153. package/lib/esm/vendor_y.websocket-gIpX3Cmo.js.map +0 -1
  154. package/lib/esm/vendor_yjs-otxZW90b.js +0 -2
  155. package/lib/esm/vendor_yjs-otxZW90b.js.map +0 -1
  156. package/tmp/app/helpers/common-test.d.ts +0 -1
  157. package/tmp/app/helpers/full-example.d.ts +0 -1
  158. package/tmp/app/helpers/index.d.ts +0 -5
  159. package/tmp/app/helpers/random-color.d.ts +0 -1
  160. package/tmp/app/helpers/random-string.d.ts +0 -1
  161. package/tmp/app/helpers/stress-test.d.ts +0 -1
  162. package/tmp/app/index.d.ts +0 -1
  163. package/tmp/extensions/compartments/index.d.ts +0 -4
  164. package/tmp/extensions/index.d.ts +0 -8
  165. package/tmp/extensions/init-extensions.d.ts +0 -14
  166. package/tmp/extensions/keymaps/bold-keymap.d.ts +0 -2
  167. package/tmp/extensions/keymaps/index.d.ts +0 -1
  168. package/tmp/extensions/keymaps/init-key-map.d.ts +0 -23
  169. package/tmp/extensions/keymaps/italic-key-map.d.ts +0 -2
  170. package/tmp/extensions/keymaps/line-through-key-map.d.ts +0 -2
  171. package/tmp/extensions/keymaps/underline-key-map.d.ts +0 -2
  172. package/tmp/extensions/listeners/get-change-event.d.ts +0 -6
  173. package/tmp/extensions/listeners/get-focus-event.d.ts +0 -8
  174. package/tmp/extensions/listeners/index.d.ts +0 -3
  175. package/tmp/extensions/listeners/init-listeners.d.ts +0 -4
  176. package/tmp/extensions/markdown/blockquote/blockquote-constants.d.ts +0 -3
  177. package/tmp/extensions/markdown/blockquote/blockquote-decoration.d.ts +0 -2
  178. package/tmp/extensions/markdown/blockquote/blockquote-widget.d.ts +0 -6
  179. package/tmp/extensions/markdown/blockquote/index.d.ts +0 -1
  180. package/tmp/extensions/markdown/bold/bold-constants.d.ts +0 -2
  181. package/tmp/extensions/markdown/bold/bold-decoration.d.ts +0 -2
  182. package/tmp/extensions/markdown/bold/index.d.ts +0 -1
  183. package/tmp/extensions/markdown/code/code-constants.d.ts +0 -3
  184. package/tmp/extensions/markdown/code/code-decoration.d.ts +0 -2
  185. package/tmp/extensions/markdown/code/code-widget.d.ts +0 -13
  186. package/tmp/extensions/markdown/code/index.d.ts +0 -1
  187. package/tmp/extensions/markdown/header/header-constants.d.ts +0 -3
  188. package/tmp/extensions/markdown/header/header-decoration.d.ts +0 -2
  189. package/tmp/extensions/markdown/header/index.d.ts +0 -1
  190. package/tmp/extensions/markdown/horizontal/horizontal-constants.d.ts +0 -1
  191. package/tmp/extensions/markdown/horizontal/horizontal-decoration.d.ts +0 -2
  192. package/tmp/extensions/markdown/horizontal/index.d.ts +0 -1
  193. package/tmp/extensions/markdown/image/image-constants.d.ts +0 -5
  194. package/tmp/extensions/markdown/image/image-decoration.d.ts +0 -2
  195. package/tmp/extensions/markdown/image/image-widget.d.ts +0 -14
  196. package/tmp/extensions/markdown/image/index.d.ts +0 -1
  197. package/tmp/extensions/markdown/index.d.ts +0 -2
  198. package/tmp/extensions/markdown/init-markdown.d.ts +0 -3
  199. package/tmp/extensions/markdown/italic/index.d.ts +0 -1
  200. package/tmp/extensions/markdown/italic/italic-constants.d.ts +0 -2
  201. package/tmp/extensions/markdown/italic/italic-decoration.d.ts +0 -2
  202. package/tmp/extensions/markdown/link/auto-link-decoration.d.ts +0 -2
  203. package/tmp/extensions/markdown/link/index.d.ts +0 -2
  204. package/tmp/extensions/markdown/link/link-constants.d.ts +0 -7
  205. package/tmp/extensions/markdown/link/link-decoration.d.ts +0 -2
  206. package/tmp/extensions/markdown/link/link-label-decoration.d.ts +0 -2
  207. package/tmp/extensions/markdown/link/link-widget.d.ts +0 -17
  208. package/tmp/extensions/markdown/list/index.d.ts +0 -1
  209. package/tmp/extensions/markdown/list/list-constants.d.ts +0 -4
  210. package/tmp/extensions/markdown/list/list-decoration.d.ts +0 -2
  211. package/tmp/extensions/markdown/list/list-widget.d.ts +0 -7
  212. package/tmp/extensions/markdown/markdown-decoration.d.ts +0 -5
  213. package/tmp/extensions/markdown/markdown-parser.d.ts +0 -2
  214. package/tmp/extensions/markdown/markdown-types.d.ts +0 -24
  215. package/tmp/extensions/markdown/mention/index.d.ts +0 -1
  216. package/tmp/extensions/markdown/mention/mention-constants.d.ts +0 -3
  217. package/tmp/extensions/markdown/mention/mention-decoration.d.ts +0 -2
  218. package/tmp/extensions/markdown/mention/mention-parser.d.ts +0 -2
  219. package/tmp/extensions/markdown/strike-through/index.d.ts +0 -1
  220. package/tmp/extensions/markdown/strike-through/strike-through-constants.d.ts +0 -1
  221. package/tmp/extensions/markdown/strike-through/strike-through-decoration.d.ts +0 -2
  222. package/tmp/extensions/markdown/todo/index.d.ts +0 -1
  223. package/tmp/extensions/markdown/todo/todo-constants.d.ts +0 -3
  224. package/tmp/extensions/markdown/todo/todo-decoration.d.ts +0 -2
  225. package/tmp/extensions/markdown/todo/todo-widget.d.ts +0 -11
  226. package/tmp/extensions/settings/index.d.ts +0 -1
  227. package/tmp/extensions/settings/init-settings.d.ts +0 -6
  228. package/tmp/extensions/theme/index.d.ts +0 -4
  229. package/tmp/extensions/theme/init-theme.d.ts +0 -3
  230. package/tmp/extensions/theme/theme-constants.d.ts +0 -14
  231. package/tmp/extensions/theme/theme-types.d.ts +0 -39
  232. package/tmp/extensions/theme/themes/get-dark-theme.d.ts +0 -2
  233. package/tmp/extensions/theme/themes/get-highlight-template.d.ts +0 -6
  234. package/tmp/extensions/theme/themes/get-light-theme.d.ts +0 -2
  235. package/tmp/extensions/theme/themes/get-theme-template.d.ts +0 -2
  236. package/tmp/extensions/theme/themes/index.d.ts +0 -2
  237. package/tmp/index.d.ts +0 -3
  238. package/tmp/lib/index.d.ts +0 -1
  239. package/tmp/lib/utils/copy-to-clipboard.d.ts +0 -1
  240. package/tmp/lib/utils/get-decoration.d.ts +0 -26
  241. package/tmp/lib/utils/index.d.ts +0 -6
  242. package/tmp/lib/utils/is-in-range.d.ts +0 -2
  243. package/tmp/lib/utils/is-range-overlap.d.ts +0 -1
  244. package/tmp/lib/utils/random-string.d.ts +0 -1
  245. package/tmp/lib/utils/tick.d.ts +0 -10
  246. package/tmp/module/Editor/Editor.d.ts +0 -18
  247. package/tmp/module/Editor/Editor.types.d.ts +0 -13
  248. package/tmp/module/Editor/index.d.ts +0 -3
  249. package/tmp/module/Editor/lib/index.d.ts +0 -1
  250. package/tmp/module/Editor/lib/init-editor-provider.d.ts +0 -9
  251. package/tmp/module/Editor/lib/init-editor-state.d.ts +0 -7
  252. package/tmp/module/Editor/lib/init-editor.d.ts +0 -7
  253. package/tmp/module/index.d.ts +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-editor-provider.js","sources":["../../../../../src/module/Editor/lib/init-editor-provider.ts"],"sourcesContent":["import type { MultiCursorOptions } from \"../Editor.types\";\n\ntype InitEditorProviderOptions = {\n initialText?: string;\n} & MultiCursorOptions;\n\nexport async function initEditorProvider({\n roomId,\n url,\n userName = \"Anonymous\",\n userColor,\n initialText,\n onStartProvider,\n}: InitEditorProviderOptions) {\n const { Doc } = await import(\"yjs\");\n const { WebsocketProvider } = await import(\"y-websocket\");\n\n const multiCursorDocument = new Doc();\n const multiCursorText = multiCursorDocument.getText(roomId);\n\n if (!userColor || !userColor.startsWith(\"#\")) {\n // eslint-disable-next-line no-console\n console.warn(\"user color must be hex!\");\n userColor = \"#30bced\";\n }\n const userColorLight = `${userColor.substring(0, 7)}33`;\n\n const provider = new WebsocketProvider(url, roomId, multiCursorDocument);\n provider.awareness.setLocalStateField(\"user\", {\n name: userName,\n color: userColor,\n colorLight: userColorLight,\n });\n\n if (onStartProvider)\n provider.on(\"status\", (event: { status: string }) => {\n onStartProvider(event?.status);\n });\n\n if (provider && multiCursorText)\n provider.on(\"sync\", (isSynced: boolean) => {\n if (isSynced && !multiCursorText.length && initialText) {\n multiCursorText.insert(0, initialText);\n }\n });\n\n return { provider, multiCursorText };\n}\n"],"names":[],"mappings":"AAMO,eAAe,kBAAkB,CAAC,EACvC,MAAM,EACN,GAAG,EACH,QAAQ,GAAG,WAAW,EACtB,SAAS,EACT,WAAW,EACX,eAAe,GACW,EAAA;IAC1B,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,KAAK,CAAC;IACnC,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,OAAO,aAAa,CAAC;AAEzD,IAAA,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAE;IACrC,MAAM,eAAe,GAAG,mBAAmB,CAAC,OAAO,CAAC,MAAM,CAAC;IAE3D,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;;AAE5C,QAAA,OAAO,CAAC,IAAI,CAAC,yBAAyB,CAAC;QACvC,SAAS,GAAG,SAAS;;AAEvB,IAAA,MAAM,cAAc,GAAG,CAAG,EAAA,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,EAAA,CAAI;IAEvD,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,CAAC;AACxE,IAAA,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE;AAC5C,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,UAAU,EAAE,cAAc;AAC3B,KAAA,CAAC;AAEF,IAAA,IAAI,eAAe;QACjB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAyB,KAAI;AAClD,YAAA,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC;AAChC,SAAC,CAAC;IAEJ,IAAI,QAAQ,IAAI,eAAe;QAC7B,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,QAAiB,KAAI;YACxC,IAAI,QAAQ,IAAI,CAAC,eAAe,CAAC,MAAM,IAAI,WAAW,EAAE;AACtD,gBAAA,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC;;AAE1C,SAAC,CAAC;AAEJ,IAAA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE;AACtC;;;;"}
@@ -0,0 +1,18 @@
1
+ import { EditorState } from '@codemirror/state';
2
+ import '../../../extensions/compartments/index.js';
3
+ import { initExtensions } from '../../../extensions/init-extensions.js';
4
+ import '@codemirror/view';
5
+ import '@codemirror/language';
6
+ import '@lezer/highlight';
7
+
8
+ async function initEditorState({ text, ...rest }) {
9
+ const extensions = await initExtensions(rest);
10
+ return EditorState.create({
11
+ // eslint-disable-next-line @typescript-eslint/no-base-to-string
12
+ doc: rest.multiCursorText ? rest.multiCursorText.toString() : text,
13
+ extensions,
14
+ });
15
+ }
16
+
17
+ export { initEditorState };
18
+ //# sourceMappingURL=init-editor-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-editor-state.js","sources":["../../../../../src/module/Editor/lib/init-editor-state.ts"],"sourcesContent":["import { EditorState } from \"@codemirror/state\";\nimport { type InitExtensionsOptions, initExtensions } from \"@/extensions\";\n\ntype InitEditorStateOptions = {\n text: string;\n} & InitExtensionsOptions;\n\nexport async function initEditorState({ text, ...rest }: InitEditorStateOptions) {\n const extensions = await initExtensions(rest);\n\n return EditorState.create({\n // eslint-disable-next-line @typescript-eslint/no-base-to-string\n doc: rest.multiCursorText ? rest.multiCursorText.toString() : text,\n extensions,\n });\n}\n"],"names":[],"mappings":";;;;;;;AAOO,eAAe,eAAe,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAA0B,EAAA;AAC7E,IAAA,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC;IAE7C,OAAO,WAAW,CAAC,MAAM,CAAC;;AAExB,QAAA,GAAG,EAAE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,IAAI;QAClE,UAAU;AACX,KAAA,CAAC;AACJ;;;;"}
@@ -0,0 +1,27 @@
1
+ import { EditorView } from '@codemirror/view';
2
+ import { initEditorProvider } from './init-editor-provider.js';
3
+ import { initEditorState } from './init-editor-state.js';
4
+
5
+ async function initEditor({ multiCursor, root, initialText, ...rest }) {
6
+ let provider;
7
+ let multiCursorText;
8
+ if (multiCursor) {
9
+ const editorProvider = await initEditorProvider({ ...multiCursor, initialText });
10
+ provider = editorProvider.provider;
11
+ multiCursorText = editorProvider.multiCursorText;
12
+ }
13
+ const state = await initEditorState({
14
+ ...rest,
15
+ text: initialText || "",
16
+ provider,
17
+ multiCursorText,
18
+ });
19
+ const view = new EditorView({
20
+ state,
21
+ parent: root,
22
+ });
23
+ return { view, provider };
24
+ }
25
+
26
+ export { initEditor };
27
+ //# sourceMappingURL=init-editor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-editor.js","sources":["../../../../../src/module/Editor/lib/init-editor.ts"],"sourcesContent":["import { EditorView } from \"@codemirror/view\";\nimport { type WebsocketProvider } from \"y-websocket\";\nimport type { Text } from \"yjs\";\nimport type { EditorArguments } from \"../Editor.types\";\nimport { initEditorProvider } from \"./init-editor-provider\";\nimport { initEditorState } from \"./init-editor-state\";\n\nexport async function initEditor({ multiCursor, root, initialText, ...rest }: EditorArguments) {\n let provider: WebsocketProvider | undefined;\n let multiCursorText: Text | undefined;\n\n if (multiCursor) {\n const editorProvider = await initEditorProvider({ ...multiCursor, initialText });\n provider = editorProvider.provider;\n multiCursorText = editorProvider.multiCursorText;\n }\n\n const state = await initEditorState({\n ...rest,\n text: initialText || \"\",\n provider,\n multiCursorText,\n });\n const view = new EditorView({\n state,\n parent: root,\n });\n\n return { view, provider };\n}\n"],"names":[],"mappings":";;;;AAOO,eAAe,UAAU,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,EAAmB,EAAA;AAC3F,IAAA,IAAI,QAAuC;AAC3C,IAAA,IAAI,eAAiC;IAErC,IAAI,WAAW,EAAE;AACf,QAAA,MAAM,cAAc,GAAG,MAAM,kBAAkB,CAAC,EAAE,GAAG,WAAW,EAAE,WAAW,EAAE,CAAC;AAChF,QAAA,QAAQ,GAAG,cAAc,CAAC,QAAQ;AAClC,QAAA,eAAe,GAAG,cAAc,CAAC,eAAe;;AAGlD,IAAA,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC;AAClC,QAAA,GAAG,IAAI;QACP,IAAI,EAAE,WAAW,IAAI,EAAE;QACvB,QAAQ;QACR,eAAe;AAChB,KAAA,CAAC;AACF,IAAA,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC;QAC1B,KAAK;AACL,QAAA,MAAM,EAAE,IAAI;AACb,KAAA,CAAC;AAEF,IAAA,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC3B;;;;"}
@@ -0,0 +1,29 @@
1
+ function styleInject(css, ref) {
2
+ if ( ref === void 0 ) ref = {};
3
+ var insertAt = ref.insertAt;
4
+
5
+ if (typeof document === 'undefined') { return; }
6
+
7
+ var head = document.head || document.getElementsByTagName('head')[0];
8
+ var style = document.createElement('style');
9
+ style.type = 'text/css';
10
+
11
+ if (insertAt === 'top') {
12
+ if (head.firstChild) {
13
+ head.insertBefore(style, head.firstChild);
14
+ } else {
15
+ head.appendChild(style);
16
+ }
17
+ } else {
18
+ head.appendChild(style);
19
+ }
20
+
21
+ if (style.styleSheet) {
22
+ style.styleSheet.cssText = css;
23
+ } else {
24
+ style.appendChild(document.createTextNode(css));
25
+ }
26
+ }
27
+
28
+ export { styleInject as default };
29
+ //# sourceMappingURL=style-inject.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style-inject.es.js","sources":["../../../../../../../../../../node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n"],"names":[],"mappings":"AAAA,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE;AAC/B,EAAE,KAAK,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,EAAE;AAChC,EAAE,IAAI,QAAQ,GAAG,GAAG,CAAC,QAAQ;;AAE7B,EAAE,IAAY,OAAO,QAAQ,KAAK,WAAW,EAAE,EAAE,OAAO;;AAExD,EAAE,IAAI,IAAI,GAAG,QAAQ,CAAC,IAAI,IAAI,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACtE,EAAE,IAAI,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,EAAE,KAAK,CAAC,IAAI,GAAG,UAAU;;AAEzB,EAAE,IAAI,QAAQ,KAAK,KAAK,EAAE;AAC1B,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AACzB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC;AAC/C,KAAK,MAAM;AACX,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC7B;AACA,GAAG,MAAM;AACT,IAAI,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AAC3B;;AAEA,EAAE,IAAI,KAAK,CAAC,UAAU,EAAE;AACxB,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,GAAG,GAAG;AAClC,GAAG,MAAM;AACT,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AACnD;AACA;;;;","x_google_ignoreList":[0]}
package/lib/index.d.ts ADDED
@@ -0,0 +1,137 @@
1
+ import { KeyBinding, EditorView, ViewUpdate, Decoration } from '@codemirror/view';
2
+ import { WebsocketProvider } from 'y-websocket';
3
+ import { Text } from 'yjs';
4
+ import { EditorState, Range } from '@codemirror/state';
5
+ import { LanguageDescription } from '@codemirror/language';
6
+ import { SyntaxNodeRef } from '@lezer/common';
7
+
8
+ type EditorTheme = "dark" | "light";
9
+ type InitThemeOptions = {
10
+ dark?: ThemeOptions;
11
+ light?: ThemeOptions;
12
+ theme?: EditorTheme;
13
+ };
14
+ type ThemeOptions = {
15
+ themeConfig?: ThemeConfig;
16
+ highlightConfig?: HighlightConfig;
17
+ };
18
+ type ThemeConfig = {
19
+ fontFamily?: string;
20
+ color?: string;
21
+ background?: string;
22
+ codeBackground?: string;
23
+ codeColor?: string;
24
+ codeButtonColor?: string;
25
+ codeButtonBackground?: string;
26
+ horizontalColor?: string;
27
+ linkColor?: string;
28
+ blockquoteColor?: string;
29
+ mentionColor?: string;
30
+ vimSelectionFocused?: string;
31
+ vimSelection?: string;
32
+ };
33
+ type HighlightConfig = {
34
+ keyword?: string;
35
+ variable?: string;
36
+ function?: string;
37
+ string?: string;
38
+ constant?: string;
39
+ type?: string;
40
+ class?: string;
41
+ number?: string;
42
+ comment?: string;
43
+ heading?: string;
44
+ invalid?: string;
45
+ regexp?: string;
46
+ };
47
+
48
+ type InitKeyMapsOptions = {
49
+ onEnter?: HandleEnterKeyMapEditorFunction;
50
+ onEscape?: HandleEscapeKeyMapEditorFunction;
51
+ keyMaps?: CustomKeyMap[];
52
+ defaultKeyMaps?: DefaultKeyMapsOptions;
53
+ };
54
+ type CustomKeyMap = KeyBinding;
55
+ type HandleEnterKeyMapEditorFunction = (view: EditorView) => boolean;
56
+ type HandleEscapeKeyMapEditorFunction = (view: EditorView) => boolean;
57
+ type DefaultKeyMapsOptions = {
58
+ vim?: boolean;
59
+ theme?: boolean;
60
+ };
61
+
62
+ type GetChangeEventOptions = {
63
+ onChange?: HandleChangeEditorFunction;
64
+ };
65
+ type HandleChangeEditorFunction = (view: ViewUpdate) => void;
66
+
67
+ type GetFocusEventOptions = {
68
+ onFocus?: HandleFocusEditorFunction;
69
+ onBlur?: HandleBlurEditorFunction;
70
+ };
71
+ type HandleFocusEditorFunction = (state: EditorState) => void;
72
+ type HandleBlurEditorFunction = (state: EditorState) => void;
73
+
74
+ type InitListenersOptions = GetFocusEventOptions & GetChangeEventOptions;
75
+
76
+ type InitMarkdownOptions = {
77
+ languages?: LanguageDescription[];
78
+ };
79
+ type GetDecorationOptions = {
80
+ node: SyntaxNodeRef;
81
+ decorations: Range<Decoration>[];
82
+ view: EditorView;
83
+ };
84
+ type GetSelectionDecorationOptions = {
85
+ node: SyntaxNodeRef;
86
+ decorations: Range<Decoration>[];
87
+ view: EditorView;
88
+ isReadonly: boolean;
89
+ };
90
+ type GetDecorationFunction = (options: GetDecorationOptions) => void;
91
+ type GetSelectionDecorationFunction = (options: GetSelectionDecorationOptions) => void;
92
+ type DecorationPlugin = {
93
+ decorations?: GetDecorationFunction[];
94
+ selectionDecorations?: GetSelectionDecorationFunction[];
95
+ };
96
+
97
+ type InitSettingsOptions = {
98
+ readonly?: boolean;
99
+ vimMode?: boolean;
100
+ };
101
+
102
+ type ExtensionsOptions = InitListenersOptions & InitThemeOptions & InitSettingsOptions & InitMarkdownOptions & InitKeyMapsOptions;
103
+ type InitExtensionsOptions = {
104
+ multiCursorText: Text | undefined;
105
+ provider: WebsocketProvider | undefined;
106
+ } & ExtensionsOptions;
107
+
108
+ type EditorArguments = {
109
+ root: HTMLElement;
110
+ initialText?: string;
111
+ multiCursor?: MultiCursorOptions;
112
+ } & ExtensionsOptions;
113
+ type MultiCursorOptions = {
114
+ url: string;
115
+ userName?: string;
116
+ userColor?: string;
117
+ roomId: string;
118
+ onStartProvider?: (status?: string) => void;
119
+ };
120
+
121
+ declare class Editor {
122
+ view: EditorView | undefined;
123
+ provider: WebsocketProvider | undefined;
124
+ arguments: EditorArguments;
125
+ constructor(options: EditorArguments);
126
+ focus: () => void;
127
+ getContent: () => string | undefined;
128
+ setContent: (content: string, position?: number) => void;
129
+ setReadonly: (readonly: boolean) => void;
130
+ setTheme: (theme?: EditorTheme) => void;
131
+ setVimMode: (mode: boolean) => Promise<void>;
132
+ setUserProvider: (name?: string, color?: string) => void;
133
+ destroy: () => void;
134
+ }
135
+ type EditorInterface = typeof Editor;
136
+
137
+ export { type CustomKeyMap, type DecorationPlugin, type DefaultKeyMapsOptions, Editor, type EditorArguments, type EditorInterface, type EditorTheme, type ExtensionsOptions, type GetChangeEventOptions, type GetDecorationFunction, type GetDecorationOptions, type GetFocusEventOptions, type GetSelectionDecorationFunction, type GetSelectionDecorationOptions, type HandleBlurEditorFunction, type HandleChangeEditorFunction, type HandleEnterKeyMapEditorFunction, type HandleEscapeKeyMapEditorFunction, type HandleFocusEditorFunction, type HighlightConfig, type InitExtensionsOptions, type InitKeyMapsOptions, type InitListenersOptions, type InitMarkdownOptions, type InitSettingsOptions, type InitThemeOptions, type MultiCursorOptions, type ThemeConfig, type ThemeOptions };
package/package.json CHANGED
@@ -1,18 +1,19 @@
1
1
  {
2
2
  "name": "@krainovsd/markdown-editor",
3
- "version": "0.0.4",
3
+ "version": "0.1.0",
4
4
  "description": "Krainov markdown-editor",
5
5
  "type": "module",
6
6
  "author": "KrainovSD <denislosev48@gmail.com>",
7
7
  "license": "ISC",
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "https://github.com/KrainovSD/markdown-editor"
10
+ "url": "git+https://github.com/KrainovSD/js-tools.git",
11
+ "directory": "packages/markdown-editor"
11
12
  },
12
13
  "sideEffects": false,
13
14
  "exports": {
14
15
  ".": {
15
- "types": "./tmp/index.d.ts",
16
+ "types": "./lib/index.d.ts",
16
17
  "import": "./lib/esm/index.js",
17
18
  "require": "./lib/cjs/bundle.cjs"
18
19
  }
@@ -24,41 +25,47 @@
24
25
  "js"
25
26
  ],
26
27
  "files": [
27
- "lib",
28
- "tmp"
28
+ "lib"
29
29
  ],
30
30
  "scripts": {
31
+ "publish-package": "npm run lint && npm run build && npm publish",
31
32
  "dev": "vite",
33
+ "build": "npm run clear && npm run build:types && npm run build:js",
34
+ "lint": "eslint src/** -c ./eslint.config.js --color --max-warnings 0",
35
+ "lint:debug": "eslint --debug eslint.config.js",
36
+ "format": "prettier --write 'src/**/*.{js,ts,tsx,scss,css,json}'",
32
37
  "build:dev": "vite build",
33
- "build": "npm run build:types && npm run build:js",
34
38
  "build:js": "rm -rf lib && rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript --no-stdin --environment BUILD:production,NODE_ENV:production",
35
39
  "build:types": "tspc -p tsconfig.build.json",
36
- "lint": "eslint src/** -c ./eslint.config.js --color --max-warnings 0",
37
- "lint:debug": "eslint --debug eslint.config.js",
38
- "format": "prettier --write 'src/**/*.{js,ts,tsx,scss,css,json}'"
40
+ "clear": "rm -rf ./lib"
39
41
  },
40
42
  "devDependencies": {
41
- "@codemirror/language-data": "6.5.1",
42
- "@krainovsd/eslint-presets": "0.1.0",
43
- "@lezer/common": "1.2.3",
44
- "@lezer/markdown": "1.3.2",
45
- "@rollup/plugin-node-resolve": "15.3.0",
43
+ "rollup": "4.29.1",
46
44
  "@rollup/plugin-terser": "0.4.4",
47
- "@rollup/plugin-typescript": "12.1.1",
48
- "@trivago/prettier-plugin-sort-imports": "4.3.0",
49
- "@types/node": "22.8.6",
45
+ "@krainovsd/eslint-presets": "0.2.1",
46
+ "@rollup/plugin-commonjs": "28.0.2",
47
+ "@rollup/plugin-json": "6.1.0",
48
+ "@rollup/plugin-node-resolve": "16.0.0",
49
+ "@rollup/plugin-typescript": "12.1.2",
50
+ "rollup-plugin-dts": "6.1.1",
51
+ "rollup-plugin-bundle-stats": "4.17.0",
52
+ "rollup-plugin-visualizer": "5.12.0",
50
53
  "@types/rollup-plugin-peer-deps-external": "2.2.5",
51
- "eslint": "9.13.0",
52
- "prettier": "3.3.3",
53
- "rollup": "4.21.2",
54
54
  "rollup-plugin-peer-deps-external": "2.2.4",
55
55
  "rollup-plugin-postcss": "4.0.2",
56
- "sass": "1.83.0",
57
- "sass-embedded": "1.81.0",
56
+ "@trivago/prettier-plugin-sort-imports": "4.3.0",
57
+ "@types/node": "22.8.6",
58
+ "eslint": "9.17.0",
59
+ "prettier": "3.3.3",
58
60
  "ts-patch": "3.3.0",
59
61
  "typescript": "5.6.3",
60
62
  "typescript-transform-paths": "3.5.2",
61
- "vite": "5.4.10"
63
+ "@codemirror/language-data": "6.5.1",
64
+ "@lezer/common": "1.2.3",
65
+ "@lezer/markdown": "1.3.2",
66
+ "sass": "1.83.0",
67
+ "sass-embedded": "1.81.0",
68
+ "vite": "6.0.11"
62
69
  },
63
70
  "dependencies": {
64
71
  "@codemirror/commands": "6.7.1",