@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 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/table/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import type { ReactNode } from 'react';
2
+ /** What a row is keyed by. Numbers are allowed because a row often comes
3
+ * from a database, and stringifying an id is a chance to lose one. */
4
+ export type TableRowId = string | number;
5
+ /** One row of the current view: the app's row object, its resolved id, and
6
+ * its position **in sorted order** — the order everything else counts in. */
7
+ export interface TableRow<Row> {
8
+ id: TableRowId;
9
+ row: Row;
10
+ index: number;
11
+ }
12
+ /** A row, plus what only the render knows about it. */
13
+ export interface TableRowState<Row> extends TableRow<Row> {
14
+ selected: boolean;
15
+ /**
16
+ * The ink the row is painted in. Handed over by name because **colour does
17
+ * not cascade into a drawing**: an `<Icon>` or a `<canvas mono>` takes its
18
+ * colour from its own style, so a glyph inside a cell on the selected row
19
+ * has to be told. The `<text>` in a default cell needs nothing — text
20
+ * inherits.
21
+ */
22
+ color: string;
23
+ }
24
+ /** What `column.render` and `styles.cell` are told. `selected` and `column`
25
+ * are the two fields core's `<Table>` passed, kept under the same names. */
26
+ export interface TableCellState<Row> extends TableRowState<Row> {
27
+ column: TableColumn<Row>;
28
+ }
29
+ /** The sort descriptor. Core's shape, verbatim: `column` names a column id.
30
+ * `null` is "unsorted" — reachable through the controlled prop; the header
31
+ * click cycle is asc ↔ desc and never emits it. */
32
+ export interface TableSort {
33
+ column: string;
34
+ direction: 'asc' | 'desc';
35
+ }
36
+ /** What `column.renderHeader` and `styles.headerCell` are told. */
37
+ export interface TableHeaderCellState<Row> {
38
+ column: TableColumn<Row>;
39
+ /** The table's current sort — this column's when `sort.column` matches. */
40
+ sort: TableSort | null;
41
+ /** The width the column resolved to this layout, in pixels. */
42
+ resolvedWidth: number;
43
+ }
44
+ /**
45
+ * One column. `id`, `label`, `width`, `align`, `value` and `render` are
46
+ * core's `TableColumn`, kept compatible; the rest is this component's.
47
+ *
48
+ * Sizing: `flex` makes the column share the viewport width left over after
49
+ * the fixed columns; `width` alone makes it fixed. **A column declaring
50
+ * neither is `flex: 1` with a 120px floor** — so a table with no sizing
51
+ * config fills its box instead of parking dead space beside fixed-120
52
+ * columns. A user resize converts the column to fixed at the dragged width.
53
+ */
54
+ export interface TableColumn<Row = any> {
55
+ id: string;
56
+ /** The header caption. Defaults to the id. */
57
+ label?: string;
58
+ /** Fixed width, in pixels. Ignored when `flex` is set. */
59
+ width?: number;
60
+ /** Share of the leftover viewport width, by weight. */
61
+ flex?: number;
62
+ /** The narrowest the column may go — flex resolution and user resize both
63
+ * respect it. Defaults to 40 (core's resize floor); 120 for a column with
64
+ * neither `width` nor `flex`. */
65
+ minWidth?: number;
66
+ /** Logical, so bidi is the layout's problem and never the app's: `'end'`
67
+ * is the edge the row finishes at — where a column of figures lines up —
68
+ * and under RTL that is the left edge without anyone saying so. Core
69
+ * said `'left' | 'right'`; the successor says what it always meant. */
70
+ align?: 'start' | 'center' | 'end';
71
+ /** Whether the header click sorts on this column. Default true. */
72
+ sortable?: boolean;
73
+ /** The cell's raw value: feeds the default cell text **and** the sort.
74
+ * Defaults to `row[id]`. */
75
+ value?: (row: Row) => unknown;
76
+ /** The sort order, given the whole rows. Defaults to a natural comparison
77
+ * over `value()` — numbers numerically, everything else as text. */
78
+ compare?: (a: Row, b: Row) => number;
79
+ /** The cell, replaced entirely. The state says whether the cell is on the
80
+ * selected row — that row is a filled bar, and a colour picked against
81
+ * the resting background is unreadable on it. */
82
+ render?: (row: Row, state: TableCellState<Row>) => ReactNode;
83
+ /** The header cell's content — the caption and the sort mark's place. The
84
+ * header *box* stays the table's: it carries the width, the sort click
85
+ * and the resize grip beside it. */
86
+ renderHeader?: (state: TableHeaderCellState<Row>) => ReactNode;
87
+ }
88
+ /** A cell's raw value: `column.value`, or the property named by the id. */
89
+ export declare function columnValue<Row>(row: Row, column: TableColumn<Row>): unknown;
90
+ /** Core's comparator, verbatim: numbers numerically, everything else as
91
+ * text, with `null`/`undefined` sorting as the empty string. */
92
+ export declare function defaultCompare(a: unknown, b: unknown): number;
93
+ /**
94
+ * The id accessor with its default filled in — and its failure made loud.
95
+ *
96
+ * A row without an id cannot be selected, keyed, or measured, and rendering
97
+ * it anyway fails somewhere far away (a React key warning, a selection that
98
+ * silently never matches). The remedial throw here is the Calendar's
99
+ * precedent: name the fix, not just the fault.
100
+ */
101
+ export declare function resolveGetId<Row>(getId: ((row: Row) => TableRowId) | undefined): (row: Row, index: number) => TableRowId;
102
+ /**
103
+ * The rows in display order: ids resolved, sort applied.
104
+ *
105
+ * `sort` and *applying* the sort are separate on purpose (see the PRD's
106
+ * "Sort ownership, split in two"): pass `presorted` when the rows already
107
+ * arrive in display order — a server sorted them — and the descriptor only
108
+ * drives the header indicator. The sort is stable, so rows that compare
109
+ * equal keep the order the app gave them.
110
+ */
111
+ export declare function orderRows<Row>(rows: readonly Row[], columns: readonly TableColumn<Row>[], getId: (row: Row, index: number) => TableRowId, sort: TableSort | null, presorted: boolean): TableRow<Row>[];
112
+ /** Core's resize floor, and the sized-column default for `minWidth`. */
113
+ export declare const MIN_COLUMN = 40;
114
+ /** What a column with neither `width` nor `flex` will not shrink below —
115
+ * core's fixed default, carried forward as a floor. */
116
+ export declare const UNSIZED_MIN = 120;
117
+ /** The pixels every column resolved to, in column order, plus their sum —
118
+ * the content width, and what the header row is sized to. */
119
+ export interface ResolvedWidths {
120
+ widths: number[];
121
+ total: number;
122
+ }
123
+ /**
124
+ * Columns resolve to pixels **once, at the table level** — the one problem
125
+ * no browser table library has, because HTML's table layout algorithm does
126
+ * not exist here, and per-row flex must not decide column widths (each row
127
+ * would negotiate its own grid).
128
+ *
129
+ * Fixed columns take their width; a user resize overrides anything; flex
130
+ * columns share `max(0, viewport − Σfixed)` by weight, floored at their
131
+ * `minWidth`. When nothing fits — the viewport is smaller than the floors —
132
+ * every flex column sits at its floor and the body scrolls horizontally.
133
+ * Before the first layout the viewport is 0, which lands in the same branch.
134
+ */
135
+ export declare function resolveWidths<Row>(columns: readonly TableColumn<Row>[], user: Readonly<Record<string, number>>, viewport: number): ResolvedWidths;
136
+ //# sourceMappingURL=rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.d.ts","sourceRoot":"","sources":["../../src/table/rows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ // The row and column model: everything a table decides before it draws.
2
+ //
3
+ // Pure, and deliberately so — the way `../tree/rows.ts` is. Which rows are
4
+ // shown in what order, what a cell's raw value is, how two rows compare, and
5
+ // how many pixels each column gets are all answerable with no display, and
6
+ // they are where the subtle table bugs live. The component only draws the
7
+ // answer, and the tests assert on the answer directly.
8
+ /** A cell's raw value: `column.value`, or the property named by the id. */
9
+ export function columnValue(row, column) {
10
+ return column.value
11
+ ? column.value(row)
12
+ : row[column.id];
13
+ }
14
+ /** Core's comparator, verbatim: numbers numerically, everything else as
15
+ * text, with `null`/`undefined` sorting as the empty string. */
16
+ export function defaultCompare(a, b) {
17
+ if (typeof a === 'number' && typeof b === 'number')
18
+ return a - b;
19
+ return String(a ?? '').localeCompare(String(b ?? ''));
20
+ }
21
+ /**
22
+ * The id accessor with its default filled in — and its failure made loud.
23
+ *
24
+ * A row without an id cannot be selected, keyed, or measured, and rendering
25
+ * it anyway fails somewhere far away (a React key warning, a selection that
26
+ * silently never matches). The remedial throw here is the Calendar's
27
+ * precedent: name the fix, not just the fault.
28
+ */
29
+ export function resolveGetId(getId) {
30
+ return (row, index) => {
31
+ const id = getId
32
+ ? getId(row)
33
+ : row.id;
34
+ if (id === undefined || id === null) {
35
+ throw new TypeError(`<Table> row ${index} has no id — every row needs one. ` +
36
+ 'Give rows an `id` field, or pass `getId` to read your own key.');
37
+ }
38
+ return id;
39
+ };
40
+ }
41
+ /**
42
+ * The rows in display order: ids resolved, sort applied.
43
+ *
44
+ * `sort` and *applying* the sort are separate on purpose (see the PRD's
45
+ * "Sort ownership, split in two"): pass `presorted` when the rows already
46
+ * arrive in display order — a server sorted them — and the descriptor only
47
+ * drives the header indicator. The sort is stable, so rows that compare
48
+ * equal keep the order the app gave them.
49
+ */
50
+ export function orderRows(rows, columns, getId, sort, presorted) {
51
+ const entries = rows.map((row, index) => ({
52
+ id: getId(row, index),
53
+ row,
54
+ index,
55
+ }));
56
+ const column = sort && !presorted ? columns.find((c) => c.id === sort.column) : undefined;
57
+ if (sort && column) {
58
+ const sign = sort.direction === 'desc' ? -1 : 1;
59
+ const compare = column.compare ??
60
+ ((a, b) => defaultCompare(columnValue(a, column), columnValue(b, column)));
61
+ entries.sort((a, b) => sign * compare(a.row, b.row));
62
+ entries.forEach((entry, index) => {
63
+ entry.index = index;
64
+ });
65
+ }
66
+ return entries;
67
+ }
68
+ /** Core's resize floor, and the sized-column default for `minWidth`. */
69
+ export const MIN_COLUMN = 40;
70
+ /** What a column with neither `width` nor `flex` will not shrink below —
71
+ * core's fixed default, carried forward as a floor. */
72
+ export const UNSIZED_MIN = 120;
73
+ /**
74
+ * Columns resolve to pixels **once, at the table level** — the one problem
75
+ * no browser table library has, because HTML's table layout algorithm does
76
+ * not exist here, and per-row flex must not decide column widths (each row
77
+ * would negotiate its own grid).
78
+ *
79
+ * Fixed columns take their width; a user resize overrides anything; flex
80
+ * columns share `max(0, viewport − Σfixed)` by weight, floored at their
81
+ * `minWidth`. When nothing fits — the viewport is smaller than the floors —
82
+ * every flex column sits at its floor and the body scrolls horizontally.
83
+ * Before the first layout the viewport is 0, which lands in the same branch.
84
+ */
85
+ export function resolveWidths(columns, user, viewport) {
86
+ const widths = new Array(columns.length).fill(0);
87
+ let flex = [];
88
+ let fixedSum = 0;
89
+ columns.forEach((column, at) => {
90
+ const resized = user[column.id];
91
+ if (resized !== undefined) {
92
+ widths[at] = resized;
93
+ fixedSum += resized;
94
+ return;
95
+ }
96
+ if (column.flex === undefined && column.width !== undefined) {
97
+ widths[at] = column.width;
98
+ fixedSum += column.width;
99
+ return;
100
+ }
101
+ const unsized = column.flex === undefined && column.width === undefined;
102
+ flex.push({
103
+ at,
104
+ weight: column.flex ?? 1,
105
+ min: column.minWidth ?? (unsized ? UNSIZED_MIN : MIN_COLUMN),
106
+ });
107
+ });
108
+ if (flex.length) {
109
+ let pool = Math.max(0, viewport - fixedSum);
110
+ // Distribute, clamping to floors: a column whose share lands under its
111
+ // floor takes the floor and leaves the pool, and the rest re-share what
112
+ // is left. Terminates because every pass either clamps someone or
113
+ // distributes and stops.
114
+ for (;;) {
115
+ const minSum = flex.reduce((sum, f) => sum + f.min, 0);
116
+ if (pool <= minSum) {
117
+ for (const f of flex)
118
+ widths[f.at] = f.min;
119
+ break;
120
+ }
121
+ const weightSum = flex.reduce((sum, f) => sum + f.weight, 0);
122
+ const clamped = flex.filter((f) => (pool * f.weight) / weightSum < f.min);
123
+ if (!clamped.length) {
124
+ // Cumulative rounding, so the integer widths sum to the pool exactly
125
+ // and the table's edge meets the viewport's rather than drifting a
126
+ // pixel per column.
127
+ let acc = 0;
128
+ let assigned = 0;
129
+ for (const f of flex) {
130
+ acc += (pool * f.weight) / weightSum;
131
+ const w = Math.round(acc) - assigned;
132
+ assigned += w;
133
+ widths[f.at] = w;
134
+ }
135
+ break;
136
+ }
137
+ for (const f of clamped) {
138
+ widths[f.at] = f.min;
139
+ pool -= f.min;
140
+ }
141
+ flex = flex.filter((f) => !clamped.includes(f));
142
+ }
143
+ }
144
+ return { widths, total: widths.reduce((sum, w) => sum + w, 0) };
145
+ }
146
+ //# sourceMappingURL=rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rows.js","sourceRoot":"","sources":["../../src/table/rows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Which terminal to use.
3
+ *
4
+ * The first three are emulators this package *embeds* — a real xterm, urxvt
5
+ * or alacritty drawing into a `<foreign>`. `'vt'` is the one it *is*: a pty
6
+ * and a pure-JS emulator core rendered as a native element, which needs no
7
+ * program installed and is the only backend `write()` can work on.
8
+ *
9
+ * `'auto'` takes the first embeddable emulator that is installed and falls
10
+ * back to `'vt'`. That order — rather than vt first — is deliberate: an
11
+ * external emulator is battle-tested, and a user who installed one expressed
12
+ * a preference. Moving vt to the front is a later, deliberate decision.
13
+ */
14
+ export type TerminalBackendName = 'auto' | 'xterm' | 'urxvt' | 'alacritty' | 'vt';
15
+ /**
16
+ * The colours a terminal is asked to use.
17
+ *
18
+ * `<Terminal>` fills these from the react-x11 theme by default, which is what
19
+ * makes an embedded terminal look like part of the app rather than a hole
20
+ * punched in it.
21
+ */
22
+ export interface TerminalColors {
23
+ background?: string;
24
+ foreground?: string;
25
+ /** The block/bar the terminal draws at the caret. */
26
+ cursor?: string;
27
+ /**
28
+ * ANSI 0–15, in the usual order (black, red, green, yellow, blue, magenta,
29
+ * cyan, white, then the eight bright ones). A shorter array sets what it
30
+ * has. Not every backend can take these from the command line — see
31
+ * `palette` on the backend.
32
+ */
33
+ palette?: readonly string[];
34
+ }
35
+ /** Everything the argv builders read. */
36
+ export interface TerminalLaunch {
37
+ /** The `<foreign>` container to draw into. */
38
+ windowId: number;
39
+ /** argv of the program to run. Empty means the user's shell. */
40
+ command?: readonly string[];
41
+ title?: string;
42
+ fontFamily?: string;
43
+ fontSize?: number;
44
+ /** Lines of scrollback. */
45
+ scrollback?: number;
46
+ colors?: TerminalColors;
47
+ }
48
+ export interface TerminalBackend {
49
+ name: Exclude<TerminalBackendName, 'auto'>;
50
+ /** Binaries to look for, in order. */
51
+ binaries: readonly string[];
52
+ /** Whether `colors.palette` reaches this backend from the command line. */
53
+ palette: boolean;
54
+ args(launch: TerminalLaunch): string[];
55
+ }
56
+ /**
57
+ * xterm.
58
+ *
59
+ * `-into` is the oldest and most reliable of the three embed flags — it
60
+ * predates XEmbed and does plain reparenting, which is exactly what
61
+ * `<foreign>`'s adopt path handles. `-b 0` drops the inner border, because a
62
+ * pane in an application should not have a margin the application did not ask
63
+ * for.
64
+ *
65
+ * Everything xterm cannot say as a flag it says as an X resource, which is
66
+ * how the ANSI palette gets set: `-xrm 'XTerm*color4: #…'` is a per-invocation
67
+ * resource and does not touch the user's database.
68
+ */
69
+ export declare const xterm: TerminalBackend;
70
+ /**
71
+ * rxvt-unicode.
72
+ *
73
+ * `-embed` rather than `-into`, and a single Xft font string rather than a
74
+ * family and a size. The ANSI palette is reachable only through the X
75
+ * resource database, which is the user's and not ours to write, so
76
+ * `palette: false` — `<Terminal>` still themes the background, foreground and
77
+ * cursor, which is most of what makes it look integrated.
78
+ */
79
+ export declare const urxvt: TerminalBackend;
80
+ /**
81
+ * alacritty.
82
+ *
83
+ * Configuration is a file, and `-o` is the escape hatch: one TOML assignment
84
+ * per flag, applied over whatever the user's own config says. TOML means
85
+ * strings are quoted *inside the argument value* — `font.normal.family="Fira
86
+ * Code"` — which costs nothing here because each `-o` is its own argv element
87
+ * and no shell ever sees it.
88
+ */
89
+ export declare const alacritty: TerminalBackend;
90
+ /**
91
+ * Auto-detection order, and it is deliberately not "nicest first".
92
+ *
93
+ * xterm's `-into` is the embed path with the fewest surprises and is on
94
+ * almost every machine that has X at all; alacritty's `--embed` is newer and
95
+ * its window is a winit window with its own ideas about focus. An app that
96
+ * prefers a different one says so — `backend="alacritty"` is one prop.
97
+ */
98
+ export declare const TERMINAL_BACKENDS: readonly TerminalBackend[];
99
+ /**
100
+ * The *embeddable* backends a `backend` prop selects. `'auto'` is all of
101
+ * them, in order; `'vt'` is none of them, because nothing is spawned — the
102
+ * component takes that branch before it ever asks this.
103
+ */
104
+ export declare function backendsFor(name: TerminalBackendName): readonly TerminalBackend[];
105
+ //# sourceMappingURL=backends.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backends.d.ts","sourceRoot":"","sources":["../../src/terminal/backends.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,mBAAmB,GAC7B,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,IAAI,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAED,yCAAyC;AACzC,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IAC3C,sCAAsC;IACtC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CAAC;CACxC;AAiBD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,KAAK,EAAE,eA8BnB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK,EAAE,eAsBnB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,EAAE,eAgCvB,CAAC;AAQF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,eAAe,EAIvD,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,mBAAmB,GACxB,SAAS,eAAe,EAAE,CAI5B"}
@@ -0,0 +1,185 @@
1
+ // One table, three terminals, and the reason `<Terminal>` has a nice API at
2
+ // all.
3
+ //
4
+ // Every terminal emulator that can be embedded takes the same three things —
5
+ // a window to draw into, a font, a colour scheme — and spells all three
6
+ // differently. xterm wants X resources, urxvt wants an Xft font string,
7
+ // alacritty wants TOML on the command line. That asymmetry is the *only*
8
+ // difference between the backends, so it lives here and the component never
9
+ // mentions a binary by name.
10
+ //
11
+ // Pure functions over a plain description: no spawning, no probing, nothing
12
+ // async. `test/terminal.test.ts` asserts the argv of all three without a
13
+ // terminal installed anywhere, which is the point.
14
+ /** The ANSI names alacritty's TOML uses, in palette-index order. */
15
+ const ANSI_NAMES = [
16
+ 'black',
17
+ 'red',
18
+ 'green',
19
+ 'yellow',
20
+ 'blue',
21
+ 'magenta',
22
+ 'cyan',
23
+ 'white',
24
+ ];
25
+ const DEFAULT_FAMILY = 'monospace';
26
+ const DEFAULT_SIZE = 12;
27
+ /**
28
+ * xterm.
29
+ *
30
+ * `-into` is the oldest and most reliable of the three embed flags — it
31
+ * predates XEmbed and does plain reparenting, which is exactly what
32
+ * `<foreign>`'s adopt path handles. `-b 0` drops the inner border, because a
33
+ * pane in an application should not have a margin the application did not ask
34
+ * for.
35
+ *
36
+ * Everything xterm cannot say as a flag it says as an X resource, which is
37
+ * how the ANSI palette gets set: `-xrm 'XTerm*color4: #…'` is a per-invocation
38
+ * resource and does not touch the user's database.
39
+ */
40
+ export const xterm = {
41
+ name: 'xterm',
42
+ binaries: ['xterm'],
43
+ palette: true,
44
+ args(launch) {
45
+ const args = ['-into', String(launch.windowId), '-b', '0'];
46
+ if (launch.title)
47
+ args.push('-T', launch.title);
48
+ // `-fa` is what switches xterm to Xft at all; without it `-fs` is ignored
49
+ // and the bitmap font stays. So asking for either means passing both.
50
+ if (launch.fontFamily || launch.fontSize) {
51
+ args.push('-fa', launch.fontFamily ?? DEFAULT_FAMILY);
52
+ args.push('-fs', String(launch.fontSize ?? DEFAULT_SIZE));
53
+ }
54
+ if (launch.scrollback != null)
55
+ args.push('-sl', String(launch.scrollback));
56
+ const colors = launch.colors ?? {};
57
+ if (colors.background)
58
+ args.push('-bg', colors.background);
59
+ if (colors.foreground)
60
+ args.push('-fg', colors.foreground);
61
+ if (colors.cursor)
62
+ args.push('-cr', colors.cursor);
63
+ for (const [index, color] of (colors.palette ?? []).entries()) {
64
+ if (index > 15 || !color)
65
+ continue;
66
+ args.push('-xrm', `XTerm*color${index}: ${color}`);
67
+ }
68
+ // `-e` consumes the rest of the line, so it is last and nothing may be
69
+ // appended after this point.
70
+ if (launch.command?.length)
71
+ args.push('-e', ...launch.command);
72
+ return args;
73
+ },
74
+ };
75
+ /**
76
+ * rxvt-unicode.
77
+ *
78
+ * `-embed` rather than `-into`, and a single Xft font string rather than a
79
+ * family and a size. The ANSI palette is reachable only through the X
80
+ * resource database, which is the user's and not ours to write, so
81
+ * `palette: false` — `<Terminal>` still themes the background, foreground and
82
+ * cursor, which is most of what makes it look integrated.
83
+ */
84
+ export const urxvt = {
85
+ name: 'urxvt',
86
+ binaries: ['urxvt', 'rxvt-unicode'],
87
+ palette: false,
88
+ args(launch) {
89
+ const args = ['-embed', String(launch.windowId)];
90
+ if (launch.title)
91
+ args.push('-title', launch.title);
92
+ if (launch.fontFamily || launch.fontSize) {
93
+ const family = launch.fontFamily ?? DEFAULT_FAMILY;
94
+ const size = launch.fontSize ?? DEFAULT_SIZE;
95
+ args.push('-fn', `xft:${family}:size=${size}`);
96
+ }
97
+ if (launch.scrollback != null)
98
+ args.push('-sl', String(launch.scrollback));
99
+ const colors = launch.colors ?? {};
100
+ if (colors.background)
101
+ args.push('-bg', colors.background);
102
+ if (colors.foreground)
103
+ args.push('-fg', colors.foreground);
104
+ if (colors.cursor)
105
+ args.push('-cr', colors.cursor);
106
+ if (launch.command?.length)
107
+ args.push('-e', ...launch.command);
108
+ return args;
109
+ },
110
+ };
111
+ /**
112
+ * alacritty.
113
+ *
114
+ * Configuration is a file, and `-o` is the escape hatch: one TOML assignment
115
+ * per flag, applied over whatever the user's own config says. TOML means
116
+ * strings are quoted *inside the argument value* — `font.normal.family="Fira
117
+ * Code"` — which costs nothing here because each `-o` is its own argv element
118
+ * and no shell ever sees it.
119
+ */
120
+ export const alacritty = {
121
+ name: 'alacritty',
122
+ binaries: ['alacritty'],
123
+ palette: true,
124
+ args(launch) {
125
+ const args = ['--embed', String(launch.windowId)];
126
+ if (launch.title)
127
+ args.push('--title', launch.title);
128
+ const set = (key, value) => {
129
+ args.push('-o', `${key}=${value}`);
130
+ };
131
+ if (launch.fontFamily)
132
+ set('font.normal.family', quote(launch.fontFamily));
133
+ if (launch.fontSize != null)
134
+ set('font.size', String(launch.fontSize));
135
+ if (launch.scrollback != null) {
136
+ set('scrolling.history', String(launch.scrollback));
137
+ }
138
+ const colors = launch.colors ?? {};
139
+ if (colors.background)
140
+ set('colors.primary.background', quote(colors.background));
141
+ if (colors.foreground)
142
+ set('colors.primary.foreground', quote(colors.foreground));
143
+ if (colors.cursor)
144
+ set('colors.cursor.cursor', quote(colors.cursor));
145
+ for (const [index, color] of (colors.palette ?? []).entries()) {
146
+ if (index > 15 || !color)
147
+ continue;
148
+ const group = index < 8 ? 'normal' : 'bright';
149
+ set(`colors.${group}.${ANSI_NAMES[index % 8]}`, quote(color));
150
+ }
151
+ if (launch.command?.length)
152
+ args.push('-e', ...launch.command);
153
+ return args;
154
+ },
155
+ };
156
+ /** A TOML string. Colours and font names have no quotes or backslashes in
157
+ * practice, but a family typed by a user is a user's string. */
158
+ function quote(value) {
159
+ return `"${value.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
160
+ }
161
+ /**
162
+ * Auto-detection order, and it is deliberately not "nicest first".
163
+ *
164
+ * xterm's `-into` is the embed path with the fewest surprises and is on
165
+ * almost every machine that has X at all; alacritty's `--embed` is newer and
166
+ * its window is a winit window with its own ideas about focus. An app that
167
+ * prefers a different one says so — `backend="alacritty"` is one prop.
168
+ */
169
+ export const TERMINAL_BACKENDS = [
170
+ xterm,
171
+ urxvt,
172
+ alacritty,
173
+ ];
174
+ /**
175
+ * The *embeddable* backends a `backend` prop selects. `'auto'` is all of
176
+ * them, in order; `'vt'` is none of them, because nothing is spawned — the
177
+ * component takes that branch before it ever asks this.
178
+ */
179
+ export function backendsFor(name) {
180
+ if (name === 'auto')
181
+ return TERMINAL_BACKENDS;
182
+ const found = TERMINAL_BACKENDS.filter((b) => b.name === name);
183
+ return found;
184
+ }
185
+ //# sourceMappingURL=backends.js.map