@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,417 @@
1
+ // Generated content (CSS 2.1 12): what `content`, `counter-reset`,
2
+ // `counter-increment`, `counter-set` and `quotes` compute to, and the styles
3
+ // a counter is written in. Resolving them against a document — which counter is in scope
4
+ // where, how deep the quotes are — is the box builder's, because it is a walk
5
+ // in document order and the builder is that walk.
6
+
7
+ import { parseUrl, urlEnd } from './parse.js';
8
+ import {
9
+ CounterStyles,
10
+ counterStyleName,
11
+ symbolsFunction,
12
+ } from './counter-styles.js';
13
+
14
+ /** One part of a `content` value, in the order it was written. */
15
+ export type ContentItem =
16
+ | { kind: 'string'; text: string }
17
+ | { kind: 'url'; url: string }
18
+ | { kind: 'attr'; name: string }
19
+ | { kind: 'counter'; name: string; style: string }
20
+ | { kind: 'counters'; name: string; separator: string; style: string }
21
+ | {
22
+ kind: 'open-quote' | 'close-quote' | 'no-open-quote' | 'no-close-quote';
23
+ };
24
+
25
+ /** One name in a `counter-reset`, `counter-increment` or `counter-set`,
26
+ * with its number. */
27
+ export interface CounterChange {
28
+ name: string;
29
+ value: number;
30
+ /** A reset's `reversed(name)`: a counter that counts down (CSS Lists 3,
31
+ * 4.4.2), which the list items in it take one from each. */
32
+ reversed?: true;
33
+ /** A reversed counter written with no number, which starts at as many
34
+ * as its scope counts: its `value` is the box builder's to work out. */
35
+ counted?: true;
36
+ }
37
+
38
+ /** English's quotation marks, outer pair first: `quotes`' initial value,
39
+ * which CSS 2.1 leaves to the user agent. */
40
+ export const DEFAULT_QUOTES: readonly string[] = ['“', '”', '‘', '’'];
41
+
42
+ export type Token =
43
+ | { kind: 'string'; text: string }
44
+ | { kind: 'url'; url: string }
45
+ | { kind: 'ident'; name: string }
46
+ | { kind: 'function'; name: string; args: Token[][] }
47
+ | { kind: 'number'; value: number };
48
+
49
+ /**
50
+ * `content`: `normal`, `none`, or its items, CSS 2.1's: strings, images,
51
+ * `attr()`, counters and quotes. Null when the value cannot be read, which
52
+ * drops the declaration, as CSS does.
53
+ */
54
+ export function parseContent(
55
+ value: string,
56
+ ): ContentItem[] | 'normal' | 'none' | null {
57
+ const tokens = tokenize(value);
58
+ if (!tokens?.length) return null;
59
+ if (tokens.length === 1 && tokens[0].kind === 'ident') {
60
+ const name = tokens[0].name.toLowerCase();
61
+ if (name === 'normal' || name === 'none') return name;
62
+ }
63
+ const items: ContentItem[] = [];
64
+ for (const token of tokens) {
65
+ if (token.kind === 'string') {
66
+ items.push({ kind: 'string', text: token.text });
67
+ } else if (token.kind === 'url') {
68
+ items.push(token);
69
+ } else if (token.kind === 'ident') {
70
+ const name = token.name.toLowerCase();
71
+ if (
72
+ name === 'open-quote' ||
73
+ name === 'close-quote' ||
74
+ name === 'no-open-quote' ||
75
+ name === 'no-close-quote'
76
+ ) {
77
+ items.push({ kind: name });
78
+ } else return null;
79
+ } else if (token.kind === 'function') {
80
+ const item = contentFunction(token);
81
+ if (item === null) return null;
82
+ items.push(item);
83
+ } else return null;
84
+ }
85
+ return items;
86
+ }
87
+
88
+ function contentFunction(
89
+ token: Extract<Token, { kind: 'function' }>,
90
+ ): ContentItem | null {
91
+ const name = token.name.toLowerCase();
92
+ const args = token.args;
93
+ const ident = (i: number): string | null => {
94
+ const arg = args[i];
95
+ return arg?.length === 1 && arg[0].kind === 'ident' ? arg[0].name : null;
96
+ };
97
+ // a counter style: a name, as `list-style-type` takes one, `symbols()`,
98
+ // or `none`
99
+ const styleOf = (i: number): string | null => {
100
+ const arg = args[i];
101
+ if (arg?.length !== 1) return null;
102
+ const token = arg[0];
103
+ if (token.kind === 'function') return symbolsFunction(token);
104
+ if (token.kind !== 'ident') return null;
105
+ return token.name.toLowerCase() === 'none'
106
+ ? 'none'
107
+ : counterStyleName(token.name);
108
+ };
109
+ if (name === 'attr') {
110
+ const attr = ident(0);
111
+ // an HTML attribute's name is case-insensitive, and the DOM keeps it
112
+ // lower case
113
+ return attr && args.length === 1
114
+ ? { kind: 'attr', name: attr.toLowerCase() }
115
+ : null;
116
+ }
117
+ if (name === 'counter') {
118
+ const counter = ident(0);
119
+ if (!counter || args.length > 2) return null;
120
+ const style = args.length > 1 ? styleOf(1) : 'decimal';
121
+ return style ? { kind: 'counter', name: counter, style } : null;
122
+ }
123
+ if (name === 'counters') {
124
+ const counter = ident(0);
125
+ const separator = args[1];
126
+ if (
127
+ !counter ||
128
+ args.length < 2 ||
129
+ args.length > 3 ||
130
+ separator.length !== 1 ||
131
+ separator[0].kind !== 'string'
132
+ ) {
133
+ return null;
134
+ }
135
+ const style = args.length > 2 ? styleOf(2) : 'decimal';
136
+ return style
137
+ ? {
138
+ kind: 'counters',
139
+ name: counter,
140
+ separator: separator[0].text,
141
+ style,
142
+ }
143
+ : null;
144
+ }
145
+ return null;
146
+ }
147
+
148
+ /**
149
+ * `counter-reset`, `counter-increment` and `counter-set`: `none`, or names
150
+ * each followed by an optional integer — `fallback` where there is none, 0
151
+ * for a reset and a set and 1 for an increment. A reset's name may be
152
+ * `reversed(name)` (`reversible`). Null when the value cannot be read.
153
+ */
154
+ export function parseCounterList(
155
+ value: string,
156
+ fallback: number,
157
+ reversible = false,
158
+ ): CounterChange[] | 'none' | null {
159
+ const tokens = tokenize(value);
160
+ if (!tokens?.length) return null;
161
+ if (
162
+ tokens.length === 1 &&
163
+ tokens[0].kind === 'ident' &&
164
+ tokens[0].name.toLowerCase() === 'none'
165
+ ) {
166
+ return 'none';
167
+ }
168
+ const out: CounterChange[] = [];
169
+ for (let i = 0; i < tokens.length; i += 1) {
170
+ const token = tokens[i];
171
+ let name: string;
172
+ let reversed = false;
173
+ if (token.kind === 'ident') name = token.name;
174
+ else if (
175
+ reversible &&
176
+ token.kind === 'function' &&
177
+ token.name.toLowerCase() === 'reversed' &&
178
+ token.args.length === 1 &&
179
+ token.args[0].length === 1 &&
180
+ token.args[0][0].kind === 'ident'
181
+ ) {
182
+ name = token.args[0][0].name;
183
+ reversed = true;
184
+ } else return null;
185
+ // CSS-wide keywords and `none` cannot name a counter
186
+ const lower = name.toLowerCase();
187
+ if (
188
+ lower === 'none' ||
189
+ lower === 'inherit' ||
190
+ lower === 'initial' ||
191
+ lower === 'unset'
192
+ ) {
193
+ return null;
194
+ }
195
+ const next = tokens[i + 1];
196
+ let change: CounterChange;
197
+ if (next?.kind === 'number') {
198
+ if (!Number.isInteger(next.value)) return null;
199
+ change = { name, value: next.value };
200
+ i += 1;
201
+ } else if (reversed) change = { name, value: 0, counted: true };
202
+ else change = { name, value: fallback };
203
+ if (reversed) change.reversed = true;
204
+ out.push(change);
205
+ }
206
+ return out;
207
+ }
208
+
209
+ /**
210
+ * `list-style-type`: `none`, a counter style — its name, lower-cased where
211
+ * the specification defines it and kept as it is written where a document
212
+ * does (CSS Counter Styles 3, 3), or `symbols()` — or a string the marker
213
+ * is written as (CSS Lists 3, 3.3), kept with the `"` it was quoted in so
214
+ * it cannot be taken for a name. Null when the value is none of those.
215
+ */
216
+ export function parseListStyleType(value: string): string | null {
217
+ const tokens = tokenize(value);
218
+ if (tokens?.length !== 1) return null;
219
+ const token = tokens[0];
220
+ if (token.kind === 'string') return `"${token.text}`;
221
+ if (token.kind === 'function') return symbolsFunction(token);
222
+ if (token.kind !== 'ident') return null;
223
+ const lower = token.name.toLowerCase();
224
+ if (/^(inherit|initial|unset|default|revert|revert-layer)$/.test(lower)) {
225
+ return null;
226
+ }
227
+ return lower === 'none' ? 'none' : counterStyleName(token.name);
228
+ }
229
+
230
+ /** `quotes`: `none`, or pairs of strings, outermost first. Null when the
231
+ * value cannot be read — an odd number of strings among them. */
232
+ export function parseQuotes(value: string): string[] | 'none' | null {
233
+ const tokens = tokenize(value);
234
+ if (!tokens?.length) return null;
235
+ if (
236
+ tokens.length === 1 &&
237
+ tokens[0].kind === 'ident' &&
238
+ tokens[0].name.toLowerCase() === 'none'
239
+ ) {
240
+ return 'none';
241
+ }
242
+ if (tokens.length % 2 !== 0) return null;
243
+ const out: string[] = [];
244
+ for (const token of tokens) {
245
+ if (token.kind !== 'string') return null;
246
+ out.push(token.text);
247
+ }
248
+ return out;
249
+ }
250
+
251
+ /** The mark an `open-quote` (side 0) or `close-quote` (side 1) at a nesting
252
+ * depth writes: the pair for that depth, or the innermost pair past it. */
253
+ export function quoteAt(
254
+ quotes: readonly string[] | 'none',
255
+ depth: number,
256
+ side: 0 | 1,
257
+ ): string {
258
+ if (quotes === 'none' || quotes.length < 2) return '';
259
+ const pair = Math.min(depth, quotes.length / 2 - 1);
260
+ return quotes[pair * 2 + side];
261
+ }
262
+
263
+ // --- counter styles -----------------------------------------------------------
264
+
265
+ let predefined: CounterStyles | null = null;
266
+
267
+ /** A counter's value in one of the styles the specification defines, or
268
+ * `none`'s nothing, where no document's rules are in reach. */
269
+ export function counterText(n: number, style: string): string {
270
+ if (style === 'none') return '';
271
+ return (predefined ??= new CounterStyles()).text(n, style);
272
+ }
273
+
274
+ // --- the tokenizer ------------------------------------------------------------
275
+
276
+ /**
277
+ * A value as strings, identifiers, numbers and functions with their
278
+ * comma-separated arguments. Null when a character belongs to none of them.
279
+ * The declaration reaching here has had its comments removed by the
280
+ * stylesheet parser.
281
+ */
282
+ export function tokenize(value: string): Token[] | null {
283
+ const out: Token[] = [];
284
+ let i = 0;
285
+ const n = value.length;
286
+ const read = (stopAt: string): Token[] | null => {
287
+ const tokens: Token[] = [];
288
+ while (i < n) {
289
+ const c = value[i];
290
+ if (/\s/.test(c)) {
291
+ i += 1;
292
+ continue;
293
+ }
294
+ if (stopAt.includes(c)) return tokens;
295
+ if (c === '"' || c === "'") {
296
+ const text = readString(c);
297
+ if (text === null) return null;
298
+ tokens.push({ kind: 'string', text });
299
+ continue;
300
+ }
301
+ if (
302
+ /[0-9+\-.]/.test(c) &&
303
+ /^[+-]?(\d+\.?\d*|\.\d+)/.test(value.slice(i))
304
+ ) {
305
+ const m = /^[+-]?(\d+\.?\d*|\.\d+)/.exec(value.slice(i))!;
306
+ // a name can start with `-`, and `-foo` is not a number
307
+ if (!/[a-zA-Z_\\]/.test(value[i + m[0].length] ?? '')) {
308
+ tokens.push({ kind: 'number', value: Number(m[0]) });
309
+ i += m[0].length;
310
+ continue;
311
+ }
312
+ }
313
+ const start = i;
314
+ const name = readIdent();
315
+ if (name === null) return null;
316
+ if (value[i] === '(') {
317
+ if (name.toLowerCase() === 'url') {
318
+ // a url token, read as a background's is; a bad one is no value
319
+ const end = urlEnd(value, i);
320
+ const url = parseUrl(value.slice(start, end));
321
+ if (url === undefined) return null;
322
+ if (url !== null) tokens.push({ kind: 'url', url });
323
+ i = end;
324
+ continue;
325
+ }
326
+ i += 1;
327
+ const args: Token[][] = [];
328
+ for (;;) {
329
+ const arg = read(',)');
330
+ if (arg === null) return null;
331
+ args.push(arg);
332
+ if (value[i] === ',') {
333
+ i += 1;
334
+ continue;
335
+ }
336
+ if (value[i] === ')') {
337
+ i += 1;
338
+ break;
339
+ }
340
+ // the end of the value closes what is open, as it does anywhere
341
+ // in CSS (2.1 4.2)
342
+ break;
343
+ }
344
+ tokens.push({ kind: 'function', name, args });
345
+ continue;
346
+ }
347
+ tokens.push({ kind: 'ident', name });
348
+ }
349
+ return tokens;
350
+ };
351
+
352
+ const readString = (quote: string): string | null => {
353
+ i += 1;
354
+ let text = '';
355
+ while (i < n) {
356
+ const c = value[i];
357
+ if (c === quote) {
358
+ i += 1;
359
+ return text;
360
+ }
361
+ if (c === '\\') {
362
+ text += readEscape();
363
+ continue;
364
+ }
365
+ // a newline ends a string unclosed, which makes it invalid
366
+ if (c === '\n') return null;
367
+ text += c;
368
+ i += 1;
369
+ }
370
+ // the end of the value closes a string left open
371
+ return text;
372
+ };
373
+
374
+ const readIdent = (): string | null => {
375
+ let name = '';
376
+ while (i < n) {
377
+ const c = value[i];
378
+ if (/[a-zA-Z0-9_\-\u0080-￿]/.test(c)) {
379
+ name += c;
380
+ i += 1;
381
+ } else if (c === '\\') {
382
+ name += readEscape();
383
+ } else break;
384
+ }
385
+ return name && !/^-?\d/.test(name) ? name : null;
386
+ };
387
+
388
+ /** A backslash and what follows it: up to six hex digits and one white
389
+ * space after them, a line continuation, or the character itself. */
390
+ const readEscape = (): string => {
391
+ i += 1;
392
+ if (i >= n) return '';
393
+ const hex = /^[0-9a-fA-F]{1,6}/.exec(value.slice(i));
394
+ if (hex) {
395
+ i += hex[0].length;
396
+ if (value[i] === '\r' && value[i + 1] === '\n') i += 2;
397
+ else if (/[ \t\n\r\f]/.test(value[i] ?? '')) i += 1;
398
+ const code = parseInt(hex[0], 16);
399
+ return code === 0 || code > 0x10ffff || (code >= 0xd800 && code <= 0xdfff)
400
+ ? '�'
401
+ : String.fromCodePoint(code);
402
+ }
403
+ const c = value[i];
404
+ i += 1;
405
+ if (c === '\n') return '';
406
+ if (c === '\r') {
407
+ if (value[i] === '\n') i += 1;
408
+ return '';
409
+ }
410
+ return c;
411
+ };
412
+
413
+ const tokens = read('');
414
+ if (tokens === null || i < n) return null;
415
+ out.push(...tokens);
416
+ return out;
417
+ }