@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,106 @@
1
+ /** `_NET_SYSTEM_TRAY_OPCODE` `data[1]`, from the spec's own names. */
2
+ export declare const SYSTEM_TRAY_REQUEST_DOCK = 0;
3
+ export declare const SYSTEM_TRAY_BEGIN_MESSAGE = 1;
4
+ export declare const SYSTEM_TRAY_CANCEL_MESSAGE = 2;
5
+ /** Property and message atom names. */
6
+ export declare const OPCODE_ATOM = "_NET_SYSTEM_TRAY_OPCODE";
7
+ export declare const ORIENTATION_ATOM = "_NET_SYSTEM_TRAY_ORIENTATION";
8
+ export declare const VISUAL_ATOM = "_NET_SYSTEM_TRAY_VISUAL";
9
+ export declare const MESSAGE_DATA_ATOM = "_NET_SYSTEM_TRAY_MESSAGE_DATA";
10
+ /** ICCCM 2.8: what a manager broadcasts to the root once it owns its
11
+ * selection, and what a client waiting for a tray is listening for. */
12
+ export declare const MANAGER_ATOM = "MANAGER";
13
+ /** Which way the panel runs, so icons can draw themselves to match. */
14
+ export type TrayOrientation = 'horizontal' | 'vertical';
15
+ /** `_NET_SYSTEM_TRAY_ORIENTATION`'s two values. */
16
+ export declare const ORIENTATION_HORIZONTAL = 0;
17
+ export declare const ORIENTATION_VERTICAL = 1;
18
+ export declare function orientationValue(orientation: TrayOrientation): number;
19
+ /** One selection per screen: `_NET_SYSTEM_TRAY_S0` on the first. */
20
+ export declare function selectionNameFor(screen: number): string;
21
+ /** A docked tray icon: the client's top-level window, and nothing else this
22
+ * package invented. The object identity is stable for as long as the icon
23
+ * is docked, so it is safe to hold onto. */
24
+ export interface TrayIcon {
25
+ /** The client's X window id — what `<foreign windowId>` embeds. */
26
+ readonly id: number;
27
+ }
28
+ /** A balloon message: what an icon says when it has no notification daemon
29
+ * to say it through. */
30
+ export interface TrayMessage {
31
+ /** The icon that is talking. */
32
+ readonly windowId: number;
33
+ /** The client's own id for the message — what a cancel names. */
34
+ readonly id: number;
35
+ /** Milliseconds the client asked for it to stay up. `0` means "until the
36
+ * user dismisses it", which is also what the notification spec means by
37
+ * a zero expiry, so it passes straight through. */
38
+ readonly timeout: number;
39
+ readonly text: string;
40
+ }
41
+ /**
42
+ * The visual id to publish as `_NET_SYSTEM_TRAY_VISUAL`, or `0` for none.
43
+ *
44
+ * `visual` is the visual of the window the icons will be embedded into —
45
+ * ntk creates a `<foreign>`'s container as an ordinary child, so it inherits
46
+ * the top-level window's visual, and that is the one an icon reparented into
47
+ * it will live on.
48
+ *
49
+ * **Advertising a visual we do not have is worse than advertising none.** A
50
+ * client that believes this creates its icon with an alpha channel; drawn on
51
+ * a display with no compositor, or into a 24-bit parent, the transparent
52
+ * parts come out black. So the answer is yes only when the window genuinely
53
+ * carries a 32-bit TrueColor visual, and the fallback — an icon guessing our
54
+ * background — is the one that has always worked.
55
+ */
56
+ export declare function argbVisualOf(screen: {
57
+ depths?: Record<number, Record<string, {
58
+ class?: number;
59
+ }>>;
60
+ } | null | undefined, visual: number): number;
61
+ /**
62
+ * UTF-8, decoded from the raw bytes a ClientMessage carries.
63
+ *
64
+ * Hand-rolled rather than reached through `TextDecoder` on `globalThis`
65
+ * because it is twenty lines, it is pure, and it makes the balloon tests
66
+ * independent of whichever runtime the suite happens to run on. Malformed
67
+ * input degrades to U+FFFD rather than throwing: a tray that refuses a
68
+ * message because a client sent it latin-1 is a tray that loses the message.
69
+ */
70
+ export declare function decodeUtf8(bytes: readonly number[]): string;
71
+ /**
72
+ * Balloon messages, reassembled.
73
+ *
74
+ * A client announces one with `SYSTEM_TRAY_BEGIN_MESSAGE` and then sends the
75
+ * text in 20-byte `_NET_SYSTEM_TRAY_MESSAGE_DATA` chunks, the last of which
76
+ * is padded. **The data messages carry no message id** — only the icon's
77
+ * window — so one message per icon can be in flight at a time, which is the
78
+ * protocol's own limit and the reason this is keyed on the window.
79
+ *
80
+ * Pure, and driven entirely by what arrived: `../manager.ts` decides nothing
81
+ * about a message beyond which icon it came from.
82
+ */
83
+ export declare class BalloonAssembler {
84
+ #private;
85
+ /** How many messages are half-arrived. Tests read it; nothing else needs it. */
86
+ get pendingCount(): number;
87
+ /**
88
+ * `SYSTEM_TRAY_BEGIN_MESSAGE`. Returns the message when it needs no data at
89
+ * all — a zero-length one is complete the moment it is announced, and a
90
+ * host that waited for a chunk that never comes would leak it.
91
+ */
92
+ begin(windowId: number, info: {
93
+ id: number;
94
+ timeout: number;
95
+ length: number;
96
+ }): TrayMessage | null;
97
+ /** One `_NET_SYSTEM_TRAY_MESSAGE_DATA` chunk. Returns the message once the
98
+ * announced number of bytes has arrived. */
99
+ data(windowId: number, chunk: readonly number[]): TrayMessage | null;
100
+ /** `SYSTEM_TRAY_CANCEL_MESSAGE`. True when there was one to cancel. */
101
+ cancel(windowId: number, id: number): boolean;
102
+ /** The icon went away mid-message. */
103
+ forget(windowId: number): void;
104
+ clear(): void;
105
+ }
106
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/tray-host/protocol.ts"],"names":[],"mappings":"AAYA,sEAAsE;AACtE,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,uCAAuC;AACvC,eAAO,MAAM,WAAW,4BAA4B,CAAC;AACrD,eAAO,MAAM,gBAAgB,iCAAiC,CAAC;AAC/D,eAAO,MAAM,WAAW,4BAA4B,CAAC;AACrD,eAAO,MAAM,iBAAiB,kCAAkC,CAAC;AACjE;wEACwE;AACxE,eAAO,MAAM,YAAY,YAAY,CAAC;AAEtC,uEAAuE;AACvE,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU,CAAC;AAExD,mDAAmD;AACnD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,eAAe,GAAG,MAAM,CAIrE;AAED,oEAAoE;AACpE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;6CAE6C;AAC7C,MAAM,WAAW,QAAQ;IACvB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB;AAED;yBACyB;AACzB,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB;;wDAEoD;IACpD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EACF;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;CAAE,GAC/D,IAAI,GACJ,SAAS,EACb,MAAM,EAAE,MAAM,GACb,MAAM,CAQR;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAmC3D;AAUD;;;;;;;;;;;GAWG;AACH,qBAAa,gBAAgB;;IAG3B,gFAAgF;IAChF,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED;;;;OAIG;IACH,KAAK,CACH,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GACpD,WAAW,GAAG,IAAI,CAgBpB;IAED;iDAC6C;IAC7C,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,WAAW,GAAG,IAAI,CAiBnE;IAED,uEAAuE;IACvE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAK5C;IAED,sCAAsC;IACtC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE7B;IAED,KAAK,IAAI,IAAI,CAEZ;CACF"}
@@ -0,0 +1,191 @@
1
+ // The freedesktop system tray protocol, as data and pure functions.
2
+ //
3
+ // Everything in this file can be asserted without an X server, which is the
4
+ // point: the [system tray spec][spec] is short and unambiguous, and the half
5
+ // of it that is *decisions* — which atom, which opcode, how the bytes of a
6
+ // balloon message reassemble, whether a visual may honestly be advertised —
7
+ // should not need a display to test.
8
+ //
9
+ // The other half, the half that talks to the server, is `./manager.ts`.
10
+ //
11
+ // [spec]: http://specifications.freedesktop.org/systemtray/latest/
12
+ /** `_NET_SYSTEM_TRAY_OPCODE` `data[1]`, from the spec's own names. */
13
+ export const SYSTEM_TRAY_REQUEST_DOCK = 0;
14
+ export const SYSTEM_TRAY_BEGIN_MESSAGE = 1;
15
+ export const SYSTEM_TRAY_CANCEL_MESSAGE = 2;
16
+ /** Property and message atom names. */
17
+ export const OPCODE_ATOM = '_NET_SYSTEM_TRAY_OPCODE';
18
+ export const ORIENTATION_ATOM = '_NET_SYSTEM_TRAY_ORIENTATION';
19
+ export const VISUAL_ATOM = '_NET_SYSTEM_TRAY_VISUAL';
20
+ export const MESSAGE_DATA_ATOM = '_NET_SYSTEM_TRAY_MESSAGE_DATA';
21
+ /** ICCCM 2.8: what a manager broadcasts to the root once it owns its
22
+ * selection, and what a client waiting for a tray is listening for. */
23
+ export const MANAGER_ATOM = 'MANAGER';
24
+ /** `_NET_SYSTEM_TRAY_ORIENTATION`'s two values. */
25
+ export const ORIENTATION_HORIZONTAL = 0;
26
+ export const ORIENTATION_VERTICAL = 1;
27
+ export function orientationValue(orientation) {
28
+ return orientation === 'vertical'
29
+ ? ORIENTATION_VERTICAL
30
+ : ORIENTATION_HORIZONTAL;
31
+ }
32
+ /** One selection per screen: `_NET_SYSTEM_TRAY_S0` on the first. */
33
+ export function selectionNameFor(screen) {
34
+ return `_NET_SYSTEM_TRAY_S${screen}`;
35
+ }
36
+ /**
37
+ * The visual id to publish as `_NET_SYSTEM_TRAY_VISUAL`, or `0` for none.
38
+ *
39
+ * `visual` is the visual of the window the icons will be embedded into —
40
+ * ntk creates a `<foreign>`'s container as an ordinary child, so it inherits
41
+ * the top-level window's visual, and that is the one an icon reparented into
42
+ * it will live on.
43
+ *
44
+ * **Advertising a visual we do not have is worse than advertising none.** A
45
+ * client that believes this creates its icon with an alpha channel; drawn on
46
+ * a display with no compositor, or into a 24-bit parent, the transparent
47
+ * parts come out black. So the answer is yes only when the window genuinely
48
+ * carries a 32-bit TrueColor visual, and the fallback — an icon guessing our
49
+ * background — is the one that has always worked.
50
+ */
51
+ export function argbVisualOf(screen, visual) {
52
+ if (!visual)
53
+ return 0;
54
+ const deep = screen?.depths?.[32];
55
+ if (!deep)
56
+ return 0;
57
+ const found = deep[String(visual)];
58
+ // TrueColor. The depth-32 list is where an ARGB visual lives, but the
59
+ // class is what says the channels are direct rather than looked up.
60
+ return found?.class === 4 ? visual : 0;
61
+ }
62
+ /**
63
+ * UTF-8, decoded from the raw bytes a ClientMessage carries.
64
+ *
65
+ * Hand-rolled rather than reached through `TextDecoder` on `globalThis`
66
+ * because it is twenty lines, it is pure, and it makes the balloon tests
67
+ * independent of whichever runtime the suite happens to run on. Malformed
68
+ * input degrades to U+FFFD rather than throwing: a tray that refuses a
69
+ * message because a client sent it latin-1 is a tray that loses the message.
70
+ */
71
+ export function decodeUtf8(bytes) {
72
+ let out = '';
73
+ for (let i = 0; i < bytes.length;) {
74
+ const b0 = bytes[i] & 0xff;
75
+ let code = 0xfffd;
76
+ let size = 1;
77
+ if (b0 < 0x80) {
78
+ code = b0;
79
+ }
80
+ else if (b0 >= 0xc2 && b0 <= 0xdf) {
81
+ size = 2;
82
+ code = b0 & 0x1f;
83
+ }
84
+ else if (b0 >= 0xe0 && b0 <= 0xef) {
85
+ size = 3;
86
+ code = b0 & 0x0f;
87
+ }
88
+ else if (b0 >= 0xf0 && b0 <= 0xf4) {
89
+ size = 4;
90
+ code = b0 & 0x07;
91
+ }
92
+ if (size > 1) {
93
+ if (i + size > bytes.length)
94
+ return out + '�';
95
+ for (let k = 1; k < size; k++) {
96
+ const cont = bytes[i + k] & 0xff;
97
+ if ((cont & 0xc0) !== 0x80) {
98
+ code = 0xfffd;
99
+ size = 1;
100
+ break;
101
+ }
102
+ code = (code << 6) | (cont & 0x3f);
103
+ }
104
+ }
105
+ if (code > 0x10ffff)
106
+ code = 0xfffd;
107
+ out += String.fromCodePoint(code);
108
+ i += size;
109
+ }
110
+ return out;
111
+ }
112
+ /**
113
+ * Balloon messages, reassembled.
114
+ *
115
+ * A client announces one with `SYSTEM_TRAY_BEGIN_MESSAGE` and then sends the
116
+ * text in 20-byte `_NET_SYSTEM_TRAY_MESSAGE_DATA` chunks, the last of which
117
+ * is padded. **The data messages carry no message id** — only the icon's
118
+ * window — so one message per icon can be in flight at a time, which is the
119
+ * protocol's own limit and the reason this is keyed on the window.
120
+ *
121
+ * Pure, and driven entirely by what arrived: `../manager.ts` decides nothing
122
+ * about a message beyond which icon it came from.
123
+ */
124
+ export class BalloonAssembler {
125
+ #pending = new Map();
126
+ /** How many messages are half-arrived. Tests read it; nothing else needs it. */
127
+ get pendingCount() {
128
+ return this.#pending.size;
129
+ }
130
+ /**
131
+ * `SYSTEM_TRAY_BEGIN_MESSAGE`. Returns the message when it needs no data at
132
+ * all — a zero-length one is complete the moment it is announced, and a
133
+ * host that waited for a chunk that never comes would leak it.
134
+ */
135
+ begin(windowId, info) {
136
+ const length = Math.max(0, info.length | 0);
137
+ const pending = {
138
+ id: info.id >>> 0,
139
+ timeout: Math.max(0, info.timeout | 0),
140
+ length,
141
+ bytes: [],
142
+ };
143
+ if (length === 0) {
144
+ this.#pending.delete(windowId);
145
+ return { windowId, id: pending.id, timeout: pending.timeout, text: '' };
146
+ }
147
+ // A second BEGIN before the first finished replaces it: the client moved
148
+ // on, and holding half of an abandoned message forever is the leak.
149
+ this.#pending.set(windowId, pending);
150
+ return null;
151
+ }
152
+ /** One `_NET_SYSTEM_TRAY_MESSAGE_DATA` chunk. Returns the message once the
153
+ * announced number of bytes has arrived. */
154
+ data(windowId, chunk) {
155
+ const pending = this.#pending.get(windowId);
156
+ // Data for a message nobody announced. Dropped rather than guessed at:
157
+ // without a BEGIN there is no id, no timeout and no length to stop at.
158
+ if (!pending)
159
+ return null;
160
+ for (const byte of chunk) {
161
+ if (pending.bytes.length >= pending.length)
162
+ break;
163
+ pending.bytes.push(byte & 0xff);
164
+ }
165
+ if (pending.bytes.length < pending.length)
166
+ return null;
167
+ this.#pending.delete(windowId);
168
+ return {
169
+ windowId,
170
+ id: pending.id,
171
+ timeout: pending.timeout,
172
+ text: decodeUtf8(pending.bytes),
173
+ };
174
+ }
175
+ /** `SYSTEM_TRAY_CANCEL_MESSAGE`. True when there was one to cancel. */
176
+ cancel(windowId, id) {
177
+ const pending = this.#pending.get(windowId);
178
+ if (!pending || pending.id !== id >>> 0)
179
+ return false;
180
+ this.#pending.delete(windowId);
181
+ return true;
182
+ }
183
+ /** The icon went away mid-message. */
184
+ forget(windowId) {
185
+ this.#pending.delete(windowId);
186
+ }
187
+ clear() {
188
+ this.#pending.clear();
189
+ }
190
+ }
191
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/tray-host/protocol.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/tree/hx.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEzD,kCAAkC;AAClC,MAAM,MAAM,IAAI,GAAG,gBAAgB,CAAC;AAEpC;;;;;;;;;GASG;AACH,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV;;yEAEqE;IACrE,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;CACjD;AAED,wBAAgB,EAAE,CAAC,CAAC,SAAS,MAAM,IAAI,EACrC,IAAI,EAAE,CAAC,EAIP,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,WAAW,CAAC,GAAG,IAAI,EACrD,GAAG,QAAQ,EAAE,SAAS,EAAE,GACvB,YAAY,CAKd"}
@@ -0,0 +1,25 @@
1
+ // `React.createElement`, typed against react-x11's host elements.
2
+ //
3
+ // The library writes `h(...)` rather than JSX — a convention inherited from
4
+ // core, and worth keeping so moving code between the two repos stays a
5
+ // rename. But `React.createElement`'s own overloads are `@types/react`'s, and
6
+ // they describe the DOM: a `<box onKeyDown>` handler is checked against
7
+ // React's `KeyboardEvent`, not react-x11's, and the whole props object is
8
+ // measured against `DOMAttributes`. Everything interesting fails.
9
+ //
10
+ // So the element name is looked up in react-x11's own element table instead.
11
+ // `hx('box', …)` gets `<box>`'s real props — `ev.keysym` on a key handler,
12
+ // `onDraw` on a `<canvas>` — and `hx('div', …)` is an error, which is the
13
+ // same guarantee the JSX namespace gives `examples/` and `test/types/`.
14
+ import React from 'react';
15
+ export function hx(type,
16
+ // `theme` is dropped from the element's own props before the merge:
17
+ // `<window>` and `<popup>` already declare it, narrower, and intersecting
18
+ // the two would demand a value satisfying both.
19
+ props, ...children) {
20
+ // The cast is the whole point of the wrapper: `createElement`'s string
21
+ // overload insists on DOM props, and the signature above has already
22
+ // checked these against the element that will actually receive them.
23
+ return React.createElement(type, props, ...children);
24
+ }
25
+ //# sourceMappingURL=hx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hx.js","sourceRoot":"","sources":["../../src/tree/hx.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,EAAE;AACF,4EAA4E;AAC5E,uEAAuE;AACvE,8EAA8E;AAC9E,wEAAwE;AACxE,0EAA0E;AAC1E,kEAAkE;AAClE,EAAE;AACF,6EAA6E;AAC7E,2EAA2E;AAC3E,0EAA0E;AAC1E,wEAAwE;AACxE,OAAO,KAAK,MAAM,OAAO,CAAC;AAyB1B,MAAM,UAAU,EAAE,CAChB,IAAO;AACP,oEAAoE;AACpE,0EAA0E;AAC1E,gDAAgD;AAChD,KAAqD,EACrD,GAAG,QAAqB;IAExB,uEAAuE;IACvE,qEAAqE;IACrE,qEAAqE;IACrE,OAAO,KAAK,CAAC,aAAa,CAAC,IAAc,EAAE,KAAc,EAAE,GAAG,QAAQ,CAAC,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,221 @@
1
+ import type { ReactElement, ReactNode, Ref } from 'react';
2
+ import type { StyleProp } from 'react-x11';
3
+ import type { KeyboardEvent } from 'react-x11';
4
+ import type { Host } from './hx.js';
5
+ import type { TreeAccessors, TreeItem, TreeItemId, TreeRow } from './rows.js';
6
+ export type { ResolvedAccessors, TreeAccessors, TreeItem, TreeItemId, TreeRow, TreeGroup, } from './rows.js';
7
+ export { branchEdges, findItem, resolveAccessors, visibleRows, } from './rows.js';
8
+ /** A row, plus what only the render knows about it. */
9
+ export interface TreeRowState<T> extends TreeRow<T> {
10
+ selected: boolean;
11
+ /**
12
+ * The ink the row is painted in.
13
+ *
14
+ * Handed over by name because **colour does not cascade into a drawing**:
15
+ * an `<Icon>` or a `<canvas mono>` takes its colour from its own style, so
16
+ * a glyph that has to stay legible on a selected row has to be told. The
17
+ * `<text>` in the default label needs nothing — text does inherit.
18
+ */
19
+ color: string;
20
+ /** Open or close this row's branch. Ignored on a leaf. */
21
+ toggle: (open?: boolean) => void;
22
+ /** Make this row the selection, as a click would. */
23
+ select: () => void;
24
+ }
25
+ /** What `renderToggle` is told. */
26
+ export interface TreeToggleState<T> extends TreeRowState<T> {
27
+ /** The size the default chevron is drawn at. */
28
+ size: number;
29
+ }
30
+ /**
31
+ * One column of a row's indent, as `renderGuide` sees it — the tree's branch
32
+ * edge.
33
+ *
34
+ * There is one call per level of depth, outermost first. `own` marks the
35
+ * row's own column, where a `├─` or `└─` connector goes; every earlier column
36
+ * belongs to an ancestor and only ever carries a `│`.
37
+ */
38
+ export interface TreeGuideState<T> {
39
+ row: TreeRowState<T>;
40
+ /** 0 is the outermost column. */
41
+ level: number;
42
+ /** A line passes through this column and continues below this row. */
43
+ continues: boolean;
44
+ /** This is the row's own column rather than an ancestor's. */
45
+ own: boolean;
46
+ /** How wide the column is: the `indent` prop. */
47
+ width: number;
48
+ /** The row's **minimum** height — `rowHeight`. The column stretches to
49
+ * whatever the row turned out to be, and a drawing is told that real size
50
+ * in its own `onDraw`, so this is a hint rather than a measurement.
51
+ * A `<canvas cacheKey>` need not name it: the paint cache already keys on
52
+ * the node's laid-out size. */
53
+ height: number;
54
+ }
55
+ /** What `renderSubtree` is told, in `layout="nested"`. */
56
+ export interface TreeSubtreeState<T> {
57
+ /** The row the subtree hangs off. Never null: the roots are not a
58
+ * subtree, they are the tree. */
59
+ parent: TreeRow<T>;
60
+ /** The depth of the rows inside it — one more than `parent.depth`. */
61
+ depth: number;
62
+ }
63
+ /** The expansion that just changed, alongside the whole set. */
64
+ export interface TreeExpandChange<T> {
65
+ id: TreeItemId;
66
+ item: T;
67
+ open: boolean;
68
+ }
69
+ /** The style overrides, one per part the tree draws. */
70
+ export interface TreeStyles<T> {
71
+ /** A function is called per rendered row, so a style can follow the row's
72
+ * own state without a `renderContent` that repaints everything. */
73
+ row?: StyleProp | ((state: TreeRowState<T>) => StyleProp);
74
+ toggle?: StyleProp;
75
+ guide?: StyleProp | ((state: TreeGuideState<T>) => StyleProp);
76
+ label?: StyleProp;
77
+ subtree?: StyleProp;
78
+ }
79
+ /**
80
+ * A `<Tree>`'s imperative side.
81
+ *
82
+ * `handleKey` is the one worth knowing about: a filter box above a tree holds
83
+ * the keyboard, and forwarding the arrows to this is how the list below it
84
+ * still walks. It reports whether the tree took the key, so the caller keeps
85
+ * whatever it did not.
86
+ */
87
+ export interface TreeHandle<T = TreeItem> {
88
+ focus: () => void;
89
+ select: (id: TreeItemId | null) => void;
90
+ /** Open or close a branch by id, anywhere in the tree — including one no
91
+ * row is showing. `false` when the id names nothing loaded. */
92
+ setExpanded: (id: TreeItemId, open?: boolean) => boolean;
93
+ /** Bring a row into view, expanding nothing — a collapsed ancestor means
94
+ * there is no row to scroll to, and this reports `false`. */
95
+ scrollToItem: (id: TreeItemId) => boolean;
96
+ handleKey: (ev: KeyboardEvent) => boolean;
97
+ /** The rows on screen right now, in draw order. */
98
+ rows: () => readonly TreeRow<T>[];
99
+ }
100
+ type BoxProps = Host['box'];
101
+ export interface TreeProps<T = TreeItem> extends TreeAccessors<T>, Omit<BoxProps, 'style' | 'children' | 'ref' | 'onKeyDown'> {
102
+ /** The roots. */
103
+ items?: readonly T[];
104
+ /** Controlled expansion. */
105
+ expanded?: readonly TreeItemId[];
106
+ defaultExpanded?: readonly TreeItemId[];
107
+ /**
108
+ * The whole open set, plus the one row that changed — which is what lazy
109
+ * loading needs: `change.open && !loaded.has(change.id)` is the fetch.
110
+ */
111
+ onExpandedChange?: (expanded: TreeItemId[], change: TreeExpandChange<T>) => void;
112
+ /** Controlled selection. One row: see the note on multiple selection in
113
+ * the component's doc comment. */
114
+ selected?: TreeItemId | null;
115
+ defaultSelected?: TreeItemId | null;
116
+ onSelect?: (id: TreeItemId, item: T) => void;
117
+ /** The *open* gesture on top of selection — a double click, Enter, or
118
+ * Space. On a branch it also toggles. */
119
+ onActivate?: (id: TreeItemId, item: T) => void;
120
+ /** One level of indent, in pixels. `0` puts the whole indent in
121
+ * `renderSubtree`'s hands instead. */
122
+ indent?: number;
123
+ /**
124
+ * The **shortest** a row may be, in pixels. Default 22.
125
+ *
126
+ * A row is not this tall, it is at least this tall: it grows to whatever
127
+ * its content needs, so a label that wraps to two lines gets a row of two
128
+ * lines. Virtualization measures rows rather than assuming them, which is
129
+ * what makes that safe — see {@link estimatedRowHeight}.
130
+ */
131
+ rowHeight?: number;
132
+ /**
133
+ * What a row that has not been measured yet is assumed to be, while
134
+ * virtualizing. Defaults to `rowHeight`.
135
+ *
136
+ * Only the rows on screen have ever been laid out, so the scrollbar is
137
+ * this guess for everything else, and it converges as you scroll. Set it
138
+ * when rows are typically much taller than `rowHeight` — a tree of
139
+ * two-line rows with the default guess starts with a scrollbar that thinks
140
+ * the tree is half its real length.
141
+ */
142
+ estimatedRowHeight?: number;
143
+ /**
144
+ * Build only the rows on screen. `'auto'` (the default) turns it on past
145
+ * {@link VIRTUAL_THRESHOLD} visible rows.
146
+ *
147
+ * Not available in `layout="nested"`, where the rows are not siblings and
148
+ * a slice of them is not a subtree.
149
+ */
150
+ virtual?: boolean | 'auto';
151
+ /** Rows built either side of the viewport. */
152
+ overscan?: number;
153
+ /**
154
+ * `'flat'` (the default) makes every row a sibling — which is what lets the
155
+ * tree virtualize, and what the branch guides are drawn per row for.
156
+ *
157
+ * `'nested'` puts each expanded branch's rows inside a container of their
158
+ * own, for a `renderSubtree` that wants to draw a background, a rule down
159
+ * the group, or its own indent. Rows carry their own indent in both, so a
160
+ * subtree container that indents as well should pass `indent={0}`.
161
+ */
162
+ layout?: 'flat' | 'nested';
163
+ /** The open/close control, inside its hit box. */
164
+ renderToggle?: (state: TreeToggleState<T>) => ReactNode;
165
+ /** One column of the indent — the branch edge. Nothing by default. */
166
+ renderGuide?: (state: TreeGuideState<T>) => ReactNode;
167
+ /** The label cell. An icon in front of the text goes here. */
168
+ renderLabel?: (state: TreeRowState<T>) => ReactNode;
169
+ /**
170
+ * Everything inside the row box, given what would have been there.
171
+ *
172
+ * The row *box* stays this component's — it carries the height
173
+ * virtualization counts on, the role and the aria the tree is read through,
174
+ * and the click that selects. Style it with `styles.row`.
175
+ */
176
+ renderContent?: (state: TreeRowState<T>, content: ReactNode[]) => ReactNode;
177
+ /** The subtree container, in `layout="nested"`. */
178
+ renderSubtree?: (state: TreeSubtreeState<T>, rows: ReactNode) => ReactNode;
179
+ styles?: TreeStyles<T>;
180
+ style?: StyleProp;
181
+ ref?: Ref<TreeHandle<T>>;
182
+ /** react-x11's queries read this off `props` at run time; its element
183
+ * declarations do not carry it, so it is declared here and reaches the
184
+ * root box through the rest spread. */
185
+ 'data-testname'?: string;
186
+ }
187
+ /**
188
+ * `<Tree items />` — a disclosure tree.
189
+ *
190
+ * <Tree items={[{ id: 'src', label: 'src', children: [...] }]} />
191
+ *
192
+ * An item with a `children` array is a branch, **even when the array is
193
+ * empty** — that is how a directory shows a twisty before anything has read
194
+ * it. A branch whose children are not loaded at all says `branch: true`, and
195
+ * fills them in from `onExpandedChange`.
196
+ *
197
+ * Expansion and selection are each controlled (`expanded` + `onExpandedChange`,
198
+ * `selected` + `onSelect`) or uncontrolled (`defaultExpanded`,
199
+ * `defaultSelected`).
200
+ *
201
+ * The tree is a single tab stop. Up/Down walk the visible rows, Right expands
202
+ * a branch and then steps into it, Left collapses and then steps out to the
203
+ * parent, PageUp/PageDown move by a viewport, Home/End jump to the ends,
204
+ * Enter and Space activate, and typing letters jumps to a matching row — the
205
+ * same type-ahead core's `Select` and menus use.
206
+ *
207
+ * **The focus is on the tree, not on the row.** Core's tree focused each row
208
+ * node; a virtualized row is unmounted the moment it scrolls out of view and
209
+ * the focus would go with it, so the container is the focusable thing and the
210
+ * selection is the cursor. That is `Table`'s model, and the honest caveat is
211
+ * the one `Table` carries: while virtualizing, only the rendered rows are in
212
+ * the accessibility tree — the same rows a sighted user can see.
213
+ *
214
+ * **Selection is one row.** Multiple selection is not a prop because there is
215
+ * no version of it everybody agrees on (does Shift extend from the anchor or
216
+ * from the cursor? does Ctrl+click on a branch take its children?), and every
217
+ * such policy is expressible on top of what is here: hold the set yourself,
218
+ * pass `selected` for the cursor, and paint the rest from `styles.row`.
219
+ */
220
+ export declare function Tree<T = TreeItem>({ items, expanded, defaultExpanded, onExpandedChange, selected, defaultSelected, onSelect, onActivate, indent, rowHeight, estimatedRowHeight, virtual, overscan, layout, renderToggle, renderGuide, renderLabel, renderContent, renderSubtree, styles, style, ref, getId, getLabel, getText, getChildren, isBranch, isDisabled, onScroll, onViewport, ...boxProps }: TreeProps<T>): ReactElement;
221
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tree/index.ts"],"names":[],"mappings":"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"}