@dxos/react-ui-editor 0.8.1-staging.9eaf14f → 0.8.2-main.10c050d

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 (268) hide show
  1. package/dist/lib/browser/index.mjs +4152 -2852
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/browser/testing/index.mjs +6 -0
  5. package/dist/lib/browser/testing/index.mjs.map +7 -0
  6. package/dist/lib/node/index.cjs +3318 -2009
  7. package/dist/lib/node/index.cjs.map +4 -4
  8. package/dist/lib/node/meta.json +1 -1
  9. package/dist/lib/node/testing/index.cjs +29 -0
  10. package/dist/lib/node/testing/index.cjs.map +7 -0
  11. package/dist/lib/node-esm/index.mjs +4152 -2852
  12. package/dist/lib/node-esm/index.mjs.map +4 -4
  13. package/dist/lib/node-esm/meta.json +1 -1
  14. package/dist/lib/node-esm/testing/index.mjs +8 -0
  15. package/dist/lib/node-esm/testing/index.mjs.map +7 -0
  16. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts +1 -1
  17. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  18. package/dist/types/src/components/EditorToolbar/blocks.d.ts +4 -3
  19. package/dist/types/src/components/EditorToolbar/blocks.d.ts.map +1 -1
  20. package/dist/types/src/components/EditorToolbar/formatting.d.ts +4 -3
  21. package/dist/types/src/components/EditorToolbar/formatting.d.ts.map +1 -1
  22. package/dist/types/src/components/EditorToolbar/headings.d.ts +4 -3
  23. package/dist/types/src/components/EditorToolbar/headings.d.ts.map +1 -1
  24. package/dist/types/src/components/EditorToolbar/{comment.d.ts → image.d.ts} +4 -5
  25. package/dist/types/src/components/EditorToolbar/image.d.ts.map +1 -0
  26. package/dist/types/src/components/EditorToolbar/index.d.ts +1 -1
  27. package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
  28. package/dist/types/src/components/EditorToolbar/lists.d.ts +4 -3
  29. package/dist/types/src/components/EditorToolbar/lists.d.ts.map +1 -1
  30. package/dist/types/src/components/EditorToolbar/search.d.ts +17 -0
  31. package/dist/types/src/components/EditorToolbar/search.d.ts.map +1 -0
  32. package/dist/types/src/components/EditorToolbar/util.d.ts +17 -25
  33. package/dist/types/src/components/EditorToolbar/util.d.ts.map +1 -1
  34. package/dist/types/src/components/EditorToolbar/{viewMode.d.ts → view-mode.d.ts} +5 -4
  35. package/dist/types/src/components/EditorToolbar/view-mode.d.ts.map +1 -0
  36. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts +21 -0
  37. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts.map +1 -0
  38. package/dist/types/src/components/Popover/RefPopover.d.ts +21 -0
  39. package/dist/types/src/components/Popover/RefPopover.d.ts.map +1 -0
  40. package/dist/types/src/components/Popover/index.d.ts +3 -0
  41. package/dist/types/src/components/Popover/index.d.ts.map +1 -0
  42. package/dist/types/src/components/index.d.ts +1 -0
  43. package/dist/types/src/components/index.d.ts.map +1 -1
  44. package/dist/types/src/defaults.d.ts +3 -5
  45. package/dist/types/src/defaults.d.ts.map +1 -1
  46. package/dist/types/src/extensions/annotations.d.ts +4 -1
  47. package/dist/types/src/extensions/annotations.d.ts.map +1 -1
  48. package/dist/types/src/extensions/autocomplete.d.ts +1 -2
  49. package/dist/types/src/extensions/autocomplete.d.ts.map +1 -1
  50. package/dist/types/src/extensions/automerge/automerge.d.ts.map +1 -1
  51. package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +1 -1
  52. package/dist/types/src/extensions/automerge/cursor.d.ts.map +1 -1
  53. package/dist/types/src/extensions/automerge/defs.d.ts +1 -1
  54. package/dist/types/src/extensions/automerge/defs.d.ts.map +1 -1
  55. package/dist/types/src/extensions/automerge/sync.d.ts.map +1 -1
  56. package/dist/types/src/extensions/automerge/update-automerge.d.ts +1 -1
  57. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +1 -1
  58. package/dist/types/src/extensions/automerge/update-codemirror.d.ts +1 -1
  59. package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +1 -1
  60. package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +1 -1
  61. package/dist/types/src/extensions/awareness/awareness.d.ts.map +1 -1
  62. package/dist/types/src/extensions/blast.d.ts.map +1 -1
  63. package/dist/types/src/extensions/command/action.d.ts +17 -0
  64. package/dist/types/src/extensions/command/action.d.ts.map +1 -0
  65. package/dist/types/src/extensions/command/command.d.ts +4 -10
  66. package/dist/types/src/extensions/command/command.d.ts.map +1 -1
  67. package/dist/types/src/extensions/command/hint.d.ts +18 -4
  68. package/dist/types/src/extensions/command/hint.d.ts.map +1 -1
  69. package/dist/types/src/extensions/command/index.d.ts +3 -0
  70. package/dist/types/src/extensions/command/index.d.ts.map +1 -1
  71. package/dist/types/src/extensions/command/menu.d.ts +6 -11
  72. package/dist/types/src/extensions/command/menu.d.ts.map +1 -1
  73. package/dist/types/src/extensions/command/state.d.ts +9 -11
  74. package/dist/types/src/extensions/command/state.d.ts.map +1 -1
  75. package/dist/types/src/extensions/command/typeahead.d.ts +17 -0
  76. package/dist/types/src/extensions/command/typeahead.d.ts.map +1 -0
  77. package/dist/types/src/extensions/comments.d.ts +9 -17
  78. package/dist/types/src/extensions/comments.d.ts.map +1 -1
  79. package/dist/types/src/extensions/debug.d.ts.map +1 -1
  80. package/dist/types/src/extensions/dnd.d.ts.map +1 -1
  81. package/dist/types/src/extensions/factories.d.ts +4 -0
  82. package/dist/types/src/extensions/factories.d.ts.map +1 -1
  83. package/dist/types/src/extensions/folding.d.ts.map +1 -1
  84. package/dist/types/src/extensions/index.d.ts +3 -0
  85. package/dist/types/src/extensions/index.d.ts.map +1 -1
  86. package/dist/types/src/extensions/json.d.ts +7 -0
  87. package/dist/types/src/extensions/json.d.ts.map +1 -0
  88. package/dist/types/src/extensions/listener.d.ts.map +1 -1
  89. package/dist/types/src/extensions/markdown/{editorAction.d.ts → action.d.ts} +1 -1
  90. package/dist/types/src/extensions/markdown/action.d.ts.map +1 -0
  91. package/dist/types/src/extensions/markdown/bundle.d.ts +2 -1
  92. package/dist/types/src/extensions/markdown/bundle.d.ts.map +1 -1
  93. package/dist/types/src/extensions/markdown/changes.d.ts.map +1 -1
  94. package/dist/types/src/extensions/markdown/debug.d.ts.map +1 -1
  95. package/dist/types/src/extensions/markdown/decorate.d.ts +5 -1
  96. package/dist/types/src/extensions/markdown/decorate.d.ts.map +1 -1
  97. package/dist/types/src/extensions/markdown/formatting.d.ts +3 -3
  98. package/dist/types/src/extensions/markdown/formatting.d.ts.map +1 -1
  99. package/dist/types/src/extensions/markdown/highlight.d.ts.map +1 -1
  100. package/dist/types/src/extensions/markdown/image.d.ts.map +1 -1
  101. package/dist/types/src/extensions/markdown/index.d.ts +1 -1
  102. package/dist/types/src/extensions/markdown/index.d.ts.map +1 -1
  103. package/dist/types/src/extensions/markdown/link.d.ts +4 -1
  104. package/dist/types/src/extensions/markdown/link.d.ts.map +1 -1
  105. package/dist/types/src/extensions/markdown/styles.d.ts.map +1 -1
  106. package/dist/types/src/extensions/markdown/table.d.ts.map +1 -1
  107. package/dist/types/src/extensions/mention.d.ts.map +1 -1
  108. package/dist/types/src/extensions/modes.d.ts +5 -5
  109. package/dist/types/src/extensions/modes.d.ts.map +1 -1
  110. package/dist/types/src/extensions/outliner/commands.d.ts +10 -0
  111. package/dist/types/src/extensions/outliner/commands.d.ts.map +1 -0
  112. package/dist/types/src/extensions/outliner/editor.d.ts +5 -0
  113. package/dist/types/src/extensions/outliner/editor.d.ts.map +1 -0
  114. package/dist/types/src/extensions/outliner/editor.test.d.ts +2 -0
  115. package/dist/types/src/extensions/outliner/editor.test.d.ts.map +1 -0
  116. package/dist/types/src/extensions/outliner/index.d.ts +4 -0
  117. package/dist/types/src/extensions/outliner/index.d.ts.map +1 -0
  118. package/dist/types/src/extensions/outliner/outliner.d.ts +13 -0
  119. package/dist/types/src/extensions/outliner/outliner.d.ts.map +1 -0
  120. package/dist/types/src/extensions/outliner/outliner.test.d.ts +2 -0
  121. package/dist/types/src/extensions/outliner/outliner.test.d.ts.map +1 -0
  122. package/dist/types/src/extensions/outliner/selection.d.ts +12 -0
  123. package/dist/types/src/extensions/outliner/selection.d.ts.map +1 -0
  124. package/dist/types/src/extensions/outliner/tree.d.ts +79 -0
  125. package/dist/types/src/extensions/outliner/tree.d.ts.map +1 -0
  126. package/dist/types/src/extensions/outliner/tree.test.d.ts +2 -0
  127. package/dist/types/src/extensions/outliner/tree.test.d.ts.map +1 -0
  128. package/dist/types/src/extensions/preview/index.d.ts +2 -0
  129. package/dist/types/src/extensions/preview/index.d.ts.map +1 -0
  130. package/dist/types/src/extensions/preview/preview.d.ts +39 -0
  131. package/dist/types/src/extensions/preview/preview.d.ts.map +1 -0
  132. package/dist/types/src/extensions/selection.d.ts.map +1 -1
  133. package/dist/types/src/extensions/typewriter.d.ts.map +1 -1
  134. package/dist/types/src/hooks/index.d.ts +0 -1
  135. package/dist/types/src/hooks/index.d.ts.map +1 -1
  136. package/dist/types/src/hooks/useTextEditor.d.ts +2 -1
  137. package/dist/types/src/hooks/useTextEditor.d.ts.map +1 -1
  138. package/dist/types/src/stories/Command.stories.d.ts +7 -0
  139. package/dist/types/src/stories/Command.stories.d.ts.map +1 -0
  140. package/dist/types/src/stories/Comments.stories.d.ts +13 -0
  141. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -0
  142. package/dist/types/src/stories/EditorToolbar.stories.d.ts +12 -0
  143. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -0
  144. package/dist/types/src/stories/Experimental.stories.d.ts +16 -0
  145. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -0
  146. package/dist/types/src/stories/Markdown.stories.d.ts +46 -0
  147. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -0
  148. package/dist/types/src/stories/Outliner.stories.d.ts +26 -0
  149. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -0
  150. package/dist/types/src/stories/Preview.stories.d.ts +10 -0
  151. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -0
  152. package/dist/types/src/stories/TextEditor.stories.d.ts +55 -0
  153. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -0
  154. package/dist/types/src/stories/util.d.ts +53 -0
  155. package/dist/types/src/stories/util.d.ts.map +1 -0
  156. package/dist/types/src/styles/theme.d.ts.map +1 -1
  157. package/dist/types/src/styles/tokens.d.ts.map +1 -1
  158. package/dist/types/src/testing/index.d.ts +2 -0
  159. package/dist/types/src/testing/index.d.ts.map +1 -0
  160. package/dist/types/src/testing/util.d.ts +2 -0
  161. package/dist/types/src/testing/util.d.ts.map +1 -0
  162. package/dist/types/src/types.d.ts +5 -0
  163. package/dist/types/src/types.d.ts.map +1 -1
  164. package/dist/types/src/util/cursor.d.ts.map +1 -1
  165. package/dist/types/src/util/debug.d.ts.map +1 -1
  166. package/dist/types/src/util/dom.d.ts.map +1 -1
  167. package/dist/types/src/util/facet.d.ts.map +1 -1
  168. package/dist/types/src/util/react.d.ts +6 -1
  169. package/dist/types/src/util/react.d.ts.map +1 -1
  170. package/dist/types/tsconfig.tsbuildinfo +1 -1
  171. package/package.json +46 -30
  172. package/src/components/EditorToolbar/EditorToolbar.tsx +95 -72
  173. package/src/components/EditorToolbar/blocks.ts +27 -6
  174. package/src/components/EditorToolbar/formatting.ts +34 -7
  175. package/src/components/EditorToolbar/headings.ts +9 -8
  176. package/src/components/EditorToolbar/image.ts +16 -0
  177. package/src/components/EditorToolbar/index.ts +7 -1
  178. package/src/components/EditorToolbar/lists.ts +26 -7
  179. package/src/components/EditorToolbar/search.ts +19 -0
  180. package/src/components/EditorToolbar/util.ts +19 -20
  181. package/src/components/EditorToolbar/{viewMode.ts → view-mode.ts} +9 -8
  182. package/src/components/Popover/RefDropdownMenu.tsx +77 -0
  183. package/src/components/Popover/RefPopover.tsx +75 -0
  184. package/src/components/Popover/index.ts +6 -0
  185. package/src/components/index.ts +1 -0
  186. package/src/defaults.ts +12 -13
  187. package/src/extensions/annotations.ts +41 -64
  188. package/src/extensions/autocomplete.ts +5 -6
  189. package/src/extensions/automerge/automerge.stories.tsx +13 -24
  190. package/src/extensions/automerge/automerge.test.tsx +6 -5
  191. package/src/extensions/automerge/automerge.ts +2 -2
  192. package/src/extensions/automerge/defs.ts +1 -2
  193. package/src/extensions/automerge/sync.ts +7 -7
  194. package/src/extensions/automerge/update-automerge.ts +1 -1
  195. package/src/extensions/automerge/update-codemirror.ts +3 -4
  196. package/src/extensions/awareness/awareness-provider.ts +4 -4
  197. package/src/extensions/awareness/awareness.ts +7 -7
  198. package/src/extensions/blast.ts +9 -9
  199. package/src/extensions/command/action.ts +49 -0
  200. package/src/extensions/command/command.ts +7 -27
  201. package/src/extensions/command/hint.ts +36 -33
  202. package/src/extensions/command/index.ts +3 -0
  203. package/src/extensions/command/menu.ts +79 -51
  204. package/src/extensions/command/state.ts +41 -61
  205. package/src/extensions/command/typeahead.ts +116 -0
  206. package/src/extensions/comments.ts +11 -76
  207. package/src/extensions/factories.ts +13 -0
  208. package/src/extensions/folding.tsx +1 -1
  209. package/src/extensions/index.ts +3 -0
  210. package/src/extensions/json.ts +56 -0
  211. package/src/extensions/markdown/bundle.ts +13 -9
  212. package/src/extensions/markdown/changes.ts +3 -2
  213. package/src/extensions/markdown/decorate.ts +19 -17
  214. package/src/extensions/markdown/formatting.ts +6 -6
  215. package/src/extensions/markdown/image.ts +14 -13
  216. package/src/extensions/markdown/index.ts +1 -1
  217. package/src/extensions/markdown/link.ts +33 -24
  218. package/src/extensions/markdown/styles.ts +4 -3
  219. package/src/extensions/markdown/table.ts +3 -3
  220. package/src/extensions/modes.ts +5 -6
  221. package/src/extensions/outliner/commands.ts +270 -0
  222. package/src/extensions/outliner/editor.test.ts +33 -0
  223. package/src/extensions/outliner/editor.ts +184 -0
  224. package/src/extensions/outliner/index.ts +7 -0
  225. package/src/extensions/outliner/outliner.test.ts +99 -0
  226. package/src/extensions/outliner/outliner.ts +168 -0
  227. package/src/extensions/outliner/selection.ts +50 -0
  228. package/src/extensions/outliner/tree.test.ts +164 -0
  229. package/src/extensions/outliner/tree.ts +315 -0
  230. package/src/extensions/preview/index.ts +5 -0
  231. package/src/extensions/preview/preview.ts +271 -0
  232. package/src/hooks/index.ts +0 -1
  233. package/src/hooks/useTextEditor.ts +4 -3
  234. package/src/stories/Command.stories.tsx +97 -0
  235. package/src/stories/Comments.stories.tsx +98 -0
  236. package/src/stories/EditorToolbar.stories.tsx +96 -0
  237. package/src/stories/Experimental.stories.tsx +86 -0
  238. package/src/stories/Markdown.stories.tsx +121 -0
  239. package/src/stories/Outliner.stories.tsx +108 -0
  240. package/src/stories/Preview.stories.tsx +149 -0
  241. package/src/stories/TextEditor.stories.tsx +256 -0
  242. package/src/stories/util.tsx +326 -0
  243. package/src/styles/theme.ts +15 -5
  244. package/src/styles/tokens.ts +1 -2
  245. package/src/testing/index.ts +5 -0
  246. package/src/testing/util.ts +5 -0
  247. package/src/types.ts +7 -0
  248. package/src/util/react.tsx +20 -2
  249. package/dist/types/src/InputMode.stories.d.ts +0 -57
  250. package/dist/types/src/InputMode.stories.d.ts.map +0 -1
  251. package/dist/types/src/TextEditor.stories.d.ts +0 -115
  252. package/dist/types/src/TextEditor.stories.d.ts.map +0 -1
  253. package/dist/types/src/components/EditorToolbar/comment.d.ts.map +0 -1
  254. package/dist/types/src/components/EditorToolbar/viewMode.d.ts.map +0 -1
  255. package/dist/types/src/extensions/command/preview.d.ts +0 -12
  256. package/dist/types/src/extensions/command/preview.d.ts.map +0 -1
  257. package/dist/types/src/extensions/markdown/editorAction.d.ts.map +0 -1
  258. package/dist/types/src/fragments.d.ts +0 -3
  259. package/dist/types/src/fragments.d.ts.map +0 -1
  260. package/dist/types/src/hooks/useActionHandler.d.ts +0 -4
  261. package/dist/types/src/hooks/useActionHandler.d.ts.map +0 -1
  262. package/src/InputMode.stories.tsx +0 -124
  263. package/src/TextEditor.stories.tsx +0 -856
  264. package/src/components/EditorToolbar/comment.ts +0 -23
  265. package/src/extensions/command/preview.ts +0 -79
  266. package/src/fragments.ts +0 -19
  267. package/src/hooks/useActionHandler.ts +0 -12
  268. /package/src/extensions/markdown/{editorAction.ts → action.ts} +0 -0
@@ -0,0 +1,326 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import { type Completion } from '@codemirror/autocomplete';
6
+ import { type Extension } from '@codemirror/state';
7
+ import { type EditorView } from '@codemirror/view';
8
+ import React, { type ReactNode, useEffect, useState, type FC } from 'react';
9
+
10
+ import { Expando } from '@dxos/echo-schema';
11
+ import { PublicKey } from '@dxos/keys';
12
+ import { live } from '@dxos/live-object';
13
+ import { faker } from '@dxos/random';
14
+ import { createDocAccessor, createObject } from '@dxos/react-client/echo';
15
+ import { useThemeContext, Icon } from '@dxos/react-ui';
16
+ import { JsonFilter } from '@dxos/react-ui-syntax-highlighter';
17
+ import { mx } from '@dxos/react-ui-theme';
18
+
19
+ import { editorSlots, editorGutter } from '../defaults';
20
+ import {
21
+ type DebugNode,
22
+ type EditorSelectionState,
23
+ createDataExtensions,
24
+ createBasicExtensions,
25
+ createMarkdownExtensions,
26
+ createThemeExtensions,
27
+ decorateMarkdown,
28
+ debugTree,
29
+ folding,
30
+ formattingKeymap,
31
+ image,
32
+ linkTooltip,
33
+ table,
34
+ type ThemeExtensionsOptions,
35
+ } from '../extensions';
36
+ import { useTextEditor, type UseTextEditorProps } from '../hooks';
37
+ import { str } from '../testing';
38
+ import { createRenderer } from '../util';
39
+
40
+ export const num = () => faker.number.int({ min: 0, max: 9999 }).toLocaleString();
41
+
42
+ export const img = '![dxos](https://dxos.network/dxos-logotype-blue.png)';
43
+
44
+ export const code = str(
45
+ '// Code',
46
+ 'const Component = () => {',
47
+ ' const x = 100;',
48
+ '',
49
+ ' return () => <div>Test</div>;',
50
+ '};',
51
+ );
52
+
53
+ // Content blocks for stories
54
+ export const content = {
55
+ tasks: str(
56
+ //
57
+ '### TaskList',
58
+ '',
59
+ `- [x] ${faker.lorem.sentences()}`,
60
+ `- [ ] ${faker.lorem.sentences()}`,
61
+ ` - [ ] ${faker.lorem.sentences()}`,
62
+ ` - [ ] ${faker.lorem.sentences()}`,
63
+ ` - [x] ${faker.lorem.sentences()}`,
64
+ '',
65
+ ),
66
+
67
+ bullets: str(
68
+ //
69
+ '### BulletList',
70
+ '',
71
+ `- ${faker.lorem.sentences()}`,
72
+ `- ${faker.lorem.sentences()}`,
73
+ ` - ${faker.lorem.sentences()}`,
74
+ ` - ${faker.lorem.sentences()}`,
75
+ `- ${faker.lorem.sentences()}`,
76
+ '',
77
+ ),
78
+
79
+ numbered: str(
80
+ //
81
+ '### OrderedList (part 1)',
82
+ '',
83
+ `1. ${faker.lorem.sentences()}`,
84
+ `1. ${faker.lorem.sentences()}`,
85
+ `1. ${faker.lorem.sentences()}`,
86
+ ` 1. ${faker.lorem.sentences()}`,
87
+ ` 1. ${faker.lorem.sentences()}`,
88
+ ` 1. ${faker.lorem.sentences()}`,
89
+ `1. ${faker.lorem.sentences()}`,
90
+ '',
91
+ '### OrderedList (part 2)',
92
+ '',
93
+ `1. ${faker.lorem.sentences()}`,
94
+ '',
95
+ ),
96
+
97
+ typescript: code,
98
+
99
+ codeblocks: str('### Code', '', '```bash', '$ ls -las', '```', '', '```tsx', code, '```', ''),
100
+
101
+ comment: str('<!--', 'A comment', '-->', '', 'No comment.', 'Partial comment. <!-- comment. -->'),
102
+
103
+ links: str(
104
+ '### Links',
105
+ '',
106
+ 'This is a naked link https://dxos.org within a sentence.',
107
+ '',
108
+ 'Take a look at [DXOS](https://dxos.org) and how to [get started](https://docs.dxos.org/guide/getting-started.html).',
109
+ '',
110
+ 'This is all about https://dxos.org and related technologies.',
111
+ '',
112
+ ),
113
+
114
+ table: str(
115
+ '### Tables',
116
+ '',
117
+ `| ${faker.lorem.word().padStart(12)} | ${faker.lorem.word().padStart(12)} | ${faker.lorem.word().padStart(12)} |`,
118
+ `|-${''.padStart(12, '-')}-|-${''.padStart(12, '-')}-|-${''.padStart(12, '-')}-|`,
119
+ `| ${num().padStart(12)} | ${num().padStart(12)} | ${num().padStart(12)} |`,
120
+ `| ${num().padStart(12)} | ${num().padStart(12)} | ${num().padStart(12)} |`,
121
+ `| ${num().padStart(12)} | ${num().padStart(12)} | ${num().padStart(12)} |`,
122
+ '',
123
+ ),
124
+
125
+ image: str('### Image', '', img),
126
+
127
+ headings: str(
128
+ ...[1, 2, 3, 4, 5, 6].map((level) => ['#'.repeat(level) + ` Heading ${level}`, faker.lorem.sentences(), '']).flat(),
129
+ ),
130
+
131
+ formatting: str('### Formatting', '', 'This this is **bold**, ~~strikethrough~~, _italic_, and `f(INLINE)`.', ''),
132
+
133
+ blockquotes: str(
134
+ '### Blockquotes',
135
+ '',
136
+ '> This is a block quote.',
137
+ '',
138
+ '> This is a long wrapping block quote. Neque reiciendis ullam quae error labore sit, at, et, nulla, aut at nostrum omnis quas nostrum, at consectetur vitae eos asperiores non omnis ullam in beatae at vitae deserunt asperiores sapiente.',
139
+ '',
140
+ '> This is ...',
141
+ '... a multi-line ...',
142
+ 'block quote.',
143
+ '',
144
+ ),
145
+
146
+ paragraphs: str(...faker.helpers.multiple(() => [faker.lorem.paragraph(), ''], { count: 3 }).flat()),
147
+
148
+ footer: str('', '', '', '', ''),
149
+ };
150
+
151
+ // Combined text for stories
152
+ export const text = str(
153
+ '# Markdown',
154
+ 'Composer Markdown Editor',
155
+ '',
156
+
157
+ '---',
158
+ '## Basics',
159
+ content.blockquotes,
160
+ content.formatting,
161
+ content.links,
162
+
163
+ '---',
164
+ '## Lists',
165
+ content.bullets,
166
+ content.tasks,
167
+ content.numbered,
168
+
169
+ '---',
170
+ '## Misc',
171
+ content.codeblocks,
172
+ content.table,
173
+ content.image,
174
+ content.footer,
175
+ '=== LAST LINE ===',
176
+ );
177
+
178
+ // Shared links for autocomplete
179
+ export const links: Completion[] = [
180
+ { label: 'DXOS', apply: '[DXOS](https://dxos.org)' },
181
+ { label: 'GitHub', apply: '[DXOS GitHub](https://github.com/dxos)' },
182
+ { label: 'Automerge', apply: '[Automerge](https://automerge.org/)' },
183
+ { label: 'IPFS', apply: '[Protocol Labs](https://docs.ipfs.tech)' },
184
+ { label: 'StackEdit', apply: '[StackEdit](https://stackedit.io/app)' },
185
+ ];
186
+
187
+ export const names = ['adam', 'alice', 'alison', 'bob', 'carol', 'charlie', 'sayuri', 'shoko'];
188
+
189
+ const hover =
190
+ 'rounded-sm text-baseText text-primary-600 hover:text-primary-500 dark:text-primary-300 hover:dark:text-primary-200';
191
+
192
+ const LinkTooltip: FC<{ url: string }> = ({ url }) => {
193
+ const web = new URL(url);
194
+ return (
195
+ <a href={url} target='_blank' rel='noreferrer' className={mx(hover, 'flex items-center gap-2')}>
196
+ {web.origin}
197
+ <Icon icon='ph--arrow-square-out--regular' size={4} />
198
+ </a>
199
+ );
200
+ };
201
+
202
+ export const renderLinkTooltip = createRenderer(LinkTooltip);
203
+
204
+ const LinkButton: FC<{ url: string }> = ({ url }) => {
205
+ return (
206
+ <a href={url} target='_blank' rel='noreferrer' className={mx(hover)}>
207
+ <Icon icon='ph--arrow-square-out--regular' size={4} classNames='inline-block mis-1 mb-[3px]' />
208
+ </a>
209
+ );
210
+ };
211
+
212
+ export const renderLinkButton = createRenderer(LinkButton);
213
+
214
+ // Shared extensions
215
+ export const defaultExtensions: Extension[] = [
216
+ decorateMarkdown({ renderLinkButton, selectionChangeDelay: 100 }),
217
+ formattingKeymap(),
218
+ linkTooltip(renderLinkTooltip),
219
+ ];
220
+
221
+ export const allExtensions: Extension[] = [
222
+ decorateMarkdown({ renderLinkButton, selectionChangeDelay: 100, numberedHeadings: { from: 2, to: 4 } }),
223
+ formattingKeymap(),
224
+ linkTooltip(renderLinkTooltip),
225
+ image(),
226
+ table(),
227
+ folding(),
228
+ ];
229
+
230
+ // Long text for scrolling stories
231
+ export const longText = faker.helpers
232
+ .multiple(() => faker.lorem.paragraph({ min: 8, max: 16 }), { count: 20 })
233
+ .join('\n\n');
234
+
235
+ export const largeWithImages = faker.helpers
236
+ .multiple(() => [faker.lorem.paragraph({ min: 12, max: 16 }), img], { count: 20 })
237
+ .flatMap((x) => x)
238
+ .join('\n\n');
239
+
240
+ export const headings = str(
241
+ ...[1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 2, 3, 3, 2, 2, 6, 1]
242
+ .map((level) => ['#'.repeat(level) + ' ' + faker.lorem.sentence(3), faker.lorem.sentences(), ''])
243
+ .flat(),
244
+ );
245
+
246
+ export const global = new Map<string, EditorSelectionState>();
247
+
248
+ // Type definitions
249
+ export type DebugMode = 'raw' | 'tree' | 'raw+tree';
250
+
251
+ export type StoryProps = {
252
+ id?: string;
253
+ debug?: DebugMode;
254
+ debugCustom?: (view: EditorView) => ReactNode;
255
+ text?: string;
256
+ readOnly?: boolean;
257
+ placeholder?: string;
258
+ lineNumbers?: boolean;
259
+ onReady?: (view: EditorView) => void;
260
+ } & Pick<UseTextEditorProps, 'scrollTo' | 'selection' | 'extensions'> &
261
+ Pick<ThemeExtensionsOptions, 'slots'>;
262
+
263
+ // Default story component
264
+ export const EditorStory = ({
265
+ id = 'editor-' + PublicKey.random().toHex().slice(0, 8),
266
+ debug,
267
+ debugCustom,
268
+ text,
269
+ readOnly,
270
+ placeholder = 'New document.',
271
+ lineNumbers,
272
+ scrollTo,
273
+ selection,
274
+ extensions,
275
+ slots = editorSlots,
276
+ onReady,
277
+ }: StoryProps) => {
278
+ const [object] = useState(createObject(live(Expando, { content: text ?? '' })));
279
+ const { themeMode } = useThemeContext();
280
+ const [tree, setTree] = useState<DebugNode>();
281
+ const { parentRef, focusAttributes, view } = useTextEditor(
282
+ () => ({
283
+ id,
284
+ initialValue: text,
285
+ extensions: [
286
+ createDataExtensions({ id, text: createDocAccessor(object, ['content']) }),
287
+ createBasicExtensions({ readOnly, placeholder, lineNumbers, scrollPastEnd: true }),
288
+ createMarkdownExtensions({ themeMode }),
289
+ createThemeExtensions({
290
+ themeMode,
291
+ syntaxHighlighting: true,
292
+ slots,
293
+ }),
294
+ editorGutter,
295
+ extensions || [],
296
+ debug ? debugTree(setTree) : [],
297
+ ],
298
+ scrollTo,
299
+ selection,
300
+ }),
301
+ [object, extensions, themeMode],
302
+ );
303
+
304
+ useEffect(() => {
305
+ if (view) {
306
+ onReady?.(view);
307
+ }
308
+ }, [view]);
309
+
310
+ return (
311
+ <div className={mx('w-full h-full grid overflow-hidden', debug && 'grid-cols-[1fr_600px]')}>
312
+ <div role='none' className='flex overflow-hidden' ref={parentRef} {...focusAttributes} />
313
+ {debug && (
314
+ <div className='grid h-full auto-rows-fr border-l border-separator divide-y divide-separator overflow-hidden'>
315
+ {view && debugCustom?.(view)}
316
+ {(debug === 'raw' || debug === 'raw+tree') && (
317
+ <pre className='p-1 text-xs text-green-800 dark:text-green-200 overflow-auto'>
318
+ {view?.state.doc.toString()}
319
+ </pre>
320
+ )}
321
+ {(debug === 'tree' || debug === 'raw+tree') && <JsonFilter data={tree} classNames='p-1 text-xs' />}
322
+ </div>
323
+ )}
324
+ </div>
325
+ );
326
+ };
@@ -119,6 +119,9 @@ export const defaultTheme: ThemeStyles = {
119
119
  '.cm-selectionBackground': {
120
120
  background: 'var(--dx-cmSelection)',
121
121
  },
122
+ '&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground': {
123
+ background: 'var(--dx-cmFocusedSelection)',
124
+ },
122
125
 
123
126
  /**
124
127
  * Search.
@@ -164,18 +167,25 @@ export const defaultTheme: ThemeStyles = {
164
167
  '.cm-tooltip.cm-tooltip-autocomplete': {
165
168
  marginTop: '4px',
166
169
  marginLeft: '-3px',
170
+ borderColor: 'var(--dx-separator)',
171
+ borderTop: 'none',
167
172
  },
168
173
  '.cm-tooltip.cm-tooltip-autocomplete > ul': {
169
174
  maxHeight: '20em',
170
175
  },
171
- '.cm-tooltip.cm-tooltip-autocomplete > ul > li': {},
172
- '.cm-tooltip.cm-tooltip-autocomplete > ul > li[aria-selected]': {},
176
+ '.cm-tooltip.cm-tooltip-autocomplete > ul > li': {
177
+ padding: '4px',
178
+ },
179
+ '.cm-tooltip.cm-tooltip-autocomplete > ul > li[aria-selected]': {
180
+ background: 'var(--dx-hoverSurface)',
181
+ },
173
182
  '.cm-tooltip.cm-tooltip-autocomplete > ul > completion-section': {
174
183
  paddingLeft: '4px !important',
175
184
  borderBottom: 'none !important',
176
185
  color: 'var(--dx-accentText)',
177
186
  },
178
- '.cm-tooltip.cm-completionInfo': {
187
+
188
+ '.cm-completionInfo': {
179
189
  width: '360px !important',
180
190
  margin: '-10px 1px 0 1px',
181
191
  padding: '8px !important',
@@ -226,7 +236,7 @@ export const defaultTheme: ThemeStyles = {
226
236
  backgroundColor: 'var(--dx-input)',
227
237
  },
228
238
  '.cm-panel input:focus, .cm-panel button:focus': {
229
- outline: '1px solid var(--dx-accentFocusIndicator)',
239
+ outline: '1px solid var(--dx-neutralFocusIndicator)',
230
240
  },
231
241
  '.cm-panel label': {
232
242
  display: 'inline-flex',
@@ -239,7 +249,7 @@ export const defaultTheme: ThemeStyles = {
239
249
  height: '8px',
240
250
  marginRight: '6px !important',
241
251
  padding: '2px !important',
242
- color: 'var(--dx-accentFocusIndicator)',
252
+ color: 'var(--dx-neutralFocusIndicator)',
243
253
  },
244
254
  '.cm-panel button': {
245
255
  '&:hover': {
@@ -2,9 +2,8 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import get from 'lodash.get';
6
-
7
5
  import { tokens } from '@dxos/react-ui-theme';
6
+ import { get } from '@dxos/util';
8
7
 
9
8
  /**
10
9
  * Returns the tailwind token value.
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2022 DXOS.org
3
+ //
4
+
5
+ export * from './util';
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export const str = (...lines: string[]) => lines.join('\n');
package/src/types.ts CHANGED
@@ -2,6 +2,8 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
+ import { type EditorView } from '@codemirror/view';
6
+
5
7
  // Runtime data structure.
6
8
  export type Range = {
7
9
  from: number;
@@ -14,3 +16,8 @@ export type Comment = {
14
16
  id: string;
15
17
  cursor?: string;
16
18
  };
19
+
20
+ /**
21
+ * Callback that renders into a DOM element within the editor.
22
+ */
23
+ export type RenderCallback<Props extends object> = (el: HTMLElement, props: Props, view: EditorView) => void;
@@ -2,12 +2,14 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import React, { type ReactNode } from 'react';
5
+ import React, { type FC, type ReactNode } from 'react';
6
6
  import { createRoot } from 'react-dom/client';
7
7
 
8
- import { ThemeProvider } from '@dxos/react-ui';
8
+ import { ThemeProvider, Tooltip } from '@dxos/react-ui';
9
9
  import { defaultTx } from '@dxos/react-ui-theme';
10
10
 
11
+ import { type RenderCallback } from '../types';
12
+
11
13
  // TODO(burdon): Factor out.
12
14
 
13
15
  export type ElementOptions = {
@@ -32,3 +34,19 @@ export const renderRoot = <T extends Element>(root: T, node: ReactNode): T => {
32
34
  createRoot(root).render(<ThemeProvider tx={defaultTx}>{node}</ThemeProvider>);
33
35
  return root;
34
36
  };
37
+
38
+ /**
39
+ * Utility to create a renderer for a React component.
40
+ */
41
+ export const createRenderer =
42
+ <Props extends object>(Component: FC<Props>): RenderCallback<Props> =>
43
+ (el, props) => {
44
+ renderRoot(
45
+ el,
46
+ <ThemeProvider tx={defaultTx}>
47
+ <Tooltip.Provider>
48
+ <Component {...props} />
49
+ </Tooltip.Provider>
50
+ </ThemeProvider>,
51
+ );
52
+ };
@@ -1,57 +0,0 @@
1
- import '@dxos-theme';
2
- import React from 'react';
3
- import { type UseTextEditorProps } from './hooks';
4
- type StoryProps = {
5
- placeholder?: string;
6
- readOnly?: boolean;
7
- } & UseTextEditorProps;
8
- export declare const Default: {
9
- render: () => React.JSX.Element;
10
- };
11
- export declare const Markdown: {
12
- args: {
13
- autoFocus: boolean;
14
- placeholder: string;
15
- initialValue: string;
16
- };
17
- };
18
- declare const _default: {
19
- title: string;
20
- render: ({ autoFocus, initialValue, placeholder, readOnly }: StoryProps) => React.JSX.Element;
21
- decorators: import("@storybook/react").Decorator[];
22
- parameters: {
23
- translations: {
24
- 'en-US': {
25
- "react-ui-editor": {
26
- 'strong label': string;
27
- 'emphasis label': string;
28
- 'strikethrough label': string;
29
- 'code label': string;
30
- 'link label': string;
31
- 'list-bullet label': string;
32
- 'list-ordered label': string;
33
- 'list-task label': string;
34
- 'blockquote label': string;
35
- 'codeblock label': string;
36
- 'comment label': string;
37
- 'selection overlaps existing comment label': string;
38
- 'select text to comment label': string;
39
- 'image label': string;
40
- 'heading label': string;
41
- 'table label': string;
42
- 'heading level label_zero': string;
43
- 'heading level label_one': string;
44
- 'heading level label_other': string;
45
- 'view mode label': string;
46
- 'preview mode label': string;
47
- 'readonly mode label': string;
48
- 'search label': string;
49
- 'source mode label': string;
50
- };
51
- };
52
- }[];
53
- layout: string;
54
- };
55
- };
56
- export default _default;
57
- //# sourceMappingURL=InputMode.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InputMode.stories.d.ts","sourceRoot":"","sources":["../../../src/InputMode.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,KAAmB,MAAM,OAAO,CAAC;AAiBxC,OAAO,EAAmC,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGnF,KAAK,UAAU,GAAG;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,kBAAkB,CAAC;AAqEpF,eAAO,MAAM,OAAO;;CAanB,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;CAMpB,CAAC;;;iEAxFwE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0FpF,wBAKE"}
@@ -1,115 +0,0 @@
1
- import '@dxos-theme';
2
- import { type EditorView } from '@codemirror/view';
3
- import React from 'react';
4
- import { type Meta } from '@dxos/storybook-utils';
5
- import { type UseTextEditorProps } from './hooks';
6
- type DebugMode = 'raw' | 'tree' | 'raw+tree';
7
- type StoryProps = {
8
- id?: string;
9
- debug?: DebugMode;
10
- text?: string;
11
- readOnly?: boolean;
12
- placeholder?: string;
13
- lineNumbers?: boolean;
14
- onReady?: (view: EditorView) => void;
15
- } & Pick<UseTextEditorProps, 'scrollTo' | 'selection' | 'extensions'>;
16
- declare const DefaultStory: ({ id, debug, text, extensions, readOnly, placeholder, scrollTo, selection, lineNumbers, onReady, }: StoryProps) => React.JSX.Element;
17
- declare const meta: Meta<typeof DefaultStory>;
18
- export default meta;
19
- export declare const Default: {
20
- render: () => React.JSX.Element;
21
- };
22
- export declare const Everything: {
23
- render: () => React.JSX.Element;
24
- };
25
- export declare const Empty: {
26
- render: () => React.JSX.Element;
27
- };
28
- export declare const Readonly: {
29
- render: () => React.JSX.Element;
30
- };
31
- export declare const NoExtensions: {
32
- render: () => React.JSX.Element;
33
- };
34
- export declare const Vim: {
35
- render: () => React.JSX.Element;
36
- };
37
- export declare const Folding: {
38
- render: () => React.JSX.Element;
39
- };
40
- export declare const Scrolling: {
41
- render: () => React.JSX.Element;
42
- };
43
- export declare const ScrollingWithImages: {
44
- render: () => React.JSX.Element;
45
- };
46
- export declare const ScrollTo: {
47
- render: () => React.JSX.Element;
48
- };
49
- export declare const Blockquote: {
50
- render: () => React.JSX.Element;
51
- };
52
- export declare const Headings: {
53
- render: () => React.JSX.Element;
54
- };
55
- export declare const Links: {
56
- render: () => React.JSX.Element;
57
- };
58
- export declare const Image: {
59
- render: () => React.JSX.Element;
60
- };
61
- export declare const Code: {
62
- render: () => React.JSX.Element;
63
- };
64
- export declare const Lists: {
65
- render: () => React.JSX.Element;
66
- };
67
- export declare const BulletList: {
68
- render: () => React.JSX.Element;
69
- };
70
- export declare const OrderedList: {
71
- render: () => React.JSX.Element;
72
- };
73
- export declare const TaskList: {
74
- render: () => React.JSX.Element;
75
- };
76
- export declare const Table: {
77
- render: () => React.JSX.Element;
78
- };
79
- export declare const CommentedOut: {
80
- render: () => React.JSX.Element;
81
- };
82
- export declare const Typescript: {
83
- render: () => React.JSX.Element;
84
- };
85
- export declare const Autocomplete: {
86
- render: () => React.JSX.Element;
87
- };
88
- export declare const Mention: {
89
- render: () => React.JSX.Element;
90
- };
91
- export declare const Search: {
92
- render: () => React.JSX.Element;
93
- };
94
- export declare const Command: {
95
- render: () => React.JSX.Element;
96
- };
97
- export declare const Comments: {
98
- render: () => React.JSX.Element;
99
- };
100
- export declare const Annotations: {
101
- render: () => React.JSX.Element;
102
- };
103
- export declare const DND: {
104
- render: () => React.JSX.Element;
105
- };
106
- export declare const Listener: {
107
- render: () => React.JSX.Element;
108
- };
109
- export declare const Typewriter: {
110
- render: () => React.JSX.Element;
111
- };
112
- export declare const Blast: {
113
- render: () => React.JSX.Element;
114
- };
115
- //# sourceMappingURL=TextEditor.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextEditor.stories.d.ts","sourceRoot":"","sources":["../../../src/TextEditor.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAOrB,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,OAAO,KAA2D,MAAM,OAAO,CAAC;AAYhF,OAAO,EAAE,KAAK,IAAI,EAAyB,MAAM,uBAAuB,CAAC;AAiCzE,OAAO,EAAiB,KAAK,kBAAkB,EAAE,MAAM,SAAS,CAAC;AA2MjE,KAAK,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,UAAU,CAAC;AAE7C,KAAK,UAAU,GAAG;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CACtC,GAAG,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAG,WAAW,GAAG,YAAY,CAAC,CAAC;AAEtE,QAAA,MAAM,YAAY,uGAWf,UAAU,sBAsDZ,CAAC;AAEF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,YAAY,CAKnC,CAAC;AAEF,eAAe,IAAI,CAAC;AAqBpB,eAAO,MAAM,OAAO;;CAEnB,CAAC;AAMF,eAAO,MAAM,UAAU;;CAEtB,CAAC;AAMF,eAAO,MAAM,KAAK;;CAEjB,CAAC;AAMF,eAAO,MAAM,QAAQ;;CAEpB,CAAC;AAMF,eAAO,MAAM,YAAY;;CAExB,CAAC;AAMF,eAAO,MAAM,GAAG;;CAOf,CAAC;AAqBF,eAAO,MAAM,OAAO;;CAEnB,CAAC;AAEF,eAAO,MAAM,SAAS;;CAUrB,CAAC;AAEF,eAAO,MAAM,mBAAmB;;CAI/B,CAAC;AAEF,eAAO,MAAM,QAAQ;;CAepB,CAAC;AAMF,eAAO,MAAM,UAAU;;CAQtB,CAAC;AAEF,eAAO,MAAM,QAAQ;;CAIpB,CAAC;AAEF,eAAO,MAAM,KAAK;;CAIjB,CAAC;AAEF,eAAO,MAAM,KAAK;;CAEjB,CAAC;AAEF,eAAO,MAAM,IAAI;;CAEhB,CAAC;AAEF,eAAO,MAAM,KAAK;;CAOjB,CAAC;AAEF,eAAO,MAAM,UAAU;;CAEtB,CAAC;AAEF,eAAO,MAAM,WAAW;;CAEvB,CAAC;AAEF,eAAO,MAAM,QAAQ;;CAIpB,CAAC;AAEF,eAAO,MAAM,KAAK;;CAEjB,CAAC;AAMF,eAAO,MAAM,YAAY;;CAWxB,CAAC;AAMF,eAAO,MAAM,UAAU;;CAQtB,CAAC;AAMF,eAAO,MAAM,YAAY;;CAcxB,CAAC;AAMF,eAAO,MAAM,OAAO;;CAWnB,CAAC;AAMF,eAAO,MAAM,MAAM;;CAQlB,CAAC;AAMF,eAAO,MAAM,OAAO;;CA8CnB,CAAC;AAsDF,eAAO,MAAM,QAAQ;;CAsCpB,CAAC;AAMF,eAAO,MAAM,WAAW;;CAIvB,CAAC;AAMF,eAAO,MAAM,GAAG;;CAaf,CAAC;AAMF,eAAO,MAAM,QAAQ;;CAgBpB,CAAC;AAQF,eAAO,MAAM,UAAU;;CAOtB,CAAC;AAMF,eAAO,MAAM,KAAK;;CAqBjB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"comment.d.ts","sourceRoot":"","sources":["../../../../../src/components/EditorToolbar/comment.ts"],"names":[],"mappings":"AAMA,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAarE,eAAO,MAAM,aAAa,UAAW,kBAAkB;;;;;;;;;;;;;;CAGrD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"viewMode.d.ts","sourceRoot":"","sources":["../../../../../src/components/EditorToolbar/viewMode.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAG/C,OAAO,EAA+C,KAAK,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AA6B9F,eAAO,MAAM,cAAc,UAAW,kBAAkB;;;;;;;;;;;;;;CAWvD,CAAC"}
@@ -1,12 +0,0 @@
1
- import { type Extension } from '@codemirror/state';
2
- export type PreviewOptions = {
3
- onRenderPreview: (el: HTMLElement, props: {
4
- url: string;
5
- text: string;
6
- }) => void;
7
- };
8
- /**
9
- * Create image decorations.
10
- */
11
- export declare const preview: (options: PreviewOptions) => Extension;
12
- //# sourceMappingURL=preview.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preview.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/command/preview.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,SAAS,EAKf,MAAM,mBAAmB,CAAC;AAG3B,MAAM,MAAM,cAAc,GAAG;IAC3B,eAAe,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAClF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO,YAAa,cAAc,KAAG,SASjD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"editorAction.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/markdown/editorAction.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAsBhE,MAAM,MAAM,WAAW,GACnB,WAAW,GACX,YAAY,GACZ,QAAQ,GACR,WAAW,GACX,SAAS,GACT,SAAS,GACT,OAAO,GACP,UAAU,GACV,MAAM,GACN,MAAM,GACN,aAAa,GACb,cAAc,GACd,WAAW,GACX,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,eAAe,GACf,OAAO,CAAC;AAEZ,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,oBAAoB,GAAG,mBAAmB,CAAC,CAAC;AAE9E,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,mBAAmB,KAAK,IAAI,CAAC;AAE5F,eAAO,MAAM,oBAAoB,EAAE,oBAyDlC,CAAC"}
@@ -1,3 +0,0 @@
1
- export declare const stackItemContentEditorClassNames: (role?: string) => string;
2
- export declare const stackItemContentToolbarClassNames: (role?: string) => string;
3
- //# sourceMappingURL=fragments.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fragments.d.ts","sourceRoot":"","sources":["../../../src/fragments.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gCAAgC,UAAW,MAAM,WAI3D,CAAC;AAEJ,eAAO,MAAM,iCAAiC,UAAW,MAAM,WAI5D,CAAC"}