@dxos/react-ui-editor 0.3.10-next.ef70620 → 0.3.11-main.008b7c6

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 (219) hide show
  1. package/dist/lib/browser/index.mjs +2814 -1096
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/types/src/components/TextEditor/MarkdownEditor.stories.d.ts +63 -0
  5. package/dist/types/src/components/TextEditor/MarkdownEditor.stories.d.ts.map +1 -0
  6. package/dist/types/src/components/TextEditor/TextEditor.d.ts +9 -4
  7. package/dist/types/src/components/TextEditor/TextEditor.d.ts.map +1 -1
  8. package/dist/types/src/components/TextEditor/TextEditor.stories.d.ts +15 -4
  9. package/dist/types/src/components/TextEditor/TextEditor.stories.d.ts.map +1 -1
  10. package/dist/types/src/components/TextEditor/automerge.stories.d.ts +20 -0
  11. package/dist/types/src/components/TextEditor/automerge.stories.d.ts.map +1 -0
  12. package/dist/types/src/components/TextEditor/codemirror.stories.d.ts.map +1 -1
  13. package/dist/types/src/components/TextEditor/index.d.ts +1 -1
  14. package/dist/types/src/components/TextEditor/index.d.ts.map +1 -1
  15. package/dist/types/src/components/TextEditor/yjs.stories.d.ts +1 -0
  16. package/dist/types/src/components/TextEditor/yjs.stories.d.ts.map +1 -1
  17. package/dist/types/src/extensions/autocomplete.d.ts +10 -0
  18. package/dist/types/src/extensions/autocomplete.d.ts.map +1 -0
  19. package/dist/types/src/extensions/automerge/automerge.d.ts +9 -0
  20. package/dist/types/src/extensions/automerge/automerge.d.ts.map +1 -0
  21. package/dist/types/src/extensions/automerge/cursor.d.ts +5 -0
  22. package/dist/types/src/extensions/automerge/cursor.d.ts.map +1 -0
  23. package/dist/types/src/extensions/automerge/defs.d.ts +26 -0
  24. package/dist/types/src/extensions/automerge/defs.d.ts.map +1 -0
  25. package/dist/types/src/extensions/automerge/index.d.ts +3 -0
  26. package/dist/types/src/extensions/automerge/index.d.ts.map +1 -0
  27. package/dist/types/src/{automerge/automerge-plugin/PatchSemaphore.d.ts → extensions/automerge/semaphore.d.ts} +8 -5
  28. package/dist/types/src/extensions/automerge/semaphore.d.ts.map +1 -0
  29. package/dist/types/src/extensions/automerge/update-automerge.d.ts +5 -0
  30. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +1 -0
  31. package/dist/types/src/extensions/automerge/update-codemirror.d.ts +5 -0
  32. package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +1 -0
  33. package/dist/types/src/extensions/awareness.d.ts +46 -0
  34. package/dist/types/src/extensions/awareness.d.ts.map +1 -0
  35. package/dist/types/src/{components/TextEditor/extensions/basic/bundle.d.ts → extensions/basic.d.ts} +3 -2
  36. package/dist/types/src/extensions/basic.d.ts.map +1 -0
  37. package/dist/types/src/extensions/blast.d.ts +25 -0
  38. package/dist/types/src/extensions/blast.d.ts.map +1 -0
  39. package/dist/types/src/extensions/code.d.ts +2 -0
  40. package/dist/types/src/extensions/code.d.ts.map +1 -0
  41. package/dist/types/src/extensions/comments.d.ts +50 -0
  42. package/dist/types/src/extensions/comments.d.ts.map +1 -0
  43. package/dist/types/src/extensions/hr.d.ts +2 -0
  44. package/dist/types/src/extensions/hr.d.ts.map +1 -0
  45. package/dist/types/src/extensions/image.d.ts +4 -0
  46. package/dist/types/src/extensions/image.d.ts.map +1 -0
  47. package/dist/types/src/extensions/index.d.ts +19 -0
  48. package/dist/types/src/extensions/index.d.ts.map +1 -0
  49. package/dist/types/src/extensions/link.d.ts +12 -0
  50. package/dist/types/src/extensions/link.d.ts.map +1 -0
  51. package/dist/types/src/extensions/listener.d.ts +10 -0
  52. package/dist/types/src/extensions/listener.d.ts.map +1 -0
  53. package/dist/types/src/extensions/markdown/bundle.d.ts +17 -0
  54. package/dist/types/src/extensions/markdown/bundle.d.ts.map +1 -0
  55. package/dist/types/src/extensions/markdown/highlight.d.ts +36 -0
  56. package/dist/types/src/extensions/markdown/highlight.d.ts.map +1 -0
  57. package/dist/types/src/extensions/markdown/index.d.ts +3 -0
  58. package/dist/types/src/extensions/markdown/index.d.ts.map +1 -0
  59. package/dist/types/src/extensions/mention.d.ts +6 -0
  60. package/dist/types/src/extensions/mention.d.ts.map +1 -0
  61. package/dist/types/src/extensions/mermaid.d.ts +3 -0
  62. package/dist/types/src/extensions/mermaid.d.ts.map +1 -0
  63. package/dist/types/src/extensions/table.d.ts +8 -0
  64. package/dist/types/src/extensions/table.d.ts.map +1 -0
  65. package/dist/types/src/extensions/tasklist.d.ts +3 -0
  66. package/dist/types/src/extensions/tasklist.d.ts.map +1 -0
  67. package/dist/types/src/extensions/typewriter.d.ts +10 -0
  68. package/dist/types/src/extensions/typewriter.d.ts.map +1 -0
  69. package/dist/types/src/extensions/yjs/cursor.d.ts +4 -0
  70. package/dist/types/src/extensions/yjs/cursor.d.ts.map +1 -0
  71. package/dist/types/src/extensions/yjs/index.d.ts +2 -0
  72. package/dist/types/src/extensions/yjs/index.d.ts.map +1 -0
  73. package/dist/types/src/extensions/yjs/yjs.d.ts +4 -0
  74. package/dist/types/src/extensions/yjs/yjs.d.ts.map +1 -0
  75. package/dist/types/src/extensions/yjs/yjs.test.d.ts +2 -0
  76. package/dist/types/src/extensions/yjs/yjs.test.d.ts.map +1 -0
  77. package/dist/types/src/hooks/automerge.d.ts +3 -0
  78. package/dist/types/src/hooks/automerge.d.ts.map +1 -0
  79. package/dist/types/src/hooks/awareness-provider.d.ts +28 -0
  80. package/dist/types/src/hooks/awareness-provider.d.ts.map +1 -0
  81. package/dist/types/src/hooks/index.d.ts +2 -1
  82. package/dist/types/src/hooks/index.d.ts.map +1 -1
  83. package/dist/types/src/hooks/useTextModel.d.ts +23 -8
  84. package/dist/types/src/hooks/useTextModel.d.ts.map +1 -1
  85. package/dist/types/src/hooks/{yjs/space-provider.d.ts → yjs.d.ts} +8 -8
  86. package/dist/types/src/hooks/yjs.d.ts.map +1 -0
  87. package/dist/types/src/index.d.ts +3 -0
  88. package/dist/types/src/index.d.ts.map +1 -1
  89. package/dist/types/src/styles/cursors.d.ts.map +1 -0
  90. package/dist/types/src/styles/index.d.ts +1 -0
  91. package/dist/types/src/styles/index.d.ts.map +1 -1
  92. package/dist/types/src/styles/markdown.d.ts +14 -11
  93. package/dist/types/src/styles/markdown.d.ts.map +1 -1
  94. package/dist/types/src/testing/replicator.d.ts +2 -2
  95. package/dist/types/src/testing/replicator.d.ts.map +1 -1
  96. package/dist/types/src/themes/default.d.ts +17 -0
  97. package/dist/types/src/themes/default.d.ts.map +1 -0
  98. package/dist/types/src/themes/index.d.ts +2 -0
  99. package/dist/types/src/themes/index.d.ts.map +1 -0
  100. package/dist/types/src/util/cursor.d.ts +17 -0
  101. package/dist/types/src/util/cursor.d.ts.map +1 -0
  102. package/dist/types/src/util/index.d.ts +3 -0
  103. package/dist/types/src/util/index.d.ts.map +1 -0
  104. package/dist/types/src/util/util.d.ts +5 -0
  105. package/dist/types/src/util/util.d.ts.map +1 -0
  106. package/package.json +29 -33
  107. package/src/components/TextEditor/MarkdownEditor.stories.tsx +426 -0
  108. package/src/components/TextEditor/TextEditor.stories.tsx +70 -43
  109. package/src/components/TextEditor/TextEditor.tsx +98 -52
  110. package/src/{automerge → components/TextEditor}/automerge.stories.tsx +69 -7
  111. package/src/components/TextEditor/codemirror.stories.ts +3 -2
  112. package/src/components/TextEditor/index.ts +1 -1
  113. package/src/components/TextEditor/yjs.stories.tsx +1 -0
  114. package/src/extensions/autocomplete.ts +59 -0
  115. package/src/extensions/automerge/automerge.ts +94 -0
  116. package/src/extensions/automerge/cursor.ts +51 -0
  117. package/src/extensions/automerge/defs.ts +62 -0
  118. package/src/extensions/automerge/index.ts +6 -0
  119. package/src/{automerge/automerge-plugin/PatchSemaphore.ts → extensions/automerge/semaphore.ts} +24 -18
  120. package/src/{automerge/automerge-plugin/codeMirrorToAm.ts → extensions/automerge/update-automerge.ts} +8 -6
  121. package/src/{automerge/automerge-plugin/amToCodemirror.ts → extensions/automerge/update-codemirror.ts} +15 -4
  122. package/src/extensions/awareness.ts +316 -0
  123. package/src/{components/TextEditor/extensions/basic/bundle.ts → extensions/basic.ts} +8 -4
  124. package/src/extensions/blast.ts +373 -0
  125. package/src/extensions/code.ts +99 -0
  126. package/src/extensions/comments.ts +421 -0
  127. package/src/extensions/hr.ts +74 -0
  128. package/src/extensions/image.ts +69 -0
  129. package/src/extensions/index.ts +22 -0
  130. package/src/extensions/link.ts +192 -0
  131. package/src/extensions/listener.ts +35 -0
  132. package/src/extensions/markdown/bundle.ts +106 -0
  133. package/src/extensions/markdown/highlight.ts +204 -0
  134. package/src/{components/TextEditor/extensions → extensions}/markdown/index.ts +1 -1
  135. package/src/extensions/mention.ts +31 -0
  136. package/src/extensions/mermaid.ts +11 -0
  137. package/src/extensions/table.ts +132 -0
  138. package/src/extensions/tasklist.ts +121 -0
  139. package/src/extensions/typewriter.ts +68 -0
  140. package/src/extensions/yjs/cursor.ts +21 -0
  141. package/src/extensions/yjs/index.ts +5 -0
  142. package/src/extensions/yjs/yjs.test.ts +35 -0
  143. package/src/extensions/yjs/yjs.ts +16 -0
  144. package/src/hooks/automerge.ts +52 -0
  145. package/src/hooks/awareness-provider.ts +120 -0
  146. package/src/hooks/index.ts +2 -1
  147. package/src/hooks/useTextModel.ts +53 -67
  148. package/src/hooks/{yjs/space-provider.ts → yjs.ts} +71 -19
  149. package/src/index.ts +3 -0
  150. package/src/styles/index.ts +1 -0
  151. package/src/styles/markdown.ts +33 -24
  152. package/src/testing/replicator.ts +16 -21
  153. package/src/themes/default.ts +302 -0
  154. package/src/themes/index.ts +5 -0
  155. package/src/util/cursor.ts +29 -0
  156. package/src/util/index.ts +6 -0
  157. package/src/util/util.ts +18 -0
  158. package/dist/types/src/automerge/automerge-plugin/PatchSemaphore.d.ts.map +0 -1
  159. package/dist/types/src/automerge/automerge-plugin/amToCodemirror.d.ts +0 -6
  160. package/dist/types/src/automerge/automerge-plugin/amToCodemirror.d.ts.map +0 -1
  161. package/dist/types/src/automerge/automerge-plugin/codeMirrorToAm.d.ts +0 -7
  162. package/dist/types/src/automerge/automerge-plugin/codeMirrorToAm.d.ts.map +0 -1
  163. package/dist/types/src/automerge/automerge-plugin/handle.d.ts +0 -9
  164. package/dist/types/src/automerge/automerge-plugin/handle.d.ts.map +0 -1
  165. package/dist/types/src/automerge/automerge-plugin/index.d.ts +0 -3
  166. package/dist/types/src/automerge/automerge-plugin/index.d.ts.map +0 -1
  167. package/dist/types/src/automerge/automerge-plugin/plugin.d.ts +0 -26
  168. package/dist/types/src/automerge/automerge-plugin/plugin.d.ts.map +0 -1
  169. package/dist/types/src/automerge/automerge.stories.d.ts +0 -9
  170. package/dist/types/src/automerge/automerge.stories.d.ts.map +0 -1
  171. package/dist/types/src/components/TextEditor/extensions/basic/bundle.d.ts.map +0 -1
  172. package/dist/types/src/components/TextEditor/extensions/basic/index.d.ts +0 -3
  173. package/dist/types/src/components/TextEditor/extensions/basic/index.d.ts.map +0 -1
  174. package/dist/types/src/components/TextEditor/extensions/basic/theme.d.ts +0 -10
  175. package/dist/types/src/components/TextEditor/extensions/basic/theme.d.ts.map +0 -1
  176. package/dist/types/src/components/TextEditor/extensions/change.d.ts +0 -7
  177. package/dist/types/src/components/TextEditor/extensions/change.d.ts.map +0 -1
  178. package/dist/types/src/components/TextEditor/extensions/hyperlink/hyperlinkDecoration.d.ts +0 -11
  179. package/dist/types/src/components/TextEditor/extensions/hyperlink/hyperlinkDecoration.d.ts.map +0 -1
  180. package/dist/types/src/components/TextEditor/extensions/hyperlink/hyperlinkTooltip.d.ts +0 -8
  181. package/dist/types/src/components/TextEditor/extensions/hyperlink/hyperlinkTooltip.d.ts.map +0 -1
  182. package/dist/types/src/components/TextEditor/extensions/hyperlink/hyperlinkWidget.d.ts +0 -10
  183. package/dist/types/src/components/TextEditor/extensions/hyperlink/hyperlinkWidget.d.ts.map +0 -1
  184. package/dist/types/src/components/TextEditor/extensions/hyperlink/index.d.ts +0 -4
  185. package/dist/types/src/components/TextEditor/extensions/hyperlink/index.d.ts.map +0 -1
  186. package/dist/types/src/components/TextEditor/extensions/index.d.ts +0 -5
  187. package/dist/types/src/components/TextEditor/extensions/index.d.ts.map +0 -1
  188. package/dist/types/src/components/TextEditor/extensions/markdown/bundle.d.ts +0 -8
  189. package/dist/types/src/components/TextEditor/extensions/markdown/bundle.d.ts.map +0 -1
  190. package/dist/types/src/components/TextEditor/extensions/markdown/index.d.ts +0 -3
  191. package/dist/types/src/components/TextEditor/extensions/markdown/index.d.ts.map +0 -1
  192. package/dist/types/src/components/TextEditor/extensions/markdown/tags.d.ts +0 -17
  193. package/dist/types/src/components/TextEditor/extensions/markdown/tags.d.ts.map +0 -1
  194. package/dist/types/src/components/TextEditor/extensions/markdown/theme.d.ts +0 -21
  195. package/dist/types/src/components/TextEditor/extensions/markdown/theme.d.ts.map +0 -1
  196. package/dist/types/src/hooks/useCollaboration.d.ts +0 -9
  197. package/dist/types/src/hooks/useCollaboration.d.ts.map +0 -1
  198. package/dist/types/src/hooks/yjs/cursors.d.ts.map +0 -1
  199. package/dist/types/src/hooks/yjs/index.d.ts +0 -3
  200. package/dist/types/src/hooks/yjs/index.d.ts.map +0 -1
  201. package/dist/types/src/hooks/yjs/space-provider.d.ts.map +0 -1
  202. package/src/automerge/automerge-plugin/handle.ts +0 -14
  203. package/src/automerge/automerge-plugin/index.ts +0 -6
  204. package/src/automerge/automerge-plugin/plugin.ts +0 -133
  205. package/src/components/TextEditor/extensions/basic/index.ts +0 -6
  206. package/src/components/TextEditor/extensions/basic/theme.ts +0 -49
  207. package/src/components/TextEditor/extensions/change.ts +0 -22
  208. package/src/components/TextEditor/extensions/hyperlink/hyperlinkDecoration.ts +0 -99
  209. package/src/components/TextEditor/extensions/hyperlink/hyperlinkTooltip.tsx +0 -61
  210. package/src/components/TextEditor/extensions/hyperlink/hyperlinkWidget.tsx +0 -119
  211. package/src/components/TextEditor/extensions/hyperlink/index.ts +0 -7
  212. package/src/components/TextEditor/extensions/index.ts +0 -8
  213. package/src/components/TextEditor/extensions/markdown/bundle.ts +0 -99
  214. package/src/components/TextEditor/extensions/markdown/tags.ts +0 -38
  215. package/src/components/TextEditor/extensions/markdown/theme.ts +0 -265
  216. package/src/hooks/useCollaboration.ts +0 -45
  217. package/src/hooks/yjs/index.ts +0 -6
  218. /package/dist/types/src/{hooks/yjs → styles}/cursors.d.ts +0 -0
  219. /package/src/{hooks/yjs → styles}/cursors.ts +0 -0
@@ -0,0 +1,302 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ import get from 'lodash.get';
6
+
7
+ import { type ThemeStyles, tokens } from '../styles';
8
+
9
+ // TODO(burdon): Can we erase All of the default CM styles?
10
+ // TODO(burdon): Theme styles seem to be added multiple times?
11
+
12
+ /**
13
+ * Minimal styles.
14
+ * https://codemirror.net/examples/styling
15
+ *
16
+ * Examples:
17
+ * - https://github.com/codemirror/view/blob/main/src/theme.ts
18
+ * - https://github.com/codemirror/theme-one-dark/blob/main/src/one-dark.ts
19
+ *
20
+ * NOTE: Use one of '&', '&light', and '&dark' prefix to scope instance.
21
+ * NOTE: `light` and `dark` selectors are preprocessed by CodeMirror and can only be in the base theme.
22
+ */
23
+ export const defaultTheme: ThemeStyles = {
24
+ //
25
+ // Main layout:
26
+ // https://codemirror.net/examples/styling
27
+ //
28
+ // <div class="cm-editor [cm-focused] [generated classes]">
29
+ // <div class="cm-scroller">
30
+ // <div class="cm-gutters">
31
+ // <div class="cm-gutter [...]">
32
+ // <div class="cm-gutterElement">...</div>
33
+ // </div>
34
+ // </div>
35
+ // <div class="cm-content" role="textbox" contenteditable="true">
36
+ // <div class="cm-line"></div>
37
+ // </div>
38
+ // <div class="cm-selectionLayer">
39
+ // <div class="cm-selectionBackground"></div>
40
+ // </div>
41
+ // <div class="cm-cursorLayer">
42
+ // <div class="cm-cursor"></div>
43
+ // </div>
44
+ // </div>
45
+ // </div>
46
+ //
47
+
48
+ '&': {},
49
+ '&.cm-focused': {
50
+ outline: 'none',
51
+ },
52
+ '& .cm-scroller': {
53
+ overflow: 'visible',
54
+ fontFamily: get(tokens, 'fontFamily.mono', []).join(','),
55
+ },
56
+
57
+ '& .cm-content': {
58
+ padding: 0,
59
+ // NOTE: Base font size (otherwise defined by HTML tag, which might be different for storybook).
60
+ fontSize: '16px',
61
+ },
62
+ '&light .cm-content': {
63
+ color: get(tokens, 'extend.colors.neutral.900', 'black'),
64
+ caretColor: 'black',
65
+ },
66
+ '&dark .cm-content': {
67
+ color: get(tokens, 'extend.colors.neutral.100', 'white'),
68
+ caretColor: 'white',
69
+ },
70
+
71
+ //
72
+ // Cursor
73
+ //
74
+ '&light .cm-cursor, &light .cm-dropCursor': {
75
+ borderLeft: '2px solid black',
76
+ },
77
+ '&dark .cm-cursor, &dark .cm-dropCursor': {
78
+ borderLeft: '2px solid white',
79
+ },
80
+ '& .cm-placeholder': {
81
+ fontWeight: 100,
82
+ },
83
+
84
+ //
85
+ // line
86
+ //
87
+ '& .cm-line': {
88
+ paddingInline: 0,
89
+ },
90
+ '& .cm-activeLine': {
91
+ background: 'inherit',
92
+ },
93
+
94
+ //
95
+ // Selection
96
+ //
97
+
98
+ '&light .cm-selectionBackground': {
99
+ background: get(tokens, 'extend.colors.primary.100'),
100
+ },
101
+ '&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground': {
102
+ background: get(tokens, 'extend.colors.primary.200'),
103
+ },
104
+ '&dark .cm-selectionBackground': {
105
+ background: get(tokens, 'extend.colors.primary.700'),
106
+ },
107
+ '&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground': {
108
+ background: get(tokens, 'extend.colors.primary.600'),
109
+ },
110
+
111
+ //
112
+ // Search
113
+ //
114
+
115
+ '&light .cm-searchMatch': {
116
+ backgroundColor: get(tokens, 'extend.colors.yellow.100'),
117
+ },
118
+ '&dark .cm-searchMatch': {
119
+ backgroundColor: get(tokens, 'extend.colors.yellow.700'),
120
+ },
121
+
122
+ //
123
+ // collaboration
124
+ // TODO(burdon): Review classnames (YJS dependent?) Note: e2e tests depend on this class.
125
+ //
126
+
127
+ '&light .cm-ySelection, &light .cm-yLineSelection': {
128
+ mixBlendMode: 'multiply',
129
+ },
130
+ '&dark .cm-ySelection, &dark .cm-yLineSelection': {
131
+ mixBlendMode: 'screen',
132
+ },
133
+
134
+ '& .cm-ySelectionInfo': {
135
+ padding: '2px 4px',
136
+ marginBlockStart: '-4px',
137
+ },
138
+ '& .cm-ySelection, & .cm-selectionMatch': {
139
+ paddingBlockStart: '.15em',
140
+ paddingBlockEnd: '.15em',
141
+ },
142
+ '& .cm-ySelectionCaret': {
143
+ display: 'inline-block',
144
+ insetBlockStart: '.1em',
145
+ blockSize: '1.4em',
146
+ verticalAlign: 'top',
147
+ },
148
+ '& .cm-yLineSelection': {
149
+ margin: 0,
150
+ },
151
+
152
+ //
153
+ // link
154
+ //
155
+ '& .cm-link': {
156
+ color: get(tokens, 'extend.colors.primary.500'),
157
+ textDecorationLine: 'underline',
158
+ textDecorationThickness: '1px',
159
+ textUnderlineOffset: '2px',
160
+ borderRadius: '.125rem',
161
+ fontFamily: get(tokens, 'fontFamily.body', []).join(','),
162
+ },
163
+
164
+ //
165
+ // tooltip
166
+ //
167
+ '& .cm-tooltip': {
168
+ border: 'none',
169
+ },
170
+ '& .cm-tooltip-below': {},
171
+
172
+ //
173
+ // autocomplete
174
+ //
175
+ '& .cm-tooltip-autocomplete': {
176
+ marginTop: '4px',
177
+ marginLeft: '-3px',
178
+ },
179
+ '& .cm-tooltip-autocomplete ul li': {},
180
+ '& .cm-tooltip-autocomplete ul li[aria-selected]': {},
181
+ '& .cm-completionIcon': {
182
+ display: 'none',
183
+ },
184
+ '& .cm-completionLabel': {
185
+ fontFamily: get(tokens, 'fontFamily.body', []).join(','),
186
+ },
187
+ '& .cm-completionMatchedText': {
188
+ textDecoration: 'none',
189
+ },
190
+
191
+ //
192
+ // widgets
193
+ //
194
+ '& .cm-widgetBuffer': {
195
+ display: 'none',
196
+ height: 0,
197
+ },
198
+
199
+ //
200
+ // table
201
+ //
202
+ '& .cm-table *': {
203
+ fontFamily: `${get(tokens, 'fontFamily.mono', []).join(',')} !important`,
204
+ textDecoration: 'none !important',
205
+ },
206
+ '& .cm-table-head': {
207
+ padding: '2px 16px 2px 0px',
208
+ borderBottom: `1px solid ${get(tokens, 'extend.colors.neutral.500')}`,
209
+ fontWeight: 100,
210
+ textAlign: 'left',
211
+ color: get(tokens, 'extend.colors.neutral.500'),
212
+ },
213
+ '& .cm-table-cell': {
214
+ padding: '2px 16px 2px 0px',
215
+ },
216
+
217
+ //
218
+ // image
219
+ //
220
+ '& .cm-image': {
221
+ margin: '0.5rem 0',
222
+ },
223
+
224
+ //
225
+ // font size
226
+ // TODO(thure): This appears to be the best or only way to set selection caret heights, but it's far more verbose than it needs to be.
227
+ //
228
+ ...Object.keys(get(tokens, 'extend.fontSize', {})).reduce((acc: Record<string, any>, fontSize) => {
229
+ const height = get(tokens, ['extend', 'fontSize', fontSize, 1, 'lineHeight']);
230
+
231
+ acc[`& .text-${fontSize} + .cm-ySelectionCaret`] = { height };
232
+ acc[`& .text-${fontSize} + .cm-ySelection + .cm-ySelectionCaret`] = { height };
233
+ acc[`& .text-${fontSize} + .cm-widgetBuffer + .cm-ySelectionCaret`] = { height };
234
+ return acc;
235
+ }, {}),
236
+
237
+ /**
238
+ * Panels
239
+ * TODO(burdon): Needs styling attention (esp. dark mode).
240
+ * https://github.com/codemirror/search/blob/main/src/search.ts#L745
241
+ *
242
+ * Find/replace panel.
243
+ * <div class="cm-announced">...</div>
244
+ * <div class="cm-scroller">...</div>
245
+ * <div class="cm-panels cm-panels-bottom">
246
+ * <div class="cm-search cm-panel">
247
+ * <input class="cm-textfield" />
248
+ * <button class="cm-button">...</button>
249
+ * <label><input type="checkbox" />...</label>
250
+ * </div>
251
+ * </div
252
+ */
253
+ '& .cm-panels': {
254
+ border: `1px solid ${get(tokens, 'extend.colors.neutral.200')}`,
255
+ },
256
+ '& .cm-panel': {
257
+ background: get(tokens, 'extend.colors.neutral.50'),
258
+ fontFamily: get(tokens, 'fontFamily.body', []).join(','),
259
+ },
260
+ '& .cm-button': {
261
+ margin: '4px',
262
+ fontFamily: get(tokens, 'fontFamily.body', []).join(','),
263
+ background: get(tokens, 'extend.colors.neutral.100'),
264
+ backgroundImage: 'none',
265
+ border: 'none',
266
+ '&:hover': {
267
+ background: get(tokens, 'extend.colors.neutral.200'),
268
+ },
269
+ '&:active': {
270
+ background: get(tokens, 'extend.colors.neutral.300'),
271
+ backgroundImage: 'none',
272
+ },
273
+ },
274
+ '& .cm-panel input[type=checkbox]': {
275
+ marginRight: '0.4rem !important',
276
+ },
277
+ };
278
+
279
+ export const textTheme: ThemeStyles = {
280
+ '& .cm-scroller': {
281
+ fontFamily: get(tokens, 'fontFamily.body', []).join(','),
282
+ },
283
+ '& .cm-placeholder': {
284
+ fontFamily: get(tokens, 'fontFamily.body', []).join(','),
285
+ },
286
+ };
287
+
288
+ export const markdownTheme: ThemeStyles = {
289
+ // NOTE: Must leave base font family as is (i.e., monospace) due to fenced code blocks.
290
+ '& .cm-placeholder': {
291
+ fontFamily: get(tokens, 'fontFamily.body', []).join(','),
292
+ },
293
+ };
294
+
295
+ export const codeTheme: ThemeStyles = {
296
+ '& .cm-scroller': {
297
+ fontFamily: get(tokens, 'fontFamily.mono', []).join(','),
298
+ },
299
+ '& .cm-placeholder': {
300
+ fontFamily: get(tokens, 'fontFamily.mono', []).join(','),
301
+ },
302
+ };
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2023 DXOS.org
3
+ //
4
+
5
+ export * from './default';
@@ -0,0 +1,29 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import { Facet } from '@codemirror/state';
6
+
7
+ /**
8
+ * Converts indexes into the text document into stable peer-independent cursors.
9
+ *
10
+ * See:
11
+ * - https://automerge.org/automerge/api-docs/js/functions/next.getCursor.html
12
+ * - https://github.com/yjs/yjs?tab=readme-ov-file#relative-positions
13
+ *
14
+ * @param {assoc} number Negative values will associate the cursor with the previous character
15
+ * while positive - with the next one.
16
+ */
17
+ export interface CursorConverter {
18
+ toCursor(position: number, assoc?: -1 | 1 | undefined): string;
19
+ fromCursor(cursor: string): number;
20
+ }
21
+
22
+ const DEFAULT_CURSOR_CONVERTER: CursorConverter = {
23
+ toCursor: (position) => position.toString(),
24
+ fromCursor: (cursor) => parseInt(cursor),
25
+ };
26
+
27
+ export const CursorConverter = Facet.define<CursorConverter, CursorConverter>({
28
+ combine: (providers) => providers[0] ?? DEFAULT_CURSOR_CONVERTER,
29
+ });
@@ -0,0 +1,6 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ export * from './cursor';
6
+ export * from './util';
@@ -0,0 +1,18 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import { log } from '@dxos/log';
6
+
7
+ /**
8
+ * CodeMirror callbacks swallow errors so wrap handlers.
9
+ */
10
+ // TODO(burdon): Figure out how to systematize this.
11
+ export const callbackWrapper = <T extends Function>(fn: T): T =>
12
+ ((...args: any[]) => {
13
+ try {
14
+ return fn(...args);
15
+ } catch (error) {
16
+ log.catch(error);
17
+ }
18
+ }) as unknown as T;
@@ -1 +0,0 @@
1
- {"version":3,"file":"PatchSemaphore.d.ts","sourceRoot":"","sources":["../../../../../src/automerge/automerge-plugin/PatchSemaphore.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAI9D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,KAAK,KAAK,EAA8E,MAAM,UAAU,CAAC;AAElH,KAAK,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC/B,KAAK,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;AAE7B,KAAK,QAAQ,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,SAAS,CAAC;AAE3F,qBAAa,cAAc;IACzB,MAAM,EAAG,KAAK,CAAC;IACf,YAAY,UAAS;IACrB,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAM;gBAEjB,KAAK,CAAC,EAAE,KAAK;IAMzB,SAAS,WAAY,UAAU,QAAQ,UAAU,UA2C/C;CACH"}
@@ -1,6 +0,0 @@
1
- import { type EditorSelection } from '@codemirror/state';
2
- import { type EditorView } from '@codemirror/view';
3
- import { type Patch, type Prop } from '@dxos/automerge/automerge';
4
- declare const _default: (view: EditorView, selection: EditorSelection, target: Prop[], patches: Patch[]) => void;
5
- export default _default;
6
- //# sourceMappingURL=amToCodemirror.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"amToCodemirror.d.ts","sourceRoot":"","sources":["../../../../../src/automerge/automerge-plugin/amToCodemirror.ts"],"names":[],"mappings":"AAIA,OAAO,EAA8B,KAAK,eAAe,EAAoB,MAAM,mBAAmB,CAAC;AACvG,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAGL,KAAK,KAAK,EACV,KAAK,IAAI,EAGV,MAAM,2BAA2B,CAAC;+BAIb,UAAU,aAAa,eAAe,UAAU,IAAI,EAAE,WAAW,KAAK,EAAE;AAA9F,wBAgBE"}
@@ -1,7 +0,0 @@
1
- import { type EditorState, type Transaction } from '@codemirror/state';
2
- import { type Heads } from '@dxos/automerge/automerge';
3
- import { type IDocHandle } from './handle';
4
- import { type Field } from './plugin';
5
- declare const _default: (field: Field, handle: IDocHandle, transactions: Transaction[], state: EditorState) => Heads | undefined;
6
- export default _default;
7
- //# sourceMappingURL=codeMirrorToAm.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"codeMirrorToAm.d.ts","sourceRoot":"","sources":["../../../../../src/automerge/automerge-plugin/codeMirrorToAm.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,WAAW,EAAa,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElF,OAAO,EAAc,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,UAAU,CAAC;+CAI5B,UAAU,gBACJ,WAAW,EAAE,SACpB,WAAW,KACjB,KAAK,GAAG,SAAS;AALpB,wBA6BE"}
@@ -1,9 +0,0 @@
1
- import type * as A from '@dxos/automerge/automerge';
2
- export type IDocHandle<T = any> = {
3
- docSync(): A.Doc<T> | undefined;
4
- change(callback: A.ChangeFn<T>, options?: A.ChangeOptions<T>): void;
5
- changeAt(heads: A.Heads, callback: A.ChangeFn<T>, options?: A.ChangeOptions<T>): string[] | undefined;
6
- addListener(event: 'change', listener: () => void): void;
7
- removeListener(event: 'change', listener: () => void): void;
8
- };
9
- //# sourceMappingURL=handle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handle.d.ts","sourceRoot":"","sources":["../../../../../src/automerge/automerge-plugin/handle.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,CAAC,MAAM,2BAA2B,CAAC;AAEpD,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,GAAG,IAAI;IAChC,OAAO,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;IAChC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACpE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IAEtG,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACzD,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CAC7D,CAAC"}
@@ -1,3 +0,0 @@
1
- export { automergePlugin, type AutomergePlugin } from './plugin';
2
- export { type IDocHandle } from './handle';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/automerge/automerge-plugin/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,UAAU,CAAC;AACjE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC"}
@@ -1,26 +0,0 @@
1
- import { type EditorState, type Extension, StateEffect, StateField, type Transaction, type TransactionSpec } from '@codemirror/state';
2
- import * as automerge from '@dxos/automerge/automerge';
3
- import { type Heads, type Prop } from '@dxos/automerge/automerge';
4
- import { type IDocHandle } from './handle';
5
- export type Value = {
6
- lastHeads: Heads;
7
- path: Prop[];
8
- unreconciledTransactions: Transaction[];
9
- };
10
- type UpdateHeads = {
11
- newHeads: Heads;
12
- };
13
- export declare const effectType: import("@codemirror/state").StateEffectType<UpdateHeads>;
14
- export declare const updateHeads: (newHeads: automerge.next.Heads) => StateEffect<UpdateHeads>;
15
- export declare const getLastHeads: (state: EditorState, field: Field) => automerge.next.Heads;
16
- export declare const getPath: (state: EditorState, field: Field) => Prop[];
17
- export type Field = StateField<Value>;
18
- export type AutomergePlugin = {
19
- extension: Extension;
20
- };
21
- export declare const automergePlugin: (handle: IDocHandle, path: Prop[]) => AutomergePlugin;
22
- export declare const reconcileAnnotationType: import("@codemirror/state").AnnotationType<unknown>;
23
- export declare const isReconcileTx: (tr: Transaction) => boolean;
24
- export declare const makeReconcile: (tr: TransactionSpec) => void;
25
- export {};
26
- //# sourceMappingURL=plugin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../../src/automerge/automerge-plugin/plugin.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,SAAS,EAEd,WAAW,EACX,UAAU,EACV,KAAK,WAAW,EAChB,KAAK,eAAe,EACrB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,KAAK,SAAS,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C,MAAM,MAAM,KAAK,GAAG;IAClB,SAAS,EAAE,KAAK,CAAC;IACjB,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,wBAAwB,EAAE,WAAW,EAAE,CAAC;CACzC,CAAC;AAEF,KAAK,WAAW,GAAG;IACjB,QAAQ,EAAE,KAAK,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,UAAU,0DAAsC,CAAC;AAE9D,eAAO,MAAM,WAAW,sCAAsB,YAAY,WAAW,CAAgC,CAAC;AAEtG,eAAO,MAAM,YAAY,UAAW,WAAW,uCAAsD,CAAC;AAEtG,eAAO,MAAM,OAAO,UAAW,WAAW,mBAAiB,IAAI,EAA6B,CAAC;AAE7F,MAAM,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AAMtC,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,eAAe,WAAY,UAAU,QAAQ,IAAI,EAAE,KAAG,eA8DlE,CAAC;AAEF,eAAO,MAAM,uBAAuB,qDAA+B,CAAC;AAEpE,eAAO,MAAM,aAAa,OAAQ,WAAW,KAAG,OAAmD,CAAC;AAEpG,eAAO,MAAM,aAAa,OAAQ,eAAe,SAchD,CAAC"}
@@ -1,9 +0,0 @@
1
- import '@preact/signals-react';
2
- declare const _default: {
3
- title: string;
4
- };
5
- export default _default;
6
- export declare const AutomergeRepo: {
7
- render: () => JSX.Element;
8
- };
9
- //# sourceMappingURL=automerge.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"automerge.stories.d.ts","sourceRoot":"","sources":["../../../../src/automerge/automerge.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,uBAAuB,CAAC;;;;AA8E/B,wBAEE;AAEF,eAAO,MAAM,aAAa;;CAEzB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/TextEditor/extensions/basic/bundle.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAInD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,WAAW,6CAA8C,kBAAkB,KAAG,SAAS,EAUlE,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './bundle';
2
- export * from './theme';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/TextEditor/extensions/basic/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -1,10 +0,0 @@
1
- import { type StyleSpec } from 'style-mod';
2
- /**
3
- * Minimal styles.
4
- * NOTE: The '&' prefix denotes the CM editor root.
5
- * https://codemirror.net/examples/styling
6
- */
7
- export declare const basicTheme: {
8
- [selector: string]: StyleSpec;
9
- };
10
- //# sourceMappingURL=theme.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/TextEditor/extensions/basic/theme.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,WAAW,CAAC;AAI3C;;;;GAIG;AAEH,eAAO,MAAM,UAAU,EAAE;IACvB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAgC/B,CAAC"}
@@ -1,7 +0,0 @@
1
- import { StateField } from '@codemirror/state';
2
- /**
3
- * Based on https://github.com/codemirror/dev/issues/44#issuecomment-789093799
4
- * @param onChange
5
- */
6
- export declare const onChangeExtension: (onChange: (text: string) => void) => StateField<null>;
7
- //# sourceMappingURL=change.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"change.d.ts","sourceRoot":"","sources":["../../../../../../src/components/TextEditor/extensions/change.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C;;;GAGG;AAEH,eAAO,MAAM,iBAAiB,oBAAqB,MAAM,KAAK,IAAI,qBAU9D,CAAC"}
@@ -1,11 +0,0 @@
1
- import { type RangeSet, StateField } from '@codemirror/state';
2
- type HyperlinkDecorationConfig = {
3
- link?: boolean;
4
- };
5
- /**
6
- * Creates a state field to replace AST elements with a hyperlink widget.
7
- * https://codemirror.net/docs/ref/#state.StateField
8
- */
9
- export declare const hyperlinkDecoration: ({ link }?: HyperlinkDecorationConfig) => StateField<RangeSet<any>>;
10
- export {};
11
- //# sourceMappingURL=hyperlinkDecoration.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hyperlinkDecoration.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/TextEditor/extensions/hyperlink/hyperlinkDecoration.ts"],"names":[],"mappings":"AAMA,OAAO,EAAoB,KAAK,QAAQ,EAAmB,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AA6CnH,KAAK,yBAAyB,GAAG;IAC/B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,cAAc,yBAAyB,8BAMtE,CAAC"}
@@ -1,8 +0,0 @@
1
- export type OnHyperlinkHover = (el: Element, url: string) => void;
2
- /**
3
- * https://codemirror.net/examples/tooltip
4
- * https://codemirror.net/docs/ref/#view.hoverTooltip
5
- * https://github.com/codemirror/view/blob/main/src/tooltip.ts
6
- */
7
- export declare const createHyperlinkTooltip: (onHover: OnHyperlinkHover, regexp?: RegExp) => import("@codemirror/state").Extension;
8
- //# sourceMappingURL=hyperlinkTooltip.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hyperlinkTooltip.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/TextEditor/extensions/hyperlink/hyperlinkTooltip.tsx"],"names":[],"mappings":"AAUA,MAAM,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;AAElE;;;;GAIG;AAEH,eAAO,MAAM,sBAAsB,YAAa,gBAAgB,2DA0C5D,CAAC"}
@@ -1,10 +0,0 @@
1
- import { type Extension } from '@codemirror/state';
2
- import { type DecorationSet, MatchDecorator, ViewPlugin, type ViewUpdate } from '@codemirror/view';
3
- export declare function hyperLinkExtension(): ViewPlugin<{
4
- readonly decorator: MatchDecorator;
5
- decorations: DecorationSet;
6
- update(update: ViewUpdate): void;
7
- }>;
8
- export declare const hyperlinkStyle: Extension;
9
- export declare const hyperlinkWidget: Extension;
10
- //# sourceMappingURL=hyperlinkWidget.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hyperlinkWidget.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/TextEditor/extensions/hyperlink/hyperlinkWidget.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAEL,KAAK,aAAa,EAElB,cAAc,EACd,UAAU,EACV,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAuD1B,wBAAgB,kBAAkB;wBAGR,cAAc;;mBAOnB,UAAU;GAwB9B;AAED,eAAO,MAAM,cAAc,WAYzB,CAAC;AAEH,eAAO,MAAM,eAAe,EAAE,SAAkD,CAAC"}
@@ -1,4 +0,0 @@
1
- export * from './hyperlinkDecoration';
2
- export * from './hyperlinkTooltip';
3
- export * from './hyperlinkWidget';
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/TextEditor/extensions/hyperlink/index.ts"],"names":[],"mappings":"AAIA,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC"}
@@ -1,5 +0,0 @@
1
- export * from './basic';
2
- export * from './change';
3
- export * from './hyperlink';
4
- export * from './markdown';
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/TextEditor/extensions/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
@@ -1,8 +0,0 @@
1
- import { type Extension } from '@codemirror/state';
2
- import type { ThemeMode } from '@dxos/react-ui';
3
- export type MarkdownBundleOptions = {
4
- themeMode?: ThemeMode;
5
- placeholder?: string;
6
- };
7
- export declare const markdownBundle: ({ themeMode, placeholder: _placeholder }: MarkdownBundleOptions) => Extension[];
8
- //# sourceMappingURL=bundle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/TextEditor/extensions/markdown/bundle.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAgBhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAKhD,MAAM,MAAM,qBAAqB,GAAG;IAClC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,eAAO,MAAM,cAAc,6CAA8C,qBAAqB,KAAG,SAAS,EAuDzG,CAAC"}
@@ -1,3 +0,0 @@
1
- export * from './bundle';
2
- export * from './theme';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/TextEditor/extensions/markdown/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
@@ -1,17 +0,0 @@
1
- import { Tag } from '@lezer/highlight';
2
- import { type MarkdownConfig } from '@lezer/markdown';
3
- export declare const markdownTags: {
4
- headingMark: Tag;
5
- quoteMark: Tag;
6
- listMark: Tag;
7
- linkMark: Tag;
8
- emphasisMark: Tag;
9
- codeMark: Tag;
10
- codeText: Tag;
11
- inlineCode: Tag;
12
- url: Tag;
13
- linkReference: Tag;
14
- linkLabel: Tag;
15
- };
16
- export declare const markdownTagsExtension: MarkdownConfig;
17
- //# sourceMappingURL=tags.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tags.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/TextEditor/extensions/markdown/tags.ts"],"names":[],"mappings":"AAIA,OAAO,EAAa,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,eAAO,MAAM,YAAY;;;;;;;;;;;;CAYxB,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,cAgBnC,CAAC"}
@@ -1,21 +0,0 @@
1
- import { HighlightStyle } from '@codemirror/language';
2
- import { type ThemeStyles } from '../../../../styles';
3
- export declare const chalky = "#e5c07b";
4
- export declare const coral = "#e06c75";
5
- export declare const cyan = "#56b6c2";
6
- export declare const invalid = "#ffffff";
7
- export declare const ivory = "#abb2bf";
8
- export declare const stone = "#7d8799";
9
- export declare const malibu = "#61afef";
10
- export declare const sage = "#98c379";
11
- export declare const whiskey = "#d19a66";
12
- export declare const violet = "#c678dd";
13
- export declare const highlightBackground = "#2c313a";
14
- export declare const tooltipBackground = "#353a42";
15
- /**
16
- * NOTE: The '&' prefix denotes the CM editor root.
17
- * https://codemirror.net/examples/styling
18
- */
19
- export declare const markdownTheme: ThemeStyles;
20
- export declare const markdownHighlightStyle: HighlightStyle;
21
- //# sourceMappingURL=theme.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../../../../../src/components/TextEditor/extensions/markdown/theme.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAKtD,OAAO,EAAsD,KAAK,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG1G,eAAO,MAAM,MAAM,YAAY,CAAC;AAChC,eAAO,MAAM,KAAK,YAAY,CAAC;AAC/B,eAAO,MAAM,IAAI,YAAY,CAAC;AAC9B,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,KAAK,YAAY,CAAC;AAC/B,eAAO,MAAM,KAAK,YAAY,CAAC;AAC/B,eAAO,MAAM,MAAM,YAAY,CAAC;AAChC,eAAO,MAAM,IAAI,YAAY,CAAC;AAC9B,eAAO,MAAM,OAAO,YAAY,CAAC;AACjC,eAAO,MAAM,MAAM,YAAY,CAAC;AAEhC,eAAO,MAAM,mBAAmB,YAAY,CAAC;AAE7C,eAAO,MAAM,iBAAiB,YAAY,CAAC;AAK3C;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,WAsJ3B,CAAC;AAEF,eAAO,MAAM,sBAAsB,gBA6ElC,CAAC"}