@react-x11/components 0.8.0 → 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 (323) hide show
  1. package/README.md +95 -34
  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/embed/client.d.ts +48 -3
  7. package/dist/embed/client.d.ts.map +1 -1
  8. package/dist/embed/client.js +79 -5
  9. package/dist/embed/client.js.map +1 -1
  10. package/dist/embed/index.d.ts +1 -1
  11. package/dist/embed/index.d.ts.map +1 -1
  12. package/dist/embed/index.js +1 -1
  13. package/dist/embed/index.js.map +1 -1
  14. package/dist/html/node.d.ts +3 -1
  15. package/dist/html/node.d.ts.map +1 -1
  16. package/dist/html/node.js +7 -5
  17. package/dist/html/node.js.map +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +1 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/{markdown → internal/markdown}/ast.d.ts +12 -0
  23. package/dist/internal/markdown/ast.d.ts.map +1 -0
  24. package/dist/internal/markdown/ast.js +22 -0
  25. package/dist/internal/markdown/ast.js.map +1 -0
  26. package/dist/internal/markdown/parse.d.ts.map +1 -0
  27. package/dist/{markdown → internal/markdown}/parse.js +112 -22
  28. package/dist/internal/markdown/parse.js.map +1 -0
  29. package/dist/internal/markdown/stringify.d.ts +4 -0
  30. package/dist/internal/markdown/stringify.d.ts.map +1 -0
  31. package/dist/internal/markdown/stringify.js +684 -0
  32. package/dist/internal/markdown/stringify.js.map +1 -0
  33. package/dist/internal/markdown/tags.d.ts.map +1 -0
  34. package/dist/internal/markdown/tags.js.map +1 -0
  35. package/dist/internal/scroll.d.ts +3 -2
  36. package/dist/internal/scroll.d.ts.map +1 -1
  37. package/dist/internal/scroll.js +1 -0
  38. package/dist/internal/scroll.js.map +1 -1
  39. package/dist/maps/anchors.d.ts +98 -0
  40. package/dist/maps/anchors.d.ts.map +1 -0
  41. package/dist/maps/anchors.js +531 -0
  42. package/dist/maps/anchors.js.map +1 -0
  43. package/dist/maps/controller.d.ts +283 -0
  44. package/dist/maps/controller.d.ts.map +1 -0
  45. package/dist/maps/controller.js +743 -0
  46. package/dist/maps/controller.js.map +1 -0
  47. package/dist/maps/gl/buckets.d.ts +95 -0
  48. package/dist/maps/gl/buckets.d.ts.map +1 -0
  49. package/dist/maps/gl/buckets.js +362 -0
  50. package/dist/maps/gl/buckets.js.map +1 -0
  51. package/dist/maps/gl/build-worker.d.ts +13 -0
  52. package/dist/maps/gl/build-worker.d.ts.map +1 -0
  53. package/dist/maps/gl/build-worker.js +44 -0
  54. package/dist/maps/gl/build-worker.js.map +1 -0
  55. package/dist/maps/gl/color.d.ts +8 -0
  56. package/dist/maps/gl/color.d.ts.map +1 -0
  57. package/dist/maps/gl/color.js +57 -0
  58. package/dist/maps/gl/color.js.map +1 -0
  59. package/dist/maps/gl/cover.d.ts +51 -0
  60. package/dist/maps/gl/cover.d.ts.map +1 -0
  61. package/dist/maps/gl/cover.js +124 -0
  62. package/dist/maps/gl/cover.js.map +1 -0
  63. package/dist/maps/gl/index.d.ts +3 -0
  64. package/dist/maps/gl/index.d.ts.map +1 -0
  65. package/dist/maps/gl/index.js +20 -0
  66. package/dist/maps/gl/index.js.map +1 -0
  67. package/dist/maps/gl/markers.d.ts +28 -0
  68. package/dist/maps/gl/markers.d.ts.map +1 -0
  69. package/dist/maps/gl/markers.js +60 -0
  70. package/dist/maps/gl/markers.js.map +1 -0
  71. package/dist/maps/gl/overlays.d.ts +68 -0
  72. package/dist/maps/gl/overlays.d.ts.map +1 -0
  73. package/dist/maps/gl/overlays.js +300 -0
  74. package/dist/maps/gl/overlays.js.map +1 -0
  75. package/dist/maps/gl/pane.d.ts +12 -0
  76. package/dist/maps/gl/pane.d.ts.map +1 -0
  77. package/dist/maps/gl/pane.js +37 -0
  78. package/dist/maps/gl/pane.js.map +1 -0
  79. package/dist/maps/gl/placement.d.ts +111 -0
  80. package/dist/maps/gl/placement.d.ts.map +1 -0
  81. package/dist/maps/gl/placement.js +567 -0
  82. package/dist/maps/gl/placement.js.map +1 -0
  83. package/dist/maps/gl/renderer.d.ts +352 -0
  84. package/dist/maps/gl/renderer.d.ts.map +1 -0
  85. package/dist/maps/gl/renderer.js +1127 -0
  86. package/dist/maps/gl/renderer.js.map +1 -0
  87. package/dist/maps/gl/shaders.d.ts +120 -0
  88. package/dist/maps/gl/shaders.d.ts.map +1 -0
  89. package/dist/maps/gl/shaders.js +451 -0
  90. package/dist/maps/gl/shaders.js.map +1 -0
  91. package/dist/maps/gl/store.d.ts +115 -0
  92. package/dist/maps/gl/store.d.ts.map +1 -0
  93. package/dist/maps/gl/store.js +469 -0
  94. package/dist/maps/gl/store.js.map +1 -0
  95. package/dist/maps/gl/text.d.ts +154 -0
  96. package/dist/maps/gl/text.d.ts.map +1 -0
  97. package/dist/maps/gl/text.js +382 -0
  98. package/dist/maps/gl/text.js.map +1 -0
  99. package/dist/maps/gl/view.d.ts +54 -0
  100. package/dist/maps/gl/view.d.ts.map +1 -0
  101. package/dist/maps/gl/view.js +974 -0
  102. package/dist/maps/gl/view.js.map +1 -0
  103. package/dist/maps/index.d.ts +1 -1
  104. package/dist/maps/index.d.ts.map +1 -1
  105. package/dist/maps/index.js +216 -52
  106. package/dist/maps/index.js.map +1 -1
  107. package/dist/maps/labels.d.ts +37 -16
  108. package/dist/maps/labels.d.ts.map +1 -1
  109. package/dist/maps/labels.js +188 -119
  110. package/dist/maps/labels.js.map +1 -1
  111. package/dist/maps/node.d.ts +162 -56
  112. package/dist/maps/node.d.ts.map +1 -1
  113. package/dist/maps/node.js +607 -515
  114. package/dist/maps/node.js.map +1 -1
  115. package/dist/maps/overlay.d.ts +72 -9
  116. package/dist/maps/overlay.d.ts.map +1 -1
  117. package/dist/maps/overlay.js +108 -28
  118. package/dist/maps/overlay.js.map +1 -1
  119. package/dist/maps/paint.d.ts +3 -0
  120. package/dist/maps/paint.d.ts.map +1 -1
  121. package/dist/maps/paint.js.map +1 -1
  122. package/dist/maps/proj.d.ts +14 -0
  123. package/dist/maps/proj.d.ts.map +1 -1
  124. package/dist/maps/proj.js +28 -0
  125. package/dist/maps/proj.js.map +1 -1
  126. package/dist/maps/renderer.d.ts +69 -0
  127. package/dist/maps/renderer.d.ts.map +1 -0
  128. package/dist/maps/renderer.js +66 -0
  129. package/dist/maps/renderer.js.map +1 -0
  130. package/dist/maps/sources.d.ts +25 -3
  131. package/dist/maps/sources.d.ts.map +1 -1
  132. package/dist/maps/sources.js +17 -0
  133. package/dist/maps/sources.js.map +1 -1
  134. package/dist/maps/theme.d.ts +19 -0
  135. package/dist/maps/theme.d.ts.map +1 -0
  136. package/dist/maps/theme.js +44 -0
  137. package/dist/maps/theme.js.map +1 -0
  138. package/dist/maps/tiles.d.ts +117 -17
  139. package/dist/maps/tiles.d.ts.map +1 -1
  140. package/dist/maps/tiles.js +163 -30
  141. package/dist/maps/tiles.js.map +1 -1
  142. package/dist/maps/types.d.ts +188 -20
  143. package/dist/maps/types.d.ts.map +1 -1
  144. package/dist/markdown/expressions.d.ts +1 -1
  145. package/dist/markdown/expressions.d.ts.map +1 -1
  146. package/dist/markdown/expressions.js.map +1 -1
  147. package/dist/markdown/index.d.ts +7 -6
  148. package/dist/markdown/index.d.ts.map +1 -1
  149. package/dist/markdown/index.js +9 -7
  150. package/dist/markdown/index.js.map +1 -1
  151. package/dist/markdown/spans.d.ts +1 -1
  152. package/dist/markdown/spans.d.ts.map +1 -1
  153. package/dist/media-player/index.d.ts +11 -3
  154. package/dist/media-player/index.d.ts.map +1 -1
  155. package/dist/media-player/index.js +13 -2
  156. package/dist/media-player/index.js.map +1 -1
  157. package/dist/rich-text-editor/clipboard.d.ts +23 -0
  158. package/dist/rich-text-editor/clipboard.d.ts.map +1 -0
  159. package/dist/rich-text-editor/clipboard.js +307 -0
  160. package/dist/rich-text-editor/clipboard.js.map +1 -0
  161. package/dist/rich-text-editor/collab.d.ts +32 -0
  162. package/dist/rich-text-editor/collab.d.ts.map +1 -0
  163. package/dist/rich-text-editor/collab.js +55 -0
  164. package/dist/rich-text-editor/collab.js.map +1 -0
  165. package/dist/rich-text-editor/commands.d.ts +50 -0
  166. package/dist/rich-text-editor/commands.d.ts.map +1 -0
  167. package/dist/rich-text-editor/commands.js +376 -0
  168. package/dist/rich-text-editor/commands.js.map +1 -0
  169. package/dist/rich-text-editor/drag.d.ts +68 -0
  170. package/dist/rich-text-editor/drag.d.ts.map +1 -0
  171. package/dist/rich-text-editor/drag.js +148 -0
  172. package/dist/rich-text-editor/drag.js.map +1 -0
  173. package/dist/rich-text-editor/html.d.ts +145 -0
  174. package/dist/rich-text-editor/html.d.ts.map +1 -0
  175. package/dist/rich-text-editor/html.js +516 -0
  176. package/dist/rich-text-editor/html.js.map +1 -0
  177. package/dist/rich-text-editor/index.d.ts +263 -0
  178. package/dist/rich-text-editor/index.d.ts.map +1 -0
  179. package/dist/rich-text-editor/index.js +822 -0
  180. package/dist/rich-text-editor/index.js.map +1 -0
  181. package/dist/rich-text-editor/inline.d.ts +94 -0
  182. package/dist/rich-text-editor/inline.d.ts.map +1 -0
  183. package/dist/rich-text-editor/inline.js +252 -0
  184. package/dist/rich-text-editor/inline.js.map +1 -0
  185. package/dist/rich-text-editor/keymap.d.ts +71 -0
  186. package/dist/rich-text-editor/keymap.d.ts.map +1 -0
  187. package/dist/rich-text-editor/keymap.js +393 -0
  188. package/dist/rich-text-editor/keymap.js.map +1 -0
  189. package/dist/rich-text-editor/keys.d.ts +29 -0
  190. package/dist/rich-text-editor/keys.d.ts.map +1 -0
  191. package/dist/rich-text-editor/keys.js +93 -0
  192. package/dist/rich-text-editor/keys.js.map +1 -0
  193. package/dist/rich-text-editor/look.d.ts +71 -0
  194. package/dist/rich-text-editor/look.d.ts.map +1 -0
  195. package/dist/rich-text-editor/look.js +342 -0
  196. package/dist/rich-text-editor/look.js.map +1 -0
  197. package/dist/rich-text-editor/markdown.d.ts +18 -0
  198. package/dist/rich-text-editor/markdown.d.ts.map +1 -0
  199. package/dist/rich-text-editor/markdown.js +496 -0
  200. package/dist/rich-text-editor/markdown.js.map +1 -0
  201. package/dist/rich-text-editor/nodes.d.ts +135 -0
  202. package/dist/rich-text-editor/nodes.d.ts.map +1 -0
  203. package/dist/rich-text-editor/nodes.js +397 -0
  204. package/dist/rich-text-editor/nodes.js.map +1 -0
  205. package/dist/rich-text-editor/render.d.ts +68 -0
  206. package/dist/rich-text-editor/render.d.ts.map +1 -0
  207. package/dist/rich-text-editor/render.js +500 -0
  208. package/dist/rich-text-editor/render.js.map +1 -0
  209. package/dist/rich-text-editor/schema.d.ts +16 -0
  210. package/dist/rich-text-editor/schema.d.ts.map +1 -0
  211. package/dist/rich-text-editor/schema.js +386 -0
  212. package/dist/rich-text-editor/schema.js.map +1 -0
  213. package/dist/rich-text-editor/store.d.ts +11 -0
  214. package/dist/rich-text-editor/store.d.ts.map +1 -0
  215. package/dist/rich-text-editor/store.js +43 -0
  216. package/dist/rich-text-editor/store.js.map +1 -0
  217. package/dist/rich-text-editor/suggest.d.ts +127 -0
  218. package/dist/rich-text-editor/suggest.d.ts.map +1 -0
  219. package/dist/rich-text-editor/suggest.js +0 -0
  220. package/dist/rich-text-editor/suggest.js.map +1 -0
  221. package/dist/rich-text-editor/tables.d.ts +41 -0
  222. package/dist/rich-text-editor/tables.d.ts.map +1 -0
  223. package/dist/rich-text-editor/tables.js +204 -0
  224. package/dist/rich-text-editor/tables.js.map +1 -0
  225. package/dist/rich-text-editor/toolbar.d.ts +58 -0
  226. package/dist/rich-text-editor/toolbar.d.ts.map +1 -0
  227. package/dist/rich-text-editor/toolbar.js +548 -0
  228. package/dist/rich-text-editor/toolbar.js.map +1 -0
  229. package/dist/rich-text-editor/view.d.ts +368 -0
  230. package/dist/rich-text-editor/view.d.ts.map +1 -0
  231. package/dist/rich-text-editor/view.js +1968 -0
  232. package/dist/rich-text-editor/view.js.map +1 -0
  233. package/dist/rich-text-editor/virtual.d.ts +54 -0
  234. package/dist/rich-text-editor/virtual.d.ts.map +1 -0
  235. package/dist/rich-text-editor/virtual.js +262 -0
  236. package/dist/rich-text-editor/virtual.js.map +1 -0
  237. package/dist/richtext/node.d.ts +25 -2
  238. package/dist/richtext/node.d.ts.map +1 -1
  239. package/dist/richtext/node.js +46 -24
  240. package/dist/richtext/node.js.map +1 -1
  241. package/dist/terminal/backends.d.ts +4 -1
  242. package/dist/terminal/backends.d.ts.map +1 -1
  243. package/dist/terminal/backends.js.map +1 -1
  244. package/dist/terminal/index.d.ts +18 -7
  245. package/dist/terminal/index.d.ts.map +1 -1
  246. package/dist/terminal/index.js +28 -11
  247. package/dist/terminal/index.js.map +1 -1
  248. package/package.json +23 -4
  249. package/src/charts/node.ts +6 -2
  250. package/src/embed/client.ts +102 -8
  251. package/src/embed/index.ts +2 -0
  252. package/src/html/node.ts +7 -5
  253. package/src/index.ts +2 -0
  254. package/src/{markdown → internal/markdown}/ast.ts +24 -7
  255. package/src/{markdown → internal/markdown}/parse.ts +134 -24
  256. package/src/internal/markdown/stringify.ts +772 -0
  257. package/src/internal/scroll.ts +5 -3
  258. package/src/maps/anchors.ts +607 -0
  259. package/src/maps/controller.ts +999 -0
  260. package/src/maps/gl/buckets.ts +457 -0
  261. package/src/maps/gl/build-worker.ts +55 -0
  262. package/src/maps/gl/color.ts +62 -0
  263. package/src/maps/gl/cover.ts +170 -0
  264. package/src/maps/gl/index.ts +23 -0
  265. package/src/maps/gl/markers.ts +83 -0
  266. package/src/maps/gl/overlays.ts +379 -0
  267. package/src/maps/gl/pane.ts +42 -0
  268. package/src/maps/gl/placement.ts +816 -0
  269. package/src/maps/gl/renderer.ts +1576 -0
  270. package/src/maps/gl/shaders.ts +486 -0
  271. package/src/maps/gl/store.ts +566 -0
  272. package/src/maps/gl/text.ts +495 -0
  273. package/src/maps/gl/view.ts +1224 -0
  274. package/src/maps/index.ts +270 -81
  275. package/src/maps/labels.ts +214 -121
  276. package/src/maps/node.ts +763 -629
  277. package/src/maps/overlay.ts +148 -43
  278. package/src/maps/paint.ts +3 -0
  279. package/src/maps/proj.ts +31 -0
  280. package/src/maps/renderer.ts +155 -0
  281. package/src/maps/sources.ts +38 -3
  282. package/src/maps/theme.ts +51 -0
  283. package/src/maps/tiles.ts +191 -33
  284. package/src/maps/types.ts +188 -20
  285. package/src/markdown/expressions.ts +5 -1
  286. package/src/markdown/index.ts +14 -11
  287. package/src/markdown/spans.ts +1 -1
  288. package/src/media-player/index.ts +18 -4
  289. package/src/rich-text-editor/clipboard.ts +439 -0
  290. package/src/rich-text-editor/collab.ts +91 -0
  291. package/src/rich-text-editor/commands.ts +448 -0
  292. package/src/rich-text-editor/dom-globals.d.ts +23 -0
  293. package/src/rich-text-editor/drag.ts +211 -0
  294. package/src/rich-text-editor/html.ts +619 -0
  295. package/src/rich-text-editor/index.ts +1331 -0
  296. package/src/rich-text-editor/inline.ts +345 -0
  297. package/src/rich-text-editor/keymap.ts +510 -0
  298. package/src/rich-text-editor/keys.ts +119 -0
  299. package/src/rich-text-editor/look.ts +427 -0
  300. package/src/rich-text-editor/markdown.ts +653 -0
  301. package/src/rich-text-editor/nodes.ts +497 -0
  302. package/src/rich-text-editor/render.ts +800 -0
  303. package/src/rich-text-editor/schema.ts +431 -0
  304. package/src/rich-text-editor/store.ts +39 -0
  305. package/src/rich-text-editor/suggest.ts +597 -0
  306. package/src/rich-text-editor/tables.ts +272 -0
  307. package/src/rich-text-editor/toolbar.ts +724 -0
  308. package/src/rich-text-editor/view.ts +2287 -0
  309. package/src/rich-text-editor/virtual.ts +347 -0
  310. package/src/richtext/node.ts +59 -30
  311. package/src/terminal/backends.ts +4 -1
  312. package/src/terminal/index.ts +43 -15
  313. package/dist/markdown/ast.d.ts.map +0 -1
  314. package/dist/markdown/ast.js +0 -17
  315. package/dist/markdown/ast.js.map +0 -1
  316. package/dist/markdown/parse.d.ts.map +0 -1
  317. package/dist/markdown/parse.js.map +0 -1
  318. package/dist/markdown/tags.d.ts.map +0 -1
  319. package/dist/markdown/tags.js.map +0 -1
  320. /package/dist/{markdown → internal/markdown}/parse.d.ts +0 -0
  321. /package/dist/{markdown → internal/markdown}/tags.d.ts +0 -0
  322. /package/dist/{markdown → internal/markdown}/tags.js +0 -0
  323. /package/src/{markdown → internal/markdown}/tags.ts +0 -0
package/README.md CHANGED
@@ -11,7 +11,7 @@ needs a change to core to exist, and core does not grow to carry it.
11
11
  reference page per component, rendered from [`docs/`](docs/README.md). This
12
12
  README is the tour; that is the detail.
13
13
 
14
- > **Installable now.** The published release is `0.7.1`, and the react-x11
14
+ > **Installable now.** The published release is `0.8.0`, and the react-x11
15
15
  > range it declares resolves off the registry, so `npm install` just works.
16
16
  > `master` carries what has landed since, so use a checkout if you want
17
17
  > something not in that release yet.
@@ -58,21 +58,23 @@ all — there is no `<foreign>` to build on, which react-x11's own
58
58
  [`docs/macos.md`](https://github.com/sidorares/react-x11/blob/master/docs/macos.md)
59
59
  names this package in as much:
60
60
 
61
- | Component | On the Cocoa backend |
62
- | --------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
63
- | `<Terminal>`, embedded backends (xterm, urxvt, alacritty) | No equivalent. Pin `backend="vt"`, which is native and needs no emulator installed anyway. |
64
- | `<MediaPlayer>` | No equivalent — mpv's and VLC's `--wid` embedding is an X mechanism. |
65
- | `<TrayHost>` | Reports `status: 'unavailable'` and renders `fallback`; there is no manager selection to take. Putting an icon _in_ a Mac's status bar is the other direction, and is core's `useTray()`. |
61
+ | Component | On the Cocoa backend |
62
+ | --------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
63
+ | `<Terminal>`, embedded backends (xterm, urxvt, alacritty) | No equivalent. `backend="auto"` skips them and lands on `backend="vt"`, which is native and needs no emulator installed anyway; one named outright reports `status: 'unavailable'` and renders `fallback`. |
64
+ | `<MediaPlayer>` | No equivalent — mpv's `--wid` and VLC's `--drawable-xid` are X mechanisms. Reports `status: 'unavailable'` and renders `fallback`. |
65
+ | `<TrayHost>` | Reports `status: 'unavailable'` and renders `fallback`; there is no manager selection to take. Putting an icon _in_ a Mac's status bar is the other direction, and is core's `useTray()`. |
66
66
 
67
67
  `<Three>` is the one that looks like it should be on that list and is not: it
68
68
  draws through `<glarea>`, which the Cocoa backend implements as GL into a
69
69
  CALayer, so the scene graph runs there too — on a third GL path rather than
70
70
  none. [Its reference](docs/components/three.md) has the table.
71
71
 
72
- One sharp edge worth knowing: `<Terminal backend="auto">` probes `PATH`, and
73
- a `PATH` probe cannot see which backend the app is running on. On a Mac with
74
- XQuartz installed it will still choose that xterm, which the Cocoa backend
75
- then cannot embed. Say `backend="vt"` outright in an app that runs on both.
72
+ All three find out from the app, not the machine. `<Terminal backend="auto">`
73
+ asks whether the app can host an embedded window before it probes `PATH`, so
74
+ a Mac with XQuartz's xterm installed still gets the vt terminal on the Cocoa
75
+ backend, and an app that runs on both can leave `backend` alone. An emulator
76
+ named outright is refused out loud: `status: 'unavailable'`, `fallback`, and
77
+ an `EmbedUnsupportedError` for `onError`.
76
78
 
77
79
  The other X-shaped behaviour to know about is **PRIMARY**: selecting text
78
80
  publishing to the X PRIMARY selection, and middle-click pasting it, are what
@@ -160,30 +162,31 @@ import type { CodeEditorProps } from '@react-x11/components';
160
162
 
161
163
  ## Components
162
164
 
163
- | Component | Import | |
164
- | ---------------- | --------------------------------------- | ------------------------------------------------------------ |
165
- | `Calendar` | `@react-x11/components/calendar` | A month grid: one date or a range, any day blockable. |
166
- | `DatePicker` | `@react-x11/components/calendar` | That calendar on a popup, behind a field. |
167
- | `LineChart` … | `@react-x11/components/charts` | Cartesian charts; a million points is a normal input. |
168
- | `ColorPicker` … | `@react-x11/components/color-picker` | A colour input: field, hue, alpha, swatches, eyedropper. |
169
- | `Code` | `@react-x11/components/code` | A static code block: highlighted, selectable. |
170
- | `CodeEditor` | `@react-x11/components/code-editor` | Multiline code editing: highlighting, completion. |
171
- | `Flow` | `@react-x11/components/flow` | A directed-graph editor: nodes, edges, pan and zoom. |
172
- | `Formula` | `@react-x11/components/formula` | TeX mathematics: KaTeX layout, native ink, selectable. |
173
- | `Html` | `@react-x11/components/html` | A static HTML + CSS document, selectable, with seams. |
174
- | `Map` | `@react-x11/components/maps` | A 2D vector-tile map: pan, zoom, markers, overlays. |
175
- | `Markdown` | `@react-x11/components/markdown` | Streaming-friendly GFM with cross-block selection. |
176
- | `MediaPlayer` | `@react-x11/components/media-player` | mpv or VLC, embedded, with real transport control. |
177
- | `QmlView` | `@react-x11/components/qml` | Qt's QML language as an authoring layer. No Qt. |
178
- | `ReorderList` … | `@react-x11/components/reorder` | A drag-and-drop list, over core's own drag and drop. |
179
- | `Table` | `@react-x11/components/table` | A data table: sortable, virtualized, any row height. |
180
- | `Tabs` … | `@react-x11/components/tabs` | One visible panel at a time, five strip styles. |
181
- | `Terminal` | `@react-x11/components/terminal` | A real terminal: an embedded emulator, or its own. |
182
- | `TerminalOutput` | `@react-x11/components/terminal-output` | A captured session, rendered. `<Terminal>`'s static sibling. |
183
- | `Canvas` … | `@react-x11/components/three` | A three-fiber-shaped 3D scene over either GL backend. |
184
- | `Timeline` … | `@react-x11/components/timeline` | A run of events: a mark per step, a line between. |
185
- | `TrayHost` | `@react-x11/components/tray-host` | The system tray: applications dock their icons in. |
186
- | `Tree` | `@react-x11/components/tree` | A disclosure tree: seams throughout, and virtualized. |
165
+ | Component | Import | |
166
+ | ---------------- | ---------------------------------------- | ------------------------------------------------------------ |
167
+ | `Calendar` | `@react-x11/components/calendar` | A month grid: one date or a range, any day blockable. |
168
+ | `DatePicker` | `@react-x11/components/calendar` | That calendar on a popup, behind a field. |
169
+ | `LineChart` … | `@react-x11/components/charts` | Cartesian charts; a million points is a normal input. |
170
+ | `ColorPicker` … | `@react-x11/components/color-picker` | A colour input: field, hue, alpha, swatches, eyedropper. |
171
+ | `Code` | `@react-x11/components/code` | A static code block: highlighted, selectable. |
172
+ | `CodeEditor` | `@react-x11/components/code-editor` | Multiline code editing: highlighting, completion. |
173
+ | `Flow` | `@react-x11/components/flow` | A directed-graph editor: nodes, edges, pan and zoom. |
174
+ | `Formula` | `@react-x11/components/formula` | TeX mathematics: KaTeX layout, native ink, selectable. |
175
+ | `Html` | `@react-x11/components/html` | A static HTML + CSS document, selectable, with seams. |
176
+ | `Map` | `@react-x11/components/maps` | A 2D vector-tile map: pan, zoom, markers, overlays. |
177
+ | `Markdown` | `@react-x11/components/markdown` | Streaming-friendly GFM with cross-block selection. |
178
+ | `MediaPlayer` | `@react-x11/components/media-player` | mpv or VLC, embedded, with real transport control. |
179
+ | `QmlView` | `@react-x11/components/qml` | Qt's QML language as an authoring layer. No Qt. |
180
+ | `ReorderList` … | `@react-x11/components/reorder` | A drag-and-drop list, over core's own drag and drop. |
181
+ | `RichTextEditor` | `@react-x11/components/rich-text-editor` | WYSIWYG editing over ProseMirror; markdown in and out. |
182
+ | `Table` | `@react-x11/components/table` | A data table: sortable, virtualized, any row height. |
183
+ | `Tabs` … | `@react-x11/components/tabs` | One visible panel at a time, five strip styles. |
184
+ | `Terminal` | `@react-x11/components/terminal` | A real terminal: an embedded emulator, or its own. |
185
+ | `TerminalOutput` | `@react-x11/components/terminal-output` | A captured session, rendered. `<Terminal>`'s static sibling. |
186
+ | `Canvas` … | `@react-x11/components/three` | A three-fiber-shaped 3D scene over either GL backend. |
187
+ | `Timeline` … | `@react-x11/components/timeline` | A run of events: a mark per step, a line between. |
188
+ | `TrayHost` | `@react-x11/components/tray-host` | The system tray: applications dock their icons in. |
189
+ | `Tree` | `@react-x11/components/tree` | A disclosure tree: seams throughout, and virtualized. |
187
190
 
188
191
  Five shared modules sit underneath and are importable on their own:
189
192
  `/richtext` (the styled-text element a document selects across),
@@ -744,6 +747,48 @@ LSP `textDocument/completion` call, so a language-server client is "just
744
747
  another source". `npm run examples:code-editor` shows the three input-field
745
748
  use cases side by side.
746
749
 
750
+ ## The rich text editor
751
+
752
+ WYSIWYG editing — notes, comments, a chat composer, a document pane — with
753
+ markdown as the value unless you say otherwise:
754
+
755
+ ```jsx
756
+ import { RichTextEditor } from '@react-x11/components/rich-text-editor';
757
+
758
+ <RichTextEditor
759
+ defaultValue={note.body}
760
+ onChange={(ev) => save(ev.value)}
761
+ placeholder="Write something…"
762
+ toolbar
763
+ style={{ flexGrow: 1 }}
764
+ />;
765
+ ```
766
+
767
+ The model is [ProseMirror](https://prosemirror.net)'s — its schema,
768
+ transactions, commands and plugin system, unmodified — and the view is this
769
+ package's: blocks are `<box>` composition, every paragraph is a retained text
770
+ element that draws its own caret and selection band, and the object a plugin
771
+ is handed is an `EditorView` in everything but the DOM. So keymaps, input
772
+ rules, history and decoration plugins written for a browser run as they are;
773
+ the ones that reach into the DOM do not. The document is GFM — headings,
774
+ marks, links, nested and task lists, quotes, fenced code highlighted by the
775
+ same language seam as `<CodeEditor>`, tables — with the markdown shortcuts
776
+ people type anyway (`# `, `- `, `[ ] `, `**bold**`), undo, a clipboard that
777
+ pastes a web page as structure and the editor's own copies back whole, the
778
+ right-click edit menu, IME preedit at the caret, and Escape then Tab to leave.
779
+
780
+ The props are one element all the way up: `value` + `onChange` never mention
781
+ ProseMirror; `toolbar`, `placeholder`, `readOnly` and `submitOnEnter` are the
782
+ behaviours an app would otherwise wire by hand; `format="html"`, `markStyles`
783
+ and `nodeViews` change what the document is written in and how its parts
784
+ look; `plugins`, `editorProps` and `schema` are ProseMirror's own seams; and
785
+ `state` + `dispatchTransaction` hand the whole `EditorState` to the app. It is
786
+ imported from its subpath only — ProseMirror's declarations name DOM globals,
787
+ and the barrel would hand that to every app. `npm run examples:rich-text-editor`
788
+ shows a notes pane beside a chat composer.
789
+ [The reference](docs/components/rich-text-editor.md) has the props;
790
+ [the PRD](docs/prd-rich-text-editor.md) has the survey and the reasons.
791
+
747
792
  ## The graph editor
748
793
 
749
794
  A directed graph you can edit — a pipeline, a state machine, a dependency
@@ -1360,6 +1405,22 @@ publish a tray icon over D-Bus, a complete panel supports both, and SNI
1360
1405
  shares nothing with this except intent — it belongs beside `<TrayHost>`
1361
1406
  rather than inside it.
1362
1407
 
1408
+ ## Applications built with react-x11
1409
+
1410
+ Both of these use this package as well as core, so they double as worked
1411
+ examples of its components inside a real program:
1412
+
1413
+ - **[react-x11-workbench](https://github.com/sidorares/react-x11-workbench)**
1414
+ (`@react-x11/workbench`) — a component workshop: develop, test and compare
1415
+ react-x11 components in isolation. It does the job Storybook does, for a
1416
+ toolkit with no browser to put an iframe in, and its sidebar is `<Tree>`.
1417
+ - **[x11-protocol-visualizer](https://github.com/sidorares/x11-protocol-visualizer)**
1418
+ (`x11vis`) — a man-in-the-middle X11 proxy with a live protocol inspector
1419
+ that decodes every request, reply, event and error down to the byte. Its
1420
+ own UI is built from `<Table>`, `<Tree>`, `<Tabs>`, `<Code>` and
1421
+ `<CodeEditor>`: an X11 client inspecting X11 clients — or, on macOS, drawn
1422
+ by AppKit through core's Cocoa backend.
1423
+
1363
1424
  ## Roadmap
1364
1425
 
1365
1426
  Candidates to move here:
@@ -85,7 +85,7 @@ export declare class ChartPlotNode extends Node {
85
85
  private _layout;
86
86
  private _cachedSpec;
87
87
  private _cachedTheme;
88
- private _host;
88
+ private _renderHost;
89
89
  private _paintCtx;
90
90
  paint(ctx: Context2D): void;
91
91
  private _paintGridAndAxes;
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/charts/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/charts/node.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EAClB,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,KAAK,EAEV,eAAe,EAGhB,MAAM,WAAW,CAAC;AAqBnB,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAc,MAAM,WAAW,CAAC;AAEvE,OAAO,KAAK,EAGV,QAAQ,EAIT,MAAM,aAAa,CAAC;AAIrB,wEAAwE;AACxE,eAAO,MAAM,OAAO,cAAc,CAAC;AAEnC;;sDAEsD;AACtD,MAAM,WAAW,eAAe;IAC9B,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IACvC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,4DAA4D;IAC5D,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAChD,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;CACzB;AAED;;kCAEkC;AAClC,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,mEAAmE;IACnE,EAAE,EAAE,MAAM,CAAC;IACX;sEACkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;KACZ,EAAE,CAAC;CACL;AAED,MAAM,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AA8E3D,qBAAa,aAAc,SAAQ,IAAI;IACrC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,aAAa,CAOjB;IACJ,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,MAAM,CAUE;IAEhB,YAAY,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAItD;IAED,OAAO,CAAC,MAAM;IAIL,UAAU,CACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI,CAKN;IAED,OAAO,CAAC,cAAc;IActB;;;;;OAKG;IACH,OAAO,CAAC,eAAe;IAcd,cAAc,IAAI,IAAI,CAO9B;IAED;sEACkE;IACzD,cAAc,CAAC,WAAW,EAAE,kBAAkB,GAAG,YAAY,CAKrE;IAID,OAAO,CAAC,YAAY;IAgBpB;uEACmE;IACnE,OAAO,CAAC,YAAY;IAcpB;;;OAGG;IACH,OAAO,CAAC,UAAU;IAuDlB;4DACwD;IACxD,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,MAAM;IAKd;+EAC2E;IAC3E,OAAO,CAAC,MAAM;IA2Bd,OAAO,CAAC,OAAO;IAsOf,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAA6C;IAQjE,OAAO,CAAC,WAAW;IAwDnB,OAAO,CAAC,SAAS,CAA4B;IAIpC,KAAK,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,CA2DnC;IAED,OAAO,CAAC,iBAAiB;IAmHzB;uBACmB;IACnB,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAG1B;IAED,OAAO,CAAC,YAAY;IAWpB;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAmEnC;CACF"}
@@ -455,7 +455,11 @@ export class ChartPlotNode extends Node {
455
455
  _cachedSpec;
456
456
  _cachedTheme;
457
457
  // --- render host ---------------------------------------------------------
458
- _host() {
458
+ // Not `_host`: core's `Node` sets a `_host` field on every node (react-x11
459
+ // 2.12 and later), and a field on the instance shadows a method of the
460
+ // same name — every chart threw in `paint`. `test/node-fields.test.ts`
461
+ // keeps the next such name from getting through.
462
+ _renderHost() {
459
463
  return {
460
464
  scatterGrid: (id, key, _n) => {
461
465
  let grid = this._scatterGrids.get(id);
@@ -549,7 +553,7 @@ export class ChartPlotNode extends Node {
549
553
  xScale: layout.xScale,
550
554
  yScale: layout.yScale,
551
555
  stats,
552
- host: this._host(),
556
+ host: this._renderHost(),
553
557
  scale: this._scale,
554
558
  };
555
559
  for (const geom of layout.geoms)
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/charts/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/charts/node.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,9 @@ import type { ExitInfo, ProcessHost, SpawnedProcess } from './host.js';
6
6
  * with no terminal emulator installed, or no mpv, is an ordinary machine.
7
7
  * Both components render their `fallback` on it, the way
8
8
  * `useDesktopCalendarEvents` reports "no bus, no ical.js" rather than
9
- * throwing.
9
+ * throwing. So is an app on a react-x11 backend that cannot embed another
10
+ * program's window at all — the native macOS one — and `error` says which of
11
+ * the two it is: a `BackendUnavailableError` or an `EmbedUnsupportedError`.
10
12
  */
11
13
  export type EmbedStatus = 'idle' | 'starting' | 'running' | 'exited' | 'unavailable';
12
14
  /**
@@ -20,6 +22,41 @@ export declare class BackendUnavailableError extends Error {
20
22
  readonly tried: readonly string[];
21
23
  constructor(what: string, tried: readonly string[]);
22
24
  }
25
+ /**
26
+ * This app cannot host another program's window at all.
27
+ *
28
+ * Embedding is XEmbed, and XEmbed is X protocol — a reparent into a
29
+ * container, the save set, ClientMessages — which only react-x11's X11
30
+ * backend has. The native macOS backend has no cross-process window
31
+ * embedding (react-x11 `docs/macos.md`, "What this is, and is not"), so there
32
+ * is no window to hand a program and nothing to spawn.
33
+ *
34
+ * `useEmbeddedClient` reports it as `status: 'unavailable'`, the status a
35
+ * `BackendUnavailableError` gets, and for the same reason: it is an ordinary
36
+ * state of a healthy app, and the component renders its `fallback`. The class
37
+ * is what tells the two apart, because "install xterm" is the wrong advice
38
+ * here.
39
+ */
40
+ export declare class EmbedUnsupportedError extends Error {
41
+ constructor();
42
+ }
43
+ /**
44
+ * Can this app host another program's window?
45
+ *
46
+ * Asked of the connection, because `<foreign>` cannot be the one to say: on
47
+ * react-x11's Cocoa backend it still calls `onReady`, with an undefined
48
+ * `windowId`, and on the headless mock mounting one throws from the commit.
49
+ * The test is `<TrayHost>`'s — its
50
+ * manager reports `'unavailable'` when `app.X` has no `SetSelectionOwner`,
51
+ * which is what core's Cocoa `X` lacks (react-x11 `src/cocoa/app.js`: a stub
52
+ * carrying only the few requests core makes there) and what the headless
53
+ * mock's `X` lacks too. `ReparentWindow` is asked as well, because it is the
54
+ * request an embed is actually made of.
55
+ *
56
+ * Takes the app rather than calling `useApp()`, so it can be asked off the
57
+ * render path — of `createRoot()`'s result, before there is a tree.
58
+ */
59
+ export declare function canHostXEmbed(app: unknown): boolean;
23
60
  /** What to run, and what to do with it once it is running. */
24
61
  export interface LaunchPlan {
25
62
  /** Absolute path or a name on `PATH`. */
@@ -68,12 +105,14 @@ export interface UseEmbeddedClientOptions {
68
105
  backend?: string;
69
106
  }) => void;
70
107
  onExit?: (info: ExitInfo) => void;
71
- /** Spawn failures and missing backends alike. */
108
+ /** Spawn failures, missing backends, and an app that cannot host an
109
+ * embedded window at all (`EmbedUnsupportedError`). */
72
110
  onError?: (err: Error) => void;
73
111
  }
74
112
  export interface EmbeddedClient {
75
113
  status: EmbedStatus;
76
- /** The last failure, including a `BackendUnavailableError`. */
114
+ /** The last failure, including a `BackendUnavailableError` or an
115
+ * `EmbedUnsupportedError`. */
77
116
  error: Error | null;
78
117
  pid: number | null;
79
118
  /** The container window, once `<foreign>` has one. */
@@ -101,6 +140,12 @@ export interface EmbeddedClient {
101
140
  * element's props — style, focus, the `onEmbedded`/`onClientGone` handlers a
102
141
  * component may want to compose with — belong to the component, not to the
103
142
  * lifecycle.
143
+ *
144
+ * **On an app that cannot host XEmbed** (`canHostXEmbed` is false — the
145
+ * native macOS backend), `status` is `'unavailable'` from the first render,
146
+ * `error` is an `EmbedUnsupportedError`, and nothing is probed or spawned.
147
+ * The caller should render no `<foreign>` there either: it has no socket to
148
+ * be.
104
149
  */
105
150
  export declare function useEmbeddedClient(options: UseEmbeddedClientOptions): EmbeddedClient;
106
151
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/embed/client.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,MAAM,WAAW,GACrB,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE7D;;;;;;GAMG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAElC,YAAY,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,EAQjD;CACF;AAED,8DAA8D;AAC9D,MAAM,WAAW,UAAU;IACzB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,CACL,OAAO,EAAE,cAAc,GACtB,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IACtD,+DAA+D;IAC/D,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED,oEAAoE;AACpE,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAExE,MAAM,WAAW,wBAAwB;IACvC;;;;;;;;;;OAUG;IACH,IAAI,EAAE,WAAW,CAAC;IAClB,uCAAuC;IACvC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACxE,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAClC,iDAAiD;IACjD,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,WAAW,CAAC;IACpB,+DAA+D;IAC/D,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,sDAAsD;IACtD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,qCAAqC;IACrC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,4CAA4C;IAC5C,WAAW,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAClD,mEAAmE;IACnE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,qDAAqD;IACrD,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;CACtC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,wBAAwB,GAChC,cAAc,CAkJhB;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAAC,CAAC,SAAS;IAAE,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,EAC5E,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,SAAS,CAAC,EAAE,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAUvC"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/embed/client.ts"],"names":[],"mappings":"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"}
@@ -12,8 +12,12 @@
12
12
  // `onReady` — because core's `<foreign>` already owns the protocol
13
13
  // (react-x11#269, ntk#246): the reparent, the save set, `_XEMBED_INFO`, the
14
14
  // synthetic ConfigureNotify, and handing the client back on unmount without
15
- // ever destroying it.
15
+ // ever destroying it. The one thing asked of the connection directly is
16
+ // whether it has that protocol at all (`canHostXEmbed`), because on a backend
17
+ // that does not, `onReady` is no evidence either way: the Cocoa backend's
18
+ // `<foreign>` still calls it, with `windowId: undefined`.
16
19
  import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
20
+ import { useApp } from 'react-x11';
17
21
  import { nodeProcessHost } from './host.js';
18
22
  /**
19
23
  * No backend for this component is installed.
@@ -32,6 +36,52 @@ export class BackendUnavailableError extends Error {
32
36
  this.tried = tried;
33
37
  }
34
38
  }
39
+ /**
40
+ * This app cannot host another program's window at all.
41
+ *
42
+ * Embedding is XEmbed, and XEmbed is X protocol — a reparent into a
43
+ * container, the save set, ClientMessages — which only react-x11's X11
44
+ * backend has. The native macOS backend has no cross-process window
45
+ * embedding (react-x11 `docs/macos.md`, "What this is, and is not"), so there
46
+ * is no window to hand a program and nothing to spawn.
47
+ *
48
+ * `useEmbeddedClient` reports it as `status: 'unavailable'`, the status a
49
+ * `BackendUnavailableError` gets, and for the same reason: it is an ordinary
50
+ * state of a healthy app, and the component renders its `fallback`. The class
51
+ * is what tells the two apart, because "install xterm" is the wrong advice
52
+ * here.
53
+ */
54
+ export class EmbedUnsupportedError extends Error {
55
+ constructor() {
56
+ super('@react-x11/components: this react-x11 backend cannot embed another ' +
57
+ "program's window — XEmbed needs the X11 backend, and the native " +
58
+ 'macOS one has no cross-process window embedding at all. Pass ' +
59
+ '`fallback` to render something else.');
60
+ this.name = 'EmbedUnsupportedError';
61
+ }
62
+ }
63
+ /**
64
+ * Can this app host another program's window?
65
+ *
66
+ * Asked of the connection, because `<foreign>` cannot be the one to say: on
67
+ * react-x11's Cocoa backend it still calls `onReady`, with an undefined
68
+ * `windowId`, and on the headless mock mounting one throws from the commit.
69
+ * The test is `<TrayHost>`'s — its
70
+ * manager reports `'unavailable'` when `app.X` has no `SetSelectionOwner`,
71
+ * which is what core's Cocoa `X` lacks (react-x11 `src/cocoa/app.js`: a stub
72
+ * carrying only the few requests core makes there) and what the headless
73
+ * mock's `X` lacks too. `ReparentWindow` is asked as well, because it is the
74
+ * request an embed is actually made of.
75
+ *
76
+ * Takes the app rather than calling `useApp()`, so it can be asked off the
77
+ * render path — of `createRoot()`'s result, before there is a tree.
78
+ */
79
+ export function canHostXEmbed(app) {
80
+ const X = app?.X;
81
+ return (!!X &&
82
+ typeof X.SetSelectionOwner === 'function' &&
83
+ typeof X.ReparentWindow === 'function');
84
+ }
35
85
  /**
36
86
  * Run a program inside a `<foreign>`.
37
87
  *
@@ -44,10 +94,19 @@ export class BackendUnavailableError extends Error {
44
94
  * element's props — style, focus, the `onEmbedded`/`onClientGone` handlers a
45
95
  * component may want to compose with — belong to the component, not to the
46
96
  * lifecycle.
97
+ *
98
+ * **On an app that cannot host XEmbed** (`canHostXEmbed` is false — the
99
+ * native macOS backend), `status` is `'unavailable'` from the first render,
100
+ * `error` is an `EmbedUnsupportedError`, and nothing is probed or spawned.
101
+ * The caller should render no `<foreign>` there either: it has no socket to
102
+ * be.
47
103
  */
48
104
  export function useEmbeddedClient(options) {
49
105
  const { plan, enabled = true, stopSignal = 'SIGTERM' } = options;
50
106
  const host = useMemo(() => options.host ?? nodeProcessHost(), [options.host]);
107
+ // Asked every render: two property reads, and an app does not change
108
+ // backend under a mounted tree.
109
+ const embeddable = canHostXEmbed(useApp());
51
110
  const [windowId, setWindowId] = useState(null);
52
111
  const [status, setStatus] = useState('idle');
53
112
  const [error, setError] = useState(null);
@@ -62,6 +121,21 @@ export function useEmbeddedClient(options) {
62
121
  // fresh arrow function every render does not restart its child.
63
122
  const handlers = useRef(options);
64
123
  handlers.current = options;
124
+ // No XEmbed on this connection means no window for a program to draw into,
125
+ // whatever `<foreign>` reports: the Cocoa backend's calls `onReady` with an
126
+ // undefined `windowId`, which slipped past a `windowId === null` guard and
127
+ // spawned `xterm -into undefined`. So the app decides, and the lifecycle
128
+ // below starts nothing without it. Decided while rendering rather than in
129
+ // an effect, so the first commit can already be the `fallback`, and
130
+ // reported from an effect keyed on the error itself, so `onError` hears it
131
+ // once rather than once per plan. `enabled` false still means "hold off": a
132
+ // pane nobody can see yet reports nothing.
133
+ const unsupported = enabled && !embeddable;
134
+ const unsupportedError = useMemo(() => (unsupported ? new EmbedUnsupportedError() : null), [unsupported]);
135
+ useEffect(() => {
136
+ if (unsupportedError)
137
+ handlers.current.onError?.(unsupportedError);
138
+ }, [unsupportedError]);
65
139
  const handleReady = useCallback((info) => {
66
140
  setWindowId(info.windowId);
67
141
  }, []);
@@ -71,7 +145,7 @@ export function useEmbeddedClient(options) {
71
145
  return child ? child.kill(sig) : false;
72
146
  }, []);
73
147
  useEffect(() => {
74
- if (!enabled || windowId === null) {
148
+ if (!enabled || !embeddable || windowId === null) {
75
149
  setStatus('idle');
76
150
  return undefined;
77
151
  }
@@ -167,10 +241,10 @@ export function useEmbeddedClient(options) {
167
241
  void planned?.dispose?.();
168
242
  };
169
243
  // `plan` is the restart signal — see the note on the option.
170
- }, [enabled, windowId, plan, host, stopSignal, generation]);
244
+ }, [enabled, embeddable, windowId, plan, host, stopSignal, generation]);
171
245
  return {
172
- status,
173
- error,
246
+ status: unsupported ? 'unavailable' : status,
247
+ error: unsupportedError ?? error,
174
248
  pid,
175
249
  windowId,
176
250
  backend,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/embed/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/embed/client.ts"],"names":[],"mappings":"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"}