@react-x11/components 0.7.1 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (354) hide show
  1. package/README.md +295 -51
  2. package/dist/charts/node.d.ts +1 -1
  3. package/dist/charts/node.d.ts.map +1 -1
  4. package/dist/charts/node.js +6 -2
  5. package/dist/charts/node.js.map +1 -1
  6. package/dist/color-picker/ColorPicker.d.ts.map +1 -1
  7. package/dist/color-picker/ColorPicker.js +43 -33
  8. package/dist/color-picker/ColorPicker.js.map +1 -1
  9. package/dist/embed/client.d.ts +48 -3
  10. package/dist/embed/client.d.ts.map +1 -1
  11. package/dist/embed/client.js +79 -5
  12. package/dist/embed/client.js.map +1 -1
  13. package/dist/embed/index.d.ts +1 -1
  14. package/dist/embed/index.d.ts.map +1 -1
  15. package/dist/embed/index.js +1 -1
  16. package/dist/embed/index.js.map +1 -1
  17. package/dist/html/node.d.ts +3 -1
  18. package/dist/html/node.d.ts.map +1 -1
  19. package/dist/html/node.js +7 -5
  20. package/dist/html/node.js.map +1 -1
  21. package/dist/index.d.ts +1 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +1 -1
  24. package/dist/index.js.map +1 -1
  25. package/dist/{markdown → internal/markdown}/ast.d.ts +12 -0
  26. package/dist/internal/markdown/ast.d.ts.map +1 -0
  27. package/dist/internal/markdown/ast.js +22 -0
  28. package/dist/internal/markdown/ast.js.map +1 -0
  29. package/dist/internal/markdown/parse.d.ts.map +1 -0
  30. package/dist/{markdown → internal/markdown}/parse.js +112 -22
  31. package/dist/internal/markdown/parse.js.map +1 -0
  32. package/dist/internal/markdown/stringify.d.ts +4 -0
  33. package/dist/internal/markdown/stringify.d.ts.map +1 -0
  34. package/dist/internal/markdown/stringify.js +684 -0
  35. package/dist/internal/markdown/stringify.js.map +1 -0
  36. package/dist/internal/markdown/tags.d.ts.map +1 -0
  37. package/dist/internal/markdown/tags.js.map +1 -0
  38. package/dist/internal/scroll.d.ts +3 -2
  39. package/dist/internal/scroll.d.ts.map +1 -1
  40. package/dist/internal/scroll.js +33 -15
  41. package/dist/internal/scroll.js.map +1 -1
  42. package/dist/internal/units.d.ts +2 -0
  43. package/dist/internal/units.d.ts.map +1 -0
  44. package/dist/internal/units.js +35 -0
  45. package/dist/internal/units.js.map +1 -0
  46. package/dist/internal/window.d.ts.map +1 -1
  47. package/dist/internal/window.js +4 -2
  48. package/dist/internal/window.js.map +1 -1
  49. package/dist/maps/anchors.d.ts +98 -0
  50. package/dist/maps/anchors.d.ts.map +1 -0
  51. package/dist/maps/anchors.js +531 -0
  52. package/dist/maps/anchors.js.map +1 -0
  53. package/dist/maps/controller.d.ts +283 -0
  54. package/dist/maps/controller.d.ts.map +1 -0
  55. package/dist/maps/controller.js +743 -0
  56. package/dist/maps/controller.js.map +1 -0
  57. package/dist/maps/gl/buckets.d.ts +95 -0
  58. package/dist/maps/gl/buckets.d.ts.map +1 -0
  59. package/dist/maps/gl/buckets.js +362 -0
  60. package/dist/maps/gl/buckets.js.map +1 -0
  61. package/dist/maps/gl/build-worker.d.ts +13 -0
  62. package/dist/maps/gl/build-worker.d.ts.map +1 -0
  63. package/dist/maps/gl/build-worker.js +44 -0
  64. package/dist/maps/gl/build-worker.js.map +1 -0
  65. package/dist/maps/gl/color.d.ts +8 -0
  66. package/dist/maps/gl/color.d.ts.map +1 -0
  67. package/dist/maps/gl/color.js +57 -0
  68. package/dist/maps/gl/color.js.map +1 -0
  69. package/dist/maps/gl/cover.d.ts +51 -0
  70. package/dist/maps/gl/cover.d.ts.map +1 -0
  71. package/dist/maps/gl/cover.js +124 -0
  72. package/dist/maps/gl/cover.js.map +1 -0
  73. package/dist/maps/gl/index.d.ts +3 -0
  74. package/dist/maps/gl/index.d.ts.map +1 -0
  75. package/dist/maps/gl/index.js +20 -0
  76. package/dist/maps/gl/index.js.map +1 -0
  77. package/dist/maps/gl/markers.d.ts +28 -0
  78. package/dist/maps/gl/markers.d.ts.map +1 -0
  79. package/dist/maps/gl/markers.js +60 -0
  80. package/dist/maps/gl/markers.js.map +1 -0
  81. package/dist/maps/gl/overlays.d.ts +68 -0
  82. package/dist/maps/gl/overlays.d.ts.map +1 -0
  83. package/dist/maps/gl/overlays.js +300 -0
  84. package/dist/maps/gl/overlays.js.map +1 -0
  85. package/dist/maps/gl/pane.d.ts +12 -0
  86. package/dist/maps/gl/pane.d.ts.map +1 -0
  87. package/dist/maps/gl/pane.js +37 -0
  88. package/dist/maps/gl/pane.js.map +1 -0
  89. package/dist/maps/gl/placement.d.ts +111 -0
  90. package/dist/maps/gl/placement.d.ts.map +1 -0
  91. package/dist/maps/gl/placement.js +567 -0
  92. package/dist/maps/gl/placement.js.map +1 -0
  93. package/dist/maps/gl/renderer.d.ts +352 -0
  94. package/dist/maps/gl/renderer.d.ts.map +1 -0
  95. package/dist/maps/gl/renderer.js +1127 -0
  96. package/dist/maps/gl/renderer.js.map +1 -0
  97. package/dist/maps/gl/shaders.d.ts +120 -0
  98. package/dist/maps/gl/shaders.d.ts.map +1 -0
  99. package/dist/maps/gl/shaders.js +451 -0
  100. package/dist/maps/gl/shaders.js.map +1 -0
  101. package/dist/maps/gl/store.d.ts +115 -0
  102. package/dist/maps/gl/store.d.ts.map +1 -0
  103. package/dist/maps/gl/store.js +469 -0
  104. package/dist/maps/gl/store.js.map +1 -0
  105. package/dist/maps/gl/text.d.ts +154 -0
  106. package/dist/maps/gl/text.d.ts.map +1 -0
  107. package/dist/maps/gl/text.js +382 -0
  108. package/dist/maps/gl/text.js.map +1 -0
  109. package/dist/maps/gl/view.d.ts +54 -0
  110. package/dist/maps/gl/view.d.ts.map +1 -0
  111. package/dist/maps/gl/view.js +974 -0
  112. package/dist/maps/gl/view.js.map +1 -0
  113. package/dist/maps/index.d.ts +1 -1
  114. package/dist/maps/index.d.ts.map +1 -1
  115. package/dist/maps/index.js +216 -52
  116. package/dist/maps/index.js.map +1 -1
  117. package/dist/maps/labels.d.ts +37 -16
  118. package/dist/maps/labels.d.ts.map +1 -1
  119. package/dist/maps/labels.js +188 -119
  120. package/dist/maps/labels.js.map +1 -1
  121. package/dist/maps/node.d.ts +162 -56
  122. package/dist/maps/node.d.ts.map +1 -1
  123. package/dist/maps/node.js +607 -515
  124. package/dist/maps/node.js.map +1 -1
  125. package/dist/maps/overlay.d.ts +72 -9
  126. package/dist/maps/overlay.d.ts.map +1 -1
  127. package/dist/maps/overlay.js +108 -28
  128. package/dist/maps/overlay.js.map +1 -1
  129. package/dist/maps/paint.d.ts +3 -0
  130. package/dist/maps/paint.d.ts.map +1 -1
  131. package/dist/maps/paint.js.map +1 -1
  132. package/dist/maps/proj.d.ts +14 -0
  133. package/dist/maps/proj.d.ts.map +1 -1
  134. package/dist/maps/proj.js +28 -0
  135. package/dist/maps/proj.js.map +1 -1
  136. package/dist/maps/renderer.d.ts +69 -0
  137. package/dist/maps/renderer.d.ts.map +1 -0
  138. package/dist/maps/renderer.js +66 -0
  139. package/dist/maps/renderer.js.map +1 -0
  140. package/dist/maps/sources.d.ts +25 -3
  141. package/dist/maps/sources.d.ts.map +1 -1
  142. package/dist/maps/sources.js +17 -0
  143. package/dist/maps/sources.js.map +1 -1
  144. package/dist/maps/theme.d.ts +19 -0
  145. package/dist/maps/theme.d.ts.map +1 -0
  146. package/dist/maps/theme.js +44 -0
  147. package/dist/maps/theme.js.map +1 -0
  148. package/dist/maps/tiles.d.ts +117 -17
  149. package/dist/maps/tiles.d.ts.map +1 -1
  150. package/dist/maps/tiles.js +163 -30
  151. package/dist/maps/tiles.js.map +1 -1
  152. package/dist/maps/types.d.ts +188 -20
  153. package/dist/maps/types.d.ts.map +1 -1
  154. package/dist/markdown/expressions.d.ts +1 -1
  155. package/dist/markdown/expressions.d.ts.map +1 -1
  156. package/dist/markdown/expressions.js.map +1 -1
  157. package/dist/markdown/index.d.ts +7 -6
  158. package/dist/markdown/index.d.ts.map +1 -1
  159. package/dist/markdown/index.js +9 -7
  160. package/dist/markdown/index.js.map +1 -1
  161. package/dist/markdown/spans.d.ts +1 -1
  162. package/dist/markdown/spans.d.ts.map +1 -1
  163. package/dist/media-player/index.d.ts +11 -3
  164. package/dist/media-player/index.d.ts.map +1 -1
  165. package/dist/media-player/index.js +13 -2
  166. package/dist/media-player/index.js.map +1 -1
  167. package/dist/rich-text-editor/clipboard.d.ts +23 -0
  168. package/dist/rich-text-editor/clipboard.d.ts.map +1 -0
  169. package/dist/rich-text-editor/clipboard.js +307 -0
  170. package/dist/rich-text-editor/clipboard.js.map +1 -0
  171. package/dist/rich-text-editor/collab.d.ts +32 -0
  172. package/dist/rich-text-editor/collab.d.ts.map +1 -0
  173. package/dist/rich-text-editor/collab.js +55 -0
  174. package/dist/rich-text-editor/collab.js.map +1 -0
  175. package/dist/rich-text-editor/commands.d.ts +50 -0
  176. package/dist/rich-text-editor/commands.d.ts.map +1 -0
  177. package/dist/rich-text-editor/commands.js +376 -0
  178. package/dist/rich-text-editor/commands.js.map +1 -0
  179. package/dist/rich-text-editor/drag.d.ts +68 -0
  180. package/dist/rich-text-editor/drag.d.ts.map +1 -0
  181. package/dist/rich-text-editor/drag.js +148 -0
  182. package/dist/rich-text-editor/drag.js.map +1 -0
  183. package/dist/rich-text-editor/html.d.ts +145 -0
  184. package/dist/rich-text-editor/html.d.ts.map +1 -0
  185. package/dist/rich-text-editor/html.js +516 -0
  186. package/dist/rich-text-editor/html.js.map +1 -0
  187. package/dist/rich-text-editor/index.d.ts +263 -0
  188. package/dist/rich-text-editor/index.d.ts.map +1 -0
  189. package/dist/rich-text-editor/index.js +822 -0
  190. package/dist/rich-text-editor/index.js.map +1 -0
  191. package/dist/rich-text-editor/inline.d.ts +94 -0
  192. package/dist/rich-text-editor/inline.d.ts.map +1 -0
  193. package/dist/rich-text-editor/inline.js +252 -0
  194. package/dist/rich-text-editor/inline.js.map +1 -0
  195. package/dist/rich-text-editor/keymap.d.ts +71 -0
  196. package/dist/rich-text-editor/keymap.d.ts.map +1 -0
  197. package/dist/rich-text-editor/keymap.js +393 -0
  198. package/dist/rich-text-editor/keymap.js.map +1 -0
  199. package/dist/rich-text-editor/keys.d.ts +29 -0
  200. package/dist/rich-text-editor/keys.d.ts.map +1 -0
  201. package/dist/rich-text-editor/keys.js +93 -0
  202. package/dist/rich-text-editor/keys.js.map +1 -0
  203. package/dist/rich-text-editor/look.d.ts +71 -0
  204. package/dist/rich-text-editor/look.d.ts.map +1 -0
  205. package/dist/rich-text-editor/look.js +342 -0
  206. package/dist/rich-text-editor/look.js.map +1 -0
  207. package/dist/rich-text-editor/markdown.d.ts +18 -0
  208. package/dist/rich-text-editor/markdown.d.ts.map +1 -0
  209. package/dist/rich-text-editor/markdown.js +496 -0
  210. package/dist/rich-text-editor/markdown.js.map +1 -0
  211. package/dist/rich-text-editor/nodes.d.ts +135 -0
  212. package/dist/rich-text-editor/nodes.d.ts.map +1 -0
  213. package/dist/rich-text-editor/nodes.js +397 -0
  214. package/dist/rich-text-editor/nodes.js.map +1 -0
  215. package/dist/rich-text-editor/render.d.ts +68 -0
  216. package/dist/rich-text-editor/render.d.ts.map +1 -0
  217. package/dist/rich-text-editor/render.js +500 -0
  218. package/dist/rich-text-editor/render.js.map +1 -0
  219. package/dist/rich-text-editor/schema.d.ts +16 -0
  220. package/dist/rich-text-editor/schema.d.ts.map +1 -0
  221. package/dist/rich-text-editor/schema.js +386 -0
  222. package/dist/rich-text-editor/schema.js.map +1 -0
  223. package/dist/rich-text-editor/store.d.ts +11 -0
  224. package/dist/rich-text-editor/store.d.ts.map +1 -0
  225. package/dist/rich-text-editor/store.js +43 -0
  226. package/dist/rich-text-editor/store.js.map +1 -0
  227. package/dist/rich-text-editor/suggest.d.ts +127 -0
  228. package/dist/rich-text-editor/suggest.d.ts.map +1 -0
  229. package/dist/rich-text-editor/suggest.js +0 -0
  230. package/dist/rich-text-editor/suggest.js.map +1 -0
  231. package/dist/rich-text-editor/tables.d.ts +41 -0
  232. package/dist/rich-text-editor/tables.d.ts.map +1 -0
  233. package/dist/rich-text-editor/tables.js +204 -0
  234. package/dist/rich-text-editor/tables.js.map +1 -0
  235. package/dist/rich-text-editor/toolbar.d.ts +58 -0
  236. package/dist/rich-text-editor/toolbar.d.ts.map +1 -0
  237. package/dist/rich-text-editor/toolbar.js +548 -0
  238. package/dist/rich-text-editor/toolbar.js.map +1 -0
  239. package/dist/rich-text-editor/view.d.ts +368 -0
  240. package/dist/rich-text-editor/view.d.ts.map +1 -0
  241. package/dist/rich-text-editor/view.js +1968 -0
  242. package/dist/rich-text-editor/view.js.map +1 -0
  243. package/dist/rich-text-editor/virtual.d.ts +54 -0
  244. package/dist/rich-text-editor/virtual.d.ts.map +1 -0
  245. package/dist/rich-text-editor/virtual.js +262 -0
  246. package/dist/rich-text-editor/virtual.js.map +1 -0
  247. package/dist/richtext/node.d.ts +25 -2
  248. package/dist/richtext/node.d.ts.map +1 -1
  249. package/dist/richtext/node.js +46 -24
  250. package/dist/richtext/node.js.map +1 -1
  251. package/dist/table/index.d.ts.map +1 -1
  252. package/dist/table/index.js +14 -5
  253. package/dist/table/index.js.map +1 -1
  254. package/dist/terminal/backends.d.ts +4 -1
  255. package/dist/terminal/backends.d.ts.map +1 -1
  256. package/dist/terminal/backends.js.map +1 -1
  257. package/dist/terminal/index.d.ts +18 -7
  258. package/dist/terminal/index.d.ts.map +1 -1
  259. package/dist/terminal/index.js +28 -11
  260. package/dist/terminal/index.js.map +1 -1
  261. package/dist/terminal/vt/node.d.ts +56 -3
  262. package/dist/terminal/vt/node.d.ts.map +1 -1
  263. package/dist/terminal/vt/node.js +106 -26
  264. package/dist/terminal/vt/node.js.map +1 -1
  265. package/dist/terminal/vt/renderer.d.ts +4 -0
  266. package/dist/terminal/vt/renderer.d.ts.map +1 -1
  267. package/dist/terminal/vt/renderer.js +14 -5
  268. package/dist/terminal/vt/renderer.js.map +1 -1
  269. package/dist/tree/index.d.ts.map +1 -1
  270. package/dist/tree/index.js +6 -4
  271. package/dist/tree/index.js.map +1 -1
  272. package/package.json +23 -4
  273. package/src/charts/node.ts +6 -2
  274. package/src/color-picker/ColorPicker.ts +107 -81
  275. package/src/embed/client.ts +102 -8
  276. package/src/embed/index.ts +2 -0
  277. package/src/html/node.ts +7 -5
  278. package/src/index.ts +2 -0
  279. package/src/{markdown → internal/markdown}/ast.ts +24 -7
  280. package/src/{markdown → internal/markdown}/parse.ts +134 -24
  281. package/src/internal/markdown/stringify.ts +772 -0
  282. package/src/internal/scroll.ts +39 -18
  283. package/src/internal/units.ts +34 -0
  284. package/src/internal/window.ts +4 -2
  285. package/src/maps/anchors.ts +607 -0
  286. package/src/maps/controller.ts +999 -0
  287. package/src/maps/gl/buckets.ts +457 -0
  288. package/src/maps/gl/build-worker.ts +55 -0
  289. package/src/maps/gl/color.ts +62 -0
  290. package/src/maps/gl/cover.ts +170 -0
  291. package/src/maps/gl/index.ts +23 -0
  292. package/src/maps/gl/markers.ts +83 -0
  293. package/src/maps/gl/overlays.ts +379 -0
  294. package/src/maps/gl/pane.ts +42 -0
  295. package/src/maps/gl/placement.ts +816 -0
  296. package/src/maps/gl/renderer.ts +1576 -0
  297. package/src/maps/gl/shaders.ts +486 -0
  298. package/src/maps/gl/store.ts +566 -0
  299. package/src/maps/gl/text.ts +495 -0
  300. package/src/maps/gl/view.ts +1224 -0
  301. package/src/maps/index.ts +270 -81
  302. package/src/maps/labels.ts +214 -121
  303. package/src/maps/node.ts +763 -629
  304. package/src/maps/overlay.ts +148 -43
  305. package/src/maps/paint.ts +3 -0
  306. package/src/maps/proj.ts +31 -0
  307. package/src/maps/renderer.ts +155 -0
  308. package/src/maps/sources.ts +38 -3
  309. package/src/maps/theme.ts +51 -0
  310. package/src/maps/tiles.ts +191 -33
  311. package/src/maps/types.ts +188 -20
  312. package/src/markdown/expressions.ts +5 -1
  313. package/src/markdown/index.ts +14 -11
  314. package/src/markdown/spans.ts +1 -1
  315. package/src/media-player/index.ts +18 -4
  316. package/src/rich-text-editor/clipboard.ts +439 -0
  317. package/src/rich-text-editor/collab.ts +91 -0
  318. package/src/rich-text-editor/commands.ts +448 -0
  319. package/src/rich-text-editor/dom-globals.d.ts +23 -0
  320. package/src/rich-text-editor/drag.ts +211 -0
  321. package/src/rich-text-editor/html.ts +619 -0
  322. package/src/rich-text-editor/index.ts +1331 -0
  323. package/src/rich-text-editor/inline.ts +345 -0
  324. package/src/rich-text-editor/keymap.ts +510 -0
  325. package/src/rich-text-editor/keys.ts +119 -0
  326. package/src/rich-text-editor/look.ts +427 -0
  327. package/src/rich-text-editor/markdown.ts +653 -0
  328. package/src/rich-text-editor/nodes.ts +497 -0
  329. package/src/rich-text-editor/render.ts +800 -0
  330. package/src/rich-text-editor/schema.ts +431 -0
  331. package/src/rich-text-editor/store.ts +39 -0
  332. package/src/rich-text-editor/suggest.ts +597 -0
  333. package/src/rich-text-editor/tables.ts +272 -0
  334. package/src/rich-text-editor/toolbar.ts +724 -0
  335. package/src/rich-text-editor/view.ts +2287 -0
  336. package/src/rich-text-editor/virtual.ts +347 -0
  337. package/src/richtext/node.ts +59 -30
  338. package/src/table/index.ts +14 -5
  339. package/src/terminal/backends.ts +4 -1
  340. package/src/terminal/index.ts +43 -15
  341. package/src/terminal/vt/node.ts +128 -29
  342. package/src/terminal/vt/renderer.ts +27 -5
  343. package/src/tree/index.ts +6 -4
  344. package/dist/markdown/ast.d.ts.map +0 -1
  345. package/dist/markdown/ast.js +0 -17
  346. package/dist/markdown/ast.js.map +0 -1
  347. package/dist/markdown/parse.d.ts.map +0 -1
  348. package/dist/markdown/parse.js.map +0 -1
  349. package/dist/markdown/tags.d.ts.map +0 -1
  350. package/dist/markdown/tags.js.map +0 -1
  351. /package/dist/{markdown → internal/markdown}/parse.d.ts +0 -0
  352. /package/dist/{markdown → internal/markdown}/tags.d.ts +0 -0
  353. /package/dist/{markdown → internal/markdown}/tags.js +0 -0
  354. /package/src/{markdown → internal/markdown}/tags.ts +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/rich-text-editor/nodes.ts"],"names":[],"mappings":"AA8BA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,mEAAmE;AACnE,eAAO,MAAM,YAAY,eAAe,CAAC;AACzC,oCAAoC;AACpC,eAAO,MAAM,YAAY,mBAAmB,CAAC;AAE7C,KAAK,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACnE,KAAK,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE3E;+CAC+C;AAC/C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IACzD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CACjC;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IACvC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IACpD,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IACpD;yDACqD;IACrD,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IACrD,OAAO,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAAC;IACpC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACrC,QAAQ,IAAI,aAAa,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAChD,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;CAChE;AAED;;uDAEuD;AACvD,wBAAgB,sBAAsB,IAAI,IAAI,CAc7C;AAMD,qBAAa,cAAe,SAAQ,IAAI;IACtC,YAAY,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAavD;IAED,IAAI,IAAI,IAAI,UAAU,GAAG,IAAI,CAE5B;IAEQ,UAAU,CACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI,CAQN;IAEQ,cAAc,IAAI,IAAI,CAG9B;IAED;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB,CAGrB;IAEJ,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI,CAI1E;IAED,mBAAmB,CACjB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,CAAC,EAAE,EAAE,aAAa,KAAK,IAAI,GACpC,IAAI,CAEN;IAED,OAAO,CAAC,YAAY;IAMX,cAAc,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAE1C;IAEQ,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,IAAI,CAElD;IAEQ,YAAY,IAAI,IAAI,CAI5B;IAEQ,WAAW,IAAI,IAAI,CAI3B;IAEQ,aAAa,IAAI,aAAa,GAAG,IAAI,CAE7C;IAEQ,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAE7D;IAEQ,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1E;CACF;AASD,qBAAa,cAAe,SAAQ,YAAY;IAC9C,yDAAyD;IACzD,OAAO,CAAC,UAAU,CAA+C;IACjE,OAAO,CAAC,eAAe,CAAM;IAC7B,4EAA4E;IAC5E,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,aAAa,CAAQ;IAC7B,iEAAiE;IACjE,OAAO,CAAC,YAAY,CAAmD;IACvE;sBACkB;IAClB,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,cAAc,CAAM;IAE5B,YAAY,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,EAGvD;IAED,IAAI,IAAI,IAAI,UAAU,GAAG,IAAI,CAE5B;IAED,yDAAyD;IACzD,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,sDAAsD;IACtD,IAAI,GAAG,IAAI,SAAS,GAAG,IAAI,CAE1B;IAEQ,UAAU,CACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI,CAiBN;IAEQ,cAAc,IAAI,IAAI,CAG9B;IAID,gEAAgE;IAChE,OAAO,CAAC,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAMxE;IAED,iEAAiE;IACjE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAOlD;IAED,qEAAqE;IACrE,KAAK,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAIvB;IAED,OAAO,CAAC,QAAQ;IAahB,OAAO,CAAC,WAAW;IAgBnB;8DAC0D;IAC1D,eAAe,CAAC,MAAM,EAAE,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAYzE;IAED,kDAAkD;IAClD,IAAI,kBAAkB,IAAI,SAAS;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAEpE;IAED;0EACsE;IACtE,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,kBAAkB;IAkB1B,yEAAyE;IACzE,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAMtD;IAED,sDAAsD;IACtD,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAE7B;IAED,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,eAAe;IAYvB,UAAmB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAYxD;IAED,UAAmB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAmBtD;IAID;;;;;OAKG;IACH,SAAS,CACP,KAAK,EAAE,MAAM,GACZ;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAyBtD;CACF"}
@@ -0,0 +1,397 @@
1
+ // The two elements the editor registers.
2
+ //
3
+ // **`<richeditor>`** is the editor's root, and the reason it is an element
4
+ // rather than a `<box>` is the default-action seam (react-x11#266): keys,
5
+ // composition, focus and blur arrive at the focused node's `default*`
6
+ // methods *after* the application's handlers and not at all if one of them
7
+ // called `preventDefault()` — so `<RichTextEditor onKeyDown>` can veto or
8
+ // extend any editing key without knowing how the editor is built, exactly as
9
+ // `<textinput onKeyDown>` can. A `<box>` has no such methods to give. It is
10
+ // also what an assistive technology reads: the root answers
11
+ // `a11yTextState()` for the whole document, which is one text to a screen
12
+ // reader however many blocks draw it.
13
+ //
14
+ // Presses are the exception, and on purpose: a press lands on whatever is
15
+ // under the pointer — a paragraph, a list marker, the gap between two blocks —
16
+ // and core runs the default action of *that* node, not of the root. So the
17
+ // component takes presses in an ordinary bubbling `onMouseDown` on the root
18
+ // and `preventDefault()`s them, which also keeps core's drag-and-drop from
19
+ // arming on a press that is placing a caret — all but a press on the
20
+ // selection, which is left to core so that it can arm a drag of the
21
+ // selection from the root (./drag.ts).
22
+ //
23
+ // **`<richeditortext>`** is one textblock: `<richtext>` — its layout cache,
24
+ // its run decoration, its four text accessors — plus a selection band and a
25
+ // caret the editor owns and sets imperatively. Neither goes through React: a
26
+ // caret that blinks twice a second, or a drag that extends a selection sixty
27
+ // times a second, re-rendering anything would be the cost the retained node
28
+ // exists to avoid. The view says where they are; the node paints them and
29
+ // damages only what moved.
30
+ import { registerElement, registeredElements } from 'react-x11/host';
31
+ import { Node } from 'react-x11/node';
32
+ import { RichTextNode } from '../richtext/node.js';
33
+ import { codeUnitOffsets, codePointAtOffset } from '../internal/text.js';
34
+ /** The root element's name — registration key, `kind`, JSX tag. */
35
+ export const ROOT_ELEMENT = 'richeditor';
36
+ /** The textblock element's name. */
37
+ export const TEXT_ELEMENT = 'richeditortext';
38
+ /** Register both elements. Called at `./index.ts`'s module scope — never
39
+ * here — so importing this module registers nothing. Idempotent, for the
40
+ * same lockfile-skew reason `registerRichText` is. */
41
+ export function registerEditorElements() {
42
+ if (!registeredElements().includes(ROOT_ELEMENT)) {
43
+ registerElement(ROOT_ELEMENT, {
44
+ create: (props, app) => new RichEditorNode(props, app),
45
+ semanticNames: ['host'],
46
+ });
47
+ }
48
+ if (!registeredElements().includes(TEXT_ELEMENT)) {
49
+ registerElement(TEXT_ELEMENT, {
50
+ create: (props, app) => new EditorTextNode(props, app),
51
+ semanticNames: ['runs', 'wrap', 'map', 'blockKey', 'host', 'node'],
52
+ childrenAllowed: false,
53
+ });
54
+ }
55
+ }
56
+ function hostOf(props) {
57
+ return props?.host ?? null;
58
+ }
59
+ export class RichEditorNode extends Node {
60
+ constructor(props, app) {
61
+ super(ROOT_ELEMENT, props, app);
62
+ // Nothing focuses an element that has not said it can be focused, and
63
+ // nothing types into one that is not focused. An app's `focusable`
64
+ // still overrides it, which is how `disabled` leaves the tab order.
65
+ this.focusableByDefault = true;
66
+ this.defaultCursor = 'text';
67
+ // The selection is the editor's own: a `selectable` document around it
68
+ // skips this subtree rather than lighting up half of what is being
69
+ // typed, and leaves its presses alone.
70
+ this.hasOwnSelection = true;
71
+ this.a11yRole = 'textbox';
72
+ hostOf(props)?.attachRoot(this);
73
+ }
74
+ get host() {
75
+ return hostOf(this.props);
76
+ }
77
+ applyProps(nextProps, prevProps) {
78
+ const before = hostOf(prevProps ?? this.props);
79
+ super.applyProps(nextProps, prevProps);
80
+ const after = hostOf(nextProps);
81
+ if (after !== before) {
82
+ before?.detachRoot(this);
83
+ after?.attachRoot(this);
84
+ }
85
+ }
86
+ destroySubtree() {
87
+ this.host?.detachRoot(this);
88
+ super.destroySubtree();
89
+ }
90
+ /**
91
+ * Listeners a plugin written for a browser put on `view.dom` —
92
+ * y-prosemirror's cursor plugin listens for `focusin` and `focusout` to
93
+ * publish and withdraw the local caret. The focus family is all that is
94
+ * sent: `focus`, `blur`, `focusin`, `focusout`, after the view has heard
95
+ * the change, so `view.hasFocus()` already agrees with the event.
96
+ */
97
+ domEventListeners = new Map();
98
+ addEventListener(type, listener) {
99
+ let set = this.domEventListeners.get(type);
100
+ if (!set)
101
+ this.domEventListeners.set(type, (set = new Set()));
102
+ set.add(listener);
103
+ }
104
+ removeEventListener(type, listener) {
105
+ this.domEventListeners.get(type)?.delete(listener);
106
+ }
107
+ sendDomEvent(type) {
108
+ const set = this.domEventListeners.get(type);
109
+ if (!set)
110
+ return;
111
+ for (const listener of [...set])
112
+ listener({ type, target: this });
113
+ }
114
+ defaultKeyDown(ev) {
115
+ this.host?.keyDown(ev);
116
+ }
117
+ defaultComposition(ev) {
118
+ this.host?.composition(ev);
119
+ }
120
+ defaultFocus() {
121
+ this.host?.focusChanged(true);
122
+ this.sendDomEvent('focus');
123
+ this.sendDomEvent('focusin');
124
+ }
125
+ defaultBlur() {
126
+ this.host?.focusChanged(false);
127
+ this.sendDomEvent('blur');
128
+ this.sendDomEvent('focusout');
129
+ }
130
+ a11yTextState() {
131
+ return this.host?.a11yText() ?? null;
132
+ }
133
+ a11ySetSelection(start, end) {
134
+ return this.host?.a11ySelect(start, end) ?? false;
135
+ }
136
+ a11yReplaceText(start, end, text) {
137
+ return this.host?.a11yReplace(start, end, text) ?? false;
138
+ }
139
+ }
140
+ function sameBand(a, b) {
141
+ return a === b || (!!a && !!b && a.start === b.start && a.end === b.end);
142
+ }
143
+ export class EditorTextNode extends RichTextNode {
144
+ /** The selection band, in drawn code points, or null. */
145
+ editorBand = null;
146
+ editorBandColor = '';
147
+ /** The caret, as a drawn code point index, or null when it is elsewhere. */
148
+ editorCaret = null;
149
+ editorCaretColor = '';
150
+ editorCaretOn = true;
151
+ /** Collaborators' carets in this block, in drawn code points. */
152
+ remoteCarets = [];
153
+ /** Where a drop would go in, in drawn code points, while a drag is over
154
+ * this block. */
155
+ dropCaretAt = null;
156
+ dropCaretColor = '';
157
+ constructor(props, app) {
158
+ super(props, app, TEXT_ELEMENT);
159
+ hostOf(props)?.attachText(String(props.blockKey ?? ''), this);
160
+ }
161
+ get host() {
162
+ return hostOf(this.props);
163
+ }
164
+ /** The block this node draws — the view's key for it. */
165
+ get blockKey() {
166
+ return String(this.props.blockKey ?? '');
167
+ }
168
+ /** How the drawn string maps back to the document. */
169
+ get map() {
170
+ return this.props.map ?? null;
171
+ }
172
+ applyProps(nextProps, prevProps) {
173
+ const before = prevProps ?? this.props;
174
+ const beforeHost = hostOf(before);
175
+ const beforeKey = String(before.blockKey ?? '');
176
+ super.applyProps(nextProps, prevProps);
177
+ const afterHost = hostOf(nextProps);
178
+ const afterKey = String(nextProps.blockKey ?? '');
179
+ if (afterHost !== beforeHost || afterKey !== beforeKey) {
180
+ beforeHost?.detachText(beforeKey, this);
181
+ afterHost?.attachText(afterKey, this);
182
+ }
183
+ else if (nextProps.map !== before.map ||
184
+ nextProps.runs !== before.runs ||
185
+ nextProps.node !== before.node) {
186
+ afterHost?.textUpdated(afterKey, this);
187
+ }
188
+ }
189
+ destroySubtree() {
190
+ this.host?.detachText(this.blockKey, this);
191
+ super.destroySubtree();
192
+ }
193
+ // --- what the view sets ----------------------------------------------------
194
+ /** The selection band over this block, in drawn code points. */
195
+ setBand(band, color) {
196
+ if (sameBand(band, this.editorBand) && color === this.editorBandColor)
197
+ return;
198
+ this.editorBand = band;
199
+ this.editorBandColor = color;
200
+ this.root?.invalidate(false, this, 'text');
201
+ }
202
+ /** Where the caret is in this block, or null to take it away. */
203
+ setCaret(index, color) {
204
+ if (index === this.editorCaret && color === this.editorCaretColor)
205
+ return;
206
+ this.damageCaret();
207
+ this.editorCaret = index;
208
+ this.editorCaretColor = color;
209
+ this.editorCaretOn = true;
210
+ this.damageCaret();
211
+ }
212
+ /** One blink. Damages the caret's own rectangle and nothing else. */
213
+ blink(on) {
214
+ if (this.editorCaret === null || on === this.editorCaretOn)
215
+ return;
216
+ this.editorCaretOn = on;
217
+ this.damageCaret();
218
+ }
219
+ caretBox() {
220
+ if (this.editorCaret === null)
221
+ return null;
222
+ const r = this.textCaretRect(this.editorCaret);
223
+ if (!r)
224
+ return null;
225
+ const w = Math.max(1, Math.round(this.scale));
226
+ return {
227
+ x: Math.round(r.x),
228
+ y: Math.round(r.y),
229
+ width: w,
230
+ height: Math.ceil(r.height),
231
+ };
232
+ }
233
+ damageCaret() {
234
+ const box = this.caretBox();
235
+ if (!box)
236
+ return;
237
+ const pad = Math.ceil(this.scale);
238
+ this.root?.invalidate(false, {
239
+ x: box.x - pad,
240
+ y: box.y,
241
+ width: box.width + pad * 2,
242
+ height: box.height,
243
+ }, 'caret');
244
+ }
245
+ /** Collaborators' carets in this block — set by the view like the
246
+ * editor's own, and drawn beside it without blinking. */
247
+ setRemoteCarets(carets) {
248
+ const was = this.remoteCarets;
249
+ if (carets.length === was.length &&
250
+ carets.every((c, i) => c.index === was[i].index && c.color === was[i].color))
251
+ return;
252
+ this.damageRemoteCarets();
253
+ this.remoteCarets = carets;
254
+ this.damageRemoteCarets();
255
+ }
256
+ /** The collaborators' carets this block draws. */
257
+ get collaboratorCarets() {
258
+ return this.remoteCarets;
259
+ }
260
+ /** A collaborator's caret: a bar two pixels wide, and a flag beside
261
+ * its top — inside the line, so nothing paints outside the block. */
262
+ remoteCaretBoxes(index) {
263
+ const r = this.textCaretRect(index);
264
+ if (!r)
265
+ return null;
266
+ const s = Math.max(1, Math.round(this.scale));
267
+ const bar = {
268
+ x: Math.round(r.x) - s,
269
+ y: Math.round(r.y),
270
+ width: 2 * s,
271
+ height: Math.ceil(r.height),
272
+ };
273
+ const flag = {
274
+ x: bar.x + bar.width,
275
+ y: bar.y,
276
+ width: 3 * s,
277
+ height: 3 * s,
278
+ };
279
+ return { bar, flag };
280
+ }
281
+ damageRemoteCarets() {
282
+ for (const caret of this.remoteCarets) {
283
+ const boxes = this.remoteCaretBoxes(caret.index);
284
+ if (!boxes)
285
+ continue;
286
+ const { bar, flag } = boxes;
287
+ this.root?.invalidate(false, {
288
+ x: bar.x - 1,
289
+ y: bar.y,
290
+ width: bar.width + flag.width + 2,
291
+ height: bar.height,
292
+ }, 'caret');
293
+ }
294
+ }
295
+ /** The drop caret: where a drop would go in, or null to take it away. */
296
+ setDropCaret(index, color) {
297
+ if (index === this.dropCaretAt && color === this.dropCaretColor)
298
+ return;
299
+ this.damageDropCaret();
300
+ this.dropCaretAt = index;
301
+ this.dropCaretColor = color;
302
+ this.damageDropCaret();
303
+ }
304
+ /** Where this block draws the drop caret, or null. */
305
+ get dropCaret() {
306
+ return this.dropCaretAt;
307
+ }
308
+ dropCaretBox() {
309
+ if (this.dropCaretAt === null)
310
+ return null;
311
+ const r = this.textCaretRect(this.dropCaretAt);
312
+ if (!r)
313
+ return null;
314
+ const s = Math.max(1, Math.round(this.scale));
315
+ return {
316
+ x: Math.round(r.x) - s,
317
+ y: Math.round(r.y),
318
+ width: 2 * s,
319
+ height: Math.ceil(r.height),
320
+ };
321
+ }
322
+ damageDropCaret() {
323
+ const box = this.dropCaretBox();
324
+ if (!box)
325
+ return;
326
+ this.root?.invalidate(false, { x: box.x - 1, y: box.y, width: box.width + 2, height: box.height }, 'caret');
327
+ }
328
+ // --- painting ----------------------------------------------------------------
329
+ paintSelection(ctx) {
330
+ const band = this.editorBand;
331
+ if (!band || band.end <= band.start || !this.editorBandColor)
332
+ return;
333
+ ctx.fillStyle = this.editorBandColor;
334
+ for (const r of this.textRangeRects(band.start, band.end)) {
335
+ ctx.fillRect(Math.round(r.x), Math.round(r.y), Math.ceil(r.width), Math.ceil(r.height));
336
+ }
337
+ }
338
+ paintOverlay(ctx) {
339
+ for (const caret of this.remoteCarets) {
340
+ const boxes = this.remoteCaretBoxes(caret.index);
341
+ if (!boxes)
342
+ continue;
343
+ ctx.fillStyle = caret.color;
344
+ const { bar, flag } = boxes;
345
+ ctx.fillRect(bar.x, bar.y, bar.width, bar.height);
346
+ ctx.fillRect(flag.x, flag.y, flag.width, flag.height);
347
+ }
348
+ const drop = this.dropCaretBox();
349
+ if (drop && this.dropCaretColor) {
350
+ ctx.fillStyle = this.dropCaretColor;
351
+ ctx.fillRect(drop.x, drop.y, drop.width, drop.height);
352
+ }
353
+ if (!this.editorCaretOn)
354
+ return;
355
+ const box = this.caretBox();
356
+ if (!box || !this.editorCaretColor)
357
+ return;
358
+ ctx.fillStyle = this.editorCaretColor;
359
+ ctx.fillRect(box.x, box.y, box.width, box.height);
360
+ }
361
+ // --- lines -------------------------------------------------------------------
362
+ /**
363
+ * The drawn code points of the visual line holding `index`: where Home and
364
+ * End go. Read off the same layout the glyphs came from, so a wrapped line
365
+ * ends where it is seen to end. Null on the mock backend, which lays
366
+ * nothing out.
367
+ */
368
+ lineRange(index) {
369
+ const layout = this.paintLayout();
370
+ if (!layout || layout.lines.length === 0)
371
+ return null;
372
+ const text = this.textContent();
373
+ const offsets = codeUnitOffsets(text);
374
+ const unit = offsets[Math.max(0, Math.min(index, offsets.length - 1))];
375
+ const lines = layout.lines;
376
+ let at = lines.length - 1;
377
+ for (let i = 0; i < lines.length; i++) {
378
+ if (unit < lines[i].end || i === lines.length - 1) {
379
+ at = i;
380
+ break;
381
+ }
382
+ }
383
+ const line = lines[at];
384
+ const last = at === lines.length - 1;
385
+ let end = line.end;
386
+ // a wrapped line's trailing space belongs to it but the caret after it
387
+ // is drawn on the next line — End stops before it
388
+ if (!last && end > line.start && /\s/.test(text[end - 1] ?? ''))
389
+ end -= 1;
390
+ return {
391
+ start: codePointAtOffset(offsets, line.start),
392
+ end: codePointAtOffset(offsets, end),
393
+ last,
394
+ };
395
+ }
396
+ }
397
+ //# sourceMappingURL=nodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../src/rich-text-editor/nodes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import type { ComponentType, ReactNode } from 'react';
2
+ import type { Node as PMNode } from 'prosemirror-model';
3
+ import type { BlockContext, EditorLook } from './look.js';
4
+ import type { BlockDecorations, RichEditorView } from './view.js';
5
+ /** What an image standing alone in a paragraph is handed to render — the
6
+ * editor draws no remote bitmap, the same line `<Markdown>` holds. */
7
+ export interface ImageInfo {
8
+ src: string;
9
+ alt: string | null;
10
+ title: string | null;
11
+ }
12
+ /** What a node view is given. */
13
+ export interface NodeViewProps {
14
+ node: PMNode;
15
+ /** Where the node is now. A function, because a node's position moves
16
+ * with every edit before it and its view is not re-rendered for that. */
17
+ getPos(): number | undefined;
18
+ /** A node selection has selected this node. */
19
+ selected: boolean;
20
+ /** The node's content, rendered — editable text for a textblock, blocks
21
+ * for a container — for the view to place where it goes. Absent for a
22
+ * leaf, which has none. */
23
+ children?: ReactNode;
24
+ /** Merge attributes into the node — a checkbox's state, an embed's size. */
25
+ updateAttributes(attrs: Record<string, unknown>): void;
26
+ editable: boolean;
27
+ view: RichEditorView;
28
+ }
29
+ /** What a table measures its cells with: the app's font manager, whose
30
+ * `layout` takes runs in the logical sizes styles are written in and
31
+ * answers in the same units. Null on the mock backend, which has none. */
32
+ export interface CellFonts {
33
+ layout(runs: readonly object[], style: {
34
+ family?: string;
35
+ size?: number;
36
+ }): {
37
+ width: number;
38
+ };
39
+ }
40
+ /** Everything a block renders with. One object per look and seam set, so a
41
+ * memoized block compares it by identity. */
42
+ export interface RenderContext {
43
+ view: RichEditorView;
44
+ look: EditorLook;
45
+ editable: boolean;
46
+ fonts?: CellFonts | null;
47
+ nodeViews?: Readonly<Record<string, ComponentType<NodeViewProps>>>;
48
+ renderImage?: (image: ImageInfo) => ReactNode;
49
+ }
50
+ /** The blocks inside `parent`, whose content starts at `contentStart`. */
51
+ export declare function renderBlocks(parent: PMNode, contentStart: number, ctx: RenderContext, bctx?: BlockContext): ReactNode[];
52
+ interface BlockProps {
53
+ blockKey: string;
54
+ node: PMNode;
55
+ ctx: RenderContext;
56
+ bctx: BlockContext;
57
+ }
58
+ /** A top-level block of a long document, in the box its height is measured
59
+ * by (./virtual.ts). */
60
+ interface RowProps extends BlockProps {
61
+ at: number;
62
+ register: (key: string, at: number, node: unknown) => void;
63
+ }
64
+ /** The top-level blocks `first` to `last` (exclusive) of a long document —
65
+ * the window ./virtual.ts keeps — each in a box of its own to measure. */
66
+ export declare function renderBlockRange(doc: PMNode, first: number, last: number, ctx: RenderContext, register: RowProps['register']): ReactNode[];
67
+ export type { BlockDecorations };
68
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/rich-text-editor/render.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,aAAa,EAAgB,SAAS,EAAE,MAAM,OAAO,CAAC;AAIpE,OAAO,KAAK,EAAE,IAAI,IAAI,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAQxD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAIlE;uEACuE;AACvE,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,iCAAiC;AACjC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb;8EAC0E;IAC1E,MAAM,IAAI,MAAM,GAAG,SAAS,CAAC;IAC7B,+CAA+C;IAC/C,QAAQ,EAAE,OAAO,CAAC;IAClB;;gCAE4B;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,4EAA4E;IAC5E,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACvD,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,cAAc,CAAC;CACtB;AAED;;2EAE2E;AAC3E,MAAM,WAAW,SAAS;IACxB,MAAM,CACJ,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,KAAK,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GACxC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACtB;AAED;8CAC8C;AAC9C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACnE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,SAAS,CAAC;CAC/C;AAkED,0EAA0E;AAC1E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,MAAM,EACpB,GAAG,EAAE,aAAa,EAClB,IAAI,GAAE,YAAoB,GACzB,SAAS,EAAE,CAQb;AAED,UAAU,UAAU;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,YAAY,CAAC;CACpB;AA6ED;yBACyB;AACzB,UAAU,QAAS,SAAQ,UAAU;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5D;AAyBD;2EAC2E;AAC3E,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,aAAa,EAClB,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,GAC7B,SAAS,EAAE,CAkBb;AAgfD,YAAY,EAAE,gBAAgB,EAAE,CAAC"}