@krainovsd/markdown-editor 0.0.3 → 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 (231) hide show
  1. package/README.md +21 -1
  2. package/lib/cjs/index-Byjf17iv.js +501 -0
  3. package/lib/cjs/index-Byjf17iv.js.map +1 -0
  4. package/lib/cjs/index-lPo-3QDL.js +1374 -0
  5. package/lib/cjs/index-lPo-3QDL.js.map +1 -0
  6. package/lib/cjs/index.js +15 -0
  7. package/lib/cjs/index.js.map +1 -0
  8. package/lib/esm/extensions/compartments/index.js +8 -0
  9. package/lib/esm/extensions/compartments/index.js.map +1 -0
  10. package/lib/esm/extensions/init-extensions.js +45 -0
  11. package/lib/esm/extensions/init-extensions.js.map +1 -0
  12. package/lib/esm/extensions/keymaps/init-key-map.js +91 -0
  13. package/lib/esm/extensions/keymaps/init-key-map.js.map +1 -0
  14. package/lib/esm/extensions/listeners/get-change-event.js +14 -0
  15. package/lib/esm/extensions/listeners/get-change-event.js.map +1 -0
  16. package/lib/esm/extensions/listeners/get-focus-event.js +16 -0
  17. package/lib/esm/extensions/listeners/get-focus-event.js.map +1 -0
  18. package/lib/esm/extensions/listeners/init-listeners.js +9 -0
  19. package/lib/esm/extensions/listeners/init-listeners.js.map +1 -0
  20. package/lib/esm/extensions/markdown/blockquote/blockquote-constants.js +6 -0
  21. package/lib/esm/extensions/markdown/blockquote/blockquote-constants.js.map +1 -0
  22. package/lib/esm/extensions/markdown/blockquote/blockquote-decoration.js +99 -0
  23. package/lib/esm/extensions/markdown/blockquote/blockquote-decoration.js.map +1 -0
  24. package/lib/esm/extensions/markdown/blockquote/blockquote-widget.js +25 -0
  25. package/lib/esm/extensions/markdown/blockquote/blockquote-widget.js.map +1 -0
  26. package/lib/esm/extensions/markdown/bold/bold-constants.js +5 -0
  27. package/lib/esm/extensions/markdown/bold/bold-constants.js.map +1 -0
  28. package/lib/esm/extensions/markdown/bold/bold-decoration.js +41 -0
  29. package/lib/esm/extensions/markdown/bold/bold-decoration.js.map +1 -0
  30. package/lib/esm/extensions/markdown/code/code-constants.js +6 -0
  31. package/lib/esm/extensions/markdown/code/code-constants.js.map +1 -0
  32. package/lib/esm/extensions/markdown/code/code-decoration.js +109 -0
  33. package/lib/esm/extensions/markdown/code/code-decoration.js.map +1 -0
  34. package/lib/esm/extensions/markdown/code/code-widget.js +83 -0
  35. package/lib/esm/extensions/markdown/code/code-widget.js.map +1 -0
  36. package/lib/esm/extensions/markdown/header/header-constants.js +6 -0
  37. package/lib/esm/extensions/markdown/header/header-constants.js.map +1 -0
  38. package/lib/esm/extensions/markdown/header/header-decoration.js +64 -0
  39. package/lib/esm/extensions/markdown/header/header-decoration.js.map +1 -0
  40. package/lib/esm/extensions/markdown/horizontal/horizontal-constants.js +4 -0
  41. package/lib/esm/extensions/markdown/horizontal/horizontal-constants.js.map +1 -0
  42. package/lib/esm/extensions/markdown/horizontal/horizontal-decoration.js +31 -0
  43. package/lib/esm/extensions/markdown/horizontal/horizontal-decoration.js.map +1 -0
  44. package/lib/esm/extensions/markdown/image/image-constants.js +8 -0
  45. package/lib/esm/extensions/markdown/image/image-constants.js.map +1 -0
  46. package/lib/esm/extensions/markdown/image/image-decoration.js +75 -0
  47. package/lib/esm/extensions/markdown/image/image-decoration.js.map +1 -0
  48. package/lib/esm/extensions/markdown/image/image-widget.js +184 -0
  49. package/lib/esm/extensions/markdown/image/image-widget.js.map +1 -0
  50. package/lib/esm/extensions/markdown/index.js +2 -0
  51. package/lib/esm/extensions/markdown/index.js.map +1 -0
  52. package/lib/esm/extensions/markdown/init-markdown.js +18 -0
  53. package/lib/esm/extensions/markdown/init-markdown.js.map +1 -0
  54. package/lib/esm/extensions/markdown/italic/italic-constants.js +5 -0
  55. package/lib/esm/extensions/markdown/italic/italic-constants.js.map +1 -0
  56. package/lib/esm/extensions/markdown/italic/italic-decoration.js +77 -0
  57. package/lib/esm/extensions/markdown/italic/italic-decoration.js.map +1 -0
  58. package/lib/esm/extensions/markdown/link/auto-link-decoration.js +24 -0
  59. package/lib/esm/extensions/markdown/link/auto-link-decoration.js.map +1 -0
  60. package/lib/esm/extensions/markdown/link/link-constants.js +10 -0
  61. package/lib/esm/extensions/markdown/link/link-constants.js.map +1 -0
  62. package/lib/esm/extensions/markdown/link/link-decoration.js +51 -0
  63. package/lib/esm/extensions/markdown/link/link-decoration.js.map +1 -0
  64. package/lib/esm/extensions/markdown/link/link-label-decoration.js +22 -0
  65. package/lib/esm/extensions/markdown/link/link-label-decoration.js.map +1 -0
  66. package/lib/esm/extensions/markdown/link/link-widget.js +144 -0
  67. package/lib/esm/extensions/markdown/link/link-widget.js.map +1 -0
  68. package/lib/esm/extensions/markdown/list/list-constants.js +7 -0
  69. package/lib/esm/extensions/markdown/list/list-constants.js.map +1 -0
  70. package/lib/esm/extensions/markdown/list/list-decoration.js +38 -0
  71. package/lib/esm/extensions/markdown/list/list-decoration.js.map +1 -0
  72. package/lib/esm/extensions/markdown/list/list-widget.js +33 -0
  73. package/lib/esm/extensions/markdown/list/list-widget.js.map +1 -0
  74. package/lib/esm/extensions/markdown/markdown-decoration.js +105 -0
  75. package/lib/esm/extensions/markdown/markdown-decoration.js.map +1 -0
  76. package/lib/esm/extensions/markdown/markdown-parser.js +6 -0
  77. package/lib/esm/extensions/markdown/markdown-parser.js.map +1 -0
  78. package/lib/esm/extensions/markdown/mention/mention-constants.js +6 -0
  79. package/lib/esm/extensions/markdown/mention/mention-constants.js.map +1 -0
  80. package/lib/esm/extensions/markdown/mention/mention-decoration.js +37 -0
  81. package/lib/esm/extensions/markdown/mention/mention-decoration.js.map +1 -0
  82. package/lib/esm/extensions/markdown/mention/mention-parser.js +25 -0
  83. package/lib/esm/extensions/markdown/mention/mention-parser.js.map +1 -0
  84. package/lib/esm/extensions/markdown/strike-through/strike-through-constants.js +4 -0
  85. package/lib/esm/extensions/markdown/strike-through/strike-through-constants.js.map +1 -0
  86. package/lib/esm/extensions/markdown/strike-through/strike-through-decoration.js +32 -0
  87. package/lib/esm/extensions/markdown/strike-through/strike-through-decoration.js.map +1 -0
  88. package/lib/esm/extensions/markdown/styles.module.scss.js +8 -0
  89. package/lib/esm/extensions/markdown/styles.module.scss.js.map +1 -0
  90. package/lib/esm/extensions/markdown/todo/todo-constants.js +6 -0
  91. package/lib/esm/extensions/markdown/todo/todo-constants.js.map +1 -0
  92. package/lib/esm/extensions/markdown/todo/todo-decoration.js +35 -0
  93. package/lib/esm/extensions/markdown/todo/todo-decoration.js.map +1 -0
  94. package/lib/esm/extensions/markdown/todo/todo-widget.js +51 -0
  95. package/lib/esm/extensions/markdown/todo/todo-widget.js.map +1 -0
  96. package/lib/esm/extensions/settings/init-settings.js +19 -0
  97. package/lib/esm/extensions/settings/init-settings.js.map +1 -0
  98. package/lib/esm/extensions/theme/init-theme.js +15 -0
  99. package/lib/esm/extensions/theme/init-theme.js.map +1 -0
  100. package/lib/esm/extensions/theme/theme-constants.js +17 -0
  101. package/lib/esm/extensions/theme/theme-constants.js.map +1 -0
  102. package/lib/esm/extensions/theme/themes/get-dark-theme.js +40 -0
  103. package/lib/esm/extensions/theme/themes/get-dark-theme.js.map +1 -0
  104. package/lib/esm/extensions/theme/themes/get-highlight-template.js +35 -0
  105. package/lib/esm/extensions/theme/themes/get-highlight-template.js.map +1 -0
  106. package/lib/esm/extensions/theme/themes/get-light-theme.js +40 -0
  107. package/lib/esm/extensions/theme/themes/get-light-theme.js.map +1 -0
  108. package/lib/esm/extensions/theme/themes/get-theme-template.js +69 -0
  109. package/lib/esm/extensions/theme/themes/get-theme-template.js.map +1 -0
  110. package/lib/esm/index.js +1 -1
  111. package/lib/esm/index.js.map +1 -1
  112. package/lib/esm/lib/utils/copy-to-clipboard.js +35 -0
  113. package/lib/esm/lib/utils/copy-to-clipboard.js.map +1 -0
  114. package/lib/esm/lib/utils/get-decoration.js +24 -0
  115. package/lib/esm/lib/utils/get-decoration.js.map +1 -0
  116. package/lib/esm/lib/utils/is-in-range.js +8 -0
  117. package/lib/esm/lib/utils/is-in-range.js.map +1 -0
  118. package/lib/esm/lib/utils/is-range-overlap.js +6 -0
  119. package/lib/esm/lib/utils/is-range-overlap.js.map +1 -0
  120. package/lib/esm/lib/utils/tick.js +22 -0
  121. package/lib/esm/lib/utils/tick.js.map +1 -0
  122. package/lib/esm/module/Editor/Editor.js +91 -0
  123. package/lib/esm/module/Editor/Editor.js.map +1 -0
  124. package/lib/esm/module/Editor/lib/init-editor-provider.js +32 -0
  125. package/lib/esm/module/Editor/lib/init-editor-provider.js.map +1 -0
  126. package/lib/esm/module/Editor/lib/init-editor-state.js +18 -0
  127. package/lib/esm/module/Editor/lib/init-editor-state.js.map +1 -0
  128. package/lib/esm/module/Editor/lib/init-editor.js +27 -0
  129. package/lib/esm/module/Editor/lib/init-editor.js.map +1 -0
  130. package/lib/esm/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js +29 -0
  131. package/lib/esm/node_modules/.pnpm/style-inject@0.3.0/node_modules/style-inject/dist/style-inject.es.js.map +1 -0
  132. package/lib/index.d.ts +137 -0
  133. package/package.json +32 -24
  134. package/lib/cjs/bundle.cjs +0 -2
  135. package/lib/cjs/bundle.cjs.map +0 -1
  136. package/tmp/app/helpers/common-test.d.ts +0 -1
  137. package/tmp/app/helpers/full-example.d.ts +0 -1
  138. package/tmp/app/helpers/index.d.ts +0 -5
  139. package/tmp/app/helpers/random-color.d.ts +0 -1
  140. package/tmp/app/helpers/random-string.d.ts +0 -1
  141. package/tmp/app/helpers/stress-test.d.ts +0 -1
  142. package/tmp/app/index.d.ts +0 -1
  143. package/tmp/extensions/compartments/index.d.ts +0 -4
  144. package/tmp/extensions/index.d.ts +0 -8
  145. package/tmp/extensions/init-extensions.d.ts +0 -14
  146. package/tmp/extensions/keymaps/bold-keymap.d.ts +0 -2
  147. package/tmp/extensions/keymaps/index.d.ts +0 -1
  148. package/tmp/extensions/keymaps/init-key-map.d.ts +0 -9
  149. package/tmp/extensions/keymaps/italic-key-map.d.ts +0 -2
  150. package/tmp/extensions/keymaps/line-through-key-map.d.ts +0 -2
  151. package/tmp/extensions/keymaps/underline-key-map.d.ts +0 -2
  152. package/tmp/extensions/listeners/get-change-event.d.ts +0 -6
  153. package/tmp/extensions/listeners/get-focus-event.d.ts +0 -8
  154. package/tmp/extensions/listeners/index.d.ts +0 -3
  155. package/tmp/extensions/listeners/init-listeners.d.ts +0 -4
  156. package/tmp/extensions/markdown/blockquote/blockquote-constants.d.ts +0 -3
  157. package/tmp/extensions/markdown/blockquote/blockquote-decoration.d.ts +0 -2
  158. package/tmp/extensions/markdown/blockquote/blockquote-widget.d.ts +0 -6
  159. package/tmp/extensions/markdown/blockquote/index.d.ts +0 -1
  160. package/tmp/extensions/markdown/bold/bold-constants.d.ts +0 -2
  161. package/tmp/extensions/markdown/bold/bold-decoration.d.ts +0 -2
  162. package/tmp/extensions/markdown/bold/index.d.ts +0 -1
  163. package/tmp/extensions/markdown/code/code-constants.d.ts +0 -3
  164. package/tmp/extensions/markdown/code/code-decoration.d.ts +0 -2
  165. package/tmp/extensions/markdown/code/code-widget.d.ts +0 -13
  166. package/tmp/extensions/markdown/code/index.d.ts +0 -1
  167. package/tmp/extensions/markdown/header/header-constants.d.ts +0 -3
  168. package/tmp/extensions/markdown/header/header-decoration.d.ts +0 -2
  169. package/tmp/extensions/markdown/header/index.d.ts +0 -1
  170. package/tmp/extensions/markdown/horizontal/horizontal-constants.d.ts +0 -1
  171. package/tmp/extensions/markdown/horizontal/horizontal-decoration.d.ts +0 -2
  172. package/tmp/extensions/markdown/horizontal/index.d.ts +0 -1
  173. package/tmp/extensions/markdown/image/image-constants.d.ts +0 -5
  174. package/tmp/extensions/markdown/image/image-decoration.d.ts +0 -2
  175. package/tmp/extensions/markdown/image/image-widget.d.ts +0 -15
  176. package/tmp/extensions/markdown/image/index.d.ts +0 -1
  177. package/tmp/extensions/markdown/index.d.ts +0 -2
  178. package/tmp/extensions/markdown/init-markdown.d.ts +0 -3
  179. package/tmp/extensions/markdown/italic/index.d.ts +0 -1
  180. package/tmp/extensions/markdown/italic/italic-constants.d.ts +0 -2
  181. package/tmp/extensions/markdown/italic/italic-decoration.d.ts +0 -2
  182. package/tmp/extensions/markdown/link/auto-link-decoration.d.ts +0 -2
  183. package/tmp/extensions/markdown/link/index.d.ts +0 -2
  184. package/tmp/extensions/markdown/link/link-constants.d.ts +0 -7
  185. package/tmp/extensions/markdown/link/link-decoration.d.ts +0 -2
  186. package/tmp/extensions/markdown/link/link-label-decoration.d.ts +0 -2
  187. package/tmp/extensions/markdown/link/link-widget.d.ts +0 -17
  188. package/tmp/extensions/markdown/list/index.d.ts +0 -1
  189. package/tmp/extensions/markdown/list/list-constants.d.ts +0 -4
  190. package/tmp/extensions/markdown/list/list-decoration.d.ts +0 -2
  191. package/tmp/extensions/markdown/list/list-widget.d.ts +0 -7
  192. package/tmp/extensions/markdown/markdown-decoration.d.ts +0 -5
  193. package/tmp/extensions/markdown/markdown-types.d.ts +0 -24
  194. package/tmp/extensions/markdown/mention/index.d.ts +0 -1
  195. package/tmp/extensions/markdown/mention/mention-constants.d.ts +0 -3
  196. package/tmp/extensions/markdown/mention/mention-decoration.d.ts +0 -2
  197. package/tmp/extensions/markdown/mention/mention-parser.d.ts +0 -2
  198. package/tmp/extensions/markdown/strike-through/index.d.ts +0 -1
  199. package/tmp/extensions/markdown/strike-through/strike-through-constants.d.ts +0 -1
  200. package/tmp/extensions/markdown/strike-through/strike-through-decoration.d.ts +0 -2
  201. package/tmp/extensions/markdown/todo/index.d.ts +0 -1
  202. package/tmp/extensions/markdown/todo/todo-constants.d.ts +0 -3
  203. package/tmp/extensions/markdown/todo/todo-decoration.d.ts +0 -2
  204. package/tmp/extensions/markdown/todo/todo-widget.d.ts +0 -11
  205. package/tmp/extensions/settings/index.d.ts +0 -1
  206. package/tmp/extensions/settings/init-settings.d.ts +0 -6
  207. package/tmp/extensions/theme/index.d.ts +0 -4
  208. package/tmp/extensions/theme/init-theme.d.ts +0 -3
  209. package/tmp/extensions/theme/theme-constants.d.ts +0 -14
  210. package/tmp/extensions/theme/theme-types.d.ts +0 -36
  211. package/tmp/extensions/theme/themes/get-dark-theme.d.ts +0 -2
  212. package/tmp/extensions/theme/themes/get-highlight-template.d.ts +0 -6
  213. package/tmp/extensions/theme/themes/get-light-theme.d.ts +0 -2
  214. package/tmp/extensions/theme/themes/get-theme-template.d.ts +0 -2
  215. package/tmp/extensions/theme/themes/index.d.ts +0 -2
  216. package/tmp/index.d.ts +0 -3
  217. package/tmp/lib/index.d.ts +0 -1
  218. package/tmp/lib/utils/copy-to-clipboard.d.ts +0 -1
  219. package/tmp/lib/utils/get-decoration.d.ts +0 -26
  220. package/tmp/lib/utils/index.d.ts +0 -5
  221. package/tmp/lib/utils/is-in-range.d.ts +0 -2
  222. package/tmp/lib/utils/is-range-overlap.d.ts +0 -1
  223. package/tmp/lib/utils/tick.d.ts +0 -10
  224. package/tmp/module/Editor/Editor.d.ts +0 -17
  225. package/tmp/module/Editor/Editor.types.d.ts +0 -13
  226. package/tmp/module/Editor/index.d.ts +0 -3
  227. package/tmp/module/Editor/lib/index.d.ts +0 -1
  228. package/tmp/module/Editor/lib/init-editor-provider.d.ts +0 -10
  229. package/tmp/module/Editor/lib/init-editor-state.d.ts +0 -7
  230. package/tmp/module/Editor/lib/init-editor.d.ts +0 -7
  231. package/tmp/module/index.d.ts +0 -1
@@ -0,0 +1,51 @@
1
+ import { WidgetType } from '@codemirror/view';
2
+ import styles from '../styles.module.scss.js';
3
+
4
+ class TodoWidget extends WidgetType {
5
+ checked;
6
+ position;
7
+ view;
8
+ constructor(checked, position) {
9
+ super();
10
+ this.checked = checked;
11
+ this.position = position;
12
+ }
13
+ onClick(event) {
14
+ if (!this.view)
15
+ return;
16
+ event.stopPropagation();
17
+ event.preventDefault();
18
+ const target = event.target;
19
+ const change = {
20
+ from: this.position,
21
+ to: this.position + 1,
22
+ insert: this.checked ? " " : "x",
23
+ };
24
+ this.view.dispatch(this.view.state.update({ changes: change }));
25
+ this.checked = !this.checked;
26
+ target.checked = this.checked;
27
+ }
28
+ onBlock(event) {
29
+ event.stopPropagation();
30
+ event.preventDefault();
31
+ }
32
+ toDOM(view) {
33
+ const span = document.createElement("span");
34
+ span.classList.add(styles.todo);
35
+ this.view = view;
36
+ const checkbox = document.createElement("input");
37
+ checkbox.type = "checkbox";
38
+ checkbox.checked = this.checked;
39
+ checkbox.addEventListener("click", this.onBlock.bind(this));
40
+ checkbox.addEventListener("mousedown", this.onClick.bind(this));
41
+ span.appendChild(checkbox);
42
+ return span;
43
+ }
44
+ destroy(dom) {
45
+ dom.removeEventListener("click", this.onBlock.bind(this));
46
+ dom.removeEventListener("mousedown", this.onClick.bind(this));
47
+ }
48
+ }
49
+
50
+ export { TodoWidget };
51
+ //# sourceMappingURL=todo-widget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo-widget.js","sources":["../../../../../src/extensions/markdown/todo/todo-widget.ts"],"sourcesContent":["import { type ChangeSpec } from \"@codemirror/state\";\nimport { type EditorView, WidgetType } from \"@codemirror/view\";\nimport styles from \"../styles.module.scss\";\n\nexport class TodoWidget extends WidgetType {\n view: EditorView | undefined;\n\n constructor(\n public checked: boolean,\n private readonly position: number,\n ) {\n super();\n }\n\n onClick(event: MouseEvent) {\n if (!this.view) return;\n event.stopPropagation();\n event.preventDefault();\n\n const target = event.target as HTMLInputElement;\n const change: ChangeSpec = {\n from: this.position,\n to: this.position + 1,\n insert: this.checked ? \" \" : \"x\",\n };\n\n this.view.dispatch(this.view.state.update({ changes: change }));\n\n this.checked = !this.checked;\n target.checked = this.checked;\n }\n\n onBlock(event: MouseEvent) {\n event.stopPropagation();\n event.preventDefault();\n }\n\n toDOM(view: EditorView): HTMLElement {\n const span = document.createElement(\"span\");\n span.classList.add(styles.todo);\n this.view = view;\n\n const checkbox = document.createElement(\"input\");\n checkbox.type = \"checkbox\";\n checkbox.checked = this.checked;\n\n checkbox.addEventListener(\"click\", this.onBlock.bind(this));\n checkbox.addEventListener(\"mousedown\", this.onClick.bind(this));\n\n span.appendChild(checkbox);\n\n return span;\n }\n\n destroy(dom: HTMLElement): void {\n dom.removeEventListener(\"click\", this.onBlock.bind(this));\n dom.removeEventListener(\"mousedown\", this.onClick.bind(this));\n }\n}\n"],"names":[],"mappings":";;;AAIM,MAAO,UAAW,SAAQ,UAAU,CAAA;AAI/B,IAAA,OAAA;AACU,IAAA,QAAA;AAJnB,IAAA,IAAI;IAEJ,WACS,CAAA,OAAgB,EACN,QAAgB,EAAA;AAEjC,QAAA,KAAK,EAAE;QAHA,IAAO,CAAA,OAAA,GAAP,OAAO;QACG,IAAQ,CAAA,QAAA,GAAR,QAAQ;;AAK3B,IAAA,OAAO,CAAC,KAAiB,EAAA;QACvB,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE;QAChB,KAAK,CAAC,eAAe,EAAE;QACvB,KAAK,CAAC,cAAc,EAAE;AAEtB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA0B;AAC/C,QAAA,MAAM,MAAM,GAAe;YACzB,IAAI,EAAE,IAAI,CAAC,QAAQ;AACnB,YAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC;YACrB,MAAM,EAAE,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,GAAG;SACjC;QAED,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAE/D,QAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO;AAC5B,QAAA,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;;AAG/B,IAAA,OAAO,CAAC,KAAiB,EAAA;QACvB,KAAK,CAAC,eAAe,EAAE;QACvB,KAAK,CAAC,cAAc,EAAE;;AAGxB,IAAA,KAAK,CAAC,IAAgB,EAAA;QACpB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;AAC/B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAEhB,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAChD,QAAA,QAAQ,CAAC,IAAI,GAAG,UAAU;AAC1B,QAAA,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO;AAE/B,QAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3D,QAAA,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAE/D,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AAE1B,QAAA,OAAO,IAAI;;AAGb,IAAA,OAAO,CAAC,GAAgB,EAAA;AACtB,QAAA,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzD,QAAA,GAAG,CAAC,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAEhE;;;;"}
@@ -0,0 +1,19 @@
1
+ import { history } from '@codemirror/commands';
2
+ import { drawSelection, EditorView } from '@codemirror/view';
3
+ import { ReadonlyCompartment, VimModeCompartment } from '../compartments/index.js';
4
+
5
+ async function InitSettings({ readonly, vimMode, }) {
6
+ let vimExtension = [];
7
+ if (vimMode) {
8
+ const { vim } = await import('@replit/codemirror-vim');
9
+ vimExtension = [vim({ status: true }), drawSelection()];
10
+ }
11
+ return [
12
+ ReadonlyCompartment.of(EditorView.editable.of(!readonly)),
13
+ VimModeCompartment.of(vimExtension),
14
+ history(),
15
+ ];
16
+ }
17
+
18
+ export { InitSettings };
19
+ //# sourceMappingURL=init-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-settings.js","sources":["../../../../src/extensions/settings/init-settings.ts"],"sourcesContent":["import { history } from \"@codemirror/commands\";\nimport { type Extension } from \"@codemirror/state\";\nimport { EditorView, drawSelection } from \"@codemirror/view\";\nimport { ReadonlyCompartment, VimModeCompartment } from \"../compartments\";\n\nexport type InitSettingsOptions = {\n readonly?: boolean;\n vimMode?: boolean;\n};\n\nexport async function InitSettings({\n readonly,\n vimMode,\n}: InitSettingsOptions): Promise<Extension[]> {\n let vimExtension: Extension = [];\n if (vimMode) {\n const { vim } = await import(\"@replit/codemirror-vim\");\n vimExtension = [vim({ status: true }), drawSelection()];\n }\n\n return [\n ReadonlyCompartment.of(EditorView.editable.of(!readonly)),\n VimModeCompartment.of(vimExtension),\n history(),\n ];\n}\n"],"names":[],"mappings":";;;;AAUO,eAAe,YAAY,CAAC,EACjC,QAAQ,EACR,OAAO,GACa,EAAA;IACpB,IAAI,YAAY,GAAc,EAAE;IAChC,IAAI,OAAO,EAAE;QACX,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,OAAO,wBAAwB,CAAC;AACtD,QAAA,YAAY,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC;;IAGzD,OAAO;AACL,QAAA,mBAAmB,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC;AACzD,QAAA,kBAAkB,CAAC,EAAE,CAAC,YAAY,CAAC;AACnC,QAAA,OAAO,EAAE;KACV;AACH;;;;"}
@@ -0,0 +1,15 @@
1
+ import { EditorView } from '@codemirror/view';
2
+ import { ThemeCompartment } from '../compartments/index.js';
3
+ import { getDarkTheme } from './themes/get-dark-theme.js';
4
+ import { getLightTheme } from './themes/get-light-theme.js';
5
+
6
+ const initTheme = (options) => {
7
+ const extensions = [
8
+ EditorView.lineWrapping,
9
+ ThemeCompartment.of(options.theme === "dark" ? getDarkTheme(options) : getLightTheme(options)),
10
+ ];
11
+ return extensions;
12
+ };
13
+
14
+ export { initTheme };
15
+ //# sourceMappingURL=init-theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-theme.js","sources":["../../../../src/extensions/theme/init-theme.ts"],"sourcesContent":["import type { Extension } from \"@codemirror/state\";\nimport { EditorView } from \"@codemirror/view\";\nimport { ThemeCompartment } from \"../compartments\";\nimport type { InitThemeOptions } from \"./theme-types\";\nimport { getDarkTheme, getLightTheme } from \"./themes\";\n\nexport const initTheme = (options: InitThemeOptions): Extension => {\n const extensions: Extension[] = [\n EditorView.lineWrapping,\n ThemeCompartment.of(options.theme === \"dark\" ? getDarkTheme(options) : getLightTheme(options)),\n ];\n\n return extensions;\n};\n"],"names":[],"mappings":";;;;;AAMa,MAAA,SAAS,GAAG,CAAC,OAAyB,KAAe;AAChE,IAAA,MAAM,UAAU,GAAgB;AAC9B,QAAA,UAAU,CAAC,YAAY;QACvB,gBAAgB,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,KAAK,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;KAC/F;AAED,IAAA,OAAO,UAAU;AACnB;;;;"}
@@ -0,0 +1,17 @@
1
+ const CLASSES = {
2
+ listCommon: "cm-list-common",
3
+ code: "cm-code",
4
+ codeButton: "cm-code-button",
5
+ codeButtonSuccess: "cm-code-button-success",
6
+ codeButtonFail: "cm-code-button-fail",
7
+ codeButtonPending: "cm-code-button-pending",
8
+ codeButtonSpan: "cm-code-span",
9
+ horizontal: "cm-horizontal",
10
+ blockquote: "cm-blockquote",
11
+ blockquoteInner: "cm-blockquote-inner",
12
+ link: "cm-link",
13
+ mention: "cm-mention",
14
+ };
15
+
16
+ export { CLASSES };
17
+ //# sourceMappingURL=theme-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-constants.js","sources":["../../../../src/extensions/theme/theme-constants.ts"],"sourcesContent":["export const CLASSES = {\n listCommon: \"cm-list-common\",\n code: \"cm-code\",\n codeButton: \"cm-code-button\",\n codeButtonSuccess: \"cm-code-button-success\",\n codeButtonFail: \"cm-code-button-fail\",\n codeButtonPending: \"cm-code-button-pending\",\n codeButtonSpan: \"cm-code-span\",\n horizontal: \"cm-horizontal\",\n blockquote: \"cm-blockquote\",\n blockquoteInner: \"cm-blockquote-inner\",\n link: \"cm-link\",\n mention: \"cm-mention\",\n};\n"],"names":[],"mappings":"AAAa,MAAA,OAAO,GAAG;AACrB,IAAA,UAAU,EAAE,gBAAgB;AAC5B,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,UAAU,EAAE,gBAAgB;AAC5B,IAAA,iBAAiB,EAAE,wBAAwB;AAC3C,IAAA,cAAc,EAAE,qBAAqB;AACrC,IAAA,iBAAiB,EAAE,wBAAwB;AAC3C,IAAA,cAAc,EAAE,cAAc;AAC9B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,UAAU,EAAE,eAAe;AAC3B,IAAA,eAAe,EAAE,qBAAqB;AACtC,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,OAAO,EAAE,YAAY;;;;;"}
@@ -0,0 +1,40 @@
1
+ import { getHighlightTemplate } from './get-highlight-template.js';
2
+ import { getThemeTemplate } from './get-theme-template.js';
3
+
4
+ const HIGHLIGHT_CONFIG = {
5
+ keyword: "#f97583",
6
+ variable: "#ffab70",
7
+ function: "#79b8ff",
8
+ string: "#9ecbff",
9
+ constant: "#79b8ff",
10
+ type: "#79b8ff",
11
+ class: "#b392f0",
12
+ number: "#79b8ff",
13
+ comment: "#6a737d",
14
+ heading: "#79b8ff",
15
+ invalid: "#f97583",
16
+ regexp: "#9ecbff",
17
+ };
18
+ const THEME_CONFIG = {
19
+ background: "#2E3235",
20
+ blockquoteColor: "#8A5CF5", // #6A8695
21
+ codeBackground: "#24292e",
22
+ codeButtonBackground: "#434C54FF",
23
+ codeButtonColor: "#DDDDDD",
24
+ codeColor: "#DDDDDD",
25
+ color: "#DDDDDD",
26
+ fontFamily: "Montserrat",
27
+ horizontalColor: "#DDDDDD",
28
+ linkColor: "#8A5CF5",
29
+ mentionColor: "#8A5CF5",
30
+ vimSelection: "#1A1919FF",
31
+ vimSelectionFocused: "#2E4B4BFF",
32
+ };
33
+ function getDarkTheme({ dark }) {
34
+ const highlightConfig = { ...HIGHLIGHT_CONFIG, ...(dark?.highlightConfig || {}) };
35
+ const themeConfig = { ...THEME_CONFIG, ...(dark?.themeConfig || {}) };
36
+ return [getThemeTemplate(true, themeConfig), getHighlightTemplate(highlightConfig)];
37
+ }
38
+
39
+ export { getDarkTheme };
40
+ //# sourceMappingURL=get-dark-theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-dark-theme.js","sources":["../../../../../src/extensions/theme/themes/get-dark-theme.ts"],"sourcesContent":["import { type HighlightConfig, type InitThemeOptions, type ThemeConfig } from \"../theme-types\";\nimport { getHighlightTemplate } from \"./get-highlight-template\";\nimport { getThemeTemplate } from \"./get-theme-template\";\n\nconst HIGHLIGHT_CONFIG: Required<HighlightConfig> = {\n keyword: \"#f97583\",\n variable: \"#ffab70\",\n function: \"#79b8ff\",\n string: \"#9ecbff\",\n constant: \"#79b8ff\",\n type: \"#79b8ff\",\n class: \"#b392f0\",\n number: \"#79b8ff\",\n comment: \"#6a737d\",\n heading: \"#79b8ff\",\n invalid: \"#f97583\",\n regexp: \"#9ecbff\",\n};\n\nconst THEME_CONFIG: Required<ThemeConfig> = {\n background: \"#2E3235\",\n blockquoteColor: \"#8A5CF5\", // #6A8695\n codeBackground: \"#24292e\",\n codeButtonBackground: \"#434C54FF\",\n codeButtonColor: \"#DDDDDD\",\n codeColor: \"#DDDDDD\",\n color: \"#DDDDDD\",\n fontFamily: \"Montserrat\",\n horizontalColor: \"#DDDDDD\",\n linkColor: \"#8A5CF5\",\n mentionColor: \"#8A5CF5\",\n vimSelection: \"#1A1919FF\",\n vimSelectionFocused: \"#2E4B4BFF\",\n};\n\nexport function getDarkTheme({ dark }: InitThemeOptions) {\n const highlightConfig = { ...HIGHLIGHT_CONFIG, ...(dark?.highlightConfig || {}) };\n const themeConfig = { ...THEME_CONFIG, ...(dark?.themeConfig || {}) };\n\n return [getThemeTemplate(true, themeConfig), getHighlightTemplate(highlightConfig)];\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,gBAAgB,GAA8B;AAClD,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,MAAM,EAAE,SAAS;CAClB;AAED,MAAM,YAAY,GAA0B;AAC1C,IAAA,UAAU,EAAE,SAAS;IACrB,eAAe,EAAE,SAAS;AAC1B,IAAA,cAAc,EAAE,SAAS;AACzB,IAAA,oBAAoB,EAAE,WAAW;AACjC,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,WAAW;AACzB,IAAA,mBAAmB,EAAE,WAAW;CACjC;AAEe,SAAA,YAAY,CAAC,EAAE,IAAI,EAAoB,EAAA;AACrD,IAAA,MAAM,eAAe,GAAG,EAAE,GAAG,gBAAgB,EAAE,IAAI,IAAI,EAAE,eAAe,IAAI,EAAE,CAAC,EAAE;AACjF,IAAA,MAAM,WAAW,GAAG,EAAE,GAAG,YAAY,EAAE,IAAI,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC,EAAE;AAErE,IAAA,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;AACrF;;;;"}
@@ -0,0 +1,35 @@
1
+ import { syntaxHighlighting, HighlightStyle } from '@codemirror/language';
2
+ import { tags } from '@lezer/highlight';
3
+
4
+ /**
5
+ * t.processingInstruction, t.meta - # () []
6
+ * t.url, t.link - links
7
+ */
8
+ function getHighlightTemplate(config) {
9
+ return syntaxHighlighting(HighlightStyle.define([
10
+ { tag: tags.keyword, color: config.keyword },
11
+ { tag: [tags.name, tags.deleted, tags.character, tags.macroName], color: config.variable },
12
+ { tag: [tags.propertyName], color: config.function },
13
+ {
14
+ tag: [tags.string, tags.inserted, tags.special(tags.string)],
15
+ color: config.string,
16
+ },
17
+ { tag: [tags.function(tags.variableName), tags.labelName], color: config.function },
18
+ { tag: [tags.color, tags.constant(tags.name), tags.standard(tags.name)], color: config.constant },
19
+ { tag: [tags.definition(tags.name), tags.separator], color: config.variable },
20
+ { tag: [tags.className], color: config.class },
21
+ {
22
+ tag: [tags.number, tags.changed, tags.annotation, tags.modifier, tags.self, tags.namespace],
23
+ color: config.number,
24
+ },
25
+ { tag: [tags.typeName], color: config.type, fontStyle: config.type },
26
+ { tag: [tags.operator, tags.operatorKeyword], color: config.keyword },
27
+ { tag: [tags.escape, tags.regexp], color: config.regexp },
28
+ { tag: [tags.comment], color: config.comment },
29
+ { tag: [tags.atom, tags.bool, tags.special(tags.variableName)], color: config.variable },
30
+ { tag: tags.invalid, color: config.invalid },
31
+ ]));
32
+ }
33
+
34
+ export { getHighlightTemplate };
35
+ //# sourceMappingURL=get-highlight-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-highlight-template.js","sources":["../../../../../src/extensions/theme/themes/get-highlight-template.ts"],"sourcesContent":["import { HighlightStyle, syntaxHighlighting } from \"@codemirror/language\";\nimport { tags as t } from \"@lezer/highlight\";\nimport type { HighlightConfig } from \"../theme-types\";\n\n/**\n * t.processingInstruction, t.meta - # () []\n * t.url, t.link - links\n */\n\nexport function getHighlightTemplate(config: Required<HighlightConfig>) {\n return syntaxHighlighting(\n HighlightStyle.define([\n { tag: t.keyword, color: config.keyword },\n { tag: [t.name, t.deleted, t.character, t.macroName], color: config.variable },\n { tag: [t.propertyName], color: config.function },\n {\n tag: [t.string, t.inserted, t.special(t.string)],\n color: config.string,\n },\n { tag: [t.function(t.variableName), t.labelName], color: config.function },\n { tag: [t.color, t.constant(t.name), t.standard(t.name)], color: config.constant },\n { tag: [t.definition(t.name), t.separator], color: config.variable },\n { tag: [t.className], color: config.class },\n {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: config.number,\n },\n { tag: [t.typeName], color: config.type, fontStyle: config.type },\n { tag: [t.operator, t.operatorKeyword], color: config.keyword },\n { tag: [t.escape, t.regexp], color: config.regexp },\n { tag: [t.comment], color: config.comment },\n { tag: [t.atom, t.bool, t.special(t.variableName)], color: config.variable },\n { tag: t.invalid, color: config.invalid },\n ]),\n );\n}\n"],"names":["t"],"mappings":";;;AAIA;;;AAGG;AAEG,SAAU,oBAAoB,CAAC,MAAiC,EAAA;AACpE,IAAA,OAAO,kBAAkB,CACvB,cAAc,CAAC,MAAM,CAAC;QACpB,EAAE,GAAG,EAAEA,IAAC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE;QACzC,EAAE,GAAG,EAAE,CAACA,IAAC,CAAC,IAAI,EAAEA,IAAC,CAAC,OAAO,EAAEA,IAAC,CAAC,SAAS,EAAEA,IAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;AAC9E,QAAA,EAAE,GAAG,EAAE,CAACA,IAAC,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;AACjD,QAAA;AACE,YAAA,GAAG,EAAE,CAACA,IAAC,CAAC,MAAM,EAAEA,IAAC,CAAC,QAAQ,EAAEA,IAAC,CAAC,OAAO,CAACA,IAAC,CAAC,MAAM,CAAC,CAAC;YAChD,KAAK,EAAE,MAAM,CAAC,MAAM;AACrB,SAAA;QACD,EAAE,GAAG,EAAE,CAACA,IAAC,CAAC,QAAQ,CAACA,IAAC,CAAC,YAAY,CAAC,EAAEA,IAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;AAC1E,QAAA,EAAE,GAAG,EAAE,CAACA,IAAC,CAAC,KAAK,EAAEA,IAAC,CAAC,QAAQ,CAACA,IAAC,CAAC,IAAI,CAAC,EAAEA,IAAC,CAAC,QAAQ,CAACA,IAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;QAClF,EAAE,GAAG,EAAE,CAACA,IAAC,CAAC,UAAU,CAACA,IAAC,CAAC,IAAI,CAAC,EAAEA,IAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;AACpE,QAAA,EAAE,GAAG,EAAE,CAACA,IAAC,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;AAC3C,QAAA;YACE,GAAG,EAAE,CAACA,IAAC,CAAC,MAAM,EAAEA,IAAC,CAAC,OAAO,EAAEA,IAAC,CAAC,UAAU,EAAEA,IAAC,CAAC,QAAQ,EAAEA,IAAC,CAAC,IAAI,EAAEA,IAAC,CAAC,SAAS,CAAC;YACzE,KAAK,EAAE,MAAM,CAAC,MAAM;AACrB,SAAA;AACD,QAAA,EAAE,GAAG,EAAE,CAACA,IAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE;AACjE,QAAA,EAAE,GAAG,EAAE,CAACA,IAAC,CAAC,QAAQ,EAAEA,IAAC,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE;AAC/D,QAAA,EAAE,GAAG,EAAE,CAACA,IAAC,CAAC,MAAM,EAAEA,IAAC,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;AACnD,QAAA,EAAE,GAAG,EAAE,CAACA,IAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE;QAC3C,EAAE,GAAG,EAAE,CAACA,IAAC,CAAC,IAAI,EAAEA,IAAC,CAAC,IAAI,EAAEA,IAAC,CAAC,OAAO,CAACA,IAAC,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;QAC5E,EAAE,GAAG,EAAEA,IAAC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE;AAC1C,KAAA,CAAC,CACH;AACH;;;;"}
@@ -0,0 +1,40 @@
1
+ import { getHighlightTemplate } from './get-highlight-template.js';
2
+ import { getThemeTemplate } from './get-theme-template.js';
3
+
4
+ const HIGHLIGHT_CONFIG = {
5
+ keyword: "#9854f1",
6
+ variable: "#3760bf",
7
+ function: "#2e7de9",
8
+ string: "#587539",
9
+ constant: "#9854f1",
10
+ type: "#07879d",
11
+ class: "#3760bf",
12
+ number: "#b15c00",
13
+ comment: "#9da3c2",
14
+ heading: "#006a83",
15
+ invalid: "#ff3e64",
16
+ regexp: "#2e5857",
17
+ };
18
+ const THEME_CONFIG = {
19
+ background: "transparent",
20
+ blockquoteColor: "#8A5CF5", // #6A8695
21
+ codeBackground: "#e1e2e7",
22
+ codeButtonBackground: "#CCCCCDFF",
23
+ codeButtonColor: "#000000",
24
+ codeColor: "#000000",
25
+ color: "#000000",
26
+ fontFamily: "Montserrat",
27
+ horizontalColor: "#000000",
28
+ linkColor: "#8A5CF5",
29
+ mentionColor: "#8A5CF5",
30
+ vimSelection: "#d9d9d9",
31
+ vimSelectionFocused: "#d7d4f0",
32
+ };
33
+ function getLightTheme({ light }) {
34
+ const highlightConfig = { ...HIGHLIGHT_CONFIG, ...(light?.highlightConfig || {}) };
35
+ const themeConfig = { ...THEME_CONFIG, ...(light?.themeConfig || {}) };
36
+ return [getThemeTemplate(false, themeConfig), getHighlightTemplate(highlightConfig)];
37
+ }
38
+
39
+ export { getLightTheme };
40
+ //# sourceMappingURL=get-light-theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-light-theme.js","sources":["../../../../../src/extensions/theme/themes/get-light-theme.ts"],"sourcesContent":["import { type HighlightConfig, type InitThemeOptions, type ThemeConfig } from \"../theme-types\";\nimport { getHighlightTemplate } from \"./get-highlight-template\";\nimport { getThemeTemplate } from \"./get-theme-template\";\n\nconst HIGHLIGHT_CONFIG: Required<HighlightConfig> = {\n keyword: \"#9854f1\",\n variable: \"#3760bf\",\n function: \"#2e7de9\",\n string: \"#587539\",\n constant: \"#9854f1\",\n type: \"#07879d\",\n class: \"#3760bf\",\n number: \"#b15c00\",\n comment: \"#9da3c2\",\n heading: \"#006a83\",\n invalid: \"#ff3e64\",\n regexp: \"#2e5857\",\n};\n\nconst THEME_CONFIG: Required<ThemeConfig> = {\n background: \"transparent\",\n blockquoteColor: \"#8A5CF5\", // #6A8695\n codeBackground: \"#e1e2e7\",\n codeButtonBackground: \"#CCCCCDFF\",\n codeButtonColor: \"#000000\",\n codeColor: \"#000000\",\n color: \"#000000\",\n fontFamily: \"Montserrat\",\n horizontalColor: \"#000000\",\n linkColor: \"#8A5CF5\",\n mentionColor: \"#8A5CF5\",\n vimSelection: \"#d9d9d9\",\n vimSelectionFocused: \"#d7d4f0\",\n};\n\nexport function getLightTheme({ light }: InitThemeOptions) {\n const highlightConfig = { ...HIGHLIGHT_CONFIG, ...(light?.highlightConfig || {}) };\n const themeConfig = { ...THEME_CONFIG, ...(light?.themeConfig || {}) };\n\n return [getThemeTemplate(false, themeConfig), getHighlightTemplate(highlightConfig)];\n}\n"],"names":[],"mappings":";;;AAIA,MAAM,gBAAgB,GAA8B;AAClD,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,QAAQ,EAAE,SAAS;AACnB,IAAA,IAAI,EAAE,SAAS;AACf,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,MAAM,EAAE,SAAS;CAClB;AAED,MAAM,YAAY,GAA0B;AAC1C,IAAA,UAAU,EAAE,aAAa;IACzB,eAAe,EAAE,SAAS;AAC1B,IAAA,cAAc,EAAE,SAAS;AACzB,IAAA,oBAAoB,EAAE,WAAW;AACjC,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,UAAU,EAAE,YAAY;AACxB,IAAA,eAAe,EAAE,SAAS;AAC1B,IAAA,SAAS,EAAE,SAAS;AACpB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,YAAY,EAAE,SAAS;AACvB,IAAA,mBAAmB,EAAE,SAAS;CAC/B;AAEe,SAAA,aAAa,CAAC,EAAE,KAAK,EAAoB,EAAA;AACvD,IAAA,MAAM,eAAe,GAAG,EAAE,GAAG,gBAAgB,EAAE,IAAI,KAAK,EAAE,eAAe,IAAI,EAAE,CAAC,EAAE;AAClF,IAAA,MAAM,WAAW,GAAG,EAAE,GAAG,YAAY,EAAE,IAAI,KAAK,EAAE,WAAW,IAAI,EAAE,CAAC,EAAE;AAEtE,IAAA,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,oBAAoB,CAAC,eAAe,CAAC,CAAC;AACtF;;;;"}
@@ -0,0 +1,69 @@
1
+ import { EditorView } from '@codemirror/view';
2
+ import { CLASSES } from '../theme-constants.js';
3
+
4
+ function getThemeTemplate(dark, config) {
5
+ return EditorView.theme({
6
+ "&": {
7
+ color: config.color,
8
+ backgroundColor: config.background,
9
+ },
10
+ ".cm-content": {
11
+ fontFamily: config.fontFamily || "Montserrat",
12
+ },
13
+ "&.cm-focused > .cm-scroller > .cm-selectionLayer > .cm-selectionBackground": {
14
+ background: config.vimSelectionFocused,
15
+ },
16
+ "& .cm-selectionBackground": {
17
+ background: config.vimSelection,
18
+ },
19
+ "&.cm-editor.cm-focused": { outline: "none" },
20
+ "&.cm-editor": {
21
+ height: "100%",
22
+ width: "100%",
23
+ },
24
+ [`.${CLASSES.listCommon}:after`]: {
25
+ background: config.color,
26
+ },
27
+ [`.${CLASSES.code}`]: {
28
+ background: config.codeBackground,
29
+ color: config.codeColor,
30
+ },
31
+ [`.${CLASSES.horizontal}`]: {
32
+ borderBottomColor: config.horizontalColor,
33
+ },
34
+ [`.${CLASSES.link}`]: {
35
+ color: config.linkColor,
36
+ },
37
+ [`.${CLASSES.blockquote}`]: {
38
+ borderLeftColor: config.blockquoteColor,
39
+ },
40
+ [`.${CLASSES.blockquoteInner}:before`]: {
41
+ borderLeftColor: config.blockquoteColor,
42
+ },
43
+ [`.${CLASSES.codeButton}`]: {
44
+ color: config.codeButtonColor,
45
+ },
46
+ [`.${CLASSES.codeButton}:hover`]: {
47
+ background: config.codeButtonBackground,
48
+ },
49
+ [`.${CLASSES.codeButtonSuccess}:after`]: {
50
+ borderColor: config.codeButtonColor,
51
+ },
52
+ [`.${CLASSES.codeButtonFail}:after`]: {
53
+ background: config.codeButtonColor,
54
+ },
55
+ [`.${CLASSES.codeButtonFail}:before`]: {
56
+ background: config.codeButtonColor,
57
+ },
58
+ [`.${CLASSES.codeButtonPending}:before`]: {
59
+ borderColor: config.codeBackground,
60
+ borderTopColor: config.codeButtonColor,
61
+ },
62
+ [`.${CLASSES.mention}`]: {
63
+ color: config.mentionColor,
64
+ },
65
+ }, { dark });
66
+ }
67
+
68
+ export { getThemeTemplate };
69
+ //# sourceMappingURL=get-theme-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-theme-template.js","sources":["../../../../../src/extensions/theme/themes/get-theme-template.ts"],"sourcesContent":["import { EditorView } from \"@codemirror/view\";\nimport { CLASSES } from \"../theme-constants\";\nimport type { ThemeConfig } from \"../theme-types\";\n\nexport function getThemeTemplate(dark: boolean, config: Required<ThemeConfig>) {\n return EditorView.theme(\n {\n \"&\": {\n color: config.color,\n backgroundColor: config.background,\n },\n \".cm-content\": {\n fontFamily: config.fontFamily || \"Montserrat\",\n },\n \"&.cm-focused > .cm-scroller > .cm-selectionLayer > .cm-selectionBackground\": {\n background: config.vimSelectionFocused,\n },\n \"& .cm-selectionBackground\": {\n background: config.vimSelection,\n },\n \"&.cm-editor.cm-focused\": { outline: \"none\" },\n \"&.cm-editor\": {\n height: \"100%\",\n width: \"100%\",\n },\n [`.${CLASSES.listCommon}:after`]: {\n background: config.color,\n },\n [`.${CLASSES.code}`]: {\n background: config.codeBackground,\n color: config.codeColor,\n },\n [`.${CLASSES.horizontal}`]: {\n borderBottomColor: config.horizontalColor,\n },\n [`.${CLASSES.link}`]: {\n color: config.linkColor,\n },\n [`.${CLASSES.blockquote}`]: {\n borderLeftColor: config.blockquoteColor,\n },\n [`.${CLASSES.blockquoteInner}:before`]: {\n borderLeftColor: config.blockquoteColor,\n },\n [`.${CLASSES.codeButton}`]: {\n color: config.codeButtonColor,\n },\n [`.${CLASSES.codeButton}:hover`]: {\n background: config.codeButtonBackground,\n },\n [`.${CLASSES.codeButtonSuccess}:after`]: {\n borderColor: config.codeButtonColor,\n },\n [`.${CLASSES.codeButtonFail}:after`]: {\n background: config.codeButtonColor,\n },\n [`.${CLASSES.codeButtonFail}:before`]: {\n background: config.codeButtonColor,\n },\n [`.${CLASSES.codeButtonPending}:before`]: {\n borderColor: config.codeBackground,\n borderTopColor: config.codeButtonColor,\n },\n [`.${CLASSES.mention}`]: {\n color: config.mentionColor,\n },\n },\n { dark },\n );\n}\n"],"names":[],"mappings":";;;AAIgB,SAAA,gBAAgB,CAAC,IAAa,EAAE,MAA6B,EAAA;IAC3E,OAAO,UAAU,CAAC,KAAK,CACrB;AACE,QAAA,GAAG,EAAE;YACH,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,eAAe,EAAE,MAAM,CAAC,UAAU;AACnC,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,YAAY;AAC9C,SAAA;AACD,QAAA,4EAA4E,EAAE;YAC5E,UAAU,EAAE,MAAM,CAAC,mBAAmB;AACvC,SAAA;AACD,QAAA,2BAA2B,EAAE;YAC3B,UAAU,EAAE,MAAM,CAAC,YAAY;AAChC,SAAA;AACD,QAAA,wBAAwB,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;AAC7C,QAAA,aAAa,EAAE;AACb,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,KAAK,EAAE,MAAM;AACd,SAAA;AACD,QAAA,CAAC,IAAI,OAAO,CAAC,UAAU,CAAA,MAAA,CAAQ,GAAG;YAChC,UAAU,EAAE,MAAM,CAAC,KAAK;AACzB,SAAA;AACD,QAAA,CAAC,IAAI,OAAO,CAAC,IAAI,CAAA,CAAE,GAAG;YACpB,UAAU,EAAE,MAAM,CAAC,cAAc;YACjC,KAAK,EAAE,MAAM,CAAC,SAAS;AACxB,SAAA;AACD,QAAA,CAAC,IAAI,OAAO,CAAC,UAAU,CAAA,CAAE,GAAG;YAC1B,iBAAiB,EAAE,MAAM,CAAC,eAAe;AAC1C,SAAA;AACD,QAAA,CAAC,IAAI,OAAO,CAAC,IAAI,CAAA,CAAE,GAAG;YACpB,KAAK,EAAE,MAAM,CAAC,SAAS;AACxB,SAAA;AACD,QAAA,CAAC,IAAI,OAAO,CAAC,UAAU,CAAA,CAAE,GAAG;YAC1B,eAAe,EAAE,MAAM,CAAC,eAAe;AACxC,SAAA;AACD,QAAA,CAAC,IAAI,OAAO,CAAC,eAAe,CAAA,OAAA,CAAS,GAAG;YACtC,eAAe,EAAE,MAAM,CAAC,eAAe;AACxC,SAAA;AACD,QAAA,CAAC,IAAI,OAAO,CAAC,UAAU,CAAA,CAAE,GAAG;YAC1B,KAAK,EAAE,MAAM,CAAC,eAAe;AAC9B,SAAA;AACD,QAAA,CAAC,IAAI,OAAO,CAAC,UAAU,CAAA,MAAA,CAAQ,GAAG;YAChC,UAAU,EAAE,MAAM,CAAC,oBAAoB;AACxC,SAAA;AACD,QAAA,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAA,MAAA,CAAQ,GAAG;YACvC,WAAW,EAAE,MAAM,CAAC,eAAe;AACpC,SAAA;AACD,QAAA,CAAC,IAAI,OAAO,CAAC,cAAc,CAAA,MAAA,CAAQ,GAAG;YACpC,UAAU,EAAE,MAAM,CAAC,eAAe;AACnC,SAAA;AACD,QAAA,CAAC,IAAI,OAAO,CAAC,cAAc,CAAA,OAAA,CAAS,GAAG;YACrC,UAAU,EAAE,MAAM,CAAC,eAAe;AACnC,SAAA;AACD,QAAA,CAAC,IAAI,OAAO,CAAC,iBAAiB,CAAA,OAAA,CAAS,GAAG;YACxC,WAAW,EAAE,MAAM,CAAC,cAAc;YAClC,cAAc,EAAE,MAAM,CAAC,eAAe;AACvC,SAAA;AACD,QAAA,CAAC,IAAI,OAAO,CAAC,OAAO,CAAA,CAAE,GAAG;YACvB,KAAK,EAAE,MAAM,CAAC,YAAY;AAC3B,SAAA;AACF,KAAA,EACD,EAAE,IAAI,EAAE,CACT;AACH;;;;"}