@react-x11/components 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (788) hide show
  1. package/README.md +979 -21
  2. package/dist/ansi/cast.d.ts +48 -0
  3. package/dist/ansi/cast.d.ts.map +1 -0
  4. package/dist/ansi/cast.js +135 -0
  5. package/dist/ansi/cast.js.map +1 -0
  6. package/dist/ansi/index.d.ts +10 -0
  7. package/dist/ansi/index.d.ts.map +1 -0
  8. package/dist/ansi/index.js +27 -0
  9. package/dist/ansi/index.js.map +1 -0
  10. package/dist/ansi/palette.d.ts +79 -0
  11. package/dist/ansi/palette.d.ts.map +1 -0
  12. package/dist/ansi/palette.js +155 -0
  13. package/dist/ansi/palette.js.map +1 -0
  14. package/dist/ansi/parse.d.ts +114 -0
  15. package/dist/ansi/parse.d.ts.map +1 -0
  16. package/dist/ansi/parse.js +687 -0
  17. package/dist/ansi/parse.js.map +1 -0
  18. package/dist/ansi/sgr.d.ts +87 -0
  19. package/dist/ansi/sgr.d.ts.map +1 -0
  20. package/dist/ansi/sgr.js +302 -0
  21. package/dist/ansi/sgr.js.map +1 -0
  22. package/dist/ansi/utf8.d.ts +15 -0
  23. package/dist/ansi/utf8.d.ts.map +1 -0
  24. package/dist/ansi/utf8.js +82 -0
  25. package/dist/ansi/utf8.js.map +1 -0
  26. package/dist/calendar/Calendar.d.ts +136 -0
  27. package/dist/calendar/Calendar.d.ts.map +1 -0
  28. package/dist/calendar/Calendar.js +460 -0
  29. package/dist/calendar/Calendar.js.map +1 -0
  30. package/dist/calendar/DatePicker.d.ts +52 -0
  31. package/dist/calendar/DatePicker.d.ts.map +1 -0
  32. package/dist/calendar/DatePicker.js +257 -0
  33. package/dist/calendar/DatePicker.js.map +1 -0
  34. package/dist/calendar/dates.d.ts +90 -0
  35. package/dist/calendar/dates.d.ts.map +1 -0
  36. package/dist/calendar/dates.js +236 -0
  37. package/dist/calendar/dates.js.map +1 -0
  38. package/dist/calendar/index.d.ts +8 -0
  39. package/dist/calendar/index.d.ts.map +1 -0
  40. package/dist/calendar/index.js +15 -0
  41. package/dist/calendar/index.js.map +1 -0
  42. package/dist/charts/components.d.ts +141 -0
  43. package/dist/charts/components.d.ts.map +1 -0
  44. package/dist/charts/components.js +580 -0
  45. package/dist/charts/components.js.map +1 -0
  46. package/dist/charts/data.d.ts +198 -0
  47. package/dist/charts/data.d.ts.map +1 -0
  48. package/dist/charts/data.js +616 -0
  49. package/dist/charts/data.js.map +1 -0
  50. package/dist/charts/hx.d.ts +21 -0
  51. package/dist/charts/hx.d.ts.map +1 -0
  52. package/dist/charts/hx.js +15 -0
  53. package/dist/charts/hx.js.map +1 -0
  54. package/dist/charts/index.d.ts +27 -0
  55. package/dist/charts/index.d.ts.map +1 -0
  56. package/dist/charts/index.js +38 -0
  57. package/dist/charts/index.js.map +1 -0
  58. package/dist/charts/node.d.ts +96 -0
  59. package/dist/charts/node.d.ts.map +1 -0
  60. package/dist/charts/node.js +720 -0
  61. package/dist/charts/node.js.map +1 -0
  62. package/dist/charts/render.d.ts +153 -0
  63. package/dist/charts/render.d.ts.map +1 -0
  64. package/dist/charts/render.js +762 -0
  65. package/dist/charts/render.js.map +1 -0
  66. package/dist/charts/scale.d.ts +42 -0
  67. package/dist/charts/scale.d.ts.map +1 -0
  68. package/dist/charts/scale.js +173 -0
  69. package/dist/charts/scale.js.map +1 -0
  70. package/dist/charts/spec.d.ts +91 -0
  71. package/dist/charts/spec.d.ts.map +1 -0
  72. package/dist/charts/spec.js +33 -0
  73. package/dist/charts/spec.js.map +1 -0
  74. package/dist/charts/timers.d.ts +6 -0
  75. package/dist/charts/timers.d.ts.map +1 -0
  76. package/dist/charts/timers.js +14 -0
  77. package/dist/charts/timers.js.map +1 -0
  78. package/dist/code/hx.d.ts +24 -0
  79. package/dist/code/hx.d.ts.map +1 -0
  80. package/dist/code/hx.js +25 -0
  81. package/dist/code/hx.js.map +1 -0
  82. package/dist/code/index.d.ts +45 -0
  83. package/dist/code/index.d.ts.map +1 -0
  84. package/dist/code/index.js +93 -0
  85. package/dist/code/index.js.map +1 -0
  86. package/dist/code-editor/completion.d.ts +26 -0
  87. package/dist/code-editor/completion.d.ts.map +1 -0
  88. package/dist/code-editor/completion.js +129 -0
  89. package/dist/code-editor/completion.js.map +1 -0
  90. package/dist/code-editor/doc.d.ts +35 -0
  91. package/dist/code-editor/doc.d.ts.map +1 -0
  92. package/dist/code-editor/doc.js +162 -0
  93. package/dist/code-editor/doc.js.map +1 -0
  94. package/dist/code-editor/hx.d.ts +13 -0
  95. package/dist/code-editor/hx.d.ts.map +1 -0
  96. package/dist/code-editor/hx.js +10 -0
  97. package/dist/code-editor/hx.js.map +1 -0
  98. package/dist/code-editor/index.d.ts +88 -0
  99. package/dist/code-editor/index.d.ts.map +1 -0
  100. package/dist/code-editor/index.js +401 -0
  101. package/dist/code-editor/index.js.map +1 -0
  102. package/dist/code-editor/node.d.ts +343 -0
  103. package/dist/code-editor/node.d.ts.map +1 -0
  104. package/dist/code-editor/node.js +1521 -0
  105. package/dist/code-editor/node.js.map +1 -0
  106. package/dist/code-language/hljs.d.ts +47 -0
  107. package/dist/code-language/hljs.d.ts.map +1 -0
  108. package/dist/code-language/hljs.js +211 -0
  109. package/dist/code-language/hljs.js.map +1 -0
  110. package/dist/code-language/index.d.ts +22 -0
  111. package/dist/code-language/index.d.ts.map +1 -0
  112. package/dist/code-language/index.js +20 -0
  113. package/dist/code-language/index.js.map +1 -0
  114. package/dist/code-language/languages/glsl.d.ts +4 -0
  115. package/dist/code-language/languages/glsl.d.ts.map +1 -0
  116. package/dist/code-language/languages/glsl.js +99 -0
  117. package/dist/code-language/languages/glsl.js.map +1 -0
  118. package/dist/code-language/languages/javascript.d.ts +10 -0
  119. package/dist/code-language/languages/javascript.d.ts.map +1 -0
  120. package/dist/code-language/languages/javascript.js +360 -0
  121. package/dist/code-language/languages/javascript.js.map +1 -0
  122. package/dist/code-language/languages/json.d.ts +4 -0
  123. package/dist/code-language/languages/json.d.ts.map +1 -0
  124. package/dist/code-language/languages/json.js +68 -0
  125. package/dist/code-language/languages/json.js.map +1 -0
  126. package/dist/code-language/languages/shell.d.ts +4 -0
  127. package/dist/code-language/languages/shell.d.ts.map +1 -0
  128. package/dist/code-language/languages/shell.js +189 -0
  129. package/dist/code-language/languages/shell.js.map +1 -0
  130. package/dist/code-language/languages/sql.d.ts +11 -0
  131. package/dist/code-language/languages/sql.d.ts.map +1 -0
  132. package/dist/code-language/languages/sql.js +133 -0
  133. package/dist/code-language/languages/sql.js.map +1 -0
  134. package/dist/code-language/lezer.d.ts +24 -0
  135. package/dist/code-language/lezer.d.ts.map +1 -0
  136. package/dist/code-language/lezer.js +148 -0
  137. package/dist/code-language/lezer.js.map +1 -0
  138. package/dist/code-language/registry.d.ts +19 -0
  139. package/dist/code-language/registry.d.ts.map +1 -0
  140. package/dist/code-language/registry.js +56 -0
  141. package/dist/code-language/registry.js.map +1 -0
  142. package/dist/code-language/runs.d.ts +35 -0
  143. package/dist/code-language/runs.d.ts.map +1 -0
  144. package/dist/code-language/runs.js +88 -0
  145. package/dist/code-language/runs.js.map +1 -0
  146. package/dist/code-language/stream.d.ts +70 -0
  147. package/dist/code-language/stream.d.ts.map +1 -0
  148. package/dist/code-language/stream.js +243 -0
  149. package/dist/code-language/stream.js.map +1 -0
  150. package/dist/code-language/textmate.d.ts +27 -0
  151. package/dist/code-language/textmate.d.ts.map +1 -0
  152. package/dist/code-language/textmate.js +86 -0
  153. package/dist/code-language/textmate.js.map +1 -0
  154. package/dist/code-language/theme.d.ts +26 -0
  155. package/dist/code-language/theme.d.ts.map +1 -0
  156. package/dist/code-language/theme.js +108 -0
  157. package/dist/code-language/theme.js.map +1 -0
  158. package/dist/code-language/timers.d.ts +7 -0
  159. package/dist/code-language/timers.d.ts.map +1 -0
  160. package/dist/code-language/timers.js +22 -0
  161. package/dist/code-language/timers.js.map +1 -0
  162. package/dist/code-language/types.d.ts +173 -0
  163. package/dist/code-language/types.d.ts.map +1 -0
  164. package/dist/code-language/types.js +41 -0
  165. package/dist/code-language/types.js.map +1 -0
  166. package/dist/codeblock/index.d.ts +69 -0
  167. package/dist/codeblock/index.d.ts.map +1 -0
  168. package/dist/codeblock/index.js +85 -0
  169. package/dist/codeblock/index.js.map +1 -0
  170. package/dist/color-picker/ColorField.d.ts +39 -0
  171. package/dist/color-picker/ColorField.d.ts.map +1 -0
  172. package/dist/color-picker/ColorField.js +239 -0
  173. package/dist/color-picker/ColorField.js.map +1 -0
  174. package/dist/color-picker/ColorPicker.d.ts +109 -0
  175. package/dist/color-picker/ColorPicker.d.ts.map +1 -0
  176. package/dist/color-picker/ColorPicker.js +757 -0
  177. package/dist/color-picker/ColorPicker.js.map +1 -0
  178. package/dist/color-picker/color.d.ts +105 -0
  179. package/dist/color-picker/color.d.ts.map +1 -0
  180. package/dist/color-picker/color.js +313 -0
  181. package/dist/color-picker/color.js.map +1 -0
  182. package/dist/color-picker/index.d.ts +8 -0
  183. package/dist/color-picker/index.d.ts.map +1 -0
  184. package/dist/color-picker/index.js +19 -0
  185. package/dist/color-picker/index.js.map +1 -0
  186. package/dist/desktop-calendar/eds.d.ts +102 -0
  187. package/dist/desktop-calendar/eds.d.ts.map +1 -0
  188. package/dist/desktop-calendar/eds.js +356 -0
  189. package/dist/desktop-calendar/eds.js.map +1 -0
  190. package/dist/desktop-calendar/ical.d.ts +63 -0
  191. package/dist/desktop-calendar/ical.d.ts.map +1 -0
  192. package/dist/desktop-calendar/ical.js +57 -0
  193. package/dist/desktop-calendar/ical.js.map +1 -0
  194. package/dist/desktop-calendar/index.d.ts +72 -0
  195. package/dist/desktop-calendar/index.d.ts.map +1 -0
  196. package/dist/desktop-calendar/index.js +213 -0
  197. package/dist/desktop-calendar/index.js.map +1 -0
  198. package/dist/embed/client.d.ts +121 -0
  199. package/dist/embed/client.d.ts.map +1 -0
  200. package/dist/embed/client.js +203 -0
  201. package/dist/embed/client.js.map +1 -0
  202. package/dist/embed/host.d.ts +96 -0
  203. package/dist/embed/host.d.ts.map +1 -0
  204. package/dist/embed/host.js +266 -0
  205. package/dist/embed/host.js.map +1 -0
  206. package/dist/embed/index.d.ts +5 -0
  207. package/dist/embed/index.d.ts.map +1 -0
  208. package/dist/embed/index.js +13 -0
  209. package/dist/embed/index.js.map +1 -0
  210. package/dist/embed/timers.d.ts +6 -0
  211. package/dist/embed/timers.d.ts.map +1 -0
  212. package/dist/embed/timers.js +16 -0
  213. package/dist/embed/timers.js.map +1 -0
  214. package/dist/flow/draw.d.ts +45 -0
  215. package/dist/flow/draw.d.ts.map +1 -0
  216. package/dist/flow/draw.js +295 -0
  217. package/dist/flow/draw.js.map +1 -0
  218. package/dist/flow/index.d.ts +64 -0
  219. package/dist/flow/index.d.ts.map +1 -0
  220. package/dist/flow/index.js +306 -0
  221. package/dist/flow/index.js.map +1 -0
  222. package/dist/flow/model.d.ts +158 -0
  223. package/dist/flow/model.d.ts.map +1 -0
  224. package/dist/flow/model.js +566 -0
  225. package/dist/flow/model.js.map +1 -0
  226. package/dist/flow/node.d.ts +429 -0
  227. package/dist/flow/node.d.ts.map +1 -0
  228. package/dist/flow/node.js +3025 -0
  229. package/dist/flow/node.js.map +1 -0
  230. package/dist/flow/paths.d.ts +43 -0
  231. package/dist/flow/paths.d.ts.map +1 -0
  232. package/dist/flow/paths.js +327 -0
  233. package/dist/flow/paths.js.map +1 -0
  234. package/dist/flow/types.d.ts +561 -0
  235. package/dist/flow/types.d.ts.map +1 -0
  236. package/dist/flow/types.js +2 -0
  237. package/dist/flow/types.js.map +1 -0
  238. package/dist/formula/hx.d.ts +24 -0
  239. package/dist/formula/hx.d.ts.map +1 -0
  240. package/dist/formula/hx.js +25 -0
  241. package/dist/formula/hx.js.map +1 -0
  242. package/dist/formula/index.d.ts +74 -0
  243. package/dist/formula/index.d.ts.map +1 -0
  244. package/dist/formula/index.js +155 -0
  245. package/dist/formula/index.js.map +1 -0
  246. package/dist/formula/katex.d.ts +78 -0
  247. package/dist/formula/katex.d.ts.map +1 -0
  248. package/dist/formula/katex.js +130 -0
  249. package/dist/formula/katex.js.map +1 -0
  250. package/dist/formula/layout.d.ts +103 -0
  251. package/dist/formula/layout.d.ts.map +1 -0
  252. package/dist/formula/layout.js +716 -0
  253. package/dist/formula/layout.js.map +1 -0
  254. package/dist/formula/node.d.ts +50 -0
  255. package/dist/formula/node.d.ts.map +1 -0
  256. package/dist/formula/node.js +351 -0
  257. package/dist/formula/node.js.map +1 -0
  258. package/dist/html/controls.d.ts +48 -0
  259. package/dist/html/controls.d.ts.map +1 -0
  260. package/dist/html/controls.js +195 -0
  261. package/dist/html/controls.js.map +1 -0
  262. package/dist/html/css/cascade.d.ts +51 -0
  263. package/dist/html/css/cascade.d.ts.map +1 -0
  264. package/dist/html/css/cascade.js +552 -0
  265. package/dist/html/css/cascade.js.map +1 -0
  266. package/dist/html/css/parse.d.ts +74 -0
  267. package/dist/html/css/parse.d.ts.map +1 -0
  268. package/dist/html/css/parse.js +464 -0
  269. package/dist/html/css/parse.js.map +1 -0
  270. package/dist/html/css/style.d.ts +142 -0
  271. package/dist/html/css/style.d.ts.map +1 -0
  272. package/dist/html/css/style.js +1145 -0
  273. package/dist/html/css/style.js.map +1 -0
  274. package/dist/html/css/ua.d.ts +5 -0
  275. package/dist/html/css/ua.d.ts.map +1 -0
  276. package/dist/html/css/ua.js +171 -0
  277. package/dist/html/css/ua.js.map +1 -0
  278. package/dist/html/css/values.d.ts +78 -0
  279. package/dist/html/css/values.d.ts.map +1 -0
  280. package/dist/html/css/values.js +330 -0
  281. package/dist/html/css/values.js.map +1 -0
  282. package/dist/html/dom.d.ts +112 -0
  283. package/dist/html/dom.d.ts.map +1 -0
  284. package/dist/html/dom.js +374 -0
  285. package/dist/html/dom.js.map +1 -0
  286. package/dist/html/hx.d.ts +24 -0
  287. package/dist/html/hx.d.ts.map +1 -0
  288. package/dist/html/hx.js +29 -0
  289. package/dist/html/hx.js.map +1 -0
  290. package/dist/html/index.d.ts +137 -0
  291. package/dist/html/index.d.ts.map +1 -0
  292. package/dist/html/index.js +339 -0
  293. package/dist/html/index.js.map +1 -0
  294. package/dist/html/layout/block.d.ts +58 -0
  295. package/dist/html/layout/block.d.ts.map +1 -0
  296. package/dist/html/layout/block.js +724 -0
  297. package/dist/html/layout/block.js.map +1 -0
  298. package/dist/html/layout/boxes.d.ts +261 -0
  299. package/dist/html/layout/boxes.d.ts.map +1 -0
  300. package/dist/html/layout/boxes.js +725 -0
  301. package/dist/html/layout/boxes.js.map +1 -0
  302. package/dist/html/layout/flex.d.ts +16 -0
  303. package/dist/html/layout/flex.d.ts.map +1 -0
  304. package/dist/html/layout/flex.js +242 -0
  305. package/dist/html/layout/flex.js.map +1 -0
  306. package/dist/html/layout/floats.d.ts +50 -0
  307. package/dist/html/layout/floats.d.ts.map +1 -0
  308. package/dist/html/layout/floats.js +110 -0
  309. package/dist/html/layout/floats.js.map +1 -0
  310. package/dist/html/layout/inline.d.ts +44 -0
  311. package/dist/html/layout/inline.d.ts.map +1 -0
  312. package/dist/html/layout/inline.js +700 -0
  313. package/dist/html/layout/inline.js.map +1 -0
  314. package/dist/html/layout/table.d.ts +5 -0
  315. package/dist/html/layout/table.d.ts.map +1 -0
  316. package/dist/html/layout/table.js +340 -0
  317. package/dist/html/layout/table.js.map +1 -0
  318. package/dist/html/node.d.ts +149 -0
  319. package/dist/html/node.d.ts.map +1 -0
  320. package/dist/html/node.js +861 -0
  321. package/dist/html/node.js.map +1 -0
  322. package/dist/html/paint.d.ts +48 -0
  323. package/dist/html/paint.d.ts.map +1 -0
  324. package/dist/html/paint.js +495 -0
  325. package/dist/html/paint.js.map +1 -0
  326. package/dist/html/resources.d.ts +48 -0
  327. package/dist/html/resources.d.ts.map +1 -0
  328. package/dist/html/resources.js +156 -0
  329. package/dist/html/resources.js.map +1 -0
  330. package/dist/index.d.ts +48 -0
  331. package/dist/index.d.ts.map +1 -0
  332. package/dist/index.js +92 -0
  333. package/dist/index.js.map +1 -0
  334. package/dist/internal/heights.d.ts +88 -0
  335. package/dist/internal/heights.d.ts.map +1 -0
  336. package/dist/internal/heights.js +203 -0
  337. package/dist/internal/heights.js.map +1 -0
  338. package/dist/internal/hx.d.ts +24 -0
  339. package/dist/internal/hx.d.ts.map +1 -0
  340. package/dist/internal/hx.js +27 -0
  341. package/dist/internal/hx.js.map +1 -0
  342. package/dist/internal/scroll.d.ts +62 -0
  343. package/dist/internal/scroll.d.ts.map +1 -0
  344. package/dist/internal/scroll.js +224 -0
  345. package/dist/internal/scroll.js.map +1 -0
  346. package/dist/internal/text.d.ts +6 -0
  347. package/dist/internal/text.d.ts.map +1 -0
  348. package/dist/internal/text.js +44 -0
  349. package/dist/internal/text.js.map +1 -0
  350. package/dist/internal/timers.d.ts +8 -0
  351. package/dist/internal/timers.d.ts.map +1 -0
  352. package/dist/internal/timers.js +22 -0
  353. package/dist/internal/timers.js.map +1 -0
  354. package/dist/internal/widget.d.ts +40 -0
  355. package/dist/internal/widget.d.ts.map +1 -0
  356. package/dist/internal/widget.js +44 -0
  357. package/dist/internal/widget.js.map +1 -0
  358. package/dist/markdown/ast.d.ts +126 -0
  359. package/dist/markdown/ast.d.ts.map +1 -0
  360. package/dist/markdown/ast.js +8 -0
  361. package/dist/markdown/ast.js.map +1 -0
  362. package/dist/markdown/hx.d.ts +24 -0
  363. package/dist/markdown/hx.d.ts.map +1 -0
  364. package/dist/markdown/hx.js +25 -0
  365. package/dist/markdown/hx.js.map +1 -0
  366. package/dist/markdown/index.d.ts +90 -0
  367. package/dist/markdown/index.d.ts.map +1 -0
  368. package/dist/markdown/index.js +413 -0
  369. package/dist/markdown/index.js.map +1 -0
  370. package/dist/markdown/parse.d.ts +8 -0
  371. package/dist/markdown/parse.d.ts.map +1 -0
  372. package/dist/markdown/parse.js +911 -0
  373. package/dist/markdown/parse.js.map +1 -0
  374. package/dist/markdown/spans.d.ts +20 -0
  375. package/dist/markdown/spans.d.ts.map +1 -0
  376. package/dist/markdown/spans.js +96 -0
  377. package/dist/markdown/spans.js.map +1 -0
  378. package/dist/media-player/backends.d.ts +64 -0
  379. package/dist/media-player/backends.d.ts.map +1 -0
  380. package/dist/media-player/backends.js +110 -0
  381. package/dist/media-player/backends.js.map +1 -0
  382. package/dist/media-player/control.d.ts +40 -0
  383. package/dist/media-player/control.d.ts.map +1 -0
  384. package/dist/media-player/control.js +44 -0
  385. package/dist/media-player/control.js.map +1 -0
  386. package/dist/media-player/hx.d.ts +24 -0
  387. package/dist/media-player/hx.d.ts.map +1 -0
  388. package/dist/media-player/hx.js +25 -0
  389. package/dist/media-player/hx.js.map +1 -0
  390. package/dist/media-player/index.d.ts +107 -0
  391. package/dist/media-player/index.d.ts.map +1 -0
  392. package/dist/media-player/index.js +219 -0
  393. package/dist/media-player/index.js.map +1 -0
  394. package/dist/media-player/mpv.d.ts +4 -0
  395. package/dist/media-player/mpv.d.ts.map +1 -0
  396. package/dist/media-player/mpv.js +120 -0
  397. package/dist/media-player/mpv.js.map +1 -0
  398. package/dist/media-player/vlc.d.ts +8 -0
  399. package/dist/media-player/vlc.d.ts.map +1 -0
  400. package/dist/media-player/vlc.js +83 -0
  401. package/dist/media-player/vlc.js.map +1 -0
  402. package/dist/richtext/index.d.ts +19 -0
  403. package/dist/richtext/index.d.ts.map +1 -0
  404. package/dist/richtext/index.js +4 -0
  405. package/dist/richtext/index.js.map +1 -0
  406. package/dist/richtext/links.d.ts +12 -0
  407. package/dist/richtext/links.d.ts.map +1 -0
  408. package/dist/richtext/links.js +64 -0
  409. package/dist/richtext/links.js.map +1 -0
  410. package/dist/richtext/menu.d.ts +11 -0
  411. package/dist/richtext/menu.d.ts.map +1 -0
  412. package/dist/richtext/menu.js +43 -0
  413. package/dist/richtext/menu.js.map +1 -0
  414. package/dist/richtext/node.d.ts +151 -0
  415. package/dist/richtext/node.d.ts.map +1 -0
  416. package/dist/richtext/node.js +255 -0
  417. package/dist/richtext/node.js.map +1 -0
  418. package/dist/richtext/runs.d.ts +92 -0
  419. package/dist/richtext/runs.d.ts.map +1 -0
  420. package/dist/richtext/runs.js +158 -0
  421. package/dist/richtext/runs.js.map +1 -0
  422. package/dist/table/hx.d.ts +24 -0
  423. package/dist/table/hx.d.ts.map +1 -0
  424. package/dist/table/hx.js +25 -0
  425. package/dist/table/hx.js.map +1 -0
  426. package/dist/table/index.d.ts +169 -0
  427. package/dist/table/index.d.ts.map +1 -0
  428. package/dist/table/index.js +890 -0
  429. package/dist/table/index.js.map +1 -0
  430. package/dist/table/rows.d.ts +136 -0
  431. package/dist/table/rows.d.ts.map +1 -0
  432. package/dist/table/rows.js +146 -0
  433. package/dist/table/rows.js.map +1 -0
  434. package/dist/terminal/backends.d.ts +105 -0
  435. package/dist/terminal/backends.d.ts.map +1 -0
  436. package/dist/terminal/backends.js +185 -0
  437. package/dist/terminal/backends.js.map +1 -0
  438. package/dist/terminal/hx.d.ts +24 -0
  439. package/dist/terminal/hx.d.ts.map +1 -0
  440. package/dist/terminal/hx.js +25 -0
  441. package/dist/terminal/hx.js.map +1 -0
  442. package/dist/terminal/index.d.ts +160 -0
  443. package/dist/terminal/index.d.ts.map +1 -0
  444. package/dist/terminal/index.js +344 -0
  445. package/dist/terminal/index.js.map +1 -0
  446. package/dist/terminal/title.d.ts +24 -0
  447. package/dist/terminal/title.d.ts.map +1 -0
  448. package/dist/terminal/title.js +129 -0
  449. package/dist/terminal/title.js.map +1 -0
  450. package/dist/terminal/vt/colors.d.ts +63 -0
  451. package/dist/terminal/vt/colors.d.ts.map +1 -0
  452. package/dist/terminal/vt/colors.js +203 -0
  453. package/dist/terminal/vt/colors.js.map +1 -0
  454. package/dist/terminal/vt/diff.d.ts +117 -0
  455. package/dist/terminal/vt/diff.d.ts.map +1 -0
  456. package/dist/terminal/vt/diff.js +358 -0
  457. package/dist/terminal/vt/diff.js.map +1 -0
  458. package/dist/terminal/vt/fonts.d.ts +92 -0
  459. package/dist/terminal/vt/fonts.d.ts.map +1 -0
  460. package/dist/terminal/vt/fonts.js +178 -0
  461. package/dist/terminal/vt/fonts.js.map +1 -0
  462. package/dist/terminal/vt/index.d.ts +78 -0
  463. package/dist/terminal/vt/index.d.ts.map +1 -0
  464. package/dist/terminal/vt/index.js +312 -0
  465. package/dist/terminal/vt/index.js.map +1 -0
  466. package/dist/terminal/vt/keys.d.ts +74 -0
  467. package/dist/terminal/vt/keys.d.ts.map +1 -0
  468. package/dist/terminal/vt/keys.js +309 -0
  469. package/dist/terminal/vt/keys.js.map +1 -0
  470. package/dist/terminal/vt/mouse.d.ts +44 -0
  471. package/dist/terminal/vt/mouse.d.ts.map +1 -0
  472. package/dist/terminal/vt/mouse.js +106 -0
  473. package/dist/terminal/vt/mouse.js.map +1 -0
  474. package/dist/terminal/vt/node.d.ts +246 -0
  475. package/dist/terminal/vt/node.d.ts.map +1 -0
  476. package/dist/terminal/vt/node.js +1068 -0
  477. package/dist/terminal/vt/node.js.map +1 -0
  478. package/dist/terminal/vt/pty.d.ts +81 -0
  479. package/dist/terminal/vt/pty.d.ts.map +1 -0
  480. package/dist/terminal/vt/pty.js +201 -0
  481. package/dist/terminal/vt/pty.js.map +1 -0
  482. package/dist/terminal/vt/renderer.d.ts +179 -0
  483. package/dist/terminal/vt/renderer.d.ts.map +1 -0
  484. package/dist/terminal/vt/renderer.js +357 -0
  485. package/dist/terminal/vt/renderer.js.map +1 -0
  486. package/dist/terminal/vt/timers.d.ts +6 -0
  487. package/dist/terminal/vt/timers.d.ts.map +1 -0
  488. package/dist/terminal/vt/timers.js +16 -0
  489. package/dist/terminal/vt/timers.js.map +1 -0
  490. package/dist/terminal/vt/xterm.d.ts +142 -0
  491. package/dist/terminal/vt/xterm.d.ts.map +1 -0
  492. package/dist/terminal/vt/xterm.js +32 -0
  493. package/dist/terminal/vt/xterm.js.map +1 -0
  494. package/dist/terminal-output/hx.d.ts +24 -0
  495. package/dist/terminal-output/hx.d.ts.map +1 -0
  496. package/dist/terminal-output/hx.js +25 -0
  497. package/dist/terminal-output/hx.js.map +1 -0
  498. package/dist/terminal-output/index.d.ts +92 -0
  499. package/dist/terminal-output/index.d.ts.map +1 -0
  500. package/dist/terminal-output/index.js +179 -0
  501. package/dist/terminal-output/index.js.map +1 -0
  502. package/dist/terminal-output/runs.d.ts +27 -0
  503. package/dist/terminal-output/runs.d.ts.map +1 -0
  504. package/dist/terminal-output/runs.js +66 -0
  505. package/dist/terminal-output/runs.js.map +1 -0
  506. package/dist/three/canvas.d.ts +46 -0
  507. package/dist/three/canvas.d.ts.map +1 -0
  508. package/dist/three/canvas.js +305 -0
  509. package/dist/three/canvas.js.map +1 -0
  510. package/dist/three/events.d.ts +64 -0
  511. package/dist/three/events.d.ts.map +1 -0
  512. package/dist/three/events.js +146 -0
  513. package/dist/three/events.js.map +1 -0
  514. package/dist/three/geometries.d.ts +89 -0
  515. package/dist/three/geometries.d.ts.map +1 -0
  516. package/dist/three/geometries.js +345 -0
  517. package/dist/three/geometries.js.map +1 -0
  518. package/dist/three/globals.d.ts +7 -0
  519. package/dist/three/globals.d.ts.map +1 -0
  520. package/dist/three/globals.js +20 -0
  521. package/dist/three/globals.js.map +1 -0
  522. package/dist/three/hx.d.ts +9 -0
  523. package/dist/three/hx.d.ts.map +1 -0
  524. package/dist/three/hx.js +10 -0
  525. package/dist/three/hx.js.map +1 -0
  526. package/dist/three/index.d.ts +22 -0
  527. package/dist/three/index.d.ts.map +1 -0
  528. package/dist/three/index.js +24 -0
  529. package/dist/three/index.js.map +1 -0
  530. package/dist/three/jsx-dev-runtime.d.ts +19 -0
  531. package/dist/three/jsx-dev-runtime.d.ts.map +1 -0
  532. package/dist/three/jsx-dev-runtime.js +2 -0
  533. package/dist/three/jsx-dev-runtime.js.map +1 -0
  534. package/dist/three/jsx-runtime.d.ts +19 -0
  535. package/dist/three/jsx-runtime.d.ts.map +1 -0
  536. package/dist/three/jsx-runtime.js +2 -0
  537. package/dist/three/jsx-runtime.js.map +1 -0
  538. package/dist/three/jsx.d.ts +198 -0
  539. package/dist/three/jsx.d.ts.map +1 -0
  540. package/dist/three/jsx.js +2 -0
  541. package/dist/three/jsx.js.map +1 -0
  542. package/dist/three/materials.d.ts +125 -0
  543. package/dist/three/materials.d.ts.map +1 -0
  544. package/dist/three/materials.js +229 -0
  545. package/dist/three/materials.js.map +1 -0
  546. package/dist/three/math.d.ts +146 -0
  547. package/dist/three/math.d.ts.map +1 -0
  548. package/dist/three/math.js +464 -0
  549. package/dist/three/math.js.map +1 -0
  550. package/dist/three/objects.d.ts +185 -0
  551. package/dist/three/objects.d.ts.map +1 -0
  552. package/dist/three/objects.js +309 -0
  553. package/dist/three/objects.js.map +1 -0
  554. package/dist/three/passes.d.ts +54 -0
  555. package/dist/three/passes.d.ts.map +1 -0
  556. package/dist/three/passes.js +78 -0
  557. package/dist/three/passes.js.map +1 -0
  558. package/dist/three/postprocess.d.ts +85 -0
  559. package/dist/three/postprocess.d.ts.map +1 -0
  560. package/dist/three/postprocess.js +503 -0
  561. package/dist/three/postprocess.js.map +1 -0
  562. package/dist/three/raycast.d.ts +24 -0
  563. package/dist/three/raycast.d.ts.map +1 -0
  564. package/dist/three/raycast.js +138 -0
  565. package/dist/three/raycast.js.map +1 -0
  566. package/dist/three/reconciler.d.ts +48 -0
  567. package/dist/three/reconciler.d.ts.map +1 -0
  568. package/dist/three/reconciler.js +416 -0
  569. package/dist/three/reconciler.js.map +1 -0
  570. package/dist/three/renderer-direct.d.ts +102 -0
  571. package/dist/three/renderer-direct.d.ts.map +1 -0
  572. package/dist/three/renderer-direct.js +782 -0
  573. package/dist/three/renderer-direct.js.map +1 -0
  574. package/dist/three/renderer-indirect.d.ts +68 -0
  575. package/dist/three/renderer-indirect.d.ts.map +1 -0
  576. package/dist/three/renderer-indirect.js +438 -0
  577. package/dist/three/renderer-indirect.js.map +1 -0
  578. package/dist/three/store.d.ts +81 -0
  579. package/dist/three/store.d.ts.map +1 -0
  580. package/dist/three/store.js +110 -0
  581. package/dist/three/store.js.map +1 -0
  582. package/dist/timeline/hx.d.ts +18 -0
  583. package/dist/timeline/hx.d.ts.map +1 -0
  584. package/dist/timeline/hx.js +10 -0
  585. package/dist/timeline/hx.js.map +1 -0
  586. package/dist/timeline/index.d.ts +152 -0
  587. package/dist/timeline/index.d.ts.map +1 -0
  588. package/dist/timeline/index.js +383 -0
  589. package/dist/timeline/index.js.map +1 -0
  590. package/dist/tray-host/hx.d.ts +24 -0
  591. package/dist/tray-host/hx.d.ts.map +1 -0
  592. package/dist/tray-host/hx.js +25 -0
  593. package/dist/tray-host/hx.js.map +1 -0
  594. package/dist/tray-host/index.d.ts +110 -0
  595. package/dist/tray-host/index.d.ts.map +1 -0
  596. package/dist/tray-host/index.js +191 -0
  597. package/dist/tray-host/index.js.map +1 -0
  598. package/dist/tray-host/manager.d.ts +137 -0
  599. package/dist/tray-host/manager.d.ts.map +1 -0
  600. package/dist/tray-host/manager.js +462 -0
  601. package/dist/tray-host/manager.js.map +1 -0
  602. package/dist/tray-host/notify.d.ts +22 -0
  603. package/dist/tray-host/notify.d.ts.map +1 -0
  604. package/dist/tray-host/notify.js +74 -0
  605. package/dist/tray-host/notify.js.map +1 -0
  606. package/dist/tray-host/protocol.d.ts +106 -0
  607. package/dist/tray-host/protocol.d.ts.map +1 -0
  608. package/dist/tray-host/protocol.js +191 -0
  609. package/dist/tray-host/protocol.js.map +1 -0
  610. package/dist/tree/hx.d.ts +24 -0
  611. package/dist/tree/hx.d.ts.map +1 -0
  612. package/dist/tree/hx.js +25 -0
  613. package/dist/tree/hx.js.map +1 -0
  614. package/dist/tree/index.d.ts +221 -0
  615. package/dist/tree/index.d.ts.map +1 -0
  616. package/dist/tree/index.js +751 -0
  617. package/dist/tree/index.js.map +1 -0
  618. package/dist/tree/internal.d.ts +18 -0
  619. package/dist/tree/internal.d.ts.map +1 -0
  620. package/dist/tree/internal.js +66 -0
  621. package/dist/tree/internal.js.map +1 -0
  622. package/dist/tree/rows.d.ts +177 -0
  623. package/dist/tree/rows.d.ts.map +1 -0
  624. package/dist/tree/rows.js +179 -0
  625. package/dist/tree/rows.js.map +1 -0
  626. package/package.json +166 -12
  627. package/src/ansi/cast.ts +159 -0
  628. package/src/ansi/index.ts +53 -0
  629. package/src/ansi/palette.ts +226 -0
  630. package/src/ansi/parse.ts +780 -0
  631. package/src/ansi/sgr.ts +380 -0
  632. package/src/ansi/utf8.ts +84 -0
  633. package/src/calendar/Calendar.ts +744 -0
  634. package/src/calendar/DatePicker.ts +368 -0
  635. package/src/calendar/dates.ts +307 -0
  636. package/src/calendar/index.ts +51 -0
  637. package/src/charts/components.ts +864 -0
  638. package/src/charts/data.ts +776 -0
  639. package/src/charts/hx.ts +39 -0
  640. package/src/charts/index.ts +99 -0
  641. package/src/charts/node.ts +932 -0
  642. package/src/charts/render.ts +982 -0
  643. package/src/charts/scale.ts +214 -0
  644. package/src/charts/spec.ts +122 -0
  645. package/src/charts/timers.ts +24 -0
  646. package/src/code/hx.ts +51 -0
  647. package/src/code/index.ts +174 -0
  648. package/src/code-editor/completion.ts +161 -0
  649. package/src/code-editor/doc.ts +198 -0
  650. package/src/code-editor/hx.ts +26 -0
  651. package/src/code-editor/index.ts +615 -0
  652. package/src/code-editor/node.ts +1926 -0
  653. package/src/code-language/hljs.ts +302 -0
  654. package/src/code-language/index.ts +51 -0
  655. package/src/code-language/languages/glsl.ts +120 -0
  656. package/src/code-language/languages/javascript.ts +419 -0
  657. package/src/code-language/languages/json.ts +72 -0
  658. package/src/code-language/languages/shell.ts +221 -0
  659. package/src/code-language/languages/sql.ts +165 -0
  660. package/src/code-language/lezer.ts +190 -0
  661. package/src/code-language/registry.ts +66 -0
  662. package/src/code-language/runs.ts +128 -0
  663. package/src/code-language/stream.ts +306 -0
  664. package/src/code-language/textmate.ts +134 -0
  665. package/src/code-language/theme.ts +124 -0
  666. package/src/code-language/timers.ts +36 -0
  667. package/src/code-language/types.ts +252 -0
  668. package/src/codeblock/index.ts +146 -0
  669. package/src/color-picker/ColorField.ts +333 -0
  670. package/src/color-picker/ColorPicker.ts +1069 -0
  671. package/src/color-picker/color.ts +399 -0
  672. package/src/color-picker/index.ts +50 -0
  673. package/src/desktop-calendar/eds.ts +484 -0
  674. package/src/desktop-calendar/ical.ts +119 -0
  675. package/src/desktop-calendar/index.ts +287 -0
  676. package/src/embed/client.ts +311 -0
  677. package/src/embed/host.ts +432 -0
  678. package/src/embed/index.ts +33 -0
  679. package/src/embed/timers.ts +32 -0
  680. package/src/flow/draw.ts +418 -0
  681. package/src/flow/index.ts +473 -0
  682. package/src/flow/model.ts +687 -0
  683. package/src/flow/node.ts +3694 -0
  684. package/src/flow/paths.ts +403 -0
  685. package/src/flow/types.ts +634 -0
  686. package/src/formula/hx.ts +51 -0
  687. package/src/formula/index.ts +243 -0
  688. package/src/formula/katex.ts +209 -0
  689. package/src/formula/layout.ts +876 -0
  690. package/src/formula/node.ts +467 -0
  691. package/src/html/controls.ts +244 -0
  692. package/src/html/css/cascade.ts +606 -0
  693. package/src/html/css/parse.ts +500 -0
  694. package/src/html/css/style.ts +1371 -0
  695. package/src/html/css/ua.ts +174 -0
  696. package/src/html/css/values.ts +358 -0
  697. package/src/html/dom.ts +410 -0
  698. package/src/html/hx.ts +55 -0
  699. package/src/html/index.ts +545 -0
  700. package/src/html/layout/block.ts +876 -0
  701. package/src/html/layout/boxes.ts +981 -0
  702. package/src/html/layout/flex.ts +297 -0
  703. package/src/html/layout/floats.ts +125 -0
  704. package/src/html/layout/inline.ts +870 -0
  705. package/src/html/layout/table.ts +380 -0
  706. package/src/html/node.ts +967 -0
  707. package/src/html/paint.ts +605 -0
  708. package/src/html/resources.ts +214 -0
  709. package/src/index.ts +638 -0
  710. package/src/internal/heights.ts +222 -0
  711. package/src/internal/hx.ts +53 -0
  712. package/src/internal/scroll.ts +288 -0
  713. package/src/internal/text.ts +44 -0
  714. package/src/internal/timers.ts +44 -0
  715. package/src/internal/widget.ts +92 -0
  716. package/src/markdown/ast.ts +163 -0
  717. package/src/markdown/hx.ts +51 -0
  718. package/src/markdown/index.ts +686 -0
  719. package/src/markdown/parse.ts +1037 -0
  720. package/src/markdown/spans.ts +143 -0
  721. package/src/media-player/backends.ts +155 -0
  722. package/src/media-player/control.ts +70 -0
  723. package/src/media-player/hx.ts +51 -0
  724. package/src/media-player/index.ts +378 -0
  725. package/src/media-player/mpv.ts +146 -0
  726. package/src/media-player/vlc.ts +97 -0
  727. package/src/richtext/index.ts +42 -0
  728. package/src/richtext/links.ts +78 -0
  729. package/src/richtext/menu.ts +49 -0
  730. package/src/richtext/node.ts +406 -0
  731. package/src/richtext/runs.ts +253 -0
  732. package/src/table/hx.ts +51 -0
  733. package/src/table/index.ts +1270 -0
  734. package/src/table/rows.ts +275 -0
  735. package/src/terminal/backends.ts +242 -0
  736. package/src/terminal/hx.ts +51 -0
  737. package/src/terminal/index.ts +574 -0
  738. package/src/terminal/title.ts +172 -0
  739. package/src/terminal/vt/colors.ts +247 -0
  740. package/src/terminal/vt/diff.ts +467 -0
  741. package/src/terminal/vt/fonts.ts +233 -0
  742. package/src/terminal/vt/index.ts +443 -0
  743. package/src/terminal/vt/keys.ts +369 -0
  744. package/src/terminal/vt/mouse.ts +144 -0
  745. package/src/terminal/vt/node.ts +1242 -0
  746. package/src/terminal/vt/pty.ts +334 -0
  747. package/src/terminal/vt/renderer.ts +555 -0
  748. package/src/terminal/vt/timers.ts +31 -0
  749. package/src/terminal/vt/xterm.ts +193 -0
  750. package/src/terminal-output/hx.ts +51 -0
  751. package/src/terminal-output/index.ts +340 -0
  752. package/src/terminal-output/runs.ts +79 -0
  753. package/src/three/canvas.ts +451 -0
  754. package/src/three/events.ts +197 -0
  755. package/src/three/geometries.ts +429 -0
  756. package/src/three/globals.ts +34 -0
  757. package/src/three/hx.ts +22 -0
  758. package/src/three/index.ts +98 -0
  759. package/src/three/jsx-dev-runtime.ts +27 -0
  760. package/src/three/jsx-runtime.ts +38 -0
  761. package/src/three/jsx.ts +275 -0
  762. package/src/three/materials.ts +270 -0
  763. package/src/three/math.ts +585 -0
  764. package/src/three/objects.ts +397 -0
  765. package/src/three/passes.ts +90 -0
  766. package/src/three/postprocess.ts +677 -0
  767. package/src/three/raycast.ts +189 -0
  768. package/src/three/react-reconciler.d.ts +50 -0
  769. package/src/three/reconciler.ts +624 -0
  770. package/src/three/renderer-direct.ts +1055 -0
  771. package/src/three/renderer-indirect.ts +570 -0
  772. package/src/three/store.ts +207 -0
  773. package/src/timeline/hx.ts +31 -0
  774. package/src/timeline/index.ts +603 -0
  775. package/src/tray-host/hx.ts +51 -0
  776. package/src/tray-host/index.ts +331 -0
  777. package/src/tray-host/manager.ts +639 -0
  778. package/src/tray-host/notify.ts +102 -0
  779. package/src/tray-host/protocol.ts +235 -0
  780. package/src/tree/hx.ts +51 -0
  781. package/src/tree/index.ts +1127 -0
  782. package/src/tree/internal.ts +87 -0
  783. package/src/tree/rows.ts +334 -0
  784. package/src/index.d.ts +0 -2
  785. package/src/index.js +0 -9
  786. package/src/sparkline/index.d.ts +0 -29
  787. package/src/sparkline/index.js +0 -50
  788. package/src/sparkline/node.js +0 -72
@@ -0,0 +1,306 @@
1
+ // `<Flow>` — a directed-graph editor: nodes you can drag, handles you can
2
+ // drag between, a pane you can pan and zoom, and a controlled `nodes`/`edges`
3
+ // pair that the app owns.
4
+ //
5
+ // The surface is react-flow's, because a graph editor's API is a solved
6
+ // problem and an app that has described a graph for one should not have to
7
+ // describe it again. What differs is the one thing that could not be carried
8
+ // over: react-flow renders each node as a DOM subtree and zooms with a CSS
9
+ // transform, and this renderer has neither, so a custom node type is a
10
+ // `paint` rather than a component. `./node.ts` has the argument in full.
11
+ //
12
+ // **Registration happens when this module is evaluated**, which is the
13
+ // design and not a shortcut: nothing in the package registers anything until
14
+ // an app imports the component that needs it, so `sideEffects: false` stays
15
+ // honest. Do not move it into `../index.ts` (AGENTS.md, "Tree-shaking is a
16
+ // constraint").
17
+ import React, { useEffect, useImperativeHandle, useMemo, useRef, useState, } from 'react';
18
+ import { Renderer } from 'react-x11';
19
+ import { registerElement, registeredElements } from 'react-x11/host';
20
+ import { createStyles, flattenStyle } from 'react-x11/style';
21
+ import { applyEdgeChanges, applyNodeChanges } from './model.js';
22
+ import { ELEMENT, FlowGraphNode, SELF_DAMAGED_PROPS } from './node.js';
23
+ if (!registeredElements().includes(ELEMENT)) {
24
+ registerElement(ELEMENT, {
25
+ create: (props, app) => new FlowGraphNode(props, app),
26
+ // No `semanticNames`: not one of this element's prop names is also a
27
+ // style name, and `test/flow.test.ts` is what keeps that true — the
28
+ // failure it guards against (throws in development, works in
29
+ // production) is the worst shape a bug can have.
30
+ childrenAllowed: false,
31
+ // The commit claim: changes to these damage nothing by name — the
32
+ // element's own `applyProps` diffs them into the box that actually
33
+ // changed (react-x11#301). Without this, every drag step's new `nodes`
34
+ // array identity would repaint the whole pane.
35
+ selfDamagedProps: [...SELF_DAMAGED_PROPS],
36
+ });
37
+ }
38
+ /**
39
+ * `pane` is the default for the box `<Flow>` renders: it fills its parent —
40
+ * unless the app's own style gives it a height or a `flexGrow`, in which
41
+ * case adding one would silently override what it asked for. Checked
42
+ * against the *flattened* style, so an array works too.
43
+ *
44
+ * `fill` is what the drawn pane always gets, because the app's style went on
45
+ * the box around it. `overflow: 'hidden'` there is what clips a mounted node
46
+ * body that has been panned half off the edge.
47
+ */
48
+ const styles = createStyles({
49
+ pane: { flexGrow: 1, overflow: 'hidden' },
50
+ clip: { overflow: 'hidden' },
51
+ fill: { flexGrow: 1 },
52
+ });
53
+ /**
54
+ * Commit a state update before returning, whatever lane the surrounding
55
+ * dispatch runs in.
56
+ *
57
+ * Pointer motion and the wheel dispatch at *continuous* priority, whose
58
+ * React updates the scheduler may hold across several frames — while the
59
+ * pane paints every gesture step immediately from its own state. A mounted
60
+ * node body positioned through ordinary setState therefore trails the drawn
61
+ * card by however many steps queue up, converging only when the gesture
62
+ * pauses; this is what "the content lags and catches up" looks like. The
63
+ * reconciler's own escape hatch forces the render and commit inline, so the
64
+ * body's box moves in the same frame as the card that carries it.
65
+ *
66
+ * `Renderer` is documented as an unstable escape hatch, so the shape is
67
+ * probed: a core that drops it degrades to the plain setState — laggy under
68
+ * continuous input, never wrong.
69
+ */
70
+ const flushSync = typeof Renderer
71
+ .flushSyncFromReconciler === 'function'
72
+ ? (fn) => void Renderer.flushSyncFromReconciler(fn)
73
+ : (fn) => fn();
74
+ /**
75
+ * One mounted node body. Memoized so that a *move* re-renders nothing: a
76
+ * drag or a pan changes only the overlay box's `left`/`top` — the body's
77
+ * subtree keeps its identity and React commits a style-only update. The
78
+ * compare deliberately ignores `x`/`y`, which is why `rect`'s position half
79
+ * is documented as advisory: content re-renders when the node, its
80
+ * selection, the zoom or its size change, and rides along otherwise.
81
+ *
82
+ * This is what makes a mounted node cost one box diff per drag step with no
83
+ * memoisation asked of the app — its `render` is simply not called.
84
+ */
85
+ const FlowNodeBody = React.memo(function FlowNodeBody(props) {
86
+ return props.type.render({
87
+ node: props.node,
88
+ selected: props.selected,
89
+ zoom: props.zoom,
90
+ rect: {
91
+ x: props.x,
92
+ y: props.y,
93
+ width: props.width,
94
+ height: props.height,
95
+ },
96
+ });
97
+ }, (a, b) => a.type === b.type &&
98
+ a.node === b.node &&
99
+ a.selected === b.selected &&
100
+ a.zoom === b.zoom &&
101
+ a.width === b.width &&
102
+ a.height === b.height);
103
+ /**
104
+ * A directed graph.
105
+ *
106
+ * ```tsx
107
+ * const [nodes, setNodes, onNodesChange] = useNodesState([
108
+ * { id: 'a', position: { x: 0, y: 0 }, data: { label: 'read' } },
109
+ * { id: 'b', position: { x: 0, y: 120 }, data: { label: 'write' } },
110
+ * ]);
111
+ * const [edges, setEdges, onEdgesChange] = useEdgesState([
112
+ * { id: 'a-b', source: 'a', target: 'b' },
113
+ * ]);
114
+ *
115
+ * <Flow
116
+ * nodes={nodes}
117
+ * edges={edges}
118
+ * onNodesChange={onNodesChange}
119
+ * onEdgesChange={onEdgesChange}
120
+ * onConnect={(c) => setEdges((es) => addEdge(c, es))}
121
+ * fitView
122
+ * minimap
123
+ * />
124
+ * ```
125
+ *
126
+ * Leave `nodes`/`edges` out and pass `defaultNodes`/`defaultEdges` for the
127
+ * uncontrolled form, where the pane owns the arrays.
128
+ */
129
+ export function Flow(props) {
130
+ const { nodes, defaultNodes, edges, defaultEdges, onNodesChange, onEdgesChange, onSelectionChange, onWheel, style, ref, ...rest } = props;
131
+ const pane = useRef(null);
132
+ const [ownNodes, setOwnNodes] = useState(() => defaultNodes ?? []);
133
+ const [ownEdges, setOwnEdges] = useState(() => defaultEdges ?? []);
134
+ const controlledNodes = nodes !== undefined;
135
+ const controlledEdges = edges !== undefined;
136
+ const currentNodes = nodes ?? ownNodes;
137
+ const currentEdges = edges ?? ownEdges;
138
+ // The controlled/uncontrolled fork, and the whole of it: the pane always
139
+ // *describes* a change, and who applies it is the only difference between
140
+ // the two modes.
141
+ const handleNodesChange = (changes) => {
142
+ if (!controlledNodes) {
143
+ setOwnNodes((current) => applyNodeChanges(changes, current));
144
+ }
145
+ onNodesChange?.(changes);
146
+ };
147
+ const handleEdgesChange = (changes) => {
148
+ if (!controlledEdges) {
149
+ setOwnEdges((current) => applyEdgeChanges(changes, current));
150
+ }
151
+ onEdgesChange?.(changes);
152
+ };
153
+ useImperativeHandle(ref, () => ({
154
+ // Every method reads the node at call time rather than closing over
155
+ // it: the ref attaches after the commit that created the node, and a
156
+ // handle built once must still work for the whole mount.
157
+ getViewport: () => pane.current?.getViewport() ?? { x: 0, y: 0, zoom: 1 },
158
+ setViewport: (viewport) => pane.current?.setViewport(viewport),
159
+ zoomIn: (step) => pane.current?.zoomIn(step),
160
+ zoomOut: (step) => pane.current?.zoomOut(step),
161
+ zoomTo: (zoom) => pane.current?.zoomTo(zoom),
162
+ fitView: (options) => pane.current?.fitView(options),
163
+ setCenter: (x, y, options) => pane.current?.setCenter(x, y, options),
164
+ screenToFlowPosition: (point) => pane.current?.screenToFlowPosition(point) ?? point,
165
+ flowToScreenPosition: (point) => pane.current?.flowToScreenPosition(point) ?? point,
166
+ getNodeBounds: (id) => pane.current?.getNodeBounds(id) ?? null,
167
+ getNodesBounds: (ids) => pane.current?.getNodesBounds(ids) ?? null,
168
+ }), []);
169
+ // Selection lives in the arrays, so "it changed" is a question about them
170
+ // and not a second source of truth to keep in step.
171
+ const selectionKey = useMemo(() => {
172
+ const parts = [];
173
+ for (const node of currentNodes)
174
+ if (node.selected)
175
+ parts.push(`n:${node.id}`);
176
+ for (const edge of currentEdges)
177
+ if (edge.selected)
178
+ parts.push(`e:${edge.id}`);
179
+ return parts.join('|');
180
+ }, [currentNodes, currentEdges]);
181
+ const latest = useRef({ onSelectionChange, currentNodes, currentEdges });
182
+ useEffect(() => {
183
+ latest.current = { onSelectionChange, currentNodes, currentEdges };
184
+ });
185
+ useEffect(() => {
186
+ const { onSelectionChange: notify, currentNodes: ns, currentEdges: es, } = latest.current;
187
+ notify?.({
188
+ nodes: ns.filter((n) => n.selected),
189
+ edges: es.filter((e) => e.selected),
190
+ });
191
+ // Only when the selection itself changed: the arrays are rebuilt by
192
+ // every drag step, and re-notifying then would make a drag a storm.
193
+ }, [selectionKey]);
194
+ const flat = flattenStyle(style ?? null);
195
+ const sized = flat.height !== undefined ||
196
+ flat.flexGrow !== undefined ||
197
+ flat.flexBasis !== undefined;
198
+ // --- mounted node bodies ------------------------------------------------
199
+ //
200
+ // Only the node types that asked for one cost anything: with no `render`
201
+ // in the registry the pane is never given `onNodeBodies`, never computes a
202
+ // rect, and this half of the component is one `useState` that stays empty.
203
+ const { nodeTypes } = rest;
204
+ const mounts = useMemo(() => nodeTypes
205
+ ? Object.values(nodeTypes).some((type) => type?.render != null)
206
+ : false, [nodeTypes]);
207
+ const [bodies, setBodies] = useState([]);
208
+ // Gesture-time emissions commit inline (see `flushSync` above); the rest —
209
+ // a programmatic `fitView`, the first paint — take the ordinary path.
210
+ const handleBodies = (next, sync) => {
211
+ if (sync)
212
+ flushSync(() => setBodies(next));
213
+ else
214
+ setBodies(next);
215
+ };
216
+ const byId = useMemo(() => {
217
+ const map = new Map();
218
+ if (mounts)
219
+ for (const node of currentNodes)
220
+ map.set(node.id, node);
221
+ return map;
222
+ }, [mounts, currentNodes]);
223
+ const overlays = mounts
224
+ ? bodies.map((body) => {
225
+ const node = byId.get(body.id);
226
+ const type = node && nodeTypes?.[node.type ?? 'default'];
227
+ if (!node || !type?.render)
228
+ return null;
229
+ return React.createElement('box', {
230
+ key: body.id,
231
+ style: {
232
+ position: 'absolute',
233
+ left: body.x,
234
+ top: body.y,
235
+ width: body.width,
236
+ height: body.height,
237
+ // The box follows the zoom; what is inside it does not, so
238
+ // this is what stops a zoomed-out node spilling its form over
239
+ // the graph.
240
+ overflow: 'hidden',
241
+ },
242
+ }, React.createElement(FlowNodeBody, {
243
+ type: type,
244
+ node: node,
245
+ selected: body.selected,
246
+ zoom: body.zoom,
247
+ x: body.x,
248
+ y: body.y,
249
+ width: body.width,
250
+ height: body.height,
251
+ }));
252
+ })
253
+ : null;
254
+ // The pane and the bodies are siblings rather than parent and children:
255
+ // a registered element's own drawing happens *after* `super.paint` has
256
+ // painted its children, so anything mounted inside the pane would be
257
+ // painted over by the graph. Beside it, and after it, they land on top.
258
+ return React.createElement('box', { style: sized ? [styles.clip, style] : [styles.pane, style] }, React.createElement(ELEMENT, {
259
+ ...rest,
260
+ key: 'pane',
261
+ ref: pane,
262
+ nodes: currentNodes,
263
+ edges: currentEdges,
264
+ onNodesChange: handleNodesChange,
265
+ onEdgesChange: handleEdgesChange,
266
+ // The wheel and hover reach the element through the default-action
267
+ // seam now (react-x11#302): an app's own `onWheel` runs first and
268
+ // `preventDefault()` vetoes, with no forwarding here — and the bare
269
+ // `<flowgraph>` element zooms and hovers on its own.
270
+ onWheel,
271
+ onNodeBodies: mounts ? handleBodies : undefined,
272
+ style: styles.fill,
273
+ role: 'group',
274
+ 'aria-label': rest['aria-label'] ?? 'Flow graph',
275
+ }), overlays);
276
+ }
277
+ /**
278
+ * `useState` for nodes, with the change handler `<Flow>` wants already
279
+ * bound — react-flow's hook of the same name, and the shortest correct way
280
+ * to hold a graph.
281
+ *
282
+ * ```tsx
283
+ * const [nodes, setNodes, onNodesChange] = useNodesState(initialNodes);
284
+ * ```
285
+ */
286
+ export function useNodesState(initial) {
287
+ const [nodes, setNodes] = useState(() => [...initial]);
288
+ const onNodesChange = useRef((changes) => {
289
+ setNodes((current) => applyNodeChanges(changes, current));
290
+ }).current;
291
+ return [nodes, setNodes, onNodesChange];
292
+ }
293
+ /** {@link useNodesState} for edges. */
294
+ export function useEdgesState(initial) {
295
+ const [edges, setEdges] = useState(() => [...initial]);
296
+ const onEdgesChange = useRef((changes) => {
297
+ setEdges((current) => applyEdgeChanges(changes, current));
298
+ }).current;
299
+ return [edges, setEdges, onEdgesChange];
300
+ }
301
+ /** The host element name, for apps that would rather write `<flowgraph>`.
302
+ * The raw element is the whole component minus the controlled/uncontrolled
303
+ * fork and the wheel and hover wiring, which have no default-action seam. */
304
+ export { ELEMENT as FLOW_ELEMENT, FlowGraphNode };
305
+ export { addEdge, applyEdgeChanges, applyNodeChanges, connectedEdges, connectionId, resolvePalette, } from './model.js';
306
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/flow/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,158 @@
1
+ import type { BackgroundOptions, Connection, EdgeChange, EdgeMarker, FitViewOptions, FlowEdge, FlowNode, FlowNodeData, FlowNodeType, FlowPalette, FlowRect, HandleAnchor, HandlePosition, HandleSpec, MarkerType, NodeChange, TextOptions, Viewport, XYPosition } from './types.js';
2
+ export declare const NODE_PAD_X = 14;
3
+ export declare const NODE_PAD_Y = 11;
4
+ export declare const NODE_LABEL_SIZE = 13;
5
+ export declare const NODE_DESC_SIZE = 11;
6
+ export declare const NODE_MIN_WIDTH = 110;
7
+ export declare const NODE_MAX_WIDTH = 260;
8
+ export declare const NODE_MIN_HEIGHT = 40;
9
+ /** Handle radius in graph units. */
10
+ export declare const HANDLE_RADIUS = 4.5;
11
+ /** Resize grip half-width, and how far outside one a press still grabs it. */
12
+ export declare const RESIZE_GRIP = 3.5;
13
+ export declare const RESIZE_SLOP = 4;
14
+ /** Floors for a resize, when the node names none. Small enough to be a
15
+ * badge, big enough that a node cannot be dragged out of existence. */
16
+ export declare const MIN_NODE_WIDTH = 48;
17
+ export declare const MIN_NODE_HEIGHT = 32;
18
+ /** The strip a `render` node keeps for its title and for dragging. */
19
+ export declare const NODE_HEADER = 26;
20
+ /** How far a `render` node's body is inset from its own border, so the
21
+ * resize grips and the border stay the pane's to hit. */
22
+ export declare const NODE_BODY_INSET = 5;
23
+ /** Below this the mounted body is not worth showing: it is laid out at its
24
+ * natural size, so a small box would show a corner of a form. */
25
+ export declare const RENDER_ZOOM = 0.6;
26
+ /** How far outside a handle a press still counts as grabbing it. */
27
+ export declare const HANDLE_SLOP = 5;
28
+ /** How far from an edge a press still counts as hitting it. */
29
+ export declare const EDGE_SLOP = 6;
30
+ /** How far a step/smoothstep edge leaves a node before it turns. */
31
+ export declare const EDGE_STEP_OFFSET = 18;
32
+ export declare const DEFAULT_MARKER_SIZE = 11;
33
+ export declare const DEFAULT_MIN_ZOOM = 0.2;
34
+ export declare const DEFAULT_MAX_ZOOM = 2.5;
35
+ export declare const ZOOM_STEP = 1.2;
36
+ /**
37
+ * Fold position/select/remove/add/replace changes into a node array — the
38
+ * reducer half of the controlled contract, and the body of `useNodesState`.
39
+ *
40
+ * Returns the array it was given when nothing applied, so a `useMemo` or a
41
+ * `React.memo` above it is not defeated by an edit that changed nothing.
42
+ */
43
+ export declare function applyNodeChanges<Data = FlowNodeData>(changes: readonly NodeChange<Data>[], nodes: readonly FlowNode<Data>[]): FlowNode<Data>[];
44
+ /** {@link applyNodeChanges} for edges. Removing a node does *not* remove its
45
+ * edges — that is the app's call, and `removeConnectedEdges` is the helper. */
46
+ export declare function applyEdgeChanges<Data = unknown>(changes: readonly EdgeChange<Data>[], edges: readonly FlowEdge<Data>[]): FlowEdge<Data>[];
47
+ /** The id `addEdge` gives a connection it turned into an edge. Derived from
48
+ * the endpoints so that connecting the same two handles twice is idempotent
49
+ * rather than a duplicate nobody can tell apart. */
50
+ export declare function connectionId(connection: Connection): string;
51
+ /**
52
+ * Add the edge a connection describes, unless it is already there. Takes an
53
+ * edge as well as a `Connection`, so `addEdge({ ...connection, animated:
54
+ * true }, edges)` reads the way it does in react-flow.
55
+ */
56
+ export declare function addEdge<Data = unknown>(connection: Connection | (Partial<FlowEdge<Data>> & Connection), edges: readonly FlowEdge<Data>[]): FlowEdge<Data>[];
57
+ /** Every edge with an end on one of these nodes — what a delete usually
58
+ * wants to take with it. */
59
+ export declare function connectedEdges<Data = unknown>(ids: readonly string[], edges: readonly FlowEdge<Data>[]): FlowEdge<Data>[];
60
+ export declare function snapTo(value: number, grid: number): number;
61
+ /** Which way an edge leaves a side. */
62
+ export declare function handleDirection(position: HandlePosition): XYPosition;
63
+ /** The handles a node carries: its own, else its type's, else the pair every
64
+ * node has — a target in and a source out. */
65
+ export declare function resolveHandles<Data>(node: FlowNode<Data>, type: FlowNodeType<Data> | undefined): readonly HandleSpec[];
66
+ /** Place a handle on a node's box. Graph space, and the centre of the dot. */
67
+ export declare function handleAnchor(nodeId: string, rect: FlowRect, spec: HandleSpec): HandleAnchor;
68
+ /**
69
+ * How big a node is when it does not say. The label decides the width, one
70
+ * or two lines decide the height, and both are clamped — an unbounded label
71
+ * would otherwise turn one long string into a node wider than the pane.
72
+ */
73
+ export declare function measureNode<Data>(node: FlowNode<Data>, type: FlowNodeType<Data> | undefined, measure: (text: string, options?: TextOptions) => number): {
74
+ width: number;
75
+ height: number;
76
+ };
77
+ /** The box around a set of rects, or null when there are none. */
78
+ export declare function boundsOf(rects: readonly FlowRect[]): FlowRect | null;
79
+ /** The box around two boxes. */
80
+ export declare function unionRects(a: FlowRect, b: FlowRect): FlowRect;
81
+ /** A box grown by `m` on every side; negative shrinks. */
82
+ export declare function inflateRect(r: FlowRect, m: number): FlowRect;
83
+ /** The overlap of two boxes, or null when they have none. */
84
+ export declare function intersectRects(a: FlowRect, b: FlowRect): FlowRect | null;
85
+ export declare function rectsOverlap(a: FlowRect, b: FlowRect): boolean;
86
+ export declare function rectContains(r: FlowRect, p: XYPosition): boolean;
87
+ export declare function clamp(value: number, lo: number, hi: number): number;
88
+ /**
89
+ * The viewport that frames `bounds` inside a pane of `size`. Zoom first —
90
+ * the smaller of the two axis ratios, so nothing is cut — then translate so
91
+ * the scaled bounds land centred.
92
+ */
93
+ export declare function fitViewport(bounds: FlowRect, size: {
94
+ width: number;
95
+ height: number;
96
+ }, options: FitViewOptions | undefined, limits: {
97
+ minZoom: number;
98
+ maxZoom: number;
99
+ }): Viewport;
100
+ /** The eight grips on a node's border, as unit directions. */
101
+ export declare const RESIZE_DIRECTIONS: readonly XYPosition[];
102
+ /** Where a grip sits on a box. */
103
+ export declare function gripPoint(rect: FlowRect, dir: XYPosition): XYPosition;
104
+ /**
105
+ * Drag one grip and get the box it makes. The edges the grip does not own
106
+ * stay exactly where they were — which is what makes a resize from the
107
+ * top-left move the node's origin and one from the bottom-right not.
108
+ *
109
+ * Clamped to the minimum by moving the dragged edge back, never by moving
110
+ * the opposite one: a node held at its floor must not creep across the
111
+ * canvas while the pointer keeps going.
112
+ */
113
+ export declare function resizeRect(origin: FlowRect, dir: XYPosition, dx: number, dy: number, limits: {
114
+ minWidth: number;
115
+ minHeight: number;
116
+ }, snap?: (value: number, axis: 0 | 1) => number): FlowRect;
117
+ /**
118
+ * Can these two handles be joined? A source only meets a target in
119
+ * `'strict'` mode; `'loose'` asks only that the two ends are different
120
+ * nodes, for graphs whose handles are not typed.
121
+ */
122
+ export declare function canConnect(from: {
123
+ nodeId: string;
124
+ type: 'source' | 'target';
125
+ }, to: {
126
+ nodeId: string;
127
+ type: 'source' | 'target';
128
+ }, mode: 'strict' | 'loose'): boolean;
129
+ /** Orient a finished gesture into a `Connection`: whichever end is the
130
+ * source becomes `source`, whichever way round the user dragged. */
131
+ export declare function orientConnection(from: {
132
+ nodeId: string;
133
+ handleId: string | null;
134
+ type: 'source' | 'target';
135
+ }, to: {
136
+ nodeId: string;
137
+ handleId: string | null;
138
+ type: 'source' | 'target';
139
+ }): Connection;
140
+ /** Perceived lightness, 0-1, or null for a colour that would not parse. Only
141
+ * used to pick between two hard-coded fallbacks, never to compute one. */
142
+ export declare function lightness(color: string | undefined): number | null;
143
+ /**
144
+ * The pane's colours: the desktop palette where it has an opinion, a
145
+ * hard-coded scheme where it does not, and the app's `palette` prop over
146
+ * both.
147
+ *
148
+ * Every token is taken by its own name. A node is `surface` and the pane is
149
+ * `background` — "the ground" and "what is raised off it", which is exactly
150
+ * the distinction core's palette draws, and the reason a card on a dark
151
+ * desktop is a card you can see.
152
+ */
153
+ export declare function resolvePalette(theme: Record<string, unknown> | null, overrides?: Partial<FlowPalette>): FlowPalette;
154
+ export declare function normalizeBackground(value: BackgroundOptions | string | boolean | undefined): Required<Omit<BackgroundOptions, 'color'>> & {
155
+ color?: string;
156
+ };
157
+ export declare function normalizeMarker(marker: MarkerType | EdgeMarker | null | undefined): EdgeMarker | null;
158
+ //# sourceMappingURL=model.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/flow/model.ts"],"names":[],"mappings":"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"}