@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,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/formula/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,74 @@
1
+ import type { ReactElement } from 'react';
2
+ import type { Style } from 'react-x11/style';
3
+ import type { KatexEngine } from './katex.js';
4
+ import type { FormulaElementProps } from './node.js';
5
+ export { ELEMENT as FORMULA_ELEMENT, FormulaNode } from './node.js';
6
+ export type { FormulaElementProps } from './node.js';
7
+ export { layoutFormula } from './layout.js';
8
+ export type { FormulaGlyph, FormulaLayout, FormulaRule, FormulaShaper, } from './layout.js';
9
+ export type { KatexEngine, KatexNode } from './katex.js';
10
+ declare module 'react-x11/jsx-runtime' {
11
+ namespace JSX {
12
+ interface IntrinsicElements {
13
+ formula: FormulaElementProps & {
14
+ style?: Style | Style[];
15
+ };
16
+ }
17
+ }
18
+ }
19
+ export interface FormulaProps {
20
+ /** The TeX source. Append to it as chunks stream in. */
21
+ tex: string;
22
+ /**
23
+ * Display style: centered on its own line, large operators with limits
24
+ * above and below — KaTeX's `displayMode`. Default false (inline style,
25
+ * left-aligned).
26
+ */
27
+ display?: boolean;
28
+ /**
29
+ * Whether more source may still arrive (default false). While true, a
30
+ * source that does not parse renders the last tree that did — or, before
31
+ * anything has, the raw source as muted code. Set false when the stream
32
+ * ends: from then on a parse error renders KaTeX's error text.
33
+ */
34
+ partial?: boolean;
35
+ /** Pixels per em. Default: theme `fontSize` × 1.21, which is the ratio
36
+ * katex.css uses so mathematics holds its own beside body text. */
37
+ size?: number;
38
+ /** Ink color. Default: theme `text`. */
39
+ color?: string;
40
+ /** What `\color` cannot recolor: the error text a failed parse renders
41
+ * once the stream is final. Default KaTeX's `#cc0000`. */
42
+ errorColor?: string;
43
+ /** KaTeX macros, e.g. `{ '\\RR': '\\mathbb{R}' }`. */
44
+ macros?: Record<string, string>;
45
+ /**
46
+ * Make this formula its own selection surface (mouse, Ctrl+A/C, PRIMARY).
47
+ * Default false — inside a `selectable` document (a `<Markdown>` math
48
+ * fence) the document's surface already reads the formula through its
49
+ * text accessors, and a second surface underneath it would capture the
50
+ * drag instead of joining it.
51
+ */
52
+ selectable?: boolean;
53
+ /** Selection band fill, when `selectable`. */
54
+ selectionColor?: string;
55
+ /** The root `<box>`'s style — margins, padding, `overflow`. */
56
+ style?: Style | Style[];
57
+ 'data-testname'?: string;
58
+ }
59
+ type EngineState = KatexEngine | 'unavailable' | null;
60
+ /** The KaTeX module and fonts, or `'unavailable'`, or `null` while
61
+ * loading. Exported for apps that want to gate their own UI on it. */
62
+ export declare function useKatex(): EngineState;
63
+ /**
64
+ * A TeX formula. KaTeX (an optional dependency) parses the source; the
65
+ * `formula` element this file registers lays it out and draws it with the
66
+ * KaTeX faces. Without `katex` installed, the source renders as muted code
67
+ * instead — an ordinary state, not an error.
68
+ *
69
+ * ```jsx
70
+ * <Formula tex="x = \\frac{-b \\pm \\sqrt{b^2-4ac}}{2a}" display selectable />
71
+ * ```
72
+ */
73
+ export declare function Formula(props: FormulaProps): ReactElement;
74
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/formula/index.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,YAAY,EAAa,MAAM,OAAO,CAAC;AAIrD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAG7C,OAAO,KAAK,EAAE,WAAW,EAAa,MAAM,YAAY,CAAC;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGrD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACpE,YAAY,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,YAAY,EACV,YAAY,EACZ,aAAa,EACb,WAAW,EACX,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAczD,OAAO,QAAQ,uBAAuB,CAAC;IACrC,UAAU,GAAG,CAAC;QACZ,UAAU,iBAAiB;YACzB,OAAO,EAAE,mBAAmB,GAAG;gBAC7B,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;aACzB,CAAC;SACH;KACF;CACF;AAID,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;wEACoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;+DAC2D;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAID,KAAK,WAAW,GAAG,WAAW,GAAG,aAAa,GAAG,IAAI,CAAC;AAuBtD;uEACuE;AACvE,wBAAgB,QAAQ,IAAI,WAAW,CAOtC;AAID;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,YAAY,CA+EzD"}
@@ -0,0 +1,155 @@
1
+ // <Formula> — TeX mathematics, rendered natively and selectable.
2
+ //
3
+ // **Why not ntk's `layoutTex`** (being decommissioned with the rest of
4
+ // ntk's document widgets): it renders a formula as one opaque drawing —
5
+ // nothing inside it is reachable, so nothing inside it selects. This is a
6
+ // from-scratch successor on the same public seams every component here
7
+ // uses: KaTeX parses TeX into its virtual DOM, `layout.ts` lays that tree
8
+ // out in pixels, and one registered element draws the result through the
9
+ // app's font manager — with KaTeX's own faces, loaded from the `katex`
10
+ // package — while answering core's four text accessors, so the mathematics
11
+ // joins any `selectable` document the way a `<richtext>` run does.
12
+ //
13
+ // **Why the name is `Formula`, not `Math` or `Tex`.** `Math` is a JavaScript
14
+ // global: `import { Math } from …` would shadow it in every module that
15
+ // uses both, which is a trap no component name should set. `Tex` names the
16
+ // input syntax, and the input syntax is a prop (`tex`) — if a MathML or
17
+ // AsciiMath source ever arrives, it arrives as a sibling prop on the same
18
+ // element rather than as a second component.
19
+ //
20
+ // **Streaming.** A fenced ```math block in a streaming document arrives a
21
+ // few characters at a time, and half a formula does not parse. While
22
+ // `partial`, the last tree that parsed keeps rendering (the arrived tail
23
+ // re-parses on every append and takes over the moment it can); before
24
+ // anything has parsed, the raw source shows as muted code — a fence *is* a
25
+ // code block until its content can be read. When `partial` ends, parse
26
+ // errors render KaTeX's own error text instead of vanishing.
27
+ import React from 'react';
28
+ import { useTheme } from 'react-x11';
29
+ import { registerElement, registeredElements } from 'react-x11/host';
30
+ import { loadKatex } from './katex.js';
31
+ import { ELEMENT, FormulaNode } from './node.js';
32
+ import { hx } from './hx.js';
33
+ export { ELEMENT as FORMULA_ELEMENT, FormulaNode } from './node.js';
34
+ export { layoutFormula } from './layout.js';
35
+ const h = React.createElement;
36
+ if (!registeredElements().includes(ELEMENT)) {
37
+ registerElement(ELEMENT, {
38
+ create: (props, app) => new FormulaNode(props, app),
39
+ // `color` is a style name and `size` reads like one — everything the
40
+ // element owns is declared, so the DEV flat-style assertion stays honest
41
+ semanticNames: ['tree', 'size', 'color', 'fontData'],
42
+ childrenAllowed: false,
43
+ });
44
+ }
45
+ let resolved = null;
46
+ function requestEngine(onReady) {
47
+ let live = true;
48
+ loadKatex().then((engine) => {
49
+ resolved = engine;
50
+ if (live)
51
+ onReady(engine);
52
+ }, () => {
53
+ // "katex is not installed" is an ordinary state, and deliberately not
54
+ // remembered here — `loadKatex` does not cache rejections, so an app
55
+ // that installs it and re-mounts gets a fresh try.
56
+ if (live)
57
+ onReady('unavailable');
58
+ });
59
+ return () => {
60
+ live = false;
61
+ };
62
+ }
63
+ /** The KaTeX module and fonts, or `'unavailable'`, or `null` while
64
+ * loading. Exported for apps that want to gate their own UI on it. */
65
+ export function useKatex() {
66
+ const [engine, setEngine] = React.useState(resolved);
67
+ React.useEffect(() => {
68
+ if (engine && engine !== 'unavailable')
69
+ return undefined;
70
+ return requestEngine(setEngine);
71
+ }, [engine]);
72
+ return engine;
73
+ }
74
+ // --- the component ---------------------------------------------------------
75
+ /**
76
+ * A TeX formula. KaTeX (an optional dependency) parses the source; the
77
+ * `formula` element this file registers lays it out and draws it with the
78
+ * KaTeX faces. Without `katex` installed, the source renders as muted code
79
+ * instead — an ordinary state, not an error.
80
+ *
81
+ * ```jsx
82
+ * <Formula tex="x = \\frac{-b \\pm \\sqrt{b^2-4ac}}{2a}" display selectable />
83
+ * ```
84
+ */
85
+ export function Formula(props) {
86
+ const { tex, display = false, partial = false } = props;
87
+ const theme = useTheme();
88
+ const engine = useKatex();
89
+ const size = props.size ?? Math.round(Number(theme.fontSize ?? 14) * 1.21);
90
+ const color = props.color ?? String(theme.text ?? '#2d3436');
91
+ const muted = String(theme.textMuted ?? '#7f8c8d');
92
+ const katex = engine && engine !== 'unavailable' ? engine.katex : null;
93
+ const tree = React.useMemo(() => {
94
+ if (!katex)
95
+ return null;
96
+ try {
97
+ return katex.__renderToDomTree(tex, {
98
+ displayMode: display,
99
+ output: 'html',
100
+ // While streaming, an error means "not finished" and the last good
101
+ // tree stands in. Once final, KaTeX's error rendering is the
102
+ // honest answer.
103
+ throwOnError: partial,
104
+ errorColor: props.errorColor ?? '#cc0000',
105
+ macros: props.macros,
106
+ });
107
+ }
108
+ catch {
109
+ return null;
110
+ }
111
+ }, [katex, tex, display, partial, props.errorColor, props.macros]);
112
+ const lastGood = React.useRef(null);
113
+ if (tree)
114
+ lastGood.current = tree;
115
+ const shown = tree ?? (partial ? lastGood.current : null);
116
+ const rootStyle = display
117
+ ? { flexDirection: 'row', justifyContent: 'center' }
118
+ : { flexDirection: 'row', alignSelf: 'flex-start' };
119
+ let child;
120
+ if (shown) {
121
+ child = h(ELEMENT, {
122
+ tree: shown,
123
+ size,
124
+ color,
125
+ fontData: engine && engine !== 'unavailable' ? engine.fonts : null,
126
+ });
127
+ }
128
+ else {
129
+ // no katex, or nothing parseable yet: the source, as the muted code
130
+ // it textually is (core's <text> selects natively, so nothing is lost)
131
+ child = hx('text', {
132
+ style: {
133
+ fontFamily: 'monospace',
134
+ fontSize: Math.max(8, Math.round(size * 0.85)),
135
+ color: muted,
136
+ },
137
+ }, tex);
138
+ }
139
+ return hx('box', {
140
+ style: props.style
141
+ ? [
142
+ rootStyle,
143
+ ...(Array.isArray(props.style) ? props.style : [props.style]),
144
+ ]
145
+ : rootStyle,
146
+ // `selectable={false}` is the *exclusion* flag (what a list marker
147
+ // uses to stay out of a copy), so it is only ever set when true —
148
+ // an unset prop leaves the formula readable by an enclosing surface.
149
+ ...(props.selectable
150
+ ? { selectable: true, selectionColor: props.selectionColor }
151
+ : null),
152
+ 'data-testname': props['data-testname'],
153
+ }, child);
154
+ }
155
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/formula/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /** Inline styles KaTeX writes, always in `em` (numbers serialized with the
2
+ * unit). Only the properties the layout pass reads are named. */
3
+ export interface KatexStyle {
4
+ height?: string;
5
+ width?: string;
6
+ minWidth?: string;
7
+ top?: string;
8
+ verticalAlign?: string;
9
+ marginLeft?: string;
10
+ marginRight?: string;
11
+ paddingLeft?: string;
12
+ borderBottomWidth?: string;
13
+ color?: string;
14
+ }
15
+ /**
16
+ * One node of KaTeX's virtual DOM. The union of the shapes that occur —
17
+ * spans, symbols, svg, path — told apart structurally: a symbol has `text`,
18
+ * a path has `pathName`, an svg carries a `viewBox` attribute, and
19
+ * everything else is a span.
20
+ */
21
+ export interface KatexNode {
22
+ classes?: string[];
23
+ children?: KatexNode[];
24
+ /** Extent above/below the baseline, in em of the context the node sits
25
+ * in (descendant size changes are already multiplied in). */
26
+ height?: number;
27
+ depth?: number;
28
+ maxFontSize?: number;
29
+ style?: KatexStyle;
30
+ attributes?: Record<string, string>;
31
+ text?: string;
32
+ italic?: number;
33
+ skew?: number;
34
+ /** Advance width from KaTeX's font metrics, em. The layout prefers a
35
+ * measurement through ntk's shaper, but this is the honest fallback —
36
+ * same fonts, same numbers. */
37
+ width?: number;
38
+ pathName?: string;
39
+ /** Runtime-generated path data (tall surds). When absent, the data is
40
+ * KaTeX's static table, reached through `toMarkup()`. */
41
+ alternate?: string;
42
+ /** Every KaTeX dom-tree node can serialize itself without a DOM. */
43
+ toMarkup?(): string;
44
+ }
45
+ export interface KatexOptions {
46
+ displayMode?: boolean;
47
+ output?: 'html' | 'mathml' | 'htmlAndMathml';
48
+ throwOnError?: boolean;
49
+ errorColor?: string;
50
+ macros?: Record<string, string>;
51
+ }
52
+ /** What `import('katex')` gives back, as far as this package is concerned. */
53
+ export interface KatexModule {
54
+ __renderToDomTree(tex: string, options: KatexOptions): KatexNode;
55
+ }
56
+ /** The engine plus its fonts, resolved once per process. */
57
+ export interface KatexEngine {
58
+ katex: KatexModule;
59
+ /** `KaTeX_Main-Regular.ttf` → font bytes. `null` when the files could
60
+ * not be read — an ordinary state (no filesystem), not an error. */
61
+ fonts: ReadonlyMap<string, Uint8Array> | null;
62
+ }
63
+ /** The face a file name describes, for `fonts.load`'s override options —
64
+ * KaTeX's italic faces mark themselves only in the subfamily name, so
65
+ * saying it explicitly beats trusting detection. */
66
+ export declare function faceOf(file: string): {
67
+ family: string;
68
+ weight: number;
69
+ style: 'normal' | 'italic';
70
+ };
71
+ /**
72
+ * Load KaTeX and its fonts, once. Deliberately **not** cached as a
73
+ * rejection: a failed load is almost always "not installed", but retrying
74
+ * costs nothing and a cached rejection would outlive an app that installed
75
+ * it and re-rendered.
76
+ */
77
+ export declare function loadKatex(): Promise<KatexEngine>;
78
+ //# sourceMappingURL=katex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"katex.d.ts","sourceRoot":"","sources":["../../src/formula/katex.ts"],"names":[],"mappings":"AAuBA;kEACkE;AAClE,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IACvB;kEAC8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;oCAEgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;8DAC0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,QAAQ,CAAC,IAAI,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,eAAe,CAAC;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,8EAA8E;AAC9E,MAAM,WAAW,WAAW;IAC1B,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;CAClE;AAED,4DAA4D;AAC5D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB;yEACqE;IACrE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC;CAC/C;AA0BD;;qDAEqD;AACrD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC5B,CASA;AAmDD;;;;;GAKG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,CAmBhD"}
@@ -0,0 +1,130 @@
1
+ // The slice of KaTeX this package uses, and the loader that finds it.
2
+ //
3
+ // **`katex` is an `optionalDependency`, and these types are deliberately
4
+ // ours rather than the package's.** `import type … from 'katex'` would put
5
+ // the module in the type graph, and then an app that did not install it
6
+ // could not type-check against this package at all — which is the opposite
7
+ // of what "optional" means. So the surface is written out structurally, and
8
+ // the value arrives through a dynamic `import()` that is allowed to fail —
9
+ // the same call `src/desktop-calendar/ical.ts` makes about `ical.js`.
10
+ //
11
+ // What this package consumes is KaTeX's **virtual DOM** — the tree
12
+ // `__renderToDomTree` builds and a browser would lay out with CSS. The
13
+ // `__` prefix marks it "for advanced clients"; it is the documented seam
14
+ // every canvas renderer of KaTeX stands on, and the version is pinned by
15
+ // the optionalDependency range. `src/formula/layout.ts` is the CSS subset
16
+ // that turns that tree into pixel positions.
17
+ //
18
+ // The KaTeX fonts ride along: `katex/dist/fonts/*.ttf` are resolved
19
+ // through the same package and handed to ntk's font manager as bytes
20
+ // (`fonts.load`), so the glyphs drawn are the glyphs the metrics in the
21
+ // tree describe. A machine that cannot read them (no filesystem) still
22
+ // renders — ntk falls back to system fonts — just less beautifully.
23
+ /** The faces `layout.ts` can name — every family the class table maps to. */
24
+ const FONT_FILES = [
25
+ 'KaTeX_AMS-Regular.ttf',
26
+ 'KaTeX_Caligraphic-Bold.ttf',
27
+ 'KaTeX_Caligraphic-Regular.ttf',
28
+ 'KaTeX_Fraktur-Bold.ttf',
29
+ 'KaTeX_Fraktur-Regular.ttf',
30
+ 'KaTeX_Main-Bold.ttf',
31
+ 'KaTeX_Main-BoldItalic.ttf',
32
+ 'KaTeX_Main-Italic.ttf',
33
+ 'KaTeX_Main-Regular.ttf',
34
+ 'KaTeX_Math-BoldItalic.ttf',
35
+ 'KaTeX_Math-Italic.ttf',
36
+ 'KaTeX_SansSerif-Bold.ttf',
37
+ 'KaTeX_SansSerif-Italic.ttf',
38
+ 'KaTeX_SansSerif-Regular.ttf',
39
+ 'KaTeX_Script-Regular.ttf',
40
+ 'KaTeX_Size1-Regular.ttf',
41
+ 'KaTeX_Size2-Regular.ttf',
42
+ 'KaTeX_Size3-Regular.ttf',
43
+ 'KaTeX_Size4-Regular.ttf',
44
+ 'KaTeX_Typewriter-Regular.ttf',
45
+ ];
46
+ /** The face a file name describes, for `fonts.load`'s override options —
47
+ * KaTeX's italic faces mark themselves only in the subfamily name, so
48
+ * saying it explicitly beats trusting detection. */
49
+ export function faceOf(file) {
50
+ const m = /^(.+?)-(\w+)\.ttf$/.exec(file);
51
+ const family = m ? m[1] : file;
52
+ const variant = m ? m[2] : 'Regular';
53
+ return {
54
+ family,
55
+ weight: /Bold/.test(variant) ? 700 : 400,
56
+ style: /Italic/.test(variant) ? 'italic' : 'normal',
57
+ };
58
+ }
59
+ /** `import.meta.resolve` is optional in the field (bundlers, older nodes),
60
+ * so it is reached structurally and its absence means "no font files". */
61
+ function resolveUrl(specifier) {
62
+ const meta = import.meta;
63
+ if (typeof meta.resolve !== 'function')
64
+ return null;
65
+ try {
66
+ return meta.resolve(specifier);
67
+ }
68
+ catch {
69
+ return null;
70
+ }
71
+ }
72
+ /** file:// URL → path, without importing `node:url` (posix only, which is
73
+ * what an X11 toolkit runs on). */
74
+ function pathOfFileUrl(url) {
75
+ if (!url.startsWith('file://'))
76
+ return null;
77
+ return decodeURIComponent(url.slice('file://'.length));
78
+ }
79
+ async function readFonts() {
80
+ let fs;
81
+ try {
82
+ // The specifier is built at run time so a bundler treats this as a
83
+ // genuinely optional import — same shape as `src/embed/host.ts`.
84
+ const specifier = 'node:fs/promises';
85
+ fs = (await import(/* @vite-ignore */ specifier));
86
+ }
87
+ catch {
88
+ return null;
89
+ }
90
+ const fonts = new Map();
91
+ for (const file of FONT_FILES) {
92
+ const url = resolveUrl(`katex/dist/fonts/${file}`);
93
+ const path = url ? pathOfFileUrl(url) : null;
94
+ if (!path)
95
+ return fonts.size ? fonts : null;
96
+ try {
97
+ fonts.set(file, await fs.readFile(path));
98
+ }
99
+ catch {
100
+ // a partial set still helps; whatever is missing falls back
101
+ }
102
+ }
103
+ return fonts.size ? fonts : null;
104
+ }
105
+ let cached = null;
106
+ /**
107
+ * Load KaTeX and its fonts, once. Deliberately **not** cached as a
108
+ * rejection: a failed load is almost always "not installed", but retrying
109
+ * costs nothing and a cached rejection would outlive an app that installed
110
+ * it and re-rendered.
111
+ */
112
+ export function loadKatex() {
113
+ if (cached)
114
+ return cached;
115
+ const attempt = (async () => {
116
+ const name = 'katex';
117
+ const mod = (await import(/* @vite-ignore */ name));
118
+ const katex = typeof mod.__renderToDomTree === 'function' ? mod : mod.default;
119
+ if (!katex || typeof katex.__renderToDomTree !== 'function') {
120
+ throw new TypeError('katex did not export what was expected');
121
+ }
122
+ return { katex, fonts: await readFonts() };
123
+ })();
124
+ cached = attempt.catch((err) => {
125
+ cached = null;
126
+ throw err;
127
+ });
128
+ return cached;
129
+ }
130
+ //# sourceMappingURL=katex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"katex.js","sourceRoot":"","sources":["../../src/formula/katex.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ import type { KatexNode } from './katex.js';
2
+ /** Measures one run of text in a face, in px. `null` means "no fonts here"
3
+ * (the mock backend) — the caller falls back to KaTeX's own metrics. */
4
+ export interface FormulaShaper {
5
+ width(text: string, family: string, weight: number, style: 'normal' | 'italic', size: number): number | null;
6
+ }
7
+ /** One positioned run of ink. Coordinates are px from the layout's
8
+ * top-left; `baseline` is where the glyph sits, `top`/`bottom` bound the
9
+ * band a selection lights. */
10
+ export interface FormulaGlyph {
11
+ text: string;
12
+ x: number;
13
+ width: number;
14
+ baseline: number;
15
+ top: number;
16
+ bottom: number;
17
+ size: number;
18
+ family: string;
19
+ weight: number;
20
+ style: 'normal' | 'italic';
21
+ color: string;
22
+ /** Code-point offset of this glyph's text in `FormulaLayout.text`. */
23
+ index: number;
24
+ /** Code points in `text`. */
25
+ length: number;
26
+ }
27
+ /** A filled rectangle — fraction bars, `\rule`, overlines. */
28
+ export interface FormulaRule {
29
+ x: number;
30
+ y: number;
31
+ width: number;
32
+ height: number;
33
+ color: string;
34
+ }
35
+ type PathSeg = {
36
+ c: 'M' | 'L';
37
+ x: number;
38
+ y: number;
39
+ } | {
40
+ c: 'C';
41
+ x1: number;
42
+ y1: number;
43
+ x2: number;
44
+ y2: number;
45
+ x: number;
46
+ y: number;
47
+ } | {
48
+ c: 'Q';
49
+ x1: number;
50
+ y1: number;
51
+ x: number;
52
+ y: number;
53
+ } | {
54
+ c: 'Z';
55
+ };
56
+ /**
57
+ * An svg drawing (surds, stretchy accents), still in its viewBox units.
58
+ * The painter derives the transform: `'slice'` scales uniformly by height
59
+ * and clips horizontally at `width` (KaTeX's 400em-wide surd tails);
60
+ * `'none'` stretches each axis independently; `'fit'` scales uniformly.
61
+ */
62
+ export interface FormulaPath {
63
+ segs: PathSeg[];
64
+ x: number;
65
+ y: number;
66
+ width: number;
67
+ height: number;
68
+ viewWidth: number;
69
+ viewHeight: number;
70
+ mode: 'slice' | 'none' | 'fit';
71
+ color: string;
72
+ }
73
+ export interface FormulaLayout {
74
+ width: number;
75
+ /** Above / below the baseline of the outermost line, px. */
76
+ ascent: number;
77
+ descent: number;
78
+ baseline: number;
79
+ glyphs: FormulaGlyph[];
80
+ rules: FormulaRule[];
81
+ paths: FormulaPath[];
82
+ /** The glyphs' text in reading order — what a selection copies. */
83
+ text: string;
84
+ }
85
+ export interface FormulaLayoutOptions {
86
+ /** Pixels per em at the formula's base size. */
87
+ em: number;
88
+ color: string;
89
+ shaper: FormulaShaper | null;
90
+ }
91
+ /**
92
+ * The subset of SVG path syntax KaTeX's geometry uses. Arcs never occur;
93
+ * if one ever does, it degrades to a line to its endpoint rather than
94
+ * throwing mid-paint.
95
+ */
96
+ export declare function parsePathData(d: string): PathSeg[];
97
+ /**
98
+ * Lay a KaTeX dom tree out. `root` is what `__renderToDomTree` returned —
99
+ * the `.katex` span, or the `.katex-display` wrapper around it.
100
+ */
101
+ export declare function layoutFormula(root: KatexNode, options: FormulaLayoutOptions): FormulaLayout;
102
+ export {};
103
+ //# sourceMappingURL=layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/formula/layout.ts"],"names":[],"mappings":"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"}