@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,344 @@
1
+ // `calc()`, `min()`, `max()` and `clamp()` (CSS Values 4 10), read down to
2
+ // what a length here can hold: device pixels, or a percentage of what
3
+ // layout knows with pixels added (`Pct.px`) — every `calc()` that adds and
4
+ // scales, which is what documents write: `calc(100% - 2em)`. A comparison
5
+ // with a percentage in it, `min(100%, 600px)`, is a different sum at every
6
+ // width, and is kept as one (`Pct.of`) for layout to resolve; sums and
7
+ // scales distribute into it, so `calc(min(100%, 600px) - 2rem)` is
8
+ // `min(100% - 2rem, 600px - 2rem)`.
9
+ /**
10
+ * A math function's value as a length, or null where it is none — a
11
+ * number, a type that does not add up, a division by zero. `dimension`
12
+ * reads one `10px` or `2em` as this package's lengths do.
13
+ */
14
+ export function parseMath(value, dimension) {
15
+ const term = parseTerm(value, dimension);
16
+ if (!term || !isLength(term))
17
+ return null;
18
+ return toLen(term);
19
+ }
20
+ /** A math function's value as a number (`calc(1 + 0.5)`), or null. */
21
+ export function parseMathNumber(value) {
22
+ const term = parseTerm(value, () => null);
23
+ if (!term || term.kind !== 'linear' || term.length)
24
+ return null;
25
+ return censor(term.px);
26
+ }
27
+ function parseTerm(value, dimension) {
28
+ const tokens = tokenize(value);
29
+ if (!tokens)
30
+ return null;
31
+ const parser = new Parser(tokens, dimension);
32
+ const term = parser.value();
33
+ return term && parser.pos === tokens.length ? term : null;
34
+ }
35
+ function isLength(term) {
36
+ return term.kind === 'linear' ? term.length : true;
37
+ }
38
+ function toLen(term) {
39
+ if (term.kind === 'compare') {
40
+ const args = [];
41
+ for (const arg of term.args) {
42
+ const len = toLen(arg);
43
+ if (len === null)
44
+ return null;
45
+ args.push(len);
46
+ }
47
+ return { pct: 0, of: { max: term.max, args } };
48
+ }
49
+ if (!term.hasPct)
50
+ return censor(term.px);
51
+ return { pct: censor(term.pct), px: censor(term.px) };
52
+ }
53
+ const NUMBER = /^[+-]?(?:\d*\.\d+|\d+)(?:e[+-]?\d+)?/;
54
+ const CONSTANT = /^(?:-?infinity|nan|pi|e)(?![a-z0-9_(-])/;
55
+ const CONSTANTS = {
56
+ infinity: Infinity,
57
+ '-infinity': -Infinity,
58
+ nan: NaN,
59
+ pi: Math.PI,
60
+ e: Math.E,
61
+ };
62
+ /**
63
+ * What a calculation that is no finite number comes to (CSS Values 4,
64
+ * 10.9): NaN is 0, and an infinity the largest length there is — which,
65
+ * as in a browser, is still a length: a radius of it is a pill.
66
+ */
67
+ function censor(n) {
68
+ if (Number.isNaN(n))
69
+ return 0;
70
+ if (n === Infinity)
71
+ return LARGEST;
72
+ if (n === -Infinity)
73
+ return -LARGEST;
74
+ return n;
75
+ }
76
+ /** The largest length a browser holds, 2^25 pixels less a little: what a
77
+ * calculation's infinity comes to, and what any length is kept within
78
+ * (`parseLength`, `resolve`). */
79
+ export const LARGEST = 33554428;
80
+ function tokenize(text) {
81
+ const out = [];
82
+ let i = 0;
83
+ while (i < text.length) {
84
+ const c = text[i];
85
+ if (c === ' ' || c === '\t' || c === '\n' || c === '\r' || c === '\f') {
86
+ while (i < text.length && /[ \t\n\r\f]/.test(text[i]))
87
+ i += 1;
88
+ if (out.length && out[out.length - 1].t !== 'space') {
89
+ out.push({ t: 'space' });
90
+ }
91
+ continue;
92
+ }
93
+ if (c === '(') {
94
+ out.push({ t: 'open', fn: '' });
95
+ i += 1;
96
+ continue;
97
+ }
98
+ if (c === ')' || c === ',') {
99
+ if (out.length && out[out.length - 1].t === 'space')
100
+ out.pop();
101
+ out.push(c === ')' ? { t: 'close' } : { t: 'comma' });
102
+ i += 1;
103
+ continue;
104
+ }
105
+ if (c === '*' || c === '/') {
106
+ out.push({ t: 'op', value: c });
107
+ i += 1;
108
+ continue;
109
+ }
110
+ // a sign belongs to the number after it, as the tokenizer reads it:
111
+ // `1px -2px` is two values, and `1px - 2px` a difference
112
+ const m = NUMBER.exec(text.slice(i));
113
+ if (m) {
114
+ i += m[0].length;
115
+ const unit = /^(?:%|[a-z]+)/.exec(text.slice(i))?.[0] ?? '';
116
+ i += unit.length;
117
+ out.push({ t: 'num', value: Number(m[0]), unit });
118
+ continue;
119
+ }
120
+ const name = /^-?[a-z][a-z0-9-]*\(/.exec(text.slice(i))?.[0];
121
+ if (name) {
122
+ out.push({ t: 'open', fn: name.slice(0, -1) });
123
+ i += name.length;
124
+ continue;
125
+ }
126
+ // the numbers CSS Values 4 names (10.7.1): Tailwind 4 writes a pill's
127
+ // radius as `calc(infinity * 1px)`
128
+ const constant = CONSTANT.exec(text.slice(i))?.[0];
129
+ if (constant) {
130
+ out.push({ t: 'num', value: CONSTANTS[constant], unit: '' });
131
+ i += constant.length;
132
+ continue;
133
+ }
134
+ if (c === '+' || c === '-') {
135
+ out.push({ t: 'op', value: c });
136
+ i += 1;
137
+ continue;
138
+ }
139
+ return null;
140
+ }
141
+ return out;
142
+ }
143
+ class Parser {
144
+ tokens;
145
+ dimension;
146
+ pos = 0;
147
+ constructor(tokens, dimension) {
148
+ this.tokens = tokens;
149
+ this.dimension = dimension;
150
+ }
151
+ peek() {
152
+ return this.tokens[this.pos];
153
+ }
154
+ skipSpace() {
155
+ if (this.peek()?.t === 'space')
156
+ this.pos += 1;
157
+ }
158
+ /** A whole math function, `calc(…)` and the rest. */
159
+ value() {
160
+ this.skipSpace();
161
+ const open = this.peek();
162
+ if (open?.t !== 'open' || !open.fn)
163
+ return null;
164
+ const term = this.fn();
165
+ this.skipSpace();
166
+ return term;
167
+ }
168
+ fn() {
169
+ const open = this.tokens[this.pos];
170
+ this.pos += 1;
171
+ const fn = open.fn.replace(/^-webkit-/, '');
172
+ const args = [];
173
+ for (;;) {
174
+ const sum = this.sum();
175
+ if (!sum)
176
+ return null;
177
+ args.push(sum);
178
+ const next = this.peek();
179
+ if (next?.t === 'comma') {
180
+ this.pos += 1;
181
+ continue;
182
+ }
183
+ if (next?.t !== 'close')
184
+ return null;
185
+ this.pos += 1;
186
+ break;
187
+ }
188
+ switch (fn) {
189
+ case '':
190
+ case 'calc':
191
+ return args.length === 1 ? args[0] : null;
192
+ case 'min':
193
+ case 'max':
194
+ return compare(args, fn === 'max');
195
+ case 'clamp': {
196
+ if (args.length !== 3)
197
+ return null;
198
+ const upper = compare([args[1], args[2]], false);
199
+ return upper && compare([args[0], upper], true);
200
+ }
201
+ default:
202
+ return null;
203
+ }
204
+ }
205
+ sum() {
206
+ this.skipSpace();
207
+ let left = this.product();
208
+ if (!left)
209
+ return null;
210
+ for (;;) {
211
+ const at = this.pos;
212
+ // `+` and `-` need white space on both sides
213
+ if (this.peek()?.t !== 'space')
214
+ break;
215
+ this.pos += 1;
216
+ const op = this.peek();
217
+ if (op?.t !== 'op' || (op.value !== '+' && op.value !== '-')) {
218
+ this.pos = at;
219
+ break;
220
+ }
221
+ this.pos += 1;
222
+ if (this.peek()?.t !== 'space')
223
+ return null;
224
+ this.pos += 1;
225
+ const right = this.product();
226
+ if (!right)
227
+ return null;
228
+ left = add(left, right, op.value === '+' ? 1 : -1);
229
+ if (!left)
230
+ return null;
231
+ }
232
+ this.skipSpace();
233
+ return left;
234
+ }
235
+ product() {
236
+ let left = this.unit();
237
+ if (!left)
238
+ return null;
239
+ for (;;) {
240
+ const at = this.pos;
241
+ this.skipSpace();
242
+ const op = this.peek();
243
+ if (op?.t !== 'op' || (op.value !== '*' && op.value !== '/')) {
244
+ this.pos = at;
245
+ return left;
246
+ }
247
+ this.pos += 1;
248
+ this.skipSpace();
249
+ const right = this.unit();
250
+ if (!right)
251
+ return null;
252
+ if (op.value === '*') {
253
+ // one side a number, which scales the other
254
+ if (isNumber(left))
255
+ left = scale(right, left.px);
256
+ else if (isNumber(right))
257
+ left = scale(left, right.px);
258
+ else
259
+ return null;
260
+ }
261
+ else {
262
+ if (!isNumber(right) || right.px === 0)
263
+ return null;
264
+ left = scale(left, 1 / right.px);
265
+ }
266
+ }
267
+ }
268
+ unit() {
269
+ const token = this.peek();
270
+ if (!token)
271
+ return null;
272
+ if (token.t === 'open')
273
+ return this.fn();
274
+ if (token.t !== 'num')
275
+ return null;
276
+ this.pos += 1;
277
+ if (token.unit === '')
278
+ return linear(false, token.value, 0, false);
279
+ if (token.unit === '%')
280
+ return linear(true, 0, token.value, true);
281
+ const px = this.dimension(`${token.value}${token.unit}`);
282
+ return px === null ? null : linear(true, px, 0, false);
283
+ }
284
+ }
285
+ function linear(length, px, pct, hasPct) {
286
+ return { kind: 'linear', length, px, pct, hasPct };
287
+ }
288
+ function isNumber(term) {
289
+ return term.kind === 'linear' && !term.length;
290
+ }
291
+ /** `a + b`, or `a - b` for a sign of -1, distributed into a comparison. */
292
+ function add(a, b, sign) {
293
+ if (isLength(a) !== isLength(b))
294
+ return null;
295
+ if (a.kind === 'compare') {
296
+ const args = [];
297
+ for (const arg of a.args) {
298
+ const sum = add(arg, b, sign);
299
+ if (!sum)
300
+ return null;
301
+ args.push(sum);
302
+ }
303
+ return { kind: 'compare', max: a.max, args };
304
+ }
305
+ if (b.kind === 'compare') {
306
+ // `a - min(x, y)` is `max(a - x, a - y)`
307
+ const args = [];
308
+ for (const arg of b.args) {
309
+ const sum = add(a, arg, sign);
310
+ if (!sum)
311
+ return null;
312
+ args.push(sum);
313
+ }
314
+ return { kind: 'compare', max: sign === 1 ? b.max : !b.max, args };
315
+ }
316
+ return linear(a.length, a.px + sign * b.px, a.pct + sign * b.pct, a.hasPct || b.hasPct);
317
+ }
318
+ /** `term * k`, distributed into a comparison, which a negative `k` turns
319
+ * over. */
320
+ function scale(term, k) {
321
+ if (term.kind === 'compare') {
322
+ return {
323
+ kind: 'compare',
324
+ max: k < 0 ? !term.max : term.max,
325
+ args: term.args.map((arg) => scale(arg, k)),
326
+ };
327
+ }
328
+ // nought stays nought, so that an infinity scaling a length is not also
329
+ // a NaN of the percentage it has none of
330
+ return linear(term.length, term.px === 0 ? 0 : term.px * k, term.pct === 0 ? 0 : term.pct * k, term.hasPct);
331
+ }
332
+ /** `min()` or `max()` of terms of one type: a number where no percentage
333
+ * is among them, and a comparison for layout where one is. */
334
+ function compare(args, max) {
335
+ const length = isLength(args[0]);
336
+ if (args.some((a) => isLength(a) !== length))
337
+ return null;
338
+ if (args.every((a) => a.kind === 'linear' && !a.hasPct)) {
339
+ const values = args.map((a) => a.px);
340
+ return linear(length, max ? Math.max(...values) : Math.min(...values), 0, false);
341
+ }
342
+ return { kind: 'compare', max, args };
343
+ }
344
+ //# sourceMappingURL=calc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calc.js","sourceRoot":"","sources":["../../../src/html/css/calc.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,93 @@
1
1
  import type { Element } from 'domhandler';
2
2
  import type { Stylesheet } from './parse.js';
3
3
  import type { ComputedStyle, RootLook } from './style.js';
4
+ import type { FontFamilies } from '../fonts.js';
5
+ import { CounterStyles } from './counter-styles.js';
6
+ /** A style handed to every element with the same sharing key, and the key
7
+ * that element's children share under (`Cascade.sharedStyleFor`). */
8
+ export interface SharedStyle {
9
+ style: ComputedStyle;
10
+ key: number;
11
+ }
12
+ /**
13
+ * The compounds of a selector that test `:hover`, each without it (and
14
+ * without an `:active` beside it), and whether one is followed by a sibling
15
+ * combinator, which reaches the element's later siblings. `nested` where a
16
+ * `:hover` sits inside a functional pseudo-class — `:not(:hover)`,
17
+ * `:is(:hover)` — and reaches elements no compound names.
18
+ *
19
+ * A `:hover` in a compound's `:has()` is the one exception, since what it
20
+ * reaches is known: the compound, without its `:has()`, is an ancestor of
21
+ * the element the pointer is over — or an earlier sibling of it or of an
22
+ * ancestor, where the argument starts at a sibling (Selectors 4, 4.5). So
23
+ * it is given as an anchor (`has`) rather than making the rule `nested`.
24
+ *
25
+ * `:active` is not the pointer's here: nothing sets it (`setPointer` is
26
+ * handed none), so a selector that tests only it never changes as the
27
+ * pointer moves — Wikipedia's buttons' `:focus:not(:active)` among them.
28
+ * A press that sets it would have to be counted here too.
29
+ */
30
+ export declare function pointerCompounds(selector: string): {
31
+ compounds: string[];
32
+ siblings: boolean;
33
+ nested: boolean;
34
+ has: {
35
+ anchor: string;
36
+ siblings: boolean;
37
+ }[];
38
+ };
39
+ /** What `Cascade.firstLetterRules` found for an element. */
40
+ export interface FirstLetterRules {
41
+ readonly el: Element;
42
+ readonly candidates: readonly unknown[];
43
+ }
4
44
  /** What the pointer is over, for `:hover`. A chain rather than one element,
5
45
  * because `li:hover a` has to light up while the pointer is on the `li`. */
6
46
  export interface PointerState {
7
47
  hovered: ReadonlySet<Element>;
8
48
  active: ReadonlySet<Element>;
9
49
  }
50
+ /**
51
+ * The face a style's font-relative units are measured in: its family list,
52
+ * size, weight and slant, the four that pick one. A family's faces can be
53
+ * different fonts altogether — a page's `@font-face` rules may set its
54
+ * bold in another file — so an `ex` in bold text is the bold face's.
55
+ */
56
+ export interface MetricFace {
57
+ family: string;
58
+ size: number;
59
+ weight: number;
60
+ style: ComputedStyle['fontStyle'];
61
+ }
62
+ /** What a face measures, where the fonts can say. */
63
+ export type FaceMetric = (face: MetricFace) => number | null;
10
64
  /**
11
65
  * A cascade over a fixed set of stylesheets. Rebuilt when the sheets change;
12
66
  * re-run when the DOM, the viewport band or the pointer state does.
13
67
  */
14
68
  export declare class Cascade {
15
69
  private _index;
70
+ /** The rules for pseudo-elements, kept apart: they never style the
71
+ * element itself, and a document with none of them asks nothing. */
72
+ private _pseudo;
16
73
  private _adapter;
74
+ /** The compounds of the selectors that test the pointer, each without
75
+ * its `:hover` or `:active` (`pointerCompounds`), and their matchers,
76
+ * compiled when a pointer move first asks (`hoverTouches`). */
77
+ private _hoverCompounds;
78
+ private _hoverMatchers;
79
+ /** Whether a pointer move can be restyled where it happened
80
+ * (`HtmlViewNode._hoverInPlace`): false where a selector tests the
81
+ * pointer inside a functional pseudo-class, which reaches elements no
82
+ * compound names. */
83
+ hoverLocal: boolean;
84
+ /** Whether a compound that tests the pointer is followed by a sibling
85
+ * combinator, so an element's later siblings restyle with it. */
86
+ hoverSiblings: boolean;
87
+ /** The compounds whose `:has()` tests the pointer, each without it, and
88
+ * whether its argument starts at a sibling (`hoverAnchors`). */
89
+ private _hoverAnchors;
90
+ private _anchorMatchers;
17
91
  private _pointer;
18
92
  readonly initial: ComputedStyle;
19
93
  readonly look: RootLook;
@@ -27,20 +101,180 @@ export declare class Cascade {
27
101
  /** Every width at which some `@media` rule changes its mind, in CSS
28
102
  * pixels — the unit the author wrote them in. */
29
103
  readonly breakpoints: number[];
30
- constructor(sheets: Stylesheet[], look: RootLook, viewportWidth: number, viewportHeight: number, scale?: number);
104
+ /** The counter styles the sheets define, over the predefined ones. */
105
+ readonly counterStyles: CounterStyles;
106
+ /** A face's x-height, for `ex`, where the fonts can say. */
107
+ private _xHeightOf;
108
+ private _xHeights;
109
+ /** The advance of a face's "0", for `ch`, likewise. */
110
+ private _zeroWidthOf;
111
+ private _zeroWidths;
112
+ /** A face's own line height, for `lh` where `line-height` is `normal`,
113
+ * likewise. */
114
+ private _normalLineOf;
115
+ private _normalLines;
116
+ /** Whether any declaration sets a custom property or reads one: without
117
+ * one, no element's style asks about them. */
118
+ private _vars;
119
+ /** Whether any declaration is in a unit of the viewport's width — `vw`,
120
+ * `vmin`, `vmax` — or of its height, `vh` and the same two: a style
121
+ * holds such a length as a number, so it is computed again when that
122
+ * side of the viewport moves (`HtmlViewNode._update`). */
123
+ readsViewportWidth: boolean;
124
+ readsViewportHeight: boolean;
125
+ /** The families the document loads itself (`fonts.ts`), or null for a
126
+ * document with no `@font-face`. */
127
+ private _families;
128
+ private _mapFamilies;
129
+ /** Whether any declaration has a length in `lh` or `rlh`: only then is
130
+ * the line height settled ahead of the declarations that read it. */
131
+ private _lh;
132
+ constructor(sheets: Stylesheet[], look: RootLook, viewportWidth: number, viewportHeight: number, scale?: number, xHeight?: FaceMetric | null, zeroWidth?: FaceMetric | null, normalLine?: FaceMetric | null, families?: FontFamilies | null);
133
+ /** Whether declarations read the viewport's width or height (`vw`,
134
+ * `vh`, `vmin`, `vmax`), noted on the cascade. */
135
+ private _noteViewportUnits;
31
136
  /** Whether a pointer move can change what this cascade produces. */
32
137
  get hoverSensitive(): boolean;
33
138
  setPointer(pointer: PointerState): void;
139
+ /**
140
+ * Whether the pointer entering or leaving `el` can change a style: one of
141
+ * the compounds a selector tests the pointer in matches it, the pointer
142
+ * aside. A move between two paragraphs of a page whose only such rule is
143
+ * `a:hover` touches nothing, and restyles nothing.
144
+ */
145
+ hoverTouches(el: Element): boolean;
146
+ /**
147
+ * The elements whose `:has()` may have changed its answer as `el` was
148
+ * hovered or left: the ancestors of it a compound whose `:has()` tests
149
+ * the pointer names, and their earlier siblings and its own where the
150
+ * argument starts at a sibling — a superset, which is restyled and found
151
+ * the same where it did not. Into `into`.
152
+ */
153
+ hoverAnchors(el: Element, into: Element[]): void;
154
+ private _noteHover;
155
+ /** A selector compiled as a rule's is, or null where css-select refuses
156
+ * it, as a rule it refuses drops out of the cascade. */
157
+ private _compile;
34
158
  /** Which media band a device-pixel width falls in. Two widths in the same
35
159
  * band produce identical styles, which is what lets a resize skip
36
160
  * restyling. */
37
161
  mediaBand(width: number): number;
162
+ /** Computed styles by sharing key, for one build (`sharedStyleFor`): one
163
+ * map for the elements shared without matching, one for the elements
164
+ * shared by what they matched. */
165
+ private _shared;
166
+ private _sharedByMatch;
167
+ private _nextShareKey;
168
+ /** Custom property sets by what made them, for one build (`_customFor`). */
169
+ private _customs;
170
+ private _ids;
171
+ private _nextId;
172
+ /** A box tree is about to be built: the styles shared in the last build
173
+ * were computed against a pointer and a viewport that may have moved. */
174
+ beginSharing(): void;
175
+ /**
176
+ * An element's custom properties: its parent's, or its own over them —
177
+ * shared by every element whose parent has the same ones and whose own
178
+ * come from the same declarations. Tailwind 4 sets thirty-five of them on
179
+ * every element (`*, ::before, ::after { --tw-shadow: 0 0 #0000; … }`),
180
+ * and a set per element was a fifth of building the boxes; it also kept
181
+ * each element's `var()`s from being replaced once for its siblings,
182
+ * which `substituteIn` remembers by the set they were read against.
183
+ */
184
+ private _customFor;
185
+ /** Whether a candidate sets a custom property. */
186
+ private _hasCustom;
187
+ /** A number for an object, to key a string by. */
188
+ private _idOf;
189
+ /**
190
+ * `styleFor`, shared between the elements that must compute the same
191
+ * style, with the key this element's children share under.
192
+ *
193
+ * A style is a function of the parent's style, the rules that match, the
194
+ * presentational attributes, the inline style and whether the parent is a
195
+ * flex container. Outside the rules `UNSHAREABLE` names, what matches
196
+ * depends only on the element's tag and attributes and its ancestors', and
197
+ * the hints read nothing else either. So the key is the parent's key, the
198
+ * flex flag, the tag and every attribute — plus the pointer state where a
199
+ * rule asks for it — and an element whose key has been computed in this
200
+ * build takes that style object, matching nothing. A long document is a
201
+ * few kinds of element many times over: the benchmark's 600 KB report is
202
+ * 9,039 elements and 110 keys, and computing every style again was a third
203
+ * of an edit.
204
+ *
205
+ * An element a rule `UNSHAREABLE` could reach is matched, since where it
206
+ * sits decides what matches — and then shared by what matched: the same
207
+ * parent, attributes and rules make the same style. That is what keeps a
208
+ * striped table from being a style per row, and it keeps the key its
209
+ * children share under, which an element-per-key would have taken from the
210
+ * whole subtree.
211
+ *
212
+ * The style is handed out shared, so nothing may write to it — nothing
213
+ * does after the cascade, and `rootStyle` does not go through here.
214
+ */
215
+ sharedStyleFor(el: Element, parentStyle: ComputedStyle, parentKey: number, inFlexContainer: boolean): SharedStyle;
216
+ /** Whether no rule `UNSHAREABLE` names could reach this element: the same
217
+ * buckets `_candidates` looks in. */
218
+ private _shareable;
38
219
  /**
39
- * The computed style for one element, given its parent's. Called once per
40
- * element per style pass, in document order — the box builder drives it,
41
- * so there is no second traversal and no map of styles to allocate.
220
+ * The computed style for one element, given its parent's. The box builder
221
+ * asks for every element in document order, through `sharedStyleFor`, so
222
+ * a style is computed only for the elements with none to share.
42
223
  */
43
224
  styleFor(el: Element, parentStyle: ComputedStyle, inFlexContainer: boolean): ComputedStyle;
225
+ /**
226
+ * The style of an element's `::before` or `::after`, or null when it has
227
+ * none: no rule reaches it, or the rules that do leave `content` at
228
+ * `normal` or `none`, which make no box (CSS 2.1 12.2). It inherits from
229
+ * the element's own style, as a pseudo-element does, and a flex
230
+ * container's are flex items. Not shared: few elements have one, and where
231
+ * a rule gives every element one — a clearfix — the style is the cost of
232
+ * the box it makes.
233
+ */
234
+ pseudoStyleFor(el: Element, which: 'before' | 'after', elementStyle: ComputedStyle): ComputedStyle | null;
235
+ /**
236
+ * The rules for an element's `::first-letter`, or null when none reaches
237
+ * it. They are matched against the element here, and its style computed
238
+ * later by `firstLetterStyle`, because the pseudo-element inherits from
239
+ * the box its letter turns out to be in — a `<span>` the block opens with,
240
+ * a `::before` — which the builder has not reached yet.
241
+ */
242
+ firstLetterRules(el: Element): FirstLetterRules | null;
243
+ /** Whether any rule styles a `::first-line`: a document with none asks
244
+ * nothing more of its blocks. */
245
+ get hasFirstLine(): boolean;
246
+ /**
247
+ * A list item's `::marker` style, inheriting from its own, or null when no
248
+ * rule reaches it (CSS Lists 3, 3.1): the colour and the font a bullet or
249
+ * a number is set in, and a `content` it is set as instead.
250
+ */
251
+ markerStyle(el: Element, style: ComputedStyle): ComputedStyle | null;
252
+ /**
253
+ * An element's `::first-line` style, inheriting from its own, or null
254
+ * when no rule reaches it (CSS 2.1 5.12.1).
255
+ */
256
+ firstLineStyle(el: Element, style: ComputedStyle): ComputedStyle | null;
257
+ /**
258
+ * The style of a `::first-letter` inside a box of `parentStyle`. It is an
259
+ * inline box, or a float where it floats, whatever the rules say of its
260
+ * `display` or its `position` (CSS 2.1 5.12.2).
261
+ */
262
+ firstLetterStyle(rules: FirstLetterRules, parentStyle: ComputedStyle): ComputedStyle;
263
+ /** The x-height of a style's font: the font's own, asked once per face,
264
+ * or half an em. */
265
+ private _exOf;
266
+ /** The advance of a style's font's "0": the font's own, asked once per
267
+ * face, or half an em. */
268
+ private _chOf;
269
+ /** A style's computed line height as a length, for `lh`: `normal` as
270
+ * its font's own, asked once per face, or 1.2em. */
271
+ private _lineHeightOf;
272
+ /** `styleFor`, from the rules and hints already gathered for `el`. */
273
+ private _computeStyle;
274
+ /** One declaration, its `var()`s replaced first. One that names a
275
+ * custom property with no value, and has no fallback, is invalid at
276
+ * computed-value time, and the property is as though `unset`. */
277
+ private _apply;
44
278
  /**
45
279
  * The root's style — nothing above it to inherit from.
46
280
  *
@@ -49,9 +283,31 @@ export declare class Cascade {
49
283
  * a `<body>` would have had: the UA sheet's margin and font, and any
50
284
  * author `body { … }` rule. Without it a fragment renders hard against the
51
285
  * left edge while the same markup inside `<html><body>` does not, which
52
- * reads as a bug in the renderer rather than as a missing element.
286
+ * reads as a bug in the renderer rather than as a missing element. With
287
+ * no `<html>` either, the body inherits from an `<html>` that author
288
+ * `html { … }` rules have styled, as the one a browser implies would be.
289
+ *
290
+ * A document with a `<body>` and no `<html>` — the usual shape of a page
291
+ * that starts `<!DOCTYPE html><title>` — has the root box standing in for
292
+ * that implied `<html>` instead, so an `html { font-size }` still reaches
293
+ * the body. Taken as the initial style, the rule matched nothing and the
294
+ * whole page came out at the theme's size.
295
+ *
296
+ * `html` is the implied `<html>`'s own style where the root box stands in
297
+ * for the body inside it, and null otherwise: what an `html { … }` or a
298
+ * `:root { … }` rule gives it that is not inherited has no box to be
299
+ * drawn on, and its background is the canvas's (`paintDocument`).
53
300
  */
54
- rootStyle(hasBody: boolean): ComputedStyle;
301
+ rootStyle(hasBody: boolean, hasHtml?: boolean): {
302
+ style: ComputedStyle;
303
+ html: ComputedStyle | null;
304
+ };
305
+ /** The rules of `index` that match `el`, pushed onto `out` as candidates,
306
+ * and their ids onto `matched` in the order they were tried. */
307
+ private _matchInto;
308
+ /** Every rule and hint that applies to `el`, in cascade order — and, into
309
+ * `matched` when it is passed, the ids of the rules, in the order they
310
+ * were tried. */
55
311
  private _candidates;
56
312
  }
57
313
  //# sourceMappingURL=cascade.d.ts.map