@dxos/react-ui-editor 0.3.11-main.bd26370 → 0.3.11-main.fbbdc2a

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 (203) hide show
  1. package/dist/lib/browser/index.mjs +1541 -1062
  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 +0 -3
  5. package/dist/types/src/components/TextEditor/MarkdownEditor.stories.d.ts.map +1 -1
  6. package/dist/types/src/components/TextEditor/TextEditor.d.ts +2 -2
  7. package/dist/types/src/components/TextEditor/TextEditor.d.ts.map +1 -1
  8. package/dist/types/src/components/TextEditor/TextEditor.stories.d.ts +3 -0
  9. package/dist/types/src/components/TextEditor/TextEditor.stories.d.ts.map +1 -1
  10. package/dist/types/src/{hooks/automerge → components/TextEditor}/automerge.stories.d.ts +6 -1
  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 +0 -2
  14. package/dist/types/src/components/TextEditor/index.d.ts.map +1 -1
  15. package/dist/types/src/{hooks/yjs → components/TextEditor}/yjs.stories.d.ts +1 -1
  16. package/dist/types/src/components/TextEditor/yjs.stories.d.ts.map +1 -0
  17. package/dist/types/src/extensions/autocomplete.d.ts.map +1 -0
  18. package/dist/types/src/extensions/automerge/automerge.d.ts +9 -0
  19. package/dist/types/src/extensions/automerge/automerge.d.ts.map +1 -0
  20. package/dist/types/src/extensions/automerge/cursor.d.ts +5 -0
  21. package/dist/types/src/extensions/automerge/cursor.d.ts.map +1 -0
  22. package/dist/types/src/extensions/automerge/defs.d.ts +26 -0
  23. package/dist/types/src/extensions/automerge/defs.d.ts.map +1 -0
  24. package/dist/types/src/extensions/automerge/index.d.ts +3 -0
  25. package/dist/types/src/extensions/automerge/index.d.ts.map +1 -0
  26. package/dist/types/src/{hooks → extensions}/automerge/semaphore.d.ts +4 -4
  27. package/dist/types/src/extensions/automerge/semaphore.d.ts.map +1 -0
  28. package/dist/types/src/extensions/automerge/update-automerge.d.ts +5 -0
  29. package/dist/types/src/extensions/automerge/update-automerge.d.ts.map +1 -0
  30. package/dist/types/src/extensions/automerge/update-codemirror.d.ts.map +1 -0
  31. package/dist/types/src/extensions/awareness.d.ts +46 -0
  32. package/dist/types/src/extensions/awareness.d.ts.map +1 -0
  33. package/dist/types/src/extensions/basic.d.ts.map +1 -0
  34. package/dist/types/src/extensions/blast.d.ts.map +1 -0
  35. package/dist/types/src/extensions/code.d.ts.map +1 -0
  36. package/dist/types/src/{components/TextEditor/extensions → extensions}/comments.d.ts +4 -2
  37. package/dist/types/src/extensions/comments.d.ts.map +1 -0
  38. package/dist/types/src/extensions/hr.d.ts.map +1 -0
  39. package/dist/types/src/extensions/image.d.ts.map +1 -0
  40. package/dist/types/src/{components/TextEditor/extensions → extensions}/index.d.ts +3 -1
  41. package/dist/types/src/extensions/index.d.ts.map +1 -0
  42. package/dist/types/src/{components/TextEditor/extensions → extensions}/link.d.ts +1 -0
  43. package/dist/types/src/extensions/link.d.ts.map +1 -0
  44. package/dist/types/src/extensions/listener.d.ts +10 -0
  45. package/dist/types/src/extensions/listener.d.ts.map +1 -0
  46. package/dist/types/src/extensions/markdown/bundle.d.ts.map +1 -0
  47. package/dist/types/src/extensions/markdown/highlight.d.ts.map +1 -0
  48. package/dist/types/src/extensions/markdown/index.d.ts.map +1 -0
  49. package/dist/types/src/extensions/mention.d.ts.map +1 -0
  50. package/dist/types/src/extensions/mermaid.d.ts.map +1 -0
  51. package/dist/types/src/extensions/table.d.ts.map +1 -0
  52. package/dist/types/src/extensions/tasklist.d.ts.map +1 -0
  53. package/dist/types/src/extensions/typewriter.d.ts.map +1 -0
  54. package/dist/types/src/extensions/yjs/cursor.d.ts +4 -0
  55. package/dist/types/src/extensions/yjs/cursor.d.ts.map +1 -0
  56. package/dist/types/src/extensions/yjs/index.d.ts +2 -0
  57. package/dist/types/src/extensions/yjs/index.d.ts.map +1 -0
  58. package/dist/types/src/extensions/yjs/yjs.d.ts +4 -0
  59. package/dist/types/src/extensions/yjs/yjs.d.ts.map +1 -0
  60. package/dist/types/src/extensions/yjs/yjs.test.d.ts.map +1 -0
  61. package/dist/types/src/hooks/automerge.d.ts +3 -0
  62. package/dist/types/src/hooks/automerge.d.ts.map +1 -0
  63. package/dist/types/src/hooks/awareness-provider.d.ts +28 -0
  64. package/dist/types/src/hooks/awareness-provider.d.ts.map +1 -0
  65. package/dist/types/src/hooks/index.d.ts +2 -0
  66. package/dist/types/src/hooks/index.d.ts.map +1 -1
  67. package/dist/types/src/hooks/useTextModel.d.ts +9 -8
  68. package/dist/types/src/hooks/useTextModel.d.ts.map +1 -1
  69. package/dist/types/src/hooks/{yjs/space-provider.d.ts → yjs.d.ts} +8 -8
  70. package/dist/types/src/hooks/yjs.d.ts.map +1 -0
  71. package/dist/types/src/index.d.ts +2 -0
  72. package/dist/types/src/index.d.ts.map +1 -1
  73. package/dist/types/src/styles/cursors.d.ts.map +1 -0
  74. package/dist/types/src/styles/index.d.ts +1 -0
  75. package/dist/types/src/styles/index.d.ts.map +1 -1
  76. package/dist/types/src/testing/replicator.d.ts +2 -2
  77. package/dist/types/src/testing/replicator.d.ts.map +1 -1
  78. package/dist/types/src/{components/TextEditor/themes → themes}/default.d.ts +1 -1
  79. package/dist/types/src/themes/default.d.ts.map +1 -0
  80. package/dist/types/src/themes/index.d.ts.map +1 -0
  81. package/dist/types/src/util/cursor.d.ts +17 -0
  82. package/dist/types/src/util/cursor.d.ts.map +1 -0
  83. package/dist/types/src/util/index.d.ts +3 -0
  84. package/dist/types/src/util/index.d.ts.map +1 -0
  85. package/dist/types/src/util/util.d.ts.map +1 -0
  86. package/package.json +22 -21
  87. package/src/components/TextEditor/MarkdownEditor.stories.tsx +11 -13
  88. package/src/components/TextEditor/TextEditor.stories.tsx +14 -1
  89. package/src/components/TextEditor/TextEditor.tsx +7 -7
  90. package/src/{hooks/automerge → components/TextEditor}/automerge.stories.tsx +66 -6
  91. package/src/components/TextEditor/codemirror.stories.ts +3 -2
  92. package/src/components/TextEditor/index.ts +0 -3
  93. package/src/{hooks/yjs → components/TextEditor}/yjs.stories.tsx +1 -1
  94. package/src/extensions/automerge/automerge.ts +94 -0
  95. package/src/extensions/automerge/cursor.ts +51 -0
  96. package/src/extensions/automerge/defs.ts +62 -0
  97. package/src/extensions/automerge/index.ts +6 -0
  98. package/src/{hooks → extensions}/automerge/semaphore.ts +14 -12
  99. package/src/{hooks → extensions}/automerge/update-automerge.ts +5 -6
  100. package/src/{hooks → extensions}/automerge/update-codemirror.ts +13 -5
  101. package/src/extensions/awareness.ts +316 -0
  102. package/src/{components/TextEditor/extensions → extensions}/code.ts +1 -1
  103. package/src/{components/TextEditor/extensions → extensions}/comments.ts +52 -19
  104. package/src/{components/TextEditor/extensions → extensions}/hr.ts +1 -1
  105. package/src/{components/TextEditor/extensions → extensions}/index.ts +3 -1
  106. package/src/{components/TextEditor/extensions → extensions}/link.ts +66 -10
  107. package/src/extensions/listener.ts +35 -0
  108. package/src/{components/TextEditor/extensions → extensions}/markdown/highlight.ts +1 -1
  109. package/src/{components/TextEditor/extensions → extensions}/typewriter.ts +1 -1
  110. package/src/extensions/yjs/cursor.ts +21 -0
  111. package/src/extensions/yjs/index.ts +5 -0
  112. package/src/{hooks → extensions}/yjs/yjs.test.ts +1 -25
  113. package/src/extensions/yjs/yjs.ts +16 -0
  114. package/src/hooks/automerge.ts +52 -0
  115. package/src/hooks/awareness-provider.ts +120 -0
  116. package/src/hooks/index.ts +2 -0
  117. package/src/hooks/useTextModel.ts +20 -93
  118. package/src/hooks/{yjs/space-provider.ts → yjs.ts} +71 -19
  119. package/src/index.ts +2 -0
  120. package/src/styles/index.ts +1 -0
  121. package/src/testing/replicator.ts +10 -15
  122. package/src/{components/TextEditor/themes → themes}/default.ts +1 -1
  123. package/src/util/cursor.ts +29 -0
  124. package/src/util/index.ts +6 -0
  125. package/dist/types/src/components/TextEditor/extensions/autocomplete.d.ts.map +0 -1
  126. package/dist/types/src/components/TextEditor/extensions/basic.d.ts.map +0 -1
  127. package/dist/types/src/components/TextEditor/extensions/blast.d.ts.map +0 -1
  128. package/dist/types/src/components/TextEditor/extensions/code.d.ts.map +0 -1
  129. package/dist/types/src/components/TextEditor/extensions/comments.d.ts.map +0 -1
  130. package/dist/types/src/components/TextEditor/extensions/hr.d.ts.map +0 -1
  131. package/dist/types/src/components/TextEditor/extensions/image.d.ts.map +0 -1
  132. package/dist/types/src/components/TextEditor/extensions/index.d.ts.map +0 -1
  133. package/dist/types/src/components/TextEditor/extensions/link.d.ts.map +0 -1
  134. package/dist/types/src/components/TextEditor/extensions/listener.d.ts +0 -9
  135. package/dist/types/src/components/TextEditor/extensions/listener.d.ts.map +0 -1
  136. package/dist/types/src/components/TextEditor/extensions/markdown/bundle.d.ts.map +0 -1
  137. package/dist/types/src/components/TextEditor/extensions/markdown/highlight.d.ts.map +0 -1
  138. package/dist/types/src/components/TextEditor/extensions/markdown/index.d.ts.map +0 -1
  139. package/dist/types/src/components/TextEditor/extensions/mention.d.ts.map +0 -1
  140. package/dist/types/src/components/TextEditor/extensions/mermaid.d.ts.map +0 -1
  141. package/dist/types/src/components/TextEditor/extensions/table.d.ts.map +0 -1
  142. package/dist/types/src/components/TextEditor/extensions/tasklist.d.ts.map +0 -1
  143. package/dist/types/src/components/TextEditor/extensions/tooltip.d.ts +0 -12
  144. package/dist/types/src/components/TextEditor/extensions/tooltip.d.ts.map +0 -1
  145. package/dist/types/src/components/TextEditor/extensions/typewriter.d.ts.map +0 -1
  146. package/dist/types/src/components/TextEditor/extensions/util.d.ts.map +0 -1
  147. package/dist/types/src/components/TextEditor/themes/default.d.ts.map +0 -1
  148. package/dist/types/src/components/TextEditor/themes/index.d.ts.map +0 -1
  149. package/dist/types/src/hooks/automerge/automerge.stories.d.ts.map +0 -1
  150. package/dist/types/src/hooks/automerge/handle.d.ts +0 -9
  151. package/dist/types/src/hooks/automerge/handle.d.ts.map +0 -1
  152. package/dist/types/src/hooks/automerge/index.d.ts +0 -3
  153. package/dist/types/src/hooks/automerge/index.d.ts.map +0 -1
  154. package/dist/types/src/hooks/automerge/plugin.d.ts +0 -26
  155. package/dist/types/src/hooks/automerge/plugin.d.ts.map +0 -1
  156. package/dist/types/src/hooks/automerge/semaphore.d.ts.map +0 -1
  157. package/dist/types/src/hooks/automerge/update-automerge.d.ts +0 -6
  158. package/dist/types/src/hooks/automerge/update-automerge.d.ts.map +0 -1
  159. package/dist/types/src/hooks/automerge/update-codemirror.d.ts.map +0 -1
  160. package/dist/types/src/hooks/yjs/cursors.d.ts.map +0 -1
  161. package/dist/types/src/hooks/yjs/index.d.ts +0 -3
  162. package/dist/types/src/hooks/yjs/index.d.ts.map +0 -1
  163. package/dist/types/src/hooks/yjs/space-provider.d.ts.map +0 -1
  164. package/dist/types/src/hooks/yjs/yjs.stories.d.ts.map +0 -1
  165. package/dist/types/src/hooks/yjs/yjs.test.d.ts.map +0 -1
  166. package/src/components/TextEditor/extensions/listener.ts +0 -23
  167. package/src/components/TextEditor/extensions/tooltip.ts +0 -61
  168. package/src/hooks/automerge/handle.ts +0 -14
  169. package/src/hooks/automerge/index.ts +0 -6
  170. package/src/hooks/automerge/plugin.ts +0 -134
  171. package/src/hooks/yjs/index.ts +0 -6
  172. /package/dist/types/src/{components/TextEditor/extensions → extensions}/autocomplete.d.ts +0 -0
  173. /package/dist/types/src/{hooks → extensions}/automerge/update-codemirror.d.ts +0 -0
  174. /package/dist/types/src/{components/TextEditor/extensions → extensions}/basic.d.ts +0 -0
  175. /package/dist/types/src/{components/TextEditor/extensions → extensions}/blast.d.ts +0 -0
  176. /package/dist/types/src/{components/TextEditor/extensions → extensions}/code.d.ts +0 -0
  177. /package/dist/types/src/{components/TextEditor/extensions → extensions}/hr.d.ts +0 -0
  178. /package/dist/types/src/{components/TextEditor/extensions → extensions}/image.d.ts +0 -0
  179. /package/dist/types/src/{components/TextEditor/extensions → extensions}/markdown/bundle.d.ts +0 -0
  180. /package/dist/types/src/{components/TextEditor/extensions → extensions}/markdown/highlight.d.ts +0 -0
  181. /package/dist/types/src/{components/TextEditor/extensions → extensions}/markdown/index.d.ts +0 -0
  182. /package/dist/types/src/{components/TextEditor/extensions → extensions}/mention.d.ts +0 -0
  183. /package/dist/types/src/{components/TextEditor/extensions → extensions}/mermaid.d.ts +0 -0
  184. /package/dist/types/src/{components/TextEditor/extensions → extensions}/table.d.ts +0 -0
  185. /package/dist/types/src/{components/TextEditor/extensions → extensions}/tasklist.d.ts +0 -0
  186. /package/dist/types/src/{components/TextEditor/extensions → extensions}/typewriter.d.ts +0 -0
  187. /package/dist/types/src/{hooks → extensions}/yjs/yjs.test.d.ts +0 -0
  188. /package/dist/types/src/{hooks/yjs → styles}/cursors.d.ts +0 -0
  189. /package/dist/types/src/{components/TextEditor/themes → themes}/index.d.ts +0 -0
  190. /package/dist/types/src/{components/TextEditor/extensions → util}/util.d.ts +0 -0
  191. /package/src/{components/TextEditor/extensions → extensions}/autocomplete.ts +0 -0
  192. /package/src/{components/TextEditor/extensions → extensions}/basic.ts +0 -0
  193. /package/src/{components/TextEditor/extensions → extensions}/blast.ts +0 -0
  194. /package/src/{components/TextEditor/extensions → extensions}/image.ts +0 -0
  195. /package/src/{components/TextEditor/extensions → extensions}/markdown/bundle.ts +0 -0
  196. /package/src/{components/TextEditor/extensions → extensions}/markdown/index.ts +0 -0
  197. /package/src/{components/TextEditor/extensions → extensions}/mention.ts +0 -0
  198. /package/src/{components/TextEditor/extensions → extensions}/mermaid.ts +0 -0
  199. /package/src/{components/TextEditor/extensions → extensions}/table.ts +0 -0
  200. /package/src/{components/TextEditor/extensions → extensions}/tasklist.ts +0 -0
  201. /package/src/{hooks/yjs → styles}/cursors.ts +0 -0
  202. /package/src/{components/TextEditor/themes → themes}/index.ts +0 -0
  203. /package/src/{components/TextEditor/extensions → util}/util.ts +0 -0
@@ -1,6 +1,7 @@
1
1
  import { type Extension } from '@codemirror/state';
2
2
  export type LinkOptions = {
3
3
  link?: boolean;
4
+ onHover?: (el: Element, url: string) => void;
4
5
  onRender?: (el: Element, url: string) => void;
5
6
  };
6
7
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../../src/extensions/link.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,SAAS,EAKf,MAAM,mBAAmB,CAAC;AAW3B,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,IAAI,aAAa,WAAW,KAAQ,SAyDhD,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type Extension } from '@codemirror/state';
2
+ export type ListenerOptions = {
3
+ onFocus?: (focused: boolean) => void;
4
+ onChange?: (text: string) => void;
5
+ };
6
+ /**
7
+ * Event listener.
8
+ */
9
+ export declare const listener: ({ onFocus, onChange }: ListenerOptions) => Extension;
10
+ //# sourceMappingURL=listener.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listener.d.ts","sourceRoot":"","sources":["../../../../src/extensions/listener.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGnD,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,0BAA2B,eAAe,KAAG,SAmBjE,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/markdown/bundle.ts"],"names":[],"mappings":"AAUA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAYhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAIhD,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;;;;;;GAOG;AAEH,eAAO,MAAM,cAAc,wDAIxB,qBAAqB,KAAG,SAAS,EA6CnC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlight.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/markdown/highlight.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAmB,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,KAAK,cAAc,EAAS,MAAM,iBAAiB,CAAC;AAgB7D;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;CAgBxB,CAAC;AAaF,eAAO,MAAM,sBAAsB,EAAE,cAAc,EAKlD,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,cAAe,OAAO,mBAgIxD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/markdown/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mention.d.ts","sourceRoot":"","sources":["../../../../src/extensions/mention.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,EAAE,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,OAAO,iBAAkB,cAAc,KAAG,SAmBtD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mermaid.d.ts","sourceRoot":"","sources":["../../../../src/extensions/mermaid.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAInD,eAAO,MAAM,OAAO,QAAO,SAE1B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../../src/extensions/table.ts"],"names":[],"mappings":"AAKA,OAAO,EAAoB,KAAK,QAAQ,EAAmB,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AASnH,MAAM,MAAM,YAAY,GAAG,EAAE,CAAC;AAE9B;;;GAGG;AACH,eAAO,MAAM,KAAK,aAAa,YAAY,8BAM1C,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasklist.d.ts","sourceRoot":"","sources":["../../../../src/extensions/tasklist.ts"],"names":[],"mappings":"AA+DA,MAAM,MAAM,eAAe,GAAG,EAAE,CAAC;AAEjC,eAAO,MAAM,QAAQ,aAAa,eAAe,4CAuDhD,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typewriter.d.ts","sourceRoot":"","sources":["../../../../src/extensions/typewriter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAKnD,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAIF;;GAEG;AACH,eAAO,MAAM,UAAU,sBAA0C,WAAW,KAAQ,SAgDnF,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as Y from 'yjs';
2
+ import { type CursorConverter } from '../../util';
3
+ export declare const cursorConverter: (text: Y.Text) => CursorConverter;
4
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/yjs/cursor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAIzB,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,eAU7C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './yjs';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/yjs/index.ts"],"names":[],"mappings":"AAIA,cAAc,OAAO,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type * as YP from 'y-protocols/awareness';
2
+ import type { YText } from '@dxos/text-model';
3
+ export declare const yjs: (content: YText, awareness?: YP.Awareness) => import("@codemirror/state").Extension[];
4
+ //# sourceMappingURL=yjs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yjs.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/yjs/yjs.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAK9C,eAAO,MAAM,GAAG,YAAa,KAAK,cAAc,GAAG,SAAS,4CAG3D,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yjs.test.d.ts","sourceRoot":"","sources":["../../../../../src/extensions/yjs/yjs.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { type EditorModel, type UseTextModelProps } from './useTextModel';
2
+ export declare const createAutomergeModel: ({ space, identity, text }: UseTextModelProps) => EditorModel;
3
+ //# sourceMappingURL=automerge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automerge.d.ts","sourceRoot":"","sources":["../../../../src/hooks/automerge.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,KAAK,WAAW,EAAc,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAItF,eAAO,MAAM,oBAAoB,8BAA+B,iBAAiB,KAAG,WAqCnF,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { Event } from '@dxos/async';
2
+ import { type Space } from '@dxos/react-client/echo';
3
+ import { type AwarenessInfo, type AwarenessPosition, type AwarenessProvider, type AwarenessState } from '../extensions';
4
+ export type AwarenessProviderParams = {
5
+ space: Space;
6
+ channel: string;
7
+ peerId: string;
8
+ info: AwarenessInfo;
9
+ };
10
+ export declare class SpaceAwarenessProvider implements AwarenessProvider {
11
+ readonly remoteStateChange: Event<void>;
12
+ private readonly _remoteStates;
13
+ private readonly _space;
14
+ private readonly _channel;
15
+ private readonly _peerId;
16
+ private readonly _info;
17
+ private _localState?;
18
+ private _postTask?;
19
+ private _ctx?;
20
+ constructor(params: AwarenessProviderParams);
21
+ open(): void;
22
+ close(): void;
23
+ update(position: AwarenessPosition | undefined): void;
24
+ getRemoteStates(): AwarenessState[];
25
+ private _handleQueryMessage;
26
+ private _handlePostMessage;
27
+ }
28
+ //# sourceMappingURL=awareness-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"awareness-provider.d.ts","sourceRoot":"","sources":["../../../../src/hooks/awareness-provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAgB,KAAK,EAAS,MAAM,aAAa,CAAC;AAIzD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGrD,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,iBAAiB,EAAE,KAAK,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAaxH,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;CACrB,CAAC;AAEF,qBAAa,sBAAuB,YAAW,iBAAiB;IAC9D,SAAgB,iBAAiB,cAAqB;IAEtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqC;IAEnE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IAEtC,OAAO,CAAC,WAAW,CAAC,CAAiB;IACrC,OAAO,CAAC,SAAS,CAAC,CAAe;IACjC,OAAO,CAAC,IAAI,CAAC,CAAU;gBAEX,MAAM,EAAE,uBAAuB;IAO3C,IAAI;IAoCJ,KAAK;IAML,MAAM,CAAC,QAAQ,EAAE,iBAAiB,GAAG,SAAS,GAAG,IAAI;IAWrD,eAAe,IAAI,cAAc,EAAE;IAInC,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,kBAAkB;CAK3B"}
@@ -1,3 +1,5 @@
1
+ export * from './automerge';
2
+ export * from './awareness-provider';
1
3
  export * from './useTextModel';
2
4
  export * from './yjs';
3
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,OAAO,CAAC"}
@@ -1,9 +1,8 @@
1
- import { type Extension, StateField } from '@codemirror/state';
2
- import type * as awarenessProtocol from 'y-protocols/awareness';
1
+ import { StateField, type Extension } from '@codemirror/state';
2
+ import type * as YP from 'y-protocols/awareness';
3
3
  import { type DocAccessor, type Space, type TextObject } from '@dxos/react-client/echo';
4
4
  import { type Identity } from '@dxos/react-client/halo';
5
5
  import type { YText, YXmlFragment } from '@dxos/text-model';
6
- type Awareness = awarenessProtocol.Awareness;
7
6
  /**
8
7
  * State field makes the model available to other extensions.
9
8
  */
@@ -18,12 +17,15 @@ export type CommentRange = {
18
17
  };
19
18
  export type EditorModel = {
20
19
  id: string;
21
- content: string | YText | YXmlFragment | DocAccessor;
22
20
  text: () => string;
23
- getCursorFromRange?: (value: Range) => string;
24
- getRangeFromCursor?: (cursor: string) => Range;
25
21
  extension?: Extension;
26
- awareness?: Awareness;
22
+ content: string | YText | YXmlFragment | DocAccessor;
23
+ /**
24
+ * @deprecated Use CursorConverter.
25
+ */
26
+ getCursorFromRange?: (value: Range) => string;
27
+ getRangeFromCursor?: (cursor: string) => Range | undefined;
28
+ awareness?: YP.Awareness;
27
29
  peer?: {
28
30
  id: string;
29
31
  name?: string;
@@ -35,5 +37,4 @@ export type UseTextModelProps = {
35
37
  text?: TextObject;
36
38
  };
37
39
  export declare const useTextModel: (props: UseTextModelProps) => EditorModel | undefined;
38
- export {};
39
40
  //# sourceMappingURL=useTextModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTextModel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useTextModel.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI/D,OAAO,KAAK,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAIhE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,UAAU,EAIhB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAO5D,KAAK,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAE7C;;GAEG;AAEH,eAAO,MAAM,UAAU,qCAGrB,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IAEX,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IAEX,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,YAAY,GAAG,WAAW,CAAC;IACrD,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IAC9C,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC;IAC/C,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,CAAC,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAGF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAIF,eAAO,MAAM,YAAY,UAAW,iBAAiB,KAAG,WAAW,GAAG,SAKrE,CAAC"}
1
+ {"version":3,"file":"useTextModel.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useTextModel.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAAqB,KAAK,WAAW,EAAE,KAAK,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC3G,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAO5D;;GAEG;AACH,eAAO,MAAM,UAAU,qCAGrB,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAGF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,SAAS,CAAC;IAGtB,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,YAAY,GAAG,WAAW,CAAC;IACrD;;OAEG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC;IAC9C,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,GAAG,SAAS,CAAC;IAE3D,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;IAEzB,IAAI,CAAC,EAAE;QACL,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;AAGF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAIF,eAAO,MAAM,YAAY,UAAW,iBAAiB,KAAG,WAAW,GAAG,SAKrE,CAAC"}
@@ -1,27 +1,27 @@
1
1
  import { Observable } from 'lib0/observable';
2
- import * as awarenessProtocol from 'y-protocols/awareness';
2
+ import * as YP from 'y-protocols/awareness';
3
3
  import { type Doc } from 'yjs';
4
4
  import { type Space } from '@dxos/react-client/echo';
5
- type Awareness = awarenessProtocol.Awareness;
5
+ import { type EditorModel, type UseTextModelProps } from './useTextModel';
6
+ export declare const createYjsModel: ({ identity, space, text }: UseTextModelProps) => EditorModel;
6
7
  /**
7
8
  * Yjs awareness provider on top of a DXOS space.
8
9
  */
9
- export declare class SpaceAwarenessProvider extends Observable<any> {
10
+ export declare class YAwarenessProvider extends Observable<any> {
10
11
  private readonly _space;
11
12
  private readonly _awareness;
12
13
  private readonly _clientId;
13
14
  private readonly _channel;
14
- constructor({ space, doc, channel, awareness }: {
15
+ constructor({ space, doc, channel, awareness, }: {
15
16
  space: Space;
16
17
  doc: Doc;
17
18
  channel: string;
18
- awareness?: Awareness;
19
+ awareness?: YP.Awareness;
19
20
  });
20
- get awareness(): Awareness;
21
+ get awareness(): YP.Awareness;
21
22
  private _handleAwarenessUpdate;
22
23
  private _handleSpaceMessage;
23
24
  private _readMessage;
24
25
  private _handleBeforeUnload;
25
26
  }
26
- export {};
27
- //# sourceMappingURL=space-provider.d.ts.map
27
+ //# sourceMappingURL=yjs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yjs.d.ts","sourceRoot":"","sources":["../../../../src/hooks/yjs.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAI/B,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAKrD,OAAO,EAAE,KAAK,WAAW,EAA0B,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGlG,eAAO,MAAM,cAAc,8BAA+B,iBAAiB,KAAG,WAyC7E,CAAC;AAOF;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,UAAU,CAAC,GAAG,CAAC;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,EACV,KAAK,EACL,GAAG,EACH,OAAO,EACP,SAAS,GACV,EAAE;QACD,KAAK,EAAE,KAAK,CAAC;QACb,GAAG,EAAE,GAAG,CAAC;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC;KAC1B;IA4BD,IAAI,SAAS,IAAI,EAAE,CAAC,SAAS,CAE5B;IAED,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,YAAY;IAoCpB,OAAO,CAAC,mBAAmB;CAG5B"}
@@ -2,5 +2,7 @@ export { TextKind } from '@dxos/protocols/proto/dxos/echo/model/text';
2
2
  export { Doc, YText, YXmlFragment } from '@dxos/text-model';
3
3
  export { type Extension } from '@codemirror/state';
4
4
  export * from './components';
5
+ export * from './extensions';
5
6
  export * from './hooks';
7
+ export * from './themes';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,4CAA4C,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,4CAA4C,CAAC;AACtE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursors.d.ts","sourceRoot":"","sources":["../../../../src/styles/cursors.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,WAAW;;;CAAsD,CAAC"}
@@ -1,3 +1,4 @@
1
+ export * from './cursors';
1
2
  export * from './markdown';
2
3
  export * from './tokens';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/styles/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/styles/index.ts"],"names":[],"mappings":"AAIA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { Observable } from 'lib0/observable';
2
- import * as awarenessProtocol from 'y-protocols/awareness';
2
+ import * as YP from 'y-protocols/awareness';
3
3
  import { Doc } from 'yjs';
4
4
  import { Event } from '@dxos/async';
5
5
  import { TextKind } from '@dxos/protocols/proto/dxos/echo/model/text';
6
6
  import { type EditorModel } from '../hooks';
7
- type Awareness = awarenessProtocol.Awareness;
7
+ type Awareness = YP.Awareness;
8
8
  /**
9
9
  * Yjs awareness provider in-memory.
10
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"replicator.d.ts","sourceRoot":"","sources":["../../../../src/testing/replicator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,iBAAiB,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,4CAA4C,CAAC;AAEtE,OAAO,EAAe,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAEzD,KAAK,SAAS,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAM7C;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,UAAU,CAAC,GAAG,CAAC;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAM;gBAEf,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAAC,GAAG,EAAE,GAAG,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE;IA+BtG,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,YAAY;IA0CpB,OAAO,CAAC,mBAAmB;CAG5B;AAED;;GAEG;AACH,qBAAa,UAAU;IAIT,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,MAAM,CAAqB;gBAEN,KAAK,EAAE,QAAQ;IAE5C,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE;IAI7B,UAAU,OAAQ,MAAM,QAAO,GAAG,KAAe,WAAW,CAoB1D;CACH;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,eAAO,MAAM,WAAW,4BAA6B,kBAAkB,KAAG,WAEzE,CAAC"}
1
+ {"version":3,"file":"replicator.d.ts","sourceRoot":"","sources":["../../../../src/testing/replicator.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE5C,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,4CAA4C,CAAC;AAEtE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,KAAK,SAAS,GAAG,EAAE,CAAC,SAAS,CAAC;AAM9B;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,UAAU,CAAC,GAAG,CAAC;IACpD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoB;IAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAM;gBAEf,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;QAAE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAAC,GAAG,EAAE,GAAG,CAAC;QAAC,SAAS,CAAC,EAAE,SAAS,CAAA;KAAE;IA4BtG,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,sBAAsB;IAS9B,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,YAAY;IA0CpB,OAAO,CAAC,mBAAmB;CAG5B;AAED;;GAEG;AACH,qBAAa,UAAU;IAIT,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHlC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,OAAO,CAAC,MAAM,CAAqB;gBAEN,KAAK,EAAE,QAAQ;IAE5C,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE;IAI7B,UAAU,OAAQ,MAAM,QAAO,GAAG,KAAe,WAAW,CAoB1D;CACH;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,CAAC,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,eAAO,MAAM,WAAW,4BAA6B,kBAAkB,KAAG,WAEzE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type ThemeStyles } from '../../../styles';
1
+ import { type ThemeStyles } from '../styles';
2
2
  /**
3
3
  * Minimal styles.
4
4
  * https://codemirror.net/examples/styling
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../../src/themes/default.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,WAAW,EAAU,MAAM,WAAW,CAAC;AAKrD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,EAAE,WA8P1B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,WAOvB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,WAK3B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,WAOvB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/themes/index.ts"],"names":[],"mappings":"AAIA,cAAc,WAAW,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { Facet } from '@codemirror/state';
2
+ /**
3
+ * Converts indexes into the text document into stable peer-independent cursors.
4
+ *
5
+ * See:
6
+ * - https://automerge.org/automerge/api-docs/js/functions/next.getCursor.html
7
+ * - https://github.com/yjs/yjs?tab=readme-ov-file#relative-positions
8
+ *
9
+ * @param {assoc} number Negative values will associate the cursor with the previous character
10
+ * while positive - with the next one.
11
+ */
12
+ export interface CursorConverter {
13
+ toCursor(position: number, assoc?: -1 | 1 | undefined): string;
14
+ fromCursor(cursor: string): number;
15
+ }
16
+ export declare const CursorConverter: Facet<CursorConverter, CursorConverter>;
17
+ //# sourceMappingURL=cursor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../../../src/util/cursor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C;;;;;;;;;GASG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC;IAC/D,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;CACpC;AAOD,eAAO,MAAM,eAAe,yCAE1B,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './cursor';
2
+ export * from './util';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/util/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../../src/util/util.ts"],"names":[],"mappings":"AAMA;;GAEG;AAEH,eAAO,MAAM,eAAe,kCAOR,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/react-ui-editor",
3
- "version": "0.3.11-main.bd26370",
3
+ "version": "0.3.11-main.fbbdc2a",
4
4
  "description": "Document editing experience within a DXOS shell.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -38,19 +38,20 @@
38
38
  "y-codemirror.next": "^0.3.2",
39
39
  "y-protocols": "^1.0.5",
40
40
  "yjs": "^13.6.10",
41
- "@dxos/async": "0.3.11-main.bd26370",
42
- "@dxos/automerge": "0.3.11-main.bd26370",
43
- "@dxos/display-name": "0.3.11-main.bd26370",
44
- "@dxos/echo-schema": "0.3.11-main.bd26370",
45
- "@dxos/invariant": "0.3.11-main.bd26370",
46
- "@dxos/debug": "0.3.11-main.bd26370",
47
- "@dxos/protocols": "0.3.11-main.bd26370",
48
- "@dxos/react-async": "0.3.11-main.bd26370",
49
- "@dxos/react-ui": "0.3.11-main.bd26370",
50
- "@dxos/react-ui-theme": "0.3.11-main.bd26370",
51
- "@dxos/text-model": "0.3.11-main.bd26370",
52
- "@dxos/util": "0.3.11-main.bd26370",
53
- "@dxos/log": "0.3.11-main.bd26370"
41
+ "@dxos/async": "0.3.11-main.fbbdc2a",
42
+ "@dxos/automerge": "0.3.11-main.fbbdc2a",
43
+ "@dxos/context": "0.3.11-main.fbbdc2a",
44
+ "@dxos/debug": "0.3.11-main.fbbdc2a",
45
+ "@dxos/echo-schema": "0.3.11-main.fbbdc2a",
46
+ "@dxos/invariant": "0.3.11-main.fbbdc2a",
47
+ "@dxos/display-name": "0.3.11-main.fbbdc2a",
48
+ "@dxos/log": "0.3.11-main.fbbdc2a",
49
+ "@dxos/react-async": "0.3.11-main.fbbdc2a",
50
+ "@dxos/protocols": "0.3.11-main.fbbdc2a",
51
+ "@dxos/react-ui": "0.3.11-main.fbbdc2a",
52
+ "@dxos/react-ui-theme": "0.3.11-main.fbbdc2a",
53
+ "@dxos/text-model": "0.3.11-main.fbbdc2a",
54
+ "@dxos/util": "0.3.11-main.fbbdc2a"
54
55
  },
55
56
  "devDependencies": {
56
57
  "@automerge/automerge-repo-network-broadcastchannel": "^1.0.19",
@@ -66,18 +67,18 @@
66
67
  "deepsignal": "1.4.0-shallow.0",
67
68
  "react": "^18.2.0",
68
69
  "react-dom": "^18.2.0",
69
- "@dxos/config": "0.3.11-main.bd26370",
70
- "@dxos/echo-signals": "0.3.11-main.bd26370",
71
- "@dxos/react-client": "0.3.11-main.bd26370",
72
- "@dxos/echo-typegen": "0.3.11-main.bd26370",
73
- "@dxos/react-ui": "0.3.11-main.bd26370",
74
- "@dxos/storybook-utils": "0.3.11-main.bd26370"
70
+ "@dxos/config": "0.3.11-main.fbbdc2a",
71
+ "@dxos/echo-signals": "0.3.11-main.fbbdc2a",
72
+ "@dxos/echo-typegen": "0.3.11-main.fbbdc2a",
73
+ "@dxos/react-ui": "0.3.11-main.fbbdc2a",
74
+ "@dxos/storybook-utils": "0.3.11-main.fbbdc2a",
75
+ "@dxos/react-client": "0.3.11-main.fbbdc2a"
75
76
  },
76
77
  "peerDependencies": {
77
78
  "@phosphor-icons/react": "^2.0.5",
78
79
  "react": "^18.2.0",
79
80
  "react-dom": "^18.2.0",
80
- "@dxos/react-client": "0.3.11-main.bd26370"
81
+ "@dxos/react-client": "0.3.11-main.fbbdc2a"
81
82
  },
82
83
  "publishConfig": {
83
84
  "access": "public"
@@ -30,13 +30,11 @@ import {
30
30
  mention,
31
31
  table,
32
32
  tasklist,
33
- tooltip,
34
33
  typewriter,
35
34
  type CommentsOptions,
36
- type TooltipOptions,
37
35
  type LinkOptions,
38
36
  mermaid,
39
- } from './extensions';
37
+ } from '../../extensions';
40
38
  import { type CommentRange, useTextModel } from '../../hooks';
41
39
 
42
40
  // Extensions:
@@ -169,7 +167,7 @@ const links = [
169
167
  const hover =
170
168
  'rounded-sm text-base text-primary-600 hover:text-primary-500 dark:text-primary-300 hover:dark:text-primary-200';
171
169
 
172
- const onTooltipHover: TooltipOptions['onHover'] = (el, url) => {
170
+ const onHoverLinkTooltip: LinkOptions['onHover'] = (el, url) => {
173
171
  const web = new URL(url);
174
172
  createRoot(el).render(
175
173
  <StrictMode>
@@ -202,7 +200,7 @@ const onCommentsHover: CommentsOptions['onHover'] = (el) => {
202
200
  );
203
201
  };
204
202
 
205
- const onLinkRender: LinkOptions['onRender'] = (el, url) => {
203
+ const onRenderLink: LinkOptions['onRender'] = (el, url) => {
206
204
  createRoot(el).render(
207
205
  <StrictMode>
208
206
  <a href={url} target='_blank' rel='noreferrer' className={hover}>
@@ -251,10 +249,9 @@ const extensions = [
251
249
  code(),
252
250
  hr(),
253
251
  image(),
254
- link({ onRender: onLinkRender }),
252
+ link({ onRender: onRenderLink, onHover: onHoverLinkTooltip }),
255
253
  table(),
256
254
  tasklist(),
257
- tooltip({ onHover: onTooltipHover }),
258
255
  ];
259
256
 
260
257
  export const Default = {
@@ -279,12 +276,13 @@ export const HorizontalRule = {
279
276
  ),
280
277
  };
281
278
 
282
- export const Tooltips = {
283
- render: () => <Story text={str(text.links, text.footer)} extensions={[tooltip({ onHover: onTooltipHover })]} />,
284
- };
285
-
286
279
  export const Links = {
287
- render: () => <Story text={str(text.links, text.footer)} extensions={[link({ onRender: onLinkRender })]} />,
280
+ render: () => (
281
+ <Story
282
+ text={str(text.links, text.footer)}
283
+ extensions={[link({ onHover: onHoverLinkTooltip, onRender: onRenderLink })]}
284
+ />
285
+ ),
288
286
  };
289
287
 
290
288
  export const Code = {
@@ -320,7 +318,7 @@ export const Autocomplete = {
320
318
  <Story
321
319
  text={str('# Autocomplete', '', 'Press CTRL-SPACE', text.footer)}
322
320
  extensions={[
323
- link({ onRender: onLinkRender }),
321
+ link({ onRender: onRenderLink }),
324
322
  autocomplete({
325
323
  onSearch: (text) => links.filter(({ label }) => label.toLowerCase().includes(text.toLowerCase())),
326
324
  }),
@@ -12,8 +12,9 @@ import { fixedInsetFlexLayout, groupSurface, mx } from '@dxos/react-ui-theme';
12
12
  import { withTheme } from '@dxos/storybook-utils';
13
13
 
14
14
  import { defaultSlots, TextEditor, type TextEditorProps, type TextEditorRef, type TextEditorSlots } from './TextEditor';
15
- import { textTheme } from './themes';
15
+ import { listener } from '../../extensions';
16
16
  import { useTextModel } from '../../hooks';
17
+ import { textTheme } from '../../themes';
17
18
 
18
19
  const initialText = [
19
20
  '# TextEditor',
@@ -67,6 +68,18 @@ export const Default = {
67
68
  ),
68
69
  };
69
70
 
71
+ export const Listener = {
72
+ render: () => (
73
+ <Story
74
+ slots={defaultsDeep(
75
+ { editor: { theme: textTheme, placeholder: 'Enter text...' } } satisfies TextEditorSlots,
76
+ defaultSlots,
77
+ )}
78
+ extensions={[listener({ onChange: (text) => console.log(text) })]}
79
+ />
80
+ ),
81
+ };
82
+
70
83
  export const Text = {
71
84
  render: () => (
72
85
  <Story
@@ -21,10 +21,10 @@ import { generateName } from '@dxos/display-name';
21
21
  import { useThemeContext } from '@dxos/react-ui';
22
22
  import { getColorForValue, inputSurface, mx } from '@dxos/react-ui-theme';
23
23
 
24
- import { basicBundle, markdownBundle, setCommentRange } from './extensions';
25
- import { defaultTheme, markdownTheme, textTheme } from './themes';
24
+ import { basicBundle, markdownBundle, setCommentRange } from '../../extensions';
26
25
  import { type CommentRange, type EditorModel } from '../../hooks';
27
26
  import { type ThemeStyles } from '../../styles';
27
+ import { defaultTheme, markdownTheme, textTheme } from '../../themes';
28
28
 
29
29
  export const EditorModes = ['default', 'vim'] as const;
30
30
  export type EditorMode = (typeof EditorModes)[number];
@@ -56,10 +56,10 @@ export type TextEditorSlots = {
56
56
 
57
57
  export type TextEditorProps = {
58
58
  model: EditorModel;
59
- comments?: CommentRange[];
60
- readonly?: boolean;
61
- editorMode?: EditorMode;
59
+ readonly?: boolean; // TODO(burdon): Move into model.
60
+ comments?: CommentRange[]; // TODO(burdon): Move into extension.
62
61
  extensions?: Extension[];
62
+ editorMode?: EditorMode;
63
63
  slots?: TextEditorSlots;
64
64
  };
65
65
 
@@ -68,7 +68,7 @@ export type TextEditorProps = {
68
68
  * NOTE: Rather than adding properties, try to create extensions that can be reused.
69
69
  */
70
70
  export const BaseTextEditor = forwardRef<TextEditorRef, TextEditorProps>(
71
- ({ model, comments, readonly, editorMode, extensions = [], slots = defaultSlots }, forwardedRef) => {
71
+ ({ model, readonly, comments, extensions = [], editorMode, slots = defaultSlots }, forwardedRef) => {
72
72
  const { themeMode } = useThemeContext();
73
73
  const tabsterDOMAttribute = useFocusableGroup({ tabBehavior: 'limited' });
74
74
  const [root, setRoot] = useState<HTMLDivElement | null>(null);
@@ -77,7 +77,7 @@ export const BaseTextEditor = forwardRef<TextEditorRef, TextEditorProps>(
77
77
  >();
78
78
  useImperativeHandle(forwardedRef, () => ({ root, state, view }), [view, state, root]);
79
79
 
80
- // TODO(burdon): Factor out?
80
+ // TODO(burdon): Factor out as extension.
81
81
  const { awareness, peer } = model;
82
82
  useEffect(() => {
83
83
  if (awareness && peer) {