@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
@@ -9,6 +9,8 @@
9
9
  // stop at the first line whose entry state is unchanged), and it costs zero
10
10
  // dependencies. Real parsers plug in through the same `Language` interface —
11
11
  // see `./lezer.ts`.
12
+ import { spliceAll } from '../internal/splice.js';
13
+ import { startTimeout, stopTimeout } from './timers.js';
12
14
  /**
13
15
  * One line of text with a cursor, the surface a mode's `token()` reads
14
16
  * through. The mode consumes some characters and names their token type;
@@ -91,6 +93,53 @@ export class StringStream {
91
93
  return this.string.slice(this.start, this.pos);
92
94
  }
93
95
  }
96
+ /**
97
+ * How much of one line is tokenized; the rest of a longer one is drawn
98
+ * unstyled, and the next line starts from the state where this one was cut.
99
+ * CodeMirror's `maxHighlightLength`, and for the same reason: a line is
100
+ * tokenized again whole on every edit to it, and a minified file is one
101
+ * line — a keystroke at the end of a million characters ran the language
102
+ * over all of them. A construct that opens past the cut and closes on a
103
+ * later line is the price, on lines no one reads by their colours.
104
+ */
105
+ export const TOKENIZE_LIMIT = 10_000;
106
+ /**
107
+ * How far past the frontier a request walks it on the spot. Further than
108
+ * that — the end of a file opened a moment ago, a line a search jumped to —
109
+ * the line is tokenized from a guessed state, and the frontier is walked
110
+ * there in the background, `SLICE_LINES` a turn, with the host told where a
111
+ * guess was wrong. CodeMirror 5's answer to the same jump, for the same
112
+ * reason: tokenizing a 50,000-line file is a fifth of a second, spent on
113
+ * lines no one is looking at. Decided by the distance rather than by trying:
114
+ * the lines a guess would take from the cache are the ones the walk would
115
+ * have found converged, and trying first is the cost this exists to avoid.
116
+ */
117
+ export const SYNC_LINES = 1_000;
118
+ const SLICE_LINES = 500;
119
+ /** How far above a guessed line to look for a state to start from: one a
120
+ * guess left, or else the least indented line, taken to be at the top
121
+ * level (CodeMirror's `findStartLine`). */
122
+ const GUESS_LOOKBACK = 100;
123
+ function cut(text) {
124
+ return text.length > TOKENIZE_LIMIT ? text.slice(0, TOKENIZE_LIMIT) : text;
125
+ }
126
+ function indentOf(text) {
127
+ let n = 0;
128
+ while (n < text.length && (text[n] === ' ' || text[n] === '\t'))
129
+ n++;
130
+ return n;
131
+ }
132
+ function sameTokens(a, b) {
133
+ if (a.length !== b.length)
134
+ return false;
135
+ for (let i = 0; i < a.length; i++) {
136
+ const x = a[i];
137
+ const y = b[i];
138
+ if (x.from !== y.from || x.to !== y.to || x.type !== y.type)
139
+ return false;
140
+ }
141
+ return true;
142
+ }
94
143
  function defaultCopy(state) {
95
144
  if (state === null || typeof state !== 'object')
96
145
  return state;
@@ -128,19 +177,43 @@ function defaultEquals(a, b) {
128
177
  * lines. The `undefined` holes are also what makes convergence sound across
129
178
  * multiple pending edits: the fast-forward below can never skip over a line
130
179
  * whose text changed, because that line's cache is a hole.
180
+ *
181
+ * A guess (`guess`) is one more such pair past the frontier: tokens run
182
+ * from a state that was not reached from line 0. Convergence is what makes
183
+ * that safe as well — the frontier's walk takes the rest of a guessed run
184
+ * as it is where it arrives with the same state, and tokenizes it again
185
+ * where it does not.
131
186
  */
132
187
  class StreamTokenizer {
133
188
  mode;
189
+ host;
134
190
  lines = [''];
135
191
  /** states[i] = state entering line i. Trusted for i <= frontier; a
136
- * defined entry beyond that is a pre-edit value, used only as a
137
- * convergence candidate. */
192
+ * defined entry beyond that is a pre-edit value or a guess, used only as
193
+ * a convergence candidate. Past the frontier every defined `tokens[i]` was
194
+ * run from the `states[i]` beside it. */
138
195
  states = [];
139
196
  tokens = [];
140
197
  /** Lines `[0, frontier)` have trusted tokens. */
141
198
  frontier = 0;
142
- constructor(mode) {
199
+ /** The furthest line answered from a guess that the frontier has not
200
+ * reached; -1 when there is none. While there is one, every line past
201
+ * the frontier is answered the same way. */
202
+ guessedTo = -1;
203
+ worker = null;
204
+ /** The first line whose trusted tokens differed from the ones it had —
205
+ * what the host is told after a turn of the walk. */
206
+ changedFrom = -1;
207
+ /**
208
+ * Tokens taken out of `tokens` because the state entering their line was
209
+ * replaced — kept, by line, for the comparison `run` makes when the line
210
+ * is run again, and out of the array so that nothing takes them as the
211
+ * line's meanwhile. See `edit` for how a line gets here.
212
+ */
213
+ stale = new Map();
214
+ constructor(mode, host = null) {
143
215
  this.mode = mode;
216
+ this.host = host;
144
217
  }
145
218
  setLines(lines) {
146
219
  this.lines = lines;
@@ -148,31 +221,87 @@ class StreamTokenizer {
148
221
  this.tokens = new Array(lines.length);
149
222
  this.states[0] = this.mode.startState();
150
223
  this.frontier = 0;
224
+ this.guessedTo = -1;
225
+ this.stale.clear();
226
+ this.stopWorker();
151
227
  }
152
228
  edit({ fromLine, removed, inserted }) {
153
229
  // Align the caches below the edit with the new line numbering (their
154
230
  // contents may still be right — convergence will decide), and punch
155
231
  // `undefined` holes for the lines whose text actually changed.
156
- this.states.splice(fromLine + 1, removed, ...new Array(inserted));
157
- this.tokens.splice(fromLine, removed, ...new Array(inserted));
232
+ //
233
+ // …all but one: the state entering the first line after the edit is
234
+ // put back at that line's new number. It is what convergence compares
235
+ // the edit's outgoing state with, paired with the tokens that line
236
+ // still has — punched out with the rest, every edit re-tokenized the
237
+ // line after it too, and handed back a new token array for text that
238
+ // had not changed.
239
+ const after = this.states[fromLine + removed];
240
+ spliceAll(this.states, fromLine + 1, removed, new Array(inserted));
241
+ if (inserted > 0)
242
+ this.states[fromLine + inserted] = after;
243
+ spliceAll(this.tokens, fromLine, removed, new Array(inserted));
244
+ const shift = inserted - removed;
245
+ if (this.stale.size > 0) {
246
+ const moved = new Map();
247
+ for (const [line, held] of this.stale) {
248
+ if (line < fromLine)
249
+ moved.set(line, held);
250
+ else if (line >= fromLine + removed)
251
+ moved.set(line + shift, held);
252
+ }
253
+ this.stale = moved;
254
+ }
255
+ // A walk that stops leaves the frontier's line with the state it gave
256
+ // it and the tokens it had before, from another: harmless while the
257
+ // frontier is there, since that line is the first one run. An edit
258
+ // above it moves the frontier back past it, and convergence would then
259
+ // take its tokens as the line's — the line under the view, once a
260
+ // comment opened in it, kept its colours from before and showed them
261
+ // the moment it was scrolled to. They are set aside instead.
262
+ const frontier = this.frontier;
263
+ if (fromLine < frontier && frontier >= fromLine + removed) {
264
+ this.setAside(frontier + shift);
265
+ }
158
266
  this.frontier = Math.min(this.frontier, fromLine);
267
+ if (this.guessedTo >= fromLine) {
268
+ this.guessedTo = Math.max(fromLine, this.guessedTo + inserted - removed);
269
+ }
159
270
  }
160
271
  lineTokens(line) {
161
272
  if (line < 0 || line >= this.lines.length)
162
273
  return [];
163
- this.ensure(line);
274
+ if (line >= this.frontier) {
275
+ if (this.guessedTo >= 0 || line - this.frontier > SYNC_LINES) {
276
+ return this.guess(line);
277
+ }
278
+ this.ensure(line);
279
+ // the caller has the tokens: nobody else was holding the old ones
280
+ this.changedFrom = -1;
281
+ }
164
282
  return this.tokens[line] ?? [];
165
283
  }
166
- ensure(line) {
284
+ dispose() {
285
+ this.stopWorker();
286
+ }
287
+ /**
288
+ * Walk the frontier to `line`, tokenizing at most `budget` lines on the
289
+ * way (a converged run skipped is free). False when the budget ran out
290
+ * first.
291
+ */
292
+ ensure(line, budget = Infinity) {
167
293
  const copy = this.mode.copyState ?? defaultCopy;
168
294
  const equals = this.mode.stateEquals ?? defaultEquals;
295
+ let spent = 0;
169
296
  while (this.frontier <= line) {
297
+ if (spent++ >= budget)
298
+ return false;
170
299
  const i = this.frontier;
171
300
  // `states[i]` is trusted here: it is either below the old frontier or
172
301
  // was written by the previous iteration. Copy before running — the
173
302
  // mode mutates in place, and the cached entry must stay pristine.
174
303
  const state = copy(this.states[i]);
175
- this.tokens[i] = this.mode.runLine(this.lines[i], state);
304
+ this.tokens[i] = this.run(i, state);
176
305
  const cached = this.states[i + 1];
177
306
  if (cached !== undefined &&
178
307
  this.tokens[i + 1] !== undefined &&
@@ -193,6 +322,127 @@ class StreamTokenizer {
193
322
  this.states[i + 1] = state;
194
323
  this.frontier = i + 1;
195
324
  }
325
+ return true;
326
+ }
327
+ /**
328
+ * Tokens for a line past the frontier, where the frontier is too far to
329
+ * walk to now: walked from the furthest state up the `GUESS_LOOKBACK`
330
+ * lines above it — the frontier's, when it is that close, or one a guess
331
+ * or an edit left — or, when there is none, from the language's start
332
+ * state at the least indented of those lines. The walk runs what has no
333
+ * tokens and passes over what has, so an edit's line is run again and the
334
+ * lines under it follow, the way the frontier walks after an edit; a line
335
+ * whose entering state it changes loses its tokens, since they ran from
336
+ * the state it replaced. What it writes are pairs like any other past the
337
+ * frontier, which the frontier's walk, started here, takes or tokenizes
338
+ * again when it arrives.
339
+ */
340
+ guess(line) {
341
+ this.guessedTo = Math.max(this.guessedTo, line);
342
+ this.schedule();
343
+ const floor = Math.max(this.frontier, line - GUESS_LOOKBACK);
344
+ let from = floor;
345
+ while (from < line && this.states[from] === undefined)
346
+ from++;
347
+ if (this.states[from] === undefined) {
348
+ let least = Infinity;
349
+ for (let i = line; i >= floor; i--) {
350
+ const text = this.lines[i];
351
+ const indent = indentOf(text);
352
+ if (indent === text.length)
353
+ continue; // blank says nothing
354
+ if (indent < least) {
355
+ least = indent;
356
+ from = i;
357
+ }
358
+ }
359
+ this.states[from] = this.mode.startState();
360
+ this.tokens[from] = undefined;
361
+ }
362
+ const copy = this.mode.copyState ?? defaultCopy;
363
+ const equals = this.mode.stateEquals ?? defaultEquals;
364
+ // whether the state entering line `i` was just replaced, so its tokens
365
+ // ran from another and it is run again, beside what it had
366
+ let moved = false;
367
+ for (let i = from; i <= line; i++) {
368
+ // a pair past the frontier ran from the state beside it; the
369
+ // frontier's may be from before the walk replaced its state
370
+ if (!moved &&
371
+ i > this.frontier &&
372
+ this.tokens[i] !== undefined &&
373
+ this.states[i + 1] !== undefined) {
374
+ continue;
375
+ }
376
+ const state = copy(this.states[i]);
377
+ this.tokens[i] = this.run(i, state);
378
+ const next = this.states[i + 1];
379
+ moved = next === undefined || !equals(state, next);
380
+ if (moved)
381
+ this.states[i + 1] = state;
382
+ }
383
+ // past the line asked about, what ran from a replaced state is set
384
+ // aside: run again when asked for, and compared with what it had then
385
+ if (moved)
386
+ this.setAside(line + 1);
387
+ return this.tokens[line] ?? [];
388
+ }
389
+ /**
390
+ * Run line `i` from `state`, which it leaves as the line leaves it. The
391
+ * tokens it had, when they come out the same, are kept rather than
392
+ * replaced — an editor holds a line's layout by them — and where they do
393
+ * not, the line is noted for the host.
394
+ */
395
+ run(i, state) {
396
+ let had = this.tokens[i];
397
+ if (had === undefined && this.stale.size > 0) {
398
+ had = this.stale.get(i);
399
+ this.stale.delete(i);
400
+ }
401
+ const tokens = this.mode.runLine(cut(this.lines[i]), state);
402
+ if (had === undefined)
403
+ return tokens;
404
+ if (sameTokens(had, tokens))
405
+ return had;
406
+ this.noteChange(i);
407
+ return tokens;
408
+ }
409
+ /** Take line `i`'s tokens out: the state entering it was replaced. */
410
+ setAside(i) {
411
+ const held = this.tokens[i];
412
+ if (held === undefined)
413
+ return;
414
+ this.tokens[i] = undefined;
415
+ this.stale.set(i, held);
416
+ }
417
+ noteChange(i) {
418
+ if (this.changedFrom < 0 || i < this.changedFrom)
419
+ this.changedFrom = i;
420
+ }
421
+ schedule() {
422
+ if (this.worker != null)
423
+ return;
424
+ this.worker = startTimeout(() => this.work(), 0);
425
+ }
426
+ /** One turn of the walk to the furthest guess, and the host told of the
427
+ * first line it found a guess wrong on. */
428
+ work() {
429
+ this.worker = null;
430
+ if (this.guessedTo < 0)
431
+ return;
432
+ const to = Math.min(this.guessedTo, this.lines.length - 1);
433
+ const done = this.ensure(to, SLICE_LINES);
434
+ const changed = this.changedFrom;
435
+ this.changedFrom = -1;
436
+ if (done)
437
+ this.guessedTo = -1;
438
+ else
439
+ this.schedule();
440
+ if (changed >= 0)
441
+ this.host?.invalidate(changed);
442
+ }
443
+ stopWorker() {
444
+ stopTimeout(this.worker);
445
+ this.worker = null;
196
446
  }
197
447
  }
198
448
  /** Run one line of a character-level mode, merging same-type runs. */
@@ -226,7 +476,7 @@ export function lineModeLanguage(mode) {
226
476
  return {
227
477
  name: mode.name,
228
478
  data: mode.languageData,
229
- createTokenizer: () => new StreamTokenizer(mode),
479
+ createTokenizer: (host) => new StreamTokenizer(mode, host),
230
480
  };
231
481
  }
232
482
  /** Wrap a {@link StreamMode} as a {@link Language}. */
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/code-language/stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../src/code-language/stream.ts"],"names":[],"mappings":"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"}
@@ -51,10 +51,11 @@ export interface LineEdit {
51
51
  }
52
52
  /**
53
53
  * What the editor hands an engine at creation time. `invalidate(fromLine)`
54
- * is for engines that tokenize asynchronously (Lezer reparsing on a debounce,
55
- * an LSP answering semantic tokens): call it when lines at or below
56
- * `fromLine` have new tokens, and the editor repaints and pulls again.
57
- * Synchronous engines never need it.
54
+ * is for tokens that change after they were asked for (Lezer reparsing on a
55
+ * debounce, an LSP answering semantic tokens, the stream engine correcting a
56
+ * line it answered from a guess): call it when lines at or below `fromLine`
57
+ * have new tokens, and the editor repaints and pulls again. An engine that
58
+ * only ever answers exactly never needs it.
58
59
  */
59
60
  export interface TokenizerHost {
60
61
  invalidate(fromLine: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/code-language/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/code-language/types.ts"],"names":[],"mappings":"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"}
@@ -61,9 +61,33 @@ export interface CodeBlockRunOptions {
61
61
  /** The source as `<richtext>` runs: tokenized, then given the mono font.
62
62
  * The runs concatenate back to exactly `source`. */
63
63
  export declare function codeBlockRuns(source: string, look: CodeBlockLook, options?: CodeBlockRunOptions): TextRun[];
64
+ /**
65
+ * `codeBlockRuns` kept between calls, for a block of code that changes a
66
+ * little at a time — a fence being streamed, a source being appended to:
67
+ * the tokenizer is told which lines changed and the rest keep their runs
68
+ * (`CodeRunCache`). Call `dispose()` when done with it.
69
+ */
70
+ export declare class CodeBlockRunCache {
71
+ private cache;
72
+ private family;
73
+ private size;
74
+ runs(source: string, look: CodeBlockLook, options?: CodeBlockRunOptions): TextRun[];
75
+ dispose(): void;
76
+ }
64
77
  /** The block's own box: fill, radius, padding. What surrounds it — a row
65
78
  * with a gutter, a column in a document — is the component's. */
66
79
  export declare function codeBlockStyle(look: CodeBlockLook): Style;
67
- /** The style the runs are laid out with, in both components. */
68
- export declare function codeTextStyle(look: CodeBlockLook): Style;
80
+ /**
81
+ * The style the runs are laid out with, in both components — `wrap` as the
82
+ * `<richtext>` is given it.
83
+ *
84
+ * Unwrapped, the text is as wide as its longest line, and at least as wide
85
+ * as its viewport. Stretched to the viewport, as a column stretches what it
86
+ * holds, its box held none of a line past the viewport's edge: the viewport
87
+ * had nothing to scroll to, and core, asked whether the text reached past
88
+ * the viewport, heard that it did not and left it unclipped — so a fence,
89
+ * with nothing round it to clip it either, drew the rest of a long line
90
+ * across whatever stood beside the document.
91
+ */
92
+ export declare function codeTextStyle(look: CodeBlockLook, wrap?: boolean): Style;
69
93
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codeblock/index.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;0CAE0C;AAC1C,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,MAAM,EAAE,WAAW,CAAC;IACpB,4DAA4D;IAC5D,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACpD;AAED,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;uDACmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;cAEc;AACd,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAKtC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,GAAE,oBAAyB,GACjC,aAAa,CAmBf;AAED,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;iFAC6E;IAC7E,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC;IACnD,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;qDACqD;AACrD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACnB,OAAO,GAAE,mBAAwB,GAChC,OAAO,EAAE,CASX;AAED;kEACkE;AAClE,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,KAAK,CAMzD;AAED,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,KAAK,CAExD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/codeblock/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C;;0CAE0C;AAC1C,eAAO,MAAM,gBAAgB,OAAO,CAAC;AAErC,uEAAuE;AACvE,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,MAAM,EAAE,WAAW,CAAC;IACpB,4DAA4D;IAC5D,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;CACpD;AAED,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;uDACmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;cAEc;AACd,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAKtC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,GAAE,oBAAyB,GACjC,aAAa,CAmBf;AAED,MAAM,WAAW,mBAAmB;IAClC,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;iFAC6E;IAC7E,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,QAAQ,GAAG,IAAI,CAAC;IACnD,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;qDACqD;AACrD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACnB,OAAO,GAAE,mBAAwB,GAChC,OAAO,EAAE,CASX;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,IAAI,CAAqB;IAEjC,IAAI,CACF,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,EACnB,OAAO,GAAE,mBAAwB,GAChC,OAAO,EAAE,CAoBX;IAED,OAAO,IAAI,IAAI,CAGd;CACF;AAED;kEACkE;AAClE,wBAAgB,cAAc,CAAC,IAAI,EAAE,aAAa,GAAG,KAAK,CAMzD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,UAAO,GAAG,KAAK,CAQrE"}
@@ -15,7 +15,7 @@
15
15
  // A shared module, not a component: no element registration, no React, and
16
16
  // nothing imported from either of its consumers (a component never imports
17
17
  // another component).
18
- import { codeRuns, autoTokenStyles } from '../code-language/index.js';
18
+ import { codeRuns, autoTokenStyles, CodeRunCache, } from '../code-language/index.js';
19
19
  import { tint } from 'react-x11/style';
20
20
  /** Code is set tighter than prose: the lines are short and the shapes are
21
21
  * what is being read. One value, so a fenced block and a `<Code>` in the
@@ -69,6 +69,42 @@ export function codeBlockRuns(source, look, options = {}) {
69
69
  resolveToken: look.resolveToken,
70
70
  }).map((run) => ({ ...run, family: look.family, size: look.size }));
71
71
  }
72
+ /**
73
+ * `codeBlockRuns` kept between calls, for a block of code that changes a
74
+ * little at a time — a fence being streamed, a source being appended to:
75
+ * the tokenizer is told which lines changed and the rest keep their runs
76
+ * (`CodeRunCache`). Call `dispose()` when done with it.
77
+ */
78
+ export class CodeBlockRunCache {
79
+ cache = null;
80
+ family;
81
+ size;
82
+ runs(source, look, options = {}) {
83
+ if (!this.cache || this.family !== look.family || this.size !== look.size) {
84
+ this.cache?.dispose();
85
+ const { family, size } = look;
86
+ this.family = family;
87
+ this.size = size;
88
+ this.cache = new CodeRunCache((run) => ({
89
+ ...run,
90
+ family,
91
+ size,
92
+ }));
93
+ }
94
+ const { lang = '', language, resolveLanguage, highlight = true } = options;
95
+ return this.cache.runs(source, highlight ? lang : '', {
96
+ styles: look.styles,
97
+ color: look.color,
98
+ ...(highlight && language ? { language } : null),
99
+ ...(highlight && resolveLanguage ? { resolveLanguage } : null),
100
+ resolveToken: look.resolveToken,
101
+ });
102
+ }
103
+ dispose() {
104
+ this.cache?.dispose();
105
+ this.cache = null;
106
+ }
107
+ }
72
108
  /** The block's own box: fill, radius, padding. What surrounds it — a row
73
109
  * with a gutter, a column in a document — is the component's. */
74
110
  export function codeBlockStyle(look) {
@@ -78,8 +114,25 @@ export function codeBlockStyle(look) {
78
114
  padding: look.padding,
79
115
  };
80
116
  }
81
- /** The style the runs are laid out with, in both components. */
82
- export function codeTextStyle(look) {
83
- return { lineHeight: look.lineHeight };
117
+ /**
118
+ * The style the runs are laid out with, in both components — `wrap` as the
119
+ * `<richtext>` is given it.
120
+ *
121
+ * Unwrapped, the text is as wide as its longest line, and at least as wide
122
+ * as its viewport. Stretched to the viewport, as a column stretches what it
123
+ * holds, its box held none of a line past the viewport's edge: the viewport
124
+ * had nothing to scroll to, and core, asked whether the text reached past
125
+ * the viewport, heard that it did not and left it unclipped — so a fence,
126
+ * with nothing round it to clip it either, drew the rest of a long line
127
+ * across whatever stood beside the document.
128
+ */
129
+ export function codeTextStyle(look, wrap = true) {
130
+ return wrap
131
+ ? { lineHeight: look.lineHeight }
132
+ : {
133
+ lineHeight: look.lineHeight,
134
+ alignSelf: 'flex-start',
135
+ minWidth: '100%',
136
+ };
84
137
  }
85
138
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codeblock/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/codeblock/index.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,18 @@ interface LayoutLike {
3
3
  width: number;
4
4
  height: number;
5
5
  draw(ctx: unknown, x: number, y: number): void;
6
+ /** The engine's own coverage of the layout, one byte a device pixel, with
7
+ * `pad` round its box — where the engine answers it (react-x11#673). */
8
+ coverage?(options?: {
9
+ pad?: number;
10
+ }): TextCoverage | null;
11
+ }
12
+ /** A layout's coverage: `width` × `height` bytes, the layout's origin at
13
+ * (pad, pad). */
14
+ export interface TextCoverage {
15
+ width: number;
16
+ height: number;
17
+ data: Uint8Array;
6
18
  }
7
19
  /** One shaped string, kept between frames. `width` and `height` are
8
20
  * logical; the layout itself was shaped at device size. */
@@ -39,6 +51,14 @@ export interface PainterOptions {
39
51
  * no amount of batching on the wire would have fixed.
40
52
  */
41
53
  cache: Map<string, CachedText>;
54
+ /**
55
+ * While a zoom gesture moves: a label may be drawn from a layout shaped
56
+ * at another size, scaled to the one asked for, rather than shaped again
57
+ * at every step. The pane sets it only where the context scales text
58
+ * with its transform (`scalesText`), and paints the exact sizes once the
59
+ * gesture rests.
60
+ */
61
+ approximateText?: boolean;
42
62
  }
43
63
  /**
44
64
  * A logical value on the device grid.
@@ -50,10 +70,40 @@ export interface PainterOptions {
50
70
  * of a bezier's control point is not something to snap.
51
71
  */
52
72
  export declare function toDevice(value: number, scale: number): number;
73
+ /**
74
+ * `Math.round` for a place on the device grid, deaf to floating-point noise
75
+ * at a half. A pan moves the graph by whole device pixels, and its blit
76
+ * takes a shift within a hair of whole as whole (`toDevice`: the viewport
77
+ * `-66.4` panned 27 down is `-39.400000000000006`). A place worked out from
78
+ * the new viewport can then sit a hair below the half the old one sat on,
79
+ * or above it, and round the other way — a node or a label a pixel from
80
+ * where the copy put it. Nudged past any such hair, a half rounds up on
81
+ * both sides of the blit.
82
+ */
83
+ export declare function snapToGrid(value: number): number;
84
+ /**
85
+ * Text metrics without a drawing context. The pane needs these *outside* a
86
+ * repaint — a node with no explicit size is measured when the graph changes,
87
+ * which is also when a hit test has to know how big it is — so measuring
88
+ * cannot live behind the painter the way drawing does.
89
+ *
90
+ * Exported for the GL renderer's label atlas (`./gl/text.ts`), which draws
91
+ * the layout it measured onto a staging surface of its own.
92
+ */
93
+ export declare function shape(opts: PainterOptions, text: string, options: TextOptions | undefined): CachedText | null;
53
94
  export declare function measureText(opts: PainterOptions, text: string, options?: TextOptions): {
54
95
  width: number;
55
96
  height: number;
56
97
  };
98
+ /**
99
+ * Cut a string to fit `max` logical pixels, with an ellipsis. Linear from
100
+ * the end rather than a binary search: labels that need it are short, and
101
+ * the widths it walks through are the ones the cache already holds.
102
+ *
103
+ * Both renderers call this, so a label cut on one is cut the same on the
104
+ * other — the GL one sets whatever this returns as a raster.
105
+ */
106
+ export declare function fitText(opts: PainterOptions, text: string, options: TextOptions | undefined, max: number): string;
57
107
  /**
58
108
  * A painter over this context, or `null` when the backend cannot draw paths
59
109
  * — which is the signal to skip drawing entirely rather than to throw.
@@ -1 +1 @@
1
- {"version":3,"file":"draw.d.ts","sourceRoot":"","sources":["../../src/flow/draw.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,WAAW,EAGX,WAAW,EAEZ,MAAM,YAAY,CAAC;AA0BpB,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChD;AAED;2DAC2D;AAC3D,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,qDAAqD;AACrD,MAAM,WAAW,SAAS;IACxB,MAAM,CACJ,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAChD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,UAAU,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;;OASG;IACH,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CAChC;AAYD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI7D;AAkDD,wBAAgB,WAAW,CACzB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,GACpB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CASnC;AA+RD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,cAAc,GACtB,WAAW,GAAG,IAAI,CAGpB"}
1
+ {"version":3,"file":"draw.d.ts","sourceRoot":"","sources":["../../src/flow/draw.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,WAAW,EAGX,WAAW,EAEZ,MAAM,YAAY,CAAC;AA4BpB,UAAU,UAAU;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C;6EACyE;IACzE,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,YAAY,GAAG,IAAI,CAAC;CAC5D;AAED;kBACkB;AAClB,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;CAClB;AAED;2DAC2D;AAC3D,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,qDAAqD;AACrD,MAAM,WAAW,SAAS;IACxB,MAAM,CACJ,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAChD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,UAAU,CAAC;CACf;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;;;;;;OASG;IACH,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC/B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAmBD;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAI7D;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEhD;AAiBD;;;;;;;;GAQG;AACH,wBAAgB,KAAK,CACnB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,GAAG,SAAS,GAC/B,UAAU,GAAG,IAAI,CA8BnB;AAqCD,wBAAgB,WAAW,CACzB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,GACpB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAUnC;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CACrB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,GAAG,EAAE,MAAM,GACV,MAAM,CASR;AA2SD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,cAAc,GACtB,WAAW,GAAG,IAAI,CAGpB"}