@pibbl/core 0.0.1 → 0.0.3-alpha.109.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 (683) hide show
  1. package/README.md +1 -1
  2. package/THIRD_PARTY_NOTICES.txt +81 -0
  3. package/dist/features/machines/animation.d.ts +64 -0
  4. package/dist/features/machines/animation.js +55 -0
  5. package/dist/features/machines/animation.js.map +7 -0
  6. package/dist/features/machines/animation.mjs +1 -0
  7. package/dist/features/machines/assign.d.ts +16 -0
  8. package/dist/features/machines/assign.js +15 -0
  9. package/dist/features/machines/assign.js.map +7 -0
  10. package/dist/features/machines/callback.d.ts +9 -0
  11. package/dist/features/machines/callback.js +7 -0
  12. package/dist/features/machines/callback.js.map +7 -0
  13. package/dist/features/machines/hook.d.ts +30 -0
  14. package/dist/features/machines/hook.js +37 -0
  15. package/dist/features/machines/hook.js.map +7 -0
  16. package/dist/features/machines/index.d.ts +6 -0
  17. package/dist/features/machines/index.js +12 -0
  18. package/dist/features/machines/index.js.map +7 -0
  19. package/dist/features/machines/index.mjs +1 -0
  20. package/dist/features/machines/runtime.d.ts +18 -0
  21. package/dist/features/machines/runtime.js +363 -0
  22. package/dist/features/machines/runtime.js.map +7 -0
  23. package/dist/features/machines/types.d.ts +164 -0
  24. package/dist/features/physics/2d-geometry.d.ts +3 -3
  25. package/dist/features/physics/2d-geometry.js.map +1 -1
  26. package/dist/features/physics/2d-testing.d.ts +1 -1
  27. package/dist/features/physics/2d-testing.js +2 -2
  28. package/dist/features/physics/2d-testing.js.map +2 -2
  29. package/dist/features/physics/2d.d.ts +115 -62
  30. package/dist/features/physics/2d.js +59 -28
  31. package/dist/features/physics/2d.js.map +2 -2
  32. package/dist/features/physics/lib/2d/canvas/components.js +25 -21
  33. package/dist/features/physics/lib/2d/canvas/components.js.map +2 -2
  34. package/dist/features/physics/lib/2d/canvas/presentation.js +1 -2
  35. package/dist/features/physics/lib/2d/canvas/presentation.js.map +2 -2
  36. package/dist/features/physics/lib/2d/collision/casts.js +4 -2
  37. package/dist/features/physics/lib/2d/collision/casts.js.map +2 -2
  38. package/dist/features/physics/lib/2d/query-types.d.ts +6 -0
  39. package/dist/features/physics/lib/2d/runtime/controller.d.ts +7 -6
  40. package/dist/features/physics/lib/2d/runtime/controller.js +1 -1
  41. package/dist/features/physics/lib/2d/runtime/controller.js.map +2 -2
  42. package/dist/features/physics/lib/2d/runtime/obstacles.js +9 -11
  43. package/dist/features/physics/lib/2d/runtime/obstacles.js.map +2 -2
  44. package/dist/features/physics/lib/2d/shapes.js +8 -9
  45. package/dist/features/physics/lib/2d/shapes.js.map +2 -2
  46. package/dist/features/physics/lib/2d/types.d.ts +8 -30
  47. package/dist/features/physics/lib/2d/world/queries.d.ts +7 -6
  48. package/dist/features/physics/lib/2d/world/queries.js.map +2 -2
  49. package/dist/features/physics/lib/2d/world/rapier.js +22 -26
  50. package/dist/features/physics/lib/2d/world/rapier.js.map +2 -2
  51. package/dist/features/sprites/formats/aseprite.d.ts +5 -0
  52. package/dist/features/sprites/formats/texture-packer.d.ts +5 -0
  53. package/dist/features/sprites/index.d.ts +6 -0
  54. package/dist/features/sprites/loader.d.ts +25 -0
  55. package/dist/features/sprites/loader.js +6 -3
  56. package/dist/features/sprites/loader.js.map +2 -2
  57. package/dist/features/sprites/model.d.ts +75 -0
  58. package/dist/features/sprites/sprite.d.ts +22 -0
  59. package/dist/features/textures/index.d.ts +12 -2
  60. package/dist/features/textures/index.js +33 -1
  61. package/dist/features/textures/index.js.map +2 -2
  62. package/dist/features/textures/lib/chemical-field.d.ts +56 -0
  63. package/dist/features/textures/lib/chemical-field.js +154 -0
  64. package/dist/features/textures/lib/chemical-field.js.map +7 -0
  65. package/dist/features/textures/lib/chemical-recipes.d.ts +119 -0
  66. package/dist/features/textures/lib/chemical-recipes.js +275 -0
  67. package/dist/features/textures/lib/chemical-recipes.js.map +7 -0
  68. package/dist/features/textures/lib/definitions.d.ts +3 -18
  69. package/dist/features/textures/lib/definitions.js +17 -24
  70. package/dist/features/textures/lib/definitions.js.map +2 -2
  71. package/dist/features/textures/lib/geometric-patterns.d.ts +149 -0
  72. package/dist/features/textures/lib/geometric-patterns.js +305 -0
  73. package/dist/features/textures/lib/geometric-patterns.js.map +7 -0
  74. package/dist/features/textures/lib/gray-scott.d.ts +55 -0
  75. package/dist/features/textures/lib/gray-scott.js +37 -0
  76. package/dist/features/textures/lib/gray-scott.js.map +7 -0
  77. package/dist/features/textures/lib/palette.js +1 -3
  78. package/dist/features/textures/lib/palette.js.map +2 -2
  79. package/dist/features/textures/lib/patterns.d.ts +123 -0
  80. package/dist/features/textures/lib/patterns.js +344 -0
  81. package/dist/features/textures/lib/patterns.js.map +7 -0
  82. package/dist/features/textures/lib/rain-drops.js +2 -1
  83. package/dist/features/textures/lib/rain-drops.js.map +2 -2
  84. package/dist/features/textures/lib/reaction-diffusion.d.ts +3 -2
  85. package/dist/features/textures/lib/reaction-diffusion.js +9 -20
  86. package/dist/features/textures/lib/reaction-diffusion.js.map +2 -2
  87. package/dist/features/textures/lib/simulation.d.ts +10 -4
  88. package/dist/features/textures/lib/simulation.js +23 -13
  89. package/dist/features/textures/lib/simulation.js.map +2 -2
  90. package/dist/features/textures/lib/wasm/electric.js +8 -1
  91. package/dist/features/textures/lib/wasm/electric.js.map +2 -2
  92. package/dist/features/textures/lib/water-surface.js +1 -3
  93. package/dist/features/textures/lib/water-surface.js.map +2 -2
  94. package/dist/features/viz/index.d.ts +92 -5
  95. package/dist/features/viz/index.js +202 -4
  96. package/dist/features/viz/index.js.map +2 -2
  97. package/dist/features/viz/inspection/bar.d.ts +79 -0
  98. package/dist/features/viz/inspection/bar.js +49 -0
  99. package/dist/features/viz/inspection/bar.js.map +7 -0
  100. package/dist/features/viz/inspection/candle.d.ts +156 -0
  101. package/dist/features/viz/inspection/candle.js +120 -0
  102. package/dist/features/viz/inspection/candle.js.map +7 -0
  103. package/dist/features/viz/inspection/capture-types.d.ts +65 -0
  104. package/dist/features/viz/inspection/capture.d.ts +16 -0
  105. package/dist/features/viz/inspection/capture.js +49 -0
  106. package/dist/features/viz/inspection/capture.js.map +7 -0
  107. package/dist/features/viz/inspection/handler.d.ts +36 -0
  108. package/dist/features/viz/inspection/handler.js +91 -0
  109. package/dist/features/viz/inspection/handler.js.map +7 -0
  110. package/dist/features/viz/inspection/ohlc-bar.d.ts +132 -0
  111. package/dist/features/viz/inspection/ohlc-bar.js +118 -0
  112. package/dist/features/viz/inspection/ohlc-bar.js.map +7 -0
  113. package/dist/features/viz/inspection/owned-ref.d.ts +16 -0
  114. package/dist/features/viz/inspection/owned-ref.js +99 -0
  115. package/dist/features/viz/inspection/owned-ref.js.map +7 -0
  116. package/dist/features/viz/inspection/painted-point.d.ts +22 -0
  117. package/dist/features/viz/inspection/painted-point.js +29 -0
  118. package/dist/features/viz/inspection/painted-point.js.map +7 -0
  119. package/dist/features/viz/inspection/queries.d.ts +100 -0
  120. package/dist/features/viz/inspection/queries.js +192 -0
  121. package/dist/features/viz/inspection/queries.js.map +7 -0
  122. package/dist/features/viz/inspection/query-types.d.ts +177 -0
  123. package/dist/features/viz/inspection/volume.d.ts +104 -0
  124. package/dist/features/viz/inspection/volume.js +95 -0
  125. package/dist/features/viz/inspection/volume.js.map +7 -0
  126. package/dist/features/viz/inspection.d.ts +19 -0
  127. package/dist/features/viz/inspection.js +54 -0
  128. package/dist/features/viz/inspection.js.map +7 -0
  129. package/dist/features/viz/inspection.mjs +1 -0
  130. package/dist/features/viz/lib/area-series.d.ts +62 -0
  131. package/dist/features/viz/lib/area-series.js +120 -0
  132. package/dist/features/viz/lib/area-series.js.map +7 -0
  133. package/dist/features/viz/lib/axis-labels.d.ts +2 -0
  134. package/dist/features/viz/lib/axis-labels.js +41 -0
  135. package/dist/features/viz/lib/axis-labels.js.map +7 -0
  136. package/dist/features/viz/lib/axis-title.d.ts +23 -0
  137. package/dist/features/viz/lib/axis-title.js +24 -0
  138. package/dist/features/viz/lib/axis-title.js.map +7 -0
  139. package/dist/features/viz/lib/axis.d.ts +1 -1
  140. package/dist/features/viz/lib/axis.js +50 -50
  141. package/dist/features/viz/lib/axis.js.map +2 -2
  142. package/dist/features/viz/lib/bar-scale.d.ts +7 -0
  143. package/dist/features/viz/lib/bar-scale.js +34 -0
  144. package/dist/features/viz/lib/bar-scale.js.map +7 -0
  145. package/dist/features/viz/lib/bar-series.d.ts +3 -1
  146. package/dist/features/viz/lib/bar-series.js +21 -5
  147. package/dist/features/viz/lib/bar-series.js.map +2 -2
  148. package/dist/features/viz/lib/baseline-series.d.ts +55 -0
  149. package/dist/features/viz/lib/baseline-series.js +136 -0
  150. package/dist/features/viz/lib/baseline-series.js.map +7 -0
  151. package/dist/features/viz/lib/candlestick-series.d.ts +62 -0
  152. package/dist/features/viz/lib/candlestick-series.js +150 -0
  153. package/dist/features/viz/lib/candlestick-series.js.map +7 -0
  154. package/dist/features/viz/lib/censored-point-series.d.ts +71 -0
  155. package/dist/features/viz/lib/censored-point-series.js +129 -0
  156. package/dist/features/viz/lib/censored-point-series.js.map +7 -0
  157. package/dist/features/viz/lib/chart-lines.d.ts +41 -0
  158. package/dist/features/viz/lib/chart-lines.js +32 -0
  159. package/dist/features/viz/lib/chart-lines.js.map +7 -0
  160. package/dist/features/viz/lib/color-context.d.ts +4 -0
  161. package/dist/features/viz/lib/color-context.js +41 -0
  162. package/dist/features/viz/lib/color-context.js.map +7 -0
  163. package/dist/features/viz/lib/color-math.d.ts +4 -0
  164. package/dist/features/viz/lib/color-math.js +31 -0
  165. package/dist/features/viz/lib/color-math.js.map +7 -0
  166. package/dist/features/viz/lib/color-types.d.ts +53 -0
  167. package/dist/features/viz/lib/curve-definition.d.ts +49 -0
  168. package/dist/features/viz/lib/curve-definition.js +142 -0
  169. package/dist/features/viz/lib/curve-definition.js.map +7 -0
  170. package/dist/features/viz/lib/diverging-color-scale.d.ts +11 -0
  171. package/dist/features/viz/lib/diverging-color-scale.js +51 -0
  172. package/dist/features/viz/lib/diverging-color-scale.js.map +7 -0
  173. package/dist/features/viz/lib/domain-navigation.d.ts +40 -0
  174. package/dist/features/viz/lib/domain-navigation.js +77 -0
  175. package/dist/features/viz/lib/domain-navigation.js.map +7 -0
  176. package/dist/features/viz/lib/editable-chart-elements.d.ts +178 -0
  177. package/dist/features/viz/lib/editable-chart-elements.js +733 -0
  178. package/dist/features/viz/lib/editable-chart-elements.js.map +7 -0
  179. package/dist/features/viz/lib/financial-aggregation.d.ts +127 -0
  180. package/dist/features/viz/lib/financial-aggregation.js +116 -0
  181. package/dist/features/viz/lib/financial-aggregation.js.map +7 -0
  182. package/dist/features/viz/lib/financial-autoscale.d.ts +64 -0
  183. package/dist/features/viz/lib/financial-autoscale.js +61 -0
  184. package/dist/features/viz/lib/financial-autoscale.js.map +7 -0
  185. package/dist/features/viz/lib/financial-comparison.d.ts +62 -0
  186. package/dist/features/viz/lib/financial-comparison.js +98 -0
  187. package/dist/features/viz/lib/financial-comparison.js.map +7 -0
  188. package/dist/features/viz/lib/financial-geometry.d.ts +77 -0
  189. package/dist/features/viz/lib/financial-geometry.js +67 -0
  190. package/dist/features/viz/lib/financial-geometry.js.map +7 -0
  191. package/dist/features/viz/lib/financial-indicators.d.ts +114 -0
  192. package/dist/features/viz/lib/financial-indicators.js +135 -0
  193. package/dist/features/viz/lib/financial-indicators.js.map +7 -0
  194. package/dist/features/viz/lib/financial-oscillators.d.ts +171 -0
  195. package/dist/features/viz/lib/financial-oscillators.js +265 -0
  196. package/dist/features/viz/lib/financial-oscillators.js.map +7 -0
  197. package/dist/features/viz/lib/graph/bipartite.d.ts +14 -0
  198. package/dist/features/viz/lib/graph/bipartite.js +250 -0
  199. package/dist/features/viz/lib/graph/bipartite.js.map +7 -0
  200. package/dist/features/viz/lib/graph/chord.d.ts +44 -0
  201. package/dist/features/viz/lib/graph/chord.js +348 -0
  202. package/dist/features/viz/lib/graph/chord.js.map +7 -0
  203. package/dist/features/viz/lib/graph/dependency.d.ts +26 -0
  204. package/dist/features/viz/lib/graph/dependency.js +140 -0
  205. package/dist/features/viz/lib/graph/dependency.js.map +7 -0
  206. package/dist/features/viz/lib/graph/force.d.ts +28 -0
  207. package/dist/features/viz/lib/graph/force.js +580 -0
  208. package/dist/features/viz/lib/graph/force.js.map +7 -0
  209. package/dist/features/viz/lib/graph/hierarchy.d.ts +21 -0
  210. package/dist/features/viz/lib/graph/hierarchy.js +112 -0
  211. package/dist/features/viz/lib/graph/hierarchy.js.map +7 -0
  212. package/dist/features/viz/lib/graph/icicle.d.ts +16 -0
  213. package/dist/features/viz/lib/graph/icicle.js +153 -0
  214. package/dist/features/viz/lib/graph/icicle.js.map +7 -0
  215. package/dist/features/viz/lib/graph/matrix.d.ts +30 -0
  216. package/dist/features/viz/lib/graph/matrix.js +243 -0
  217. package/dist/features/viz/lib/graph/matrix.js.map +7 -0
  218. package/dist/features/viz/lib/graph/neighborhood.d.ts +11 -0
  219. package/dist/features/viz/lib/graph/neighborhood.js +281 -0
  220. package/dist/features/viz/lib/graph/neighborhood.js.map +7 -0
  221. package/dist/features/viz/lib/graph/routes.d.ts +35 -0
  222. package/dist/features/viz/lib/graph/routes.js +101 -0
  223. package/dist/features/viz/lib/graph/routes.js.map +7 -0
  224. package/dist/features/viz/lib/graph/sankey.d.ts +44 -0
  225. package/dist/features/viz/lib/graph/sankey.js +341 -0
  226. package/dist/features/viz/lib/graph/sankey.js.map +7 -0
  227. package/dist/features/viz/lib/graph/shared.d.ts +59 -0
  228. package/dist/features/viz/lib/graph/shared.js +301 -0
  229. package/dist/features/viz/lib/graph/shared.js.map +7 -0
  230. package/dist/features/viz/lib/graph/tree.d.ts +11 -0
  231. package/dist/features/viz/lib/graph/tree.js +232 -0
  232. package/dist/features/viz/lib/graph/tree.js.map +7 -0
  233. package/dist/features/viz/lib/graph/treemap.d.ts +20 -0
  234. package/dist/features/viz/lib/graph/treemap.js +227 -0
  235. package/dist/features/viz/lib/graph/treemap.js.map +7 -0
  236. package/dist/features/viz/lib/graph/types.d.ts +1097 -0
  237. package/dist/features/viz/lib/hover-card.js +8 -9
  238. package/dist/features/viz/lib/hover-card.js.map +2 -2
  239. package/dist/features/viz/lib/hover-data.d.ts +1 -1
  240. package/dist/features/viz/lib/hover-data.js +6 -3
  241. package/dist/features/viz/lib/hover-data.js.map +2 -2
  242. package/dist/features/viz/lib/hover-types.d.ts +5 -5
  243. package/dist/features/viz/lib/interval-band-series.d.ts +49 -0
  244. package/dist/features/viz/lib/interval-band-series.js +136 -0
  245. package/dist/features/viz/lib/interval-band-series.js.map +7 -0
  246. package/dist/features/viz/lib/interval-diamond-series.d.ts +43 -0
  247. package/dist/features/viz/lib/interval-diamond-series.js +122 -0
  248. package/dist/features/viz/lib/interval-diamond-series.js.map +7 -0
  249. package/dist/features/viz/lib/interval-series.d.ts +79 -0
  250. package/dist/features/viz/lib/interval-series.js +158 -0
  251. package/dist/features/viz/lib/interval-series.js.map +7 -0
  252. package/dist/features/viz/lib/layout-pie.js +9 -13
  253. package/dist/features/viz/lib/layout-pie.js.map +2 -2
  254. package/dist/features/viz/lib/line-series.d.ts +1 -1
  255. package/dist/features/viz/lib/line-series.js +47 -28
  256. package/dist/features/viz/lib/line-series.js.map +2 -2
  257. package/dist/features/viz/lib/linear-scale-component.d.ts +7 -0
  258. package/dist/features/viz/lib/linear-scale-component.js +18 -0
  259. package/dist/features/viz/lib/linear-scale-component.js.map +7 -0
  260. package/dist/features/viz/lib/linear-scale.js +1 -1
  261. package/dist/features/viz/lib/linear-scale.js.map +2 -2
  262. package/dist/features/viz/lib/log-scale-component.d.ts +7 -0
  263. package/dist/features/viz/lib/log-scale-component.js +19 -0
  264. package/dist/features/viz/lib/log-scale-component.js.map +7 -0
  265. package/dist/features/viz/lib/log-scale.d.ts +2 -0
  266. package/dist/features/viz/lib/log-scale.js +53 -0
  267. package/dist/features/viz/lib/log-scale.js.map +7 -0
  268. package/dist/features/viz/lib/monotone-curve.d.ts +11 -0
  269. package/dist/features/viz/lib/monotone-curve.js +63 -0
  270. package/dist/features/viz/lib/monotone-curve.js.map +7 -0
  271. package/dist/features/viz/lib/nearest.d.ts +9 -9
  272. package/dist/features/viz/lib/nearest.js.map +1 -1
  273. package/dist/features/viz/lib/numeric-range-interpolation.d.ts +15 -0
  274. package/dist/features/viz/lib/numeric-range-interpolation.js +36 -0
  275. package/dist/features/viz/lib/numeric-range-interpolation.js.map +7 -0
  276. package/dist/features/viz/lib/numeric-ticks.d.ts +38 -0
  277. package/dist/features/viz/lib/numeric-ticks.js +54 -0
  278. package/dist/features/viz/lib/numeric-ticks.js.map +7 -0
  279. package/dist/features/viz/lib/ohlc-bar-series.d.ts +55 -0
  280. package/dist/features/viz/lib/ohlc-bar-series.js +168 -0
  281. package/dist/features/viz/lib/ohlc-bar-series.js.map +7 -0
  282. package/dist/features/viz/lib/paired-series.d.ts +44 -0
  283. package/dist/features/viz/lib/paired-series.js +93 -0
  284. package/dist/features/viz/lib/paired-series.js.map +7 -0
  285. package/dist/features/viz/lib/pie-layout.js +2 -1
  286. package/dist/features/viz/lib/pie-layout.js.map +2 -2
  287. package/dist/features/viz/lib/plot-series.js +11 -6
  288. package/dist/features/viz/lib/plot-series.js.map +2 -2
  289. package/dist/features/viz/lib/plot-types.d.ts +4 -3
  290. package/dist/features/viz/lib/point-scale-component.d.ts +7 -0
  291. package/dist/features/viz/lib/point-scale-component.js +19 -0
  292. package/dist/features/viz/lib/point-scale-component.js.map +7 -0
  293. package/dist/features/viz/lib/point-scale.d.ts +2 -0
  294. package/dist/features/viz/lib/point-scale.js +45 -0
  295. package/dist/features/viz/lib/point-scale.js.map +7 -0
  296. package/dist/features/viz/lib/point-series.d.ts +1 -1
  297. package/dist/features/viz/lib/point-series.js +36 -9
  298. package/dist/features/viz/lib/point-series.js.map +2 -2
  299. package/dist/features/viz/lib/point-types.d.ts +5 -2
  300. package/dist/features/viz/lib/reference-band.d.ts +16 -0
  301. package/dist/features/viz/lib/reference-band.js +30 -0
  302. package/dist/features/viz/lib/reference-band.js.map +7 -0
  303. package/dist/features/viz/lib/scale-adjust.js +9 -4
  304. package/dist/features/viz/lib/scale-adjust.js.map +2 -2
  305. package/dist/features/viz/lib/scale-context.d.ts +5 -4
  306. package/dist/features/viz/lib/scale-context.js +15 -11
  307. package/dist/features/viz/lib/scale-context.js.map +2 -2
  308. package/dist/features/viz/lib/scale-provider.d.ts +2 -0
  309. package/dist/features/viz/lib/scale-provider.js +13 -0
  310. package/dist/features/viz/lib/scale-provider.js.map +7 -0
  311. package/dist/features/viz/lib/scale-ticks.d.ts +5 -0
  312. package/dist/features/viz/lib/scale-ticks.js +64 -0
  313. package/dist/features/viz/lib/scale-ticks.js.map +7 -0
  314. package/dist/features/viz/lib/scale-view.d.ts +4 -0
  315. package/dist/features/viz/lib/scale-view.js +21 -0
  316. package/dist/features/viz/lib/scale-view.js.map +7 -0
  317. package/dist/features/viz/lib/sequential-color-scale.d.ts +11 -0
  318. package/dist/features/viz/lib/sequential-color-scale.js +49 -0
  319. package/dist/features/viz/lib/sequential-color-scale.js.map +7 -0
  320. package/dist/features/viz/lib/series-position.d.ts +12 -0
  321. package/dist/features/viz/lib/series-position.js +44 -0
  322. package/dist/features/viz/lib/series-position.js.map +7 -0
  323. package/dist/features/viz/lib/step-curves.d.ts +19 -0
  324. package/dist/features/viz/lib/step-curves.js +53 -0
  325. package/dist/features/viz/lib/step-curves.js.map +7 -0
  326. package/dist/features/viz/lib/symlog-scale-component.d.ts +7 -0
  327. package/dist/features/viz/lib/symlog-scale-component.js +19 -0
  328. package/dist/features/viz/lib/symlog-scale-component.js.map +7 -0
  329. package/dist/features/viz/lib/symlog-scale.d.ts +2 -0
  330. package/dist/features/viz/lib/symlog-scale.js +38 -0
  331. package/dist/features/viz/lib/symlog-scale.js.map +7 -0
  332. package/dist/features/viz/lib/threshold-color-scale.d.ts +43 -0
  333. package/dist/features/viz/lib/threshold-color-scale.js +59 -0
  334. package/dist/features/viz/lib/threshold-color-scale.js.map +7 -0
  335. package/dist/features/viz/lib/trading-time-mapping.d.ts +32 -0
  336. package/dist/features/viz/lib/trading-time-mapping.js +89 -0
  337. package/dist/features/viz/lib/trading-time-mapping.js.map +7 -0
  338. package/dist/features/viz/lib/trading-time-scale.d.ts +83 -0
  339. package/dist/features/viz/lib/trading-time-scale.js +96 -0
  340. package/dist/features/viz/lib/trading-time-scale.js.map +7 -0
  341. package/dist/features/viz/lib/trajectory-series.d.ts +71 -0
  342. package/dist/features/viz/lib/trajectory-series.js +111 -0
  343. package/dist/features/viz/lib/trajectory-series.js.map +7 -0
  344. package/dist/features/viz/lib/types.d.ts +114 -21
  345. package/dist/features/viz/lib/use-bar-scale.d.ts +8 -0
  346. package/dist/features/viz/lib/use-bar-scale.js +9 -0
  347. package/dist/features/viz/lib/use-bar-scale.js.map +7 -0
  348. package/dist/features/viz/lib/use-continuous-scale.d.ts +8 -0
  349. package/dist/features/viz/lib/use-continuous-scale.js +14 -0
  350. package/dist/features/viz/lib/use-continuous-scale.js.map +7 -0
  351. package/dist/features/viz/lib/use-linear-scale.d.ts +8 -0
  352. package/dist/features/viz/lib/use-linear-scale.js +9 -0
  353. package/dist/features/viz/lib/use-linear-scale.js.map +7 -0
  354. package/dist/features/viz/lib/use-log-scale.d.ts +8 -0
  355. package/dist/features/viz/lib/use-log-scale.js +9 -0
  356. package/dist/features/viz/lib/use-log-scale.js.map +7 -0
  357. package/dist/features/viz/lib/use-point-scale.d.ts +8 -0
  358. package/dist/features/viz/lib/use-point-scale.js +9 -0
  359. package/dist/features/viz/lib/use-point-scale.js.map +7 -0
  360. package/dist/features/viz/lib/use-symlog-scale.d.ts +8 -0
  361. package/dist/features/viz/lib/use-symlog-scale.js +9 -0
  362. package/dist/features/viz/lib/use-symlog-scale.js.map +7 -0
  363. package/dist/features/viz/lib/use-utc-scale.d.ts +8 -0
  364. package/dist/features/viz/lib/use-utc-scale.js +9 -0
  365. package/dist/features/viz/lib/use-utc-scale.js.map +7 -0
  366. package/dist/features/viz/lib/utc-labels.d.ts +12 -0
  367. package/dist/features/viz/lib/utc-labels.js +27 -0
  368. package/dist/features/viz/lib/utc-labels.js.map +7 -0
  369. package/dist/features/viz/lib/utc-scale-component.d.ts +7 -0
  370. package/dist/features/viz/lib/utc-scale-component.js +18 -0
  371. package/dist/features/viz/lib/utc-scale-component.js.map +7 -0
  372. package/dist/features/viz/lib/utc-scale.d.ts +21 -0
  373. package/dist/features/viz/lib/utc-scale.js +124 -0
  374. package/dist/features/viz/lib/utc-scale.js.map +7 -0
  375. package/dist/features/viz/lib/volume-series.d.ts +59 -0
  376. package/dist/features/viz/lib/volume-series.js +117 -0
  377. package/dist/features/viz/lib/volume-series.js.map +7 -0
  378. package/dist/features/viz/lib/weighted-point-series.d.ts +71 -0
  379. package/dist/features/viz/lib/weighted-point-series.js +169 -0
  380. package/dist/features/viz/lib/weighted-point-series.js.map +7 -0
  381. package/dist/filters/backdrop-contrast-gpu.d.ts +5 -0
  382. package/dist/filters/backdrop-contrast-gpu.js +33 -0
  383. package/dist/filters/backdrop-contrast-gpu.js.map +7 -0
  384. package/dist/filters/backdrop-contrast.d.ts +21 -0
  385. package/dist/filters/backdrop-contrast.js +61 -0
  386. package/dist/filters/backdrop-contrast.js.map +7 -0
  387. package/dist/filters/displacement.js +1 -1
  388. package/dist/filters/displacement.js.map +2 -2
  389. package/dist/filters/emboss-gpu.d.ts +4 -0
  390. package/dist/filters/emboss-gpu.js +39 -0
  391. package/dist/filters/emboss-gpu.js.map +7 -0
  392. package/dist/filters/emboss.d.ts +32 -0
  393. package/dist/filters/emboss.js +104 -0
  394. package/dist/filters/emboss.js.map +7 -0
  395. package/dist/filters/filter-executor.d.ts +11 -4
  396. package/dist/filters/filter-executor.js +104 -49
  397. package/dist/filters/filter-executor.js.map +2 -2
  398. package/dist/filters/reflected-light.js +1 -1
  399. package/dist/filters/reflected-light.js.map +2 -2
  400. package/dist/filters/reflection-gpu.d.ts +3 -1
  401. package/dist/filters/reflection-gpu.js +5 -2
  402. package/dist/filters/reflection-gpu.js.map +2 -2
  403. package/dist/filters/render-backdrop-contrast-boundary.d.ts +31 -0
  404. package/dist/filters/render-backdrop-contrast-boundary.js +116 -0
  405. package/dist/filters/render-backdrop-contrast-boundary.js.map +7 -0
  406. package/dist/filters/render-emboss-boundary.d.ts +13 -0
  407. package/dist/filters/render-emboss-boundary.js +131 -0
  408. package/dist/filters/render-emboss-boundary.js.map +7 -0
  409. package/dist/filters.d.ts +9 -5
  410. package/dist/filters.js +4 -0
  411. package/dist/filters.js.map +2 -2
  412. package/dist/index.d.ts +10 -6
  413. package/dist/index.js +18 -2
  414. package/dist/index.js.map +2 -2
  415. package/dist/internal.d.ts +4 -0
  416. package/dist/internal.js +6 -0
  417. package/dist/internal.js.map +2 -2
  418. package/dist/layout-kernel.d.ts +12 -0
  419. package/dist/layout-kernel.js +11 -0
  420. package/dist/layout-kernel.js.map +7 -0
  421. package/dist/layout-kernel.mjs +1 -0
  422. package/dist/lib/animation/definition.d.ts +5 -3
  423. package/dist/lib/animation/definition.js +29 -4
  424. package/dist/lib/animation/definition.js.map +2 -2
  425. package/dist/lib/animation/playback.d.ts +8 -0
  426. package/dist/lib/animation/playback.js +33 -11
  427. package/dist/lib/animation/playback.js.map +2 -2
  428. package/dist/lib/animation/spring.d.ts +3 -1
  429. package/dist/lib/animation/spring.js.map +2 -2
  430. package/dist/lib/animation/types.d.ts +29 -73
  431. package/dist/lib/backend/types.d.ts +13 -1
  432. package/dist/lib/backend/types.js.map +2 -2
  433. package/dist/lib/components/arc-geometry.js +2 -1
  434. package/dist/lib/components/arc-geometry.js.map +2 -2
  435. package/dist/lib/components/g.js +2 -0
  436. package/dist/lib/components/g.js.map +2 -2
  437. package/dist/lib/components/html-box.js +2 -1
  438. package/dist/lib/components/html-box.js.map +2 -2
  439. package/dist/lib/components/img.js +3 -3
  440. package/dist/lib/components/img.js.map +2 -2
  441. package/dist/lib/components/layer.js +98 -16
  442. package/dist/lib/components/layer.js.map +3 -3
  443. package/dist/lib/components/text.d.ts +16 -0
  444. package/dist/lib/components/text.js +131 -24
  445. package/dist/lib/components/text.js.map +2 -2
  446. package/dist/lib/define-primitive.d.ts +4 -2
  447. package/dist/lib/define-primitive.js +3 -1
  448. package/dist/lib/define-primitive.js.map +2 -2
  449. package/dist/lib/element/metadata.d.ts +9 -0
  450. package/dist/lib/element/metadata.js +19 -0
  451. package/dist/lib/element/metadata.js.map +2 -2
  452. package/dist/lib/element/resolve-primitive-inputs.d.ts +2 -0
  453. package/dist/lib/element/resolve-primitive-inputs.js +17 -4
  454. package/dist/lib/element/resolve-primitive-inputs.js.map +2 -2
  455. package/dist/lib/events/event-facade.d.ts +18 -0
  456. package/dist/lib/events/event-facade.js +28 -2
  457. package/dist/lib/events/event-facade.js.map +2 -2
  458. package/dist/lib/events/hit-test.js +2 -1
  459. package/dist/lib/events/hit-test.js.map +2 -2
  460. package/dist/lib/events/propagation.d.ts +2 -1
  461. package/dist/lib/events/propagation.js +22 -16
  462. package/dist/lib/events/propagation.js.map +2 -2
  463. package/dist/lib/events/registrations.d.ts +10 -0
  464. package/dist/lib/events/registrations.js +160 -5
  465. package/dist/lib/events/registrations.js.map +2 -2
  466. package/dist/lib/execute-render.js +25 -1
  467. package/dist/lib/execute-render.js.map +2 -2
  468. package/dist/lib/filter/filter-region.js +3 -10
  469. package/dist/lib/filter/filter-region.js.map +2 -2
  470. package/dist/lib/focus/focus-manager.d.ts +8 -1
  471. package/dist/lib/focus/focus-manager.js +87 -43
  472. package/dist/lib/focus/focus-manager.js.map +2 -2
  473. package/dist/lib/focus/geometry.d.ts +2 -0
  474. package/dist/lib/focus/geometry.js +6 -0
  475. package/dist/lib/focus/geometry.js.map +2 -2
  476. package/dist/lib/geometry/path-bend-guide.js +1 -1
  477. package/dist/lib/geometry/path-bend-guide.js.map +2 -2
  478. package/dist/lib/geometry/path-geometry.js +12 -11
  479. package/dist/lib/geometry/path-geometry.js.map +2 -2
  480. package/dist/lib/geometry/path-transforms.js +17 -21
  481. package/dist/lib/geometry/path-transforms.js.map +2 -2
  482. package/dist/lib/geometry/path-warp-bezier.js +3 -1
  483. package/dist/lib/geometry/path-warp-bezier.js.map +2 -2
  484. package/dist/lib/geometry/path-warp.js +1 -1
  485. package/dist/lib/geometry/path-warp.js.map +2 -2
  486. package/dist/lib/global-state.js +2 -0
  487. package/dist/lib/global-state.js.map +2 -2
  488. package/dist/lib/hooks/use-animated-value.d.ts +11 -21
  489. package/dist/lib/hooks/use-animated-value.js +23 -70
  490. package/dist/lib/hooks/use-animated-value.js.map +3 -3
  491. package/dist/lib/hooks/use-playback.js +1 -0
  492. package/dist/lib/hooks/use-playback.js.map +2 -2
  493. package/dist/lib/html/html-events.d.ts +32 -0
  494. package/dist/lib/html/html-events.js +179 -0
  495. package/dist/lib/html/html-events.js.map +7 -0
  496. package/dist/lib/html/html-service.d.ts +8 -2
  497. package/dist/lib/html/html-service.js +198 -65
  498. package/dist/lib/html/html-service.js.map +2 -2
  499. package/dist/lib/html/overlay-config.js +7 -6
  500. package/dist/lib/html/overlay-config.js.map +2 -2
  501. package/dist/lib/html/types.d.ts +29 -2
  502. package/dist/lib/layout/absolute.d.ts +11 -5
  503. package/dist/lib/layout/absolute.js +329 -55
  504. package/dist/lib/layout/absolute.js.map +3 -3
  505. package/dist/lib/layout/allocation-checkpoint-owner.d.ts +11 -0
  506. package/dist/lib/layout/allocation-checkpoint-owner.js +86 -0
  507. package/dist/lib/layout/allocation-checkpoint-owner.js.map +7 -0
  508. package/dist/lib/layout/allocation-checkpoint.d.ts +53 -0
  509. package/dist/lib/layout/allocation-checkpoint.js +463 -0
  510. package/dist/lib/layout/allocation-checkpoint.js.map +7 -0
  511. package/dist/lib/layout/allocation-dependencies.d.ts +30 -0
  512. package/dist/lib/layout/allocation-dependencies.js +90 -0
  513. package/dist/lib/layout/allocation-dependencies.js.map +7 -0
  514. package/dist/lib/layout/allocation-revision.d.ts +13 -0
  515. package/dist/lib/layout/allocation-revision.js +67 -0
  516. package/dist/lib/layout/allocation-revision.js.map +7 -0
  517. package/dist/lib/layout/box-insets.d.ts +17 -0
  518. package/dist/lib/layout/box-insets.js +138 -0
  519. package/dist/lib/layout/box-insets.js.map +7 -0
  520. package/dist/lib/layout/box-sizing.d.ts +16 -0
  521. package/dist/lib/layout/box-sizing.js +77 -0
  522. package/dist/lib/layout/box-sizing.js.map +7 -0
  523. package/dist/lib/layout/box.js +42 -12
  524. package/dist/lib/layout/box.js.map +2 -2
  525. package/dist/lib/layout/canvas-measurement.d.ts +13 -0
  526. package/dist/lib/layout/canvas-measurement.js +57 -0
  527. package/dist/lib/layout/canvas-measurement.js.map +7 -0
  528. package/dist/lib/layout/context.d.ts +35 -6
  529. package/dist/lib/layout/context.js +72 -3
  530. package/dist/lib/layout/context.js.map +2 -2
  531. package/dist/lib/layout/define-layout-component.d.ts +23 -0
  532. package/dist/lib/layout/define-layout-component.js +84 -0
  533. package/dist/lib/layout/define-layout-component.js.map +7 -0
  534. package/dist/lib/layout/flex-allocation-cache.d.ts +42 -0
  535. package/dist/lib/layout/flex-baseline-mode.d.ts +2 -0
  536. package/dist/lib/layout/flex-baseline-mode.js +7 -0
  537. package/dist/lib/layout/flex-baseline-mode.js.map +7 -0
  538. package/dist/lib/layout/flex.d.ts +50 -15
  539. package/dist/lib/layout/flex.js +2124 -195
  540. package/dist/lib/layout/flex.js.map +3 -3
  541. package/dist/lib/layout/flow.js +225 -49
  542. package/dist/lib/layout/flow.js.map +2 -2
  543. package/dist/lib/layout/geometry-publication.d.ts +53 -0
  544. package/dist/lib/layout/geometry-publication.js +244 -0
  545. package/dist/lib/layout/geometry-publication.js.map +7 -0
  546. package/dist/lib/layout/grid-kernel.d.ts +63 -0
  547. package/dist/lib/layout/grid-kernel.js +168 -0
  548. package/dist/lib/layout/grid-kernel.js.map +7 -0
  549. package/dist/lib/layout/grid.d.ts +63 -4
  550. package/dist/lib/layout/grid.js +767 -171
  551. package/dist/lib/layout/grid.js.map +3 -3
  552. package/dist/lib/layout/measure.d.ts +55 -3
  553. package/dist/lib/layout/measure.js +448 -15
  554. package/dist/lib/layout/measure.js.map +2 -2
  555. package/dist/lib/layout/overlay.js +81 -23
  556. package/dist/lib/layout/overlay.js.map +2 -2
  557. package/dist/lib/layout/participation.d.ts +27 -0
  558. package/dist/lib/layout/participation.js +188 -0
  559. package/dist/lib/layout/participation.js.map +7 -0
  560. package/dist/lib/layout/place-child.js +1 -1
  561. package/dist/lib/layout/place-child.js.map +2 -2
  562. package/dist/lib/layout/positioning-diagnostics.d.ts +1 -1
  563. package/dist/lib/layout/positioning-diagnostics.js +13 -2
  564. package/dist/lib/layout/positioning-diagnostics.js.map +2 -2
  565. package/dist/lib/layout/prepared-root.d.ts +121 -0
  566. package/dist/lib/layout/prepared-root.js +360 -0
  567. package/dist/lib/layout/prepared-root.js.map +7 -0
  568. package/dist/lib/layout/standalone-kernel.d.ts +60 -0
  569. package/dist/lib/layout/standalone-kernel.js +722 -0
  570. package/dist/lib/layout/standalone-kernel.js.map +7 -0
  571. package/dist/lib/layout/topology.d.ts +21 -0
  572. package/dist/lib/layout/topology.js +113 -0
  573. package/dist/lib/layout/topology.js.map +7 -0
  574. package/dist/lib/layout/types.d.ts +5 -0
  575. package/dist/lib/layout/wasm/artifact.d.ts +1 -0
  576. package/dist/lib/layout/wasm/artifact.js +5 -0
  577. package/dist/lib/layout/wasm/artifact.js.map +7 -0
  578. package/dist/lib/layout/wasm/bytes.d.ts +1 -0
  579. package/dist/lib/layout/wasm/bytes.js +5 -0
  580. package/dist/lib/layout/wasm/bytes.js.map +7 -0
  581. package/dist/lib/layout/wasm/embedded.d.ts +2 -0
  582. package/dist/lib/layout/wasm/embedded.js +12 -0
  583. package/dist/lib/layout/wasm/embedded.js.map +7 -0
  584. package/dist/lib/layout/wasm/layout.wasm +0 -0
  585. package/dist/lib/layout/wasm/module.d.ts +8 -0
  586. package/dist/lib/layout/wasm/module.js +70 -0
  587. package/dist/lib/layout/wasm/module.js.map +7 -0
  588. package/dist/lib/layout/wasm/region.d.ts +267 -0
  589. package/dist/lib/layout/wasm/region.js +1018 -0
  590. package/dist/lib/layout/wasm/region.js.map +7 -0
  591. package/dist/lib/manipulation/controller.js +4 -7
  592. package/dist/lib/manipulation/controller.js.map +2 -2
  593. package/dist/lib/manipulation/frame.js +1 -1
  594. package/dist/lib/manipulation/frame.js.map +2 -2
  595. package/dist/lib/manipulation/handles.js +32 -33
  596. package/dist/lib/manipulation/handles.js.map +2 -2
  597. package/dist/lib/manipulation/solve.js +12 -10
  598. package/dist/lib/manipulation/solve.js.map +2 -2
  599. package/dist/lib/mount-pibbl.js +1 -0
  600. package/dist/lib/mount-pibbl.js.map +2 -2
  601. package/dist/lib/mount-prepared-pibbl.d.ts +5 -0
  602. package/dist/lib/mount-prepared-pibbl.js +29 -0
  603. package/dist/lib/mount-prepared-pibbl.js.map +7 -0
  604. package/dist/lib/mount-request.d.ts +8 -0
  605. package/dist/lib/mount-request.js +41 -0
  606. package/dist/lib/mount-request.js.map +7 -0
  607. package/dist/lib/pibbl.d.ts +21 -13
  608. package/dist/lib/pibbl.js +18 -16
  609. package/dist/lib/pibbl.js.map +2 -2
  610. package/dist/lib/recording/recording.d.ts +43 -0
  611. package/dist/lib/recording/recording.js +555 -0
  612. package/dist/lib/recording/recording.js.map +7 -0
  613. package/dist/lib/recording/types.d.ts +118 -0
  614. package/dist/lib/recording/wasm-bytes.d.ts +1 -0
  615. package/dist/lib/recording/wasm-bytes.js +5 -0
  616. package/dist/lib/recording/wasm-bytes.js.map +7 -0
  617. package/dist/lib/recording/worker-source.d.ts +1 -0
  618. package/dist/lib/recording/worker-source.js +5 -0
  619. package/dist/lib/recording/worker-source.js.map +7 -0
  620. package/dist/lib/render-layer/controller.d.ts +9 -3
  621. package/dist/lib/render-layer/controller.js +259 -110
  622. package/dist/lib/render-layer/controller.js.map +2 -2
  623. package/dist/lib/render-transaction.d.ts +12 -2
  624. package/dist/lib/render-transaction.js +69 -1
  625. package/dist/lib/render-transaction.js.map +2 -2
  626. package/dist/lib/render.js +32 -8
  627. package/dist/lib/render.js.map +2 -2
  628. package/dist/lib/scheduler/realm-scheduler.d.ts +2 -0
  629. package/dist/lib/scheduler/realm-scheduler.js +55 -26
  630. package/dist/lib/scheduler/realm-scheduler.js.map +2 -2
  631. package/dist/lib/scheduler/renderer-participant.js +1 -0
  632. package/dist/lib/scheduler/renderer-participant.js.map +2 -2
  633. package/dist/lib/series-inspection-frame.d.ts +18 -0
  634. package/dist/lib/series-inspection-frame.js +70 -0
  635. package/dist/lib/series-inspection-frame.js.map +7 -0
  636. package/dist/lib/signals/edge.d.ts +7 -4
  637. package/dist/lib/signals/edge.js +25 -3
  638. package/dist/lib/signals/edge.js.map +2 -2
  639. package/dist/lib/signals/graph.d.ts +16 -2
  640. package/dist/lib/signals/graph.js +54 -12
  641. package/dist/lib/signals/graph.js.map +2 -2
  642. package/dist/lib/signals/input-provision.d.ts +15 -0
  643. package/dist/lib/signals/input-provision.js +53 -3
  644. package/dist/lib/signals/input-provision.js.map +2 -2
  645. package/dist/lib/signals/render-consumer.d.ts +3 -0
  646. package/dist/lib/signals/render-consumer.js +22 -14
  647. package/dist/lib/signals/render-consumer.js.map +2 -2
  648. package/dist/lib/style/positioning.d.ts +50 -2
  649. package/dist/lib/style/positioning.js +28 -4
  650. package/dist/lib/style/positioning.js.map +2 -2
  651. package/dist/lib/style/resolve-built-in.d.ts +4 -3
  652. package/dist/lib/style/resolve-built-in.js +17 -3
  653. package/dist/lib/style/resolve-built-in.js.map +2 -2
  654. package/dist/lib/style/resolve-dispatch.d.ts +3 -0
  655. package/dist/lib/style/resolve-dispatch.js +77 -4
  656. package/dist/lib/style/resolve-dispatch.js.map +2 -2
  657. package/dist/lib/style/resolve-length.d.ts +2 -0
  658. package/dist/lib/style/resolve-length.js +13 -9
  659. package/dist/lib/style/resolve-length.js.map +2 -2
  660. package/dist/lib/style/sizing-length.d.ts +51 -0
  661. package/dist/lib/style/sizing-length.js +77 -0
  662. package/dist/lib/style/sizing-length.js.map +7 -0
  663. package/dist/lib/style/types.d.ts +63 -25
  664. package/dist/lib/surface/root-surface.js +10 -6
  665. package/dist/lib/surface/root-surface.js.map +2 -2
  666. package/dist/lib/textures/texture.js +10 -8
  667. package/dist/lib/textures/texture.js.map +2 -2
  668. package/dist/lib/transitions/capture.js +4 -1
  669. package/dist/lib/transitions/capture.js.map +2 -2
  670. package/dist/lib/transitions/embers-physics.js +17 -10
  671. package/dist/lib/transitions/embers-physics.js.map +2 -2
  672. package/dist/lib/types.d.ts +110 -1
  673. package/dist/sync.d.ts +16 -0
  674. package/dist/sync.js +13 -0
  675. package/dist/sync.js.map +7 -0
  676. package/dist/sync.mjs +1 -0
  677. package/package.json +43 -6
  678. package/dist/features/viz/lib/scale.d.ts +0 -11
  679. package/dist/features/viz/lib/scale.js +0 -80
  680. package/dist/features/viz/lib/scale.js.map +0 -7
  681. package/dist/features/viz/lib/use-scale.d.ts +0 -20
  682. package/dist/features/viz/lib/use-scale.js +0 -10
  683. package/dist/features/viz/lib/use-scale.js.map +0 -7
@@ -0,0 +1,1097 @@
1
+ import type { PibblNode, PibblEventHandlers, PibblEventParticipationOptions, Signal, SignalValue, PibblResponsiveStyle, GStyle, RectStyle, SvgPathStyle, TextStyle, SystemStyle, PathSegment } from "@pibbl/core";
2
+ type ClickEvent = Parameters<NonNullable<PibblEventHandlers["onClick"]>>[0];
3
+ /** A stable application identifier used to join graph records and geometry. {@link GraphLayout} */
4
+ export type VizKey = string | number;
5
+ /** A property key or pure reader for one typed source record. {@link GraphLayout}
6
+ * @param datum - Source record.
7
+ * @returns Accessed value. */
8
+ export type Accessor<D, V> = {
9
+ [P in keyof D]-?: D[P] extends V ? P : never;
10
+ }[keyof D] /** A caller-provided pure callback. {@link GraphLayout}
11
+ * @param datum - The source record or geometry supplied by Pibbl.
12
+ * @returns The value produced by this callback. */ | ((datum: D) => V);
13
+ /** An immutable finite rectangle in graph-local logical pixels. {@link GraphLayout} */
14
+ export type Bounds = Readonly<{
15
+ /** Horizontal coordinate in local logical pixels. {@link GraphLayout} */
16
+ x: number;
17
+ /** Vertical coordinate in local logical pixels. {@link GraphLayout} */
18
+ y: number;
19
+ /** Finite width in local logical pixels. {@link GraphLayout} */
20
+ width: number;
21
+ /** Finite height in local logical pixels. {@link GraphLayout} */
22
+ height: number;
23
+ }>;
24
+ export type { Size } from "@pibbl/core";
25
+ import type { Size } from "@pibbl/core";
26
+ /** An immutable coordinate in graph-local logical pixels. {@link GraphLayout} */
27
+ export type Point = Readonly<{
28
+ /** Horizontal coordinate in local logical pixels. {@link GraphLayout} */
29
+ x: number;
30
+ /** Vertical coordinate in local logical pixels. {@link GraphLayout} */
31
+ y: number;
32
+ }>;
33
+ /** A responsive style value or signal accepted by a Pibbl mark. {@link GraphLayout} */
34
+ export type Style<S extends SystemStyle> = SignalValue<PibblResponsiveStyle<S>>;
35
+ /** A static or geometry-aware mark style with no retained state. {@link GraphLayout}
36
+ * @param geometry - Mark geometry.
37
+ * @returns Mark style. */
38
+ export type MarkStyle<G, S extends SystemStyle> = Style<S> /** A caller-provided pure callback. {@link GraphLayout}
39
+ * @param geometry - The source record or geometry supplied by Pibbl.
40
+ * @returns The value produced by this callback. */ | ((geometry: G) => Style<S>);
41
+ /** Paint properties for a node box; geometry remains layout-owned. {@link GraphLayout} */
42
+ export type NodeStyle = Omit<RectStyle, "left" | "top" | "width" | "height">;
43
+ /** Paint properties for an edge path; its route remains geometry-owned. {@link GraphLayout} */
44
+ export type EdgeStyle = Omit<SvgPathStyle, "d" | "left" | "top">;
45
+ /** Paint properties for text; label placement remains geometry-owned. {@link GraphLayout} */
46
+ export type LabelStyle = Omit<TextStyle, "left" | "top" | "width" | "height">;
47
+ /** Layout and paint properties for a graph component frame. {@link GraphLayout} */
48
+ export type FrameStyle = GStyle;
49
+ /** A decorative text string with immutable placement. {@link GraphLayout} */
50
+ export interface LabelGeometry {
51
+ /** Text displayed by the label. {@link GraphLayout} */
52
+ readonly text: string;
53
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
54
+ readonly bounds: Bounds;
55
+ /** Clockwise label rotation in degrees. {@link GraphLayout} */
56
+ readonly rotationDegrees: number;
57
+ }
58
+ /** Application-owned node and edge records in stable source order. {@link GraphLayout} */
59
+ export interface GraphData<N, E> {
60
+ /** Source nodes in application order. {@link GraphLayout} */
61
+ readonly nodes: readonly N[];
62
+ /** Source edges in application order. {@link GraphLayout} */
63
+ readonly edges: readonly E[];
64
+ }
65
+ /** Typed readers that identify graph records and optional text. {@link GraphLayout} */
66
+ export interface GraphAccessors<N, E> {
67
+ /** Reads each node’s stable key. {@link GraphLayout} */
68
+ readonly nodeKey: Accessor<N, VizKey>;
69
+ /** Reads each edge’s stable key. {@link GraphLayout} */
70
+ readonly edgeKey: Accessor<E, VizKey>;
71
+ /** Reads an edge source key. {@link GraphLayout} */
72
+ readonly source: Accessor<E, VizKey>;
73
+ /** Reads an edge target key. {@link GraphLayout} */
74
+ readonly target: Accessor<E, VizKey>;
75
+ /** Optional reader for a node’s primary text. {@link LabelGeometry} */
76
+ readonly label?: Accessor<N, string>;
77
+ /** Optional reader for a node’s secondary text. {@link LabelGeometry} */
78
+ readonly detail?: Accessor<N, string>;
79
+ }
80
+ /** Immutable node geometry paired with its original record. {@link GraphLayout} */
81
+ export interface GraphNodeGeometry<N> {
82
+ /** Stable application-provided key. {@link GraphLayout} */
83
+ readonly key: VizKey;
84
+ /** Original application record. {@link GraphLayout} */
85
+ readonly datum: N;
86
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
87
+ readonly bounds: Bounds;
88
+ /** Decorative label geometry. {@link GraphLayout} */
89
+ readonly label: LabelGeometry;
90
+ /** Optional secondary label geometry. {@link GraphLayout} */
91
+ readonly detail: LabelGeometry | null;
92
+ }
93
+ /** Structured anchors and path segments for an edge route. {@link GraphLayout} */
94
+ export interface GraphRoute {
95
+ /** Attachment point on the source mark. {@link GraphLayout} */
96
+ readonly sourceAnchor: Point;
97
+ /** Attachment point on the target mark. {@link GraphLayout} */
98
+ readonly targetAnchor: Point;
99
+ /** Path segments from source to target. {@link GraphLayout} */
100
+ readonly segments: readonly Readonly<PathSegment>[];
101
+ /** Optional path segments for an edge arrowhead. {@link GraphLayout} */
102
+ readonly arrowSegments: readonly Readonly<PathSegment>[] | null;
103
+ }
104
+ /** Immutable edge geometry paired with its original record. {@link GraphLayout} */
105
+ export interface GraphEdgeGeometry<E> {
106
+ /** Stable application-provided key. {@link GraphLayout} */
107
+ readonly key: VizKey;
108
+ /** Original application record. {@link GraphLayout} */
109
+ readonly datum: E;
110
+ /** Stable key of the edge source node. {@link GraphLayout} */
111
+ readonly sourceKey: VizKey;
112
+ /** Stable key of the edge target node. {@link GraphLayout} */
113
+ readonly targetKey: VizKey;
114
+ /** Structured route used to produce the serialized path. {@link GraphLayout} */
115
+ readonly route: GraphRoute;
116
+ /** SVG path serialization of the route. {@link GraphLayout} */
117
+ readonly path: string;
118
+ /** Optional SVG path for the route arrow. {@link GraphLayout} */
119
+ readonly arrowPath: string | null;
120
+ }
121
+ /** A pure immutable snapshot that can be painted with graph marks. {@link GraphLayout} */
122
+ export interface GraphLayout<N, E> {
123
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
124
+ readonly bounds: Bounds;
125
+ /** Source nodes in application order. {@link GraphLayout} */
126
+ readonly nodes: readonly GraphNodeGeometry<N>[];
127
+ /** Source edges in application order. {@link GraphLayout} */
128
+ readonly edges: readonly GraphEdgeGeometry<E>[];
129
+ }
130
+ /** Optional default-mark overrides and click handlers shared by graph components. {@link GraphLayout} */
131
+ export interface GraphPresentation<N, E, NG extends GraphNodeGeometry<N> = GraphNodeGeometry<N>> {
132
+ /** Style or geometry-aware style for node marks. {@link GraphLayout} */
133
+ readonly nodeStyle?: MarkStyle<NG, NodeStyle>;
134
+ /** Style or geometry-aware style for edge marks. {@link GraphLayout} */
135
+ readonly edgeStyle?: MarkStyle<GraphEdgeGeometry<E>, EdgeStyle>;
136
+ /** Style for decorative labels. {@link GraphLayout} */
137
+ readonly labelStyle?: MarkStyle<NG, LabelStyle>;
138
+ /** Replaces the default node mark with this composition. {@link GraphLayout}
139
+ * @param node - The source record or geometry supplied by Pibbl.
140
+ * @returns The value produced by this callback. */
141
+ readonly renderNode?: (node: NG) => PibblNode;
142
+ /** Replaces the default edge mark with this composition. {@link GraphLayout}
143
+ * @param edge - The source record or geometry supplied by Pibbl.
144
+ * @returns The value produced by this callback. */
145
+ readonly renderEdge?: (edge: GraphEdgeGeometry<E>) => PibblNode;
146
+ /** Receives clicks on a node mark. {@link GraphLayout}
147
+ * @param node - The source record or geometry supplied by Pibbl.
148
+ * @param event - The source record or geometry supplied by Pibbl. */
149
+ readonly onNodeClick?: (node: NG, event: ClickEvent) => void;
150
+ /** Receives clicks on an edge mark. {@link GraphLayout}
151
+ * @param edge - The source record or geometry supplied by Pibbl.
152
+ * @param event - The source record or geometry supplied by Pibbl. */
153
+ readonly onEdgeClick?: (edge: GraphEdgeGeometry<E>, event: ClickEvent) => void;
154
+ }
155
+ /** Ordinary Pibbl event and focus participation accepted by graph marks. {@link GraphLayout} */
156
+ export interface MarkInteraction extends PibblEventHandlers, PibblEventParticipationOptions {
157
+ /** Whether the mark enters logical keyboard focus. {@link GraphLayout} */
158
+ readonly keyboardFocusable?: boolean;
159
+ /** Logical bounds used for keyboard navigation. {@link GraphLayout} */
160
+ readonly keyboardNavigationBounds?: Bounds;
161
+ }
162
+ /** Geometry, paint, content, and ordinary events for GraphNode. {@link GraphLayout} */
163
+ export interface GraphNodeProps<N> extends MarkInteraction {
164
+ /** Immutable node geometry and original datum. {@link GraphLayout} */
165
+ readonly node: GraphNodeGeometry<N>;
166
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
167
+ readonly style?: Style<NodeStyle>;
168
+ /** Optional content painted with this mark. {@link GraphLayout} */
169
+ readonly children?: PibblNode;
170
+ }
171
+ /** Geometry, paint, and ordinary events for GraphEdge. {@link GraphLayout} */
172
+ export interface GraphEdgeProps<E> extends MarkInteraction {
173
+ /** Immutable edge geometry and original datum. {@link GraphLayout} */
174
+ readonly edge: GraphEdgeGeometry<E>;
175
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
176
+ readonly style?: Style<EdgeStyle>;
177
+ }
178
+ /** Geometry and paint for a decorative GraphLabel. {@link GraphLayout} */
179
+ export interface GraphLabelProps {
180
+ /** Decorative label geometry. {@link GraphLayout} */
181
+ readonly label: LabelGeometry;
182
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
183
+ readonly style?: Style<LabelStyle>;
184
+ }
185
+ /** A layout snapshot plus mark overrides, without running an algorithm. {@link GraphLayout} */
186
+ export interface GraphViewProps<N, E> extends GraphPresentation<N, E> {
187
+ /** Immutable layout snapshot for ordinary mark composition. {@link GraphLayout} */
188
+ readonly layout: SignalValue<GraphLayout<N, E>>;
189
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
190
+ readonly style?: Style<FrameStyle>;
191
+ }
192
+ /** Frame options for rank-based dependency diagrams. {@link GraphLayout} */
193
+ export interface DependencyStyle extends GStyle {
194
+ /** Distance between ranks in local logical pixels. {@link GraphLayout} */
195
+ readonly rankGap?: number;
196
+ /** Minimum gap between node marks in local logical pixels. {@link GraphLayout} */
197
+ readonly nodeGap?: number;
198
+ }
199
+ /** Pure layout inputs for a directed dependency graph. {@link GraphLayout} */
200
+ export interface DependencyOptions<N, E> extends GraphAccessors<N, E> {
201
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
202
+ readonly bounds: Bounds;
203
+ /** Node size in local logical pixels; defaults to 160 by 56. {@link GraphLayout}
204
+ * @param node - Source record to measure.
205
+ * @returns Finite local logical size. */
206
+ readonly nodeSize?: Size /** A caller-provided pure callback. {@link GraphLayout}
207
+ * @param node - The source record or geometry supplied by Pibbl.
208
+ * @returns The value produced by this callback. */ | ((node: N) => Size);
209
+ /** Distance between ranks in local logical pixels. {@link GraphLayout} */
210
+ readonly rankGap?: number;
211
+ /** Minimum gap between node marks in local logical pixels. {@link GraphLayout} */
212
+ readonly nodeGap?: number;
213
+ }
214
+ /** Reactive dependency data and default mark presentation. {@link GraphLayout} */
215
+ export interface DependencyGraphProps<N, E> extends GraphAccessors<N, E>, GraphPresentation<N, E> {
216
+ /** Graph records; publish a new snapshot to update. {@link GraphLayout} */
217
+ readonly graph: SignalValue<GraphData<N, E>>;
218
+ /** Node size in local logical pixels; defaults to 160 by 56. {@link GraphLayout}
219
+ * @param node - Source record to measure.
220
+ * @returns Finite local logical size. */
221
+ readonly nodeSize?: Size /** A caller-provided pure callback. {@link GraphLayout}
222
+ * @param node - The source record or geometry supplied by Pibbl.
223
+ * @returns The value produced by this callback. */ | ((node: N) => Size);
224
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
225
+ readonly style?: Style<DependencyStyle>;
226
+ }
227
+ /** Bounded deterministic numeric settings for force solving. {@link GraphLayout} */
228
+ export interface ForceSettings {
229
+ /** Deterministic seed for solver initialization. {@link GraphLayout} */
230
+ readonly seed?: number;
231
+ /** Preferred link distance in local logical pixels. {@link GraphLayout} */
232
+ readonly linkDistance?: number;
233
+ /** Minimum gap between node marks in local logical pixels. {@link GraphLayout} */
234
+ readonly nodeGap?: number;
235
+ /** Maximum solver iterations before exhaustion. {@link GraphLayout} */
236
+ readonly maxIterations?: number;
237
+ }
238
+ /** Pure force-layout inputs, accessors, bounds, and solver settings. {@link GraphLayout} */
239
+ export interface ForceOptions<N, E> extends GraphAccessors<N, E> {
240
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
241
+ readonly bounds: Bounds;
242
+ /** Node size in local logical pixels; defaults to 160 by 56. {@link GraphLayout}
243
+ * @param node - Source record to measure.
244
+ * @returns Finite local logical size. */
245
+ readonly nodeSize?: Size /** A caller-provided pure callback. {@link GraphLayout}
246
+ * @param node - The source record or geometry supplied by Pibbl.
247
+ * @returns The value produced by this callback. */ | ((node: N) => Size);
248
+ /** Optional deterministic solver settings. {@link GraphLayout} */
249
+ readonly simulation?: ForceSettings;
250
+ /** Whether direction affects the algorithm. {@link GraphLayout} */
251
+ readonly directed?: boolean;
252
+ }
253
+ /** A force-solver snapshot with bounded progress state. {@link GraphLayout} */
254
+ export interface ForceLayout<N, E> extends GraphLayout<N, E> {
255
+ /** Iterations completed by the solver. {@link GraphLayout} */
256
+ readonly iterations: number;
257
+ /** Whether the solver reached its stopping condition. {@link GraphLayout} */
258
+ readonly settled: boolean;
259
+ }
260
+ /** Hook-owned live solver state and commands; released on unmount. {@link GraphLayout} */
261
+ export interface ForceNetworkController<N, E> {
262
+ /** Immutable layout snapshot for ordinary mark composition. {@link GraphLayout} */
263
+ readonly layout: Signal<ForceLayout<N, E>>;
264
+ /** Current solver lifecycle status. {@link GraphLayout} */
265
+ readonly status: Signal<"running" | "paused" | "settled" | "exhausted" | "failed">;
266
+ /** Most recent solver failure, or null. {@link GraphLayout} */
267
+ readonly error: Signal<Error | null>;
268
+ /** Queues a pause at the next scheduler boundary. {@link GraphLayout} */
269
+ pause(): void;
270
+ /** Queues solver advancement at the next scheduler boundary. {@link GraphLayout} */
271
+ resume(): void;
272
+ /** Restarts the current solver without discarding node positions. {@link GraphLayout} */
273
+ restart(): void;
274
+ /** Restores seeded positions and clears pins. {@link GraphLayout} */
275
+ reset(): void;
276
+ /** Pins one node at a finite local position. {@link GraphLayout}
277
+ * @param key - The source record or geometry supplied by Pibbl.
278
+ * @param position - The source record or geometry supplied by Pibbl. */
279
+ pin(key: VizKey, position: Point): void;
280
+ /** Releases a previously pinned node. {@link GraphLayout}
281
+ * @param key - The source record or geometry supplied by Pibbl. */
282
+ release(key: VizKey): void;
283
+ }
284
+ /** Frame style for a live force network. {@link GraphLayout} */
285
+ export type ForceStyle = GStyle;
286
+ /** Reactive force-network data, solver settings, and presentation. {@link GraphLayout} */
287
+ export interface ForceNetworkProps<N, E> extends GraphAccessors<N, E>, GraphPresentation<N, E> {
288
+ /** Optional compatible numeric solver factory. {@link GraphLayout} */
289
+ readonly createSimulation?: ForceSimulationFactory<N, E>;
290
+ /** Graph records; publish a new snapshot to update. {@link GraphLayout} */
291
+ readonly graph: SignalValue<GraphData<N, E>>;
292
+ /** Node size in local logical pixels; defaults to 160 by 56. {@link GraphLayout}
293
+ * @param node - Source record to measure.
294
+ * @returns Finite local logical size. */
295
+ readonly nodeSize?: Size /** A caller-provided pure callback. {@link GraphLayout}
296
+ * @param node - The source record or geometry supplied by Pibbl.
297
+ * @returns The value produced by this callback. */ | ((node: N) => Size);
298
+ /** Optional deterministic solver settings. {@link GraphLayout} */
299
+ readonly simulation?: ForceSettings;
300
+ /** Whether direction affects the algorithm. {@link GraphLayout} */
301
+ readonly directed?: boolean;
302
+ /** Signal controlling whether simulation advances. {@link GraphLayout} */
303
+ readonly paused?: SignalValue<boolean>;
304
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
305
+ readonly style?: Style<ForceStyle>;
306
+ }
307
+ /** Configuration for a hook-owned force solver session. {@link GraphLayout} */
308
+ export interface ForceHookOptions<N, E> extends ForceOptions<N, E> {
309
+ /** Initial paused state for a new controller. {@link GraphLayout} */
310
+ readonly initialPaused?: boolean;
311
+ /** Optional compatible numeric solver factory. {@link GraphLayout} */
312
+ readonly createSimulation?: ForceSimulationFactory<N, E>;
313
+ }
314
+ /** Typed readers for one rooted hierarchy with stable child order. {@link GraphLayout} */
315
+ export interface HierarchyAccessors<D> {
316
+ /** Reads each hierarchy record’s stable key. {@link GraphLayout} */
317
+ readonly keyBy: Accessor<D, VizKey>;
318
+ /** Reads ordered child records; null and undefined mean no children. {@link GraphLayout} */
319
+ readonly childrenBy: Accessor<D, readonly D[] | null | undefined>;
320
+ /** Optional reader for a node’s primary text. {@link LabelGeometry} */
321
+ readonly label?: Accessor<D, string>;
322
+ /** Whether this item hides its descendants. {@link GraphLayout}
323
+ * @param node - The source record or geometry supplied by Pibbl.
324
+ * @returns The value produced by this callback. */
325
+ readonly collapsed?: (node: D) => boolean;
326
+ }
327
+ /** The original parent and child records represented by a tree edge. {@link GraphLayout} */
328
+ export interface TreeEdge<D> {
329
+ /** Original parent record. {@link GraphLayout} */
330
+ readonly parent: D;
331
+ /** Original child record. {@link GraphLayout} */
332
+ readonly child: D;
333
+ }
334
+ /** Tree node geometry with ancestry and collapsed-child information. {@link GraphLayout} */
335
+ export interface TreeNodeGeometry<D> extends GraphNodeGeometry<D> {
336
+ /** Zero-based hierarchy depth. {@link GraphLayout} */
337
+ readonly depth: number;
338
+ /** Parent key, or null for a top-level item. {@link GraphLayout} */
339
+ readonly parentKey: VizKey | null;
340
+ /** Number of children omitted by collapse. {@link GraphLayout} */
341
+ readonly hiddenChildren: number;
342
+ }
343
+ /** Immutable tidy-tree node and edge geometry. {@link GraphLayout} */
344
+ export interface TreeLayout<D> extends GraphLayout<D, TreeEdge<D>> {
345
+ /** Source nodes in application order. {@link GraphLayout} */
346
+ readonly nodes: readonly TreeNodeGeometry<D>[];
347
+ }
348
+ /** Frame options controlling tree level and sibling spacing. {@link GraphLayout} */
349
+ export interface TreeStyle extends GStyle {
350
+ /** Gap between hierarchy levels in local logical pixels. {@link GraphLayout} */
351
+ readonly levelGap?: number;
352
+ /** Gap between sibling subtrees in local logical pixels. {@link GraphLayout} */
353
+ readonly siblingGap?: number;
354
+ }
355
+ /** Pure tidy-tree inputs including bounds and optional dimensions. {@link GraphLayout} */
356
+ export interface TreeOptions<D> extends HierarchyAccessors<D> {
357
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
358
+ readonly bounds: Bounds;
359
+ /** Optional reader for a node’s secondary text. {@link LabelGeometry} */
360
+ readonly detail?: Accessor<D, string>;
361
+ /** Node size in local logical pixels; defaults to 160 by 56. {@link GraphLayout}
362
+ * @param node - Source record to measure.
363
+ * @returns Finite local logical size. */
364
+ readonly nodeSize?: Size /** A caller-provided pure callback. {@link GraphLayout}
365
+ * @param node - The source record or geometry supplied by Pibbl.
366
+ * @returns The value produced by this callback. */ | ((node: D) => Size);
367
+ /** Gap between hierarchy levels in local logical pixels. {@link GraphLayout} */
368
+ readonly levelGap?: number;
369
+ /** Gap between sibling subtrees in local logical pixels. {@link GraphLayout} */
370
+ readonly siblingGap?: number;
371
+ }
372
+ /** Reactive hierarchy data and presentation for TidyTree. {@link GraphLayout} */
373
+ export interface TidyTreeProps<D> extends HierarchyAccessors<D>, GraphPresentation<D, TreeEdge<D>, TreeNodeGeometry<D>> {
374
+ /** Hierarchy root; publish a new root to update. {@link GraphLayout} */
375
+ readonly root: SignalValue<D>;
376
+ /** Optional reader for a node’s secondary text. {@link LabelGeometry} */
377
+ readonly detail?: Accessor<D, string>;
378
+ /** Node size in local logical pixels; defaults to 160 by 56. {@link GraphLayout}
379
+ * @param node - Source record to measure.
380
+ * @returns Finite local logical size. */
381
+ readonly nodeSize?: Size /** A caller-provided pure callback. {@link GraphLayout}
382
+ * @param node - The source record or geometry supplied by Pibbl.
383
+ * @returns The value produced by this callback. */ | ((node: D) => Size);
384
+ /** Replaces the default node mark with this composition. {@link GraphLayout}
385
+ * @param node - The source record or geometry supplied by Pibbl.
386
+ * @returns The value produced by this callback. */
387
+ readonly renderNode?: (node: TreeNodeGeometry<D>) => PibblNode;
388
+ /** Receives clicks on a node mark. {@link GraphLayout}
389
+ * @param node - The source record or geometry supplied by Pibbl.
390
+ * @param event - The source record or geometry supplied by Pibbl. */
391
+ readonly onNodeClick?: (node: TreeNodeGeometry<D>, event: ClickEvent) => void;
392
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
393
+ readonly style?: Style<TreeStyle>;
394
+ }
395
+ /** Ordered row, column, and relation records for an adjacency matrix. {@link GraphLayout} */
396
+ export interface MatrixData<R, C, E> {
397
+ /** Ordered source row records. {@link GraphLayout} */
398
+ readonly rows: readonly R[];
399
+ /** Ordered source column records. {@link GraphLayout} */
400
+ readonly columns: readonly C[];
401
+ /** Source relation records. {@link GraphLayout} */
402
+ readonly relations: readonly E[];
403
+ }
404
+ /** Typed matrix keys, quantity reader, labels, and display unit. {@link GraphLayout} */
405
+ export interface MatrixAccessors<R, C, E> {
406
+ /** Stable row key. {@link GraphLayout} */
407
+ readonly rowKey: Accessor<R, VizKey>;
408
+ /** Stable column key. {@link GraphLayout} */
409
+ readonly columnKey: Accessor<C, VizKey>;
410
+ /** Reads an edge source key. {@link GraphLayout} */
411
+ readonly source: Accessor<E, VizKey>;
412
+ /** Reads an edge target key. {@link GraphLayout} */
413
+ readonly target: Accessor<E, VizKey>;
414
+ /** Reads the finite quantitative value. {@link GraphLayout} */
415
+ readonly value: Accessor<E, number>;
416
+ /** Reads a row label. {@link GraphLayout} */
417
+ readonly rowLabel?: Accessor<R, string>;
418
+ /** Reads a column label. {@link GraphLayout} */
419
+ readonly columnLabel?: Accessor<C, string>;
420
+ /** Display unit for quantitative values. {@link GraphLayout} */
421
+ readonly unit: string;
422
+ /** Formats a quantitative value for display. {@link GraphLayout}
423
+ * @param value - The source record or geometry supplied by Pibbl.
424
+ * @returns The value produced by this callback. */
425
+ readonly formatValue?: (value: number) => string;
426
+ }
427
+ /** Immutable aggregate geometry for one ordered row/column pair. {@link GraphLayout} */
428
+ export interface MatrixCellGeometry<R, C, E> {
429
+ /** Original row record. {@link GraphLayout} */
430
+ readonly row: R;
431
+ /** Original column record. {@link GraphLayout} */
432
+ readonly column: C;
433
+ /** Stable row key. {@link GraphLayout} */
434
+ readonly rowKey: VizKey;
435
+ /** Stable column key. {@link GraphLayout} */
436
+ readonly columnKey: VizKey;
437
+ /** Original records represented by this aggregate. {@link GraphLayout} */
438
+ readonly records: readonly E[];
439
+ /** Reads the finite quantitative value. {@link GraphLayout} */
440
+ readonly value: number | null;
441
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
442
+ readonly bounds: Bounds;
443
+ /** Decorative label geometry. {@link GraphLayout} */
444
+ readonly label: LabelGeometry | null;
445
+ }
446
+ /** Immutable matrix cells and decorative axis labels. {@link GraphLayout} */
447
+ export interface MatrixLayout<R, C, E> {
448
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
449
+ readonly bounds: Bounds;
450
+ /** Display unit for quantitative values. {@link GraphLayout} */
451
+ readonly unit: string;
452
+ /** Immutable cells in source-stable layout order. {@link GraphLayout} */
453
+ readonly cells: readonly MatrixCellGeometry<R, C, E>[];
454
+ /** Decorative labels for matrix rows. {@link GraphLayout} */
455
+ readonly rowLabels: readonly LabelGeometry[];
456
+ /** Decorative labels for matrix columns. {@link GraphLayout} */
457
+ readonly columnLabels: readonly LabelGeometry[];
458
+ }
459
+ /** Frame options for matrix gaps and label reservations. {@link GraphLayout} */
460
+ export interface MatrixStyle extends GStyle {
461
+ /** Gap between cells in local logical pixels. {@link GraphLayout} */
462
+ readonly cellGap?: number;
463
+ /** Reserved width for matrix row labels in local logical pixels. {@link GraphLayout} */
464
+ readonly rowLabelWidth?: number;
465
+ /** Reserved height for matrix column labels in local logical pixels. {@link GraphLayout} */
466
+ readonly columnLabelHeight?: number;
467
+ }
468
+ /** Pure adjacency-matrix inputs and finite output bounds. {@link GraphLayout} */
469
+ export interface MatrixOptions<R, C, E> extends MatrixAccessors<R, C, E> {
470
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
471
+ readonly bounds: Bounds;
472
+ /** Gap between cells in local logical pixels. {@link GraphLayout} */
473
+ readonly cellGap?: number;
474
+ /** Reserved width for matrix row labels in local logical pixels. {@link GraphLayout} */
475
+ readonly rowLabelWidth?: number;
476
+ /** Reserved height for matrix column labels in local logical pixels. {@link GraphLayout} */
477
+ readonly columnLabelHeight?: number;
478
+ }
479
+ /** Reactive matrix data and cell presentation. {@link GraphLayout} */
480
+ export interface AdjacencyMatrixProps<R, C, E> extends MatrixAccessors<R, C, E> {
481
+ /** Input records; publish a new snapshot to update. {@link GraphLayout} */
482
+ readonly data: SignalValue<MatrixData<R, C, E>>;
483
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
484
+ readonly style?: Style<MatrixStyle>;
485
+ /** Style or geometry-aware style for cell marks. {@link GraphLayout} */
486
+ readonly cellStyle?: MarkStyle<MatrixCellGeometry<R, C, E>, NodeStyle>;
487
+ /** Style for decorative labels. {@link GraphLayout} */
488
+ readonly labelStyle?: Style<LabelStyle>;
489
+ /** Replaces the default cell mark with this composition. {@link GraphLayout}
490
+ * @param cell - The source record or geometry supplied by Pibbl.
491
+ * @returns The value produced by this callback. */
492
+ readonly renderCell?: (cell: MatrixCellGeometry<R, C, E>) => PibblNode;
493
+ /** Receives clicks on a cell mark. {@link GraphLayout}
494
+ * @param cell - The source record or geometry supplied by Pibbl.
495
+ * @param event - The source record or geometry supplied by Pibbl. */
496
+ readonly onCellClick?: (cell: MatrixCellGeometry<R, C, E>, event: ClickEvent) => void;
497
+ }
498
+ /** Geometry, paint, events, and content for one matrix cell. {@link GraphLayout} */
499
+ export interface MatrixCellProps<R, C, E> extends MarkInteraction {
500
+ /** Immutable cell geometry and its original records. {@link GraphLayout} */
501
+ readonly cell: MatrixCellGeometry<R, C, E>;
502
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
503
+ readonly style?: Style<NodeStyle>;
504
+ /** Optional content painted with this mark. {@link GraphLayout} */
505
+ readonly children?: PibblNode;
506
+ }
507
+ /** Node geometry annotated with incoming, outgoing, and net quantities. {@link GraphLayout} */
508
+ export interface SankeyNodeGeometry<N> extends GraphNodeGeometry<N> {
509
+ /** Total value arriving at this node. {@link GraphLayout} */
510
+ readonly incomingValue: number;
511
+ /** Total value leaving this node. {@link GraphLayout} */
512
+ readonly outgoingValue: number;
513
+ /** Outgoing value minus incoming value. {@link GraphLayout} */
514
+ readonly netValue: number;
515
+ }
516
+ /** Flow geometry annotated with its source quantity and pixel thickness. {@link GraphLayout} */
517
+ export interface SankeyFlowGeometry<E> extends GraphEdgeGeometry<E> {
518
+ /** Reads the finite quantitative value. {@link GraphLayout} */
519
+ readonly value: number;
520
+ /** Display unit for quantitative values. {@link GraphLayout} */
521
+ readonly unit: string;
522
+ /** Source-side flow attachment span. {@link GraphLayout} */
523
+ readonly sourceSpan: Readonly<{
524
+ /** Upper endpoint of the attachment span. {@link GraphLayout} */
525
+ top: Point;
526
+ /** Lower endpoint of the attachment span. {@link GraphLayout} */
527
+ bottom: Point;
528
+ }>;
529
+ /** Target-side flow attachment span. {@link GraphLayout} */
530
+ readonly targetSpan: Readonly<{
531
+ /** Upper endpoint of the attachment span. {@link GraphLayout} */
532
+ top: Point;
533
+ /** Lower endpoint of the attachment span. {@link GraphLayout} */
534
+ bottom: Point;
535
+ }>;
536
+ /** Flow width in local logical pixels. {@link GraphLayout} */
537
+ readonly thickness: number;
538
+ }
539
+ /** Immutable Sankey nodes and flows with their display unit. {@link GraphLayout} */
540
+ export interface SankeyLayout<N, E> {
541
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
542
+ readonly bounds: Bounds;
543
+ /** Display unit for quantitative values. {@link GraphLayout} */
544
+ readonly unit: string;
545
+ /** Source nodes in application order. {@link GraphLayout} */
546
+ readonly nodes: readonly SankeyNodeGeometry<N>[];
547
+ /** Immutable Sankey flow geometry. {@link GraphLayout} */
548
+ readonly flows: readonly SankeyFlowGeometry<E>[];
549
+ }
550
+ /** Typed Sankey keys, flow quantity reader, and display unit. {@link GraphLayout} */
551
+ export interface SankeyAccessors<N, E> extends GraphAccessors<N, E> {
552
+ /** Reads the finite quantitative value. {@link GraphLayout} */
553
+ readonly value: Accessor<E, number>;
554
+ /** Display unit for quantitative values. {@link GraphLayout} */
555
+ readonly unit: string;
556
+ /** Formats a quantitative value for display. {@link GraphLayout}
557
+ * @param value - The source record or geometry supplied by Pibbl.
558
+ * @returns The value produced by this callback. */
559
+ readonly formatValue?: (value: number) => string;
560
+ }
561
+ /** Frame options for Sankey node width and separation. {@link GraphLayout} */
562
+ export interface SankeyStyle extends GStyle {
563
+ /** Width of Sankey nodes in local logical pixels. {@link GraphLayout} */
564
+ readonly nodeWidth?: number;
565
+ /** Minimum gap between node marks in local logical pixels. {@link GraphLayout} */
566
+ readonly nodeGap?: number;
567
+ }
568
+ /** Pure Sankey inputs and finite output bounds. {@link GraphLayout} */
569
+ export interface SankeyOptions<N, E> extends SankeyAccessors<N, E> {
570
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
571
+ readonly bounds: Bounds;
572
+ /** Width of Sankey nodes in local logical pixels. {@link GraphLayout} */
573
+ readonly nodeWidth?: number;
574
+ /** Minimum gap between node marks in local logical pixels. {@link GraphLayout} */
575
+ readonly nodeGap?: number;
576
+ }
577
+ /** Reactive Sankey data and default flow/node presentation. {@link GraphLayout} */
578
+ export interface SankeyProps<N, E> extends SankeyAccessors<N, E> {
579
+ /** Graph records; publish a new snapshot to update. {@link GraphLayout} */
580
+ readonly graph: SignalValue<GraphData<N, E>>;
581
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
582
+ readonly style?: Style<SankeyStyle>;
583
+ /** Style or geometry-aware style for node marks. {@link GraphLayout} */
584
+ readonly nodeStyle?: MarkStyle<SankeyNodeGeometry<N>, NodeStyle>;
585
+ /** Style or geometry-aware style for flow marks. {@link GraphLayout} */
586
+ readonly flowStyle?: MarkStyle<SankeyFlowGeometry<E>, EdgeStyle>;
587
+ /** Style for decorative labels. {@link GraphLayout} */
588
+ readonly labelStyle?: Style<LabelStyle>;
589
+ /** Replaces the default node mark with this composition. {@link GraphLayout}
590
+ * @param node - The source record or geometry supplied by Pibbl.
591
+ * @returns The value produced by this callback. */
592
+ readonly renderNode?: (node: SankeyNodeGeometry<N>) => PibblNode;
593
+ /** Replaces the default flow mark with this composition. {@link GraphLayout}
594
+ * @param flow - The source record or geometry supplied by Pibbl.
595
+ * @returns The value produced by this callback. */
596
+ readonly renderFlow?: (flow: SankeyFlowGeometry<E>) => PibblNode;
597
+ /** Receives clicks on a node mark. {@link GraphLayout}
598
+ * @param node - The source record or geometry supplied by Pibbl.
599
+ * @param event - The source record or geometry supplied by Pibbl. */
600
+ readonly onNodeClick?: (node: SankeyNodeGeometry<N>, event: ClickEvent) => void;
601
+ /** Receives clicks on a flow mark. {@link GraphLayout}
602
+ * @param flow - The source record or geometry supplied by Pibbl.
603
+ * @param event - The source record or geometry supplied by Pibbl. */
604
+ readonly onFlowClick?: (flow: SankeyFlowGeometry<E>, event: ClickEvent) => void;
605
+ }
606
+ /** Ordered left, right, and edge records for a two-sided graph. {@link GraphLayout} */
607
+ export interface BipartiteData<L, R, E> {
608
+ /** Left-side endpoint geometry. {@link GraphLayout} */
609
+ readonly left: readonly L[];
610
+ /** Right-side endpoint geometry. {@link GraphLayout} */
611
+ readonly right: readonly R[];
612
+ /** Source edges in application order. {@link GraphLayout} */
613
+ readonly edges: readonly E[];
614
+ }
615
+ /** Typed keys and optional labels for both graph sides. {@link GraphLayout} */
616
+ export interface BipartiteAccessors<L, R, E> {
617
+ /** Reads each left-side record’s stable key. {@link GraphLayout} */
618
+ readonly leftKey: Accessor<L, VizKey>;
619
+ /** Reads each right-side record’s stable key. {@link GraphLayout} */
620
+ readonly rightKey: Accessor<R, VizKey>;
621
+ /** Reads each edge’s stable key. {@link GraphLayout} */
622
+ readonly edgeKey: Accessor<E, VizKey>;
623
+ /** Reads an edge source key. {@link GraphLayout} */
624
+ readonly source: Accessor<E, VizKey>;
625
+ /** Reads an edge target key. {@link GraphLayout} */
626
+ readonly target: Accessor<E, VizKey>;
627
+ /** Optional reader for a left-side label. {@link GraphLayout} */
628
+ readonly leftLabel?: Accessor<L, string>;
629
+ /** Optional reader for a right-side label. {@link GraphLayout} */
630
+ readonly rightLabel?: Accessor<R, string>;
631
+ }
632
+ /** Edge geometry retaining side-qualified endpoints. {@link GraphLayout} */
633
+ export interface BipartiteEdgeGeometry<L, R, E> extends GraphEdgeGeometry<E> {
634
+ /** Left-side endpoint geometry. {@link GraphLayout} */
635
+ readonly left: GraphNodeGeometry<L>;
636
+ /** Right-side endpoint geometry. {@link GraphLayout} */
637
+ readonly right: GraphNodeGeometry<R>;
638
+ }
639
+ /** Immutable left nodes, right nodes, and their connecting edges. {@link GraphLayout} */
640
+ export interface BipartiteLayout<L, R, E> {
641
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
642
+ readonly bounds: Bounds;
643
+ /** Left-side endpoint geometry. {@link GraphLayout} */
644
+ readonly left: readonly GraphNodeGeometry<L>[];
645
+ /** Right-side endpoint geometry. {@link GraphLayout} */
646
+ readonly right: readonly GraphNodeGeometry<R>[];
647
+ /** Source edges in application order. {@link GraphLayout} */
648
+ readonly edges: readonly BipartiteEdgeGeometry<L, R, E>[];
649
+ }
650
+ /** Frame options for two-sided graph columns and node spacing. {@link GraphLayout} */
651
+ export interface BipartiteStyle extends GStyle {
652
+ /** Distance between bipartite columns in local logical pixels. {@link GraphLayout} */
653
+ readonly columnGap?: number;
654
+ /** Minimum gap between node marks in local logical pixels. {@link GraphLayout} */
655
+ readonly nodeGap?: number;
656
+ }
657
+ /** Pure bipartite inputs, side dimensions, and finite bounds. {@link GraphLayout} */
658
+ export interface BipartiteOptions<L, R, E> extends BipartiteAccessors<L, R, E> {
659
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
660
+ readonly bounds: Bounds;
661
+ /** Optional left-node size reader in local logical pixels. {@link GraphLayout}
662
+ * @param datum - Left-side source record to measure.
663
+ * @returns Finite local logical size. */
664
+ readonly leftSize?: Size /** A caller-provided pure callback. {@link GraphLayout}
665
+ * @param datum - The source record or geometry supplied by Pibbl.
666
+ * @returns The value produced by this callback. */ | ((datum: L) => Size);
667
+ /** Optional right-node size reader in local logical pixels. {@link GraphLayout}
668
+ * @param datum - Right-side source record to measure.
669
+ * @returns Finite local logical size. */
670
+ readonly rightSize?: Size /** A caller-provided pure callback. {@link GraphLayout}
671
+ * @param datum - The source record or geometry supplied by Pibbl.
672
+ * @returns The value produced by this callback. */ | ((datum: R) => Size);
673
+ /** Distance between bipartite columns in local logical pixels. {@link GraphLayout} */
674
+ readonly columnGap?: number;
675
+ /** Minimum gap between node marks in local logical pixels. {@link GraphLayout} */
676
+ readonly nodeGap?: number;
677
+ }
678
+ /** Reactive bipartite data and side-specific mark presentation. {@link GraphLayout} */
679
+ export interface BipartiteGraphProps<L, R, E> extends BipartiteAccessors<L, R, E> {
680
+ /** Graph records; publish a new snapshot to update. {@link GraphLayout} */
681
+ readonly graph: SignalValue<BipartiteData<L, R, E>>;
682
+ /** Optional left-node size reader in local logical pixels. {@link GraphLayout}
683
+ * @param datum - Left-side source record to measure.
684
+ * @returns Finite local logical size. */
685
+ readonly leftSize?: Size /** A caller-provided pure callback. {@link GraphLayout}
686
+ * @param datum - The source record or geometry supplied by Pibbl.
687
+ * @returns The value produced by this callback. */ | ((datum: L) => Size);
688
+ /** Optional right-node size reader in local logical pixels. {@link GraphLayout}
689
+ * @param datum - Right-side source record to measure.
690
+ * @returns Finite local logical size. */
691
+ readonly rightSize?: Size /** A caller-provided pure callback. {@link GraphLayout}
692
+ * @param datum - The source record or geometry supplied by Pibbl.
693
+ * @returns The value produced by this callback. */ | ((datum: R) => Size);
694
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
695
+ readonly style?: Style<BipartiteStyle>;
696
+ /** Style or geometry-aware style for left nodes. {@link GraphLayout} */
697
+ readonly leftNodeStyle?: MarkStyle<GraphNodeGeometry<L>, NodeStyle>;
698
+ /** Style or geometry-aware style for right nodes. {@link GraphLayout} */
699
+ readonly rightNodeStyle?: MarkStyle<GraphNodeGeometry<R>, NodeStyle>;
700
+ /** Style or geometry-aware style for edge marks. {@link GraphLayout} */
701
+ readonly edgeStyle?: MarkStyle<BipartiteEdgeGeometry<L, R, E>, EdgeStyle>;
702
+ /** Style for decorative labels. {@link GraphLayout} */
703
+ readonly labelStyle?: Style<LabelStyle>;
704
+ /** Replaces a default left-node mark. {@link GraphLayout}
705
+ * @param node - The source record or geometry supplied by Pibbl.
706
+ * @returns The value produced by this callback. */
707
+ readonly renderLeftNode?: (node: GraphNodeGeometry<L>) => PibblNode;
708
+ /** Replaces a default right-node mark. {@link GraphLayout}
709
+ * @param node - The source record or geometry supplied by Pibbl.
710
+ * @returns The value produced by this callback. */
711
+ readonly renderRightNode?: (node: GraphNodeGeometry<R>) => PibblNode;
712
+ /** Replaces the default edge mark with this composition. {@link GraphLayout}
713
+ * @param edge - The source record or geometry supplied by Pibbl.
714
+ * @returns The value produced by this callback. */
715
+ readonly renderEdge?: (edge: BipartiteEdgeGeometry<L, R, E>) => PibblNode;
716
+ /** Receives clicks on left-side nodes. {@link GraphLayout}
717
+ * @param node - The source record or geometry supplied by Pibbl.
718
+ * @param event - The source record or geometry supplied by Pibbl. */
719
+ readonly onLeftNodeClick?: (node: GraphNodeGeometry<L>, event: ClickEvent) => void;
720
+ /** Receives clicks on right-side nodes. {@link GraphLayout}
721
+ * @param node - The source record or geometry supplied by Pibbl.
722
+ * @param event - The source record or geometry supplied by Pibbl. */
723
+ readonly onRightNodeClick?: (node: GraphNodeGeometry<R>, event: ClickEvent) => void;
724
+ /** Receives clicks on an edge mark. {@link GraphLayout}
725
+ * @param edge - The source record or geometry supplied by Pibbl.
726
+ * @param event - The source record or geometry supplied by Pibbl. */
727
+ readonly onEdgeClick?: (edge: BipartiteEdgeGeometry<L, R, E>, event: ClickEvent) => void;
728
+ }
729
+ /** Hierarchy readers plus a leaf quantity, unit, and optional formatter. {@link GraphLayout} */
730
+ export interface PartitionAccessors<D> extends HierarchyAccessors<D> {
731
+ /** Reads the finite quantitative value. {@link GraphLayout} */
732
+ readonly value: Accessor<D, number>;
733
+ /** Display unit for quantitative values. {@link GraphLayout} */
734
+ readonly unit: string;
735
+ /** Formats a quantitative value for display. {@link GraphLayout}
736
+ * @param value - The source record or geometry supplied by Pibbl.
737
+ * @returns The value produced by this callback. */
738
+ readonly formatValue?: (value: number) => string;
739
+ }
740
+ /** Immutable hierarchy-cell geometry with aggregate quantity metadata. {@link GraphLayout} */
741
+ export interface PartitionCellGeometry<D> {
742
+ /** Stable application-provided key. {@link GraphLayout} */
743
+ readonly key: VizKey;
744
+ /** Original application record. {@link GraphLayout} */
745
+ readonly datum: D;
746
+ /** Parent key, or null for a top-level item. {@link GraphLayout} */
747
+ readonly parentKey: VizKey | null;
748
+ /** Zero-based hierarchy depth. {@link GraphLayout} */
749
+ readonly depth: number;
750
+ /** Reads the finite quantitative value. {@link GraphLayout} */
751
+ readonly value: number;
752
+ /** Share of the root total from zero through one. {@link GraphLayout} */
753
+ readonly fraction: number;
754
+ /** Whether the original record has no children. {@link GraphLayout} */
755
+ readonly isLeaf: boolean;
756
+ /** Whether this item hides its descendants. {@link GraphLayout} */
757
+ readonly collapsed: boolean;
758
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
759
+ readonly bounds: Bounds;
760
+ /** Decorative label geometry. {@link GraphLayout} */
761
+ readonly label: LabelGeometry | null;
762
+ }
763
+ /** Immutable hierarchy partition cells and root total. {@link GraphLayout} */
764
+ export interface PartitionLayout<D> {
765
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
766
+ readonly bounds: Bounds;
767
+ /** Stable key of the hierarchy root. {@link GraphLayout} */
768
+ readonly rootKey: VizKey;
769
+ /** Sum of all source leaf values. {@link GraphLayout} */
770
+ readonly total: number;
771
+ /** Display unit for quantitative values. {@link GraphLayout} */
772
+ readonly unit: string;
773
+ /** Immutable cells in source-stable layout order. {@link GraphLayout} */
774
+ readonly cells: readonly PartitionCellGeometry<D>[];
775
+ }
776
+ /** Default partition-cell paint, rendering, and click behavior. {@link GraphLayout} */
777
+ export interface PartitionPresentation<D> {
778
+ /** Style or geometry-aware style for cell marks. {@link GraphLayout} */
779
+ readonly cellStyle?: MarkStyle<PartitionCellGeometry<D>, NodeStyle>;
780
+ /** Style for decorative labels. {@link GraphLayout} */
781
+ readonly labelStyle?: Style<LabelStyle>;
782
+ /** Replaces the default cell mark with this composition. {@link GraphLayout}
783
+ * @param cell - The source record or geometry supplied by Pibbl.
784
+ * @returns The value produced by this callback. */
785
+ readonly renderCell?: (cell: PartitionCellGeometry<D>) => PibblNode;
786
+ /** Receives clicks on a cell mark. {@link GraphLayout}
787
+ * @param cell - The source record or geometry supplied by Pibbl.
788
+ * @param event - The source record or geometry supplied by Pibbl. */
789
+ readonly onCellClick?: (cell: PartitionCellGeometry<D>, event: ClickEvent) => void;
790
+ }
791
+ /** Frame options for squarified-cell gaps, padding, and headers. {@link GraphLayout} */
792
+ export interface TreemapStyle extends GStyle {
793
+ /** Gap between cells in local logical pixels. {@link GraphLayout} */
794
+ readonly cellGap?: number;
795
+ /** Inset inside each parent cell in local logical pixels. {@link GraphLayout} */
796
+ readonly padding?: number;
797
+ /** Reserved parent-header height in local logical pixels. {@link GraphLayout} */
798
+ readonly headerHeight?: number;
799
+ }
800
+ /** Pure treemap inputs and finite output bounds. {@link GraphLayout} */
801
+ export interface TreemapOptions<D> extends PartitionAccessors<D> {
802
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
803
+ readonly bounds: Bounds;
804
+ /** Gap between cells in local logical pixels. {@link GraphLayout} */
805
+ readonly cellGap?: number;
806
+ /** Inset inside each parent cell in local logical pixels. {@link GraphLayout} */
807
+ readonly padding?: number;
808
+ /** Reserved parent-header height in local logical pixels. {@link GraphLayout} */
809
+ readonly headerHeight?: number;
810
+ }
811
+ /** Reactive hierarchy input and presentation for Treemap. {@link GraphLayout} */
812
+ export interface TreemapProps<D> extends PartitionAccessors<D>, PartitionPresentation<D> {
813
+ /** Hierarchy root; publish a new root to update. {@link GraphLayout} */
814
+ readonly root: SignalValue<D>;
815
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
816
+ readonly style?: Style<TreemapStyle>;
817
+ }
818
+ /** Geometry, paint, events, and content for one partition cell. {@link GraphLayout} */
819
+ export interface PartitionCellProps<D> extends MarkInteraction {
820
+ /** Immutable cell geometry and its original records. {@link GraphLayout} */
821
+ readonly cell: PartitionCellGeometry<D>;
822
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
823
+ readonly style?: Style<NodeStyle>;
824
+ /** Optional content painted with this mark. {@link GraphLayout} */
825
+ readonly children?: PibblNode;
826
+ }
827
+ /** Frame options for radial hop-ring and node spacing. {@link GraphLayout} */
828
+ export interface NeighborhoodStyle extends GStyle {
829
+ /** Radial distance between hop rings in local logical pixels. {@link GraphLayout} */
830
+ readonly ringGap?: number;
831
+ /** Minimum gap between node marks in local logical pixels. {@link GraphLayout} */
832
+ readonly nodeGap?: number;
833
+ }
834
+ /** Pure neighborhood inputs centered on one application key. {@link GraphLayout} */
835
+ export interface NeighborhoodOptions<N, E> extends GraphAccessors<N, E> {
836
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
837
+ readonly bounds: Bounds;
838
+ /** Key placed at the center of the neighborhood. {@link GraphLayout} */
839
+ readonly centerKey: VizKey;
840
+ /** Maximum graph distance from the center; defaults to two. {@link GraphLayout} */
841
+ readonly hops?: number;
842
+ /** Edges followed while collecting the neighborhood. {@link GraphLayout} */
843
+ readonly direction?: "outbound" | "inbound" | "either";
844
+ /** Node size in local logical pixels; defaults to 160 by 56. {@link GraphLayout}
845
+ * @param node - Source record to measure.
846
+ * @returns Finite local logical size. */
847
+ readonly nodeSize?: Size /** A caller-provided pure callback. {@link GraphLayout}
848
+ * @param node - The source record or geometry supplied by Pibbl.
849
+ * @returns The value produced by this callback. */ | ((node: N) => Size);
850
+ /** Radial distance between hop rings in local logical pixels. {@link GraphLayout} */
851
+ readonly ringGap?: number;
852
+ /** Minimum gap between node marks in local logical pixels. {@link GraphLayout} */
853
+ readonly nodeGap?: number;
854
+ }
855
+ /** Node geometry annotated with its graph distance from center. {@link GraphLayout} */
856
+ export interface NeighborhoodNodeGeometry<N> extends GraphNodeGeometry<N> {
857
+ /** Zero-based graph distance from the center. {@link GraphLayout} */
858
+ readonly hop: number;
859
+ }
860
+ /** Immutable reachable nodes, retained edges, and omitted keys. {@link GraphLayout} */
861
+ export interface NeighborhoodLayout<N, E> extends GraphLayout<N, E> {
862
+ /** Key placed at the center of the neighborhood. {@link GraphLayout} */
863
+ readonly centerKey: VizKey;
864
+ /** Source nodes in application order. {@link GraphLayout} */
865
+ readonly nodes: readonly NeighborhoodNodeGeometry<N>[];
866
+ /** Known node keys outside the requested hop range. {@link GraphLayout} */
867
+ readonly omittedKeys: readonly VizKey[];
868
+ }
869
+ /** Reactive graph input and presentation for radial neighborhoods. {@link GraphLayout} */
870
+ export interface RadialNeighborhoodProps<N, E> extends GraphAccessors<N, E>, GraphPresentation<N, E, NeighborhoodNodeGeometry<N>> {
871
+ /** Graph records; publish a new snapshot to update. {@link GraphLayout} */
872
+ readonly graph: SignalValue<GraphData<N, E>>;
873
+ /** Key placed at the center of the neighborhood. {@link GraphLayout} */
874
+ readonly centerKey: SignalValue<VizKey>;
875
+ /** Maximum graph distance from the center; defaults to two. {@link GraphLayout} */
876
+ readonly hops?: SignalValue<number>;
877
+ /** Edges followed while collecting the neighborhood. {@link GraphLayout} */
878
+ readonly direction?: "outbound" | "inbound" | "either";
879
+ /** Node size in local logical pixels; defaults to 160 by 56. {@link GraphLayout}
880
+ * @param node - Source record to measure.
881
+ * @returns Finite local logical size. */
882
+ readonly nodeSize?: Size /** A caller-provided pure callback. {@link GraphLayout}
883
+ * @param node - The source record or geometry supplied by Pibbl.
884
+ * @returns The value produced by this callback. */ | ((node: N) => Size);
885
+ /** Replaces the default node mark with this composition. {@link GraphLayout}
886
+ * @param node - The source record or geometry supplied by Pibbl.
887
+ * @returns The value produced by this callback. */
888
+ readonly renderNode?: (node: NeighborhoodNodeGeometry<N>) => PibblNode;
889
+ /** Receives clicks on a node mark. {@link GraphLayout}
890
+ * @param node - The source record or geometry supplied by Pibbl.
891
+ * @param event - The source record or geometry supplied by Pibbl. */
892
+ readonly onNodeClick?: (node: NeighborhoodNodeGeometry<N>, event: ClickEvent) => void;
893
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
894
+ readonly style?: Style<NeighborhoodStyle>;
895
+ }
896
+ /** Frame options for icicle cell and level spacing. {@link GraphLayout} */
897
+ export interface IcicleStyle extends GStyle {
898
+ /** Gap between cells in local logical pixels. {@link GraphLayout} */
899
+ readonly cellGap?: number;
900
+ /** Gap between hierarchy levels in local logical pixels. {@link GraphLayout} */
901
+ readonly levelGap?: number;
902
+ }
903
+ /** Pure icicle inputs and finite output bounds. {@link GraphLayout} */
904
+ export interface IcicleOptions<D> extends PartitionAccessors<D> {
905
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
906
+ readonly bounds: Bounds;
907
+ /** Gap between cells in local logical pixels. {@link GraphLayout} */
908
+ readonly cellGap?: number;
909
+ /** Gap between hierarchy levels in local logical pixels. {@link GraphLayout} */
910
+ readonly levelGap?: number;
911
+ }
912
+ /** Reactive hierarchy input and presentation for Icicle. {@link GraphLayout} */
913
+ export interface IcicleProps<D> extends PartitionAccessors<D>, PartitionPresentation<D> {
914
+ /** Hierarchy root; publish a new root to update. {@link GraphLayout} */
915
+ readonly root: SignalValue<D>;
916
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
917
+ readonly style?: Style<IcicleStyle>;
918
+ }
919
+ /** Ordered categories and directed transfer records for a chord diagram. {@link GraphLayout} */
920
+ export interface ChordData<C, T> {
921
+ /** Ordered category records. {@link GraphLayout} */
922
+ readonly categories: readonly C[];
923
+ /** Source transfer records. {@link GraphLayout} */
924
+ readonly transfers: readonly T[];
925
+ }
926
+ /** Typed category and transfer readers with quantity display settings. {@link GraphLayout} */
927
+ export interface ChordAccessors<C, T> {
928
+ /** Reads each category key. {@link GraphLayout} */
929
+ readonly categoryKey: Accessor<C, VizKey>;
930
+ /** Optional reader for a node’s primary text. {@link LabelGeometry} */
931
+ readonly label?: Accessor<C, string>;
932
+ /** Reads an edge source key. {@link GraphLayout} */
933
+ readonly source: Accessor<T, VizKey>;
934
+ /** Reads an edge target key. {@link GraphLayout} */
935
+ readonly target: Accessor<T, VizKey>;
936
+ /** Reads the finite quantitative value. {@link GraphLayout} */
937
+ readonly value: Accessor<T, number>;
938
+ /** Display unit for quantitative values. {@link GraphLayout} */
939
+ readonly unit: string;
940
+ /** Formats a quantitative value for display. {@link GraphLayout}
941
+ * @param value - The source record or geometry supplied by Pibbl.
942
+ * @returns The value produced by this callback. */
943
+ readonly formatValue?: (value: number) => string;
944
+ }
945
+ /** A clockwise angular span in graph-local polar geometry. {@link GraphLayout} */
946
+ export interface ChordArc {
947
+ /** Center point in local logical pixels. {@link GraphLayout} */
948
+ readonly center: Point;
949
+ /** Radius in local logical pixels. {@link GraphLayout} */
950
+ readonly radius: number;
951
+ /** Clockwise start angle from twelve o’clock. {@link GraphLayout} */
952
+ readonly startAngleDegrees: number;
953
+ /** Clockwise end angle from twelve o’clock. {@link GraphLayout} */
954
+ readonly endAngleDegrees: number;
955
+ }
956
+ /** Immutable outer category band geometry and aggregate quantities. {@link GraphLayout} */
957
+ export interface ChordBandGeometry<C> {
958
+ /** Stable application-provided key. {@link GraphLayout} */
959
+ readonly key: VizKey;
960
+ /** Original application record. {@link GraphLayout} */
961
+ readonly datum: C;
962
+ /** Total value arriving at this node. {@link GraphLayout} */
963
+ readonly incomingValue: number;
964
+ /** Total value leaving this node. {@link GraphLayout} */
965
+ readonly outgoingValue: number;
966
+ /** Angular span for the visible category band. {@link GraphLayout} */
967
+ readonly arc: ChordArc;
968
+ /** Inner ribbon radius in local logical pixels. {@link GraphLayout} */
969
+ readonly innerRadius: number;
970
+ /** Path segments from source to target. {@link GraphLayout} */
971
+ readonly segments: readonly Readonly<PathSegment>[];
972
+ /** SVG path serialization of the route. {@link GraphLayout} */
973
+ readonly path: string;
974
+ /** Decorative label geometry. {@link GraphLayout} */
975
+ readonly label: LabelGeometry;
976
+ }
977
+ /** Immutable grouped transfer-ribbon geometry and source records. {@link GraphLayout} */
978
+ export interface ChordRibbonGeometry<T> {
979
+ /** Stable application-provided key. {@link GraphLayout} */
980
+ readonly key: string;
981
+ /** Stable key of the edge source node. {@link GraphLayout} */
982
+ readonly sourceKey: VizKey;
983
+ /** Stable key of the edge target node. {@link GraphLayout} */
984
+ readonly targetKey: VizKey;
985
+ /** Original records represented by this aggregate. {@link GraphLayout} */
986
+ readonly records: readonly T[];
987
+ /** Reads the finite quantitative value. {@link GraphLayout} */
988
+ readonly value: number;
989
+ /** Angular span allocated to the source side. {@link GraphLayout} */
990
+ readonly sourceArc: ChordArc;
991
+ /** Angular span allocated to the target side. {@link GraphLayout} */
992
+ readonly targetArc: ChordArc;
993
+ /** Path segments from source to target. {@link GraphLayout} */
994
+ readonly segments: readonly Readonly<PathSegment>[];
995
+ /** SVG path serialization of the route. {@link GraphLayout} */
996
+ readonly path: string;
997
+ }
998
+ /** Immutable category bands and grouped transfer ribbons. {@link GraphLayout} */
999
+ export interface ChordLayout<C, T> {
1000
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
1001
+ readonly bounds: Bounds;
1002
+ /** Display unit for quantitative values. {@link GraphLayout} */
1003
+ readonly unit: string;
1004
+ /** Sum of all source leaf values. {@link GraphLayout} */
1005
+ readonly total: number;
1006
+ /** Immutable category-band geometry. {@link GraphLayout} */
1007
+ readonly bands: readonly ChordBandGeometry<C>[];
1008
+ /** Immutable grouped transfer-ribbon geometry. {@link GraphLayout} */
1009
+ readonly ribbons: readonly ChordRibbonGeometry<T>[];
1010
+ }
1011
+ /** Frame options for chord band width and angular spacing. {@link GraphLayout} */
1012
+ export interface ChordStyle extends GStyle {
1013
+ /** Chord-band thickness in local logical pixels. {@link GraphLayout} */
1014
+ readonly bandWidth?: number;
1015
+ /** Angular gap between chord categories in degrees. {@link GraphLayout} */
1016
+ readonly padAngle?: number;
1017
+ /** Clockwise chord rotation from twelve o’clock in degrees. {@link GraphLayout} */
1018
+ readonly startAngle?: number;
1019
+ }
1020
+ /** Pure chord inputs and finite output bounds. {@link GraphLayout} */
1021
+ export interface ChordOptions<C, T> extends ChordAccessors<C, T> {
1022
+ /** Finite local logical bounds for this geometry. {@link GraphLayout} */
1023
+ readonly bounds: Bounds;
1024
+ /** Chord-band thickness in local logical pixels. {@link GraphLayout} */
1025
+ readonly bandWidth?: number;
1026
+ /** Angular gap between chord categories in degrees. {@link GraphLayout} */
1027
+ readonly padAngle?: number;
1028
+ /** Clockwise chord rotation from twelve o’clock in degrees. {@link GraphLayout} */
1029
+ readonly startAngle?: number;
1030
+ }
1031
+ /** Reactive chord data and default band/ribbon presentation. {@link GraphLayout} */
1032
+ export interface ChordDiagramProps<C, T> extends ChordAccessors<C, T> {
1033
+ /** Input records; publish a new snapshot to update. {@link GraphLayout} */
1034
+ readonly data: SignalValue<ChordData<C, T>>;
1035
+ /** Frame style and responsive size allocation. {@link GraphLayout} */
1036
+ readonly style?: Style<ChordStyle>;
1037
+ /** Style for category bands. {@link GraphLayout} */
1038
+ readonly bandStyle?: MarkStyle<ChordBandGeometry<C>, EdgeStyle>;
1039
+ /** Style for transfer ribbons. {@link GraphLayout} */
1040
+ readonly ribbonStyle?: MarkStyle<ChordRibbonGeometry<T>, EdgeStyle>;
1041
+ /** Style for decorative labels. {@link GraphLayout} */
1042
+ readonly labelStyle?: Style<LabelStyle>;
1043
+ /** Replaces the default category-band mark with this composition. {@link GraphLayout}
1044
+ * @param band - The source record or geometry supplied by Pibbl.
1045
+ * @returns The value produced by this callback. */
1046
+ readonly renderBand?: (band: ChordBandGeometry<C>) => PibblNode;
1047
+ /** Replaces the default ribbon mark with this composition. {@link GraphLayout}
1048
+ * @param ribbon - The source record or geometry supplied by Pibbl.
1049
+ * @returns The value produced by this callback. */
1050
+ readonly renderRibbon?: (ribbon: ChordRibbonGeometry<T>) => PibblNode;
1051
+ /** Receives clicks on a band mark. {@link GraphLayout}
1052
+ * @param band - The source record or geometry supplied by Pibbl.
1053
+ * @param event - The source record or geometry supplied by Pibbl. */
1054
+ readonly onBandClick?: (band: ChordBandGeometry<C>, event: ClickEvent) => void;
1055
+ /** Receives clicks on a ribbon mark. {@link GraphLayout}
1056
+ * @param ribbon - The source record or geometry supplied by Pibbl.
1057
+ * @param event - The source record or geometry supplied by Pibbl. */
1058
+ readonly onRibbonClick?: (ribbon: ChordRibbonGeometry<T>, event: ClickEvent) => void;
1059
+ }
1060
+ /** A manual deterministic solver with no scheduler or resource ownership. {@link GraphLayout} */
1061
+ export interface ForceSimulation<N, E> {
1062
+ /** Reads the current immutable solver snapshot. {@link GraphLayout}
1063
+ * @returns The value produced by this callback. */
1064
+ read(): ForceLayout<N, E>;
1065
+ /** Advances at most the requested solver iterations. {@link GraphLayout}
1066
+ * @param options - The source record or geometry supplied by Pibbl.
1067
+ * @returns The value produced by this callback. */
1068
+ step(options: Readonly<{
1069
+ /** Iterations completed by the solver. {@link GraphLayout} */
1070
+ iterations: number;
1071
+ }>): ForceLayout<N, E>;
1072
+ /** Reconfigures this manual solver with a new graph snapshot. {@link GraphLayout}
1073
+ * @param graph - The source record or geometry supplied by Pibbl.
1074
+ * @param options - The source record or geometry supplied by Pibbl. */
1075
+ update(graph: GraphData<N, E>, options: ForceOptions<N, E>): void;
1076
+ /** Restarts the current solver without discarding node positions. {@link GraphLayout} */
1077
+ restart(): void;
1078
+ /** Restores seeded positions and clears pins. {@link GraphLayout} */
1079
+ reset(): void;
1080
+ /** Pins one node at a finite local position. {@link GraphLayout}
1081
+ * @param key - The source record or geometry supplied by Pibbl.
1082
+ * @param position - The source record or geometry supplied by Pibbl. */
1083
+ pin(key: VizKey, position: Point): void;
1084
+ /** Releases a previously pinned node. {@link GraphLayout}
1085
+ * @param key - The source record or geometry supplied by Pibbl. */
1086
+ release(key: VizKey): void;
1087
+ }
1088
+ /** Creates a compatible manual force solver for supplied graph inputs. {@link GraphLayout}
1089
+ * @param graph - Source graph.
1090
+ * @param options - Solver options.
1091
+ * @returns Simulation. */
1092
+ export type ForceSimulationFactory<N, E> =
1093
+ /** A caller-provided pure callback. {@link GraphLayout}
1094
+ * @param graph - The source record or geometry supplied by Pibbl.
1095
+ * @param options - The source record or geometry supplied by Pibbl.
1096
+ * @returns The value produced by this callback. */
1097
+ (graph: GraphData<N, E>, options: ForceOptions<N, E>) => ForceSimulation<N, E>;