@dxos/react-ui-editor 0.8.2-main.fbd8ed0 → 0.8.2-staging.42af850

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 (180) hide show
  1. package/dist/lib/browser/index.mjs +1828 -961
  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 +3 -64
  5. package/dist/lib/browser/testing/index.mjs.map +4 -4
  6. package/dist/lib/node/index.cjs +2008 -1138
  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 +3 -75
  10. package/dist/lib/node/testing/index.cjs.map +4 -4
  11. package/dist/lib/node-esm/index.mjs +1828 -961
  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 +3 -64
  15. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  16. package/dist/types/src/components/EditorToolbar/EditorToolbar.d.ts.map +1 -1
  17. package/dist/types/src/components/EditorToolbar/index.d.ts +1 -1
  18. package/dist/types/src/components/EditorToolbar/index.d.ts.map +1 -1
  19. package/dist/types/src/components/EditorToolbar/util.d.ts +4 -6
  20. package/dist/types/src/components/EditorToolbar/util.d.ts.map +1 -1
  21. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts +21 -0
  22. package/dist/types/src/components/Popover/RefDropdownMenu.d.ts.map +1 -0
  23. package/dist/types/src/{testing → components/Popover}/RefPopover.d.ts +1 -1
  24. package/dist/types/src/components/Popover/RefPopover.d.ts.map +1 -0
  25. package/dist/types/src/components/Popover/index.d.ts +3 -0
  26. package/dist/types/src/components/Popover/index.d.ts.map +1 -0
  27. package/dist/types/src/components/index.d.ts +1 -0
  28. package/dist/types/src/components/index.d.ts.map +1 -1
  29. package/dist/types/src/defaults.d.ts +2 -5
  30. package/dist/types/src/defaults.d.ts.map +1 -1
  31. package/dist/types/src/extensions/annotations.d.ts +4 -1
  32. package/dist/types/src/extensions/annotations.d.ts.map +1 -1
  33. package/dist/types/src/extensions/autocomplete.d.ts +1 -2
  34. package/dist/types/src/extensions/autocomplete.d.ts.map +1 -1
  35. package/dist/types/src/extensions/automerge/automerge.stories.d.ts.map +1 -1
  36. package/dist/types/src/extensions/automerge/sync.d.ts.map +1 -1
  37. package/dist/types/src/extensions/awareness/awareness-provider.d.ts.map +1 -1
  38. package/dist/types/src/extensions/awareness/awareness.d.ts.map +1 -1
  39. package/dist/types/src/extensions/command/command.d.ts +1 -2
  40. package/dist/types/src/extensions/command/command.d.ts.map +1 -1
  41. package/dist/types/src/extensions/command/hint.d.ts +14 -2
  42. package/dist/types/src/extensions/command/hint.d.ts.map +1 -1
  43. package/dist/types/src/extensions/command/index.d.ts +2 -0
  44. package/dist/types/src/extensions/command/index.d.ts.map +1 -1
  45. package/dist/types/src/extensions/command/menu.d.ts +4 -14
  46. package/dist/types/src/extensions/command/menu.d.ts.map +1 -1
  47. package/dist/types/src/extensions/command/state.d.ts +1 -1
  48. package/dist/types/src/extensions/command/state.d.ts.map +1 -1
  49. package/dist/types/src/extensions/command/typeahead.d.ts +17 -0
  50. package/dist/types/src/extensions/command/typeahead.d.ts.map +1 -0
  51. package/dist/types/src/extensions/comments.d.ts +2 -12
  52. package/dist/types/src/extensions/comments.d.ts.map +1 -1
  53. package/dist/types/src/extensions/factories.d.ts +4 -0
  54. package/dist/types/src/extensions/factories.d.ts.map +1 -1
  55. package/dist/types/src/extensions/index.d.ts +2 -0
  56. package/dist/types/src/extensions/index.d.ts.map +1 -1
  57. package/dist/types/src/extensions/json.d.ts +7 -0
  58. package/dist/types/src/extensions/json.d.ts.map +1 -0
  59. package/dist/types/src/extensions/markdown/{editorAction.d.ts → action.d.ts} +1 -1
  60. package/dist/types/src/extensions/markdown/action.d.ts.map +1 -0
  61. package/dist/types/src/extensions/markdown/bundle.d.ts +2 -1
  62. package/dist/types/src/extensions/markdown/bundle.d.ts.map +1 -1
  63. package/dist/types/src/extensions/markdown/index.d.ts +1 -2
  64. package/dist/types/src/extensions/markdown/index.d.ts.map +1 -1
  65. package/dist/types/src/extensions/markdown/styles.d.ts.map +1 -1
  66. package/dist/types/src/extensions/outliner/commands.d.ts +10 -0
  67. package/dist/types/src/extensions/outliner/commands.d.ts.map +1 -0
  68. package/dist/types/src/extensions/outliner/editor.d.ts +5 -0
  69. package/dist/types/src/extensions/outliner/editor.d.ts.map +1 -0
  70. package/dist/types/src/extensions/outliner/editor.test.d.ts +2 -0
  71. package/dist/types/src/extensions/outliner/editor.test.d.ts.map +1 -0
  72. package/dist/types/src/extensions/outliner/index.d.ts +4 -0
  73. package/dist/types/src/extensions/outliner/index.d.ts.map +1 -0
  74. package/dist/types/src/extensions/outliner/outliner.d.ts +13 -0
  75. package/dist/types/src/extensions/outliner/outliner.d.ts.map +1 -0
  76. package/dist/types/src/extensions/outliner/outliner.test.d.ts +2 -0
  77. package/dist/types/src/extensions/outliner/outliner.test.d.ts.map +1 -0
  78. package/dist/types/src/extensions/outliner/selection.d.ts +12 -0
  79. package/dist/types/src/extensions/outliner/selection.d.ts.map +1 -0
  80. package/dist/types/src/extensions/outliner/tree.d.ts +79 -0
  81. package/dist/types/src/extensions/outliner/tree.d.ts.map +1 -0
  82. package/dist/types/src/extensions/outliner/tree.test.d.ts +2 -0
  83. package/dist/types/src/extensions/outliner/tree.test.d.ts.map +1 -0
  84. package/dist/types/src/stories/Command.stories.d.ts +7 -0
  85. package/dist/types/src/stories/Command.stories.d.ts.map +1 -0
  86. package/dist/types/src/stories/{TextEditorComments.stories.d.ts → Comments.stories.d.ts} +3 -3
  87. package/dist/types/src/stories/Comments.stories.d.ts.map +1 -0
  88. package/dist/types/src/stories/EditorToolbar.stories.d.ts +12 -0
  89. package/dist/types/src/stories/EditorToolbar.stories.d.ts.map +1 -0
  90. package/dist/types/src/stories/{TextEditorSpecial.stories.d.ts → Experimental.stories.d.ts} +3 -6
  91. package/dist/types/src/stories/Experimental.stories.d.ts.map +1 -0
  92. package/dist/types/src/stories/Markdown.stories.d.ts +46 -0
  93. package/dist/types/src/stories/Markdown.stories.d.ts.map +1 -0
  94. package/dist/types/src/stories/Outliner.stories.d.ts +26 -0
  95. package/dist/types/src/stories/Outliner.stories.d.ts.map +1 -0
  96. package/dist/types/src/stories/Preview.stories.d.ts +10 -0
  97. package/dist/types/src/stories/Preview.stories.d.ts.map +1 -0
  98. package/dist/types/src/stories/{TextEditorBasic.stories.d.ts → TextEditor.stories.d.ts} +9 -39
  99. package/dist/types/src/stories/TextEditor.stories.d.ts.map +1 -0
  100. package/dist/types/src/stories/{story-utils.d.ts → util.d.ts} +6 -6
  101. package/dist/types/src/stories/util.d.ts.map +1 -0
  102. package/dist/types/src/styles/theme.d.ts.map +1 -1
  103. package/dist/types/src/styles/tokens.d.ts.map +1 -1
  104. package/dist/types/src/testing/index.d.ts +1 -1
  105. package/dist/types/src/testing/index.d.ts.map +1 -1
  106. package/dist/types/src/testing/util.d.ts +2 -0
  107. package/dist/types/src/testing/util.d.ts.map +1 -0
  108. package/package.json +40 -34
  109. package/src/components/EditorToolbar/EditorToolbar.tsx +81 -57
  110. package/src/components/EditorToolbar/index.ts +7 -1
  111. package/src/components/EditorToolbar/util.ts +3 -4
  112. package/src/components/Popover/RefDropdownMenu.tsx +77 -0
  113. package/src/{testing → components/Popover}/RefPopover.tsx +5 -4
  114. package/src/components/Popover/index.ts +6 -0
  115. package/src/components/index.ts +1 -0
  116. package/src/defaults.ts +10 -13
  117. package/src/extensions/annotations.ts +41 -64
  118. package/src/extensions/autocomplete.ts +5 -6
  119. package/src/extensions/automerge/automerge.stories.tsx +2 -7
  120. package/src/extensions/automerge/automerge.test.tsx +3 -2
  121. package/src/extensions/automerge/sync.ts +3 -3
  122. package/src/extensions/awareness/awareness-provider.ts +4 -4
  123. package/src/extensions/awareness/awareness.ts +7 -7
  124. package/src/extensions/blast.ts +9 -9
  125. package/src/extensions/command/command.ts +1 -3
  126. package/src/extensions/command/hint.ts +7 -7
  127. package/src/extensions/command/index.ts +2 -0
  128. package/src/extensions/command/menu.ts +75 -50
  129. package/src/extensions/command/typeahead.ts +116 -0
  130. package/src/extensions/comments.ts +4 -69
  131. package/src/extensions/factories.ts +13 -0
  132. package/src/extensions/index.ts +2 -0
  133. package/src/extensions/json.ts +56 -0
  134. package/src/extensions/markdown/bundle.ts +13 -9
  135. package/src/extensions/markdown/decorate.ts +7 -7
  136. package/src/extensions/markdown/image.ts +2 -2
  137. package/src/extensions/markdown/index.ts +1 -2
  138. package/src/extensions/markdown/styles.ts +2 -1
  139. package/src/extensions/markdown/table.ts +3 -3
  140. package/src/extensions/outliner/commands.ts +270 -0
  141. package/src/extensions/outliner/editor.test.ts +33 -0
  142. package/src/extensions/outliner/editor.ts +184 -0
  143. package/src/extensions/outliner/index.ts +7 -0
  144. package/src/extensions/outliner/outliner.test.ts +99 -0
  145. package/src/extensions/outliner/outliner.ts +168 -0
  146. package/src/extensions/outliner/selection.ts +50 -0
  147. package/src/extensions/outliner/tree.test.ts +164 -0
  148. package/src/extensions/outliner/tree.ts +315 -0
  149. package/src/extensions/preview/preview.ts +5 -5
  150. package/src/stories/Command.stories.tsx +97 -0
  151. package/src/stories/{TextEditorComments.stories.tsx → Comments.stories.tsx} +13 -14
  152. package/src/{components/EditorToolbar → stories}/EditorToolbar.stories.tsx +26 -20
  153. package/src/stories/{TextEditorSpecial.stories.tsx → Experimental.stories.tsx} +9 -30
  154. package/src/stories/Markdown.stories.tsx +121 -0
  155. package/src/stories/Outliner.stories.tsx +108 -0
  156. package/src/stories/{TextEditorPreview.stories.tsx → Preview.stories.tsx} +46 -136
  157. package/src/stories/TextEditor.stories.tsx +256 -0
  158. package/src/stories/{story-utils.tsx → util.tsx} +21 -22
  159. package/src/styles/theme.ts +12 -5
  160. package/src/styles/tokens.ts +1 -2
  161. package/src/testing/index.ts +1 -1
  162. package/src/testing/util.ts +5 -0
  163. package/dist/types/src/components/EditorToolbar/EditorToolbar.stories.d.ts +0 -53
  164. package/dist/types/src/components/EditorToolbar/EditorToolbar.stories.d.ts.map +0 -1
  165. package/dist/types/src/components/EditorToolbar/comment.d.ts +0 -18
  166. package/dist/types/src/components/EditorToolbar/comment.d.ts.map +0 -1
  167. package/dist/types/src/extensions/markdown/editorAction.d.ts.map +0 -1
  168. package/dist/types/src/extensions/markdown/outliner.d.ts +0 -12
  169. package/dist/types/src/extensions/markdown/outliner.d.ts.map +0 -1
  170. package/dist/types/src/stories/TextEditorBasic.stories.d.ts.map +0 -1
  171. package/dist/types/src/stories/TextEditorComments.stories.d.ts.map +0 -1
  172. package/dist/types/src/stories/TextEditorPreview.stories.d.ts +0 -13
  173. package/dist/types/src/stories/TextEditorPreview.stories.d.ts.map +0 -1
  174. package/dist/types/src/stories/TextEditorSpecial.stories.d.ts.map +0 -1
  175. package/dist/types/src/stories/story-utils.d.ts.map +0 -1
  176. package/dist/types/src/testing/RefPopover.d.ts.map +0 -1
  177. package/src/components/EditorToolbar/comment.ts +0 -30
  178. package/src/extensions/markdown/outliner.ts +0 -235
  179. package/src/stories/TextEditorBasic.stories.tsx +0 -333
  180. /package/src/extensions/markdown/{editorAction.ts → action.ts} +0 -0
@@ -1,333 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import '@dxos-theme';
6
-
7
- import { javascript } from '@codemirror/lang-javascript';
8
- import { markdown } from '@codemirror/lang-markdown';
9
- import { openSearchPanel } from '@codemirror/search';
10
- import React from 'react';
11
-
12
- import { withLayout, withTheme, type Meta } from '@dxos/storybook-utils';
13
-
14
- import {
15
- DefaultStory,
16
- defaultExtensions,
17
- allExtensions,
18
- text,
19
- str,
20
- content,
21
- longText,
22
- largeWithImages,
23
- headings,
24
- global,
25
- renderLinkButton,
26
- renderLinkTooltip,
27
- links,
28
- names,
29
- } from './story-utils';
30
- import { editorMonospace } from '../defaults';
31
- import {
32
- InputModeExtensions,
33
- selectionState,
34
- decorateMarkdown,
35
- folding,
36
- image,
37
- linkTooltip,
38
- table,
39
- autocomplete,
40
- mention,
41
- outliner,
42
- } from '../extensions';
43
-
44
- const meta: Meta<typeof DefaultStory> = {
45
- title: 'ui/react-ui-editor/TextEditor',
46
- decorators: [withTheme, withLayout({ fullscreen: true })],
47
- render: DefaultStory,
48
- parameters: { layout: 'fullscreen' },
49
- };
50
-
51
- export default meta;
52
-
53
- //
54
- // Default
55
- //
56
-
57
- export const Default = {
58
- render: () => <DefaultStory text={text} extensions={defaultExtensions} />,
59
- };
60
-
61
- //
62
- // Everything
63
- //
64
-
65
- export const Everything = {
66
- render: () => <DefaultStory text={text} extensions={allExtensions} selection={{ anchor: 99, head: 110 }} />,
67
- };
68
-
69
- //
70
- // Empty
71
- //
72
-
73
- export const Empty = {
74
- render: () => <DefaultStory extensions={defaultExtensions} />,
75
- };
76
-
77
- //
78
- // Readonly
79
- //
80
-
81
- export const Readonly = {
82
- render: () => <DefaultStory text={text} extensions={defaultExtensions} readOnly />,
83
- };
84
-
85
- //
86
- // No Extensions
87
- //
88
-
89
- export const NoExtensions = {
90
- render: () => <DefaultStory text={text} />,
91
- };
92
-
93
- //
94
- // Vim
95
- //
96
-
97
- export const Vim = {
98
- render: () => (
99
- <DefaultStory
100
- text={str('# Vim Mode', '', 'The distant future. The year 2000.', '', content.paragraphs)}
101
- extensions={[defaultExtensions, InputModeExtensions.vim]}
102
- />
103
- ),
104
- };
105
-
106
- //
107
- // Scrolling
108
- //
109
-
110
- export const Folding = {
111
- render: () => <DefaultStory text={text} extensions={[folding()]} />,
112
- };
113
-
114
- export const Scrolling = {
115
- render: () => (
116
- <DefaultStory
117
- text={str('# Large Document', '', longText)}
118
- extensions={selectionState({
119
- setState: (id, state) => global.set(id, state),
120
- getState: (id) => global.get(id),
121
- })}
122
- />
123
- ),
124
- };
125
-
126
- export const ScrollingWithImages = {
127
- render: () => (
128
- <DefaultStory text={str('# Large Document', '', largeWithImages)} extensions={[decorateMarkdown(), image()]} />
129
- ),
130
- };
131
-
132
- export const ScrollTo = {
133
- render: () => {
134
- // NOTE: Selection won't appear if text is reformatted.
135
- const word = 'Scroll to here...';
136
- const text = str('# Scroll To', longText, '', word, '', longText);
137
- const idx = text.indexOf(word);
138
- return (
139
- <DefaultStory
140
- text={text}
141
- extensions={defaultExtensions}
142
- scrollTo={idx}
143
- selection={{ anchor: idx, head: idx + word.length }}
144
- />
145
- );
146
- },
147
- };
148
-
149
- //
150
- // Markdown
151
- //
152
-
153
- export const Blockquote = {
154
- render: () => (
155
- <DefaultStory
156
- text={str('> Blockquote', 'continuation', content.footer)}
157
- extensions={decorateMarkdown()}
158
- debug='raw'
159
- />
160
- ),
161
- };
162
-
163
- export const Headings = {
164
- render: () => (
165
- <DefaultStory text={headings} extensions={decorateMarkdown({ numberedHeadings: { from: 2, to: 4 } })} />
166
- ),
167
- };
168
-
169
- export const Links = {
170
- render: () => (
171
- <DefaultStory text={str(content.links, content.footer)} extensions={[linkTooltip(renderLinkTooltip)]} />
172
- ),
173
- };
174
-
175
- export const Image = {
176
- render: () => <DefaultStory text={str(content.image, content.footer)} extensions={[image()]} />,
177
- };
178
-
179
- export const Code = {
180
- render: () => <DefaultStory text={str(content.codeblocks, content.footer)} extensions={[decorateMarkdown()]} />,
181
- };
182
-
183
- export const Lists = {
184
- render: () => (
185
- <DefaultStory
186
- text={str(content.tasks, '', content.bullets, '', content.numbered, content.footer)}
187
- extensions={[decorateMarkdown()]}
188
- />
189
- ),
190
- };
191
-
192
- //
193
- // Bullet List
194
- //
195
-
196
- export const BulletList = {
197
- render: () => <DefaultStory text={str(content.bullets, content.footer)} extensions={[decorateMarkdown()]} />,
198
- };
199
-
200
- //
201
- // Ordered List
202
- //
203
-
204
- export const OrderedList = {
205
- render: () => <DefaultStory text={str(content.numbered, content.footer)} extensions={[decorateMarkdown()]} />,
206
- };
207
-
208
- //
209
- // Task List
210
- //
211
-
212
- export const TaskList = {
213
- render: () => (
214
- <DefaultStory text={str(content.tasks, content.footer)} extensions={[decorateMarkdown()]} debug='raw+tree' />
215
- ),
216
- };
217
-
218
- //
219
- // Outliner
220
- //
221
-
222
- export const Outliner = {
223
- render: () => (
224
- <DefaultStory
225
- // text={str(...content.tasks.split('\n').filter((line) => line.trim().startsWith('-')))}
226
- text={str(
227
- //
228
- '- [ ] A',
229
- '- [ ] B',
230
- // Continuation lines.
231
- ' ## Example',
232
- ' Continuation line belonging to B.',
233
- ' ```ts',
234
- ' const x = 100',
235
- ' ```',
236
- ' - [ ] C',
237
- ' - D Items can have links [like this](https://example.com).',
238
- )}
239
- extensions={[decorateMarkdown({ listPaddingLeft: 8 }), outliner()]}
240
- debug='raw+tree'
241
- />
242
- ),
243
- };
244
-
245
- //
246
- // Table
247
- //
248
-
249
- export const Table = {
250
- render: () => <DefaultStory text={str(content.table, content.footer)} extensions={[decorateMarkdown(), table()]} />,
251
- };
252
-
253
- //
254
- // Commented out
255
- //
256
-
257
- export const CommentedOut = {
258
- render: () => (
259
- <DefaultStory
260
- text={str('# Commented out', '', content.comment, content.footer)}
261
- extensions={[
262
- decorateMarkdown(),
263
- markdown(),
264
- // commentBlock()
265
- ]}
266
- />
267
- ),
268
- };
269
-
270
- //
271
- // Typescript
272
- //
273
-
274
- export const Typescript = {
275
- render: () => (
276
- <DefaultStory
277
- text={content.typescript}
278
- lineNumbers
279
- extensions={[editorMonospace, javascript({ typescript: true })]}
280
- />
281
- ),
282
- };
283
-
284
- //
285
- // Custom
286
- //
287
-
288
- export const Autocomplete = {
289
- render: () => (
290
- <DefaultStory
291
- text={str('# Autocomplete', '', 'Press Ctrl-Space...', content.footer)}
292
- extensions={[
293
- decorateMarkdown({ renderLinkButton }),
294
- autocomplete({
295
- onSearch: (text) => {
296
- return links.filter(({ label }) => label.toLowerCase().includes(text.toLowerCase()));
297
- },
298
- }),
299
- ]}
300
- />
301
- ),
302
- };
303
-
304
- //
305
- // Mention
306
- //
307
-
308
- export const Mention = {
309
- render: () => (
310
- <DefaultStory
311
- text={str('# Mention', '', 'Type @...', content.footer)}
312
- extensions={[
313
- mention({
314
- onSearch: (text) => names.filter((name) => name.toLowerCase().startsWith(text.toLowerCase())),
315
- }),
316
- ]}
317
- />
318
- ),
319
- };
320
-
321
- //
322
- // Search
323
- //
324
-
325
- export const Search = {
326
- render: () => (
327
- <DefaultStory
328
- text={str('# Search', text)}
329
- extensions={defaultExtensions}
330
- onReady={(view) => openSearchPanel(view)}
331
- />
332
- ),
333
- };