@react-x11/components 0.9.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (579) hide show
  1. package/README.md +10 -4
  2. package/dist/charts/node.d.ts +11 -1
  3. package/dist/charts/node.d.ts.map +1 -1
  4. package/dist/charts/node.js +44 -14
  5. package/dist/charts/node.js.map +1 -1
  6. package/dist/charts/render.d.ts +12 -3
  7. package/dist/charts/render.d.ts.map +1 -1
  8. package/dist/charts/render.js +94 -25
  9. package/dist/charts/render.js.map +1 -1
  10. package/dist/code/index.d.ts.map +1 -1
  11. package/dist/code/index.js +27 -24
  12. package/dist/code/index.js.map +1 -1
  13. package/dist/code-editor/completion.d.ts.map +1 -1
  14. package/dist/code-editor/completion.js +3 -2
  15. package/dist/code-editor/completion.js.map +1 -1
  16. package/dist/code-editor/index.d.ts.map +1 -1
  17. package/dist/code-editor/index.js +19 -0
  18. package/dist/code-editor/index.js.map +1 -1
  19. package/dist/code-editor/node.d.ts +177 -7
  20. package/dist/code-editor/node.d.ts.map +1 -1
  21. package/dist/code-editor/node.js +1329 -164
  22. package/dist/code-editor/node.js.map +1 -1
  23. package/dist/code-language/index.d.ts +1 -1
  24. package/dist/code-language/index.d.ts.map +1 -1
  25. package/dist/code-language/index.js +1 -1
  26. package/dist/code-language/index.js.map +1 -1
  27. package/dist/code-language/languages/glsl.d.ts.map +1 -1
  28. package/dist/code-language/languages/glsl.js +10 -2
  29. package/dist/code-language/languages/glsl.js.map +1 -1
  30. package/dist/code-language/languages/javascript.d.ts.map +1 -1
  31. package/dist/code-language/languages/javascript.js +18 -3
  32. package/dist/code-language/languages/javascript.js.map +1 -1
  33. package/dist/code-language/languages/json.d.ts.map +1 -1
  34. package/dist/code-language/languages/json.js +10 -2
  35. package/dist/code-language/languages/json.js.map +1 -1
  36. package/dist/code-language/languages/shell.d.ts.map +1 -1
  37. package/dist/code-language/languages/shell.js +10 -2
  38. package/dist/code-language/languages/shell.js.map +1 -1
  39. package/dist/code-language/languages/sql.d.ts.map +1 -1
  40. package/dist/code-language/languages/sql.js +20 -2
  41. package/dist/code-language/languages/sql.js.map +1 -1
  42. package/dist/code-language/runs.d.ts +31 -0
  43. package/dist/code-language/runs.d.ts.map +1 -1
  44. package/dist/code-language/runs.js +105 -0
  45. package/dist/code-language/runs.js.map +1 -1
  46. package/dist/code-language/stream.d.ts +22 -0
  47. package/dist/code-language/stream.d.ts.map +1 -1
  48. package/dist/code-language/stream.js +259 -9
  49. package/dist/code-language/stream.js.map +1 -1
  50. package/dist/code-language/types.d.ts +5 -4
  51. package/dist/code-language/types.d.ts.map +1 -1
  52. package/dist/codeblock/index.d.ts +26 -2
  53. package/dist/codeblock/index.d.ts.map +1 -1
  54. package/dist/codeblock/index.js +57 -4
  55. package/dist/codeblock/index.js.map +1 -1
  56. package/dist/flow/draw.d.ts +50 -0
  57. package/dist/flow/draw.d.ts.map +1 -1
  58. package/dist/flow/draw.js +132 -33
  59. package/dist/flow/draw.js.map +1 -1
  60. package/dist/flow/gl/color.d.ts +13 -0
  61. package/dist/flow/gl/color.d.ts.map +1 -0
  62. package/dist/flow/gl/color.js +82 -0
  63. package/dist/flow/gl/color.js.map +1 -0
  64. package/dist/flow/gl/index.d.ts +60 -0
  65. package/dist/flow/gl/index.d.ts.map +1 -0
  66. package/dist/flow/gl/index.js +283 -0
  67. package/dist/flow/gl/index.js.map +1 -0
  68. package/dist/flow/gl/pack.d.ts +133 -0
  69. package/dist/flow/gl/pack.d.ts.map +1 -0
  70. package/dist/flow/gl/pack.js +408 -0
  71. package/dist/flow/gl/pack.js.map +1 -0
  72. package/dist/flow/gl/renderer.d.ts +95 -0
  73. package/dist/flow/gl/renderer.d.ts.map +1 -0
  74. package/dist/flow/gl/renderer.js +459 -0
  75. package/dist/flow/gl/renderer.js.map +1 -0
  76. package/dist/flow/gl/shaders.d.ts +79 -0
  77. package/dist/flow/gl/shaders.d.ts.map +1 -0
  78. package/dist/flow/gl/shaders.js +346 -0
  79. package/dist/flow/gl/shaders.js.map +1 -0
  80. package/dist/flow/gl/text.d.ts +318 -0
  81. package/dist/flow/gl/text.d.ts.map +1 -0
  82. package/dist/flow/gl/text.js +1103 -0
  83. package/dist/flow/gl/text.js.map +1 -0
  84. package/dist/flow/index.d.ts +1 -1
  85. package/dist/flow/index.d.ts.map +1 -1
  86. package/dist/flow/index.js +619 -64
  87. package/dist/flow/index.js.map +1 -1
  88. package/dist/flow/node.d.ts +621 -72
  89. package/dist/flow/node.d.ts.map +1 -1
  90. package/dist/flow/node.js +2253 -1018
  91. package/dist/flow/node.js.map +1 -1
  92. package/dist/flow/paint.d.ts +35 -0
  93. package/dist/flow/paint.d.ts.map +1 -0
  94. package/dist/flow/paint.js +393 -0
  95. package/dist/flow/paint.js.map +1 -0
  96. package/dist/flow/paths.d.ts +14 -0
  97. package/dist/flow/paths.d.ts.map +1 -1
  98. package/dist/flow/paths.js +45 -19
  99. package/dist/flow/paths.js.map +1 -1
  100. package/dist/flow/scene.d.ts +584 -0
  101. package/dist/flow/scene.d.ts.map +1 -0
  102. package/dist/flow/scene.js +1453 -0
  103. package/dist/flow/scene.js.map +1 -0
  104. package/dist/flow/types.d.ts +111 -1
  105. package/dist/flow/types.d.ts.map +1 -1
  106. package/dist/html/controls.d.ts +28 -0
  107. package/dist/html/controls.d.ts.map +1 -1
  108. package/dist/html/controls.js +52 -2
  109. package/dist/html/controls.js.map +1 -1
  110. package/dist/html/css/calc.d.ts +14 -0
  111. package/dist/html/css/calc.d.ts.map +1 -0
  112. package/dist/html/css/calc.js +344 -0
  113. package/dist/html/css/calc.js.map +1 -0
  114. package/dist/html/css/cascade.d.ts +262 -6
  115. package/dist/html/css/cascade.d.ts.map +1 -1
  116. package/dist/html/css/cascade.js +1373 -67
  117. package/dist/html/css/cascade.js.map +1 -1
  118. package/dist/html/css/color.d.ts +23 -0
  119. package/dist/html/css/color.d.ts.map +1 -0
  120. package/dist/html/css/color.js +740 -0
  121. package/dist/html/css/color.js.map +1 -0
  122. package/dist/html/css/content.d.ts +92 -0
  123. package/dist/html/css/content.d.ts.map +1 -0
  124. package/dist/html/css/content.js +388 -0
  125. package/dist/html/css/content.js.map +1 -0
  126. package/dist/html/css/counter-styles.d.ts +76 -0
  127. package/dist/html/css/counter-styles.d.ts.map +1 -0
  128. package/dist/html/css/counter-styles.js +893 -0
  129. package/dist/html/css/counter-styles.js.map +1 -0
  130. package/dist/html/css/decode.d.ts +12 -0
  131. package/dist/html/css/decode.d.ts.map +1 -0
  132. package/dist/html/css/decode.js +116 -0
  133. package/dist/html/css/decode.js.map +1 -0
  134. package/dist/html/css/parse.d.ts +110 -10
  135. package/dist/html/css/parse.d.ts.map +1 -1
  136. package/dist/html/css/parse.js +1473 -180
  137. package/dist/html/css/parse.js.map +1 -1
  138. package/dist/html/css/style.d.ts +501 -15
  139. package/dist/html/css/style.d.ts.map +1 -1
  140. package/dist/html/css/style.js +3729 -206
  141. package/dist/html/css/style.js.map +1 -1
  142. package/dist/html/css/ua.d.ts.map +1 -1
  143. package/dist/html/css/ua.js +65 -16
  144. package/dist/html/css/ua.js.map +1 -1
  145. package/dist/html/css/values.d.ts +37 -3
  146. package/dist/html/css/values.d.ts.map +1 -1
  147. package/dist/html/css/values.js +122 -48
  148. package/dist/html/css/values.js.map +1 -1
  149. package/dist/html/css/vars.d.ts +52 -0
  150. package/dist/html/css/vars.d.ts.map +1 -0
  151. package/dist/html/css/vars.js +358 -0
  152. package/dist/html/css/vars.js.map +1 -0
  153. package/dist/html/dom.d.ts +30 -4
  154. package/dist/html/dom.d.ts.map +1 -1
  155. package/dist/html/dom.js +278 -17
  156. package/dist/html/dom.js.map +1 -1
  157. package/dist/html/fonts.d.ts +106 -0
  158. package/dist/html/fonts.d.ts.map +1 -0
  159. package/dist/html/fonts.js +565 -0
  160. package/dist/html/fonts.js.map +1 -0
  161. package/dist/html/gif.d.ts +15 -0
  162. package/dist/html/gif.d.ts.map +1 -0
  163. package/dist/html/gif.js +229 -0
  164. package/dist/html/gif.js.map +1 -0
  165. package/dist/html/index.d.ts +50 -11
  166. package/dist/html/index.d.ts.map +1 -1
  167. package/dist/html/index.js +115 -9
  168. package/dist/html/index.js.map +1 -1
  169. package/dist/html/layout/block.d.ts +226 -3
  170. package/dist/html/layout/block.d.ts.map +1 -1
  171. package/dist/html/layout/block.js +3077 -219
  172. package/dist/html/layout/block.js.map +1 -1
  173. package/dist/html/layout/boxes.d.ts +367 -17
  174. package/dist/html/layout/boxes.d.ts.map +1 -1
  175. package/dist/html/layout/boxes.js +1742 -182
  176. package/dist/html/layout/boxes.js.map +1 -1
  177. package/dist/html/layout/cache.d.ts +58 -0
  178. package/dist/html/layout/cache.d.ts.map +1 -0
  179. package/dist/html/layout/cache.js +224 -0
  180. package/dist/html/layout/cache.js.map +1 -0
  181. package/dist/html/layout/collapse.d.ts +45 -0
  182. package/dist/html/layout/collapse.d.ts.map +1 -0
  183. package/dist/html/layout/collapse.js +246 -0
  184. package/dist/html/layout/collapse.js.map +1 -0
  185. package/dist/html/layout/css-grid.d.ts +7 -0
  186. package/dist/html/layout/css-grid.d.ts.map +1 -0
  187. package/dist/html/layout/css-grid.js +900 -0
  188. package/dist/html/layout/css-grid.js.map +1 -0
  189. package/dist/html/layout/flex.d.ts.map +1 -1
  190. package/dist/html/layout/flex.js +1025 -89
  191. package/dist/html/layout/flex.js.map +1 -1
  192. package/dist/html/layout/floats.d.ts +45 -6
  193. package/dist/html/layout/floats.d.ts.map +1 -1
  194. package/dist/html/layout/floats.js +113 -14
  195. package/dist/html/layout/floats.js.map +1 -1
  196. package/dist/html/layout/grid-lines.d.ts +39 -0
  197. package/dist/html/layout/grid-lines.d.ts.map +1 -0
  198. package/dist/html/layout/grid-lines.js +119 -0
  199. package/dist/html/layout/grid-lines.js.map +1 -0
  200. package/dist/html/layout/grid.d.ts +53 -0
  201. package/dist/html/layout/grid.d.ts.map +1 -0
  202. package/dist/html/layout/grid.js +153 -0
  203. package/dist/html/layout/grid.js.map +1 -0
  204. package/dist/html/layout/inline.d.ts +154 -1
  205. package/dist/html/layout/inline.d.ts.map +1 -1
  206. package/dist/html/layout/inline.js +3598 -175
  207. package/dist/html/layout/inline.js.map +1 -1
  208. package/dist/html/layout/shaping.d.ts +6 -0
  209. package/dist/html/layout/shaping.d.ts.map +1 -0
  210. package/dist/html/layout/shaping.js +100 -0
  211. package/dist/html/layout/shaping.js.map +1 -0
  212. package/dist/html/layout/table.d.ts +3 -0
  213. package/dist/html/layout/table.d.ts.map +1 -1
  214. package/dist/html/layout/table.js +681 -175
  215. package/dist/html/layout/table.js.map +1 -1
  216. package/dist/html/layout/tracks.d.ts +44 -0
  217. package/dist/html/layout/tracks.d.ts.map +1 -0
  218. package/dist/html/layout/tracks.js +349 -0
  219. package/dist/html/layout/tracks.js.map +1 -0
  220. package/dist/html/node.d.ts +169 -4
  221. package/dist/html/node.d.ts.map +1 -1
  222. package/dist/html/node.js +1429 -137
  223. package/dist/html/node.js.map +1 -1
  224. package/dist/html/paint.d.ts +92 -3
  225. package/dist/html/paint.d.ts.map +1 -1
  226. package/dist/html/paint.js +3635 -107
  227. package/dist/html/paint.js.map +1 -1
  228. package/dist/html/resources.d.ts +60 -14
  229. package/dist/html/resources.d.ts.map +1 -1
  230. package/dist/html/resources.js +122 -36
  231. package/dist/html/resources.js.map +1 -1
  232. package/dist/html/surfaces.d.ts +23 -0
  233. package/dist/html/surfaces.d.ts.map +1 -0
  234. package/dist/html/surfaces.js +68 -0
  235. package/dist/html/surfaces.js.map +1 -0
  236. package/dist/html/svg.d.ts +80 -0
  237. package/dist/html/svg.d.ts.map +1 -0
  238. package/dist/html/svg.js +442 -0
  239. package/dist/html/svg.js.map +1 -0
  240. package/dist/html/url.d.ts +23 -0
  241. package/dist/html/url.d.ts.map +1 -0
  242. package/dist/html/url.js +80 -0
  243. package/dist/html/url.js.map +1 -0
  244. package/dist/index.d.ts +1 -1
  245. package/dist/index.d.ts.map +1 -1
  246. package/dist/index.js.map +1 -1
  247. package/dist/internal/codelines.d.ts +42 -0
  248. package/dist/internal/codelines.d.ts.map +1 -0
  249. package/dist/internal/codelines.js +170 -0
  250. package/dist/internal/codelines.js.map +1 -0
  251. package/dist/internal/collate.d.ts +3 -0
  252. package/dist/internal/collate.d.ts.map +1 -0
  253. package/dist/internal/collate.js +11 -0
  254. package/dist/internal/collate.js.map +1 -0
  255. package/dist/internal/markdown/ast.d.ts +11 -0
  256. package/dist/internal/markdown/ast.d.ts.map +1 -1
  257. package/dist/internal/markdown/parse.d.ts.map +1 -1
  258. package/dist/internal/markdown/parse.js +109 -8
  259. package/dist/internal/markdown/parse.js.map +1 -1
  260. package/dist/internal/prewarm.d.ts +18 -0
  261. package/dist/internal/prewarm.d.ts.map +1 -0
  262. package/dist/internal/prewarm.js +42 -0
  263. package/dist/internal/prewarm.js.map +1 -0
  264. package/dist/internal/sdf.d.ts +20 -0
  265. package/dist/internal/sdf.d.ts.map +1 -0
  266. package/dist/internal/sdf.js +216 -0
  267. package/dist/internal/sdf.js.map +1 -0
  268. package/dist/internal/splice.d.ts +12 -0
  269. package/dist/internal/splice.d.ts.map +1 -0
  270. package/dist/internal/splice.js +23 -0
  271. package/dist/internal/splice.js.map +1 -0
  272. package/dist/internal/window.d.ts +12 -0
  273. package/dist/internal/window.d.ts.map +1 -1
  274. package/dist/internal/window.js +23 -6
  275. package/dist/internal/window.js.map +1 -1
  276. package/dist/maps/anchors.d.ts +6 -1
  277. package/dist/maps/anchors.d.ts.map +1 -1
  278. package/dist/maps/anchors.js +260 -1
  279. package/dist/maps/anchors.js.map +1 -1
  280. package/dist/maps/controller.d.ts +57 -0
  281. package/dist/maps/controller.d.ts.map +1 -1
  282. package/dist/maps/controller.js +97 -18
  283. package/dist/maps/controller.js.map +1 -1
  284. package/dist/maps/gl/buckets.d.ts +5 -1
  285. package/dist/maps/gl/buckets.d.ts.map +1 -1
  286. package/dist/maps/gl/buckets.js +5 -2
  287. package/dist/maps/gl/buckets.js.map +1 -1
  288. package/dist/maps/gl/build-worker.d.ts +2 -0
  289. package/dist/maps/gl/build-worker.d.ts.map +1 -1
  290. package/dist/maps/gl/build-worker.js +1 -1
  291. package/dist/maps/gl/build-worker.js.map +1 -1
  292. package/dist/maps/gl/cover.d.ts +23 -4
  293. package/dist/maps/gl/cover.d.ts.map +1 -1
  294. package/dist/maps/gl/cover.js +61 -48
  295. package/dist/maps/gl/cover.js.map +1 -1
  296. package/dist/maps/gl/placement.d.ts +21 -8
  297. package/dist/maps/gl/placement.d.ts.map +1 -1
  298. package/dist/maps/gl/placement.js +133 -58
  299. package/dist/maps/gl/placement.js.map +1 -1
  300. package/dist/maps/gl/renderer.d.ts +36 -4
  301. package/dist/maps/gl/renderer.d.ts.map +1 -1
  302. package/dist/maps/gl/renderer.js +81 -24
  303. package/dist/maps/gl/renderer.js.map +1 -1
  304. package/dist/maps/gl/shaders.d.ts +18 -17
  305. package/dist/maps/gl/shaders.d.ts.map +1 -1
  306. package/dist/maps/gl/shaders.js +34 -32
  307. package/dist/maps/gl/shaders.js.map +1 -1
  308. package/dist/maps/gl/store.d.ts +10 -0
  309. package/dist/maps/gl/store.d.ts.map +1 -1
  310. package/dist/maps/gl/store.js +47 -4
  311. package/dist/maps/gl/store.js.map +1 -1
  312. package/dist/maps/gl/text.d.ts +153 -24
  313. package/dist/maps/gl/text.d.ts.map +1 -1
  314. package/dist/maps/gl/text.js +379 -63
  315. package/dist/maps/gl/text.js.map +1 -1
  316. package/dist/maps/gl/view.d.ts +293 -2
  317. package/dist/maps/gl/view.d.ts.map +1 -1
  318. package/dist/maps/gl/view.js +317 -82
  319. package/dist/maps/gl/view.js.map +1 -1
  320. package/dist/maps/icons.d.ts +32 -0
  321. package/dist/maps/icons.d.ts.map +1 -0
  322. package/dist/maps/icons.js +151 -0
  323. package/dist/maps/icons.js.map +1 -0
  324. package/dist/maps/index.d.ts +2 -0
  325. package/dist/maps/index.d.ts.map +1 -1
  326. package/dist/maps/index.js +2 -0
  327. package/dist/maps/index.js.map +1 -1
  328. package/dist/maps/labels.d.ts +56 -4
  329. package/dist/maps/labels.d.ts.map +1 -1
  330. package/dist/maps/labels.js +213 -46
  331. package/dist/maps/labels.js.map +1 -1
  332. package/dist/maps/node.d.ts +17 -0
  333. package/dist/maps/node.d.ts.map +1 -1
  334. package/dist/maps/node.js +64 -30
  335. package/dist/maps/node.js.map +1 -1
  336. package/dist/maps/proj.d.ts +48 -0
  337. package/dist/maps/proj.d.ts.map +1 -1
  338. package/dist/maps/proj.js +73 -0
  339. package/dist/maps/proj.js.map +1 -1
  340. package/dist/maps/sources.d.ts +5 -3
  341. package/dist/maps/sources.d.ts.map +1 -1
  342. package/dist/maps/sources.js +5 -3
  343. package/dist/maps/sources.js.map +1 -1
  344. package/dist/maps/style.d.ts +35 -0
  345. package/dist/maps/style.d.ts.map +1 -1
  346. package/dist/maps/style.js.map +1 -1
  347. package/dist/maps/styles.d.ts +12 -0
  348. package/dist/maps/styles.d.ts.map +1 -1
  349. package/dist/maps/styles.js +120 -6
  350. package/dist/maps/styles.js.map +1 -1
  351. package/dist/maps/tiles.d.ts +31 -11
  352. package/dist/maps/tiles.d.ts.map +1 -1
  353. package/dist/maps/tiles.js +61 -27
  354. package/dist/maps/tiles.js.map +1 -1
  355. package/dist/maps/types.d.ts +28 -4
  356. package/dist/maps/types.d.ts.map +1 -1
  357. package/dist/markdown/index.d.ts.map +1 -1
  358. package/dist/markdown/index.js +209 -68
  359. package/dist/markdown/index.js.map +1 -1
  360. package/dist/markdown/spans.d.ts.map +1 -1
  361. package/dist/markdown/spans.js +6 -0
  362. package/dist/markdown/spans.js.map +1 -1
  363. package/dist/qml/containers.d.ts.map +1 -1
  364. package/dist/qml/containers.js +6 -1
  365. package/dist/qml/containers.js.map +1 -1
  366. package/dist/qml/interaction.d.ts.map +1 -1
  367. package/dist/qml/interaction.js +38 -5
  368. package/dist/qml/interaction.js.map +1 -1
  369. package/dist/qml/layouts.d.ts.map +1 -1
  370. package/dist/qml/layouts.js +21 -6
  371. package/dist/qml/layouts.js.map +1 -1
  372. package/dist/qml/qtquick.d.ts.map +1 -1
  373. package/dist/qml/qtquick.js +9 -2
  374. package/dist/qml/qtquick.js.map +1 -1
  375. package/dist/qml/react.d.ts.map +1 -1
  376. package/dist/qml/react.js +9 -7
  377. package/dist/qml/react.js.map +1 -1
  378. package/dist/reorder/clock.d.ts +7 -0
  379. package/dist/reorder/clock.d.ts.map +1 -0
  380. package/dist/reorder/clock.js +26 -0
  381. package/dist/reorder/clock.js.map +1 -0
  382. package/dist/reorder/index.d.ts +25 -3
  383. package/dist/reorder/index.d.ts.map +1 -1
  384. package/dist/reorder/index.js +64 -19
  385. package/dist/reorder/index.js.map +1 -1
  386. package/dist/rich-text-editor/index.d.ts +0 -11
  387. package/dist/rich-text-editor/index.d.ts.map +1 -1
  388. package/dist/rich-text-editor/index.js +38 -9
  389. package/dist/rich-text-editor/index.js.map +1 -1
  390. package/dist/rich-text-editor/keymap.d.ts.map +1 -1
  391. package/dist/rich-text-editor/keymap.js +2 -1
  392. package/dist/rich-text-editor/keymap.js.map +1 -1
  393. package/dist/rich-text-editor/keys.d.ts +17 -6
  394. package/dist/rich-text-editor/keys.d.ts.map +1 -1
  395. package/dist/rich-text-editor/keys.js +135 -26
  396. package/dist/rich-text-editor/keys.js.map +1 -1
  397. package/dist/rich-text-editor/markdown.d.ts.map +1 -1
  398. package/dist/rich-text-editor/markdown.js +30 -1
  399. package/dist/rich-text-editor/markdown.js.map +1 -1
  400. package/dist/rich-text-editor/marks.d.ts +9 -0
  401. package/dist/rich-text-editor/marks.d.ts.map +1 -0
  402. package/dist/rich-text-editor/marks.js +83 -0
  403. package/dist/rich-text-editor/marks.js.map +1 -0
  404. package/dist/rich-text-editor/render.d.ts.map +1 -1
  405. package/dist/rich-text-editor/render.js +28 -10
  406. package/dist/rich-text-editor/render.js.map +1 -1
  407. package/dist/rich-text-editor/replace.d.ts +13 -0
  408. package/dist/rich-text-editor/replace.d.ts.map +1 -0
  409. package/dist/rich-text-editor/replace.js +64 -0
  410. package/dist/rich-text-editor/replace.js.map +1 -0
  411. package/dist/rich-text-editor/toolbar.d.ts.map +1 -1
  412. package/dist/rich-text-editor/toolbar.js +1 -1
  413. package/dist/rich-text-editor/toolbar.js.map +1 -1
  414. package/dist/rich-text-editor/virtual.d.ts.map +1 -1
  415. package/dist/rich-text-editor/virtual.js +17 -0
  416. package/dist/rich-text-editor/virtual.js.map +1 -1
  417. package/dist/richtext/node.d.ts +46 -2
  418. package/dist/richtext/node.d.ts.map +1 -1
  419. package/dist/richtext/node.js +187 -4
  420. package/dist/richtext/node.js.map +1 -1
  421. package/dist/richtext/runs.d.ts +13 -8
  422. package/dist/richtext/runs.d.ts.map +1 -1
  423. package/dist/richtext/runs.js +18 -8
  424. package/dist/richtext/runs.js.map +1 -1
  425. package/dist/table/index.d.ts.map +1 -1
  426. package/dist/table/index.js +23 -0
  427. package/dist/table/index.js.map +1 -1
  428. package/dist/table/rows.d.ts +3 -2
  429. package/dist/table/rows.d.ts.map +1 -1
  430. package/dist/table/rows.js +20 -6
  431. package/dist/table/rows.js.map +1 -1
  432. package/dist/terminal/index.d.ts.map +1 -1
  433. package/dist/terminal/index.js +4 -0
  434. package/dist/terminal/index.js.map +1 -1
  435. package/dist/terminal/vt/pty.d.ts +13 -2
  436. package/dist/terminal/vt/pty.d.ts.map +1 -1
  437. package/dist/terminal/vt/pty.js +18 -3
  438. package/dist/terminal/vt/pty.js.map +1 -1
  439. package/dist/terminal-output/index.d.ts.map +1 -1
  440. package/dist/terminal-output/index.js +103 -23
  441. package/dist/terminal-output/index.js.map +1 -1
  442. package/dist/terminal-output/runs.d.ts +4 -1
  443. package/dist/terminal-output/runs.d.ts.map +1 -1
  444. package/dist/terminal-output/runs.js +5 -1
  445. package/dist/terminal-output/runs.js.map +1 -1
  446. package/dist/three/canvas.d.ts.map +1 -1
  447. package/dist/three/canvas.js +85 -7
  448. package/dist/three/canvas.js.map +1 -1
  449. package/dist/three/events.d.ts +22 -4
  450. package/dist/three/events.d.ts.map +1 -1
  451. package/dist/three/events.js +34 -4
  452. package/dist/three/events.js.map +1 -1
  453. package/dist/tree/index.d.ts.map +1 -1
  454. package/dist/tree/index.js +17 -0
  455. package/dist/tree/index.js.map +1 -1
  456. package/package.json +42 -33
  457. package/src/charts/node.ts +62 -26
  458. package/src/charts/render.ts +120 -30
  459. package/src/code/index.ts +36 -32
  460. package/src/code-editor/completion.ts +3 -2
  461. package/src/code-editor/index.ts +19 -0
  462. package/src/code-editor/node.ts +1574 -184
  463. package/src/code-language/index.ts +1 -1
  464. package/src/code-language/languages/glsl.ts +12 -2
  465. package/src/code-language/languages/javascript.ts +21 -4
  466. package/src/code-language/languages/json.ts +12 -2
  467. package/src/code-language/languages/shell.ts +12 -2
  468. package/src/code-language/languages/sql.ts +22 -2
  469. package/src/code-language/runs.ts +111 -1
  470. package/src/code-language/stream.ts +257 -17
  471. package/src/code-language/types.ts +5 -4
  472. package/src/codeblock/index.ts +68 -4
  473. package/src/flow/draw.ts +167 -41
  474. package/src/flow/gl/color.ts +85 -0
  475. package/src/flow/gl/index.ts +342 -0
  476. package/src/flow/gl/pack.ts +585 -0
  477. package/src/flow/gl/renderer.ts +679 -0
  478. package/src/flow/gl/shaders.ts +371 -0
  479. package/src/flow/gl/text.ts +1295 -0
  480. package/src/flow/index.ts +794 -67
  481. package/src/flow/node.ts +2496 -1256
  482. package/src/flow/paint.ts +511 -0
  483. package/src/flow/paths.ts +80 -15
  484. package/src/flow/scene.ts +2199 -0
  485. package/src/flow/types.ts +113 -1
  486. package/src/html/controls.ts +73 -2
  487. package/src/html/css/calc.ts +385 -0
  488. package/src/html/css/cascade.ts +1481 -62
  489. package/src/html/css/color.ts +755 -0
  490. package/src/html/css/content.ts +417 -0
  491. package/src/html/css/counter-styles.ts +973 -0
  492. package/src/html/css/decode.ts +130 -0
  493. package/src/html/css/parse.ts +1514 -160
  494. package/src/html/css/style.ts +4131 -223
  495. package/src/html/css/ua.ts +66 -17
  496. package/src/html/css/values.ts +150 -50
  497. package/src/html/css/vars.ts +348 -0
  498. package/src/html/dom.ts +284 -17
  499. package/src/html/fonts.ts +641 -0
  500. package/src/html/gif.ts +233 -0
  501. package/src/html/index.ts +180 -20
  502. package/src/html/layout/block.ts +3560 -208
  503. package/src/html/layout/boxes.ts +2141 -190
  504. package/src/html/layout/cache.ts +289 -0
  505. package/src/html/layout/collapse.ts +317 -0
  506. package/src/html/layout/css-grid.ts +1063 -0
  507. package/src/html/layout/flex.ts +1115 -106
  508. package/src/html/layout/floats.ts +128 -14
  509. package/src/html/layout/grid-lines.ts +141 -0
  510. package/src/html/layout/grid.ts +181 -0
  511. package/src/html/layout/inline.ts +4187 -192
  512. package/src/html/layout/shaping.ts +140 -0
  513. package/src/html/layout/table.ts +696 -186
  514. package/src/html/layout/tracks.ts +437 -0
  515. package/src/html/node.ts +1585 -156
  516. package/src/html/paint.ts +4582 -267
  517. package/src/html/resources.ts +161 -50
  518. package/src/html/surfaces.ts +81 -0
  519. package/src/html/svg.ts +504 -0
  520. package/src/html/url.ts +86 -0
  521. package/src/index.ts +2 -0
  522. package/src/internal/codelines.ts +200 -0
  523. package/src/internal/collate.ts +12 -0
  524. package/src/internal/markdown/ast.ts +11 -0
  525. package/src/internal/markdown/parse.ts +154 -11
  526. package/src/internal/prewarm.ts +45 -0
  527. package/src/internal/sdf.ts +227 -0
  528. package/src/internal/splice.ts +25 -0
  529. package/src/internal/window.ts +36 -5
  530. package/src/maps/anchors.ts +307 -1
  531. package/src/maps/controller.ts +116 -31
  532. package/src/maps/gl/buckets.ts +5 -1
  533. package/src/maps/gl/build-worker.ts +13 -2
  534. package/src/maps/gl/cover.ts +79 -44
  535. package/src/maps/gl/placement.ts +221 -69
  536. package/src/maps/gl/renderer.ts +104 -20
  537. package/src/maps/gl/shaders.ts +35 -32
  538. package/src/maps/gl/store.ts +66 -17
  539. package/src/maps/gl/text.ts +444 -71
  540. package/src/maps/gl/view.ts +361 -96
  541. package/src/maps/icons.ts +183 -0
  542. package/src/maps/index.ts +4 -0
  543. package/src/maps/labels.ts +269 -49
  544. package/src/maps/node.ts +82 -49
  545. package/src/maps/proj.ts +87 -0
  546. package/src/maps/sources.ts +5 -3
  547. package/src/maps/style.ts +32 -0
  548. package/src/maps/styles.ts +215 -4
  549. package/src/maps/tiles.ts +64 -31
  550. package/src/maps/types.ts +28 -4
  551. package/src/markdown/index.ts +293 -92
  552. package/src/markdown/spans.ts +5 -0
  553. package/src/qml/containers.tsx +6 -1
  554. package/src/qml/interaction.tsx +42 -5
  555. package/src/qml/layouts.tsx +21 -6
  556. package/src/qml/qtquick.tsx +9 -2
  557. package/src/qml/react.tsx +7 -5
  558. package/src/reorder/clock.ts +27 -0
  559. package/src/reorder/index.ts +100 -27
  560. package/src/rich-text-editor/index.ts +37 -12
  561. package/src/rich-text-editor/keymap.ts +1 -1
  562. package/src/rich-text-editor/keys.ts +135 -26
  563. package/src/rich-text-editor/markdown.ts +36 -1
  564. package/src/rich-text-editor/marks.ts +101 -0
  565. package/src/rich-text-editor/render.ts +49 -12
  566. package/src/rich-text-editor/replace.ts +85 -0
  567. package/src/rich-text-editor/toolbar.ts +1 -1
  568. package/src/rich-text-editor/virtual.ts +25 -0
  569. package/src/richtext/node.ts +235 -14
  570. package/src/richtext/runs.ts +23 -12
  571. package/src/table/index.ts +29 -0
  572. package/src/table/rows.ts +18 -8
  573. package/src/terminal/index.ts +4 -0
  574. package/src/terminal/vt/pty.ts +16 -2
  575. package/src/terminal-output/index.ts +129 -31
  576. package/src/terminal-output/runs.ts +16 -2
  577. package/src/three/canvas.ts +102 -8
  578. package/src/three/events.ts +49 -9
  579. package/src/tree/index.ts +19 -0
@@ -0,0 +1,229 @@
1
+ // A GIF's first frame, as RGBA.
2
+ //
3
+ // ntk decodes PNG and JPEG, and a document handed to this component is
4
+ // still full of GIFs: a mail's logo and its spacer images, a table layout's
5
+ // one-pixel shims sized by `width` and `height`. An image that does not
6
+ // decode is drawn as a frame, which on a spacer is a line through the
7
+ // layout that the author meant to be nothing. So the format is read here:
8
+ // GIF89a (and 87a) is small, fixed and unambiguous, and the decoder is the
9
+ // LZW variant the format defines, nothing more.
10
+ //
11
+ // Only the first frame. An animation is drawn as it stands before it moves,
12
+ // which is what a paused animation shows; playing one would mean a timer per
13
+ // image and a repaint per frame, which is not this renderer's business.
14
+ /** The most pixels a GIF may say it has: past this a malformed header is a
15
+ * request for gigabytes, not an image. */
16
+ const MAX_PIXELS = 1 << 25;
17
+ /**
18
+ * Decode a GIF's first frame, or null for bytes that are not a GIF. The
19
+ * logical screen is the image; what the frame does not cover, and its
20
+ * transparent colour, are transparent. Data that ends early leaves the rest
21
+ * of the frame transparent rather than failing the image.
22
+ */
23
+ export function decodeGif(bytes) {
24
+ if (bytes.length < 13 ||
25
+ bytes[0] !== 0x47 || // G
26
+ bytes[1] !== 0x49 || // I
27
+ bytes[2] !== 0x46 || // F
28
+ bytes[3] !== 0x38 || // 8
29
+ (bytes[4] !== 0x37 && bytes[4] !== 0x39) || // 7 or 9
30
+ bytes[5] !== 0x61 // a
31
+ ) {
32
+ return null;
33
+ }
34
+ const width = bytes[6] | (bytes[7] << 8);
35
+ const height = bytes[8] | (bytes[9] << 8);
36
+ if (!width || !height || width * height > MAX_PIXELS)
37
+ return null;
38
+ const packed = bytes[10];
39
+ let at = 13;
40
+ let global = null;
41
+ if (packed & 0x80) {
42
+ const size = 3 * (1 << ((packed & 7) + 1));
43
+ global = bytes.subarray(at, at + size);
44
+ at += size;
45
+ }
46
+ const data = new Uint8Array(width * height * 4);
47
+ let transparent = -1;
48
+ while (at < bytes.length) {
49
+ const block = bytes[at++];
50
+ if (block === 0x3b)
51
+ break; // the trailer
52
+ if (block === 0x21) {
53
+ // an extension: a Graphic Control one says which colour is not drawn
54
+ const label = bytes[at++];
55
+ if (label === 0xf9 && bytes[at] >= 4) {
56
+ const flags = bytes[at + 1];
57
+ transparent = flags & 1 ? bytes[at + 4] : -1;
58
+ }
59
+ at = skipSubBlocks(bytes, at);
60
+ continue;
61
+ }
62
+ if (block !== 0x2c)
63
+ return null; // neither: not a GIF this can read
64
+ if (at + 9 > bytes.length)
65
+ return null;
66
+ const left = bytes[at] | (bytes[at + 1] << 8);
67
+ const top = bytes[at + 2] | (bytes[at + 3] << 8);
68
+ const frameWidth = bytes[at + 4] | (bytes[at + 5] << 8);
69
+ const frameHeight = bytes[at + 6] | (bytes[at + 7] << 8);
70
+ const flags = bytes[at + 8];
71
+ at += 9;
72
+ let palette = global;
73
+ if (flags & 0x80) {
74
+ const size = 3 * (1 << ((flags & 7) + 1));
75
+ palette = bytes.subarray(at, at + size);
76
+ at += size;
77
+ }
78
+ if (!palette || frameWidth * frameHeight > MAX_PIXELS)
79
+ return null;
80
+ const minCodeSize = bytes[at++];
81
+ if (minCodeSize < 2 || minCodeSize > 11)
82
+ return null;
83
+ const indices = lzw(bytes, at, minCodeSize, frameWidth * frameHeight);
84
+ const interlaced = (flags & 0x40) !== 0;
85
+ for (let row = 0; row < frameHeight; row += 1) {
86
+ const y = top + (interlaced ? interlacedRow(row, frameHeight) : row);
87
+ if (y >= height)
88
+ continue;
89
+ for (let col = 0; col < frameWidth; col += 1) {
90
+ const x = left + col;
91
+ if (x >= width)
92
+ continue;
93
+ const index = indices[row * frameWidth + col];
94
+ if (index === transparent || index * 3 + 2 >= palette.length)
95
+ continue;
96
+ const o = (y * width + x) * 4;
97
+ data[o] = palette[index * 3];
98
+ data[o + 1] = palette[index * 3 + 1];
99
+ data[o + 2] = palette[index * 3 + 2];
100
+ data[o + 3] = 255;
101
+ }
102
+ }
103
+ return { width, height, data };
104
+ }
105
+ return null;
106
+ }
107
+ /** Past a run of data sub-blocks: each a length byte and that many bytes,
108
+ * ended by an empty one. */
109
+ function skipSubBlocks(bytes, at) {
110
+ while (at < bytes.length) {
111
+ const size = bytes[at++];
112
+ if (size === 0)
113
+ break;
114
+ at += size;
115
+ }
116
+ return at;
117
+ }
118
+ /** Which row of the frame an interlaced image's `n`th stored row is: every
119
+ * eighth from 0, every eighth from 4, every fourth from 2, every second
120
+ * from 1. */
121
+ function interlacedRow(n, height) {
122
+ const passes = [
123
+ [0, 8],
124
+ [4, 8],
125
+ [2, 4],
126
+ [1, 2],
127
+ ];
128
+ for (const [start, step] of passes) {
129
+ const rows = Math.ceil(Math.max(0, height - start) / step);
130
+ if (n < rows)
131
+ return start + n * step;
132
+ n -= rows;
133
+ }
134
+ return height;
135
+ }
136
+ /**
137
+ * The colour indices of one frame, from its LZW data (GIF89a, Appendix F):
138
+ * variable-width codes, least significant bit first, across data sub-blocks,
139
+ * starting a code wider than the palette's and growing to twelve bits. A
140
+ * frame whose data ends early has the rest of its indices 0, which the
141
+ * caller never reaches past the pixels it has — they are left transparent
142
+ * only when the frame said the colour 0 was.
143
+ */
144
+ function lzw(bytes, at, minCodeSize, pixels) {
145
+ const out = new Uint8Array(pixels);
146
+ const clear = 1 << minCodeSize;
147
+ const end = clear + 1;
148
+ const prefix = new Uint16Array(4096);
149
+ const suffix = new Uint8Array(4096);
150
+ const stack = new Uint8Array(4097);
151
+ for (let i = 0; i < clear; i += 1)
152
+ suffix[i] = i;
153
+ let size = minCodeSize + 1;
154
+ let mask = (1 << size) - 1;
155
+ let next = clear + 2;
156
+ let previous = -1;
157
+ let first = 0;
158
+ let written = 0;
159
+ // the bit reader, over the sub-blocks
160
+ let block = 0;
161
+ let bits = 0;
162
+ let count = 0;
163
+ while (written < pixels) {
164
+ while (count < size) {
165
+ if (block === 0) {
166
+ if (at >= bytes.length)
167
+ return out;
168
+ block = bytes[at++];
169
+ if (block === 0)
170
+ return out;
171
+ }
172
+ if (at >= bytes.length)
173
+ return out;
174
+ bits |= bytes[at++] << count;
175
+ count += 8;
176
+ block -= 1;
177
+ }
178
+ let code = bits & mask;
179
+ bits >>>= size;
180
+ count -= size;
181
+ if (code === clear) {
182
+ size = minCodeSize + 1;
183
+ mask = (1 << size) - 1;
184
+ next = clear + 2;
185
+ previous = -1;
186
+ continue;
187
+ }
188
+ if (code === end)
189
+ break;
190
+ if (previous === -1) {
191
+ if (code >= clear)
192
+ break; // a first code that is no colour: corrupt
193
+ out[written++] = code;
194
+ previous = code;
195
+ first = code;
196
+ continue;
197
+ }
198
+ const incoming = code;
199
+ let top = 0;
200
+ if (code >= next) {
201
+ // the code being defined by this very step: the previous string and
202
+ // its own first character (the "KwKwK" case)
203
+ if (code > next)
204
+ break;
205
+ stack[top++] = first;
206
+ code = previous;
207
+ }
208
+ while (code >= clear) {
209
+ stack[top++] = suffix[code];
210
+ code = prefix[code];
211
+ }
212
+ first = code;
213
+ stack[top++] = first;
214
+ if (next < 4096) {
215
+ prefix[next] = previous;
216
+ suffix[next] = first;
217
+ next += 1;
218
+ if ((next & mask) === 0 && next < 4096) {
219
+ size += 1;
220
+ mask = (1 << size) - 1;
221
+ }
222
+ }
223
+ previous = incoming;
224
+ while (top > 0 && written < pixels)
225
+ out[written++] = stack[--top];
226
+ }
227
+ return out;
228
+ }
229
+ //# sourceMappingURL=gif.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gif.js","sourceRoot":"","sources":["../../src/html/gif.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { ReactElement } from 'react';
3
- import type { DrawnNode, MouseEvent as X11MouseEvent } from 'react-x11';
3
+ import type { DrawnNode, MouseEvent as X11MouseEvent, Rect } from 'react-x11';
4
4
  import type { Style } from 'react-x11/style';
5
5
  import type { Document, Element } from './dom.js';
6
6
  import type { HtmlViewProps, ScriptRequest } from './node.js';
@@ -8,7 +8,7 @@ import type { ResourceRequest, ResourceResult } from './resources.js';
8
8
  export { ELEMENT as HTMLVIEW_ELEMENT, HtmlViewNode, registerHtmlView, } from './node.js';
9
9
  export type { HtmlViewProps, ScriptRequest } from './node.js';
10
10
  export type { ResourceRequest, ResourceResult } from './resources.js';
11
- export type { ControlRect } from './controls.js';
11
+ export type { BareField, ControlRect } from './controls.js';
12
12
  export type { ComputedStyle, RootLook } from './css/style.js';
13
13
  export type { AnyNode, ChildNode, Document, Element, ParentNode, } from './dom.js';
14
14
  export { appendChild, createElement as createHtmlElement, createText, parseFragment, removeNode, replaceNode, } from './dom.js';
@@ -32,15 +32,37 @@ export interface HtmlProps {
32
32
  selectable?: boolean;
33
33
  /** Extra author stylesheets, applied after the document's own. */
34
34
  stylesheet?: string | string[];
35
+ /**
36
+ * The encoding the host decoded `source` from, as a label (`'shift_jis'`,
37
+ * `'windows-1251'`). A stylesheet `onResource` hands over as bytes, with no
38
+ * byte order mark, charset or `@charset` of its own, is decoded with it, as
39
+ * CSS says a sheet is in its document's encoding. Default UTF-8.
40
+ */
41
+ charset?: string;
42
+ /**
43
+ * The URL the document came from. Given one — or a document with an
44
+ * absolute `<base href>` — every URL the document names reaches
45
+ * `onResource` and `onLink` absolute: resolved against its `<base href>`
46
+ * or this, and a `url()` in a linked stylesheet against the stylesheet's
47
+ * own URL, as a browser resolves it. Absent, URLs are handed over as the
48
+ * document wrote them.
49
+ *
50
+ * Nothing is fetched because of it: it says where relative URLs point,
51
+ * and `onResource` still decides whether anything goes there.
52
+ */
53
+ baseUrl?: string | null;
35
54
  /**
36
55
  * An external resource is wanted — an `<img src>`, a `<link rel=stylesheet>`
37
- * or an `@import`. Return the bytes or the text, or a promise of them, or
38
- * `null` to decline.
56
+ * or an `@import`, or a font an `@font-face` declares and the document
57
+ * uses. Return the bytes or the text, or a promise of them, or `null` to
58
+ * decline. A stylesheet's bytes are decoded as CSS says, from the
59
+ * `charset` the protocol named, if the host passes it on, and its `url`,
60
+ * if the host passes that, is where it came from after redirects.
39
61
  *
40
62
  * **Absent, nothing loads.** This component has no network and no
41
- * filesystem of its own; images render as a frame and linked stylesheets
42
- * are skipped. The host is the one that knows its cache, its proxy and
43
- * whether this document is trusted.
63
+ * filesystem of its own; images render as a frame, linked stylesheets are
64
+ * skipped and text is set in the fonts the system has. The host is the one
65
+ * that knows its cache, its proxy and whether this document is trusted.
44
66
  */
45
67
  onResource?: (request: ResourceRequest) => Promise<ResourceResult | null> | ResourceResult | null;
46
68
  /**
@@ -51,15 +73,17 @@ export interface HtmlProps {
51
73
  onScript?: (script: ScriptRequest) => void;
52
74
  /**
53
75
  * A link was activated. Absent means clicks do nothing: this component
54
- * never navigates by itself.
76
+ * never navigates by itself. The `href` is resolved against the
77
+ * document's base where it has one (`baseUrl`), and as written where not.
55
78
  */
56
79
  onLink?: (href: string, ev: X11MouseEvent<DrawnNode>) => void;
57
80
  /** The parsed document, each time it is re-parsed — the DOM handle. */
58
81
  onDocument?: (document: Document) => void;
59
82
  /**
60
- * A form control changed. The element is the one in the DOM, so a handler
61
- * that wants to keep the value writes it back with `setAttribute`-shaped
62
- * mutation and calls the handle's `refresh()`.
83
+ * A form control changed, or a `<button>` was pressed — reported with its
84
+ * `value`. The element is the one in the DOM, so a handler that wants to
85
+ * keep the value writes it back with `setAttribute`-shaped mutation and
86
+ * calls the handle's `refresh()`.
63
87
  */
64
88
  onControlChange?: (element: Element, value: string | boolean) => void;
65
89
  /** Base text style. Defaults: theme `fontSize` (14), `sans-serif`. */
@@ -97,8 +121,23 @@ export interface HtmlHandle {
97
121
  refresh(): void;
98
122
  /** The element under a point, in the window's coordinates. */
99
123
  elementAt(x: number, y: number): Element | null;
124
+ /** The link under a point, in the window's coordinates — resolved, as
125
+ * `onLink` is handed one — for a status bar, or a menu on a link. */
126
+ hrefAt(x: number, y: number): string | null;
127
+ /**
128
+ * Where an element is, in logical pixels from the document's top left:
129
+ * the space the offset of a box scrolling the document is in, so a link
130
+ * to `#section` is `scroller.scrollTo({ y: handle.elementRect(el).y })`.
131
+ * A block's border box; an inline element's across its fragments, padding
132
+ * and border included, as `getBoundingClientRect` measures it, and as
133
+ * tall as its lines. Null for an element with no box.
134
+ */
135
+ elementRect(element: Element): Rect | null;
100
136
  /** The document's `<title>`, if it had one. */
101
137
  readonly title: string | null;
138
+ /** The URL the document's relative URLs resolve against — its
139
+ * `<base href>`, or `baseUrl` — or null where it has none. */
140
+ readonly base: string | null;
102
141
  }
103
142
  /**
104
143
  * A rendered HTML document. Text selects across the whole of it — mouse
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/html/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/html/index.ts"],"names":[],"mappings":"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"}
@@ -16,8 +16,9 @@ import React from 'react';
16
16
  import { Button, Checkbox, Radio, RadioGroup, Select, useTheme, } from 'react-x11';
17
17
  import { tint } from 'react-x11/style';
18
18
  import { useLinkClicks, useSelectionMenu } from '../richtext/index.js';
19
+ import { useFontPrewarm } from '../internal/prewarm.js';
19
20
  import { hx } from './hx.js';
20
- import { attr } from './dom.js';
21
+ import { attr, tagOf } from './dom.js';
21
22
  import { ELEMENT, HtmlViewNode, registerHtmlView } from './node.js';
22
23
  import { buttonLabel, optionsOf, selectedOption, textareaValue, } from './controls.js';
23
24
  export { ELEMENT as HTMLVIEW_ELEMENT, HtmlViewNode, registerHtmlView, } from './node.js';
@@ -45,6 +46,28 @@ function deriveLook(theme, props) {
45
46
  controlRadius: Number(theme.radius ?? 4),
46
47
  };
47
48
  }
49
+ /** What a document sets in the code face: the elements the UA sheet puts in
50
+ * it, and a style sheet that names `monospace`, in either case. */
51
+ const CODE_MARKUP = /<(?:code|pre|kbd|samp|tt|listing|xmp)\b|monospace/i;
52
+ /**
53
+ * The code face, once the source holds code, and null before. A source that
54
+ * grows is read once, from a little before where it was last read to find a
55
+ * name a chunk split, so a document streamed in thousands of pieces is not
56
+ * read again at each one; a source that does not start with the last is
57
+ * read whole. Once found, found: warming a face twice warms nothing.
58
+ */
59
+ function useCodeFamily(source, family) {
60
+ const read = React.useRef({ source: '', found: false });
61
+ const seen = read.current;
62
+ if (!seen.found && source !== seen.source) {
63
+ const from = source.startsWith(seen.source)
64
+ ? Math.max(0, seen.source.length - 'monospace'.length)
65
+ : 0;
66
+ seen.found = CODE_MARKUP.test(from ? source.slice(from) : source);
67
+ seen.source = source;
68
+ }
69
+ return seen.found ? family : null;
70
+ }
48
71
  // --- the component ----------------------------------------------------------
49
72
  /**
50
73
  * A rendered HTML document. Text selects across the whole of it — mouse
@@ -60,11 +83,16 @@ function deriveLook(theme, props) {
60
83
  * ```
61
84
  */
62
85
  export function Html(props) {
63
- const { source, partial = true, selectable = true, stylesheet, onLink, onResource, onScript, onDocument, onControlChange, style, } = props;
86
+ const { source, partial = true, selectable = true, stylesheet, charset, baseUrl, onLink, onResource, onScript, onDocument, onControlChange, style, } = props;
64
87
  const theme = useTheme();
65
88
  const links = useLinkClicks(onLink);
89
+ const buttons = useButtonPresses(onControlChange);
66
90
  const menu = useSelectionMenu(selectable);
67
91
  const look = React.useMemo(() => deriveLook(theme, props), [theme, props.fontSize, props.fontFamily, props.monoFamily]);
92
+ // a document with code in it sets that code in the mono family, and its
93
+ // render is the head start its first layout would otherwise wait on the
94
+ // system's font matcher for (`useFontPrewarm`)
95
+ useFontPrewarm(useCodeFamily(source, look.monoFamily));
68
96
  const documentRef = React.useRef(null);
69
97
  const [controls, setControls] = React.useState([]);
70
98
  const [domRevision, setDomRevision] = React.useState(0);
@@ -84,6 +112,8 @@ export function Html(props) {
84
112
  source,
85
113
  complete: !partial,
86
114
  stylesheet,
115
+ charset,
116
+ baseUrl,
87
117
  look,
88
118
  selectionColor,
89
119
  onResource,
@@ -92,7 +122,9 @@ export function Html(props) {
92
122
  onControls: handleControls,
93
123
  domRevision,
94
124
  ref: props.ref,
95
- style: { alignSelf: 'stretch' },
125
+ // grown with the component, where an application grows it: the root's
126
+ // background covers the whole of it, as a page's covers the window
127
+ style: { alignSelf: 'stretch', flexGrow: 1 },
96
128
  };
97
129
  const children = [
98
130
  h(ELEMENT, { key: 'view', ...viewProps }),
@@ -112,6 +144,14 @@ export function Html(props) {
112
144
  selectable,
113
145
  selectionColor: props.selectionColor,
114
146
  ...links,
147
+ onMouseDown: (ev) => {
148
+ links.onMouseDown(ev);
149
+ buttons.onMouseDown(ev);
150
+ },
151
+ onMouseUp: (ev) => {
152
+ links.onMouseUp(ev);
153
+ buttons.onMouseUp(ev);
154
+ },
115
155
  ...menu,
116
156
  'data-testname': props['data-testname'],
117
157
  }, ...children);
@@ -138,13 +178,58 @@ export function useHtmlHandle() {
138
178
  get title() {
139
179
  return nodeRef.current?.title ?? null;
140
180
  },
181
+ get base() {
182
+ return nodeRef.current?.documentBase ?? null;
183
+ },
141
184
  refresh: () => {
142
185
  nodeRef.current?.touchDocument();
143
186
  force();
144
187
  },
145
188
  elementAt: (x, y) => nodeRef.current?.elementAtPoint(x, y) ?? null,
189
+ hrefAt: (x, y) => nodeRef.current?.hrefAtPoint(x, y) ?? null,
190
+ elementRect: (element) => nodeRef.current?.elementRect(element) ?? null,
146
191
  }), []);
147
192
  }
193
+ /**
194
+ * A press and a release on the same `<button>` the document draws, reported
195
+ * as a pressed widget reports one: `onControlChange` with the button and its
196
+ * `value`. A `<button>` is laid out and drawn like any box (the UA sheet's
197
+ * `button` rule) — its content is the page's, and most of the buttons on
198
+ * the web are an icon or a pill of a page's own design — so it is the
199
+ * element that finds out it was pressed, not a widget. A disabled one, or
200
+ * a press that lands in a link inside one, is not a press of it.
201
+ */
202
+ function useButtonPresses(onControlChange) {
203
+ const press = React.useRef(null);
204
+ const buttonAt = (ev) => {
205
+ const target = ev.target;
206
+ let node = typeof target?.elementAtPoint === 'function'
207
+ ? target.elementAtPoint(ev.x, ev.y)
208
+ : null;
209
+ for (; node; node = node.parent?.type === 'tag' ? node.parent : null) {
210
+ if (tagOf(node) === 'a' && attr(node, 'href') !== undefined)
211
+ return null;
212
+ if (tagOf(node) === 'button') {
213
+ return attr(node, 'disabled') === undefined ? node : null;
214
+ }
215
+ }
216
+ return null;
217
+ };
218
+ return {
219
+ onMouseDown: (ev) => {
220
+ press.current = onControlChange && ev.button === 1 ? buttonAt(ev) : null;
221
+ },
222
+ onMouseUp: (ev) => {
223
+ const pressed = press.current;
224
+ press.current = null;
225
+ if (!pressed || !onControlChange || ev.button !== 1)
226
+ return;
227
+ if (buttonAt(ev) !== pressed)
228
+ return;
229
+ onControlChange(pressed, attr(pressed, 'value') ?? '');
230
+ },
231
+ };
232
+ }
148
233
  // --- the widgets ------------------------------------------------------------
149
234
  /**
150
235
  * One form control, as a real widget at the rectangle layout reserved for it.
@@ -160,13 +245,16 @@ function renderControl(rect, look, touch, onChange) {
160
245
  const key = `${rect.kind}:${rect.x},${rect.y}`;
161
246
  const disabled = attr(el, 'disabled') !== undefined;
162
247
  const readOnly = attr(el, 'readonly') !== undefined;
248
+ // a field whose box the document draws takes its content box
249
+ const at = rect.bare ?? rect;
163
250
  const frame = {
164
251
  position: 'absolute',
165
- left: Math.round(rect.x),
166
- top: Math.round(rect.y),
167
- width: Math.round(rect.width),
168
- height: Math.round(rect.height),
252
+ left: Math.round(at.x),
253
+ top: Math.round(at.y),
254
+ width: Math.round(at.width),
255
+ height: Math.round(at.height),
169
256
  };
257
+ const field = rect.bare ? bareField(rect.bare) : fieldChrome(look);
170
258
  const report = (value) => {
171
259
  onChange?.(el, value);
172
260
  touch();
@@ -242,7 +330,7 @@ function renderControl(rect, look, touch, onChange) {
242
330
  // with whatever was last echoed into the DOM.
243
331
  widget = hx('textarea', {
244
332
  defaultValue: textareaValue(el),
245
- style: [fieldChrome(look), { width: '100%', height: '100%' }],
333
+ style: [field, { width: '100%', height: '100%' }],
246
334
  onChange: readOnly ? undefined : (ev) => reportText(ev.value),
247
335
  });
248
336
  break;
@@ -254,7 +342,7 @@ function renderControl(rect, look, touch, onChange) {
254
342
  // Core's word for a password field: nothing in it reaches a
255
343
  // selection, PRIMARY included.
256
344
  sensitive: type === 'password',
257
- style: [fieldChrome(look), { width: '100%', height: '100%' }],
345
+ style: [field, { width: '100%', height: '100%' }],
258
346
  onChange: readOnly
259
347
  ? undefined
260
348
  : (ev) => {
@@ -291,6 +379,24 @@ function fieldChrome(look) {
291
379
  fontSize: look.fontSize,
292
380
  };
293
381
  }
382
+ /**
383
+ * A text field whose box the author styled: the document draws the border
384
+ * and the background, so the widget draws neither, and its text is the
385
+ * element's colour and font, which the author chose to go on that
386
+ * background, rather than the theme's.
387
+ */
388
+ function bareField(bare) {
389
+ return {
390
+ backgroundColor: 'transparent',
391
+ borderWidth: 0,
392
+ borderRadius: 0,
393
+ paddingLeft: 0,
394
+ paddingRight: 0,
395
+ color: bare.color,
396
+ fontFamily: bare.fontFamily,
397
+ fontSize: bare.fontSize,
398
+ };
399
+ }
294
400
  function clearRadioGroup(el) {
295
401
  const name = attr(el, 'name');
296
402
  if (!name)
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/html/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/html/index.ts"],"names":[],"mappings":"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"}