@react-x11/components 0.1.0 → 0.2.1

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 (788) hide show
  1. package/README.md +979 -21
  2. package/dist/ansi/cast.d.ts +48 -0
  3. package/dist/ansi/cast.d.ts.map +1 -0
  4. package/dist/ansi/cast.js +135 -0
  5. package/dist/ansi/cast.js.map +1 -0
  6. package/dist/ansi/index.d.ts +10 -0
  7. package/dist/ansi/index.d.ts.map +1 -0
  8. package/dist/ansi/index.js +27 -0
  9. package/dist/ansi/index.js.map +1 -0
  10. package/dist/ansi/palette.d.ts +79 -0
  11. package/dist/ansi/palette.d.ts.map +1 -0
  12. package/dist/ansi/palette.js +155 -0
  13. package/dist/ansi/palette.js.map +1 -0
  14. package/dist/ansi/parse.d.ts +114 -0
  15. package/dist/ansi/parse.d.ts.map +1 -0
  16. package/dist/ansi/parse.js +687 -0
  17. package/dist/ansi/parse.js.map +1 -0
  18. package/dist/ansi/sgr.d.ts +87 -0
  19. package/dist/ansi/sgr.d.ts.map +1 -0
  20. package/dist/ansi/sgr.js +302 -0
  21. package/dist/ansi/sgr.js.map +1 -0
  22. package/dist/ansi/utf8.d.ts +15 -0
  23. package/dist/ansi/utf8.d.ts.map +1 -0
  24. package/dist/ansi/utf8.js +82 -0
  25. package/dist/ansi/utf8.js.map +1 -0
  26. package/dist/calendar/Calendar.d.ts +136 -0
  27. package/dist/calendar/Calendar.d.ts.map +1 -0
  28. package/dist/calendar/Calendar.js +460 -0
  29. package/dist/calendar/Calendar.js.map +1 -0
  30. package/dist/calendar/DatePicker.d.ts +52 -0
  31. package/dist/calendar/DatePicker.d.ts.map +1 -0
  32. package/dist/calendar/DatePicker.js +257 -0
  33. package/dist/calendar/DatePicker.js.map +1 -0
  34. package/dist/calendar/dates.d.ts +90 -0
  35. package/dist/calendar/dates.d.ts.map +1 -0
  36. package/dist/calendar/dates.js +236 -0
  37. package/dist/calendar/dates.js.map +1 -0
  38. package/dist/calendar/index.d.ts +8 -0
  39. package/dist/calendar/index.d.ts.map +1 -0
  40. package/dist/calendar/index.js +15 -0
  41. package/dist/calendar/index.js.map +1 -0
  42. package/dist/charts/components.d.ts +141 -0
  43. package/dist/charts/components.d.ts.map +1 -0
  44. package/dist/charts/components.js +580 -0
  45. package/dist/charts/components.js.map +1 -0
  46. package/dist/charts/data.d.ts +198 -0
  47. package/dist/charts/data.d.ts.map +1 -0
  48. package/dist/charts/data.js +616 -0
  49. package/dist/charts/data.js.map +1 -0
  50. package/dist/charts/hx.d.ts +21 -0
  51. package/dist/charts/hx.d.ts.map +1 -0
  52. package/dist/charts/hx.js +15 -0
  53. package/dist/charts/hx.js.map +1 -0
  54. package/dist/charts/index.d.ts +27 -0
  55. package/dist/charts/index.d.ts.map +1 -0
  56. package/dist/charts/index.js +38 -0
  57. package/dist/charts/index.js.map +1 -0
  58. package/dist/charts/node.d.ts +96 -0
  59. package/dist/charts/node.d.ts.map +1 -0
  60. package/dist/charts/node.js +720 -0
  61. package/dist/charts/node.js.map +1 -0
  62. package/dist/charts/render.d.ts +153 -0
  63. package/dist/charts/render.d.ts.map +1 -0
  64. package/dist/charts/render.js +762 -0
  65. package/dist/charts/render.js.map +1 -0
  66. package/dist/charts/scale.d.ts +42 -0
  67. package/dist/charts/scale.d.ts.map +1 -0
  68. package/dist/charts/scale.js +173 -0
  69. package/dist/charts/scale.js.map +1 -0
  70. package/dist/charts/spec.d.ts +91 -0
  71. package/dist/charts/spec.d.ts.map +1 -0
  72. package/dist/charts/spec.js +33 -0
  73. package/dist/charts/spec.js.map +1 -0
  74. package/dist/charts/timers.d.ts +6 -0
  75. package/dist/charts/timers.d.ts.map +1 -0
  76. package/dist/charts/timers.js +14 -0
  77. package/dist/charts/timers.js.map +1 -0
  78. package/dist/code/hx.d.ts +24 -0
  79. package/dist/code/hx.d.ts.map +1 -0
  80. package/dist/code/hx.js +25 -0
  81. package/dist/code/hx.js.map +1 -0
  82. package/dist/code/index.d.ts +45 -0
  83. package/dist/code/index.d.ts.map +1 -0
  84. package/dist/code/index.js +93 -0
  85. package/dist/code/index.js.map +1 -0
  86. package/dist/code-editor/completion.d.ts +26 -0
  87. package/dist/code-editor/completion.d.ts.map +1 -0
  88. package/dist/code-editor/completion.js +129 -0
  89. package/dist/code-editor/completion.js.map +1 -0
  90. package/dist/code-editor/doc.d.ts +35 -0
  91. package/dist/code-editor/doc.d.ts.map +1 -0
  92. package/dist/code-editor/doc.js +162 -0
  93. package/dist/code-editor/doc.js.map +1 -0
  94. package/dist/code-editor/hx.d.ts +13 -0
  95. package/dist/code-editor/hx.d.ts.map +1 -0
  96. package/dist/code-editor/hx.js +10 -0
  97. package/dist/code-editor/hx.js.map +1 -0
  98. package/dist/code-editor/index.d.ts +88 -0
  99. package/dist/code-editor/index.d.ts.map +1 -0
  100. package/dist/code-editor/index.js +401 -0
  101. package/dist/code-editor/index.js.map +1 -0
  102. package/dist/code-editor/node.d.ts +343 -0
  103. package/dist/code-editor/node.d.ts.map +1 -0
  104. package/dist/code-editor/node.js +1521 -0
  105. package/dist/code-editor/node.js.map +1 -0
  106. package/dist/code-language/hljs.d.ts +47 -0
  107. package/dist/code-language/hljs.d.ts.map +1 -0
  108. package/dist/code-language/hljs.js +211 -0
  109. package/dist/code-language/hljs.js.map +1 -0
  110. package/dist/code-language/index.d.ts +22 -0
  111. package/dist/code-language/index.d.ts.map +1 -0
  112. package/dist/code-language/index.js +20 -0
  113. package/dist/code-language/index.js.map +1 -0
  114. package/dist/code-language/languages/glsl.d.ts +4 -0
  115. package/dist/code-language/languages/glsl.d.ts.map +1 -0
  116. package/dist/code-language/languages/glsl.js +99 -0
  117. package/dist/code-language/languages/glsl.js.map +1 -0
  118. package/dist/code-language/languages/javascript.d.ts +10 -0
  119. package/dist/code-language/languages/javascript.d.ts.map +1 -0
  120. package/dist/code-language/languages/javascript.js +360 -0
  121. package/dist/code-language/languages/javascript.js.map +1 -0
  122. package/dist/code-language/languages/json.d.ts +4 -0
  123. package/dist/code-language/languages/json.d.ts.map +1 -0
  124. package/dist/code-language/languages/json.js +68 -0
  125. package/dist/code-language/languages/json.js.map +1 -0
  126. package/dist/code-language/languages/shell.d.ts +4 -0
  127. package/dist/code-language/languages/shell.d.ts.map +1 -0
  128. package/dist/code-language/languages/shell.js +189 -0
  129. package/dist/code-language/languages/shell.js.map +1 -0
  130. package/dist/code-language/languages/sql.d.ts +11 -0
  131. package/dist/code-language/languages/sql.d.ts.map +1 -0
  132. package/dist/code-language/languages/sql.js +133 -0
  133. package/dist/code-language/languages/sql.js.map +1 -0
  134. package/dist/code-language/lezer.d.ts +24 -0
  135. package/dist/code-language/lezer.d.ts.map +1 -0
  136. package/dist/code-language/lezer.js +148 -0
  137. package/dist/code-language/lezer.js.map +1 -0
  138. package/dist/code-language/registry.d.ts +19 -0
  139. package/dist/code-language/registry.d.ts.map +1 -0
  140. package/dist/code-language/registry.js +56 -0
  141. package/dist/code-language/registry.js.map +1 -0
  142. package/dist/code-language/runs.d.ts +35 -0
  143. package/dist/code-language/runs.d.ts.map +1 -0
  144. package/dist/code-language/runs.js +88 -0
  145. package/dist/code-language/runs.js.map +1 -0
  146. package/dist/code-language/stream.d.ts +70 -0
  147. package/dist/code-language/stream.d.ts.map +1 -0
  148. package/dist/code-language/stream.js +243 -0
  149. package/dist/code-language/stream.js.map +1 -0
  150. package/dist/code-language/textmate.d.ts +27 -0
  151. package/dist/code-language/textmate.d.ts.map +1 -0
  152. package/dist/code-language/textmate.js +86 -0
  153. package/dist/code-language/textmate.js.map +1 -0
  154. package/dist/code-language/theme.d.ts +26 -0
  155. package/dist/code-language/theme.d.ts.map +1 -0
  156. package/dist/code-language/theme.js +108 -0
  157. package/dist/code-language/theme.js.map +1 -0
  158. package/dist/code-language/timers.d.ts +7 -0
  159. package/dist/code-language/timers.d.ts.map +1 -0
  160. package/dist/code-language/timers.js +22 -0
  161. package/dist/code-language/timers.js.map +1 -0
  162. package/dist/code-language/types.d.ts +173 -0
  163. package/dist/code-language/types.d.ts.map +1 -0
  164. package/dist/code-language/types.js +41 -0
  165. package/dist/code-language/types.js.map +1 -0
  166. package/dist/codeblock/index.d.ts +69 -0
  167. package/dist/codeblock/index.d.ts.map +1 -0
  168. package/dist/codeblock/index.js +85 -0
  169. package/dist/codeblock/index.js.map +1 -0
  170. package/dist/color-picker/ColorField.d.ts +39 -0
  171. package/dist/color-picker/ColorField.d.ts.map +1 -0
  172. package/dist/color-picker/ColorField.js +239 -0
  173. package/dist/color-picker/ColorField.js.map +1 -0
  174. package/dist/color-picker/ColorPicker.d.ts +109 -0
  175. package/dist/color-picker/ColorPicker.d.ts.map +1 -0
  176. package/dist/color-picker/ColorPicker.js +757 -0
  177. package/dist/color-picker/ColorPicker.js.map +1 -0
  178. package/dist/color-picker/color.d.ts +105 -0
  179. package/dist/color-picker/color.d.ts.map +1 -0
  180. package/dist/color-picker/color.js +313 -0
  181. package/dist/color-picker/color.js.map +1 -0
  182. package/dist/color-picker/index.d.ts +8 -0
  183. package/dist/color-picker/index.d.ts.map +1 -0
  184. package/dist/color-picker/index.js +19 -0
  185. package/dist/color-picker/index.js.map +1 -0
  186. package/dist/desktop-calendar/eds.d.ts +102 -0
  187. package/dist/desktop-calendar/eds.d.ts.map +1 -0
  188. package/dist/desktop-calendar/eds.js +356 -0
  189. package/dist/desktop-calendar/eds.js.map +1 -0
  190. package/dist/desktop-calendar/ical.d.ts +63 -0
  191. package/dist/desktop-calendar/ical.d.ts.map +1 -0
  192. package/dist/desktop-calendar/ical.js +57 -0
  193. package/dist/desktop-calendar/ical.js.map +1 -0
  194. package/dist/desktop-calendar/index.d.ts +72 -0
  195. package/dist/desktop-calendar/index.d.ts.map +1 -0
  196. package/dist/desktop-calendar/index.js +213 -0
  197. package/dist/desktop-calendar/index.js.map +1 -0
  198. package/dist/embed/client.d.ts +121 -0
  199. package/dist/embed/client.d.ts.map +1 -0
  200. package/dist/embed/client.js +203 -0
  201. package/dist/embed/client.js.map +1 -0
  202. package/dist/embed/host.d.ts +96 -0
  203. package/dist/embed/host.d.ts.map +1 -0
  204. package/dist/embed/host.js +266 -0
  205. package/dist/embed/host.js.map +1 -0
  206. package/dist/embed/index.d.ts +5 -0
  207. package/dist/embed/index.d.ts.map +1 -0
  208. package/dist/embed/index.js +13 -0
  209. package/dist/embed/index.js.map +1 -0
  210. package/dist/embed/timers.d.ts +6 -0
  211. package/dist/embed/timers.d.ts.map +1 -0
  212. package/dist/embed/timers.js +16 -0
  213. package/dist/embed/timers.js.map +1 -0
  214. package/dist/flow/draw.d.ts +45 -0
  215. package/dist/flow/draw.d.ts.map +1 -0
  216. package/dist/flow/draw.js +295 -0
  217. package/dist/flow/draw.js.map +1 -0
  218. package/dist/flow/index.d.ts +64 -0
  219. package/dist/flow/index.d.ts.map +1 -0
  220. package/dist/flow/index.js +306 -0
  221. package/dist/flow/index.js.map +1 -0
  222. package/dist/flow/model.d.ts +158 -0
  223. package/dist/flow/model.d.ts.map +1 -0
  224. package/dist/flow/model.js +566 -0
  225. package/dist/flow/model.js.map +1 -0
  226. package/dist/flow/node.d.ts +429 -0
  227. package/dist/flow/node.d.ts.map +1 -0
  228. package/dist/flow/node.js +3025 -0
  229. package/dist/flow/node.js.map +1 -0
  230. package/dist/flow/paths.d.ts +43 -0
  231. package/dist/flow/paths.d.ts.map +1 -0
  232. package/dist/flow/paths.js +327 -0
  233. package/dist/flow/paths.js.map +1 -0
  234. package/dist/flow/types.d.ts +561 -0
  235. package/dist/flow/types.d.ts.map +1 -0
  236. package/dist/flow/types.js +2 -0
  237. package/dist/flow/types.js.map +1 -0
  238. package/dist/formula/hx.d.ts +24 -0
  239. package/dist/formula/hx.d.ts.map +1 -0
  240. package/dist/formula/hx.js +25 -0
  241. package/dist/formula/hx.js.map +1 -0
  242. package/dist/formula/index.d.ts +74 -0
  243. package/dist/formula/index.d.ts.map +1 -0
  244. package/dist/formula/index.js +155 -0
  245. package/dist/formula/index.js.map +1 -0
  246. package/dist/formula/katex.d.ts +78 -0
  247. package/dist/formula/katex.d.ts.map +1 -0
  248. package/dist/formula/katex.js +130 -0
  249. package/dist/formula/katex.js.map +1 -0
  250. package/dist/formula/layout.d.ts +103 -0
  251. package/dist/formula/layout.d.ts.map +1 -0
  252. package/dist/formula/layout.js +716 -0
  253. package/dist/formula/layout.js.map +1 -0
  254. package/dist/formula/node.d.ts +50 -0
  255. package/dist/formula/node.d.ts.map +1 -0
  256. package/dist/formula/node.js +351 -0
  257. package/dist/formula/node.js.map +1 -0
  258. package/dist/html/controls.d.ts +48 -0
  259. package/dist/html/controls.d.ts.map +1 -0
  260. package/dist/html/controls.js +195 -0
  261. package/dist/html/controls.js.map +1 -0
  262. package/dist/html/css/cascade.d.ts +51 -0
  263. package/dist/html/css/cascade.d.ts.map +1 -0
  264. package/dist/html/css/cascade.js +552 -0
  265. package/dist/html/css/cascade.js.map +1 -0
  266. package/dist/html/css/parse.d.ts +74 -0
  267. package/dist/html/css/parse.d.ts.map +1 -0
  268. package/dist/html/css/parse.js +464 -0
  269. package/dist/html/css/parse.js.map +1 -0
  270. package/dist/html/css/style.d.ts +142 -0
  271. package/dist/html/css/style.d.ts.map +1 -0
  272. package/dist/html/css/style.js +1145 -0
  273. package/dist/html/css/style.js.map +1 -0
  274. package/dist/html/css/ua.d.ts +5 -0
  275. package/dist/html/css/ua.d.ts.map +1 -0
  276. package/dist/html/css/ua.js +171 -0
  277. package/dist/html/css/ua.js.map +1 -0
  278. package/dist/html/css/values.d.ts +78 -0
  279. package/dist/html/css/values.d.ts.map +1 -0
  280. package/dist/html/css/values.js +330 -0
  281. package/dist/html/css/values.js.map +1 -0
  282. package/dist/html/dom.d.ts +112 -0
  283. package/dist/html/dom.d.ts.map +1 -0
  284. package/dist/html/dom.js +374 -0
  285. package/dist/html/dom.js.map +1 -0
  286. package/dist/html/hx.d.ts +24 -0
  287. package/dist/html/hx.d.ts.map +1 -0
  288. package/dist/html/hx.js +29 -0
  289. package/dist/html/hx.js.map +1 -0
  290. package/dist/html/index.d.ts +137 -0
  291. package/dist/html/index.d.ts.map +1 -0
  292. package/dist/html/index.js +339 -0
  293. package/dist/html/index.js.map +1 -0
  294. package/dist/html/layout/block.d.ts +58 -0
  295. package/dist/html/layout/block.d.ts.map +1 -0
  296. package/dist/html/layout/block.js +724 -0
  297. package/dist/html/layout/block.js.map +1 -0
  298. package/dist/html/layout/boxes.d.ts +261 -0
  299. package/dist/html/layout/boxes.d.ts.map +1 -0
  300. package/dist/html/layout/boxes.js +725 -0
  301. package/dist/html/layout/boxes.js.map +1 -0
  302. package/dist/html/layout/flex.d.ts +16 -0
  303. package/dist/html/layout/flex.d.ts.map +1 -0
  304. package/dist/html/layout/flex.js +242 -0
  305. package/dist/html/layout/flex.js.map +1 -0
  306. package/dist/html/layout/floats.d.ts +50 -0
  307. package/dist/html/layout/floats.d.ts.map +1 -0
  308. package/dist/html/layout/floats.js +110 -0
  309. package/dist/html/layout/floats.js.map +1 -0
  310. package/dist/html/layout/inline.d.ts +44 -0
  311. package/dist/html/layout/inline.d.ts.map +1 -0
  312. package/dist/html/layout/inline.js +700 -0
  313. package/dist/html/layout/inline.js.map +1 -0
  314. package/dist/html/layout/table.d.ts +5 -0
  315. package/dist/html/layout/table.d.ts.map +1 -0
  316. package/dist/html/layout/table.js +340 -0
  317. package/dist/html/layout/table.js.map +1 -0
  318. package/dist/html/node.d.ts +149 -0
  319. package/dist/html/node.d.ts.map +1 -0
  320. package/dist/html/node.js +861 -0
  321. package/dist/html/node.js.map +1 -0
  322. package/dist/html/paint.d.ts +48 -0
  323. package/dist/html/paint.d.ts.map +1 -0
  324. package/dist/html/paint.js +495 -0
  325. package/dist/html/paint.js.map +1 -0
  326. package/dist/html/resources.d.ts +48 -0
  327. package/dist/html/resources.d.ts.map +1 -0
  328. package/dist/html/resources.js +156 -0
  329. package/dist/html/resources.js.map +1 -0
  330. package/dist/index.d.ts +48 -0
  331. package/dist/index.d.ts.map +1 -0
  332. package/dist/index.js +92 -0
  333. package/dist/index.js.map +1 -0
  334. package/dist/internal/heights.d.ts +88 -0
  335. package/dist/internal/heights.d.ts.map +1 -0
  336. package/dist/internal/heights.js +203 -0
  337. package/dist/internal/heights.js.map +1 -0
  338. package/dist/internal/hx.d.ts +24 -0
  339. package/dist/internal/hx.d.ts.map +1 -0
  340. package/dist/internal/hx.js +27 -0
  341. package/dist/internal/hx.js.map +1 -0
  342. package/dist/internal/scroll.d.ts +62 -0
  343. package/dist/internal/scroll.d.ts.map +1 -0
  344. package/dist/internal/scroll.js +224 -0
  345. package/dist/internal/scroll.js.map +1 -0
  346. package/dist/internal/text.d.ts +6 -0
  347. package/dist/internal/text.d.ts.map +1 -0
  348. package/dist/internal/text.js +44 -0
  349. package/dist/internal/text.js.map +1 -0
  350. package/dist/internal/timers.d.ts +8 -0
  351. package/dist/internal/timers.d.ts.map +1 -0
  352. package/dist/internal/timers.js +22 -0
  353. package/dist/internal/timers.js.map +1 -0
  354. package/dist/internal/widget.d.ts +40 -0
  355. package/dist/internal/widget.d.ts.map +1 -0
  356. package/dist/internal/widget.js +44 -0
  357. package/dist/internal/widget.js.map +1 -0
  358. package/dist/markdown/ast.d.ts +126 -0
  359. package/dist/markdown/ast.d.ts.map +1 -0
  360. package/dist/markdown/ast.js +8 -0
  361. package/dist/markdown/ast.js.map +1 -0
  362. package/dist/markdown/hx.d.ts +24 -0
  363. package/dist/markdown/hx.d.ts.map +1 -0
  364. package/dist/markdown/hx.js +25 -0
  365. package/dist/markdown/hx.js.map +1 -0
  366. package/dist/markdown/index.d.ts +90 -0
  367. package/dist/markdown/index.d.ts.map +1 -0
  368. package/dist/markdown/index.js +413 -0
  369. package/dist/markdown/index.js.map +1 -0
  370. package/dist/markdown/parse.d.ts +8 -0
  371. package/dist/markdown/parse.d.ts.map +1 -0
  372. package/dist/markdown/parse.js +911 -0
  373. package/dist/markdown/parse.js.map +1 -0
  374. package/dist/markdown/spans.d.ts +20 -0
  375. package/dist/markdown/spans.d.ts.map +1 -0
  376. package/dist/markdown/spans.js +96 -0
  377. package/dist/markdown/spans.js.map +1 -0
  378. package/dist/media-player/backends.d.ts +64 -0
  379. package/dist/media-player/backends.d.ts.map +1 -0
  380. package/dist/media-player/backends.js +110 -0
  381. package/dist/media-player/backends.js.map +1 -0
  382. package/dist/media-player/control.d.ts +40 -0
  383. package/dist/media-player/control.d.ts.map +1 -0
  384. package/dist/media-player/control.js +44 -0
  385. package/dist/media-player/control.js.map +1 -0
  386. package/dist/media-player/hx.d.ts +24 -0
  387. package/dist/media-player/hx.d.ts.map +1 -0
  388. package/dist/media-player/hx.js +25 -0
  389. package/dist/media-player/hx.js.map +1 -0
  390. package/dist/media-player/index.d.ts +107 -0
  391. package/dist/media-player/index.d.ts.map +1 -0
  392. package/dist/media-player/index.js +219 -0
  393. package/dist/media-player/index.js.map +1 -0
  394. package/dist/media-player/mpv.d.ts +4 -0
  395. package/dist/media-player/mpv.d.ts.map +1 -0
  396. package/dist/media-player/mpv.js +120 -0
  397. package/dist/media-player/mpv.js.map +1 -0
  398. package/dist/media-player/vlc.d.ts +8 -0
  399. package/dist/media-player/vlc.d.ts.map +1 -0
  400. package/dist/media-player/vlc.js +83 -0
  401. package/dist/media-player/vlc.js.map +1 -0
  402. package/dist/richtext/index.d.ts +19 -0
  403. package/dist/richtext/index.d.ts.map +1 -0
  404. package/dist/richtext/index.js +4 -0
  405. package/dist/richtext/index.js.map +1 -0
  406. package/dist/richtext/links.d.ts +12 -0
  407. package/dist/richtext/links.d.ts.map +1 -0
  408. package/dist/richtext/links.js +64 -0
  409. package/dist/richtext/links.js.map +1 -0
  410. package/dist/richtext/menu.d.ts +11 -0
  411. package/dist/richtext/menu.d.ts.map +1 -0
  412. package/dist/richtext/menu.js +43 -0
  413. package/dist/richtext/menu.js.map +1 -0
  414. package/dist/richtext/node.d.ts +151 -0
  415. package/dist/richtext/node.d.ts.map +1 -0
  416. package/dist/richtext/node.js +255 -0
  417. package/dist/richtext/node.js.map +1 -0
  418. package/dist/richtext/runs.d.ts +92 -0
  419. package/dist/richtext/runs.d.ts.map +1 -0
  420. package/dist/richtext/runs.js +158 -0
  421. package/dist/richtext/runs.js.map +1 -0
  422. package/dist/table/hx.d.ts +24 -0
  423. package/dist/table/hx.d.ts.map +1 -0
  424. package/dist/table/hx.js +25 -0
  425. package/dist/table/hx.js.map +1 -0
  426. package/dist/table/index.d.ts +169 -0
  427. package/dist/table/index.d.ts.map +1 -0
  428. package/dist/table/index.js +890 -0
  429. package/dist/table/index.js.map +1 -0
  430. package/dist/table/rows.d.ts +136 -0
  431. package/dist/table/rows.d.ts.map +1 -0
  432. package/dist/table/rows.js +146 -0
  433. package/dist/table/rows.js.map +1 -0
  434. package/dist/terminal/backends.d.ts +105 -0
  435. package/dist/terminal/backends.d.ts.map +1 -0
  436. package/dist/terminal/backends.js +185 -0
  437. package/dist/terminal/backends.js.map +1 -0
  438. package/dist/terminal/hx.d.ts +24 -0
  439. package/dist/terminal/hx.d.ts.map +1 -0
  440. package/dist/terminal/hx.js +25 -0
  441. package/dist/terminal/hx.js.map +1 -0
  442. package/dist/terminal/index.d.ts +160 -0
  443. package/dist/terminal/index.d.ts.map +1 -0
  444. package/dist/terminal/index.js +344 -0
  445. package/dist/terminal/index.js.map +1 -0
  446. package/dist/terminal/title.d.ts +24 -0
  447. package/dist/terminal/title.d.ts.map +1 -0
  448. package/dist/terminal/title.js +129 -0
  449. package/dist/terminal/title.js.map +1 -0
  450. package/dist/terminal/vt/colors.d.ts +63 -0
  451. package/dist/terminal/vt/colors.d.ts.map +1 -0
  452. package/dist/terminal/vt/colors.js +203 -0
  453. package/dist/terminal/vt/colors.js.map +1 -0
  454. package/dist/terminal/vt/diff.d.ts +117 -0
  455. package/dist/terminal/vt/diff.d.ts.map +1 -0
  456. package/dist/terminal/vt/diff.js +358 -0
  457. package/dist/terminal/vt/diff.js.map +1 -0
  458. package/dist/terminal/vt/fonts.d.ts +92 -0
  459. package/dist/terminal/vt/fonts.d.ts.map +1 -0
  460. package/dist/terminal/vt/fonts.js +178 -0
  461. package/dist/terminal/vt/fonts.js.map +1 -0
  462. package/dist/terminal/vt/index.d.ts +78 -0
  463. package/dist/terminal/vt/index.d.ts.map +1 -0
  464. package/dist/terminal/vt/index.js +312 -0
  465. package/dist/terminal/vt/index.js.map +1 -0
  466. package/dist/terminal/vt/keys.d.ts +74 -0
  467. package/dist/terminal/vt/keys.d.ts.map +1 -0
  468. package/dist/terminal/vt/keys.js +309 -0
  469. package/dist/terminal/vt/keys.js.map +1 -0
  470. package/dist/terminal/vt/mouse.d.ts +44 -0
  471. package/dist/terminal/vt/mouse.d.ts.map +1 -0
  472. package/dist/terminal/vt/mouse.js +106 -0
  473. package/dist/terminal/vt/mouse.js.map +1 -0
  474. package/dist/terminal/vt/node.d.ts +246 -0
  475. package/dist/terminal/vt/node.d.ts.map +1 -0
  476. package/dist/terminal/vt/node.js +1068 -0
  477. package/dist/terminal/vt/node.js.map +1 -0
  478. package/dist/terminal/vt/pty.d.ts +81 -0
  479. package/dist/terminal/vt/pty.d.ts.map +1 -0
  480. package/dist/terminal/vt/pty.js +201 -0
  481. package/dist/terminal/vt/pty.js.map +1 -0
  482. package/dist/terminal/vt/renderer.d.ts +179 -0
  483. package/dist/terminal/vt/renderer.d.ts.map +1 -0
  484. package/dist/terminal/vt/renderer.js +357 -0
  485. package/dist/terminal/vt/renderer.js.map +1 -0
  486. package/dist/terminal/vt/timers.d.ts +6 -0
  487. package/dist/terminal/vt/timers.d.ts.map +1 -0
  488. package/dist/terminal/vt/timers.js +16 -0
  489. package/dist/terminal/vt/timers.js.map +1 -0
  490. package/dist/terminal/vt/xterm.d.ts +142 -0
  491. package/dist/terminal/vt/xterm.d.ts.map +1 -0
  492. package/dist/terminal/vt/xterm.js +32 -0
  493. package/dist/terminal/vt/xterm.js.map +1 -0
  494. package/dist/terminal-output/hx.d.ts +24 -0
  495. package/dist/terminal-output/hx.d.ts.map +1 -0
  496. package/dist/terminal-output/hx.js +25 -0
  497. package/dist/terminal-output/hx.js.map +1 -0
  498. package/dist/terminal-output/index.d.ts +92 -0
  499. package/dist/terminal-output/index.d.ts.map +1 -0
  500. package/dist/terminal-output/index.js +179 -0
  501. package/dist/terminal-output/index.js.map +1 -0
  502. package/dist/terminal-output/runs.d.ts +27 -0
  503. package/dist/terminal-output/runs.d.ts.map +1 -0
  504. package/dist/terminal-output/runs.js +66 -0
  505. package/dist/terminal-output/runs.js.map +1 -0
  506. package/dist/three/canvas.d.ts +46 -0
  507. package/dist/three/canvas.d.ts.map +1 -0
  508. package/dist/three/canvas.js +305 -0
  509. package/dist/three/canvas.js.map +1 -0
  510. package/dist/three/events.d.ts +64 -0
  511. package/dist/three/events.d.ts.map +1 -0
  512. package/dist/three/events.js +146 -0
  513. package/dist/three/events.js.map +1 -0
  514. package/dist/three/geometries.d.ts +89 -0
  515. package/dist/three/geometries.d.ts.map +1 -0
  516. package/dist/three/geometries.js +345 -0
  517. package/dist/three/geometries.js.map +1 -0
  518. package/dist/three/globals.d.ts +7 -0
  519. package/dist/three/globals.d.ts.map +1 -0
  520. package/dist/three/globals.js +20 -0
  521. package/dist/three/globals.js.map +1 -0
  522. package/dist/three/hx.d.ts +9 -0
  523. package/dist/three/hx.d.ts.map +1 -0
  524. package/dist/three/hx.js +10 -0
  525. package/dist/three/hx.js.map +1 -0
  526. package/dist/three/index.d.ts +22 -0
  527. package/dist/three/index.d.ts.map +1 -0
  528. package/dist/three/index.js +24 -0
  529. package/dist/three/index.js.map +1 -0
  530. package/dist/three/jsx-dev-runtime.d.ts +19 -0
  531. package/dist/three/jsx-dev-runtime.d.ts.map +1 -0
  532. package/dist/three/jsx-dev-runtime.js +2 -0
  533. package/dist/three/jsx-dev-runtime.js.map +1 -0
  534. package/dist/three/jsx-runtime.d.ts +19 -0
  535. package/dist/three/jsx-runtime.d.ts.map +1 -0
  536. package/dist/three/jsx-runtime.js +2 -0
  537. package/dist/three/jsx-runtime.js.map +1 -0
  538. package/dist/three/jsx.d.ts +198 -0
  539. package/dist/three/jsx.d.ts.map +1 -0
  540. package/dist/three/jsx.js +2 -0
  541. package/dist/three/jsx.js.map +1 -0
  542. package/dist/three/materials.d.ts +125 -0
  543. package/dist/three/materials.d.ts.map +1 -0
  544. package/dist/three/materials.js +229 -0
  545. package/dist/three/materials.js.map +1 -0
  546. package/dist/three/math.d.ts +146 -0
  547. package/dist/three/math.d.ts.map +1 -0
  548. package/dist/three/math.js +464 -0
  549. package/dist/three/math.js.map +1 -0
  550. package/dist/three/objects.d.ts +185 -0
  551. package/dist/three/objects.d.ts.map +1 -0
  552. package/dist/three/objects.js +309 -0
  553. package/dist/three/objects.js.map +1 -0
  554. package/dist/three/passes.d.ts +54 -0
  555. package/dist/three/passes.d.ts.map +1 -0
  556. package/dist/three/passes.js +78 -0
  557. package/dist/three/passes.js.map +1 -0
  558. package/dist/three/postprocess.d.ts +85 -0
  559. package/dist/three/postprocess.d.ts.map +1 -0
  560. package/dist/three/postprocess.js +503 -0
  561. package/dist/three/postprocess.js.map +1 -0
  562. package/dist/three/raycast.d.ts +24 -0
  563. package/dist/three/raycast.d.ts.map +1 -0
  564. package/dist/three/raycast.js +138 -0
  565. package/dist/three/raycast.js.map +1 -0
  566. package/dist/three/reconciler.d.ts +48 -0
  567. package/dist/three/reconciler.d.ts.map +1 -0
  568. package/dist/three/reconciler.js +416 -0
  569. package/dist/three/reconciler.js.map +1 -0
  570. package/dist/three/renderer-direct.d.ts +102 -0
  571. package/dist/three/renderer-direct.d.ts.map +1 -0
  572. package/dist/three/renderer-direct.js +782 -0
  573. package/dist/three/renderer-direct.js.map +1 -0
  574. package/dist/three/renderer-indirect.d.ts +68 -0
  575. package/dist/three/renderer-indirect.d.ts.map +1 -0
  576. package/dist/three/renderer-indirect.js +438 -0
  577. package/dist/three/renderer-indirect.js.map +1 -0
  578. package/dist/three/store.d.ts +81 -0
  579. package/dist/three/store.d.ts.map +1 -0
  580. package/dist/three/store.js +110 -0
  581. package/dist/three/store.js.map +1 -0
  582. package/dist/timeline/hx.d.ts +18 -0
  583. package/dist/timeline/hx.d.ts.map +1 -0
  584. package/dist/timeline/hx.js +10 -0
  585. package/dist/timeline/hx.js.map +1 -0
  586. package/dist/timeline/index.d.ts +152 -0
  587. package/dist/timeline/index.d.ts.map +1 -0
  588. package/dist/timeline/index.js +383 -0
  589. package/dist/timeline/index.js.map +1 -0
  590. package/dist/tray-host/hx.d.ts +24 -0
  591. package/dist/tray-host/hx.d.ts.map +1 -0
  592. package/dist/tray-host/hx.js +25 -0
  593. package/dist/tray-host/hx.js.map +1 -0
  594. package/dist/tray-host/index.d.ts +110 -0
  595. package/dist/tray-host/index.d.ts.map +1 -0
  596. package/dist/tray-host/index.js +191 -0
  597. package/dist/tray-host/index.js.map +1 -0
  598. package/dist/tray-host/manager.d.ts +137 -0
  599. package/dist/tray-host/manager.d.ts.map +1 -0
  600. package/dist/tray-host/manager.js +462 -0
  601. package/dist/tray-host/manager.js.map +1 -0
  602. package/dist/tray-host/notify.d.ts +22 -0
  603. package/dist/tray-host/notify.d.ts.map +1 -0
  604. package/dist/tray-host/notify.js +74 -0
  605. package/dist/tray-host/notify.js.map +1 -0
  606. package/dist/tray-host/protocol.d.ts +106 -0
  607. package/dist/tray-host/protocol.d.ts.map +1 -0
  608. package/dist/tray-host/protocol.js +191 -0
  609. package/dist/tray-host/protocol.js.map +1 -0
  610. package/dist/tree/hx.d.ts +24 -0
  611. package/dist/tree/hx.d.ts.map +1 -0
  612. package/dist/tree/hx.js +25 -0
  613. package/dist/tree/hx.js.map +1 -0
  614. package/dist/tree/index.d.ts +221 -0
  615. package/dist/tree/index.d.ts.map +1 -0
  616. package/dist/tree/index.js +751 -0
  617. package/dist/tree/index.js.map +1 -0
  618. package/dist/tree/internal.d.ts +18 -0
  619. package/dist/tree/internal.d.ts.map +1 -0
  620. package/dist/tree/internal.js +66 -0
  621. package/dist/tree/internal.js.map +1 -0
  622. package/dist/tree/rows.d.ts +177 -0
  623. package/dist/tree/rows.d.ts.map +1 -0
  624. package/dist/tree/rows.js +179 -0
  625. package/dist/tree/rows.js.map +1 -0
  626. package/package.json +166 -12
  627. package/src/ansi/cast.ts +159 -0
  628. package/src/ansi/index.ts +53 -0
  629. package/src/ansi/palette.ts +226 -0
  630. package/src/ansi/parse.ts +780 -0
  631. package/src/ansi/sgr.ts +380 -0
  632. package/src/ansi/utf8.ts +84 -0
  633. package/src/calendar/Calendar.ts +744 -0
  634. package/src/calendar/DatePicker.ts +368 -0
  635. package/src/calendar/dates.ts +307 -0
  636. package/src/calendar/index.ts +51 -0
  637. package/src/charts/components.ts +864 -0
  638. package/src/charts/data.ts +776 -0
  639. package/src/charts/hx.ts +39 -0
  640. package/src/charts/index.ts +99 -0
  641. package/src/charts/node.ts +932 -0
  642. package/src/charts/render.ts +982 -0
  643. package/src/charts/scale.ts +214 -0
  644. package/src/charts/spec.ts +122 -0
  645. package/src/charts/timers.ts +24 -0
  646. package/src/code/hx.ts +51 -0
  647. package/src/code/index.ts +174 -0
  648. package/src/code-editor/completion.ts +161 -0
  649. package/src/code-editor/doc.ts +198 -0
  650. package/src/code-editor/hx.ts +26 -0
  651. package/src/code-editor/index.ts +615 -0
  652. package/src/code-editor/node.ts +1926 -0
  653. package/src/code-language/hljs.ts +302 -0
  654. package/src/code-language/index.ts +51 -0
  655. package/src/code-language/languages/glsl.ts +120 -0
  656. package/src/code-language/languages/javascript.ts +419 -0
  657. package/src/code-language/languages/json.ts +72 -0
  658. package/src/code-language/languages/shell.ts +221 -0
  659. package/src/code-language/languages/sql.ts +165 -0
  660. package/src/code-language/lezer.ts +190 -0
  661. package/src/code-language/registry.ts +66 -0
  662. package/src/code-language/runs.ts +128 -0
  663. package/src/code-language/stream.ts +306 -0
  664. package/src/code-language/textmate.ts +134 -0
  665. package/src/code-language/theme.ts +124 -0
  666. package/src/code-language/timers.ts +36 -0
  667. package/src/code-language/types.ts +252 -0
  668. package/src/codeblock/index.ts +146 -0
  669. package/src/color-picker/ColorField.ts +333 -0
  670. package/src/color-picker/ColorPicker.ts +1069 -0
  671. package/src/color-picker/color.ts +399 -0
  672. package/src/color-picker/index.ts +50 -0
  673. package/src/desktop-calendar/eds.ts +484 -0
  674. package/src/desktop-calendar/ical.ts +119 -0
  675. package/src/desktop-calendar/index.ts +287 -0
  676. package/src/embed/client.ts +311 -0
  677. package/src/embed/host.ts +432 -0
  678. package/src/embed/index.ts +33 -0
  679. package/src/embed/timers.ts +32 -0
  680. package/src/flow/draw.ts +418 -0
  681. package/src/flow/index.ts +473 -0
  682. package/src/flow/model.ts +687 -0
  683. package/src/flow/node.ts +3694 -0
  684. package/src/flow/paths.ts +403 -0
  685. package/src/flow/types.ts +634 -0
  686. package/src/formula/hx.ts +51 -0
  687. package/src/formula/index.ts +243 -0
  688. package/src/formula/katex.ts +209 -0
  689. package/src/formula/layout.ts +876 -0
  690. package/src/formula/node.ts +467 -0
  691. package/src/html/controls.ts +244 -0
  692. package/src/html/css/cascade.ts +606 -0
  693. package/src/html/css/parse.ts +500 -0
  694. package/src/html/css/style.ts +1371 -0
  695. package/src/html/css/ua.ts +174 -0
  696. package/src/html/css/values.ts +358 -0
  697. package/src/html/dom.ts +410 -0
  698. package/src/html/hx.ts +55 -0
  699. package/src/html/index.ts +545 -0
  700. package/src/html/layout/block.ts +876 -0
  701. package/src/html/layout/boxes.ts +981 -0
  702. package/src/html/layout/flex.ts +297 -0
  703. package/src/html/layout/floats.ts +125 -0
  704. package/src/html/layout/inline.ts +870 -0
  705. package/src/html/layout/table.ts +380 -0
  706. package/src/html/node.ts +967 -0
  707. package/src/html/paint.ts +605 -0
  708. package/src/html/resources.ts +214 -0
  709. package/src/index.ts +638 -0
  710. package/src/internal/heights.ts +222 -0
  711. package/src/internal/hx.ts +53 -0
  712. package/src/internal/scroll.ts +288 -0
  713. package/src/internal/text.ts +44 -0
  714. package/src/internal/timers.ts +44 -0
  715. package/src/internal/widget.ts +92 -0
  716. package/src/markdown/ast.ts +163 -0
  717. package/src/markdown/hx.ts +51 -0
  718. package/src/markdown/index.ts +686 -0
  719. package/src/markdown/parse.ts +1037 -0
  720. package/src/markdown/spans.ts +143 -0
  721. package/src/media-player/backends.ts +155 -0
  722. package/src/media-player/control.ts +70 -0
  723. package/src/media-player/hx.ts +51 -0
  724. package/src/media-player/index.ts +378 -0
  725. package/src/media-player/mpv.ts +146 -0
  726. package/src/media-player/vlc.ts +97 -0
  727. package/src/richtext/index.ts +42 -0
  728. package/src/richtext/links.ts +78 -0
  729. package/src/richtext/menu.ts +49 -0
  730. package/src/richtext/node.ts +406 -0
  731. package/src/richtext/runs.ts +253 -0
  732. package/src/table/hx.ts +51 -0
  733. package/src/table/index.ts +1270 -0
  734. package/src/table/rows.ts +275 -0
  735. package/src/terminal/backends.ts +242 -0
  736. package/src/terminal/hx.ts +51 -0
  737. package/src/terminal/index.ts +574 -0
  738. package/src/terminal/title.ts +172 -0
  739. package/src/terminal/vt/colors.ts +247 -0
  740. package/src/terminal/vt/diff.ts +467 -0
  741. package/src/terminal/vt/fonts.ts +233 -0
  742. package/src/terminal/vt/index.ts +443 -0
  743. package/src/terminal/vt/keys.ts +369 -0
  744. package/src/terminal/vt/mouse.ts +144 -0
  745. package/src/terminal/vt/node.ts +1242 -0
  746. package/src/terminal/vt/pty.ts +334 -0
  747. package/src/terminal/vt/renderer.ts +555 -0
  748. package/src/terminal/vt/timers.ts +31 -0
  749. package/src/terminal/vt/xterm.ts +193 -0
  750. package/src/terminal-output/hx.ts +51 -0
  751. package/src/terminal-output/index.ts +340 -0
  752. package/src/terminal-output/runs.ts +79 -0
  753. package/src/three/canvas.ts +451 -0
  754. package/src/three/events.ts +197 -0
  755. package/src/three/geometries.ts +429 -0
  756. package/src/three/globals.ts +34 -0
  757. package/src/three/hx.ts +22 -0
  758. package/src/three/index.ts +98 -0
  759. package/src/three/jsx-dev-runtime.ts +27 -0
  760. package/src/three/jsx-runtime.ts +38 -0
  761. package/src/three/jsx.ts +275 -0
  762. package/src/three/materials.ts +270 -0
  763. package/src/three/math.ts +585 -0
  764. package/src/three/objects.ts +397 -0
  765. package/src/three/passes.ts +90 -0
  766. package/src/three/postprocess.ts +677 -0
  767. package/src/three/raycast.ts +189 -0
  768. package/src/three/react-reconciler.d.ts +50 -0
  769. package/src/three/reconciler.ts +624 -0
  770. package/src/three/renderer-direct.ts +1055 -0
  771. package/src/three/renderer-indirect.ts +570 -0
  772. package/src/three/store.ts +207 -0
  773. package/src/timeline/hx.ts +31 -0
  774. package/src/timeline/index.ts +603 -0
  775. package/src/tray-host/hx.ts +51 -0
  776. package/src/tray-host/index.ts +331 -0
  777. package/src/tray-host/manager.ts +639 -0
  778. package/src/tray-host/notify.ts +102 -0
  779. package/src/tray-host/protocol.ts +235 -0
  780. package/src/tree/hx.ts +51 -0
  781. package/src/tree/index.ts +1127 -0
  782. package/src/tree/internal.ts +87 -0
  783. package/src/tree/rows.ts +334 -0
  784. package/src/index.d.ts +0 -2
  785. package/src/index.js +0 -9
  786. package/src/sparkline/index.d.ts +0 -29
  787. package/src/sparkline/index.js +0 -50
  788. package/src/sparkline/node.js +0 -72
@@ -0,0 +1,357 @@
1
+ function zeroStats() {
2
+ return {
3
+ fillRequests: 0,
4
+ glyphRequests: 0,
5
+ copies: 0,
6
+ blits: 0,
7
+ cellsFilled: 0,
8
+ glyphsDrawn: 0,
9
+ };
10
+ }
11
+ function css(rgb) {
12
+ return `#${(rgb & 0xffffff).toString(16).padStart(6, '0')}`;
13
+ }
14
+ /**
15
+ * The batching half, shared by both renderers.
16
+ *
17
+ * Order within a frame is fixed and is the whole of the "two colours per
18
+ * cell" model: backgrounds first, then glyphs over them, then decorations
19
+ * (which are foreground-coloured rules) over those.
20
+ */
21
+ class BatchingRenderer {
22
+ frame = null;
23
+ ctx = null;
24
+ /** Where this renderer's coordinates sit relative to the paint context. */
25
+ offsetX = 0;
26
+ offsetY = 0;
27
+ _fills = new Map();
28
+ _decorations = new Map();
29
+ _runs = new Map();
30
+ stats = zeroStats();
31
+ totals = zeroStats();
32
+ /** Every counter goes through here, so a total can never drift from the
33
+ * per-frame number it was added to. */
34
+ count(key, by = 1) {
35
+ this.stats[key] += by;
36
+ this.totals[key] += by;
37
+ }
38
+ begin(ctx, frame) {
39
+ this.ctx = ctx;
40
+ this.frame = frame;
41
+ this._fills.clear();
42
+ this._decorations.clear();
43
+ this._runs.clear();
44
+ this.stats.fillRequests = 0;
45
+ this.stats.glyphRequests = 0;
46
+ this.stats.copies = 0;
47
+ this.stats.blits = 0;
48
+ this.stats.cellsFilled = 0;
49
+ this.stats.glyphsDrawn = 0;
50
+ }
51
+ fillCells(row, col, count, rgb) {
52
+ const frame = this.frame;
53
+ if (!frame || count <= 0)
54
+ return;
55
+ const { cellWidth, cellHeight } = frame.metrics;
56
+ push(this._fills, rgb, [
57
+ this.offsetX + col * cellWidth,
58
+ this.offsetY + row * cellHeight,
59
+ count * cellWidth,
60
+ cellHeight,
61
+ ]);
62
+ this.count('cellsFilled', count);
63
+ }
64
+ drawRun(row, col, run, rgb) {
65
+ const frame = this.frame;
66
+ if (!frame)
67
+ return;
68
+ const { cellWidth, cellHeight, baseline } = frame.metrics;
69
+ let list = this._runs.get(rgb);
70
+ if (!list) {
71
+ list = [];
72
+ this._runs.set(rgb, list);
73
+ }
74
+ // Grid-computed, per cell: a fractional font advance can never accumulate
75
+ // into drift, because nothing ever advances a pen across the row.
76
+ list.push({
77
+ run,
78
+ x: this.offsetX + col * cellWidth,
79
+ y: this.offsetY + row * cellHeight + baseline,
80
+ });
81
+ this.count('glyphsDrawn', run.glyphs.length);
82
+ }
83
+ decorate(row, col, count, kind, rgb) {
84
+ const frame = this.frame;
85
+ if (!frame || count <= 0)
86
+ return;
87
+ const { cellWidth, cellHeight, baseline, underline, ruleHeight } = frame.metrics;
88
+ const x = this.offsetX + col * cellWidth;
89
+ const y = this.offsetY + row * cellHeight;
90
+ const w = count * cellWidth;
91
+ switch (kind) {
92
+ case 'underline':
93
+ push(this._decorations, rgb, [x, y + underline, w, ruleHeight]);
94
+ break;
95
+ case 'strike':
96
+ push(this._decorations, rgb, [
97
+ x,
98
+ y + Math.round(baseline - baseline / 3),
99
+ w,
100
+ ruleHeight,
101
+ ]);
102
+ break;
103
+ case 'overline':
104
+ push(this._decorations, rgb, [x, y, w, ruleHeight]);
105
+ break;
106
+ case 'bar':
107
+ push(this._decorations, rgb, [
108
+ x,
109
+ y,
110
+ Math.max(1, ruleHeight * 2),
111
+ cellHeight,
112
+ ]);
113
+ break;
114
+ case 'cursorUnderline':
115
+ push(this._decorations, rgb, [
116
+ x,
117
+ y + cellHeight - Math.max(2, ruleHeight * 2),
118
+ w,
119
+ Math.max(2, ruleHeight * 2),
120
+ ]);
121
+ break;
122
+ case 'box': {
123
+ // The unfocused cursor: an outline, so the cell keeps its own
124
+ // colours and the character under it stays readable.
125
+ const t = ruleHeight;
126
+ push(this._decorations, rgb, [x, y, w, t]);
127
+ push(this._decorations, rgb, [x, y + cellHeight - t, w, t]);
128
+ push(this._decorations, rgb, [x, y, t, cellHeight]);
129
+ push(this._decorations, rgb, [x + w - t, y, t, cellHeight]);
130
+ break;
131
+ }
132
+ }
133
+ }
134
+ end() {
135
+ const ctx = this.target();
136
+ if (ctx) {
137
+ this._flushRects(ctx, this._fills);
138
+ this._flushGlyphs(ctx);
139
+ this._flushRects(ctx, this._decorations);
140
+ }
141
+ this.present();
142
+ this._fills.clear();
143
+ this._decorations.clear();
144
+ this._runs.clear();
145
+ }
146
+ _flushRects(ctx, batches) {
147
+ for (const [rgb, rects] of batches) {
148
+ if (!rects.length)
149
+ continue;
150
+ ctx.fillStyle = css(rgb);
151
+ if (typeof ctx.fillRects === 'function') {
152
+ // One `Render.FillRectangles` for the whole colour (ntk#253), where
153
+ // a `fillRect` loop is one composite per rectangle.
154
+ ctx.fillRects(rects);
155
+ }
156
+ else {
157
+ for (let i = 0; i < rects.length; i += 4) {
158
+ ctx.fillRect(rects[i], rects[i + 1], rects[i + 2], rects[i + 3]);
159
+ }
160
+ }
161
+ this.count('fillRequests');
162
+ }
163
+ }
164
+ _flushGlyphs(ctx) {
165
+ if (!this._runs.size)
166
+ return;
167
+ if (typeof ctx.drawGlyphs !== 'function' ||
168
+ typeof ctx.createSolidPicture !== 'function') {
169
+ return;
170
+ }
171
+ const op = ctx.Render?.PictOp?.Over ?? 3;
172
+ for (const [rgb, runs] of this._runs) {
173
+ if (!runs.length)
174
+ continue;
175
+ // Premultiplied 0..1, which is what XRender solids are. Opaque, so the
176
+ // premultiplication is the identity.
177
+ const src = ctx.createSolidPicture(((rgb >> 16) & 0xff) / 255, ((rgb >> 8) & 0xff) / 255, (rgb & 0xff) / 255, 1);
178
+ ctx.drawGlyphs(op, src, runs);
179
+ this.count('glyphRequests');
180
+ }
181
+ }
182
+ }
183
+ function push(batches, key, rect) {
184
+ const list = batches.get(key);
185
+ if (list)
186
+ list.push(rect[0], rect[1], rect[2], rect[3]);
187
+ else
188
+ batches.set(key, rect.slice());
189
+ }
190
+ /**
191
+ * The default: a retained `Surface` the size of the grid.
192
+ *
193
+ * Why a surface of our own rather than `Window#scrollRegion` on the window's
194
+ * backing store: the window's backing store is where react-x11 paints every
195
+ * *other* node too, so scrolling it would make our correctness depend on
196
+ * nothing overlapping the band mid-frame and on core's damage bookkeeping not
197
+ * repainting our rect after we moved it. The surface decouples us from both
198
+ * for the price of one composite per frame.
199
+ */
200
+ export class RetainedRenderer extends BatchingRenderer {
201
+ kind = 'retained';
202
+ _app;
203
+ _Surface;
204
+ _surface = null;
205
+ _surfaceCtx = null;
206
+ _cols = 0;
207
+ _metrics = null;
208
+ constructor(app, Surface) {
209
+ super();
210
+ this._app = app;
211
+ this._Surface = Surface;
212
+ }
213
+ ensure(cols, rows, metrics) {
214
+ const width = Math.max(1, cols * metrics.cellWidth);
215
+ const height = Math.max(1, rows * metrics.cellHeight);
216
+ const fits = this._surface !== null &&
217
+ this._surface.width >= width &&
218
+ this._surface.height >= height &&
219
+ this._metrics?.cellWidth === metrics.cellWidth &&
220
+ this._metrics?.cellHeight === metrics.cellHeight;
221
+ this._cols = cols;
222
+ this._metrics = metrics;
223
+ if (fits)
224
+ return true;
225
+ this._release();
226
+ // Grown with headroom, the way ntk grows a window's backing store: a
227
+ // drag-resize is a stream of sizes, and reallocating on each one throws
228
+ // the whole screen away every frame of the drag.
229
+ const alloc = (n) => Math.ceil((n * 5) / 4);
230
+ try {
231
+ this._surface = new this._Surface(this._app, {
232
+ width: alloc(width),
233
+ height: alloc(height),
234
+ format: 'argb32',
235
+ });
236
+ // One context for the surface's whole life: a context is much heavier
237
+ // than it looks (a GC and a Picture), and `Surface#render` would build
238
+ // and destroy one per frame.
239
+ this._surfaceCtx = this._surface.getContext('2d');
240
+ }
241
+ catch {
242
+ this._surface = null;
243
+ this._surfaceCtx = null;
244
+ }
245
+ return false;
246
+ }
247
+ target() {
248
+ return this._surfaceCtx;
249
+ }
250
+ copyRows(srcRow, dstRow, count) {
251
+ const surface = this._surface;
252
+ const metrics = this._metrics;
253
+ if (!surface || !metrics || count <= 0 || srcRow === dstRow)
254
+ return false;
255
+ const h = metrics.cellHeight;
256
+ const ok = surface.copyWithin({
257
+ x: 0,
258
+ y: srcRow * h,
259
+ width: this._cols * metrics.cellWidth,
260
+ height: count * h,
261
+ }, 0, (dstRow - srcRow) * h);
262
+ if (ok)
263
+ this.count('copies');
264
+ return ok;
265
+ }
266
+ present() {
267
+ const ctx = this.ctx;
268
+ const frame = this.frame;
269
+ const surface = this._surface;
270
+ if (!ctx || !frame || !surface || typeof ctx.drawImage !== 'function') {
271
+ return;
272
+ }
273
+ const width = frame.cols * frame.metrics.cellWidth;
274
+ const height = frame.rows * frame.metrics.cellHeight;
275
+ if (width <= 0 || height <= 0)
276
+ return;
277
+ // The whole grid, one composite. It is the whole grid rather than the
278
+ // frame's dirty bands because `Node.paint` has just filled this node's
279
+ // background across everything the damage clip covers, and the damage we
280
+ // claimed is the grid rect — the diff decides what is *rendered*, which
281
+ // is where the cost is, and the blit is one request either way.
282
+ ctx.drawImage(surface, 0, 0, width, height, frame.originX, frame.originY, width, height);
283
+ this.count('blits');
284
+ }
285
+ _release() {
286
+ this._surfaceCtx?.destroy?.();
287
+ this._surface?.destroy();
288
+ this._surfaceCtx = null;
289
+ this._surface = null;
290
+ }
291
+ destroy() {
292
+ this._release();
293
+ }
294
+ /** Whether the surface actually exists — the probe the factory reads. */
295
+ get usable() {
296
+ return this._surface !== null;
297
+ }
298
+ }
299
+ /**
300
+ * No buffer: draw the frame straight into the paint context.
301
+ *
302
+ * `copyRows` refuses, so the caller repaints what moved. That is not a
303
+ * degradation to apologise for — `Node.paint` fills this node's background
304
+ * before we draw, so there are no old pixels to shift in the first place.
305
+ */
306
+ export class DirectRenderer extends BatchingRenderer {
307
+ kind = 'direct';
308
+ ensure() {
309
+ // Nothing is retained between frames, so every frame is a fresh one and
310
+ // the caller has to treat its mirror as empty.
311
+ return false;
312
+ }
313
+ begin(ctx, frame) {
314
+ super.begin(ctx, frame);
315
+ this.offsetX = frame.originX;
316
+ this.offsetY = frame.originY;
317
+ }
318
+ target() {
319
+ return this.ctx;
320
+ }
321
+ copyRows() {
322
+ return false;
323
+ }
324
+ present() {
325
+ // already in the window
326
+ }
327
+ destroy() {
328
+ // nothing owned
329
+ }
330
+ }
331
+ /**
332
+ * Pick a renderer for this context, or `null` when there is nothing to draw
333
+ * with — the mock backend's context has no pixel API at all, and a component
334
+ * that throws there cannot be tested headlessly (AGENTS.md).
335
+ */
336
+ const PROBE_METRICS = {
337
+ cellWidth: 1,
338
+ cellHeight: 1,
339
+ baseline: 1,
340
+ underline: 1,
341
+ ruleHeight: 1,
342
+ };
343
+ export function createRenderer(app, ctx, Surface) {
344
+ if (typeof ctx.fillRect !== 'function')
345
+ return null;
346
+ if (Surface && typeof ctx.drawImage === 'function') {
347
+ const retained = new RetainedRenderer(app, Surface);
348
+ // Probing by construction rather than by feature-sniffing the server:
349
+ // whether a pixmap can be made on this connection is the actual question.
350
+ retained.ensure(1, 1, PROBE_METRICS);
351
+ if (retained.usable)
352
+ return retained;
353
+ retained.destroy();
354
+ }
355
+ return new DirectRenderer();
356
+ }
357
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../src/terminal/vt/renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export type TimerId = unknown;
2
+ export declare function startInterval(fn: () => void, ms: number): TimerId;
3
+ export declare function stopInterval(id: TimerId): void;
4
+ /** Off the current stack — how paint tells React that the grid resized. */
5
+ export declare function microtask(fn: () => void): void;
6
+ //# sourceMappingURL=timers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timers.d.ts","sourceRoot":"","sources":["../../../src/terminal/vt/timers.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,OAAO,GAAG,OAAO,CAAC;AAE9B,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAE9C;AAED,2EAA2E;AAC3E,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAG9C"}
@@ -0,0 +1,16 @@
1
+ const g = globalThis;
2
+ export function startInterval(fn, ms) {
3
+ return g.setInterval?.(fn, ms) ?? null;
4
+ }
5
+ export function stopInterval(id) {
6
+ if (id != null)
7
+ g.clearInterval?.(id);
8
+ }
9
+ /** Off the current stack — how paint tells React that the grid resized. */
10
+ export function microtask(fn) {
11
+ if (g.queueMicrotask)
12
+ g.queueMicrotask(fn);
13
+ else
14
+ void Promise.resolve().then(fn);
15
+ }
16
+ //# sourceMappingURL=timers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timers.js","sourceRoot":"","sources":["../../../src/terminal/vt/timers.ts"],"names":[],"mappings":"AAcA,MAAM,CAAC,GAAG,UAA0B,CAAC;AAIrC,MAAM,UAAU,aAAa,CAAC,EAAc,EAAE,EAAU;IACtD,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAW;IACtC,IAAI,EAAE,IAAI,IAAI;QAAE,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;AACxC,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,SAAS,CAAC,EAAc;IACtC,IAAI,CAAC,CAAC,cAAc;QAAE,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;;QACtC,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,142 @@
1
+ /** What every xterm listener registration hands back. */
2
+ export interface XtermDisposable {
3
+ dispose(): void;
4
+ }
5
+ /** xterm's event shape: call it with a listener, get a disposable. */
6
+ export type XtermEvent<T> = (listener: (arg: T) => void) => XtermDisposable;
7
+ /**
8
+ * One cell of the buffer.
9
+ *
10
+ * The `is*` predicates return numbers rather than booleans (the attribute
11
+ * bits, unshifted) — `isUnderline()` in particular carries the *style*
12
+ * variant, which is why it is read as a number here too.
13
+ */
14
+ export interface XtermCell {
15
+ getWidth(): number;
16
+ getChars(): string;
17
+ getCode(): number;
18
+ getFgColor(): number;
19
+ getBgColor(): number;
20
+ getFgColorMode(): number;
21
+ getBgColorMode(): number;
22
+ isFgRGB(): boolean;
23
+ isBgRGB(): boolean;
24
+ isFgPalette(): boolean;
25
+ isBgPalette(): boolean;
26
+ isFgDefault(): boolean;
27
+ isBgDefault(): boolean;
28
+ isBold(): number;
29
+ isDim(): number;
30
+ isItalic(): number;
31
+ isUnderline(): number;
32
+ isBlink(): number;
33
+ isInverse(): number;
34
+ isInvisible(): number;
35
+ isStrikethrough(): number;
36
+ isOverline(): number;
37
+ }
38
+ export interface XtermLine {
39
+ readonly isWrapped: boolean;
40
+ readonly length: number;
41
+ /**
42
+ * `cell` is the reuse slot the diff loop depends on: one work cell for the
43
+ * whole viewport instead of an object per cell per frame. The API documents
44
+ * the reuse, so this is the intended shape rather than a trick.
45
+ */
46
+ getCell(x: number, cell?: XtermCell): XtermCell | undefined;
47
+ translateToString(trimRight?: boolean, startColumn?: number, endColumn?: number): string;
48
+ }
49
+ export interface XtermBuffer {
50
+ readonly type: 'normal' | 'alternate';
51
+ readonly cursorX: number;
52
+ readonly cursorY: number;
53
+ /** Buffer-absolute index of the line at the top of the viewport. */
54
+ readonly viewportY: number;
55
+ /** Buffer-absolute index of the top of the bottom page. */
56
+ readonly baseY: number;
57
+ readonly length: number;
58
+ getLine(y: number): XtermLine | undefined;
59
+ getNullCell(): XtermCell;
60
+ }
61
+ export interface XtermBuffers {
62
+ readonly active: XtermBuffer;
63
+ readonly normal: XtermBuffer;
64
+ readonly alternate: XtermBuffer;
65
+ readonly onBufferChange: XtermEvent<XtermBuffer>;
66
+ }
67
+ /** The modes the encoders branch on. All public in `IModes`. */
68
+ export interface XtermModes {
69
+ readonly applicationCursorKeysMode: boolean;
70
+ readonly applicationKeypadMode: boolean;
71
+ readonly bracketedPasteMode: boolean;
72
+ readonly insertMode: boolean;
73
+ readonly mouseTrackingMode: 'none' | 'x10' | 'vt200' | 'drag' | 'any';
74
+ readonly originMode: boolean;
75
+ readonly reverseWraparoundMode: boolean;
76
+ readonly sendFocusMode: boolean;
77
+ readonly wraparoundMode: boolean;
78
+ }
79
+ export interface XtermFunctionIdentifier {
80
+ prefix?: string;
81
+ intermediates?: string;
82
+ final: string;
83
+ }
84
+ export interface XtermParser {
85
+ registerCsiHandler(id: XtermFunctionIdentifier, callback: (params: (number | number[])[]) => boolean): XtermDisposable;
86
+ registerOscHandler(ident: number, callback: (data: string) => boolean): XtermDisposable;
87
+ }
88
+ /** The options we set. A subset — xterm has many more, none of them ours. */
89
+ export interface XtermOptions {
90
+ cols?: number;
91
+ rows?: number;
92
+ scrollback?: number;
93
+ cursorStyle?: 'block' | 'underline' | 'bar';
94
+ cursorBlink?: boolean;
95
+ drawBoldTextInBrightColors?: boolean;
96
+ allowProposedApi?: boolean;
97
+ convertEol?: boolean;
98
+ windowsPty?: unknown;
99
+ }
100
+ /**
101
+ * The emulator itself: bytes in, screen state out, and the events that say
102
+ * something changed.
103
+ *
104
+ * `onData` is the *reply* channel — DA, DSR, focus reports, mouse reports the
105
+ * core encodes itself — and it has to reach the pty, or an application that
106
+ * asks the terminal a question waits forever.
107
+ */
108
+ export interface XtermTerminal {
109
+ readonly cols: number;
110
+ readonly rows: number;
111
+ readonly buffer: XtermBuffers;
112
+ readonly parser: XtermParser;
113
+ readonly modes: XtermModes;
114
+ options: XtermOptions;
115
+ readonly onBell: XtermEvent<void>;
116
+ readonly onBinary: XtermEvent<string>;
117
+ readonly onCursorMove: XtermEvent<void>;
118
+ readonly onData: XtermEvent<string>;
119
+ readonly onLineFeed: XtermEvent<void>;
120
+ readonly onResize: XtermEvent<{
121
+ cols: number;
122
+ rows: number;
123
+ }>;
124
+ readonly onScroll: XtermEvent<number>;
125
+ readonly onTitleChange: XtermEvent<string>;
126
+ readonly onWriteParsed: XtermEvent<void>;
127
+ write(data: string | Uint8Array, callback?: () => void): void;
128
+ input(data: string, wasUserInput?: boolean): void;
129
+ resize(cols: number, rows: number): void;
130
+ scrollLines(amount: number): void;
131
+ scrollToBottom(): void;
132
+ scrollToTop(): void;
133
+ clear(): void;
134
+ reset(): void;
135
+ dispose(): void;
136
+ }
137
+ /** The module's shape: one constructor. */
138
+ export interface XtermModule {
139
+ Terminal: new (options?: XtermOptions) => XtermTerminal;
140
+ }
141
+ export declare function loadXterm(): Promise<XtermModule | null>;
142
+ //# sourceMappingURL=xterm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xterm.d.ts","sourceRoot":"","sources":["../../../src/terminal/vt/xterm.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ // `@xterm/headless`, as an interface.
2
+ //
3
+ // The emulator core is an **optional dependency**: it installs by default
4
+ // (nothing else would bring it, and the terminal is a flagship), but an app
5
+ // that ran `npm install --no-optional` must still type-check against this
6
+ // package. `import type { Terminal } from '@xterm/headless'` would put the
7
+ // package in the type graph and break exactly that app, so the slice we use
8
+ // is written out structurally here — the rule `../../desktop-calendar/ical.ts`
9
+ // established for `ical.js`, for the same reason.
10
+ //
11
+ // Everything below is public API in the 6.0.0 typings. Nothing here reaches
12
+ // into `term._core`: xterm.js internals churn between majors, and a renderer
13
+ // that depends on them is a renderer that breaks on an upgrade nobody made.
14
+ /**
15
+ * Load `@xterm/headless`, or answer `null` if it is not installed.
16
+ *
17
+ * A dynamic `import()` that is allowed to fail, exactly like
18
+ * `../../desktop-calendar/ical.ts`: "the optional dependency is missing" is an
19
+ * ordinary state of a healthy machine, and the component reports it as
20
+ * `status: 'unavailable'` plus the `fallback`, never as a throw.
21
+ */
22
+ let cached = null;
23
+ export function loadXterm() {
24
+ cached ??= import('@xterm/headless')
25
+ .then((mod) => {
26
+ const m = mod;
27
+ return typeof m.Terminal === 'function' ? m : null;
28
+ })
29
+ .catch(() => null);
30
+ return cached;
31
+ }
32
+ //# sourceMappingURL=xterm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xterm.js","sourceRoot":"","sources":["../../../src/terminal/vt/xterm.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,0EAA0E;AAC1E,2EAA2E;AAC3E,4EAA4E;AAC5E,+EAA+E;AAC/E,kDAAkD;AAClD,EAAE;AACF,4EAA4E;AAC5E,6EAA6E;AAC7E,4EAA4E;AAmK5E;;;;;;;GAOG;AACH,IAAI,MAAM,GAAuC,IAAI,CAAC;AACtD,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,MAAM,CAAC,iBAAiB,CAAC;SACjC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QACZ,MAAM,CAAC,GAAG,GAAsC,CAAC;QACjD,OAAO,OAAO,CAAC,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAE,CAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,CAAC,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrB,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { Key, ReactElement, ReactNode } from 'react';
2
+ import type { ReactX11Elements, Theme } from 'react-x11';
3
+ /** The host elements, by name. */
4
+ export type Host = ReactX11Elements;
5
+ /**
6
+ * What every element takes on top of its own props.
7
+ *
8
+ * `theme` is honoured by **every** node — `Node.theme` merges `props.theme`
9
+ * over the inherited palette, whatever the kind — but react-x11's element
10
+ * declarations only put it on `<window>`. A widget re-declares the theme it
11
+ * read from context onto its own root so that `$token` values still resolve
12
+ * inside a `<popup>`, which is a separate window and does not inherit the
13
+ * trigger's node tree. So the prop is real; only the declaration is narrow.
14
+ */
15
+ interface CommonProps {
16
+ key?: Key;
17
+ /** `Theme` is listed alongside the record because it is an interface, and
18
+ * an interface has no implicit index signature — so the palette `useTheme`
19
+ * hands back is not assignable to the record react-x11 declares. */
20
+ theme?: Theme | Record<string, string | number>;
21
+ }
22
+ export declare function hx<K extends keyof Host>(type: K, props?: (Omit<Host[K], 'theme'> & CommonProps) | null, ...children: ReactNode[]): ReactElement;
23
+ export {};
24
+ //# sourceMappingURL=hx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx.d.ts","sourceRoot":"","sources":["../../src/terminal-output/hx.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEzD,kCAAkC;AAClC,MAAM,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAEpC;;;;;;;;;GASG;AACH,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV;;yEAEqE;IACrE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CACjD;AAED,wBAAgB,EAAE,CAAC,CAAC,SAAS,MAAM,IAAI,EACrC,IAAI,EAAE,CAAC,EAIP,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,GAAG,IAAI,EACrD,GAAG,QAAQ,EAAE,SAAS,EAAE,GACvB,YAAY,CAKd"}
@@ -0,0 +1,25 @@
1
+ // `React.createElement`, typed against react-x11's host elements.
2
+ //
3
+ // The library writes `h(...)` rather than JSX — a convention inherited from
4
+ // core, and worth keeping so moving code between the two repos stays a
5
+ // rename. But `React.createElement`'s own overloads are `@types/react`'s, and
6
+ // they describe the DOM: a `<box onKeyDown>` handler is checked against
7
+ // React's `KeyboardEvent`, not react-x11's, and the whole props object is
8
+ // measured against `DOMAttributes`. Everything interesting fails.
9
+ //
10
+ // So the element name is looked up in react-x11's own element table instead.
11
+ // `hx('box', …)` gets `<box>`'s real props — `ev.keysym` on a key handler,
12
+ // `onDraw` on a `<canvas>` — and `hx('div', …)` is an error, which is the
13
+ // same guarantee the JSX namespace gives `examples/` and `test/types/`.
14
+ import React from 'react';
15
+ export function hx(type,
16
+ // `theme` is dropped from the element's own props before the merge:
17
+ // `<window>` and `<popup>` already declare it, narrower, and intersecting
18
+ // the two would demand a value satisfying both.
19
+ props, ...children) {
20
+ // The cast is the whole point of the wrapper: `createElement`'s string
21
+ // overload insists on DOM props, and the signature above has already
22
+ // checked these against the element that will actually receive them.
23
+ return React.createElement(type, props, ...children);
24
+ }
25
+ //# sourceMappingURL=hx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx.js","sourceRoot":"","sources":["../../src/terminal-output/hx.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,EAAE;AACF,4EAA4E;AAC5E,uEAAuE;AACvE,8EAA8E;AAC9E,wEAAwE;AACxE,0EAA0E;AAC1E,kEAAkE;AAClE,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,0EAA0E;AAC1E,wEAAwE;AACxE,OAAO,KAAK,MAAM,OAAO,CAAC;AAyB1B,MAAM,UAAU,EAAE,CAChB,IAAO;AACP,oEAAoE;AACpE,0EAA0E;AAC1E,gDAAgD;AAChD,KAAqD,EACrD,GAAG,QAAqB;IAExB,uEAAuE;IACvE,qEAAqE;IACrE,qEAAqE;IACrE,OAAO,KAAK,CAAC,aAAa,CAAC,IAAc,EAAE,KAAc,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC1E,CAAC"}