@react-x11/components 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (783) 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 +81 -0
  335. package/dist/internal/heights.d.ts.map +1 -0
  336. package/dist/internal/heights.js +193 -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/text.d.ts +6 -0
  343. package/dist/internal/text.d.ts.map +1 -0
  344. package/dist/internal/text.js +44 -0
  345. package/dist/internal/text.js.map +1 -0
  346. package/dist/internal/timers.d.ts +8 -0
  347. package/dist/internal/timers.d.ts.map +1 -0
  348. package/dist/internal/timers.js +22 -0
  349. package/dist/internal/timers.js.map +1 -0
  350. package/dist/internal/widget.d.ts +40 -0
  351. package/dist/internal/widget.d.ts.map +1 -0
  352. package/dist/internal/widget.js +44 -0
  353. package/dist/internal/widget.js.map +1 -0
  354. package/dist/markdown/ast.d.ts +126 -0
  355. package/dist/markdown/ast.d.ts.map +1 -0
  356. package/dist/markdown/ast.js +8 -0
  357. package/dist/markdown/ast.js.map +1 -0
  358. package/dist/markdown/hx.d.ts +24 -0
  359. package/dist/markdown/hx.d.ts.map +1 -0
  360. package/dist/markdown/hx.js +25 -0
  361. package/dist/markdown/hx.js.map +1 -0
  362. package/dist/markdown/index.d.ts +90 -0
  363. package/dist/markdown/index.d.ts.map +1 -0
  364. package/dist/markdown/index.js +413 -0
  365. package/dist/markdown/index.js.map +1 -0
  366. package/dist/markdown/parse.d.ts +8 -0
  367. package/dist/markdown/parse.d.ts.map +1 -0
  368. package/dist/markdown/parse.js +911 -0
  369. package/dist/markdown/parse.js.map +1 -0
  370. package/dist/markdown/spans.d.ts +20 -0
  371. package/dist/markdown/spans.d.ts.map +1 -0
  372. package/dist/markdown/spans.js +96 -0
  373. package/dist/markdown/spans.js.map +1 -0
  374. package/dist/media-player/backends.d.ts +64 -0
  375. package/dist/media-player/backends.d.ts.map +1 -0
  376. package/dist/media-player/backends.js +110 -0
  377. package/dist/media-player/backends.js.map +1 -0
  378. package/dist/media-player/control.d.ts +40 -0
  379. package/dist/media-player/control.d.ts.map +1 -0
  380. package/dist/media-player/control.js +44 -0
  381. package/dist/media-player/control.js.map +1 -0
  382. package/dist/media-player/hx.d.ts +24 -0
  383. package/dist/media-player/hx.d.ts.map +1 -0
  384. package/dist/media-player/hx.js +25 -0
  385. package/dist/media-player/hx.js.map +1 -0
  386. package/dist/media-player/index.d.ts +107 -0
  387. package/dist/media-player/index.d.ts.map +1 -0
  388. package/dist/media-player/index.js +219 -0
  389. package/dist/media-player/index.js.map +1 -0
  390. package/dist/media-player/mpv.d.ts +4 -0
  391. package/dist/media-player/mpv.d.ts.map +1 -0
  392. package/dist/media-player/mpv.js +120 -0
  393. package/dist/media-player/mpv.js.map +1 -0
  394. package/dist/media-player/vlc.d.ts +8 -0
  395. package/dist/media-player/vlc.d.ts.map +1 -0
  396. package/dist/media-player/vlc.js +83 -0
  397. package/dist/media-player/vlc.js.map +1 -0
  398. package/dist/richtext/index.d.ts +19 -0
  399. package/dist/richtext/index.d.ts.map +1 -0
  400. package/dist/richtext/index.js +4 -0
  401. package/dist/richtext/index.js.map +1 -0
  402. package/dist/richtext/links.d.ts +12 -0
  403. package/dist/richtext/links.d.ts.map +1 -0
  404. package/dist/richtext/links.js +64 -0
  405. package/dist/richtext/links.js.map +1 -0
  406. package/dist/richtext/menu.d.ts +11 -0
  407. package/dist/richtext/menu.d.ts.map +1 -0
  408. package/dist/richtext/menu.js +43 -0
  409. package/dist/richtext/menu.js.map +1 -0
  410. package/dist/richtext/node.d.ts +151 -0
  411. package/dist/richtext/node.d.ts.map +1 -0
  412. package/dist/richtext/node.js +255 -0
  413. package/dist/richtext/node.js.map +1 -0
  414. package/dist/richtext/runs.d.ts +92 -0
  415. package/dist/richtext/runs.d.ts.map +1 -0
  416. package/dist/richtext/runs.js +158 -0
  417. package/dist/richtext/runs.js.map +1 -0
  418. package/dist/table/hx.d.ts +24 -0
  419. package/dist/table/hx.d.ts.map +1 -0
  420. package/dist/table/hx.js +25 -0
  421. package/dist/table/hx.js.map +1 -0
  422. package/dist/table/index.d.ts +169 -0
  423. package/dist/table/index.d.ts.map +1 -0
  424. package/dist/table/index.js +844 -0
  425. package/dist/table/index.js.map +1 -0
  426. package/dist/table/rows.d.ts +136 -0
  427. package/dist/table/rows.d.ts.map +1 -0
  428. package/dist/table/rows.js +146 -0
  429. package/dist/table/rows.js.map +1 -0
  430. package/dist/terminal/backends.d.ts +105 -0
  431. package/dist/terminal/backends.d.ts.map +1 -0
  432. package/dist/terminal/backends.js +185 -0
  433. package/dist/terminal/backends.js.map +1 -0
  434. package/dist/terminal/hx.d.ts +24 -0
  435. package/dist/terminal/hx.d.ts.map +1 -0
  436. package/dist/terminal/hx.js +25 -0
  437. package/dist/terminal/hx.js.map +1 -0
  438. package/dist/terminal/index.d.ts +160 -0
  439. package/dist/terminal/index.d.ts.map +1 -0
  440. package/dist/terminal/index.js +344 -0
  441. package/dist/terminal/index.js.map +1 -0
  442. package/dist/terminal/title.d.ts +24 -0
  443. package/dist/terminal/title.d.ts.map +1 -0
  444. package/dist/terminal/title.js +129 -0
  445. package/dist/terminal/title.js.map +1 -0
  446. package/dist/terminal/vt/colors.d.ts +63 -0
  447. package/dist/terminal/vt/colors.d.ts.map +1 -0
  448. package/dist/terminal/vt/colors.js +203 -0
  449. package/dist/terminal/vt/colors.js.map +1 -0
  450. package/dist/terminal/vt/diff.d.ts +117 -0
  451. package/dist/terminal/vt/diff.d.ts.map +1 -0
  452. package/dist/terminal/vt/diff.js +358 -0
  453. package/dist/terminal/vt/diff.js.map +1 -0
  454. package/dist/terminal/vt/fonts.d.ts +92 -0
  455. package/dist/terminal/vt/fonts.d.ts.map +1 -0
  456. package/dist/terminal/vt/fonts.js +178 -0
  457. package/dist/terminal/vt/fonts.js.map +1 -0
  458. package/dist/terminal/vt/index.d.ts +78 -0
  459. package/dist/terminal/vt/index.d.ts.map +1 -0
  460. package/dist/terminal/vt/index.js +312 -0
  461. package/dist/terminal/vt/index.js.map +1 -0
  462. package/dist/terminal/vt/keys.d.ts +74 -0
  463. package/dist/terminal/vt/keys.d.ts.map +1 -0
  464. package/dist/terminal/vt/keys.js +309 -0
  465. package/dist/terminal/vt/keys.js.map +1 -0
  466. package/dist/terminal/vt/mouse.d.ts +44 -0
  467. package/dist/terminal/vt/mouse.d.ts.map +1 -0
  468. package/dist/terminal/vt/mouse.js +106 -0
  469. package/dist/terminal/vt/mouse.js.map +1 -0
  470. package/dist/terminal/vt/node.d.ts +246 -0
  471. package/dist/terminal/vt/node.d.ts.map +1 -0
  472. package/dist/terminal/vt/node.js +1068 -0
  473. package/dist/terminal/vt/node.js.map +1 -0
  474. package/dist/terminal/vt/pty.d.ts +81 -0
  475. package/dist/terminal/vt/pty.d.ts.map +1 -0
  476. package/dist/terminal/vt/pty.js +201 -0
  477. package/dist/terminal/vt/pty.js.map +1 -0
  478. package/dist/terminal/vt/renderer.d.ts +179 -0
  479. package/dist/terminal/vt/renderer.d.ts.map +1 -0
  480. package/dist/terminal/vt/renderer.js +357 -0
  481. package/dist/terminal/vt/renderer.js.map +1 -0
  482. package/dist/terminal/vt/timers.d.ts +6 -0
  483. package/dist/terminal/vt/timers.d.ts.map +1 -0
  484. package/dist/terminal/vt/timers.js +16 -0
  485. package/dist/terminal/vt/timers.js.map +1 -0
  486. package/dist/terminal/vt/xterm.d.ts +142 -0
  487. package/dist/terminal/vt/xterm.d.ts.map +1 -0
  488. package/dist/terminal/vt/xterm.js +32 -0
  489. package/dist/terminal/vt/xterm.js.map +1 -0
  490. package/dist/terminal-output/hx.d.ts +24 -0
  491. package/dist/terminal-output/hx.d.ts.map +1 -0
  492. package/dist/terminal-output/hx.js +25 -0
  493. package/dist/terminal-output/hx.js.map +1 -0
  494. package/dist/terminal-output/index.d.ts +92 -0
  495. package/dist/terminal-output/index.d.ts.map +1 -0
  496. package/dist/terminal-output/index.js +179 -0
  497. package/dist/terminal-output/index.js.map +1 -0
  498. package/dist/terminal-output/runs.d.ts +27 -0
  499. package/dist/terminal-output/runs.d.ts.map +1 -0
  500. package/dist/terminal-output/runs.js +66 -0
  501. package/dist/terminal-output/runs.js.map +1 -0
  502. package/dist/three/canvas.d.ts +46 -0
  503. package/dist/three/canvas.d.ts.map +1 -0
  504. package/dist/three/canvas.js +305 -0
  505. package/dist/three/canvas.js.map +1 -0
  506. package/dist/three/events.d.ts +64 -0
  507. package/dist/three/events.d.ts.map +1 -0
  508. package/dist/three/events.js +146 -0
  509. package/dist/three/events.js.map +1 -0
  510. package/dist/three/geometries.d.ts +89 -0
  511. package/dist/three/geometries.d.ts.map +1 -0
  512. package/dist/three/geometries.js +345 -0
  513. package/dist/three/geometries.js.map +1 -0
  514. package/dist/three/globals.d.ts +7 -0
  515. package/dist/three/globals.d.ts.map +1 -0
  516. package/dist/three/globals.js +20 -0
  517. package/dist/three/globals.js.map +1 -0
  518. package/dist/three/hx.d.ts +9 -0
  519. package/dist/three/hx.d.ts.map +1 -0
  520. package/dist/three/hx.js +10 -0
  521. package/dist/three/hx.js.map +1 -0
  522. package/dist/three/index.d.ts +22 -0
  523. package/dist/three/index.d.ts.map +1 -0
  524. package/dist/three/index.js +24 -0
  525. package/dist/three/index.js.map +1 -0
  526. package/dist/three/jsx-dev-runtime.d.ts +19 -0
  527. package/dist/three/jsx-dev-runtime.d.ts.map +1 -0
  528. package/dist/three/jsx-dev-runtime.js +2 -0
  529. package/dist/three/jsx-dev-runtime.js.map +1 -0
  530. package/dist/three/jsx-runtime.d.ts +19 -0
  531. package/dist/three/jsx-runtime.d.ts.map +1 -0
  532. package/dist/three/jsx-runtime.js +2 -0
  533. package/dist/three/jsx-runtime.js.map +1 -0
  534. package/dist/three/jsx.d.ts +198 -0
  535. package/dist/three/jsx.d.ts.map +1 -0
  536. package/dist/three/jsx.js +2 -0
  537. package/dist/three/jsx.js.map +1 -0
  538. package/dist/three/materials.d.ts +125 -0
  539. package/dist/three/materials.d.ts.map +1 -0
  540. package/dist/three/materials.js +229 -0
  541. package/dist/three/materials.js.map +1 -0
  542. package/dist/three/math.d.ts +146 -0
  543. package/dist/three/math.d.ts.map +1 -0
  544. package/dist/three/math.js +464 -0
  545. package/dist/three/math.js.map +1 -0
  546. package/dist/three/objects.d.ts +185 -0
  547. package/dist/three/objects.d.ts.map +1 -0
  548. package/dist/three/objects.js +309 -0
  549. package/dist/three/objects.js.map +1 -0
  550. package/dist/three/passes.d.ts +54 -0
  551. package/dist/three/passes.d.ts.map +1 -0
  552. package/dist/three/passes.js +78 -0
  553. package/dist/three/passes.js.map +1 -0
  554. package/dist/three/postprocess.d.ts +85 -0
  555. package/dist/three/postprocess.d.ts.map +1 -0
  556. package/dist/three/postprocess.js +503 -0
  557. package/dist/three/postprocess.js.map +1 -0
  558. package/dist/three/raycast.d.ts +24 -0
  559. package/dist/three/raycast.d.ts.map +1 -0
  560. package/dist/three/raycast.js +138 -0
  561. package/dist/three/raycast.js.map +1 -0
  562. package/dist/three/reconciler.d.ts +48 -0
  563. package/dist/three/reconciler.d.ts.map +1 -0
  564. package/dist/three/reconciler.js +416 -0
  565. package/dist/three/reconciler.js.map +1 -0
  566. package/dist/three/renderer-direct.d.ts +102 -0
  567. package/dist/three/renderer-direct.d.ts.map +1 -0
  568. package/dist/three/renderer-direct.js +782 -0
  569. package/dist/three/renderer-direct.js.map +1 -0
  570. package/dist/three/renderer-indirect.d.ts +68 -0
  571. package/dist/three/renderer-indirect.d.ts.map +1 -0
  572. package/dist/three/renderer-indirect.js +438 -0
  573. package/dist/three/renderer-indirect.js.map +1 -0
  574. package/dist/three/store.d.ts +81 -0
  575. package/dist/three/store.d.ts.map +1 -0
  576. package/dist/three/store.js +110 -0
  577. package/dist/three/store.js.map +1 -0
  578. package/dist/timeline/hx.d.ts +18 -0
  579. package/dist/timeline/hx.d.ts.map +1 -0
  580. package/dist/timeline/hx.js +10 -0
  581. package/dist/timeline/hx.js.map +1 -0
  582. package/dist/timeline/index.d.ts +152 -0
  583. package/dist/timeline/index.d.ts.map +1 -0
  584. package/dist/timeline/index.js +383 -0
  585. package/dist/timeline/index.js.map +1 -0
  586. package/dist/tray-host/hx.d.ts +24 -0
  587. package/dist/tray-host/hx.d.ts.map +1 -0
  588. package/dist/tray-host/hx.js +25 -0
  589. package/dist/tray-host/hx.js.map +1 -0
  590. package/dist/tray-host/index.d.ts +110 -0
  591. package/dist/tray-host/index.d.ts.map +1 -0
  592. package/dist/tray-host/index.js +191 -0
  593. package/dist/tray-host/index.js.map +1 -0
  594. package/dist/tray-host/manager.d.ts +137 -0
  595. package/dist/tray-host/manager.d.ts.map +1 -0
  596. package/dist/tray-host/manager.js +462 -0
  597. package/dist/tray-host/manager.js.map +1 -0
  598. package/dist/tray-host/notify.d.ts +22 -0
  599. package/dist/tray-host/notify.d.ts.map +1 -0
  600. package/dist/tray-host/notify.js +74 -0
  601. package/dist/tray-host/notify.js.map +1 -0
  602. package/dist/tray-host/protocol.d.ts +106 -0
  603. package/dist/tray-host/protocol.d.ts.map +1 -0
  604. package/dist/tray-host/protocol.js +191 -0
  605. package/dist/tray-host/protocol.js.map +1 -0
  606. package/dist/tree/hx.d.ts +24 -0
  607. package/dist/tree/hx.d.ts.map +1 -0
  608. package/dist/tree/hx.js +25 -0
  609. package/dist/tree/hx.js.map +1 -0
  610. package/dist/tree/index.d.ts +221 -0
  611. package/dist/tree/index.d.ts.map +1 -0
  612. package/dist/tree/index.js +716 -0
  613. package/dist/tree/index.js.map +1 -0
  614. package/dist/tree/internal.d.ts +18 -0
  615. package/dist/tree/internal.d.ts.map +1 -0
  616. package/dist/tree/internal.js +66 -0
  617. package/dist/tree/internal.js.map +1 -0
  618. package/dist/tree/rows.d.ts +177 -0
  619. package/dist/tree/rows.d.ts.map +1 -0
  620. package/dist/tree/rows.js +179 -0
  621. package/dist/tree/rows.js.map +1 -0
  622. package/package.json +166 -12
  623. package/src/ansi/cast.ts +159 -0
  624. package/src/ansi/index.ts +53 -0
  625. package/src/ansi/palette.ts +226 -0
  626. package/src/ansi/parse.ts +780 -0
  627. package/src/ansi/sgr.ts +380 -0
  628. package/src/ansi/utf8.ts +84 -0
  629. package/src/calendar/Calendar.ts +744 -0
  630. package/src/calendar/DatePicker.ts +368 -0
  631. package/src/calendar/dates.ts +307 -0
  632. package/src/calendar/index.ts +51 -0
  633. package/src/charts/components.ts +864 -0
  634. package/src/charts/data.ts +776 -0
  635. package/src/charts/hx.ts +39 -0
  636. package/src/charts/index.ts +99 -0
  637. package/src/charts/node.ts +932 -0
  638. package/src/charts/render.ts +982 -0
  639. package/src/charts/scale.ts +214 -0
  640. package/src/charts/spec.ts +122 -0
  641. package/src/charts/timers.ts +24 -0
  642. package/src/code/hx.ts +51 -0
  643. package/src/code/index.ts +174 -0
  644. package/src/code-editor/completion.ts +161 -0
  645. package/src/code-editor/doc.ts +198 -0
  646. package/src/code-editor/hx.ts +26 -0
  647. package/src/code-editor/index.ts +615 -0
  648. package/src/code-editor/node.ts +1926 -0
  649. package/src/code-language/hljs.ts +302 -0
  650. package/src/code-language/index.ts +51 -0
  651. package/src/code-language/languages/glsl.ts +120 -0
  652. package/src/code-language/languages/javascript.ts +419 -0
  653. package/src/code-language/languages/json.ts +72 -0
  654. package/src/code-language/languages/shell.ts +221 -0
  655. package/src/code-language/languages/sql.ts +165 -0
  656. package/src/code-language/lezer.ts +190 -0
  657. package/src/code-language/registry.ts +66 -0
  658. package/src/code-language/runs.ts +128 -0
  659. package/src/code-language/stream.ts +306 -0
  660. package/src/code-language/textmate.ts +134 -0
  661. package/src/code-language/theme.ts +124 -0
  662. package/src/code-language/timers.ts +36 -0
  663. package/src/code-language/types.ts +252 -0
  664. package/src/codeblock/index.ts +146 -0
  665. package/src/color-picker/ColorField.ts +333 -0
  666. package/src/color-picker/ColorPicker.ts +1069 -0
  667. package/src/color-picker/color.ts +399 -0
  668. package/src/color-picker/index.ts +50 -0
  669. package/src/desktop-calendar/eds.ts +484 -0
  670. package/src/desktop-calendar/ical.ts +119 -0
  671. package/src/desktop-calendar/index.ts +287 -0
  672. package/src/embed/client.ts +311 -0
  673. package/src/embed/host.ts +432 -0
  674. package/src/embed/index.ts +33 -0
  675. package/src/embed/timers.ts +32 -0
  676. package/src/flow/draw.ts +418 -0
  677. package/src/flow/index.ts +473 -0
  678. package/src/flow/model.ts +687 -0
  679. package/src/flow/node.ts +3694 -0
  680. package/src/flow/paths.ts +403 -0
  681. package/src/flow/types.ts +634 -0
  682. package/src/formula/hx.ts +51 -0
  683. package/src/formula/index.ts +243 -0
  684. package/src/formula/katex.ts +209 -0
  685. package/src/formula/layout.ts +876 -0
  686. package/src/formula/node.ts +467 -0
  687. package/src/html/controls.ts +244 -0
  688. package/src/html/css/cascade.ts +606 -0
  689. package/src/html/css/parse.ts +500 -0
  690. package/src/html/css/style.ts +1371 -0
  691. package/src/html/css/ua.ts +174 -0
  692. package/src/html/css/values.ts +358 -0
  693. package/src/html/dom.ts +410 -0
  694. package/src/html/hx.ts +55 -0
  695. package/src/html/index.ts +545 -0
  696. package/src/html/layout/block.ts +876 -0
  697. package/src/html/layout/boxes.ts +981 -0
  698. package/src/html/layout/flex.ts +297 -0
  699. package/src/html/layout/floats.ts +125 -0
  700. package/src/html/layout/inline.ts +870 -0
  701. package/src/html/layout/table.ts +380 -0
  702. package/src/html/node.ts +967 -0
  703. package/src/html/paint.ts +605 -0
  704. package/src/html/resources.ts +214 -0
  705. package/src/index.ts +638 -0
  706. package/src/internal/heights.ts +211 -0
  707. package/src/internal/hx.ts +53 -0
  708. package/src/internal/text.ts +44 -0
  709. package/src/internal/timers.ts +44 -0
  710. package/src/internal/widget.ts +92 -0
  711. package/src/markdown/ast.ts +163 -0
  712. package/src/markdown/hx.ts +51 -0
  713. package/src/markdown/index.ts +686 -0
  714. package/src/markdown/parse.ts +1037 -0
  715. package/src/markdown/spans.ts +143 -0
  716. package/src/media-player/backends.ts +155 -0
  717. package/src/media-player/control.ts +70 -0
  718. package/src/media-player/hx.ts +51 -0
  719. package/src/media-player/index.ts +378 -0
  720. package/src/media-player/mpv.ts +146 -0
  721. package/src/media-player/vlc.ts +97 -0
  722. package/src/richtext/index.ts +42 -0
  723. package/src/richtext/links.ts +78 -0
  724. package/src/richtext/menu.ts +49 -0
  725. package/src/richtext/node.ts +406 -0
  726. package/src/richtext/runs.ts +253 -0
  727. package/src/table/hx.ts +51 -0
  728. package/src/table/index.ts +1219 -0
  729. package/src/table/rows.ts +275 -0
  730. package/src/terminal/backends.ts +242 -0
  731. package/src/terminal/hx.ts +51 -0
  732. package/src/terminal/index.ts +574 -0
  733. package/src/terminal/title.ts +172 -0
  734. package/src/terminal/vt/colors.ts +247 -0
  735. package/src/terminal/vt/diff.ts +467 -0
  736. package/src/terminal/vt/fonts.ts +233 -0
  737. package/src/terminal/vt/index.ts +443 -0
  738. package/src/terminal/vt/keys.ts +369 -0
  739. package/src/terminal/vt/mouse.ts +144 -0
  740. package/src/terminal/vt/node.ts +1242 -0
  741. package/src/terminal/vt/pty.ts +334 -0
  742. package/src/terminal/vt/renderer.ts +555 -0
  743. package/src/terminal/vt/timers.ts +31 -0
  744. package/src/terminal/vt/xterm.ts +193 -0
  745. package/src/terminal-output/hx.ts +51 -0
  746. package/src/terminal-output/index.ts +340 -0
  747. package/src/terminal-output/runs.ts +79 -0
  748. package/src/three/canvas.ts +451 -0
  749. package/src/three/events.ts +197 -0
  750. package/src/three/geometries.ts +429 -0
  751. package/src/three/globals.ts +34 -0
  752. package/src/three/hx.ts +22 -0
  753. package/src/three/index.ts +98 -0
  754. package/src/three/jsx-dev-runtime.ts +27 -0
  755. package/src/three/jsx-runtime.ts +38 -0
  756. package/src/three/jsx.ts +275 -0
  757. package/src/three/materials.ts +270 -0
  758. package/src/three/math.ts +585 -0
  759. package/src/three/objects.ts +397 -0
  760. package/src/three/passes.ts +90 -0
  761. package/src/three/postprocess.ts +677 -0
  762. package/src/three/raycast.ts +189 -0
  763. package/src/three/react-reconciler.d.ts +50 -0
  764. package/src/three/reconciler.ts +624 -0
  765. package/src/three/renderer-direct.ts +1055 -0
  766. package/src/three/renderer-indirect.ts +570 -0
  767. package/src/three/store.ts +207 -0
  768. package/src/timeline/hx.ts +31 -0
  769. package/src/timeline/index.ts +603 -0
  770. package/src/tray-host/hx.ts +51 -0
  771. package/src/tray-host/index.ts +331 -0
  772. package/src/tray-host/manager.ts +639 -0
  773. package/src/tray-host/notify.ts +102 -0
  774. package/src/tray-host/protocol.ts +235 -0
  775. package/src/tree/hx.ts +51 -0
  776. package/src/tree/index.ts +1087 -0
  777. package/src/tree/internal.ts +87 -0
  778. package/src/tree/rows.ts +334 -0
  779. package/src/index.d.ts +0 -2
  780. package/src/index.js +0 -9
  781. package/src/sparkline/index.d.ts +0 -29
  782. package/src/sparkline/index.js +0 -50
  783. package/src/sparkline/node.js +0 -72
@@ -0,0 +1,687 @@
1
+ // The escape-sequence state machine, and the flow reducer over it.
2
+ //
3
+ // Pure: bytes in, plain arrays out. No X, no node, no React, no
4
+ // `@xterm/headless` — so the whole model is asserted against byte strings in
5
+ // `test/ansi.test.ts`, the posture `../terminal/vt/diff.ts` takes for the
6
+ // live renderer.
7
+ //
8
+ // ### Why a line buffer rather than a grid
9
+ //
10
+ // A log is a *document*: it has lines, not rows, and no column count of its
11
+ // own. So the reducer keeps exactly one row — the line being written — and
12
+ // flushes it to spans when a newline arrives. `\r` rewinds the write head
13
+ // inside that row, `\e[K` truncates it, `\e[nC` moves along it: every
14
+ // sequence a line-oriented program actually emits is exact in this model,
15
+ // while none of them needs a `cols` the capture never had.
16
+ //
17
+ // The sequences that only mean something on a real screen — `CUP`, `ED`,
18
+ // `IL`, a scroll region, the alternate screen — set `needsScreen` and are
19
+ // counted in `dropped`. What this cannot represent, it says so about; see
20
+ // the PRD for why silence would be the worse failure.
21
+ //
22
+ // ### Why a state machine rather than a regular expression
23
+ //
24
+ // A parser that does not understand a sequence's *structure* prints its
25
+ // payload as text the moment it meets one it has no pattern for — the
26
+ // classic garbage-on-screen bug. Everything below is recognised and consumed
27
+ // even when it is then discarded.
28
+ import { PLAIN, Style, param, ABSENT } from './sgr.js';
29
+ import { Utf8Decoder } from './utf8.js';
30
+ /**
31
+ * A capture, reduced.
32
+ *
33
+ * ```ts
34
+ * const doc = parseAnsi(await readFile('build.log'));
35
+ * doc.lines.map((line) => line.text);
36
+ * ```
37
+ */
38
+ export function parseAnsi(data, options = {}) {
39
+ const state = options.from instanceof AnsiState
40
+ ? options.from
41
+ : options.from
42
+ ? options.from.state
43
+ : new AnsiState(options);
44
+ state.write(data);
45
+ return state.snapshot();
46
+ }
47
+ /** The capture's text with every escape sequence resolved away. What a
48
+ * round-trip test compares against, and what a plain-text export wants. */
49
+ export function stripAnsi(data, options) {
50
+ return parseAnsi(data, options)
51
+ .lines.map((line) => line.text)
52
+ .join('\n');
53
+ }
54
+ // --- the machine ------------------------------------------------------------
55
+ const GROUND = 0;
56
+ const ESC = 1;
57
+ const CSI = 2;
58
+ const OSC = 3;
59
+ /** DCS, SOS, PM, APC — a string terminated by ST, and never anything we draw. */
60
+ const STR = 4;
61
+ /** `ESC ( B` and friends: one more byte to swallow. */
62
+ const CHARSET = 5;
63
+ /** A column an escape sequence may ask for. `\e[999999999C` is a corrupt
64
+ * capture rather than a request, and allocating for it is how a renderer
65
+ * turns one bad byte into an out-of-memory. */
66
+ const MAX_COLUMN = 100_000;
67
+ /** An OSC or DCS payload bigger than this is a program misbehaving — the same
68
+ * call `<vtterm>` makes about an oversized OSC 52. */
69
+ const MAX_STRING = 64 * 1024;
70
+ /** Marks join the cell before them rather than taking one of their own, so a
71
+ * combining accent does not shift every column after it. */
72
+ const MARK = /\p{M}/u;
73
+ const ZWJ = 0x200d;
74
+ function joinsPrevious(cp, ch) {
75
+ return cp === ZWJ || (cp >= 0x300 && MARK.test(ch));
76
+ }
77
+ /** Would a blank cell in these attributes leave a mark on the screen? */
78
+ function paintsBlank(attrs) {
79
+ if (!attrs || attrs === PLAIN)
80
+ return false;
81
+ return Boolean(attrs.bg ??
82
+ attrs.inverse ??
83
+ attrs.underline ??
84
+ attrs.strike ??
85
+ attrs.overline);
86
+ }
87
+ /**
88
+ * One row of cells, as spans.
89
+ *
90
+ * Trailing blanks in attributes that paint nothing are dropped: they are
91
+ * invisible on the screen and they would ride along in every copied line. A
92
+ * trailing run that *does* paint — a status bar's background — is kept,
93
+ * because that one is on the screen.
94
+ */
95
+ function flushLine(chars, attrs) {
96
+ let end = chars.length;
97
+ while (end > 0 &&
98
+ (chars[end - 1] ?? ' ') === ' ' &&
99
+ !paintsBlank(attrs[end - 1])) {
100
+ end--;
101
+ }
102
+ const spans = [];
103
+ let text = '';
104
+ let i = 0;
105
+ while (i < end) {
106
+ // Cells written between two SGR sequences share one frozen record, so
107
+ // this is an identity compare rather than twelve field compares.
108
+ const attr = attrs[i] ?? PLAIN;
109
+ let j = i + 1;
110
+ while (j < end && (attrs[j] ?? PLAIN) === attr)
111
+ j++;
112
+ let run = '';
113
+ for (let k = i; k < j; k++)
114
+ run += chars[k] ?? ' ';
115
+ spans.push({ ...attr, text: run });
116
+ text += run;
117
+ i = j;
118
+ }
119
+ return { spans, text };
120
+ }
121
+ /**
122
+ * The reducer's state: the escape machine, the current attributes, the line
123
+ * being written, and the lines already finished.
124
+ *
125
+ * Held across calls so an append costs the appended bytes. Completed lines
126
+ * are never mutated, so an older `AnsiDocument` snapshot stays valid after
127
+ * the next `write()`.
128
+ */
129
+ export class AnsiState {
130
+ _tabWidth;
131
+ _maxLines;
132
+ _style = new Style();
133
+ _decoder = new Utf8Decoder();
134
+ _lines = [];
135
+ _truncated = 0;
136
+ _chars = [];
137
+ _attrs = [];
138
+ _col = 0;
139
+ _lastPrinted = '';
140
+ _joinNext = false;
141
+ _title;
142
+ _needsScreen = false;
143
+ _dropped = {};
144
+ _phase = GROUND;
145
+ _params = [];
146
+ _group = [];
147
+ _digits = '';
148
+ _prefix = '';
149
+ _string = '';
150
+ _stringEsc = false;
151
+ constructor(options = {}) {
152
+ this._tabWidth = Math.max(1, options.tabWidth ?? 8);
153
+ this._maxLines = Math.max(1, options.maxLines ?? Infinity);
154
+ }
155
+ /** Feed the next chunk. Bytes are preferred — see `./utf8.ts`. */
156
+ write(data) {
157
+ if (typeof data === 'string') {
158
+ this._feed(data);
159
+ return;
160
+ }
161
+ if (data instanceof Uint8Array) {
162
+ this._feed(this._decoder.decode(data));
163
+ return;
164
+ }
165
+ for (const part of data)
166
+ this.write(part);
167
+ }
168
+ /** The document as it stands. Cheap: only the line still being written is
169
+ * rebuilt, and the finished ones are shared by reference. */
170
+ snapshot() {
171
+ const live = flushLine(this._chars, this._attrs);
172
+ // A capture with no trailing newline still has a last line, and a log
173
+ // being tailed shows its tail. An empty one is not a line at all.
174
+ const hasLive = live.spans.length > 0;
175
+ // The line still being written counts against `maxLines`, because "keep
176
+ // the last hundred lines" means the hundred a reader sees. Eviction in
177
+ // `_pushLine` is what bounds the memory; this is what bounds the answer,
178
+ // and only the two differ by the one live line.
179
+ const room = hasLive ? this._maxLines - 1 : this._maxLines;
180
+ const skipped = Math.max(0, this._lines.length - room);
181
+ const lines = skipped > 0 ? this._lines.slice(skipped) : this._lines.slice();
182
+ if (hasLive)
183
+ lines.push(live);
184
+ return {
185
+ lines,
186
+ ...(this._title === undefined ? null : { title: this._title }),
187
+ needsScreen: this._needsScreen,
188
+ dropped: { ...this._dropped },
189
+ truncated: this._truncated + skipped,
190
+ state: this,
191
+ };
192
+ }
193
+ // --- the escape machine ---------------------------------------------------
194
+ _feed(text) {
195
+ const n = text.length;
196
+ let i = 0;
197
+ while (i < n) {
198
+ if (this._phase === GROUND) {
199
+ // The fast path: everything up to the next control character is text,
200
+ // and a build log is almost all text.
201
+ let j = i;
202
+ while (j < n) {
203
+ const c = text.charCodeAt(j);
204
+ if (c < 0x20 || c === 0x7f)
205
+ break;
206
+ j++;
207
+ }
208
+ if (j > i) {
209
+ this._print(text.slice(i, j));
210
+ i = j;
211
+ continue;
212
+ }
213
+ this._control(text.charCodeAt(i));
214
+ i++;
215
+ continue;
216
+ }
217
+ this._step(text.charCodeAt(i), text[i]);
218
+ i++;
219
+ }
220
+ }
221
+ _control(c) {
222
+ switch (c) {
223
+ case 0x08:
224
+ this._col = Math.max(0, this._col - 1);
225
+ break;
226
+ case 0x09:
227
+ this._col = Math.min(MAX_COLUMN, (Math.floor(this._col / this._tabWidth) + 1) * this._tabWidth);
228
+ break;
229
+ case 0x0a:
230
+ case 0x0b:
231
+ case 0x0c:
232
+ this._newline();
233
+ break;
234
+ case 0x0d:
235
+ this._col = 0;
236
+ break;
237
+ case 0x1b:
238
+ this._phase = ESC;
239
+ break;
240
+ default:
241
+ // BEL, SO/SI, DEL and the rest: consumed, and none of them changes
242
+ // anything this model holds.
243
+ break;
244
+ }
245
+ }
246
+ _step(code, ch) {
247
+ switch (this._phase) {
248
+ case ESC:
249
+ this._escape(ch);
250
+ break;
251
+ case CSI:
252
+ this._csi(code, ch);
253
+ break;
254
+ case OSC:
255
+ case STR:
256
+ this._stringByte(code, ch);
257
+ break;
258
+ case CHARSET:
259
+ // `ESC ( B` and its family: the designation byte, swallowed. Nothing
260
+ // here switches character sets — a capture is already Unicode by the
261
+ // time it reaches this parser.
262
+ this._phase = GROUND;
263
+ break;
264
+ default:
265
+ this._phase = GROUND;
266
+ break;
267
+ }
268
+ }
269
+ _escape(ch) {
270
+ switch (ch) {
271
+ case '[':
272
+ this._phase = CSI;
273
+ this._params = [];
274
+ this._group = [];
275
+ this._digits = '';
276
+ this._prefix = '';
277
+ return;
278
+ case ']':
279
+ this._phase = OSC;
280
+ this._string = '';
281
+ this._stringEsc = false;
282
+ return;
283
+ case 'P': // DCS — sixel arrives here
284
+ case 'X': // SOS
285
+ case '^': // PM
286
+ case '_': // APC
287
+ this._phase = STR;
288
+ this._string = '';
289
+ this._stringEsc = false;
290
+ return;
291
+ case '(':
292
+ case ')':
293
+ case '*':
294
+ case '+':
295
+ case '-':
296
+ case '.':
297
+ case '/':
298
+ case '#':
299
+ case '%':
300
+ case ' ':
301
+ this._phase = CHARSET;
302
+ return;
303
+ default:
304
+ break;
305
+ }
306
+ this._phase = GROUND;
307
+ switch (ch) {
308
+ case 'D': // IND — down one line
309
+ this._newline();
310
+ break;
311
+ case 'E': // NEL — down one line, column zero
312
+ this._newline();
313
+ break;
314
+ case 'M': // RI — *up* one line, which only a screen has
315
+ this._screen('RI');
316
+ break;
317
+ case '7':
318
+ case '8':
319
+ // DECSC/DECRC. Counted rather than flagged: a saved cursor restored
320
+ // inside one line is ordinary in progress renderers, and calling
321
+ // every capture that uses it "needs a screen" would cry wolf.
322
+ this._drop(ch === '7' ? 'DECSC' : 'DECRC');
323
+ break;
324
+ case 'c':
325
+ this._drop('RIS');
326
+ break;
327
+ case '\\': // ST with nothing open
328
+ case '=':
329
+ case '>':
330
+ break;
331
+ default:
332
+ this._drop('esc');
333
+ break;
334
+ }
335
+ }
336
+ _csi(code, ch) {
337
+ if (code >= 0x30 && code <= 0x39) {
338
+ this._digits += ch;
339
+ return;
340
+ }
341
+ if (code === 0x3a) {
342
+ this._group.push(this._value());
343
+ return;
344
+ }
345
+ if (code === 0x3b) {
346
+ this._group.push(this._value());
347
+ this._params.push(this._group);
348
+ this._group = [];
349
+ return;
350
+ }
351
+ if (code >= 0x3c && code <= 0x3f) {
352
+ // `?`, `<`, `=`, `>`: the private marker, and only legal before any
353
+ // parameter — a stray one later is the capture's problem, not ours.
354
+ this._prefix += ch;
355
+ return;
356
+ }
357
+ if (code >= 0x20 && code <= 0x2f) {
358
+ // An intermediate byte. Nothing dispatched below takes one, so the only
359
+ // thing it changes is that the final is not what it would otherwise be.
360
+ this._prefix += ch;
361
+ return;
362
+ }
363
+ if (code >= 0x40 && code <= 0x7e) {
364
+ this._group.push(this._value());
365
+ this._params.push(this._group);
366
+ this._group = [];
367
+ this._phase = GROUND;
368
+ this._dispatch(ch);
369
+ return;
370
+ }
371
+ if (code === 0x18 || code === 0x1a) {
372
+ // CAN/SUB abort the sequence, which is the one way a program says
373
+ // "ignore what I just started".
374
+ this._phase = GROUND;
375
+ return;
376
+ }
377
+ // A C0 inside a CSI is executed and the sequence continues, which is what
378
+ // makes `\e[1;\n31m` behave the way a terminal behaves.
379
+ if (code < 0x20)
380
+ this._control(code);
381
+ }
382
+ _value() {
383
+ if (!this._digits)
384
+ return ABSENT;
385
+ const n = Number.parseInt(this._digits, 10);
386
+ this._digits = '';
387
+ return Number.isFinite(n) ? n : ABSENT;
388
+ }
389
+ _dispatch(final) {
390
+ const params = this._params;
391
+ const at = (i, dflt) => param(params, i, dflt);
392
+ const positive = (i) => Math.max(1, Math.min(MAX_COLUMN, at(i, 1)));
393
+ if (this._prefix) {
394
+ this._private(final, at(0, 0));
395
+ return;
396
+ }
397
+ switch (final) {
398
+ case 'm':
399
+ this._style.apply(params);
400
+ return;
401
+ case 'K':
402
+ this._eraseLine(at(0, 0));
403
+ return;
404
+ case 'C': // CUF
405
+ case 'a': // HPR
406
+ this._col = Math.min(MAX_COLUMN, this._col + positive(0));
407
+ return;
408
+ case 'D': // CUB
409
+ this._col = Math.max(0, this._col - positive(0));
410
+ return;
411
+ case 'G': // CHA
412
+ case '`': // HPA
413
+ // Column-absolute *within a line* is the one addressing sequence a
414
+ // flow model answers exactly, so it is honoured rather than flagged.
415
+ this._col = Math.max(0, Math.min(MAX_COLUMN, at(0, 1) - 1));
416
+ return;
417
+ case 'E': // CNL — down n lines, column zero. In a document, n newlines.
418
+ for (let i = 0; i < positive(0); i++)
419
+ this._newline();
420
+ return;
421
+ case 'Z': // CBT
422
+ this._col = Math.max(0, (Math.ceil(this._col / this._tabWidth) - positive(0)) *
423
+ this._tabWidth);
424
+ return;
425
+ case 'X': // ECH
426
+ this._eraseChars(positive(0));
427
+ return;
428
+ case 'P': // DCH
429
+ this._deleteChars(positive(0));
430
+ return;
431
+ case '@': // ICH
432
+ this._insertBlanks(positive(0));
433
+ return;
434
+ case 'b': // REP
435
+ if (this._lastPrinted) {
436
+ const attrs = this._style.attrs();
437
+ for (let i = 0; i < positive(0); i++)
438
+ this._put(this._lastPrinted, attrs);
439
+ }
440
+ return;
441
+ case 'H':
442
+ case 'f':
443
+ this._screen('CUP');
444
+ return;
445
+ case 'A':
446
+ this._screen('CUU');
447
+ return;
448
+ case 'B':
449
+ this._screen('CUD');
450
+ return;
451
+ case 'F':
452
+ this._screen('CPL');
453
+ return;
454
+ case 'd':
455
+ this._screen('VPA');
456
+ return;
457
+ case 'J':
458
+ this._screen('ED');
459
+ return;
460
+ case 'L':
461
+ this._screen('IL');
462
+ return;
463
+ case 'M':
464
+ this._screen('DL');
465
+ return;
466
+ case 'S':
467
+ this._screen('SU');
468
+ return;
469
+ case 'T':
470
+ this._screen('SD');
471
+ return;
472
+ case 'r':
473
+ this._screen('DECSTBM');
474
+ return;
475
+ case 'n':
476
+ case 'c':
477
+ // A query. Nothing can answer it: a capture is not a conversation.
478
+ this._drop('query');
479
+ return;
480
+ case 'h':
481
+ case 'l':
482
+ this._drop('mode');
483
+ return;
484
+ case 's':
485
+ case 'u':
486
+ this._drop(final === 's' ? 'SCOSC' : 'SCORC');
487
+ return;
488
+ case 't':
489
+ this._drop('window-op');
490
+ return;
491
+ default:
492
+ this._drop('csi');
493
+ return;
494
+ }
495
+ }
496
+ _private(final, first) {
497
+ if (final !== 'h' && final !== 'l') {
498
+ this._drop('csi-private');
499
+ return;
500
+ }
501
+ // 1049/1047/47 are the alternate screen, and a program that took it drew
502
+ // a screen by definition.
503
+ if (first === 1049 || first === 1047 || first === 47) {
504
+ this._screen('alt-screen');
505
+ return;
506
+ }
507
+ // Cursor visibility, bracketed paste, mouse tracking, focus reporting:
508
+ // all real, none of them visible in a static render.
509
+ this._drop('dec-mode');
510
+ }
511
+ // --- OSC and the string sequences -----------------------------------------
512
+ _stringByte(code, ch) {
513
+ if (this._stringEsc) {
514
+ this._stringEsc = false;
515
+ if (ch === '\\') {
516
+ this._endString();
517
+ return;
518
+ }
519
+ // An ESC that was not ST aborts the string, exactly as it does in a
520
+ // terminal — otherwise one dropped byte swallows the rest of the log.
521
+ this._phase = GROUND;
522
+ this._escape(ch);
523
+ return;
524
+ }
525
+ if (code === 0x1b) {
526
+ this._stringEsc = true;
527
+ return;
528
+ }
529
+ if (code === 0x07) {
530
+ this._endString();
531
+ return;
532
+ }
533
+ if (code < 0x20) {
534
+ // A C0 other than BEL/ESC ends an OSC in xterm. Ending is the safe
535
+ // reading: the alternative is swallowing the rest of the capture.
536
+ this._endString();
537
+ this._control(code);
538
+ return;
539
+ }
540
+ if (this._string.length < MAX_STRING)
541
+ this._string += ch;
542
+ }
543
+ _endString() {
544
+ const phase = this._phase;
545
+ const payload = this._string;
546
+ this._string = '';
547
+ this._phase = GROUND;
548
+ if (phase === STR) {
549
+ // DCS and friends. Sixel lives here, and a sixel is an image this
550
+ // component does not decode — recognised, consumed, counted.
551
+ this._drop(/^[\d;]*q/.test(payload) ? 'sixel' : 'dcs');
552
+ return;
553
+ }
554
+ const split = payload.indexOf(';');
555
+ const id = split < 0 ? payload : payload.slice(0, split);
556
+ const rest = split < 0 ? '' : payload.slice(split + 1);
557
+ switch (id) {
558
+ case '0':
559
+ case '2':
560
+ this._title = rest;
561
+ return;
562
+ case '1':
563
+ // The icon name. Real, and nothing here has an icon.
564
+ return;
565
+ case '8': {
566
+ // `OSC 8 ; params ; URI ST`, and an empty URI closes.
567
+ const uriAt = rest.indexOf(';');
568
+ const uri = uriAt < 0 ? '' : rest.slice(uriAt + 1);
569
+ this._style.setHref(uri || undefined);
570
+ return;
571
+ }
572
+ case '52':
573
+ // A recorded clipboard write. Recording one is not performing one.
574
+ this._drop('osc-52');
575
+ return;
576
+ case '4':
577
+ case '10':
578
+ case '11':
579
+ case '12':
580
+ case '104':
581
+ case '110':
582
+ case '111':
583
+ case '112':
584
+ this._drop('osc-palette');
585
+ return;
586
+ default:
587
+ this._drop('osc');
588
+ return;
589
+ }
590
+ }
591
+ // --- the line buffer ------------------------------------------------------
592
+ _print(text) {
593
+ const attrs = this._style.attrs();
594
+ for (const ch of text) {
595
+ const cp = ch.codePointAt(0);
596
+ const joins = this._joinNext || joinsPrevious(cp, ch);
597
+ this._joinNext = cp === ZWJ;
598
+ if (joins && this._col > 0) {
599
+ const at = this._col - 1;
600
+ this._chars[at] = (this._chars[at] ?? ' ') + ch;
601
+ this._lastPrinted = this._chars[at];
602
+ continue;
603
+ }
604
+ this._put(ch, attrs);
605
+ }
606
+ }
607
+ _put(ch, attrs) {
608
+ const col = this._col;
609
+ if (col >= MAX_COLUMN)
610
+ return;
611
+ // A gap opened by CUF or HPA is blank on the screen, so it is blank here.
612
+ for (let i = this._chars.length; i < col; i++) {
613
+ this._chars[i] = ' ';
614
+ this._attrs[i] = PLAIN;
615
+ }
616
+ this._chars[col] = ch;
617
+ this._attrs[col] = attrs;
618
+ this._col = col + 1;
619
+ this._lastPrinted = ch;
620
+ }
621
+ _newline() {
622
+ this._pushLine(flushLine(this._chars, this._attrs));
623
+ this._chars = [];
624
+ this._attrs = [];
625
+ this._col = 0;
626
+ this._joinNext = false;
627
+ }
628
+ _pushLine(line) {
629
+ this._lines.push(line);
630
+ if (this._lines.length > this._maxLines) {
631
+ const excess = this._lines.length - this._maxLines;
632
+ this._lines.splice(0, excess);
633
+ this._truncated += excess;
634
+ }
635
+ }
636
+ _eraseLine(mode) {
637
+ if (mode === 1) {
638
+ const attrs = this._style.attrs();
639
+ const end = Math.min(this._col + 1, Math.max(this._chars.length, this._col + 1));
640
+ for (let i = 0; i < end; i++) {
641
+ this._chars[i] = ' ';
642
+ this._attrs[i] = attrs;
643
+ }
644
+ return;
645
+ }
646
+ // 0 truncates from the head, 2 clears the row. In a document both are the
647
+ // same statement — there is nothing past the head but what a `\r` rewind
648
+ // left, and erasing it is exactly what the sequence is for.
649
+ const from = mode === 2 ? 0 : this._col;
650
+ this._chars.length = Math.min(this._chars.length, from);
651
+ this._attrs.length = Math.min(this._attrs.length, from);
652
+ }
653
+ _eraseChars(n) {
654
+ const attrs = this._style.attrs();
655
+ const end = Math.min(this._chars.length, this._col + n);
656
+ for (let i = this._col; i < end; i++) {
657
+ this._chars[i] = ' ';
658
+ this._attrs[i] = attrs;
659
+ }
660
+ }
661
+ _deleteChars(n) {
662
+ if (this._col >= this._chars.length)
663
+ return;
664
+ this._chars.splice(this._col, n);
665
+ this._attrs.splice(this._col, n);
666
+ }
667
+ _insertBlanks(n) {
668
+ if (this._col > this._chars.length)
669
+ return;
670
+ const attrs = this._style.attrs();
671
+ const blanks = new Array(n).fill(' ');
672
+ this._chars.splice(this._col, 0, ...blanks);
673
+ this._attrs.splice(this._col, 0, ...new Array(n).fill(attrs));
674
+ }
675
+ // --- what could not be honoured -------------------------------------------
676
+ _drop(name) {
677
+ this._dropped[name] = (this._dropped[name] ?? 0) + 1;
678
+ }
679
+ /** Dropped, and it is the kind of sequence that means the capture wanted a
680
+ * real screen. Both, always: `needsScreen` says which renderer to use and
681
+ * `dropped` says what it cost to use the other one. */
682
+ _screen(name) {
683
+ this._needsScreen = true;
684
+ this._drop(name);
685
+ }
686
+ }
687
+ //# sourceMappingURL=parse.js.map