@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,369 @@
1
+ // Keys to bytes: xterm's tables, as a pure function.
2
+ //
3
+ // Nothing here touches X, the emulator or the node, so every rule is asserted
4
+ // directly against its golden bytes — which is the point, because "what does
5
+ // Ctrl+Shift+F5 send in application-cursor mode" is exactly the kind of thing
6
+ // that is wrong for years in a terminal nobody tested this way.
7
+ //
8
+ // `altKey`/`metaKey` arrive on the synthetic event itself (react-x11#284).
9
+ // Before that landed they had to be dug out of `nativeEvent.buttons`; the
10
+ // event is the seam now, and the raw mask stays available there for a keymap
11
+ // that puts Alt somewhere other than Mod1.
12
+ import {
13
+ XK_BACKSPACE,
14
+ XK_DELETE,
15
+ XK_DOWN,
16
+ XK_END,
17
+ XK_ESCAPE,
18
+ XK_F1,
19
+ XK_F10,
20
+ XK_F11,
21
+ XK_F12,
22
+ XK_F2,
23
+ XK_F3,
24
+ XK_F4,
25
+ XK_F5,
26
+ XK_F6,
27
+ XK_F7,
28
+ XK_F8,
29
+ XK_F9,
30
+ XK_HOME,
31
+ XK_INSERT,
32
+ XK_KP_ENTER,
33
+ XK_LEFT,
34
+ XK_PAGE_DOWN,
35
+ XK_PAGE_UP,
36
+ XK_RETURN,
37
+ XK_RIGHT,
38
+ XK_SPACE,
39
+ XK_TAB,
40
+ XK_UP,
41
+ } from 'react-x11/keysyms';
42
+
43
+ /**
44
+ * The keysyms core does not export yet.
45
+ *
46
+ * Keysyms are stable numbers defined by the protocol, so a local table is a
47
+ * transcription rather than a fork — and the missing ones are the keypad,
48
+ * which core has no reason to name until something needs the whole block.
49
+ * Proposed upstream as a zero-risk addition to `keysyms.js`.
50
+ */
51
+ export const XK_ISO_LEFT_TAB = 0xfe20;
52
+ export const XK_BEGIN = 0xff58;
53
+ export const XK_KP_SPACE = 0xff80;
54
+ export const XK_KP_TAB = 0xff89;
55
+ export const XK_KP_F1 = 0xff91;
56
+ export const XK_KP_F2 = 0xff92;
57
+ export const XK_KP_F3 = 0xff93;
58
+ export const XK_KP_F4 = 0xff94;
59
+ export const XK_KP_HOME = 0xff95;
60
+ export const XK_KP_LEFT = 0xff96;
61
+ export const XK_KP_UP = 0xff97;
62
+ export const XK_KP_RIGHT = 0xff98;
63
+ export const XK_KP_DOWN = 0xff99;
64
+ export const XK_KP_PAGE_UP = 0xff9a;
65
+ export const XK_KP_PAGE_DOWN = 0xff9b;
66
+ export const XK_KP_END = 0xff9c;
67
+ export const XK_KP_BEGIN = 0xff9d;
68
+ export const XK_KP_INSERT = 0xff9e;
69
+ export const XK_KP_DELETE = 0xff9f;
70
+ export const XK_KP_EQUAL = 0xffbd;
71
+ export const XK_KP_MULTIPLY = 0xffaa;
72
+ export const XK_KP_ADD = 0xffab;
73
+ export const XK_KP_SEPARATOR = 0xffac;
74
+ export const XK_KP_SUBTRACT = 0xffad;
75
+ export const XK_KP_DECIMAL = 0xffae;
76
+ export const XK_KP_DIVIDE = 0xffaf;
77
+ export const XK_KP_0 = 0xffb0;
78
+ export const XK_KP_9 = 0xffb9;
79
+
80
+ const ESC = '\x1b';
81
+ const SS3 = '\x1bO';
82
+ const CSI = '\x1b[';
83
+
84
+ /** What a key event has to carry to be encodable. A subset of react-x11's
85
+ * `KeyboardEvent`, so the node passes one straight through. */
86
+ export interface VtKeyEvent {
87
+ keysym?: number;
88
+ /** What the key produced, layout and level applied — dead keys already
89
+ * resolved by core's compose handling. */
90
+ codepoint?: number;
91
+ shiftKey: boolean;
92
+ ctrlKey: boolean;
93
+ altKey: boolean;
94
+ metaKey: boolean;
95
+ }
96
+
97
+ /** The two modes the encoding branches on, straight off `term.modes`. */
98
+ export interface KeyModes {
99
+ applicationCursorKeysMode: boolean;
100
+ applicationKeypadMode: boolean;
101
+ }
102
+
103
+ /** xterm's modifier parameter: 1 + shift + 2·alt + 4·ctrl + 8·meta. */
104
+ export function modifierParam(ev: VtKeyEvent): number {
105
+ return (
106
+ 1 +
107
+ (ev.shiftKey ? 1 : 0) +
108
+ (ev.altKey ? 2 : 0) +
109
+ (ev.ctrlKey ? 4 : 0) +
110
+ (ev.metaKey ? 8 : 0)
111
+ );
112
+ }
113
+
114
+ /**
115
+ * A cursor-ish key: `CSI A` normally, `SS3 A` in application-cursor mode,
116
+ * and `CSI 1 ; m A` whenever a modifier is held — the modifier form is never
117
+ * SS3, which is the rule applications actually rely on.
118
+ */
119
+ function cursorKey(final: string, ev: VtKeyEvent, modes: KeyModes): string {
120
+ const mod = modifierParam(ev);
121
+ if (mod > 1) return `${CSI}1;${mod}${final}`;
122
+ return modes.applicationCursorKeysMode ? `${SS3}${final}` : `${CSI}${final}`;
123
+ }
124
+
125
+ /** A `CSI n ~` key — Insert, Delete, the page keys, F5 and up. */
126
+ function tildeKey(n: number, ev: VtKeyEvent): string {
127
+ const mod = modifierParam(ev);
128
+ return mod > 1 ? `${CSI}${n};${mod}~` : `${CSI}${n}~`;
129
+ }
130
+
131
+ /** F1–F4: `SS3 P..S`, and `CSI 1 ; m P..S` with a modifier. */
132
+ function functionKey(final: string, ev: VtKeyEvent): string {
133
+ const mod = modifierParam(ev);
134
+ return mod > 1 ? `${CSI}1;${mod}${final}` : `${SS3}${final}`;
135
+ }
136
+
137
+ /** `CSI n ~` numbers for F5–F20, in xterm's order (with its gaps). */
138
+ const F_TILDE: Record<number, number> = {
139
+ [XK_F5]: 15,
140
+ [XK_F6]: 17,
141
+ [XK_F7]: 18,
142
+ [XK_F8]: 19,
143
+ [XK_F9]: 20,
144
+ [XK_F10]: 21,
145
+ [XK_F11]: 23,
146
+ [XK_F12]: 24,
147
+ 0xffca: 25, // F13
148
+ 0xffcb: 26, // F14
149
+ 0xffcc: 28, // F15
150
+ 0xffcd: 29, // F16
151
+ 0xffce: 31, // F17
152
+ 0xffcf: 32, // F18
153
+ 0xffd0: 33, // F19
154
+ 0xffd1: 34, // F20
155
+ };
156
+
157
+ /** Application-keypad codes, `SS3 <letter>`. */
158
+ const KEYPAD_APP: Record<number, string> = {
159
+ [XK_KP_SPACE]: ' ',
160
+ [XK_KP_TAB]: 'I',
161
+ [XK_KP_ENTER]: 'M',
162
+ [XK_KP_F1]: 'P',
163
+ [XK_KP_F2]: 'Q',
164
+ [XK_KP_F3]: 'R',
165
+ [XK_KP_F4]: 'S',
166
+ [XK_KP_MULTIPLY]: 'j',
167
+ [XK_KP_ADD]: 'k',
168
+ [XK_KP_SEPARATOR]: 'l',
169
+ [XK_KP_SUBTRACT]: 'm',
170
+ [XK_KP_DECIMAL]: 'n',
171
+ [XK_KP_DIVIDE]: 'o',
172
+ [XK_KP_EQUAL]: 'X',
173
+ };
174
+
175
+ /** What the numeric keypad types when it is not in application mode. */
176
+ const KEYPAD_NUMERIC: Record<number, string> = {
177
+ [XK_KP_SPACE]: ' ',
178
+ [XK_KP_TAB]: '\t',
179
+ [XK_KP_ENTER]: '\r',
180
+ [XK_KP_MULTIPLY]: '*',
181
+ [XK_KP_ADD]: '+',
182
+ [XK_KP_SEPARATOR]: ',',
183
+ [XK_KP_SUBTRACT]: '-',
184
+ [XK_KP_DECIMAL]: '.',
185
+ [XK_KP_DIVIDE]: '/',
186
+ [XK_KP_EQUAL]: '=',
187
+ };
188
+
189
+ /** The keypad's navigation half, mapped onto the keys it duplicates. */
190
+ const KEYPAD_NAV: Record<number, number> = {
191
+ [XK_KP_HOME]: XK_HOME,
192
+ [XK_KP_LEFT]: XK_LEFT,
193
+ [XK_KP_UP]: XK_UP,
194
+ [XK_KP_RIGHT]: XK_RIGHT,
195
+ [XK_KP_DOWN]: XK_DOWN,
196
+ [XK_KP_PAGE_UP]: XK_PAGE_UP,
197
+ [XK_KP_PAGE_DOWN]: XK_PAGE_DOWN,
198
+ [XK_KP_END]: XK_END,
199
+ [XK_KP_BEGIN]: XK_BEGIN,
200
+ [XK_KP_INSERT]: XK_INSERT,
201
+ [XK_KP_DELETE]: XK_DELETE,
202
+ };
203
+
204
+ /**
205
+ * Ctrl + a printable key → the C0 control it names. `Ctrl+A` is 0x01 because
206
+ * the control characters *are* the alphabet with the top bits cleared; the
207
+ * five punctuation entries are the rest of the block, and `Ctrl+?` is DEL.
208
+ */
209
+ function controlByte(codepoint: number): string | null {
210
+ if (codepoint >= 0x61 && codepoint <= 0x7a) {
211
+ return String.fromCharCode(codepoint - 0x60); // a–z → 0x01–0x1a
212
+ }
213
+ if (codepoint >= 0x41 && codepoint <= 0x5a) {
214
+ return String.fromCharCode(codepoint - 0x40); // A–Z → the same
215
+ }
216
+ switch (codepoint) {
217
+ case 0x20: // space
218
+ case 0x40: // @
219
+ case 0x32: // 2 — the keyboard most people reach NUL through
220
+ return '\0';
221
+ case 0x5b: // [
222
+ case 0x33: // 3
223
+ return '\x1b';
224
+ case 0x5c: // \
225
+ case 0x34: // 4
226
+ return '\x1c';
227
+ case 0x5d: // ]
228
+ case 0x35: // 5
229
+ return '\x1d';
230
+ case 0x5e: // ^
231
+ case 0x36: // 6
232
+ return '\x1e';
233
+ case 0x5f: // _
234
+ case 0x37: // 7
235
+ case 0x2f: // /
236
+ return '\x1f';
237
+ case 0x38: // 8
238
+ case 0x3f: // ?
239
+ return '\x7f';
240
+ default:
241
+ return null;
242
+ }
243
+ }
244
+
245
+ /**
246
+ * The bytes a key sends, or `null` when the terminal has nothing to say about
247
+ * it — a bare modifier, an unmapped key, an application chord. `null` is not
248
+ * "send nothing": it is "this key was not consumed", which is what lets the
249
+ * node leave `preventDefault()` alone and let the key reach whatever is
250
+ * outside.
251
+ */
252
+ export function encodeKey(ev: VtKeyEvent, modes: KeyModes): string | null {
253
+ const k = ev.keysym;
254
+ const alt = ev.altKey;
255
+ /** Alt is the ESC prefix, universally. */
256
+ const meta = (bytes: string): string => (alt ? ESC + bytes : bytes);
257
+
258
+ if (k !== undefined) {
259
+ // The keypad first: in application mode it has codes of its own, and in
260
+ // numeric mode it is the main block with different keysyms.
261
+ if (modes.applicationKeypadMode && KEYPAD_APP[k] !== undefined) {
262
+ return meta(SS3 + KEYPAD_APP[k]);
263
+ }
264
+ if (k >= XK_KP_0 && k <= XK_KP_9) {
265
+ return meta(
266
+ modes.applicationKeypadMode
267
+ ? SS3 + String.fromCharCode(0x70 + (k - XK_KP_0)) // p–y
268
+ : String.fromCharCode(0x30 + (k - XK_KP_0)),
269
+ );
270
+ }
271
+ if (KEYPAD_NUMERIC[k] !== undefined && !modes.applicationKeypadMode) {
272
+ return meta(KEYPAD_NUMERIC[k]);
273
+ }
274
+ const nav = KEYPAD_NAV[k];
275
+ if (nav !== undefined) return encodeKey({ ...ev, keysym: nav }, modes);
276
+
277
+ switch (k) {
278
+ case XK_UP:
279
+ return cursorKey('A', ev, modes);
280
+ case XK_DOWN:
281
+ return cursorKey('B', ev, modes);
282
+ case XK_RIGHT:
283
+ return cursorKey('C', ev, modes);
284
+ case XK_LEFT:
285
+ return cursorKey('D', ev, modes);
286
+ case XK_BEGIN:
287
+ return cursorKey('E', ev, modes);
288
+ case XK_END:
289
+ return cursorKey('F', ev, modes);
290
+ case XK_HOME:
291
+ return cursorKey('H', ev, modes);
292
+ case XK_INSERT:
293
+ return tildeKey(2, ev);
294
+ case XK_DELETE:
295
+ return tildeKey(3, ev);
296
+ case XK_PAGE_UP:
297
+ return tildeKey(5, ev);
298
+ case XK_PAGE_DOWN:
299
+ return tildeKey(6, ev);
300
+ case XK_F1:
301
+ return functionKey('P', ev);
302
+ case XK_F2:
303
+ return functionKey('Q', ev);
304
+ case XK_F3:
305
+ return functionKey('R', ev);
306
+ case XK_F4:
307
+ return functionKey('S', ev);
308
+ case XK_RETURN:
309
+ case XK_KP_ENTER:
310
+ // CR, not LF: the line discipline turns it into whatever the program
311
+ // asked for, and a raw-mode program wants the key it was pressed.
312
+ return meta('\r');
313
+ case XK_ESCAPE:
314
+ return meta(ESC);
315
+ case XK_TAB:
316
+ if (ev.shiftKey) return `${CSI}Z`;
317
+ return ev.ctrlKey ? null : meta('\t');
318
+ case XK_ISO_LEFT_TAB:
319
+ return `${CSI}Z`;
320
+ case XK_BACKSPACE:
321
+ // DEL is what `stty erase` expects on every modern system; Ctrl+H is
322
+ // the other one, and reaching it is what Ctrl+Backspace is for.
323
+ return meta(ev.ctrlKey ? '\x08' : '\x7f');
324
+ case XK_SPACE:
325
+ if (ev.ctrlKey) return meta('\0');
326
+ break;
327
+ default:
328
+ break;
329
+ }
330
+ const tilde = F_TILDE[k];
331
+ if (tilde !== undefined) return tildeKey(tilde, ev);
332
+ }
333
+
334
+ const cp = ev.codepoint;
335
+ if (cp === undefined || cp < 0x20 || (cp >= 0x7f && cp < 0xa0)) {
336
+ // No character and no key we know: not ours. An application chord
337
+ // (Ctrl+Shift+T for a new tab) lands here and stays unconsumed.
338
+ return null;
339
+ }
340
+ if (ev.ctrlKey) {
341
+ const c = controlByte(cp);
342
+ return c === null ? null : meta(c);
343
+ }
344
+ // Super/Meta chords belong to the desktop, not to the program: Meta+Q is
345
+ // quit, not `ESC q`.
346
+ if (ev.metaKey) return null;
347
+ return meta(String.fromCodePoint(cp));
348
+ }
349
+
350
+ /**
351
+ * Text on its way in from a paste.
352
+ *
353
+ * Bracketed paste is not decoration: without it a shell runs every newline in
354
+ * a pasted block, and a pasted `rm -rf` with a trailing newline is a very bad
355
+ * afternoon. Inside the brackets the payload still has to be sanitised —
356
+ * a `\x1b[201~` in the pasted text would close them early — and newlines
357
+ * normalise to CR because that is what the key sends.
358
+ */
359
+ export function encodePaste(text: string, bracketed: boolean): string {
360
+ const normalized = text
361
+ .replace(/\r\n?/g, '\r')
362
+ .replace(/\n/g, '\r')
363
+ // Everything else in C0 except tab and CR is a control the program never
364
+ // asked to receive as *text*.
365
+ // eslint-disable-next-line no-control-regex
366
+ .replace(/[\x00-\x08\x0b-\x0c\x0e-\x1f\x7f]/g, '');
367
+ if (!bracketed) return normalized;
368
+ return `${CSI}200~${normalized}${CSI}201~`;
369
+ }
@@ -0,0 +1,144 @@
1
+ // The pointer, as the bytes a program that asked for it expects. Pure, like
2
+ // `./keys.ts`, and for the same reason: mouse reporting is four encodings
3
+ // crossed with five tracking modes, and the only way to know it is right is
4
+ // to assert the bytes.
5
+ //
6
+ // One thing here is *not* readable from `@xterm/headless`'s public API: which
7
+ // **encoding** an application selected. `modes` carries the tracking mode
8
+ // (`none | x10 | vt200 | drag | any`) but not SGR/urxvt/UTF-8, so the node
9
+ // watches DECSET/DECRST of 1005/1006/1015 through a passive
10
+ // `parser.registerCsiHandler` that returns false — public API used as
11
+ // designed, and filed upstream as a request to expose `mouseEncoding`
12
+ // alongside `mouseTrackingMode`.
13
+
14
+ const CSI = '\x1b[';
15
+
16
+ export type MouseTracking = 'none' | 'x10' | 'vt200' | 'drag' | 'any';
17
+ export type MouseEncoding = 'default' | 'utf8' | 'sgr' | 'urxvt';
18
+
19
+ export interface VtMouseEvent {
20
+ kind: 'down' | 'up' | 'move' | 'wheel';
21
+ /** X button number — 1 left, 2 middle, 3 right. Ignored for wheel. */
22
+ button: number;
23
+ /** Wheel direction, positive = towards the user (scroll down). */
24
+ deltaY?: number;
25
+ /** Zero-based grid position. */
26
+ col: number;
27
+ row: number;
28
+ shiftKey: boolean;
29
+ altKey: boolean;
30
+ ctrlKey: boolean;
31
+ /** Whether a button is held — `move` only reports under `drag`. */
32
+ pressed: boolean;
33
+ }
34
+
35
+ export interface MouseState {
36
+ tracking: MouseTracking;
37
+ encoding: MouseEncoding;
38
+ }
39
+
40
+ /** X button → the low two bits of the report. Wheel is 64/65. */
41
+ function buttonCode(ev: VtMouseEvent): number {
42
+ if (ev.kind === 'wheel') return (ev.deltaY ?? 0) < 0 ? 64 : 65;
43
+ switch (ev.button) {
44
+ case 1:
45
+ return 0;
46
+ case 2:
47
+ return 1;
48
+ case 3:
49
+ return 2;
50
+ default:
51
+ // Buttons 8/9 (back/forward) report as 128+; anything else is not
52
+ // something the protocol has a code for.
53
+ return ev.button >= 8 ? 128 + (ev.button - 8) : 0;
54
+ }
55
+ }
56
+
57
+ function modifierBits(ev: VtMouseEvent): number {
58
+ return (ev.shiftKey ? 4 : 0) + (ev.altKey ? 8 : 0) + (ev.ctrlKey ? 16 : 0);
59
+ }
60
+
61
+ /**
62
+ * The bytes for one pointer event, or `null` when the program did not ask for
63
+ * this one — which is most of them, most of the time.
64
+ *
65
+ * Shift is deliberately *not* passed through as a modifier for a press: it is
66
+ * the universal "let me select instead" override, and the caller gates on it
67
+ * before ever calling here (see the node). What arrives here with `shiftKey`
68
+ * set is a program that asked for all motion, where the override does not
69
+ * apply.
70
+ */
71
+ export function encodeMouse(
72
+ ev: VtMouseEvent,
73
+ state: MouseState,
74
+ ): string | null {
75
+ const { tracking, encoding } = state;
76
+ if (tracking === 'none') return null;
77
+ if (ev.kind === 'move') {
78
+ if (tracking !== 'any' && !(tracking === 'drag' && ev.pressed)) return null;
79
+ }
80
+ // X10 is press-only, and reports no modifiers at all.
81
+ if (tracking === 'x10' && ev.kind !== 'down') return null;
82
+
83
+ let code = buttonCode(ev);
84
+ if (ev.kind === 'move') code += 32;
85
+ if (tracking !== 'x10') code += modifierBits(ev);
86
+
87
+ const col = ev.col + 1;
88
+ const row = ev.row + 1;
89
+
90
+ if (encoding === 'sgr') {
91
+ // The only encoding with a release *code*: everything else spends the
92
+ // button bits on "3" and leaves the program guessing which one came up.
93
+ return `${CSI}<${code};${col};${row}${ev.kind === 'up' ? 'm' : 'M'}`;
94
+ }
95
+
96
+ // Every other encoding reports a release as button 3.
97
+ if (ev.kind === 'up') code = 3 + (tracking === 'x10' ? 0 : modifierBits(ev));
98
+
99
+ if (encoding === 'urxvt') {
100
+ return `${CSI}${code + 32};${col};${row}M`;
101
+ }
102
+ if (encoding === 'utf8') {
103
+ return `${CSI}M${String.fromCharCode(code + 32)}${String.fromCodePoint(
104
+ col + 32,
105
+ )}${String.fromCodePoint(row + 32)}`;
106
+ }
107
+ // The original encoding: one byte per field, biased by 32, and no way to
108
+ // say anything past column 223. Clamp rather than wrap — a wrapped
109
+ // coordinate is a click somewhere else, which is worse than no click.
110
+ const clamp = (n: number): number => (n > 223 ? 0 : n + 32);
111
+ return `${CSI}M${String.fromCharCode(code + 32)}${String.fromCharCode(
112
+ clamp(col),
113
+ )}${String.fromCharCode(clamp(row))}`;
114
+ }
115
+
116
+ /**
117
+ * The wheel over an alternate-screen application that did *not* ask for mouse
118
+ * reporting: DECSET 1007 says send arrow keys, which is what makes the wheel
119
+ * scroll `less` and `man` at all.
120
+ */
121
+ export function encodeAlternateScroll(
122
+ lines: number,
123
+ up: boolean,
124
+ applicationCursorKeys: boolean,
125
+ ): string {
126
+ const key = applicationCursorKeys
127
+ ? up
128
+ ? '\x1bOA'
129
+ : '\x1bOB'
130
+ : up
131
+ ? `${CSI}A`
132
+ : `${CSI}B`;
133
+ return key.repeat(Math.max(0, lines));
134
+ }
135
+
136
+ /**
137
+ * The DECSET/DECRST parameters that select an encoding, and what each one
138
+ * means. Read by the node's passive CSI observer.
139
+ */
140
+ export const ENCODING_MODES: Record<number, MouseEncoding> = {
141
+ 1005: 'utf8',
142
+ 1006: 'sgr',
143
+ 1015: 'urxvt',
144
+ };