@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,374 @@
1
+ // The document half of `<Html>`: bytes in, a DOM out, progressively.
2
+ //
3
+ // The tree is [domhandler]'s, built by [htmlparser2]'s streaming parser, and
4
+ // that is a deliberate reuse rather than a shortcut. Three reasons, in the
5
+ // order they mattered:
6
+ //
7
+ // 1. **It is already installed.** ntk depends on `htmlparser2`, `domhandler`,
8
+ // `domutils` and `css-select` for its own (deprecated) `HtmlView`, and ntk
9
+ // is react-x11's dependency — so an app that has this package has all four
10
+ // already, and declaring them here adds no packages to an install. That is
11
+ // the whole of the install-closure argument this repo usually loses (see
12
+ // AGENTS.md, "a heavy parser is an optionalDependency"), inverted.
13
+ // 2. **The parser is streaming by construction.** `parser.write(chunk)`
14
+ // appends to the tree in place, which is the "create DOM progressively"
15
+ // requirement rather than an approximation of it — a growing `source`
16
+ // writes its delta, and the nodes already parsed are the same objects.
17
+ // 3. **The DOM is the app's API.** `Element`/`Text` are plain mutable
18
+ // objects, so "manipulate the resulting DOM and the control reflects it"
19
+ // is an ordinary object graph plus an invalidation call, not a bespoke
20
+ // mirror the app has to learn.
21
+ //
22
+ // What is *not* reused is `HtmlView` itself — it renders a document as one
23
+ // opaque yoga tree with no selection, which is the thing being replaced.
24
+ //
25
+ // [domhandler]: https://github.com/fb55/domhandler
26
+ // [htmlparser2]: https://github.com/fb55/htmlparser2
27
+ import { Parser } from 'htmlparser2';
28
+ import { DomHandler, Element, Text } from 'domhandler';
29
+ export { Element, Text, Comment } from 'domhandler';
30
+ /** Elements whose content is markup-opaque, so the tokenizer stays in raw
31
+ * text until the matching close tag. htmlparser2 knows these already; the
32
+ * set is here because the box builder has to skip the same ones. */
33
+ const RAW_TEXT = new Set(['script', 'style', 'textarea', 'title']);
34
+ /** Never rendered, whatever the stylesheet says. `<script>` and `<style>`
35
+ * are consumed by the seams instead; the rest have no visual box in the
36
+ * subset this renders. */
37
+ export const NON_RENDERED = new Set([
38
+ 'script',
39
+ 'style',
40
+ 'head',
41
+ 'meta',
42
+ 'link',
43
+ 'title',
44
+ 'base',
45
+ 'template',
46
+ 'noscript',
47
+ ]);
48
+ /** An element's tag name, lowercased — htmlparser2 already lowercases in
49
+ * HTML mode, so this is the assertion rather than the work. */
50
+ export function tagOf(node) {
51
+ return node.type === 'tag' || node.type === 'script' || node.type === 'style'
52
+ ? node.name.toLowerCase()
53
+ : '';
54
+ }
55
+ export function isElement(node) {
56
+ return (!!node &&
57
+ (node.type === 'tag' || node.type === 'script' || node.type === 'style'));
58
+ }
59
+ export function isText(node) {
60
+ return !!node && node.type === 'text';
61
+ }
62
+ /** Children of a node, or an empty array for a leaf. Cheaper than domutils'
63
+ * guard chain on the hot path, and it is the only traversal shape the
64
+ * styler and the box builder need. */
65
+ export function childrenOf(node) {
66
+ const kids = node.children;
67
+ return kids ?? EMPTY;
68
+ }
69
+ const EMPTY = [];
70
+ /** Attribute read, case-insensitively, or `undefined`. */
71
+ export function attr(el, name) {
72
+ return el.attribs?.[name];
73
+ }
74
+ /** The text under a node, uncollapsed — what `<style>` hands the CSS parser
75
+ * and what a `<script>` seam is given. */
76
+ export function rawTextOf(node) {
77
+ if (isText(node))
78
+ return node.data;
79
+ let out = '';
80
+ for (const child of childrenOf(node))
81
+ out += rawTextOf(child);
82
+ return out;
83
+ }
84
+ /**
85
+ * Walk elements in document order. The styler, the resource sweep and the
86
+ * script sweep are all one pass over this.
87
+ *
88
+ * An explicit stack, and it has to be: the parser builds a tree of any depth
89
+ * without recursing (htmlparser2 is a state machine), so the first thing to
90
+ * die on a degenerately nested document would otherwise be this walk — and a
91
+ * `yield*` chain is the worst recursion there is, costing a resume per level
92
+ * per element (a walk of 1,000 nested divs measured 16ms as a generator and
93
+ * rounds to zero as a loop).
94
+ */
95
+ export function* elementsIn(root) {
96
+ const stack = [childrenOf(root)];
97
+ const at = [0];
98
+ while (stack.length) {
99
+ const top = stack.length - 1;
100
+ const kids = stack[top];
101
+ const i = at[top];
102
+ if (i >= kids.length) {
103
+ stack.pop();
104
+ at.pop();
105
+ continue;
106
+ }
107
+ at[top] = i + 1;
108
+ const child = kids[i];
109
+ if (!isElement(child))
110
+ continue;
111
+ yield child;
112
+ const grandkids = childrenOf(child);
113
+ if (grandkids.length) {
114
+ stack.push(grandkids);
115
+ at.push(0);
116
+ }
117
+ }
118
+ }
119
+ /**
120
+ * A document being parsed. Feed it source; read `document` at any time.
121
+ *
122
+ * `write` is append-only by design: handed a `source` that starts with what
123
+ * was already written, it writes the delta and the existing nodes keep their
124
+ * identity — which is what lets the box tree, the computed styles and the
125
+ * laid-out lines above it survive a streaming append. A `source` that is not
126
+ * an extension resets the parser, because a mid-document edit can change the
127
+ * tree arbitrarily and pretending otherwise is how a streaming renderer
128
+ * shows a document nobody wrote.
129
+ */
130
+ export class HtmlSource {
131
+ /** The tree, live: it grows as chunks are written. */
132
+ document;
133
+ /** Bumped whenever the tree changed — the styler's cache key. */
134
+ revision = 0;
135
+ /** True once `end()` has been called and the tree is final. */
136
+ complete = false;
137
+ _parser;
138
+ _handler;
139
+ _written = '';
140
+ _facts = freshFacts();
141
+ constructor() {
142
+ const { parser, handler } = createParser();
143
+ this._parser = parser;
144
+ this._handler = handler;
145
+ this.document = handler.root;
146
+ }
147
+ /** Set the whole source. Appends when it can; re-parses when it cannot. */
148
+ setSource(source, complete) {
149
+ let changed = false;
150
+ if (source === this._written) {
151
+ changed = false;
152
+ }
153
+ else if (source.startsWith(this._written)) {
154
+ this._parser.write(source.slice(this._written.length));
155
+ this._written = source;
156
+ changed = true;
157
+ }
158
+ else {
159
+ this.reset();
160
+ this._parser.write(source);
161
+ this._written = source;
162
+ changed = true;
163
+ }
164
+ if (complete && !this.complete) {
165
+ this._parser.end();
166
+ this.complete = true;
167
+ changed = true;
168
+ }
169
+ if (changed) {
170
+ this.revision += 1;
171
+ this._facts = freshFacts();
172
+ }
173
+ return changed;
174
+ }
175
+ /** Start over — a source that is not an extension of what was written. */
176
+ reset() {
177
+ this._parser.reset();
178
+ const { parser, handler } = createParser();
179
+ this._parser = parser;
180
+ this._handler = handler;
181
+ this.document = handler.root;
182
+ this._written = '';
183
+ this.complete = false;
184
+ this._facts = freshFacts();
185
+ }
186
+ /** The DOM changed under us — an app mutated it, or a stylesheet arrived
187
+ * and was spliced in. Anything cached on the old revision is stale. */
188
+ touch() {
189
+ this.revision += 1;
190
+ this._facts = freshFacts();
191
+ }
192
+ /**
193
+ * What the document says about its own resources, scripts and stylesheets.
194
+ * One pass, memoized against `revision`, because all three consumers ask
195
+ * on the same tick and a document of any size is not worth walking thrice.
196
+ */
197
+ facts() {
198
+ if (this._facts.scanned === this.revision)
199
+ return this._facts;
200
+ const facts = freshFacts();
201
+ facts.scanned = this.revision;
202
+ for (const el of elementsIn(this.document)) {
203
+ const tag = tagOf(el);
204
+ if (tag === 'style') {
205
+ const media = attr(el, 'media');
206
+ // A media query this renderer cannot evaluate is not a licence to
207
+ // apply the sheet anyway: `media="print"` is meant not to show.
208
+ if (!media || appliesToScreen(media)) {
209
+ facts.sheets.push({
210
+ kind: 'inline',
211
+ text: rawTextOf(el),
212
+ element: el,
213
+ });
214
+ }
215
+ }
216
+ else if (tag === 'link') {
217
+ const rel = (attr(el, 'rel') ?? '').toLowerCase();
218
+ const href = attr(el, 'href');
219
+ if (href && rel.split(/\s+/).includes('stylesheet')) {
220
+ const media = attr(el, 'media');
221
+ if (!media || appliesToScreen(media)) {
222
+ facts.sheets.push({ kind: 'link', href, element: el });
223
+ facts.resources.push(el);
224
+ }
225
+ }
226
+ }
227
+ else if (tag === 'script') {
228
+ facts.scripts.push(el);
229
+ }
230
+ else if (tag === 'img' || tag === 'image') {
231
+ if (attr(el, 'src'))
232
+ facts.resources.push(el);
233
+ }
234
+ else if (tag === 'title' && facts.title === null) {
235
+ facts.title = rawTextOf(el).trim();
236
+ }
237
+ }
238
+ this._facts = facts;
239
+ return facts;
240
+ }
241
+ /** Release the parser. The tree stays readable — an app may still hold it. */
242
+ destroy() {
243
+ this._parser.reset();
244
+ this._handler.onreset?.();
245
+ }
246
+ }
247
+ function freshFacts() {
248
+ return { sheets: [], scripts: [], resources: [], title: null, scanned: -1 };
249
+ }
250
+ function createParser() {
251
+ const handler = new DomHandler(null, {
252
+ // Positions cost time and memory per node and nothing here reads them.
253
+ withStartIndices: false,
254
+ withEndIndices: false,
255
+ });
256
+ const parser = new Parser(handler, {
257
+ lowerCaseTags: true,
258
+ lowerCaseAttributeNames: true,
259
+ recognizeSelfClosing: true,
260
+ decodeEntities: true,
261
+ });
262
+ return { parser, handler };
263
+ }
264
+ /**
265
+ * Whether a `media` attribute is one a screen honours. Deliberately not a
266
+ * media-query engine: `screen`, `all` and an empty list apply, `print` and
267
+ * anything else with a type this is not does not, and a query with features
268
+ * in it (`(min-width: …)`) applies — a responsive sheet written for a real
269
+ * browser is closer to right applied than dropped.
270
+ */
271
+ function appliesToScreen(media) {
272
+ for (const query of media.split(',')) {
273
+ const q = query.trim().toLowerCase();
274
+ if (!q)
275
+ return true;
276
+ if (q === 'all' || q === 'screen')
277
+ return true;
278
+ if (q.startsWith('screen ') || q.startsWith('('))
279
+ return true;
280
+ if (q.startsWith('only screen'))
281
+ return true;
282
+ }
283
+ return false;
284
+ }
285
+ // --- mutation ---------------------------------------------------------------
286
+ //
287
+ // domhandler's nodes carry `parent`/`prev`/`next` as well as `children`, so a
288
+ // splice has four links to keep straight and getting one wrong corrupts the
289
+ // traversal rather than throwing. These are the three operations the renderer
290
+ // itself performs (splicing a fetched stylesheet in, replacing an `<img>`'s
291
+ // box, dropping a subtree) and the ones an app most often wants; anything
292
+ // else is `domutils`, which speaks this same tree.
293
+ /** Append `child` to `parent`, unlinking it from wherever it was. */
294
+ export function appendChild(parent, child) {
295
+ removeNode(child);
296
+ const kids = parent.children;
297
+ const last = kids[kids.length - 1] ?? null;
298
+ if (last)
299
+ last.next = child;
300
+ child.prev = last;
301
+ child.next = null;
302
+ child.parent = parent;
303
+ kids.push(child);
304
+ }
305
+ /** Unlink a node from its parent. Safe on a node that has none. */
306
+ export function removeNode(node) {
307
+ const parent = node.parent;
308
+ if (parent) {
309
+ const kids = parent.children;
310
+ const at = kids.indexOf(node);
311
+ if (at >= 0)
312
+ kids.splice(at, 1);
313
+ }
314
+ if (node.prev)
315
+ node.prev.next = node.next;
316
+ if (node.next)
317
+ node.next.prev = node.prev;
318
+ node.prev = null;
319
+ node.next = null;
320
+ node.parent = null;
321
+ }
322
+ /** Replace `node` with `next`, in place. */
323
+ export function replaceNode(node, next) {
324
+ const parent = node.parent;
325
+ if (!parent)
326
+ return;
327
+ const kids = parent.children;
328
+ const at = kids.indexOf(node);
329
+ removeNode(next);
330
+ next.parent = parent;
331
+ next.prev = node.prev;
332
+ next.next = node.next;
333
+ if (node.prev)
334
+ node.prev.next = next;
335
+ if (node.next)
336
+ node.next.prev = next;
337
+ if (at >= 0)
338
+ kids[at] = next;
339
+ node.prev = null;
340
+ node.next = null;
341
+ node.parent = null;
342
+ }
343
+ /** Build an element, for an app writing into the document. */
344
+ export function createElement(name, attribs = {}, children = []) {
345
+ const el = new Element(name.toLowerCase(), attribs, []);
346
+ for (const child of children)
347
+ appendChild(el, child);
348
+ return el;
349
+ }
350
+ /** Build a text node. */
351
+ export function createText(data) {
352
+ return new Text(data);
353
+ }
354
+ /** Parse a fragment into nodes an app can splice in — `innerHTML`, without
355
+ * the element to hang it off. Not streaming: a fragment is small by
356
+ * definition, and an app calling this already has the whole string. */
357
+ export function parseFragment(html) {
358
+ const { parser, handler } = createParser();
359
+ parser.write(html);
360
+ parser.end();
361
+ const kids = handler.root.children.slice();
362
+ for (const kid of kids) {
363
+ kid.parent = null;
364
+ kid.prev = null;
365
+ kid.next = null;
366
+ }
367
+ return kids;
368
+ }
369
+ /** Whether a tag's content is raw text — the box builder skips these, and
370
+ * `<textarea>`'s value comes from it rather than from a child box. */
371
+ export function isRawText(tag) {
372
+ return RAW_TEXT.has(tag);
373
+ }
374
+ //# sourceMappingURL=dom.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/html/dom.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { Key, ReactElement, ReactNode } from 'react';
2
+ import type { ReactX11Elements, Theme } from 'react-x11';
3
+ /** The host elements, by name. */
4
+ export type Host = ReactX11Elements;
5
+ /**
6
+ * What every element takes on top of its own props.
7
+ *
8
+ * `theme` is honoured by **every** node — `Node.theme` merges `props.theme`
9
+ * over the inherited palette, whatever the kind — but react-x11's element
10
+ * declarations only put it on `<window>`. A widget re-declares the theme it
11
+ * read from context onto its own root so that `$token` values still resolve
12
+ * inside a `<popup>`, which is a separate window and does not inherit the
13
+ * trigger's node tree. So the prop is real; only the declaration is narrow.
14
+ */
15
+ interface CommonProps {
16
+ key?: Key;
17
+ /** `Theme` is listed alongside the record because it is an interface, and
18
+ * an interface has no implicit index signature — so the palette `useTheme`
19
+ * hands back is not assignable to the record react-x11 declares. */
20
+ theme?: Theme | Record<string, string | number>;
21
+ }
22
+ export declare function hx<K extends keyof Host>(type: K, props?: (Omit<Host[K], 'theme'> & CommonProps) | null, ...children: ReactNode[]): ReactElement;
23
+ export {};
24
+ //# sourceMappingURL=hx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx.d.ts","sourceRoot":"","sources":["../../src/html/hx.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEzD,kCAAkC;AAClC,MAAM,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAEpC;;;;;;;;;GASG;AACH,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV;;yEAEqE;IACrE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CACjD;AAED,wBAAgB,EAAE,CAAC,CAAC,SAAS,MAAM,IAAI,EACrC,IAAI,EAAE,CAAC,EAIP,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,GAAG,IAAI,EACrD,GAAG,QAAQ,EAAE,SAAS,EAAE,GACvB,YAAY,CAKd"}
@@ -0,0 +1,29 @@
1
+ // `React.createElement`, typed against react-x11's host elements.
2
+ //
3
+ // The library writes `h(...)` rather than JSX — a convention inherited from
4
+ // core, and worth keeping so moving code between the two repos stays a
5
+ // rename. But `React.createElement`'s own overloads are `@types/react`'s, and
6
+ // they describe the DOM: a `<box onKeyDown>` handler is checked against
7
+ // React's `KeyboardEvent`, not react-x11's, and the whole props object is
8
+ // measured against `DOMAttributes`. Everything interesting fails.
9
+ //
10
+ // So the element name is looked up in react-x11's own element table instead.
11
+ // `hx('box', …)` gets `<box>`'s real props — `ev.keysym` on a key handler,
12
+ // `onDraw` on a `<canvas>` — and `hx('div', …)` is an error, which is the
13
+ // same guarantee the JSX namespace gives `examples/` and `test/types/`.
14
+ //
15
+ // A copy of `src/markdown/hx.ts`, deliberately: it is nine lines of types,
16
+ // and importing it would make one component depend on another, which is the
17
+ // one thing the layout rules forbid outright.
18
+ import React from 'react';
19
+ export function hx(type,
20
+ // `theme` is dropped from the element's own props before the merge:
21
+ // `<window>` and `<popup>` already declare it, narrower, and intersecting
22
+ // the two would demand a value satisfying both.
23
+ props, ...children) {
24
+ // The cast is the whole point of the wrapper: `createElement`'s string
25
+ // overload insists on DOM props, and the signature above has already
26
+ // checked these against the element that will actually receive them.
27
+ return React.createElement(type, props, ...children);
28
+ }
29
+ //# sourceMappingURL=hx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx.js","sourceRoot":"","sources":["../../src/html/hx.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,EAAE;AACF,4EAA4E;AAC5E,uEAAuE;AACvE,8EAA8E;AAC9E,wEAAwE;AACxE,0EAA0E;AAC1E,kEAAkE;AAClE,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,0EAA0E;AAC1E,wEAAwE;AACxE,EAAE;AACF,2EAA2E;AAC3E,4EAA4E;AAC5E,8CAA8C;AAC9C,OAAO,KAAK,MAAM,OAAO,CAAC;AAyB1B,MAAM,UAAU,EAAE,CAChB,IAAO;AACP,oEAAoE;AACpE,0EAA0E;AAC1E,gDAAgD;AAChD,KAAqD,EACrD,GAAG,QAAqB;IAExB,uEAAuE;IACvE,qEAAqE;IACrE,qEAAqE;IACrE,OAAO,KAAK,CAAC,aAAa,CAAC,IAAc,EAAE,KAAc,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,137 @@
1
+ import React from 'react';
2
+ import type { ReactElement } from 'react';
3
+ import type { DrawnNode, MouseEvent as X11MouseEvent } from 'react-x11';
4
+ import type { Style } from 'react-x11/style';
5
+ import type { Document, Element } from './dom.js';
6
+ import type { HtmlViewProps, ScriptRequest } from './node.js';
7
+ import type { ResourceRequest, ResourceResult } from './resources.js';
8
+ export { ELEMENT as HTMLVIEW_ELEMENT, HtmlViewNode, registerHtmlView, } from './node.js';
9
+ export type { HtmlViewProps, ScriptRequest } from './node.js';
10
+ export type { ResourceRequest, ResourceResult } from './resources.js';
11
+ export type { ControlRect } from './controls.js';
12
+ export type { ComputedStyle, RootLook } from './css/style.js';
13
+ export type { AnyNode, ChildNode, Document, Element, ParentNode, } from './dom.js';
14
+ export { appendChild, createElement as createHtmlElement, createText, parseFragment, removeNode, replaceNode, } from './dom.js';
15
+ /** What the document may do to the outside world. Nothing, by default. */
16
+ export interface HtmlProps {
17
+ /** The HTML. Append to it as chunks stream in. */
18
+ source: string;
19
+ /**
20
+ * Whether more source may still arrive (default true, matching
21
+ * `<Markdown partial>`). While true the parser is left open and a `source`
22
+ * that extends the last one is written as a delta, so the nodes already
23
+ * parsed keep their identity and their layout. Set false when the stream
24
+ * ends.
25
+ */
26
+ partial?: boolean;
27
+ /** Mouse selection, Ctrl+A / Ctrl+C, PRIMARY. Default true. */
28
+ selectable?: boolean;
29
+ /** Extra author stylesheets, applied after the document's own. */
30
+ stylesheet?: string | string[];
31
+ /**
32
+ * An external resource is wanted — an `<img src>`, a `<link rel=stylesheet>`
33
+ * or an `@import`. Return the bytes or the text, or a promise of them, or
34
+ * `null` to decline.
35
+ *
36
+ * **Absent, nothing loads.** This component has no network and no
37
+ * filesystem of its own; images render as a frame and linked stylesheets
38
+ * are skipped. The host is the one that knows its cache, its proxy and
39
+ * whether this document is trusted.
40
+ */
41
+ onResource?: (request: ResourceRequest) => Promise<ResourceResult | null> | ResourceResult | null;
42
+ /**
43
+ * A `<script>` was found. Handed over **unparsed and unevaluated** — the
44
+ * type, the `src`, the text, the element — for an application that brings
45
+ * its own engine. Nothing here reads it.
46
+ */
47
+ onScript?: (script: ScriptRequest) => void;
48
+ /**
49
+ * A link was activated. Absent means clicks do nothing: this component
50
+ * never navigates by itself.
51
+ */
52
+ onLink?: (href: string, ev: X11MouseEvent<DrawnNode>) => void;
53
+ /** The parsed document, each time it is re-parsed — the DOM handle. */
54
+ onDocument?: (document: Document) => void;
55
+ /**
56
+ * A form control changed. The element is the one in the DOM, so a handler
57
+ * that wants to keep the value writes it back with `setAttribute`-shaped
58
+ * mutation and calls the handle's `refresh()`.
59
+ */
60
+ onControlChange?: (element: Element, value: string | boolean) => void;
61
+ /** Base text style. Defaults: theme `fontSize` (14), `sans-serif`. */
62
+ fontSize?: number;
63
+ fontFamily?: string;
64
+ /** Code font. Default `'monospace'` — there is no theme token for it. */
65
+ monoFamily?: string;
66
+ /** Selection band fill. Default: theme accent at 35% opacity. */
67
+ selectionColor?: string;
68
+ /** The root `<box>`'s style. */
69
+ style?: Style | Style[];
70
+ /**
71
+ * A handle on the element — what `useHtmlHandle()` supplies. React 19
72
+ * takes `ref` as an ordinary prop on a function component, so it is
73
+ * declared here rather than needing `forwardRef`; it is forwarded to
74
+ * `<htmlview>`, so what lands in it is the node that owns the document.
75
+ */
76
+ ref?: React.Ref<unknown>;
77
+ 'data-testname'?: string;
78
+ }
79
+ /** What an application holds to read or change the document it rendered. */
80
+ export interface HtmlHandle {
81
+ /** The live DOM. Mutable: this is domhandler's tree, and `domutils` speaks
82
+ * it, as do the helpers this module re-exports. */
83
+ readonly document: Document | null;
84
+ /**
85
+ * The DOM changed — restyle, re-lay-out and repaint.
86
+ *
87
+ * Explicit rather than observed, and that is the trade the component makes
88
+ * on purpose: watching a plain object graph for mutations costs a proxy per
89
+ * node, which would tax the static render that this is built to make fast
90
+ * in order to speed up the path it is not. Mutation is supported; it is not
91
+ * what the performance budget was spent on.
92
+ */
93
+ refresh(): void;
94
+ /** The element under a point, in the window's coordinates. */
95
+ elementAt(x: number, y: number): Element | null;
96
+ /** The document's `<title>`, if it had one. */
97
+ readonly title: string | null;
98
+ }
99
+ /**
100
+ * A rendered HTML document. Text selects across the whole of it — mouse
101
+ * (double/triple click for word and block), Ctrl+A, Ctrl+C, and X11 PRIMARY
102
+ * on release.
103
+ *
104
+ * ```jsx
105
+ * <box style={{ overflow: 'scroll', flexGrow: 1 }}>
106
+ * <Html source={html}
107
+ * onLink={(href) => openInBrowser(href)}
108
+ * onResource={(r) => r.kind === 'image' ? loadImage(r.url) : null} />
109
+ * </box>
110
+ * ```
111
+ */
112
+ export declare function Html(props: HtmlProps): ReactElement;
113
+ /**
114
+ * A handle on a rendered document, for reading or changing it.
115
+ *
116
+ * ```jsx
117
+ * const handle = useHtmlHandle();
118
+ * <Html source={html} ref={handle.ref} />
119
+ * // later
120
+ * handle.document?.children … // domhandler's tree
121
+ * handle.refresh(); // and the view catches up
122
+ * ```
123
+ */
124
+ export declare function useHtmlHandle(): HtmlHandle & {
125
+ ref: React.Ref<unknown>;
126
+ };
127
+ declare module 'react-x11/jsx-runtime' {
128
+ namespace JSX {
129
+ interface IntrinsicElements {
130
+ htmlview: HtmlViewProps & {
131
+ key?: string | number;
132
+ ref?: React.Ref<unknown>;
133
+ };
134
+ }
135
+ }
136
+ }
137
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/html/index.ts"],"names":[],"mappings":"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"}